diff --git a/src/core/apis.js b/src/core/apis.js index 93c384d..6134745 100644 --- a/src/core/apis.js +++ b/src/core/apis.js @@ -1,4 +1,10 @@ const apis = { + system: { + uploadFile: { + url: "/wxapp/index/one", + showLoading: true, + }, + }, user: { sendCode: { url: "/wxapp/public/send", @@ -17,8 +23,21 @@ const apis = { }, info: { 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 diff --git a/src/core/models.js b/src/core/models.js index 28abc40..200779e 100644 --- a/src/core/models.js +++ b/src/core/models.js @@ -1,9 +1,13 @@ import order from "@/core/models/order"; import user from "@/core/models/user"; import worker from "@/core/models/worker"; +import system from "@/core/models/system"; +import service from "@/core/models/service"; export default { order, user, worker, + system, + service } diff --git a/src/core/models/service.js b/src/core/models/service.js new file mode 100644 index 0000000..3eb77f5 --- /dev/null +++ b/src/core/models/service.js @@ -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); + }); + }); + }, +} diff --git a/src/core/models/system.js b/src/core/models/system.js new file mode 100644 index 0000000..03706a8 --- /dev/null +++ b/src/core/models/system.js @@ -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); + }); + }); + }, +} \ No newline at end of file diff --git a/src/core/models/user.js b/src/core/models/user.js index f733cdc..bd2dd21 100644 --- a/src/core/models/user.js +++ b/src/core/models/user.js @@ -18,7 +18,7 @@ export default { code: result.code } }).then((response) => { - this.$storage.set("open_id", response.data.openid); + prototype.$storage.set("open_id", response.data.openid); return resolve(response.data); }).catch(e => { }); } @@ -86,14 +86,31 @@ export default { }).then(response => { if (response.code == 1) { let user = { - id: response.data.id, avatar: response.data.avatar, nickname: response.data.user_nickname, openid: response.data.openid, mobile: response.data.mobile, 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); return resolve(user); } else { @@ -183,5 +200,21 @@ export default { return reject(response.msg); }).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 => { }); + }); } } diff --git a/src/pages/auth/auth.vue b/src/pages/auth/auth.vue index 3af5169..b880037 100644 --- a/src/pages/auth/auth.vue +++ b/src/pages/auth/auth.vue @@ -185,21 +185,33 @@ export default { }) .then((response) => { this.$store.dispatch("user/info"); - this.$utils.toPage( - "", - { - complete() { - let pages = getCurrentPages(); - let refer = pages[pages.length - 2]; - if (typeof refer !== "undefined") { - if (typeof refer.initPage !== "undefined") { - refer.initPage(refer.options); + this.$utils.toast(response.msg).then(() => { + this.$utils.toPage( + "", + { + complete() { + let pages = getCurrentPages(); + // #ifdef H5 + let refer = pages[pages.length - 2]; + 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) => { this.$utils.toast(e); diff --git a/src/pages/member/member.vue b/src/pages/member/member.vue index 24960a4..3e85f95 100644 --- a/src/pages/member/member.vue +++ b/src/pages/member/member.vue @@ -8,18 +8,18 @@ - + - {{ userInfo.username }} + {{ userInfo.worker.name }} {{ models.worker.getWorkerTypeText(userInfo.workerType) }}{{ models.worker.getWorkerTypeText(userInfo.worker.type) }} - ID:{{ userInfo.id }} + ID:{{ userInfo.worker.id }} 注册时间:{{ userInfo.createTime }} @@ -118,6 +118,7 @@ export default { return { utils: this.$utils, models: this.$models, + timer: null, safePt: 0, backgroundImage: require("@/static/temp/1.png"), acceptOrderState: false, @@ -130,14 +131,15 @@ export default { computed: { ...mapGetters({ isLogin: "user/isLogin", - finishInfo: "user/finishInfo", }), ...mapState({ userInfo: (state) => state.user.info, + finishInfo: (state) => state.user.finishInfo, }), }, onLoad() {}, - onShow() { + async onShow() { + await this.$store.dispatch("user/info"); if (this.isLogin && !this.finishInfo) { this.$utils.toPage("/pages/member/service-info"); } @@ -186,6 +188,7 @@ export default { .image { width: 132rpx; height: 132rpx; + border-radius: 50%; } } .detail { diff --git a/src/pages/member/service-info.vue b/src/pages/member/service-info.vue index 79f8a5e..ff68a69 100644 --- a/src/pages/member/service-info.vue +++ b/src/pages/member/service-info.vue @@ -7,25 +7,37 @@ *我的头像 + - + + + + + *服务区域 - - - {{ areaText ? areaText : "请选择服务区域" }} - - + + + + {{ province }} - {{ city }} + + + + 请选择服务区域 + + + + @@ -60,28 +72,12 @@ - - *服务类型 - - - {{ serviceTypeText ? serviceTypeText : "请选择服务类型" }} - - - - *认证资料请录入身份资料 @@ -108,8 +104,8 @@ 服务资质电工相关服务分类必上传 - - + + 上传资质 @@ -124,7 +120,7 @@ - 提交审核 + 提交审核 @@ -133,52 +129,23 @@