|
|
|
@ -103,175 +103,169 @@
|
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
<el-divider>订单列表</el-divider> |
|
|
|
|
<div v-loading="checkloading" element-loading-text="正在复核签收处理中..."> |
|
|
|
|
<div class="flex-c-sb"> |
|
|
|
|
<el-tabs class="flex1" v-model="activeTab" @tab-click="handleTabClick"> |
|
|
|
|
<el-tab-pane label="客 户 列 表" name="tab1"> </el-tab-pane> |
|
|
|
|
|
|
|
|
|
<div class="flex-c-sb"> |
|
|
|
|
<el-tabs |
|
|
|
|
class="flex1" |
|
|
|
|
v-model="activeTab" |
|
|
|
|
@tab-click="handleTabClick" |
|
|
|
|
v-loading="checkloading" |
|
|
|
|
element-loading-text="正在复核签收处理中..." |
|
|
|
|
> |
|
|
|
|
<el-tab-pane label="客 户 列 表" name="tab1"> </el-tab-pane> |
|
|
|
|
|
|
|
|
|
<el-tab-pane label="订 单 列 表" name="tab2"> </el-tab-pane> |
|
|
|
|
<el-tab-pane label="订 单 列 表" name="tab2"> </el-tab-pane> |
|
|
|
|
|
|
|
|
|
<el-tab-pane label="包 件 列 表" name="tab3"> </el-tab-pane> |
|
|
|
|
<el-tab-pane label="包 件 列 表" name="tab3"> </el-tab-pane> |
|
|
|
|
|
|
|
|
|
<el-tab-pane label="库 存 品 列 表" name="tab4"> </el-tab-pane> |
|
|
|
|
</el-tabs> |
|
|
|
|
<el-tab-pane label="库 存 品 列 表" name="tab4"> </el-tab-pane> |
|
|
|
|
</el-tabs> |
|
|
|
|
|
|
|
|
|
<el-button style="margin-left: 20px" type="primary" icon="Position" @click="handleExport"> |
|
|
|
|
导出 |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
<!-- 客户列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab1'"> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="columnList" |
|
|
|
|
:tableData="data" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscClient" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handleView(slotProps.scope.row)" |
|
|
|
|
>查看 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
v-if="Number(deliverydata.type) === 2" |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handlePrint(slotProps.scope.row)" |
|
|
|
|
>打印 |
|
|
|
|
</el-text> |
|
|
|
|
<el-button style="margin-left: 20px" type="primary" icon="Position" @click="handleExport"> |
|
|
|
|
导出 |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
<!-- 客户列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab1'"> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="columnList" |
|
|
|
|
:tableData="data" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscClient" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handleView(slotProps.scope.row)" |
|
|
|
|
>查看 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
v-if="Number(deliverydata.type) === 2" |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handlePrint(slotProps.scope.row)" |
|
|
|
|
>打印 |
|
|
|
|
</el-text> |
|
|
|
|
|
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="viewAbnormalLoading(slotProps.scope.row)" |
|
|
|
|
v-if="slotProps.scope.row.isHaveAbnormalPackage == '2'" |
|
|
|
|
>异常审核 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="viewAbnormalLoading(slotProps.scope.row)" |
|
|
|
|
v-if="slotProps.scope.row.isHaveAbnormalPackage == '2'" |
|
|
|
|
>异常审核 |
|
|
|
|
</el-text> |
|
|
|
|
|
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handleCallDelivery('3', slotProps.scope.row)" |
|
|
|
|
v-if="slotProps.scope.row.reservationSigningStatus === '待签收'" |
|
|
|
|
>编辑 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="pictureUpload('4', slotProps.scope.row)" |
|
|
|
|
v-if="slotProps.scope.row.driverSigning === '未完成'" |
|
|
|
|
>图片上传 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handleCallDelivery('3', slotProps.scope.row)" |
|
|
|
|
v-if="slotProps.scope.row.reservationSigningStatus === '待签收'" |
|
|
|
|
>编辑 |
|
|
|
|
</el-text> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="pictureUpload('4', slotProps.scope.row)" |
|
|
|
|
v-if="slotProps.scope.row.driverSigning === '未完成'" |
|
|
|
|
>图片上传 |
|
|
|
|
</el-text> |
|
|
|
|
|
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handleSign(slotProps.scope.row)" |
|
|
|
|
v-if=" |
|
|
|
|
slotProps.scope.row.signingStatus == '待审核' && |
|
|
|
|
slotProps.scope.row.driverSigning === '已完成' |
|
|
|
|
" |
|
|
|
|
>复核签收 |
|
|
|
|
</el-text> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</template> |
|
|
|
|
<el-text |
|
|
|
|
type="primary" |
|
|
|
|
text |
|
|
|
|
icon="el-icon-view" |
|
|
|
|
@click="handleSign(slotProps.scope.row)" |
|
|
|
|
v-if=" |
|
|
|
|
slotProps.scope.row.signingStatus == '待审核' && |
|
|
|
|
slotProps.scope.row.driverSigning === '已完成' |
|
|
|
|
" |
|
|
|
|
>复核签收 |
|
|
|
|
</el-text> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<!-- 订单列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab2'"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="ordoptioncolumn" |
|
|
|
|
:tableData="orddata" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscOrder" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> </template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</template> |
|
|
|
|
<!-- 订单列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab2'"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="ordoptioncolumn" |
|
|
|
|
:tableData="orddata" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscOrder" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> </template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<!-- 包件列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab3'"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<el-button type="warning" plain @click="ViewQRcodes">批量查看二维码 </el-button> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="wrapoptioncolumn" |
|
|
|
|
:tableData="packdata" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscPackage" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text size="small" @click="handleQRCode(slotProps.scope.row)">查看二维码</el-text> |
|
|
|
|
<el-text size="small" @click="ViewingTrajectories(slotProps.scope.row)" |
|
|
|
|
>查看轨迹</el-text |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
|
|
|
|
|
<div class="avue-crud__pagination" style="width: 100%"> |
|
|
|
|
<!-- 分页模块 --> |
|
|
|
|
<el-pagination |
|
|
|
|
align="right" |
|
|
|
|
background |
|
|
|
|
@size-change="psizeChange" |
|
|
|
|
@current-change="pcurrentChange" |
|
|
|
|
:current-page="packpage.currentPage" |
|
|
|
|
:page-sizes="[30, 50, 80, 120]" |
|
|
|
|
:page-size="packpage.pageSize" |
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
:total="packpage.total" |
|
|
|
|
<!-- 包件列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab3'"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<el-button type="warning" plain @click="ViewQRcodes">批量查看二维码 </el-button> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="wrapoptioncolumn" |
|
|
|
|
:tableData="packdata" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscPackage" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
</el-pagination> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text size="small" @click="handleQRCode(slotProps.scope.row)">查看二维码</el-text> |
|
|
|
|
<el-text size="small" @click="ViewingTrajectories(slotProps.scope.row)" |
|
|
|
|
>查看轨迹</el-text |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
|
|
|
|
|
<!-- 库存品列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab4'"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="inventoryoptioncolumn" |
|
|
|
|
:tableData="inventorydata" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscInventory" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text size="small" @click="handleInventoryQRCode(slotProps.scope.row)" |
|
|
|
|
>查看二维码</el-text |
|
|
|
|
<div class="avue-crud__pagination" style="width: 100%"> |
|
|
|
|
<!-- 分页模块 --> |
|
|
|
|
<el-pagination |
|
|
|
|
align="right" |
|
|
|
|
background |
|
|
|
|
@size-change="psizeChange" |
|
|
|
|
@current-change="pcurrentChange" |
|
|
|
|
:current-page="packpage.currentPage" |
|
|
|
|
:page-sizes="[30, 50, 80, 120]" |
|
|
|
|
:page-size="packpage.pageSize" |
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
:total="packpage.total" |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</template> |
|
|
|
|
</el-pagination> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<!-- 库存品列表 --> |
|
|
|
|
<template v-if="activeTab === 'tab4'"> |
|
|
|
|
<!-- 列表模块 --> |
|
|
|
|
<tablecmt |
|
|
|
|
class="tableNode" |
|
|
|
|
:columnList="inventoryoptioncolumn" |
|
|
|
|
:tableData="inventorydata" |
|
|
|
|
:loading="loading" |
|
|
|
|
@inputTxt="inputscInventory" |
|
|
|
|
@timeCheck="timesc" |
|
|
|
|
@btnCheck="btnsc" |
|
|
|
|
@selectCheck="selectsc" |
|
|
|
|
@selection="selectionChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<el-text size="small" @click="handleInventoryQRCode(slotProps.scope.row)" |
|
|
|
|
>查看二维码</el-text |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
</template> |
|
|
|
|
</div> |
|
|
|
|
<el-dialog v-model="dialogFormCustomer" title="修改客户信息"> |
|
|
|
|
<el-form :model="formCustomer" ref="formCustomer" :rules="formCustomerRolus"> |
|
|
|
|
<el-row> |
|
|
|
@ -660,6 +654,15 @@
|
|
|
|
|
multiple |
|
|
|
|
drag |
|
|
|
|
> |
|
|
|
|
<template #file="{ file }"> |
|
|
|
|
<el-tooltip :content="getTooltipContent(file)" placement="top"> |
|
|
|
|
<img |
|
|
|
|
:src="file.url" |
|
|
|
|
alt="photo" |
|
|
|
|
style="width: 100%; height: 100%; cursor: pointer" |
|
|
|
|
/> |
|
|
|
|
</el-tooltip> |
|
|
|
|
</template> |
|
|
|
|
<el-icon><Plus /></el-icon> |
|
|
|
|
</el-upload> |
|
|
|
|
<el-dialog v-model="dialogVisibleA"> |
|
|
|
@ -681,6 +684,15 @@
|
|
|
|
|
multiple |
|
|
|
|
drag |
|
|
|
|
> |
|
|
|
|
<template #file="{ file }"> |
|
|
|
|
<el-tooltip :content="getTooltipContent(file)" placement="top"> |
|
|
|
|
<img |
|
|
|
|
:src="file.url" |
|
|
|
|
alt="photo" |
|
|
|
|
style="width: 100%; height: 100%; cursor: pointer" |
|
|
|
|
/> |
|
|
|
|
</el-tooltip> |
|
|
|
|
</template> |
|
|
|
|
<el-icon><Plus /></el-icon> |
|
|
|
|
</el-upload> |
|
|
|
|
<el-dialog v-model="dialogVisibleB"> |
|
|
|
@ -702,6 +714,15 @@
|
|
|
|
|
multiple |
|
|
|
|
drag |
|
|
|
|
> |
|
|
|
|
<template #file="{ file }"> |
|
|
|
|
<el-tooltip :content="getTooltipContent(file)" placement="top"> |
|
|
|
|
<img |
|
|
|
|
:src="file.url" |
|
|
|
|
alt="photo" |
|
|
|
|
style="width: 100%; height: 100%; cursor: pointer" |
|
|
|
|
/> |
|
|
|
|
</el-tooltip> |
|
|
|
|
</template> |
|
|
|
|
<el-icon><Plus /></el-icon> |
|
|
|
|
</el-upload> |
|
|
|
|
<el-dialog v-model="dialogVisibleC"> |
|
|
|
@ -723,6 +744,15 @@
|
|
|
|
|
multiple |
|
|
|
|
drag |
|
|
|
|
> |
|
|
|
|
<template #file="{ file }"> |
|
|
|
|
<el-tooltip :content="getTooltipContent(file)" placement="top"> |
|
|
|
|
<img |
|
|
|
|
:src="file.url" |
|
|
|
|
alt="photo" |
|
|
|
|
style="width: 100%; height: 100%; cursor: pointer" |
|
|
|
|
/> |
|
|
|
|
</el-tooltip> |
|
|
|
|
</template> |
|
|
|
|
<el-icon><Plus /></el-icon> |
|
|
|
|
</el-upload> |
|
|
|
|
<el-dialog v-model="dialogVisibleD"> |
|
|
|
@ -744,6 +774,15 @@
|
|
|
|
|
multiple |
|
|
|
|
drag |
|
|
|
|
> |
|
|
|
|
<template #file="{ file }"> |
|
|
|
|
<el-tooltip :content="getTooltipContent(file)" placement="top"> |
|
|
|
|
<img |
|
|
|
|
:src="file.url" |
|
|
|
|
alt="photo" |
|
|
|
|
style="width: 100%; height: 100%; cursor: pointer" |
|
|
|
|
/> |
|
|
|
|
</el-tooltip> |
|
|
|
|
</template> |
|
|
|
|
<el-icon><Plus /></el-icon> |
|
|
|
|
</el-upload> |
|
|
|
|
<el-dialog v-model="dialogVisibleE"> |
|
|
|
@ -3811,6 +3850,10 @@ export default {
|
|
|
|
|
this.loadingObj.pageLoading = false; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
getTooltipContent(file) { |
|
|
|
|
console.log(file, 'file'); |
|
|
|
|
return `该图片由${file.driverName || '文员'}上传`; |
|
|
|
|
}, |
|
|
|
|
/** 打印库存存品 */ |
|
|
|
|
async handleInventoryQRCode(row) { |
|
|
|
|
try { |
|
|
|
@ -4804,6 +4847,7 @@ export default {
|
|
|
|
|
reservationId: this.reservationId, |
|
|
|
|
type: photoType, |
|
|
|
|
urlRoute: item.response && item.response.data ? item.response.data.link : item.url, |
|
|
|
|
driverName: item.driverName || '', |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
@ -5051,41 +5095,32 @@ export default {
|
|
|
|
|
this.form = res.data.data; |
|
|
|
|
this.TcForm = res.data.data; |
|
|
|
|
// 照片回显分类 |
|
|
|
|
this.DoorstepPhoto = []; |
|
|
|
|
this.StackingPhoto = []; |
|
|
|
|
this.FragilePhotos = []; |
|
|
|
|
this.HomePhotos = []; |
|
|
|
|
this.SignForPhotos = []; |
|
|
|
|
if (res.data.data.printVOList) { |
|
|
|
|
// DoorstepPhoto 上门照片 |
|
|
|
|
// StackingPhoto 堆码照片 |
|
|
|
|
// FragilePhotos 易碎照 |
|
|
|
|
// HomePhotos 家配照 |
|
|
|
|
// SignForPhotos 签收照 |
|
|
|
|
this.DoorstepPhoto = []; |
|
|
|
|
this.StackingPhoto = []; |
|
|
|
|
this.FragilePhotos = []; |
|
|
|
|
this.HomePhotos = []; |
|
|
|
|
this.SignForPhotos = []; |
|
|
|
|
this.DoorstepPhoto = []; //上门照片 |
|
|
|
|
this.StackingPhoto = []; //堆码照片 |
|
|
|
|
this.FragilePhotos = []; //易碎照 |
|
|
|
|
this.HomePhotos = []; //家配照 |
|
|
|
|
this.SignForPhotos = []; //签收照 |
|
|
|
|
|
|
|
|
|
if (res.data.data.printVOList?.length) { |
|
|
|
|
const photoTypes = { |
|
|
|
|
photo_1: 'DoorstepPhoto', |
|
|
|
|
photo_2: 'StackingPhoto', |
|
|
|
|
photo_3: 'FragilePhotos', |
|
|
|
|
photo_4: 'HomePhotos', |
|
|
|
|
photo_5: 'SignForPhotos', |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
res.data.data.printVOList.forEach(item => { |
|
|
|
|
if (item.type == 'photo_1') { |
|
|
|
|
this.DoorstepPhoto.push({ name: '', url: item.urlRoute }); |
|
|
|
|
} |
|
|
|
|
if (item.type == 'photo_2') { |
|
|
|
|
this.StackingPhoto.push({ name: '', url: item.urlRoute }); |
|
|
|
|
} |
|
|
|
|
if (item.type == 'photo_3') { |
|
|
|
|
this.FragilePhotos.push({ name: '', url: item.urlRoute }); |
|
|
|
|
} |
|
|
|
|
if (item.type == 'photo_4') { |
|
|
|
|
this.HomePhotos.push({ name: '', url: item.urlRoute }); |
|
|
|
|
} |
|
|
|
|
if (item.type == 'photo_5') { |
|
|
|
|
this.SignForPhotos.push({ name: '', url: item.urlRoute }); |
|
|
|
|
const photoCategory = photoTypes[item.type]; |
|
|
|
|
if (photoCategory) { |
|
|
|
|
this[photoCategory].push({ |
|
|
|
|
name: '', |
|
|
|
|
url: item.urlRoute, |
|
|
|
|
driverName: item.driverName, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
console.log('签收>>>>>>>>>>', row); |
|
|
|
|
console.log(row.signId, '复合签收'); |
|
|
|
|
this.signtitle = '复核签收'; |
|
|
|
|