Commit 0e1f7431 authored by huhaiqing's avatar huhaiqing

海运操作开发

parent e4ff0ef7
...@@ -3,6 +3,12 @@ ...@@ -3,6 +3,12 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="运输方式" prop="transportType">
<el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small">
<el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="自编号" prop="selfNo"> <el-form-item label="自编号" prop="selfNo">
<el-input v-model="queryParams.selfNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.selfNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
...@@ -43,9 +49,10 @@ ...@@ -43,9 +49,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="运输方式" prop="transportType"> <el-form-item label="国家">
<el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small"> <el-select v-model="queryParams.countryId" placeholder="请选择国家">
<el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="item in countryList" :key="item.id" :label="item.titleZh" :value="item.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -154,6 +161,7 @@ ...@@ -154,6 +161,7 @@
import { deletebox, getbox, getboxPage, exportboxExcel } from "@/api/ecw/box"; import { deletebox, getbox, getboxPage, exportboxExcel } from "@/api/ecw/box";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
import { getWarehouseList } from "@/api/ecw/warehouse"; import { getWarehouseList } from "@/api/ecw/warehouse";
import { getListTree } from "@/api/ecw/region";
import costForm from "./costForm.vue"; import costForm from "./costForm.vue";
import regError from "./regError.vue"; import regError from "./regError.vue";
import editForm from "./editForm.vue"; import editForm from "./editForm.vue";
...@@ -202,6 +210,8 @@ export default { ...@@ -202,6 +210,8 @@ export default {
cabinetList: [], cabinetList: [],
warehouseList: [], warehouseList: [],
transportTypes: [], transportTypes: [],
//国家信息列表
countryList: [],
}; };
}, },
computed: { computed: {
...@@ -235,8 +245,15 @@ export default { ...@@ -235,8 +245,15 @@ export default {
this.cabinetList = response.data.list; this.cabinetList = response.data.list;
}); });
this.getList(); this.getList();
this.getCountryList();
}, },
methods: { methods: {
/* 国家 */
getCountryList() {
getListTree({ treeType: 1 }).then((response) => {
this.countryList = response.data;
});
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(boxBackVO.shippingChannelId)}} {{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> </el-descriptions-item> -->
<el-descriptions-item label="柜型"> <el-descriptions-item label="柜型">
{{cabinetLabel}} {{cabinetLabel}}
</el-descriptions-item> </el-descriptions-item>
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<el-button type="primary" @click="showOrder">订单列表</el-button> <el-button type="primary" @click="showOrder">订单列表</el-button>
</el-row> </el-row>
<div> <div v-if="boxBackVO.preInstallInfo && boxBackVO.preInstallInfo.applyReason">
<p>申请原因</p> <p>申请原因</p>
<div> <div>
{{boxBackVO.preInstallInfo ? boxBackVO.preInstallInfo.applyReason : ''}} {{boxBackVO.preInstallInfo.applyReason}}
</div> </div>
</div> </div>
...@@ -37,9 +37,9 @@ ...@@ -37,9 +37,9 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(boxBackVO.shippingChannelId)}} {{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> </el-descriptions-item> -->
<el-descriptions-item label="柜型"> <el-descriptions-item label="柜型">
{{cabinetLabel}} {{cabinetLabel}}
</el-descriptions-item> </el-descriptions-item>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-form-item label="订舱公司"> <el-form-item label="订舱公司">
<supplierSelect v-model="bookingObj.spaceCompanyId" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="bookingObj.spaceCompanyId" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" />
</el-form-item> </el-form-item>
<el-form-item label="预计驳船时间" prop="bargeTime"> <el-form-item label="预计驳船时间">
<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>
</el-form-item> </el-form-item>
...@@ -110,7 +110,6 @@ export default { ...@@ -110,7 +110,6 @@ export default {
bookingObj: {}, bookingObj: {},
// 校验 // 校验
rules: { rules: {
bargeTime: [{ required: true, message: "必填", trigger: "change" }],
sailTime: [{ required: true, message: "必填", trigger: "change" }], sailTime: [{ required: true, message: "必填", trigger: "change" }],
}, },
}; };
......
...@@ -68,7 +68,11 @@ export default { ...@@ -68,7 +68,11 @@ export default {
"ldBoxTime", "ldBoxTime",
"ldOutWarehouseTime", "ldOutWarehouseTime",
]); ]);
this.cabinetObj = oldData; this.cabinetObj = {
...oldData,
ldWarehouseType:
oldData.ldWarehouseType === 0 ? undefined : oldData.ldWarehouseType,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
...@@ -108,7 +108,11 @@ export default { ...@@ -108,7 +108,11 @@ export default {
"cdAgentlistType", "cdAgentlistType",
"cdSoncapType", "cdSoncapType",
]); ]);
this.cDocObj = oldData; this.cDocObj = {
...oldData,
cdOutBillType:
oldData.cdOutBillType === 0 ? undefined : oldData.cdOutBillType,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="dock in getDock" :key="dock.id" :label="dock.titleZh" :value="dock.id"></el-option> <el-option v-for="dock in getDock" :key="dock.id" :label="dock.titleZh" :value="dock.id"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="supplier in getSuppliers" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option> <el-option v-for="supplier in getSuppliers" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option> <el-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<div> <div>
<el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclarationObj" label-width="120px"> <el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclarationObj" label-width="120px">
<el-form-item label="单证要求">无返回 <el-button type="primary" style="margin-left:10px;" @click="downloadVGM">VGM声明</el-button> <el-form-item label="单证要求">
<template v-for="(item, index) in cusDeclarationObj.documentInfo">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item" :key="index" />
</template>
<el-button type="primary" style="margin-left:10px;" @click="downloadVGM">{{getButtonLabel(cusDeclarationObj.documentInfo)}}</el-button>
</el-form-item> </el-form-item>
<el-form-item label="柜重" prop="dcBoxWgt"> <el-form-item label="柜重" prop="dcBoxWgt">
<el-input v-model="cusDeclarationObj.dcBoxWgt" placeholder="请输入柜重" clearable /> <el-input v-model="cusDeclarationObj.dcBoxWgt" placeholder="请输入柜重" clearable />
...@@ -171,8 +175,12 @@ export default { ...@@ -171,8 +175,12 @@ export default {
}; };
}, },
created() { created() {
const voName = this.$attrs.currNode.voName; const { currNode, shipmentObj } = this.$attrs;
let oldData = { ...this.$attrs.shipmentObj[voName] }; const { voName } = currNode;
let oldData = {
...shipmentObj[voName],
documentInfo: shipmentObj.documentInfo?.split(",") ?? [],
};
oldData = formatDateStr(oldData, [ oldData = formatDateStr(oldData, [
"dcCutOffTime", "dcCutOffTime",
"dcCheckTime", "dcCheckTime",
...@@ -186,6 +194,10 @@ export default { ...@@ -186,6 +194,10 @@ export default {
this.cusDeclarationObj = oldData; this.cusDeclarationObj = oldData;
}, },
methods: { methods: {
getButtonLabel(documentInfo = []) {
const newList = Array.from(new Set(documentInfo));
return newList.length > 2 ? "混合报关" : "VGM声明";
},
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
this.$refs["cusDeclarationForm"].validate((valid) => { this.$refs["cusDeclarationForm"].validate((valid) => {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<userSelect v-model="subMaterialObj.notifyingId" placeholder="请选择通知方" :allUsers="this.$attrs.allUsers" /> <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" placeholder="请输入Mark & No."></el-input>
</el-form-item> </el-form-item>
<el-form-item label="包装数量与单位" class="two-element"> <el-form-item label="包装数量与单位" class="two-element">
<el-input v-model="subMaterialObj.packageNum" placeholder="请输入包装数量"></el-input> <el-input v-model="subMaterialObj.packageNum" placeholder="请输入包装数量"></el-input>
...@@ -124,7 +124,10 @@ export default { ...@@ -124,7 +124,10 @@ export default {
const voName = this.$attrs.currNode.voName; const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] }; let oldData = { ...this.shipmentObj[voName] };
oldData = formatNumberString(oldData, ["issueType"]); oldData = formatNumberString(oldData, ["issueType"]);
this.subMaterialObj = oldData; this.subMaterialObj = {
...oldData,
packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
...@@ -229,7 +229,8 @@ export default { ...@@ -229,7 +229,8 @@ export default {
.shipping-chart { .shipping-chart {
display: flex; display: flex;
padding: 10px 10px; padding: 10px 10px;
min-width: max-content; min-width: 1300px;
width: max-content;
.chart-nodes { .chart-nodes {
display: flex; display: flex;
......
...@@ -62,9 +62,13 @@ export default { ...@@ -62,9 +62,13 @@ export default {
case "billingMethod": case "billingMethod":
val = this.getConstant(type, String(val)); val = this.getConstant(type, String(val));
break; break;
case "user":
val = this.getUser(val);
break;
} }
} }
return val;
return val === 0 ? "" : val;
}, },
getSupplier(id) { getSupplier(id) {
return ( return (
...@@ -79,6 +83,11 @@ export default { ...@@ -79,6 +83,11 @@ export default {
this.$attrs.warehouseList.find((item) => item.id === id)?.titleZh ?? id this.$attrs.warehouseList.find((item) => item.id === id)?.titleZh ?? id
); );
}, },
getUser(id) {
return (
this.$attrs.allUsers.find((item) => item.id === id)?.nickname ?? id
);
},
getDict(code, id) { getDict(code, id) {
return ( return (
this.getDictDatas(code).find((item) => item.value === id)?.label ?? id this.getDictDatas(code).find((item) => item.value === id)?.label ?? id
......
...@@ -146,7 +146,7 @@ function seaBaseData() { ...@@ -146,7 +146,7 @@ function seaBaseData() {
/** /**
* 理货状态:2111、未理货;2112、已理货 * 理货状态:2111、未理货;2112、已理货
*/ */
voName: "tyTime", voName: "tallyInfo",
keyName: "tyStatus", keyName: "tyStatus",
status: { status: {
start: [2111], start: [2111],
...@@ -535,6 +535,17 @@ function getColmnMapping() { ...@@ -535,6 +535,17 @@ function getColmnMapping() {
key: "operator", key: "operator",
}, },
], ],
tallyInfo: [
{
title: "完成理货时间",
key: "tyTime",
type: "datetime",
},
{
title: "业务员",
key: "tyOperator",
},
],
agentInfo: [ agentInfo: [
{ {
title: "代理商", title: "代理商",
...@@ -643,6 +654,7 @@ function getColmnMapping() { ...@@ -643,6 +654,7 @@ function getColmnMapping() {
{ {
title: "通知方", title: "通知方",
key: "notifyingId", key: "notifyingId",
type: "user",
}, },
{ {
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