ajun 4 лет назад
Родитель
Сommit
a1ca79b84c
1 измененных файлов с 55 добавлено и 65 удалено
  1. 55 65
      resources/views/order/workOrder/index.blade.php

+ 55 - 65
resources/views/order/workOrder/index.blade.php

@@ -71,7 +71,7 @@
                                     @can('订单管理-工单处理-承运商编辑')
                                     <button class="btn btn-sm btn-outline-secondary" @click="showEditLog(item,i,2)" v-if="['快递丢件','破损'].includes(item['issue_type']['name'])">快递处理</button>
                                     @endcan
-                                    @can('订单管理-工单处理-宝时处理')
+                                    @can('订单管理-工单处理-宝时编辑')
                                     <button class="btn btn-sm btn-outline-secondary" @click="showEditLog(item,i,1)" v-if="['快递丢件','破损'].includes(item['issue_type']['name'])">宝时处理</button>
                                     @endcan
                                 </td>
@@ -369,37 +369,38 @@
                 $("#list").removeClass("d-none");
             },
             created() {
-                let self = this;
-                $.each(this.workOrders, function (index, workOrder) {
-                    if (!workOrder.order) return;
-                    if (!workOrder.order.packages) return;
-                    self.sortOrder(workOrder);
+                this.workOrders.forEach(item=>{
+                    if (!item.order) return;
+                    if (!item.order.packages) return;
+                    this.sortOrder(item);
                 });
             },
             methods: {
                 sortOrder(workOrder) {
-                    let self = this;
                     if (!workOrder.order) return;
-                    if (workOrder.order_issue) {
-                        workOrder.result_explain = workOrder.order_issue.result_explain;
-                        if (workOrder.order_issue.issue_type) {
-                            workOrder.issue_order_type = workOrder.order_issue.issue_type.name;
+                    if (workOrder['order_issue']) {
+                        workOrder.result_explain = workOrder['order_issue'].result_explain;
+                        if (workOrder['order_issue']['issue_type']) {
+                            workOrder.issue_order_type = workOrder['order_issue']['issue_type']['name'];
                         }
-                        if (workOrder.order_issue.logs) {
-                            workOrder.issue_logs = workOrder.order_issue.logs.map(item => {
-                                return {
-                                    username: item.user ? item.user.name : '',
-                                    content: item.content,
-                                    created_at: item.created_at
-                                };
-                            });
+                        if (workOrder['order_issue'].logs) {
+                            workOrder.issue_logs =  this.mapLogs(workOrder['order_issue'].logs);
                         }
                     }
                     if (!workOrder.order.packages) return;
-                    $.each(workOrder.order.packages, function (i, item) {
-                        self.sortTransfer(item);
+                    workOrder.order.packages.forEach(item=>{
+                        this.sortTransfer(item)
                     })
                 },
+                mapLogs(logs){
+                    return logs.map(item=>{
+                        return {
+                            username: item.user ? item.user.name : '',
+                            content: item.content,
+                            created_at: item.created_at
+                        };
+                    });
+                },
                 sortTransfer(item) {
                     if (!("transfer_status" in item)) return;
                     if (item.transfer_status == null || !(item.transfer_status instanceof Array)) return;
@@ -417,8 +418,8 @@
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
                             res.data.data.is_issue_order = item.is_issue_order;
-                            this.$set(this.workOrders, i, res.data.data);
                             this.sortOrder(res.data.data);
+                            this.$set(this.workOrders, i, res.data.data);
                             window.tempTip.showSuccess("审核完成");
                         } else {
                             window.tempTip.show(res.data.message ? res.data.message : '审核异常');
@@ -433,18 +434,10 @@
                     if (tag) data.ids = [item.id];
                     else data.ids = checkData;
                     if (!confirm('是否生成对应的问题件')) return;
-                    let _this = this;
                     window.tempTip.waitingTip('生成中........');
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
-                            res.data.data.forEach(item => {
-                                this.workOrders.forEach((workOrder, i) => {
-                                    if (item.id === workOrder.id) {
-                                        _this.sortOrder(item);
-                                        _this.$set(_this.workOrders, i, item);
-                                    }
-                                });
-                            });
+                            this.replaceWorkOrder(res.data.data);
                             this.$forceUpdate();
                             window.tempTip.cancelWaitingTip();
                             window.tempTip.showSuccess('已生成对应的问题件');
@@ -457,6 +450,18 @@
                         window.tempTip.show(err)
                     });
                 },
+                replaceWorkOrder(workOrders){
+                    let data = [];
+                    workOrders.forEach(workOrder=>{data[workOrder.id] = workOrder;});
+                    this.workOrders.forEach((workOrder,i)=>{
+                        if (data[workOrder.id]){
+                            let item = data[workOrder.id];
+                            this.sortOrder(item);
+                            this.$set(this.workOrders,i,item);
+                        }
+                    });
+                    this.$forceUpdate();
+                },
                 getMessageWorkOrder() {
                     let selected = checkData;
                     if (!selected) {
@@ -482,7 +487,7 @@
                     if (!item.order) return '';
                     if (!item.order.packages) return '';
                     let message = '';
-                    let issue_type = item.issue_type? item.issue_type.name : '';
+                    let issue_type = item['issue_type']? item['issue_type'].name : '';
                     switch (issue_type) {
                         case '拦截':
                             message = this.interceptMessage(item);
@@ -498,15 +503,15 @@
                 },
                 interceptMessage(item) {
                     let message = '';
-                    if (item.order.logistic.code.includes('SF') || item.order.logistic.code.includes('ZTO')) {
+                    if (item.order['logistic']['code'].includes('SF') || item.order['logistic'].code.includes('ZTO')) {
                         item.order.packages.forEach(node => {
                             message += node.logistic_number + '\n';
                         });
                         message = message.trim('\n') + ' ——拦截\n';
                     } else {
-                        let item_order_logistic_name = item.order.logistic.name;
-                        let item_order_adder = item.order.consignee_name + ' '
-                            + item.order.consignee_phone + ' '
+                        let item_order_logistic_name = item.order['logistic']['name'];
+                        let item_order_adder = item.order['consignee_name'] + ' '
+                            + item.order['consignee_phone'] + ' '
                             + ' ' + item.order.address;
                         item.order.packages.forEach(p => {
                             if (p) message += item_order_logistic_name + ' ' + p.logistic_number + ' ' + item_order_adder + '\n';
@@ -517,17 +522,16 @@
                 },
                 modificationMessage(item) {
                     let message = '';
-                    let logistic_code = item.order.logistic.code;
-                    let adder = item.order.consignee_name + ' ' + item.order.consignee_phone + ' '
+                    let logistic_code = item.order['logistic']['code'];
+                    let adder = item.order['consignee_name'] + ' ' + item.order['consignee_phone'] + ' '
                         + item.order.province + ' ' + item.order.city + ' ' + item.order.district + ' ' + item.order.address;
-
                     item.order.packages.forEach(node => {
                         if (logistic_code.includes('SF')) { // 顺丰订单
-                            message += node.logistic_number + ' ——改信息: ' + item.remark + ',运费到付或月结' + '\n';
+                            message += node['logistic_number'] + ' ——改信息: ' + item.remark + ',运费到付或月结' + '\n';
                         } else if (logistic_code.includes('ZTO')) {
-                            message += node.logistic_number + ' ——改信息:' + item.remark + '\n';
+                            message += node['logistic_number'] + ' ——改信息:' + item.remark + '\n';
                         } else {
-                            message += node.logistic_number + ' ' + adder + ' ——改地址' + item.remark + '\n';
+                            message += node['logistic_number'] + ' ' + adder + ' ——改地址' + item.remark + '\n';
                         }
                     });
                     return message;
@@ -535,7 +539,7 @@
                 getMessage(item) {
                     let message = '';
                     if (!item.order.packages) return message;
-                    let adder = item.order.consignee_name + ' ' + item.order.consignee_phone + ' '
+                    let adder = item.order['consignee_name'] + ' ' + item.order['consignee_phone'] + ' '
                         + item.order.province + ' ' + item.order.city + ' ' + item.order.district + ' ' + item.order.address;
                     item.order.packages.forEach(p => {
                         message += p.logistic_number + '  ' + adder + ' ——描述 ' + item.remark + '\n';
@@ -561,19 +565,12 @@
                 batchReview() {
                     let url = '{{route('workOrder.batchReviewApi')}}';
                     let data = {ids: checkData};
-                    let _this = this;
                     window.tempTip.setIndex('1999');
                     if (!confirm('是否对当前选中订单进行审核')) return;
                     window.tempTip.waitingTip('审核中........');
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
-                            $.each(res.data.data, (i, data) => {
-                                $.each(_this.workOrders, (index, item) => {
-                                    if (item.id === data.id) {
-                                        _this.$set(this.workOrders, index, data);
-                                    }
-                                });
-                            });
+                            this.replaceWorkOrder(res.data.data);
                             this.$forceUpdate();
                             window.tempTip.cancelWaitingTip();
                             window.tempTip.showSuccess('审核完成');
@@ -624,20 +621,11 @@
                 editOrderIssueType() {
                     let url = '{{route('workOrder.batchUpdateIssueTypeApi')}}'
                     let data = {ids: checkData, type: this.selectIssueType};
-                    let _this = this;
                     window.tempTip.setIndex(1999);
                     window.axios.post(url, data).then(res => {
                         if (res.data.success) {
                             window.tempTip.showSuccess('修改问题件类型成功');
-                            res.data.data.forEach(item => {
-                                _this.sortOrder(item);
-                                _this.workOrders.forEach((workOrder, i, array) => {
-                                    if (workOrder.id === item.id) {
-                                        array[i] = item;
-                                    }
-                                })
-                            });
-                            this.$forceUpdate();
+                            this.replaceWorkOrder(res.data.data);
                             $("#edit-issue-type-type-modal").modal('hide');
                             return;
                         }
@@ -723,9 +711,7 @@
                 fillLossWorkOrder(data){
                     let url = "{{route('workOrder.lossApi')}}";
                     window.tempTip.setIndex(1999);
-                    window.axios.post(url,data,{
-                        'Content-Type': 'multipart/form-data',
-                    }).then(res=>{
+                    window.axios.post(url,data,{'Content-Type': 'multipart/form-data',}).then(res=>{
                         if (res.data.success){
                             this.sortOrder(res.data.data);
                             this.$set(this.workOrders,this.workOrder.index,res.data.data);
@@ -800,9 +786,13 @@
                         window.tempTip.show(err);
                     });
                 },
-                verifiedProcessLog(){
+                verifiedProcessLog(){   // 校验处理信息
                     window.tempTip.setIndex(1999);
                     window.tempTip.setDuration(2000);
+                    if(this.processLog.is_indemnity === null){
+                        window.tempTip.show('选择处理方式');
+                        return false;
+                    }
                     if(this.processLog.is_indemnity === '1'){
                         if (!this.processLog.indemnity ){
                             window.tempTip.show('填写赔偿金额');