diff --git a/src/components/widgets/switch.vue b/src/components/widgets/switch.vue index a8f4498..a51251b 100644 --- a/src/components/widgets/switch.vue +++ b/src/components/widgets/switch.vue @@ -37,6 +37,11 @@ export default { }, mounted() {}, destroyed() {}, + watch: { + open(v) { + this.state = v; + }, + }, methods: { changeState() { this.state = !this.state; diff --git a/src/core/apis.js b/src/core/apis.js index 9a9c0b6..34c31f2 100644 --- a/src/core/apis.js +++ b/src/core/apis.js @@ -53,6 +53,10 @@ const apis = { url: "/user/workerinfo/setinfo", auth: true, }, + setServiceState: { + url: "/user/workerinfo/setworker", + auth: true, + }, withdraw: { withdraw: { url: "/user/workerinfo/drawmoney", diff --git a/src/core/models/user.js b/src/core/models/user.js index d242212..2baf5cc 100644 --- a/src/core/models/user.js +++ b/src/core/models/user.js @@ -108,6 +108,7 @@ export default { license: response.data.worker.imgc, content: response.data.worker.desc, type: response.data.worker.status, + acceptOrderState: response.data.worker.worker, }; } prototype.$storage.set('userinfo', user); @@ -280,5 +281,20 @@ export default { return reject(response.msg); }).catch(e => { }); }); + }, + /** + * 设置服务状态 + */ + setServiceState() { + return new Promise((resolve, reject) => { + prototype.$request({ + api: "user.setServiceState", + }).then(response => { + if (response.code == 1) { + return resolve(); + } + return reject(response.msg); + }).catch(e => { }); + }); } } diff --git a/src/pages/member/member.vue b/src/pages/member/member.vue index 892ff05..a3bc194 100644 --- a/src/pages/member/member.vue +++ b/src/pages/member/member.vue @@ -20,12 +20,13 @@ - {{ acceptOrderState ? "正在" : "暂停" }}接单 + {{ acceptState ? "正在" : "暂停" }}接单 @@ -125,7 +126,7 @@ export default { timer: null, safePt: 0, backgroundImage: require("@/static/temp/1.png"), - acceptOrderState: false, + acceptState: false, typeText: "", typeTextColor: "", showService: false, @@ -149,6 +150,7 @@ export default { computed: { ...mapGetters({ isLogin: "user/isLogin", + acceptOrder: "user/acceptOrder", }), ...mapState({ userInfo: (state) => state.user.info, @@ -168,6 +170,7 @@ export default { let [typeText, typeTextColor] = this.$models.worker.worketTypeText(this.userInfo.worker.type); this.typeText = typeText; this.typeTextColor = typeTextColor; + this.acceptState = this.acceptOrder; } }, onReady() {}, @@ -188,6 +191,12 @@ export default { // this.carefreeContent = response.data.content; // }); }, + setServiceState(state) { + this.$models.user.setServiceState().then(() => { + this.$store.dispatch("user/info", true); + this.acceptState = this.acceptOrder; + }); + }, }, }; diff --git a/src/store/modules/user.js b/src/store/modules/user.js index b29d537..dfaf50a 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -18,6 +18,9 @@ export default { isLogin(state) { return state.token && state.token.length > 0; }, + acceptOrder(state) { + return state.info.worker.acceptOrderState == 1; + }, }, mutations: { showLoginModal(state, data) {