|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
<template> |
|
|
|
|
<basic-container> |
|
|
|
|
<div class="avue-crud"> |
|
|
|
|
<div class="avue-crud" v-loading="details.loadingObj.pageLoading"> |
|
|
|
|
<!-- 搜索模块 --> |
|
|
|
|
<el-row v-if="!search"> |
|
|
|
|
<!-- 查询模块 --> |
|
|
|
@ -44,10 +44,27 @@
|
|
|
|
|
<div class="avue-crud__header"> |
|
|
|
|
<!-- 头部左侧按钮模块 --> |
|
|
|
|
<div class="avue-crud__left"> |
|
|
|
|
<!-- 车辆配载 --> |
|
|
|
|
<template v-if="details.pageInfo.type === 'VehicleStowage'"> |
|
|
|
|
<el-button type="primary" icon="Edit" @click="handleShowTransfer('add')" |
|
|
|
|
>计划仓更改 |
|
|
|
|
</el-button> |
|
|
|
|
<el-button type="primary" icon="List" @click="searchReset()">批量卸车</el-button> |
|
|
|
|
<el-button type="primary" icon="List" @click="handleBatchUnLoad">批量卸车</el-button> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<!-- 三方中转 --> |
|
|
|
|
<template v-if="details.pageInfo.type === 'TripartiteTransfer'"> |
|
|
|
|
<el-button type="primary" icon="Edit" @click="handleShowTransfer('add')"> |
|
|
|
|
中转批量签收 |
|
|
|
|
</el-button> |
|
|
|
|
<el-button type="primary" icon="List" @click="searchReset()">删除</el-button> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<!-- 到车管理 --> |
|
|
|
|
<template v-if="details.pageInfo.type === 'VehicleArrivalManagement'"> |
|
|
|
|
<el-button type="primary" icon="List" @click="handleBatchUnLoad">批量卸车</el-button> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<el-button type="primary" icon="Delete" @click="searchReset()">删除</el-button> |
|
|
|
|
<el-button type="primary" icon="Printer" @click="searchReset()">二维码</el-button> |
|
|
|
|
</div> |
|
|
|
@ -61,7 +78,7 @@
|
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
<!-- 表格 --> |
|
|
|
|
<el-row> |
|
|
|
|
|
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<tablecmt |
|
|
|
|
:columnList="details.detailsColumnList" |
|
|
|
@ -73,9 +90,25 @@
|
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> </template> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text |
|
|
|
|
@click="handleZeroUnLoad(slotProps.scope)" |
|
|
|
|
v-if=" |
|
|
|
|
Number(slotProps.scope.row.scanStatus) === 1 && Number(slotProps.scope.row.type) === 2 |
|
|
|
|
" |
|
|
|
|
> |
|
|
|
|
零担卸车 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
@click="handleOrderUnLoad(slotProps.scope)" |
|
|
|
|
v-if=" |
|
|
|
|
Number(slotProps.scope.row.scanStatus) === 1 && Number(slotProps.scope.row.type) === 1 |
|
|
|
|
" |
|
|
|
|
> |
|
|
|
|
包件卸车 |
|
|
|
|
</el-text> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
<!-- 分页模块 --> |
|
|
|
|
<el-row class="el-fy"> |
|
|
|
@ -99,6 +132,32 @@
|
|
|
|
|
</div> |
|
|
|
|
</basic-container> |
|
|
|
|
|
|
|
|
|
<!-- 配置装车目的地 --> |
|
|
|
|
<el-dialog |
|
|
|
|
title="零担卸车" |
|
|
|
|
v-model="details.popUpShow.transferVisited" |
|
|
|
|
width="30%" |
|
|
|
|
append-to-body |
|
|
|
|
class="truckLoadingDetailPopUp" |
|
|
|
|
> |
|
|
|
|
<el-form-item label="零担卸车数量" label-width="100px"> |
|
|
|
|
<el-input-number |
|
|
|
|
style="width: 100%" |
|
|
|
|
:precision="0" |
|
|
|
|
:max="details.zeroItem.num" |
|
|
|
|
readonly |
|
|
|
|
:controls="false" |
|
|
|
|
v-model="details.zeroItem.enterNum" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<!-- 表单按钮 --> |
|
|
|
|
<div class="flex-c-c"> |
|
|
|
|
<el-button icon="Close" @click="details.popUpShow.transferVisited = false"> 取 消 </el-button> |
|
|
|
|
<el-button type="primary" icon="Position" @click="handleZeroUnLoadSubmit"> 提 交 </el-button> |
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
<!-- 列表配置显示 --> |
|
|
|
|
<edittablehead |
|
|
|
|
@setcolum="setnewcolum" |
|
|
|
@ -113,7 +172,10 @@ import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue
|
|
|
|
|
import functions from '@/utils/functions'; |
|
|
|
|
import dayjs from 'dayjs'; |
|
|
|
|
import { mapGetters } from 'vuex'; |
|
|
|
|
import { postLoadingDetail } from '@/api/distribution/truckLoadingDetails'; |
|
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'; |
|
|
|
|
import type { Action } from 'element-plus'; |
|
|
|
|
import { getMyCurrentWarehouse } from '@/api/work/work'; |
|
|
|
|
import { postLoadingDetail, postBatchUnload } from '@/api/distribution/truckLoadingDetails'; |
|
|
|
|
/** 获取字典 */ |
|
|
|
|
import { getDictionaryBiz } from '@/api/system/dict'; |
|
|
|
|
import { downloadXls } from '@/utils/util'; |
|
|
|
@ -165,6 +227,8 @@ const details = reactive<any>({
|
|
|
|
|
loadingObj: { |
|
|
|
|
/** 列表加载loading */ |
|
|
|
|
list: false, |
|
|
|
|
/** 页面loading */ |
|
|
|
|
pageLoading: false, |
|
|
|
|
}, |
|
|
|
|
/** 列表复选框选中的数据 */ |
|
|
|
|
selectionList: [], |
|
|
|
@ -186,9 +250,50 @@ const details = reactive<any>({
|
|
|
|
|
/** 列表Dom节点 */ |
|
|
|
|
listNode: '', |
|
|
|
|
form: {}, |
|
|
|
|
/** 页面数据 */ |
|
|
|
|
pageInfo: { |
|
|
|
|
/** 配送ID */ |
|
|
|
|
loadId: '', |
|
|
|
|
/** 页面类型 |
|
|
|
|
* TripartiteTransfer -- 三方中转 |
|
|
|
|
* VehicleStowage -- 车辆配载 |
|
|
|
|
* */ |
|
|
|
|
type: '', |
|
|
|
|
}, |
|
|
|
|
/** 被选中的零担数据 */ |
|
|
|
|
zeroItem: {}, |
|
|
|
|
// 字典 |
|
|
|
|
/** 装卸状态 */ |
|
|
|
|
scanStatusOption: [ |
|
|
|
|
{ label: '装车', value: 1 }, |
|
|
|
|
{ label: '卸车', value: 2 }, |
|
|
|
|
{ label: '签收', value: 3 }, |
|
|
|
|
], |
|
|
|
|
/** 有无数据 */ |
|
|
|
|
isDataOption: [ |
|
|
|
|
{ label: '是', value: 1 }, |
|
|
|
|
{ label: '否', value: 0 }, |
|
|
|
|
], |
|
|
|
|
/** 类型 */ |
|
|
|
|
typeOption: [ |
|
|
|
|
{ label: '包件', value: 1 }, |
|
|
|
|
{ label: '零担', value: 2 }, |
|
|
|
|
], |
|
|
|
|
/** 是否装车异常 */ |
|
|
|
|
loadingAbnormalOption: [ |
|
|
|
|
{ label: '是', value: 1 }, |
|
|
|
|
{ label: '否', value: 0 }, |
|
|
|
|
], |
|
|
|
|
/** 是否卸车异常 */ |
|
|
|
|
unloadAbnormalOption: [ |
|
|
|
|
{ label: '是', value: 1 }, |
|
|
|
|
{ label: '否', value: 0 }, |
|
|
|
|
], |
|
|
|
|
/** 是否补录 */ |
|
|
|
|
isSuppleOption: [ |
|
|
|
|
{ label: '是', value: 1 }, |
|
|
|
|
{ label: '否', value: 0 }, |
|
|
|
|
], |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const { |
|
|
|
@ -212,14 +317,17 @@ const $route = useRoute();
|
|
|
|
|
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList'])); |
|
|
|
|
console.log('permission :>> ', permission); |
|
|
|
|
|
|
|
|
|
onMounted(() => { |
|
|
|
|
const timer = setTimeout(() => { |
|
|
|
|
details.listNode = document.querySelector('.maboxhi'); |
|
|
|
|
details.listNode.style.transition = 'all .5s ease-out'; |
|
|
|
|
console.log('details.listNode :>> ', details.listNode); |
|
|
|
|
clearTimeout(timer); |
|
|
|
|
}, 100); |
|
|
|
|
/** 初始化表格表头 */ |
|
|
|
|
const initTableSelect = () => { |
|
|
|
|
for (const iterator of details.detailsColumnList) { |
|
|
|
|
console.log('iterator :>> ', iterator); |
|
|
|
|
iterator.checkarr = details[iterator.prop.replace('Name', '') + 'Option'] || []; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
initTableSelect(); |
|
|
|
|
|
|
|
|
|
onMounted(() => { |
|
|
|
|
/** |
|
|
|
|
* 初始化获取本地缓存的编辑隐藏的列表 |
|
|
|
|
* 固定搭配,不能更改 |
|
|
|
@ -293,6 +401,12 @@ onMounted(() => {
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
/** 转译数据 */ |
|
|
|
|
const initData = (data, row) => { |
|
|
|
|
const _item = details[data + 'Option'].find(val => val.value == Number(row[data])); |
|
|
|
|
row[data + 'Name'] = _item ? _item.label : '暂无数据'; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 请求页面数据 */ |
|
|
|
|
const onLoad = async (params = {}) => { |
|
|
|
|
try { |
|
|
|
@ -306,6 +420,16 @@ const onLoad = async (params = {}) => {
|
|
|
|
|
const { code, data } = res.data; |
|
|
|
|
if (code !== 200) return; |
|
|
|
|
details.data = data.records; |
|
|
|
|
|
|
|
|
|
for (const iterator of details.data) { |
|
|
|
|
initData('scanStatus', iterator); |
|
|
|
|
initData('type', iterator); |
|
|
|
|
initData('isData', iterator); |
|
|
|
|
initData('loadingAbnormal', iterator); |
|
|
|
|
initData('unloadAbnormal', iterator); |
|
|
|
|
initData('isSupple', iterator); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
details.page.total = data.total; |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
@ -314,9 +438,6 @@ const onLoad = async (params = {}) => {
|
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
details.pageInfo.loadId = $route.query.loadId; |
|
|
|
|
onLoad(); |
|
|
|
|
|
|
|
|
|
/** 搜索 */ |
|
|
|
|
const searchChange = () => { |
|
|
|
|
onLoad(details.page); |
|
|
|
@ -405,44 +526,6 @@ const selectionChange = (list: any) => {
|
|
|
|
|
details.selectionList = list; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头输入框搜索 */ |
|
|
|
|
const newInputsc = (index, row) => { |
|
|
|
|
details.newQuery[row.prop] = index; |
|
|
|
|
onLoad(details.page); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头时间选择 */ |
|
|
|
|
const newTimesc = (index, row) => { |
|
|
|
|
console.log(index, row); |
|
|
|
|
if (!!index) { |
|
|
|
|
index = dayjs(index).format('YYYY-MM-DD'); |
|
|
|
|
} |
|
|
|
|
details.newQuery[row.prop] = index; |
|
|
|
|
if (!index) { |
|
|
|
|
delete details.newQuery[row.prop]; |
|
|
|
|
} |
|
|
|
|
onLoad(details.page); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头输入框搜索 */ |
|
|
|
|
const newBtnsc = () => {}; |
|
|
|
|
|
|
|
|
|
/** 表格表头下拉框选择 */ |
|
|
|
|
const newSelectsc = (index, row) => { |
|
|
|
|
details.newQuery[row.prop] = index; |
|
|
|
|
if (!index) delete details.newQuery[row.prop]; |
|
|
|
|
if (row.prop === 'certificateTypeName') { |
|
|
|
|
details.newQuery['certificateType'] = index; |
|
|
|
|
if (!index) delete details.newQuery['certificateType']; |
|
|
|
|
} |
|
|
|
|
onLoad(details.page); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头复选框选择 */ |
|
|
|
|
const newSelectionChange = (list: any) => { |
|
|
|
|
details.newSelectionList = list; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 每页数量改变执行的回调 */ |
|
|
|
|
const sizeChange = (pageSize: number) => { |
|
|
|
|
details.page.pageSize = pageSize; |
|
|
|
@ -477,24 +560,6 @@ const beforeClose = done => {
|
|
|
|
|
details.view = false; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 显示装车详情 */ |
|
|
|
|
const handleShowTruckLoadingDetails = ({ row }) => { |
|
|
|
|
details.popUpShow.truckLoadingDetailVisited = true; |
|
|
|
|
|
|
|
|
|
nextTick(() => { |
|
|
|
|
// 获取弹窗内表格元素节点, 并设置高度 |
|
|
|
|
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi'); |
|
|
|
|
_node.style.height = '550px'; |
|
|
|
|
console.log('_node :>> ', _node); |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 跳转零担补录 */ |
|
|
|
|
const handleShowzeroAdditionalRecording = ({ row }) => { |
|
|
|
|
// 跳转到零担补录页面 |
|
|
|
|
$router.push('/distribution/artery/zeroAdditionalRecording'); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 新增中转 */ |
|
|
|
|
const addTransfer = async () => { |
|
|
|
|
return null; |
|
|
|
@ -530,13 +595,251 @@ const handleShowTransfer = async (_type: string) => {
|
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
watch($route, (newVal, oldVal) => { |
|
|
|
|
/** 批量卸车 */ |
|
|
|
|
const handleBatchUnLoad = async () => { |
|
|
|
|
try { |
|
|
|
|
details.loadingObj.pageLoading = true; |
|
|
|
|
|
|
|
|
|
if (details.selectionList.length === 0) return ElMessage.warning('请选择需要卸车的数据'); |
|
|
|
|
|
|
|
|
|
const myWarehouseData = await getMyCurrentWarehouse(); |
|
|
|
|
|
|
|
|
|
if (!myWarehouseData) return ElMessage.warning('请先选择一个仓库'); |
|
|
|
|
|
|
|
|
|
// 当前登录人的仓库Id |
|
|
|
|
const myWarehouseId = myWarehouseData.warehouseId; |
|
|
|
|
|
|
|
|
|
// 包件列表 |
|
|
|
|
const _orderArr = []; |
|
|
|
|
// 零担列表 |
|
|
|
|
const _zeroArr = []; |
|
|
|
|
|
|
|
|
|
// 是否含有异常 |
|
|
|
|
let isHaveAbnormalData = false; |
|
|
|
|
|
|
|
|
|
for (const iterator of details.selectionList) { |
|
|
|
|
if (Number(iterator.scanStatus) === 1) { |
|
|
|
|
// 包件 |
|
|
|
|
if (Number(iterator.type) === 1) { |
|
|
|
|
_orderArr.push({ orderPackageCode: iterator.scanCode }); |
|
|
|
|
} else { |
|
|
|
|
_zeroArr.push({ |
|
|
|
|
waybillNo: iterator.waybillNo, |
|
|
|
|
enterNum: iterator.num, |
|
|
|
|
orderCode: iterator.orderCode, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 不重复判断是否有异常 |
|
|
|
|
if (!isHaveAbnormalData) { |
|
|
|
|
isHaveAbnormalData = iterator.warehouseId === myWarehouseId; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ([..._zeroArr, ..._orderArr].length === 0) return ElMessage.warning('没有符合要求的数据'); |
|
|
|
|
|
|
|
|
|
// 判断是否含有异常 |
|
|
|
|
if (isHaveAbnormalData) { |
|
|
|
|
const submitData = { |
|
|
|
|
loadId: details.pageInfo.loadId, |
|
|
|
|
unloadPackageList: _orderArr, |
|
|
|
|
unloadZeroList: _zeroArr, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const res = await postBatchUnload(submitData); |
|
|
|
|
const { code } = res.data; |
|
|
|
|
|
|
|
|
|
if (code !== 200) return; |
|
|
|
|
ElMessage.success('卸车成功'); |
|
|
|
|
onLoad(); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ElMessageBox.confirm('包含已卸车数据或计划不在本节点卸车的数据', '异常提交', { |
|
|
|
|
confirmButtonText: '提交包含不在本节点数据', |
|
|
|
|
cancelButtonText: '仅提交装车数据', |
|
|
|
|
type: 'warning', |
|
|
|
|
center: true, |
|
|
|
|
distinguishCancelAndClose: true, |
|
|
|
|
}) |
|
|
|
|
// 异常提交 |
|
|
|
|
.then(async () => { |
|
|
|
|
try { |
|
|
|
|
details.loadingObj.pageLoading = true; |
|
|
|
|
|
|
|
|
|
const submitData = { |
|
|
|
|
loadId: details.pageInfo.loadId, |
|
|
|
|
unloadPackageList: _orderArr, |
|
|
|
|
unloadZeroList: _zeroArr, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const res = await postBatchUnload(submitData); |
|
|
|
|
const { code } = res.data; |
|
|
|
|
|
|
|
|
|
if (code !== 200) return; |
|
|
|
|
ElMessage.success('卸车成功'); |
|
|
|
|
onLoad(); |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
|
} finally { |
|
|
|
|
details.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
// 仅去除已装车和已签收数据 |
|
|
|
|
.catch(async (action: Action) => { |
|
|
|
|
if (action !== 'cancel') return; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
details.loadingObj.pageLoading = true; |
|
|
|
|
|
|
|
|
|
const submitData = { |
|
|
|
|
loadId: details.pageInfo.loadId, |
|
|
|
|
unloadPackageList: _orderArr.filter(val => val.warehouseId === myWarehouseId), |
|
|
|
|
unloadZeroList: _zeroArr.filter(val => val.warehouseId === myWarehouseId), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const res = await postBatchUnload(submitData); |
|
|
|
|
const { code } = res.data; |
|
|
|
|
|
|
|
|
|
if (code !== 200) return; |
|
|
|
|
ElMessage.success('卸车成功'); |
|
|
|
|
onLoad(); |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
|
} finally { |
|
|
|
|
details.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
|
} finally { |
|
|
|
|
details.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 卸车 -- 订单 */ |
|
|
|
|
const handleOrderUnLoad = async ({ row }) => { |
|
|
|
|
try { |
|
|
|
|
details.loadingObj.pageLoading = true; |
|
|
|
|
|
|
|
|
|
const myWarehouseData = await getMyCurrentWarehouse(); |
|
|
|
|
if (!myWarehouseData) return ElMessage.warning('请先选择一个仓库'); |
|
|
|
|
|
|
|
|
|
// 当前登录人的仓库Id |
|
|
|
|
const myWarehouseId = myWarehouseData.warehouseId; |
|
|
|
|
|
|
|
|
|
if (row.warehouseId !== myWarehouseId) |
|
|
|
|
return ( |
|
|
|
|
ElMessageBox.confirm('包含已卸车数据或计划不在本节点卸车的数据', '异常提交', { |
|
|
|
|
confirmButtonText: '提交包含不在本节点数据', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning', |
|
|
|
|
center: true, |
|
|
|
|
}) |
|
|
|
|
// 异常提交 |
|
|
|
|
.then(async () => { |
|
|
|
|
try { |
|
|
|
|
details.loadingObj.pageLoading = true; |
|
|
|
|
|
|
|
|
|
const submitData = { |
|
|
|
|
loadId: details.pageInfo.loadId, |
|
|
|
|
unloadPackageList: [{ orderPackageCode: row.scanCode }], |
|
|
|
|
unloadZeroList: [], |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const res = await postBatchUnload(submitData); |
|
|
|
|
const { code } = res.data; |
|
|
|
|
|
|
|
|
|
if (code !== 200) return; |
|
|
|
|
ElMessage.success('卸车成功'); |
|
|
|
|
onLoad(); |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
|
} finally { |
|
|
|
|
details.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
const submitData = { |
|
|
|
|
loadId: details.pageInfo.loadId, |
|
|
|
|
unloadPackageList: [{ orderPackageCode: row.scanCode }], |
|
|
|
|
unloadZeroList: [], |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const res = await postBatchUnload(submitData); |
|
|
|
|
const { code } = res.data; |
|
|
|
|
|
|
|
|
|
if (code !== 200) return; |
|
|
|
|
ElMessage.success('卸车成功'); |
|
|
|
|
onLoad(); |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
|
} finally { |
|
|
|
|
details.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 卸车 -- 零担 */ |
|
|
|
|
const handleZeroUnLoad = async ({ row }) => { |
|
|
|
|
const myWarehouseData = await getMyCurrentWarehouse(); |
|
|
|
|
if (!myWarehouseData) return ElMessage.warning('请先选择一个仓库'); |
|
|
|
|
|
|
|
|
|
if (myWarehouseData.warehouseId !== row.warehouseId) |
|
|
|
|
return ElMessage.warning('未在目的仓, 无法卸车'); |
|
|
|
|
|
|
|
|
|
details.zeroItem = { ...row }; |
|
|
|
|
details.zeroItem.enterNum = row.num; |
|
|
|
|
details.popUpShow.transferVisited = true; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 卸车 -- 零担 -- 提交 */ |
|
|
|
|
const handleZeroUnLoadSubmit = async () => { |
|
|
|
|
try { |
|
|
|
|
details.popUpShow.transferVisited = false; |
|
|
|
|
details.loadingObj.pageLoading = true; |
|
|
|
|
|
|
|
|
|
const submitData = { |
|
|
|
|
loadId: details.pageInfo.loadId, |
|
|
|
|
unloadPackageList: [], |
|
|
|
|
unloadZeroList: [ |
|
|
|
|
{ |
|
|
|
|
waybillNo: details.zeroItem.waybillNo, |
|
|
|
|
enterNum: details.zeroItem.num, |
|
|
|
|
orderCode: details.zeroItem.orderCode, |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const res = await postBatchUnload(submitData); |
|
|
|
|
const { code } = res.data; |
|
|
|
|
|
|
|
|
|
if (code !== 200) return; |
|
|
|
|
ElMessage.success('卸车成功'); |
|
|
|
|
onLoad(); |
|
|
|
|
} catch (error) { |
|
|
|
|
console.log('error :>> ', error); |
|
|
|
|
} finally { |
|
|
|
|
details.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
watch( |
|
|
|
|
$route, |
|
|
|
|
(newVal, oldVal) => { |
|
|
|
|
console.log('newVal :>> ', newVal); |
|
|
|
|
console.log('oldVal :>> ', oldVal); |
|
|
|
|
if (newVal.path !== '/distribution/artery/truckLoadingDetails') return; |
|
|
|
|
details.pageInfo.loadId = $route.query.loadId; |
|
|
|
|
details.pageInfo.type = $route.query.type; |
|
|
|
|
console.log('details.pageInfo :>> ', details.pageInfo); |
|
|
|
|
onLoad(); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
immediate: true, |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
|