Commit a4557707 authored by dragondean@qq.com's avatar dragondean@qq.com

卸柜优化

parent 490d06d4
......@@ -28,9 +28,32 @@
</p>
</el-row>
<el-row>
<el-form inline>
<el-form-item :label="$t('订单号')">
<el-input v-model="queryParams.orderNo" :placeholder="$t('请输入订单号')"></el-input>
</el-form-item>
<el-form-item :label="$t('始发仓')">
<el-select v-model="queryParams.startWarehouseIds" :placeholder="$t('请选择始发仓')" clearable multiple>
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="$l(item, 'title')" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的仓')">
<el-select v-model="queryParams.destWarehouseIds" :placeholder="$t('请选择目的仓')" clearable multiple>
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="$l(item, 'title')" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="batchUnLoad" :disabled="!multipleSelection.length">{{$t('选中订单一键卸柜')}}</el-button>
</el-form-item>
</el-form>
</el-row>
<!-- 表格 -->
<el-row class="table-area">
<el-table v-loading="loading" :data="pageData.sectionOrderList" border max-height="500px">
<el-table v-loading="loading" :data="filteredOrderList" border max-height="500px" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('序号')" align="center" width="50" prop="tidanNum" />
<el-table-column :label="$t('订单号')" align="center" prop="orderNo">
<template slot-scope="scope">
......@@ -83,6 +106,8 @@
<el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template>
</el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" />
<el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" />
<el-table-column :label="$t('体积')" align="center" prop="volume" />
<el-table-column :label="$t('重量')" align="center" prop="weight" />
<el-table-column :label="$t('订单状态')" align="center" prop="">
......@@ -155,6 +180,11 @@
<el-dialog custom-class="shipping-dialog" :title="$t('异常')" :visible.sync="dialogVisible" width="600px" :modal-append-to-body=false append-to-body>
<unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" />
</el-dialog>
<el-dialog :title="$t('批量卸柜选中订单')" :visible="batchUnloading" :before-close="handleCloseBatchUnloading" append-to-body>
<template v-for="item in batchLogs">
<div>{{item}}</div>
</template>
</el-dialog>
</div>
</template>
......@@ -173,6 +203,8 @@ import {
import { serviceMsg, getTotlContent, toReviewDetail } from "../../utils";
import WorkFlow from "@/components/WorkFlow";
import Decimal from "decimal.js";
import { getWarehouseList } from '@/api/ecw/warehouse'
import Template from '@/views/cms/template/index.vue'
/**
* 开始卸柜
......@@ -180,7 +212,7 @@ import Decimal from "decimal.js";
export default {
name: "startUnloading",
inheritAttrs: false,
components: { unloadingError, WorkFlow },
components: { Template, unloadingError, WorkFlow },
data() {
return {
// 标签号
......@@ -218,10 +250,24 @@ export default {
totalStatistics: {},
},
selectedUsers: [],
ulWarehouseTime: null
ulWarehouseTime: null,
warehouseList:[],
// 筛选参数
queryParams:{
orderNo: '',
startWarehouseIds:[],
destWarehouseIds:[]
},
// 表格选中的
multipleSelection: [],
// 是否正在批量卸柜
batchUnloading: false,
// 批量操作的日志
batchLogs:[]
};
},
created() {
getWarehouseList().then(res => this.warehouseList = res.data)
this.getLoadGoodsList();
// 部分
getSectionList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => {
......@@ -452,8 +498,64 @@ export default {
toReviewDetail.apply(this, [cabinetUnloadApprovalInfo.bpmProcessId]);
this.$emit("closeStart", "close");
},
// 表格多选
handleSelectionChange(selection) {
console.log({selection})
this.multipleSelection = selection
},
async batchUnLoad(){
if(!this.multipleSelection?.length){
return this.$message(this.$t('请先选择订单'))
}
if(!this.ulWarehouseTime){
return this.$message(this.$t('请选择卸柜时间'))
}
console.log('批量卸柜')
this.batchUnloading = true
this.batchLogs = []
for(const item of this.multipleSelection){
if(!this.batchUnloading)break;
const time = new Date()
const timeStr = [time.getHours(), time.getMinutes(), time.getSeconds()].map(item => item.toString().padStart(2, '0')).join(':')
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}正在卸柜`)
await batchUnload({
orderNo: item.orderNo,
shipmentId: this.$attrs.shipmentObj.id,
unloadTime: this.ulWarehouseTime
}).then((res) => {
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜成功`)
}).catch((err) => {
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜失败` + JSON.stringify(err))
});
}
this.batchLogs.push("批量卸柜完成")
this.getLoadGoodsList();
},
handleCloseBatchUnloading(){
this.batchUnloading = false
}
},
computed: {
exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
},
importWarehouseList(){
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3)
},
filteredOrderList(){
if(!this.pageData?.sectionOrderList?.length) return []
return this.pageData.sectionOrderList.filter((item) => {
if(this.queryParams.orderNo && this.queryParams.orderNo != item.orderNo)return false
if(this.queryParams.startWarehouseIds?.length && this.queryParams.startWarehouseIds.indexOf(item.startWarehouseName) === -1){
return false
}
if(this.queryParams.destWarehouseIds?.length && this.queryParams.destWarehouseIds.indexOf(item.destWarehouseName) === -1){
return false
}
return true
})
},
/* 是否审核中 */
isUnderReview() {
const { currNode, shipmentObj } = this.$attrs;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment