Commit 8eee6ff7 authored by 邓春圆's avatar 邓春圆

Merge remote-tracking branch 'origin/dev' into dev

parents 996db3dd 0e1428e3
...@@ -40,3 +40,33 @@ export function booking(data) { ...@@ -40,3 +40,33 @@ export function booking(data) {
data, data,
}); });
} }
/**
* 获得待预装分页
*
* @export
* @param {*} data
* @return {*}
*/
export function preloadPage(data) {
return request({
url: "/ecw/box-preload-goods/preloadPageAir",
method: "post",
data,
});
}
/**
* 预装
*
* @export
* @param {*} data
* @return {*}
*/
export function createGoods(data) {
return request({
url: "/ecw/box-preload-goods/createAir",
method: "post",
data,
});
}
\ No newline at end of file
...@@ -14,10 +14,13 @@ ...@@ -14,10 +14,13 @@
<el-option v-for="item in importCityList" :key="item.id" :label="item.titleZh" :value="item.id" /> <el-option v-for="item in importCityList" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select> </el-select>
<template v-if="type == 'air'">
{{$t('出货渠道')}}: {{$t('出货渠道')}}:
<el-select :placeholder="$t('请选择目渠道')" v-model="channelId" clearable> <el-select :placeholder="$t('请选择目渠道')" v-model="channelId" clearable>
<el-option v-for="item in channelList" :key="item.channelId" :label="item.nameZh" :value="item.channelId" /> <el-option v-for="item in channelList" :key="item.channelId" :label="item.nameZh" :value="item.channelId" />
</el-select> </el-select>
</template>
</div> </div>
<div class="mb-10"> <div class="mb-10">
<el-radio-group v-model="checkAll"> <el-radio-group v-model="checkAll">
...@@ -75,7 +78,9 @@ import {getChannelList} from '@/api/ecw/channel' ...@@ -75,7 +78,9 @@ import {getChannelList} from '@/api/ecw/channel'
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import {openedRouterList} from '@/api/ecw/warehouse' import {openedRouterList} from '@/api/ecw/warehouse'
import {getProductAttrList} from "@/api/ecw/productAttr"; import {getProductAttrList} from "@/api/ecw/productAttr";
import Template from "@/views/cms/template";
export default { export default {
components: {Template},
props:{ props:{
value: { value: {
type: Array type: Array
......
...@@ -30,11 +30,11 @@ ...@@ -30,11 +30,11 @@
<el-option v-for="item in declarationMethodOps" :label="$l(item, 'label')" :value="item.value" :key="item.value"></el-option> <el-option v-for="item in declarationMethodOps" :label="$l(item, 'label')" :value="item.value" :key="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('待预装订单')" prop="toBePreOrderNo"> <el-form-item :label="$t('待分拣订单')" prop="toBePreOrderNo">
<el-input v-model="queryParams.toBePreOrderNo" :placeholder="$t('请输入待预装订单')" clearable /> <el-input v-model="queryParams.toBePreOrderNo" :placeholder="$t('请输入待分拣订单')" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('已预装单号')" prop="preOrderNo"> <el-form-item :label="$t('已分拣单号')" prop="preOrderNo">
<el-input v-model="queryParams.preOrderNo" :placeholder="$t('请输入已预装单号')" clearable /> <el-input v-model="queryParams.preOrderNo" :placeholder="$t('请输入已分拣单号')" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('品名')" prop="itemName"> <el-form-item :label="$t('品名')" prop="itemName">
<el-input v-model="queryParams.itemName" :placeholder="$t('请输入品名')" clearable /> <el-input v-model="queryParams.itemName" :placeholder="$t('请输入品名')" clearable />
...@@ -47,8 +47,8 @@ ...@@ -47,8 +47,8 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery('pre')">{{$t('搜索已预装订单')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery('pre')">{{$t('搜索已分拣订单')}}</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery('toBePre')">{{$t('搜索待预装订单')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery('toBePre')">{{$t('搜索待分拣订单')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -83,16 +83,16 @@ ...@@ -83,16 +83,16 @@
</div> </div>
</el-row> </el-row>
<el-row class="preinstall-table"> <el-row class="preinstall-table">
<!-- 已预装订单 --> <!-- 已分拣订单 -->
<el-col :span="12"> <el-col :span="12">
<el-row class="preinstall-title"> <el-row class="preinstall-title">
<div class="table-label">{{$t('预装订单')}}</div> <div class="table-label">{{$t('分拣订单')}}</div>
<div> <div>
<p>{{$t('总计')}}</p> <p>{{$t('总计')}}</p>
<p>{{getTotlContent(preList.loadStatistics)}}</p> <p>{{getTotlContent(preList.loadStatistics)}}</p>
</div> </div>
<div class="red-label"> <div class="red-label">
<p>{{$t('预装方数')}}</p> <p>{{$t('分拣方数')}}</p>
<p>{{preList.remainVolume}}</p> <p>{{preList.remainVolume}}</p>
</div> </div>
<div class="red-label"> <div class="red-label">
...@@ -182,13 +182,13 @@ ...@@ -182,13 +182,13 @@
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>
</el-col> </el-col>
<!-- 预装订单 --> <!-- 分拣订单 -->
<el-col :span="12"> <el-col :span="12">
<el-row class="preinstall-title"> <el-row class="preinstall-title">
<div class="table-label red-label">{{$t('预装订单')}}</div> <div class="table-label red-label">{{$t('分拣订单')}}</div>
<div class="preinstall-title preinstalled"> <div class="preinstall-title preinstalled">
<div class="red-label"> <div class="red-label">
<p>{{$t('筛选后待预装数量')}}</p> <p>{{$t('筛选后待分拣数量')}}</p>
<p>{{getTotlContent(unloadStatistics,['num'])}}</p> <p>{{getTotlContent(unloadStatistics,['num'])}}</p>
</div> </div>
<div class="red-label"> <div class="red-label">
...@@ -231,7 +231,7 @@ ...@@ -231,7 +231,7 @@
<div class="table-button"> <div class="table-button">
<el-button v-if="item.relateOrderList" type="primary" size="small" style="margin-right: 20px;" @click="getRelationOrder(item)">{{$t('关联订单')}}</el-button> <el-button v-if="item.relateOrderList" type="primary" size="small" style="margin-right: 20px;" @click="getRelationOrder(item)">{{$t('关联订单')}}</el-button>
<el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)">
<el-button type="success" size="small" :disabled="isAudit">{{$t('预装全部')}}</el-button> <el-button type="success" size="small" :disabled="isAudit">{{$t('分拣全部')}}</el-button>
<el-dropdown-menu slot="dropdown" v-if="preList.sectionGoodList"> <el-dropdown-menu slot="dropdown" v-if="preList.sectionGoodList">
<el-dropdown-item :command="part" v-for="(part, index) in preList.sectionGoodList" :key="part.id"> <el-dropdown-item :command="part" v-for="(part, index) in preList.sectionGoodList" :key="part.id">
{{$t('第{index}部分', {index: index+1})}} {{$t('第{index}部分', {index: index+1})}}
...@@ -277,7 +277,7 @@ ...@@ -277,7 +277,7 @@
<!-- <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleGoods('single',scope.row,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('single',scope.row,command)">
<el-button type="primary" size="small">{{$t('预装')}}</el-button> <el-button type="primary" size="small">{{$t('分拣')}}</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" :key="part.id">{{index+1}}部分</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
...@@ -334,10 +334,8 @@ ...@@ -334,10 +334,8 @@
import { DICT_TYPE } from "@/utils/dict"; import { DICT_TYPE } from "@/utils/dict";
import { import {
secGoodsList, secGoodsList,
preloadPage,
createSection, createSection,
deleteSection, deleteSection,
createGoods,
deleteGoods, deleteGoods,
changeSection, changeSection,
approvalCreate, approvalCreate,
...@@ -345,6 +343,7 @@ import { ...@@ -345,6 +343,7 @@ import {
loadRelationOrder, loadRelationOrder,
getAllRelateOrderList getAllRelateOrderList
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { createGoods, preloadPage } from "@/api/ecw/boxAir"
import userSelect from "./common/userSelect.vue"; import userSelect from "./common/userSelect.vue";
import { import {
formatDate, formatDate,
...@@ -358,7 +357,7 @@ import WorkFlow from "@/components/WorkFlow"; ...@@ -358,7 +357,7 @@ import WorkFlow from "@/components/WorkFlow";
import Decimal from "decimal.js"; import Decimal from "decimal.js";
/** /**
* 预装 * 分拣
*/ */
export default { export default {
name: "preinstall", name: "preinstall",
...@@ -377,7 +376,7 @@ export default { ...@@ -377,7 +376,7 @@ export default {
declarationMethodOps: this.getDictDatas(DICT_TYPE.ECW_CUSTOMS_TYPE), declarationMethodOps: this.getDictDatas(DICT_TYPE.ECW_CUSTOMS_TYPE),
// 查询标识 // 查询标识
type: "", type: "",
// 已预装 遮罩层 // 已分拣 遮罩层
preLoading: false, preLoading: false,
preList: { preList: {
sectionGoodList: [], sectionGoodList: [],
...@@ -387,7 +386,7 @@ export default { ...@@ -387,7 +386,7 @@ export default {
// 选中行 // 选中行
selectedRows: {}, selectedRows: {},
// 待预装 // 待分拣
toBePreLoading: false, toBePreLoading: false,
toBePreList: [], toBePreList: [],
total: 0, total: 0,
...@@ -415,7 +414,7 @@ export default { ...@@ -415,7 +414,7 @@ export default {
shipmentObj: this.$attrs.shipmentObj, shipmentObj: this.$attrs.shipmentObj,
// 抄送人数组 // 抄送人数组
selectedUsers: [], selectedUsers: [],
// 智慧预装 // 智慧分拣
smartInstall: 1, smartInstall: 1,
//关联订单 //关联订单
relationOrderListDialog: { relationOrderListDialog: {
...@@ -451,7 +450,7 @@ export default { ...@@ -451,7 +450,7 @@ export default {
}, },
}, },
created() { created() {
// 查询待预装 // 查询待分拣
this.handleQuery("toBePre"); this.handleQuery("toBePre");
this.handleQuery("pre"); this.handleQuery("pre");
this.smartInstall = 0; this.smartInstall = 0;
...@@ -468,12 +467,12 @@ export default { ...@@ -468,12 +467,12 @@ export default {
checkboxSelect(selection, part) { checkboxSelect(selection, part) {
this.selectedRows[part.id] = selection; this.selectedRows[part.id] = selection;
}, },
/* 查询已预装 */ /* 查询已分拣 */
getSecGoods() { getSecGoods() {
this.preLoading = true; this.preLoading = true;
// 处理查询参数 // 处理查询参数
let params = this.getParams(); let params = this.getParams();
// 已预装单号 // 已分拣单号
params.orderNo = params.preOrderNo; params.orderNo = params.preOrderNo;
params.shipmentId = this.shipmentObj.id; params.shipmentId = this.shipmentObj.id;
params.smartInstall = this.smartInstall; params.smartInstall = this.smartInstall;
...@@ -495,7 +494,7 @@ export default { ...@@ -495,7 +494,7 @@ export default {
this.preLoading = false; this.preLoading = false;
}); });
}, },
/* 查询待预装 */ /* 查询待分拣 */
getPreLoad() { getPreLoad() {
this.toBePreLoading = true; this.toBePreLoading = true;
// 处理查询参数 // 处理查询参数
...@@ -503,6 +502,7 @@ export default { ...@@ -503,6 +502,7 @@ export default {
// 订单号 // 订单号
params.orderNo = params.toBePreOrderNo; params.orderNo = params.toBePreOrderNo;
params.transportType = this.shipmentObj.transportType; params.transportType = this.shipmentObj.transportType;
params.shipmentId = this.shipmentObj.id;
preloadPage({ ...params, ...this.pageParam }).then((res) => { preloadPage({ ...params, ...this.pageParam }).then((res) => {
const { data } = res; const { data } = res;
this.toBePreList = data.dataList?.list ?? []; this.toBePreList = data.dataList?.list ?? [];
...@@ -546,9 +546,9 @@ export default { ...@@ -546,9 +546,9 @@ export default {
} }
approvalCreate({ approvalCreate({
...this.operatorData, ...this.operatorData,
applyReason: this.$t("预装审核"), applyReason: this.$t("分拣审核"),
approvalStatus: 0, approvalStatus: 0,
approvalType: 1, // 预装 approvalType: 1, // 分拣
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => { }).then((res) => {
...@@ -601,7 +601,7 @@ export default { ...@@ -601,7 +601,7 @@ export default {
} }
return 0; return 0;
}, },
/* 待预装订单分页 */ /* 待分拣订单分页 */
pageChange(page) { pageChange(page) {
this.pageParam.pageNo = page; this.pageParam.pageNo = page;
this.getPreLoad(); this.getPreLoad();
...@@ -624,7 +624,7 @@ export default { ...@@ -624,7 +624,7 @@ export default {
/* 删除部分 */ /* 删除部分 */
deletePart(part) { deletePart(part) {
this.$confirm( this.$confirm(
this.$t("确认删除该部分及其已预装订单?"), this.$t("确认删除该部分及其已分拣订单?"),
this.$t("提示"), this.$t("提示"),
{ {
type: "warning", type: "warning",
...@@ -643,7 +643,7 @@ export default { ...@@ -643,7 +643,7 @@ export default {
}) })
.catch((_) => {}); .catch((_) => {});
}, },
/** 预装 */ /** 分拣 */
handleGoods(type, item, part) { handleGoods(type, item, part) {
if (type === "all") { if (type === "all") {
let params = { let params = {
...@@ -700,7 +700,7 @@ export default { ...@@ -700,7 +700,7 @@ export default {
} }
if (res.code === 566) { if (res.code === 566) {
this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), { this.$confirm(res.msg+this.$t('是否需要一起分拣?'), this.$t("提示"), {
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
type: "warning", type: "warning",
}) })
......
...@@ -173,7 +173,7 @@ export default { ...@@ -173,7 +173,7 @@ export default {
this.$set(this.dialogConfig, "title", this.$t("预装反审")); this.$set(this.dialogConfig, "title", this.$t("预装反审"));
} else { } else {
this.$set(this.dialogConfig, "fullscreen", true); this.$set(this.dialogConfig, "fullscreen", true);
this.$set(this.dialogConfig, "title", this.$t("出货安排(预装)")); this.$set(this.dialogConfig, "title", this.$t("空运-排单"));
} }
// 装柜 // 装柜
case "cabinet": case "cabinet":
......
...@@ -52,18 +52,7 @@ function airBaseData() { ...@@ -52,18 +52,7 @@ function airBaseData() {
wait: [22, 23, 24], wait: [22, 23, 24],
end: [25], end: [25],
}, },
}, }
{
title: "AGENT",
imgSrc: {
start: require("@/assets/images/shipping/agent-start.png"),
wait: require("@/assets/images/shipping/agent-wait.png"),
end: require("@/assets/images/shipping/agent-end.png"),
},
type: "agent",
voName: "agentInfo",
currStatus: "start",
},
], ],
[ [
{ {
...@@ -87,7 +76,7 @@ function airBaseData() { ...@@ -87,7 +76,7 @@ function airBaseData() {
}, },
}, },
{ {
title: i18n.$t("拖车"), title: i18n.$t("合包"),
imgSrc: { imgSrc: {
start: require("@/assets/images/shipping/tc-start.png"), start: require("@/assets/images/shipping/tc-start.png"),
wait: require("@/assets/images/shipping/tc-wait.png"), wait: require("@/assets/images/shipping/tc-wait.png"),
...@@ -109,7 +98,27 @@ function airBaseData() { ...@@ -109,7 +98,27 @@ function airBaseData() {
], ],
[ [
{ {
title: i18n.$t("装柜"), title: i18n.$t("出货"),
imgSrc: {
start: require("@/assets/images/shipping/zg-start.png"),
wait: require("@/assets/images/shipping/zg-wait.png"),
end: require("@/assets/images/shipping/zg-end.png"),
},
type: "cabinet",
dataKey: "4", // 字典数据键值
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功;47、已封柜,待出仓
*/
voName: "cabinetInfo",
keyName: "ldStatus",
status: {
start: [41],
wait: [42, 43, 44, 45, 46],
end: [47],
},
},
{
title: i18n.$t("出仓"),
imgSrc: { imgSrc: {
start: require("@/assets/images/shipping/zg-start.png"), start: require("@/assets/images/shipping/zg-start.png"),
wait: require("@/assets/images/shipping/zg-wait.png"), wait: require("@/assets/images/shipping/zg-wait.png"),
...@@ -130,6 +139,17 @@ function airBaseData() { ...@@ -130,6 +139,17 @@ function airBaseData() {
}, },
], ],
[ [
{
title: "AGENT",
imgSrc: {
start: require("@/assets/images/shipping/agent-start.png"),
wait: require("@/assets/images/shipping/agent-wait.png"),
end: require("@/assets/images/shipping/agent-end.png"),
},
type: "agent",
voName: "agentInfo",
currStatus: "start",
},
{ {
title: i18n.$t("报关"), title: i18n.$t("报关"),
imgSrc: { imgSrc: {
...@@ -150,26 +170,6 @@ function airBaseData() { ...@@ -150,26 +170,6 @@ function airBaseData() {
end: [53], end: [53],
}, },
}, },
{
title: i18n.$t("配船"),
imgSrc: {
start: require("@/assets/images/shipping/pc-start.png"),
wait: require("@/assets/images/shipping/pc-wait.png"),
end: require("@/assets/images/shipping/pc-end.png"),
},
type: "ship",
dataKey: "6", // 字典数据键值
/**
* 配船状态:61、未配船;62、已配船
*/
voName: "shipConfigInfo",
keyName: "saStatus",
status: {
start: [61],
wait: [],
end: [62],
},
},
{ {
title: i18n.$t("提单补料"), title: i18n.$t("提单补料"),
imgSrc: { imgSrc: {
...@@ -193,69 +193,27 @@ function airBaseData() { ...@@ -193,69 +193,27 @@ function airBaseData() {
], ],
[ [
{ {
title: i18n.$t("驳船"), title: i18n.$t("起飞"),
imgSrc: {
start: require("@/assets/images/shipping/bc-start.png"),
wait: require("@/assets/images/shipping/bc-wait.png"),
end: require("@/assets/images/shipping/bc-end.png"),
},
type: "barge",
dataKey: "8", // 字典数据键值
/**
* 驳船状态:81、未驳船;82、已驳船
*/
voName: "bargeInfo",
keyName: "bgStatus",
status: {
start: [81],
wait: [],
end: [82],
},
},
],
[
{
title: i18n.$t("起运"),
imgSrc: { imgSrc: {
start: require("@/assets/images/shipping/qy-start.png"), start: require("@/assets/images/shipping/ecqf-start.png"),
wait: require("@/assets/images/shipping/qy-wait.png"), wait: require("@/assets/images/shipping/ecqf-wait.png"),
end: require("@/assets/images/shipping/qy-end.png"), end: require("@/assets/images/shipping/ecqf-end.png"),
}, },
type: "departure", type: "twoWayTakeoff",
dataKey: "9", // 字典数据键值 dataKey: "14", // 字典数据键值
/** /**
* 起运状态:91、未起运;92、已起运 * 起飞状态:141、未起飞;142、已起飞
*/ */
voName: "shippingInfo", voName: "takeOffInfo",
keyName: "dtStatus", keyName: "stkStatus",
status: { status: {
start: [91], start: [141],
wait: [], wait: [],
end: [92], end: [142],
}, },
}, },
], ],
[ [
{
title: i18n.$t("提单Copy"),
imgSrc: {
start: require("@/assets/images/shipping/tdcopy-start.png"),
wait: require("@/assets/images/shipping/tdcopy-wait.png"),
end: require("@/assets/images/shipping/tdcopy-end.png"),
},
type: "blCopy",
dataKey: "10", // 字典数据键值
/**
* 提单COPY状态:101、未上传;102、已上传
*/
voName: "ladingCopyInfo",
keyName: "cpStatus",
status: {
start: [101],
wait: [],
end: [102],
},
},
{ {
type: "clrDocument", type: "clrDocument",
imgSrc: { imgSrc: {
...@@ -323,7 +281,7 @@ function airBaseData() { ...@@ -323,7 +281,7 @@ function airBaseData() {
], ],
[ [
{ {
title: i18n.$t("卸柜"), title: i18n.$t("到仓"),
imgSrc: { imgSrc: {
start: require("@/assets/images/shipping/xg-start.png"), start: require("@/assets/images/shipping/xg-start.png"),
wait: require("@/assets/images/shipping/xg-wait.png"), wait: require("@/assets/images/shipping/xg-wait.png"),
...@@ -783,24 +741,14 @@ function seaAirBaseData() { ...@@ -783,24 +741,14 @@ function seaAirBaseData() {
*/ */
function getColmnMapping() { function getColmnMapping() {
return { return {
bookSeaInfo: [ bookAirInfo: [
{ {
title: "SO NO", title: i18n.$t("提单号"),
key: "sono", key: "blNo",
},
{
title: i18n.$t("船公司类型"),
key: "shipCompanyType",
type: "supplier",
},
{
title: i18n.$t("驳船港"),
key: "bargePortId",
type: "dock",
}, },
{ {
title: i18n.$t("大船"), title: i18n.$t("起运"),
key: "bigPortId", key: "departurePortId",
type: "dock", type: "dock",
}, },
{ {
...@@ -809,18 +757,18 @@ function getColmnMapping() { ...@@ -809,18 +757,18 @@ function getColmnMapping() {
type: "dock", type: "dock",
}, },
{ {
title: i18n.$t("订舱公司"), title: i18n.$t("航空公司"),
key: "spaceCompanyId", key: "airlineCompanyId",
type: "supplier", type: "supplier",
}, },
{ {
title: i18n.$t("预计驳船时间"), title: i18n.$t("Shipper"),
key: "bargeTime", key: "shipperId",
type: "date", type: "supplier",
}, },
{ {
title: i18n.$t("预计开船时间"), title: i18n.$t("预计起飞时间"),
key: "sailTime", key: "flyTime",
type: "date", type: "date",
}, },
{ {
......
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