diff --git a/common/js/request.js b/common/js/request.js index eae29a1..037f8d8 100644 --- a/common/js/request.js +++ b/common/js/request.js @@ -434,6 +434,14 @@ export default { }) return res[1].data; }, + async applyFinishOrder(params = {}) { + let res = await uni.request({ + url: '/order/detail/app/applyFinishOrder', + method: 'POST', + data: params + }) + return res[1].data; + }, async getOrderDetail(params = {}) { let res = await uni.request({ url: '/order/detail/app/detail', diff --git a/pages/order-manage/finish-order.vue b/pages/order-manage/finish-order.vue index 95b5887..4060059 100644 --- a/pages/order-manage/finish-order.vue +++ b/pages/order-manage/finish-order.vue @@ -6,53 +6,55 @@ 上传完工照片 - + + :style="'width: 120rpx; height: 120rpx; background-image:url(' + order.goodsLogoUrl + ');'"> - {{servInfo.name}} - + {{order.goodsName}} + + 商城订单 - + - 上传完工照片 + 上传完工照片 {{finishImgList.length}}/3 (按订单要求上传) - - + + - + - + - - - + @@ -62,14 +64,6 @@ export default { data() { return { - servInfo: { - name: '空调挂机柜机清洗服务', - picUrl: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big20000.jpg', - tags: [{ - level: 'info', - content: '商城订单' - }] - }, checkIndexArr: [], servIndex: [ '本单准时上门', @@ -82,7 +76,9 @@ '产生的费用是服务前说明并报给予客户,客户同意', '已让客户验收,并提示客户验收内容,已完成此项' ], - imgList: [] + finishImgList: [], + remark: '', + order: null } }, onLoad(options) { @@ -93,11 +89,95 @@ }, methods: { loadData (orderInfo) { - console.log(orderInfo) + this.order = orderInfo; }, - checkedCurBox(index) { - this.checkIndexArr[index] = 1; + chooseImgList(e, imgList) { + uni.chooseImage({ + count: 3 - imgList.length, //默认9 + sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 + sourceType: ['album'], //从相册选择 + success: (res) => { + uni.showLoading({ + title: '上传中', + mask: true + }); + res.tempFilePaths.forEach((tmpUrl, index) => { + this.$request.uploadFile(tmpUrl).then((url) => { + imgList.push(url); + if (index === res.tempFilePaths.length - 1) { + uni.hideLoading(); + } + }); + }); + } + }); + }, + viewImage(e, imgList) { + uni.previewImage({ + urls: imgList, + current: e.currentTarget.dataset.url + }); + }, + delImg(e, imgList) { + uni.showModal({ + title: '', + content: '确定要删除这张图片吗?', + cancelText: '取消', + confirmText: '确定', + success: res => { + if (res.confirm) { + imgList.splice(e.currentTarget.dataset.index, 1) + } + } + }) + }, + validData() { + let errMsg = null; + if (!this.finishImgList || this.finishImgList.length === 0) { + errMsg = "至少上传一张完工图片" + } else if (!this.order || !this.order.orderDetailId) { + errMsg = "订单信息异常,请稍后重新发起完单" + } + if (errMsg) { + uni.showToast({ + title: errMsg, + icon: 'none' + }) + return false; + } + return true; + }, + async finishOrder() { + if (!this.validData()) { + return; + } + + let res = await this.$request.applyFinishOrder({ + orderDetailId: this.order.orderDetailId, + finishImgList: this.finishImgList, + remark: this.remark + }); + if (res && res.code === 0) { + uni.showToast({ + icon: 'success', + title: '提交成功' + }) + } else if (res && res.msg) { + uni.showToast({ + icon: 'none', + title: res.msg, + duration: 3000 + }) + } else { + uni.showToast({ + icon: 'error', + title: '提交失败' + }) + } } + // checkedCurBox(index) { + // this.checkIndexArr[index] = 1; + // } }, } diff --git a/pages/order-manage/order-manage.vue b/pages/order-manage/order-manage.vue index e109be4..a931f34 100644 --- a/pages/order-manage/order-manage.vue +++ b/pages/order-manage/order-manage.vue @@ -687,11 +687,11 @@ url: '/pages/order-manage/serv-detail?order=' + encodeURIComponent(JSON.stringify(order)) }) }, - // finishOrder(order) { - // uni.navigateTo({ - // url: '/pages/order-manage/finish-order?order=' + encodeURIComponent(JSON.stringify(order)) - // }) - // }, + finishOrder(order) { + uni.navigateTo({ + url: '/pages/order-manage/finish-order?order=' + encodeURIComponent(JSON.stringify(order)) + }) + }, async updateMasterOrder(order, status) { let res = await this.$request.updateMasterOrder({ id: order.orderMasterId, @@ -704,23 +704,6 @@ }) } }, - async finishOrder(order) { - let curDate = new Date(); - let formatCurDate = curDate.getFullYear() + '-' + (curDate.getMonth() + 1) + '-' + curDate.getDate() - + ' ' + curDate.getHours() + ':' + curDate.getMinutes() + ':' + curDate.getSeconds(); - - let res = await this.updateOrderDetailStatus({ - id: order.orderDetailId, - orderStatus: 4, - workFinishTime: formatCurDate - }); - if (res && res.code === 0) { - this.reloadMasterOrderPage(); - uni.showToast({ - icon: 'success' - }) - } - }, updateRefundStatus(status, index) { this.orderList[index].refundStatus = status; }, diff --git a/pages/order-manage/serv-detail.vue b/pages/order-manage/serv-detail.vue index 4e8bb36..4f656e7 100644 --- a/pages/order-manage/serv-detail.vue +++ b/pages/order-manage/serv-detail.vue @@ -100,6 +100,21 @@ + + + + 完工图片 + + + + + + + + + 备注:{{servDetail.workerRemark}} + + 订单编码:{{servDetail.orderMasterCode}} @@ -247,6 +262,12 @@ }, hideModal(e) { this[e.currentTarget.dataset.modal] = false; + }, + viewImage(e, imgList) { + uni.previewImage({ + urls: imgList, + current: e.currentTarget.dataset.url + }); } } }