Browse Source

Merge branch 'dev' into pre-production

pre-production
pref_mail@163.com 3 months ago
parent
commit
0f610d9b11
  1. 355
      src/components/ArteryPrintTemplateV2/ArteryPrintTemplateV2.vue
  2. 2
      src/components/Tableexportcomponent/Tableexportcomponent.vue
  3. 196
      src/views/aftersales/aftersalesWorkOrder.vue
  4. 195
      src/views/aftersales/aftersalesWorkOrderend.vue
  5. 9
      src/views/distribution/artery/TripartiteTransferDetails.vue
  6. 8
      src/views/distribution/artery/VehicleArrivalManagement.vue
  7. 42
      src/views/distribution/artery/VehicleStowage.vue

355
src/components/ArteryPrintTemplateV2/ArteryPrintTemplateV2.vue

@ -0,0 +1,355 @@
<template>
<div class="VehicleStowageTable">
<table
style="
width: 100%;
text-align: center;
border-collapse: collapse;
border-spacing: 0;
border-top: 1px solid #000;
border-right: 1px solid #000;
"
>
<tr>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="4">
<img style="height: 40px" src="../../../public/img/htlogo.png" alt="暂无图片" />
</th>
<th
colspan="6"
style="font-size: 20px; border-bottom: 1px solid #000; border-left: 1px solid #000"
>
线
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" :colspan="7">
<img id="imgcode" :src="renderInfo.carsNoBase64" />
<div>{{ renderInfo.carsNo }}</div>
</th>
</tr>
<tr>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="4">
始发站{{ renderInfo.startWarehouseName }}
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="6">
经停站{{
renderInfo.endWarehouseNames.slice(0, renderInfo.endWarehouseNames.length - 1)[0] || ''
}}
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" :colspan="7">
目的站{{ renderInfo.endWarehouseNames.slice(-1)[0] }}
</th>
</tr>
<tr>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="4">
司机{{ renderInfo.assistantName || '' }}
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="2">
司机电话{{ renderInfo.assistantMobile || '' }}
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="3">
车牌号{{ renderInfo.carNumber || '' }}
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">
卸车完成时间 {{ renderInfo.unloadDate || '年 月 日' }}
</th>
<th
style="
border-bottom: 1px solid #000;
border-left: 1px solid #000;
text-align: left;
padding-left: 10px;
"
:colspan="7"
>
卸车人员签字
</th>
</tr>
<tr>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">序号</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">发货单位</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">开单时间</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">始发仓</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">目的仓</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">收货单位</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">收货人</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">收货电话</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">物流单号</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">合同号</th>
<th colspan="2" style="border-bottom: 1px solid #000; border-left: 1px solid #000">
装车产品明细
</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">计划件数</th>
<!-- 本仓装车件数 -->
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">本仓装车件数</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">总装车件数</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">卸车件数</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">异常备注</th>
</tr>
<tr>
<th
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
v-for="item in goodsTitleList"
:key="item"
>
{{ item }}
</th>
</tr>
<!-- -->
<template v-if="orderList.length > 0">
<tr v-for="(value, index) in orderList" style="word-break: break-all">
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000">
{{ index + 1 }}
</td>
<!-- 发货单位 -->
<td
v-if="value.mergeColumnIndex"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
:rowspan="value.mergeColumnIndex"
contenteditable
>
{{ value.shipper || '' }}
</td>
<!-- 开单时间 -->
<td
v-if="value.mergeColumnIndex"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
:rowspan="value.mergeColumnIndex"
contenteditable
>
{{ value.createTime || '' }}
</td>
<!-- 始发仓 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ value.departureWarehouseName || '' }}
</td>
<!-- 目的仓 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ value.destinationWarehouseName || '' }}
</td>
<!-- 收货单位 -->
<td
v-if="value.mergeColumnIndex"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
:rowspan="value.mergeColumnIndex"
contenteditable
>
{{ value.consignee }}
</td>
<!-- 收货人 -->
<td
v-if="value.mergeColumnIndex"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
:rowspan="value.mergeColumnIndex"
contenteditable
>
{{ value.consigneeName }}
</td>
<!-- 收货电话 -->
<td
v-if="value.mergeColumnIndex"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
:rowspan="value.mergeColumnIndex"
contenteditable
>
{{ value.consigneeMobile }}
</td>
<!-- 物流单号 -->
<td
v-if="value.mergeColumnIndex"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
:rowspan="value.mergeColumnIndex"
>
{{ value.waybillNo }}
</td>
<!-- 合同号 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000">
{{ value.orderCode }}
</td>
<!-- 品类明细 -->
<td
colspan="2"
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
contenteditable
>
{{ value.goodsListStr }}
</td>
<!-- 计划件数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ value.planNum || 0 }}
</td>
<!-- 本仓装车件数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ value.loadingNum || 0 }}
</td>
<!-- 总装车件数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ value.stockNum || 0 }}
</td>
<!-- 卸车件数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ value.unloadNum || 0 }}
</td>
<!-- 异常备注 -->
<td
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
contenteditable
></td>
</tr>
</template>
<!-- 合计行 -->
<tr>
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" colspan="10">
合计
</td>
<td colspan="2" style="border-bottom: 1px solid #000; border-left: 1px solid #000"></td>
<!-- 合计 -- 计划件数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ totalPlanNum }}
</td>
<!-- 本仓装车数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ totalloadingNum }}
</td>
<!-- 总装车数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ totalStockloadingNum }}
</td>
<!-- 卸车数 -->
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000" contenteditable>
{{ totalUnLoadNum }}
</td>
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000"></td>
</tr>
<tr style="border-bottom: 1px solid #000; border-left: 1px solid #000">
<td :colspan="6" contenteditable>投诉电话4000184668</td>
<td :colspan="6" contenteditable>营业部电话</td>
<td :colspan="5" contenteditable>系统单调度</td>
</tr>
</table>
</div>
</template>
<script setup lang="ts">
import { defineProps, ref, onMounted, reactive } from 'vue';
const props = defineProps(['waybillInfo']);
/** 运单信息 */
const { waybillInfo } = props;
/** 渲染数据 */
const renderInfo = ref<any>({});
/** 货物名称list */
const goodsTitleList = reactive([]);
/** 总件数 */
const totalNum = ref(0);
/** 卸车总数 */
const totalUnLoadNum = ref(0);
/** 计划总数 */
const totalPlanNum = ref(0);
/** 本仓装车总数 */
const totalloadingNum = ref(0);
/** 总装车总数 */
const totalStockloadingNum = ref(0);
const orderList = ref([]);
const InitData = () => {
try {
renderInfo.value = waybillInfo;
renderInfo.value.endWarehouseNames = renderInfo.value.endWarehouseNames.split(',');
const _orderList = [];
for (let i = 0; i < renderInfo.value.mainList.length; i++) {
const val = renderInfo.value.mainList[i];
//
let _flag = false;
for (let j = _orderList.length - 1; j >= 0; j--) {
const item = _orderList[j];
console.log('j :>> ', j);
if (item.waybillNo !== val.waybillNo) continue;
_orderList.splice(j, 0, val);
_flag = true;
break;
}
!_flag && _orderList.push(val);
}
console.log('_orderList :>> ', _orderList);
//
let mergeStartIndex = 0;
//
let comparisonValue = '';
const handleMerge = (startIndex: number, endIndex: number, data: {}) => {
for (let index = startIndex; index < endIndex; index++) {
const value = data[index];
if (index === startIndex) value.mergeColumnIndex = endIndex - startIndex;
else {
value.mergeColumnIndex = 0;
}
}
};
for (let index = 0; index < _orderList.length; index++) {
const element = _orderList[index];
if (index === 0) {
comparisonValue = element.waybillNo;
element.mergeColumnIndex = 1;
}
totalNum.value += element.smallTotal || 0;
totalUnLoadNum.value += element.unloadNum || 0;
totalPlanNum.value += element.planNum || 0;
totalloadingNum.value += element.loadingNum || 0;
totalStockloadingNum.value += element.stockNum || 0;
if (element.waybillNo !== comparisonValue) {
// if (index === 1) mergeStartIndex = 1;
comparisonValue = element.waybillNo;
handleMerge(mergeStartIndex, index, _orderList);
mergeStartIndex = index;
if (index === _orderList.length - 1) {
handleMerge(mergeStartIndex, index + 1, _orderList);
}
//
} else if (index === _orderList.length - 1) {
handleMerge(mergeStartIndex, index + 1, _orderList);
}
if (element.goodsList && element.goodsList.length > 0) {
for (let i = 0; i < element.goodsList.length; i++) {
const item = element.goodsList[i];
if (!goodsTitleList.includes(item.goodsName)) goodsTitleList.push(item.goodsName);
}
}
}
orderList.value = _orderList;
} catch (error) {
console.log('error :>> ', error);
} finally {
}
};
InitData();
console.log('waybillInfo :>> ', waybillInfo);
</script>
<style lang="scss" scoped>
.waybillPrintTemplate_container {
width: 100%;
}
</style>

2
src/components/Tableexportcomponent/Tableexportcomponent.vue

@ -159,6 +159,8 @@ const exportToExcel = () => {
//
XLSX.writeFile(workbook, `${exportFileName.value}.xlsx`);
emit('update:tcTableexport', false);
ElMessage.success('导出成功');
};
//
const emit = defineEmits(['update:tcTableexport']);

196
src/views/aftersales/aftersalesWorkOrder.vue

@ -1053,7 +1053,7 @@ const ButtonPermissions = computed(() => {
add: false, //
batchReject: false, //
assignment: false, //
applyArbitration: true, //
applyArbitration: false, //
batchFinish: false, //
Batchdetermination: false, //
ManagerConfirmed: false, //
@ -2575,7 +2575,6 @@ const WorkOrderAssignment = () => {
* @return {void} 无返回值
*/
const CustomerServiceIntervention = () => {
if (!details.selectionList.length) {
//
ElMessage({
@ -2584,11 +2583,6 @@ const CustomerServiceIntervention = () => {
});
return;
}
ElMessage({
message: '功能维护中...',
type: 'warning',
});
return;
CustomerServiceForm.value.loadingCustomer = true;
CustomerServiceForm.value.reasonRemarks = '';
};
@ -2799,49 +2793,87 @@ const DestroyWindow = () => {
const ExportSelection = () => {
ExportObjects.value.ExportSelection = true;
};
/**
*获取当前时间
*/
const getCurrentTime = () => {
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
return formattedDate;
};
//
const exportReport = () => {
console.log('12312');
ElMessageBox.confirm('是否导出报表?', {
ElMessageBox.confirm('是否确认导出数据?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
console.log(details.query, '');
let dataID = {
PageLoading.value = true;
const dataID = {
workOrderStatus: workOrderStatus.value,
ids: details.selectionList.length
? details.selectionList.map(item => item.id).join(',')
: undefined,
};
if (details.selectionList.length) {
dataID.ids = details.selectionList.map(item => item.id).join(',');
}
// JExportAll(dataID);
switch (TabPermissions.value) {
case 0:
ExportAll(dataID); //
exportData(dataID, '导出全部工单数据');
break;
case 1:
ExportingDuringProcessing(dataID);
exportData(dataID, '导出处理中工单数据');
break;
case 2:
ProcessedExported(dataID);
exportData(dataID, '导出处理完毕工单数据');
break;
case 4:
//
ExportClaimAmount(dataID);
exportData(dataID, '导出理赔金额工单数据');
break;
case 6:
//
CompleteExport(dataID);
case 6:
exportData(dataID, '导出完结工单数据');
break;
default:
ExportAll(dataID);
exportData(dataID, '导出全部工单数据');
break;
}
})
.catch(() => {});
};
/**
*导出数据
*/
const exportData = async (dataID, fileNamePrefix) => {
const exportFunctionMap = {
0: $_exportWorkOrder0,
1: $_exportWorkOrder1,
2: $_exportWorkOrder3,
4: $_exportWorkOrder2,
6: $_exportWorkOrder4,
};
try {
const exportFunction = exportFunctionMap[TabPermissions.value] || $_exportWorkOrder0;
const res = await exportFunction(dataID);
downloadXls(res.data, `${fileNamePrefix}${getCurrentTime()}.xlsx`);
ExportObjects.value.ExportSelection = false;
ElMessage.success('导出成功');
} catch (e) {
console.log(e);
} finally {
PageLoading.value = false;
}
};
//
const updateTcTableexport = newValue => {
ExportObjects.value.tcTableexport = newValue;
@ -2849,6 +2881,7 @@ const updateTcTableexport = newValue => {
//
const LocalExport = () => {
ExportObjects.value.tcTableexport = true;
ExportObjects.value.ExportSelection = false;
};
//
const NetworkExport = () => {
@ -2861,124 +2894,13 @@ const JExportAll = async dataID => {
try {
PageLoading.value = true;
let res = await $_exportAftersalesWorkOrder(dataID);
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
downloadXls(res.data, `导出工单数据${formattedDate}.xlsx`);
downloadXls(res.data, `导出工单数据${getCurrentTime()}.xlsx`);
PageLoading.value = false;
} catch (e) {
console.log(e);
} finally {
}
};
//
const ExportAll = async dataID => {
try {
let res = await $_exportWorkOrder0(dataID);
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
downloadXls(res.data, `导出工单数据${formattedDate}.xlsx`);
} catch (e) {
console.log(e);
} finally {
}
};
//
const ExportingDuringProcessing = async dataID => {
try {
let res = await $_exportWorkOrder1(dataID);
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
downloadXls(res.data, `导出工单数据${formattedDate}.xlsx`);
} catch (e) {
console.log(e);
} finally {
}
};
//
const ExportClaimAmount = async dataID => {
try {
let res = await $_exportWorkOrder2(dataID);
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
downloadXls(res.data, `导出工单数据${formattedDate}.xlsx`);
} catch (e) {
console.log(e);
} finally {
}
};
//
const CompleteExport = async dataID => {
try {
let res = await $_exportWorkOrder4(dataID);
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
downloadXls(res.data, `导出工单数据${formattedDate}.xlsx`);
} catch (e) {
console.log(e);
} finally {
}
};
//
const ProcessedExported = async dataID => {
try {
let res = await $_exportWorkOrder3(dataID);
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}${(currentDate.getMonth() + 1)
.toString()
.padStart(2, '0')}${currentDate.getDate().toString().padStart(2, '0')}${currentDate
.getHours()
.toString()
.padStart(2, '0')}${currentDate.getMinutes().toString().padStart(2, '0')}${currentDate
.getSeconds()
.toString()
.padStart(2, '0')}`;
downloadXls(res.data, `导出工单数据${formattedDate}.xlsx`);
} catch (e) {
console.log(e);
} finally {
}
};
</script>
<style scoped lang="scss">

195
src/views/aftersales/aftersalesWorkOrderend.vue

@ -706,13 +706,6 @@
@click="AppealRejection"
>申诉驳回</el-button
>
<!-- <el-button
v-if="$route.query.RouteIndexs == '0' && $route.query.workOrderStatus != '21'"
type="primary"
class="button"
@click="ElProcessingResults"
>处理结果</el-button
> -->
</div>
</el-form>
</div>
@ -1013,6 +1006,7 @@ import {
$_updateProcessingParty,
$_batchRepulseCompleted,
$_Cancelappeal,
$_arbitrateEnd,
} from '@/api/aftersales/aftersalesWorkOrder';
import { columnList, recordList } from '@/option/aftersales/vueTvemp.js';
import { getToken } from '@/utils/auth';
@ -2260,7 +2254,7 @@ const submitresults = async value => {
//
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: true }); //
$useStore.commit('Customer_Menu', Number($route.query.RouteIndexs)); //
AddressClosed('/aftersales/aftersalesWorkOrderend'); //
$useStore.commit('DEL_ONCE_TAG', '/aftersales/aftersalesWorkOrderend'); //
$router.push('/aftersales/aftersalesWorkOrder');
}
})
@ -2294,7 +2288,7 @@ const submitresults = async value => {
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: true }); //
$useStore.commit('Customer_Menu', Number($route.query.RouteIndexs)); //
$router.push('/aftersales/aftersalesWorkOrder');
AddressClosed('/aftersales/aftersalesWorkOrderend'); //
$useStore.commit('DEL_ONCE_TAG', '/aftersales/aftersalesWorkOrderend'); //
}
});
}
@ -2313,11 +2307,9 @@ const reasonChange = (item, index) => {
item.reasoncheck = false;
}
};
// ()
const submitCompletion = async () => {
console.log(CompensationParty.value, 'CompensationParty');
//
const CompleteInformationVerification = () => {
let _flag = CompensationParty.value.filter(item => item.state == 0);
console.log(_flag, '_flag');
_flag.forEach(item => {
if (!item.warehouseId) {
item.warehouseIdcheck = true;
@ -2327,13 +2319,21 @@ const submitCompletion = async () => {
}
});
let _result = _flag.every(item => item.warehouseId && item.reason);
console.log(_result, '_result');
if (!endFrom.value.arbitrate) {
ReasonarbClass.value = true;
} else {
ReasonarbClass.value = false;
}
if (!_result || !endFrom.value.arbitrate) {
return false;
}
return true;
};
// ()
const submitCompletion = async () => {
let _State = await CompleteInformationVerification();
if (!_State) {
ElMessage({
message: '完结信息必填项未填写完整!',
type: 'warning',
@ -2341,18 +2341,6 @@ const submitCompletion = async () => {
return;
}
// state:0
// state:1
// let _warehouseId = CompensationParty.value
// .filter(item => item.state === 0)
// .find(res => !res.warehouseId);
// if (_warehouseId) {
// ElMessage({
// message: ``,
// type: 'warning',
// });
// return;
// }
ElMessageBox.confirm('是否提交完结信息?', '完结', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -2429,7 +2417,7 @@ const submitCompletion = async () => {
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: true }); //
$useStore.commit('Customer_Menu', Number($route.query.RouteIndexs)); //
$router.push('/aftersales/aftersalesWorkOrder');
AddressClosed('/aftersales/aftersalesWorkOrderend'); //
$useStore.commit('DEL_ONCE_TAG', '/aftersales/aftersalesWorkOrderend'); //
}
})
.catch(error => {
@ -2591,44 +2579,123 @@ const ViewPackageDetails = val => {
});
dialogHistoricalPackage.value = false; //
};
//
const ElProcessingResults = () => {
$router.push({
path: '',
query: {
id: $route.query.id,
name: $route.query.businessId + '-添加异常记录',
businessId: $route.query.workOrderNumber,
RouterState: 'determine',
RouteIndexs: $route.query.RouteIndexs,
},
});
$useStore.commit('DEL_TAG_CURRENT');
};
//
const CustomerServiceCompleted = () => {
$router.push({
path: '/aftersales/aftersalesWorkOrdermodify',
query: {
id: $route.query.id,
name: $route.query.businessId + '-客服仲裁完结',
businessId: $route.query.businessId,
warehouseId: $route.query.warehouseId ? $route.query.warehouseId : '',
workOrderNumber: $route.query.workOrderNumber,
RouteIndexs: $route.query.RouteIndexs,
RouterState: 'Kfend',
index: '1',
},
});
$useStore.commit('DEL_TAG_CURRENT');
};
//
/**
* 客服仲裁完结提交
*/
const ArbitrationSubmission = () => {
ElMessage({
message: '功能维护中...',
let _State = CompleteInformationVerification();
if (!_State) {
ElMessage({
message: '完结信息填写不完整',
type: 'warning',
});
return;
}
ElMessageBox.confirm('请检查信息是否填写完整/正确,是否确认提交?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
});
return;
})
.then(async () => {
try {
Pageloading.value = true; //
let data = {
id: $route.query.id,
completionRecipientEntities: [], //
completionRecordEntities: [], //
reasonArbitration: endFrom.value.arbitrate, //
aftersalesProcessingResultsDTO: {
workOrderId: $route.query.id, //ID
resultDescription: endFrom.value.resultDescription,
},
assignList: [],
};
data.aftersalesProcessingResultsDTO.workOrderId = $route.query.id; //ID
data['assignList'].push($route.query.id);
//
// dictValue dictKey
const processingResultsMap = new Map(
ProcessingResults.value.map(element => [element.dictValue, element.dictKey])
);
//
const paymentMethodMap = new Map(
Paymentmethodoptions.value.map(method => [method.value, method.label])
);
data.aftersalesProcessingResultsDTO['processingMoneyEntityList'] = ProcessingList.value
.map(item => {
const match = processingResultsMap.get(item.title);
if (match) {
return {
resultType: match, // key
money: item.money, //
typesOf: 1, //
compensationMethod: item.compensationMethod, // value
compensationMethodName: paymentMethodMap.get(item.compensationMethod) || '', // label
resultName: item.title, //
paymentUnit: item.paymentUnit, // compensationMethodName
compensationTime: item.compensationTime, //
};
} else {
return null;
}
})
.filter(Boolean); // null
data.aftersalesProcessingResultsDTO.money = TotalClaimAmount.value; //
// ID
const warehouseIdToLabelMap = new Map(
warehouseData.value.map(item => [item.value, item.label])
);
data['completionRecordEntities'] = CompensationParty.value
.filter(item => item.state === 0) // 0
.map(item => {
return {
indemnitor: warehouseIdToLabelMap.get(item.warehouseId) || '', //
money: Number(item.num), //
reason: item.reason, //
workOrderId: $route.query.id, //
warehouseId: item.warehouseId, // ID
compensationPersonnel: item.compensationPersonnel, //
};
});
data['completionRecipientEntities'] = CompensationParty.value
.filter(item => item.state === 1) // 1
.map(item => {
return {
recipient: warehouseIdToLabelMap.get(item.warehouseId) || '', //
reasonReceivingPayment: item.reason, //
money: Number(item.num), //
workOrderNumber: $route.query.workOrderNumber, //
warehouseId: item.warehouseId, // ID
workOrderId: $route.query.id, //
};
});
console.log(data, '处理好的值');
let res = await $_arbitrateEnd(data);
const { code, msg } = res.data;
if (code != 200) {
return;
}
ElMessage({
message: msg,
type: 'success',
});
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: true }); //
$useStore.commit('Customer_Menu', Number($route.query.RouteIndexs)); //
$router.push('/aftersales/aftersalesWorkOrder');
$useStore.commit('DEL_ONCE_TAG', '/aftersales/aftersalesWorkOrderend'); //
} catch (e) {
console.log(e);
} finally {
Pageloading.value = false; //
}
})
.catch(() => {});
};
//
const resultreturnedFun = () => {
@ -2672,7 +2739,7 @@ const ConfirmReturn = async () => {
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: true }); //
$useStore.commit('Customer_Menu', Number($route.query.RouteIndexs)); //
$router.push('/aftersales/aftersalesWorkOrder');
AddressClosed('/aftersales/aftersalesWorkOrderend'); //
$useStore.commit('DEL_ONCE_TAG', '/aftersales/aftersalesWorkOrderend'); //
}
})
.catch(error => {

9
src/views/distribution/artery/TripartiteTransferDetails.vue

@ -334,7 +334,10 @@ import {
postFindUseOrderList,
} from '@/api/distribution/AddVehicleStowage';
import { postFindDriverListByNameAndWarehouseId } from '@/api/distribution/addTripartiteTransfer';
import { postCarsLoadDetailInfo } from '@/api/distribution/VehicleStowageDetails.js';
import {
postCarsLoadDetailInfo,
postCarsLoadDetailInfoNew,
} from '@/api/distribution/VehicleStowageDetails.js';
import { postFindCarsLoadLogs } from '@/api/distribution/VehicleStowageDetails.js';
import { useRouter, useRoute } from 'vue-router';
import { useStore } from 'vuex';
@ -569,8 +572,8 @@ const onLoad = debounce(async () => {
//
postloadFindLoadInitData(),
//
// postSelectEditDetailByLoadId({ loadId: $route.query.loadId }),
postCarsLoadDetailInfo({ loadId: $route.query.loadId }),
// postCarsLoadDetailInfo({ loadId: $route.query.loadId }),
postCarsLoadDetailInfoNew({ loadId: $route.query.loadId }),
]);
console.log('promiseAll :>> ', promiseAll);

8
src/views/distribution/artery/VehicleArrivalManagement.vue

@ -589,7 +589,7 @@
:exportName="details.selectionList[0] ? details.selectionList[0].carsNo : ''"
isFullscreen
>
<ArteryPrintTemplate
<ArteryPrintTemplateV2
:waybillInfo="details.listOfLoadedWagonsData"
ref="truckLoadingDetailNodeRef"
/>
@ -647,7 +647,7 @@ export default {
</script>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import { ref, reactive, toRefs, computed, onMounted, nextTick, defineAsyncComponent } from 'vue';
import dayjs from 'dayjs';
import { mapGetters, useStore } from 'vuex';
/** 获取字典 */
@ -693,6 +693,10 @@ import print from '@/utils/print';
import { exportExcelByDom } from '@/utils/export';
import { dateNow } from '@/utils/date';
const ArteryPrintTemplateV2 = defineAsyncComponent(
() => import('@/components/ArteryPrintTemplateV2/ArteryPrintTemplateV2.vue')
);
//
const $router = useRouter();
const $route = useRoute();

42
src/views/distribution/artery/VehicleStowage.vue

@ -379,24 +379,22 @@
</tablecmt>
<!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.pageNum"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.pageNum"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
<!-- 查询订单配载锁定详情 -->
<el-dialog
@ -563,7 +561,7 @@
:exportName="details.selectionList[0] ? details.selectionList[0].carsNo : ''"
isFullscreen
>
<ArteryPrintTemplate
<ArteryPrintTemplateV2
:waybillInfo="details.listOfLoadedWagonsData"
ref="truckLoadingDetailNodeRef"
/>
@ -585,7 +583,7 @@ export default {
</script>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import { ref, reactive, toRefs, computed, onMounted, nextTick, defineAsyncComponent } from 'vue';
import functions from '@/utils/functions';
import dayjs from 'dayjs';
import { mapGetters } from 'vuex';
@ -628,6 +626,10 @@ import { ElMessage, ElMessageBox } from 'element-plus';
import print from '@/utils/print';
import { dateNow } from '@/utils/date';
const ArteryPrintTemplateV2 = defineAsyncComponent(
() => import('@/components/ArteryPrintTemplateV2/ArteryPrintTemplateV2.vue')
);
//
const $router = useRouter();
const $route = useRoute();

Loading…
Cancel
Save