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 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px"> <el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item label="代理商Agent" prop="agentId"> <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-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
...@@ -20,6 +20,7 @@ import supplierSelect from "./common/supplierSelect.vue"; ...@@ -20,6 +20,7 @@ import supplierSelect from "./common/supplierSelect.vue";
*/ */
export default { export default {
name: "agent", name: "agent",
inheritAttrs: false,
components: { supplierSelect }, components: { supplierSelect },
data() { data() {
return { return {
......
...@@ -39,6 +39,7 @@ import { arrivalCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -39,6 +39,7 @@ import { arrivalCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "arrival", name: "arrival",
inheritAttrs: false,
components: { components: {
regError, regError,
}, },
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="通知人" label-width="80px"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -43,6 +43,7 @@ import userSelect from "./common/userSelect.vue"; ...@@ -43,6 +43,7 @@ import userSelect from "./common/userSelect.vue";
*/ */
export default { export default {
name: "barge", name: "barge",
inheritAttrs: false,
components: { userSelect }, components: { userSelect },
data() { data() {
return { return {
......
...@@ -22,6 +22,7 @@ import { ladingCopyCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -22,6 +22,7 @@ import { ladingCopyCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "blCopy", name: "blCopy",
inheritAttrs: false,
data() { data() {
return { return {
// 提单copy对象 // 提单copy对象
......
...@@ -5,19 +5,19 @@ ...@@ -5,19 +5,19 @@
<el-input v-model="bookingObj.sono" placeholder="请输入SO NO."></el-input> <el-input v-model="bookingObj.sono" placeholder="请输入SO NO."></el-input>
</el-form-item> </el-form-item>
<el-form-item label="船公司类型"> <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>
<el-form-item label="驳船港"> <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>
<el-form-item label="大船港"> <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>
<el-form-item label="目的港"> <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>
<el-form-item label="订舱公司"> <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>
<el-form-item label="预计驳船时间" prop="bargeTime"> <el-form-item label="预计驳船时间" prop="bargeTime">
<el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker> <el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="通知人" label-width="80px"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="通知人" label-width="80px"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="通知人" label-width="80px"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="通知人" label-width="80px"> <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-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -94,6 +94,7 @@ import userSelect from "./common/userSelect.vue"; ...@@ -94,6 +94,7 @@ import userSelect from "./common/userSelect.vue";
*/ */
export default { export default {
name: "booking", name: "booking",
inheritAttrs: false,
components: { components: {
supplierSelect, supplierSelect,
dockSelect, dockSelect,
......
...@@ -44,6 +44,7 @@ import startPacking from "./startPacking.vue"; ...@@ -44,6 +44,7 @@ import startPacking from "./startPacking.vue";
*/ */
export default { export default {
name: "cabinet", name: "cabinet",
inheritAttrs: false,
components: { startPacking }, components: { startPacking },
props: { props: {
boxId: String, boxId: String,
......
...@@ -77,6 +77,7 @@ import { clearanceDocCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -77,6 +77,7 @@ import { clearanceDocCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "clrDocument", name: "clrDocument",
inheritAttrs: false,
data() { data() {
return { return {
// 清关文件对象 // 清关文件对象
......
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
*/ */
export default { export default {
name: "dockSelect", name: "dockSelect",
inheritAttrs: false,
props: { props: {
value: Number, value: Number,
allDocks: Array,
}, },
model: { model: {
prop: "value", prop: "value",
...@@ -24,7 +26,7 @@ export default { ...@@ -24,7 +26,7 @@ export default {
}, },
computed: { computed: {
getDock() { getDock() {
return this.$attrs.allDocks; return this.allDocks;
}, },
}, },
methods: { methods: {
......
...@@ -13,6 +13,7 @@ export default { ...@@ -13,6 +13,7 @@ export default {
props: { props: {
companyType: String, companyType: String,
value: Number, value: Number,
allSupplier: Array,
}, },
model: { model: {
prop: "value", prop: "value",
...@@ -25,8 +26,8 @@ export default { ...@@ -25,8 +26,8 @@ export default {
}, },
computed: { computed: {
getSuppliers() { getSuppliers() {
if (!this.companyType) return this.$attrs.allSupplier; if (!this.companyType) return this.allSupplier;
return this.$attrs.allSupplier.filter((item) => return this.allSupplier.filter((item) =>
item.companyTypes.includes(this.companyType) item.companyTypes.includes(this.companyType)
); );
}, },
......
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
*/ */
export default { export default {
name: "userSelect", name: "userSelect",
inheritAttrs: false,
props: { props: {
value: Number, value: Number,
allUsers: Array,
}, },
model: { model: {
prop: "value", prop: "value",
...@@ -24,7 +26,7 @@ export default { ...@@ -24,7 +26,7 @@ export default {
}, },
computed: { computed: {
getUser() { getUser() {
return this.$attrs.allUsers; return this.allUsers;
}, },
}, },
methods: { methods: {
......
...@@ -35,6 +35,7 @@ import { clearanceCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -35,6 +35,7 @@ import { clearanceCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "cusClearance", name: "cusClearance",
inheritAttrs: false,
components: { components: {
regError, regError,
}, },
......
...@@ -136,6 +136,7 @@ ...@@ -136,6 +136,7 @@
*/ */
export default { export default {
name: "cusDeclaration", name: "cusDeclaration",
inheritAttrs: false,
data() { data() {
return { return {
// 报关方式 // 报关方式
......
...@@ -37,6 +37,7 @@ import { shippingCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -37,6 +37,7 @@ import { shippingCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "departure", name: "departure",
inheritAttrs: false,
components: { regError }, components: { regError },
data() { data() {
return { return {
......
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
<el-row> <el-row>
<el-form ref="operatorForm" :model="operatorData" size="small" :inline="true" label-width="120px" :rules="rules"> <el-form ref="operatorForm" :model="operatorData" size="small" :inline="true" label-width="120px" :rules="rules">
<el-form-item label="目的地操作员" prop="operator"> <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-item>
</el-form> </el-form>
</el-row> </el-row>
...@@ -278,6 +278,7 @@ import userSelect from "./common/userSelect.vue"; ...@@ -278,6 +278,7 @@ import userSelect from "./common/userSelect.vue";
*/ */
export default { export default {
name: "preinstall", name: "preinstall",
inheritAttrs: false,
components: { userSelect }, components: { userSelect },
data() { data() {
return { return {
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
*/ */
export default { export default {
name: "regError", name: "regError",
inheritAttrs: false,
data() { data() {
return { return {
// 异常对象 // 异常对象
......
...@@ -24,6 +24,7 @@ import { settlementCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -24,6 +24,7 @@ import { settlementCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "settlement", name: "settlement",
inheritAttrs: false,
data() { data() {
return { return {
// 结算对象 // 结算对象
......
...@@ -26,6 +26,7 @@ import { shipConfigure, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -26,6 +26,7 @@ import { shipConfigure, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "ship", name: "ship",
inheritAttrs: false,
props: { props: {
shipmentObj: Object, shipmentObj: Object,
}, },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<el-form ref="subMaterialForm" :model="subMaterialObj" label-width="140px"> <el-form ref="subMaterialForm" :model="subMaterialObj" label-width="140px">
<el-form-item label="代理商AGENT"> <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>
<el-form-item label="提单号M/BL NO." class="two-element"> <el-form-item label="提单号M/BL NO." class="two-element">
<el-input v-model="subMaterialObj.blMblNo" placeholder="请输入提单号"></el-input> <el-input v-model="subMaterialObj.blMblNo" placeholder="请输入提单号"></el-input>
...@@ -12,22 +12,22 @@ ...@@ -12,22 +12,22 @@
<el-input v-model="subMaterialObj.soNo" placeholder="请输入SO NO"></el-input> <el-input v-model="subMaterialObj.soNo" placeholder="请输入SO NO"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="装货港"> <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>
<el-form-item label="目的港"> <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>
<el-form-item label="船公司"> <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>
<el-form-item label="托运人"> <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>
<el-form-item label="收货人"> <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>
<el-form-item label="通知方"> <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>
<el-form-item label="Mark & No."> <el-form-item label="Mark & No.">
<el-input v-model="subMaterialObj.markNo"></el-input> <el-input v-model="subMaterialObj.markNo"></el-input>
...@@ -83,6 +83,7 @@ import { billCreate, serviceMsg } from "@/api/ecw/boxSea"; ...@@ -83,6 +83,7 @@ import { billCreate, serviceMsg } from "@/api/ecw/boxSea";
*/ */
export default { export default {
name: "subMaterial", name: "subMaterial",
inheritAttrs: false,
components: { supplierSelect, dockSelect, userSelect }, components: { supplierSelect, dockSelect, userSelect },
props: { props: {
shipmentObj: Object, shipmentObj: Object,
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="拖车公司"> <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>
<el-form-item label="拖车时间" prop="tlTime"> <el-form-item label="拖车时间" prop="tlTime">
<el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="trailerObj.tlTime"></el-date-picker> <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"; ...@@ -43,6 +43,7 @@ import supplierSelect from "./common/supplierSelect.vue";
* 拖车 * 拖车
*/ */
export default { export default {
inheritAttrs: false,
name: "trailer", name: "trailer",
components: { supplierSelect }, components: { supplierSelect },
data() { data() {
......
...@@ -35,6 +35,7 @@ import startUnloading from "./startUnloading.vue"; ...@@ -35,6 +35,7 @@ import startUnloading from "./startUnloading.vue";
*/ */
export default { export default {
name: "unloading", name: "unloading",
inheritAttrs: false,
components: { startUnloading }, components: { startUnloading },
data() { data() {
return { return {
......
...@@ -4,18 +4,19 @@ ...@@ -4,18 +4,19 @@
<el-scrollbar :vertical="true" viewClass="shipping-chart"> <el-scrollbar :vertical="true" viewClass="shipping-chart">
<div v-for="(nodes,index) in seaBaseData" :key="index" class="chart-nodes"> <div v-for="(nodes,index) in seaBaseData" :key="index" class="chart-nodes">
<div class="node-area"> <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"> <template v-if="!node.unNode">
<img :src="getImgSrc(node)" alt=""> <img :src="getImgSrc(node)" alt="">
<p>{{node.title}}</p> <p>{{node.title}}</p>
</template> </template>
<template v-else-if="node.unNode"> <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> </template>
</div> </div>
</div> </div>
<div class="arrow-area" v-if="index !== (seaBaseData.length-1)"> <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>
</div> </div>
</el-scrollbar> </el-scrollbar>
...@@ -50,6 +51,7 @@ import settlementWidget from "./nodePage/settlement.vue"; ...@@ -50,6 +51,7 @@ import settlementWidget from "./nodePage/settlement.vue";
*/ */
export default { export default {
name: "shippingChart", name: "shippingChart",
inheritAttrs: false,
components: { components: {
bookingWidget, bookingWidget,
trailerWidget, trailerWidget,
...@@ -83,6 +85,10 @@ export default { ...@@ -83,6 +85,10 @@ export default {
}, },
// 当前组件 // 当前组件
currentComponent: "", currentComponent: "",
// 当前步骤节点坐标
currIndex: 0,
// 当前步骤节点状态
currNodeStatus: "",
}; };
}, },
created() {}, created() {},
...@@ -92,7 +98,11 @@ export default { ...@@ -92,7 +98,11 @@ export default {
this.$set(this.dialogConfig, "dialogVisible", false); 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.currentComponent = `${node.type}Widget`;
this.$set(this.dialogConfig, "width", "500px"); this.$set(this.dialogConfig, "width", "500px");
this.$set(this.dialogConfig, "title", node.title); this.$set(this.dialogConfig, "title", node.title);
...@@ -124,10 +134,14 @@ export default { ...@@ -124,10 +134,14 @@ export default {
}, },
}, },
watch: { watch: {
/* 监听发货对象 */
shipmentObj(val) { shipmentObj(val) {
// 迭代每个节点 // 迭代每个节点
for (const nodes of this.seaBaseData) { for (let i = 0; i < this.seaBaseData.length; i++) {
for (const node of nodes) { 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; const { keyName, voName, status } = node;
if (!keyName) continue; if (!keyName) continue;
const { start, wait, end } = status; const { start, wait, end } = status;
...@@ -138,18 +152,32 @@ export default { ...@@ -138,18 +152,32 @@ export default {
if (start.includes(val[keyName]) && val[voName]) { if (start.includes(val[keyName]) && val[voName]) {
node.currStatus = "wait"; node.currStatus = "wait";
this.currNodeStatus = val[keyName];
} }
if (wait.includes(val[keyName])) { if (wait.includes(val[keyName])) {
node.currStatus = "wait"; node.currStatus = "wait";
this.currNodeStatus = val[keyName];
} }
if (end.includes(val[keyName])) { if (end.includes(val[keyName])) {
node.currStatus = "end"; node.currStatus = "end";
this.currNodeStatus = val[keyName];
// 已完成节点个数
++nodeIndex;
} }
} }
// 如果相等标识改步骤已完成
if (nodeIndex === nodes.length) {
// 加1表示为已完成步骤后一步
this.currIndex = i + 1;
}
} }
}, },
/* 监听当前状态 */
currNodeStatus(val) {
this.$emit("setStatus", val);
},
}, },
}; };
</script> </script>
......
...@@ -21,6 +21,7 @@ import dayjs from "dayjs"; ...@@ -21,6 +21,7 @@ import dayjs from "dayjs";
export default { export default {
name: "seaStepDetail", name: "seaStepDetail",
inheritAttrs: false,
props: { props: {
shipmentObj: Object, shipmentObj: Object,
seaBaseData: Array, seaBaseData: Array,
...@@ -101,6 +102,7 @@ export default { ...@@ -101,6 +102,7 @@ export default {
{ {
title: "拖车时间", title: "拖车时间",
key: "tlTime", key: "tlTime",
type: "date",
}, },
{ {
title: "车牌", title: "车牌",
......
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