|
|
@@ -66,14 +66,69 @@
|
|
|
</button>
|
|
|
@endcan
|
|
|
|
|
|
+ @can('订单管理-工单处理-宝时编辑')
|
|
|
+ <button type="button" class="ml-1 btn btn-outline-primary btn-sm"
|
|
|
+ v-show="checkData.length > 0"
|
|
|
+ @click="showBatchCustomRejectedStatus">
|
|
|
+ 批量修改退回状态
|
|
|
+ </button>
|
|
|
+ @endcan
|
|
|
+
|
|
|
</div>
|
|
|
<div>
|
|
|
<table class="table table-sm table-striped table-hover table-bordered td-min-width-80 " id="table">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <th style="min-width: 100px">
|
|
|
+ <label for="all">
|
|
|
+ <input id="all" type="checkbox" @click="checkAll($event)"/>
|
|
|
+ </label>
|
|
|
+ </th>
|
|
|
+ <th style="min-width: 120px">工单号</th>
|
|
|
+ <th style="min-width: 120px">操作</th>
|
|
|
+ <th style="min-width: 200px">创建时间</th>
|
|
|
+ <th style="min-width: 120px">工单类型</th>
|
|
|
+ <th style="min-width: 200px">当前进度</th>
|
|
|
+ <th style="min-width: 120px">客户</th>
|
|
|
+ <th style="min-width: 200px">店铺名称</th>
|
|
|
+ <th style="min-width: 200px">客户单号</th>
|
|
|
+ <th style="min-width: 120px">承运人</th>
|
|
|
+ <th style="min-width: 120px">快递单号</th>
|
|
|
+ <th style="min-width: 120px">当前处理人</th>
|
|
|
+ <th style="min-width: 120px">创建人</th>
|
|
|
+ <th style="min-width: 150px">情况说明</th>
|
|
|
+ <th style="min-width: 50px;max-width: 50px" v-text="hideRejectedBills ? '隐藏' :'展开' ">展开</th>
|
|
|
+
|
|
|
+ <th v-if="hideRejectedBills" style="min-width: 220px">退回单号</th>
|
|
|
+ @if( \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-宝时编辑') || \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-商家编辑') )
|
|
|
+ <th v-if="hideRejectedBills" style="min-width: 450px">退回商品详情</th>
|
|
|
+ @endif
|
|
|
+ <th style="min-width: 120px">处理日志</th>
|
|
|
+ @can('订单管理-工单处理-宝时编辑')
|
|
|
+ <th style="min-width: 120px">问题件处理结果</th>
|
|
|
+ @endcan
|
|
|
+ @can('订单管理-工单处理-宝时编辑')
|
|
|
+ <th style="min-width: 120px">承运商赔偿金额</th>
|
|
|
+ <th style="min-width: 120px">承运商快递减免</th>
|
|
|
+ <th style="min-width: 100px">宝时赔偿金额</th>
|
|
|
+ <th style="min-width: 120px">宝时快递减免</th>
|
|
|
+ <th style="min-width: 200px">仓库组责任方</th>
|
|
|
+ <th style="min-width: 200px">项目组责任方</th>
|
|
|
+ @endcan
|
|
|
+ @can('订单管理-工单处理-删除')
|
|
|
+ <th style="min-width: 75px">删除</th>
|
|
|
+ @endcan
|
|
|
+ <th style="min-width: 300px">资料</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
<tbody>
|
|
|
<template v-for="(item,i) in workOrders">
|
|
|
<tr @click="selectTr===i+1?selectTr=0:selectTr=i+1" :class="selectTr===i+1?'focusing' : ''">
|
|
|
<td>
|
|
|
- <label><input name="checkData" type="checkbox" :value="item.id"></label>
|
|
|
+ <label> <input class="checkItem" type="checkbox"
|
|
|
+ :value="item.id"
|
|
|
+ v-model="checkData">
|
|
|
+ </label>
|
|
|
<span v-show="isNewWorkOrder(item)" class="badge bg-primary text-white ">新</span>
|
|
|
@can( '订单管理-工单处理-宝时编辑')
|
|
|
<span v-show="isStrandWorkOrder(item)"
|
|
|
@@ -105,6 +160,18 @@
|
|
|
<span class="badge badge-light"
|
|
|
v-text="item.order_detail ? item.order_detail.rejecting_status : ''"></span>
|
|
|
</template>
|
|
|
+
|
|
|
+ <template>
|
|
|
+ @can('订单管理-工单处理-宝时编辑')
|
|
|
+ <select class="form-control form-control-sm"
|
|
|
+ v-model="item.custom_rejected_status"
|
|
|
+ @change="changeCustomRejectedStatus(item,$event)">
|
|
|
+ <option value="无">无</option>
|
|
|
+ <option value="待退回">待退回</option>
|
|
|
+ <option value="退回中">退回中</option>
|
|
|
+ </select>
|
|
|
+ @endcan
|
|
|
+ </template>
|
|
|
</td>
|
|
|
<td>
|
|
|
<span v-text="item.id"></span>
|
|
|
@@ -226,14 +293,15 @@
|
|
|
<td class="p-0 m-0 w-50" style="width:30px;" v-if="i===0"
|
|
|
:rowspan="workOrders.length">
|
|
|
<span class="btn"
|
|
|
+ id="rejected_bill_btn"
|
|
|
style="max-width: 50px"
|
|
|
- :class="hideRejectedBills ? 'btn-outline-secondary':'btn-outline-info'"
|
|
|
+ :class="hideRejectedBills ? 'btn-outline-info':'btn-outline-secondary'"
|
|
|
@click="toggleRejectedBill()" :style="{'min-height':toggleBtnHeight+'px'}"
|
|
|
- v-text="hideRejectedBills ? '展开运单列' : '隐藏运单列'">
|
|
|
+ v-text="hideRejectedBills ? '隐藏运单列' : '展开运单列'">
|
|
|
</span>
|
|
|
</td>
|
|
|
|
|
|
- <td class="text-muted child-layer-3-hide" v-if="!hideRejectedBills">
|
|
|
+ <td class="text-muted child-layer-3-hide" v-if="hideRejectedBills">
|
|
|
<div class="form-inline">
|
|
|
<div class="form-group">
|
|
|
<input type="text" class="form-control form-text form-control-sm mr-1">
|
|
|
@@ -258,7 +326,7 @@
|
|
|
</div>
|
|
|
</td>
|
|
|
@if( \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-宝时编辑') || \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-商家编辑') )
|
|
|
- <td class="p-0 child-layer-3-hide align-center" v-if="!hideRejectedBills">
|
|
|
+ <td class="p-0 child-layer-3-hide align-center" v-if="hideRejectedBills">
|
|
|
<div class="m-0 p-0" v-if="item.rejected_bill_items">
|
|
|
<table class="table table-sm m-0" v-show="showRejectedBillItem === item.id">
|
|
|
<tr v-for="rejected_bill_item in item.rejected_bill_items">
|
|
|
@@ -381,25 +449,18 @@
|
|
|
</select>
|
|
|
</td>
|
|
|
@endcan
|
|
|
+ @can('订单管理-工单处理-删除')
|
|
|
+ <td>
|
|
|
+ <button type="button"
|
|
|
+ class="btn btn-sm btn-outline-danger"
|
|
|
+ @click="destroy(item,i)">
|
|
|
+ 删除
|
|
|
+ </button>
|
|
|
+ </td>
|
|
|
+ @endcan
|
|
|
<td class="container" style="min-width: 500px">
|
|
|
- <div class="row">
|
|
|
- @can('订单管理-工单处理-删除')
|
|
|
- <div class="col-2 ">
|
|
|
- <div class="header-alert">
|
|
|
- <button type="button"
|
|
|
- class="btn btn-sm btn-outline-danger"
|
|
|
- @click="destroy(item,i)">
|
|
|
- 删除
|
|
|
- </button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- @endcan
|
|
|
- <div class="col-10 m-0 ">
|
|
|
- @include('order.workOrder._work_order_details')
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ @include('order.workOrder._work_order_details')
|
|
|
</td>
|
|
|
-
|
|
|
</tr>
|
|
|
</template>
|
|
|
</tbody>
|
|
|
@@ -421,12 +482,12 @@
|
|
|
@include('order.workOrder._edit_process_log')
|
|
|
@include('order.workOrder._order_commodity_info')
|
|
|
@include('order.workOrder._rejected_item_equals_order_commodity')
|
|
|
+ @include('order.workOrder._custom_rejected_status')
|
|
|
</div>
|
|
|
@endsection()
|
|
|
|
|
|
@section("lastScript")
|
|
|
<script type="text/javascript" src="{{asset('js/queryForm/queryForm.js')}}"></script>
|
|
|
- <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>
|
|
|
<script type="text/javascript" src="{{mix('js/element-ui.js') }}"></script>
|
|
|
<script type="text/javascript" src="{{asset('js/element/index.js')}}"></script>
|
|
|
<script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
|
|
|
@@ -526,6 +587,7 @@
|
|
|
let vue = new Vue({
|
|
|
el: "#list",
|
|
|
data: {
|
|
|
+ checkData: [],
|
|
|
isLogistic: false,
|
|
|
isOwner: false,
|
|
|
isBaoShi: false,
|
|
|
@@ -650,7 +712,7 @@
|
|
|
dialogProcessLogVisible: false, // 工单处理日志
|
|
|
dialogOrderCommoditiesVisible: false, // 订单商品详情
|
|
|
dialogCommoditiesEqualsVisible: false, // 商品对比
|
|
|
-
|
|
|
+ dialogCustomRejectedStatusVisible: false, // 自定义退回状态
|
|
|
showProcessLogId: null, // workOrder->id
|
|
|
showAddDetailProcessLog: null, // workOrderDetail->ids
|
|
|
showAddProcessLogFrom: null, //
|
|
|
@@ -686,11 +748,17 @@
|
|
|
{name: '差异退回', value: '差异退回'},
|
|
|
],
|
|
|
commodityEqualsMap: [],
|
|
|
- hideRejectedBills: true,
|
|
|
- tableHeader:null,
|
|
|
- toggleBtnHeight:0,
|
|
|
+ hideRejectedBills: false,
|
|
|
+ tableHeader: null,
|
|
|
+ toggleBtnHeight: 0,
|
|
|
},
|
|
|
computed: {},
|
|
|
+ watch: {
|
|
|
+ checkData(value) {
|
|
|
+ let dom = document.getElementById('all')
|
|
|
+ dom.checked = value.length === this.workOrders.length;
|
|
|
+ }
|
|
|
+ },
|
|
|
mounted() {
|
|
|
$(".up").slideUp();
|
|
|
$(".tooltipTarget").tooltip({'trigger': 'hover'});
|
|
|
@@ -731,7 +799,13 @@
|
|
|
], [
|
|
|
{name: 'review_at_start', type: 'time', tip: ['终审开始日期', '时间']},
|
|
|
{name: 'review_at_end', type: 'time', tip: ['终审结束日期', '时间']},
|
|
|
- {name: 'order_issue_type', type: 'select', placeholder: '问题件类型', data: this.orderIssueTypes},
|
|
|
+ {
|
|
|
+ name: 'order_issue_type',
|
|
|
+ type: 'select_multiple_select',
|
|
|
+ tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的问题件类型'],
|
|
|
+ placeholder: ['问题件类型', '定位或多选问题件类型'],
|
|
|
+ data: this.orderIssueTypes
|
|
|
+ },
|
|
|
{name: 'client_code', type: 'input', placeholder: '客户订单号'},
|
|
|
{
|
|
|
name: 'status', type: 'select', placeholder: '工单当前处理人',
|
|
|
@@ -843,7 +917,7 @@
|
|
|
appendDom: "btn",
|
|
|
});
|
|
|
this.form.init();
|
|
|
- this.initTableHeader();
|
|
|
+ this.toggleBtnHeight = document.getElementById('table').clientHeight;
|
|
|
},
|
|
|
created() {
|
|
|
this.workOrders.forEach(item => {
|
|
|
@@ -869,18 +943,7 @@
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
- initTableHeader(){
|
|
|
- let column = this.headerColumn();
|
|
|
- this.tableHeader = new Header({
|
|
|
- el: "table",
|
|
|
- name: "work_orders",
|
|
|
- column: column,
|
|
|
- data: this.workOrders,
|
|
|
- fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
|
|
|
- });
|
|
|
- this.tableHeader.init();
|
|
|
- this.toggleBtnHeight = document.getElementById('table').clientHeight;
|
|
|
- },
|
|
|
+
|
|
|
waitingTempTip(message) {
|
|
|
window.tempTip.setIndex(2005);
|
|
|
window.tempTip.waitingTip(message);
|
|
|
@@ -956,7 +1019,7 @@
|
|
|
workOrder.pending_detail = this.groupPendingDetail(workOrder);
|
|
|
workOrder.logistic_numbers = this.groupLogisticNumber(workOrder);
|
|
|
workOrder.orderno = workOrder.order ? workOrder.order.code : '';
|
|
|
- workOrder.process_logs = this.groupProcess_logs(workOrder.pending_detail);
|
|
|
+ workOrder.process_logs = this.groupProcessLogs(workOrder);
|
|
|
workOrder.log_is_show = false;
|
|
|
workOrder.shop_name = workOrder.order ? (workOrder.order.shop ? workOrder.order.shop.name : '') : '';
|
|
|
workOrder.owner_name = workOrder.owner ? workOrder.owner.name : '';
|
|
|
@@ -1134,17 +1197,14 @@
|
|
|
}
|
|
|
return new Array(...logistic_numbers);
|
|
|
},
|
|
|
- groupProcess_logs(pending_detail) {
|
|
|
- return pending_detail.process_logs ? pending_detail.process_logs.map(e => {
|
|
|
- e.log_is_show = false;
|
|
|
- return e;
|
|
|
- }) : [];
|
|
|
+ groupProcessLogs(workOrder) {
|
|
|
+ return workOrder.details.map(e => e.process_logs ? e.process_logs : []).reduce((a, b) => a = [...a, ...b], []).sort((pre, cur) => cur.id - pre.id);
|
|
|
},
|
|
|
createOrderIssue(item, tag) { // 生成问题件
|
|
|
let url = '{{route('workOrder.buildOrderIssueApi')}}';
|
|
|
let data = {};
|
|
|
if (tag) data.ids = [item.id];
|
|
|
- else data.ids = checkData;
|
|
|
+ else data.ids = this.checkData;
|
|
|
window.tempTip.confirm('是否生成对应的问题件', () => {
|
|
|
window.tempTip.waitingTip('生成中........');
|
|
|
window.axios.post(url, data).then(res => {
|
|
|
@@ -1180,7 +1240,7 @@
|
|
|
},
|
|
|
|
|
|
getMessageWorkOrder() {
|
|
|
- let selected = checkData;
|
|
|
+ let selected = this.checkData;
|
|
|
if (!selected) {
|
|
|
window.tempTip.show('未选中任何信息');
|
|
|
return null;
|
|
|
@@ -2833,8 +2893,7 @@
|
|
|
item.status = "完成";
|
|
|
item.owner_tag = "";
|
|
|
this.$delete(this.workOrders, index);
|
|
|
- $("input:checkbox[name='checkData']").attr('checked', false);
|
|
|
- checkData = [];
|
|
|
+ this.checkData = [];
|
|
|
} else {
|
|
|
this.errorTempTip(res.data.message ? res.data.message : '完结工单异常');
|
|
|
}
|
|
|
@@ -3029,7 +3088,7 @@
|
|
|
},
|
|
|
// 问题件批处理日志
|
|
|
showBatchEditOrderIssueLog() {
|
|
|
- if (checkData.length === 0) {
|
|
|
+ if (this.checkData.length === 0) {
|
|
|
this.errorTempTip('请勾选工单');
|
|
|
return;
|
|
|
}
|
|
|
@@ -3038,7 +3097,7 @@
|
|
|
batchEditOrderIssueLog() {
|
|
|
let url = '{{route('order.issue.log.workOrder.storeApi')}}';
|
|
|
let data = {
|
|
|
- ids: checkData,
|
|
|
+ ids: this.checkData,
|
|
|
content: this.$refs.order_issue_log.value,
|
|
|
};
|
|
|
if (data.content === '' || data.content.trim().length === 0) {
|
|
|
@@ -3070,14 +3129,14 @@
|
|
|
});
|
|
|
},
|
|
|
checkDataHasSize() {
|
|
|
- if (checkData.length === 0) {
|
|
|
+ if (this.checkData.length === 0) {
|
|
|
this.errorTempTip("请勾选需要完结的工单");
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
},
|
|
|
checkDataIsToBeEnd() {
|
|
|
- let count = this.workOrders.filter(e => checkData.includes(`${e.id}`))
|
|
|
+ let count = this.workOrders.filter(e => this.checkData.includes(`${e.id}`))
|
|
|
.filter(e => e.status !== '待货主完结').length;
|
|
|
if (count > 0) {
|
|
|
this.errorTempTip("勾选工单中有不符合完结条件的工单");
|
|
|
@@ -3087,7 +3146,7 @@
|
|
|
},
|
|
|
getCheckDetailsIds() {
|
|
|
return this.workOrders.filter(e => {
|
|
|
- return checkData.includes(`${e.id}`);
|
|
|
+ return this.checkData.includes(`${e.id}`);
|
|
|
}).map(e => {
|
|
|
return e.pending_detail ? e.pending_detail.detail_id : null;
|
|
|
}).filter(e => e);
|
|
|
@@ -3103,14 +3162,14 @@
|
|
|
window.tempTip.cancelWaitingTip();
|
|
|
if (res.data.success) {
|
|
|
this.successTempTip('处理完成');
|
|
|
- checkData.forEach(e => {
|
|
|
+ this.checkData.forEach(e => {
|
|
|
let index = this.workOrders.findIndex(workOrder => `${workOrder.id}` === `${e}`);
|
|
|
if (index >= 0) {
|
|
|
this.$delete(this.workOrders, index);
|
|
|
}
|
|
|
});
|
|
|
$("input:checkbox[name='checkData']").attr('checked', false);
|
|
|
- checkData = [];
|
|
|
+ this.checkData = [];
|
|
|
} else {
|
|
|
this.errorTempTip(res.data.message);
|
|
|
}
|
|
|
@@ -3120,7 +3179,7 @@
|
|
|
});
|
|
|
},
|
|
|
getSelectedWorkOrders() {
|
|
|
- return this.workOrders.filter(e => checkData.includes(`${e.id}`));
|
|
|
+ return this.workOrders.filter(e => this.checkData.includes(e.id));
|
|
|
},
|
|
|
getItemsStatus(items) {
|
|
|
let item = items.find(e => e);
|
|
|
@@ -3248,6 +3307,7 @@
|
|
|
baoShiBatchHandler() {
|
|
|
if (!this.checkDataHasSize()) return;
|
|
|
let selected_items = this.getSelectedWorkOrders();
|
|
|
+ console.log(selected_items);
|
|
|
let issue_type_name = this.getItemsIssueTypeName(selected_items);
|
|
|
if (!['拦截', '取消拦截', '信息更改'].includes(issue_type_name)) {
|
|
|
this.errorTempTip('批量处理只支持`拦截`,`取消拦截`,`信息更改`');
|
|
|
@@ -3316,7 +3376,7 @@
|
|
|
this.replaceWorkOrder(res.data.data);
|
|
|
this.dialogBaoShiBatchHandlerVisible = false;
|
|
|
$("input:checkbox[name='checkData']").attr('checked', false);
|
|
|
- checkData = [];
|
|
|
+ this.checkData = [];
|
|
|
return;
|
|
|
}
|
|
|
this.errorTempTip(res.data.message ? res.data.message : '处理异常刷新后重试');
|
|
|
@@ -3404,7 +3464,7 @@
|
|
|
})
|
|
|
},
|
|
|
showBatchStoreProcessLogs() {
|
|
|
- if (checkData.length === 0) {
|
|
|
+ if (this.checkData.length === 0) {
|
|
|
this.errorTempTip('请选择需要处理工单')
|
|
|
return;
|
|
|
}
|
|
|
@@ -3413,7 +3473,7 @@
|
|
|
batchStoreProcessLogs() {
|
|
|
let url = "{{route('workOrder.processLog.batchStore')}}";
|
|
|
let data = {
|
|
|
- ids: checkData,
|
|
|
+ ids: this.checkData,
|
|
|
content: this.processLogs.content,
|
|
|
};
|
|
|
this.waitingTempTip('处理中');
|
|
|
@@ -3653,74 +3713,57 @@
|
|
|
let url = '{{route('workOrder.exportApi')}}';
|
|
|
let token = '{{ csrf_token() }}';
|
|
|
if (sign) {
|
|
|
- excelExport(true, checkData, url, this.total, token);
|
|
|
+ excelExport(true, this.checkData, url, this.total, token);
|
|
|
} else {
|
|
|
- excelExport(false, checkData, url, null, token);
|
|
|
+ excelExport(false, this.checkData, url, null, token);
|
|
|
}
|
|
|
},
|
|
|
toggleRejectedBill() {
|
|
|
this.hideRejectedBills = !this.hideRejectedBills;
|
|
|
- if(this.tableHeader !== null){
|
|
|
- let column = this.headerColumn();
|
|
|
- this.tableHeader.redrawHeader(column);
|
|
|
- }
|
|
|
- },
|
|
|
- headerColumn() {
|
|
|
- let columns = [];
|
|
|
- columns.push({name: 'id', value: '工单号', neglect: true},
|
|
|
- {name: 'operation', value: '操作', neglect: true},
|
|
|
- {name: 'created_at', value: '创建时间', neglect: true},
|
|
|
- {name: 'work_type', value: '工单类型', neglect: true},
|
|
|
- {name: 'process_progress', value: '当前进度', neglect: true},
|
|
|
- {name: 'owner', value: '客户', neglect: true},
|
|
|
- {name: 'shop_name', value: '店铺名称'},
|
|
|
- {name: 'client_no', value: '客户订单号'},
|
|
|
- {name: 'logistic_name', value: '承运人'},
|
|
|
- {name: 'logistic_numbers', value: '快递单号'},
|
|
|
- {name: 'status', value: '当前处理人', neglect: true},
|
|
|
- {name: 'creator', value: '创建人'},
|
|
|
- {name: 'remark', value: '情况说明'},
|
|
|
- {name: 'rejectedBills', value: '展开',neglect: true,max_width:30},)
|
|
|
- if (!this.hideRejectedBills) {
|
|
|
- columns.push({name: 'return_logistic_number', value: '退回单号'});
|
|
|
- @if( \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-宝时编辑') || \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-商家编辑') )
|
|
|
- columns.push({name: 'rejected_bills_items', value: '退回商品详情'});
|
|
|
- @endif
|
|
|
- }
|
|
|
- columns.push({
|
|
|
- name: 'process_logs', value: '处理日志'
|
|
|
- },
|
|
|
- @can('订单管理-工单处理-宝时编辑')
|
|
|
- {
|
|
|
- name: 'order_issue_log', value: '问题件处理结果'
|
|
|
- },
|
|
|
- @endcan
|
|
|
- @can('订单管理-工单处理-宝时编辑')
|
|
|
- {
|
|
|
- name: 'logistic_indemnity_money', value: '承运商赔偿金额'
|
|
|
- },
|
|
|
- {name: 'logistic_express_remission', value: '承运商快递减免'},
|
|
|
- {name: 'bao_shi_indemnity_money', value: '宝时赔偿金额'},
|
|
|
- {name: 'bao_shi_express_remission', value: '宝时快递减免'},
|
|
|
- {name: 'user_work_groups', value: '仓库组责任方'},
|
|
|
- {name: 'user_owner_group', value: '项目组责任方'},
|
|
|
- @endcan
|
|
|
- {
|
|
|
- name: 'ab_operation', type: 'multi', title: "其他操作", rows: [
|
|
|
- @can('订单管理-工单处理-删除')
|
|
|
- {
|
|
|
- value: "删除", col: "2"
|
|
|
- },
|
|
|
- {value: "查看资料", col: "10"},
|
|
|
- @else
|
|
|
- {
|
|
|
- value: "查看资料", col: "12"
|
|
|
- },
|
|
|
- @endcan
|
|
|
- ], neglect: true
|
|
|
- },);
|
|
|
- return columns;
|
|
|
- }
|
|
|
+ },
|
|
|
+ showBatchCustomRejectedStatus() {
|
|
|
+ if (this.checkData.length === 0) {
|
|
|
+ this.errorTempTip('请勾选需要修改的工单')
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.dialogCustomRejectedStatusVisible = true
|
|
|
+ },
|
|
|
+ batchChangeCustomRejectedStatus() {
|
|
|
+ let dom = document.getElementById('customRejectedStatus');
|
|
|
+ this.batchCustomRejectedStatus(this.checkData, dom.value)
|
|
|
+ },
|
|
|
+ batchCustomRejectedStatus(ids, rejectedStatus) {
|
|
|
+ let url = "{{route('workOrder.customRejectedStatusApi')}}";
|
|
|
+ let data = {
|
|
|
+ ids: ids,
|
|
|
+ rejectedStatus: rejectedStatus,
|
|
|
+ }
|
|
|
+ window.tempTip.setIndex(1999)
|
|
|
+ window.tempTip.setDuration(9999)
|
|
|
+ window.tempTip.waitingTip('处理中')
|
|
|
+ axios.post(url, data).then(res => {
|
|
|
+ window.tempTip.cancelWaitingTip();
|
|
|
+ if (res.data.success) {
|
|
|
+ this.workOrders.forEach(e => {
|
|
|
+ if (ids.includes(e.id)) {
|
|
|
+ e.custom_rejected_status = rejectedStatus
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.dialogCustomRejectedStatusVisible = false;
|
|
|
+ } else {
|
|
|
+ this.errorTempTip(res.data.message)
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ window.tempTip.cancelWaitingTip();
|
|
|
+ this.errorTempTip(err)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ changeCustomRejectedStatus({id}, event) {
|
|
|
+ this.batchCustomRejectedStatus([id], event.target.value)
|
|
|
+ },
|
|
|
+ checkAll(e) {
|
|
|
+ this.checkData = e.target.checked ? this.workOrders.map(e => e.id) : []
|
|
|
+ },
|
|
|
},
|
|
|
});
|
|
|
</script>
|