Commit 79be3706 authored by dcy's avatar dcy

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

parents 45b2b77f 1ee25581
...@@ -61,6 +61,50 @@ export function agentSet(data) { ...@@ -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) { ...@@ -85,6 +129,13 @@ export function shipConfigure(data) {
* @return {*} * @return {*}
*/ */
export function billCreate(data) { export function billCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-lading-bill/update",
method: "put",
data,
});
}
return request({ return request({
url: "/ecw/box-lading-bill/create", url: "/ecw/box-lading-bill/create",
method: "post", method: "post",
......
...@@ -164,6 +164,15 @@ export function orderWarehouseInFinish(data){ ...@@ -164,6 +164,15 @@ export function orderWarehouseInFinish(data){
}) })
} }
// 退仓
export function rollbackApply(data){
return request({
url: '/order/order-warehouse-in/rollback-apply',
method: 'put',
data
})
}
//取消订单 //取消订单
export function cancelOrder(orderId){ export function cancelOrder(orderId){
return request({ return request({
...@@ -189,6 +198,7 @@ export function getMyOrderPage(query) { ...@@ -189,6 +198,7 @@ export function getMyOrderPage(query) {
}) })
} }
// 创建提货 // 创建提货
export function createOrderPickup(data){ export function createOrderPickup(data){
return request({ return request({
......
...@@ -155,7 +155,10 @@ export const DICT_TYPE = { ...@@ -155,7 +155,10 @@ export const DICT_TYPE = {
ORDER_ABNORMAL_STATE:'order_abnormal_state', ORDER_ABNORMAL_STATE:'order_abnormal_state',
TARGET_TYPE:'target_type',//部门业绩目标类型 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 @@ ...@@ -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="请选择代理商" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="agentObj.agentId" :companyType="'1'" 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">
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<script> <script>
import { agentSet, serviceMsg } from "@/api/ecw/boxSea"; import { agentSet, serviceMsg } from "@/api/ecw/boxSea";
import supplierSelect from "./common/supplierSelect.vue"; import supplierSelect from "./common/supplierSelect.vue";
import { formatStringNumber } from "../utils";
/** /**
* agent * agent
*/ */
...@@ -32,6 +33,13 @@ export default { ...@@ -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: { methods: {
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
...@@ -42,15 +50,15 @@ export default { ...@@ -42,15 +50,15 @@ export default {
...this.agentObj, ...this.agentObj,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel(); this.cancel("submit");
}); });
}); });
} }
}); });
}, },
/** 取消 */ /** 取消 */
cancel() { cancel(type) {
this.$emit("closeDialog"); this.$emit("closeDialog", type);
}, },
}, },
}; };
......
...@@ -66,6 +66,12 @@ export default { ...@@ -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: { methods: {
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
...@@ -77,15 +83,15 @@ export default { ...@@ -77,15 +83,15 @@ export default {
operateType, operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel(); this.cancel("submit");
}); });
}); });
} }
}); });
}, },
/** 取消 */ /** 取消 */
cancel() { cancel(type) {
this.$emit("closeDialog"); this.$emit("closeDialog", type);
}, },
}, },
}; };
......
<template> <template>
<div> <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-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>
<el-form-item label="仓库"> <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-select>
</el-form-item> </el-form-item>
<el-form-item label="装柜时间" prop="time"> <el-form-item label="装柜时间" prop="ldBoxTime">
<el-date-picker type="date" placeholder="请选择日期" v-model="cabinet.cabinetTime" value-format="yyyy-MM-dd"></el-date-picker> <el-date-picker type="date" placeholder="请选择日期" v-model="cabinetObj.ldBoxTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="出仓时间"> <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>
<el-form-item label="装柜图片"> <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-button size="small" type="primary">选择文件</el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
...@@ -28,8 +29,8 @@ ...@@ -28,8 +29,8 @@
<!-- 操作 --> <!-- 操作 -->
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit">保存</el-button> <el-button type="primary" @click="onSubmit(1)">保存</el-button>
<el-button type="success">封柜</el-button> <el-button type="success" @click="onSubmit(2)">封柜</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
<el-button type="danger" @click="startCabinet">开始装柜</el-button> <el-button type="danger" @click="startCabinet">开始装柜</el-button>
</el-row> </el-row>
...@@ -38,6 +39,8 @@ ...@@ -38,6 +39,8 @@
<script> <script>
import startPacking from "./startPacking.vue"; import startPacking from "./startPacking.vue";
import { cabinetCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatDateStr } from "../../utils";
/** /**
* 装柜 * 装柜
...@@ -46,35 +49,48 @@ export default { ...@@ -46,35 +49,48 @@ export default {
name: "cabinet", name: "cabinet",
inheritAttrs: false, inheritAttrs: false,
components: { startPacking }, components: { startPacking },
props: {
boxId: String,
},
data() { data() {
return { return {
// 弹窗 // 弹窗
dialogVisible: false, dialogVisible: false,
// 装柜对象 // 装柜对象
cabinet: { cabinetObj: {},
fileList: [],
},
// 校验 // 校验
rules: { 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: { methods: {
/** 提交 */ /** 提交 */
onSubmit() { onSubmit(operateType) {
this.$refs["cabinetForm"].validate((valid) => { this.$refs["cabinetForm"].validate((valid) => {
if (valid) { if (valid) {
alert("submit!"); cabinetCreate({
shipmentId: this.$attrs.shipmentObj.id,
...this.cabinetObj,
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel("submit");
});
});
} }
}); });
}, },
/** 取消 */ /** 取消 */
cancel() { cancel(type) {
this.$emit("closeDialog"); this.$emit("closeDialog", type);
}, },
/** 开始装柜 */ /** 开始装柜 */
startCabinet() { startCabinet() {
......
...@@ -20,9 +20,7 @@ export default { ...@@ -20,9 +20,7 @@ export default {
event: "change", event: "change",
}, },
data() { data() {
return { return {};
supplier: [],
};
}, },
computed: { computed: {
getDock() { getDock() {
......
...@@ -20,9 +20,7 @@ export default { ...@@ -20,9 +20,7 @@ export default {
event: "change", event: "change",
}, },
data() { data() {
return { return {};
supplier: [],
};
}, },
computed: { computed: {
getSuppliers() { getSuppliers() {
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs"> <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> </el-select>
</template> </template>
...@@ -20,9 +20,7 @@ export default { ...@@ -20,9 +20,7 @@ export default {
event: "change", event: "change",
}, },
data() { data() {
return { return {};
supplier: [],
};
}, },
computed: { computed: {
getUser() { getUser() {
......
...@@ -261,7 +261,6 @@ ...@@ -261,7 +261,6 @@
<script> <script>
import { DICT_TYPE } from "@/utils/dict"; import { DICT_TYPE } from "@/utils/dict";
import { getWarehouseList } from "@/api/ecw/warehouse";
import { import {
secGoodsList, secGoodsList,
preloadPage, preloadPage,
...@@ -291,8 +290,6 @@ export default { ...@@ -291,8 +290,6 @@ export default {
filingOps: this.getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL), filingOps: this.getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL),
// 报关方式 // 报关方式
declarationMethodOps: this.getDictDatas(DICT_TYPE.ECW_CUSTOMS_TYPE), declarationMethodOps: this.getDictDatas(DICT_TYPE.ECW_CUSTOMS_TYPE),
// 仓库
warehouseList: [],
// 查询标识 // 查询标识
type: "", type: "",
// 已预装 遮罩层 // 已预装 遮罩层
...@@ -327,27 +324,25 @@ export default { ...@@ -327,27 +324,25 @@ export default {
computed: { computed: {
/** 始发地 */ /** 始发地 */
exportWarehouseList() { exportWarehouseList() {
return this.warehouseList.filter( return this.$attrs.warehouseList.filter(
(item) => item.tradeType == "2" || item.type == "3" (item) => item.tradeType == "2" || item.type == "3"
); );
}, },
/** 目的地 */ /** 目的地 */
importWarehouseList() { importWarehouseList() {
return this.warehouseList.filter( return this.$attrs.warehouseList.filter(
(item) => item.tradeType == "1" || item.type == "3" (item) => item.tradeType == "1" || item.type == "3"
); );
}, },
}, },
created() { created() {
// 查询仓库数据
getWarehouseList().then((res) => (this.warehouseList = res.data));
// 查询待预装 // 查询待预装
this.handleQuery("toBePre"); this.handleQuery("toBePre");
}, },
methods: { methods: {
/* 获取城市 */ /* 获取城市 */
importCityName(id) { 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 : ""; return arr.length > 0 ? arr[0].titleZh : "";
}, },
/* 选中行 */ /* 选中行 */
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<script> <script>
import { shipConfigure, serviceMsg } from "@/api/ecw/boxSea"; import { shipConfigure, serviceMsg } from "@/api/ecw/boxSea";
import { formatNumberString, constantDict } from "../utils";
/** /**
* 配船 * 配船
*/ */
...@@ -35,22 +36,19 @@ export default { ...@@ -35,22 +36,19 @@ export default {
// 配船对象 // 配船对象
shipObj: {}, shipObj: {},
// 状态 // 状态
status: [ status: constantDict.saExmtStatus,
{
value: "1",
label: "免配",
},
{
value: "2",
label: "已配",
},
],
// 校验 // 校验
rules: { rules: {
saExmtStatus: [{ required: true, message: "必填", trigger: "change" }], 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: { methods: {
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
...@@ -62,15 +60,15 @@ export default { ...@@ -62,15 +60,15 @@ export default {
...this.shipObj, ...this.shipObj,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel(); this.cancel("submit");
}); });
}); });
} }
}); });
}, },
/** 取消 */ /** 取消 */
cancel() { cancel(type) {
this.$emit("closeDialog"); this.$emit("closeDialog", type);
}, },
}, },
}; };
......
...@@ -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="请选择供应商" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="subMaterialObj.agentId" :companyType="'1'" 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>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<el-input v-model="subMaterialObj.containerSealNo" placeholder="请输入柜号/封条"></el-input> <el-input v-model="subMaterialObj.containerSealNo" placeholder="请输入柜号/封条"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="柜型"> <el-form-item label="柜型">
{{getCabinetName(shipmentObj.cabinetId)}} {{cabinetType}}
</el-form-item> </el-form-item>
<el-form-item label="出单方式"> <el-form-item label="出单方式">
<el-radio-group v-model="subMaterialObj.issueType"> <el-radio-group v-model="subMaterialObj.issueType">
...@@ -78,6 +78,8 @@ import userSelect from "./common/userSelect.vue"; ...@@ -78,6 +78,8 @@ import userSelect from "./common/userSelect.vue";
import { getUnitList } from "@/api/ecw/unit"; import { getUnitList } from "@/api/ecw/unit";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
import { billCreate, serviceMsg } from "@/api/ecw/boxSea"; import { billCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatNumberString, constantDict } from "../utils";
/** /**
* 提单补料 * 提单补料
*/ */
...@@ -107,6 +109,8 @@ export default { ...@@ -107,6 +109,8 @@ export default {
], ],
// 单位 // 单位
units: [], units: [],
// 柜型
cabinetType: "/",
}; };
}, },
created() { created() {
...@@ -117,10 +121,19 @@ export default { ...@@ -117,10 +121,19 @@ export default {
}); });
// 柜型 // 柜型
getCabinetPage(null).then((response) => { 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: { methods: {
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
...@@ -132,25 +145,15 @@ export default { ...@@ -132,25 +145,15 @@ export default {
operateType, operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel(); this.cancel("submit");
}); });
}); });
} }
}); });
}, },
/** 取消 */ /** 取消 */
cancel() { cancel(type) {
this.$emit("closeDialog"); this.$emit("closeDialog", type);
},
/* 获取柜名 */
getCabinetName(cabinetId) {
for (let index in this.cabinetList) {
let cabinetItem = this.cabinetList[index];
if (cabinetItem.id == cabinetId) {
return cabinetItem.name;
}
}
return "/";
}, },
}, },
}; };
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-form ref="trailerForm" :rules="rules" :model="trailerObj" label-width="120px"> <el-form ref="trailerForm" :rules="rules" :model="trailerObj" label-width="120px">
<el-form-item label="状态"> <el-form-item label="状态">
<el-select v-model="trailerObj.tlContainerStatus" placeholder="请选择状态"> <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-select>
</el-form-item> </el-form-item>
<el-form-item label="拖车公司"> <el-form-item label="拖车公司">
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<script> <script>
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as _C from "./utils";
export default { export default {
name: "seaStepDetail", name: "seaStepDetail",
...@@ -126,6 +127,7 @@ export default { ...@@ -126,6 +127,7 @@ export default {
{ {
title: "代理商", title: "代理商",
key: "agentId", key: "agentId",
type: "supplier",
}, },
{ {
title: "业务员", title: "业务员",
...@@ -141,6 +143,7 @@ export default { ...@@ -141,6 +143,7 @@ export default {
{ {
title: "仓库类型", title: "仓库类型",
key: "ldWarehouseType", key: "ldWarehouseType",
type: "warehouse",
}, },
{ {
title: "装柜时间", title: "装柜时间",
...@@ -161,10 +164,12 @@ export default { ...@@ -161,10 +164,12 @@ export default {
{ {
title: "报关方式", title: "报关方式",
key: "dcCustomsType", key: "dcCustomsType",
type: "shipping_customs_type",
}, },
{ {
title: "报关行公司", title: "报关行公司",
key: "dcCompanyId", key: "dcCompanyId",
type: "supplier",
}, },
{ {
title: "截关时间", title: "截关时间",
...@@ -174,10 +179,12 @@ export default { ...@@ -174,10 +179,12 @@ export default {
{ {
title: "状态", title: "状态",
key: "dcCustomsStatus", key: "dcCustomsStatus",
type: "shipping_dcCustoms_status",
}, },
{ {
title: "放行时间", title: "放行时间",
key: "dcPassTime", key: "dcPassTime",
type: "date",
}, },
{ {
title: "新封条", title: "新封条",
...@@ -204,6 +211,7 @@ export default { ...@@ -204,6 +211,7 @@ export default {
{ {
title: "已配/免配", title: "已配/免配",
key: "saExmtStatus", key: "saExmtStatus",
type: "saExmtStatus",
}, },
{ {
title: "业务员", title: "业务员",
...@@ -214,6 +222,7 @@ export default { ...@@ -214,6 +222,7 @@ export default {
{ {
title: "清关代理", title: "清关代理",
key: "agentId", key: "agentId",
type: "supplier",
}, },
{ {
title: "提单品名", title: "提单品名",
...@@ -373,6 +382,15 @@ export default { ...@@ -373,6 +382,15 @@ export default {
case "dock": case "dock":
val = this.getDock(Number(val)); val = this.getDock(Number(val));
break; 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; return val;
...@@ -387,6 +405,21 @@ export default { ...@@ -387,6 +405,21 @@ export default {
this.$attrs.allSupplier.find((item) => item.id === id)?.countryZh ?? id 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> </script>
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
</el-card> </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-col>
</el-row> </el-row>
</div> </div>
......
...@@ -379,6 +379,20 @@ const seaBaseData = [ ...@@ -379,6 +379,20 @@ const seaBaseData = [
], ],
]; ];
const constantDict = {
// 配船状态
saExmtStatus: [
{
value: "1",
label: "免配",
},
{
value: "2",
label: "已配",
},
],
};
function formatStringNumber(obj, keys) { function formatStringNumber(obj, keys) {
for (const [key, value] of Object.entries(obj)) { for (const [key, value] of Object.entries(obj)) {
if (keys.includes(key) && !Number.isNaN(Number(value))) { if (keys.includes(key) && !Number.isNaN(Number(value))) {
...@@ -409,6 +423,7 @@ function formatDateStr(obj, keys) { ...@@ -409,6 +423,7 @@ function formatDateStr(obj, keys) {
export { export {
statusName, statusName,
seaBaseData, seaBaseData,
constantDict,
formatStringNumber, formatStringNumber,
formatDateStr, formatDateStr,
formatNumberString, formatNumberString,
......
...@@ -7,10 +7,25 @@ ...@@ -7,10 +7,25 @@
width="960px" width="960px"
> >
<el-descriptions border :column="2"> <el-descriptions border :column="2">
<el-descriptions-item label="中文品名"></el-descriptions-item> <el-descriptions-item label="中文品名">{{ warehousing.prodTitleZh }}</el-descriptions-item>
<el-descriptions-item label="英文品名"></el-descriptions-item> <el-descriptions-item label="英文品名">{{ warehousing.prodTitleEn }}</el-descriptions-item>
<el-descriptions-item label="品牌">{{['无牌', '有牌', '中性'][warehousing.brandType]}}</el-descriptions-item> <el-descriptions-item label="品牌">
<el-descriptions-item label="是否备案"></el-descriptions-item> <span v-if="warehousing.orderWarehouseInBackItemDoList && warehousing.orderWarehouseInBackItemDoList.length">{{ form.brand || '' }}</span>
<el-select
v-else v-model="form.brand"
placeholder="可修改"
filterable
@change="handleChangeBrand"
allow-create>
<el-option
v-for="item in brandList"
:key="item.id"
:label="item.titleZh"
:value="item.titleZh">
</el-option>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="是否备案">{{ isBeian }}</el-descriptions-item>
<el-descriptions-item label="填单参数"></el-descriptions-item> <el-descriptions-item label="填单参数"></el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px"> <el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px">
...@@ -29,73 +44,59 @@ ...@@ -29,73 +44,59 @@
<el-button style="float: right" size="mini" type="primary" icon="el-icon-plus" circle @click="handleAdd()"></el-button> <el-button style="float: right" size="mini" type="primary" icon="el-icon-plus" circle @click="handleAdd()"></el-button>
</div> </div>
<el-table <el-table
:data="warehousing.orderWarehouseInBackItemDoList" :data="tableData"
style="width: 100%">
<el-table-column label="箱数" prop="cartonsNum">
</el-table-column>
<el-table-column label="包装类型" prop="boxGauge">
</el-table-column>
<el-table-column label="长(cm)" prop="">
</el-table-column>
<el-table-column label="款(cm)" prop="">
</el-table-column>
<el-table-column label="高(cm)" prop="">
</el-table-column>
<el-table-column label="体积(m³)" prop="">
</el-table-column>
<el-table-column label="重量(Kg)" prop="">
</el-table-column>
<el-table-column label="数量" prop="quantityAll">
</el-table-column>
<el-table-column label="快递单号" prop="expressNo">
</el-table-column>
</el-table>
<el-table
:data="form.orderWarehouseInItemDoList"
style="width: 100%"> style="width: 100%">
<el-table-column label="箱数"> <el-table-column label="箱数">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-input v-model="form.orderWarehouseInItemDoList[$index].cartonsNum" placeholder=""></el-input> <span v-if="tableData[$index].id">{{ tableData[$index].cartonsNum }}</span>
<el-input v-else v-model="tableData[$index].cartonsNum" placeholder=""></el-input>
<span>{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].boxGauge) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="包装类型"> <el-table-column label="包装类型">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-input v-model="form.orderWarehouseInItemDoList[$index].boxGauge" placeholder=""></el-input> <span v-if="tableData[$index].id">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].boxGauge) }}</span>
<!-- <el-input v-else v-model="tableData[$index].boxGauge" placeholder=""></el-input>-->
<dict-selector v-else :type="DICT_TYPE.ECW_PACKAGE_TYPE" v-model="tableData[$index].boxGauge"></dict-selector>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="长(cm)"> <el-table-column label="长(cm)">
<!-- <template v-slot="{r,c,$index}">--> <!-- <template v-slot="{r,c,$index}">-->
<!-- <el-input v-model="form.orderWarehouseInItemDoList[$index].cartonsNum" placeholder=""></el-input>--> <!-- <el-input v-model="tableData[$index].cartonsNum" placeholder=""></el-input>-->
<!-- </template>--> <!-- </template>-->
</el-table-column> </el-table-column>
<el-table-column label="(cm)"> <el-table-column label="(cm)">
<!-- <template v-slot="{r,c,$index}">--> <!-- <template v-slot="{r,c,$index}">-->
<!-- <el-input v-model="form.orderWarehouseInItemDoList[$index].cartonsNum" placeholder=""></el-input>--> <!-- <el-input v-model="tableData[$index].cartonsNum" placeholder=""></el-input>-->
<!-- </template>--> <!-- </template>-->
</el-table-column> </el-table-column>
<el-table-column label="高(cm)"> <el-table-column label="高(cm)">
<!-- <template v-slot="{r,c,$index}">--> <!-- <template v-slot="{r,c,$index}">-->
<!-- <el-input v-model="form.orderWarehouseInItemDoList[$index].cartonsNum" placeholder=""></el-input>--> <!-- <el-input v-model="tableData[$index].cartonsNum" placeholder=""></el-input>-->
<!-- </template>--> <!-- </template>-->
</el-table-column> </el-table-column>
<el-table-column label="体积(m³)"> <el-table-column label="体积(m³)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-input v-model="form.orderWarehouseInItemDoList[$index].volume" placeholder=""></el-input> <span v-if="tableData[$index].id">{{ tableData[$index].volume }}</span>
<el-input v-else v-model="tableData[$index].volume" placeholder=""></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重量(Kg)"> <el-table-column label="重量(Kg)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-input v-model="form.orderWarehouseInItemDoList[$index].weight" placeholder=""></el-input> <span v-if="tableData[$index].id">{{ tableData[$index].weight }}</span>
<el-input v-else v-model="tableData[$index].weight" placeholder=""></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="数量"> <el-table-column label="数量">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-input v-model="form.orderWarehouseInItemDoList[$index].quantityAll" placeholder=""></el-input> <span v-if="tableData[$index].id">{{ tableData[$index].quantityAll }}</span>
<el-input v-else v-model="tableData[$index].quantityAll" placeholder=""></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="快递单号"> <el-table-column label="快递单号">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-input v-model="form.orderWarehouseInItemDoList[$index].expressNo" placeholder=""></el-input> <span v-if="tableData[$index].id">{{ tableData[$index].expressNo }}</span>
<el-input v-else v-model="tableData[$index].expressNo" placeholder=""></el-input>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -111,9 +112,10 @@ ...@@ -111,9 +112,10 @@
<script> <script>
import dictSelector from "@/components/DictSelector" import dictSelector from "@/components/DictSelector"
import {DICT_TYPE} from "@/utils/dict" import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
import warehousing from "@/views/ecw/order/warehousing" import warehousing from "@/views/ecw/order/warehousing"
import {orderWarehouseIn} from "@/api/ecw/order" import {orderWarehouseIn} from "@/api/ecw/order"
import {getProductBrankPage} from "@/api/ecw/productBrank"
export default { export default {
name: 'editDialog', name: 'editDialog',
...@@ -140,12 +142,17 @@ export default { ...@@ -140,12 +142,17 @@ export default {
}, },
mounted() { mounted() {
getProductBrankPage({pageSize: 100000}).then(r => {
this.brandList = r.data.list
})
}, },
data() { data() {
return { return {
DICT_TYPE, DICT_TYPE,
getDictDataLabel,
opened: false, opened: false,
brandList: [],
form: { form: {
"brand": "", "brand": "",
"brandType": 0, "brandType": 0,
...@@ -179,7 +186,8 @@ export default { ...@@ -179,7 +186,8 @@ export default {
}, },
opened(val) { opened(val) {
if (val) { if (val) {
this.form.material = warehousing.material this.form.material = this.warehousing.material
this.form.brand = this.warehousing.brand
} else { } else {
this.$emit('update:visible', false) this.$emit('update:visible', false)
} }
...@@ -187,6 +195,13 @@ export default { ...@@ -187,6 +195,13 @@ export default {
}, },
methods: { methods: {
handleChangeBrand(b){
if (this.brandList.find(e => e.titleZh === b)){
this.isBeian = '有备案'
} else {
this.isBeian = '无备案'
}
},
handleSubmit() { handleSubmit() {
// Promise.all( // Promise.all(
// this.form.orderWarehouseInItemDoList.map(e => { // this.form.orderWarehouseInItemDoList.map(e => {
...@@ -205,14 +220,17 @@ export default { ...@@ -205,14 +220,17 @@ export default {
// }) // })
return orderWarehouseIn({ return orderWarehouseIn({
...this.form, ...this.form,
inTime: this.form.inTime, brandType: this.form.brand ? 1 : 0,
material: this.form.material,
brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId, orderId: this.warehousing.orderId,
orderItemId: this.warehousing.orderItemId, orderItemId: this.warehousing.orderItemId,
orderNo: this.warehousing.orderNo orderNo: this.warehousing.orderNo
}).then(() => { }).then(r => {
if (r.data){
this.$message.success('入仓成功')
this.handleClose() this.handleClose()
}else {
this.$message.success('入仓失败')
}
}) })
}, },
handleClose() { handleClose() {
...@@ -225,14 +243,23 @@ export default { ...@@ -225,14 +243,23 @@ export default {
handleAdd() { handleAdd() {
this.form.orderWarehouseInItemDoList.push({ this.form.orderWarehouseInItemDoList.push({
"boxGauge": "", "boxGauge": "",
"cartonsNum": 0, "cartonsNum": "",
"expressNo": "", "expressNo": "",
"quantityAll": 0, "quantityAll": "",
"unit": "", "unit": "",
"volume": 0, "volume": '',
"weight": 0 "weight": ''
}) })
} }
},
computed: {
tableData() {
return [...this.warehousing.orderWarehouseInBackItemDoList, ...this.form.orderWarehouseInItemDoList]
},
isBeian(){
return this.brandList.find(e => e.titleZh === this.form.brand) ? '有备案' : '无备案'
}
} }
} }
</script> </script>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<order-base-info :order="order"></order-base-info> <order-base-info :order="order"></order-base-info>
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<span>储位:</span><el-button type="primary" size="mini" @click="areaVisible = true">选择</el-button> <span>储位:{{ locationName }}</span><el-button type="primary" size="mini" @click="areaVisible = true" style="margin-left: 15px">选择</el-button>
</div> </div>
<h2>货物信息</h2> <h2>货物信息</h2>
...@@ -44,8 +44,11 @@ ...@@ -44,8 +44,11 @@
label="快递单号"> label="快递单号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="updateTime"
label="最后操作时间"> label="最后操作时间">
<template v-slot="{row}">
{{ row.updateTime }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
...@@ -55,8 +58,8 @@ ...@@ -55,8 +58,8 @@
prop="address" prop="address"
label="操作"> label="操作">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<el-button size="mini" type="text" @click="handleWarehousing($index)">入仓</el-button> <el-button v-if="orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0" size="mini" type="text" @click="handleWarehousing($index)">追加</el-button>
<el-button size="mini" type="text" @click="handleWarehousing(row.prodId)">追加</el-button> <el-button v-else size="mini" type="text" @click="handleWarehousing($index)">入仓</el-button>
<el-button size="mini" type="text" @click="handleWarehousingReturn(row)">退仓</el-button> <el-button size="mini" type="text" @click="handleWarehousingReturn(row)">退仓</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -151,19 +154,34 @@ ...@@ -151,19 +154,34 @@
<div style="text-align: center"> <div style="text-align: center">
<el-button type="primary">转异</el-button> <el-button type="primary">转异</el-button>
<el-button type="primary" @click="handleSubmit()">完成入仓</el-button> <el-button type="primary" @click="finishVisible = true">完成入仓</el-button>
</div> </div>
</el-form> </el-form>
<warehouse-area-dialog :visible.sync="areaVisible" v-model="locationName"></warehouse-area-dialog> <warehouse-area-dialog :visible.sync="areaVisible" v-model="locationName"></warehouse-area-dialog>
<edit-dialog :visible.sync="warehousingVisible" :warehousing="warehousing"></edit-dialog> <edit-dialog :visible.sync="warehousingVisible" :warehousing="warehousing"></edit-dialog>
<!-- 完成入仓 -->
<el-dialog
title="确认入仓"
:visible.sync="finishVisible"
width="300px">
<div style="text-align: center">在完成入仓前,您还可以</div>
<div style="text-align: center;padding: 15px 0">
<el-button type="info" @click="areaVisible = true">选择储位</el-button>
<el-button type="info">打印标签</el-button>
</div>
<div style="text-align: center">
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {getCurrencyList} from "@/api/ecw/currency" import {getCurrencyList} from "@/api/ecw/currency"
import {getOrder, getOrderWarehouseIn, orderWarehouseInFinish} from "@/api/ecw/order" import {getOrder, getOrderWarehouseIn, orderWarehouseInFinish, rollbackApply} from "@/api/ecw/order"
import orderBaseInfo from "@/components/OrderBaseInfo" import orderBaseInfo from "@/components/OrderBaseInfo"
import WarehouseAreaDialog from '@/components/WarehouseAreaDialog' import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
import editDialog from '@/views/ecw/order/warehousing/components/editDialog' import editDialog from '@/views/ecw/order/warehousing/components/editDialog'
...@@ -189,6 +207,7 @@ export default { ...@@ -189,6 +207,7 @@ export default {
data() { data() {
return { return {
areaVisible: false, areaVisible: false,
finishVisible: false,
locationName: '', locationName: '',
warehousingVisible: false, warehousingVisible: false,
form: { form: {
...@@ -207,6 +226,20 @@ export default { ...@@ -207,6 +226,20 @@ export default {
orderWarehouseInFinish({ orderWarehouseInFinish({
"locationName": this.locationName, "locationName": this.locationName,
"orderId": this.order.orderId "orderId": this.order.orderId
}).then(r => {
if (r.data) {
this.$confirm(
'该订单已成功入仓,是否打印?',
'货物已入仓',
{
confirmButtonClass: '',
cancelButtonText: ''
}
).then().catch(() => {
// this.$store.dispatch('tagsView/delVisitedView')
this.$message.success('入仓成功')
})
}
}) })
}, },
handleWarehousing(index) { handleWarehousing(index) {
...@@ -219,16 +252,19 @@ export default { ...@@ -219,16 +252,19 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
console.log(item.id) console.log(item)
rollbackApply({
"orderId": item.orderId,
"orderNo": item.orderNo,
"reason": ""
}).then(() => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '删除成功!' message: '申请退仓成功!'
}); });
})
}).catch(() => { }).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
}); });
} }
}, },
......
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