Commit 41659768 authored by 332784038@qq.com's avatar 332784038@qq.com

feature: 理货装柜增加字段&新增混箱明细页面

parent 51be9569
...@@ -204,6 +204,8 @@ ...@@ -204,6 +204,8 @@
"移出当前出货单": "Transfer out the current shipment order", "移出当前出货单": "Transfer out the current shipment order",
"未选择储位信息": "No storage location information is selected", "未选择储位信息": "No storage location information is selected",
"件数": "number", "件数": "number",
"混箱商品明细": "Details of mixed products",
"长/宽/高": "length/wide/height",
"待理货货柜列表": "Container list to be tally", "待理货货柜列表": "Container list to be tally",
"数量(个)": "Quantity", "数量(个)": "Quantity",
"包装类型": "Packaging type", "包装类型": "Packaging type",
...@@ -490,6 +492,7 @@ ...@@ -490,6 +492,7 @@
",是否需要一起移出?": "Do you need to remove them together?", ",是否需要一起移出?": "Do you need to remove them together?",
"国家": "country", "国家": "country",
"预装关联单": "Pre installed related documents", "预装关联单": "Pre installed related documents",
"关联单": "Rrelated documents",
"仅当前订单": "Only current orders", "仅当前订单": "Only current orders",
"请扫描合包箱号、标签": "Please scan the package number and label", "请扫描合包箱号、标签": "Please scan the package number and label",
"合包箱号": "Package number", "合包箱号": "Package number",
......
...@@ -45,11 +45,25 @@ ...@@ -45,11 +45,25 @@
</view> </view>
<view> <view>
<view class="flex text-center padding-sm" :id="'order-' + order.orderNo" :class="'order-' + order.orderNo == heightLightId ? 'bg-yellow' : 'bg-white'" v-for="(order, key) in v.sectionOrderList" :key="key"> <view class="flex text-center padding-sm" :id="'order-' + order.orderNo" :class="'order-' + order.orderNo == heightLightId ? 'bg-yellow' : 'bg-white'" v-for="(order, key) in v.sectionOrderList" :key="key">
<view class="flex-sub text-blue" @tap="showOrderDetail(true, order.orderId)"> <view class="flex-sub text-blue">
<view>{{ order.orderNo }}</view> <view @tap="showOrderDetail(true, order.orderId)">{{ order.orderNo }}</view>
<view style="color:blue;fontWeight:bold;"> <view style="color:blue;fontWeight:bold;">
{{ order.isExternalWarehouse === 1 ? ('('+$t('外部仓')+')') : ''}} {{ order.isExternalWarehouse === 1 ? ('('+$t('外部仓')+')') : ''}}
</view> </view>
<!-- 报关方式 -->
<view style="color: red;fontWeight:bold;" v-if="order.customsType !== 1">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" style="color:red;fontWeight:bold;" />
</view>
<!-- 包装类型 -->
<view style="color:red;fontWeight:bold;">
<text v-for="(prod, index) in order.goodsList" :key="prod.orderItemId">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="prod.unit" />{{ index!== order.goodsList.length-1 ? ',':'' }}
</text>
</view>
<!-- 关联单 -->
<view v-if="order.guanLianOrderStatusVOList&&order.guanLianOrderStatusVOList.length>0" style="color:red;fontWeight:bold;">{{$t('关联单')}}</view>
<!-- 混箱 -->
<view v-if="order.goodsList&&order.goodsList.length>1" style="color:red;fontWeight:bold;" @tap="showWarehouseLogs(order)">{{$t('混箱')}}</view>
</view> </view>
<view class="flex-sub">{{ order.volume | toFixed }}</view> <view class="flex-sub">{{ order.volume | toFixed }}</view>
<view class="flex-sub">{{ order.weight | toFixed }} kg</view> <view class="flex-sub">{{ order.weight | toFixed }} kg</view>
...@@ -230,6 +244,8 @@ ...@@ -230,6 +244,8 @@
</view> </view>
</view> --> </view> -->
<warehouse-list ref="warehouseList" />
<!-- 未装弹窗 --> <!-- 未装弹窗 -->
<view class="cu-modal" :class="unloadModal ? 'show' : ''" style="z-index: 900;"> <view class="cu-modal" :class="unloadModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog"> <view class="cu-dialog">
...@@ -431,6 +447,7 @@ import { ...@@ -431,6 +447,7 @@ import {
} from "./api"; } from "./api";
import splitCom from "./components/split-com.vue"; import splitCom from "./components/split-com.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue" import OrderDetailModal from "@/components/order-detail-modal/index.vue"
import WarehouseList from "@/pages/tally/warehouseList.vue";
import { updateImg } from "@/api/system"; import { updateImg } from "@/api/system";
import dayjs from "dayjs"; import dayjs from "dayjs";
...@@ -438,7 +455,8 @@ export default { ...@@ -438,7 +455,8 @@ export default {
name: "loading-detail", name: "loading-detail",
components: { components: {
splitCom, splitCom,
OrderDetailModal OrderDetailModal,
WarehouseList
}, },
mixins: [mixins], mixins: [mixins],
data() { data() {
...@@ -781,6 +799,11 @@ export default { ...@@ -781,6 +799,11 @@ export default {
this.unloadSubNumberBegin = ""; this.unloadSubNumberBegin = "";
this.unloadSubNumberEnd = ""; this.unloadSubNumberEnd = "";
}, },
// 显示入仓记录
showWarehouseLogs(row) {
this.orderId = row.orderId;
this.$refs.warehouseList.showDetail(row);
},
/* 显示订单详情 */ /* 显示订单详情 */
showOrderDetail(show, id) { showOrderDetail(show, id) {
this.orderDetailModal = show; this.orderDetailModal = show;
......
...@@ -77,17 +77,15 @@ ...@@ -77,17 +77,15 @@
<!-- 报关方式 --> <!-- 报关方式 -->
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item.customsType" style="color:red;fontWeight:bold;margin: 0 3px;" /> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item.customsType" style="color:red;fontWeight:bold;margin: 0 3px;" />
<!-- 包装类型 --> <!-- 包装类型 -->
<text v-for="prod in item.orderItemDOS" :key="prod.orderItemId" style="color:red;fontWeight:bold;margin: 0 3px;"> <text v-for="(prod, index) in item.orderItemDOS" :key="prod.orderItemId" style="color:red;fontWeight:bold;margin: 0 3px;">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="prod.unit" /> <dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="prod.unit" />{{ index!== order.orderItemDOS.length-1 ? ',':'' }}
</text> </text>
<!-- 混箱 --> <!-- 混箱 -->
<text v-if="item.orderItemDOS&&item.orderItemDOS.orderWarehouseInCreateReqVO&&item.orderItemDOS.orderWarehouseInCreateReqVO.orderWarehouseInItemDoList&&item.orderItemDOS.orderWarehouseInCreateReqVO.orderWarehouseInItemDoList.orderWarehouseInDetailsVOList&&item.orderItemDOS.orderWarehouseInCreateReqVO.orderWarehouseInItemDoList.orderWarehouseInDetailsVOList.length>0" style="color:red;fontWeight:bold;margin: 0 3px;">{{$t('混箱')}}</text> <text v-if="item.orderItemDOS&&item.orderItemDOS.orderWarehouseInCreateReqVO&&item.orderItemDOS.orderWarehouseInCreateReqVO.orderWarehouseInItemDoList&&item.orderItemDOS.orderWarehouseInCreateReqVO.orderWarehouseInItemDoList.orderWarehouseInDetailsVOList&&item.orderItemDOS.orderWarehouseInCreateReqVO.orderWarehouseInItemDoList.orderWarehouseInDetailsVOList.length>0" style="color:red;fontWeight:bold;margin: 0 3px;">{{$t('混箱')}}</text>
<!-- 有牌 --> <!-- 有牌 -->
<text v-if="item.orderItemDOS.some(ele => [$t('无牌'), $t('有牌'), $t('中性')][ele.brandType] !== $t('无牌'))" style="color:red;fontWeight:bold;margin: 0 3px;">{{ $t('有牌') }}</text> <text v-if="item.orderItemDOS.some(ele => [$t('无牌'), $t('有牌'), $t('中性')][ele.brandType] !== $t('无牌'))" style="color:red;fontWeight:bold;margin: 0 3px;">{{ $t('有牌') }}</text>
<!-- 带电 --> <!-- 带电 -->
<text v-for="prod in item.orderItemDOS" :key="prod.orderItemId" style="color:red;fontWeight:bold;margin: 0 3px;"> <text v-if="item.orderItemDOS.some(ele => ele.electrifiedFreightPrice > 0)" style="color:red;fontWeight:bold;margin: 0 3px;">{{ $t('带电') }}</text>
{{ prod.electrifiedFreightPrice > 0 ? $t('带电') : ''}}
</text>
</view> </view>
</view> </view>
</view> </view>
......
...@@ -39,7 +39,20 @@ ...@@ -39,7 +39,20 @@
<view style="color:sandybrown;fontWeight:bold;"> <view style="color:sandybrown;fontWeight:bold;">
{{ order.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}} {{ order.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}}
</view> </view>
<view style="color: red"><dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /></view> <!-- 报关方式 -->
<view v-if="order.customsType !== 1">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" style="color:red;fontWeight:bold;" />
</view>
<!-- 包装类型 -->
<view style="color:red;fontWeight:bold;">
<text v-for="(prod, index) in order.goodsList" :key="prod.orderItemId">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="prod.unit" />{{ index!== order.goodsList.length-1 ? ',':'' }}
</text>
</view>
<!-- 关联单 -->
<view v-if="order.guanLianOrderStatusVOList&&order.guanLianOrderStatusVOList.length>0" style="color:red;fontWeight:bold;">{{$t('关联单')}}</view>
<!-- 混箱 -->
<view v-if="order.goodsList&&order.goodsList.length>1" style="color:red;fontWeight:bold;" @tap="showWarehouseList(order)">{{$t('混箱')}}</view>
</view> </view>
<view style="width:15%;">{{ order.volume | toFixed }}</view> <view style="width:15%;">{{ order.volume | toFixed }}</view>
<view style="width:15%;">{{ order.weight | toFixed }} kg</view> <view style="width:15%;">{{ order.weight | toFixed }} kg</view>
...@@ -216,6 +229,7 @@ ...@@ -216,6 +229,7 @@
</view> </view>
<warehouse-detail ref="warehouseDetail" :orderId="orderId" :orderItemId="showWarehouseInItemId" /> <warehouse-detail ref="warehouseDetail" :orderId="orderId" :orderItemId="showWarehouseInItemId" />
<warehouse-list ref="warehouseList" />
<uni-popup ref="popup" class="add-popup"> <uni-popup ref="popup" class="add-popup">
<view class="popup-content"> <view class="popup-content">
...@@ -246,11 +260,12 @@ import { ...@@ -246,11 +260,12 @@ import {
} from "./api"; } from "./api";
import { getOrderDetail, getLoadingDetail } from "../loading/api"; import { getOrderDetail, getLoadingDetail } from "../loading/api";
import WarehouseDetail from "./warehouseDetail.vue"; import WarehouseDetail from "./warehouseDetail.vue";
import WarehouseList from "@/pages/tally/warehouseList.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue" import OrderDetailModal from "@/components/order-detail-modal/index.vue"
export default { export default {
name: "tally-detail", name: "tally-detail",
components: { WarehouseDetail,OrderDetailModal }, components: { WarehouseDetail,OrderDetailModal, WarehouseList },
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
...@@ -311,15 +326,20 @@ export default { ...@@ -311,15 +326,20 @@ export default {
}, },
}, },
methods: { methods: {
// 从warehouseInInfo中提取储位信息 // 从warehouseInInfo中提取储位信息
showLocationName(locationList){ showLocationName(locationList){
if(!locationList || !locationList.length) return '' if(!locationList || !locationList.length) return ''
let locations = new Set() let locations = new Set()
locationList.forEach(item => { locationList.forEach(item => {
locations.add((item.areaName || '') + (item.locationName || '')) locations.add((item.areaName || '') + (item.locationName || ''))
}) })
return Array.from(new Set(locations)).join(',') return Array.from(new Set(locations)).join(',')
}, },
// 显示入仓列表
showWarehouseList(row) {
this.orderId = row.orderId;
this.$refs.warehouseList.showDetail(row);
},
// 显示入仓记录 // 显示入仓记录
showWarehouseLogs(row) { showWarehouseLogs(row) {
this.orderId = row.orderId; this.orderId = row.orderId;
......
<template>
<view class="cu-modal" :class="show ? 'show' : ''" style="z-index: 901;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder" style="width:100%;">{{ $t('混箱商品明细') }}</view>
</view>
<scroll-view scroll-y="true" style="height: 400px;">
<view>
<view class="productsList">
<view class="flex text-center text-black bg-white text-bold padding-sm">
<view class="flex-sub">{{$t('箱数')}}</view>
<view class="flex-sub">{{$t('包装类型')}}</view>
<view class="flex-sub">{{$t('入仓类型')}}</view>
<view class="flex-sub">{{$t('长/宽/高')}}</view>
<view class="flex-sub">{{$t('体积') + "(m³)"}}</view>
<view class="flex-sub">{{$t("重量") + "(kg)"}}</view>
<view class="flex-sub">{{$t("首次入仓时间")}}</view>
</view>
<view v-for="(order, index) in warehouseList" :key="'order-' + index">
<view class="flex text-center padding-sm" v-for="(v, index) in order.orderWarehouseInBackItemDoList" :key="'goods-' + index">
<view class="flex-sub">{{ v.cartonsNum }}</view>
<view class="flex-sub"><dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="v.unit" /></view>
<view class="flex-sub"><dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="v.specificationType" /></view>
<view class="flex-sub">{{ v.boxGauge }}</view>
<view class="flex-sub">{{ v.volume }}</view>
<view class="flex-sub">{{ v.weight }}</view>
<view class="flex-sub">{{ v.inTime ? dayjs(v.inTime).format("YYYY-MM-DD HH:mm:ss") : v.inTime }}</view>
</view>
</view>
</view>
</view>
</scroll-view>
<view class="cu-bar bg-white justify-end top-line">
<view class="action"><button class="cu-btn bg-grey" @tap="closeDialog">{{$t('关闭')}}</button></view>
</view>
</view>
</view>
</template>
<script>
import { getOrder, getOrderWarehouseIn } from "./api";
export default {
props: {
orderId: Number,
orderItemId: Number,
locationModifiable: Boolean ,// 是否可以修改储位
warehouseId: Number, // 当前仓库ID,如果是调拨则是调拨入仓的ID,否则就是始发仓ID
},
data() {
return {
show: false,
orderDetail: null,
warehouseList: null,
locale: this.$lang.locale,
};
},
methods: {
// 从warehouseInInfo中提取储位信息
showLocationName(orderLocationBackVOList){
if(!orderLocationBackVOList) return ''
let locations = []
orderLocationBackVOList.forEach(item => {
locations.push(item.areaName + (item.locationName || ''))
})
return locations.join(',')
},
showDetail(row) {
this.show = true;
if (row.orderId) {
getOrder(row.orderId).then((res) => {
this.orderDetail = res;
this.getOrderWarehouseIn();
});
}
},
closeDialog() {
this.show = false;
},
getOrderWarehouseIn() {
getOrderWarehouseIn(this.orderDetail.orderId).then((res) => {
this.warehouseList = res;
});
},
},
};
</script>
<style lang="scss" scoped>
.scroll {
margin-top: -8px;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
padding: 8px;
background: #fff;
::v-deep .uni-card {
margin: 12px 0 0 !important;
padding: 0 !important;
}
.img-wrap {
width: calc(100% - 68px);
::v-deep .uni-grid-item {
background: #fbf8fb;
}
.grid-item-box-add {
height: 100%;
display: flex;
flex-flow: column;
font-size: 10px;
padding: 16px 0;
text-align: center;
justify-content: center;
}
}
}
.cu-dialog {
background-color: #fff;
.content {
&.title-bolder {
color: #333333;
font-weight: bolder;
}
}
.item-content {
text-align: left;
padding: 10px 20px 0px 20px;
&.noPadding {
padding: 0;
}
> view {
display: flex;
padding: 4px 0;
> view {
flex: 1;
word-break: break-all;
padding-left: 4px;
}
}
.flex{
display: flex;
align-items: center;
justify-content: space-between;
.left{
flex: 1;
}
}
.btn{
background-color: rgb(47, 77, 174);
color: #fff;
border-radius: 5rpx;
padding: 5rpx 10rpx;
margin-left: 10px;
}
}
}
</style>
...@@ -51,7 +51,20 @@ ...@@ -51,7 +51,20 @@
<view style="color:sandybrown;fontWeight:bold;"> <view style="color:sandybrown;fontWeight:bold;">
{{ order.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}} {{ order.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}}
</view> </view>
<view style="color: red"><dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /></view> <!-- 报关方式 -->
<view v-if="order.customsType !== 1">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" style="color:red;fontWeight:bold;" />
</view>
<!-- 包装类型 -->
<view style="color:red;fontWeight:bold;">
<text v-for="(prod, index) in order.goodsList" :key="prod.orderItemId">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="prod.unit" />{{ index!== order.goodsList.length-1 ? ',':'' }}
</text>
</view>
<!-- 关联单 -->
<view v-if="order.guanLianOrderStatusVOList&&order.guanLianOrderStatusVOList.length>0" style="color:red;fontWeight:bold;">{{$t('关联单')}}</view>
<!-- 混箱 -->
<view v-if="order.goodsList&&order.goodsList.length>1" style="color:red;fontWeight:bold;" @tap="showWarehouseList(order)">{{$t('混箱')}}</view>
</view> </view>
<view style="width:15%;">{{ order.volume | toFixed }}</view> <view style="width:15%;">{{ order.volume | toFixed }}</view>
<view style="width:15%;">{{ order.weight | toFixed }} kg</view> <view style="width:15%;">{{ order.weight | toFixed }} kg</view>
...@@ -258,6 +271,7 @@ ...@@ -258,6 +271,7 @@
</view> </view>
</view> </view>
<warehouse-detail ref="warehouseDetail" :orderId="orderId" :orderItemId="showWarehouseInItemId" /> <warehouse-detail ref="warehouseDetail" :orderId="orderId" :orderItemId="showWarehouseInItemId" />
<warehouse-list ref="warehouseList" />
<uni-popup ref="popup" class="add-popup"> <uni-popup ref="popup" class="add-popup">
<view class="popup-content"> <view class="popup-content">
...@@ -398,13 +412,14 @@ import { ...@@ -398,13 +412,14 @@ import {
} from "./api"; } from "./api";
import { getOrderDetail, getLoadingDetail,getOrderDetailByBoxNo } from "../loading/api"; import { getOrderDetail, getLoadingDetail,getOrderDetailByBoxNo } from "../loading/api";
import WarehouseDetail from "./warehouseDetail.vue"; import WarehouseDetail from "./warehouseDetail.vue";
import WarehouseList from "@/pages/tally/warehouseList.vue";
import Exception from "./components/exception.vue"; import Exception from "./components/exception.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue" import OrderDetailModal from "@/components/order-detail-modal/index.vue"
import util from "../../util/util.js"; import util from "../../util/util.js";
export default { export default {
name: "tally-detail", name: "tally-detail",
components: { Exception, WarehouseDetail, OrderDetailModal }, components: { Exception, WarehouseDetail, OrderDetailModal, WarehouseList },
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
...@@ -523,15 +538,20 @@ export default { ...@@ -523,15 +538,20 @@ export default {
this.scanNumber = ""; this.scanNumber = "";
this.batchModal = show; this.batchModal = show;
}, },
// 从warehouseInInfo中提取储位信息 // 从warehouseInInfo中提取储位信息
showLocationName(locationList){ showLocationName(locationList){
if(!locationList || !locationList.length) return '' if(!locationList || !locationList.length) return ''
let locations = new Set() let locations = new Set()
locationList.forEach(item => { locationList.forEach(item => {
locations.add((item.areaName || '') + (item.locationName || '')) locations.add((item.areaName || '') + (item.locationName || ''))
}) })
return Array.from(new Set(locations)).join(',') return Array.from(new Set(locations)).join(',')
}, },
// 显示入仓列表
showWarehouseList(row) {
this.orderId = row.orderId;
this.$refs.warehouseList.showDetail(row);
},
// 显示入仓记录 // 显示入仓记录
showWarehouseLogs(row) { showWarehouseLogs(row) {
this.orderId = row.orderId; this.orderId = row.orderId;
......
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