Commit 6cb74cf4 authored by Administrator's avatar Administrator

Merge branch 'release' into 'jd_dev'

Release最新代码合并入捷道研发分支20241115

See merge request !1
parents 762a613a 18f2ad79
<template>
<view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder">{{$t('订单详情')}}</view>
</view>
<scroll-view scroll-y="true" style="height: 300px;">
<view class="cu-form-group margin-top">
<view class="title">{{$t('订单号')}}</view>
<view class="content">
{{ orderDetail.orderNo }}
<view style="color:blue;fontWeight:bold;">
{{ orderDetail.isExternalWarehouse === 1 ? ('('+$t('外部仓')+')') : ''}}
</view>
<view style="color:sandybrown;fontWeight:bold;">
{{ orderDetail.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}}
</view>
</view>
</view>
<view class="cu-form-group">
<view class="title">{{$t('唛头')}}</view>
<view class="content">{{ orderDetail.marks }}</view>
</view>
<view class="cu-form-group">
<view class="title">{{$t('报关方式')}}</view>
<view class="content"><dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="orderDetail.customsType" /></view>
</view>
<view class="cu-form-group">
<view class="title">{{$t('入仓时间')}}</view>
<view class="content">{{ formatDate(orderDetail.rucangTime) }}</view>
</view>
<view class="cu-form-group">
<view class="title">{{$t('路线')}}</view>
<view class="content" v-if="orderDetail.logisticsInfoDto">
{{ $lang.locale==='zh-Hans'? `${orderDetail.logisticsInfoDto.startTitleZh} - ${orderDetail.logisticsInfoDto.destTitleZh}`: `${orderDetail.logisticsInfoDto.startTitleEn} - ${orderDetail.logisticsInfoDto.destTitleEn}` }}</view>
</view>
<view>
<view class="item-content" v-for="(v, goodsKey) in orderDetail.orderItemVOList" :key="'goods-' + goodsKey">
<view>
<view>{{$t('品名')}}{{ $lang.locale==='zh-Hans'?v.prodTitleZh:v.prodTitleEn }}</view>
<view>{{$t('备案')}}
<template v-if="v.brandName">{{v.brandName}}</template>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="v.feeType" />
</view>
</view>
<view>
<view>{{$t('箱数')}}{{ v.warehouseInInfoVO && v.warehouseInInfoVO.cartonsNum }}</view>
<view>{{$t('体积')}}{{ v.warehouseInInfoVO && toFixed(v.warehouseInInfoVO.volume) }} CBM</view>
</view>
<view>
<view>{{$t('重量')}}{{ v.warehouseInInfoVO && toFixed(v.warehouseInInfoVO.weight) }} kg</view>
<view>
{{$t('储位')}}
<template v-if="v.warehouseInInfoVO && v.warehouseInInfoVO.orderLocationMergeVOSet">
{{v.warehouseInInfoVO.orderLocationMergeVOSet.map(location => `${location.areaName}${location.locationName || ''}`).join(',')}}
</template>
</view>
</view>
<view>
<view >{{$t('特性')}}{{ getProductNamesByIds(v.warehouseInInfoVO ? v.warehouseInProdAttrIds : v.prodAttrIds) }}</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="showOrderDetail(false)">{{$t('取消')}}</button></view>
</view>
</view>
</view>
</template>
<script>
import {getProductAttrList} from '@/api/system'
import util from "@/util/util.js";
export default {
name: 'orderDetailModal',
props: {
orderDetail: {
type: Object,
default: ''
},
orderDetailModal:{
type: Boolean,
default: true
}
},
computed: {
isChinese(){
return uni.getLocale() === 'zh-Hans'
}
},
data() {
return {
productAttrList: [],
}
},
created() {
getProductAttrList().then(data => {
this.productAttrList = data
})
},
methods: {
formatDate: util.formatDate,
toFixed: util.toFixed,
showOrderDetail(index) {
this.$emit('close', false);
},
getProductNamesByIds(ids){
const result = []
ids?.split(',').forEach(e => {
this.productAttrList.forEach(f => {
if (parseInt(e) === f.id) {
result.push(this.isChinese ? f.attrName : f.attrNameEn)
}
})
})
return result.join('')
},
}
};
</script>
<style lang="scss" scoped>
.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;
}
}
}
}
</style>
\ No newline at end of file
......@@ -128,6 +128,7 @@
"订单详情": "Order Details",
"唛头": "Marks",
"入仓时间": "deliver time",
"路线": "Route",
"储位": "Storage site",
"未装": "not be loaded",
"密码": "password",
......@@ -203,6 +204,9 @@
"移出当前出货单": "Transfer out the current shipment order",
"未选择储位信息": "No storage location information is selected",
"件数": "number",
"混箱商品明细": "Details of mixed products",
"长/宽/高": "length/wide/height",
"入仓/包装类型": "Warehousing/Packaging type",
"待理货货柜列表": "Container list to be tally",
"数量(个)": "Quantity",
"包装类型": "Packaging type",
......@@ -340,6 +344,7 @@
"继续": "yes",
"英文品名": "English name",
"商品特性": "Product Features",
"特性": "Features",
"修改": "modify",
"删除": "delete",
"新商品入仓": "New produce",
......@@ -488,6 +493,7 @@
",是否需要一起移出?": "Do you need to remove them together?",
"国家": "country",
"预装关联单": "Pre installed related documents",
"关联单": "Rrelated documents",
"仅当前订单": "Only current orders",
"请扫描合包箱号、标签": "Please scan the package number and label",
"合包箱号": "Package number",
......
......@@ -124,6 +124,7 @@
"订单详情":"订单详情",
"唛头":"唛头",
"入仓时间":"入仓时间",
"路线":"路线",
"储位":"储位",
"未装":"未装",
"密码":"密码",
......@@ -340,6 +341,7 @@
"继续":"继续",
"英文品名":"英文品名",
"商品特性":"商品特性",
"特性":"特性",
"修改":"修改",
"删除":"删除",
"新商品入仓":"新商品入仓",
......
......@@ -42,6 +42,12 @@
<view style="color:blue;fontWeight:bold;">
{{ order.isExternalWarehouse === 1 ? ('('+$t('外部仓')+')') : ''}}
</view>
<!-- 品牌 -->
<view v-if="order.goodsList.some(ele => ele.brandType && [$t('无牌'), $t('有牌'), $t('中性')][ele.brandType] !== $t('无牌'))" style="color:blue;fontWeight:bold;">{{ $t('有牌') }}</view>
<!-- 特性 -->
<view v-for="prod in order.goodsList" :key="prod.orderItemId" style="color:blue;fontWeight:bold;">{{prod.warehouseInAttrNameList?prod.warehouseInAttrNameList.toString():""}}</view>
<!-- 报关方式 -->
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" style="color:blue;fontWeight:bold;" />
</view>
<view class="flex-sub">{{ order.volume | toFixed }}</view>
<view class="flex-sub">{{ order.weight | toFixed }} kg</view>
......@@ -120,7 +126,8 @@
</scroll-view>
<!-- 订单详情弹窗 -->
<view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<OrderDetailModal :orderDetailModal="orderDetailModal" :orderDetail="orderDetail" @close="showOrderDetail"></OrderDetailModal>
<!-- <view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder">{{$t('订单详情')}}</view>
......@@ -181,7 +188,7 @@
<view class="action"><button class="cu-btn bg-grey" @tap="showOrderDetail(false)">{{$t('取消')}}</button></view>
</view>
</view>
</view>
</view> -->
<!-- 未装弹窗 -->
<view class="cu-modal" :class="unloadModal ? 'show' : ''" style="z-index: 900;">
......@@ -435,10 +442,12 @@ import {
} from "../loading/api";
import { getAdjustWaitOutList, warehouseAdjustSendOutBatch, getSupplierPage,getAirShipmentByShipmentId,boxAirCheckoutGet,warehouseCreate,getAirCheckoutByShipmentId,searchLoadOrderByBoxNo,batchAirCreate,singleAirCreate } from './api'
import { updateImg } from "@/api/system";
import OrderDetailModal from "@/components/order-detail-modal/index.vue"
export default {
name: "loading-detail",
components: {
OrderDetailModal
},
mixins: [mixins],
data() {
......
......@@ -45,11 +45,25 @@
</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-sub text-blue" @tap="showOrderDetail(true, order.orderId)">
<view>{{ order.orderNo }}</view>
<view class="flex-sub text-blue">
<view @tap="showOrderDetail(true, order.orderId)">{{ order.orderNo }}</view>
<view style="color:blue;fontWeight:bold;">
{{ order.isExternalWarehouse === 1 ? ('('+$t('外部仓')+')') : ''}}
</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 class="flex-sub">{{ order.volume | toFixed }}</view>
<view class="flex-sub">{{ order.weight | toFixed }} kg</view>
......@@ -166,7 +180,8 @@
</scroll-view>
<!-- 订单详情弹窗 -->
<view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<OrderDetailModal :orderDetailModal="orderDetailModal" :orderDetail="orderDetail" @close="showOrderDetail"></OrderDetailModal>
<!-- <view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder">{{$t('订单详情')}}</view>
......@@ -227,7 +242,9 @@
<view class="action"><button class="cu-btn bg-grey" @tap="showOrderDetail(false)">{{$t('取消')}}</button></view>
</view>
</view>
</view>
</view> -->
<warehouse-list ref="warehouseList" />
<!-- 未装弹窗 -->
<view class="cu-modal" :class="unloadModal ? 'show' : ''" style="z-index: 900;">
......@@ -429,6 +446,8 @@ import {
listByOrderId,
} from "./api";
import splitCom from "./components/split-com.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue"
import WarehouseList from "@/pages/tally/warehouseList.vue";
import { updateImg } from "@/api/system";
import dayjs from "dayjs";
......@@ -436,6 +455,8 @@ export default {
name: "loading-detail",
components: {
splitCom,
OrderDetailModal,
WarehouseList
},
mixins: [mixins],
data() {
......@@ -778,9 +799,15 @@ export default {
this.unloadSubNumberBegin = "";
this.unloadSubNumberEnd = "";
},
// 显示入仓记录
showWarehouseLogs(row) {
this.orderId = row.orderId;
this.$refs.warehouseList.showDetail(row);
},
/* 显示订单详情 */
showOrderDetail(show, id) {
this.orderDetailModal = show;
console.log('OrderDetailModal', this.OrderDetailModal)
if (show) {
this.getOrderDetail(id);
}
......
......@@ -61,10 +61,31 @@
{{ index + 1 }}
</view>
</view>
</view>
<view>
<view>
<view class="label">{{$t('订单号')}}: </view>
<view class="content">
{{item.orderNo}}
<text class="text-blue" @tap="showOrderDetail(true, item.orderId)">{{item.orderNo}}</text>
<!-- 调仓 -->
<text v-for="prod in item.orderItemDOS" :key="prod.orderItemId" style="color:blue;fontWeight:bold;margin: 0 3px;">
{{ prod.isExternalWarehouse === 1 ? ('('+$t('外部仓')+')') : ''}}
</text>
<text v-for="prod in item.orderItemDOS" :key="prod.orderItemId" style="color:red;fontWeight:bold;margin: 0 3px;">
{{ prod.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}}
</text>
<!-- 报关方式 -->
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item.customsType" 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" />{{ index!== order.orderItemDOS.length-1 ? ',':'' }}
</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 => ele.electrifiedFreightPrice > 0)" style="color:red;fontWeight:bold;margin: 0 3px;">{{ $t('带电') }}</text>
</view>
</view>
</view>
......@@ -166,6 +187,9 @@
</view>
</view>
</view>
<!-- 订单详情弹窗 -->
<OrderDetailModal :orderDetailModal="orderDetailModal" :orderDetail="orderDetail" @close="showOrderDetail"></OrderDetailModal>
<!-- 批量输入 -->
<view class="cu-modal" :class="batchModal ? 'show' : ''" style="z-index: 900;">
......@@ -293,18 +317,19 @@ import {uniIcons} from '@dcloudio/uni-ui';
import {
createMergePkgOrder, createMergePkgOrderBatch, finishMergePkg,
getPkgPageByPkgId, getUnPkgPage, removeMergePkg, removeMergePkgBatch,
scanOrderNoCreate
scanOrderNoCreate, listByOrderId
} from "./api";
import { batchCreateMore,batchDeleteMore,singleCreate,orderTagList } from "../tallyAir/api";
import { getOrderDetailByBoxNo } from "../loading/api";
import { getOrderDetail, getOrderDetailByBoxNo } from "../loading/api";
import EditMergePkgDialog from "@/pages/mergePkg/components/editMergePkgDialog.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue"
import util from '@/util/util'
import { msg, alert } from "@/util/tools";
import Seal from "@/pages/mergePkg/components/seal.vue";
import Empty from "@/pages/mergePkg/components/empty.vue";
import * as types from "../../store/mutations-types.js";
export default {
components: { Empty, Seal, EditMergePkgDialog, uniIcons },
components: { Empty, Seal, EditMergePkgDialog, uniIcons, OrderDetailModal },
filters:{
toFixed(val){
return Number(val).toFixed(2)
......@@ -329,6 +354,9 @@ export default {
searchKeyword: null,
// 是否显示封箱弹层
showSealDialog: false,
/* 订单详情 */
orderDetailModal: false,
orderDetail: {},
keyword: "",
//未理货箱号
noTallyAir:false,
......@@ -425,6 +453,30 @@ export default {
this.$set(item, 'checked', status)
})
},
/* 显示订单详情 */
showOrderDetail(show, id) {
this.orderDetailModal = show;
if (show) {
this.getOrderDetail(id);
}
},
/* 读取订单详情 */
getOrderDetail(id) {
return new Promise((resolve, reject) => {
getOrderDetail(id).then((data) => {
//订单信息
this.orderDetail = data;
listByOrderId({ orderId: id }).then((data) => {
let positionNos = data.map((item) => {
return `${item.warehouseName ?? ""}${item.areaName ?? ""}${
item.locationName ?? ""
}`;
});
this.$set(this.orderDetail, "positionNo", positionNos.join(","));
});
});
});
},
// 装箱
pack(item){
if(item.customsType!=='1'){
......
......@@ -39,7 +39,8 @@
</view>
</view>
<!-- 订单详情弹窗 -->
<view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<OrderDetailModal :orderDetailModal="orderDetailModal" :orderDetail="orderDetail" @close="showOrderDetail"></OrderDetailModal>
<!-- <view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder">{{$t('订单详情')}}</view>
......@@ -101,15 +102,18 @@
<view class="action"><button class="cu-btn bg-grey" @tap="showOrderDetail(false)">{{$t('取消')}}</button></view>
</view>
</view>
</view>
</view> -->
</view>
</template>
<script>
import { getWarehouseWaitInList,listByOrderId,getOrderDetailAdmin } from './api'
import mixins from "../../mixins/mixin.js";
import OrderDetailModal from "@/components/order-detail-modal/index.vue"
export default {
mixins: [mixins],
components: { OrderDetailModal },
data() {
return {
listData: [],
......
......@@ -39,7 +39,20 @@
<view style="color:sandybrown;fontWeight:bold;">
{{ order.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}}
</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 style="width:15%;">{{ order.volume | toFixed }}</view>
<view style="width:15%;">{{ order.weight | toFixed }} kg</view>
......@@ -95,6 +108,9 @@
<view class="padding-xl">
<block>
<view class="flex-sub" style="padding-right: 10px;">
<button class="cu-btn block bg-yellow margin-tb-sm lg" @click="toPatch">{{$t('补单')}}</button>
</view>
<view class="flex">
<view class="flex-sub" style="padding-right: 10px;">
<button class="cu-btn block bg-blue margin-tb-sm lg" @click="tallyFinish">{{$t('完成理货')}}</button>
......@@ -109,7 +125,8 @@
</scroll-view>
<!-- 订单详情弹窗 -->
<view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<OrderDetailModal :orderDetailModal="orderDetailModal" :orderDetail="orderDetail" @close="showOrderDetail"></OrderDetailModal>
<!-- <view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder">{{$t('订单详情')}}</view>
......@@ -135,11 +152,6 @@
<view class="title">{{$t('报关方式')}}</view>
<view class="content"><dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="orderDetail.customsType" /></view>
</view>
<!-- <view class="cu-form-group">-->
<!-- <view class="title">{{$t('入仓时间')}}</view>-->
<!-- <view class="content">{{ orderDetail.rucangTime | formatDate }}</view>-->
<!-- </view>-->
<view>
<view class="item-content" v-for="(v, goodsKey) in orderDetail.orderItemVOList" :key="'goods-' + goodsKey">
<view>
......@@ -164,7 +176,7 @@
<view class="action"><button class="cu-btn bg-grey" @tap="showOrderDetail(false)">{{$t('取消')}}</button></view>
</view>
</view>
</view>
</view> -->
<!-- 货物详情弹窗 -->
<view class="cu-modal" :class="goodsModal ? 'show' : ''" style="z-index: 900;">
......@@ -220,6 +232,7 @@
</view>
<warehouse-detail ref="warehouseDetail" :orderId="orderId" :orderItemId="showWarehouseInItemId" />
<warehouse-list ref="warehouseList" />
<uni-popup ref="popup" class="add-popup">
<view class="popup-content">
......@@ -250,10 +263,12 @@ import {
} from "./api";
import { getOrderDetail, getLoadingDetail } from "../loading/api";
import WarehouseDetail from "./warehouseDetail.vue";
import WarehouseList from "@/pages/tally/warehouseList.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue"
export default {
name: "tally-detail",
components: { WarehouseDetail },
components: { WarehouseDetail,OrderDetailModal, WarehouseList },
mixins: [mixins],
data() {
return {
......@@ -314,15 +329,20 @@ export default {
},
},
methods: {
// 从warehouseInInfo中提取储位信息
showLocationName(locationList){
if(!locationList || !locationList.length) return ''
let locations = new Set()
locationList.forEach(item => {
locations.add((item.areaName || '') + (item.locationName || ''))
})
return Array.from(new Set(locations)).join(',')
},
// 从warehouseInInfo中提取储位信息
showLocationName(locationList){
if(!locationList || !locationList.length) return ''
let locations = new Set()
locationList.forEach(item => {
locations.add((item.areaName || '') + (item.locationName || ''))
})
return Array.from(new Set(locations)).join(',')
},
// 显示入仓列表
showWarehouseList(row) {
this.orderId = row.orderId;
this.$refs.warehouseList.showDetail(row);
},
// 显示入仓记录
showWarehouseLogs(row) {
this.orderId = row.orderId;
......@@ -503,6 +523,13 @@ export default {
this.getLoadDetail();
});
},
/* 跳转到补单 */
toPatch() {
const { boxInfo } = this.loadData;
uni.navigateTo({
url: `../mergePkg/patch?id=${this.shipmentId}&selfNo=${boxInfo.selfNo}`,
});
},
/* 理货完成 */
tallyFinish() {
tallyCommit({ shipmentId: this.shipmentId }).then((res) => {
......
<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">{{ index + 1 }}</view>
<view class="flex-sub">{{ v.cartonsNum }}</view>
<view class="flex-sub"><dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="v.specificationType" />/<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="v.unit" /></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">{{ showLocationName(v.orderLocationBackVOList) }}</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 @@
<view style="color:sandybrown;fontWeight:bold;">
{{ order.adjustToDestWarehouseId > 0 ? ('('+$t('调仓')+')') : ''}}
</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 style="width:15%;">{{ order.volume | toFixed }}</view>
<view style="width:15%;">{{ order.weight | toFixed }} kg</view>
......@@ -113,6 +126,9 @@
<view class="padding-xl">
<block>
<view class="flex-sub" style="padding-right: 10px;">
<button class="cu-btn block bg-yellow margin-tb-sm lg" @click="toPatch">{{$t('补单')}}</button>
</view>
<view class="flex">
<view class="flex-sub">
<button class="cu-btn block bg-red margin-tb-sm lg" @click="showErrorCorrection(true)">{{$t('理货纠错')}}</button>
......@@ -135,7 +151,8 @@
</scroll-view>
<!-- 订单详情弹窗 -->
<view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<OrderDetailModal :orderDetailModal="orderDetailModal" :orderDetail="orderDetail" @close="showOrderDetail"></OrderDetailModal>
<!-- <view class="cu-modal" :class="orderDetailModal ? 'show' : ''" style="z-index: 900;">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end bottom-line">
<view class="content title-bolder">{{$t('订单详情')}}</view>
......@@ -161,10 +178,6 @@
<view class="title">{{$t('报关方式')}}</view>
<view class="content"><dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="orderDetail.customsType" /></view>
</view>
<!-- <view class="cu-form-group">-->
<!-- <view class="title">{{$t('入仓时间')}}</view>-->
<!-- <view class="content">{{ orderDetail.rucangTime | formatDate }}</view>-->
<!-- </view>-->
<view>
<view class="item-content" v-for="(v, goodsKey) in orderDetail.orderItemVOList" :key="'goods-' + goodsKey">
......@@ -190,7 +203,7 @@
<view class="action"><button class="cu-btn bg-grey" @tap="showOrderDetail(false)">{{$t('取消')}}</button></view>
</view>
</view>
</view>
</view> -->
<!-- 货物详情弹窗 -->
<view class="cu-modal" :class="goodsModal ? 'show' : ''" style="z-index: 900;">
......@@ -261,6 +274,7 @@
</view>
</view>
<warehouse-detail ref="warehouseDetail" :orderId="orderId" :orderItemId="showWarehouseInItemId" />
<warehouse-list ref="warehouseList" />
<uni-popup ref="popup" class="add-popup">
<view class="popup-content">
......@@ -401,12 +415,14 @@ import {
} from "./api";
import { getOrderDetail, getLoadingDetail,getOrderDetailByBoxNo } from "../loading/api";
import WarehouseDetail from "./warehouseDetail.vue";
import WarehouseList from "@/pages/tally/warehouseList.vue";
import Exception from "./components/exception.vue";
import OrderDetailModal from "@/components/order-detail-modal/index.vue"
import util from "../../util/util.js";
export default {
name: "tally-detail",
components: { Exception, WarehouseDetail },
components: { Exception, WarehouseDetail, OrderDetailModal, WarehouseList },
mixins: [mixins],
data() {
return {
......@@ -525,15 +541,20 @@ export default {
this.scanNumber = "";
this.batchModal = show;
},
// 从warehouseInInfo中提取储位信息
showLocationName(locationList){
if(!locationList || !locationList.length) return ''
let locations = new Set()
locationList.forEach(item => {
locations.add((item.areaName || '') + (item.locationName || ''))
})
return Array.from(new Set(locations)).join(',')
},
// 从warehouseInInfo中提取储位信息
showLocationName(locationList){
if(!locationList || !locationList.length) return ''
let locations = new Set()
locationList.forEach(item => {
locations.add((item.areaName || '') + (item.locationName || ''))
})
return Array.from(new Set(locations)).join(',')
},
// 显示入仓列表
showWarehouseList(row) {
this.orderId = row.orderId;
this.$refs.warehouseList.showDetail(row);
},
// 显示入仓记录
showWarehouseLogs(row) {
this.orderId = row.orderId;
......@@ -764,6 +785,13 @@ export default {
this.getLoadDetail();
});
},
/* 跳转到补单 */
toPatch() {
const { boxInfo } = this.loadData;
uni.navigateTo({
url: `../mergePkg/patch?id=${this.shipmentId}&selfNo=${boxInfo.selfNo}`,
});
},
/* 理货完成 */
tallyFinish() {
this.$store.dispatch(types.SHOW_TOAST, {
......
......@@ -146,7 +146,7 @@
<button style="color: #007aff" @tap="next">{{$t('下一步')}}</button>
</view>
<view class="add-popup">
<uni-popup ref="popup" background-color="#fff" @maskClick="maskClick">
<uni-popup ref="popup" background-color="#fff" :maskClick="false">
<view class="popup-content">
<view class="popup-title">{{title}}</view>
<view class="add-form">
......@@ -293,7 +293,7 @@
<!-- 添加新商品-->
<view class="add-popup">
<uni-popup ref="product" background-color="#fff" @maskClick="maskClickAddProduct">
<uni-popup ref="product" background-color="#fff" :maskClick="false">
<view class="popup-content">
<view class="popup-title">{{$t('添加新商品')}}</view>
......@@ -908,25 +908,45 @@ export default {
})
},
maskClick() {
this.$refs.popup.close()
this.addForm = {
unit: '1',
orderWarehouseInItemDoList: [{cartonsNum:undefined}],
pictureUrls: [],
usageIds: [],
}
const _this = this
uni.showModal({
title: '提示',
content: '确认取消吗?',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
_this.$refs.popup.close()
_this.addForm = {
unit: '1',
orderWarehouseInItemDoList: [{cartonsNum:undefined}],
pictureUrls: [],
usageIds: [],
}
}
}
});
},
addProduct() {
this.$refs.product.open('center')
},
maskClickAddProduct() {
this.$refs.product.close()
this.productForm = {
typeId: undefined,
attrArray: [],
titleZh: undefined,
titleEn: undefined
}
const _this = this
uni.showModal({
title: '提示',
content: '确认取消吗?',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
_this.$refs.product.close()
_this.productForm = {
typeId: undefined,
attrArray: [],
titleZh: undefined,
titleEn: undefined
}
}
}
});
},
saveProductForm() {
if(!this.productForm.typeId){
......
......@@ -145,7 +145,7 @@
<button style="color: #007aff" @tap="next">{{$t('下一步')}}</button>
</view>
<view class="add-popup">
<uni-popup ref="popup" background-color="#fff" @maskClick="maskClick">
<uni-popup ref="popup" background-color="#fff" :maskClick="false">
<view class="popup-content">
<view class="popup-title">{{title}}</view>
<view class="add-form">
......@@ -292,7 +292,7 @@
<!-- 添加新商品-->
<view class="add-popup">
<uni-popup ref="product" background-color="#fff" @maskClick="maskClickAddProduct">
<uni-popup ref="product" background-color="#fff" :maskClick="false">
<view class="popup-content">
<view class="popup-title">{{$t('添加新商品')}}</view>
......@@ -906,25 +906,44 @@ export default {
})
},
maskClick() {
this.$refs.popup.close()
this.addForm = {
unit: '1',
orderWarehouseInItemDoList: [{cartonsNum:undefined}],
pictureUrls: [],
usageIds: [],
}
const _this = this
uni.showModal({
title: '提示',
content: '确认取消吗?',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
_this.$refs.popup.close()
_this.addForm = {
unit: '1',
orderWarehouseInItemDoList: [{cartonsNum:undefined}],
pictureUrls: [],
usageIds: [],
}
}
}
});
},
addProduct() {
this.$refs.product.open('center')
},
maskClickAddProduct() {
this.$refs.product.close()
this.productForm = {
typeId: undefined,
attrArray: [],
titleZh: undefined,
titleEn: undefined
}
const _this = this
uni.showModal({
title: '提示',
content: '确认取消吗?',
success: function (res) {
if (res.confirm) {
_this.$refs.product.close()
_this.productForm = {
typeId: undefined,
attrArray: [],
titleZh: undefined,
titleEn: undefined
}
}
}
});
},
saveProductForm() {
if(!this.productForm.typeId){
......
......@@ -18,8 +18,8 @@ if (process.env.NODE_ENV === 'development') {
/**
* 配置api基础路径
*/
//let apiBaseUrl = 'https://api2.groupage.cn/'
let apiBaseUrl = 'https://api2.groupage.cn/'
// let apiBaseUrl = 'https://api.jd.qipx.top/'
//let apiBaseUrl = 'http://192.168.1.13:48080/'
let localApiBaseUrl = uni.getStorageSync("localApiBaseUrl")
if(localApiBaseUrl){
......
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