Commit 9d6a84d2 authored by huhaiqing's avatar huhaiqing

总计跟容量字段信息补全

parent 8f900fd0
...@@ -4,8 +4,12 @@ ...@@ -4,8 +4,12 @@
<el-row class="content-area"> <el-row class="content-area">
<!-- 左侧 --> <!-- 左侧 -->
<el-col :span="6" class="left-area"> <el-col :span="6"
<el-row v-for="item in listData" :key="item.id" class="title-info" :class="item.id === tableData.id ? 'selected' : ''"> class="left-area">
<el-row v-for="item in listData"
:key="item.id"
class="title-info"
:class="item.id === tableData.id ? 'selected' : ''">
<div @click="partClick(item)"> <div @click="partClick(item)">
<p>{{item.title}}</p> <p>{{item.title}}</p>
</div> </div>
...@@ -18,38 +22,58 @@ ...@@ -18,38 +22,58 @@
</el-col> </el-col>
<!-- 右侧 --> <!-- 右侧 -->
<el-col :span="18" class="right-area"> <el-col :span="18"
class="right-area">
<!-- 操作 --> <!-- 操作 -->
<el-row class="table-title"> <el-row class="table-title">
<div>当前装柜:{{tableData.title}}</div> <div>当前装柜:{{tableData.title}}</div>
<div> <div>
<template v-if="!isUnderReview"> <template v-if="!isUnderReview">
<el-input v-model="qrCode" placeholder="请输入二维码/条码编号" clearable></el-input> <el-input v-model="qrCode"
<el-button type="primary" @click="handlerBatchCreate('single')">确定</el-button> placeholder="请输入二维码/条码编号"
<el-button type="primary" @click="handlerClick('batchInput','批量输入')">批量输入</el-button> clearable></el-input>
<el-button type="primary" @click="handlerClick('correction','装柜纠错')">装柜纠错</el-button> <el-button type="primary"
<el-button type="primary" @click="handlerClick('correctionOrder','批量装柜纠错')">批量装柜纠错</el-button> @click="handlerBatchCreate('single')">确定</el-button>
<el-button type="primary"
@click="handlerClick('batchInput','批量输入')">批量输入</el-button>
<el-button type="primary"
@click="handlerClick('correction','装柜纠错')">装柜纠错</el-button>
<el-button type="primary"
@click="handlerClick('correctionOrder','批量装柜纠错')">批量装柜纠错</el-button>
</template> </template>
</div> </div>
</el-row> </el-row>
<!-- 表格 --> <!-- 表格 -->
<el-row class="table-content"> <el-row class="table-content">
<el-table :data="tableData.sectionOrderList" border> <el-table :data="tableData.sectionOrderList"
<el-table-column label="序号" type="index" align="center" width="50" /> border>
<el-table-column label="订单号" align="center" prop="orderNo"> <el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column label="订单号"
align="center"
prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a> <a href="javascript:void(0);"
class="order-href"
@click="orderClick(scope.row)">{{ scope.row.orderNo }}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="货物信息" align="center" prop="goodsList"> <el-table-column label="货物信息"
align="center"
prop="goodsList">
<template slot-scope="scope"> <template slot-scope="scope">
<section class="table-goodList"> <section class="table-goodList">
<div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div"> <div v-for="(item, index) in scope.row.goodsList"
:key="index"
class="goodList-div">
<p>品名:{{item.prodTitleZh}}</p> <p>品名:{{item.prodTitleZh}}</p>
<p>品牌:【 <p>品牌:【
<dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :value="item.productRecord" /> <dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
:value="item.productRecord" />
</p> </p>
<p>其他:{{getTotlContent(item)}}</p> <p>其他:{{getTotlContent(item)}}</p>
...@@ -57,29 +81,42 @@ ...@@ -57,29 +81,42 @@
</section> </section>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="计划箱数" align="center" prop="num"> <el-table-column label="计划箱数"
align="center"
prop="num">
<template slot-scope="scope"> <template slot-scope="scope">
{{getTotlContent(scope.row,['num'])}} {{getTotlContent(scope.row,['num'])}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="实装箱数" align="center" prop="installNum"> <el-table-column label="实装箱数"
align="center"
prop="installNum">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.installNum }} {{ scope.row.installNum }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="体积" align="center" prop="volume"> <el-table-column label="体积"
align="center"
prop="volume">
<template slot-scope="scope"> <template slot-scope="scope">
{{getTotlContent(scope.row,['volume'])}} {{getTotlContent(scope.row,['volume'])}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重量" align="center" prop="weight"> <el-table-column label="重量"
align="center"
prop="weight">
<template slot-scope="scope"> <template slot-scope="scope">
{{getTotlContent(scope.row,['weight'])}} {{getTotlContent(scope.row,['weight'])}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作"
align="center"
class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">移出</el-button> <el-button type="text"
size="small"
@click="moveOut(scope.row)"
v-if="!isUnderReview && scope.row.installNum === 0">移出</el-button>
<!-- <el-button type="text" size="small" v-if="isShowSplitOrder(scope.row)" @click="handlerSplitOrder(scope.row, 'splitOrder','拆单')">拆单</el-button> --> <!-- <el-button type="text" size="small" v-if="isShowSplitOrder(scope.row)" @click="handlerSplitOrder(scope.row, 'splitOrder','拆单')">拆单</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
...@@ -92,16 +129,14 @@ ...@@ -92,16 +129,14 @@
<!-- 统计 --> <!-- 统计 -->
<el-row> <el-row>
<el-col :span="6" class="totle-info"> <el-col :span="6"
class="totle-info">
<div class="count-info"> <div class="count-info">
<p>总计: <p>总计:{{getSumData}}</p>
无返回
<!-- <span>{{sumData.count.num}}箱</span><span>{{sumData.count.volume}}m³</span><span>{{sumData.count.weight}}Kg</span> -->
</p>
</div> </div>
<div> <div>
<p>容量:</p> <p>容量:</p>
<p>无返回</p> <p>{{calcCapacity}}</p>
</div> </div>
<div>已装 无返回 箱</div> <div>已装 无返回 箱</div>
</el-col> </el-col>
...@@ -109,84 +144,150 @@ ...@@ -109,84 +144,150 @@
<!-- 操作 --> <!-- 操作 -->
<el-row class="button-area"> <el-row class="button-area">
<el-button type="primary" @click="handlerClick('supplementOrder','补单')" v-if="!isUnderReview">补单</el-button> <el-button type="primary"
<el-button type="primary" v-if="!isUnderReview" @click="applyCloseCabinet">申请封柜</el-button> @click="handlerClick('supplementOrder','补单')"
<el-button type="primary" @click="handlerClick('modifyCabinet','修改柜信息')" v-if="!isUnderReview">修改柜信息</el-button> v-if="!isUnderReview">补单</el-button>
<el-button type="primary" v-if="isUnderReview">封柜审核中</el-button> <el-button type="primary"
v-if="!isUnderReview"
@click="applyCloseCabinet">申请封柜</el-button>
<el-button type="primary"
@click="handlerClick('modifyCabinet','修改柜信息')"
v-if="!isUnderReview">修改柜信息</el-button>
<el-button type="primary"
v-if="isUnderReview">封柜审核中</el-button>
</el-row> </el-row>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="dialogConfig.title" :visible.sync="dialogConfig.dialogVisible" :fullscreen="dialogConfig.fullscreen" :width="dialogConfig.width" :modal-append-to-body=false append-to-body> <el-dialog custom-class="shipping-dialog"
:title="dialogConfig.title"
:visible.sync="dialogConfig.dialogVisible"
:fullscreen="dialogConfig.fullscreen"
:width="dialogConfig.width"
:modal-append-to-body=false
append-to-body>
<!-- 已装未装订单 --> <!-- 已装未装订单 -->
<template v-if="dialogConfig.type === 'orderTable'"> <template v-if="dialogConfig.type === 'orderTable'">
<el-table :data="orderList" border> <el-table :data="orderList"
<el-table-column label="已装" align="center" prop="loadTag" /> height="500px"
<el-table-column label="未装" align="center" prop="unloadTag" /> border>
<el-table-column label="已装"
align="center"
prop="loadTag" />
<el-table-column label="未装"
align="center"
prop="unloadTag" />
</el-table> </el-table>
</template> </template>
<!-- 补单 --> <!-- 补单 -->
<supplementOrder v-if="dialogConfig.type === 'supplementOrder' && dialogConfig.dialogVisible" v-bind="$attrs" :shipmentObj="shipmentObj" @supplementFinish="supplementFinish" /> <supplementOrder v-if="dialogConfig.type === 'supplementOrder' && dialogConfig.dialogVisible"
v-bind="$attrs"
:shipmentObj="shipmentObj"
@supplementFinish="supplementFinish" />
<!-- 修改柜信息 --> <!-- 修改柜信息 -->
<template v-if="dialogConfig.type === 'modifyCabinet' && dialogConfig.dialogVisible"> <template v-if="dialogConfig.type === 'modifyCabinet' && dialogConfig.dialogVisible">
<el-form ref="modifyForm" :rules="rules" :model="modifyCabinetObj" label-width="80px"> <el-form ref="modifyForm"
<el-form-item label="起运仓库" prop="startWarehouseId"> :rules="rules"
<el-select v-model="modifyCabinetObj.startWarehouseId" placeholder="请选择仓库" filterable> :model="modifyCabinetObj"
<el-option v-for="warehouse in $attrs.warehouseList" :key="warehouse.id" :label="warehouse.titleZh" :value="warehouse.id"></el-option> label-width="80px">
<el-form-item label="起运仓库"
prop="startWarehouseId">
<el-select v-model="modifyCabinetObj.startWarehouseId"
placeholder="请选择仓库"
filterable>
<el-option v-for="warehouse in $attrs.warehouseList"
:key="warehouse.id"
:label="warehouse.titleZh"
:value="warehouse.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="预计时间">{{preinstallDate}}</el-form-item> <el-form-item label="预计时间">{{preinstallDate}}</el-form-item>
<el-form-item label="选择柜型" prop="cabinetId"> <el-form-item label="选择柜型"
<el-select v-model="modifyCabinetObj.cabinetId" placeholder="请选择柜型"> prop="cabinetId">
<el-option v-for="item in cabinetList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-select v-model="modifyCabinetObj.cabinetId"
placeholder="请选择柜型">
<el-option v-for="item in cabinetList"
:label="item.name"
:value="item.id"
:key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="柜号"> <el-form-item label="柜号">
<el-input v-model="modifyCabinetObj.cubNo" placeholder="请输入柜号" clearable /> <el-input v-model="modifyCabinetObj.cubNo"
placeholder="请输入柜号"
clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('modifyForm')">下一步</el-button> <el-button type="primary"
@click="onSubmit('modifyForm')">下一步</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 装柜纠错 --> <!-- 装柜纠错 -->
<template v-if="dialogConfig.type === 'correction' && dialogConfig.dialogVisible"> <template v-if="dialogConfig.type === 'correction' && dialogConfig.dialogVisible">
<el-form ref="correctionForm" :rules="rules" :model="correctionObj" label-position="top"> <el-form ref="correctionForm"
<el-form-item label="装柜纠错(二维码/条形码编号)" prop="qrCode"> :rules="rules"
<el-input v-model="correctionObj.qrCode" placeholder="请输入二维码/条形码编号" clearable /> :model="correctionObj"
label-position="top">
<el-form-item label="装柜纠错(二维码/条形码编号)"
prop="qrCode">
<el-input v-model="correctionObj.qrCode"
placeholder="请输入二维码/条形码编号"
clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('correctionForm')">提交</el-button> <el-button type="primary"
@click="onSubmit('correctionForm')">提交</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 批量装柜纠错(订单号) --> <!-- 批量装柜纠错(订单号) -->
<template v-if="dialogConfig.type === 'correctionOrder' && dialogConfig.dialogVisible"> <template v-if="dialogConfig.type === 'correctionOrder' && dialogConfig.dialogVisible">
<el-form ref="orderForm" :rules="rules" :model="orderObj" label-position="top"> <el-form ref="orderForm"
<el-form-item label="装柜纠错(订单号)" prop="orderNo"> :rules="rules"
<el-input type="textarea" :rows="3" v-model="orderObj.orderNo" placeholder="请输入,多个以逗号分隔" clearable /> :model="orderObj"
label-position="top">
<el-form-item label="装柜纠错(订单号)"
prop="orderNo">
<el-input type="textarea"
:rows="3"
v-model="orderObj.orderNo"
placeholder="请输入,多个以逗号分隔"
clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('orderForm')">提交</el-button> <el-button type="primary"
@click="onSubmit('orderForm')">提交</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 装柜批量输入 --> <!-- 装柜批量输入 -->
<template v-if="dialogConfig.type === 'batchInput' && dialogConfig.dialogVisible"> <template v-if="dialogConfig.type === 'batchInput' && dialogConfig.dialogVisible">
<el-form ref="batchForm" :rules="rules" :model="batchObj" label-position="top"> <el-form ref="batchForm"
<el-form-item label="" prop="qrCode"> :rules="rules"
<el-input type="textarea" :rows="3" v-model="batchObj.qrCode" placeholder="请输入,多个以逗号分隔" clearable /> :model="batchObj"
label-position="top">
<el-form-item label=""
prop="qrCode">
<el-input type="textarea"
:rows="3"
v-model="batchObj.qrCode"
placeholder="请输入,多个以逗号分隔"
clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('batchForm')">提交</el-button> <el-button type="primary"
@click="onSubmit('batchForm')">提交</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 拆单 --> <!-- 拆单 -->
<splitOrder v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog="closeDialog" /> <splitOrder v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible"
:currRow="currRow"
@closeDialog="closeDialog" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -206,7 +307,12 @@ import { ...@@ -206,7 +307,12 @@ import {
boxUpdate, boxUpdate,
approvalCreate, approvalCreate,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { getTotlContent, serviceMsg } from "../../utils"; import {
getTotlContent,
serviceMsg,
getCapacity,
sumStatistics,
} from "../../utils";
import splitOrder from "./splitOrder.vue"; import splitOrder from "./splitOrder.vue";
/** /**
...@@ -489,23 +595,7 @@ export default { ...@@ -489,23 +595,7 @@ export default {
}, },
watch: { watch: {
listData(val) { listData(val) {
let count = { num: 0, volume: 0, weight: 0 }; const count = sumStatistics(val);
if (Array.isArray(val)) {
val.forEach((item) => {
const { secStatistics } = item;
if (secStatistics) {
if (!Number.isNaN(Number(secStatistics.num))) {
count.num = count.num + Number(secStatistics.num);
}
if (!Number.isNaN(Number(secStatistics.volume))) {
count.volume = count.volume + Number(secStatistics.volume);
}
if (!Number.isNaN(Number(secStatistics.weight))) {
count.weight = count.weight + Number(secStatistics.weight);
}
}
});
}
this.$set(this.sumData, "count", count); this.$set(this.sumData, "count", count);
}, },
}, },
...@@ -522,6 +612,15 @@ export default { ...@@ -522,6 +612,15 @@ export default {
} }
return null; return null;
}, },
/* 容量 */
calcCapacity() {
const { cabinetRespVO } = this.shipmentObj;
return getCapacity(cabinetRespVO);
},
/* 总计 */
getSumData() {
return sumStatistics(this.listData);
},
}, },
}; };
</script> </script>
......
...@@ -5,23 +5,32 @@ ...@@ -5,23 +5,32 @@
<el-row class="content-area"> <el-row class="content-area">
<!-- 左侧 --> <!-- 左侧 -->
<el-col :span="6" class="left-area"> <el-col :span="6"
class="left-area">
<el-row> <el-row>
<el-button type="primary" @click="addPart">新增</el-button> <el-button type="primary"
<el-button type="danger" @click="deletePart">删除</el-button> @click="addPart">新增</el-button>
<el-button type="danger"
@click="deletePart">删除</el-button>
</el-row> </el-row>
<el-scrollbar style="height:calc(100% - 40px)"> <el-scrollbar style="height:calc(100% - 40px)">
<el-row v-for="item in partList" :key="item.id" class="title-info" :class="item.id === partData.id ? 'selected' : ''"> <el-row v-for="item in partList"
:key="item.id"
class="title-info"
:class="item.id === partData.id ? 'selected' : ''">
<div @click="partClick(item)"> <div @click="partClick(item)">
<p>{{item.title}}</p> <p>{{item.title}}</p>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<div v-if="item.fold === false ? true : false"> <div v-if="item.fold === false ? true : false">
<div v-for="(secGoog, index) in item.sectionGoodsList" :key="index" class="part-secGoog"> <div v-for="(secGoog, index) in item.sectionGoodsList"
:key="index"
class="part-secGoog">
<p>{{secGoog.orderNo}}</p> <p>{{secGoog.orderNo}}</p>
<p>{{secGoog.prodTitleZh}}</p> <p>{{secGoog.prodTitleZh}}</p>
<div> <div>
<i class="el-icon-delete" @click="deleteOrder(secGoog)"></i> <i class="el-icon-delete"
@click="deleteOrder(secGoog)"></i>
</div> </div>
</div> </div>
</div> </div>
...@@ -36,7 +45,8 @@ ...@@ -36,7 +45,8 @@
</el-col> </el-col>
<!-- 右侧 --> <!-- 右侧 -->
<el-col :span="18" class="right-area"> <el-col :span="18"
class="right-area">
<el-row class="right-title"> <el-row class="right-title">
<div>货物筛选</div> <div>货物筛选</div>
...@@ -46,67 +56,116 @@ ...@@ -46,67 +56,116 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-row> <el-row>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryParams"
ref="queryForm"
size="small"
:inline="true"
label-width="68px">
<el-form-item label="始发地"> <el-form-item label="始发地">
<p>{{importCityName(queryParams.startWarehouseId)}}</p> <p>{{importCityName(queryParams.startWarehouseId)}}</p>
</el-form-item> </el-form-item>
<el-form-item label="目的地" prop="destination"> <el-form-item label="目的地"
<el-select v-model="queryParams.destWarehouseIdList" placeholder="请选择目的地" multiple> prop="destination">
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-select v-model="queryParams.destWarehouseIdList"
placeholder="请选择目的地"
multiple>
<el-option v-for="item in importWarehouseList"
:label="item.titleZh"
:value="item.id"
:key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单号" prop="orderNo"> <el-form-item label="订单号"
<el-input v-model="queryParams.orderNo" placeholder="请输入订单号" clearable /> prop="orderNo">
<el-input v-model="queryParams.orderNo"
placeholder="请输入订单号"
clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="queryAllData">搜索</el-button> <el-button type="primary"
icon="el-icon-search"
@click="queryAllData">搜索</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<!-- 表格 --> <!-- 表格 -->
<el-scrollbar style="height:calc(100% - 124px)"> <el-scrollbar style="height:calc(100% - 124px)">
<el-row v-for="(item, index) in toBePreList" :key="index" class="toBePre-table"> <el-row v-for="(item, index) in toBePreList"
:key="index"
class="toBePre-table">
<el-row class="table-title"> <el-row class="table-title">
<div>{{item.orderNo}}</div> <div>{{item.orderNo}}</div>
<div>发往:{{item.destWarehouseName}}</div> <div>发往:{{item.destWarehouseName}}</div>
<div> <div>
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item.customsType" /> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
:value="item.customsType" />
</div> </div>
<div>入仓时间:{{formatDate(item.rucangTime)}}</div> <div>入仓时间:{{formatDate(item.rucangTime)}}</div>
<div> <div>
<el-button type="text" @click="handleGoods('all', item)">[全部预装]</el-button> <el-button type="text"
<el-button type="text" @click="foldTable(index, item)">[{{item.fold ? '展开' : '收起'}}]</el-button> @click="handleGoods('all', item)">[全部预装]</el-button>
<el-button type="text"
@click="foldTable(index, item)">[{{item.fold ? '展开' : '收起'}}]</el-button>
</div> </div>
</el-row> </el-row>
<el-collapse-transition> <el-collapse-transition>
<div v-show="!item.fold"> <div v-show="!item.fold">
<el-table v-loading="loading" :data="item.boxOrderItemList" border> <el-table v-loading="loading"
<el-table-column label="序号" type="index" align="center" width="50" /> :data="item.boxOrderItemList"
<el-table-column label="品名" align="center" prop="prodTitleZh" min-width="500" /> border>
<el-table-column label="品牌" align="center" prop="brandType" width="120"> <el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column label="品名"
align="center"
prop="prodTitleZh"
min-width="500" />
<el-table-column label="品牌"
align="center"
prop="brandType"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_BRAND_TYPE" :value="scope.row.brandType" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_BRAND_TYPE"
:value="scope.row.brandType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="箱数" align="center" prop="num" width="120" /> <el-table-column label="箱数"
<el-table-column label="体积" align="center" prop="volume" width="120"> align="center"
prop="num"
width="120" />
<el-table-column label="体积"
align="center"
prop="volume"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p> <p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重量" align="center" prop="weight" width="120"> <el-table-column label="重量"
align="center"
prop="weight"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p> <p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="预装柜" align="center" prop="" width="120"> <el-table-column label="预装柜"
align="center"
prop=""
width="120">
无返回 无返回
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100"> <el-table-column label="操作"
align="center"
class-name="small-padding fixed-width"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="handleGoods('singele',scope.row)">预装</el-button> <el-button type="text"
size="small"
@click="handleGoods('singele',scope.row)">预装</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -116,25 +175,32 @@ ...@@ -116,25 +175,32 @@
</el-scrollbar> </el-scrollbar>
<!-- 分页 --> <!-- 分页 -->
<el-pagination background layout="prev, pager, next" :page-size="pageParam.pageSize" :total="total" @current-change="pageChange" v-show="total > 0"></el-pagination> <el-pagination background
layout="prev, pager, next"
:page-size="pageParam.pageSize"
:total="total"
@current-change="pageChange"
v-show="total > 0"></el-pagination>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
<el-row> <el-row>
<el-col :span="6" class="totle-info"> <el-col :span="6"
class="totle-info">
<div> <div>
<p>总计:</p> <p>总计:</p>
<p>无返回</p> <p>{{getTotlContent(loadStatistics)}}</p>
</div> </div>
<div> <div>
<p>容量:</p> <p>容量:</p>
<p>无返回</p> <p>{{calcCapacity}}</p>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="button-area"> <el-row class="button-area">
<el-button type="primary" @click="handlerFinish">完成</el-button> <el-button type="primary"
@click="handlerFinish">完成</el-button>
</el-row> </el-row>
</div> </div>
</template> </template>
...@@ -148,7 +214,12 @@ import { ...@@ -148,7 +214,12 @@ import {
createGoods, createGoods,
remove, remove,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { formatDate, getTotlContent, serviceMsg } from "../../utils"; import {
formatDate,
getTotlContent,
serviceMsg,
getCapacity,
} from "../../utils";
/** /**
* 补单 * 补单
*/ */
...@@ -165,6 +236,8 @@ export default { ...@@ -165,6 +236,8 @@ export default {
partData: {}, partData: {},
// 部分列表 // 部分列表
partList: [], partList: [],
// 部分统计
loadStatistics: {},
// 查询参数 // 查询参数
queryParams: { queryParams: {
startWarehouseId: this.$attrs.shipmentObj.startWarehouseId, startWarehouseId: this.$attrs.shipmentObj.startWarehouseId,
...@@ -184,7 +257,9 @@ export default { ...@@ -184,7 +257,9 @@ export default {
/* 查询已预装 */ /* 查询已预装 */
getSecGoods() { getSecGoods() {
secGoodsList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => { secGoodsList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => {
this.partList = res.data.map((item, index) => { const { sectionGoodList, loadStatistics } = res.data;
this.loadStatistics = loadStatistics;
this.partList = sectionGoodList.map((item, index) => {
item.fold = true; item.fold = true;
if ( if (
Object.keys(this.partData).length && Object.keys(this.partData).length &&
...@@ -330,6 +405,11 @@ export default { ...@@ -330,6 +405,11 @@ export default {
(item) => item.tradeType == "1" || item.type == "3" (item) => item.tradeType == "1" || item.type == "3"
); );
}, },
/* 容量 */
calcCapacity() {
const { cabinetRespVO } = this.$attrs.shipmentObj;
return getCapacity(cabinetRespVO);
},
}, },
}; };
</script> </script>
......
<template> <template>
<div class="preinstall"> <div class="preinstall">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px"> <el-form :model="queryParams"
<el-form-item label="入仓时间" prop="rucangtime"> ref="queryForm"
<el-date-picker v-model="queryParams.rucangtime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> size="small"
:inline="true"
v-show="showSearch"
label-width="90px">
<el-form-item label="入仓时间"
prop="rucangtime">
<el-date-picker v-model="queryParams.rucangtime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期" />
</el-form-item> </el-form-item>
<el-form-item label="始发地" prop="startWarehouseId"> <el-form-item label="始发地"
<el-select v-model="queryParams.startWarehouseId" placeholder="请选择始发地" clearable size="small"> prop="startWarehouseId">
<el-option v-for="item in exportWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-select v-model="queryParams.startWarehouseId"
placeholder="请选择始发地"
clearable
size="small">
<el-option v-for="item in exportWarehouseList"
:label="item.titleZh"
:value="item.id"
:key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="目的地" prop="destWarehouseIdList"> <el-form-item label="目的地"
<el-select v-model="queryParams.destWarehouseIdList" placeholder="请选择目的地" multiple clearable> prop="destWarehouseIdList">
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-select v-model="queryParams.destWarehouseIdList"
placeholder="请选择目的地"
multiple
clearable>
<el-option v-for="item in importWarehouseList"
:label="item.titleZh"
:value="item.id"
:key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="orderStatus"> <el-form-item label="状态"
<el-select v-model="queryParams.orderStatus" placeholder="请选择状态" clearable size="small"> prop="orderStatus">
<el-option v-for="item in stateOps" :label="item.label" :value="item.value" :key="item.value"></el-option> <el-select v-model="queryParams.orderStatus"
placeholder="请选择状态"
clearable
size="small">
<el-option v-for="item in stateOps"
:label="item.label"
:value="item.value"
:key="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备案" prop="productRecord"> <el-form-item label="备案"
<el-select v-model="queryParams.productRecord" placeholder="请选择备案" clearable size="small"> prop="productRecord">
<el-option v-for="item in filingOps" :label="item.label" :value="item.value" :key="item.value"></el-option> <el-select v-model="queryParams.productRecord"
placeholder="请选择备案"
clearable
size="small">
<el-option v-for="item in filingOps"
:label="item.label"
:value="item.value"
:key="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="报关方式" prop="customsType"> <el-form-item label="报关方式"
<el-select v-model="queryParams.customsType" placeholder="请选择报关方式" clearable size="small"> prop="customsType">
<el-option v-for="item in declarationMethodOps" :label="item.label" :value="item.value" :key="item.value"></el-option> <el-select v-model="queryParams.customsType"
placeholder="请选择报关方式"
clearable
size="small">
<el-option v-for="item in declarationMethodOps"
:label="item.label"
:value="item.value"
:key="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单号" prop="toBePreOrderNo"> <el-form-item label="订单号"
<el-input v-model="queryParams.toBePreOrderNo" placeholder="请输入订单号码" clearable /> prop="toBePreOrderNo">
<el-input v-model="queryParams.toBePreOrderNo"
placeholder="请输入订单号码"
clearable />
</el-form-item> </el-form-item>
<el-form-item label="已预装单号" prop="preOrderNo"> <el-form-item label="已预装单号"
<el-input v-model="queryParams.preOrderNo" placeholder="请输入已预装单号" clearable /> prop="preOrderNo">
<el-input v-model="queryParams.preOrderNo"
placeholder="请输入已预装单号"
clearable />
</el-form-item> </el-form-item>
<el-form-item label="品名" prop="itemName"> <el-form-item label="品名"
<el-input v-model="queryParams.itemName" placeholder="请输入品名" clearable /> prop="itemName">
<el-input v-model="queryParams.itemName"
placeholder="请输入品名"
clearable />
</el-form-item> </el-form-item>
<el-form-item label="重货比" prop="weightRatioMax"> <el-form-item label="重货比"
<el-input v-model="queryParams.weightRatioMax" placeholder="请输入 大" clearable /> prop="weightRatioMax">
<el-input v-model="queryParams.weightRatioMax"
placeholder="请输入 大"
clearable />
</el-form-item> </el-form-item>
<el-form-item label="" prop="weightRatioMin"> <el-form-item label=""
<el-input v-model="queryParams.weightRatioMin" placeholder="请输入 小" clearable /> prop="weightRatioMin">
<el-input v-model="queryParams.weightRatioMin"
placeholder="请输入 小"
clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery('pre')">搜索已预装订单</el-button> <el-button type="primary"
<el-button type="primary" icon="el-icon-search" @click="handleQuery('toBePre')">搜索待预装订单</el-button> icon="el-icon-search"
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> @click="handleQuery('pre')">搜索已预装订单</el-button>
<el-button type="primary"
icon="el-icon-search"
@click="handleQuery('toBePre')">搜索待预装订单</el-button>
<el-button icon="el-icon-refresh"
@click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
<el-row :gutter="10"> <el-row :gutter="10">
<right-toolbar :showSearch.sync="showSearch" @queryTable="handleQuery('toBePre')"></right-toolbar> <right-toolbar :showSearch.sync="showSearch"
@queryTable="handleQuery('toBePre')"></right-toolbar>
</el-row> </el-row>
<!-- 表格 --> <!-- 表格 -->
<el-card style="margin-top: 15px" class="preinstall-card"> <el-card style="margin-top: 15px"
class="preinstall-card">
<el-row class="preinstall-title"> <el-row class="preinstall-title">
<div> <div>
<p>自编号:</p> <p>自编号:</p>
...@@ -71,7 +140,7 @@ ...@@ -71,7 +140,7 @@
</div> </div>
<div> <div>
<p>容量:</p> <p>容量:</p>
<p>无返回</p> <p>{{calcCapacity}}</p>
</div> </div>
<div> <div>
<p>始发地:</p> <p>始发地:</p>
...@@ -89,71 +158,129 @@ ...@@ -89,71 +158,129 @@
<div class="table-label">已预装订单</div> <div class="table-label">已预装订单</div>
<div> <div>
<p>总计:</p> <p>总计:</p>
<p>无返回</p> <p>{{getTotlContent(preList.loadStatistics)}}</p>
</div> </div>
<div class="red-label"> <div class="red-label">
<p>可预装方数:</p> <p>可预装方数:</p>
<p>无返回</p> <p>{{preList.remainVolume}}</p>
</div> </div>
<div class="red-label"> <div class="red-label">
<p>重量:</p> <p>重量:</p>
<p>无返回</p> <p>{{preList.remainWeight}}kg</p>
</div> </div>
<div class="table-button"> <div class="table-button">
<el-button type="success" size="small" @click="addPart">增加</el-button> <el-button type="success"
size="small"
@click="addPart">增加</el-button>
</div> </div>
</el-row> </el-row>
<el-scrollbar style="height:calc(100% - 43px)"> <el-scrollbar style="height:calc(100% - 43px)">
<el-row v-for="(part, index) in preList" :key="index" class="pre-part"> <el-row v-for="(part, index) in preList.sectionGoodList"
:key="index"
class="pre-part">
<el-row class="preinstall-title"> <el-row class="preinstall-title">
<div class="pre-part-info"> <div class="pre-part-info">
<p>{{index+1}}部分</p> <p>{{index+1}}部分</p>
<p>{{getTotlContent(part.secStatistics)}}</p> <p>{{getTotlContent(part.secStatistics)}}</p>
</div> </div>
<div class="table-button"> <div class="table-button">
<el-button type="danger" size="small" @click="deletePart(part)">删除部分</el-button> <el-button type="danger"
<el-button type="danger" size="small" @click="deleteOrder('selected', part)">删除订单</el-button> size="small"
<el-button type="primary" size="small" @click="foldTable(index, part)">{{part.fold ? '展开' : '收起'}}</el-button> @click="deletePart(part)">删除部分</el-button>
<el-button type="danger"
size="small"
@click="deleteOrder('selected', part)">删除订单</el-button>
<el-button type="primary"
size="small"
@click="foldTable(index, part)">{{part.fold ? '展开' : '收起'}}</el-button>
</div> </div>
</el-row> </el-row>
<el-collapse-transition> <el-collapse-transition>
<div v-show="!part.fold"> <div v-show="!part.fold">
<el-table v-loading="preLoading" border :data="part.sectionGoodsList" @select="(selection)=>checkboxSelect(selection, part)" @select-all="(selection)=>checkboxSelect(selection, part)"> <el-table v-loading="preLoading"
<el-table-column type="selection" align="center" width="55" fixed="left" /> border
<el-table-column label="订单号" align="center" prop="orderNo" width="120" /> :data="part.sectionGoodsList"
<el-table-column label="目的地" align="center" prop="destWarehouseName" width="120" /> @select="(selection)=>checkboxSelect(selection, part)"
<el-table-column label="入仓时间" align="center" prop="rucangTime" width="120"> @select-all="(selection)=>checkboxSelect(selection, part)">
<el-table-column type="selection"
align="center"
width="55"
fixed="left" />
<el-table-column label="订单号"
align="center"
prop="orderNo"
width="120" />
<el-table-column label="目的地"
align="center"
prop="destWarehouseName"
width="120" />
<el-table-column label="入仓时间"
align="center"
prop="rucangTime"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
{{formatDate(scope.row.rucangTime)}} {{formatDate(scope.row.rucangTime)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="品名" align="center" prop="prodTitleZh" width="120" /> <el-table-column label="品名"
<el-table-column label="箱数" align="center" prop="num" /> align="center"
<el-table-column label="体积/重量/重货比" align="center" width="140" prop="volumeWeight"> prop="prodTitleZh"
width="120" />
<el-table-column label="箱数"
align="center"
prop="num" />
<el-table-column label="体积/重量/重货比"
align="center"
width="140"
prop="volumeWeight">
<template slot-scope="scope"> <template slot-scope="scope">
<p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p> <p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p>
<p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p> <p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="报关方式" align="center" prop="customsType" width="120"> <el-table-column label="报关方式"
align="center"
prop="customsType"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="scope.row.customsType" /> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
:value="scope.row.customsType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备案" align="center" prop="productRecord" width="100"> <el-table-column label="备案"
align="center"
prop="productRecord"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_BRAND_TYPE" :value="scope.row.productRecord" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_BRAND_TYPE"
:value="scope.row.productRecord" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleGoods('singele',scope.row,command)"> <el-dropdown trigger="click"
<el-button type="primary" size="small" icon="el-icon-edit-outline" circle></el-button> @command="(command)=>handleGoods('singele',scope.row,command)">
<el-button type="primary"
size="small"
icon="el-icon-edit-outline"
circle></el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="bPart" v-for="(bPart, index) in preList" :key="bPart.id" v-show="bPart.id !== part.id">{{index+1}}部分</el-dropdown-item> <el-dropdown-item :command="bPart"
v-for="(bPart, index) in preList.sectionGoodList"
:key="bPart.id"
v-show="bPart.id !== part.id">{{index+1}}部分</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-button type="danger" size="small" icon="el-icon-minus" circle style="margin-left:10px;" @click="deleteOrder('row',scope.row)"></el-button> <el-button type="danger"
size="small"
icon="el-icon-minus"
circle
style="margin-left:10px;"
@click="deleteOrder('row',scope.row)"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -181,9 +308,16 @@ ...@@ -181,9 +308,16 @@
</div> </div>
</div> </div>
</el-row> </el-row>
<el-pagination background layout="prev, pager, next" :page-size="pageParam.pageSize" :total="total" @current-change="pageChange" v-show="total > 0"></el-pagination> <el-pagination background
layout="prev, pager, next"
:page-size="pageParam.pageSize"
:total="total"
@current-change="pageChange"
v-show="total > 0"></el-pagination>
<el-scrollbar style="height:calc(100% - 75px)"> <el-scrollbar style="height:calc(100% - 75px)">
<el-row v-for="(item, index) in toBePreList" :key="index" class="tobePre-row"> <el-row v-for="(item, index) in toBePreList"
:key="index"
class="tobePre-row">
<el-row class="preinstall-title order-title"> <el-row class="preinstall-title order-title">
<div> <div>
<p>{{item.orderNo}}</p> <p>{{item.orderNo}}</p>
...@@ -194,7 +328,8 @@ ...@@ -194,7 +328,8 @@
</div> </div>
<div> <div>
<p> <p>
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item.customsType" /> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
:value="item.customsType" />
</p> </p>
</div> </div>
<div> <div>
...@@ -206,43 +341,72 @@ ...@@ -206,43 +341,72 @@
<p>{{item.weightRatio}}</p> <p>{{item.weightRatio}}</p>
</div> </div>
<div class="table-button"> <div class="table-button">
<el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)"> <el-dropdown trigger="click"
<el-button type="success" size="small">预装全部</el-button> @command="(command)=>handleGoods('all',item,command)">
<el-button type="success"
size="small">预装全部</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="part" v-for="(part, index) in preList" :key="part.id">第{{index+1}}部分</el-dropdown-item> <el-dropdown-item :command="part"
v-for="(part, index) in preList.sectionGoodList"
:key="part.id">第{{index+1}}部分</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
</el-row> </el-row>
<el-table v-loading="toBePreLoading" :data="item.boxOrderItemList" border show-summary :summary-method="getSummaries"> <el-table v-loading="toBePreLoading"
<el-table-column type="index" align="center" label="序号" width="50" /> :data="item.boxOrderItemList"
<el-table-column label="品名" align="center" prop="prodTitleZh" /> border
<el-table-column label="备案" align="center" prop="brandType"> show-summary
:summary-method="getSummaries">
<el-table-column type="index"
align="center"
label="序号"
width="50" />
<el-table-column label="品名"
align="center"
prop="prodTitleZh" />
<el-table-column label="备案"
align="center"
prop="brandType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_BRAND_TYPE" :value="scope.row.brandType" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_BRAND_TYPE"
:value="scope.row.brandType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="箱数" align="center" prop="num" /> <el-table-column label="箱数"
<el-table-column label="体积/重量" align="center" prop="volumeWeight"> align="center"
prop="num" />
<el-table-column label="体积/重量"
align="center"
prop="volumeWeight">
<template slot-scope="scope"> <template slot-scope="scope">
<p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p> <p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p>
<p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p> <p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="报关方式" align="center" prop=""> <el-table-column label="报关方式"
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item.customsType" /> align="center"
prop="">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
:value="item.customsType" />
</el-table-column> </el-table-column>
<el-table-column label="包装类型" align="center" prop=""> <el-table-column label="包装类型"
align="center"
prop="">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_PACKAGE_TYPE" :value="scope.row.unit" /> <dict-tag :type="DICT_TYPE.ECW_PACKAGE_TYPE"
:value="scope.row.unit" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="材质" align="center" prop="material"> <el-table-column label="材质"
align="center"
prop="material">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" :value="scope.row.material" /> <dict-tag :type="DICT_TYPE.ECW_PRODUCT_MATERIAL"
:value="scope.row.material" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleGoods('singele',scope.row,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('singele',scope.row,command)">
<el-button type="primary" size="small">预装</el-button> <el-button type="primary" size="small">预装</el-button>
...@@ -251,7 +415,7 @@ ...@@ -251,7 +415,7 @@
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>
...@@ -260,29 +424,47 @@ ...@@ -260,29 +424,47 @@
</el-card> </el-card>
<!-- 操作员 --> <!-- 操作员 -->
<el-row style="margin-top: 15px" v-show="!isAudit"> <el-row style="margin-top: 15px"
v-show="!isAudit">
<el-row> <el-row>
<el-form ref="operatorForm" :model="operatorData" size="small" :inline="true" label-width="120px" :rules="rules"> <el-form ref="operatorForm"
<el-form-item label="目的地操作员" prop="noticeUser"> :model="operatorData"
<userSelect v-model="operatorData.noticeUser" placeholder="请选择目的地操作员" :allUsers="this.$attrs.allUsers" size="small" /> size="small"
:inline="true"
label-width="120px"
:rules="rules">
<el-form-item label="目的地操作员"
prop="noticeUser">
<userSelect v-model="operatorData.noticeUser"
placeholder="请选择目的地操作员"
:allUsers="this.$attrs.allUsers"
size="small" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<el-row> <el-row>
<el-button type="primary" @click="onSubmit">提交申请</el-button> <el-button type="primary"
@click="onSubmit">提交申请</el-button>
</el-row> </el-row>
</el-row> </el-row>
<!-- 审核流程 --> <!-- 审核流程 -->
<el-row class="process-area" v-show="isAudit"> <el-row class="process-area"
v-show="isAudit">
<div class="process"> <div class="process">
<div>审批流程</div> <div>审批流程</div>
<work-flow xmlkey="shipment_preassemble" v-model="selectedUsers"></work-flow> <work-flow xmlkey="shipment_preassemble"
v-model="selectedUsers"></work-flow>
</div> </div>
<div> <div>
<el-button type="primary" :disabled=true>审核中</el-button> <el-button type="primary"
<el-button plain type="primary" @click="canclAudit">取消审核</el-button> :disabled=true>审核中</el-button>
<el-button plain type="primary" @click="closeDialog">返回</el-button> <el-button plain
type="primary"
@click="canclAudit">取消审核</el-button>
<el-button plain
type="primary"
@click="closeDialog">返回</el-button>
</div> </div>
</el-row> </el-row>
</div> </div>
...@@ -301,7 +483,7 @@ import { ...@@ -301,7 +483,7 @@ import {
approvalCancel, approvalCancel,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue"; import userSelect from "./common/userSelect.vue";
import { formatDate, getTotlContent, serviceMsg } from "../utils"; import { formatDate, getTotlContent, serviceMsg, getCapacity } from "../utils";
import dayjs from "dayjs"; import dayjs from "dayjs";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
...@@ -327,7 +509,11 @@ export default { ...@@ -327,7 +509,11 @@ export default {
type: "", type: "",
// 已预装 遮罩层 // 已预装 遮罩层
preLoading: false, preLoading: false,
preList: [], preList: {
sectionGoodList: [],
remainWeight: 0,
remainVolume: 0,
},
// 选中行 // 选中行
selectedRows: {}, selectedRows: {},
...@@ -373,11 +559,16 @@ export default { ...@@ -373,11 +559,16 @@ export default {
const { currNode, shipmentObj } = this.$attrs; const { currNode, shipmentObj } = this.$attrs;
return shipmentObj[currNode.keyName] === 23; return shipmentObj[currNode.keyName] === 23;
}, },
/* 容量 */
calcCapacity() {
const { cabinetRespVO } = this.$attrs.shipmentObj;
return getCapacity(cabinetRespVO);
},
}, },
created() { created() {
// 查询待预装 // 查询待预装
this.handleQuery("toBePre"); this.handleQuery("toBePre");
this.handleQuery('pre'); this.handleQuery("pre");
}, },
methods: { methods: {
formatDate, formatDate,
...@@ -543,16 +734,17 @@ export default { ...@@ -543,16 +734,17 @@ export default {
deleteOrder(type, data) { deleteOrder(type, data) {
let ids = []; let ids = [];
if (type === "selected") { if (type === "selected") {
// 根据parid 构建的对象
const rows = this.selectedRows[data.id] ?? []; const rows = this.selectedRows[data.id] ?? [];
if (!rows.length) { if (!rows.length) {
this.$message.error("请选择订单"); this.$message.error("请选择订单");
return; return;
} }
ids = rows.map((item) => item.orderItemId); ids = rows.map((item) => item.id);
} }
if (type === "row") { if (type === "row") {
ids.push(data.orderItemId); ids.push(data.id);
} }
deleteGoods(ids).then((res) => { deleteGoods(ids).then((res) => {
......
...@@ -5,19 +5,29 @@ ...@@ -5,19 +5,29 @@
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">自编号:</p> <p class="label-font">自编号:</p>
<p class="label-font">{{selfNo}}</p> <p class="label-font">{{selfNo}}</p>
<el-input v-model="labelNo" placeholder="请输入标签号"></el-input> <el-input v-model="labelNo"
placeholder="请输入标签号"></el-input>
<div> <div>
<el-button type="primary" @click="modifyBatchUnload">批量输入</el-button> <el-button type="primary"
<el-button type="primary" @click="modifyAllUnload">一键卸柜</el-button> @click="modifyBatchUnload">批量输入</el-button>
<el-button type="primary"
@click="modifyAllUnload">一键卸柜</el-button>
</div> </div>
</el-row> </el-row>
<!-- 当前部分 --> <!-- 当前部分 -->
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">当前部分:</p> <p class="label-font">当前部分:</p>
<el-select placeholder="请选择" v-model="sectionId" @change="sectionChange"> <el-select placeholder="请选择"
<el-option key="0" label="全部" value="0"></el-option> v-model="sectionId"
<el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option> @change="sectionChange">
<el-option key="0"
label="全部"
value="0"></el-option>
<el-option v-for="item in sectionList"
:key="item.id"
:label="item.title"
:value="item.id"></el-option>
</el-select> </el-select>
<p> <p>
{{getSectionInfo}} {{getSectionInfo}}
...@@ -26,32 +36,58 @@ ...@@ -26,32 +36,58 @@
<!-- 表格 --> <!-- 表格 -->
<el-row class="table-area"> <el-row class="table-area">
<el-table v-loading="loading" :data="pageData.sectionOrderList" border> <el-table v-loading="loading"
<el-table-column label="序号" type="index" align="center" width="50" /> :data="pageData.sectionOrderList"
<el-table-column label="订单号" align="center" prop="orderNo"> border>
<el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column label="订单号"
align="center"
prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<a href="javascript:void(0);" class="order-href">{{ scope.row.orderNo }}</a> <a href="javascript:void(0);"
class="order-href">{{ scope.row.orderNo }}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="商品信息" align="center" prop="goodsList"> <el-table-column label="商品信息"
align="center"
prop="goodsList">
<template slot-scope="scope"> <template slot-scope="scope">
<section class="table-goodList"> <section class="table-goodList">
<div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div"> <div v-for="(item, index) in scope.row.goodsList"
:key="index"
class="goodList-div">
<p>{{index+1}}{{item.prodTitleZh}}</p> <p>{{index+1}}{{item.prodTitleZh}}</p>
</div> </div>
</section> </section>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="实装箱数" align="center" prop="installNum" /> <el-table-column label="实装箱数"
<el-table-column label="卸柜箱数" align="center" prop="unloadNum" /> align="center"
<el-table-column label="清关状态" align="center" prop=""> prop="installNum" />
<el-table-column label="卸柜箱数"
align="center"
prop="unloadNum" />
<el-table-column label="清关状态"
align="center"
prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template> <template slot-scope="scope">{{clearStatus(scope.row)}}</template>
</el-table-column> </el-table-column>
<el-table-column label="体积" align="center" prop="volume" /> <el-table-column label="体积"
<el-table-column label="重量" align="center" prop="weight" /> align="center"
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> prop="volume" />
<el-table-column label="重量"
align="center"
prop="weight" />
<el-table-column label="操作"
align="center"
class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="danger" size="small" @click="openError(scope.row)">异常</el-button> <el-button type="danger"
size="small"
@click="openError(scope.row)">异常</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -62,10 +98,7 @@ ...@@ -62,10 +98,7 @@
<div class="label-font"> <div class="label-font">
<p> <p>
<span>总计:</span> <span>总计:</span>
<span>无返回</span> <span>{{getTotlContent(pageData.totalStatistics)}}</span>
<!-- <span>{{pageData.totalStatistics ? pageData.totalStatistics.num : 0}}箱</span>
<span>{{pageData.totalStatistics ? pageData.totalStatistics.volume : 0}}m3</span>
<span>{{pageData.totalStatistics ? pageData.totalStatistics.weight : 0}}kg</span> -->
</p> </p>
</div> </div>
<div class="label-font"> <div class="label-font">
...@@ -77,12 +110,21 @@ ...@@ -77,12 +110,21 @@
</el-row> </el-row>
<el-row> <el-row>
<el-button type="success" @click="onSubmit">卸柜完成</el-button> <el-button type="success"
@click="onSubmit">卸柜完成</el-button>
</el-row> </el-row>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" title="异常" :visible.sync="dialogVisible" width="600px" :modal-append-to-body=false append-to-body> <el-dialog custom-class="shipping-dialog"
<unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" /> title="异常"
: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>
</div> </div>
</template> </template>
......
...@@ -933,6 +933,33 @@ function getTotlContent(total, keys = ["num", "volume", "weight"]) { ...@@ -933,6 +933,33 @@ function getTotlContent(total, keys = ["num", "volume", "weight"]) {
return content.join(" "); return content.join(" ");
} }
function getCapacity(capacity) {
return `${capacity?.name ?? ""}柜型 ${capacity?.volume ?? 0}m³ ${
capacity?.weight ?? 0
}kg`;
}
function sumStatistics(val) {
let count = { num: 0, volume: 0, weight: 0 };
if (Array.isArray(val)) {
val.forEach((item) => {
const { secStatistics } = item;
if (secStatistics) {
if (!Number.isNaN(Number(secStatistics.num))) {
count.num = count.num + Number(secStatistics.num);
}
if (!Number.isNaN(Number(secStatistics.volume))) {
count.volume = count.volume + Number(secStatistics.volume);
}
if (!Number.isNaN(Number(secStatistics.weight))) {
count.weight = count.weight + Number(secStatistics.weight);
}
}
});
}
return getTotlContent(count);
}
export const fileTypes = [ export const fileTypes = [
"doc", "doc",
"xls", "xls",
...@@ -976,5 +1003,7 @@ export { ...@@ -976,5 +1003,7 @@ export {
formatNumberString, formatNumberString,
formatDate, formatDate,
getTotlContent, getTotlContent,
getCapacity,
sumStatistics,
serviceMsg, serviceMsg,
}; };
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