Commit 7937d53f authored by TIAN.DESHENG's avatar TIAN.DESHENG
parents deee64d1 7cd544a2
...@@ -50,11 +50,13 @@ ...@@ -50,11 +50,13 @@
"file-saver": "2.0.5", "file-saver": "2.0.5",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",
"highlight.js": "9.18.5", "highlight.js": "9.18.5",
"html2canvas": "^1.4.1",
"js-beautify": "1.13.0", "js-beautify": "1.13.0",
"js-cookie": "3.0.1", "js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"min-dash": "^3.5.2", "min-dash": "^3.5.2",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"number-precision": "^1.5.2",
"qrcode": "^1.5.1", "qrcode": "^1.5.1",
"quill": "1.3.7", "quill": "1.3.7",
"screenfull": "5.0.2", "screenfull": "5.0.2",
...@@ -69,6 +71,7 @@ ...@@ -69,6 +71,7 @@
"vue-ueditor-wrap": "^2.5.6", "vue-ueditor-wrap": "^2.5.6",
"vuedraggable": "2.24.3", "vuedraggable": "2.24.3",
"vuex": "3.6.0", "vuex": "3.6.0",
"xlsx": "^0.18.5",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -17,3 +17,52 @@ export default { ...@@ -17,3 +17,52 @@ export default {
} }
} }
</script> </script>
<style lang="scss">
.page-title{
font-size:16px;
margin:20px 0;
display:flex;
align-items:center;
&:before{
content: '';
width:5px;
height: 15px;
background:#666;
margin-right:10px;
}
}
.flex{
display: flex;
}
.flex-1{
flex: 1;
}
.center{
align-content: center;
text-align: center;
}
.flex-center{
display: flex;
align-items: center;
justify-content: center;
}
$sizes: 10,20,30,50,100,150,200,500,800,1000;
@for $i from 1 through length($sizes){
$item: nth($sizes, $i);
.ml-#{$item}{
margin-left: #{$item}px;
}
.mr-#{$item}{
margin-right: #{$item}px;
}
.mb-#{$item}{
margin-bottom: #{$item}px;
}
.mt-#{$item}{
margin-top: #{$item}px;
}
.w-#{$item}{
width: #{$item}px;
}
}
</style>
...@@ -56,3 +56,20 @@ export function warehouseApprovalGetById(params){ ...@@ -56,3 +56,20 @@ export function warehouseApprovalGetById(params){
params, params,
}) })
} }
//调仓-查看状态
export function adjustApplyStatus(params){
return request({
url:'/order/order-warehouse-in/adjust-apply-status',
method:'get',
params
})
}
//调仓-撤销
export function cancelAdjustApply(data){
return request({
url:'/order/order-warehouse-in/cancel-adjust-apply',
method:'post',
data
})
}
...@@ -55,6 +55,14 @@ export function exportboxExcel(query) { ...@@ -55,6 +55,14 @@ export function exportboxExcel(query) {
// 创建费用登记 // 创建费用登记
export function createCost(data) { export function createCost(data) {
if (data.id) {
return request({
url: "/ecw/box-cost/update",
method: "put",
data,
});
}
return request({ return request({
url: '/ecw/box-cost/create', url: '/ecw/box-cost/create',
method: 'post', method: 'post',
...@@ -62,6 +70,14 @@ export function createCost(data) { ...@@ -62,6 +70,14 @@ export function createCost(data) {
}) })
} }
// 删除费用登记
export function deleteCost(id) {
return request({
url: `/ecw/box-cost/delete?id=${id}`,
method: "delete",
})
}
// 审核详情 // 审核详情
export function approvalDetail(data) { export function approvalDetail(data) {
return request({ return request({
...@@ -72,6 +88,39 @@ export function approvalDetail(data) { ...@@ -72,6 +88,39 @@ export function approvalDetail(data) {
}) })
} }
// 出货操作日志列表
export function getLogList(params) {
return request({
url: '/ecw/box-op-log/list',
method: 'get',
params
})
}
// 获得费用登记列表
export function getCostList(params) {
return request({
url: '/ecw/box-cost/list',
method: 'get',
params
})
}
// 获得出货异常记录列表
export function getAbnormalList(params) {
return request({
url: '/ecw/box-abnormal/list',
method: 'get',
params
})
}
/**
* formData数据
*
* @param {*} params
* @return {*}
*/
function jsonToFormData(params) { function jsonToFormData(params) {
const formData = new FormData(); const formData = new FormData();
for (const [key, value] of Object.entries(params)) { for (const [key, value] of Object.entries(params)) {
......
...@@ -334,6 +334,21 @@ export function approvalCreate(data) { ...@@ -334,6 +334,21 @@ export function approvalCreate(data) {
}); });
} }
/**
* 取消审核
*
* @export
* @param {*} data
* @return {*}
*/
export function approvalCancel(data) {
return request({
url: `/ecw/box-approval/cancel`,
method: "delete",
data,
});
}
/** /**
* 异常登记 * 异常登记
* *
...@@ -355,14 +370,14 @@ export function abnormalCreate(data) { ...@@ -355,14 +370,14 @@ export function abnormalCreate(data) {
* 获得已预装部分列表 * 获得已预装部分列表
* *
* @export * @export
* @param {*} params * @param {*} data
* @return {*} * @return {*}
*/ */
export function secGoodsList(params) { export function secGoodsList(data) {
return request({ return request({
url: "/ecw/box-preload-goods/secGoodsList", url: "/ecw/box-preload-goods/secGoodsList",
method: "get", method: "post",
params, data,
}); });
} }
...@@ -370,14 +385,14 @@ export function secGoodsList(params) { ...@@ -370,14 +385,14 @@ export function secGoodsList(params) {
* 获得预装分页 * 获得预装分页
* *
* @export * @export
* @param {*} params * @param {*} data
* @return {*} * @return {*}
*/ */
export function preloadPage(params) { export function preloadPage(data) {
return request({ return request({
url: "/ecw/box-preload-goods/preloadPage", url: "/ecw/box-preload-goods/preloadPage",
method: "get", method: "post",
params, data,
}); });
} }
...@@ -396,6 +411,37 @@ export function createSection(data) { ...@@ -396,6 +411,37 @@ export function createSection(data) {
}); });
} }
/**
* 查询出货单下的所有部分列表
*
* @export
* @param {*} data
* @return {*}
*/
export function getSectionList(params) {
return request({
url: "/ecw/box-preload-section/list",
method: "get",
params,
});
}
/**
* 装柜订单明细
*
* @export
* @param {*} data
* @return {*}
*/
export function boxGoodsDetail(data) {
return request({
url: "/ecw/box-preload-goods/boxGoodsDetail",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/** /**
* 删除预装部分 * 删除预装部分
* *
...@@ -474,6 +520,21 @@ export function orderTagList(data) { ...@@ -474,6 +520,21 @@ export function orderTagList(data) {
}); });
} }
/**
* 单个装柜
*
* @export
* @param {*} data
* @return {*}
*/
export function singleCreate(data) {
return request({
url: "/ecw/box-load-info/singleCreate",
method: "post",
data,
});
}
/** /**
* 批量装柜 * 批量装柜
* *
...@@ -489,6 +550,21 @@ export function batchCreate(data) { ...@@ -489,6 +550,21 @@ export function batchCreate(data) {
}); });
} }
/**
* 单个删除已装柜标签
*
* @export
* @param {*} data
* @return {*}
*/
export function singleDelete(data) {
return request({
url: "/ecw/box-load-info/singleDelete",
method: "post",
data,
});
}
/** /**
* 批量删除已装柜标签 * 批量删除已装柜标签
* *
...@@ -664,27 +740,72 @@ export function extraCostList(params) { ...@@ -664,27 +740,72 @@ export function extraCostList(params) {
/***************************** 报关费用 end **********************************/ /***************************** 报关费用 end **********************************/
/***************************** 理货 start **********************************/
/**
* 理货列表
*
* @export
* @param {*} data
* @return {*}
*/
export function getTallyList(data) {
return request({
url: "/shipment/box/tallyList",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/**
* 理货移出
*
* @export
* @param {*} data
* @return {*}
*/
export function tallyRemove(data) {
return request({
url: "/ecw/box-preload-goods/remove",
method: "post",
data,
});
}
/** /**
* 服务提示消息回调 * 理货
* *
* @export * @export
* @param {*} result * @param {*} data
* @param {*} _vue
* @return {*} * @return {*}
*/ */
export function serviceMsg(result, _vue) { export function tallyLocationUpdate(data) {
return new Promise((resolve, reject) => { return request({
const { code, msg } = result; url: "/shipment/box/batchOrderLocationUpdate",
if (code === 0) { method: "post",
_vue.$message.success("操作成功"); data,
resolve();
} else {
_vue.$message.error(msg);
reject();
}
}); });
} }
/**
* 理货提交
*
* @export
* @param {*} data
* @return {*}
*/
export function tallyCommit(data) {
return request({
url: "/shipment/box/tallyCommit",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/***************************** 理货 end **********************************/
function jsonToFormData(params) { function jsonToFormData(params) {
const formData = new FormData(); const formData = new FormData();
for (const [key, value] of Object.entries(params)) { for (const [key, value] of Object.entries(params)) {
......
...@@ -61,3 +61,12 @@ export function exportChannelExcel(query) { ...@@ -61,3 +61,12 @@ export function exportChannelExcel(query) {
responseType: 'blob' responseType: 'blob'
}) })
} }
//
export function getChannelListByIds(params){
return request({
url: '/ecw/channel/list',
method: 'get',
params
})
}
...@@ -155,3 +155,11 @@ export function userMemberUserList(){ ...@@ -155,3 +155,11 @@ export function userMemberUserList(){
method:'get' method:'get'
}) })
} }
//查看某客户授权的品牌
export function getBrankByCustomer(data){
return request({
url:'/ecw/product-brank/getBrankByCustomer',
method:'post',
data,
})
}
...@@ -9,6 +9,15 @@ export function createDeptTarget(data) { ...@@ -9,6 +9,15 @@ export function createDeptTarget(data) {
}) })
} }
// 我的业绩
export function myAchievementByPage(data) {
return request({
url: '/sale/dept-target/myAchievementByPage',
method: 'post',
data: data
})
}
// 更新部门业绩目标设置 // 更新部门业绩目标设置
export function updateDeptTarget(data) { export function updateDeptTarget(data) {
return request({ return request({
...@@ -50,6 +59,15 @@ export function getDeptTargetPage(query) { ...@@ -50,6 +59,15 @@ export function getDeptTargetPage(query) {
}) })
} }
// 获得个人目标进度分页
export function getPersonTargetPage(query) {
return request({
url: '/sale/dept-target/personal/page',
method: 'get',
params: query
})
}
// 导出部门业绩目标设置 Excel // 导出部门业绩目标设置 Excel
export function exportDeptTargetExcel(query) { export function exportDeptTargetExcel(query) {
return request({ return request({
......
...@@ -9,6 +9,15 @@ export function createReceipt(data) { ...@@ -9,6 +9,15 @@ export function createReceipt(data) {
}) })
} }
// 更新收款单
export function updateReceipt(data) {
return request({
url: '/ecw/receipt/update',
method: 'put',
data: data
})
}
// 获取应收款列表 // 获取应收款列表
export function getReceivableList(query) { export function getReceivableList(query) {
return request({ return request({
...@@ -18,6 +27,144 @@ export function getReceivableList(query) { ...@@ -18,6 +27,144 @@ export function getReceivableList(query) {
}) })
} }
// 获取应收款详情
export function getReceivableInfoByIds(query) {
return request({
url: '/ecw/receivable/get',
method: 'get',
params: query
})
}
// 获取收款单列表
export function getReceiptList(query) {
return request({
url: '/ecw/receipt/page',
method: 'get',
params: query
})
}
// 核销收款单
// export function receiptVerification(id) {
// return request({
// url: '/ecw/receipt/verification/' + id,
// method: 'GET'
// })
// }
// 反核销收款单
// export function receiptVerificationCancel(id) {
// return request({
// url: '/ecw/receipt/verificationCancel/' + id,
// method: 'GET'
// })
// }
// 获取收款单详情
export function getReceiptInfoByIds(query) {
return request({
url: '/ecw/receipt/get',
method: 'get',
params: query
})
}
// 获取收款单明细列表
export function getReceivableItemDetail(query) {
return request({
url: '/ecw/receipt/getReceivableItemDetail',
method: 'get',
params: query
})
}
// 获取收款单明细
export function getInvoicingItem(query) {
return request({
url: '/ecw/receipt/getInvoicingItem',
method: 'get',
params: query
})
}
// 创建收款明细
export function receiptItemCreate(data) {
return request({
url: '/ecw/receipt-item/create',
method: 'post',
data: data
})
}
// 根据收款单ID获得收款明细列表
export function getReceivableItem(query) {
return request({
url: '/ecw/receipt-item/getReceivableItem',
method: 'get',
params: query
})
}
// 根据收款单ID获得收款账户细列表
export function getReceiptAccountList(query) {
return request({
url: '/ecw/receipt/getReceiptAccountList',
method: 'get',
params: query
})
}
// 删除收款明细
export function deleteReceiptItem(id) {
return request({
url: '/ecw/receipt-item/delete?id=' + id,
method: 'delete'
})
}
// 更新收款明细
export function updateReceiptItem(data) {
return request({
url: '/ecw/receipt-item/update',
method: 'put',
data: data
})
}
// 收款明细核销
export function receiptItemVerification(id) {
return request({
url: '/ecw/receipt-item/verification/' + id,
method: 'GET'
})
}
// 反核销收款单
export function receiptItemVerificationCancel(id) {
return request({
url: '/ecw/receipt-item/verificationCancel/' + id,
method: 'GET'
})
}
// 收款明细批量核销
export function receiptItemBatchVerification(query) {
return request({
url: '/ecw/receipt-item/batchVerification',
method: 'GET',
params: query
})
}
// 收款单全部核销
export function receiptItemAllVerification(id) {
return request({
url: '/ecw/receipt-item/allVerification/' + id,
method: 'GET'
})
}
// 根据获取应收款列表 // 根据获取应收款列表
// export function getReceivableListByIds(query) { // export function getReceivableListByIds(query) {
// return request({ // return request({
...@@ -27,6 +174,41 @@ export function getReceivableList(query) { ...@@ -27,6 +174,41 @@ export function getReceivableList(query) {
// }) // })
// } // }
// 导出收款单 Excel
export function receiptExportExcel(query) {
return request({
url: '/ecw/receipt/export-excel',
method: 'get',
params: query
})
}
// 删除收款单
export function deleteReceipt(id) {
return request({
url: '/ecw/receipt/delete?id=' + id,
method: 'delete'
})
}
// 获得收款单开票信息
export function getReceiptInvoicing(id) {
return request({
url: '/ecw/receipt/invoicing/info/' + id,
method: 'get'
})
}
// 更新收款单开票信息
export function updateReceiptInvoicing(data) {
return request({
url: '/ecw/receipt/invoicing/info',
method: 'put',
data: data
})
}
// 更新应付款 // 更新应付款
export function updatePayable(data) { export function updatePayable(data) {
return request({ return request({
...@@ -80,4 +262,72 @@ export function getPaymentList(query) { ...@@ -80,4 +262,72 @@ export function getPaymentList(query) {
method: 'get', method: 'get',
params: query params: query
}) })
} }
\ No newline at end of file
// 获取付款单详情
export function getPaymentInfoByIds(query) {
return request({
url: '/ecw/payment/get',
method: 'get',
params: query
})
}
// 获得付款单付款明细
export function getPaymentItem(query) {
return request({
url: '/ecw/payment/getPaymentItem',
method: 'get',
params: query
})
}
// 更新付款单
export function updatePayment(data) {
return request({
url: '/ecw/payment/update',
method: 'put',
data: data
})
}
// 删除付款单
export function deletePayment(id) {
return request({
url: '/ecw/payment/delete?id=' + id,
method: 'delete'
})
}
// 审核付款单
export function paymentVerify(query) {
return request({
url: '/ecw/payment/verify',
method: 'post',
data: query
})
}
// 核销付款单
export function paymentVerification(id) {
return request({
url: '/ecw/payment/verification/' + id,
method: 'GET'
})
}
// 反核销付款单
export function paymentVerificationCancel(id) {
return request({
url: '/ecw/payment/verificationCancel/' + id,
method: 'GET'
})
}
// 反审核付款单
export function paymentVerifyCancel(id) {
return request({
url: '/ecw/payment/verifyCancel/' + id,
method: 'GET'
})
}
...@@ -163,6 +163,22 @@ export function orderWarehouseIn(data){ ...@@ -163,6 +163,22 @@ export function orderWarehouseIn(data){
}) })
} }
// 入仓修改
export function orderWarehouseInUpdateApply(data){
return request({
url: '/order/order-warehouse-in/update-apply',
method: 'put',
data
})
}
// 获取入仓修改审批单详情-审批使用
export function getWarehouseUpdateApprovalInfo(id) {
return request({
url: '/order/order-warehouse-in/get-update-approval-info?formId=' + id,
method: 'get'
})
}
// 入仓完成 // 入仓完成
export function orderWarehouseInFinish(data){ export function orderWarehouseInFinish(data){
return request({ return request({
...@@ -249,15 +265,6 @@ export function feeApplicationGet(params){ ...@@ -249,15 +265,6 @@ export function feeApplicationGet(params){
}) })
} }
// 获得控货分页
export function getCargoControlOrderPage(params){
return request({
url:'ecw/order-cargo-control/cargo/control/order',
method:'get',
params
})
}
//获得调仓明细 //获得调仓明细
export function orderWarehouseInGetAdjustInfo(params){ export function orderWarehouseInGetAdjustInfo(params){
return request({ return request({
...@@ -288,6 +295,13 @@ export function getCargoControlOrderPage(params){ ...@@ -288,6 +295,13 @@ export function getCargoControlOrderPage(params){
params params
}) })
} }
export function getAdjustInfo(params){
return request({
url:'/order/order-warehouse-in/get-adjust-info',
method:'get',
params,
})
}
export function warehouseAdjustArrived(data){ export function warehouseAdjustArrived(data){
return request({ return request({
url:'/order/order-warehouse-in/warehouse-adjust-arrived', url:'/order/order-warehouse-in/warehouse-adjust-arrived',
...@@ -302,3 +316,46 @@ export function listByOrderId(params){ ...@@ -302,3 +316,46 @@ export function listByOrderId(params){
params, params,
}) })
} }
// 获取快递单号
export function getOrderCourierNumber(params){
return request({
url:'/ecw/order/courier/number',
method:'get',
params,
})
}
// 获取审核
export function getApproval(id){
return request({
url:'/order/approval/get?id=' + id,
method:'get'
})
}
// 特价申请
export function createOrderSpecial(data) {
return request({
url: '/ecw/order/special/apply',
method: 'put',
data: data
})
}
// 获得订单特价申请详情
export function getOrderSpecial(offerProdId, type = 1) {
return request({
url: '/ecw/order/special/info/' + offerProdId + '/' + type,
method: 'get'
})
}
// 根据订单项商品ID与审批类型获得订单商品的特价申请详情
export function getOrderSpecialByApproveId(approveId) {
return request({
url: '/ecw/order/special/info?approveId=' + approveId,
method: 'get'
})
}
import request from '@/utils/request'
// 获得控货分页
export function getCargoControlOrderPage(params){
return request({
url:'ecw/order-cargo-control/cargo/control/order',
method:'get',
params
})
}
// 发送手机验证码
export function sendSmsCode(data){
return request({
url: '/ecw/order-cargo-control/send-sms-code',
method: 'post',
data
})
}
// 创建订单控货人信息
export function create(data){
return request({
url: '/ecw/order-cargo-control/create',
method: 'post',
data
})
}
// 创建订单控货人放货记录
export function createPick(data){
return request({
url: '/ecw/order-cargo-control-pick/create',
method: 'post',
data
})
}
//获得控货订单放货编辑详情
export function getRleaseInfo(orderId){
return request({
url:'/ecw/order-cargo-control/release/info/' + orderId,
method:'get'
})
}
// 获得控货订单放货详情
export function getPickRleaseInfo(orderId){
return request({
url:'/ecw/order-cargo-control-pick/release/info/' + orderId,
method:'get'
})
}
// 放货修改与反复核申请
export function updateApply(data){
return request({
url: '/ecw/order-cargo-control-pick/update/apply',
method: 'put',
data
})
}
// 复核(放货复核)
export function review(id){
return request({
url: '/ecw/order-cargo-control-pick/review/' + id,
method: 'put'
})
}
// 取消放货
export function cancel(id){
return request({
url: '/ecw/order-cargo-control-pick/cancel/' + id,
method: 'put'
})
}
// 取消审批
export function cancelApproval(approvalId, params){
return request({
url: '/ecw/order-cargo-control-pick/cancel/approval/' + approvalId,
method: 'get',
params
})
}
// 订单复核
export function orderReview(orderId){
return request({
url: '/ecw/order-cargo-control/review/' + orderId,
method: 'put'
})
}
import request from '@/utils/request'
// 根据合并订单编号(或订单号)获得已合单列表和待合单列表
export function getMergeListByOrderNo(query){
return request({
url:'/order/merge/getMergeListByOrderNo',
method: 'get',
params: query,
})
}
//创建订单合单申请
export function createMerge(data) {
return request({
url: '/order/merge/create',
method: 'post',
data: data
})
}
// 取消订单拆单
export function cancelMerge(data) {
return request({
url: '/order/merge/cancel',
method: 'delete',
data:data
})
}
//拆单申请提交
export function splitApply(data) {
return request({
url: '/order/split/apply',
method: 'put',
data: data
})
}
// 创建订单拆单
export function createSplit(data) {
return request({
url: '/order/split/create',
method: 'post',
data: data
})
}
// 更新订单拆单
export function updateSplit(data) {
return request({
url: '/order/split/update',
method: 'put',
data: data
})
}
// 删除订单拆单
export function deleteSplit(id) {
return request({
url: '/order/split/delete?id=' + id,
method: 'delete'
})
}
//取消申请拆单
export function cancelApply(data) {
return request({
url: '/order/split/cancel-apply',
method: 'put',
data:data
})
}
// 获得订单拆单
export function getSplit(id) {
return request({
url: '/order/split/get?id=' + id,
method: 'get'
})
}
// 获得订单拆单分页
export function getSplitPage(query) {
return request({
url: '/order/split/page',
method: 'get',
params: query
})
}
// 导出订单拆单 Excel
export function exportSplitExcel(query) {
return request({
url: '/order/split/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
//通过订单号获取拆单列表和拆单项明细
export function getSplitList(query) {
return request({
url: '/order/split/list-by-order-id',
method: 'get',
params: query
})
}
// 创建订单拆单项 - 放入
export function createSplitItem(data) {
return request({
url: '/order/split-item/create',
method: 'post',
data: data
})
}
// 删除订单拆单项
export function deleteSplitItem(id) {
return request({
url: '/order/split-item/delete?id=' + id,
method: 'delete'
})
}
// 根据合并编号获得订单信息、已合单列表和待合单列表
export function getMergeListByMergeId(params){
return request({
url: '/order/merge/getMergeListByMergeId',
method: 'get',
params
})
}
\ No newline at end of file
...@@ -70,3 +70,22 @@ export function batchUpdateProductPrice(query) { ...@@ -70,3 +70,22 @@ export function batchUpdateProductPrice(query) {
data: query data: query
}) })
} }
// 批量拉黑
export function batchBlock(query) {
return request({
url: '/ecw/product-price/batchBlock',
method: 'get',
params: query
})
}
// 批量下架
export function batchOff(query) {
return request({
url: '/ecw/product-price/batchOff',
method: 'get',
params: query
})
}
...@@ -35,10 +35,11 @@ export function getWarehouseArea(id) { ...@@ -35,10 +35,11 @@ export function getWarehouseArea(id) {
} }
// 获得仓库查询库域 // 获得仓库查询库域
export function getByWarehouseId() { export function getByWarehouseId(params) {
return request({ return request({
url: '/ecw/warehouse-area/getByWarehouseId', url: '/ecw/warehouse-area/getByWarehouseId',
method: 'get' method: 'get',
params
}) })
} }
......
import request from '@/utils/request'
// 创建须知
export function createNeedKnow(data) {
return request({
url: '/system/need-know/create',
method: 'post',
data: data
})
}
// 更新须知
export function updateNeedKnow(data) {
return request({
url: '/system/need-know/update',
method: 'put',
data: data
})
}
// 删除须知
export function deleteNeedKnow(id) {
return request({
url: '/system/need-know/delete?id=' + id,
method: 'delete'
})
}
// 获得须知
export function getNeedKnow(id) {
return request({
url: '/system/need-know/get?id=' + id,
method: 'get'
})
}
// 根据key获得须知
export function getNeedKnowByKey(key) {
return request({
url: '/system/need-know/getByKey?key=' + key,
method: 'get'
})
}
// 获得须知分页
export function getNeedKnowPage(query) {
return request({
url: '/system/need-know/page',
method: 'get',
params: query
})
}
// 导出须知 Excel
export function exportNeedKnowExcel(query) {
return request({
url: '/system/need-know/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
...@@ -49,7 +49,7 @@ a, ...@@ -49,7 +49,7 @@ a,
a:focus, a:focus,
a:hover { a:hover {
cursor: pointer; cursor: pointer;
color: inherit; // color: inherit;
text-decoration: none; text-decoration: none;
} }
......
<template>
<selector v-model="valueSync" :options="countryList" value-field="tel" key-field="id" :label-field="item => item.nameZh + item.tel" filterable clearable></selector>
</template>
<script>
import {getCountryListAll} from '@/api/ecw/country'
import selector from '@/components/Selector'
export default {
components: {selector},
props: {
value: String,
},
data(){
return {
valueSync: '',
countryList:[]
}
},
watch:{
valueSync(){
this.$emit('input', this.valueSync)
},
value(){
if(this.value)this.valueSync = this.value
}
},
created(){
if(this.value){
this.valueSync = this.value
}
getCountryListAll().then(res => {
this.countryList = res.data
})
},
methods:{
}
}
</script>
\ No newline at end of file
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
<el-select v-model="formData.country"> <el-select v-model="formData.country">
<el-option v-for="(item) in treeList" :value="item.id" :label="item.titleZh" :key="item.id" /> <el-option v-for="(item) in treeList" :value="item.id" :label="item.titleZh" :key="item.id" />
</el-select> </el-select>
<el-select v-model="formData.province"> <el-select v-model="formData.province" class="ml-10">
<el-option v-for="(item) in provinceList" :value="item.id" :label="item.titleZh" :key="item.id" /> <el-option v-for="(item) in provinceList" :value="item.id" :label="item.titleZh" :key="item.id" />
</el-select> </el-select>
<el-select v-model="formData.city"> <el-select v-model="formData.city" class="ml-10">
<el-option v-for="(item) in cityList" :value="item.id" :label="item.titleZh" :key="item.id" /> <el-option v-for="(item) in cityList" :value="item.id" :label="item.titleZh" :key="item.id" />
</el-select> </el-select>
</div> </div>
......
<template> <template>
<el-select <div>
v-model="index" <el-select
filterable v-model="index"
clearable filterable
remote clearable
reserve-keyword remote
placeholder="请输入关键词" reserve-keyword
:remote-method="remoteMethod" placeholder="请输入关键词"
:loading="loading"> :remote-method="remoteMethod"
<el-option :loading="loading">
v-for="(item, index) in list" <el-option
:key="item.id" v-for="(item, index) in formattedList"
:label="`${item.contactsName}`" :key="item.id"
:value="index"> :label="`${item.label}`"
</el-option> :value="index">
</el-select> </el-option>
</el-select>
<el-button v-if="quickable" type="text" @click="showQuickCreate=true" class="ml-10">快速新建</el-button>
<!-- <quick-create v-if="showQuickCreate" @success="onQuickCreateSuccess" @close="showQuickCreate=false" :default="{type}"></quick-create> -->
</div>
</template> </template>
<script> <script>
import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customerContacts' import {getCustomerContactsSelect, getCustomerContactsListByCustomer} from '@/api/ecw/customerContacts'
import QuickCreate from '@/views/ecw/customer/components/quickCreate'
import Vue from 'vue'
export default { export default {
components:{QuickCreate},
props:{ props:{
value: [String, Number] value: [String, Number],
quickable: {
type: Boolean,
default: true
},
type: [String, Number], // 客户类别,新建时指定默认类别,也可以根据需要筛选联系人所属的客户类别
}, },
data(){ data(){
return { return {
index: null, index: null,
list:[], list:[],
loading: false, loading: false,
size: 20 size: 20,
showQuickCreate: false
}
},
computed:{
formattedList(){
return this.list.map(item => {
item.label = item.contactsName
let more = []
if(item.customerName){
more.push(item.customerName)
}
if(item.phoneNew){
more.push(item.phoneNew)
}
if(item.email){
more.push(item.email)
}
if(more.length){
item.label += `(${more.join('|')})`
}
return item
})
} }
}, },
watch:{ watch:{
...@@ -38,6 +72,49 @@ export default { ...@@ -38,6 +72,49 @@ export default {
}, },
value(val){ value(val){
this.init() this.init()
},
showQuickCreate(){
if(!this.showQuickCreate)return
const QuickCreateComp = Vue.extend(QuickCreate)
const dialog = new QuickCreateComp({
propsData:{
default: {type: this.type}
},
})
/* dialog.$on = () => {
return {
success: this.onQuickCreateSuccess,
close: () => {
console.log('关闭拉')
this.showQuickCreate = false
}
}
} */
dialog.$on('close', () => {
console.log('关闭拉')
this.showQuickCreate = false
document.body.removeChild(dialog.$el)
dialog.$destroy()
})
dialog.$on('success', (id) => {
this.onQuickCreateSuccess(id)
dialog.$emit('close')
})
dialog.$mount()
console.log({
dialog,
parent: this
})
window.dialogComp = dialog
document.body.append(dialog.$el)
/* dialog.remove = () => {
console.log('关闭拉11')
document.body.removeChild(dialog.$el)
} */
} }
}, },
created(){ created(){
...@@ -67,6 +144,18 @@ export default { ...@@ -67,6 +144,18 @@ export default {
getCustomerContactsSelect(params) getCustomerContactsSelect(params)
.then(res => this.list = res.data) .then(res => this.list = res.data)
.finally(() => this.loading = false) .finally(() => this.loading = false)
},
onQuickCreateSuccess(id){
this.showQuickCreate = false
getCustomerContactsListByCustomer({customerId: id}).then(res => {
if(!res.data || !res.data.length){
return this.$message.error('联系人信息获取失败')
}
let data = res.data[0]
data.contactsName = data.name // 字段名跟getCustomerContactsSelect对齐
this.list.unshift(data)
this.index = 0
})
} }
} }
} }
......
<template> <template>
<div class="dict-selector"> <div class="dict-selector">
<el-select v-if="formType == 'select'" v-model="valueSync" :placeholder="placeholder" clearable :multiple="multiple" :disabled="disabled"> <el-select v-if="formType == 'select'" v-model="valueSync" :placeholder="placeholder" clearable :multiple="multiple" :disabled="disabled" @change="val => $emit('change', val)">
<el-option v-for="dict in formattedList" <el-option v-for="dict in formattedList"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
......
<template>
<div class="need-know" :id="'need-know_' + keyname" v-if="detail">
<!-- <h2>{{detail.titleZh}}</h2> -->
<div class="body" v-html="detail.contentZh"></div>
</div>
</template>
<script>
import {getNeedKnowByKey} from '@/api/system/needKnow'
import html2canvas from 'html2canvas'
import FileSaver from 'file-saver'
export default {
props:{
keyname: String
},
data(){
return {
detail: null
}
},
created(){
getNeedKnowByKey(this.keyname).then(res => {
this.detail = res.data
})
},
methods:{
download(){
// 直接保存图片
let l = this.$loading()
html2canvas(document.querySelector("#need-know_" + this.keyname)).then(canvas => {
canvas.toBlob((blob) => {
FileSaver.saveAs(blob, this.keyname + '.png')
})
}).finally(res => {
l.close()
});
},
}
}
</script>
<style scoped>
.body img{
max-width: 100%;
}
.need-know{
padding: 20px;
}
</style>
\ No newline at end of file
...@@ -2,43 +2,51 @@ ...@@ -2,43 +2,51 @@
<div> <div>
<el-descriptions border v-if="order.orderId"> <el-descriptions border v-if="order.orderId">
<el-descriptions-item label="唛头">{{ order.marks }}</el-descriptions-item> <el-descriptions-item label="唛头">{{ order.marks }}</el-descriptions-item>
<el-descriptions-item label="已到箱数">{{ order.sumNum }}</el-descriptions-item> <el-descriptions-item label="已到箱数/总箱数">{{ order.sumNum }}/{{ order.costVO.totalNum }}</el-descriptions-item>
<el-descriptions-item label="订单状态"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" /></el-descriptions-item> <el-descriptions-item label="订单状态"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" :class="{red: order.status === 1, green: order.status === 5 || order.status === 2}" /></el-descriptions-item>
<el-descriptions-item label="送货时间">todo</el-descriptions-item> <el-descriptions-item label="送货时间">{{ order.consigneeVO && order.consigneeVO.deliveryDate || '' }}</el-descriptions-item>
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="始发地">{{ order.logisticsInfoDto.startWarehouseId }}</el-descriptions-item> <el-descriptions-item label="始发地">{{ order.logisticsInfoDto.startAddressZh || '' }}</el-descriptions-item>
<el-descriptions-item label="目的地">{{ order.logisticsInfoDto.destWarehouseId }}</el-descriptions-item> <el-descriptions-item label="目的地">{{ order.logisticsInfoDto.destTitleZh || '' }}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{ order.consignorVO && order.consignorVO.name}}</el-descriptions-item> <el-descriptions-item label="发货人姓名">{{ order.consignorVO && order.consignorVO.name || ''}}</el-descriptions-item>
<el-descriptions-item label="发货人公司">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item> <el-descriptions-item label="发货人公司">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{ order.consignorVO && order.consignorVO.phone }}</el-descriptions-item> <el-descriptions-item label="发货人电话">{{ order.consignorVO && order.consignorVO.phone || '' }}</el-descriptions-item>
<el-descriptions-item label="收货人姓名">{{ order.consigneeVO && order.consigneeVO.name}}</el-descriptions-item> <el-descriptions-item label="收货人姓名">{{ order.consigneeVO && order.consigneeVO.name || ''}}</el-descriptions-item>
<el-descriptions-item label="收货人公司">{{ order.consigneeVO && order.consigneeVO.company }}</el-descriptions-item> <el-descriptions-item label="收货人公司">{{ order.consigneeVO && order.consigneeVO.company || '' }}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{ order.consigneeVO && order.consigneeVO.phone }}</el-descriptions-item> <el-descriptions-item label="收货人电话">{{ order.consigneeVO && order.consigneeVO.phone || '' }}</el-descriptions-item>
<el-descriptions-item label="入仓类型">{{ order.warehouseType }}</el-descriptions-item> <el-descriptions-item label="入仓类型">{{ getDictDataLabel(DICT_TYPE.ECW_WAREHOUSING_TYPE, order.warehouseType) }}</el-descriptions-item>
<el-descriptions-item label="订单号">{{ order.orderNo }}</el-descriptions-item> <el-descriptions-item label="订单号">{{ order.orderNo }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</template> </template>
<script> <script>
import {DICT_TYPE} from "@/utils/dict" import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
export default { export default {
name: "orderBaseInfo", name: "orderBaseInfo",
props: { props: {
order: Object order: Object
}, },
data () { data () {
return { return {
DICT_TYPE DICT_TYPE,
getDictDataLabel
} }
} }
} }
</script> </script>
<style scoped> <style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red{
color: $--color-danger;
}
.green{
color: $--color-success;
}
</style> </style>
...@@ -8,11 +8,12 @@ ...@@ -8,11 +8,12 @@
placeholder="请输入商品关键词" placeholder="请输入商品关键词"
:disabled="disabled" :disabled="disabled"
:remote-method="remoteMethod" :remote-method="remoteMethod"
@focus="remoteMethod()"
:loading="loading"> :loading="loading">
<el-option <el-option
v-for="(item, index) in list" v-for="(item, index) in list"
:key="item.id" :key="item.id"
:label="item.titleZh" :label="item['title' + lang]"
:value="index"> :value="index">
</el-option> </el-option>
...@@ -25,7 +26,11 @@ export default { ...@@ -25,7 +26,11 @@ export default {
props:{ props:{
productType: [String, Number], productType: [String, Number],
value: [String, Number], value: [String, Number],
disabled: Boolean disabled: Boolean,
lang: {
type: String,
default: 'Zh'
}
}, },
data(){ data(){
return { return {
...@@ -72,7 +77,9 @@ export default { ...@@ -72,7 +77,9 @@ export default {
} }
}, },
remoteMethod(keyword){ remoteMethod(keyword){
let params = {} let params = {
pageSize: keyword ? 100000 : 10
}
if(this.productType){ if(this.productType){
params.typeId = this.productType params.typeId = this.productType
} }
......
...@@ -83,10 +83,24 @@ export default { ...@@ -83,10 +83,24 @@ export default {
computed:{ computed:{
importCityList(){ importCityList(){
return this.tradeCityList.filter(item => item.type == 1) return this.tradeCityList.filter(item => item.type == 1 || item.type == 3)
}, },
exportCityList(){ exportCityList(){
return this.tradeCityList.filter(item => item.type == 2) return this.tradeCityList.filter(item => item.type == 2 || item.type == 3)
},
exportCityIds(){
let ids = []
this.exportCityList.forEach(item => {
ids.push(item.id)
})
return ids
},
importCityIds(){
let ids = []
this.importCityList.forEach(item => {
ids.push(item.id)
})
return ids
}, },
availChannelList(){ availChannelList(){
return this.channelList.filter(item => !this.channelId || this.channelId == item.channelId) return this.channelList.filter(item => !this.channelId || this.channelId == item.channelId)
...@@ -181,9 +195,9 @@ export default { ...@@ -181,9 +195,9 @@ export default {
if(this.importCity){ if(this.importCity){
params.destCityId = this.importCity params.destCityId = this.importCity
} }
openedRouterList(params).then(res => { openedRouterList(params).then(res => this.openedRouterList = res.data.filter(item => {
this.openedRouterList = res.data return this.exportCityIds.indexOf(item.startCityId) > -1 && this.importCityIds.indexOf(item.destCityId) > -1
}) }))
}, },
// 切换路线选择 // 切换路线选择
toggleChecker(router, selected){ toggleChecker(router, selected){
...@@ -197,7 +211,8 @@ export default { ...@@ -197,7 +211,8 @@ export default {
if(selected){ if(selected){
this.selectedRoutes.push({ this.selectedRoutes.push({
lineId: router.id, lineId: router.id,
channelId: router.channel.channelId channelId: router.channel.channelId,
transportId: router.transportType
}) })
}else{ }else{
let index = this.getSelectedIndex(router) let index = this.getSelectedIndex(router)
......
<template> <template>
<el-select v-model="valueSync" :multiple="multiple" :disabled="disabled"> <el-select v-model="valueSync" :multiple="multiple" :disabled="disabled" :filterable="filterable">
<el-option v-for="item in optionsFormated" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in optionsFormated" :key="item.key" :label="item.label" :value="item.value" />
</el-select> </el-select>
</template> </template>
<script> <script>
...@@ -21,6 +21,11 @@ export default { ...@@ -21,6 +21,11 @@ export default {
type: String, type: String,
default: 'value' default: 'value'
}, },
keyField:{
type: String,
default: 'value'
},
filterable: Boolean,
multiple: Boolean, multiple: Boolean,
clearable: Boolean, clearable: Boolean,
defaultable: Boolean, // 没有值的时候是否选择第一项 defaultable: Boolean, // 没有值的时候是否选择第一项
...@@ -32,7 +37,8 @@ export default { ...@@ -32,7 +37,8 @@ export default {
this.options.forEach((item, index) => { this.options.forEach((item, index) => {
arr.push({ arr.push({
label: typeof this.labelField == 'string' ? item[this.labelField] : (this.labelField)(item, index), label: typeof this.labelField == 'string' ? item[this.labelField] : (this.labelField)(item, index),
value: item[this.valueField] value: item[this.valueField],
key: item[this.keyField]
}) })
}) })
return arr return arr
......
<template>
<el-select
v-model="index"
filterable
clearable
remote
reserve-keyword
placeholder="请选择"
:loading="loading">
<el-option
v-for="(item, index) in list"
:key="item.id"
:label="`${item.nickname}`"
:value="index">
</el-option>
</el-select>
</template>
<script>
import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customerContacts'
import {listSimpleUsers} from '@/api/system/user'
export default {
props:{
value: [String, Number]
},
data(){
return {
index: null,
list:[],
loading: false,
size: 20
}
},
watch:{
index(val){
this.$emit('input', val !== null ? this.list[val].id : null)
this.$emit('change', val !== null ? this.list[val]: null)
},
value(val){
// this.init()
}
},
created(){
listSimpleUsers().then(res => {
this.list = res.data
})
// this.init()
},
methods:{
/* init(){
console.log('初始化联系人选择', this.value)
if(!this.value) return
let index = this.list.findIndex(item => item.customerContactsId == this.value)
if(index < 0){
getCustomerContactsSelect({ids: this.value}).then(res => {
if(!res.data || !res.data.length){
return this.$message.error('联系人信息获取失败')
}
this.list.unshift(res.data[0])
this.index = 0
})
}
}, */
/* remoteMethod(keyword){
let params = {
size: this.size
}
params.searchKey = keyword
this.loading = true
getCustomerContactsSelect(params)
.then(res => this.list = res.data)
.finally(() => this.loading = false)
} */
}
}
</script>
\ No newline at end of file
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
:visible.sync="opened" :visible.sync="opened"
width="600px" width="600px"
:before-close="handleClose()" :before-close="handleClose()"
v-bind="$attrs"
> >
<el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}"> <el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}">
<el-tab-pane :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index"> <el-tab-pane :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index">
...@@ -62,7 +63,11 @@ export default { ...@@ -62,7 +63,11 @@ export default {
default: false default: false
}, },
value: Array, value: Array,
orderId: Number orderId: Number,
cityId: {
type: Number,
default: undefined
}
}, },
data() { data() {
...@@ -81,6 +86,25 @@ export default { ...@@ -81,6 +86,25 @@ export default {
visible(val) { visible(val) {
if (val) { if (val) {
this.opened = true this.opened = true
getByWarehouseId({cityId: this.cityId}).then(r => {
const area = r.data
area.forEach(e => {
// 仓库
e.children.forEach(f => {
// 区域
f.selected = false
if(f.positionList) f.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
k.selected = false
})
})
})
})
this.area = area
})
} else { } else {
} }
}, },
...@@ -143,28 +167,7 @@ export default { ...@@ -143,28 +167,7 @@ export default {
}, },
mounted() { mounted() {
if (this.visible) { console.log('area dialog mounted')
this.opened = true
}
getByWarehouseId().then(r => {
const area = r.data
area.forEach(e => {
// 仓库
e.children.forEach(f => {
// 区域
f.selected = false
if(f.positionList) f.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
k.selected = false
})
})
})
})
this.area = area
})
}, },
computed: { computed: {
......
...@@ -27,7 +27,6 @@ export default { ...@@ -27,7 +27,6 @@ export default {
download0(data, fileName, mineType) { download0(data, fileName, mineType) {
// 创建 blob // 创建 blob
let blob = new Blob([data], {type: mineType}); let blob = new Blob([data], {type: mineType});
debugger
// 创建 href 超链接,点击进行下载 // 创建 href 超链接,点击进行下载
window.URL = window.URL || window.webkitURL; window.URL = window.URL || window.webkitURL;
let href = URL.createObjectURL(blob); let href = URL.createObjectURL(blob);
......
...@@ -289,6 +289,20 @@ export const constantRoutes = [ ...@@ -289,6 +289,20 @@ export const constantRoutes = [
hidden: true, hidden: true,
redirect: 'noredirect', redirect: 'noredirect',
children: [ children: [
{
path: 'special/:orderId(\\d+)',
component: (resolve) => import('@/views/ecw/order/special'),
props: true,
name: 'order-special',
meta: {title: '订单特价申请', icon: '', activeMenu: '/order/index'}
},
{
path: 'discount/:offerProdId(\\d+)',
component: (resolve) => import('@/views/ecw/order/special/discount'),
props: true,
name: 'discount',
meta: {title: '订单优惠申请', icon: '', activeMenu: '/order/index'}
},
{ {
path: 'associated-order/:orderId(\\d+)', path: 'associated-order/:orderId(\\d+)',
component: (resolve) => require(['@/views/ecw/order/associatedOrder'],resolve), component: (resolve) => require(['@/views/ecw/order/associatedOrder'],resolve),
...@@ -308,30 +322,6 @@ export const constantRoutes = [ ...@@ -308,30 +322,6 @@ export const constantRoutes = [
noCache:true, noCache:true,
} }
}, },
{
path: 'batch-single-application',
component:(resolve)=> require(['@/views/ecw/order/batchSingleApplication'],resolve),
name: 'batchSingleApplication',
props: route => ({orderList:route.query.list}),
meta: {
title: '批量调仓申请',
icon:'',
activeMenu: '/order/batchSingleApplication',
noCache:true
}
},
{
path: 'fee-application/:orderId',
component:(resolve)=> require(['@/views/ecw/order/feeApplication'],resolve),
name: 'feeApplication',
props: true,
meta: {
title: '费用申请',
icon:'',
activeMenu: '/order/feeApplication'
}
},
{ {
path: 'mutex-order/:orderId', path: 'mutex-order/:orderId',
component:()=> import('@/views/ecw/order/mutexOrder'), component:()=> import('@/views/ecw/order/mutexOrder'),
...@@ -387,13 +377,13 @@ export const constantRoutes = [ ...@@ -387,13 +377,13 @@ export const constantRoutes = [
hidden: true, hidden: true,
redirect: 'noredirect', redirect: 'noredirect',
children: [ children: [
/* { {
path: 'query/:boxId(\\d+)', path: 'query/:shipmentId(\\d+)',
component: (resolve) => import('@/views/ecw/box/query'), component: (resolve) => import('@/views/ecw/box/query'),
props: true, props: true,
name: 'boxQuery', name: 'shippingDetail',
meta: {title: '出货详情', icon: '', activeMenu: '/shipment/box'} meta: {title: '出货详情', icon: '', activeMenu: '/shipment/boxDetail'}
}, */ },
{ {
path: 'shippingSea/:shipmentId(\\d+)', path: 'shippingSea/:shipmentId(\\d+)',
component: (resolve) => import('@/views/ecw/box/shippingSea/shippingSea'), component: (resolve) => import('@/views/ecw/box/shippingSea/shippingSea'),
......
...@@ -103,6 +103,11 @@ export const DICT_TYPE = { ...@@ -103,6 +103,11 @@ export const DICT_TYPE = {
ECW_BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime', // 时间筛选字段(订单) ECW_BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime', // 时间筛选字段(订单)
ECW_CUSTOM_DRAWEE: 'custom_drawee', // 自定义付款人费用类型 ECW_CUSTOM_DRAWEE: 'custom_drawee', // 自定义付款人费用类型
ECW_IS_DRAFT: 'is_draft', // 草稿发布状态 ECW_IS_DRAFT: 'is_draft', // 草稿发布状态
ECW_PAYMENT_STATE: 'payment_state',//付款单状态
ECW_INVOICING_TYPE: 'invoicing_type',
ECW_PRICE_TYPE: 'price_type',
ECW_RELEASE_STATUS: 'release_status', // 放货状态
ECW_PICK_RECURRENT_NUCLEAR_TYPE: 'PICK_RECURRENT_NUCLEAR_TYPE', // 放货反复核类型
//--------ecw--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
...@@ -147,7 +152,7 @@ export const DICT_TYPE = { ...@@ -147,7 +152,7 @@ export const DICT_TYPE = {
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型 ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态 ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
PAYMENT_TYPE:'payment_type',//收款类型 PAYMENT_TYPE:'payment_type',//收款类型
ORDER_WAREHOUSE_IN_STATUS: 'order_warehouse_in_status', // 入仓状态 ORDER_WAREHOUSE_IN_STATUS: 'order_warehouse_in_diff_status', // 入仓状态
ORDER_NO_QUOTE_EXCEPTION_RESULT:'order_no_quote_exception_result',//未报价异常处理结果 ORDER_NO_QUOTE_EXCEPTION_RESULT:'order_no_quote_exception_result',//未报价异常处理结果
ORDER_SUPERFLUOUS_BOX_EXCEPTION_RESULT:'order_superfluous_box_exception_result',//多箱异常处理结果 ORDER_SUPERFLUOUS_BOX_EXCEPTION_RESULT:'order_superfluous_box_exception_result',//多箱异常处理结果
ORDER_LACI_BOX_EXCEPTION_RESULT:'order_lack_box_exception_result',//少箱异常处理结果 ORDER_LACI_BOX_EXCEPTION_RESULT:'order_lack_box_exception_result',//少箱异常处理结果
...@@ -162,8 +167,10 @@ export const DICT_TYPE = { ...@@ -162,8 +167,10 @@ export const DICT_TYPE = {
ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果 ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果 ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果 ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果
PAYMENT_TYPE:'payment_type',//收款类型 NEED_KNOW_TYPE:'need_know_type',//需知类型
NEED_KNOW_STATUS:'need_know_status',//需知状态
MANUAL_EXCEPTION_TYPE:'manual_exception_type',
ECASH_INIT:'ecash_init', //e-cash ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'receivable_fee_type', FEE_TYPE:'receivable_fee_type',
......
...@@ -48,20 +48,8 @@ ...@@ -48,20 +48,8 @@
</div> </div>
</el-col> </el-col>
<div v-if="this.processInstance.processDefinition && this.processInstance.processDefinition.formType === 20"> <div v-if="this.processInstance.processDefinition && this.processInstance.processDefinition.formType === 20">
<component v-if="businessKeyToComponent" :is="businessKeyToComponent.component" v-bind="businessKeyToComponent" />
<!-- <span>{{this.processInstance.processDefinition.formCustomViewPath}}</span>-->
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='special-discount'"><!--特价审核-->
<special-discount :id="this.processInstance.businessKey" readonly="true"></special-discount>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='free_apply'"><!--费用审核-->
<warehouseDetails :processId="this.processInstance.businessKey" :type="2" ></warehouseDetails>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='retired_warehouse'"><!--退仓申请-->
<warehouseDetails :processId="this.processInstance.businessKey" :type="3" ></warehouseDetails>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='warehouse_transfer'"><!--调仓申请-->
<warehouseDetails :processId="this.processInstance.businessKey" :type="1" ></warehouseDetails>
</div>
<div v-else> <div v-else>
<router-link :to="this.processInstance.processDefinition.formCustomViewPath + '?id=' <router-link :to="this.processInstance.processDefinition.formCustomViewPath + '?id='
+ this.processInstance.businessKey"> + this.processInstance.businessKey">
...@@ -146,6 +134,8 @@ import {getActivityList} from "@/api/bpm/activity"; ...@@ -146,6 +134,8 @@ import {getActivityList} from "@/api/bpm/activity";
import specialDiscount from "@/views/ecw/offer/specialDiscount" import specialDiscount from "@/views/ecw/offer/specialDiscount"
import warehouseDetails from "@/views/ecw/order/components/warehouseDetails"; import warehouseDetails from "@/views/ecw/order/components/warehouseDetails";
import shippingDetail from '@/views/ecw/box/shippingDetail' import shippingDetail from '@/views/ecw/box/shippingDetail'
import SplitDetail from '@/views/ecw/order/components/SplitDetail'
import MergeDetail from '@/views/ecw/order/components/MergeDetail'
// 流程实例的详情页,可用于审批 // 流程实例的详情页,可用于审批
export default { export default {
...@@ -154,11 +144,118 @@ export default { ...@@ -154,11 +144,118 @@ export default {
Parser, Parser,
specialDiscount, specialDiscount,
warehouseDetails, warehouseDetails,
shippingDetail shippingDetail,
SplitDetail,
MergeDetail
}, },
computed:{ computed:{
matterNum(){ matterNum(){
return this.$store.state.user.matterNum return this.$store.state.user.matterNum
},
businessKeyToComponent(){
if(!this.processInstance.processDefinition || !this.processInstance.processDefinition.formCustomViewPath){
return false
}
const map = {
"special-discount": {
component: 'special-discount',
id: this.processInstance.businessKey,
readonly: true
},
free_apply: {
component: "warehouseDetails",
processId: this.processInstance.businessKey,
type: 2
},
retired_warehouse: {
component: "warehouseDetails",
processId: this.processInstance.businessKey,
type: 3
},
warehouse_transfer: {
component: "warehouseDetails",
processId: this.processInstance.businessKey,
type: 1
},
warehouse_update: {
component: "warehouseDetails",
processId: this.processInstance.businessKey,
type: 4
},
container_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
trailer_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
ship_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
customs_declare_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
arrival_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
customs_clearance_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
customs_exit_part: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
customs_exit_all: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
start_port_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
book_space_modify: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
sorting_apply_no: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
sorting_apply: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
unload_container_no: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
unload_container: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
close_container: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
shipment_preassemble: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
split_detail: {
component: "SplitDetail",
id: this.processInstance.businessKey,
},
merge_detail: {
component: "MergeDetail",
id: this.processInstance.businessKey,
}
}
return map[this.processInstance.processDefinition.formCustomViewPath]
} }
}, },
data() { data() {
......
<template> <template>
<div class="app-costForm"> <div class="app-costForm shippingSea-dialog">
<el-form ref="costForm" :model="costObj" label-width="80px"> <el-form ref="costForm" :model="costObj" label-width="80px">
<el-form-item label="操作步骤"> <el-form-item label="操作步骤">
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-row class="two-element"> <el-row class="two-element-formItem">
<el-form-item label="金额"> <el-form-item label="金额">
<el-input-number v-model="costObj.price" controls-position="right" :min="1"></el-input-number> <el-input-number v-model="costObj.price" controls-position="right" :min="1"></el-input-number>
</el-form-item> </el-form-item>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="operate-button"> <div class="operate-button">
<el-button type="primary" @click="submit">确定</el-button> <el-button type="primary" @click="submit">确定</el-button>
<el-button @click="$emit('closeDialog')">取消</el-button> <el-button @click="$emit('closeDialog')">取消</el-button>
</div> </div>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<script> <script>
import { getSupplierPage } from "@/api/ecw/supplier"; import { getSupplierPage } from "@/api/ecw/supplier";
import { createCost } from "@/api/ecw/box"; import { createCost } from "@/api/ecw/box";
import { serviceMsg } from "@/api/ecw/boxSea"; import { serviceMsg } from "./shippingSea/utils";
export default { export default {
name: "costForm", name: "costForm",
...@@ -65,17 +65,19 @@ export default { ...@@ -65,17 +65,19 @@ export default {
const { data } = res; const { data } = res;
this.allSupplier = data.list; this.allSupplier = data.list;
}); });
const { costDetail } = this.$attrs;
this.costObj = { ...costDetail };
}, },
methods: { methods: {
submit() { submit() {
this.$refs["costForm"].validate((valid) => { this.$refs["costForm"].validate((valid) => {
if (valid) { if (valid) {
createCost({ createCost({
shipmentId: this.$attrs.currRow.id, shipmentId: this.$attrs.shipmentObj.id,
...this.costObj, ...this.costObj,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.$emit("closeDialog"); this.$emit("closeDialog", "cost");
}); });
}); });
} }
...@@ -87,7 +89,7 @@ export default { ...@@ -87,7 +89,7 @@ export default {
<style lang="scss"> <style lang="scss">
// 海运操作统一弹窗样式 // 海运操作统一弹窗样式
.app-costForm { .shippingSea-dialog {
// 页面内元素弹窗form控件宽度设置 // 页面内元素弹窗form控件宽度设置
.el-form-item__content { .el-form-item__content {
> div:not(.el-input-number) { > div:not(.el-input-number) {
...@@ -97,12 +99,20 @@ export default { ...@@ -97,12 +99,20 @@ export default {
.operate-button { .operate-button {
text-align: center; text-align: center;
} }
.two-element { .two-element-formItem {
display: flex; display: flex;
> :last-child { > :last-child {
width: 100%; width: 100%;
margin-left: 10px; margin-left: 10px;
} }
} }
.two-element {
.el-form-item__content {
display: flex;
> :last-child {
margin-left: 10px;
}
}
}
} }
</style> </style>
<template>
<div class="shippingSea-dialog">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="运输方式" prop="transportType">
<el-radio-group v-model="form.transportType">
<el-radio v-for="dict in transportTypes" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="柜型" prop="cabinetId">
<el-select v-model="form.cabinetId" placeholder="请选择柜型">
<el-option v-for="item in cabinetList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="始发地" prop="startWarehouseId">
<el-select v-model="form.startWarehouseId" placeholder="请选择始发地">
<el-option v-for="item in exportWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的地" prop="destWarehouseId">
<el-select v-model="form.destWarehouseId" placeholder="请选择目的地">
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<div class="operate-button">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-form>
</div>
</template>
<script>
import { createbox, updatebox } from "@/api/ecw/box";
export default {
name: "editForm",
inheritAttrs: false,
props: {
transportTypes: Array,
warehouseList: Array,
cabinetList: Array,
shipmentObj: Object,
},
created() {
this.form = { ...this.shipmentObj };
},
data() {
return {
// 表单参数
form: {},
// 表单校验
rules: {
transportType: [
{ required: true, message: "运输方式不能为空", trigger: "blur" },
],
cabinetId: [
{ required: true, message: "柜型不能为空", trigger: "blur" },
],
startWarehouseId: [
{ required: true, message: "始发地不能为空", trigger: "blur" },
],
destWarehouseId: [
{ required: true, message: "目的地不能为空", trigger: "blur" },
],
},
};
},
methods: {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (!valid) {
return;
}
// 修改的提交
if (this.form.id != null) {
updatebox(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.$emit("closeDialog", "edit");
});
return;
}
// 添加的提交
createbox(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.$emit("closeDialog", "add");
});
});
},
/** 取消按钮 */
cancel() {
this.$emit("closeDialog");
},
},
computed: {
exportWarehouseList() {
return this.warehouseList.filter(
(item) => item.tradeType == "2" || item.type == "3"
);
},
importWarehouseList() {
return this.warehouseList.filter(
(item) => item.tradeType == "1" || item.type == "3"
);
},
},
};
</script>
<style lang="scss">
// 海运操作统一弹窗样式
.shippingSea-dialog {
// 页面内元素弹窗form控件宽度设置
.el-form-item__content {
> div:not(.el-input-number) {
width: 100%;
}
}
.operate-button {
text-align: center;
}
.two-element-formItem {
display: flex;
> :last-child {
width: 100%;
margin-left: 10px;
}
}
.two-element {
.el-form-item__content {
display: flex;
> :last-child {
margin-left: 10px;
}
}
}
}
</style>
This diff is collapsed.
<template>
</template>
<script>
export default {
name: "ladingBill",
};
</script>
<style lang="scss" scoped>
</style>
This diff is collapsed.
<template> <template>
<div> <div class="shippingSea-dialog">
<el-form ref="errorForm" :model="errorObj" label-width="140px"> <el-form ref="errorForm" :model="errorObj" label-width="140px">
<el-form-item label="操作步骤"> <el-form-item label="操作步骤">
<el-select v-model="errorObj.opStep" placeholder="请选择操作步骤"> <el-select v-model="errorObj.opStep" placeholder="请选择操作步骤">
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<el-date-picker type="date" placeholder="请选择日期" v-model="errorObj.abnStartTime" value-format="yyyy-MM-dd"></el-date-picker> <el-date-picker type="date" placeholder="请选择日期" v-model="errorObj.abnStartTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="请选择日期" v-model="errorObj.abnEndTime" value-format="yyyy-MM-dd"></el-date-picker> <el-date-picker type="date" placeholder="请选择日期" v-model="errorObj.abnEndTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="是否更新订单状态"> <el-form-item label="是否更新订单状态">
<el-radio-group v-model="errorObj.orderStatus"> <el-radio-group v-model="errorObj.orderStatus">
<el-radio v-for="item in status" :key="item.value" :label="item.value">{{item.label}}</el-radio> <el-radio v-for="item in status" :key="item.value" :label="item.value">{{item.label}}</el-radio>
...@@ -39,7 +40,8 @@ ...@@ -39,7 +40,8 @@
</template> </template>
<script> <script>
import { abnormalCreate, serviceMsg } from "@/api/ecw/boxSea"; import { abnormalCreate } from "@/api/ecw/boxSea";
import { serviceMsg } from "./shippingSea/utils";
/** /**
* 异常登记 * 异常登记
*/ */
...@@ -65,7 +67,7 @@ export default { ...@@ -65,7 +67,7 @@ export default {
}, },
created() { created() {
const { currNode } = this.$attrs; const { currNode } = this.$attrs;
this.errorObj = { opStep: currNode.dataKey }; this.errorObj = { opStep: currNode?.dataKey ?? undefined };
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
...@@ -77,7 +79,7 @@ export default { ...@@ -77,7 +79,7 @@ export default {
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.$emit("closeDialog"); this.$emit("closeDialog", "error");
}); });
}); });
} }
...@@ -87,5 +89,32 @@ export default { ...@@ -87,5 +89,32 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss">
// 海运操作统一弹窗样式
.shippingSea-dialog {
// 页面内元素弹窗form控件宽度设置
.el-form-item__content {
> div:not(.el-input-number) {
width: 100%;
}
}
.operate-button {
text-align: center;
}
.two-element-formItem {
display: flex;
> :last-child {
width: 100%;
margin-left: 10px;
}
}
.two-element {
.el-form-item__content {
display: flex;
> :last-child {
margin-left: 10px;
}
}
}
}
</style> </style>
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(boxBackVO.shippingChannelId)}} {{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> </el-descriptions-item> -->
<el-descriptions-item label="柜型"> <el-descriptions-item label="柜型">
{{cabinetLabel}} {{cabinetLabel}}
</el-descriptions-item> </el-descriptions-item>
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<el-button type="primary" @click="showOrder">订单列表</el-button> <el-button type="primary" @click="showOrder">订单列表</el-button>
</el-row> </el-row>
<div> <div v-if="approvalInfo.applyReason">
<p>申请原因</p> <h1>申请原因</h1>
<div> <div>
{{boxBackVO.preInstallInfo ? boxBackVO.preInstallInfo.applyReason : ''}} {{approvalInfo.applyReason}}
</div> </div>
</div> </div>
...@@ -37,9 +37,9 @@ ...@@ -37,9 +37,9 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(boxBackVO.shippingChannelId)}} {{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> </el-descriptions-item> -->
<el-descriptions-item label="柜型"> <el-descriptions-item label="柜型">
{{cabinetLabel}} {{cabinetLabel}}
</el-descriptions-item> </el-descriptions-item>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<section class="table-goodList"> <section class="table-goodList">
<div>合计:{{calcSum(row.goodsList)}}</div> <div>合计:{{calcSum(row.goodsList)}}</div>
<div v-for="(item, index) in row.goodsList" :key="index" class="goodList-div"> <div v-for="(item, index) in row.goodsList" :key="index" class="goodList-div">
{{item.volume}}{{item.weight}}kg {{getTotlContent(item,['volume','weight'])}}
</div> </div>
</section> </section>
</template> </template>
...@@ -90,7 +90,11 @@ ...@@ -90,7 +90,11 @@
<script> <script>
import { approvalDetail } from "@/api/ecw/box"; import { approvalDetail } from "@/api/ecw/box";
import { getSeaStatus, getStatusName } from "./shippingSea/utils"; import {
getSeaStatus,
getStatusName,
getTotlContent,
} 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";
...@@ -106,6 +110,7 @@ export default { ...@@ -106,6 +110,7 @@ export default {
}, },
data() { data() {
return { return {
approvalInfo: {},
boxBackVO: {}, boxBackVO: {},
loadDetail: {}, loadDetail: {},
// 柜型 // 柜型
...@@ -123,9 +128,11 @@ export default { ...@@ -123,9 +128,11 @@ export default {
getChannelList().then((res) => (this.channelList = res.data)); getChannelList().then((res) => (this.channelList = res.data));
}, },
methods: { methods: {
getTotlContent,
/* 获取详情 */ /* 获取详情 */
getApprovalDetail(processId) { getApprovalDetail(processId) {
approvalDetail({ approvalId: processId }).then((res) => { approvalDetail({ approvalId: processId }).then((res) => {
this.approvalInfo = res.data.approvalInfo;
this.boxBackVO = res.data.boxBackVO; this.boxBackVO = res.data.boxBackVO;
this.loadDetail = res.data.loadDetail; this.loadDetail = res.data.loadDetail;
}); });
...@@ -144,7 +151,11 @@ export default { ...@@ -144,7 +151,11 @@ export default {
}, },
/* 打开订单列表 */ /* 打开订单列表 */
showOrder() { showOrder() {
this.$set(this.dialogConfig, "title", `${this.boxBackVO.selfNo} 订单列表`); this.$set(
this.dialogConfig,
"title",
`${this.boxBackVO.selfNo} 订单列表`
);
this.$set(this.dialogConfig, "visible", true); this.$set(this.dialogConfig, "visible", true);
}, },
/* 合计 */ /* 合计 */
...@@ -161,8 +172,11 @@ export default { ...@@ -161,8 +172,11 @@ export default {
}, },
}, },
watch: { watch: {
processId(val) { processId: {
this.getApprovalDetail(val); immediate: true,
handler(val) {
this.getApprovalDetail(val);
},
}, },
boxBackVO(val) { boxBackVO(val) {
// 柜型 // 柜型
...@@ -177,7 +191,6 @@ export default { ...@@ -177,7 +191,6 @@ export default {
if (channelItem.channelId == shippingChannelId) { if (channelItem.channelId == shippingChannelId) {
return channelItem.nameZh; return channelItem.nameZh;
} }
return "/";
} }
}; };
}, },
...@@ -190,15 +203,13 @@ export default { ...@@ -190,15 +203,13 @@ export default {
/* 体积重量 */ /* 体积重量 */
getVolumeWeight() { getVolumeWeight() {
return (total) => { return (total) => {
return `${total?.num ?? 0} ${total?.volume ?? 0}m³ ${ return this.getTotlContent(total);
total?.weight ?? 0
}kg`;
}; };
}, },
/* 是否显示卸柜箱数 */ /* 是否显示卸柜箱数 */
isShowColumn() { isShowColumn() {
return (shippingVO) => { return (shippingVO) => {
return getSeaStatus(shippingVO) >= 142 ? true : false; return getSeaStatus(shippingVO) >= 182 ? true : false;
}; };
}, },
}, },
......
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
</template> </template>
<script> <script>
import { agentSet, serviceMsg } from "@/api/ecw/boxSea"; import { agentSet } from "@/api/ecw/boxSea";
import supplierSelect from "./common/supplierSelect.vue"; import supplierSelect from "./common/supplierSelect.vue";
import { formatStringNumber } from "../utils"; import { formatStringNumber, serviceMsg } from "../utils";
/** /**
* agent * agent
*/ */
......
...@@ -30,10 +30,10 @@ ...@@ -30,10 +30,10 @@
</template> </template>
<script> <script>
import regError from "./regError"; import regError from "../../regError";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { arrivalCreate, serviceMsg } from "@/api/ecw/boxSea"; import { arrivalCreate } from "@/api/ecw/boxSea";
import { formatDateStr } from "../utils"; import { formatDateStr, serviceMsg } from "../utils";
/** /**
* 到港 * 到港
......
...@@ -35,9 +35,9 @@ ...@@ -35,9 +35,9 @@
</template> </template>
<script> <script>
import { bargeCreate, serviceMsg } from "@/api/ecw/boxSea"; import { bargeCreate } from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue"; import userSelect from "./common/userSelect.vue";
import { constantDict, formatDateStr, formatNumberString } from "../utils"; import { constantDict, formatDateStr, formatNumberString, serviceMsg } from "../utils";
/** /**
* 驳船 * 驳船
......
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
</template> </template>
<script> <script>
import { ladingCopyCreate, serviceMsg } from "@/api/ecw/boxSea"; import { ladingCopyCreate } from "@/api/ecw/boxSea";
import FileUpload from "@/components/FileUpload"; import FileUpload from "@/components/FileUpload";
import { fileTypes } from "../utils"; import { fileTypes, serviceMsg } from "../utils";
/** /**
* 提单copy * 提单copy
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-form-item label="订舱公司"> <el-form-item label="订舱公司">
<supplierSelect v-model="bookingObj.spaceCompanyId" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="bookingObj.spaceCompanyId" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" />
</el-form-item> </el-form-item>
<el-form-item label="预计驳船时间" prop="bargeTime"> <el-form-item label="预计驳船时间">
<el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker> <el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker>
</el-form-item> </el-form-item>
...@@ -85,11 +85,11 @@ ...@@ -85,11 +85,11 @@
</template> </template>
<script> <script>
import { booking, serviceMsg } from "@/api/ecw/boxSea"; import { booking } from "@/api/ecw/boxSea";
import supplierSelect from "./common/supplierSelect.vue"; import supplierSelect from "./common/supplierSelect.vue";
import dockSelect from "./common/dockSelect.vue"; import dockSelect from "./common/dockSelect.vue";
import userSelect from "./common/userSelect.vue"; import userSelect from "./common/userSelect.vue";
import { formatStringNumber, formatDateStr } from "../utils"; import { formatStringNumber, formatDateStr, serviceMsg } from "../utils";
/** /**
* 订舱 * 订舱
*/ */
...@@ -110,7 +110,6 @@ export default { ...@@ -110,7 +110,6 @@ export default {
bookingObj: {}, bookingObj: {},
// 校验 // 校验
rules: { rules: {
bargeTime: [{ required: true, message: "必填", trigger: "change" }],
sailTime: [{ required: true, message: "必填", trigger: "change" }], sailTime: [{ required: true, message: "必填", trigger: "change" }],
}, },
}; };
......
...@@ -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" /> <startPacking v-bind="$attrs" v-if="dialogVisible" @closeDialog="closeDialog" />
</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)">封柜</el-button> <el-button type="success" @click="onSubmit(2)" :disabled="isStartCabinet">封柜</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>
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
<script> <script>
import startPacking from "./startPacking.vue"; import startPacking from "./startPacking.vue";
import { cabinetCreate, serviceMsg } from "@/api/ecw/boxSea"; import { cabinetCreate } from "@/api/ecw/boxSea";
import { formatDateStr } from "../../utils"; import { formatDateStr, serviceMsg } from "../../utils";
import ImageUpload from "@/components/ImageUpload"; import ImageUpload from "@/components/ImageUpload";
/** /**
...@@ -68,7 +68,11 @@ export default { ...@@ -68,7 +68,11 @@ export default {
"ldBoxTime", "ldBoxTime",
"ldOutWarehouseTime", "ldOutWarehouseTime",
]); ]);
this.cabinetObj = oldData; this.cabinetObj = {
...oldData,
ldWarehouseType:
oldData.ldWarehouseType === 0 ? undefined : oldData.ldWarehouseType,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
...@@ -95,6 +99,10 @@ export default { ...@@ -95,6 +99,10 @@ export default {
} }
}); });
}, },
closeDialog(type) {
this.dialogVisible = false;
if (type) this.cancel(type);
},
/** 取消 */ /** 取消 */
cancel(type) { cancel(type) {
this.$emit("closeDialog", type); this.$emit("closeDialog", type);
...@@ -108,7 +116,7 @@ export default { ...@@ -108,7 +116,7 @@ export default {
isStartCabinet() { isStartCabinet() {
const { currNode, shipmentObj } = this.$attrs; const { currNode, shipmentObj } = this.$attrs;
const status = shipmentObj[currNode.keyName]; const status = shipmentObj[currNode.keyName];
return status === 46 ? true : false; return status === 47 ? true : false;
}, },
}, },
}; };
......
This diff is collapsed.
...@@ -65,12 +65,13 @@ ...@@ -65,12 +65,13 @@
</template> </template>
<script> <script>
import { clearanceDocCreate, serviceMsg } from "@/api/ecw/boxSea"; import { clearanceDocCreate } from "@/api/ecw/boxSea";
import { import {
constantDict, constantDict,
formatDateStr, formatDateStr,
formatNumberString, formatNumberString,
fileTypes, fileTypes,
serviceMsg,
} from "../utils"; } from "../utils";
import FileUpload from "@/components/FileUpload"; import FileUpload from "@/components/FileUpload";
...@@ -107,7 +108,11 @@ export default { ...@@ -107,7 +108,11 @@ export default {
"cdAgentlistType", "cdAgentlistType",
"cdSoncapType", "cdSoncapType",
]); ]);
this.cDocObj = oldData; this.cDocObj = {
...oldData,
cdOutBillType:
oldData.cdOutBillType === 0 ? undefined : oldData.cdOutBillType,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs"> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="dock in getDock" :key="dock.id" :label="dock.titleZh" :value="dock.id"></el-option> <el-option v-for="dock in getDock" :key="dock.id" :label="dock.titleZh" :value="dock.id"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs"> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="supplier in getSuppliers" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option> <el-option v-for="supplier in getSuppliers" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs"> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option> <el-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option>
</el-select> </el-select>
</template> </template>
...@@ -12,7 +12,7 @@ export default { ...@@ -12,7 +12,7 @@ export default {
name: "userSelect", name: "userSelect",
inheritAttrs: false, inheritAttrs: false,
props: { props: {
value: Number, value: Number | Array,
allUsers: Array, allUsers: Array,
}, },
model: { model: {
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
</template> </template>
<script> <script>
import regError from "./regError"; import regError from "../../regError";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { clearanceCreate, serviceMsg } from "@/api/ecw/boxSea"; import { clearanceCreate } from "@/api/ecw/boxSea";
import { formatDateStr } from "../utils"; import { formatDateStr, serviceMsg } from "../utils";
/** /**
* 清关 * 清关
......
...@@ -30,10 +30,10 @@ ...@@ -30,10 +30,10 @@
</template> </template>
<script> <script>
import regError from "./regError"; import regError from "../../regError";
import { shippingCreate, serviceMsg } from "@/api/ecw/boxSea"; import { shippingCreate } from "@/api/ecw/boxSea";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { formatDateStr } from "../utils"; import { formatDateStr, serviceMsg } from "../utils";
/** /**
* 起运 * 起运
......
This diff is collapsed.
This diff is collapsed.
...@@ -139,6 +139,7 @@ export default { ...@@ -139,6 +139,7 @@ export default {
} }
} }
.operate-button { .operate-button {
padding-top: 10px;
text-align: center; text-align: center;
} }
.two-element { .two-element {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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