Commit 4bc0e2fd authored by huhaiqing's avatar huhaiqing

海运出货操作开发

parent 4a94c0fb
......@@ -61,6 +61,50 @@ export function agentSet(data) {
});
}
/**
* 装柜
*
* @export
* @param {*} data
* @return {*}
*/
export function cabinetCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-cabinet/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-cabinet/create",
method: "post",
data,
});
}
/**
* 报关
*
* @export
* @param {*} data
* @return {*}
*/
export function customsCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-customs/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-customs/create",
method: "post",
data,
});
}
/**
* 配船
*
......@@ -85,6 +129,13 @@ export function shipConfigure(data) {
* @return {*}
*/
export function billCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-lading-bill/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-lading-bill/create",
method: "post",
......
......@@ -155,7 +155,10 @@ export const DICT_TYPE = {
ORDER_ABNORMAL_STATE:'order_abnormal_state',
TARGET_TYPE:'target_type',//部门业绩目标类型
// ========== 出货模块 ==========
BOX_SHIPMENT_TRAILER_STATUS: 'shipment_trailer_status', // 拖车状态
BOX_SHIPPING_TRAILER_STATUS: 'shipping_trailer_status', // 拖车状态
BOX_SHIPPING_CUSTOMS_TYPE: 'shipping_customs_type', // 报关方式
BOX_SHIPPING_DCCUSTOMS_STATUS: 'shipping_dcCustoms_status', // 报关放行状态
BOX_SHIPPING_CHECK_STATUS: 'shipping_check_status', // 查验状态
}
/**
......
......@@ -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="请选择代理商" :allSupplier="this.$attrs.allSupplier" />
<supplierSelect v-model="agentObj.agentId" :companyType="'1'" placeholder="请选择代理商" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
</el-form>
<el-row class="operate-button">
......@@ -15,6 +15,7 @@
<script>
import { agentSet, serviceMsg } from "@/api/ecw/boxSea";
import supplierSelect from "./common/supplierSelect.vue";
import { formatStringNumber } from "../utils";
/**
* agent
*/
......@@ -32,6 +33,13 @@ export default {
},
};
},
created() {
const { currNode, shipmentObj } = this.$attrs;
const voName = currNode.voName;
let oldData = { ...shipmentObj[voName] };
oldData = formatStringNumber(oldData, ["agentId"]);
this.agentObj = oldData;
},
methods: {
/** 提交 */
onSubmit() {
......@@ -42,15 +50,15 @@ export default {
...this.agentObj,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel();
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel() {
this.$emit("closeDialog");
cancel(type) {
this.$emit("closeDialog", type);
},
},
};
......
......@@ -66,6 +66,12 @@ export default {
},
};
},
created() {
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.$attrs.shipmentObj[voName] };
console.log(oldData)
this.bargeObj = oldData;
},
methods: {
/** 提交 */
onSubmit(operateType) {
......@@ -77,15 +83,15 @@ export default {
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel();
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel() {
this.$emit("closeDialog");
cancel(type) {
this.$emit("closeDialog", type);
},
},
};
......
<template>
<div>
<el-form ref="cabinetForm" :rules="rules" :model="cabinet" label-width="80px">
<el-form ref="cabinetForm" :rules="rules" :model="cabinetObj" label-width="80px">
<el-form-item label="到仓时间">
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinet.arrivalTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinetObj.ldInWarehouseTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="仓库">
<el-select v-model="cabinet.warehouse" placeholder="请选择仓库">
<el-select v-model="cabinetObj.ldWarehouseType" placeholder="请选择仓库" filterable>
<el-option v-for="warehouse in $attrs.warehouseList" :key="warehouse.id" :label="warehouse.titleZh" :value="warehouse.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="装柜时间" prop="time">
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinet.cabinetTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-form-item label="装柜时间" prop="ldBoxTime">
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinetObj.ldBoxTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="出仓时间">
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinet.outTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinetObj.ldOutWarehouseTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="装柜图片">
<el-upload action="" :limit="1" :file-list="cabinet.fileList">
<el-upload action="" :limit="1" :file-list="cabinetObj.ldPictures">
<el-button size="small" type="primary">选择文件</el-button>
</el-upload>
</el-form-item>
......@@ -28,8 +29,8 @@
<!-- 操作 -->
<el-row class="operate-button">
<el-button type="primary" @click="onSubmit">保存</el-button>
<el-button type="success">封柜</el-button>
<el-button type="primary" @click="onSubmit(1)">保存</el-button>
<el-button type="success" @click="onSubmit(2)">封柜</el-button>
<el-button @click="cancel">关闭</el-button>
<el-button type="danger" @click="startCabinet">开始装柜</el-button>
</el-row>
......@@ -38,6 +39,8 @@
<script>
import startPacking from "./startPacking.vue";
import { cabinetCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatDateStr } from "../../utils";
/**
* 装柜
......@@ -46,35 +49,48 @@ export default {
name: "cabinet",
inheritAttrs: false,
components: { startPacking },
props: {
boxId: String,
},
data() {
return {
// 弹窗
dialogVisible: false,
// 装柜对象
cabinet: {
fileList: [],
},
cabinetObj: {},
// 校验
rules: {
time: [{ required: true, message: "请选择时间", trigger: "change" }],
ldBoxTime: [{ required: true, message: "必填", trigger: "change" }],
},
};
},
created() {
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.$attrs.shipmentObj[voName] };
oldData = formatDateStr(oldData, [
"ldInWarehouseTime",
"ldBoxTime",
"ldOutWarehouseTime",
]);
this.cabinetObj = oldData;
},
methods: {
/** 提交 */
onSubmit() {
onSubmit(operateType) {
this.$refs["cabinetForm"].validate((valid) => {
if (valid) {
alert("submit!");
cabinetCreate({
shipmentId: this.$attrs.shipmentObj.id,
...this.cabinetObj,
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel() {
this.$emit("closeDialog");
cancel(type) {
this.$emit("closeDialog", type);
},
/** 开始装柜 */
startCabinet() {
......
......@@ -20,9 +20,7 @@ export default {
event: "change",
},
data() {
return {
supplier: [],
};
return {};
},
computed: {
getDock() {
......
......@@ -20,9 +20,7 @@ export default {
event: "change",
},
data() {
return {
supplier: [],
};
return {};
},
computed: {
getSuppliers() {
......
<template>
<el-select filterable :value="value" @change="change" v-bind="$attrs">
<el-option v-for="user in getUser" :key="user.id" :value="user.id">{{user.nickname}}</el-option>
<el-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option>
</el-select>
</template>
......@@ -20,9 +20,7 @@ export default {
event: "change",
},
data() {
return {
supplier: [],
};
return {};
},
computed: {
getUser() {
......
<template>
<div>
<el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclaration" 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>
<el-form-item label="柜重" prop="cabinetWeight">
<el-input v-model="cusDeclaration.cabinetWeight" placeholder="请输入柜重" clearable />
<el-form-item label="柜重" prop="dcBoxWgt">
<el-input v-model="cusDeclarationObj.dcBoxWgt" placeholder="请输入柜重" clearable />
</el-form-item>
<el-form-item label="货重" prop="cargoWeight">
<el-input v-model="cusDeclaration.cargoWeight" placeholder="请输入货重" clearable />
<el-form-item label="货重" prop="dcGoodsWgt">
<el-input v-model="cusDeclarationObj.dcGoodsWgt" placeholder="请输入货重" clearable />
</el-form-item>
<el-form-item label="VGM重量(柜重+货重)">
<el-input v-model="cusDeclaration.vgmWeight" placeholder="请输入VGM重量" clearable />
<el-form-item label="VGM重量">
<el-input v-model="cusDeclarationObj.dcVgmWgt" placeholder="请输入VGM重量" clearable />
</el-form-item>
<el-form-item label="报关方式" prop="method">
<el-select v-model="cusDeclaration.method" placeholder="请选择报关方式">
<el-option v-for="item in methods" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-form-item label="报关方式" prop="dcCustomsType">
<el-select v-model="cusDeclarationObj.dcCustomsType" placeholder="请选择报关方式">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CUSTOMS_TYPE)" :key="type.value" :label="type.label" :value="type.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="正常报关订单">
</el-form-item>
<el-form-item label="报关公司名称">
<el-select v-model="cusDeclaration.companyName" placeholder="请选择报关公司名称">
</el-select>
<supplierSelect v-model="cusDeclarationObj.dcCompanyId" :companyType="'2'" placeholder="请选择报关公司名称" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
<el-form-item label="截关时间">
<el-date-picker type="date" placeholder="请选择日期" v-model="cusDeclaration.cutTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="请选择日期" v-model="cusDeclarationObj.dcCutOffTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="状态">
<el-radio-group v-model="cusDeclaration.status">
<el-radio v-for="item in status" :key="item.value" :label="item.value">{{item.label}}</el-radio>
<el-radio-group v-model="cusDeclarationObj.dcCustomsStatus">
<el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_DCCUSTOMS_STATUS)" :key="item.value" :label="item.value">{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
<!-- 查验 -->
<div v-show="cusDeclaration.status === '3'">
<div v-show="cusDeclarationObj.dcCustomsStatus === '3'">
<el-form-item label="查验">
<el-radio-group v-model="cusDeclaration.check">
<el-radio v-for="item in checkItems" :key="item.value" :label="item.value">{{item.label}}</el-radio>
<el-radio-group v-model="cusDeclarationObj.dcCheckStatus">
<el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)" :key="item.value" :label="item.value">{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
</div>
<!-- 退场 -->
<div v-show="cusDeclaration.check === '1' || cusDeclaration.check === '2'">
<div v-show="cusDeclarationObj.dcCheckStatus === '1' || cusDeclarationObj.dcCheckStatus === '2'">
<el-form-item label="查验时间">
<el-date-picker type="date" placeholder="请选择日期" v-model="cusDeclaration.checkTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="请选择日期" v-model="cusDeclarationObj.dcCheckTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="查验前图片">
<el-upload action="" :limit="1" :file-list="cusDeclaration.checkFile">
<el-upload action="" :limit="1" :file-list="cusDeclarationObj.dcCheckPreImg">
<el-button size="small" type="primary">选择文件</el-button>
</el-upload>
</el-form-item>
<el-form-item label="新封条">
<el-input v-model="cusDeclaration.newSeal" placeholder="请输入新封条" clearable />
<el-input v-model="cusDeclarationObj.dcStripSeal" placeholder="请输入新封条" clearable />
</el-form-item>
</div>
<!-- 放行 -->
<el-form-item label="放行时间" v-show="cusDeclaration.status === '2' || cusDeclaration.check === '2'">
<el-date-picker type="date" placeholder="请选择日期" v-model="cusDeclaration.releaseTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-form-item label="放行时间" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCheckStatus === '2'">
<el-date-picker type="date" placeholder="请选择日期" v-model="cusDeclarationObj.dcPassTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="装箱单">
......@@ -70,8 +69,8 @@
</el-form>
<el-row class="operate-button">
<el-button type="primary">保存</el-button>
<el-button type="success" @click="onSubmit">提交</el-button>
<el-button type="primary" @click="onSubmit(1)">保存</el-button>
<el-button type="success" @click="onSubmit(2)">提交</el-button>
<el-button @click="cancel">关闭</el-button>
<el-button type="primary" @click="extraCost">额外费用</el-button>
</el-row>
......@@ -131,66 +130,25 @@
</template>
<script>
import supplierSelect from "./common/supplierSelect.vue";
import { customsCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatNumberString, formatDateStr } from "../utils";
/**
* 报关
*/
export default {
name: "cusDeclaration",
inheritAttrs: false,
components: { supplierSelect },
data() {
return {
// 报关方式
methods: [
{
value: "1",
label: "整柜买单报关",
},
{
value: "2",
label: "整柜正常报关",
},
{
value: "3",
label: "买单报关+正常报关",
},
],
// 状态
status: [
{
value: "1",
label: "报关中",
},
{
value: "2",
label: "放行",
},
{
value: "3",
label: "查验",
},
],
// check
checkItems: [
{
value: "1",
label: "退场",
},
{
value: "2",
label: "部分退场",
},
{
value: "3",
label: "查验后放行",
},
],
// 报关对象
cusDeclaration: {},
cusDeclarationObj: {},
// 校验
rules: {
cabinetWeight: [{ required: true, message: "必填", trigger: "change" }],
cargoWeight: [{ required: true, message: "必填", trigger: "change" }],
method: [{ required: true, message: "必填", trigger: "change" }],
dcBoxWgt: [{ required: true, message: "必填", trigger: "change" }],
dcGoodsWgt: [{ required: true, message: "必填", trigger: "change" }],
dcCustomsType: [{ required: true, message: "必填", trigger: "change" }],
},
// 弹窗配置
dialogConfig: {
......@@ -201,25 +159,41 @@ export default {
orderNo: "",
};
},
watch: {
"cusDeclaration.status"(val) {
if (val !== "3") {
this.$set(this.cusDeclaration, "check", "");
}
},
created() {
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.$attrs.shipmentObj[voName] };
oldData = formatDateStr(oldData, [
"dcCutOffTime",
"dcCheckTime",
"dcPassTime",
]);
oldData = formatNumberString(oldData, [
"dcCustomsType",
"dcCustomsStatus",
"dcCheckStatus",
]);
this.cusDeclarationObj = oldData;
},
methods: {
/** 提交 */
onSubmit() {
onSubmit(operateType) {
this.$refs["cusDeclarationForm"].validate((valid) => {
if (valid) {
alert("submit!");
customsCreate({
...this.cusDeclarationObj,
shipmentId: this.$attrs.shipmentObj.id,
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel() {
this.$emit("closeDialog");
cancel(type) {
this.$emit("closeDialog", type);
},
// 下载VGM
downloadVGM() {
......@@ -232,6 +206,35 @@ export default {
this.$set(this.dialogConfig, "title", "自编号");
this.$set(this.dialogConfig, "dialogVisible", true);
},
// 计算VGM重量
calcVGM(dcBoxWgt, dcGoodsWgt) {
let dcBoxWgtTmp = 0,
dcGoodsWgtTmp = 0;
if (!Number.isNaN(Number(dcBoxWgt))) {
dcBoxWgtTmp = Number(dcBoxWgt);
}
if (!Number.isNaN(Number(dcGoodsWgt))) {
dcGoodsWgtTmp = Number(dcGoodsWgt);
}
this.$set(
this.cusDeclarationObj,
"dcVgmWgt",
dcBoxWgtTmp + dcGoodsWgtTmp
);
},
},
watch: {
"cusDeclarationObj.dcBoxWgt"(dcBoxWgt) {
this.calcVGM(dcBoxWgt, this.cusDeclarationObj.dcGoodsWgt);
},
"cusDeclarationObj.dcGoodsWgt"(dcGoodsWgt) {
this.calcVGM(this.cusDeclarationObj.dcBoxWgt, dcGoodsWgt);
},
"cusDeclarationObj.dcCustomsStatus"(val) {
if (val !== "3") {
this.$set(this.cusDeclarationObj, "dcCheckStatus", "");
}
},
},
};
</script>
......
......@@ -261,7 +261,6 @@
<script>
import { DICT_TYPE } from "@/utils/dict";
import { getWarehouseList } from "@/api/ecw/warehouse";
import {
secGoodsList,
preloadPage,
......@@ -291,8 +290,6 @@ export default {
filingOps: this.getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL),
// 报关方式
declarationMethodOps: this.getDictDatas(DICT_TYPE.ECW_CUSTOMS_TYPE),
// 仓库
warehouseList: [],
// 查询标识
type: "",
// 已预装 遮罩层
......@@ -327,27 +324,25 @@ export default {
computed: {
/** 始发地 */
exportWarehouseList() {
return this.warehouseList.filter(
return this.$attrs.warehouseList.filter(
(item) => item.tradeType == "2" || item.type == "3"
);
},
/** 目的地 */
importWarehouseList() {
return this.warehouseList.filter(
return this.$attrs.warehouseList.filter(
(item) => item.tradeType == "1" || item.type == "3"
);
},
},
created() {
// 查询仓库数据
getWarehouseList().then((res) => (this.warehouseList = res.data));
// 查询待预装
this.handleQuery("toBePre");
},
methods: {
/* 获取城市 */
importCityName(id) {
var arr = this.warehouseList.filter((item) => item.id == id);
var arr = this.$attrs.warehouseList.filter((item) => item.id == id);
return arr.length > 0 ? arr[0].titleZh : "";
},
/* 选中行 */
......
......@@ -21,6 +21,7 @@
<script>
import { shipConfigure, serviceMsg } from "@/api/ecw/boxSea";
import { formatNumberString, constantDict } from "../utils";
/**
* 配船
*/
......@@ -35,22 +36,19 @@ export default {
// 配船对象
shipObj: {},
// 状态
status: [
{
value: "1",
label: "免配",
},
{
value: "2",
label: "已配",
},
],
status: constantDict.saExmtStatus,
// 校验
rules: {
saExmtStatus: [{ required: true, message: "必填", trigger: "change" }],
},
};
},
created() {
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] };
oldData = formatNumberString(oldData, ["saExmtStatus"]);
this.shipObj = oldData;
},
methods: {
/** 提交 */
onSubmit(operateType) {
......@@ -62,15 +60,15 @@ export default {
...this.shipObj,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel();
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel() {
this.$emit("closeDialog");
cancel(type) {
this.$emit("closeDialog", type);
},
},
};
......
......@@ -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="请选择供应商" :allSupplier="this.$attrs.allSupplier" />
<supplierSelect v-model="subMaterialObj.agentId" :companyType="'1'" 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>
......@@ -51,7 +51,7 @@
<el-input v-model="subMaterialObj.containerSealNo" placeholder="请输入柜号/封条"></el-input>
</el-form-item>
<el-form-item label="柜型">
{{getCabinetName(shipmentObj.cabinetId)}}
{{cabinetType}}
</el-form-item>
<el-form-item label="出单方式">
<el-radio-group v-model="subMaterialObj.issueType">
......@@ -78,6 +78,8 @@ import userSelect from "./common/userSelect.vue";
import { getUnitList } from "@/api/ecw/unit";
import { getCabinetPage } from "@/api/ecw/cabinet";
import { billCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatNumberString, constantDict } from "../utils";
/**
* 提单补料
*/
......@@ -107,6 +109,8 @@ export default {
],
// 单位
units: [],
// 柜型
cabinetType: "/",
};
},
created() {
......@@ -117,10 +121,19 @@ export default {
});
// 柜型
getCabinetPage(null).then((response) => {
this.cabinetList = response.data.list;
const cabinetList = response.data.list;
for (let index in cabinetList) {
let cabinetItem = cabinetList[index];
if (cabinetItem.id == this.shipmentObj.cabinetId) {
this.cabinetType = cabinetItem.name;
}
}
});
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] };
this.subMaterialObj = oldData;
},
computed: {},
methods: {
/** 提交 */
onSubmit(operateType) {
......@@ -132,25 +145,15 @@ export default {
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel();
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel() {
this.$emit("closeDialog");
},
/* 获取柜名 */
getCabinetName(cabinetId) {
for (let index in this.cabinetList) {
let cabinetItem = this.cabinetList[index];
if (cabinetItem.id == cabinetId) {
return cabinetItem.name;
}
}
return "/";
cancel(type) {
this.$emit("closeDialog", type);
},
},
};
......
......@@ -3,7 +3,7 @@
<el-form ref="trailerForm" :rules="rules" :model="trailerObj" label-width="120px">
<el-form-item label="状态">
<el-select v-model="trailerObj.tlContainerStatus" placeholder="请选择状态">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPMENT_TRAILER_STATUS)" :key="type.value" :label="type.label" :value="type.value"></el-option>
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_TRAILER_STATUS)" :key="type.value" :label="type.label" :value="type.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="拖车公司">
......
......@@ -18,6 +18,7 @@
<script>
import dayjs from "dayjs";
import * as _C from "./utils";
export default {
name: "seaStepDetail",
......@@ -126,6 +127,7 @@ export default {
{
title: "代理商",
key: "agentId",
type: "supplier",
},
{
title: "业务员",
......@@ -141,6 +143,7 @@ export default {
{
title: "仓库类型",
key: "ldWarehouseType",
type: "warehouse",
},
{
title: "装柜时间",
......@@ -161,10 +164,12 @@ export default {
{
title: "报关方式",
key: "dcCustomsType",
type: "shipping_customs_type",
},
{
title: "报关行公司",
key: "dcCompanyId",
type: "supplier",
},
{
title: "截关时间",
......@@ -174,10 +179,12 @@ export default {
{
title: "状态",
key: "dcCustomsStatus",
type: "shipping_dcCustoms_status",
},
{
title: "放行时间",
key: "dcPassTime",
type: "date",
},
{
title: "新封条",
......@@ -204,6 +211,7 @@ export default {
{
title: "已配/免配",
key: "saExmtStatus",
type: "saExmtStatus",
},
{
title: "业务员",
......@@ -214,6 +222,7 @@ export default {
{
title: "清关代理",
key: "agentId",
type: "supplier",
},
{
title: "提单品名",
......@@ -373,6 +382,15 @@ export default {
case "dock":
val = this.getDock(Number(val));
break;
case "warehouse":
val = this.getWarehouse(Number(val));
break;
case "shipping_customs_type":
val = this.getDict(type, String(val));
break;
case "saExmtStatus":
val = this.getConstant(type, String(val));
break;
}
}
return val;
......@@ -387,6 +405,21 @@ export default {
this.$attrs.allSupplier.find((item) => item.id === id)?.countryZh ?? id
);
},
getWarehouse(id) {
return (
this.$attrs.warehouseList.find((item) => item.id === id)?.titleZh ?? id
);
},
getDict(code, id) {
return (
this.getDictDatas(code).find((item) => item.value === id)?.label ?? id
);
},
getConstant(code, id) {
return (
_C.constantDict[code].find((item) => item.value === id)?.label ?? id
);
},
},
};
</script>
......
......@@ -26,10 +26,10 @@
</el-card>
<!-- 海运流程图 -->
<seaProcess :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" @setStatus="setStatus" @getBoxInfo="getBoxInfo" />
<seaProcess :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" :warehouseList="warehouseList" @setStatus="setStatus" @getBoxInfo="getBoxInfo" />
<!-- 海运步骤图 -->
<seaStepDetail :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" />
<seaStepDetail :seaBaseData="seaBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" :warehouseList="warehouseList" />
</el-col>
</el-row>
</div>
......
......@@ -379,6 +379,20 @@ const seaBaseData = [
],
];
const constantDict = {
// 配船状态
saExmtStatus: [
{
value: "1",
label: "免配",
},
{
value: "2",
label: "已配",
},
],
};
function formatStringNumber(obj, keys) {
for (const [key, value] of Object.entries(obj)) {
if (keys.includes(key) && !Number.isNaN(Number(value))) {
......@@ -409,6 +423,7 @@ function formatDateStr(obj, keys) {
export {
statusName,
seaBaseData,
constantDict,
formatStringNumber,
formatDateStr,
formatNumberString,
......
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