Commit 0231012e authored by dcy's avatar dcy

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

parents 542d3768 37182c43
...@@ -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",
}); });
} }
...@@ -227,4 +243,79 @@ export function getBoxApproval(params) { ...@@ -227,4 +243,79 @@ export function getBoxApproval(params) {
method: "get", method: "get",
params, params,
}); });
} }
\ No newline at end of file
// 获得制作提货单(审核中调用)
export function getBillOfLandingInProcessing(params){
return request({
url: "/shipment/make-bill-of-lading/getInProcessing",
method: "get",
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 **********************************/
......
...@@ -430,4 +430,31 @@ export function orderSpecialNeedGet(params){ ...@@ -430,4 +430,31 @@ export function orderSpecialNeedGet(params){
method:'delete', method:'delete',
data data
}) })
} }
\ No newline at end of file
// 获得订单修改申请详情
export function getUpdateInfo(id){
return request({
url:'/ecw/order/update/info/' + id,
method:'get'
})
}
// 根据审批ID获得订单修改申请详情
export function getUpdateInfoByApproveId(approveId){
return request({
url:'/ecw/order/update/info',
method:'get',
params: {approveId}
})
}
// (新修改订单)订单修改审批申请
export function updateApply(data){
return request({
url:'/ecw/order/update/apply',
method:'put',
data
})
}
\ No newline at end of file
...@@ -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
}) })
......
...@@ -49,6 +49,7 @@ export default { ...@@ -49,6 +49,7 @@ export default {
return name.trim() === '首页' // 修复 Index 重复的问题 return name.trim() === '首页' // 修复 Index 重复的问题
}, },
handleLink(item) { handleLink(item) {
return
const { redirect, path } = item const { redirect, path } = item
if (redirect) { if (redirect) {
this.$router.push(redirect) this.$router.push(redirect)
......
...@@ -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', // 出货通知类型
} }
/** /**
......
...@@ -299,6 +299,24 @@ export default { ...@@ -299,6 +299,24 @@ export default {
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
applyType: 10 applyType: 10
}, },
// 提单审核
order_landing_bill:{
component: () => import('@/views/ecw/order/components/LandingBillDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
// 订单审核详情
order_approval:{
component: () => import('@/views/ecw/order/components/ApprovalDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
// 订单修改审批
order_update:{
component: () => import('@/views/ecw/order/components/UpdateDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
} }
return map[this.processInstance.processDefinition.formCustomViewPath.trim()] return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
} }
......
...@@ -96,16 +96,14 @@ export default { ...@@ -96,16 +96,14 @@ export default {
if (this.form.id != null) { if (this.form.id != null) {
updatebox(this.form).then((response) => { updatebox(this.form).then((response) => {
this.$modal.msgSuccess('修改成功') this.$modal.msgSuccess('修改成功')
this.open = false this.$emit("closeDialog", "edit");
this.getList()
}) })
return return
} }
// 添加的提交 // 添加的提交
createbox(this.form).then((response) => { createbox(this.form).then((response) => {
this.$modal.msgSuccess('新增成功') this.$modal.msgSuccess('新增成功')
this.open = false this.$emit("closeDialog", "edit");
this.getList()
}) })
}) })
}, },
......
...@@ -33,10 +33,10 @@ ...@@ -33,10 +33,10 @@
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ecw:future-box:create']">新建计划</el-button> v-hasPermi="['ecw:future-box:create']">新建计划</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:future-box:export']">导出</el-button> v-hasPermi="['ecw:future-box:export']">导出</el-button>
</el-col> </el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
......
...@@ -124,21 +124,21 @@ ...@@ -124,21 +124,21 @@
<el-dropdown-item command="error">异常登记</el-dropdown-item> <el-dropdown-item command="error">异常登记</el-dropdown-item>
<el-dropdown-item command="cost">费用登记</el-dropdown-item> <el-dropdown-item command="cost">费用登记</el-dropdown-item>
<el-dropdown-item command="delete">删除</el-dropdown-item> <el-dropdown-item command="delete">删除</el-dropdown-item>
<el-dropdown-item v-if="scope.row.ldStatus==47" command="editLadingBill">编辑提货单</el-dropdown-item> <el-dropdown-item v-if="scope.row.ldStatus>42" 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>
...@@ -149,7 +149,11 @@ ...@@ -149,7 +149,11 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="自编号" align="center" prop="selfNo" /> <el-table-column label="自编号" align="center" prop="selfNo">
<template slot-scope="scope">
<a href="javascript:void(0)" @click="handleCommand(scope.row, 'detail')">{{ scope.row.selfNo }}</a>
</template>
</el-table-column>
<el-table-column label="柜号" align="center" prop="cubNo" /> <el-table-column label="柜号" align="center" prop="cubNo" />
<el-table-column label="柜型" align="center" prop="cabinetId"> <el-table-column label="柜型" align="center" prop="cabinetId">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -224,21 +228,21 @@ ...@@ -224,21 +228,21 @@
<el-dropdown-item command="error">异常登记</el-dropdown-item> <el-dropdown-item command="error">异常登记</el-dropdown-item>
<el-dropdown-item command="cost">费用登记</el-dropdown-item> <el-dropdown-item command="cost">费用登记</el-dropdown-item>
<el-dropdown-item command="delete">删除</el-dropdown-item> <el-dropdown-item command="delete">删除</el-dropdown-item>
<el-dropdown-item command="editLadingBill">编辑提货单</el-dropdown-item> <el-dropdown-item v-if="scope.row.ldStatus>42" 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>
...@@ -304,6 +308,11 @@ import { ...@@ -304,6 +308,11 @@ import {
getboxPage, getboxPage,
exportboxExcel exportboxExcel
} from '@/api/ecw/box' } from '@/api/ecw/box'
import {
downloadFile,
downloadFileByUrl,
formatDate,
} from "./shippingSea/utils";
import { getCabinetPage } from '@/api/ecw/cabinet' import { getCabinetPage } from '@/api/ecw/cabinet'
import { getChannelList } from '@/api/ecw/channel' import { getChannelList } from '@/api/ecw/channel'
import { getWarehouseList } from '@/api/ecw/warehouse' import { getWarehouseList } from '@/api/ecw/warehouse'
...@@ -536,6 +545,10 @@ export default { ...@@ -536,6 +545,10 @@ export default {
this.$router.push('/boxSeaAir/shippingSeaAir/' + row.id) this.$router.push('/boxSeaAir/shippingSeaAir/' + row.id)
break break
case "detail":
this.$router.push("/boxSeaAir/query/" + row.id);
break;
case 'edit': case 'edit':
this.handleUpdate(row) this.handleUpdate(row)
break break
...@@ -560,6 +573,43 @@ export default { ...@@ -560,6 +573,43 @@ 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)) {
this.currRow = row; this.currRow = row;
......
...@@ -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() {
......
...@@ -22,13 +22,13 @@ ...@@ -22,13 +22,13 @@
<!-- 开始装柜 --> <!-- 开始装柜 -->
<el-dialog title="开始装柜" :visible.sync="dialogVisible" fullscreen :modal-append-to-body=false append-to-body> <el-dialog title="开始装柜" :visible.sync="dialogVisible" fullscreen :modal-append-to-body=false append-to-body>
<startPacking v-bind="$attrs" v-if="dialogVisible" @closeDialog="closeDialog" /> <startPacking v-bind="$attrs" v-if="dialogVisible" v-on="$listeners" @closeDialog1="closeDialog1" />
</el-dialog> </el-dialog>
<!-- 操作 --> <!-- 操作 -->
<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(() => {
...@@ -99,7 +120,7 @@ export default { ...@@ -99,7 +120,7 @@ export default {
} }
}); });
}, },
closeDialog(type) { closeDialog1(type) {
this.dialogVisible = false; this.dialogVisible = false;
if (type) this.cancel(type); if (type) this.cancel(type);
}, },
...@@ -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;
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
{{orderData.consignorVO?orderData.consignorVO.company||'':''}} {{orderData.consignorVO?orderData.consignorVO.company||'':''}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="发货电话"> <el-descriptions-item label="发货电话">
{{orderData.consignorVO?(orderData.consignorVO.phone?(orderData.consignorVO.countryCode+orderData.consignorVO.phone):''):''}} {{orderData.consignorVO?(orderData.consignorVO.phone?("+"+orderData.consignorVO.countryCode+orderData.consignorVO.phone):''):''}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="4"> <el-descriptions :column="4">
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
{{orderData.consigneeVO?orderData.consigneeVO.company||'':''}} {{orderData.consigneeVO?orderData.consigneeVO.company||'':''}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="收货电话"> <el-descriptions-item label="收货电话">
{{orderData.consigneeVO?orderData.consigneeVO.phone?orderData.consigneeVO.countryCode+orderData.consigneeVO.phone :'':''}} {{orderData.consigneeVO?orderData.consigneeVO.phone?"+"+orderData.consigneeVO.countryCode+orderData.consigneeVO.phone :'':''}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
</p> </p>
</div> </div>
<div> <div>
<el-button type="primary" @click="addShop">放入</el-button> <el-button type="primary" :disabled="isAudit" @click="addShop">放入</el-button>
</div> </div>
</div> </div>
<el-table border :data="splitData.orderSplitItemBackVOList"> <el-table border :data="splitData.orderSplitItemBackVOList">
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">移出</el-button> <el-button size="mini" :disabled="isAudit" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">移出</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -168,12 +168,12 @@ ...@@ -168,12 +168,12 @@
<work-flow xmlkey="split_order" v-model="selectedUsers"></work-flow> <work-flow xmlkey="split_order" v-model="selectedUsers"></work-flow>
</el-row> </el-row>
<div slot="footer" class="card footer_btn" v-if="orderData.status!=99"> <div slot="footer" class="card footer_btn">
<el-button v-if="orderData.status!=19" type="primary" @click="submitForm">提交申请</el-button> <el-button v-if="!isAudit" type="primary" @click="submitForm">提交申请</el-button>
<el-button v-if="orderData.status!=19" plain type="primary" @click="$emit('closeDialog')">取消</el-button> <el-button v-if="!isAudit" plain type="primary" @click="$emit('closeDialog2')">取消</el-button>
<el-button v-if="orderData.status==19" type="primary">审核中</el-button> <el-button v-if="isAudit" type="primary" @click="jumpReviewDetail">审核中</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="cancelSplit">取消审核</el-button> <el-button v-if="isAudit" plain type="primary" @click="cancelSplit">取消审核</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="$emit('closeDialog')">返回</el-button> <el-button v-if="isAudit" plain type="primary" @click="$emit('closeDialog2')">返回</el-button>
</div> </div>
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
...@@ -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>
...@@ -215,15 +215,14 @@ ...@@ -215,15 +215,14 @@
import { import {
getSplitList, getSplitList,
createSplit, createSplit,
cancelApply,
createSplitItem, createSplitItem,
deleteSplitItem, deleteSplitItem,
} from "@/api/ecw/orderHandle"; } from "@/api/ecw/orderHandle";
import { getTradeCityList } from "@/api/ecw/region"; import { getTradeCityList } from "@/api/ecw/region";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
import { getOrder } from "@/api/ecw/order"; import { getOrder } from "@/api/ecw/order";
import { serviceMsg } from "../../utils"; import { serviceMsg, toReviewDetail } from "../../utils";
import { createApproval } from "@/api/ecw/boxSea"; import { createApproval, approvalCancel } from "@/api/ecw/boxSea";
export default { export default {
name: "splitOrder", name: "splitOrder",
...@@ -288,13 +287,30 @@ export default { ...@@ -288,13 +287,30 @@ export default {
}, },
}, },
}, },
computed: {
isAudit() {
const { shipmentObj } = this.$attrs;
const { cabinetSplitInfo } = shipmentObj;
if (cabinetSplitInfo) {
/**
* PROCESS(1, "处理中"),
* APPROVE(2, "通过"),
* REJECT(3, "不通过"),
* CANCEL(4, "已取消");
*/
const { approvalStatus } = cabinetSplitInfo;
if (approvalStatus === 1) return true;
}
return false;
},
},
methods: { methods: {
/* 拆箱总数 */ /* 拆箱总数 */
totalSplitNum() { totalSplitNum() {
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;
}, },
...@@ -405,11 +421,13 @@ export default { ...@@ -405,11 +421,13 @@ export default {
shipmentId: shipmentObj.id, shipmentId: shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.$emit("getBoxInfo");
this.getSplit(); this.getSplit();
}); });
}); });
}, },
addShop() { addShop() {
this.shopForm = {};
this.shopOpen = true; this.shopOpen = true;
}, },
changeProdTitleZh() { changeProdTitleZh() {
...@@ -417,7 +435,8 @@ export default { ...@@ -417,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;
}, },
...@@ -426,7 +445,9 @@ export default { ...@@ -426,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() {
...@@ -440,6 +461,10 @@ export default { ...@@ -440,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,
...@@ -450,7 +475,6 @@ export default { ...@@ -450,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;
} }
...@@ -469,11 +493,12 @@ export default { ...@@ -469,11 +493,12 @@ export default {
const { shipmentObj } = this.$attrs; const { shipmentObj } = this.$attrs;
approvalCancel({ approvalCancel({
applyReason: "取消审核", applyReason: "取消审核",
id: shipmentObj["cabinetApprovalInfo"].id, id: shipmentObj["cabinetSplitInfo"].id,
shipmentId: shipmentObj.id, shipmentId: shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.$emit("closeDialog"); this.$emit("getBoxInfo");
this.getSplit();
}); });
}); });
}, },
...@@ -481,6 +506,11 @@ export default { ...@@ -481,6 +506,11 @@ export default {
this.shopOpen = false; this.shopOpen = false;
this.shopForm = {}; this.shopForm = {};
}, },
jumpReviewDetail() {
const { cabinetSplitInfo } = this.$attrs.shipmentObj;
toReviewDetail.apply(this, [cabinetSplitInfo.bpmProcessId]);
this.$emit("closeDialog2", "close");
},
}, },
}; };
</script> </script>
......
...@@ -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">
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a> <div>
<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">
...@@ -119,7 +124,7 @@ ...@@ -119,7 +124,7 @@
<div v-if="isUnderReview"> <div v-if="isUnderReview">
<el-button type="primary" @click="jumpReviewDetail">封柜审核中</el-button> <el-button type="primary" @click="jumpReviewDetail">封柜审核中</el-button>
<el-button plain type="primary" @click="canclAudit">取消审核</el-button> <el-button plain type="primary" @click="canclAudit">取消审核</el-button>
<el-button plain type="primary" @click="$emit('closeDialog')">返回</el-button> <el-button plain type="primary" @click="$emit('closeDialog1')">返回</el-button>
</div> </div>
</el-row> </el-row>
...@@ -154,7 +159,7 @@ ...@@ -154,7 +159,7 @@
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('modifyForm')">下一步</el-button> <el-button type="primary" @click="onSubmit('modifyForm')">下一步</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog2">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 装柜纠错 --> <!-- 装柜纠错 -->
...@@ -166,7 +171,7 @@ ...@@ -166,7 +171,7 @@
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('correctionForm')">提交</el-button> <el-button type="primary" @click="onSubmit('correctionForm')">提交</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog2">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 批量装柜纠错(订单号) --> <!-- 批量装柜纠错(订单号) -->
...@@ -178,23 +183,54 @@ ...@@ -178,23 +183,54 @@
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit('orderForm')">提交</el-button> <el-button type="primary" @click="onSubmit('orderForm')">提交</el-button>
<el-button @click="closeDialog">取消</el-button> <el-button @click="closeDialog2">取消</el-button>
</el-row> </el-row>
</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-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="订单号">
{{boxOrderInfo.orderNo}}
</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="closeDialog">取消</el-button> <el-button @click="closeDialog2">取消</el-button>
</el-row> </el-row>
</template> </template>
<!-- 拆单 --> <!-- 拆单 -->
<splitOrder v-bind="$attrs" :shipmentObj="shipmentObj" v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog="closeDialog" /> <splitOrder v-bind="$attrs" v-on="$listeners" :shipmentObj="shipmentObj" v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog2="closeDialog2" />
</el-dialog> </el-dialog>
</div> </div>
</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);
...@@ -372,7 +413,7 @@ export default { ...@@ -372,7 +413,7 @@ export default {
this.$set(this.dialogConfig, "dialogVisible", true); this.$set(this.dialogConfig, "dialogVisible", true);
}, },
/** 关闭弹窗 */ /** 关闭弹窗 */
closeDialog() { closeDialog2() {
this.$set(this.dialogConfig, "dialogVisible", false); this.$set(this.dialogConfig, "dialogVisible", false);
}, },
/** 修改提交 */ /** 修改提交 */
...@@ -428,7 +469,7 @@ export default { ...@@ -428,7 +469,7 @@ export default {
params.orderNo = this.batchObj.qrCode; params.orderNo = this.batchObj.qrCode;
batchCreate(params).then((res) => { batchCreate(params).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.closeDialog(); this.closeDialog2();
this.getLoadSecGoodsList(); this.getLoadSecGoodsList();
}); });
}); });
...@@ -445,14 +486,14 @@ export default { ...@@ -445,14 +486,14 @@ export default {
if (type === "single") { if (type === "single") {
singleDelete(params).then((res) => { singleDelete(params).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.closeDialog(); this.closeDialog2();
this.getLoadSecGoodsList(); this.getLoadSecGoodsList();
}); });
}); });
} else { } else {
batchDelete(params).then((res) => { batchDelete(params).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.closeDialog(); this.closeDialog2();
this.getLoadSecGoodsList(); this.getLoadSecGoodsList();
}); });
}); });
...@@ -479,12 +520,12 @@ export default { ...@@ -479,12 +520,12 @@ export default {
}; };
boxUpdate(params).then((res) => { boxUpdate(params).then((res) => {
serviceMsg(res, this); serviceMsg(res, this);
this.closeDialog(); this.closeDialog2();
}); });
}, },
/* 补单完成 */ /* 补单完成 */
supplementFinish() { supplementFinish() {
this.closeDialog(); this.closeDialog2();
this.getLoadSecGoodsList(); this.getLoadSecGoodsList();
}, },
/* 申请封柜 */ /* 申请封柜 */
...@@ -497,7 +538,7 @@ export default { ...@@ -497,7 +538,7 @@ export default {
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.$emit("closeDialog", "submit"); this.$emit("closeDialog1", "submit");
}); });
}); });
}, },
...@@ -516,14 +557,57 @@ export default { ...@@ -516,14 +557,57 @@ export default {
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.$emit("closeDialog", "submit"); this.$emit("closeDialog1", "submit");
}); });
}); });
}, },
/* 跳转详情 */
jumpReviewDetail() { jumpReviewDetail() {
const { cabinetApprovalInfo } = this.shipmentObj; const { cabinetApprovalInfo } = this.shipmentObj;
toReviewDetail.apply(this, [cabinetApprovalInfo.bpmProcessId]); toReviewDetail.apply(this, [cabinetApprovalInfo.bpmProcessId]);
this.$emit("closeDialog", "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,21 +462,22 @@ export default { ...@@ -450,21 +462,22 @@ export default {
}, },
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["operatorForm"].validate((valid) => { this.$refs["operatorForm"].validate((valid, errors) => {
if (valid) { if (!valid) {
approvalCreate({ return this.$showFormValidateErrors(errors);
...this.operatorData,
applyReason: "预装审核",
approvalStatus: 0,
approvalType: 1, // 预装
copyUserId: this.selectedUsers,
shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.$emit("closeDialog", "submit");
});
});
} }
approvalCreate({
...this.operatorData,
applyReason: "预装审核",
approvalStatus: 0,
approvalType: 1, // 预装
copyUserId: this.selectedUsers,
shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => {
serviceMsg(res, this).then(() => {
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">
......
...@@ -286,7 +286,7 @@ export default { ...@@ -286,7 +286,7 @@ export default {
} }
} }
.arrow-area { .arrow-area {
margin: 0 10px; margin: 0 6px;
} }
} }
} }
......
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,
}; };
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</el-card> </el-card>
<!-- 海运流程图 --> <!-- 海运流程图 -->
<seaProcess :seaBaseData="seaAirBaseData" :shipmentObj="shipmentObj" width="66px" height="66px" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" :warehouseList="warehouseList" @getBoxInfo="getBoxInfo" /> <seaProcess :seaBaseData="seaAirBaseData" :shipmentObj="shipmentObj" width="50px" height="50px" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" :warehouseList="warehouseList" @getBoxInfo="getBoxInfo" />
<!-- 海运步骤图 --> <!-- 海运步骤图 -->
<seaStepDetail :seaBaseData="seaAirBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" :warehouseList="warehouseList" /> <seaStepDetail :seaBaseData="seaAirBaseData" :shipmentObj="shipmentObj" :allSupplier="allSupplier" :allDocks="allDocks" :allUsers="allUsers" :warehouseList="warehouseList" />
......
...@@ -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];
......
...@@ -84,7 +84,6 @@ ...@@ -84,7 +84,6 @@
label-width="0" label-width="0"
style="margin-bottom: 0" style="margin-bottom: 0"
prop="remark" prop="remark"
:rules="{ required: true, trigger: ['blur', 'change'], message: '备注不能为空' }"
> >
<el-input v-model="form.remark" placeholder="备注"></el-input> <el-input v-model="form.remark" placeholder="备注"></el-input>
</el-form-item> </el-form-item>
...@@ -136,7 +135,9 @@ ...@@ -136,7 +135,9 @@
</el-table-column> </el-table-column>
<el-table-column label="优惠金额" align="center"> <el-table-column label="优惠金额" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.discountTotal ? `${scope.row.discountTotal}(${scope.row.discountRemark})` : 0 }} <span> {{ scope.row.discountTotal ? `${scope.row.discountTotal}`:0}}</span>
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
<span>{{scope.row.discountRemark?('('+scope.row.discountRemark+')'): '' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
...@@ -608,10 +609,10 @@ ...@@ -608,10 +609,10 @@
{{ selectListRow.totalAmount - (discountForm.discountTotal || 0) }} {{ selectListRow.totalAmount - (discountForm.discountTotal || 0) }}
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="selectListRow.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="selectListRow.currencyId" />
</el-form-item> </el-form-item>
<el-form-item label="操作人"> <el-form-item v-if="opnotice" label="操作人">
{{ discountForm.author }} {{ discountForm.author }}
</el-form-item> </el-form-item>
<el-form-item label="操作时间"> <el-form-item v-if="opnotice" label="操作时间">
{{ discountForm.time }} {{ discountForm.time }}
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -657,6 +658,7 @@ export default { ...@@ -657,6 +658,7 @@ export default {
list: [], list: [],
// fileList: [], // fileList: [],
orderData: [], orderData: [],
opnotice:false,
dialogTableKey: 0, dialogTableKey: 0,
total: 0, total: 0,
headers: { headers: {
...@@ -1022,12 +1024,23 @@ export default { ...@@ -1022,12 +1024,23 @@ export default {
this.$set(this.discountForm, 'discountTotal', res.data.discountTotal) this.$set(this.discountForm, 'discountTotal', res.data.discountTotal)
this.$set(this.discountForm, 'discountRemark', res.data.discountRemark) this.$set(this.discountForm, 'discountRemark', res.data.discountRemark)
this.$set(this.discountForm, 'author', res.data.creatorName) this.$set(this.discountForm, 'author', res.data.creatorName)
this.opnotice = true
}else{
this.opnotice = false
} }
}) })
}, },
saveDiscount() { saveDiscount() {
console.log(this.discountForm) console.log(this.discountForm)
// this.selectListRow.id // this.selectListRow.id
if (this.discountForm.discountTotal === 0||!this.discountForm.discountTotal) {
this.$modal.msgError("优惠金额不能为空");
return
}
if (this.discountForm.discountRemark === 0||!this.discountForm.discountRemark) {
this.$modal.msgError("优惠原因不能为空");
return
}
const params = { const params = {
id: this.selectListRow.id, id: this.selectListRow.id,
discountTotal: this.discountForm.discountTotal, discountTotal: this.discountForm.discountTotal,
...@@ -1075,7 +1088,8 @@ export default { ...@@ -1075,7 +1088,8 @@ export default {
this.open = false; this.open = false;
}, },
submitForm(addType) { submitForm(addType) {
const params = {...this.form, addType} const params = {...this.form}
params.addType = addType
params.receiptAccountList.length = params.receiptAccountList.length - 1 params.receiptAccountList.length = params.receiptAccountList.length - 1
params.receiptAccountList.map(v => { params.receiptAccountList.map(v => {
delete v.discountTotal delete v.discountTotal
...@@ -1086,8 +1100,7 @@ export default { ...@@ -1086,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
} }
...@@ -1130,6 +1143,7 @@ export default { ...@@ -1130,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.baAccountName + '(' + item.baAccountNum + ')'" :label="item.bankName + '(' + item.bankAccount+ ')'"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
...@@ -414,10 +412,9 @@ import { DICT_TYPE } from "@/utils/dict"; ...@@ -414,10 +412,9 @@ import { DICT_TYPE } from "@/utils/dict";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import CustomerSelector from "@/components/CustomerSelector"; import CustomerSelector from "@/components/CustomerSelector";
import { getBankAccountPage } from "@/api/ecw/bankAccount";
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",
...@@ -482,9 +479,9 @@ export default { ...@@ -482,9 +479,9 @@ export default {
listSimpleUsers().then((res) => (that.creatorData = res.data)); listSimpleUsers().then((res) => (that.creatorData = res.data));
getChannelList().then((res) => (that.channelList = res.data)); getChannelList().then((res) => (that.channelList = res.data));
getTradeCityList().then((res) => (that.tradeCityList = res.data)); getTradeCityList().then((res) => (that.tradeCityList = res.data));
getBankAccountPage(that.params).then( // getBankAccountPage(that.params).then(
(res) => (that.bankData = res.data.list) // (res) => (that.bankData = res.data.list)
); // );
getSupplierPage({ pageNo: "1", pageSize: "10000" }).then((res) => { getSupplierPage({ pageNo: "1", pageSize: "10000" }).then((res) => {
const { data } = res; const { data } = res;
this.allSupplier = data.list; this.allSupplier = data.list;
...@@ -558,6 +555,10 @@ export default { ...@@ -558,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
...@@ -585,6 +586,10 @@ export default { ...@@ -585,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
...@@ -593,9 +598,24 @@ export default { ...@@ -593,9 +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)
}, },
handleQuery() {}, handleQuery() {},
handleSelectionChange(val) { handleSelectionChange(val) {
...@@ -635,7 +655,7 @@ export default { ...@@ -635,7 +655,7 @@ export default {
var chineseStr = ''; var chineseStr = '';
//分离金额后用的数组,预定义 //分离金额后用的数组,预定义
var parts; var parts;
// 传入的参数为空情况 // 传入的参数为空情况
if(money === '') { if(money === '') {
return ''; return '';
} }
...@@ -643,7 +663,7 @@ export default { ...@@ -643,7 +663,7 @@ export default {
if(money >= maxNum){ if(money >= maxNum){
return '' return ''
} }
// 传入的参数为0情况 // 传入的参数为0情况
if (money === 0) { if (money === 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger; chineseStr = cnNums[0] + cnIntLast + cnInteger;
return chineseStr return chineseStr
...@@ -678,7 +698,7 @@ export default { ...@@ -678,7 +698,7 @@ export default {
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
} }
if(m == 0 && zeroCount < 4){ if(m == 0 && zeroCount < 4){
chineseStr += cnIntUnits[q]; chineseStr += cnIntUnits[q];
} }
} }
// 最后+ 元 // 最后+ 元
......
<template> <template>
<el-dialog visible :close-on-click-modal="false" :before-close="closeDialog" :title="$t('佣金规则申请')"> <el-dialog visible :close-on-click-modal="false" :before-close="closeDialog" :title="$t('佣金规则申请')">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" :disabled="!!form.applyStatus"> <el-form ref="form" :model="form" label-width="80px" :rules="rules" :disabled="form.applyStatus == 1">
<el-form-item :label="$t('商品类型')"> <el-form-item :label="$t('商品类型')">
<span>{{ getProductTypeNameById(form.productType) }}</span> <span>{{ getProductTypeNameById(form.productType) }}</span>
</el-form-item> </el-form-item>
......
...@@ -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" />
......
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
</el-descriptions> </el-descriptions>
<el-descriptions :column="3" border> <el-descriptions :column="3" border>
<el-descriptions-item :label="$t('收货人')" :labelStyle="labelStyle"> <el-descriptions-item :label="$t('收货人')" :labelStyle="labelStyle">
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consigneeId" required :error="$t('收货人不能为空')"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consigneeId" required :error="$t('收货人不能为空')">
<customer-contact-selector v-model="form.consigneeId" @change="consignee = $event" type="2" /> <customer-contact-selector v-model="form.consigneeId" @change="consignee = $event" type="2" />
</el-form-item> </el-form-item>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
{{consignee.email || this.$t('')}} {{consignee.email || this.$t('')}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> --> </el-descriptions> -->
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('运输方式')" prop="transportId"> <el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" @input="calculationPrice" class="w-200"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" @input="calculationPrice" class="w-200"/>
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('件数')" width="90px"> <el-table-column :label="$t('件数')" width="90px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model.number="row.num" @input="calculationPrice" :disabled="!canAddProduct" /> <el-input v-model.number="row.num" @input="calculationPrice" :disabled="!canAddProduct" />
...@@ -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('数量') + '(个)'">
...@@ -263,7 +263,7 @@ ...@@ -263,7 +263,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <!--
</el-card> </el-card>
<el-card class="mt-10"> --> <el-card class="mt-10"> -->
<div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div> <div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div>
...@@ -280,7 +280,7 @@ ...@@ -280,7 +280,7 @@
<el-descriptions-item label="总数量"> <el-descriptions-item label="总数量">
{{sum.totalQuatity.toFixed() || 0}} {{sum.totalQuatity.toFixed() || 0}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总货值') + '(RMB)'"> <el-descriptions-item :label="$t('总货值') + '(RMB)'">
{{sum.totalWorth.toFixed() || 0}}{{$t('元')}} {{sum.totalWorth.toFixed() || 0}}{{$t('元')}}
</el-descriptions-item> </el-descriptions-item>
...@@ -289,7 +289,7 @@ ...@@ -289,7 +289,7 @@
<el-card class="mt-10"> <el-card class="mt-10">
<div class="card-title" slot="header">{{$t('预计费用')}}</div> <div class="card-title" slot="header">{{$t('预计费用')}}</div>
<el-descriptions :column="5" border> <el-descriptions :column="5" border>
<el-descriptions-item :label="$t('保价费')"> <el-descriptions-item :label="$t('保价费')">
{{fee.insuranceFee || 0}} {{$t('美元')}} {{fee.insuranceFee || 0}} {{$t('美元')}}
...@@ -316,7 +316,7 @@ ...@@ -316,7 +316,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div class="card-title" style="padding:20px 0;">{{$t('优惠信息')}}</div> <div class="card-title" style="padding:20px 0;">{{$t('优惠信息')}}</div>
<el-table :data="couponList" :show-header="false"> <el-table :data="couponList" :show-header="false">
<el-table-column label=""> <el-table-column label="">
...@@ -337,7 +337,7 @@ ...@@ -337,7 +337,7 @@
</el-table-column> </el-table-column>
<el-table-column label=""> <el-table-column label="">
<template slot-scope="{row}"> <template slot-scope="{row}">
-{{row.reduceAmount}} -{{row.reduceAmount}}
{{currencyMap[row.reduceCurrencyId]}} {{currencyMap[row.reduceCurrencyId]}}
</template> </template>
</el-table-column> </el-table-column>
...@@ -361,7 +361,7 @@ ...@@ -361,7 +361,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card class="mt-10"> <el-card class="mt-10">
<div class="card-title" slot="header">{{$t('通用')}}</div> <div class="card-title" slot="header">{{$t('通用')}}</div>
<div class="form-section"> <div class="form-section">
...@@ -369,7 +369,7 @@ ...@@ -369,7 +369,7 @@
<el-input v-model="form.marks" placeholder="" class="w-200"></el-input> <el-input v-model="form.marks" placeholder="" class="w-200"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('报关方式')" prop="customsType"> <el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable />
</el-form-item> </el-form-item>
...@@ -398,7 +398,7 @@ ...@@ -398,7 +398,7 @@
<el-date-picker v-model="form.endTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker> <el-date-picker v-model="form.endTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('交货方式')"> <el-form-item :label="$t('交货方式')">
<!-- <!--
...@@ -406,7 +406,7 @@ ...@@ -406,7 +406,7 @@
FOB(离岸价),CIF(到岸价),CNF(成本加运费),EXW(出厂价) FOB(离岸价),CIF(到岸价),CNF(成本加运费),EXW(出厂价)
--> -->
<dict-selector :type="DICT_TYPE.ECW_TRADE_TYPE" fomtter="number" v-model="form.tradeType" class="w-200"/> <dict-selector :type="DICT_TYPE.ECW_TRADE_TYPE" fomtter="number" v-model="form.tradeType" class="w-200"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('交货地址')"> <el-form-item :label="$t('交货地址')">
<el-input v-model="form.tradeAdress" placeholder="港口或地点"></el-input> <el-input v-model="form.tradeAdress" placeholder="港口或地点"></el-input>
...@@ -433,7 +433,7 @@ ...@@ -433,7 +433,7 @@
</el-select> --> </el-select> -->
<supplier-selector v-model="form.transportVO.airlineCompany" companyType="10" /> <supplier-selector v-model="form.transportVO.airlineCompany" companyType="10" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('船公司')" v-if="[2].indexOf(+form.transportId) > -1"> <el-form-item :label="$t('船公司')" v-if="[2].indexOf(+form.transportId) > -1">
<!-- <el-select placeholder="" v-model="form.shippingCompany"> <!-- <el-select placeholder="" v-model="form.shippingCompany">
</el-select> --> </el-select> -->
...@@ -462,12 +462,12 @@ ...@@ -462,12 +462,12 @@
<el-input v-model="form.transportVO.packageRemarks" ></el-input> <el-input v-model="form.transportVO.packageRemarks" ></el-input>
</el-form-item> </el-form-item>
</el-card> </el-card>
<el-form-item label="" class="mt-20"> <el-form-item label="" class="mt-20">
<!-- 非草稿状态显示为编辑按钮 --> <!-- 非草稿状态显示为编辑按钮 -->
<el-button v-if="form.offerId && form.status != 2" type="primary" @click="submitForm(2)">{{$t('编辑')}}</el-button> <el-button v-if="form.offerId && form.status != 2" type="primary" @click="submitForm(2)">{{$t('编辑')}}</el-button>
<template v-else> <template v-else>
<el-button type="primary" @click="submitForm(2)">{{$t('保存草稿')}}</el-button> <!-- 草稿 --> <el-button type="primary" @click="submitForm(2)">{{$t('保存草稿')}}</el-button> <!-- 草稿 -->
<el-button type="primary" @click="submitForm(3)">{{$t('确认报价')}}</el-button> <!-- 需求确认 --> <el-button type="primary" @click="submitForm(3)">{{$t('确认报价')}}</el-button> <!-- 需求确认 -->
...@@ -714,7 +714,7 @@ export default { ...@@ -714,7 +714,7 @@ export default {
} }
arr.push(it) arr.push(it)
}) })
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去 // 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if(!withInsuranceFee && this.fee && this.fee.insuranceFee){ if(!withInsuranceFee && this.fee && this.fee.insuranceFee){
arr.push({ arr.push({
...@@ -771,7 +771,7 @@ export default { ...@@ -771,7 +771,7 @@ export default {
}, },
'form.lineId'(lineId){ 'form.lineId'(lineId){
let router = this.routerList.find(item => item.id == lineId) let router = this.routerList.find(item => item.id == lineId)
if(!router) return if(!router) return
this.$set(this.form, 'departureId', router.startCityId) this.$set(this.form, 'departureId', router.startCityId)
this.$set(this.form, 'objectiveId', router.destCityId) this.$set(this.form, 'objectiveId', router.destCityId)
}, },
...@@ -869,7 +869,7 @@ export default { ...@@ -869,7 +869,7 @@ export default {
titleEn: product.titleEn titleEn: product.titleEn
}) })
} }
this.calculationPrice() this.calculationPrice()
}, },
onLineChange(row){ onLineChange(row){
...@@ -934,14 +934,14 @@ export default { ...@@ -934,14 +934,14 @@ export default {
if (!valid) { if (!valid) {
return this.$showFormValidateErrors(errors) return this.$showFormValidateErrors(errors)
} }
this.form.prodCreateReqVOList.map(item => { this.form.prodCreateReqVOList.map(item => {
item.prodAttrIds = item.prodAttrArr.join(',') item.prodAttrIds = item.prodAttrArr.join(',')
item.lineId = this.form.lineId item.lineId = this.form.lineId
item.channelId = this.form.channelId item.channelId = this.form.channelId
item.transportId = this.form.transportId item.transportId = this.form.transportId
}) })
// 修改的提交 // 修改的提交
if (this.form.offerId != null) { if (this.form.offerId != null) {
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
...@@ -986,9 +986,9 @@ export default { ...@@ -986,9 +986,9 @@ export default {
}) })
if(this.calculating || !calcable) return false if(this.calculating || !calcable) return false
this.calculating = true this.calculating = true
console.log('calculationPrice') console.log('calculationPrice')
calculationPrice({ calculationPrice({
lineId: this.form.lineId, lineId: this.form.lineId,
transportId: this.form.transportId, transportId: this.form.transportId,
...@@ -1005,8 +1005,8 @@ export default { ...@@ -1005,8 +1005,8 @@ export default {
this.$set(this, 'couponTotalAmountList', res.data.availableDto.couponTotalAmountList) this.$set(this, 'couponTotalAmountList', res.data.availableDto.couponTotalAmountList)
this.$set(this, 'couponAvailableGroupDtoList', res.data.availableDto.couponAvailableGroupDtoList) this.$set(this, 'couponAvailableGroupDtoList', res.data.availableDto.couponAvailableGroupDtoList)
} }
this.form.prodCreateReqVOList.map((item, index) => { this.form.prodCreateReqVOList.map((item, index) => {
this.$set(item, 'fee', res.data.prodCostDtoList[index] || null) this.$set(item, 'fee', res.data.prodCostDtoList[index] || null)
}) })
...@@ -1049,9 +1049,9 @@ export default { ...@@ -1049,9 +1049,9 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
} }
::v-deep .product-list .el-form-item__error{ ::v-deep .product-list .el-form-item__error{
position: static; position: static;
} }
</style> </style>
\ No newline at end of file
...@@ -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>
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div style="text-align: center;margin-top: 80px"> <!-- <div style="text-align: center;margin-top: 80px">
<el-button type="primary">申请重货优惠</el-button> <el-button type="primary">申请重货优惠</el-button>
<el-button type="primary">申请泡货优惠</el-button> <el-button type="primary">申请泡货优惠</el-button>
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template v-slot:default='scope'> <template v-slot:default='scope'>
<el-button type="text" @click ="guanlianOrderByOrderId(scope.row.orderId)"> <el-button type="text" @click ="guanlianOrderByOrderId(scope.row.relateOrderId)">
移出 移出
</el-button> </el-button>
</template> </template>
......
...@@ -124,15 +124,17 @@ ...@@ -124,15 +124,17 @@
<!--已全部放货,但是未复核--> <!--已全部放货,但是未复核-->
<template v-if="scope.row.cargoControlStatus == 1 && scope.row.isToReview"> <template v-if="scope.row.cargoControlStatus == 1 && scope.row.isToReview">
<el-button type="text" size="mini" @click="review(scope.row)">{{$t('放货复核')}}</el-button> <el-button type="text" size="mini" @click="review(scope.row)">{{$t('放货复核')}}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('修改')}}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('取消')}}</el-button>
</template> </template>
<!--已完成放货,没有待复核;真正的放货完成--> <!--已完成放货,没有待复核;真正的放货完成-->
<template v-if="scope.row.cargoControlStatus == 1 && !scope.row.isToReview"> <template v-if="scope.row.cargoControlStatus == 1 && !scope.row.isToReview">
<!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> --> <!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> -->
<el-button type="text" size="mini" @click="cargoTransfer(scope.row)" >{{$t('调货')}}</el-button> <el-button type="text" size="mini" @click="cargoTransfer(scope.row)" >{{$t('调货')}}</el-button>
<el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods">{{$t('反复核')}}</el-button> <el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods">{{$t('反复核')}}</el-button>
</template> </template>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
<!--拆单审核中的申请信息部分-->
<template>
<div v-if="detail && order">
<el-descriptions :column="4" v-if="order" :colon="false">
<el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag class="mr-10" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{channel ? channel.nameZh : '/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
{{order.statusMsg}}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">
{{order.logisticsInfoDto.startTitleZh}}
</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')" :span="2">
{{order.logisticsInfoDto.destAddressZh}}
</el-descriptions-item>
<!-- 提单审核 -->
<el-descriptions-item v-if="path == 'order_landing_bill'">
<el-button type="primary" @click="getBillOfLandingInProcessing">查看提单</el-button>
</el-descriptions-item>
</el-descriptions>
<PrintLandingBill :order-id="order.orderId" v-if="ShowLandingBill" @close="ShowLandingBill=false"/>
</div>
</template>
<script>
import {getOrder, getApproval} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getBillOfLandingInProcessing, getBillService} from '@/api/ecw/box'
/*
优惠申请 1
管理优惠 2
佣金设置 3
重货优惠 4
泡货优惠 5
拆单申请 6
控货订单放货修改 7
控货订单反复核 8
控货订单已放货记录调货审批 9
控货订单取消放货 10
合单申请 11
费用申请 12
调仓申请 13
订单修改 14
预装审核 18
封柜审核 19
入仓修改 22
退仓 23
*/
export default {
name: 'OrderApprovalDetail',
props:{
id: [String, Number],
path: String
},
components:{
PrintLandingBill: () => import('./PrintLadingBill.vue')
},
data(){
return {
detail: null,
order: null,
channel: null,
ShowLandingBill: false
}
},
watch:{
id(){
this.getData()
},
detail(){
this.getOrder()
},
order(){
if(this.order.channelId){
this.getChannel()
}
}
},
created(){
if(this.id){
this.getData()
}
},
methods:{
getData(){
getApproval(this.id).then(res => {
this.detail = JSON.parse(res.data.details)
})
},
getOrder(){
getOrder(this.detail.orderId).then(res => {
this.order = res.data
})
},
getChannel(){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
},
getBillService(){
},
getBillOfLandingInProcessing(){
getBillOfLandingInProcessing({orderId: this.detail.orderId}).then(res => {
console.log(res)
})
}
}
}
</script>
<style scoped lang="scss">
.title{
padding: 10px 0;
span{
font-size: 14px;
font-weight: bold;
}
}
</style>
\ No newline at end of file
<!--拆单审核中的申请信息部分-->
<template>
<div v-if="order">
<el-descriptions :column="4" v-if="order" :colon="false">
<el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag class="mr-10" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{channel ? channel.nameZh : '/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
{{order.statusMsg}}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">
{{order.logisticsInfoDto.startTitleZh}}
</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')" :span="2">
{{order.logisticsInfoDto.destAddressZh}}
</el-descriptions-item>
<!-- 提单审核 -->
<el-descriptions-item>
<el-button type="primary" @click="ShowLandingBill=true">查看提单</el-button>
</el-descriptions-item>
</el-descriptions>
<el-dialog title="查看提单" :visible.sync="ShowLandingBill">
<div style="text-align:center; width: 600px; margin: auto" v-html="billContent" />
</el-dialog>
</div>
</template>
<script>
import {getOrder} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getBillService} from '@/api/ecw/box'
export default {
name: 'OrderLandingBill',
props:{
id: [String, Number],
path: String
},
data(){
return {
order: null,
channel: null,
ShowLandingBill: false,
billContent: null
}
},
watch:{
order(){
if(this.order.channelId){
this.getChannel()
}
}
},
created(){
if(this.id){
getBillService({id: this.id}).then(res => {
this.billContent = res.data.billContent
return getOrder(res.data.orderId)
}).then(res => {
this.order = res.data
})
}
},
methods:{
getChannel(){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
}
}
}
</script>
<style scoped lang="scss">
.title{
padding: 10px 0;
span{
font-size: 14px;
font-weight: bold;
}
}
</style>
\ No newline at end of file
...@@ -22,7 +22,7 @@ export default { ...@@ -22,7 +22,7 @@ export default {
components: {PdfViewer}, components: {PdfViewer},
filters: {parseTime}, filters: {parseTime},
props:{ props:{
transportType: Number, //transportType: Number,
// tidanNO: [String, Number], // tidanNO: [String, Number],
orderId: String orderId: String
}, },
...@@ -45,11 +45,11 @@ export default { ...@@ -45,11 +45,11 @@ export default {
} }
return t return t
}, },
type(){ /* type(){
if(this.transportType <= 2) return 1 if(this.transportType <= 2) return 1
if(this.transportType == 3) return 3 if(this.transportType == 3) return 3
if(this.transportType == 4) return 2 if(this.transportType == 4) return 2
} } */
}, },
created(){ created(){
this.show = true this.show = true
...@@ -60,6 +60,7 @@ export default { ...@@ -60,6 +60,7 @@ export default {
this.loading = true this.loading = true
downloadByOrderId(this.orderId) downloadByOrderId(this.orderId)
.then(arrayBuffer => { .then(arrayBuffer => {
console.log({arrayBuffer})
this.pdfData = arrayBuffer this.pdfData = arrayBuffer
}) })
.finally(() => { .finally(() => {
......
<!--订单修改审核的申请信息部分-->
<template>
<div v-if="order">
<el-descriptions :column="4" v-if="order" :colon="false">
<el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag class="mr-10" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{channel ? channel.nameZh : '/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
{{order.statusMsg}}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">
{{order.logisticsInfoDto ? $l(order.logisticsInfoDto, 'startTitle') : '-'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')" :span="2">
{{order.logisticsInfoDto ? $l(order.logisticsInfoDto, 'destAddress') : '-'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('申请理由')" :span="4">
<div>
<div v-for="(item, index) in order.applyInfoList" :key="index">
{{index+1}}{{item.name}} {{$t('从旧的【{orgValue}】改成新的【{newValue}', {orgValue: item.orgValue, newValue: item.newValue })}}
</div>
</div>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
import {getOrder, getUpdateInfoByApproveId} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getBillOfLandingInProcessing, getBillService} from '@/api/ecw/box'
export default {
name: 'OrderApprovalDetail',
props:{
id: [String, Number],
path: String
},
components:{
PrintLandingBill: () => import('./PrintLadingBill.vue')
},
data(){
return {
order: null,
channel: null
}
},
watch:{
id(){
this.getData()
},
order(){
if(this.order.channelId){
this.getChannel()
}
}
},
created(){
if(this.id){
this.getData()
}
},
methods:{
getData(){
getUpdateInfoByApproveId(this.id).then(res => {
this.order = res.data
})
},
getChannel(){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
}
}
}
</script>
<style scoped lang="scss">
.title{
padding: 10px 0;
span{
font-size: 14px;
font-weight: bold;
}
}
</style>
\ No newline at end of file
...@@ -42,58 +42,61 @@ ...@@ -42,58 +42,61 @@
</el-row> </el-row>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<el-row :gutter="20"> <el-descriptions border :title="$t('物流信息')" :column="2">
<el-col :span="12"> <el-descriptions-item :label="$t('始发仓')">{{order.logisticsInfoDto.startTitleZh}}</el-descriptions-item>
<el-descriptions class="margin-top" border :title="$t('物流信息')" :column="2"> <el-descriptions-item :label="$t('目的仓')">{{order.logisticsInfoDto.destTitleZh}}</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">{{order.logisticsInfoDto.startTitleZh}}</el-descriptions-item> <el-descriptions-item :label="$t('地址')" :span="2">{{order.logisticsInfoDto.startAddressZh}}</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')">{{order.logisticsInfoDto.destTitleZh}}</el-descriptions-item> <el-descriptions-item :label="$t('运输方式')" :span="2">
<el-descriptions-item :label="$t('地址')" :span="2">{{order.logisticsInfoDto.startAddressZh}}</el-descriptions-item> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
<el-descriptions-item :label="$t('运输方式')" :span="2"> </el-descriptions-item>
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" /> <el-descriptions-item :label="$t('出货渠道')" :span="2">{{channelName}}</el-descriptions-item>
</el-descriptions-item> </el-descriptions>
<el-descriptions-item :label="$t('出货渠道')" :span="2">{{channelName}}</el-descriptions-item> </el-card>
</el-descriptions>
</el-col> <el-card class="card">
<el-col :span="12"> <el-descriptions class="mr-10" border :title="$t('基础信息')" :column="2">
<el-descriptions class="margin-top" border :title="$t('基础信息')" :column="2"> <el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item> <el-descriptions-item :label="$t('送货时间')">{{order.deliveryDate}}</el-descriptions-item>
<el-descriptions-item :label="$t('送货时间')">{{order.deliveryDate}}</el-descriptions-item> <el-descriptions-item :label="$t('是否控货')">
<el-descriptions-item :label="$t('是否控货')"> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCargoControl" />
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCargoControl" /> </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('填单信息')">
<el-descriptions-item :label="$t('填单信息')"> {{order.costVO.totalNum}}{{$t('箱')}}
{{order.costVO.totalNum}}{{$t('箱')}} {{order.costVO.totalWeight}}Kg
{{order.costVO.totalWeight}}Kg {{order.costVO.totalVolume}}m³
{{order.costVO.totalVolume}}m³ {{order.costVO.totalQuantity}}{{$t('个')}}
{{order.costVO.totalQuantity}}{{$t('个')}} </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('仓库实测')">
<el-descriptions-item :label="$t('仓库实测')"> {{order.sumNum}}{{$t('箱')}}
{{order.sumNum}}{{$t('箱')}} {{order.sumWeight}}Kg
{{order.sumWeight}}Kg {{order.sumVolume}}m³
{{order.sumVolume}}m³ {{order.sumQuantity}}{{$t('个')}}
{{order.sumQuantity}}{{$t('个')}} </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('收款数据')">
<el-descriptions-item :label="$t('收款数据')"> {{order.sumNum}}{{$t('箱')}}
{{order.sumNum}}{{$t('箱')}} {{order.vweight}}Kg
{{order.vweight}}Kg {{order.wvolume}}m³
{{order.wvolume}}m³ {{order.sumQuantity}}{{$t('个')}}
{{order.sumQuantity}}{{$t('个')}} </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('入仓类型')">
<el-descriptions-item :label="$t('入仓类型')"> <dict-tag :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" :value="order.warehouseType" />
<dict-tag :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" :value="order.warehouseType" /> </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('单证报关')">
<el-descriptions-item :label="$t('单证报关')"> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" />
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /> </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('出单方式')">
<el-descriptions-item :label="$t('出单方式')"> <dict-tag :type="DICT_TYPE.ECW_SUING_METHOD" :value="order.issuingMethod" />
<dict-tag :type="DICT_TYPE.ECW_SUING_METHOD" :value="order.issuingMethod" /> </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('代收货款')">
<el-descriptions-item :label="$t('代收货款')"> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" />
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" /> </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item :label="$t('集运仓库')">
</el-descriptions> {{isExternalWarehouse ? '自有仓' : '外部仓'}}
</el-col> <div v-for="(item, index) in order.externalWarehouseDtoList" :key="index">
</el-row> 装柜时间: {{item.estLoadingTime}} 装柜地址:{{item.loadingAddress}}
</div>
</el-descriptions-item>
</el-descriptions>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
...@@ -117,7 +120,7 @@ ...@@ -117,7 +120,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>
...@@ -129,12 +132,12 @@ ...@@ -129,12 +132,12 @@
</el-table-column> </el-table-column>
<el-table-column prop="volume" :label="$t('体积') + '(m³)'" width="90px"> <el-table-column prop="volume" :label="$t('体积') + '(m³)'" width="90px">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{order.inWarehouseState > 1 ? row.warehouseInInfoVO.volume : row.volume}} {{order.inWarehouseState > 1 && row.warehouseInInfoVO ? row.warehouseInInfoVO.volume : row.volume}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="weight" :label="$t('重量') + '(kg)'" width="90px"> <el-table-column prop="weight" :label="$t('重量') + '(kg)'" width="90px">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{order.inWarehouseState > 1 ? row.warehouseInInfoVO.weight : row.weight}} {{order.inWarehouseState > 1 && row.warehouseInInfoVO ? row.warehouseInInfoVO.weight : row.weight}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="quantity" :label="$t('数量') + '(个)'" width="90px"/> <el-table-column prop="quantity" :label="$t('数量') + '(个)'" width="90px"/>
...@@ -145,18 +148,18 @@ ...@@ -145,18 +148,18 @@
</el-table-column> </el-table-column>
<el-table-column prop="" :label="$t('成交单价')" width="220px"> <el-table-column prop="" :label="$t('成交单价')" width="220px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<template v-if="row.charging ==1"> <template v-if="row.charging ==1">
<template v-if="!row.seaFreight">未报价</template> <template v-if="!row.seaFreight">未报价</template>
<template>{{$t('全包价')}} {{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</template> <template>{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</template>
</template> </template>
<template v-else-if="!row.seaFreight && !row.clearanceFreight">未报价</template> <template v-else-if="!row.seaFreight && !row.clearanceFreight">未报价</template>
<template v-else> <template v-else>
<div> <div>
{{$t('运费')}}{{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}} {{$t('运费')}}{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
</div> </div>
<div> <div>
{{$t('清关费')}}{{row.oneClearanceFreight}} {{currentcyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}} {{$t('清关费')}}{{row.oneClearanceFreight}} {{currencyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}
</div> </div>
</template> </template>
</template> </template>
...@@ -209,8 +212,16 @@ ...@@ -209,8 +212,16 @@
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" /> <dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('单价金额')" prop="unitPrice"></el-table-column> <el-table-column :label="$t('单价金额')" prop="unitPrice">
<el-table-column :label="$t('总金额')" prop="totalAmount"></el-table-column> <template slot-scope="{row}">
{{row.unitPrice}}{{currencyMap[row.currencyId]}}
</template>
</el-table-column>
<el-table-column :label="$t('总金额')" prop="totalAmount">
<template slot-scope="{row}">
{{row.totalAmount}}{{currencyMap[row.currencyId]}}
</template>
</el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
...@@ -270,7 +281,7 @@ export default { ...@@ -270,7 +281,7 @@ export default {
} }
}, },
computed:{ computed:{
currentcyMap(){ currencyMap(){
let map = {} let map = {}
this.currencyList.forEach(item => { this.currencyList.forEach(item => {
map[item.id] = item.titleZh map[item.id] = item.titleZh
...@@ -338,7 +349,7 @@ export default { ...@@ -338,7 +349,7 @@ export default {
}); });
}, },
getChannel(){ getChannel(){
if(!this.order || !this.order.channelId) return if(!this.order || !this.order.channelId) return
getChannel(this.order.channelId).then(res => { getChannel(this.order.channelId).then(res => {
this.channelName = res.data.nameZh this.channelName = res.data.nameZh
}) })
......
...@@ -6,19 +6,19 @@ ...@@ -6,19 +6,19 @@
<div slot="header" class="card-title">{{ editMode ? this.$t('编辑订单') : this.$t('新建订单')}}</div> <div slot="header" class="card-title">{{ editMode ? this.$t('编辑订单') : this.$t('新建订单')}}</div>
<!--默认显示类型(selectedRouter==null),如果选择路线后没开通则隐藏--> <!--默认显示类型(selectedRouter==null),如果选择路线后没开通则隐藏-->
<el-form-item :label="$t('订单类型')" v-if="!selectedRouter || routeOtherServices.indexOf('1') > -1 || routeOtherServices.indexOf('4') > -1"> <el-form-item :label="$t('订单类型')" v-if="!selectedRouter || routeOtherServices.indexOf('1') > -1 || routeOtherServices.indexOf('4') > -1">
<el-checkbox-group v-model="form.type"> <el-checkbox-group v-model="form.type" :disabled="inWarehouse">
<el-checkbox label="1" v-if="!selectedRouter || routeOtherServices.indexOf('1') > -1">{{$t('集运服务')}}</el-checkbox> <el-checkbox label="1" v-if="!selectedRouter || routeOtherServices.indexOf('1') > -1">{{$t('集运服务')}}</el-checkbox>
<el-checkbox label="2" v-if="!selectedRouter || routeOtherServices.indexOf('2') > -1">{{$t('海外仓')}}</el-checkbox> <el-checkbox label="2" v-if="!selectedRouter || routeOtherServices.indexOf('2') > -1">{{$t('海外仓')}}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('发货人')" prop="consignorContactsId" > <el-form-item :label="$t('发货人')" prop="consignorContactsId" >
<!-- <customer-contact-selector v-model="form.consignorContactsId" @change="consignorContact = $event" type="1" /> --> <!-- <customer-contact-selector v-model="form.consignorContactsId" @change="consignorContact = $event" type="1" /> -->
<div class="contact"> <div class="contact">
<el-input v-model="form.consignorName" placeholder="" :disabled="form.status !== 0"/> <el-input v-model="form.consignorName" placeholder="" :disabled="inWarehouse"/>
<img v-if="!form.status" src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignor'" /> <img v-if="!inWarehouse" src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignor'" />
<img v-if="!form.status" src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='1'" /> <img v-if="!inWarehouse" src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='1'" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人电话')" prop="consignorPhone"> <el-form-item :label="$t('发货人电话')" prop="consignorPhone">
...@@ -26,19 +26,19 @@ ...@@ -26,19 +26,19 @@
<el-input v-model="form.consignorPhone" class="w-200" disabled /> <el-input v-model="form.consignorPhone" class="w-200" disabled />
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人公司')" prop="consignorPhone"> <el-form-item :label="$t('发货人公司')" prop="consignorPhone">
<el-input v-model="form.consignorCompany" :disabled="form.status !== 0" /> <el-input v-model="form.consignorCompany" :disabled="inWarehouse" />
</el-form-item> </el-form-item>
<el-form-item label="Email" prop="consignorPhone"> <el-form-item label="Email" prop="consignorPhone">
<el-input v-model="form.consignorEmail" :disabled="form.status !== 0" /> <el-input v-model="form.consignorEmail" :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('收货人')" prop="consigneeContactsId"> <el-form-item :label="$t('收货人')" prop="consigneeContactsId">
<!-- <customer-contact-selector v-model="form.consignorContactsId" @change="consignorContact = $event" type="1" /> --> <!-- <customer-contact-selector v-model="form.consignorContactsId" @change="consignorContact = $event" type="1" /> -->
<div class="contact"> <div class="contact">
<el-input v-model="form.consigneeName" placeholder="" :disabled="form.status !== 0"/> <el-input v-model="form.consigneeName" placeholder="" :disabled="inWarehouse"/>
<img v-if="!form.status" src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignee'" /> <img v-if="!inWarehouse" src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignee'" />
<img v-if="!form.status" src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='2'" /> <img v-if="!inWarehouse" src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='2'" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人电话')" prop="consigneePhone"> <el-form-item :label="$t('收货人电话')" prop="consigneePhone">
...@@ -46,20 +46,20 @@ ...@@ -46,20 +46,20 @@
<el-input v-model="form.consigneePhone" class="w-200" disabled/> <el-input v-model="form.consigneePhone" class="w-200" disabled/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人公司')" prop="consigneePhone"> <el-form-item :label="$t('收货人公司')" prop="consigneePhone">
<el-input v-model="form.consigneeCompany" :disabled="form.status !== 0" /> <el-input v-model="form.consigneeCompany" :disabled="inWarehouse" />
</el-form-item> </el-form-item>
<el-form-item label="Email" prop="consigneePhone"> <el-form-item label="Email" prop="consigneePhone">
<el-input v-model="form.consigneeEmail" :disabled="form.status !== 0"/> <el-input v-model="form.consigneeEmail" :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('运输方式')" prop="transportId"> <el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" :disabled="form.status !== 0"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="channelId" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"> <el-form-item :label="$t('出货渠道')" prop="channelId" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'">
<selector <selector
:disabled="form.status !== 0 || getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'" :disabled="inWarehouse || getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
v-model="form.channelId" v-model="form.channelId"
:options="channelList" :options="channelList"
value-field="channelId" value-field="channelId"
...@@ -69,12 +69,12 @@ ...@@ -69,12 +69,12 @@
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('始发城市')" prop="departureId"> <el-form-item :label="$t('始发城市')" prop="departureId">
<el-select v-model="form.departureId" :placeholder="$t('请选择始发地')" :disabled="form.status !== 0"> <el-select v-model="form.departureId" :placeholder="$t('请选择始发地')" :disabled="inWarehouse">
<el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的城市')" prop="objectiveId"> <el-form-item :label="$t('目的城市')" prop="objectiveId">
<el-select v-model="form.objectiveId" :placeholder="$t('请选择目的地')" :disabled="form.status !== 0"> <el-select v-model="form.objectiveId" :placeholder="$t('请选择目的地')" :disabled="inWarehouse">
<el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
<el-form-item :label="$t('选择线路')" prop="lineId"> <el-form-item :label="$t('选择线路')" prop="lineId">
<el-input :value="selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''" disabled :placeholder="$t('请在右侧选择线路')"></el-input> <el-input :value="selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''" disabled :placeholder="$t('请在右侧选择线路')"></el-input>
</el-form-item> </el-form-item>
<select size="5" v-model="form.lineId" style="min-width: 300px; border:1px solid #DCDFE6; border-radius:4px" :disabled="form.status !== 0"> <select size="5" v-model="form.lineId" style="min-width: 300px; border:1px solid #DCDFE6; border-radius:4px" :disabled="inWarehouse">
<template v-for="item in routerList"> <template v-for="item in routerList">
<option :value="item.id" :key="item.id">{{$l(item, 'startTitle')}} >> {{$l(item, 'destTitle')}}</option> <option :value="item.id" :key="item.id">{{$l(item, 'startTitle')}} >> {{$l(item, 'destTitle')}}</option>
</template> </template>
...@@ -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">
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
</el-checkbox-group> </el-checkbox-group>
</template> </template>
</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-tag v-if="row.fee" :type="DICT_TYPE.ECW_PAY_ADVANCE" :value="row.fee.isPayAdvance" /> <dict-tag v-if="row.fee" :type="DICT_TYPE.ECW_PAY_ADVANCE" :value="row.fee.isPayAdvance" />
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('快递单号')" width="100px"> <el-table-column :label="$t('快递单号')" width="100px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model="row.expressNo" placeholder="" /> <el-input v-model="row.expressNo" placeholder="" :disabled="!productEditable" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" width="80px" fixed="right"> <el-table-column :label="$t('操作')" width="80px" fixed="right">
...@@ -208,9 +208,9 @@ ...@@ -208,9 +208,9 @@
<el-button size="mini" type="danger" @click="delProduct(scope.$index)">{{$t('删除')}}</el-button> <el-button size="mini" type="danger" @click="delProduct(scope.$index)">{{$t('删除')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <!--
</el-card> </el-card>
<el-card class="mt-10"> --> <el-card class="mt-10"> -->
<div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div> <div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div>
...@@ -236,101 +236,44 @@ ...@@ -236,101 +236,44 @@
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card class="mt-10" v-if="0">
<div class="card-title" slot="header">{{$t('预计费用')}}</div>
<el-descriptions :column="5" border>
<el-descriptions-item :label="$t('保价费')">
{{fee.insuranceFee || 0}} {{$t('人民币')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('总运费')">
<div>{{fee.seaNGN || 0}}{{$t('奈拉')}}</div>
<div>{{fee.seaRMB || 0}}{{$t('人民币')}}</div>
<div>{{fee.seaUSD || 0}}{{$t('美元')}}</div>
</el-descriptions-item>
<el-descriptions-item :label="$t('总清关费')">
<div>{{fee.clearanceNGN || 0}}{{$t('奈拉')}}</div>
<div>{{fee.clearanceRMB || 0}}{{$t('人民币')}}</div>
<div>{{fee.clearanceUSD || 0}}{{$t('美元')}}</div>
</el-descriptions-item>
<el-descriptions-item :label="$t('其他费用')">
<el-input v-model="form.otherFee" placeholder="" style="width:100px"></el-input>
<selector v-model="form.otherFeeCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
</el-descriptions-item>
<el-descriptions-item :label="$t('原价')" :span="2">
<!--TODO 缺少字段-->
<div>{{fee.clearanceNGN || 0}}{{$t('奈拉')}}</div>
<div>{{fee.clearanceRMB || 0}}{{$t('人民币')}}</div>
<div>{{fee.clearanceUSD || 0}}{{$t('美元')}}</div>
</el-descriptions-item>
</el-descriptions>
<div class="card-title" style="padding:20px 0;">{{$t('优惠信息')}}</div>
<el-row v-for="(item, index) in couponTypeList" :key="item.value" :gutter="10">
<el-col :span="2">{{index+1}}.{{item.label}}</el-col>
<el-col :span="4">
<el-select :placeholder="$t('请选择优惠')" v-model="selectedCoupons[item.value]" :data-type="item.value" clearable>
<template v-for="(coupon, index) in couponList">
<el-option v-if="coupon.type == +item.value" :key="coupon.couponId + '_' + index" :label="coupon.titleZh" :value="coupon.couponId"></el-option>
</template>
</el-select>
</el-col>
<el-col :span="2" v-if="getCoupon(selectedCoupons[item.value])">
-{{getCoupon(selectedCoupons[item.value]).reduceAmount}}
{{currentcyMap[getCoupon(selectedCoupons[item.value]).reduceCurrencyId]}}
</el-col>
<el-col :span="5" v-if="getCoupon(selectedCoupons[item.value])">{{$t('有效期')}}:{{getCoupon(selectedCoupons[item.value]).endTime || $t('永久有效')}}</el-col>
</el-row>
<el-descriptions :column="1" border>
<el-descriptions-item :label="$t('优惠合计')">
{{discount}}{{$t('美元')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('预计费用')">
// TODO
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="mt-10"> <el-card class="mt-10">
<div class="card-title" slot="header">{{$t('通用')}}</div> <div class="card-title" slot="header">{{$t('通用')}}</div>
<div class="form-section"> <div class="form-section">
<el-form-item label="唛头" prop="marks" > <el-form-item label="唛头" prop="marks" >
<el-input v-model="form.marks" placeholder=""></el-input> <el-input v-model="form.marks" ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否控货" prop="isCargoControl" class="ml-20"> <el-form-item label="是否控货" prop="isCargoControl" class="ml-20">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCargoControl" form-type="radio" /> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCargoControl" form-type="radio" :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section" v-if="collectionProxy"> <div class="form-section" v-if="collectionProxy">
<el-form-item :label="$t('是否代收货款')" prop="isCollection"> <el-form-item :label="$t('是否代收货款')" prop="isCollection">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCollection" form-type="radio" /> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCollection" form-type="radio" :disabled="inWarehouse" />
</el-form-item> </el-form-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项--> <!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-form-item :label="$t('代收货款金额')" v-if="collectionProxy && form.isCollection" prop="collectionProxy" class="ml-20"> <el-form-item :label="$t('代收货款金额')" v-if="collectionProxy && form.isCollection" prop="collectionProxy" class="ml-20">
<el-input v-model="form.collectionProxy" placeholder="" class="w-200 mr-10"></el-input> <el-input v-model="form.collectionProxy" class="w-200 mr-10" :disabled="inWarehouse"></el-input>
<selector v-model="form.collectionProxyCurrency" :options="currencyList" label-field="titleZh" value-field="id" defaultable class="w-100" /> <selector v-model="form.collectionProxyCurrency" :options="currencyList" label-field="titleZh" value-field="id" defaultable class="w-100" :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('单证报关')" :span="2" prop="customsType"> <el-form-item :label="$t('单证报关')" :span="2" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item :label="$t('出单方式')" prop="issuingMethod"> <el-form-item :label="$t('出单方式')" prop="issuingMethod">
<dict-selector :type="DICT_TYPE.ECW_SUING_METHOD" v-model="form.issuingMethod" form-type="radio" defaultable /> <dict-selector :type="DICT_TYPE.ECW_SUING_METHOD" v-model="form.issuingMethod" form-type="radio" defaultable :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item :label="$t('入仓类型')" prop="warehouseType"> <el-form-item :label="$t('入仓类型')" prop="warehouseType">
<dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="form.warehouseType" defaultable /> <dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="form.warehouseType" defaultable :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item :label="$t('外部仓库')" prop="warehouseType"> <el-form-item :label="$t('外部仓库')" prop="warehouseType">
<el-checkbox label="" :checked="!!form.isExternalWarehouse" @change="form.isExternalWarehouse=$event"></el-checkbox> <el-checkbox label="" :checked="!!form.isExternalWarehouse" @change="form.isExternalWarehouse=$event" :disabled="inWarehouse"></el-checkbox>
</el-form-item> </el-form-item>
<div v-if="form.isExternalWarehouse" class="pl-50"> <div v-if="form.isExternalWarehouse" class="pl-50">
<div v-for="(item, index) in form.externalWarehouseDtoList" class="flex" :key="index"> <div v-for="(item, index) in form.externalWarehouseDtoList" class="flex" :key="index">
...@@ -366,7 +309,7 @@ ...@@ -366,7 +309,7 @@
</div> </div>
<div> <div>
<el-form-item :label="$t('收货方式')" prop="harvestMethod" class="ml-20"> <el-form-item :label="$t('收货方式')" prop="harvestMethod" class="ml-20">
<dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.harvestMethod" :filter="item => item.value == 1 || homeDeliveryService" defaultable /> <dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.harvestMethod" :filter="item => item.value == 1 || homeDeliveryService" defaultable :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div v-if="homeDeliveryService && form.harvestMethod == 2"> <div v-if="homeDeliveryService && form.harvestMethod == 2">
...@@ -378,20 +321,21 @@ ...@@ -378,20 +321,21 @@
@countryChange="onAreaChange('country', $event)" @countryChange="onAreaChange('country', $event)"
@provinceChange="onAreaChange('province', $event)" @provinceChange="onAreaChange('province', $event)"
@cityChange="onAreaChange('city', $event)" @cityChange="onAreaChange('city', $event)"
:disabled="inWarehouse"
></area-selector> ></area-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货详细地址')" prop="consigneeAddress"> <el-form-item :label="$t('收货详细地址')" prop="consigneeAddress">
<el-input v-model="form.consigneeAddress" placeholder=""></el-input> <el-input v-model="form.consigneeAddress" :disabled="inWarehouse"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item :label="$t('付款人')" prop="drawee"> <el-form-item :label="$t('付款人')" prop="drawee">
<dict-selector :type="DICT_TYPE.DRAWEE" v-model="form.drawee" defaultable form-type="radio" /> <dict-selector :type="DICT_TYPE.DRAWEE" v-model="form.drawee" defaultable form-type="radio" :disabled="inWarehouse"/>
<el-table :data="customDraweeList" v-if="form.drawee==3" > <el-table :data="customDraweeList" v-if="form.drawee==3" >
<el-table-column label="费用类型" prop="label" width="200px"></el-table-column> <el-table-column label="费用类型" prop="label" width="200px"></el-table-column>
<el-table-column label="付款人" width="300px"> <el-table-column label="付款人" width="300px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-selector :type="DICT_TYPE.DRAWEE" :filter="(e) => e.value == '1' || e.value == '2'" v-model="row.value" form-type="radio" /> <dict-selector :type="DICT_TYPE.DRAWEE" :filter="(e) => e.value == '1' || e.value == '2'" v-model="row.value" form-type="radio" :disabled="inWarehouse"/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -402,60 +346,69 @@ ...@@ -402,60 +346,69 @@
<el-card class="mt-10" v-if="transport"> <el-card class="mt-10" v-if="transport">
<div class="card-title" slot="header">{{transport.label}}</div> <div class="card-title" slot="header">{{transport.label}}</div>
<el-form-item :label="$t('快递单号')"> <el-form-item :label="$t('快递单号')">
<el-input v-model="form.number" :placeholder="$t('请输入购买商品的快递单号')"> <el-input v-model="form.number" :placeholder="$t('请输入购买商品的快递单号')" :disabled="inWarehouse">
<el-button type="primary" slot="append" @click="getOrderCourierNumber">{{$t('生成单号')}}</el-button> <el-button type="primary" slot="append" @click="getOrderCourierNumber" :disabled="inWarehouse">{{$t('生成单号')}}</el-button>
</el-input> </el-input>
</el-form-item> </el-form-item>
<div v-if="[2,3,4].indexOf(+form.transportId) > -1"> <div v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('是否双清')"> <el-form-item :label="$t('是否双清')">
<dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" defaultable /> <dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" defaultable :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[3,4].indexOf(+form.transportId) > -1"> <div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('航空公司')"> <el-form-item :label="$t('航空公司')">
<supplier-selector v-model="form.airlineCompany" company-type="10" /> <supplier-selector v-model="form.airlineCompany" company-type="10" :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[2].indexOf(+form.transportId) > -1"> <div v-if="[2].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('船公司')"> <el-form-item :label="$t('船公司')">
<supplier-selector v-model="form.shippingCompany" company-type="9" /> <supplier-selector v-model="form.shippingCompany" company-type="9" :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[2,3,4].indexOf(+form.transportId) > -1"> <div v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('清关证书')"> <el-form-item :label="$t('清关证书')">
<dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable /> <dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable :disabled="inWarehouse" />
</el-form-item> </el-form-item>
<el-form-item label="清关证书备注" > <el-form-item label="清关证书备注" >
<el-input v-model="form.remarks" ></el-input> <el-input v-model="form.remarks" :disabled="inWarehouse"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[3,4].indexOf(+form.transportId) > -1"> <div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item label="是否拆包"> <el-form-item label="是否拆包">
<dict-selector v-model="form.isUnpack" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable /> <dict-selector v-model="form.isUnpack" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable :disabled="inWarehouse" />
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('单票立刻转运')" v-if="[3,4].indexOf(+form.transportId) > -1"> <el-form-item :label="$t('单票立刻转运')" v-if="[3,4].indexOf(+form.transportId) > -1">
<dict-selector v-model="form.isSingleTicketTransport" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable /> <dict-selector v-model="form.isSingleTicketTransport" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable :disabled="inWarehouse" />
<span style="margin-left:10px">{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}</span> <span style="margin-left:10px">{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}</span>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('特殊要求')" > <el-form-item :label="$t('特殊要求')" >
<dict-selector v-model="form.packageTypeArr" form-type="checkbox" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" multiple /> <dict-selector v-model="form.packageTypeArr" form-type="checkbox" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" multiple :disabled="inWarehouse"/>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item :label="$t('特殊要求备注')"> <el-form-item :label="$t('特殊要求备注')">
<el-input v-model="form.packageRemarks" ></el-input> <el-input v-model="form.packageRemarks" :disabled="inWarehouse" ></el-input>
</el-form-item> </el-form-item>
</el-card> </el-card>
<el-card class="mt-10" v-if="inWarehouse">
<div class="card-title" slot="header">{{$t('审批流程')}}</div>
<work-flow xmlkey="order_modify" v-model="ccIdArr" />
</el-card>
<el-form-item label="" style="margin: 30px 0"> <el-form-item label="" style="margin: 30px 0">
<el-button type="primary" @click="submitForm(0)">{{$t('保存')}}</el-button> <!--草稿--> <template v-if="form.applyStatus == 1">
<el-button type="primary" @click="submitForm(2)" v-if="!form.orderId">{{$t('新建')}}</el-button> <!--待入仓--> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">{{$t('审核中')}}</el-button>
</template>
<template v-else>
<el-button type="primary" @click="submitForm(0)">{{$t('保存')}}</el-button> <!--草稿-->
<el-button type="primary" @click="submitForm(2)" v-if="!form.orderId">{{$t('新建')}}</el-button> <!--待入仓-->
</template>
<el-button @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button> <el-button @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -504,7 +457,7 @@ ...@@ -504,7 +457,7 @@
</template> </template>
<script> <script>
import { createOrder, updateOrder, getOrderDetail, getOrderCourierNumber, orderImport, exportPackingList } from "@/api/ecw/order"; import { createOrder, updateApply, getOrderDetail, getOrderCourierNumber, orderImport, exportPackingList, getUpdateInfo } from "@/api/ecw/order";
import ProductSelector from '@/components/ProductSelector' import ProductSelector from '@/components/ProductSelector'
import {getProductAttrList} from '@/api/ecw/productAttr' import {getProductAttrList} from '@/api/ecw/productAttr'
import {getChannelList} from '@/api/ecw/channel' import {getChannelList} from '@/api/ecw/channel'
...@@ -516,13 +469,14 @@ import {getDictData, getDictDatas} from '@/utils/dict' ...@@ -516,13 +469,14 @@ import {getDictData, getDictDatas} from '@/utils/dict'
import {getCurrencyList} from '@/api/ecw/currency' import {getCurrencyList} from '@/api/ecw/currency'
import {getUnitList} from '@/api/ecw/unit' import {getUnitList} from '@/api/ecw/unit'
import AreaSelector from '@/components/AreaSelector' import AreaSelector from '@/components/AreaSelector'
import FileUpload from '@/components/FileUpload' import FileUpload from '@/components/FileUpload'
import AreaCodeSelector from '@/components/AreaCodeSelector' import AreaCodeSelector from '@/components/AreaCodeSelector'
import ChooseContactDialog from '@/components/ChooseContactDialog' import ChooseContactDialog from '@/components/ChooseContactDialog'
import QuickCreateCustomer from '@/components/QuickCreateCustomer' import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {calculationPrice} from '@/api/ecw/product' import {calculationPrice} from '@/api/ecw/product'
import SupplierSelector from '@/components/SupplierSelector' import SupplierSelector from '@/components/SupplierSelector'
import Decimal from 'decimal.js' import Decimal from 'decimal.js'
import WorkFlow from '@/components/WorkFlow'
// 缓存默认的表单数据 // 缓存默认的表单数据
let defaultFormData = null let defaultFormData = null
...@@ -530,7 +484,7 @@ let defaultFormData = null ...@@ -530,7 +484,7 @@ let defaultFormData = null
export default { export default {
name: "EcwOrderEdit", name: "EcwOrderEdit",
components: { components: {
ProductSelector, Selector, CustomerContactSelector, AreaSelector, FileUpload, AreaCodeSelector, ChooseContactDialog, QuickCreateCustomer, SupplierSelector ProductSelector, Selector, CustomerContactSelector, AreaSelector, FileUpload, AreaCodeSelector, ChooseContactDialog, QuickCreateCustomer, SupplierSelector, WorkFlow
}, },
data() { data() {
return { return {
...@@ -553,7 +507,6 @@ export default { ...@@ -553,7 +507,6 @@ export default {
unitList:[], unitList:[],
couponList: [], couponList: [],
couponTypeList: [], couponTypeList: [],
selectedCoupons: {},
fee: {}, // 费用 fee: {}, // 费用
// 表单参数 // 表单参数
form: { form: {
...@@ -566,6 +519,7 @@ export default { ...@@ -566,6 +519,7 @@ export default {
externalWarehouseDtoList:[{}], externalWarehouseDtoList:[{}],
orderItemVOList:[] orderItemVOList:[]
}, },
ccIdArr: [],
// 表单校验 // 表单校验
rules: { rules: {
marks: [ marks: [
...@@ -599,6 +553,10 @@ export default { ...@@ -599,6 +553,10 @@ export default {
}; };
}, },
computed:{ computed:{
// 是否已完成入仓
inWarehouse(){
return this.form.inWarehouseState && this.form.inWarehouseState > 201
},
exportCityList(){ exportCityList(){
return this.tradeCityList.filter(item => item.type == 2 || item.type == 3) return this.tradeCityList.filter(item => item.type == 2 || item.type == 3)
}, },
...@@ -626,13 +584,13 @@ export default { ...@@ -626,13 +584,13 @@ export default {
return getDictDatas return getDictDatas
}, },
selectedRouter(){ selectedRouter(){
// otherService 1 送货上门,2非控货订单代收货款 // otherService 1 集运服务 2 送货上门 3 非控货订单代收货款 4 海外仓 5 提货异常
if(!this.form.lineId)return null if(!this.form.lineId)return null
return this.routerList.find(item => item.id == this.form.lineId) return this.routerList.find(item => item.id == this.form.lineId)
}, },
// 送货上门 // 送货上门
homeDeliveryService(){ homeDeliveryService(){
return this.selectedRouter && this.selectedRouter.otherService && this.selectedRouter.otherService.indexOf('1') > -1 return this.selectedRouter && this.selectedRouter.otherService && this.selectedRouter.otherService.indexOf('2') > -1
}, },
// 代收货款(非控货订单,且路线开通了代收服务) // 代收货款(非控货订单,且路线开通了代收服务)
collectionProxy(){ collectionProxy(){
...@@ -681,7 +639,7 @@ export default { ...@@ -681,7 +639,7 @@ export default {
sum.totalNum = sum.totalNum.plus(item.num || 0) sum.totalNum = sum.totalNum.plus(item.num || 0)
sum.totalVolume = sum.totalVolume.plus(item.volume || 0) sum.totalVolume = sum.totalVolume.plus(item.volume || 0)
sum.totalWeight = sum.totalWeight.plus(item.weight || 0) sum.totalWeight = sum.totalWeight.plus(item.weight || 0)
sum.totaltotalWorthNum = sum.totalWorth.plus(item.worth || 0) sum.totalWorth = sum.totalWorth.plus(item.worth || 0)
sum.totalQuatity = sum.totalQuatity.plus(item.quantity || 0) sum.totalQuatity = sum.totalQuatity.plus(item.quantity || 0)
}) })
return sum return sum
...@@ -696,8 +654,8 @@ export default { ...@@ -696,8 +654,8 @@ export default {
}, },
// 是否可以编辑商品基本信息(货值除外) // 是否可以编辑商品基本信息(货值除外)
productEditable(){ productEditable(){
// 非编辑模式 或者 草稿状态就可以编辑 // 非编辑模式 或者 未完成入仓
return !this.editMode || this.form.status == 0 return !this.editMode || !this.inWarehouse
}, },
// 路线开通的服务 // 路线开通的服务
routeOtherServices(){ routeOtherServices(){
...@@ -717,6 +675,9 @@ export default { ...@@ -717,6 +675,9 @@ export default {
} }
}, },
watch:{ watch:{
ccIdArr(arr){
this.$set(this.form, 'ccIds', arr.join(","))
},
// 始发地 // 始发地
'form.departureId'(){ 'form.departureId'(){
this.getOpenedRouterList() this.getOpenedRouterList()
...@@ -746,7 +707,7 @@ export default { ...@@ -746,7 +707,7 @@ export default {
this.$set(this.form, 'objectiveId', router.destCityId) this.$set(this.form, 'objectiveId', router.destCityId)
}, },
'form.packageTypeArr'(val){ 'form.packageTypeArr'(val){
this.$set(this.form, 'packageType', val.join(',')) this.$set(this.form, 'packageType', val ? val.join(',') : '')
}, },
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择 // 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter(val){ selectedRouter(val){
...@@ -756,7 +717,7 @@ export default { ...@@ -756,7 +717,7 @@ export default {
this.form.type.splice(this.form.type.findIndex(item => item == service), 1) this.form.type.splice(this.form.type.findIndex(item => item == service), 1)
} }
}) })
} }
}, },
activated(){ activated(){
...@@ -767,10 +728,6 @@ export default { ...@@ -767,10 +728,6 @@ export default {
created() { created() {
defaultFormData = Object.assign({}, this.form) defaultFormData = Object.assign({}, this.form)
this.couponTypeList = this.getDictDatas(this.DICT_TYPE.ECW_COUPON_TYPE)
this.couponTypeList.forEach(item => {
this.$set(this.selectedCoupons, item.value, null)
})
if(this.$route.query.id){ if(this.$route.query.id){
this.getOrder() this.getOrder()
}else this.addProduct() }else this.addProduct()
...@@ -791,7 +748,7 @@ export default { ...@@ -791,7 +748,7 @@ export default {
}, },
methods: { methods: {
getOrder(){ getOrder(){
getOrderDetail(this.$route.query.id).then(res => { getUpdateInfo(this.$route.query.id).then(res => {
this.form = res.data this.form = res.data
this.form.orderItemVOList.forEach(item => { this.form.orderItemVOList.forEach(item => {
...@@ -805,7 +762,7 @@ export default { ...@@ -805,7 +762,7 @@ export default {
this.$set(this.form, 'consignorId', res.data.consignorVO.customerId) this.$set(this.form, 'consignorId', res.data.consignorVO.customerId)
this.$set(this.form, 'consignorName', res.data.consignorVO.name) this.$set(this.form, 'consignorName', res.data.consignorVO.name)
this.$set(this.form, 'consignorPhone', res.data.consignorVO.phone) this.$set(this.form, 'consignorPhone', res.data.consignorVO.phone)
this.$set(this.form, 'consigneeCompany', res.data.consigneeVO.company) this.$set(this.form, 'consigneeCompany', res.data.consigneeVO.company)
this.$set(this.form, 'consigneeContactsId', res.data.consigneeVO.customerContactsId) this.$set(this.form, 'consigneeContactsId', res.data.consigneeVO.customerContactsId)
this.$set(this.form, 'consigneeCountryCode', res.data.consigneeVO.countryCode.replace('+', '')) this.$set(this.form, 'consigneeCountryCode', res.data.consigneeVO.countryCode.replace('+', ''))
...@@ -813,6 +770,9 @@ export default { ...@@ -813,6 +770,9 @@ export default {
this.$set(this.form, 'consigneeId', res.data.consigneeVO.customerId) this.$set(this.form, 'consigneeId', res.data.consigneeVO.customerId)
this.$set(this.form, 'consigneeName', res.data.consigneeVO.name) this.$set(this.form, 'consigneeName', res.data.consigneeVO.name)
this.$set(this.form, 'consigneePhone', res.data.consigneeVO.phone) this.$set(this.form, 'consigneePhone', res.data.consigneeVO.phone)
if(res.data.ccIds){
this.ccIdArr = res.data.ccIds.split(",").filter(item => item && item != '')
}
}) })
}, },
onContactChoose(contact){ onContactChoose(contact){
...@@ -842,7 +802,7 @@ export default { ...@@ -842,7 +802,7 @@ export default {
this.importList = res.data.list this.importList = res.data.list
this.$set(this.form, 'packingListUrl', res.data.packingListUrl) this.$set(this.form, 'packingListUrl', res.data.packingListUrl)
}) })
}, },
addToProductList(){ addToProductList(){
...@@ -894,6 +854,7 @@ export default { ...@@ -894,6 +854,7 @@ export default {
console.log(product) console.log(product)
// row.goodsType = product ? product.typeId : null // row.goodsType = product ? product.typeId : null
row.prodAttrArr = !product ? [] : product.attrId.split(',').filter(item => item !== '').map(item => +item) row.prodAttrArr = !product ? [] : product.attrId.split(',').filter(item => item !== '').map(item => +item)
this.calculationPrice()
}, },
onAreaChange(type, val){ onAreaChange(type, val){
this.$set(this.form, type, val) this.$set(this.form, type, val)
...@@ -907,7 +868,7 @@ export default { ...@@ -907,7 +868,7 @@ export default {
onProductAttrChange(row, attr){ onProductAttrChange(row, attr){
console.log(attr) console.log(attr)
}, },
addProduct(data){ addProduct(data){
this.form.orderItemVOList.push(data || {prodAttrArr:[]}) this.form.orderItemVOList.push(data || {prodAttrArr:[]})
}, },
...@@ -950,7 +911,7 @@ export default { ...@@ -950,7 +911,7 @@ export default {
if (!valid) { if (!valid) {
return this.$showFormValidateErrors(errors) return this.$showFormValidateErrors(errors)
} }
this.form.orderItemVOList.map(item => { this.form.orderItemVOList.map(item => {
item.prodAttrIds = item.prodAttrArr.join(',') item.prodAttrIds = item.prodAttrArr.join(',')
}) })
...@@ -960,17 +921,15 @@ export default { ...@@ -960,17 +921,15 @@ export default {
item.channelIds = Array.from(item.channelIdSet).join(',') item.channelIds = Array.from(item.channelIdSet).join(',')
} }
}) })
let coupons = Object.values(this.selectedCoupons).filter(item => !!item)
// 修改的提交 // 修改的提交
if (this.form.orderNo != null) { if (this.form.orderNo != null) {
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
customDraweeVOList: this.customDraweeList, customDraweeVOList: this.customDraweeList,
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled), // transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
orderItemVOList: this.getProductListWithDefaultValue(), orderItemVOList: this.getProductListWithDefaultValue(),
couponIds: coupons.join(",")
}) })
data.type = data.type.join(',') data.type = data.type.join(',')
updateOrder(data).then(response => { updateApply(data).then(response => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"));
this.$router.back() this.$router.back()
}); });
...@@ -980,7 +939,7 @@ export default { ...@@ -980,7 +939,7 @@ export default {
consigneeId: this.consigneeContact.customerId, consigneeId: this.consigneeContact.customerId,
consignorId: this.consignorContact.customerId, consignorId: this.consignorContact.customerId,
customerId : this.consignorContact.customerId, customerId : this.consignorContact.customerId,
couponIds: coupons.join(","), // couponIds: coupons.join(","),
}, this.form, { }, this.form, {
customDraweeVOList: this.customDraweeList, customDraweeVOList: this.customDraweeList,
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled), // transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
...@@ -1060,9 +1019,9 @@ export default { ...@@ -1060,9 +1019,9 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
} }
::v-deep .product-list .el-form-item__error{ ::v-deep .product-list .el-form-item__error{
position: static; position: static;
} }
</style> </style>
\ No newline at end of file
...@@ -138,7 +138,12 @@ ...@@ -138,7 +138,12 @@
<template v-else>{{row.sumVolume}}m³ /{{row.sumWeight}}Kg</template> <template v-else>{{row.sumVolume}}m³ /{{row.sumWeight}}Kg</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="departureName" /> <el-table-column :label="$t('始发仓')" align="center" prop="departureName">
<template slot-scope="{row}">
{{row.departureName}}
<template v-if="row.isExternalWarehouse">({{$t('外部仓')}})</template>
</template>
</el-table-column>
<el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId"> <el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" /> / {{row.objectiveName}} <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" /> / {{row.objectiveName}}
...@@ -172,7 +177,7 @@ ...@@ -172,7 +177,7 @@
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) && exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
exclude(scope.row.status, [20,21]) && exclude(scope.row.status, [20,21]) &&
exclude(scope.row.shipmentState, [320,322,323]) && exclude(scope.row.shipmentState, [320,322,323]) &&
(exclude(scope.row.inWarehouseState, [ 212, 218, 213, 214, 215]) && exclude(scope.row.status, [5,8]) ) exclude(scope.row.inWarehouseState, [ 212, 218, 213, 214, 215])
"> ">
<el-dropdown-item @click.native="handleUpdate(scope.row)" v-hasPermi="['ecw:order:update']" >{{$t('编辑')}}</el-dropdown-item> <el-dropdown-item @click.native="handleUpdate(scope.row)" v-hasPermi="['ecw:order:update']" >{{$t('编辑')}}</el-dropdown-item>
</template> </template>
...@@ -253,12 +258,12 @@ ...@@ -253,12 +258,12 @@
<el-button type="text">{{$t('仓库')}}</el-button> <el-button type="text">{{$t('仓库')}}</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!-- 入仓操作 --> <!-- 入仓操作 -->
<template v-if="include(scope.row.status, [0,2]) || include(scope.row.abnormalState, [1])"> <template v-if="include(scope.row.status, [0,2]) || include(scope.row.abnormalState, [1]) || scope.row.inWarehouseState == 208">
<el-dropdown-item @click.native="$router.push('/order/warehousing?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓操作')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/order/warehousing?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓操作')}}</el-dropdown-item>
</template> </template>
<!-- 入仓补充 --> <!-- 入仓补充 -->
<template v-if=" <template v-if="
include(scope.row.inWarehouseState, [201,202, 208, 202, 210, 202, 211, 202, 213, 214, 215, 216]) && include(scope.row.inWarehouseState, [201,202, 202, 210, 202, 211, 202, 213, 214, 215, 216]) &&
scope.row.abnormalState != 1 && scope.row.abnormalState != 1 &&
include(scope.row.status, [2,3,5,10,9,8]) include(scope.row.status, [2,3,5,10,9,8])
"> ">
...@@ -266,14 +271,14 @@ ...@@ -266,14 +271,14 @@
</template> </template>
<!-- 入仓修改 --> <!-- 入仓修改 -->
<template v-if=" <template v-if="
include(scope.row.inWarehouseState, [202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206]) include(scope.row.inWarehouseState, [202, 207, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206])
"> ">
<el-dropdown-item @click.native="$router.push('/order/warehousing-update?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓修改')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/order/warehousing-update?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓修改')}}</el-dropdown-item>
</template> </template>
<!-- 退仓 --> <!-- 退仓 -->
<template v-if=" <template v-if="
include(scope.row.inWarehouseState, [201, 202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216]) && include(scope.row.inWarehouseState, [201, 202, 207, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216]) &&
exclude(scope.row.abnormalState, [1]) exclude(scope.row.abnormalState, [1])
"> ">
<el-dropdown-item @click.native="show = true;orderId = scope.row.orderId; " v-hasPermi="['ecw:order:update']">{{$t('退仓')}}</el-dropdown-item> <el-dropdown-item @click.native="show = true;orderId = scope.row.orderId; " v-hasPermi="['ecw:order:update']">{{$t('退仓')}}</el-dropdown-item>
...@@ -282,7 +287,7 @@ ...@@ -282,7 +287,7 @@
<!-- 调仓 --> <!-- 调仓 -->
<template v-if=" <template v-if="
include(scope.row.inWarehouseState, [201, 202, 208, 202, 210, 202, 211, 202, 213, 215, 216]) include(scope.row.inWarehouseState, [201, 202, 202, 210, 202, 211, 202, 213, 215, 216])
"> ">
<el-dropdown-item @click.native="orderId = scope.row.orderId;warehouseBol=true;" >{{$t('调仓')}}</el-dropdown-item> <el-dropdown-item @click.native="orderId = scope.row.orderId;warehouseBol=true;" >{{$t('调仓')}}</el-dropdown-item>
</template> </template>
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('异常描述')" align="center"> <el-table-column :label="$t('异常描述')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.orderExceptionDescVO.descZh}}</span> <span v-if="scope.row.orderExceptionDescVO">{{$l(scope.row.orderExceptionDescVO, 'desc')}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('金额')" align="center" scope="orderExceptionAmount" /> <el-table-column :label="$t('金额')" align="center" scope="orderExceptionAmount" />
......
...@@ -209,19 +209,36 @@ ...@@ -209,19 +209,36 @@
</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>
<el-radio v-model="handlerParams.orderExceptionStatus" label="2">{{$t('已处理')}}</el-radio> <el-radio v-model="handlerParams.orderExceptionStatus" label="2">{{$t('已处理')}}</el-radio>
</el-form-item> </el-form-item>
</el-row>
<el-row>
<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+'_don_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&&handlerParams.orderExceptionHandlerResult=='confirm_loss'">
<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-row> <el-row>
<el-form-item :label="$t('查明原因:')" required> <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
......
...@@ -24,11 +24,11 @@ ...@@ -24,11 +24,11 @@
<el-descriptions-item :label="$t('出货渠道')"> <el-descriptions-item :label="$t('出货渠道')">
{{orderData.channelId?getChannelName(orderData.channelId):'/'}} {{orderData.channelId?getChannelName(orderData.channelId):'/'}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('始发地')" :span="2"> <el-descriptions-item :label="$t('始发地')" >
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startAddressZh:$t('')}} {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('目的地')"> <el-descriptions-item :label="$t('目的地')" :span="2">
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destAddressZh:$t('')}} {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destTitleZh:$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('发货人姓名')"> <el-descriptions-item :label="$t('发货人姓名')">
{{orderData.consignorVO?orderData.consignorVO.name||$t(''):$t('')}} {{orderData.consignorVO?orderData.consignorVO.name||$t(''):$t('')}}
......
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
<el-descriptions-item :label="$t('运输方式')"> <el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('始发地')" :span="2"> <el-descriptions-item :label="$t('始发地')" >
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startAddressZh:$t('')}} {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('目的地')"> <el-descriptions-item :label="$t('目的地')" :span="2">
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destAddressZh:$t('')}} {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destTitleZh:$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('发货人姓名')"> <el-descriptions-item :label="$t('发货人姓名')">
{{orderData.consignorVO?orderData.consignorVO.name||$t(''):$t('')}} {{orderData.consignorVO?orderData.consignorVO.name||$t(''):$t('')}}
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
<el-table-column :label="$t('入库货物属性')" align="center" width="400"> <el-table-column :label="$t('入库货物属性')" align="center" width="400">
<template slot-scope="scope"> <template slot-scope="scope">
<el-row> <el-row>
<span>{{$t('规格')}}{{scope.row.boxGauge}}</span> <span>{{$t('规格')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.boxGauge:0}}</span>
</el-row> </el-row>
<el-row> <el-row>
<span>{{$t('品牌')}} <span>{{$t('品牌')}}
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('重量')" align="center"> <el-table-column :label="$t('重量')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.weight}}</span> <span>{{scope.row.weight}}kg</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('箱数')" align="center"> <el-table-column :label="$t('箱数')" align="center">
...@@ -229,7 +229,7 @@ ...@@ -229,7 +229,7 @@
{{shopForm.sum||0}} {{shopForm.sum||0}}
</el-form-item> </el-form-item>
<el-form-item :label="$t('放入箱数:')"> <el-form-item :label="$t('放入箱数:')">
<el-input-number v-model="shopForm.num" controls-position="right" :min="1" :max="shopForm.sum-1"></el-input-number> <el-input-number v-model="shopForm.num" controls-position="right" :min="1" :max="shopForm.sum"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item :label="$t('备注信息:')"> <el-form-item :label="$t('备注信息:')">
<el-input v-model="shopForm.remarks"></el-input> <el-input v-model="shopForm.remarks"></el-input>
...@@ -335,7 +335,6 @@ export default { ...@@ -335,7 +335,6 @@ export default {
const tds = document.querySelectorAll( const tds = document.querySelectorAll(
"#table .el-table__footer-wrapper tr>td" "#table .el-table__footer-wrapper tr>td"
); );
console.log(tds)
// colSpan合并列 // colSpan合并列
tds[1].colSpan = 5; tds[1].colSpan = 5;
tds[1].style.textAlign = "left"; tds[1].style.textAlign = "left";
...@@ -381,7 +380,7 @@ export default { ...@@ -381,7 +380,7 @@ export default {
getSplitList(this.queryParams).then(response => { getSplitList(this.queryParams).then(response => {
this.splitData = response.data.orderSplitBackVOList this.splitData = response.data.orderSplitBackVOList
if(response.data.orderApprovalBackVO){ if(response.data.orderApprovalBackVO){
this.orderApprovalBackVO = response.data.orderApprovalBackVO this.orderApprovalBackVO = response.data.orderApprovalBackVO
} }
this.loading = false; this.loading = false;
...@@ -394,7 +393,6 @@ export default { ...@@ -394,7 +393,6 @@ export default {
this.query.warehouseIds = this.form.destWarehouseId this.query.warehouseIds = this.form.destWarehouseId
}, },
arraySpanMethod({ row, column, rowIndex, columnIndex }) { arraySpanMethod({ row, column, rowIndex, columnIndex }) {
console.log(rowIndex)
if (rowIndex==this.orderData.orderItemVOList.length) { if (rowIndex==this.orderData.orderItemVOList.length) {
if (columnIndex === 1) { if (columnIndex === 1) {
return [2, 3]; return [2, 3];
...@@ -424,7 +422,7 @@ export default { ...@@ -424,7 +422,7 @@ export default {
leviteV += column.warehouseInInfoVO?column.warehouseInInfoVO.volume:0 leviteV += column.warehouseInInfoVO?column.warehouseInInfoVO.volume:0
leviteW += column.warehouseInInfoVO?column.warehouseInInfoVO.weight:0 leviteW += column.warehouseInInfoVO?column.warehouseInInfoVO.weight:0
}); });
sums[1] = this.$t('下单统计')+' '+ orderSum+' '+this.$t('')+' '+ orderV +'' + orderW + ' kg ' + ' '+this.$t('入仓统计:')+ leviteSum+' '+this.$t('')+' '+ leviteV +'' + leviteW + ' kg' sums[1] = this.$t('下单统计')+' '+ orderSum+' '+this.$t('')+' '+ orderV.toFixed(2) +'' + orderW + ' kg ' + ' '+this.$t('入仓统计:')+ leviteSum+' '+this.$t('')+' '+ leviteV.toFixed(2) +'' + leviteW + ' kg'
return sums; return sums;
}, },
......
...@@ -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
......
...@@ -74,23 +74,23 @@ ...@@ -74,23 +74,23 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('入库货物属性')" align="center" > <el-table-column :label="$t('入库货物属性')" align="center" >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{$t('箱规')}}{{scope.row.boxGauge||0}}</span> <span>{{$t('箱规')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.boxGauge:0}}</span>
<p> <p>
<span>{{$t('品牌')}}<dict-tag :value="scope.row.brandType" :type="DICT_TYPE.ECW_IS_BRAND" /></span> <span>{{$t('品牌')}}{{getBrand(scope.row.brand)}}&nbsp;&nbsp;</span>
<span>{{$t('箱数')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.cartonsNum:0}}</span> <span>{{$t('箱数')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.cartonsNum:0}}&nbsp;&nbsp;</span>
<span>{{$t('体积')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.volume:0}}CBM</span> <span>{{$t('体积')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.volume:0}}CBM&nbsp;&nbsp;</span>
<span>{{$t('重量')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.weight:0}}KG</span> <span>{{$t('重量')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.weight:0}}KG</span>
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('重货方数')" align="center" v-if="type=='order_heavy_cargo_exception'"> <el-table-column :label="$t('重货方数')" align="center" v-if="type=='order_heavy_cargo_exception'">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.warehouseInInfoVO?(scope.row.warehouseInInfoVO.heavyNumber||0):0}}CBM</span> <span>{{scope.row.wvolume||0}}CBM</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('泡货方数')" align="center" v-else > <el-table-column :label="$t('泡货方数')" align="center" v-else >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.warehouseInInfoVO?(scope.row.warehouseInInfoVO.lightNumber||0):0}}CBM</span> <span>{{scope.row.vweight||0}}CBM</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('最后操作时间')" scope="handlerTime" /> <el-table-column :label="$t('最后操作时间')" scope="handlerTime" />
...@@ -111,6 +111,7 @@ ...@@ -111,6 +111,7 @@
import {getExceptionById,handlerExceptionByExceptionId} from "@/api/ecw/orderException" import {getExceptionById,handlerExceptionByExceptionId} from "@/api/ecw/orderException"
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order' import {getOrder} from '@/api/ecw/order'
import {getProductBrankPage} from '@/api/ecw/productBrank'
export default { export default {
name: "WeightDeal", name: "WeightDeal",
...@@ -124,7 +125,8 @@ export default { ...@@ -124,7 +125,8 @@ export default {
orderData:{}, orderData:{},
list: {}, list: {},
orderId:0, orderId:0,
type:'' type:'',
branklist:[]
}; };
}, },
created() { created() {
...@@ -135,6 +137,9 @@ export default { ...@@ -135,6 +137,9 @@ export default {
if(this.$route.query.type){ if(this.$route.query.type){
this.type = this.$route.query.type this.type = this.$route.query.type
} }
getProductBrankPage({pageNo:1,pageSize:500}).then((data)=>{
this.branklist=data.data.list
})
}, },
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
...@@ -147,6 +152,10 @@ export default { ...@@ -147,6 +152,10 @@ export default {
this.getOrders() this.getOrders()
}); });
}, },
getBrand(id){
var brank = this.branklist.find(item=>item.id==id)
return brank.titleZh||''
},
checkCode(data){ checkCode(data){
if(data.indexOf('+')==-1){ if(data.indexOf('+')==-1){
return '+'+data return '+'+data
......
...@@ -63,14 +63,14 @@ ...@@ -63,14 +63,14 @@
<div slot="header" style="font-size:20px;"> <div slot="header" style="font-size:20px;">
{{$t('价格设置')}} {{$t('价格设置')}}
<span> <span>
<el-checkbox label="" @change="form.needPay=$event ? 1 : 0">{{$t('预付')}}</el-checkbox> <el-checkbox label="" v-model="needPay">{{$t('预付')}}</el-checkbox>
<el-checkbox label="" @change="form.stepPrice=$event ? 1 : 0">{{$t('阶梯订单')}}</el-checkbox> <el-checkbox label="" v-model="stepPrice">{{$t('阶梯定价')}}</el-checkbox>
</span> </span>
</div> </div>
<el-form-item :label="$t('单价模式')" prop="priceType"> <el-form-item :label="$t('单价模式')" prop="priceType">
<dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" formatter="number" defaultable /> <dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" formatter="number" defaultable />
</el-form-item> </el-form-item>
<!--阶梯订单--> <!--阶梯定价-->
<template v-if="form.stepPrice==1" > <template v-if="form.stepPrice==1" >
<div v-for="(item, index) in priceStepList" :key="index"> <div v-for="(item, index) in priceStepList" :key="index">
<div style="font-size:14px; margin:10px 0"> <div style="font-size:14px; margin:10px 0">
...@@ -224,6 +224,8 @@ export default { ...@@ -224,6 +224,8 @@ export default {
validateEndDate: undefined, validateEndDate: undefined,
validateStartDate: undefined validateStartDate: undefined
}, },
needPay: false, // 是否需要预付
stepPrice: false, // 是否阶梯订单
specialProducts: [], specialProducts: [],
priceStepList: [{},{}], // 阶梯价格 priceStepList: [{},{}], // 阶梯价格
// specialList:[], // 特殊需求,默认四个 // specialList:[], // 特殊需求,默认四个
...@@ -314,6 +316,12 @@ export default { ...@@ -314,6 +316,12 @@ export default {
if(val) this.$set(this.form, 'dayLimit', 10000) if(val) this.$set(this.form, 'dayLimit', 10000)
else delete this.form.dayLimit else delete this.form.dayLimit
}, },
needPay(val){
this.$set(this.form, 'needPay', val ? 1 : 0)
},
stepPrice(val){
this.$set(this.form, 'stepPrice', val ? 1 : 0)
},
selectedRoutes(routers) { selectedRoutes(routers) {
let transportIds = [] let transportIds = []
routers.forEach(item => { routers.forEach(item => {
...@@ -339,6 +347,15 @@ export default { ...@@ -339,6 +347,15 @@ export default {
if(this.$route.query.action == 'update'){ if(this.$route.query.action == 'update'){
getProductPrice(this.$route.query.id).then(res => { getProductPrice(this.$route.query.id).then(res => {
this.$set(this, 'form', res.data) this.$set(this, 'form', res.data)
if(this.form.needPay){
this.needPay = true
}
if(res.data.validateStartDate){
this.form.validateStartDate = parseTime(res.data.validateStartDate)
}
if(res.data.validateEndDate){
this.form.validateEndDate = parseTime(res.data.validateEndDate)
}
this.lineList = [res.data] this.lineList = [res.data]
}) })
} }
......
...@@ -336,9 +336,21 @@ export default { ...@@ -336,9 +336,21 @@ export default {
// 根据状态获取状态名称 ,这个应该可以改成字典,目前接口缺少相关数据,待定 // 根据状态获取状态名称 ,这个应该可以改成字典,目前接口缺少相关数据,待定
statusName() { statusName() {
return row => { return row => {
if(row.blacklist) return '黑名单'; //判断价格是否过期
if(row.auditStatus === AuditStatusEnum.PASS) return '已审核'; let validateStartDate = row.validateStartDate;
return '已下架'; let validateEndDate = row.validateEndDate;
let notSetPrice = false;
let nowDate = new Date().getTime();
if(validateStartDate && validateStartDate > nowDate) {
notSetPrice = true;
}
if(validateEndDate && validateEndDate < nowDate) {
notSetPrice = true;
}
let setPriceText = notSetPrice ? '(未设置价格)' : '';
if(row.blacklist) return '黑名单' + setPriceText;
if(row.auditStatus === AuditStatusEnum.PASS) return '已审核' + setPriceText;
return '已下架' + setPriceText;
} }
}, },
......
...@@ -89,6 +89,9 @@ ...@@ -89,6 +89,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('名称') + '*'"> <el-table-column :label="$t('名称') + '*'">
<template slot="header">
{{$t('名称')}}<span class="red">*</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
class="mb-0 mr-0" class="mb-0 mr-0"
...@@ -100,6 +103,9 @@ ...@@ -100,6 +103,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('电话') + '*'"> <el-table-column :label="$t('电话') + '*'">
<template slot="header">
{{$t('电话')}}<span class="red">*</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
class="mb-0 mr-0" class="mb-0 mr-0"
...@@ -128,6 +134,9 @@ ...@@ -128,6 +134,9 @@
<template slot-scope="scope">{{scope.$index + 1}}</template> <template slot-scope="scope">{{scope.$index + 1}}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('账户名称') + '*'"> <el-table-column :label="$t('账户名称') + '*'">
<template slot="header">
{{$t('账户名称')}}<span class="red">*</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
class="mb-0 mr-0" class="mb-0 mr-0"
...@@ -139,6 +148,9 @@ ...@@ -139,6 +148,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('币别') + '*'"> <el-table-column :label="$t('币别') + '*'">
<template slot="header">
{{$t('币别')}}<span class="red">*</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
class="mb-0 mr-0" class="mb-0 mr-0"
...@@ -150,6 +162,9 @@ ...@@ -150,6 +162,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('银行名称') + '*'"> <el-table-column :label="$t('银行名称') + '*'">
<template slot="header">
{{$t('银行名称')}}<span class="red">*</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
class="mb-0 mr-0" class="mb-0 mr-0"
...@@ -161,6 +176,9 @@ ...@@ -161,6 +176,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('银行账户') + '*'"> <el-table-column :label="$t('银行账户') + '*'">
<template slot="header">
{{$t('银行账户')}}<span class="red">*</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
class="mb-0 mr-0" class="mb-0 mr-0"
...@@ -345,6 +363,13 @@ export default { ...@@ -345,6 +363,13 @@ export default {
if (!valid) { if (!valid) {
return this.$showFormValidateErrors(errors) return this.$showFormValidateErrors(errors)
} }
if(!this.formData.bankList.length){
return this.$message.error('请添加银行信息')
}
if(!this.formData.contactList.length){
return this.$message.error('请添加联系人信息')
}
let data = Object.assign({}, this.formData) let data = Object.assign({}, this.formData)
// 修改的提交 // 修改的提交
...@@ -385,4 +410,7 @@ export default { ...@@ -385,4 +410,7 @@ export default {
::v-deep .data-list .el-form-item__error{ ::v-deep .data-list .el-form-item__error{
position: static; position: static;
} }
.red{
color: red;
}
</style> </style>
...@@ -139,6 +139,11 @@ ...@@ -139,6 +139,11 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item v-if="form.type != '3'" label="重定向" prop="redirect">
<el-input v-model="form.redirect" placeholder="请输入重定向地址" />
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -262,10 +267,11 @@ export default { ...@@ -262,10 +267,11 @@ export default {
name: undefined, name: undefined,
enName: undefined, enName: undefined,
icon: undefined, icon: undefined,
isShowInMenuBar: undefined, isShowInMenuBar: true,
type: SystemMenuTypeEnum.DIR, type: SystemMenuTypeEnum.DIR,
sort: undefined, sort: undefined,
keepalive: false, keepalive: false,
redirect: undefined,
status: CommonStatusEnum.ENABLE status: CommonStatusEnum.ENABLE
}; };
this.resetForm("form"); this.resetForm("form");
......
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