|
|
|
@ -162,84 +162,7 @@
|
|
|
|
|
</div> |
|
|
|
|
</basic-container> |
|
|
|
|
|
|
|
|
|
<!-- 编辑弹窗 --> |
|
|
|
|
<el-dialog |
|
|
|
|
title="装车明细" |
|
|
|
|
v-model="details.popUpShow.truckLoadingDetailVisited" |
|
|
|
|
width="80%" |
|
|
|
|
:before-close="beforeClose" |
|
|
|
|
append-to-body |
|
|
|
|
class="truckLoadingDetailPopUp" |
|
|
|
|
> |
|
|
|
|
<el-form :inline="true" :model="query" class="el-fr-d"> |
|
|
|
|
<div class="fo-fl"> |
|
|
|
|
<el-form-item label="扫码时间:" class="el-times"> |
|
|
|
|
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>--> |
|
|
|
|
<el-date-picker |
|
|
|
|
v-model="stockupDate" |
|
|
|
|
type="daterange" |
|
|
|
|
unlink-panels |
|
|
|
|
range-separator="-" |
|
|
|
|
start-placeholder="开始时间" |
|
|
|
|
end-placeholder="结束时间" |
|
|
|
|
:shortcuts="shortcuts" |
|
|
|
|
clearable |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="卸车时间:" class="el-times"> |
|
|
|
|
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>--> |
|
|
|
|
<el-date-picker |
|
|
|
|
v-model="stockupDate" |
|
|
|
|
type="daterange" |
|
|
|
|
unlink-panels |
|
|
|
|
range-separator="-" |
|
|
|
|
start-placeholder="开始时间" |
|
|
|
|
end-placeholder="结束时间" |
|
|
|
|
:shortcuts="shortcuts" |
|
|
|
|
clearable |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-button type="primary" icon="Edit" @click="searchChange">中转批量签收</el-button> |
|
|
|
|
<el-button type="primary" icon="el-icon-search" @click="searchReset()">搜 索</el-button> |
|
|
|
|
<el-button icon="el-icon-printer" @click="searchReset()">二维码</el-button> |
|
|
|
|
<el-button |
|
|
|
|
icon="Operation" |
|
|
|
|
@click="showdrawer(true, 'truckLoadingDetail')" |
|
|
|
|
circle |
|
|
|
|
></el-button> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
</el-form> |
|
|
|
|
<tablecmt |
|
|
|
|
:columnList="details.detailsColumnList" |
|
|
|
|
:tableData="data" |
|
|
|
|
:loading="loadingObj.list" |
|
|
|
|
@inputTxt="inputsc" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> </template> |
|
|
|
|
</tablecmt> |
|
|
|
|
|
|
|
|
|
<!-- 分页模块 --> |
|
|
|
|
<el-pagination |
|
|
|
|
align="right" |
|
|
|
|
background |
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
@current-change="currentChange" |
|
|
|
|
:current-page="trickleLoadingPage.pageNum" |
|
|
|
|
:page-sizes="[30, 50, 80, 120]" |
|
|
|
|
:page-size="trickleLoadingPage.pageSize" |
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
:total="trickleLoadingPage.total" |
|
|
|
|
> |
|
|
|
|
</el-pagination> |
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
<!-- 编辑弹窗 --> |
|
|
|
|
<!-- 确认到达信息 --> |
|
|
|
|
<el-dialog |
|
|
|
|
title="确认到达信息" |
|
|
|
|
v-model="details.popUpShow.confirmArriveVisited" |
|
|
|
@ -277,295 +200,118 @@
|
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
<!-- 创建 && 编辑 中转 --> |
|
|
|
|
<!-- 配置装车目的地 --> |
|
|
|
|
<el-dialog |
|
|
|
|
title="新增中转" |
|
|
|
|
v-model="details.popUpShow.transferVisited" |
|
|
|
|
title="配置装车目的地" |
|
|
|
|
v-model="details.popUpShow.truckLoadingDetailVisited" |
|
|
|
|
width="80%" |
|
|
|
|
:before-close="beforeClose" |
|
|
|
|
append-to-body |
|
|
|
|
class="transferPopUp" |
|
|
|
|
:fullscreen="details.fullscreenObj.truckLoadingDetailPopUp" |
|
|
|
|
:show-close="false" |
|
|
|
|
class="truckLoadingDetailPopUp" |
|
|
|
|
v-loading="details.loadingObj.truckLoadingDetailPopUpTable" |
|
|
|
|
> |
|
|
|
|
<el-form :inline="true" label-width="100px" :model="query" class="el-fr-d"> |
|
|
|
|
<div class="fo-fl"> |
|
|
|
|
<el-form-item label="中转承运商"> |
|
|
|
|
<el-select |
|
|
|
|
teleported="true" |
|
|
|
|
v-model="query.value" |
|
|
|
|
class="m-2" |
|
|
|
|
placeholder="Select" |
|
|
|
|
size="default" |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="经办人"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="送货方式"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="付款方式"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="运费分摊方式"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="送货司机"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="客户类型"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="是否结算"> |
|
|
|
|
<el-select v-model="query.value" class="m-2" placeholder="Select" size="default"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="代收贷款"> |
|
|
|
|
<el-input-number :precision="2" :step="1" controls-position="right" /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="承运单号"> |
|
|
|
|
<el-input /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="承运时间"> |
|
|
|
|
<el-date-picker |
|
|
|
|
v-model="query.value1" |
|
|
|
|
type="date" |
|
|
|
|
placeholder="承运时间" |
|
|
|
|
size="default" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="客户收货时间"> |
|
|
|
|
<el-date-picker |
|
|
|
|
v-model="query.value1" |
|
|
|
|
type="date" |
|
|
|
|
placeholder="客户收货时间" |
|
|
|
|
size="default" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="运费"> |
|
|
|
|
<el-input-number :precision="2" :step="1" controls-position="right" /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="司机结算费"> |
|
|
|
|
<el-input-number :precision="2" :step="1" controls-position="right" /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div style="width: 100%"> |
|
|
|
|
<el-form-item label="备注"> <el-input type="textarea" placeholder="备注" /></el-form-item> |
|
|
|
|
</div> |
|
|
|
|
</el-form> |
|
|
|
|
|
|
|
|
|
<div class="add_row"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<div style="width: 47%"> |
|
|
|
|
<div class="add_row_title">运单池</div> |
|
|
|
|
<div v-if="!search"> |
|
|
|
|
<el-form :inline="true" label-width="80px" :model="details.oldQuery" class="el-fr-d"> |
|
|
|
|
<div class="fo-fl"> |
|
|
|
|
<el-form-item label="备注" class="el-times"> |
|
|
|
|
<el-input></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<el-form-item label="托盘码" class="el-times"> |
|
|
|
|
<el-input></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<el-form-item class="el-times"> |
|
|
|
|
<el-date-picker |
|
|
|
|
v-model="stockupDate" |
|
|
|
|
type="daterange" |
|
|
|
|
unlink-panels |
|
|
|
|
range-separator="-" |
|
|
|
|
start-placeholder="开单日期" |
|
|
|
|
end-placeholder="开单日期" |
|
|
|
|
:shortcuts="shortcuts" |
|
|
|
|
clearable |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-button type="primary" icon="el-icon-search" @click="searchReset()" |
|
|
|
|
>搜 索</el-button |
|
|
|
|
> |
|
|
|
|
<el-button icon="el-icon-delete" @click="searchReset()">重置</el-button> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
</el-form> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div style="margin-bottom: 10px" class="flex-c-sb"> |
|
|
|
|
<!-- 控件 --> |
|
|
|
|
<div class="avue-crud__right"> |
|
|
|
|
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> |
|
|
|
|
<el-button icon="Operation" @click="showdrawer(true, 1)" circle></el-button> |
|
|
|
|
<el-button icon="el-icon-search" @click="searchHide" circle></el-button> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<el-button type="text" style="cursor: pointer" @click="handleAddWaybill"> |
|
|
|
|
加入调度池 |
|
|
|
|
<el-icon><CaretRight /></el-icon> |
|
|
|
|
<!-- 标题 -- 头部控件区 --> |
|
|
|
|
<template #header="{ close, titleId, titleClass }"> |
|
|
|
|
<div class="my-header flex-c-sb"> |
|
|
|
|
<div class="fwb" :id="titleId" :class="titleClass">配置装车目的地</div> |
|
|
|
|
<div class="flex-c-c"> |
|
|
|
|
<!-- 全屏显示按钮 --> |
|
|
|
|
<el-button type="text" v-if="!details.fullscreenObj.truckLoadingDetailPopUp"> |
|
|
|
|
<el-icon class="" @click="handleFullScrean('open', 'truckLoadingDetailPopUp')" |
|
|
|
|
><FullScreen |
|
|
|
|
/></el-icon> |
|
|
|
|
</el-button> |
|
|
|
|
<el-button type="text" v-else> |
|
|
|
|
<el-icon class="" @click="handleFullScrean('close', 'truckLoadingDetailPopUp')" |
|
|
|
|
><CopyDocument |
|
|
|
|
/></el-icon> |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
<tablecmt |
|
|
|
|
:columnList="details.oldColumnList" |
|
|
|
|
:tableData="details.oldData" |
|
|
|
|
:loading="loadingObj.oldListLoading" |
|
|
|
|
@inputTxt="inputsc" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
</tablecmt> |
|
|
|
|
<!-- 统计行 --> |
|
|
|
|
<div class="statistics_row"> |
|
|
|
|
<!-- <div>合计: 选择数: {{ addInfo.oldSelectionList.length }},</div> |
|
|
|
|
<div>件数: {{ selectionList.length }},</div> |
|
|
|
|
<div>重量: {{ selectionList.length }},</div> |
|
|
|
|
<div>体积: {{ selectionList.length }}</div> --> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div class="avue-crud__pagination flex-c-sb" style="width: 100%"> |
|
|
|
|
<!-- 分页模块 --> |
|
|
|
|
<el-pagination |
|
|
|
|
style="zoom: 0.9" |
|
|
|
|
align="right" |
|
|
|
|
background |
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
@current-change="currentChange" |
|
|
|
|
:current-page="zeroAdditionalRecordingInfo.oldPage.pageNum" |
|
|
|
|
:page-sizes="[30, 50, 80, 120]" |
|
|
|
|
:page-size="zeroAdditionalRecordingInfo.oldPage.pageSize" |
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
:total="zeroAdditionalRecordingInfo.oldPage.total" |
|
|
|
|
> |
|
|
|
|
</el-pagination> |
|
|
|
|
<!-- 弹窗关闭按钮 --> |
|
|
|
|
<el-button type="text"> |
|
|
|
|
<el-icon class="" @click="close"><Close /></el-icon> |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<div style="width: 47%"> |
|
|
|
|
<div class="add_row_title">调度池</div> |
|
|
|
|
<div v-if="!search"> |
|
|
|
|
<el-form :inline="true" label-width="80px" :model="details.newQuery" class="el-fr-d"> |
|
|
|
|
<div class="fo-fl"> |
|
|
|
|
<el-form-item label="备注" class="el-times"> |
|
|
|
|
<el-input></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<el-form-item label="托盘码" class="el-times"> |
|
|
|
|
<el-input></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item class="el-times"> |
|
|
|
|
<el-date-picker |
|
|
|
|
v-model="stockupDate" |
|
|
|
|
type="daterange" |
|
|
|
|
unlink-panels |
|
|
|
|
range-separator="-" |
|
|
|
|
start-placeholder="开单日期" |
|
|
|
|
end-placeholder="开单日期" |
|
|
|
|
:shortcuts="shortcuts" |
|
|
|
|
clearable |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-button type="primary" icon="el-icon-search" @click="searchReset()" |
|
|
|
|
>搜 索</el-button |
|
|
|
|
> |
|
|
|
|
<el-button icon="el-icon-delete" @click="searchReset()">重置</el-button> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
</el-form> |
|
|
|
|
</div> |
|
|
|
|
<div v-loading="details.loadingObj.truckLoadingDetailPopUpLoading"> |
|
|
|
|
<el-button |
|
|
|
|
icon="Edit" |
|
|
|
|
type="primary" |
|
|
|
|
v-if="details.nextNodeData.length > 1" |
|
|
|
|
@click="handleOpenConfiguration('batch')" |
|
|
|
|
> |
|
|
|
|
配置目的地 |
|
|
|
|
</el-button> |
|
|
|
|
|
|
|
|
|
<div style="margin-bottom: 10px" class="flex-c-sb"> |
|
|
|
|
<el-button type="text" class="pointer" @click="handleRemoveWaybill"> |
|
|
|
|
<el-icon><CaretLeft /></el-icon> |
|
|
|
|
移除调度池 |
|
|
|
|
</el-button> |
|
|
|
|
<tablecmt |
|
|
|
|
class="truckLoadingDetailPopUpTable mt10" |
|
|
|
|
:columnList="details.packageColumnList" |
|
|
|
|
:tableData="details.packageRenderData" |
|
|
|
|
:loading="loadingObj.list" |
|
|
|
|
@inputTxt="packageInputsc" |
|
|
|
|
@selection="list => (details.packageSelectedData = list)" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text |
|
|
|
|
v-if="details.nextNodeData.length > 1" |
|
|
|
|
@click="handleOpenConfiguration('one', slotProps.scope)" |
|
|
|
|
>配置目的地</el-text |
|
|
|
|
> |
|
|
|
|
<el-text @click="removePackage(slotProps.scope)">移除</el-text> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
|
|
|
|
|
<!-- 控件 --> |
|
|
|
|
<div class="avue-crud__right"> |
|
|
|
|
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> |
|
|
|
|
<el-button icon="Operation" @click="showdrawer(true, 2)" circle></el-button> |
|
|
|
|
<el-button icon="el-icon-search" @click="searchHide" circle></el-button> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<tablecmt |
|
|
|
|
:columnList="details.newColumnList" |
|
|
|
|
:tableData="details.newData" |
|
|
|
|
:loading="loadingObj.newListLoading" |
|
|
|
|
@inputTxt="newInputsc" |
|
|
|
|
@timeCheck="newTimesc" |
|
|
|
|
@btnCheck="newBtnsc" |
|
|
|
|
@selectCheck="newSelectsc" |
|
|
|
|
@selection="newSelectionChange" |
|
|
|
|
<div class="dialog-footer"> |
|
|
|
|
<el-button |
|
|
|
|
icon="el-icon-circle-close" |
|
|
|
|
@click="details.popUpShow.truckLoadingDetailVisited = false" |
|
|
|
|
>取 消</el-button |
|
|
|
|
> |
|
|
|
|
<el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit" |
|
|
|
|
>提 交</el-button |
|
|
|
|
> |
|
|
|
|
</tablecmt> |
|
|
|
|
<div class="statistics_row"> |
|
|
|
|
<!-- <div>合计: 选择数: {{ addInfo.oldSelectionList.length }},</div> |
|
|
|
|
<div>件数: {{ selectionList.length }},</div> |
|
|
|
|
<div>重量: {{ selectionList.length }},</div> |
|
|
|
|
<div>体积: {{ selectionList.length }}</div> --> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<!-- <el-button></el-button> --> |
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
<!-- 配置装车目的地 --> |
|
|
|
|
<el-dialog |
|
|
|
|
title="配置装车目的地" |
|
|
|
|
v-model="details.popUpShow.chooseDestinationVisited" |
|
|
|
|
width="30%" |
|
|
|
|
append-to-body |
|
|
|
|
class="truckLoadingDetailPopUp" |
|
|
|
|
> |
|
|
|
|
<el-form-item label="目的地" prop="region"> |
|
|
|
|
<el-select v-model="details.chooseNodeId" placeholder="请选择目的地" class="w100"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in details.nextNodeData" |
|
|
|
|
:key="item" |
|
|
|
|
:label="item.warehouseName" |
|
|
|
|
:value="item.warehouseId" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<!-- 表单按钮 --> |
|
|
|
|
<template #footer> |
|
|
|
|
<div class="dialog-footer"> |
|
|
|
|
<el-button |
|
|
|
|
icon="el-icon-circle-close" |
|
|
|
|
@click="details.popUpShow.chooseDestinationVisited = false" |
|
|
|
|
>取 消</el-button |
|
|
|
|
> |
|
|
|
|
<el-button type="primary" icon="el-icon-circle-check" @click="handleEditSubmit"> |
|
|
|
|
确 认 |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
<!-- 列表配置显示 --> |
|
|
|
|
<edittablehead |
|
|
|
|
@setcolum="setnewcolum" |
|
|
|
@ -582,19 +328,22 @@ import dayjs from 'dayjs';
|
|
|
|
|
import { mapGetters } from 'vuex'; |
|
|
|
|
/** 获取字典 */ |
|
|
|
|
import { getDictionaryBiz } from '@/api/system/dict'; |
|
|
|
|
import { downloadXls } from '@/utils/util'; |
|
|
|
|
import { |
|
|
|
|
columnList, |
|
|
|
|
detailsColumnList, |
|
|
|
|
oldColumnList, |
|
|
|
|
newColumnList, |
|
|
|
|
} from '@/option/distribution/TripartiteTransfer'; |
|
|
|
|
import { downloadXls, deepClone, setNodeHeight } from '@/utils/util'; |
|
|
|
|
import { columnList, detailsColumnList } from '@/option/distribution/TripartiteTransfer'; |
|
|
|
|
import { packageColumnList } from '@/option/distribution/VehicleStowage'; |
|
|
|
|
import { |
|
|
|
|
postArriveCars, |
|
|
|
|
postTripartiteTransferPageList, |
|
|
|
|
postStartCars, |
|
|
|
|
postCancelStartCars, |
|
|
|
|
} from '@/api/distribution/TripartiteTransfer.js'; |
|
|
|
|
import { |
|
|
|
|
postStartCarByLoadId, |
|
|
|
|
postDetermineHasNoFinalNode, |
|
|
|
|
postFindNextNodeList, |
|
|
|
|
postUpdateLoadScanFinalNodeIdById, |
|
|
|
|
postRemoveCarsLoadScan, |
|
|
|
|
} from '@/api/distribution/VehicleStowage'; |
|
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'; |
|
|
|
|
import { useRouter } from 'vue-router'; |
|
|
|
|
|
|
|
|
@ -644,19 +393,14 @@ const details = reactive<any>({
|
|
|
|
|
detailsColumnList, |
|
|
|
|
/** 修改的列表信息 */ |
|
|
|
|
editColumnList: [], |
|
|
|
|
/** 运单池 */ |
|
|
|
|
oldColumnList, |
|
|
|
|
/** 调度池 */ |
|
|
|
|
newColumnList, |
|
|
|
|
/** 列表数据 */ |
|
|
|
|
data: [], |
|
|
|
|
newData: [], |
|
|
|
|
oldData: [], |
|
|
|
|
/** 页面loading */ |
|
|
|
|
loadingObj: { |
|
|
|
|
/** 列表加载loading */ |
|
|
|
|
list: false, |
|
|
|
|
oldListLoading: false, |
|
|
|
|
/** 配置装车目的地详情 */ |
|
|
|
|
truckLoadingDetailPopUpLoading: false, |
|
|
|
|
}, |
|
|
|
|
/** 列表复选框选中的数据 */ |
|
|
|
|
selectionList: [], |
|
|
|
@ -668,32 +412,18 @@ const details = reactive<any>({
|
|
|
|
|
pageSize: 30, |
|
|
|
|
total: 0, |
|
|
|
|
}, |
|
|
|
|
/** 装车明细分页参数 */ |
|
|
|
|
trickleLoadingPage: { |
|
|
|
|
pageNum: 1, |
|
|
|
|
pageSize: 30, |
|
|
|
|
total: 0, |
|
|
|
|
}, |
|
|
|
|
/** 弹出层显示 */ |
|
|
|
|
popUpShow: { |
|
|
|
|
/** 装车详情 */ |
|
|
|
|
truckLoadingDetailVisited: false, |
|
|
|
|
/** 零担补录 */ |
|
|
|
|
transferVisited: false, |
|
|
|
|
/** 到达确认 */ |
|
|
|
|
confirmArriveVisited: false, |
|
|
|
|
/** 配置目的地 */ |
|
|
|
|
truckLoadingDetailVisited: false, |
|
|
|
|
/** 选择目的地弹窗 */ |
|
|
|
|
chooseDestinationVisited: false, |
|
|
|
|
}, |
|
|
|
|
/** 列表Dom节点 */ |
|
|
|
|
listNode: '', |
|
|
|
|
form: {}, |
|
|
|
|
/** 零担补录信息 */ |
|
|
|
|
zeroAdditionalRecordingInfo: { |
|
|
|
|
oldPage: { |
|
|
|
|
pageSize: 30, |
|
|
|
|
pageNum: 1, |
|
|
|
|
total: 0, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
/** 无用 */ |
|
|
|
|
options: [], |
|
|
|
|
/** 付款方式 */ |
|
|
|
@ -725,8 +455,30 @@ const details = reactive<any>({
|
|
|
|
|
{ value: 1, label: '自提' }, |
|
|
|
|
{ value: 2, label: '送货' }, |
|
|
|
|
], |
|
|
|
|
/** 全屏 */ |
|
|
|
|
fullscreenObj: { |
|
|
|
|
/** 配置节点 */ |
|
|
|
|
truckLoadingDetailPopUp: false, |
|
|
|
|
comparativeStatementPopUp: false, |
|
|
|
|
}, |
|
|
|
|
packageColumnList: deepClone(packageColumnList), |
|
|
|
|
/** 配置装车目的地数据 */ |
|
|
|
|
packageData: [], |
|
|
|
|
/** 配置装车目的地数据 -- 渲染数据 */ |
|
|
|
|
packageRenderData: [], |
|
|
|
|
/** 后续装车目的地 */ |
|
|
|
|
nextNodeData: [], |
|
|
|
|
/** 配置目的地 -- 被选中的数据 */ |
|
|
|
|
packageSelectedData: [], |
|
|
|
|
/** 被修改的数据 */ |
|
|
|
|
modifyData: [], |
|
|
|
|
/** 被选中的数据 */ |
|
|
|
|
chooseNodeId: '', |
|
|
|
|
packageQuery: {}, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// details.columnList.payMethodName.checkArr = details.payMethodOptions; |
|
|
|
|
|
|
|
|
|
const { |
|
|
|
|
search, |
|
|
|
|
query, |
|
|
|
@ -737,8 +489,6 @@ const {
|
|
|
|
|
selectionList, |
|
|
|
|
drawerShow, |
|
|
|
|
page, |
|
|
|
|
trickleLoadingPage, |
|
|
|
|
zeroAdditionalRecordingInfo, |
|
|
|
|
popUpShow, |
|
|
|
|
} = toRefs(details); |
|
|
|
|
|
|
|
|
@ -746,15 +496,6 @@ const {
|
|
|
|
|
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 handleConversionCodeValue = (item, label, Arr) => { |
|
|
|
|
const codes = Arr.map(item => item.value); |
|
|
|
@ -763,6 +504,25 @@ const handleConversionCodeValue = (item, label, Arr) => {
|
|
|
|
|
item[label + 'Name'] = _index !== -1 ? Arr[_index].label : '未知'; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 输入框赋值 */ |
|
|
|
|
const handleSetOption = (label, Arr) => { |
|
|
|
|
for (const iterator of details.columnList) { |
|
|
|
|
if (iterator.prop === label + 'Name') { |
|
|
|
|
iterator.checkarr = Arr; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
onMounted(() => { |
|
|
|
|
// 表格下拉框赋值 |
|
|
|
|
handleSetOption('payMethod', details.payMethodOptions); |
|
|
|
|
handleSetOption('loadStatus', details.loadStatusOptions); |
|
|
|
|
handleSetOption('isSettlement', details.isSettlementOptions); |
|
|
|
|
handleSetOption('customerType', details.customerTypeOptions); |
|
|
|
|
handleSetOption('deliveryType', details.deliveryTypeOptions); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
/** 请求页面数据 */ |
|
|
|
|
const onLoad = async (params = {}) => { |
|
|
|
|
try { |
|
|
|
@ -770,7 +530,11 @@ const onLoad = async (params = {}) => {
|
|
|
|
|
details.loadingObj.list = true; |
|
|
|
|
|
|
|
|
|
// 请求页面数据 |
|
|
|
|
const res = await postTripartiteTransferPageList(details.page, { ...details.query, ...params }); |
|
|
|
|
const res = await postTripartiteTransferPageList({ |
|
|
|
|
...details.page, |
|
|
|
|
...details.query, |
|
|
|
|
...params, |
|
|
|
|
}); |
|
|
|
|
const { code, data } = res.data; |
|
|
|
|
if (code !== 200) return; |
|
|
|
|
details.data = data.records; |
|
|
|
@ -794,7 +558,7 @@ onLoad();
|
|
|
|
|
|
|
|
|
|
/** 搜索 */ |
|
|
|
|
const searchChange = () => { |
|
|
|
|
onLoad(details.page); |
|
|
|
|
onLoad(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 清空表单 */ |
|
|
|
@ -802,7 +566,7 @@ const searchReset = () => {
|
|
|
|
|
details.query = {}; |
|
|
|
|
details.stockupDate = []; |
|
|
|
|
details.page.pageNum = 1; |
|
|
|
|
onLoad(details.page); |
|
|
|
|
onLoad(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 展开列表控件 */ |
|
|
|
@ -845,7 +609,7 @@ const searchHide = () => {
|
|
|
|
|
/** 表格表头输入框搜索 */ |
|
|
|
|
const inputsc = (index, row) => { |
|
|
|
|
details.query[row.prop] = index; |
|
|
|
|
onLoad(details.page); |
|
|
|
|
onLoad(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头时间选择 */ |
|
|
|
@ -858,7 +622,7 @@ const timesc = (index, row) => {
|
|
|
|
|
if (!index) { |
|
|
|
|
delete details.query[row.prop]; |
|
|
|
|
} |
|
|
|
|
onLoad(details.page); |
|
|
|
|
onLoad(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头输入框搜索 */ |
|
|
|
@ -866,13 +630,12 @@ const btnsc = () => {};
|
|
|
|
|
|
|
|
|
|
/** 表格表头下拉框选择 */ |
|
|
|
|
const selectsc = (index, row) => { |
|
|
|
|
details.query[row.prop] = index; |
|
|
|
|
if (!index) delete details.query[row.prop]; |
|
|
|
|
if (row.prop === 'certificateTypeName') { |
|
|
|
|
details.query['certificateType'] = index; |
|
|
|
|
if (!index) delete details.query['certificateType']; |
|
|
|
|
} |
|
|
|
|
onLoad(details.page); |
|
|
|
|
const _name = row.prop.replace('Name', ''); |
|
|
|
|
|
|
|
|
|
details.query[_name] = index; |
|
|
|
|
if (!index) delete details.query[_name]; |
|
|
|
|
|
|
|
|
|
onLoad(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头复选框选择 */ |
|
|
|
@ -881,48 +644,10 @@ 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; |
|
|
|
|
onLoad(details.page); |
|
|
|
|
onLoad(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 页码改变执行的回调 */ |
|
|
|
@ -954,16 +679,7 @@ const beforeClose = done => {
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 显示装车详情 */ |
|
|
|
|
const handleShowTruckLoadingDetails = ({ row }) => { |
|
|
|
|
details.popUpShow.truckLoadingDetailVisited = true; |
|
|
|
|
|
|
|
|
|
nextTick(() => { |
|
|
|
|
// 获取弹窗内表格元素节点, 并设置高度 |
|
|
|
|
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi'); |
|
|
|
|
_node.style.height = '550px'; |
|
|
|
|
console.log('_node :>> ', _node); |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
const handleShowTruckLoadingDetails = ({ row }) => {}; |
|
|
|
|
|
|
|
|
|
/** 跳转零担补录 */ |
|
|
|
|
const handleShowzeroAdditionalRecording = ({ row }) => { |
|
|
|
@ -1001,26 +717,6 @@ const handleShowTransfer = async (_type: string) => {
|
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
// details.popUpShow.transferVisited = true; |
|
|
|
|
|
|
|
|
|
// nextTick(() => { |
|
|
|
|
// // 获取弹窗内表格元素节点, 并设置高度 |
|
|
|
|
// const _nodeList = document.querySelectorAll('.transferPopUp .maboxhi'); |
|
|
|
|
// _nodeList.forEach(val => (val.style.height = '300px')); |
|
|
|
|
// }); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 添加运单 */ |
|
|
|
|
const handleAddWaybill = () => { |
|
|
|
|
// if (this.addInfo.oldSelectionList.length === 0) return this.$message.warning('最少选择一条运单'); |
|
|
|
|
// this.addInfo.newData = [...this.addInfo.newData, ...this.addInfo.oldSelectionList]; |
|
|
|
|
// this.addInfo.haveIds = this.addInfo.map(val => val.id); |
|
|
|
|
}; |
|
|
|
|
/** 移除运单 */ |
|
|
|
|
const handleRemoveWaybill = () => { |
|
|
|
|
// if (this.addInfo.newSelectionList.length === 0) return this.$message.warning('最少选择一条运单'); |
|
|
|
|
// this.addInfo.newData = [...this.addInfo.newData, ...this.addInfo.oldSelectionList]; |
|
|
|
|
// this.addInfo.haveIds = this.addInfo.map(val => val.id); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 开启到达弹窗 */ |
|
|
|
|