完成服务信息设置
This commit is contained in:
parent
09020fb8ff
commit
f5be62d934
|
@ -1,4 +1,10 @@
|
||||||
const apis = {
|
const apis = {
|
||||||
|
system: {
|
||||||
|
uploadFile: {
|
||||||
|
url: "/wxapp/index/one",
|
||||||
|
showLoading: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
user: {
|
user: {
|
||||||
sendCode: {
|
sendCode: {
|
||||||
url: "/wxapp/public/send",
|
url: "/wxapp/public/send",
|
||||||
|
@ -17,8 +23,21 @@ const apis = {
|
||||||
},
|
},
|
||||||
info: {
|
info: {
|
||||||
url: "/user/workerinfo/getuserinfo",
|
url: "/user/workerinfo/getuserinfo",
|
||||||
|
auth: true,
|
||||||
},
|
},
|
||||||
|
setServiceInfo: {
|
||||||
|
url: "/user/workerinfo/setinfo",
|
||||||
|
auth: true,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
service: {
|
||||||
|
cate: {
|
||||||
|
url: "/wxapp/index/category1",
|
||||||
|
},
|
||||||
|
carType: {
|
||||||
|
url: "/wxapp/index/getallcar"
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default apis
|
export default apis
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
import order from "@/core/models/order";
|
import order from "@/core/models/order";
|
||||||
import user from "@/core/models/user";
|
import user from "@/core/models/user";
|
||||||
import worker from "@/core/models/worker";
|
import worker from "@/core/models/worker";
|
||||||
|
import system from "@/core/models/system";
|
||||||
|
import service from "@/core/models/service";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
order,
|
order,
|
||||||
user,
|
user,
|
||||||
worker,
|
worker,
|
||||||
|
system,
|
||||||
|
service
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
import Vue from "vue"
|
||||||
|
let prototype = Vue.prototype;
|
||||||
|
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 安装分类
|
||||||
|
*/
|
||||||
|
getInstallCate() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
prototype.$request({
|
||||||
|
api: "service.cate",
|
||||||
|
}).then((response) => {
|
||||||
|
if (response.code == 1) {
|
||||||
|
let list = [];
|
||||||
|
response.data.forEach((item) => {
|
||||||
|
let child = [];
|
||||||
|
item.child.forEach((v) => {
|
||||||
|
child.push({
|
||||||
|
id: v.id,
|
||||||
|
name: v.name,
|
||||||
|
cover: v.more,
|
||||||
|
page: "",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
list.push({
|
||||||
|
id: item.id,
|
||||||
|
name: item.name,
|
||||||
|
cover: item.more,
|
||||||
|
child: child,
|
||||||
|
page: "",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return resolve(list);
|
||||||
|
}
|
||||||
|
return reject(response.msg);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getCarType() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
prototype.$request({
|
||||||
|
api: "service.carType",
|
||||||
|
}).then(response => {
|
||||||
|
if (response.code == 1) {
|
||||||
|
let list = [];
|
||||||
|
response.data.forEach(item => {
|
||||||
|
list.push({
|
||||||
|
id: item.id,
|
||||||
|
name: item.title
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return resolve(list);
|
||||||
|
}
|
||||||
|
return reject(response.msg);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
import Vue from "vue"
|
||||||
|
let prototype = Vue.prototype;
|
||||||
|
|
||||||
|
export default {
|
||||||
|
getCity() {
|
||||||
|
const citys = require("@/static/temp/district.json");
|
||||||
|
let res = [];
|
||||||
|
if (citys.length) {
|
||||||
|
// 递归生成
|
||||||
|
res = this.handleTree(citys);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
handleTree(data, parent_code = null) {
|
||||||
|
let res = [];
|
||||||
|
|
||||||
|
let keys = {
|
||||||
|
id: "code",
|
||||||
|
pid: "parent_code",
|
||||||
|
children: "children",
|
||||||
|
|
||||||
|
text: "name",
|
||||||
|
value: "code",
|
||||||
|
};
|
||||||
|
|
||||||
|
let oneItemDEMO = {
|
||||||
|
text: "",
|
||||||
|
value: "",
|
||||||
|
children: [],
|
||||||
|
};
|
||||||
|
let oneItem = {};
|
||||||
|
|
||||||
|
// 循环
|
||||||
|
for (let index in data) {
|
||||||
|
// 判断
|
||||||
|
if (parent_code === null) {
|
||||||
|
// 顶级菜单 - 省
|
||||||
|
if (!data[index].hasOwnProperty(keys.pid) || data[index][keys.pid] == parent_code) {
|
||||||
|
// 不存在parent_code,或者已匹配
|
||||||
|
oneItem = JSON.parse(JSON.stringify(oneItemDEMO));
|
||||||
|
oneItem.text = data[index][keys.text];
|
||||||
|
oneItem.value = data[index][keys.value];
|
||||||
|
|
||||||
|
// 递归下去
|
||||||
|
oneItem.children = this.handleTree(data, data[index][keys.id]);
|
||||||
|
res.push(oneItem);
|
||||||
|
} else {
|
||||||
|
// 匹配不到,跳过
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 非顶级菜单 - 市、区、街道
|
||||||
|
if (data[index].hasOwnProperty(keys.pid) && data[index][keys.pid] == parent_code) {
|
||||||
|
// 已匹配
|
||||||
|
oneItem = JSON.parse(JSON.stringify(oneItemDEMO));
|
||||||
|
oneItem.text = data[index][keys.text];
|
||||||
|
oneItem.value = data[index][keys.value];
|
||||||
|
|
||||||
|
// 递归下去
|
||||||
|
// oneItem.children = this.handleTree(data, data[index][keys.id]);
|
||||||
|
oneItem.children = [];
|
||||||
|
res.push(oneItem);
|
||||||
|
} else {
|
||||||
|
// 匹配不到,跳过
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 上传文件
|
||||||
|
*/
|
||||||
|
upload(path) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
prototype.$upload({
|
||||||
|
api: "system.uploadFile",
|
||||||
|
path: path
|
||||||
|
}).then(response => {
|
||||||
|
if (response.code == 1) {
|
||||||
|
return resolve(response.data);
|
||||||
|
}
|
||||||
|
return reject(response.msg);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
|
@ -18,7 +18,7 @@ export default {
|
||||||
code: result.code
|
code: result.code
|
||||||
}
|
}
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
this.$storage.set("open_id", response.data.openid);
|
prototype.$storage.set("open_id", response.data.openid);
|
||||||
return resolve(response.data);
|
return resolve(response.data);
|
||||||
}).catch(e => { });
|
}).catch(e => { });
|
||||||
}
|
}
|
||||||
|
@ -86,14 +86,31 @@ export default {
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
if (response.code == 1) {
|
if (response.code == 1) {
|
||||||
let user = {
|
let user = {
|
||||||
id: response.data.id,
|
|
||||||
avatar: response.data.avatar,
|
avatar: response.data.avatar,
|
||||||
nickname: response.data.user_nickname,
|
nickname: response.data.user_nickname,
|
||||||
openid: response.data.openid,
|
openid: response.data.openid,
|
||||||
mobile: response.data.mobile,
|
mobile: response.data.mobile,
|
||||||
createTime: response.data.create_time,
|
createTime: response.data.create_time,
|
||||||
finishInfo: response.data.worker != null,
|
worker: null,
|
||||||
};
|
};
|
||||||
|
if (response.data.worker) {
|
||||||
|
user.worker = {
|
||||||
|
id: response.data.worker.id,
|
||||||
|
uid: response.data.worker.uid,
|
||||||
|
avatar: response.data.worker.avatar,
|
||||||
|
province: response.data.worker.province,
|
||||||
|
city: response.data.worker.city,
|
||||||
|
cateId: response.data.worker.service,
|
||||||
|
carTypeId: response.data.worker.car,
|
||||||
|
name: response.data.worker.name,
|
||||||
|
mobile: response.data.worker.mobile,
|
||||||
|
idcardA: response.data.worker.imga,
|
||||||
|
idcardB: response.data.worker.imgb,
|
||||||
|
license: response.data.worker.imgc,
|
||||||
|
content: response.data.worker.desc,
|
||||||
|
type: response.data.worker.status,
|
||||||
|
};
|
||||||
|
}
|
||||||
prototype.$storage.set('userinfo', user);
|
prototype.$storage.set('userinfo', user);
|
||||||
return resolve(user);
|
return resolve(user);
|
||||||
} else {
|
} else {
|
||||||
|
@ -183,5 +200,21 @@ export default {
|
||||||
return reject(response.msg);
|
return reject(response.msg);
|
||||||
}).catch(e => { });
|
}).catch(e => { });
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 设置信息
|
||||||
|
*/
|
||||||
|
setServiceInfo(data) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
prototype.$request({
|
||||||
|
api: "user.setServiceInfo",
|
||||||
|
data: data
|
||||||
|
}).then(response => {
|
||||||
|
if (response.code == 1) {
|
||||||
|
return resolve(response.msg);
|
||||||
|
}
|
||||||
|
return reject(response.msg);
|
||||||
|
}).catch(e => { });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,21 +185,33 @@ export default {
|
||||||
})
|
})
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.$store.dispatch("user/info");
|
this.$store.dispatch("user/info");
|
||||||
this.$utils.toPage(
|
this.$utils.toast(response.msg).then(() => {
|
||||||
"",
|
this.$utils.toPage(
|
||||||
{
|
"",
|
||||||
complete() {
|
{
|
||||||
let pages = getCurrentPages();
|
complete() {
|
||||||
let refer = pages[pages.length - 2];
|
let pages = getCurrentPages();
|
||||||
if (typeof refer !== "undefined") {
|
// #ifdef H5
|
||||||
if (typeof refer.initPage !== "undefined") {
|
let refer = pages[pages.length - 2];
|
||||||
refer.initPage(refer.options);
|
if (typeof refer !== "undefined") {
|
||||||
|
if (typeof refer.initPage !== "undefined") {
|
||||||
|
refer.initPage(refer.options);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
// #endif
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
let refer = pages[pages.length - 1];
|
||||||
|
if (typeof refer !== "undefined") {
|
||||||
|
if (typeof refer.onLoad !== "undefined") {
|
||||||
|
refer.onLoad(refer.options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
"back"
|
||||||
"back"
|
);
|
||||||
);
|
});
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
this.$utils.toast(e);
|
this.$utils.toast(e);
|
||||||
|
|
|
@ -8,18 +8,18 @@
|
||||||
<view class="head">
|
<view class="head">
|
||||||
<block v-if="isLogin">
|
<block v-if="isLogin">
|
||||||
<view class="headimg">
|
<view class="headimg">
|
||||||
<image class="image" :src="userInfo.avatar" mode="aspectFill" />
|
<image class="image" :src="userInfo.worker.avatar" mode="aspectFill" />
|
||||||
</view>
|
</view>
|
||||||
<view class="detail">
|
<view class="detail">
|
||||||
<view class="name">
|
<view class="name">
|
||||||
<text>{{ userInfo.username }}</text>
|
<text>{{ userInfo.worker.name }}</text>
|
||||||
<text
|
<text
|
||||||
class="type"
|
class="type"
|
||||||
:style="{ color: models.worker.getWorkerTypeTextColor(userInfo.workerType) }"
|
:style="{ color: models.worker.getWorkerTypeTextColor(userInfo.worker.type) }"
|
||||||
>{{ models.worker.getWorkerTypeText(userInfo.workerType) }}</text
|
>{{ models.worker.getWorkerTypeText(userInfo.worker.type) }}</text
|
||||||
>
|
>
|
||||||
</view>
|
</view>
|
||||||
<view class="line id">ID:{{ userInfo.id }}</view>
|
<view class="line id">ID:{{ userInfo.worker.id }}</view>
|
||||||
<view class="line">注册时间:{{ userInfo.createTime }}</view>
|
<view class="line">注册时间:{{ userInfo.createTime }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="accept-switch">
|
<view class="accept-switch">
|
||||||
|
@ -118,6 +118,7 @@ export default {
|
||||||
return {
|
return {
|
||||||
utils: this.$utils,
|
utils: this.$utils,
|
||||||
models: this.$models,
|
models: this.$models,
|
||||||
|
timer: null,
|
||||||
safePt: 0,
|
safePt: 0,
|
||||||
backgroundImage: require("@/static/temp/1.png"),
|
backgroundImage: require("@/static/temp/1.png"),
|
||||||
acceptOrderState: false,
|
acceptOrderState: false,
|
||||||
|
@ -130,14 +131,15 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters({
|
...mapGetters({
|
||||||
isLogin: "user/isLogin",
|
isLogin: "user/isLogin",
|
||||||
finishInfo: "user/finishInfo",
|
|
||||||
}),
|
}),
|
||||||
...mapState({
|
...mapState({
|
||||||
userInfo: (state) => state.user.info,
|
userInfo: (state) => state.user.info,
|
||||||
|
finishInfo: (state) => state.user.finishInfo,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
onLoad() {},
|
onLoad() {},
|
||||||
onShow() {
|
async onShow() {
|
||||||
|
await this.$store.dispatch("user/info");
|
||||||
if (this.isLogin && !this.finishInfo) {
|
if (this.isLogin && !this.finishInfo) {
|
||||||
this.$utils.toPage("/pages/member/service-info");
|
this.$utils.toPage("/pages/member/service-info");
|
||||||
}
|
}
|
||||||
|
@ -186,6 +188,7 @@ export default {
|
||||||
.image {
|
.image {
|
||||||
width: 132rpx;
|
width: 132rpx;
|
||||||
height: 132rpx;
|
height: 132rpx;
|
||||||
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.detail {
|
.detail {
|
||||||
|
|
|
@ -7,25 +7,37 @@
|
||||||
<view class="service-form-container">
|
<view class="service-form-container">
|
||||||
<view class="input-item">
|
<view class="input-item">
|
||||||
<text class="title">*我的头像</text>
|
<text class="title">*我的头像</text>
|
||||||
|
<!-- #ifdef H5 -->
|
||||||
<view class="headimg-box" @click="uploadHeadImg">
|
<view class="headimg-box" @click="uploadHeadImg">
|
||||||
<image class="image" :src="headimg" mode="aspectFill" />
|
<image class="image" :src="avatar" mode="aspectFill" />
|
||||||
</view>
|
</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<button open-type="chooseAvatar" @chooseavatar="uploadAvatar" class="headimg-box">
|
||||||
|
<image class="image" :src="avatar" mode="aspectFill" />
|
||||||
|
</button>
|
||||||
|
<!-- #endif -->
|
||||||
<text class="iconfont icon-jinru"></text>
|
<text class="iconfont icon-jinru"></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="input-item">
|
<view class="input-item">
|
||||||
<text class="title">*服务区域</text>
|
<text class="title">*服务区域</text>
|
||||||
<picker
|
<view class="select-widget">
|
||||||
mode="selector"
|
<uni-data-picker
|
||||||
:range="areaList"
|
:localdata="cityList"
|
||||||
range-key="name"
|
placeholder="请选择服务区域"
|
||||||
@change="changeArea"
|
popup-title="请选择服务区域"
|
||||||
class="select-widget"
|
@change="changeArea"
|
||||||
:class="{ active: areaText.length > 0 }"
|
>
|
||||||
>
|
<block v-if="province && city">
|
||||||
<view class="picker-view limit-line clamp-1">
|
<text class="preview">{{ province }} - {{ city }}</text>
|
||||||
{{ areaText ? areaText : "请选择服务区域" }}
|
</block>
|
||||||
</view>
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
</picker>
|
<block v-else>
|
||||||
|
<text>请选择服务区域</text>
|
||||||
|
</block>
|
||||||
|
<!-- #endif -->
|
||||||
|
</uni-data-picker>
|
||||||
|
</view>
|
||||||
<text class="iconfont icon-jinru"></text>
|
<text class="iconfont icon-jinru"></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="input-item">
|
<view class="input-item">
|
||||||
|
@ -60,28 +72,12 @@
|
||||||
</picker>
|
</picker>
|
||||||
<text class="iconfont icon-jinru"></text>
|
<text class="iconfont icon-jinru"></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="input-item">
|
|
||||||
<text class="title">*服务类型</text>
|
|
||||||
<picker
|
|
||||||
mode="selector"
|
|
||||||
:range="serviceTypeList"
|
|
||||||
range-key="name"
|
|
||||||
@change="changeServiceType"
|
|
||||||
class="select-widget"
|
|
||||||
:class="{ active: serviceTypeText.length > 0 }"
|
|
||||||
>
|
|
||||||
<view class="picker-view limit-line clamp-1">
|
|
||||||
{{ serviceTypeText ? serviceTypeText : "请选择服务类型" }}
|
|
||||||
</view>
|
|
||||||
</picker>
|
|
||||||
<text class="iconfont icon-jinru"></text>
|
|
||||||
</view>
|
|
||||||
<view class="input-item-section">
|
<view class="input-item-section">
|
||||||
<text class="title">*认证资料<text class="desc">请录入身份资料</text></text>
|
<text class="title">*认证资料<text class="desc">请录入身份资料</text></text>
|
||||||
<view class="profile-box">
|
<view class="profile-box">
|
||||||
<input
|
<input
|
||||||
class="username"
|
class="username"
|
||||||
v-model="username"
|
v-model="name"
|
||||||
placeholder="请输入您的姓名"
|
placeholder="请输入您的姓名"
|
||||||
placeholder-class="placeholder-style-5"
|
placeholder-class="placeholder-style-5"
|
||||||
/>
|
/>
|
||||||
|
@ -108,8 +104,8 @@
|
||||||
<text class="title">服务资质<text class="desc">电工相关服务分类必上传</text></text>
|
<text class="title">服务资质<text class="desc">电工相关服务分类必上传</text></text>
|
||||||
<view class="section-content-box">
|
<view class="section-content-box">
|
||||||
<view class="upload-image" @click="uploadLicense">
|
<view class="upload-image" @click="uploadLicense">
|
||||||
<image v-show="license" :src="license" mode="aspectFill" />
|
<image v-if="license" class="icon" :src="license" mode="aspectFill" />
|
||||||
<view v-show="!license" class="icon">
|
<view v-if="!license" class="icon">
|
||||||
<text class="iconfont icon-shangchuantupian"></text>
|
<text class="iconfont icon-shangchuantupian"></text>
|
||||||
<view class="text">上传资质</view>
|
<view class="text">上传资质</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -124,7 +120,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="common-save-form-btn">
|
<view class="common-save-form-btn">
|
||||||
<view class="btn">提交审核</view>
|
<view class="btn" @click="submit">提交审核</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</app-layout>
|
</app-layout>
|
||||||
|
@ -133,52 +129,23 @@
|
||||||
<script>
|
<script>
|
||||||
import AppLayout from "@/components/layout/layout";
|
import AppLayout from "@/components/layout/layout";
|
||||||
import WidgetTips from "@/components/widgets/tips";
|
import WidgetTips from "@/components/widgets/tips";
|
||||||
|
import { mapState } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "member-service-info",
|
name: "member-service-info",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
maxContentLength: 300,
|
maxContentLength: 300,
|
||||||
headimg: require("@/static/temp/member/2.png"),
|
cityList: [],
|
||||||
areaList: [
|
cateList: [],
|
||||||
{
|
carTypeList: [],
|
||||||
name: "绵阳",
|
avatar: "",
|
||||||
},
|
province: "",
|
||||||
{
|
city: "",
|
||||||
name: "成都",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
cateList: [
|
|
||||||
{
|
|
||||||
name: "空调安装",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "装修服务",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
carTypeList: [
|
|
||||||
{
|
|
||||||
name: "大巴",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "轿车",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
serviceTypeList: [
|
|
||||||
{
|
|
||||||
name: "全职",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "兼职",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
areaId: 0,
|
|
||||||
areaText: "",
|
|
||||||
cateId: 0,
|
cateId: 0,
|
||||||
cateText: "",
|
cateText: "",
|
||||||
carTypeId: 0,
|
carTypeId: 0,
|
||||||
carTypeText: "",
|
carTypeText: "",
|
||||||
serviceTypeId: 0,
|
name: "",
|
||||||
serviceTypeText: "",
|
|
||||||
idcardA: "",
|
idcardA: "",
|
||||||
idcardB: "",
|
idcardB: "",
|
||||||
license: "",
|
license: "",
|
||||||
|
@ -189,35 +156,133 @@ export default {
|
||||||
AppLayout,
|
AppLayout,
|
||||||
WidgetTips,
|
WidgetTips,
|
||||||
},
|
},
|
||||||
onLoad() {},
|
computed: {
|
||||||
|
...mapState({
|
||||||
|
userInfo: (state) => state.user.info,
|
||||||
|
finishInfo: (state) => state.user.finishInfo,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
async onLoad() {
|
||||||
|
await this.$store.dispatch("user/info");
|
||||||
|
if (this.finishInfo) {
|
||||||
|
this.avatar = this.userInfo.worker.avatar;
|
||||||
|
this.province = this.userInfo.worker.province;
|
||||||
|
this.city = this.userInfo.worker.city;
|
||||||
|
this.cateId = this.userInfo.worker.cateId;
|
||||||
|
this.carTypeId = this.userInfo.worker.carTypeId;
|
||||||
|
this.name = this.userInfo.worker.name;
|
||||||
|
this.idcardA = this.userInfo.worker.idcardA;
|
||||||
|
this.idcardB = this.userInfo.worker.idcardB;
|
||||||
|
this.license = this.userInfo.worker.license;
|
||||||
|
this.content = this.userInfo.worker.content;
|
||||||
|
|
||||||
|
this.cateText = this.userInfo.worker.cateId;
|
||||||
|
this.carTypeText = this.userInfo.worker.carTypeId;
|
||||||
|
}
|
||||||
|
this.cityList = this.$models.system.getCity();
|
||||||
|
this.$models.service.getInstallCate().then((list) => {
|
||||||
|
this.cateList = list;
|
||||||
|
if (this.finishInfo) {
|
||||||
|
list.forEach((item) => {
|
||||||
|
if (item.id == this.userInfo.worker.cateId) {
|
||||||
|
this.cateText = item.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$models.service.getCarType().then((list) => {
|
||||||
|
this.carTypeList = list;
|
||||||
|
if (this.finishInfo) {
|
||||||
|
list.forEach((item) => {
|
||||||
|
if (item.id == this.userInfo.worker.carTypeId) {
|
||||||
|
this.carTypeText = item.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
onShow() {},
|
onShow() {},
|
||||||
onReady() {},
|
onReady() {},
|
||||||
onReachBottom() {},
|
onReachBottom() {},
|
||||||
onPullDownRefresh() {},
|
onPullDownRefresh() {},
|
||||||
methods: {
|
methods: {
|
||||||
uploadHeadImg() {
|
uploadHeadImg() {
|
||||||
uni.chooseImage({});
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
|
tempFiles.forEach((item) => {
|
||||||
|
this.$models.system.upload(item.path).then((response) => {
|
||||||
|
this.avatar = response.img;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
uploadAvatar(e) {
|
||||||
|
this.$models.system.upload(e.detail.avatarUrl).then((response) => {
|
||||||
|
this.avatar = response.img;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
uploadIdCardA() {
|
uploadIdCardA() {
|
||||||
uni.chooseImage({});
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
|
tempFiles.forEach((item) => {
|
||||||
|
this.$models.system.upload(item.path).then((response) => {
|
||||||
|
this.idcardA = response.img;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
uploadIdCardB() {
|
uploadIdCardB() {
|
||||||
uni.chooseImage({});
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
|
tempFiles.forEach((item) => {
|
||||||
|
this.$models.system.upload(item.path).then((response) => {
|
||||||
|
this.idcardB = response.img;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
uploadLicense() {
|
uploadLicense() {
|
||||||
uni.chooseImage({});
|
this.$utils.chooseImage(1).then((tempFiles) => {
|
||||||
|
tempFiles.forEach((item) => {
|
||||||
|
this.$models.system.upload(item.path).then((response) => {
|
||||||
|
this.license = response.img;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
changeArea(e) {
|
changeArea(e) {
|
||||||
this.areaText = this.areaList[e.detail.value].name;
|
this.province = e.detail.value[0].text;
|
||||||
|
this.city = e.detail.value[1].text;
|
||||||
},
|
},
|
||||||
changeCate(e) {
|
changeCate(e) {
|
||||||
|
this.cateId = this.cateList[e.detail.value].id;
|
||||||
this.cateText = this.cateList[e.detail.value].name;
|
this.cateText = this.cateList[e.detail.value].name;
|
||||||
},
|
},
|
||||||
changeCarType(e) {
|
changeCarType(e) {
|
||||||
|
this.carTypeId = this.carTypeList[e.detail.value].id;
|
||||||
this.carTypeText = this.carTypeList[e.detail.value].name;
|
this.carTypeText = this.carTypeList[e.detail.value].name;
|
||||||
},
|
},
|
||||||
changeServiceType(e) {
|
submit() {
|
||||||
this.serviceTypeText = this.serviceTypeList[e.detail.value].name;
|
this.$models.user
|
||||||
|
.setServiceInfo({
|
||||||
|
avatar: this.avatar,
|
||||||
|
province: this.province,
|
||||||
|
city: this.city,
|
||||||
|
service: this.cateId,
|
||||||
|
car: this.carTypeId,
|
||||||
|
name: this.name,
|
||||||
|
mobile: this.mobile,
|
||||||
|
imga: this.idcardA,
|
||||||
|
imgb: this.idcardB,
|
||||||
|
imgc: this.license,
|
||||||
|
desc: this.content,
|
||||||
|
})
|
||||||
|
.then((message) => {
|
||||||
|
this.$store.dispatch("user/info", true);
|
||||||
|
this.$utils.toast(message).then(() => {
|
||||||
|
this.$utils.toPage("/pages/member/member", {}, "switch");
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
this.$utils.toast(e);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -258,11 +323,34 @@ export default {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #c9c9c9;
|
color: #c9c9c9;
|
||||||
.picker-view {
|
.picker-view,
|
||||||
|
/deep/.uni-data-tree-input {
|
||||||
width: 670rpx;
|
width: 670rpx;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 44rpx 0 44rpx 190rpx;
|
padding: 44rpx 0 44rpx 190rpx;
|
||||||
}
|
}
|
||||||
|
/deep/.uni-data-tree-input {
|
||||||
|
.preview {
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.placeholder {
|
||||||
|
color: #c9c9c9;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.input-value-border {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.input-value {
|
||||||
|
padding: 0;
|
||||||
|
height: auto;
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 38rpx;
|
||||||
|
}
|
||||||
|
.arrow-area,
|
||||||
|
.uniui-clear {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.select-widget.active {
|
.select-widget.active {
|
||||||
color: #666666;
|
color: #666666;
|
||||||
|
@ -282,6 +370,12 @@ export default {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
button.headimg-box {
|
||||||
|
background-color: unset;
|
||||||
|
}
|
||||||
|
button.headimg-box::after {
|
||||||
|
border: unset;
|
||||||
|
}
|
||||||
.input-item-section {
|
.input-item-section {
|
||||||
padding: 44rpx 0;
|
padding: 44rpx 0;
|
||||||
border-bottom: 2rpx solid #e8e7e7;
|
border-bottom: 2rpx solid #e8e7e7;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,6 +5,7 @@ export default {
|
||||||
showLoginModal: false,
|
showLoginModal: false,
|
||||||
openId: "",
|
openId: "",
|
||||||
token: "",
|
token: "",
|
||||||
|
finishInfo: false,
|
||||||
info: {
|
info: {
|
||||||
id: 0,
|
id: 0,
|
||||||
avatar: "",
|
avatar: "",
|
||||||
|
@ -12,16 +13,13 @@ export default {
|
||||||
openid: "",
|
openid: "",
|
||||||
mobile: "",
|
mobile: "",
|
||||||
createTime: 0,
|
createTime: 0,
|
||||||
finishInfo: false,
|
worker: {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
isLogin(state) {
|
isLogin(state) {
|
||||||
return state.token.length > 0;
|
return state.token.length > 0;
|
||||||
},
|
},
|
||||||
finishInfo(state) {
|
|
||||||
return state.info.finishInfo;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
showLoginModal(state, data) {
|
showLoginModal(state, data) {
|
||||||
|
@ -35,11 +33,17 @@ export default {
|
||||||
},
|
},
|
||||||
info(state, data) {
|
info(state, data) {
|
||||||
state.info = data;
|
state.info = data;
|
||||||
|
},
|
||||||
|
finishInfo(state, data) {
|
||||||
|
state.finishInfo = data;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
info(context) {
|
async info(context, refresh) {
|
||||||
user.info().then(info => {
|
await user.info(refresh).then(info => {
|
||||||
|
if (info.worker != null) {
|
||||||
|
context.commit('finishInfo', true);
|
||||||
|
}
|
||||||
context.commit('info', info);
|
context.commit('info', info);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue