Commit 8e738046 authored by dragondean@qq.com's avatar dragondean@qq.com

解决box.js冲突

parents b51a3386 ca449abe
...@@ -210,13 +210,29 @@ function jsonToFormData(params) { ...@@ -210,13 +210,29 @@ function jsonToFormData(params) {
return formData; return formData;
} }
// 根据订单ID下载提货单 // 创建制作提货单
export function getNoticeList(data) {
return request({
url: "/shipment/box/noticeList",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/**
* 根据订单ID下载提货单
*
* @export
* @param {*} orderId
* @return {*}
*/
export function downloadByOrderId(orderId) { export function downloadByOrderId(orderId) {
return request({ return request({
url: "/shipment/make-bill-of-lading/downloadByOrderId", url: "/shipment/make-bill-of-lading/downloadByOrderId",
method: "get", method: "get",
params: {orderId}, params: { orderId },
responseType: 'arraybuffer' responseType: "arraybuffer",
}); });
} }
...@@ -237,3 +253,69 @@ export function getBillOfLandingInProcessing(params){ ...@@ -237,3 +253,69 @@ export function getBillOfLandingInProcessing(params){
params, params,
}); });
} }
// 下载agent list文件
export function downloadAgentListFiles(params) {
return request({
url: "/ecw/box-preload-goods/downloadAgentListFiles",
method: "get",
params,
});
}
// 下载son cap文件
export function downloadSoncapFiles(params) {
return request({
url: "/ecw/box-preload-goods/downloadSoncapFiles",
method: "get",
params,
});
}
// 下载报关单
export function downloadCustomFiles(params) {
return request({
url: "/ecw/box-preload-goods/downloadCustomFiles",
responseType: "arraybuffer",
method: "get",
params,
});
}
// 下载已装单
export function downloadLoadGoodsList(params) {
return request({
url: "/ecw/box-preload-goods/downloadLoadGoodsList",
responseType: "arraybuffer",
method: "get",
params,
});
}
// 下载预装单
export function downloadPreloadGoodsList(params) {
return request({
url: "/ecw/box-preload-goods/downloadPreloadGoodsList",
responseType: "arraybuffer",
method: "get",
params,
});
}
// 下载应收汇总
export function downloadReceivableList(params) {
return request({
url: "/ecw/box-preload-goods/downloadReceivableList",
responseType: "arraybuffer",
method: "get",
params,
});
}
// 下载提单copy
export function downloadLadingCopy(params) {
return request({
url: "/ecw/box-lading-copy/downloadLadingCopy",
method: "get",
params,
});
}
...@@ -624,6 +624,34 @@ export function createApproval(data) { ...@@ -624,6 +624,34 @@ export function createApproval(data) {
}); });
} }
/**
* 订单详情
*
* @param {*} params
* @returns
*/
export function getOrderDetailByBoxNo(data) {
return request({
url: "/my/shipment/searchLoadOrderByBoxNo",
method: "post",
data,
});
}
/**
* 外部仓装柜
*
* @param {*} params
* @returns
*/
export function externalLoad(data) {
return request({
url: "/ecw/box-load-info/externalLoad",
method: "post",
data,
});
}
/***************************** 装柜 end **********************************/ /***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/ /***************************** 卸柜 start **********************************/
......
...@@ -72,9 +72,9 @@ export function setUnauthCustomerFeeType(data) { ...@@ -72,9 +72,9 @@ export function setUnauthCustomerFeeType(data) {
} }
// //
export function getFeeTypeByCustomerProduct(data){ export function getFeeTypeByOrderProduct(data){
return request({ return request({
url: '/ecw/product-brank/getFeeTypeByCustomerProduct', url: '/ecw/product-brank/getFeeTypeByOrderProduct',
method: 'post', method: 'post',
data data
}) })
......
...@@ -89,7 +89,7 @@ export const DICT_TYPE = { ...@@ -89,7 +89,7 @@ export const DICT_TYPE = {
ECW_COOPERATION_TYPE: 'cooperation_type', // 合作类型 ECW_COOPERATION_TYPE: 'cooperation_type', // 合作类型
ECW_SHIPPING_DECLARATION_TYPE: 'shipping_declaration_type', // 出货报关方式(与订单报关方式相同) ECW_SHIPPING_DECLARATION_TYPE: 'shipping_declaration_type', // 出货报关方式(与订单报关方式相同)
ECW_CUSTOMS_TYPE: 'customs_type', // 订单报关方式(非出货报关),优惠券中的单证报关 ECW_CUSTOMS_TYPE: 'customs_type', // 订单报关方式(非出货报关),优惠券中的单证报关
ECW_PACKAGE_TYPE: 'packageType', // 包装单位 // ECW_PACKAGE_TYPE: 'packageType', // 包装单位
ECW_DOUBLE_CLEAR: 'double_clear', // 是否双清 ECW_DOUBLE_CLEAR: 'double_clear', // 是否双清
ECW_TRADE_TYPE: 'trade_type', // 交货放肆 ECW_TRADE_TYPE: 'trade_type', // 交货放肆
ECW_OFFER_RESULT: 'offer_result', // 报单结果 赢单 输单 ECW_OFFER_RESULT: 'offer_result', // 报单结果 赢单 输单
...@@ -196,6 +196,7 @@ export const DICT_TYPE = { ...@@ -196,6 +196,7 @@ export const DICT_TYPE = {
BOX_SHIPPING_TICKET_EXCEPTION: 'shipping_ticket_exception', // 票异常 BOX_SHIPPING_TICKET_EXCEPTION: 'shipping_ticket_exception', // 票异常
BOX_SHIPPING_PROCESS: 'shipping_process', // 海运出货流程 BOX_SHIPPING_PROCESS: 'shipping_process', // 海运出货流程
BOX_SHIPPING_BRAND_TYPE: 'shipping_brand_type', // 出货品牌类型 BOX_SHIPPING_BRAND_TYPE: 'shipping_brand_type', // 出货品牌类型
BOX_SHIPPING_NOTICE_TYPE: 'shipping_notice_type', // 出货通知类型
} }
/** /**
......
...@@ -127,18 +127,18 @@ ...@@ -127,18 +127,18 @@
<el-dropdown-item v-if="scope.row.ldStatus==47" command="editLadingBill">编辑提货单</el-dropdown-item> <el-dropdown-item v-if="scope.row.ldStatus==47" command="editLadingBill">编辑提货单</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-dropdown trigger="click"> <el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)">
<el-button type="primary"> <el-button type="primary">
下载<i class="el-icon-arrow-down el-icon--right"></i> 下载<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="">预装单</el-dropdown-item> <el-dropdown-item command="downloadPreloadGoodsList">预装单</el-dropdown-item>
<el-dropdown-item command="">已装单</el-dropdown-item> <el-dropdown-item command="downloadLoadGoodsList">已装单</el-dropdown-item>
<el-dropdown-item command="">应收汇总表</el-dropdown-item> <el-dropdown-item command="downloadReceivableList">应收汇总表</el-dropdown-item>
<el-dropdown-item command="">agent list</el-dropdown-item> <el-dropdown-item command="downloadAgentListFiles">agent list</el-dropdown-item>
<el-dropdown-item command="">son cap</el-dropdown-item> <el-dropdown-item command="downloadSoncapFiles">soncap</el-dropdown-item>
<el-dropdown-item command="">提货单</el-dropdown-item> <el-dropdown-item command="zipDownload">提货单</el-dropdown-item>
<el-dropdown-item command="">提单Copy</el-dropdown-item> <el-dropdown-item command="downloadLadingCopy">提单Copy</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
...@@ -161,12 +161,50 @@ ...@@ -161,12 +161,50 @@
<template v-if="dialogCfg.dialogType === 'editLadingBill'"> <template v-if="dialogCfg.dialogType === 'editLadingBill'">
<ladingBill v-if="dialogCfg.open" @closeDialog="closeDialog" :shipmentObj="currRow" :getCabinetName="getCabinetName" /> <ladingBill v-if="dialogCfg.open" @closeDialog="closeDialog" :shipmentObj="currRow" :getCabinetName="getCabinetName" />
</template> </template>
<template v-if="dialogCfg.dialogType === 'notice'">
<div class="notice-dialog">
<div class="notice-title">您有一个/多个待处理出货操作,请尽快前往处理:</div>
<el-table :data="noticeList" height="500px" border>
<el-table-column label="自编号" align="center" prop="selfNo" />
<el-table-column label="类型" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_NOTICE_TYPE" :value="String(scope.row.noticeType)" />
</template>
</el-table-column>
<el-table-column label="操作时间" align="center">
<template slot-scope="scope">
{{formatDate(scope.row.createTime)}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="text" @click="handleCommand(scope.row, 'sea')">处理</el-button>
</template>
</el-table-column>
</el-table>
<el-row class="operate-button">
<el-button type="primary" @click="closeDialog">关闭窗口</el-button>
</el-row>
</div>
</template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { deletebox, getbox, getboxPage, exportboxExcel } from "@/api/ecw/box"; import {
deletebox,
getbox,
getboxPage,
exportboxExcel,
getNoticeList,
} from "@/api/ecw/box";
import {
downloadFile,
downloadFileByUrl,
formatDate,
} from "./shippingSea/utils";
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 { getListTree } from "@/api/ecw/region";
...@@ -224,8 +262,10 @@ export default { ...@@ -224,8 +262,10 @@ export default {
cabinetList: [], cabinetList: [],
warehouseList: [], warehouseList: [],
transportTypes: [], transportTypes: [],
//国家信息列表 // 国家信息列表
countryList: [], countryList: [],
// 通知列表
noticeList: [],
}; };
}, },
computed: { computed: {
...@@ -260,8 +300,22 @@ export default { ...@@ -260,8 +300,22 @@ export default {
}); });
this.getList(); this.getList();
this.getCountryList(); this.getCountryList();
this.queryNotice();
}, },
methods: { methods: {
formatDate,
queryNotice() {
getNoticeList({}).then((res) => {
const { data } = res;
this.noticeList = data ?? [];
if (data.length) {
this.$set(this.dialogCfg, "title", "出货操作提醒");
this.$set(this.dialogCfg, "dialogType", "notice");
this.$set(this.dialogCfg, "width", "650px");
this.$set(this.dialogCfg, "open", true);
}
});
},
/* 国家 */ /* 国家 */
getCountryList() { getCountryList() {
getListTree({ treeType: 1 }).then((response) => { getListTree({ treeType: 1 }).then((response) => {
...@@ -300,6 +354,9 @@ export default { ...@@ -300,6 +354,9 @@ export default {
this.$set(this.dialogCfg, "width", "600px"); this.$set(this.dialogCfg, "width", "600px");
this.$set(this.dialogCfg, "fullscreen", false); this.$set(this.dialogCfg, "fullscreen", false);
this.$set(this.dialogCfg, "open", true); this.$set(this.dialogCfg, "open", true);
this.currRow = {
transportType: "1",
};
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -340,7 +397,7 @@ export default { ...@@ -340,7 +397,7 @@ export default {
return exportboxExcel(params); return exportboxExcel(params);
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, "${table.classComment}.xls"); this.$download.excel(response, "海运管理.xls");
this.exportLoading = false; this.exportLoading = false;
}) })
.catch(() => {}); .catch(() => {});
...@@ -389,6 +446,44 @@ export default { ...@@ -389,6 +446,44 @@ export default {
case "error": case "error":
this.$set(this.dialogCfg, "title", "异常登记"); this.$set(this.dialogCfg, "title", "异常登记");
break; break;
case "downloadPreloadGoodsList":
downloadFile(
command,
{ shipmentId: row.id },
`预装单(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadLoadGoodsList":
downloadFile(
command,
{ shipmentId: row.id },
`已装单(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadReceivableList":
downloadFile(
command,
{ shipmentId: row.id },
`应收汇总表(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "zipDownload":
downloadFile(
command,
{ shipmentId: row.id },
`提货单(${row.selfNo}).zip`,
"zip"
);
break;
case "downloadAgentListFiles":
case "downloadSoncapFiles":
case "downloadLadingCopy":
downloadFileByUrl(command, { shipmentId: row.id });
break;
} }
if (["editLadingBill", "cost", "error"].includes(command)) { if (["editLadingBill", "cost", "error"].includes(command)) {
...@@ -406,3 +501,17 @@ export default { ...@@ -406,3 +501,17 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.notice-dialog {
::v-deep .notice-title {
font-size: 24px;
font-weight: bold;
margin-bottom: 10px;
}
::v-deep .operate-button {
margin-top: 10px;
text-align: center;
}
}
</style>
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<el-row class="shipping-ladingBill"> <el-row class="shipping-ladingBill">
<el-row class="oper-button"> <el-row class="oper-button">
<el-button type="primary" @click="clickZipDownload">打包下载</el-button> <el-button type="primary" @click="clickZipDownload">打包下载</el-button>
<el-button type="primary">应收汇总单</el-button> <el-button type="primary" @click="handleCommand('downloadReceivableList')">应收汇总表</el-button>
<el-button type="primary">下载已装单</el-button> <el-button type="primary" @click="handleCommand('downloadLoadGoodsList')">下载已装单</el-button>
</el-row> </el-row>
<el-row style="margin-top:15px"> <el-row style="margin-top:15px">
...@@ -91,7 +91,11 @@ import { ...@@ -91,7 +91,11 @@ import {
deleteBillService, deleteBillService,
zipDownload, zipDownload,
} from "@/api/ecw/box"; } from "@/api/ecw/box";
import { getTotlContent, getCapacity } from "../shippingSea/utils"; import {
getTotlContent,
getCapacity,
downloadFile,
} from "../shippingSea/utils";
import makeLadingBill from "./makeLadingBill.vue"; import makeLadingBill from "./makeLadingBill.vue";
import previewBill from "./previewBill.vue"; import previewBill from "./previewBill.vue";
import FileSaver from "file-saver"; import FileSaver from "file-saver";
...@@ -169,17 +173,31 @@ export default { ...@@ -169,17 +173,31 @@ export default {
} }
}); });
break; break;
case "downloadLoadGoodsList":
downloadFile(
type,
{ shipmentId: this.shipmentObj.id },
`已装单(${this.shipmentObj.selfNo}).xlsx`,
"xlsx"
);
return;
case "downloadReceivableList":
downloadFile(
type,
{ shipmentId: this.shipmentObj.id },
`应收汇总表(${this.shipmentObj.selfNo}).xlsx`,
"xlsx"
);
return;
} }
this.currRow = row; this.currRow = row;
this.$set(this.dialogCfg, "type", type); this.$set(this.dialogCfg, "type", type);
this.$set(this.dialogCfg, "visible", true); this.$set(this.dialogCfg, "visible", true);
}, },
makeBill(row) { makeBill(row) {
const { bookSeaInfo } = this.shipmentObj;
makeBillService({ makeBillService({
orderId: row.orderId, orderId: row.orderId,
zgDate: '2022-09-27', shipmentId: this.shipmentObj.id,
// zgDate: bookSeaInfo.sailTime,
}).then((res) => { }).then((res) => {
const { data } = res; const { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {}; const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
......
...@@ -52,11 +52,6 @@ export default { ...@@ -52,11 +52,6 @@ export default {
}); });
}, },
}, },
watch: {
contentHtml(val) {
console.log(val);
},
},
}; };
</script> </script>
......
...@@ -157,9 +157,14 @@ ...@@ -157,9 +157,14 @@
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="表单" name="download"> <el-tab-pane label="表单" name="download">
<el-table :data="[]" style="width: 50%"> <el-table :data="downloadList" style="width: 50%">
<el-table-column prop="" label="文件类型"> </el-table-column> <el-table-column prop="title" label="文件类型"></el-table-column>
<el-table-column prop="" label="下载链接"> </el-table-column> <el-table-column prop="" label="下载链接">
<template slot-scope="scope">
<a v-if="scope.row.serviceName" href="javascript:void(0)" @click="downloadDetailFile(scope.row)">下载</a>
<div v-else>未完成</div>
</template>
</el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
...@@ -199,6 +204,8 @@ import { ...@@ -199,6 +204,8 @@ import {
getTotlContent, getTotlContent,
formatDate, formatDate,
serviceMsg, serviceMsg,
downloadFile,
downloadFileByUrl,
} from "./shippingSea/utils"; } from "./shippingSea/utils";
import { getSectionList, boxGoodsDetail } from "@/api/ecw/boxSea"; import { getSectionList, boxGoodsDetail } from "@/api/ecw/boxSea";
import { getSupplierPage } from "@/api/ecw/supplier"; import { getSupplierPage } from "@/api/ecw/supplier";
...@@ -264,6 +271,20 @@ export default { ...@@ -264,6 +271,20 @@ export default {
transportTypes: [], transportTypes: [],
// 费用详情 // 费用详情
costDetail: {}, costDetail: {},
// 下载
downloadList: [
{ title: "预装单", serviceName: "downloadPreloadGoodsList" },
{ title: "已装单", serviceName: "downloadLoadGoodsList" },
{ title: "应收汇总表", serviceName: "downloadReceivableList" },
{ title: "提货单", serviceName: "zipDownload", fileFormat: "zip" },
{
title: "agent list",
serviceName: "downloadAgentListFiles",
type: "url",
},
{ title: "soncap", serviceName: "downloadSoncapFiles", type: "url" },
{ title: "提单Copy", serviceName: "downloadLadingCopy", type: "url" },
],
}; };
}, },
methods: { methods: {
...@@ -427,6 +448,22 @@ export default { ...@@ -427,6 +448,22 @@ export default {
} }
}, },
formatDate, formatDate,
downloadDetailFile(row) {
const { fileFormat, type } = row;
if (type === "url") {
downloadFileByUrl(row.serviceName, { shipmentId: this.shipmentId });
} else {
let fileName = `${row.title}(${this.shipmentObj.selfNo}).${
fileFormat ?? "xlsx"
}`;
downloadFile(
row.serviceName,
{ shipmentId: this.shipmentId },
fileName,
fileFormat ?? "xlsx"
);
}
},
}, },
computed: { computed: {
visitedViews() { visitedViews() {
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<!-- 操作 --> <!-- 操作 -->
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit(1)">保存</el-button> <el-button type="primary" @click="onSubmit(1)">保存</el-button>
<el-button type="success" @click="onSubmit(2)" :disabled="isStartCabinet">封柜</el-button> <el-button type="success" @click="onSubmit(2)" :disabled="isSeal">封柜</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
<el-button type="danger" @click="startCabinet" :disabled="isStartCabinet">开始装柜</el-button> <el-button type="danger" @click="startCabinet" :disabled="isStartCabinet">开始装柜</el-button>
</el-row> </el-row>
...@@ -68,10 +68,20 @@ export default { ...@@ -68,10 +68,20 @@ export default {
"ldBoxTime", "ldBoxTime",
"ldOutWarehouseTime", "ldOutWarehouseTime",
]); ]);
let pictures = oldData.ldPictures;
if (oldData.ldPictures) {
pictures = JSON.parse(oldData.ldPictures);
if (Array.isArray(pictures)) {
pictures = pictures.map((item) => item.url).join(",");
}
}
this.cabinetObj = { this.cabinetObj = {
...oldData, ...oldData,
ldWarehouseType: ldWarehouseType:
oldData.ldWarehouseType === 0 ? undefined : oldData.ldWarehouseType, oldData.ldWarehouseType === 0 ? undefined : oldData.ldWarehouseType,
ldPictures: pictures,
}; };
}, },
methods: { methods: {
...@@ -87,9 +97,20 @@ export default { ...@@ -87,9 +97,20 @@ export default {
return; return;
} }
} }
const { ldPictures } = this.cabinetObj;
let pictures = ldPictures?.split(",") ?? [];
// 兼容手机端数据结构
pictures = pictures.map((item) => {
return {
type: "image",
url: item,
};
});
cabinetCreate({ cabinetCreate({
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
...this.cabinetObj, ...this.cabinetObj,
ldPictures: JSON.stringify(pictures),
operateType, operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
...@@ -114,6 +135,11 @@ export default { ...@@ -114,6 +135,11 @@ export default {
}, },
computed: { computed: {
isStartCabinet() { isStartCabinet() {
const { currNode, shipmentObj } = this.$attrs;
const status = shipmentObj[currNode.keyName];
return [46, 47].includes(status) ? true : false;
},
isSeal() {
const { currNode, shipmentObj } = this.$attrs; const { currNode, shipmentObj } = this.$attrs;
const status = shipmentObj[currNode.keyName]; const status = shipmentObj[currNode.keyName];
return status === 47 ? true : false; return status === 47 ? true : false;
......
...@@ -196,7 +196,7 @@ ...@@ -196,7 +196,7 @@
{{shopForm.sum||0}} {{shopForm.sum||0}}
</el-form-item> </el-form-item>
<el-form-item label="放入箱数:" prop="num"> <el-form-item label="放入箱数:" prop="num">
<el-input-number v-model="shopForm.num" controls-position="right" :min="1" :max="shopForm.sum"></el-input-number> <el-input-number v-model="shopForm.num" controls-position="right" :min="0" :max="shopForm.sum"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="备注信息:"> <el-form-item label="备注信息:">
<el-input v-model="shopForm.remarks"></el-input> <el-input v-model="shopForm.remarks"></el-input>
...@@ -310,7 +310,7 @@ export default { ...@@ -310,7 +310,7 @@ export default {
let _total = 0; let _total = 0;
const { orderSplitItemBackVOList = [] } = this.splitData; const { orderSplitItemBackVOList = [] } = this.splitData;
orderSplitItemBackVOList.forEach((v) => { orderSplitItemBackVOList.forEach((v) => {
_total += Number(v.splitNum); _total += Number(v.num);
}); });
return _total; return _total;
}, },
...@@ -427,6 +427,7 @@ export default { ...@@ -427,6 +427,7 @@ export default {
}); });
}, },
addShop() { addShop() {
this.shopForm = {};
this.shopOpen = true; this.shopOpen = true;
}, },
changeProdTitleZh() { changeProdTitleZh() {
...@@ -434,7 +435,8 @@ export default { ...@@ -434,7 +435,8 @@ export default {
list = this.currRow.goodsList.filter( list = this.currRow.goodsList.filter(
(item) => item.prodTitleZh == this.shopForm.prodTitleZh (item) => item.prodTitleZh == this.shopForm.prodTitleZh
); );
this.shopForm.sum = list[0].num; this.shopForm.sum =
this.currRow.num - this.currRow.installNum - this.totalSplitNum();
this.shopForm.orderItemId = list[0].orderItemId; this.shopForm.orderItemId = list[0].orderItemId;
this.shopForm.prodTitleEn = list[0].prodTitleEn; this.shopForm.prodTitleEn = list[0].prodTitleEn;
}, },
...@@ -443,7 +445,9 @@ export default { ...@@ -443,7 +445,9 @@ export default {
list = this.orderData.orderItemVOList.filter( list = this.orderData.orderItemVOList.filter(
(item) => item.prodTitleEn == this.shopForm.prodTitleEn (item) => item.prodTitleEn == this.shopForm.prodTitleEn
); );
this.shopForm.sum = list[0].num; this.shopForm.sum =
this.currRow.num - this.currRow.installNum - this.totalSplitNum();
this.shopForm.orderItemId = list[0].orderItemId;
this.shopForm.prodTitleZh = list[0].prodTitleZh; this.shopForm.prodTitleZh = list[0].prodTitleZh;
}, },
shopAdd() { shopAdd() {
...@@ -457,6 +461,10 @@ export default { ...@@ -457,6 +461,10 @@ export default {
this.$message.error("放入箱数不能大于总箱数"); this.$message.error("放入箱数不能大于总箱数");
return; return;
} }
if (this.shopForm.num === 0) {
this.$message.error("放入箱数不能为0");
return;
}
let params = { let params = {
num: this.shopForm.num, num: this.shopForm.num,
...@@ -467,7 +475,6 @@ export default { ...@@ -467,7 +475,6 @@ export default {
createSplitItem(params).then((res) => { createSplitItem(params).then((res) => {
this.$message.success("放入成功"); this.$message.success("放入成功");
this.getSplit(); this.getSplit();
this.shopForm = {};
}); });
this.shopOpen = false; this.shopOpen = false;
} }
......
...@@ -40,7 +40,12 @@ ...@@ -40,7 +40,12 @@
<el-table-column label="序号" type="index" align="center" width="50" /> <el-table-column label="序号" type="index" align="center" width="50" />
<el-table-column label="订单号" align="center" prop="orderNo"> <el-table-column label="订单号" align="center" prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a>
</div>
<div style="color:blue;fontWeight:bold;">
{{ scope.row.isExternalWarehouse === 1 ? '(外部仓)' : ''}}
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="货物信息" align="center" prop="goodsList"> <el-table-column label="货物信息" align="center" prop="goodsList">
...@@ -183,13 +188,44 @@ ...@@ -183,13 +188,44 @@
</template> </template>
<!-- 装柜批量输入 --> <!-- 装柜批量输入 -->
<template v-if="dialogConfig.type === 'batchInput' && dialogConfig.dialogVisible"> <template v-if="dialogConfig.type === 'batchInput' && dialogConfig.dialogVisible">
<el-form ref="batchForm" :rules="rules" :model="batchObj" label-position="top"> <el-form ref="batchForm" :rules="rules" :model="batchObj">
<el-form-item label="" prop="qrCode"> <el-form-item label="" prop="qrCode" class="two-element">
<el-input type="textarea" :rows="3" v-model="batchObj.qrCode" placeholder="请输入,多个以逗号分隔" clearable /> <el-input v-model="batchObj.qrCode" placeholder="请输入订单号" clearable />
<el-button style="marginLeft:10px;" type="primary" @click="queryOrderInfo">确定</el-button>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="订单号">
{{boxOrderInfo.orderNo}}
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="箱数">
<el-input-number v-if="boxOrderInfo.isExternalWarehouse === 1" v-model="batchObj.boxNum" :min="0" :max="boxOrderInfo.num" />
<template v-else>
{{boxOrderInfo.num}}
</template>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="方数">
{{getTotlContent(boxOrderInfo, ['volume'])}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="重量">
{{getTotlContent(boxOrderInfo, ['weight'])}}
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('batchForm')">提交</el-button> <el-button type="primary" :disabled="boxOrderInfo.orderId ? false : true" @click="batchLoad">提交</el-button>
<el-button @click="closeDialog2">取消</el-button> <el-button @click="closeDialog2">取消</el-button>
</el-row> </el-row>
</template> </template>
...@@ -214,6 +250,8 @@ import { ...@@ -214,6 +250,8 @@ import {
boxUpdate, boxUpdate,
approvalCreate, approvalCreate,
approvalCancel, approvalCancel,
getOrderDetailByBoxNo,
externalLoad,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { import {
getTotlContent, getTotlContent,
...@@ -279,6 +317,8 @@ export default { ...@@ -279,6 +317,8 @@ export default {
// 当前行 // 当前行
currRow: {}, currRow: {},
selectedUsers: [], selectedUsers: [],
// 订单信息
boxOrderInfo: {},
}; };
}, },
created() { created() {
...@@ -352,6 +392,7 @@ export default { ...@@ -352,6 +392,7 @@ export default {
case "batchInput": case "batchInput":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false);
this.batchObj = {}; this.batchObj = {};
this.boxOrderInfo = {};
break; break;
case "correction": case "correction":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false);
...@@ -520,11 +561,54 @@ export default { ...@@ -520,11 +561,54 @@ export default {
}); });
}); });
}, },
/* 跳转详情 */
jumpReviewDetail() { jumpReviewDetail() {
const { cabinetApprovalInfo } = this.shipmentObj; const { cabinetApprovalInfo } = this.shipmentObj;
toReviewDetail.apply(this, [cabinetApprovalInfo.bpmProcessId]); toReviewDetail.apply(this, [cabinetApprovalInfo.bpmProcessId]);
this.$emit("closeDialog1", "close"); this.$emit("closeDialog1", "close");
}, },
queryOrderInfo() {
this.$refs["batchForm"].validate((valid) => {
if (valid) {
getOrderDetailByBoxNo({
orderNumCode: this.batchObj.qrCode,
shipmentId: this.shipmentObj.id,
}).then((res) => {
const { data } = res;
this.boxOrderInfo = data;
this.batchObj.boxNum = data.num;
});
}
});
},
batchLoad() {
if (!this.boxOrderInfo.orderId) {
this.$message.error("请输入订单号");
return;
}
if (this.batchObj.boxNum === 0) {
this.$message.error("箱数不能为0");
return;
}
let params = {
boxNum: this.boxOrderInfo.num,
orderId: this.boxOrderInfo.orderId,
orderNo: this.boxOrderInfo.orderNo,
shipmentId: this.shipmentObj.id,
};
if (this.boxOrderInfo.isExternalWarehouse === 1) {
params.boxNum = this.batchObj.boxNum;
}
externalLoad(params).then((res) => {
serviceMsg(res, this).then(() => {
this.closeDialog2();
this.boxOrderInfo = {};
this.getLoadSecGoodsList();
});
});
},
}, },
computed: { computed: {
/* 是否审核中 */ /* 是否审核中 */
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcCutOffTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcCutOffTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="dcCustomsStatus"> <el-form-item label="状态" prop="dcCustomsStatus">
<el-radio-group v-model="cusDeclarationObj.dcCustomsStatus" :disabled="inReview"> <el-radio-group v-model="cusDeclarationObj.dcCustomsStatus" :disabled="inReview || isCheckDeal">
<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 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-radio-group>
</el-form-item> </el-form-item>
...@@ -38,14 +38,14 @@ ...@@ -38,14 +38,14 @@
<!-- 查验 --> <!-- 查验 -->
<div v-show="cusDeclarationObj.dcCustomsStatus === '3'"> <div v-show="cusDeclarationObj.dcCustomsStatus === '3'">
<el-form-item label="查验"> <el-form-item label="查验">
<el-radio-group v-model="cusDeclarationObj.dcCheckStatus" :disabled="inReview"> <el-radio-group v-model="cusDeclarationObj.dcCheckStatus" :disabled="inReview || isCheckDeal">
<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 v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)" :key="item.value" :label="item.value" :disabled="disabledRadio(item)">{{item.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</div> </div>
<!-- 退场 --> <!-- 退场 -->
<div v-show="cusDeclarationObj.dcCheckStatus === '1' || cusDeclarationObj.dcCheckStatus === '2'"> <div v-show="['1','2','3'].includes(cusDeclarationObj.dcCheckStatus)">
<el-form-item label="查验时间"> <el-form-item label="查验时间">
<el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcCheckTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcCheckTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
...@@ -55,18 +55,21 @@ ...@@ -55,18 +55,21 @@
<el-form-item label="新封条"> <el-form-item label="新封条">
<el-input v-model="cusDeclarationObj.dcStripSeal" placeholder="请输入新封条" clearable /> <el-input v-model="cusDeclarationObj.dcStripSeal" placeholder="请输入新封条" clearable />
</el-form-item> </el-form-item>
<el-form-item label="退场状态" v-if="cusDeclarationObj.dcCheckStatus === '1' || cusDeclarationObj.dcCheckStatus === '2'">
{{getCheckExamineStatus}}
</el-form-item>
</div> </div>
<!-- 放行 --> <!-- 放行 -->
<el-form-item label="放行时间" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCheckStatus === '2'"> <el-form-item label="放行时间" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCheckStatus === '3'">
<el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcPassTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcPassTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="装箱单"> <!-- <el-form-item label="装箱单">
<el-button type="primary">下载装箱单</el-button> <el-button type="primary">下载装箱单</el-button>
</el-form-item> </el-form-item> -->
<el-form-item label="报关单"> <el-form-item label="报关单">
<el-button type="primary">下载所有报关单</el-button> <el-button type="primary" @click="downloadCusFile">下载所有报关单</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -75,8 +78,8 @@ ...@@ -75,8 +78,8 @@
<el-button type="primary" plain @click="canclAudit">{{cusDeclarationObj.dcCheckStatus === '1' ? '取消全部退场审核' : '取消部分退场审核'}}</el-button> <el-button type="primary" plain @click="canclAudit">{{cusDeclarationObj.dcCheckStatus === '1' ? '取消全部退场审核' : '取消部分退场审核'}}</el-button>
</el-row> </el-row>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit(1)">保存</el-button> <el-button type="primary" @click="onSubmit(1)" :disabled="isCheckDeal">保存</el-button>
<el-button type="success" v-if="!inReview" @click="onSubmit(2)">提交</el-button> <el-button type="success" v-if="!inReview" @click="onSubmit(2)" :disabled="isCheckDeal">提交</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
<el-button type="primary" @click="extraCost" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'">额外费用</el-button> <el-button type="primary" @click="extraCost" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'">额外费用</el-button>
</el-row> </el-row>
...@@ -143,13 +146,14 @@ import { ...@@ -143,13 +146,14 @@ import {
extraCostOrder, extraCostOrder,
extraCostCreate, extraCostCreate,
extraCostUpdate, extraCostUpdate,
approvalCreate, approvalCancel,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { import {
formatNumberString, formatNumberString,
formatDateStr, formatDateStr,
serviceMsg, serviceMsg,
toReviewDetail, toReviewDetail,
downloadFile,
} from "../utils"; } from "../utils";
import ImageUpload from "@/components/ImageUpload"; import ImageUpload from "@/components/ImageUpload";
...@@ -260,7 +264,7 @@ export default { ...@@ -260,7 +264,7 @@ export default {
if (["1", "2"].includes(dcCheckStatus)) { if (["1", "2"].includes(dcCheckStatus)) {
const { checkExamineStatus } = this.shipmentObj; const { checkExamineStatus } = this.shipmentObj;
// 退场审核状态,1-审核中,2-审核成功,3-审核失败,4-取消 // 退场审核状态,1-审核中,2-审核成功,3-审核失败,4-取消
if ([0, 3, 4].includes(checkExamineStatus)) { if ([0, 2, 3, 4].includes(checkExamineStatus)) {
this.$modal this.$modal
.confirm( .confirm(
`您确认提交${ `您确认提交${
...@@ -278,8 +282,9 @@ export default { ...@@ -278,8 +282,9 @@ export default {
this.$emit("getBoxInfo"); this.$emit("getBoxInfo");
}); });
}); });
}) });
.catch(() => {}); } else {
this.submitCustomsCreate(operateType);
} }
} }
} }
...@@ -409,19 +414,45 @@ export default { ...@@ -409,19 +414,45 @@ export default {
}, },
/* 取消审核 */ /* 取消审核 */
canclAudit() { canclAudit() {
const { currNode, shipmentObj } = this.$attrs;
const { voName } = currNode;
approvalCancel({ approvalCancel({
applyReason: "取消审核", applyReason: "取消审核",
id: shipmentObj[voName].id, id: this.shipmentObj["customsApprovalInfo"].id,
shipmentId: shipmentObj.id, shipmentId: this.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
// 触发外层重新查询出货信息 // 触发外层重新查询出货信息
this.cancel("close");
this.$emit("getBoxInfo"); this.$emit("getBoxInfo");
}); });
}); });
}, },
/* 判断查验选择是否禁用 */
disabledRadio(item) {
const {
checkExamineStatus,
checkDealStatus,
customsInfo = {},
} = this.shipmentObj;
const { dcCheckStatus } = customsInfo;
// 部分退场状态并且审核通过,退场不可选择
if (
checkExamineStatus === 2 &&
dcCheckStatus === 2 &&
item.value === "1"
) {
return true;
}
return false;
},
/* 下载报关单 */
downloadCusFile() {
downloadFile(
"downloadCustomFiles",
{ shipmentId: this.shipmentObj.id },
`报关单(${this.shipmentObj.selfNo}).xlsx`,
"xlsx"
);
},
}, },
watch: { watch: {
"cusDeclarationObj.dcBoxWgt"(dcBoxWgt) { "cusDeclarationObj.dcBoxWgt"(dcBoxWgt) {
...@@ -433,6 +464,14 @@ export default { ...@@ -433,6 +464,14 @@ export default {
"cusDeclarationObj.dcCustomsStatus"(val) { "cusDeclarationObj.dcCustomsStatus"(val) {
if (val !== "3") { if (val !== "3") {
this.$set(this.cusDeclarationObj, "dcCheckStatus", ""); this.$set(this.cusDeclarationObj, "dcCheckStatus", "");
} else {
const { customsInfo = {} } = this.shipmentObj;
this.$set(
this.cusDeclarationObj,
"dcCheckStatus",
(customsInfo.dcCheckStatus && String(customsInfo.dcCheckStatus)) ||
"3"
);
} }
}, },
shipmentObj: { shipmentObj: {
...@@ -448,6 +487,40 @@ export default { ...@@ -448,6 +487,40 @@ export default {
}, },
}, },
}, },
computed: {
/* 获取报关审核退场状态文字 */
getCheckExamineStatus() {
const { checkExamineStatus, customsInfo = {} } = this.shipmentObj;
const { dcCheckStatus } = customsInfo;
if (checkExamineStatus === 1) {
return dcCheckStatus === 1 ? "退场审核中" : "部分退场审核中";
}
if (checkExamineStatus === 2) {
return dcCheckStatus === 1
? "审核通过,退场中"
: "审核通过,部分退场中";
}
return "未审核";
},
/* 判断是否已处理 */
isCheckDeal() {
const {
checkExamineStatus,
checkDealStatus,
customsInfo = {},
} = this.shipmentObj;
const { dcCheckStatus } = customsInfo;
// 退场未处理不能操作
if (
checkExamineStatus === 2 &&
dcCheckStatus === 1 &&
checkDealStatus === 0
) {
return true;
}
return false;
},
},
}; };
</script> </script>
......
...@@ -120,7 +120,16 @@ ...@@ -120,7 +120,16 @@
<div v-show="!part.fold"> <div v-show="!part.fold">
<el-table v-loading="preLoading" border :data="part.sectionGoodsList" @select="(selection)=>checkboxSelect(selection, part)" @select-all="(selection)=>checkboxSelect(selection, part)"> <el-table v-loading="preLoading" border :data="part.sectionGoodsList" @select="(selection)=>checkboxSelect(selection, part)" @select-all="(selection)=>checkboxSelect(selection, part)">
<el-table-column type="selection" align="center" width="55" fixed="left" /> <el-table-column type="selection" align="center" width="55" fixed="left" />
<el-table-column label="订单号" align="center" prop="orderNo" width="120" /> <el-table-column label="订单号" align="center" prop="orderNo" width="120">
<template slot-scope="scope">
<div>
{{scope.row.orderNo}}
</div>
<div style="color:blue;fontWeight:bold;">
{{ scope.row.isExternalWarehouse === 1 ? '(外部仓)' : ''}}
</div>
</template>
</el-table-column>
<el-table-column label="目的地" align="center" prop="destWarehouseName" width="120" /> <el-table-column label="目的地" align="center" prop="destWarehouseName" width="120" />
<el-table-column label="入仓时间" align="center" prop="rucangTime" width="120"> <el-table-column label="入仓时间" align="center" prop="rucangTime" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -205,6 +214,9 @@ ...@@ -205,6 +214,9 @@
<p>重货比:</p> <p>重货比:</p>
<p>{{item.weightRatio}}</p> <p>{{item.weightRatio}}</p>
</div> </div>
<div v-if="item.isExternalWarehouse === 1" style="color:blue;fontWeight:bold;">
<p>外部仓</p>
</div>
<div class="table-button"> <div class="table-button">
<el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)">
<el-button type="success" size="small">预装全部</el-button> <el-button type="success" size="small">预装全部</el-button>
...@@ -234,7 +246,7 @@ ...@@ -234,7 +246,7 @@
</el-table-column> </el-table-column>
<el-table-column label="包装类型" align="center" prop=""> <el-table-column label="包装类型" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_PACKAGE_TYPE" :value="scope.row.unit" /> <dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="scope.row.unit" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="材质" align="center" prop="material"> <el-table-column label="材质" align="center" prop="material">
...@@ -358,7 +370,7 @@ export default { ...@@ -358,7 +370,7 @@ export default {
operatorData: {}, operatorData: {},
// 校验 // 校验
rules: { rules: {
noticeUser: [{ required: true, message: "必填", trigger: "change" }], noticeUser: [{ required: true, message: "目的地操作员必填", trigger: "change" }],
}, },
// 出货信息 // 出货信息
shipmentObj: this.$attrs.shipmentObj, shipmentObj: this.$attrs.shipmentObj,
...@@ -450,8 +462,10 @@ export default { ...@@ -450,8 +462,10 @@ export default {
}, },
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["operatorForm"].validate((valid) => { this.$refs["operatorForm"].validate((valid, errors) => {
if (valid) { if (!valid) {
return this.$showFormValidateErrors(errors);
}
approvalCreate({ approvalCreate({
...this.operatorData, ...this.operatorData,
applyReason: "预装审核", applyReason: "预装审核",
...@@ -464,7 +478,6 @@ export default { ...@@ -464,7 +478,6 @@ export default {
this.$emit("closeDialog", "submit"); this.$emit("closeDialog", "submit");
}); });
}); });
}
}); });
}, },
/* 统计列 */ /* 统计列 */
......
...@@ -28,7 +28,16 @@ ...@@ -28,7 +28,16 @@
<el-table border :data="tallyList" @select="checkboxSelect" @select-all="checkboxSelect" max-height="600px"> <el-table border :data="tallyList" @select="checkboxSelect" @select-all="checkboxSelect" max-height="600px">
<el-table-column type="selection" align="center" width="55" fixed="left" /> <el-table-column type="selection" align="center" width="55" fixed="left" />
<el-table-column type="index" align="center" label="序号" width="50" /> <el-table-column type="index" align="center" label="序号" width="50" />
<el-table-column label="订单号" align="center" prop="orderNo" /> <el-table-column label="订单号" align="center" prop="orderNo">
<template slot-scope="scope">
<div>
{{scope.row.orderNo}}
</div>
<div style="color:blue;fontWeight:bold;">
{{ scope.row.isExternalWarehouse === 1 ? '(外部仓)' : ''}}
</div>
</template>
</el-table-column>
<el-table-column label="商品信息" width="250px" align="center" prop="prodTitleZh"> <el-table-column label="商品信息" width="250px" align="center" prop="prodTitleZh">
</el-table-column> </el-table-column>
<el-table-column label="备案" align="center" prop="productRecord"> <el-table-column label="备案" align="center" prop="productRecord">
......
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as _BOX from "@/api/ecw/box";
import FileSaver from "file-saver";
/** /**
* 节点状态值 * 节点状态值
...@@ -442,7 +444,7 @@ function seaBaseData() { ...@@ -442,7 +444,7 @@ function seaBaseData() {
* *
* @return {*} * @return {*}
*/ */
function seaAirBaseData() { function seaAirBaseData() {
return [ return [
[ [
{ {
...@@ -1492,6 +1494,19 @@ function toReviewDetail(bpmProcessId) { ...@@ -1492,6 +1494,19 @@ function toReviewDetail(bpmProcessId) {
}); });
} }
function downloadFile(funName, params, fileName, fileFormat) {
_BOX[funName](params).then((res) => {
let blob = new Blob([res], { type: `application/${fileFormat}` });
FileSaver.saveAs(blob, fileName);
});
}
function downloadFileByUrl(funName, params) {
_BOX[funName](params).then((res) => {
if (res.data) FileSaver.saveAs(res.data);
});
}
export { export {
getStatusName, getStatusName,
getColmnMapping, getColmnMapping,
...@@ -1508,4 +1523,6 @@ export { ...@@ -1508,4 +1523,6 @@ export {
sumStatistics, sumStatistics,
serviceMsg, serviceMsg,
toReviewDetail, toReviewDetail,
downloadFile,
downloadFileByUrl,
}; };
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')"> <el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="customerId !== '0' && form.customerService">
<el-option v-for="item in serviceUserList" <el-option v-for="item in serviceUserList"
:key="item.id" :label="item.nickname" :value="item.id" /> :key="item.id" :label="item.nickname" :value="item.id" />
</el-select> </el-select>
...@@ -282,7 +282,7 @@ ...@@ -282,7 +282,7 @@
> >
<template v-slot = "{row}"> <template v-slot = "{row}">
<el-form-item label=""> <el-form-item label="">
<el-select v-model="row.userid" @change="selectBD" size="mini"> <el-select v-model="row.userid" @change="selectBD" size="mini" filterable>
<el-option v-for="(item,index) in memberList" :value="item.id" :key="item.id" :label="item.nickname + '(' + item.mobile + ')'" ></el-option> <el-option v-for="(item,index) in memberList" :value="item.id" :key="item.id" :label="item.nickname + '(' + item.mobile + ')'" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -431,16 +431,17 @@ export default { ...@@ -431,16 +431,17 @@ export default {
}, },
created() { created() {
this.reset() this.reset()
if(this.customerId !== '0') { if(this.customerId !== '0') {
// 编辑客户
this.getCustomer(this.customerId).then(() => { this.getCustomer(this.customerId).then(() => {
getCustomerContactsListByCustomer({customerId: this.customerId}).then(r => { getCustomerContactsListByCustomer({customerId: this.customerId}).then(r => {
this.form.customerContacts = r.data this.form.customerContacts = r.data
}) })
}) })
} else { } else {
const obj = Object.assign({}, this.$route, { title: this.$t('自定义标题') }) // 新建客户
this.$tab.updatePage(obj); this.handleAddContact()
this.$tab.updatePage({...this.$route, meta: {...this.$route.meta, name: 'abc'}})
} }
getNodeList().then(r => { getNodeList().then(r => {
...@@ -664,6 +665,7 @@ export default { ...@@ -664,6 +665,7 @@ export default {
createTime: undefined, createTime: undefined,
isShowTidanPrice:true, isShowTidanPrice:true,
}; };
this.form.createTime = (new Date()).getTime()
this.resetForm("form"); this.resetForm("form");
}, },
getCustomer(id) { getCustomer(id) {
......
...@@ -20,10 +20,10 @@ ...@@ -20,10 +20,10 @@
<el-descriptions-item :label="$t('结算方式')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_BALANCE, customer.balance) }}</el-descriptions-item> <el-descriptions-item :label="$t('结算方式')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_BALANCE, customer.balance) }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户生日')">{{ parseTime(customer.birthday, '{y}-{m}-{d}') }}</el-descriptions-item> <el-descriptions-item :label="$t('客户生日')">{{ parseTime(customer.birthday, '{y}-{m}-{d}') }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户等级')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_LEVEL, customer.level) }}</el-descriptions-item> <el-descriptions-item :label="$t('客户等级')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_LEVEL, customer.level) }}</el-descriptions-item>
<el-descriptions-item :label="$t('国家')">{{ getDictDataLabel(DICT_TYPE.COUNTRY, customer.country) }}</el-descriptions-item> <el-descriptions-item :label="$t('国家')">{{ country }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('业务员')">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item :label="$t('业务员')">{{ customer }}</el-descriptions-item>-->
<el-descriptions-item :label="$t('客户来源')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_SOURCE, customer.source) }}</el-descriptions-item> <el-descriptions-item :label="$t('客户来源')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_SOURCE, customer.source) }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户类别')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_TYPE, customer.type) }}</el-descriptions-item> <el-descriptions-item :label="$t('客户类别')">{{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, customer.type.split(',')).map(e => e.label).join(', ') }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>-->
<el-descriptions-item :label="$t('推介人')">{{ promoter }}</el-descriptions-item> <el-descriptions-item :label="$t('推介人')">{{ promoter }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">{{ customerService }}</el-descriptions-item> <el-descriptions-item :label="$t('客户经理')">{{ customerService }}</el-descriptions-item>
...@@ -73,13 +73,15 @@ ...@@ -73,13 +73,15 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="username" prop="userid"
:label="$t('关联账号')" :label="$t('关联账号')"
:formatter="userIdFormatter"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="social" prop="social"
:label="$t('社交软件')" :label="$t('社交软件')"
:formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.SOCIAL, cellValue)"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -404,9 +406,9 @@ import { ...@@ -404,9 +406,9 @@ import {
orderStatistics, orderStatistics,
creditLogCreate, creditLogCreate,
creditScoreStatistic, creditScoreStatistic,
infoListReceiptPage infoListReceiptPage, userMemberUserList
} from '@/api/ecw/customer' } from '@/api/ecw/customer'
import { DICT_TYPE, getDictDataLabel } from '@/utils/dict' import { DICT_TYPE, getDictDataLabel, getDictDatas2 } from '@/utils/dict'
import { getProductTypeList } from '@/api/ecw/productType' import { getProductTypeList } from '@/api/ecw/productType'
import { getNodeList } from '@/api/ecw/node' import { getNodeList } from '@/api/ecw/node'
import CustomerFollow from "@/components/CustomerFollow" import CustomerFollow from "@/components/CustomerFollow"
...@@ -417,6 +419,7 @@ import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts' ...@@ -417,6 +419,7 @@ import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import {getOrderPage} from "@/api/ecw/order"; import {getOrderPage} from "@/api/ecw/order";
import Template from "@/views/cms/template"; import Template from "@/views/cms/template";
import {getCreditRulePage} from "@/api/customer/creditRule"; import {getCreditRulePage} from "@/api/customer/creditRule";
import {getCountry} from "@/api/ecw/country"
export default { export default {
name: 'query', name: 'query',
...@@ -442,6 +445,10 @@ export default { ...@@ -442,6 +445,10 @@ export default {
getCustomerContactsListByCustomer({customerId: this.id}).then(r => { getCustomerContactsListByCustomer({customerId: this.id}).then(r => {
this.customerContacts = r.data this.customerContacts = r.data
}) })
getCountry(this.customer.country).then(r => {
this.country = r.data.nameZh
})
}) })
getProductTypeList().then(r => { getProductTypeList().then(r => {
this.productTypeList = r.data this.productTypeList = r.data
...@@ -461,6 +468,10 @@ export default { ...@@ -461,6 +468,10 @@ export default {
this.getOrderStatistics() this.getOrderStatistics()
this.creditScoreStatisticFn() this.creditScoreStatisticFn()
this.infoListReceiptFn() this.infoListReceiptFn()
userMemberUserList().then(r => {
this.memberList = r.data
})
}, },
data() { data() {
return { return {
...@@ -476,12 +487,14 @@ export default { ...@@ -476,12 +487,14 @@ export default {
dialogVisible:false, dialogVisible:false,
DICT_TYPE, DICT_TYPE,
getDictDataLabel, getDictDataLabel,
getDictDatas2,
parseTime, parseTime,
nodeList: [], nodeList: [],
productTypeList: [], productTypeList: [],
customerSelect: [], customerSelect: [],
serviceUserList: [], serviceUserList: [],
customerContacts: [], customerContacts: [],
memberList: [],
customer: { customer: {
id: undefined, id: undefined,
number: undefined, number: undefined,
...@@ -559,7 +572,8 @@ export default { ...@@ -559,7 +572,8 @@ export default {
pageNo:1, pageNo:1,
pageSize:10, pageSize:10,
}, },
infoListReceiptTotal:0 infoListReceiptTotal:0,
country: ''
} }
}, },
computed: { computed: {
...@@ -591,6 +605,14 @@ export default { ...@@ -591,6 +605,14 @@ export default {
} }
}, },
methods:{ methods:{
userIdFormatter(row, column, cellValue){
const member = this.memberList.find(e => e.id === cellValue)
if (member) {
return member.nickname + '(' + member.mobile + ')'
} else {
return ''
}
},
changeDate(val){ changeDate(val){
if(val){ if(val){
this.queryParams.houseStartDate = val[0]; this.queryParams.houseStartDate = val[0];
......
...@@ -1100,8 +1100,7 @@ export default { ...@@ -1100,8 +1100,7 @@ export default {
delete params.receivableDetail delete params.receivableDetail
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.receivableVOList = this.list params.receivableVOList = this.list
} }else{
if (params.receivableVOList.length === 0) {
this.$modal.msgError("请添加未收客户款项"); this.$modal.msgError("请添加未收客户款项");
return return
} }
...@@ -1144,6 +1143,7 @@ export default { ...@@ -1144,6 +1143,7 @@ export default {
if (valid) { if (valid) {
this.saveBtnLoading = true this.saveBtnLoading = true
if (this.id && this.id !== '0') { if (this.id && this.id !== '0') {
if(params.state==0) params.state = 1
updateReceipt(params).then(res => { updateReceipt(params).then(res => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.$router.back(); this.$router.back();
......
...@@ -100,14 +100,12 @@ ...@@ -100,14 +100,12 @@
label-width="0" label-width="0"
style="margin-bottom: 0" style="margin-bottom: 0"
prop="supplierBankAccount" prop="supplierBankAccount"
required
error="请选择收款账户"
> >
<el-select v-model="form.supplierBankAccount" placeholder="请选择收款账户"> <el-select v-model="form.supplierBankAccount" @change="selectChangeBank" placeholder="请选择收款账户">
<el-option <el-option
v-for="item in bankData" v-for="item in bankData"
:key="item.id" :key="item.id"
:label="item.bankName + '(' + item.bankNameAccount+ ')'" :label="item.bankName + '(' + item.bankAccount+ ')'"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
...@@ -416,7 +414,7 @@ import { getChannelList } from "@/api/ecw/channel"; ...@@ -416,7 +414,7 @@ import { getChannelList } from "@/api/ecw/channel";
import CustomerSelector from "@/components/CustomerSelector"; import CustomerSelector from "@/components/CustomerSelector";
import { listSimpleDepts } from "@/api/system/dept"; import { listSimpleDepts } from "@/api/system/dept";
import { getTradeCityList } from "@/api/ecw/region"; import { getTradeCityList } from "@/api/ecw/region";
import { getSupplierPage } from "@/api/ecw/supplier"; import { getSupplierPage,getSupplier } from "@/api/ecw/supplier";
import { getPayableList, getPayableInfoByIds, createPayment, getPaymentInfoByIds, getPaymentItem, updatePayment } from "@/api/ecw/financial" import { getPayableList, getPayableInfoByIds, createPayment, getPaymentInfoByIds, getPaymentItem, updatePayment } from "@/api/ecw/financial"
export default { export default {
name: "CreatPayment", name: "CreatPayment",
...@@ -557,6 +555,10 @@ export default { ...@@ -557,6 +555,10 @@ export default {
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list] params.payableReqVOList = [...this.list]
} }
if(!params.supplierBankAccount){
this.$modal.msgError("请选择供应商银行账号");
return
}
if (params.payableReqVOList.length === 0) { if (params.payableReqVOList.length === 0) {
this.$modal.msgError("请选择供应商未付款项"); this.$modal.msgError("请选择供应商未付款项");
return return
...@@ -584,6 +586,10 @@ export default { ...@@ -584,6 +586,10 @@ export default {
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list] params.payableReqVOList = [...this.list]
} }
if(!params.supplierBankAccount){
this.$modal.msgError("请选择供应商银行账号");
return
}
if (params.payableReqVOList.length === 0) { if (params.payableReqVOList.length === 0) {
this.$modal.msgError("请选择供应商未付款项"); this.$modal.msgError("请选择供应商未付款项");
return return
...@@ -592,11 +598,24 @@ export default { ...@@ -592,11 +598,24 @@ export default {
} }
}) })
}, },
selectChangeBank(val){
this.$forceUpdate()
console.log(this.form.supplierBankAccount)
},
selectChange(val) { selectChange(val) {
this.bankData = []
// this.form.supplierBankAccount=''
if(val){
getSupplier(val).then((res)=>{
this.bankData = res.data.bankList
this.form.supplierBankAccount=''
})
}
const t = this.allSupplier.find(v => v.id == val) const t = this.allSupplier.find(v => v.id == val)
t && (this.form.supplierName = t.companyZh) t && (this.form.supplierName = t.companyZh)
t && (this.bankData = t.bankList) // t && (this.bankData = t.bankList)
}, },
handleQuery() {}, handleQuery() {},
handleSelectionChange(val) { handleSelectionChange(val) {
......
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
<el-table-column :label="$t('件数')" width="90px" prop="num" /> <el-table-column :label="$t('件数')" width="90px" prop="num" />
<el-table-column :label="$t('包装单位')"> <el-table-column :label="$t('包装单位')">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :value="scope.row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable /> <dict-tag :value="scope.row.unit" :type="DICT_TYPE.ECW_PACKAGING_TYPE" defaultable />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('箱规(m)')" width="120px" prop="boxGauge" /> <el-table-column :label="$t('箱规(m)')" width="120px" prop="boxGauge" />
......
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('包装单位')"> <el-table-column :label="$t('包装单位')">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable @input="calculationPrice" :disabled="!canAddProduct" /> <dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGING_TYPE" defaultable @input="calculationPrice" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('数量') + '(个)'"> <el-table-column :label="$t('数量') + '(个)'">
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<el-table-column <el-table-column
:label="$t('包装')"> :label="$t('包装')">
<template v-slot="{row}"> <template v-slot="{row}">
<dict-tag :value="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" /> <dict-tag :value="row.unit" :type="DICT_TYPE.ECW_PACKAGING_TYPE" />
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="unit" :label="$t('单位')" width="90px"> <el-table-column prop="unit" :label="$t('单位')" width="90px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_PACKAGE_TYPE" :value="row.unit" /> <dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="row.unit" />
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('包装单位')"> <el-table-column :label="$t('包装单位')">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable :disabled="!canAddProduct || !productEditable" /> <dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGING_TYPE" defaultable :disabled="!canAddProduct || !productEditable" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('数量') + '(个)'" width="120px"> <el-table-column :label="$t('数量') + '(个)'" width="120px">
......
...@@ -209,11 +209,11 @@ ...@@ -209,11 +209,11 @@
</el-row> </el-row>
<div v-if="orderExceptionData.orderExceptionType=='order_miss_exception'||orderExceptionData.orderExceptionType=='order_superfluous_goods_exception'||orderExceptionData.orderExceptionType=='order_in_water_exception'||orderExceptionData.orderExceptionType=='order_damage_exception'"> <div v-if="orderExceptionData.orderExceptionType=='order_miss_exception'||orderExceptionData.orderExceptionType=='order_superfluous_goods_exception'||orderExceptionData.orderExceptionType=='order_in_water_exception'||orderExceptionData.orderExceptionType=='order_damage_exception'">
<el-row> <!-- <el-row>
<el-form-item :label="$t('详细内容:')"> <el-form-item :label="$t('详细内容:')">
{{orderExceptionData.orderExceptionDetails||'无'}} {{orderExceptionData.orderExceptionDetails||'无'}}
</el-form-item> </el-form-item>
</el-row> </el-row> -->
<el-row > <el-row >
<el-form-item :label="$t('状态:')"> <el-form-item :label="$t('状态:')">
<el-radio v-model="handlerParams.orderExceptionStatus" label="1">{{$t('处理中')}}</el-radio> <el-radio v-model="handlerParams.orderExceptionStatus" label="1">{{$t('处理中')}}</el-radio>
...@@ -221,7 +221,24 @@ ...@@ -221,7 +221,24 @@
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item :label="$t('查明原因:')" required> <el-form-item :label="$t('处理结果:')" required v-if="handlerParams.orderExceptionStatus==2">
<el-select v-model="handlerParams.orderExceptionHandlerResult" placeholder="请选择" clearable>
<el-option v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')"
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item :label="$t('赔付金额:')" size="medium" required v-if="handlerParams.orderExceptionStatus==2">
<el-input style="width: 100px;" type="text" v-model="handlerParams.amount" />
<el-select v-model="handlerParams.currency" style="width: 100px;margin-left: 10px;" clearable>
<el-option v-for="dict in getDictDatas('shipping_price_unit') "
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item :label="$t('查明原因:')" required v-if="handlerParams.orderExceptionStatus==1">
<el-select v-model="handlerParams.orderExceptionHandlerResult" clearable> <el-select v-model="handlerParams.orderExceptionHandlerResult" clearable>
<el-option v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')" <el-option v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
...@@ -300,7 +317,7 @@ ...@@ -300,7 +317,7 @@
getExceptionById(that.orderExceptionId).then(response => { getExceptionById(that.orderExceptionId).then(response => {
that.orderExceptionData = response.data; that.orderExceptionData = response.data;
// that.orderExceptionData.orderExceptionType = 'order_other_exception' // that.orderExceptionData.orderExceptionType = 'order_other_exception'
// that.orderExceptionData.orderExceptionType = 'order_pick_up_exception' // that.orderExceptionData.orderExceptionType = 'order_miss_exception'
// that.orderExceptionData.orderExceptionType = 'order_pay_exception' // that.orderExceptionData.orderExceptionType = 'order_pay_exception'
that.loading = false; that.loading = false;
that.orderId = response.data.orderId that.orderId = response.data.orderId
......
...@@ -8,9 +8,16 @@ ...@@ -8,9 +8,16 @@
<el-tabs v-model="activeName" type="card" @tab-click="handleTabs"> <el-tabs v-model="activeName" type="card" @tab-click="handleTabs">
<el-tab-pane :label="edit ? '货物修改' : '货物入仓'" name="first"> <el-tab-pane :label="edit ? '货物修改' : '货物入仓'" name="first">
<el-descriptions border :column="2"> <el-descriptions border :column="2">
<el-descriptions-item label="中文品名">{{ warehousing.prodTitleZh }}</el-descriptions-item> <el-descriptions-item>
<el-descriptions-item label="英文品名">{{ warehousing.prodTitleEn }}</el-descriptions-item> <template slot="label"><span style="color: red">*</span> 中文品名</template>
{{ warehousing.prodTitleZh }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"><span style="color: red">*</span> 英文品名</template>
{{ warehousing.prodTitleEn }}
</el-descriptions-item>
<el-descriptions-item label="品牌"> <el-descriptions-item label="品牌">
<template slot="label"><span style="color: red">*</span> 品牌</template>
<span v-if="false">{{ form.brand ? brand : '无' }}</span> <span v-if="false">{{ form.brand ? brand : '无' }}</span>
<el-select <el-select
v-else v-model="form.brand" v-else v-model="form.brand"
...@@ -26,8 +33,14 @@ ...@@ -26,8 +33,14 @@
</el-option> </el-option>
</el-select> </el-select>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否备案">{{ isBeian }}</el-descriptions-item> <el-descriptions-item label="是否备案">
<el-descriptions-item label="收费模式">{{ feeType }}</el-descriptions-item> <template slot="label"><span style="color: red">*</span> 是否备案</template>
{{ isBeian }}
</el-descriptions-item>
<el-descriptions-item label="收费模式">
<template slot="label"><span style="color: red">*</span> 收费模式</template>
{{ feeType }}
</el-descriptions-item>
<el-descriptions-item label="填单参数"> <el-descriptions-item label="填单参数">
箱数: 箱数:
<el-input size="mini" v-if="edit" v-model="warehousing.num" style="display: inline-block;width: 100px"></el-input> <el-input size="mini" v-if="edit" v-model="warehousing.num" style="display: inline-block;width: 100px"></el-input>
...@@ -64,10 +77,10 @@ ...@@ -64,10 +77,10 @@
<el-form-item :rules="tableFormRules.cartonsNum" :prop="$index + '.cartonsNum'"> <el-form-item :rules="tableFormRules.cartonsNum" :prop="$index + '.cartonsNum'">
<span v-if="tableData[$index].id && !edit"> <span v-if="tableData[$index].id && !edit">
{{ tableData[$index].cartonsNum }} {{ tableData[$index].cartonsNum }}
{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }} {{ getDictDataLabel(DICT_TYPE.ECW_PACKAGING_TYPE, tableData[$index].unit) }}
</span> </span>
<el-input v-else v-model="tableData[$index].cartonsNum" placeholder=""> <el-input v-else v-model="tableData[$index].cartonsNum" placeholder="">
<span slot="append">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }}</span> <span slot="append">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGING_TYPE, tableData[$index].unit) }}</span>
</el-input> </el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -75,8 +88,8 @@ ...@@ -75,8 +88,8 @@
<el-table-column label="包装类型" width="100px"> <el-table-column label="包装类型" width="100px">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item> <el-form-item>
<span v-if="tableData[$index].id && !edit">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }}</span> <span v-if="tableData[$index].id && !edit">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGING_TYPE, tableData[$index].unit) }}</span>
<dict-selector v-else :type="DICT_TYPE.ECW_PACKAGE_TYPE" v-model="tableData[$index].unit"></dict-selector> <dict-selector v-else :type="DICT_TYPE.ECW_PACKAGING_TYPE" v-model="tableData[$index].unit"></dict-selector>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -195,10 +208,10 @@ ...@@ -195,10 +208,10 @@
<el-form-item :rules="tableFormRules.cartonsNum" :prop="$index + '.cartonsNum'"> <el-form-item :rules="tableFormRules.cartonsNum" :prop="$index + '.cartonsNum'">
<span v-if="tableData1[$index].id"> <span v-if="tableData1[$index].id">
{{ tableData1[$index].cartonsNum }} {{ tableData1[$index].cartonsNum }}
{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData1[$index].unit) }} {{ getDictDataLabel(DICT_TYPE.ECW_PACKAGING_TYPE, tableData1[$index].unit) }}
</span> </span>
<el-input v-else v-model="tableData1[$index].cartonsNum" placeholder=""> <el-input v-else v-model="tableData1[$index].cartonsNum" placeholder="">
<span slot="append">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData1[$index].unit) }}</span> <span slot="append">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGING_TYPE, tableData1[$index].unit) }}</span>
</el-input> </el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -206,8 +219,8 @@ ...@@ -206,8 +219,8 @@
<el-table-column label="包装类型" width="100px"> <el-table-column label="包装类型" width="100px">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item> <el-form-item>
<span v-if="tableData1[$index].id">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData1[$index].unit) }}</span> <span v-if="tableData1[$index].id">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGING_TYPE, tableData1[$index].unit) }}</span>
<dict-selector v-else :type="DICT_TYPE.ECW_PACKAGE_TYPE" v-model="tableData1[$index].unit"></dict-selector> <dict-selector v-else :type="DICT_TYPE.ECW_PACKAGING_TYPE" v-model="tableData1[$index].unit"></dict-selector>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -294,7 +307,7 @@ ...@@ -294,7 +307,7 @@
import dictSelector from "@/components/DictSelector" import dictSelector from "@/components/DictSelector"
import {DICT_TYPE, getDictDataLabel} from "@/utils/dict" import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
import { orderWarehouseIn, orderWarehouseInUpdateApply } from '@/api/ecw/order' import { orderWarehouseIn, orderWarehouseInUpdateApply } from '@/api/ecw/order'
import { getFeeTypeByCustomerProduct, getProductBrankPage } from '@/api/ecw/productBrank' import { getFeeTypeByOrderProduct, getProductBrankPage } from '@/api/ecw/productBrank'
import WorkFlow from "@/components/WorkFlow" import WorkFlow from "@/components/WorkFlow"
import elSelect from '@/components/render/slots/el-select' import elSelect from '@/components/render/slots/el-select'
import ProductSelector from "@/components/ProductSelector" import ProductSelector from "@/components/ProductSelector"
...@@ -309,7 +322,7 @@ export default { ...@@ -309,7 +322,7 @@ export default {
}, },
props: { props: {
customerId: { orderId: {
type: Number, type: Number,
default: undefined default: undefined
}, },
...@@ -346,12 +359,6 @@ export default { ...@@ -346,12 +359,6 @@ export default {
if(e.id){ if(e.id){
e.id = e.id.toString() e.id = e.id.toString()
} }
const boxGauge = e.boxGauge
if (boxGauge && boxGauge.length > 0) {
const boxGaugeList = boxGauge.split('*')
const [boxGauge1, boxGauge2, boxGauge3] = boxGaugeList
return {...e, boxGauge1, boxGauge2, boxGauge3}
}
return e return e
}) })
] ]
...@@ -365,7 +372,7 @@ export default { ...@@ -365,7 +372,7 @@ export default {
opened: false, opened: false,
brandList: [], brandList: [],
form: { form: {
"brand": "", "brand": "0",
"brandType": 0, "brandType": 0,
"inTime": "", "inTime": "",
"material": "", "material": "",
...@@ -392,7 +399,7 @@ export default { ...@@ -392,7 +399,7 @@ export default {
quantityAll: [{required: true, message: "数量不能为空", trigger: "blur"}] quantityAll: [{required: true, message: "数量不能为空", trigger: "blur"}]
}, },
form1: { form1: {
"brand": "", "brand": "0",
"brandType": 0, "brandType": 0,
"inTime": "", "inTime": "",
"material": "", "material": "",
...@@ -457,10 +464,10 @@ export default { ...@@ -457,10 +464,10 @@ export default {
}, },
handleTabs(){}, handleTabs(){},
handleBrandChange(v){ handleBrandChange(v){
getFeeTypeByCustomerProduct({ getFeeTypeByOrderProduct({
brandId: parseInt(v), brandId: parseInt(v),
productId: this.warehousing.prodId, productId: this.warehousing.prodId,
customerId: this.customerId orderId: this.orderId
}).then(r => { }).then(r => {
if(r.code === 0){ if(r.code === 0){
(this.activeName === "first" ? this.form : this.form1).feeType = parseInt(r.data.feeType); (this.activeName === "first" ? this.form : this.form1).feeType = parseInt(r.data.feeType);
...@@ -581,7 +588,7 @@ export default { ...@@ -581,7 +588,7 @@ export default {
"cartonsNum": cartonsNum > 0 ? cartonsNum : '', "cartonsNum": cartonsNum > 0 ? cartonsNum : '',
"expressNo": "", "expressNo": "",
"quantityAll": "", "quantityAll": "",
"unit": "package", "unit": "1",
"volume": '', "volume": '',
"weight": '' "weight": ''
}) })
...@@ -605,7 +612,15 @@ export default { ...@@ -605,7 +612,15 @@ export default {
// 入仓修改的时候 // 入仓修改的时候
this.form.orderWarehouseInItemDoList = this.warehousing.orderWarehouseInBackItemDoList this.form.orderWarehouseInItemDoList = this.warehousing.orderWarehouseInBackItemDoList
return this.form.orderWarehouseInItemDoList return this.form.orderWarehouseInItemDoList.map(e => {
const boxGauge = e.boxGauge
if (boxGauge && boxGauge.length > 0) {
const boxGaugeList = boxGauge.split('*')
const [boxGauge1, boxGauge2, boxGauge3] = boxGaugeList
return {...e, boxGauge1, boxGauge2, boxGauge3}
}
return e
})
}, },
tableData1() { tableData1() {
return this.form1.orderWarehouseInItemDoList return this.form1.orderWarehouseInItemDoList
......
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :city-id="cityId"></warehouse-area-dialog> :order-id="orderId" :city-id="cityId"></warehouse-area-dialog>
<edit-dialog :title="title" :customer-id="order.customerId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit"></edit-dialog> <edit-dialog :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit"></edit-dialog>
<!-- 完成入仓 --> <!-- 完成入仓 -->
<el-dialog <el-dialog
...@@ -291,14 +291,14 @@ export default { ...@@ -291,14 +291,14 @@ export default {
}) })
}, },
getTowSum(){ getTowSum(){
let sumVolume = 0 // let sumVolume = 0
let sumWeight = 0 // let sumWeight = 0
this.order.orderItemVOList.forEach(e => { // this.order.orderItemVOList.forEach(e => {
if (e?.warehouseInInfoVO?.volume) sumVolume += e.warehouseInInfoVO.volume // if (e?.warehouseInInfoVO?.volume) sumVolume += e.warehouseInInfoVO.volume
if (e?.warehouseInInfoVO?.weight) sumWeight += e.warehouseInInfoVO.weight // if (e?.warehouseInInfoVO?.weight) sumWeight += e.warehouseInInfoVO.weight
}) // })
this.form.sumVolume = sumVolume this.form.sumVolume = this.order.sumVolume// || sumVolume
this.form.sumWeight = sumWeight this.form.sumWeight = this.order.sumWeight// || sumWeight
}, },
getOrder(){ getOrder(){
getOrder(this.orderId).then(r => { getOrder(this.orderId).then(r => {
...@@ -326,18 +326,20 @@ export default { ...@@ -326,18 +326,20 @@ export default {
return return
} }
} }
let p = { let form = {
orderSpecialNeedReceivableReqVoList: this.form.orderSpecialNeedReceivableReqVoList, orderSpecialNeedReceivableReqVoList: this.form.orderSpecialNeedReceivableReqVoList,
"orderLocationCreateReqVOList": this.form.orderLocationCreateReqVOList, "orderLocationCreateReqVOList": this.form.orderLocationCreateReqVOList,
"orderId": this.order.orderId, "orderId": this.order.orderId,
urls: this.form.urls urls: this.form.urls,
sumVolume: this.form.sumVolume,
sumWeight: this.form.sumWeight
} }
if (this.escapeBol) { if (this.escapeBol) {
p.exceptionUrls = this.form.exceptionUrls.split(','); form.exceptionUrls = this.form.exceptionUrls.split(',');
p.descZh = this.form.descZh; form.descZh = this.form.descZh;
p.manualExceptionType = this.form.manualExceptionType form.manualExceptionType = this.form.manualExceptionType
} }
orderWarehouseInFinish(p).then(r => { orderWarehouseInFinish(form).then(r => {
if (r.code === 0) { if (r.code === 0) {
this.escapeBol = false; this.escapeBol = false;
this.finishVisible = false this.finishVisible = false
......
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