|
|
@@ -8,21 +8,17 @@
|
|
|
<div class="form-inline mt-1" id="btn">
|
|
|
@can('订单管理-订单问题件生成')
|
|
|
<button type="button"
|
|
|
- class="ml-1 btn btn-outline-dark btn-sm form-control-sm tooltipTarget"
|
|
|
+ class="ml-1 btn btn-outline-dark btn-sm form-control-sm tooltipTarget"
|
|
|
@click="createOrderIssue(null,false)" style="background: #dad7e8;">生成问题件
|
|
|
</button>
|
|
|
@endcan
|
|
|
@can('订单管理-订单问题件生成')
|
|
|
<button type="button"
|
|
|
- class="ml-1 btn btn-outline-primary btn-sm form-control-sm tooltipTarget"
|
|
|
+ class="ml-1 btn btn-outline-primary btn-sm form-control-sm tooltipTarget"
|
|
|
@click="exportText()">导出文本
|
|
|
</button>
|
|
|
@endcan
|
|
|
@can('订单管理-工单处理-审核')
|
|
|
-{{-- <button type="button"--}}
|
|
|
-{{-- class="ml-1 btn btn-outline-success btn-sm form-control-sm tooltipTarget"--}}
|
|
|
-{{-- @click="batchReview">批量审核--}}
|
|
|
-{{-- </button>--}}
|
|
|
@endcan
|
|
|
<button type="button"
|
|
|
class="ml-1 btn btn-outline-dark btn-sm form-control-sm tooltipTarget"
|
|
|
@@ -30,7 +26,7 @@
|
|
|
</button>
|
|
|
@can('订单管理-工单处理-审核')
|
|
|
<button type="button"
|
|
|
- class="ml-1 btn btn-outline-success btn-sm form-control-sm tooltipTarget"
|
|
|
+ class="ml-1 btn btn-outline-success btn-sm form-control-sm tooltipTarget"
|
|
|
@click="showEditIssueType">批量修改问题件类型
|
|
|
</button>
|
|
|
@endcan
|
|
|
@@ -46,7 +42,10 @@
|
|
|
</td>
|
|
|
<td>
|
|
|
<span v-text="item.id"></span>
|
|
|
- <span v-show="item.is_issue_order" class="badge badge-primary">问题件</span>
|
|
|
+ <a :href="'{{url("order/issue/index")}}'+'?orderCode='+item.orderno"
|
|
|
+ target="order/issue/index?addtime=15">
|
|
|
+ <span v-show="item.is_issue_order" class="badge badge-primary">问题件</span>
|
|
|
+ </a>
|
|
|
</td>
|
|
|
<td>
|
|
|
@can('订单管理-订单问题件生成')
|
|
|
@@ -56,46 +55,40 @@
|
|
|
</button>
|
|
|
@endcan
|
|
|
@can('订单管理-工单处理-货主编辑')
|
|
|
- <button class="btn btn-sm btn-outline-primary"
|
|
|
+ <button class="btn btn-sm"
|
|
|
+ style="background-color: #42a887;color: #FFFFFF;border-color: #378d72"
|
|
|
v-if="item.issue_type_name === '快递丢件' && item.status === '货主处理'"
|
|
|
@click="ownerFillWorkOrder(item,i)">
|
|
|
- 信息填充
|
|
|
+ 商家处理
|
|
|
</button>
|
|
|
@endcan
|
|
|
@can('订单管理-工单处理-承运商编辑')
|
|
|
- <button class="btn btn-sm btn-outline-primary"
|
|
|
- v-if="['快递丢件','破损','快递异常'].includes(item.issue_type_name) && item.status ==='承运商处理'"
|
|
|
+ <button class="btn btn-sm"
|
|
|
+ style="background-color:#e06538;color: #FFFFFF;border-color: #9a3d23"
|
|
|
+ v-if="['破损','快递异常'].includes(item.issue_type_name) && item.status ==='承运商处理'"
|
|
|
@click="logisticFillWorkOrder(item,i)">
|
|
|
快递处理
|
|
|
</button>
|
|
|
- <button class="btn btn-sm btn-outline-primary"
|
|
|
+ <button class="btn btn-sm"
|
|
|
+ style="background-color:#e06538;color: #FFFFFF;border-color: #9a3d23"
|
|
|
v-if="['拦截','信息更改'].includes(item.issue_type_name) && item.status ==='承运商处理'"
|
|
|
@click="logisticEndWorkOrder(item,i)">
|
|
|
快递处理
|
|
|
</button>
|
|
|
@endcan
|
|
|
@can('订单管理-工单处理-宝时编辑')
|
|
|
- <button class="btn btn-sm btn-outline-primary"
|
|
|
- v-if="['错漏发'].includes(item.issue_type_name) && item.status ==='宝时处理'"
|
|
|
+ <button class="btn btn-sm"
|
|
|
+ style="background-color: #38b1e0;color: #FFFFFF;border-color:#90acb6;"
|
|
|
+ v-if="['错漏发','快递丢件','破损'].includes(item.issue_type_name) && item.status ==='宝时处理'"
|
|
|
@click="baoShiFillWorkOrder(item,i)">
|
|
|
宝时处理
|
|
|
</button>
|
|
|
- <button class="btn btn-sm btn-outline-secondary"
|
|
|
- v-if="['快递丢件','破损'].includes(item.issue_type_name) && item.status ==='宝时处理'"
|
|
|
- @click="baoShiFillWorkOrder(item,i)">
|
|
|
- 宝时处理
|
|
|
- </button>
|
|
|
- <button class="btn btn-sm btn-outline-primary"
|
|
|
+ <button class="btn btn-sm "
|
|
|
+ style="background-color: #54c337;color: #FFFFFF;border-color:#90acb6;"
|
|
|
v-if="'宝时终审' === item.status"
|
|
|
@click="baoShiReview(item,i)">
|
|
|
终审
|
|
|
</button>
|
|
|
-
|
|
|
- {{-- <button class="btn btn-sm btn-outline-secondary"--}}
|
|
|
- {{-- v-if="['快递丢件','破损'].includes(item.issue_type_name)">--}}
|
|
|
- {{-- 宝时处理--}}
|
|
|
- {{-- </button>--}}
|
|
|
-
|
|
|
@endcan
|
|
|
</td>
|
|
|
<td>
|
|
|
@@ -121,25 +114,28 @@
|
|
|
<span v-text="item.status"></span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <span v-text="item?.owner?.name || ''"></span>
|
|
|
+ <span v-text="item.owner? item.owner.name : ''"></span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <span v-text="item?.order?.client_code || ''"></span>
|
|
|
+ <span v-text="item.order? item.order.client_code : ''"></span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <div v-for="data in (item?.order?.packages || [])">
|
|
|
+ <div v-for="data in (item.order? item.order.packages : [])">
|
|
|
<span v-text="data.logistic_number"></span>
|
|
|
</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <span v-text="item?.logistic?.name || ''"></span>
|
|
|
+ <span v-text="item.logistic ? item.logistic.name : ''"></span>
|
|
|
</td>
|
|
|
|
|
|
<td>
|
|
|
- <span v-text="item?.creator?.name || ''"></span>
|
|
|
+ <span v-text="item.creator ? item.creator.name : ''"></span>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <span v-text="item.result_explain ? item.result_explain: item.remark"></span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <span v-text="item.remark"></span>
|
|
|
+ @include('order.workOrder._issue_logs')
|
|
|
</td>
|
|
|
<td class="container">
|
|
|
<div class="row">
|
|
|
@@ -176,17 +172,19 @@
|
|
|
<div class="alert alert-light mb-0 border-top"
|
|
|
v-show="selectLog === item.id"
|
|
|
v-for="(log,index) in item.logs" v-bind:key="item.id+':'+index">
|
|
|
- <div>
|
|
|
- <span class="text-monospace">创建人:</span>
|
|
|
- <span v-text="log?.creator?.name"></span>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span class="text-monospace">创建时间:</span>
|
|
|
- <span v-text="log.created_at"></span>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span class="text-monospace">内容:</span>
|
|
|
- <span v-text="log.content"></span>
|
|
|
+ <div class="card-body col-12 p-0">
|
|
|
+ <div>
|
|
|
+ <span class="text-monospace">创建人:</span>
|
|
|
+ <span v-text="log.creator? log.creator.name : ''"></span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span class="text-monospace">创建时间:</span>
|
|
|
+ <span v-text="log.created_at"></span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span class="text-monospace">内容:</span>
|
|
|
+ <span v-text="log.content"></span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</transition-group>
|
|
|
@@ -201,12 +199,12 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
@can('订单管理-工单处理-审核')
|
|
|
- @include('order.workOrder._edit_issue_type')
|
|
|
+{{-- @include('order.workOrder._edit_issue_type')--}}
|
|
|
@endcan
|
|
|
- @include('order.workOrder._bao_shi_review')
|
|
|
- @include('order.workOrder._baoshi_fill_work_order')
|
|
|
- @include('order.workOrder._logistic_fill_work_order')
|
|
|
- @include('order.workOrder._owner_fill_work_order')
|
|
|
+ @include('order.workOrder._bao_shi_review_modal')
|
|
|
+ @include('order.workOrder._bao_shi_fill_work_order_modal')
|
|
|
+ @include('order.workOrder._logistic_fill_work_order_modal')
|
|
|
+ @include('order.workOrder._owner_fill_work_order_modal')
|
|
|
</div>
|
|
|
</div>
|
|
|
@endsection()
|
|
|
@@ -221,11 +219,14 @@
|
|
|
.fade-leave-active {
|
|
|
transition: opacity .1s;
|
|
|
}
|
|
|
+
|
|
|
.fade-enter, .fade-leave-to {
|
|
|
opacity: 0;
|
|
|
}
|
|
|
+
|
|
|
.image-div {
|
|
|
}
|
|
|
+
|
|
|
.image-w {
|
|
|
width: 100%;
|
|
|
}
|
|
|
@@ -235,7 +236,6 @@
|
|
|
el: "#list",
|
|
|
data: {
|
|
|
workOrders: {!! $workOrders->toJson() !!}['data'],
|
|
|
-
|
|
|
form: null,
|
|
|
logistics: [
|
|
|
@foreach($logistics as $logistic)
|
|
|
@@ -260,6 +260,7 @@
|
|
|
],
|
|
|
workOrder: {
|
|
|
id: null,
|
|
|
+ detail_id:null,
|
|
|
reissue_logistic_number: null, // 补发单号
|
|
|
logistic_number: null, // 丢件快递单号
|
|
|
refundImages: [], // 退款图
|
|
|
@@ -267,6 +268,7 @@
|
|
|
},
|
|
|
fillWorkOrder: {
|
|
|
id: null,
|
|
|
+ detail_id:null,
|
|
|
reissue_logistic_number: null, // 补发单号
|
|
|
logistic_number: null, // 丢件快递单号
|
|
|
refundImages: [], // 退款图
|
|
|
@@ -274,27 +276,34 @@
|
|
|
commodities: [],
|
|
|
},
|
|
|
workOrderStatus: ['创建', '信息已填写', '快递已处理', '工单完成'],
|
|
|
- reviewWorkOrder:{
|
|
|
- id:null,
|
|
|
- commodities:[],
|
|
|
- issue_type_name:null,
|
|
|
+ reviewWorkOrder: {
|
|
|
+ id: null,
|
|
|
+ detail_id:null,
|
|
|
+ commodities: [],
|
|
|
+ issue_type_name: null,
|
|
|
},
|
|
|
- selectTr: null,
|
|
|
- // selectOrderPackage: null,
|
|
|
- // selectOrder: null,
|
|
|
- // selectLogisticLogId: null,
|
|
|
- // selectBaoShiLogId: null,
|
|
|
- selectDetailId: null,
|
|
|
- selectOrderIssue: null,
|
|
|
+ selectTr: null, // table 行
|
|
|
+ selectDetailId: null, // 详情
|
|
|
+ selectCreateOrderIssueLog: null,// 创建问题件处理信息
|
|
|
+ selectOrderIssueLog: null, // 问题件处理信息
|
|
|
+ selectOrderIssue: null, // 问题件
|
|
|
selectIssueType: '',
|
|
|
- selectLog: null,
|
|
|
- selectIndex: null, // 选中工单
|
|
|
+ selectLog: null, // 工单日志
|
|
|
+ selectIndex: null, // 选中工单
|
|
|
filePrefix: "{{asset("/storage")}}",
|
|
|
damagedResults: ['核实破损', '核实未破损'],
|
|
|
mistakeResults: ['核实少发', '核实多发', '核实未错漏发'],
|
|
|
processResults: ['核实破损', '核实未破损'],
|
|
|
mistakeProcessResults: ['少发', '多发,客户买下', '多发,客户退回', '少发,不补发', '核实未错漏发'],
|
|
|
- damagedProcessResults: ['赔偿','不赔偿'],
|
|
|
+ damagedProcessResults: ['赔偿', '不赔偿'],
|
|
|
+ expressAbnormalLogisticProcessResults: ['已拦截', '已催件'],
|
|
|
+ processResultInfo: {
|
|
|
+ "少发": {'0': '宝时补发(商家不做单)'},
|
|
|
+ "多发,客户买下": {'0': '商家做出库单(物流选自提,宝时不发货)'},
|
|
|
+ "多发,客户退回": {'0': '客户自行退回(提供退回单号)', '1': '宝时上门取件(提供寄件信息,地址,联系人,电话)'},
|
|
|
+ '少发,不补发': {'0': '商家做入库单,选择明细和数量'},
|
|
|
+ '核实未错漏发': {'0': ''},
|
|
|
+ },
|
|
|
},
|
|
|
mounted() {
|
|
|
let data = [[
|
|
|
@@ -331,6 +340,12 @@
|
|
|
{name: 'review_at_end', type: 'time', tip: ['终审结束日期', '时间']},
|
|
|
{name: 'order_issue_type', type: 'select', placeholder: '问题件类型', data: this.orderIssueTypes},
|
|
|
{name: 'client_code', type: 'input', placeholder: '客户订单号'},
|
|
|
+ {
|
|
|
+ name: 'status', type: 'select', placeholder: '工单当前处理人',
|
|
|
+ data: [{name: '宝时处理', value: '宝时处理'},
|
|
|
+ {name: '货主处理', value: '货主处理'},
|
|
|
+ {name: '承运商处理', value: '承运商处理'},]
|
|
|
+ },
|
|
|
{name: 'is_end', type: 'checkbox', tip: '是否已拦截', data: [{name: 'ture', value: '已完成'}]},
|
|
|
]];
|
|
|
this.form = new query({
|
|
|
@@ -349,7 +364,8 @@
|
|
|
{name: 'logistic_numbers', value: '快递单号'},
|
|
|
{name: 'logistic', value: '承运商'},
|
|
|
{name: 'creator', value: '创建人'},
|
|
|
- {name: 'remark', value: '备注'},
|
|
|
+ {name: 'remark', value: '情况说明'},
|
|
|
+ {name: 'order_issue_log', value: '处理结果'},
|
|
|
{
|
|
|
name: 'ab_operation', type: 'multi', title: "其他操作", rows: [
|
|
|
@can('订单管理-工单处理-删除')
|
|
|
@@ -392,44 +408,111 @@
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
- filterItem(items, name, value) {
|
|
|
- return items.filter(item => {
|
|
|
- return item[name].toString() === value.toString();
|
|
|
- })
|
|
|
+ sortOrder(workOrder) {
|
|
|
+ workOrder.detail_infos = this.groupDetails(workOrder); // 工单详情
|
|
|
+ workOrder.package_images = this.groupImages(workOrder, '外包装图片'); // 外包装图片
|
|
|
+ workOrder.commodity_images = this.groupImages(workOrder, '内物破碎图片'); // 内物破碎图片
|
|
|
+ workOrder.deal_images = this.groupImages(workOrder, '交易截图'); // 交易截图
|
|
|
+ workOrder.refund_images = this.groupImages(workOrder, '退款成功截图'); //退款成功截图
|
|
|
+ workOrder.issue_logs = this.groupOrderIssueLogs(workOrder); // 问题件日志
|
|
|
+ workOrder.logs = this.groupLogs(workOrder); // 工单日志
|
|
|
+ workOrder.commodities = this.groupCommodities(workOrder);
|
|
|
+ workOrder.issue_type_name = workOrder.issue_type ? workOrder.issue_type.name : ''; // 工单类型
|
|
|
+ workOrder.pending_detail =this.groupPendingDetail(workOrder);
|
|
|
},
|
|
|
- groupImages(workOrder) {
|
|
|
- if (!workOrder.images) return;
|
|
|
- workOrder.package_images = this.filterItem(workOrder.images, 'type', 1);
|
|
|
- workOrder.commodity_images = this.filterItem(workOrder.images, 'type', 2);
|
|
|
- workOrder.deal_images = this.filterItem(workOrder.images, 'type', 3);
|
|
|
- workOrder.refund_images = this.filterItem(workOrder.images, 'type', 4);
|
|
|
+ groupPendingDetail(workOrder){
|
|
|
+ let detail = workOrder.details.find(item=>{
|
|
|
+ return !['完成','标记'].includes(item.tag);
|
|
|
+ });
|
|
|
+ if (!detail) return null;
|
|
|
+ return {
|
|
|
+ id:workOrder.id,
|
|
|
+ detail_id:detail.id,
|
|
|
+ commodities:detail.commodities,
|
|
|
+ issue_type_name:detail.issue_type ? detail.issue_type.name : '',
|
|
|
+ status:detail.status,
|
|
|
+ reissue_logistic_number:detail.reissue_logistic_number,
|
|
|
+ logistic_number:detail.logistic_number,
|
|
|
+ price:detail.price,
|
|
|
+ return_logistic_number:detail.return_logistic_number,
|
|
|
+ remark:detail.remark,
|
|
|
+ tag:detail.tag,
|
|
|
+ };
|
|
|
},
|
|
|
- sortOrder(workOrder) {
|
|
|
- this.groupImages(workOrder);
|
|
|
- workOrder.issue_type_name = workOrder?.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 = this.mapLogs(workOrder['order_issue'].logs);
|
|
|
+ groupCommodities(workOrder,isCurrent = true){
|
|
|
+ let commodities = [];
|
|
|
+ workOrder.details.forEach(detail=>{
|
|
|
+ commodities.push(...(detail.commodities ?? []))
|
|
|
+ });
|
|
|
+ commodities = commodities.filter(item=>{
|
|
|
+ if (!isCurrent){
|
|
|
+ return !['完成','标记'].includes(item.tag);
|
|
|
+ } else {
|
|
|
+ return ['完成','标记'].includes(item.tag);
|
|
|
}
|
|
|
- }
|
|
|
- if (!workOrder.order.packages) return;
|
|
|
- workOrder.order.packages.forEach(item => {
|
|
|
- this.sortTransfer(item)
|
|
|
})
|
|
|
+ return commodities;
|
|
|
+ },
|
|
|
+ groupOrderIssueLogs(workOrder) {
|
|
|
+ workOrder.current_issue_type = workOrder.issue_type ? workOrder.issue_type.name : '';
|
|
|
+ let logs = workOrder.order_issue ? (workOrder.order_issue.logs ? workOrder.order_issue.logs : []) : [];
|
|
|
+ return logs.sort((perv, cur) => {
|
|
|
+ let prevT = new Date(perv.created_at), curT = new Date(cur.created_at);
|
|
|
+ if (prevT > curT) {
|
|
|
+ return -1;
|
|
|
+ } else if (prevT === curT) {
|
|
|
+ return 0;
|
|
|
+ } else if (prevT < curT) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- mapLogs(logs) {
|
|
|
- return logs.map(item => {
|
|
|
+ groupDetails(workOrder) {
|
|
|
+ return workOrder.details.map(item => {
|
|
|
return {
|
|
|
- username: item.user?.name || '',
|
|
|
- content: item.content,
|
|
|
- created_at: item.created_at
|
|
|
+ id: item.id,
|
|
|
+ issue_type: item.issue_type ? item.issue_type.name : '', // 工单类型
|
|
|
+ price: item.price, // 商品价值总价
|
|
|
+ reissue_logistic_number: item.reissue_logistic_number, // 补发单号
|
|
|
+ return_logistic_number: item.return_logistic_number, // 退回单号
|
|
|
+ logistic_number: item.logistic_number, // 快递单号
|
|
|
+ status: item.status, // 工单状态
|
|
|
+ created_at: item.created_at, // 创建时间
|
|
|
};
|
|
|
});
|
|
|
},
|
|
|
+ groupDetailCommodities(detail) {
|
|
|
+ return detail.commodities.map(item => {
|
|
|
+ item.commodity_name = item.commodity ? item.commodity.name : '';
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ groupImages(workOrder, type) {
|
|
|
+ let images = [];
|
|
|
+ workOrder.details.forEach(detail => {
|
|
|
+ let imageList = detail.images.filter(item => {
|
|
|
+ return item.type === type;
|
|
|
+ })
|
|
|
+ images.push(...imageList);
|
|
|
+ });
|
|
|
+ return images;
|
|
|
+ },
|
|
|
+ groupLogs(workOrder) {
|
|
|
+ let logs = [];
|
|
|
+ workOrder.details.forEach(detail => {
|
|
|
+ let logList = detail.logs.map(item => {
|
|
|
+ return {
|
|
|
+ id: item.id, // id
|
|
|
+ created_at: item.created_at, // 创建时间
|
|
|
+ creator: item.creator, // 创建人
|
|
|
+ type: item.type, // 类型
|
|
|
+ content: item.content, // 内容
|
|
|
+ };
|
|
|
+ });
|
|
|
+ logs.push(...logList);
|
|
|
+ });
|
|
|
+ return logs;
|
|
|
+ },
|
|
|
sortTransfer(item) {
|
|
|
if (!("transfer_status" in item)) return;
|
|
|
if (item.transfer_status == null || !(item.transfer_status instanceof Array)) return;
|
|
|
@@ -441,28 +524,12 @@
|
|
|
return 0;
|
|
|
});
|
|
|
},
|
|
|
- {{--review(item, i) {--}}
|
|
|
- {{-- let url = '{{route('workOrder.reviewApi')}}';--}}
|
|
|
- {{-- let data = {id: item.id};--}}
|
|
|
- {{-- window.axios.post(url, data).then(res => {--}}
|
|
|
- {{-- if (res.data.success) {--}}
|
|
|
- {{-- res.data.data.is_issue_order = item.is_issue_order;--}}
|
|
|
- {{-- 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 : '审核异常');--}}
|
|
|
- {{-- }--}}
|
|
|
- {{-- }).catch(err => {--}}
|
|
|
- {{-- window.tempTip.show(err)--}}
|
|
|
- {{-- })--}}
|
|
|
- {{--},--}}
|
|
|
createOrderIssue(item, tag) { // 生成问题件
|
|
|
let url = '{{route('workOrder.buildOrderIssueApi')}}';
|
|
|
let data = {};
|
|
|
if (tag) data.ids = [item.id];
|
|
|
else data.ids = checkData;
|
|
|
- window.tempTip.confirm('是否生成对应的问题件',()=>{
|
|
|
+ window.tempTip.confirm('是否生成对应的问题件', () => {
|
|
|
window.tempTip.waitingTip('生成中........');
|
|
|
window.axios.post(url, data).then(res => {
|
|
|
if (res.data.success) {
|
|
|
@@ -479,7 +546,6 @@
|
|
|
window.tempTip.show(err)
|
|
|
});
|
|
|
})
|
|
|
-
|
|
|
},
|
|
|
replaceWorkOrder(workOrders) {
|
|
|
let data = [];
|
|
|
@@ -518,7 +584,7 @@
|
|
|
getExportText(item) {
|
|
|
if (!item.order || !item.order.packages) return '';
|
|
|
let message = '';
|
|
|
- let issue_type = item['issue_type']?.name || '';
|
|
|
+ let issue_type = item['issue_type'] ? item['issue_type'].name : '';
|
|
|
switch (issue_type) {
|
|
|
case '拦截':
|
|
|
message = this.interceptMessage(item);
|
|
|
@@ -535,9 +601,9 @@
|
|
|
interceptMessage(item) {
|
|
|
let message = '';
|
|
|
let order = item.order;
|
|
|
- let order_packages = item.order?.packages || [];
|
|
|
- let logistic_code = item.order ?.['logistic']?.code || ''; // 承运商编码
|
|
|
- let logistic_name = item.order ?.['logistic']?.name || ''; // 承运商名称
|
|
|
+ let order_packages = item.order ? item.order.packages : [];
|
|
|
+ let logistic_code = item.order ? (item.order['logistic'] ? item.order['logistic'].code : '') : ''; // 承运商编码
|
|
|
+ let logistic_name = item.order ? (item.order['logistic'] ? item.order['logistic'].name : '') : ''; // 承运商名称
|
|
|
|
|
|
let {consignee_name, consignee_phone, address} = order;
|
|
|
let order_adder = `${consignee_name} ${consignee_phone} ${address}`;
|
|
|
@@ -550,14 +616,14 @@
|
|
|
if (item) message += `${logistic_name} ${logistic_number} ${order_adder}\n`;
|
|
|
}
|
|
|
});
|
|
|
- message = message.trim('\n') + ' ——拦截\n';
|
|
|
+ message = message.trim() + ' ——拦截\n';
|
|
|
return message;
|
|
|
},
|
|
|
modificationMessage(item) {
|
|
|
let message = '';
|
|
|
let {remark, order} = item;
|
|
|
- let order_packages = item.order?.packages || [];
|
|
|
- let logistic_code = item.order ?.['logistic']?.code || '';
|
|
|
+ let order_packages = item.order ? item.order.packages : [];
|
|
|
+ let logistic_code = item.order ? (item.order['logistic'] ? item.order['logistic'].code : '') : '';
|
|
|
|
|
|
const {consignee_name, consignee_phone, province, city, district, address} = order;
|
|
|
let adder = `${consignee_name} ${consignee_phone} ${province} ${city} ${district} ${address}`;
|
|
|
@@ -672,7 +738,7 @@
|
|
|
})
|
|
|
},
|
|
|
destroy(item, i) {
|
|
|
- window.tempTip.confirm('是否删除当前工单',()=>{
|
|
|
+ window.tempTip.confirm('是否删除当前工单', () => {
|
|
|
let url = '{{url('apiLocal/workOrder/')}}' + '/' + item.id;
|
|
|
window.tempTip.waitingTip('删除.........');
|
|
|
window.axios.delete(url).then(res => {
|
|
|
@@ -691,17 +757,19 @@
|
|
|
})
|
|
|
},
|
|
|
spliceImage(i, images) {
|
|
|
- window.tempTip.confirm('是否取消选择该图片',()=>{
|
|
|
+ window.tempTip.setIndex(1999);
|
|
|
+ window.tempTip.confirm('是否取消选择该图片', () => {
|
|
|
images.splice(i, 1);
|
|
|
});
|
|
|
},
|
|
|
clearWorkOrder(item = null, index = null) {
|
|
|
this.fillWorkOrder.id = item ? item.id : null;
|
|
|
+ this.fillWorkOrder.detail_id = item ? this.getCurrentWorkOrderDetailId(item) : null;
|
|
|
this.selectIndex = index ? index : null;
|
|
|
- this.fillWorkOrder.reissue_logistic_number = null; // 补发单号
|
|
|
- this.fillWorkOrder.logistic_number = null; // 补发单号
|
|
|
- this.fillWorkOrder.dealImages = []; // 交易图
|
|
|
- this.fillWorkOrder.refundImages = []; // 退款图
|
|
|
+ this.fillWorkOrder.reissue_logistic_number = null; // 补发单号
|
|
|
+ this.fillWorkOrder.logistic_number = null; // 补发单号
|
|
|
+ this.fillWorkOrder.dealImages = []; // 交易图
|
|
|
+ this.fillWorkOrder.refundImages = []; // 退款图
|
|
|
this.fillWorkOrder.commodities = [];
|
|
|
},
|
|
|
setFormDataImagePrefix(formData, prefix, images) {
|
|
|
@@ -714,136 +782,6 @@
|
|
|
return item.file;
|
|
|
})
|
|
|
},
|
|
|
- // showEditLog(item, index, type) {
|
|
|
- // this.processLog.type = type;
|
|
|
- // this.processLog.index = index;
|
|
|
- // this.processLog.work_order_id = item.id;
|
|
|
- // this.processLog.indemnity = null;
|
|
|
- // this.processLog.is_indemnity = null;
|
|
|
- // this.processLog.remark = null;
|
|
|
- // this.processLog.indemnitor = null;
|
|
|
- // $("#work-order-process-log-modal").modal('show');
|
|
|
- // },
|
|
|
- {{--storeLogisticProcessLog() {--}}
|
|
|
- {{-- let url = "{{route('workOrderProcessLog.logisticLogApi')}}";--}}
|
|
|
- {{-- let data = {--}}
|
|
|
- {{-- indemnity: this.processLog.indemnity,--}}
|
|
|
- {{-- work_order_id: this.processLog.work_order_id,--}}
|
|
|
- {{-- is_indemnity: this.processLog.is_indemnity,--}}
|
|
|
- {{-- remark: this.processLog.remark,--}}
|
|
|
- {{-- };--}}
|
|
|
- {{-- if (!this.verifiedProcessLog()) return;--}}
|
|
|
- {{-- window.tempTip.setDuration(9999);--}}
|
|
|
- {{-- window.tempTip.setIndex(1999);--}}
|
|
|
- {{-- window.tempTip.waitingTip('操作中请稍后');--}}
|
|
|
- {{-- window.axios.post(url, data).then(res => {--}}
|
|
|
- {{-- window.tempTip.cancelWaitingTip();--}}
|
|
|
- {{-- window.tempTip.setIndex(1999);--}}
|
|
|
- {{-- window.tempTip.setDuration(2000);--}}
|
|
|
- {{-- if (res.data.success) {--}}
|
|
|
- {{-- window.tempTip.showSuccess('创建成功');--}}
|
|
|
- {{-- this.$set(this.workOrders[this.processLog.index], 'logistic_log', res.data.data);--}}
|
|
|
- {{-- $('#work-order-process-log-modal').modal('hide');--}}
|
|
|
- {{-- } else {--}}
|
|
|
- {{-- window.tempTip.show(res.data.message ? res.data.message : '创建异常,刷新页面重试');--}}
|
|
|
- {{-- }--}}
|
|
|
- {{-- }).catch(err => {--}}
|
|
|
- {{-- window.tempTip.setIndex(1999);--}}
|
|
|
- {{-- window.tempTip.setDuration(2000);--}}
|
|
|
- {{-- window.tempTip.show(err);--}}
|
|
|
- {{-- });--}}
|
|
|
- {{--},--}}
|
|
|
- {{--storeProcessLog() {--}}
|
|
|
- {{-- let url = "{{route('workOrderProcessLog.LogApi')}}";--}}
|
|
|
- {{-- let data = {--}}
|
|
|
- {{-- indemnity: this.processLog.indemnity,--}}
|
|
|
- {{-- work_order_id: this.processLog.work_order_id,--}}
|
|
|
- {{-- is_indemnity: this.processLog.is_indemnity,--}}
|
|
|
- {{-- remark: this.processLog.remark,--}}
|
|
|
- {{-- indemnitor: this.processLog.indemnitor,--}}
|
|
|
- {{-- };--}}
|
|
|
- {{-- if (!this.verifiedProcessLog()) return;--}}
|
|
|
- {{-- window.tempTip.setDuration(9999);--}}
|
|
|
- {{-- window.tempTip.setIndex(1999);--}}
|
|
|
- {{-- window.tempTip.waitingTip('操作中请稍后');--}}
|
|
|
- {{-- window.axios.post(url, data).then(res => {--}}
|
|
|
- {{-- window.tempTip.cancelWaitingTip();--}}
|
|
|
- {{-- window.tempTip.setDuration(2000);--}}
|
|
|
- {{-- if (res.data.success) {--}}
|
|
|
- {{-- window.tempTip.showSuccess('创建成功');--}}
|
|
|
- {{-- this.$set(this.workOrders[this.processLog.index], 'process_log', res.data.data);--}}
|
|
|
- {{-- $('#work-order-process-log-modal').modal('hide');--}}
|
|
|
- {{-- } else {--}}
|
|
|
- {{-- window.tempTip.show(res.data.message ? res.data.message : '创建异常,刷新页面重试');--}}
|
|
|
- {{-- }--}}
|
|
|
- {{-- }).catch(err => {--}}
|
|
|
- {{-- window.tempTip.setDuration(2000);--}}
|
|
|
- {{-- window.tempTip.show(err);--}}
|
|
|
- {{-- });--}}
|
|
|
- {{--},--}}
|
|
|
- updateWorkOrderStatus(item, e, i) {
|
|
|
- let url = "{{route('workOrder.updateStatusApi')}}";
|
|
|
- let data = {
|
|
|
- id: item.id,
|
|
|
- work_order_status: e.target.value
|
|
|
- }
|
|
|
- window.tempTip.waitingTip('处理中......');
|
|
|
- window.tempTip.setDuration('1999');
|
|
|
- window.axios.post(url, data).then(res => {
|
|
|
- window.tempTip.cancelWaitingTip();
|
|
|
- window.tempTip.setDuration('1999');
|
|
|
- if (res.data.success) {
|
|
|
- item.work_order_status = data.work_order_status;
|
|
|
- window.tempTip.showSuccess('修改成功');
|
|
|
- return;
|
|
|
- }
|
|
|
- window.tempTip.show(res.data.message ? res.data.message : '修改失败');
|
|
|
- }).catch(err => {
|
|
|
- window.tempTip.show('修饰异常:' + err);
|
|
|
- });
|
|
|
- },
|
|
|
- verifiedProcessLog() { // 校验处理信息
|
|
|
- window.tempTip.setIndex(1999);
|
|
|
- window.tempTip.setDuration(2000);
|
|
|
- if (this.processLog.is_indemnity === null) {
|
|
|
- window.tempTip.show('选择处理方式');
|
|
|
- return false;
|
|
|
- }
|
|
|
- if (parseInt(this.processLog.type) === 1 && this.processLog.indemnitor == null) {
|
|
|
- window.tempTip.show('指定赔偿方');
|
|
|
- return false;
|
|
|
- }
|
|
|
- if (this.processLog.is_indemnity === '1') {
|
|
|
- if (!this.processLog.indemnity) {
|
|
|
- window.tempTip.show('填写赔偿金额');
|
|
|
- return false;
|
|
|
- }
|
|
|
- } else if (this.processLog.is_indemnity === '2') {
|
|
|
- if (this.processLog.remark === null || this.processLog.remark.trim(' ').length === 0) {
|
|
|
- window.tempTip.show('填写不赔偿理由');
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- return true;
|
|
|
- },
|
|
|
- logisticUpdateWorkOrderStatus(item, e) {
|
|
|
- let url = "{{route('workOrder.logisticUpdateStatusApi')}}";
|
|
|
- let data = {id: item.id, work_order_status: e.target.value};
|
|
|
- window.tempTip.waitingTip('处理中......');
|
|
|
- window.tempTip.setDuration('1999');
|
|
|
- window.axios.post(url, data).then(res => {
|
|
|
- window.tempTip.cancelWaitingTip();
|
|
|
- window.tempTip.setDuration('1999');
|
|
|
- if (res.data.success) {
|
|
|
- item.work_order_status = data.work_order_status;
|
|
|
- window.tempTip.showSuccess('修改成功');
|
|
|
- return;
|
|
|
- }
|
|
|
- window.tempTip.show(res.data.message ? res.data.message : '修改失败');
|
|
|
- }).catch(err => {
|
|
|
- window.tempTip.show('修饰异常:' + err);
|
|
|
- });
|
|
|
- },
|
|
|
pasteImage(event, imageArray) {
|
|
|
for (let i = 0; i < event.clipboardData.items.length; i++) {
|
|
|
let item = event.clipboardData.items[i];
|
|
|
@@ -873,7 +811,7 @@
|
|
|
});
|
|
|
},
|
|
|
logisticFillWorkOrder(item, index) {
|
|
|
- this.fillWorkOrder = JSON.parse(JSON.stringify(item));
|
|
|
+ this.fillWorkOrder = JSON.parse(JSON.stringify(item.pending_detail));
|
|
|
this.selectIndex = index;
|
|
|
$("#logistic-fill-work-order-modal").modal('show');
|
|
|
},
|
|
|
@@ -881,6 +819,7 @@
|
|
|
let url = "{{route("workOrder.commodity.logisticUpdateApi")}}";
|
|
|
let formData = new FormData();
|
|
|
formData.append('id', this.fillWorkOrder.id);
|
|
|
+ formData.append('detail_id', this.fillWorkOrder.detail_id);
|
|
|
this.fillWorkOrderCommodity(formData);
|
|
|
window.tempTip.setIndex(1999);
|
|
|
window.axios.post(url, formData, {'Content-Type': 'multipart/form-data'})
|
|
|
@@ -892,7 +831,7 @@
|
|
|
$("#logistic-fill-work-order-modal").modal('hide');
|
|
|
|
|
|
} else {
|
|
|
- window.tempTip.show(res.data?.message || '');
|
|
|
+ window.tempTip.show(res.data.message ? res.data.message : '修改异常');
|
|
|
}
|
|
|
}).catch(err => {
|
|
|
window.tempTip.show(err);
|
|
|
@@ -900,27 +839,32 @@
|
|
|
},
|
|
|
logisticEndWorkOrder(item, index) {
|
|
|
let url = "{{route("workOrder.logistic.endApi")}}";
|
|
|
- window.axios.post(url, {id: item.id}).then(res => {
|
|
|
+ let data = {
|
|
|
+ id:item.id,
|
|
|
+ detail_id:this.getCurrentWorkOrderDetailId(item),
|
|
|
+ };
|
|
|
+ window.axios.post(url, data).then(res => {
|
|
|
if (res.data.success) {
|
|
|
window.tempTip.showSuccess('工单已处理');
|
|
|
this.sortOrder(res.data.data);
|
|
|
this.$set(this.workOrders, index, res.data.data);
|
|
|
} else {
|
|
|
- window.tempTip.show(res.data?.message || '工单处理异常刷新后重试');
|
|
|
+ window.tempTip.show(res.data.message ? res.data.message : '工单处理异常刷新后重试');
|
|
|
}
|
|
|
}).catch(err => {
|
|
|
window.tempTip.show(err || '工单处理异常刷新后重试');
|
|
|
});
|
|
|
},
|
|
|
baoShiFillWorkOrder(item, index) {
|
|
|
- this.fillWorkOrder = JSON.parse(JSON.stringify(item));
|
|
|
+ this.fillWorkOrder = JSON.parse(JSON.stringify(item.pending_detail));
|
|
|
this.selectIndex = index;
|
|
|
- $('#baoshi-fill-work-order-modal').modal('show');
|
|
|
+ $('#bao-shi-fill-work-order-modal').modal('show');
|
|
|
},
|
|
|
baoShiUpdateCommodities() {
|
|
|
- let url = "{{route("workOrder.commodity.baoShiUpdateCommodities")}}";
|
|
|
+ let url = "{{route("workOrder.commodity.baoShiUpdateApi")}}";
|
|
|
let formData = new FormData();
|
|
|
formData.append('id', this.fillWorkOrder.id);
|
|
|
+ formData.append('detail_id', this.fillWorkOrder.detail_id);
|
|
|
this.fillWorkOrderCommodity(formData)
|
|
|
window.tempTip.setIndex(1999);
|
|
|
window.axios.post(url, formData, {'Content-Type': 'multipart/form-data'})
|
|
|
@@ -929,9 +873,9 @@
|
|
|
this.sortOrder(res.data.data);
|
|
|
this.$set(this.workOrders, this.selectIndex, res.data.data);
|
|
|
window.tempTip.showSuccess('修改成功');
|
|
|
- $("#baoshi-fill-work-order-modal").modal('hide');
|
|
|
+ $("#bao-shi-fill-work-order-modal").modal('hide');
|
|
|
} else {
|
|
|
- window.tempTip.show(res.data?.message || '');
|
|
|
+ window.tempTip.show(res.data.message ? res.data.message : '修改异常');
|
|
|
}
|
|
|
}).catch(err => {
|
|
|
window.tempTip.show(err);
|
|
|
@@ -942,7 +886,11 @@
|
|
|
this.getOrderCommodity(item).then(res => {
|
|
|
window.tempTip.cancelWaitingTip();
|
|
|
this.clearWorkOrderWith(item, index);
|
|
|
- this.fillWorkOrder.commodities = res;
|
|
|
+ this.fillWorkOrder.commodities = res.map(item => {
|
|
|
+ item.abnormal_amount = item.amount;
|
|
|
+ item.tag = 0;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
$("#owner-fill-work-order-modal").modal('show');
|
|
|
}).catch(err => {
|
|
|
window.tempTip.cancelWaitingTip();
|
|
|
@@ -950,7 +898,8 @@
|
|
|
});
|
|
|
},
|
|
|
clearWorkOrderWith(item, index) {
|
|
|
- this.fillWorkOrder.id = item?.id;
|
|
|
+ this.fillWorkOrder.id = item.id;
|
|
|
+ this.fillWorkOrder.detail_id = this.getCurrentWorkOrderDetailId(item);
|
|
|
this.selectIndex = index;
|
|
|
this.fillWorkOrder.reissue_logistic_number = null; // 补发单号
|
|
|
this.fillWorkOrder.logistic_number = null; // 补发单号
|
|
|
@@ -960,7 +909,7 @@
|
|
|
getOrderCommodity(item) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
let url = '{{route('order.commodity.getCommoditiesApi')}}';
|
|
|
- let data = {orderNo: item?.order?.code};
|
|
|
+ let data = {orderNo: item ? (item.order ? item.order.code : '') : ''};
|
|
|
window.axios.post(url, data).then(res => {
|
|
|
if (res.data.success) {
|
|
|
resolve(res.data.data);
|
|
|
@@ -970,8 +919,10 @@
|
|
|
});
|
|
|
},
|
|
|
ownerUpdateWorkOrder() {
|
|
|
+ if (!this.checkFillLossWorkOrder()) return;
|
|
|
let formData = new FormData();
|
|
|
formData.append('id', this.fillWorkOrder.id);
|
|
|
+ formData.append('detail_id', this.fillWorkOrder.detail_id);
|
|
|
formData.append('reissue_logistic_number', this.fillWorkOrder.reissue_logistic_number);
|
|
|
formData.append('logistic_number', this.fillWorkOrder.logistic_number);
|
|
|
formData.append('price', this.fillWorkOrder.price);
|
|
|
@@ -982,6 +933,25 @@
|
|
|
this.fillWorkOrderCommodity(formData);
|
|
|
this.ownerFillLossWorkOrder(formData);
|
|
|
},
|
|
|
+ checkFillLossWorkOrder() {
|
|
|
+ window.tempTip.setIndex(2000);
|
|
|
+ window.tempTip.setDuration(1500);
|
|
|
+ let message = null;
|
|
|
+ let abnormal_amount_is_null = this.fillWorkOrder.commodities.filter(item => {
|
|
|
+ return Number(item.abnormal_amount) === 0;
|
|
|
+ }).length > 0;
|
|
|
+ if (abnormal_amount_is_null) message = '异常数量不能为空';
|
|
|
+ if (this.fillWorkOrder.refundImages.length === 0) message = '退款截图为必需项!';
|
|
|
+ if (this.fillWorkOrder.reissue_logistic_number !== null) {
|
|
|
+ } else if (this.fillWorkOrder.dealImages.length === 0) {
|
|
|
+ message = '交易截图为必需项!';
|
|
|
+ }
|
|
|
+ if (message) {
|
|
|
+ window.tempTip.show(message);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
fillWorkOrderCommodity(formData) {
|
|
|
this.fillWorkOrder.commodities.forEach(e => {
|
|
|
formData.append("commodities[]", JSON.stringify(e));
|
|
|
@@ -1004,33 +974,40 @@
|
|
|
window.tempTip.show(err);
|
|
|
});
|
|
|
},
|
|
|
- baoShiReview(item,i){ // 宝时终审
|
|
|
- this.reviewWorkOrder.commodities = JSON.parse(JSON.stringify(item.commodities));
|
|
|
- this.reviewWorkOrder.issue_type_name = item.issue_type_name;
|
|
|
- this.reviewWorkOrder.id = item.id;
|
|
|
+ baoShiReview(item, i) { // 宝时终审
|
|
|
+ this.reviewWorkOrder = JSON.parse(JSON.stringify(item.pending_detail));
|
|
|
this.selectIndex = i;
|
|
|
$('#bao-shi-review-modal').modal('show');
|
|
|
},
|
|
|
- review(){
|
|
|
+ getCurrentWorkOrderDetailId(workOrder){
|
|
|
+ let items = workOrder.details.filter(item=>{
|
|
|
+ return !['标记','完成'].includes(item.tag);
|
|
|
+ });
|
|
|
+ if (items.length === 0) return null;
|
|
|
+ let item = items.shift();
|
|
|
+ return item.id;
|
|
|
+ },
|
|
|
+ review() {
|
|
|
let formData = new FormData();
|
|
|
- formData.append('id',this.reviewWorkOrder.id);
|
|
|
+ formData.append('id', this.reviewWorkOrder.id);
|
|
|
+ formData.append('detail_id', this.reviewWorkOrder.detail_id);
|
|
|
this.reviewWorkOrderCommodity(formData);
|
|
|
let url = "{{route('workOrder.baoShi.reviewApi')}}";
|
|
|
window.tempTip.setIndex(1999);
|
|
|
window.tempTip.waitingTip('审核中');
|
|
|
- window.axios.post(url,formData).then(res=>{
|
|
|
+ window.axios.post(url, formData).then(res => {
|
|
|
window.tempTip.cancelWaitingTip();
|
|
|
- if (res.data.success){
|
|
|
+ if (res.data.success) {
|
|
|
this.sortOrder(res.data.data);
|
|
|
- this.$set(this.workOrders,this.selectIndex,res.data.data);
|
|
|
+ this.$set(this.workOrders, this.selectIndex, res.data.data);
|
|
|
window.tempTip.setIndex(1999);
|
|
|
window.tempTip.showSuccess('审核完成');
|
|
|
} else {
|
|
|
window.tempTip.setIndex(1999);
|
|
|
- window.tempTip.show(res.data?.message || '审核异常刷新后重试');
|
|
|
+ window.tempTip.show(res.data.message ? res.data.message : '审核异常刷新后重试');
|
|
|
}
|
|
|
$('#bao-shi-review-modal').modal('hide');
|
|
|
- }).catch(err=>{
|
|
|
+ }).catch(err => {
|
|
|
window.tempTip.cancelWaitingTip();
|
|
|
window.tempTip.setIndex(1999);
|
|
|
window.tempTip.show(err);
|
|
|
@@ -1041,6 +1018,84 @@
|
|
|
formData.append("commodities[]", JSON.stringify(e));
|
|
|
});
|
|
|
},
|
|
|
+ computeBaoShiCheckResult(item) {
|
|
|
+ let amount = Number(item.amount);
|
|
|
+ let bao_shi_check_amount = Number(item['bao_shi_check_amount']);
|
|
|
+ item.check_result = amount === bao_shi_check_amount ? '核实未错漏发' : (amount < bao_shi_check_amount ? '核实多发' : '核实少发')
|
|
|
+ },
|
|
|
+ sumPrice(workOrder) {
|
|
|
+ workOrder.price = workOrder.commodities.reduce((prev, cur) => {
|
|
|
+ return Number(prev) + Number(cur.price);
|
|
|
+ }, 0);
|
|
|
+ },
|
|
|
+ createOrderIssueLog(orderIssueId,item){
|
|
|
+ let log_text = document.getElementById(orderIssueId+'_log_text');
|
|
|
+ let log_check = document.getElementById(orderIssueId+'_log_check');
|
|
|
+ let data = {
|
|
|
+ id:item.order_issue.id,
|
|
|
+ order_issue_id:orderIssueId,
|
|
|
+ content:log_text.value,
|
|
|
+ tag:log_check.checked ? 1 : 0,
|
|
|
+ };
|
|
|
+ let url = "{{route("order.issue.log.storeApi")}}";
|
|
|
+ window.tempTip.waitingTip("创建中");
|
|
|
+ window.tempTip.setDuration(1500);
|
|
|
+ window.axios.post(url,data).then(res=>{
|
|
|
+ window.tempTip.cancelWaitingTip();
|
|
|
+ if (res.data.success){
|
|
|
+ item.issue_logs.unshift(res.data.data);
|
|
|
+ window.tempTip.showSuccess('添加成功');
|
|
|
+ this.selectCreateOrderIssueLog = null;
|
|
|
+ log_text.value = null;
|
|
|
+ log_check.checked = false;
|
|
|
+ } else {
|
|
|
+ window.tempTip.setDuration(2000);
|
|
|
+ window.tempTip.show(res.data.fail_info);
|
|
|
+ }
|
|
|
+ }).catch(err=>{
|
|
|
+ window.tempTip.cancelWaitingTip();
|
|
|
+ tempTip.setDuration(4000);
|
|
|
+ tempTip.show('网络异常:' + err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ destroyLog(log,index,i){
|
|
|
+ if (!confirm('是否删除当前记录')) return;
|
|
|
+ if (log.type === '创建') {
|
|
|
+ tempTip.show('创建记录不能删除');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let url = "{{route("order.issue.log.destroyApi")}}";
|
|
|
+ let data = {id:log.id};
|
|
|
+ window.tempTip.setIndex('1999');
|
|
|
+ window.axios.post(url,data).then(res=>{
|
|
|
+ if (res.data.success){
|
|
|
+ this.$delete(this.workOrders[i].issue_logs,index);
|
|
|
+ tempTip.setDuration(1500);
|
|
|
+ tempTip.showSuccess('删除成功');
|
|
|
+ } else {
|
|
|
+ tempTip.setDuration(2000);
|
|
|
+ tempTip.show('删除失败:' + res.data.fail_info);
|
|
|
+ }
|
|
|
+ }).catch(err=>{
|
|
|
+ tempTip.setDuration(2500);
|
|
|
+ tempTip.show('网络异常:' + err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ tagIssueLog(log){
|
|
|
+ let url = '{{route('order.issue.log.tagApi')}}';
|
|
|
+ let data = {id: log.id};
|
|
|
+ if (!confirm('是否标记当前记录客户不可见')) return;
|
|
|
+ window.axios.post(url, data).then(res => {
|
|
|
+ if (res.data.success) {
|
|
|
+ window.tempTip.showSuccess('标记成功');
|
|
|
+ log.tag = 1;
|
|
|
+ } else {
|
|
|
+ window.tempTip.show(res.data.message ? res.data.message : '标记出现异常');
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ window.tempTip.show(err);
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
});
|
|
|
</script>
|