Commit b3e2bdb5 authored by huhaiqing's avatar huhaiqing

海运出货修改

parent bd6a558e
const statusName = new Map();
statusName.set(11, "未订舱");
statusName.set(12, "已订舱");
statusName.set(21, "未预装");
statusName.set(22, "预装审核中");
statusName.set(23, "预装审核失败");
statusName.set(24, "预装审核成功");
statusName.set(31, "未派车");
statusName.set(32, "已派车");
statusName.set(41, "未装柜");
statusName.set(42, "装柜中");
statusName.set(43, "已装柜、待封柜");
statusName.set(44, "封柜审核中");
statusName.set(45, "封柜审核失败");
statusName.set(46, "封柜审核成功");
statusName.set(51, "未报关");
statusName.set(52, "报关中");
statusName.set(53, "已报关");
statusName.set(61, "未配船");
statusName.set(62, "已配船");
statusName.set(71, "未提单补料");
statusName.set(72, "已提单补料");
statusName.set(81, "未驳船");
statusName.set(82, "已驳船");
statusName.set(91, "未起运");
statusName.set(92, "已起运");
statusName.set(101, "未上传");
statusName.set(102, "已上传");
statusName.set(111, "未清关文件");
statusName.set(112, "已清关文件");
statusName.set(121, "未到港");
statusName.set(122, "已到港");
statusName.set(131, "未清关");
statusName.set(132, "已清关");
statusName.set(141, "未卸柜");
statusName.set(142, "卸柜中");
statusName.set(143, "卸柜审核中");
statusName.set(144, "卸柜审核失败");
statusName.set(145, "卸柜审核成功");
statusName.set(146, "已卸柜");
statusName.set(151, "未结算");
statusName.set(152, "结算中");
statusName.set(153, "已结算");
const seaBaseData = [
[
{
title: "订舱",
imgSrc: {
start: require("@/assets/images/shipping/dc-start.png"),
end: require("@/assets/images/shipping/dc-end.png"),
},
type: "booking", // 类型
/**
* 订舱状态:11、未订舱;12、已订舱
*/
voName: "bookSeaInfo", // 订舱对象vo
keyName: "bkStatus",
status: {
start: [11],
wait: [],
end: [12],
},
},
],
[
{
title: "预装",
imgSrc: {
start: require("@/assets/images/shipping/yz-start.png"),
wait: require("@/assets/images/shipping/yz-wait.png"),
end: require("@/assets/images/shipping/yz-end.png"),
},
type: "preinstall",
/**
* 预装状态:21、未预装;22、预装审核中;23、预装审核失败;24、预装审核成功
*/
voName: "preInstallInfo",
keyName: "prStatus",
status: {
start: [21],
wait: [22, 23],
end: [24],
},
},
{
title: "拖车",
imgSrc: {
start: require("@/assets/images/shipping/tc-start.png"),
wait: require("@/assets/images/shipping/tc-wait.png"),
end: require("@/assets/images/shipping/tc-end.png"),
},
type: "trailer",
/**
* 拖车状态:31、未派车;32、已派车
*/
voName: "trailerInfo",
keyName: "tlStatus",
status: {
start: [31],
wait: [],
end: [32],
},
},
{
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: "装柜",
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",
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功
*/
voName: "cabinetInfo",
keyName: "ldStatus",
status: {
start: [41],
wait: [42, 43, 44, 45],
end: [46],
},
},
],
[
{
title: "报关",
imgSrc: {
start: require("@/assets/images/shipping/bg-start.png"),
wait: require("@/assets/images/shipping/bg-wait.png"),
end: require("@/assets/images/shipping/bg-end.png"),
},
type: "cusDeclaration",
voName: "customsInfo",
/**
*报关状态:51、未报关;52、报关中;53、已报关
*/
keyName: "dcStatus",
status: {
start: [51],
wait: [52],
end: [53],
},
},
{
title: "配船",
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",
/**
* 配船状态:61、未配船;62、已配船
*/
voName: "shipConfigInfo",
keyName: "saStatus",
status: {
start: [61],
wait: [],
end: [62],
},
},
{
title: "提单补料",
imgSrc: {
start: require("@/assets/images/shipping/tdcl-start.png"),
wait: require("@/assets/images/shipping/tdcl-wait.png"),
end: require("@/assets/images/shipping/tdcl-end.png"),
},
type: "subMaterial",
/**
* 提单补料状态:71、未提单补料;72、已提单补料
*/
voName: "ladingBillInfo",
keyName: "blStatus",
status: {
start: [71],
wait: [],
end: [72],
},
},
],
[
{
title: "驳船",
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",
/**
* 驳船状态:81、未驳船;82、已驳船
*/
voName: "bargeInfo",
keyName: "bgStatus",
status: {
start: [81],
wait: [],
end: [82],
},
},
],
[
{
title: "起运",
imgSrc: {
start: require("@/assets/images/shipping/qy-start.png"),
wait: require("@/assets/images/shipping/qy-wait.png"),
end: require("@/assets/images/shipping/qy-end.png"),
},
type: "departure",
/**
* 起运状态:91、未起运;92、已起运
*/
voName: "shippingInfo",
keyName: "dtStatus",
status: {
start: [91],
wait: [],
end: [92],
},
},
],
[
{
title: "提单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",
/**
* 提单COPY状态:101、未上传;102、已上传
*/
voName: "ladingCopyInfo",
keyName: "cpStatus",
status: {
start: [101],
wait: [],
end: [102],
},
},
{
type: "clrDocument",
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
title: "清关文件",
/**
* 清关文件状态:111、未清关文件;112、已清关文件
*/
voName: "clearanceDocInfo",
keyName: "cdStatus",
status: {
start: [111],
wait: [],
end: [112],
},
},
],
[
{
title: "到港",
imgSrc: {
start: require("@/assets/images/shipping/dg-start.png"),
wait: require("@/assets/images/shipping/dg-wait.png"),
end: require("@/assets/images/shipping/dg-end.png"),
},
type: "arrival",
/**
* 到港状态:121、未到港;112、已到港
*/
voName: "arrivalInfo",
keyName: "apStatus",
status: {
start: [121],
wait: [],
end: [122],
},
},
],
[
{
title: "清关",
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
type: "cusClearance",
/**
* 清关状态:131、未清关;132、已清关
*/
voName: "clearanceInfo",
keyName: "clStatus",
status: {
start: [131],
wait: [],
end: [132],
},
},
],
[
{
title: "卸柜",
imgSrc: {
start: require("@/assets/images/shipping/xg-start.png"),
wait: require("@/assets/images/shipping/xg-wait.png"),
end: require("@/assets/images/shipping/xg-end.png"),
},
type: "unloading",
/**
* 卸柜状态:141、未卸柜;142、卸柜中;143、卸柜审核中;144、卸柜审核失败;145、卸柜审核成功;146、已卸柜
*/
voName: "cabinetUnloadInfo",
keyName: "ulStatus",
status: {
start: [141],
wait: [142, 143, 144, 145],
end: [146],
},
},
],
[
{
title: "结算",
imgSrc: {
start: require("@/assets/images/shipping/js-start.png"),
wait: require("@/assets/images/shipping/js-wait.png"),
end: require("@/assets/images/shipping/js-end.png"),
},
type: "settlement",
/**
* 结算状态:151、未结算;152、结算中;153、已结算
*/
voName: "settlementInfo",
keyName: "slStatus",
status: {
start: [151],
wait: [152],
end: [153],
},
},
],
];
export { statusName, seaBaseData };
......@@ -2,7 +2,7 @@
<div>
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item label="代理商Agent" prop="agentId">
<supplierSelect v-model="agentObj.agentId" placeholder="请选择代理商" v-bind="$attrs" />
<supplierSelect v-model="agentObj.agentId" placeholder="请选择代理商" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
</el-form>
<el-row class="operate-button">
......@@ -20,6 +20,7 @@ import supplierSelect from "./common/supplierSelect.vue";
*/
export default {
name: "agent",
inheritAttrs: false,
components: { supplierSelect },
data() {
return {
......
......@@ -39,6 +39,7 @@ import { arrivalCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "arrival",
inheritAttrs: false,
components: {
regError,
},
......
......@@ -16,7 +16,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="通知人" label-width="80px">
<userSelect v-model="bargeObj.notifyUser" placeholder="请选择通知人" v-bind="$attrs" />
<userSelect v-model="bargeObj.notifyUser" placeholder="请选择通知人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
</el-col>
</el-row>
......@@ -43,6 +43,7 @@ import userSelect from "./common/userSelect.vue";
*/
export default {
name: "barge",
inheritAttrs: false,
components: { userSelect },
data() {
return {
......
......@@ -22,6 +22,7 @@ import { ladingCopyCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "blCopy",
inheritAttrs: false,
data() {
return {
// 提单copy对象
......
......@@ -5,19 +5,19 @@
<el-input v-model="bookingObj.sono" placeholder="请输入SO NO."></el-input>
</el-form-item>
<el-form-item label="船公司类型">
<supplierSelect v-model="bookingObj.shipCompanyType" :companyType="'9'" placeholder="请选择船公司类型" v-bind="$attrs" />
<supplierSelect v-model="bookingObj.shipCompanyType" :companyType="'9'" placeholder="请选择船公司类型" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
<el-form-item label="驳船港">
<dockSelect v-model="bookingObj.bargePort" placeholder="请选择驳船港" v-bind="$attrs" />
<dockSelect v-model="bookingObj.bargePort" placeholder="请选择驳船港" :allDocks="this.$attrs.allDocks" />
</el-form-item>
<el-form-item label="大船港">
<dockSelect v-model="bookingObj.bigPort" placeholder="请选择大船港" v-bind="$attrs" />
<dockSelect v-model="bookingObj.bigPort" placeholder="请选择大船港" :allDocks="this.$attrs.allDocks" />
</el-form-item>
<el-form-item label="目的港">
<dockSelect v-model="bookingObj.destPort" placeholder="请选择目的港" v-bind="$attrs" />
<dockSelect v-model="bookingObj.destPort" placeholder="请选择目的港" :allDocks="this.$attrs.allDocks" />
</el-form-item>
<el-form-item label="订舱公司">
<supplierSelect v-model="bookingObj.spaceCompany" :companyType="'1'" placeholder="请选择订舱公司" v-bind="$attrs" />
<supplierSelect v-model="bookingObj.spaceCompany" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
<el-form-item label="预计驳船时间" prop="bargeTime">
<el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker>
......@@ -31,7 +31,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="通知人" label-width="80px">
<userSelect v-model="bookingObj.feedTimePerson1" placeholder="请选择通知人" v-bind="$attrs" />
<userSelect v-model="bookingObj.feedTimePerson1" placeholder="请选择通知人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
</el-col>
</el-row>
......@@ -44,7 +44,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="通知人" label-width="80px">
<userSelect v-model="bookingObj.feedTimePerson2" placeholder="请选择通知人" v-bind="$attrs" />
<userSelect v-model="bookingObj.feedTimePerson2" placeholder="请选择通知人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
</el-col>
</el-row>
......@@ -57,7 +57,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="通知人" label-width="80px">
<userSelect v-model="bookingObj.feedTimePerson3" placeholder="请选择通知人" v-bind="$attrs" />
<userSelect v-model="bookingObj.feedTimePerson3" placeholder="请选择通知人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
</el-col>
</el-row>
......@@ -70,7 +70,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="通知人" label-width="80px">
<userSelect v-model="bookingObj.feedTimePerson4" placeholder="请选择通知人" v-bind="$attrs" />
<userSelect v-model="bookingObj.feedTimePerson4" placeholder="请选择通知人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
</el-col>
</el-row>
......@@ -94,6 +94,7 @@ import userSelect from "./common/userSelect.vue";
*/
export default {
name: "booking",
inheritAttrs: false,
components: {
supplierSelect,
dockSelect,
......
......@@ -44,6 +44,7 @@ import startPacking from "./startPacking.vue";
*/
export default {
name: "cabinet",
inheritAttrs: false,
components: { startPacking },
props: {
boxId: String,
......
......@@ -77,6 +77,7 @@ import { clearanceDocCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "clrDocument",
inheritAttrs: false,
data() {
return {
// 清关文件对象
......
......@@ -10,8 +10,10 @@
*/
export default {
name: "dockSelect",
inheritAttrs: false,
props: {
value: Number,
allDocks: Array,
},
model: {
prop: "value",
......@@ -24,7 +26,7 @@ export default {
},
computed: {
getDock() {
return this.$attrs.allDocks;
return this.allDocks;
},
},
methods: {
......
......@@ -13,6 +13,7 @@ export default {
props: {
companyType: String,
value: Number,
allSupplier: Array,
},
model: {
prop: "value",
......@@ -25,8 +26,8 @@ export default {
},
computed: {
getSuppliers() {
if (!this.companyType) return this.$attrs.allSupplier;
return this.$attrs.allSupplier.filter((item) =>
if (!this.companyType) return this.allSupplier;
return this.allSupplier.filter((item) =>
item.companyTypes.includes(this.companyType)
);
},
......
......@@ -10,8 +10,10 @@
*/
export default {
name: "userSelect",
inheritAttrs: false,
props: {
value: Number,
allUsers: Array,
},
model: {
prop: "value",
......@@ -24,7 +26,7 @@ export default {
},
computed: {
getUser() {
return this.$attrs.allUsers;
return this.allUsers;
},
},
methods: {
......
......@@ -35,6 +35,7 @@ import { clearanceCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "cusClearance",
inheritAttrs: false,
components: {
regError,
},
......
......@@ -136,6 +136,7 @@
*/
export default {
name: "cusDeclaration",
inheritAttrs: false,
data() {
return {
// 报关方式
......
......@@ -37,6 +37,7 @@ import { shippingCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "departure",
inheritAttrs: false,
components: { regError },
data() {
return {
......
......@@ -248,7 +248,7 @@
<el-row>
<el-form ref="operatorForm" :model="operatorData" size="small" :inline="true" label-width="120px" :rules="rules">
<el-form-item label="目的地操作员" prop="operator">
<userSelect v-model="operatorData.operator" placeholder="请选择目的地操作员" v-bind="$attrs" size="small" />
<userSelect v-model="operatorData.operator" placeholder="请选择目的地操作员" :allUsers="this.$attrs.allUsers" size="small" />
</el-form-item>
</el-form>
</el-row>
......@@ -278,6 +278,7 @@ import userSelect from "./common/userSelect.vue";
*/
export default {
name: "preinstall",
inheritAttrs: false,
components: { userSelect },
data() {
return {
......
......@@ -42,6 +42,7 @@
*/
export default {
name: "regError",
inheritAttrs: false,
data() {
return {
// 异常对象
......
......@@ -24,6 +24,7 @@ import { settlementCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "settlement",
inheritAttrs: false,
data() {
return {
// 结算对象
......
......@@ -26,6 +26,7 @@ import { shipConfigure, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "ship",
inheritAttrs: false,
props: {
shipmentObj: Object,
},
......
......@@ -2,7 +2,7 @@
<div>
<el-form ref="subMaterialForm" :model="subMaterialObj" label-width="140px">
<el-form-item label="代理商AGENT">
<supplierSelect v-model="subMaterialObj.agentId" placeholder="请选择供应商" v-bind="$attrs" />
<supplierSelect v-model="subMaterialObj.agentId" placeholder="请选择供应商" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
<el-form-item label="提单号M/BL NO." class="two-element">
<el-input v-model="subMaterialObj.blMblNo" placeholder="请输入提单号"></el-input>
......@@ -12,22 +12,22 @@
<el-input v-model="subMaterialObj.soNo" placeholder="请输入SO NO"></el-input>
</el-form-item>
<el-form-item label="装货港">
<dockSelect v-model="subMaterialObj.startPortId" placeholder="请选择装货港" v-bind="$attrs" />
<dockSelect v-model="subMaterialObj.startPortId" placeholder="请选择装货港" :allDocks="this.$attrs.allDocks" />
</el-form-item>
<el-form-item label="目的港">
<dockSelect v-model="subMaterialObj.destPortId" placeholder="请选择目的港" v-bind="$attrs" />
<dockSelect v-model="subMaterialObj.destPortId" placeholder="请选择目的港" :allDocks="this.$attrs.allDocks" />
</el-form-item>
<el-form-item label="船公司">
<supplierSelect v-model="subMaterialObj.shipCompanyId" :companyType="'9'" placeholder="请选择船公司" v-bind="$attrs" />
<supplierSelect v-model="subMaterialObj.shipCompanyId" :companyType="'9'" placeholder="请选择船公司" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
<el-form-item label="托运人">
<userSelect v-model="subMaterialObj.shipperId" placeholder="请选择托运人" v-bind="$attrs" />
<userSelect v-model="subMaterialObj.shipperId" placeholder="请选择托运人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
<el-form-item label="收货人">
<userSelect v-model="subMaterialObj.consigneeId" placeholder="请选择收货人" v-bind="$attrs" />
<userSelect v-model="subMaterialObj.consigneeId" placeholder="请选择收货人" :allUsers="this.$attrs.allUsers" />
</el-form-item>
<el-form-item label="通知方">
<userSelect v-model="subMaterialObj.notifyingId" placeholder="请选择通知方" v-bind="$attrs" />
<userSelect v-model="subMaterialObj.notifyingId" placeholder="请选择通知方" :allUsers="this.$attrs.allUsers" />
</el-form-item>
<el-form-item label="Mark & No.">
<el-input v-model="subMaterialObj.markNo"></el-input>
......@@ -83,6 +83,7 @@ import { billCreate, serviceMsg } from "@/api/ecw/boxSea";
*/
export default {
name: "subMaterial",
inheritAttrs: false,
components: { supplierSelect, dockSelect, userSelect },
props: {
shipmentObj: Object,
......
......@@ -7,7 +7,7 @@
</el-select>
</el-form-item>
<el-form-item label="拖车公司">
<supplierSelect v-model="trailerObj.tlCompanyId" :companyType="'4'" placeholder="请选择拖车公司" v-bind="$attrs" />
<supplierSelect v-model="trailerObj.tlCompanyId" :companyType="'4'" placeholder="请选择拖车公司" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
<el-form-item label="拖车时间" prop="tlTime">
<el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="trailerObj.tlTime"></el-date-picker>
......@@ -43,6 +43,7 @@ import supplierSelect from "./common/supplierSelect.vue";
* 拖车
*/
export default {
inheritAttrs: false,
name: "trailer",
components: { supplierSelect },
data() {
......
......@@ -35,6 +35,7 @@ import startUnloading from "./startUnloading.vue";
*/
export default {
name: "unloading",
inheritAttrs: false,
components: { startUnloading },
data() {
return {
......
......@@ -4,18 +4,19 @@
<el-scrollbar :vertical="true" viewClass="shipping-chart">
<div v-for="(nodes,index) in seaBaseData" :key="index" class="chart-nodes">
<div class="node-area">
<div v-for="node in nodes" :key="node.title" @click="nodeClick(node)" class="node-div">
<div v-for="node in nodes" :key="node.title" @click="nodeClick(index, node)" class="node-div">
<template v-if="!node.unNode">
<img :src="getImgSrc(node)" alt="">
<p>{{node.title}}</p>
</template>
<template v-else-if="node.unNode">
<el-button type="primary" @click="nodeClick(node)" style="width:100px;">{{node.title}}</el-button>
<el-button type="primary" @click="nodeClick(index, node)" style="width:100px;">{{node.title}}</el-button>
</template>
</div>
</div>
<div class="arrow-area" v-if="index !== (seaBaseData.length-1)">
<img src="@/assets/images/shipping/jt-start.png" alt="">
<img src="@/assets/images/shipping/jt-start.png" alt="" v-if="index >= currIndex">
<img src="@/assets/images/shipping/jt-end.png" alt="" v-if="index < currIndex">
</div>
</div>
</el-scrollbar>
......@@ -50,6 +51,7 @@ import settlementWidget from "./nodePage/settlement.vue";
*/
export default {
name: "shippingChart",
inheritAttrs: false,
components: {
bookingWidget,
trailerWidget,
......@@ -83,6 +85,10 @@ export default {
},
// 当前组件
currentComponent: "",
// 当前步骤节点坐标
currIndex: 0,
// 当前步骤节点状态
currNodeStatus: "",
};
},
created() {},
......@@ -92,7 +98,11 @@ export default {
this.$set(this.dialogConfig, "dialogVisible", false);
},
/** 节点点击 */
nodeClick(node) {
nodeClick(currIndex, node) {
if (currIndex > this.currIndex) {
this.$message.error("请先完成上一步");
return;
}
this.currentComponent = `${node.type}Widget`;
this.$set(this.dialogConfig, "width", "500px");
this.$set(this.dialogConfig, "title", node.title);
......@@ -124,10 +134,14 @@ export default {
},
},
watch: {
/* 监听发货对象 */
shipmentObj(val) {
// 迭代每个节点
for (const nodes of this.seaBaseData) {
for (const node of nodes) {
for (let i = 0; i < this.seaBaseData.length; i++) {
const nodes = this.seaBaseData[i];
let nodeIndex = 0;
for (let j = 0; j < nodes.length; j++) {
const node = nodes[j];
const { keyName, voName, status } = node;
if (!keyName) continue;
const { start, wait, end } = status;
......@@ -138,18 +152,32 @@ export default {
if (start.includes(val[keyName]) && val[voName]) {
node.currStatus = "wait";
this.currNodeStatus = val[keyName];
}
if (wait.includes(val[keyName])) {
node.currStatus = "wait";
this.currNodeStatus = val[keyName];
}
if (end.includes(val[keyName])) {
node.currStatus = "end";
this.currNodeStatus = val[keyName];
// 已完成节点个数
++nodeIndex;
}
}
// 如果相等标识改步骤已完成
if (nodeIndex === nodes.length) {
// 加1表示为已完成步骤后一步
this.currIndex = i + 1;
}
}
},
/* 监听当前状态 */
currNodeStatus(val) {
this.$emit("setStatus", val);
},
},
};
</script>
......
......@@ -21,6 +21,7 @@ import dayjs from "dayjs";
export default {
name: "seaStepDetail",
inheritAttrs: false,
props: {
shipmentObj: Object,
seaBaseData: Array,
......@@ -101,6 +102,7 @@ export default {
{
title: "拖车时间",
key: "tlTime",
type: "date",
},
{
title: "车牌",
......
......@@ -19,12 +19,14 @@
<el-descriptions-item label="目的地">
{{importCityName(shipmentObj.destWarehouseId)}}
</el-descriptions-item>
<el-descriptions-item label="状态"></el-descriptions-item>
<el-descriptions-item label="状态">
{{statusLabel}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<!-- 海运流程图 -->
<seaProcess :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" />
<seaProcess :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" @setStatus="setStatus" />
<!-- 海运步骤图 -->
<seaStepDetail :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" />
......@@ -41,6 +43,7 @@ import { getWarehouseList } from "@/api/ecw/warehouse";
import { getSupplierPage } from "@/api/ecw/supplier";
import { getDockPage } from "@/api/ecw/dock";
import { listUser } from "@/api/system/user";
import { statusName, seaBaseData } from "./constant";
/**
* 海运操作主页面
......@@ -65,325 +68,9 @@ export default {
// 用户
allUsers: [],
// 流程图节点
seaBaseData: [
[
{
title: "订舱",
imgSrc: {
start: require("@/assets/images/shipping/dc-start.png"),
end: require("@/assets/images/shipping/dc-end.png"),
},
type: "booking", // 类型
/**
* 订舱状态:11、未订舱;12、已订舱
*/
voName: "bookSeaInfo", // 订舱对象vo
keyName: "bkStatus",
status: {
start: [11],
wait: [],
end: [12],
},
},
],
[
{
title: "预装",
imgSrc: {
start: require("@/assets/images/shipping/yz-start.png"),
wait: require("@/assets/images/shipping/yz-wait.png"),
end: require("@/assets/images/shipping/yz-end.png"),
},
type: "preinstall",
/**
* 预装状态:21、未预装;22、预装审核中;23、预装审核失败;24、预装审核成功
*/
voName: "preInstallInfo",
keyName: "prStatus",
status: {
start: [21],
wait: [22, 23],
end: [24],
},
},
{
title: "拖车",
imgSrc: {
start: require("@/assets/images/shipping/tc-start.png"),
wait: require("@/assets/images/shipping/tc-wait.png"),
end: require("@/assets/images/shipping/tc-end.png"),
},
type: "trailer",
/**
* 拖车状态:31、未派车;32、已派车
*/
voName: "trailerInfo",
keyName: "tlStatus",
status: {
start: [31],
wait: [],
end: [32],
},
},
{
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: "装柜",
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",
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功
*/
voName: "cabinetInfo",
keyName: "ldStatus",
status: {
start: [41],
wait: [42, 43, 44, 45],
end: [46],
},
},
],
[
{
title: "报关",
imgSrc: {
start: require("@/assets/images/shipping/bg-start.png"),
wait: require("@/assets/images/shipping/bg-wait.png"),
end: require("@/assets/images/shipping/bg-end.png"),
},
type: "cusDeclaration",
voName: "customsInfo",
/**
*报关状态:51、未报关;52、报关中;53、已报关
*/
keyName: "dcStatus",
status: {
start: [51],
wait: [52],
end: [53],
},
},
{
title: "配船",
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",
/**
* 配船状态:61、未配船;62、已配船
*/
voName: "shipConfigInfo",
keyName: "saStatus",
status: {
start: [61],
wait: [],
end: [62],
},
},
{
title: "提单补料",
imgSrc: {
start: require("@/assets/images/shipping/tdcl-start.png"),
wait: require("@/assets/images/shipping/tdcl-wait.png"),
end: require("@/assets/images/shipping/tdcl-end.png"),
},
type: "subMaterial",
/**
* 提单补料状态:71、未提单补料;72、已提单补料
*/
voName: "ladingBillInfo",
keyName: "blStatus",
status: {
start: [71],
wait: [],
end: [72],
},
},
],
[
{
title: "驳船",
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",
/**
* 驳船状态:81、未驳船;82、已驳船
*/
voName: "bargeInfo",
keyName: "bgStatus",
status: {
start: [81],
wait: [],
end: [82],
},
},
],
[
{
title: "起运",
imgSrc: {
start: require("@/assets/images/shipping/qy-start.png"),
wait: require("@/assets/images/shipping/qy-wait.png"),
end: require("@/assets/images/shipping/qy-end.png"),
},
type: "departure",
/**
* 起运状态:91、未起运;92、已起运
*/
voName: "shippingInfo",
keyName: "dtStatus",
status: {
start: [91],
wait: [],
end: [92],
},
},
],
[
{
title: "提单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",
/**
* 提单COPY状态:101、未上传;102、已上传
*/
voName: "ladingCopyInfo",
keyName: "cpStatus",
status: {
start: [101],
wait: [],
end: [102],
},
},
{
type: "clrDocument",
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
title: "清关文件",
/**
* 清关文件状态:111、未清关文件;112、已清关文件
*/
voName: "clearanceDocInfo",
keyName: "cdStatus",
status: {
start: [111],
wait: [],
end: [112],
},
},
],
[
{
title: "到港",
imgSrc: {
start: require("@/assets/images/shipping/dg-start.png"),
wait: require("@/assets/images/shipping/dg-wait.png"),
end: require("@/assets/images/shipping/dg-end.png"),
},
type: "arrival",
/**
* 到港状态:121、未到港;112、已到港
*/
voName: "arrivalInfo",
keyName: "apStatus",
status: {
start: [121],
wait: [],
end: [122],
},
},
],
[
{
title: "清关",
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
type: "cusClearance",
/**
* 清关状态:131、未清关;132、已清关
*/
voName: "clearanceInfo",
keyName: "clStatus",
status: {
start: [131],
wait: [],
end: [132],
},
},
],
[
{
title: "卸柜",
imgSrc: {
start: require("@/assets/images/shipping/xg-start.png"),
wait: require("@/assets/images/shipping/xg-wait.png"),
end: require("@/assets/images/shipping/xg-end.png"),
},
type: "unloading",
/**
* 卸柜状态:141、未卸柜;142、卸柜中;143、卸柜审核中;144、卸柜审核失败;145、卸柜审核成功;146、已卸柜
*/
voName: "cabinetUnloadInfo",
keyName: "ulStatus",
status: {
start: [141],
wait: [142, 143, 144, 145],
end: [146],
},
},
],
[
{
title: "结算",
imgSrc: {
start: require("@/assets/images/shipping/js-start.png"),
wait: require("@/assets/images/shipping/js-wait.png"),
end: require("@/assets/images/shipping/js-end.png"),
},
type: "settlement",
/**
* 结算状态:151、未结算;152、结算中;153、已结算
*/
voName: "settlementInfo",
keyName: "slStatus",
status: {
start: [151],
wait: [152],
end: [153],
},
},
],
],
seaBaseData: seaBaseData,
// 状态
statusLabel: "",
};
},
created() {
......@@ -418,10 +105,15 @@ export default {
});
},
methods: {
/* 获取仓库 */
importCityName(id) {
var arr = this.warehouseList.filter((item) => item.id == id);
return arr.length > 0 ? arr[0].titleZh : "";
},
/* 设置状态值 */
setStatus(status) {
this.statusLabel = statusName.get(status);
},
},
};
</script>
......
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