export default { data() { return { actionList: [], showReportSheet: false, order: {} } }, onShow() { let selectEditAddr = uni.getStorageSync('selectEditAddr') if (selectEditAddr.id) { this.handleAddressSubmit(selectEditAddr.id) } }, methods: { //操作成功之后的回调 successFeedback() { uni.$emit('btnActionSuccess') }, //修改地址 handleAddressSubmit(addressId) { const params = { orderId: this.order.orderId, addressId } uni.$u.http.post('/token/order/modifyAddress', params).then(res => { if (res.code === 200) { uni.showToast({ title: '地址修改成功', icon: 'none' }) this.$emit('success') this.successFeedback() uni.removeStorageSync('selectEditAddr') } else { uni.showToast({ title: res.msg, icon: 'none' }) } }).finally(() => { uni.removeStorageSync('selectEditAddr') uni.hideLoading() }) }, //根据code获取字典 /token/common/getDictOptions getDict(code) { return uni.$u.http.get('/token/common/getDictOptions?type=' + code) }, //获取一键上报的选项 code user_report_options getReportOptions() { this.getDict('user_report_options').then(res => { if (res.code === 200) { this.actionList = res.data.map(item => ({ text: item.dictLabel, value: item.dictValue })) } }) }, //一键上报相关操作 handleReportSelect(index) { this.showReportSheet = false let reason = this.actionList[index].value if (this.actionList[index]?.isCancel) { this.submitCancel(reason) } else { this.submitReport(reason) } }, submitReport(reason) { const params = { orderId: this.order.orderId, reason: reason } uni.$u.http.post('/token/order/userReport', params).then(res => { if (res.code === 200) { uni.showToast({ title: '一键上报已上报给管理员', icon: 'none' }) this.$emit('success') this.successFeedback() } }) }, //订单取消字典 order_cancel_reason_user getCancelReason() { this.getDict('order_cancel_reason_user').then(res => { if (res.code === 200) { this.actionList = res.data.map(item => ({ text: item.dictLabel, value: item.dictValue, isCancel: true })) } }) }, // 订单操作方法 handleAction({ type, order }) { console.log('handleAction', type, order) this.order = order switch (type) { case 'submit': uni.navigateTo({ url: "/pages-home/pages/book-order" }) uni.setStorageSync('orderId', this.order.orderId) break case 'editAddress': uni.navigateTo({ url: `/pages-mine/pages/address/list?id=${this.order.addressId}&isSelect=1&editAddress=1` }) break case 'cancel': this.showReportSheet = true this.getCancelReason() break case 'report': this.showReportSheet = true this.getReportOptions() break case 'remindAudit': this.submitRemindAudit() break case 'complaint': uni.navigateTo({ url: `/pages-mine/pages/complaint?orderId=${this.order.orderId}` }) break case 'compensation': this.$emit('compensation', this.order) break } }, submitCancel(reason) { const params = { orderId: this.order.orderId, reason: reason } uni.$u.http.post('/token/order/userCancel', params).then(res => { if (res.code === 200) { uni.showToast({ title: '您的订单已取消', icon: 'none' }) this.$emit('success') this.successFeedback() } }) }, //提醒审核 submitRemindAudit() { uni.$u.http.post('/api/token/order/urgeOrder', { orderId: this.order.orderId }).then(res => { if (res.code === 200) { uni.showToast({ title: '已提醒给管理员进行加急审核', icon: 'none' }) } else { uni.showToast({ title: res.msg, icon: 'none' }) } }) }, } }