Commit e21ed582 authored by zhengyi's avatar zhengyi

Merge branch 'dev-zs' into dev

parents 8a6c94db 40c6242f
import request from "@/utils/request"; import request from "@/utils/request"
// 创建出货 // 创建出货
export function createbox(data) { export function createbox(data) {
return request({ return request({
url: "/shipment/box/createAir", url: "/shipment/box/createAir",
method: "post", method: "post",
data: data, data: data
}); })
} }
// 更新出货 // 更新出货
...@@ -14,8 +14,8 @@ export function updatebox(data) { ...@@ -14,8 +14,8 @@ export function updatebox(data) {
return request({ return request({
url: "/shipment/box/update", url: "/shipment/box/update",
method: "put", method: "put",
data: data, data: data
}); })
} }
/** /**
...@@ -30,15 +30,15 @@ export function booking(data) { ...@@ -30,15 +30,15 @@ export function booking(data) {
return request({ return request({
url: "/shipment/box-book-air/update", url: "/shipment/box-book-air/update",
method: "put", method: "put",
data, data
}); })
} }
return request({ return request({
url: "/shipment/box-book-air/create", url: "/shipment/box-book-air/create",
method: "post", method: "post",
data, data
}); })
} }
/** /**
...@@ -52,8 +52,8 @@ export function preloadPage(data) { ...@@ -52,8 +52,8 @@ export function preloadPage(data) {
return request({ return request({
url: "/ecw/box-preload-goods/preloadPageAir", url: "/ecw/box-preload-goods/preloadPageAir",
method: "post", method: "post",
data, data
}); })
} }
/** /**
...@@ -67,8 +67,8 @@ export function createGoods(data) { ...@@ -67,8 +67,8 @@ export function createGoods(data) {
return request({ return request({
url: "/ecw/box-preload-goods/createAir", url: "/ecw/box-preload-goods/createAir",
method: "post", method: "post",
data, data
}); })
} }
/***************************** 合包 start **********************************/ /***************************** 合包 start **********************************/
...@@ -84,8 +84,8 @@ export function getMergePkgList(params) { ...@@ -84,8 +84,8 @@ export function getMergePkgList(params) {
return request({ return request({
url: "/ecw/box-merge-pkg/page", url: "/ecw/box-merge-pkg/page",
method: "get", method: "get",
params, params
}); })
} }
/** /**
...@@ -99,8 +99,8 @@ export function createMergePkg(data) { ...@@ -99,8 +99,8 @@ export function createMergePkg(data) {
return request({ return request({
url: "/ecw/box-merge-pkg/create", url: "/ecw/box-merge-pkg/create",
method: "post", method: "post",
data, data
}); })
} }
/** /**
...@@ -114,8 +114,8 @@ export function updateMergePkg(data) { ...@@ -114,8 +114,8 @@ export function updateMergePkg(data) {
return request({ return request({
url: "/ecw/box-merge-pkg/update", url: "/ecw/box-merge-pkg/update",
method: "put", method: "put",
data, data
}); })
} }
/** /**
...@@ -127,9 +127,9 @@ export function updateMergePkg(data) { ...@@ -127,9 +127,9 @@ export function updateMergePkg(data) {
*/ */
export function deleteMergePkg(id) { export function deleteMergePkg(id) {
return request({ return request({
url: `/ecw/box-merge-pkg/delete?id=`+id, url: `/ecw/box-merge-pkg/delete?id=` + id,
method: "delete", method: "delete"
}); })
} }
/** /**
...@@ -143,8 +143,8 @@ export function getUnPkgPage(params) { ...@@ -143,8 +143,8 @@ export function getUnPkgPage(params) {
return request({ return request({
url: "/ecw/box-merge-pkg/getUnPkgPage", url: "/ecw/box-merge-pkg/getUnPkgPage",
method: "get", method: "get",
params, params
}); })
} }
/** /**
...@@ -158,8 +158,8 @@ export function getPkgPageByPkgId(params) { ...@@ -158,8 +158,8 @@ export function getPkgPageByPkgId(params) {
return request({ return request({
url: "/ecw/box-merge-pkg/getPkgPageByPkgId", url: "/ecw/box-merge-pkg/getPkgPageByPkgId",
method: "get", method: "get",
params, params
}); })
} }
/** /**
...@@ -173,8 +173,8 @@ export function createPkgOrder(data) { ...@@ -173,8 +173,8 @@ export function createPkgOrder(data) {
return request({ return request({
url: "/ecw/box-pkg-order/create", url: "/ecw/box-pkg-order/create",
method: "post", method: "post",
data, data
}); })
} }
/** /**
...@@ -188,8 +188,8 @@ export function createBatchPkgOrder(data) { ...@@ -188,8 +188,8 @@ export function createBatchPkgOrder(data) {
return request({ return request({
url: "/ecw/box-pkg-order/createBatch", url: "/ecw/box-pkg-order/createBatch",
method: "post", method: "post",
data, data
}); })
} }
/** /**
...@@ -203,11 +203,11 @@ export function deleteRelate(pkgId, orderId) { ...@@ -203,11 +203,11 @@ export function deleteRelate(pkgId, orderId) {
return request({ return request({
url: `/ecw/box-pkg-order/deleteRelate`, url: `/ecw/box-pkg-order/deleteRelate`,
method: "delete", method: "delete",
headers:{ headers: {
'Content-type': 'application/x-www-form-urlencoded' "Content-type": "application/x-www-form-urlencoded"
}, },
data: 'pkgId='+pkgId+'&orderId='+orderId data: "pkgId=" + pkgId + "&orderId=" + orderId
}); })
} }
/** /**
...@@ -222,7 +222,7 @@ export function deleteBatchRelate(data) { ...@@ -222,7 +222,7 @@ export function deleteBatchRelate(data) {
url: `/ecw/box-pkg-order/deleteBatchRelate`, url: `/ecw/box-pkg-order/deleteBatchRelate`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -234,9 +234,9 @@ export function deleteBatchRelate(data) { ...@@ -234,9 +234,9 @@ export function deleteBatchRelate(data) {
*/ */
export function getMergePkgInfoById(id) { export function getMergePkgInfoById(id) {
return request({ return request({
url: "/ecw/box-merge-pkg/getMergePkgInfoById?id="+id, url: "/ecw/box-merge-pkg/getMergePkgInfoById?id=" + id,
method: "get" method: "get"
}); })
} }
/** /**
...@@ -248,9 +248,9 @@ export function getMergePkgInfoById(id) { ...@@ -248,9 +248,9 @@ export function getMergePkgInfoById(id) {
*/ */
export function getMergeTagById(id) { export function getMergeTagById(id) {
return request({ return request({
url: "/ecw/box-merge-pkg/getMergeTagById?id="+id, url: "/ecw/box-merge-pkg/getMergeTagById?id=" + id,
method: "get" method: "get"
}); })
} }
/** /**
...@@ -262,29 +262,27 @@ export function getMergeTagById(id) { ...@@ -262,29 +262,27 @@ export function getMergeTagById(id) {
*/ */
export function finishMergePkg(shipmentId) { export function finishMergePkg(shipmentId) {
return request({ return request({
url: "/ecw/box-merge-pkg/finishMergePkg?shipmentId="+shipmentId, url: "/ecw/box-merge-pkg/finishMergePkg?shipmentId=" + shipmentId,
method: "get" method: "get"
}); })
} }
/***************************** 合包 end **********************************/ /***************************** 合包 end **********************************/
/***************************** 起运 start *******************************/ /***************************** 起运 start *******************************/
export function takeoffCreate(data) { export function takeoffCreate(data) {
if (data.id) { if (data.id) {
return request({ return request({
url: "/ecw/box-air-fly/update", url: "/ecw/box-air-fly/update",
method: "put", method: "put",
data, data
}); })
} }
return request({ return request({
url: "/ecw/box-air-fly/create", url: "/ecw/box-air-fly/create",
method: "post", method: "post",
data, data
}); })
} }
/***************************** 起运 end *******************************/ /***************************** 起运 end *******************************/
...@@ -297,9 +295,9 @@ export function takeoffCreate(data) { ...@@ -297,9 +295,9 @@ export function takeoffCreate(data) {
*/ */
export function shipmentOrderList(shipmentId) { export function shipmentOrderList(shipmentId) {
return request({ return request({
url: "/shipment/box/shipmentOrderList?shipmentId="+shipmentId, url: "/shipment/box/shipmentOrderList?shipmentId=" + shipmentId,
method: "get" method: "get"
}); })
} }
/** /**
...@@ -314,7 +312,7 @@ export function updateOrderArrival(data) { ...@@ -314,7 +312,7 @@ export function updateOrderArrival(data) {
url: `/ecw/box-arrival-air/updateOrderArrival`, url: `/ecw/box-arrival-air/updateOrderArrival`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -329,7 +327,7 @@ export function createOrderArrival(data) { ...@@ -329,7 +327,7 @@ export function createOrderArrival(data) {
url: `/ecw/box-arrival-air/create`, url: `/ecw/box-arrival-air/create`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -344,7 +342,7 @@ export function updateAllOrderArrival(data) { ...@@ -344,7 +342,7 @@ export function updateAllOrderArrival(data) {
url: `/ecw/box-arrival-air/updateAllOrderArrival`, url: `/ecw/box-arrival-air/updateAllOrderArrival`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -359,7 +357,7 @@ export function updateOrderClearance(data) { ...@@ -359,7 +357,7 @@ export function updateOrderClearance(data) {
url: `/ecw/box-clearance/updateOrderClearance`, url: `/ecw/box-clearance/updateOrderClearance`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -374,7 +372,7 @@ export function updateAllOrderClearance(data) { ...@@ -374,7 +372,7 @@ export function updateAllOrderClearance(data) {
url: `/ecw/box-clearance/updateAllOrderClearance`, url: `/ecw/box-clearance/updateAllOrderClearance`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -389,7 +387,7 @@ export function getLineInfo(params) { ...@@ -389,7 +387,7 @@ export function getLineInfo(params) {
url: `/ecw/warehouse/getLineInfo`, url: `/ecw/warehouse/getLineInfo`,
method: "get", method: "get",
params params
}); })
} }
/** /**
...@@ -400,7 +398,7 @@ export function downloadLoadGoods(params) { ...@@ -400,7 +398,7 @@ export function downloadLoadGoods(params) {
url: "/ecw/box-preload-goods/downloadAirLoadGoodsList", url: "/ecw/box-preload-goods/downloadAirLoadGoodsList",
method: "get", method: "get",
timeout: 120000, timeout: 120000,
params, params
}) })
} }
...@@ -416,7 +414,7 @@ export function checkInfoSingleCreate(data) { ...@@ -416,7 +414,7 @@ export function checkInfoSingleCreate(data) {
url: `/ecw/box-order-check-info/singleCreate`, url: `/ecw/box-order-check-info/singleCreate`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -431,7 +429,7 @@ export function checkInfoBatchCreate(data) { ...@@ -431,7 +429,7 @@ export function checkInfoBatchCreate(data) {
url: `/ecw/box-order-check-info/batchCreate`, url: `/ecw/box-order-check-info/batchCreate`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -446,7 +444,7 @@ export function checkInfoSingleDelete(data) { ...@@ -446,7 +444,7 @@ export function checkInfoSingleDelete(data) {
url: `/ecw/box-order-check-info/singleDelete`, url: `/ecw/box-order-check-info/singleDelete`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -461,7 +459,7 @@ export function checkInfoBatchDelete(data) { ...@@ -461,7 +459,7 @@ export function checkInfoBatchDelete(data) {
url: `/ecw/box-order-check-info/batchDelete`, url: `/ecw/box-order-check-info/batchDelete`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -476,7 +474,7 @@ export function getOrderTagList(params) { ...@@ -476,7 +474,7 @@ export function getOrderTagList(params) {
url: `/ecw/box-order-check-info/orderTagList`, url: `/ecw/box-order-check-info/orderTagList`,
method: "get", method: "get",
params params
}); })
} }
/** /**
...@@ -491,7 +489,7 @@ export function searchLoadOrderByBoxNo(data) { ...@@ -491,7 +489,7 @@ export function searchLoadOrderByBoxNo(data) {
url: `/ecw/box-order-check-info/searchLoadOrderByBoxNo`, url: `/ecw/box-order-check-info/searchLoadOrderByBoxNo`,
method: "post", method: "post",
data: data data: data
}); })
} }
/** /**
...@@ -506,7 +504,7 @@ export function confirmAirCheckout(params) { ...@@ -506,7 +504,7 @@ export function confirmAirCheckout(params) {
url: `/ecw/box-air-checkout/confirmAirCheckout`, url: `/ecw/box-air-checkout/confirmAirCheckout`,
method: "get", method: "get",
params params
}); })
} }
/** /**
...@@ -520,8 +518,8 @@ export function singleAirCreate(data) { ...@@ -520,8 +518,8 @@ export function singleAirCreate(data) {
return request({ return request({
url: "/ecw/box-load-info/singleAirCreate", url: "/ecw/box-load-info/singleAirCreate",
method: "post", method: "post",
data, data
}); })
} }
/** /**
* 批量装柜 * 批量装柜
...@@ -534,6 +532,6 @@ export function batchAirCreate(data) { ...@@ -534,6 +532,6 @@ export function batchAirCreate(data) {
return request({ return request({
url: "/ecw/box-load-info/batchAirCreate", url: "/ecw/box-load-info/batchAirCreate",
method: "post", method: "post",
data, data
}); })
} }
import request from '@/utils/request' import request from "@/utils/request"
// 创建订单 // 创建订单
export function createOrder(data) { export function createOrder(data) {
return request({ return request({
url: '/ecw/order/create', url: "/ecw/order/create",
method: 'post', method: "post",
data: data, data: data,
timeout: 5 * 60000 timeout: 5 * 60000
}) })
...@@ -13,8 +13,8 @@ export function createOrder(data) { ...@@ -13,8 +13,8 @@ export function createOrder(data) {
// 更新订单 // 更新订单
export function updateOrder(data) { export function updateOrder(data) {
return request({ return request({
url: '/ecw/order/update', url: "/ecw/order/update",
method: 'put', method: "put",
data: data, data: data,
timeout: 5 * 60000 timeout: 5 * 60000
}) })
...@@ -23,33 +23,33 @@ export function updateOrder(data) { ...@@ -23,33 +23,33 @@ export function updateOrder(data) {
// 删除订单 // 删除订单
export function deleteOrder(id) { export function deleteOrder(id) {
return request({ return request({
url: '/ecw/order/delete?orderId=' + id, url: "/ecw/order/delete?orderId=" + id,
method: 'delete' method: "delete"
}) })
} }
// 获得订单 // 获得订单
export function getOrder(orderId) { export function getOrder(orderId) {
return request({ return request({
url: '/ecw/order/info/' + orderId, url: "/ecw/order/info/" + orderId,
method: 'get' method: "get"
}) })
} }
// 获得订单编辑详情 // 获得订单编辑详情
export function getOrderDetail(orderId) { export function getOrderDetail(orderId) {
return request({ return request({
url: '/ecw/order/get', url: "/ecw/order/get",
method: 'get', method: "get",
params: {orderId} params: { orderId }
}) })
} }
// 获得订单分页 // 获得订单分页
export function getOrderPage(query) { export function getOrderPage(query) {
return request({ return request({
url: '/ecw/order/page', url: "/ecw/order/page",
method: 'get', method: "get",
params: query params: query
}) })
} }
...@@ -57,8 +57,8 @@ export function getOrderPage(query) { ...@@ -57,8 +57,8 @@ export function getOrderPage(query) {
// 获得订单列表 // 获得订单列表
export function getOrderList(query) { export function getOrderList(query) {
return request({ return request({
url: '/ecw/order/list', url: "/ecw/order/list",
method: 'get', method: "get",
params: query params: query
}) })
} }
...@@ -66,46 +66,45 @@ export function getOrderList(query) { ...@@ -66,46 +66,45 @@ export function getOrderList(query) {
// 导出订单 Excel // 导出订单 Excel
export function exportOrderExcel(query) { export function exportOrderExcel(query) {
return request({ return request({
url: '/ecw/order/export-excel', url: "/ecw/order/export-excel",
method: 'get', method: "get",
params: query, params: query,
responseType: 'blob' responseType: "blob"
}) })
} }
// 打印标签 // 打印标签
export function printTag(id) { export function printTag(id) {
return request({ return request({
url: '/order/print/orderTagPrint?orderId=' + id, url: "/order/print/orderTagPrint?orderId=" + id,
method: 'get', method: "get",
timeout: 3 * 60000 timeout: 3 * 60000
}) })
} }
//根据订单号获得订单费用申请列表 //根据订单号获得订单费用申请列表
export function feeApplicationListByOrderId(query){ export function feeApplicationListByOrderId(query) {
return request({ return request({
url:'/order/fee-application/listByOrderId', url: "/order/fee-application/listByOrderId",
method: 'get', method: "get",
params: query, params: query
}) })
} }
//费用申请提交 //费用申请提交
export function feeApplicationCreate(data){ export function feeApplicationCreate(data) {
return request({ return request({
url:'order/fee-application/create', url: "order/fee-application/create",
method:'post', method: "post",
data:data, data: data
}) })
} }
// 批量申请费用 // 批量申请费用
export function feeApplicationCreateBatch(data){ export function feeApplicationCreateBatch(data) {
return request({ return request({
url:'order/fee-application/create/batch', url: "order/fee-application/create/batch",
method:'post', method: "post",
data:data, data: data
}) })
} }
// 删除申请费用 // 删除申请费用
...@@ -117,131 +116,130 @@ export function feeApplicationDelete(id){ ...@@ -117,131 +116,130 @@ export function feeApplicationDelete(id){
} }
// 根据订单ID获取是否有正在申请的费用申请 // 根据订单ID获取是否有正在申请的费用申请
export function getFeeApplicationApproveByOrderId(orderId){ export function getFeeApplicationApproveByOrderId(orderId) {
return request({ return request({
url:'/order/fee-application/get/isApprove', url: "/order/fee-application/get/isApprove",
method:'get', method: "get",
params: {id: orderId} params: { id: orderId }
}) })
} }
// 根据流程主键ID得到批量申请费用 // 根据流程主键ID得到批量申请费用
export function getBatchFeeByBusinessId(businessId){ export function getBatchFeeByBusinessId(businessId) {
return request({ return request({
url:'/order/fee-application/getBatchFeeByBusinessId', url: "/order/fee-application/getBatchFeeByBusinessId",
method:'get', method: "get",
params: {businessId} params: { businessId }
}) })
} }
// 查询批量申请费用 // 查询批量申请费用
export function feeApplicationGetBatch(params){ export function feeApplicationGetBatch(params) {
return request({ return request({
url:'/order/fee-application/get/batch', url: "/order/fee-application/get/batch",
method:'get', method: "get",
params params
}) })
} }
//费用申请修改 //费用申请修改
export function applicationUpdate(data){ export function applicationUpdate(data) {
return request({ return request({
url:'/order/fee-application/update', url: "/order/fee-application/update",
method:'put', method: "put",
data:data, data: data
}) })
} }
export function ApplicationListByOrderId(params){ export function ApplicationListByOrderId(params) {
return request({ return request({
url:'order/fee-application/listByOrderId', url: "order/fee-application/listByOrderId",
method:'get', method: "get",
params:params params: params
}) })
} }
// 批量更新特需 // 批量更新特需
export function specialNeedCreate(data){ export function specialNeedCreate(data) {
return request({ return request({
url:'ecw/order-special-need/updateBatch', url: "ecw/order-special-need/updateBatch",
method:'put', method: "put",
data, data
}) })
} }
// 创建特殊 // 创建特殊
export function getSpecialListByOrderId(orderId){ export function getSpecialListByOrderId(orderId) {
return request({ return request({
url: 'ecw/order-special-need/getListByOrderId', url: "ecw/order-special-need/getListByOrderId",
method: 'get', method: "get",
params: {orderId}, params: { orderId }
}) })
} }
// 删除特需 // 删除特需
export function orderSpecialNeed(params){ export function orderSpecialNeed(params) {
return request({ return request({
url:'/ecw/order-special-need/deleteByOrderId', url: "/ecw/order-special-need/deleteByOrderId",
method: 'delete', method: "delete",
data:params data: params
}) })
} }
// 获得提单pdf // 获得提单pdf
export function getLadingBill(query){ export function getLadingBill(query) {
return request({ return request({
url:'ecw/order/billLading/template', url: "ecw/order/billLading/template",
method: 'get', method: "get",
responseType: 'arraybuffer', responseType: "arraybuffer",
params: query, params: query
}) })
} }
//调仓申请 //调仓申请
export function orderWarehouseInAdjustApply(data){ export function orderWarehouseInAdjustApply(data) {
return request({ return request({
url:'/order/order-warehouse-in/adjust-apply', url: "/order/order-warehouse-in/adjust-apply",
method:'put', method: "put",
data:data, data: data
}) })
} }
// 获得入仓货物详情 // 获得入仓货物详情
export function getOrderWarehouseIn(id) { export function getOrderWarehouseIn(id) {
return request({ return request({
url: '/order/order-warehouse-in/get-order-warehouse-in?orderId=' + id, url: "/order/order-warehouse-in/get-order-warehouse-in?orderId=" + id,
method: 'get' method: "get"
}) })
} }
// 入仓 // 入仓
export function orderWarehouseIn(data){ export function orderWarehouseIn(data) {
return request({ return request({
url: '/order/order-warehouse-in/create', url: "/order/order-warehouse-in/create",
method: 'post', method: "post",
data data
}) })
} }
// 入仓修改 // 入仓修改
export function orderWarehouseInUpdateApply(data){ export function orderWarehouseInUpdateApply(data) {
return request({ return request({
url: '/order/order-warehouse-in/update-or-updateApply', url: "/order/order-warehouse-in/update-or-updateApply",
method: 'put', method: "put",
data data
}) })
} }
// 入仓修改箱号 // 入仓修改箱号
export function orderWarehouseInUpdateLabel(data){ export function orderWarehouseInUpdateLabel(data) {
return request({ return request({
url: '/order/order-warehouse-in/update-label', url: "/order/order-warehouse-in/update-label",
method: 'post', method: "post",
data data
}) })
} }
// 根据订单id获取标签箱号列表 // 根据订单id获取标签箱号列表
export function getLabelByOrder(orderId){ export function getLabelByOrder(orderId) {
return request({ return request({
url: '/order/order-warehouse-in/get-label-by-order', url: "/order/order-warehouse-in/get-label-by-order",
method: 'get', method: "get",
params: { params: {
orderId orderId
} }
...@@ -249,10 +247,10 @@ export function getLabelByOrder(orderId){ ...@@ -249,10 +247,10 @@ export function getLabelByOrder(orderId){
} }
// 根据订单id获取待入仓标签箱号 // 根据订单id获取待入仓标签箱号
export function getLabelWaitInByOrder(orderId){ export function getLabelWaitInByOrder(orderId) {
return request({ return request({
url: '/order/order-warehouse-in/get-label-wait-in-by-order', url: "/order/order-warehouse-in/get-label-wait-in-by-order",
method: 'get', method: "get",
params: { params: {
orderId orderId
} }
...@@ -260,19 +258,19 @@ export function getLabelWaitInByOrder(orderId){ ...@@ -260,19 +258,19 @@ export function getLabelWaitInByOrder(orderId){
} }
// 入仓修改储位 // 入仓修改储位
export function saveOrUpdateOrderLocation(data){ export function saveOrUpdateOrderLocation(data) {
return request({ return request({
url: '/order/order-warehouse-in/save-or-update-order-location', url: "/order/order-warehouse-in/save-or-update-order-location",
method: 'post', method: "post",
data data
}) })
} }
// 入仓修改储位 // 入仓修改储位
export function updateWarehouseInLocation(data){ export function updateWarehouseInLocation(data) {
return request({ return request({
url: '/order/location/update-warehouse-in-location', url: "/order/location/update-warehouse-in-location",
method: 'put', method: "put",
data data
}) })
} }
...@@ -280,174 +278,173 @@ export function updateWarehouseInLocation(data){ ...@@ -280,174 +278,173 @@ export function updateWarehouseInLocation(data){
// 获取入仓修改审批单详情-审批使用 // 获取入仓修改审批单详情-审批使用
export function getWarehouseUpdateApprovalInfo(id) { export function getWarehouseUpdateApprovalInfo(id) {
return request({ return request({
url: '/order/order-warehouse-in/get-update-approval-info?formId=' + id, url: "/order/order-warehouse-in/get-update-approval-info?formId=" + id,
method: 'get' method: "get"
}) })
} }
// 获取最近的入仓修改审批单详情-修改页面使用 // 获取最近的入仓修改审批单详情-修改页面使用
export function getWarehouseLastUpdateApprovalInfo(params) { export function getWarehouseLastUpdateApprovalInfo(params) {
return request({ return request({
url: '/order/order-warehouse-in/get-last-update-approval-info', url: "/order/order-warehouse-in/get-last-update-approval-info",
method: 'get', method: "get",
params params
}) })
} }
// 入仓完成 // 入仓完成
export function orderWarehouseInFinish(data){ export function orderWarehouseInFinish(data) {
return request({ return request({
url: '/order/order-warehouse-in/finish', url: "/order/order-warehouse-in/finish",
method: 'post', method: "post",
data data
}) })
} }
// 退仓 // 退仓
export function rollbackApply(data){ export function rollbackApply(data) {
return request({ return request({
url: '/order/order-warehouse-in/rollback-apply', url: "/order/order-warehouse-in/rollback-apply",
method: 'put', method: "put",
data data
}) })
} }
// 退仓-订单项退仓(不审批) // 退仓-订单项退仓(不审批)
export function rollbackDelete(data){ export function rollbackDelete(data) {
return request({ return request({
url: '/order/order-warehouse-in/rollback-order-item', url: "/order/order-warehouse-in/rollback-order-item",
method: 'put', method: "put",
data data
}) })
} }
//取消订单 //取消订单
export function cancelOrder(orderId){ export function cancelOrder(orderId) {
return request({ return request({
url: `/ecw/order/cancel/${orderId}`, url: `/ecw/order/cancel/${orderId}`,
method: 'put', method: "put"
}) })
} }
// 恢复订单 // 恢复订单
export function recoveryOrder(orderId){ export function recoveryOrder(orderId) {
return request({ return request({
url: `/ecw/order/recovery/${orderId}`, url: `/ecw/order/recovery/${orderId}`,
method: 'put', method: "put"
}) })
} }
// 获得我的订单分页 // 获得我的订单分页
export function getMyOrderPage(query) { export function getMyOrderPage(query) {
return request({ return request({
url: '/ecw/order/my/page', url: "/ecw/order/my/page",
method: 'get', method: "get",
params: query params: query
}) })
} }
//根据流程ID获得订单信息 //根据流程ID获得订单信息
export function applicationGetOrderByProcessId(params){ export function applicationGetOrderByProcessId(params) {
return request({ return request({
url:'/order/fee-application/getOrderByProcessId', url: "/order/fee-application/getOrderByProcessId",
method:'get', method: "get",
params params
}) })
} }
export function feeApplicationGet(params){ export function feeApplicationGet(params) {
return request({ return request({
url:'/order/fee-application/get', url: "/order/fee-application/get",
method:'get', method: "get",
params params
}) })
} }
//获得调仓明细 //获得调仓明细
export function orderWarehouseInGetAdjustInfo(params){ export function orderWarehouseInGetAdjustInfo(params) {
return request({ return request({
url:'order/order-warehouse-in/get-adjust-info', url: "order/order-warehouse-in/get-adjust-info",
method:'get', method: "get",
params params
}) })
} }
export function warehouseAdjustSendOut(data){ export function warehouseAdjustSendOut(data) {
return request({ return request({
url:'/order/order-warehouse-in/warehouse-adjust-send-out', url: "/order/order-warehouse-in/warehouse-adjust-send-out",
method:'put', method: "put",
data data
}) })
} }
//获得订单仓库图片分页 //获得订单仓库图片分页
export function orderWarehousePicturePage(params){ export function orderWarehousePicturePage(params) {
return request({ return request({
url:'/order/warehouse-picture/page', url: "/order/warehouse-picture/page",
method:'get', method: "get",
params params
}) })
} }
export function warehouseAdjustPage(params){ export function warehouseAdjustPage(params) {
return request({ return request({
url:'/order/warehouse-adjust/page', url: "/order/warehouse-adjust/page",
method:'get', method: "get",
params params
}) })
} }
// 调仓-明细-后台使用 // 调仓-明细-后台使用
export function getAdjustInfo(params){ export function getAdjustInfo(params) {
return request({ return request({
url:'/order/order-warehouse-in/get-adjust-info', url: "/order/order-warehouse-in/get-adjust-info",
method:'get', method: "get",
params, 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",
method:'put', method: "put",
data data
}) })
} }
export function listByOrderId(params){ export function listByOrderId(params) {
return request({ return request({
url:'/order/location/list-by-order-id', url: "/order/location/list-by-order-id",
method:'get', method: "get",
params, params
}) })
} }
// 获取快递单号 // 获取快递单号
export function getOrderCourierNumber(params){ export function getOrderCourierNumber(params) {
return request({ return request({
url:'/ecw/order/courier/number', url: "/ecw/order/courier/number",
method:'get', method: "get",
params, params
}) })
} }
// 获取审核 // 获取审核
export function getApproval(id){ export function getApproval(id) {
return request({ return request({
url:'/order/approval/get?id=' + id, url: "/order/approval/get?id=" + id,
method:'get' method: "get"
}) })
} }
// 特价申请 // 特价申请
export function createOrderSpecial(data) { export function createOrderSpecial(data) {
return request({ return request({
url: '/ecw/order/special/apply', url: "/ecw/order/special/apply",
method: 'put', method: "put",
data: data data: data
}) })
} }
// 特价申请 // 特价申请
export function cancelOrderSpecial(orderApprovalId,data) { export function cancelOrderSpecial(orderApprovalId, data) {
return request({ return request({
url: '/ecw/order/cancel/approval/'+orderApprovalId, url: "/ecw/order/cancel/approval/" + orderApprovalId,
method: 'get', method: "get",
params:data params: data
}) })
} }
...@@ -455,8 +452,8 @@ export function cancelOrderSpecial(orderApprovalId,data) { ...@@ -455,8 +452,8 @@ export function cancelOrderSpecial(orderApprovalId,data) {
export function getOrderSpecial(orderId, type, params) { export function getOrderSpecial(orderId, type, params) {
console.log(orderId, type, params) console.log(orderId, type, params)
return request({ return request({
url: '/ecw/order/special/info/' + orderId + '/' + type, url: "/ecw/order/special/info/" + orderId + "/" + type,
method: 'get', method: "get",
params params
}) })
} }
...@@ -464,17 +461,16 @@ export function getOrderSpecial(orderId, type, params) { ...@@ -464,17 +461,16 @@ export function getOrderSpecial(orderId, type, params) {
// 根据订单项商品ID与审批类型获得订单商品的特价申请详情 // 根据订单项商品ID与审批类型获得订单商品的特价申请详情
export function getOrderSpecialByApproveId(approveId) { export function getOrderSpecialByApproveId(approveId) {
return request({ return request({
url: '/ecw/order/special/info?approveId=' + approveId, url: "/ecw/order/special/info?approveId=" + approveId,
method: 'get' method: "get"
}) })
} }
// 特价申请-批量 // 特价申请-批量
export function createOrderSpecialBatch(data) { export function createOrderSpecialBatch(data) {
return request({ return request({
url: '/ecw/order/special/apply/batch', url: "/ecw/order/special/apply/batch",
method: 'put', method: "put",
data: data data: data
}) })
} }
...@@ -483,24 +479,24 @@ export function createOrderSpecialBatch(data) { ...@@ -483,24 +479,24 @@ export function createOrderSpecialBatch(data) {
export function getOrderSpecialBatch(orderId, type) { export function getOrderSpecialBatch(orderId, type) {
console.log(orderId, type) console.log(orderId, type)
return request({ return request({
url: '/ecw/order/special/info/batch/' + orderId + '/' + type, url: "/ecw/order/special/info/batch/" + orderId + "/" + type,
method: 'get' method: "get"
}) })
} }
// 根据订单项商品ID与审批类型获得订单商品的特价申请详情-批量 // 根据订单项商品ID与审批类型获得订单商品的特价申请详情-批量
export function getOrderSpecialByApproveIdBatch(approveId) { export function getOrderSpecialByApproveIdBatch(approveId) {
return request({ return request({
url: '/ecw/order/special/batch/info?approveId=' + approveId, url: "/ecw/order/special/batch/info?approveId=" + approveId,
method: 'get' method: "get"
}) })
} }
// 订单号检索功能 // 订单号检索功能
export function getOrderNoSearch(params) { export function getOrderNoSearch(params) {
return request({ return request({
url: '/ecw/order/orderNoSearch', url: "/ecw/order/orderNoSearch",
method: 'get', method: "get",
params params
}) })
} }
...@@ -508,17 +504,17 @@ export function getOrderNoSearch(params) { ...@@ -508,17 +504,17 @@ export function getOrderNoSearch(params) {
// 提单号检索功能 // 提单号检索功能
export function getBillNoSearch(params) { export function getBillNoSearch(params) {
return request({ return request({
url: '/ecw/order/billNoSearch', url: "/ecw/order/billNoSearch",
method: 'get', method: "get",
params params
}) })
} }
// 根据合并订单编号获得已合单的订单动态 // 根据合并订单编号获得已合单的订单动态
export function getMergeLogByMergedOrderNo(params){ export function getMergeLogByMergedOrderNo(params) {
return request({ return request({
url: '/order/merge/getMergeLogByMergedOrderNo', url: "/order/merge/getMergeLogByMergedOrderNo",
method: 'get', method: "get",
params params
}) })
} }
...@@ -526,566 +522,589 @@ export function getMergeLogByMergedOrderNo(params){ ...@@ -526,566 +522,589 @@ export function getMergeLogByMergedOrderNo(params){
// 导入装箱单 // 导入装箱单
export function orderImport(data) { export function orderImport(data) {
return request({ return request({
url: '/ecw/order/import', url: "/ecw/order/import",
method: 'post', method: "post",
data data
}) })
} }
// 下载装箱单模板 // 下载装箱单模板
export function exportPackingList(){ export function exportPackingList() {
return request({ return request({
url: '/ecw/order/export-packing-list', url: "/ecw/order/export-packing-list",
method: 'get', method: "get",
responseType: 'blob' responseType: "blob"
}) })
} }
//获得特需 //获得特需
export function orderSpecialNeedGet(params){ export function orderSpecialNeedGet(params) {
return request({ return request({
url:'/ecw/order-special-need/get', url: "/ecw/order-special-need/get",
method:'get', method: "get",
params params
}) })
} }
//取消调仓 //取消调仓
export function cancelAdjust(data){ export function cancelAdjust(data) {
return request({ return request({
url:'/order/order-warehouse-in/cancel-adjust', url: "/order/order-warehouse-in/cancel-adjust",
method:'post', method: "post",
data data
}) })
} }
//取消订单费用申请 //取消订单费用申请
export function feeApplicationCancel(data){ export function feeApplicationCancel(data) {
return request({ return request({
url:'/order/fee-application/cancel', url: "/order/fee-application/cancel",
method:'delete', method: "delete",
data data
}) })
} }
// 获得订单修改申请详情 // 获得订单修改申请详情
export function getUpdateInfo(id){ export function getUpdateInfo(id) {
return request({ return request({
url:'/ecw/order/update/info/' + id, url: "/ecw/order/update/info/" + id,
method:'get' method: "get"
}) })
} }
// 根据审批ID获得订单修改申请详情 // 根据审批ID获得订单修改申请详情
export function getUpdateInfoByApproveId(approveId){ export function getUpdateInfoByApproveId(approveId) {
return request({ return request({
url:'/ecw/order/update/info', url: "/ecw/order/update/info",
method:'get', method: "get",
params: {approveId} params: { approveId }
}) })
} }
// (新修改订单)订单修改审批申请 // (新修改订单)订单修改审批申请
export function updateApply(data){ export function updateApply(data) {
return request({ return request({
url:'/ecw/order/update/apply', url: "/ecw/order/update/apply",
method:'put', method: "put",
data data
}) })
} }
// 出货阶段的订单编辑 // 出货阶段的订单编辑
export function updateShipmentApply(data){ export function updateShipmentApply(data) {
return request({ return request({
url:'/ecw/order/shipment/update/apply', url: "/ecw/order/shipment/update/apply",
method:'put', method: "put",
data data
}) })
} }
export function warehousePictureList(data){ export function warehousePictureList(data) {
return request({ return request({
url:'/order/warehouse-picture/list', url: "/order/warehouse-picture/list",
method:'post', method: "post",
data data
}) })
} }
// 获得部门订单分页 // 获得部门订单分页
export function deptOrderPage(params){ export function deptOrderPage(params) {
return request({ return request({
url: '/ecw/order/dept-order-page', url: "/ecw/order/dept-order-page",
method: 'GET', method: "GET",
params params
}) })
} }
// 获得订单统计 // 获得订单统计
export function orderStatistics(params){ export function orderStatistics(params) {
return request({ return request({
url: '/ecw/order/statistics', url: "/ecw/order/statistics",
method: 'GET', method: "GET",
params params
}) })
} }
// 获得我的订单统计 // 获得我的订单统计
export function orderMyStatistics(params){ export function orderMyStatistics(params) {
return request({ return request({
url: '/ecw/order/my/statistics', url: "/ecw/order/my/statistics",
method: 'GET', method: "GET",
params params
}) })
} }
// 获得部门订单统计 // 获得部门订单统计
export function orderDeptStatistics(params){ export function orderDeptStatistics(params) {
return request({ return request({
url: '/ecw/order/dept/statistics', url: "/ecw/order/dept/statistics",
method: 'GET', method: "GET",
params params
}) })
} }
// 参数搜索导出订单管理 Excel // 参数搜索导出订单管理 Excel
export function orderExportSearch(params){ export function orderExportSearch(params) {
return request({ return request({
url: '/ecw/order/export/search', url: "/ecw/order/export/search",
method: 'GET', method: "GET",
timeout: 5 * 60000, timeout: 5 * 60000,
params params
}) })
} }
// 参数搜索导出我的订单管理 Excel // 参数搜索导出我的订单管理 Excel
export function orderExportMySearch(params){ export function orderExportMySearch(params) {
return request({ return request({
url: '/ecw/order/export/my/search', url: "/ecw/order/export/my/search",
method: 'GET', method: "GET",
timeout: 5 * 60000, timeout: 5 * 60000,
params params
}) })
} }
// 参数搜索导出部门订单管理 Excel // 参数搜索导出部门订单管理 Excel
export function orderExportDeptSearch(params){ export function orderExportDeptSearch(params) {
return request({ return request({
url: '/ecw/order/export/dept/search', url: "/ecw/order/export/dept/search",
method: 'GET', method: "GET",
timeout: 5 * 60000, timeout: 5 * 60000,
params params
}) })
} }
// 参数搜索导出异常订单统计 Excel // 参数搜索导出异常订单统计 Excel
export function exportAbnormal(params){ export function exportAbnormal(params) {
return request({ return request({
url: '/ecw/order/export/export-exception', url: "/ecw/order/export/export-exception",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出重货单统计 Excel // 参数搜索导出重货单统计 Excel
export function exportHeavyOrder(params){ export function exportHeavyOrder(params) {
return request({ return request({
url: '/ecw/order/export/export-heavyOrder', url: "/ecw/order/export/export-heavyOrder",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出退仓单统计统计 Excel // 参数搜索导出退仓单统计统计 Excel
export function exportReturnOrder(params){ export function exportReturnOrder(params) {
return request({ return request({
url: '/ecw/order/export/export-returnOrder', url: "/ecw/order/export/export-returnOrder",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出售后赔偿金额统计 Excel // 参数搜索导出售后赔偿金额统计 Excel
export function exportSaleRepay(params){ export function exportSaleRepay(params) {
return request({ return request({
url: '/ecw/order/export/export-saleRepay', url: "/ecw/order/export/export-saleRepay",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出报关数统计 Excel // 参数搜索导出报关数统计 Excel
export function exportCustomsDatas(params){ export function exportCustomsDatas(params) {
return request({ return request({
url: '/ecw/order/export/export-customDatas', url: "/ecw/order/export/export-customDatas",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出客户出货量统计 Excel // 参数搜索导出客户出货量统计 Excel
export function exportShippingDatas(params){ export function exportShippingDatas(params) {
return request({ return request({
url: '/ecw/order/export/export-shipDatas', url: "/ecw/order/export/export-shipDatas",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出预付运费统计 Excel // 参数搜索导出预付运费统计 Excel
export function exportShipFee(params){ export function exportShipFee(params) {
return request({ return request({
url: '/ecw/order/export/export-shipFee', url: "/ecw/order/export/export-shipFee",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 参数搜索导出卸货费统计 Excel // 参数搜索导出卸货费统计 Excel
export function exportUnload(params){ export function exportUnload(params) {
return request({ return request({
url: '/ecw/order/export/export-excel', url: "/ecw/order/export/export-excel",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000, timeout: 5 * 60000
}) })
} }
// 操作日志分页 // 操作日志分页
export function operateLogPage(params){ export function operateLogPage(params) {
return request({ return request({
url: '/ecw/order-operate-log/page', url: "/ecw/order-operate-log/page",
method: 'get', method: "get",
params: params, params: params,
timeout: 5 * 60000 timeout: 5 * 60000
}) })
} }
// 获取操作日志详情 // 获取操作日志详情
export function getOperateLogDetail(id){ export function getOperateLogDetail(id) {
return request({ return request({
url: '/ecw/order-operate-log/get', url: "/ecw/order-operate-log/get",
params: {id}, params: { id },
method: 'get', method: "get"
}) })
} }
// 取消拆单申请 // 取消拆单申请
export function splitCancelApply(data){ export function splitCancelApply(data) {
return request({ return request({
url: '/order/split/cancel-apply', url: "/order/split/cancel-apply",
method: 'put', method: "put",
data data
}) })
} }
// 撤销拆单 // 撤销拆单
export function orderSplitRevoke(data){ export function orderSplitRevoke(data) {
return request({ return request({
url: '/order/split/revoke', url: "/order/split/revoke",
method: 'put', method: "put",
data data
}) })
} }
/*根据订单ID获取撤销拆单详情*/ /*根据订单ID获取撤销拆单详情*/
export function splitRevoke(orderId){ export function splitRevoke(orderId) {
return request({ return request({
url: '/order/split/revoke/' + orderId, url: "/order/split/revoke/" + orderId,
method: 'get' method: "get"
}) })
} }
/*根据审批ID获取撤销拆单详情*/ /*根据审批ID获取撤销拆单详情*/
export function splitRevokeApply(approvalId){ export function splitRevokeApply(approvalId) {
return request({ return request({
url: '/order/split/revoke/apply/' + approvalId, url: "/order/split/revoke/apply/" + approvalId,
method: 'get' method: "get"
}) })
} }
/*取消撤销拆单*/ /*取消撤销拆单*/
export function cancelSplitRevoke(data){ export function cancelSplitRevoke(data) {
return request({ return request({
url: '/order/split/cancel/revoke', url: "/order/split/cancel/revoke",
method: 'put', method: "put",
data data
}) })
} }
/*修改拆单项*/ /*修改拆单项*/
export function splitItemUpdate(data){ export function splitItemUpdate(data) {
return request({ return request({
url: '/order/split-item/update', url: "/order/split-item/update",
method: 'post', method: "post",
data data
}) })
} }
// 待备货(可出)订单列表 // 待备货(可出)订单列表
export function canShipmentPage(params){ export function canShipmentPage(params) {
return request({ return request({
url: '/air/order/data/scope/can/shipment/page', url: "/air/order/data/scope/can/shipment/page",
method: 'get', method: "get",
params params
}) })
} }
// 待出订单列表 // 待出订单列表
export function waitingShipmentPage(params){ export function waitingShipmentPage(params) {
return request({ return request({
url: '/air/order/data/scope/waiting/shipment/page', url: "/air/order/data/scope/waiting/shipment/page",
method: 'get', method: "get",
params params
}) })
} }
// 备货订单列表 // 备货订单列表
export function canReadyStockShipmentPage(params){ export function canReadyStockShipmentPage(params) {
return request({ return request({
url: '/air/order/can-ready-stock/shipment/page', url: "/air/order/can-ready-stock/shipment/page",
method: 'get', method: "get",
params params
}) })
} }
// 确认订单可出 // 确认订单可出
export function setCanShipment(orderId){ export function setCanShipment(orderId) {
return request({ return request({
url: '/air/order/can/shipment/' + orderId, url: "/air/order/can/shipment/" + orderId,
method: 'put', method: "put"
}) })
} }
// 批量可出 // 批量可出
export function batchCanShipment(orderIdList){ export function batchCanShipment(orderIdList) {
return request({ return request({
url: '/air/order/can/shipment/', url: "/air/order/can/shipment/",
method: 'put', method: "put",
data: {orderIdList} data: { orderIdList }
}) })
} }
// 导出备货订单 // 导出备货订单
export function exportReadyStock(params){ export function exportReadyStock(params) {
return request({ return request({
url: '/ecw/order/export/ready-stock/search', url: "/ecw/order/export/ready-stock/search",
method: 'get', method: "get",
params, params,
responseType: 'blob' responseType: "blob"
}) })
} }
// 导出可出订单 // 导出可出订单
export function exportCanShipment(params){ export function exportCanShipment(params) {
return request({ return request({
url: '/ecw/order/export/can-shipment/search', url: "/ecw/order/export/can-shipment/search",
method: 'get', method: "get",
params, params,
responseType: 'blob' responseType: "blob"
}) })
} }
// 导出待出订单 // 导出待出订单
export function exportWaitingShipment(params){ export function exportWaitingShipment(params) {
return request({ return request({
url: '/ecw/order/export/waiting-shipment/search', url: "/ecw/order/export/waiting-shipment/search",
method: 'get', method: "get",
params, params,
responseType: 'blob' responseType: "blob"
}) })
} }
// 无需打包 // 无需打包
export function noNeedPack(orderItemId){ export function noNeedPack(orderItemId) {
return request({ return request({
url: '/order/order-warehouse-in/no-need-to-pack', url: "/order/order-warehouse-in/no-need-to-pack",
method: 'get', method: "get",
params: {orderItemId} params: { orderItemId }
}) })
} }
// 完成打包 // 完成打包
export function finishPacked(data){ export function finishPacked(data) {
return request({ return request({
url: '/order/order-warehouse-in/finish-packed', url: "/order/order-warehouse-in/finish-packed",
method: 'post', method: "post",
data data
}) })
} }
// 完成备货 // 完成备货
export function finishStock(data){ export function finishStock(data) {
return request({ return request({
url: '/order/order-warehouse-in/finish-stocked', url: "/order/order-warehouse-in/finish-stocked",
method: 'put', method: "put",
data data
}) })
} }
// 批量转异 // 批量转异
export function batchException(data){ export function batchException(data) {
return request({ return request({
url: '/air/order/manual-exception/batch', url: "/air/order/manual-exception/batch",
method: 'put', method: "put",
data data
}) })
} }
// 打包记录列表 // 打包记录列表
export function orderItemPackLogPage(params){ export function orderItemPackLogPage(params) {
return request({ return request({
url: '/order/item-pack-log/page', url: "/order/item-pack-log/page",
method: 'get', method: "get",
params params
}) })
} }
// 上传报关资料 // 上传报关资料
export function warehousePictureCreate(data) { export function warehousePictureCreate(data) {
return request({ return request({
url: '/order/warehouse-picture/create', url: "/order/warehouse-picture/create",
method: 'post', method: "post",
data data
}) })
} }
// 删除报关资料 // 删除报关资料
export function warehousePictureDelete(id) { export function warehousePictureDelete(id) {
return request({ return request({
url: '/order/warehouse-picture/delete?id=' + id, url: "/order/warehouse-picture/delete?id=" + id,
method: 'delete' method: "delete"
}) })
} }
//上传 //上传
export function uploadFile(data) { export function uploadFile(data) {
return request({ return request({
url: '/infra/file/up', url: "/infra/file/up",
method: 'post', method: "post",
data: data data: data
}) })
} }
//上传 //上传
export function uploadOrgname(data) { export function uploadOrgname(data) {
return request({ return request({
url: '/infra/file/org-name/up', url: "/infra/file/org-name/up",
method: 'post', method: "post",
data: data data: data
}) })
} }
/*根据订单ID查询目的国*/ /*根据订单ID查询目的国*/
export function getDestCountryByOrderId(params){ export function getDestCountryByOrderId(params) {
return request({ return request({
url: '/ecw/order/getDestCountryByOrderId', url: "/ecw/order/getDestCountryByOrderId",
method: 'get', method: "get",
params:params params: params
}) })
} }
// 订单费用汇总 // 订单费用汇总
export function orderSummary(orderId){ export function orderSummary(orderId) {
return request({ return request({
url: '/ecw/orderCount/orderSummary/' + orderId, url: "/ecw/orderCount/orderSummary/" + orderId,
method: 'get' method: "get"
}) })
} }
// 订单明细汇总 // 订单明细汇总
export function orderDetailSummary(orderId){ export function orderDetailSummary(orderId) {
return request({ return request({
url: '/ecw/orderCount/orderDetailSummary/' + orderId, url: "/ecw/orderCount/orderDetailSummary/" + orderId,
method: 'get' method: "get"
}) })
} }
// 自编号的订单费用汇总 // 自编号的订单费用汇总
export function orderSummaryByContainerNumber(params){ export function orderSummaryByContainerNumber(params) {
return request({ return request({
url: '/ecw/orderCount/containerNumber/orderSummary', url: "/ecw/orderCount/containerNumber/orderSummary",
method: 'get', method: "get",
params params
}) })
} }
// 导出自编号订单汇总列表 // 导出自编号订单汇总列表
export function exportOrderSummaryByContainerNumber(params){ export function exportOrderSummaryByContainerNumber(params) {
return request({ return request({
url: '/ecw/order/export/export-order-summary', url: "/ecw/order/export/export-order-summary",
method: 'get', method: "get",
params, params,
timeout: 5 * 60000, timeout: 5 * 60000,
responseType: 'blob' responseType: "blob"
}) })
} }
// 查询权限范围内待出订单数量 // 查询权限范围内待出订单数量
export function getWaitingShipmentCount(){ export function getWaitingShipmentCount() {
return request({ return request({
url: '/air/order/data/scope/waiting/shipment/count', url: "/air/order/data/scope/waiting/shipment/count",
method: 'get' method: "get"
}) })
} }
// 空运订单不可出 // 空运订单不可出
export function setCanNotShipment(orderId){ export function setCanNotShipment(orderId) {
return request({ return request({
url: '/air/order/not/can/shipment/' + orderId, url: "/air/order/not/can/shipment/" + orderId,
method: 'put', method: "put"
}) })
} }
// 查看母订单 // 查看母订单
export function getParentOrder(orderId){ export function getParentOrder(orderId) {
return request({ return request({
url: '/ecw/order/getParentOrder?orderId=' + orderId, url: "/ecw/order/getParentOrder?orderId=" + orderId,
method: 'get' method: "get"
}) })
} }
// 获取订单入仓商品明细通用属性集合,用于备货选择订单商品到明细 // 获取订单入仓商品明细通用属性集合,用于备货选择订单商品到明细
export function getOrderItemCommonAttr(orderId, excludeOrderWarehouseInId){ export function getOrderItemCommonAttr(orderId, excludeOrderWarehouseInId) {
return request({ return request({
url: '/order/order-warehouse-in/get-order-warehouse-in-common-attr-list', url: "/order/order-warehouse-in/get-order-warehouse-in-common-attr-list",
method: 'get', method: "get",
params: {orderId, excludeOrderWarehouseInId} params: { orderId, excludeOrderWarehouseInId }
}) })
} }
//退仓品名列表 //退仓品名列表
export function getOrderItemDeleted(orderId){ export function getOrderItemDeleted(orderId) {
return request({ return request({
url: '/ecw/order/order-item-info-when-warehouse-in-deleted/' + orderId, url: "/ecw/order/order-item-info-when-warehouse-in-deleted/" + orderId,
method: 'get', method: "get"
}) })
} }
// 打包页面订单数据统计 // 打包页面订单数据统计
export function getPackStatistics(orderId){ export function getPackStatistics(orderId) {
return request({ return request({
url: '/ecw/order/order-packed-page-statistics/' + orderId, url: "/ecw/order/order-packed-page-statistics/" + orderId,
method: 'get' method: "get"
}) })
} }
//获得订单品名对应的退仓入仓货物详情 //获得订单品名对应的退仓入仓货物详情
export function getOrderWarehouseDeleted(orderId,orderItem){ export function getOrderWarehouseDeleted(orderId, orderItem) {
return request({ return request({
url: '/order/order-warehouse-in/get-order-warehouse-in-deleted?orderId=' + orderId+'&orderItemId='+orderItem, url: "/order/order-warehouse-in/get-order-warehouse-in-deleted?orderId=" + orderId + "&orderItemId=" + orderItem
})
}
export function getRegionList(type, regionId) {
return request({
url: "/ecw/warehouse/getRegionList?type=" + type + "&regionId=" + regionId,
method: "get"
}) })
} }
export function getRegionList(type,regionId){ // 复制订单
export function copyOrder(orderId) {
return request({ return request({
url:'/ecw/warehouse/getRegionList?type='+type+'&regionId='+regionId, url: "/ecw/order/copy/" + orderId,
method: 'get', method: "post"
})
}
// 强制到仓
export function order_warehouse_check_force(data) {
return request({
url: "/order/order-warehouse-check/force/" + data.orderId,
method: "post"
}) })
} }
// 复制订单 // 到仓查询
export function copyOrder(orderId){ export function order_warehouse_check_query(id) {
return request({
url: "/order/order-warehouse-check/query?orderItemId=" + id,
method: "get"
})
}
// 撤销到仓
export function order_warehouse_check_revoke(data) {
return request({ return request({
url: '/ecw/order/copy/' + orderId, url: "/order/order-warehouse-check/revoke/" + data.orderId,
method: 'post' method: "post"
})
}
// 到仓修改
export function order_warehouse_check_update(data) {
return request({
url: "/order-warehouse-check/update",
method: "post",
data
}) })
} }
<template> <template>
<div class="app-startUnloading"> <div class="app-startUnloading">
<!-- 自编号 --> <!-- 自编号 -->
<el-row> <el-row>
<p style="color:#D9001B;" v-if="pageData.boxCustomsBackVO&&pageData.boxCustomsBackVO.overMachineStatus==2&&pageData.boxCustomsBackVO.overMachineAbnormalStatus==2&&pageData.boxCustomsBackVO.weightMisreport==1"> <p style="color: #d9001b" v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2 && pageData.boxCustomsBackVO.weightMisreport == 1">{{ $t("过机重量异常") }}:{{ $t("机场误差3%以内") }}</p>
{{$t('过机重量异常')}}:{{$t('机场误差3%以内')}} <p style="color: #d9001b" v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2 && pageData.boxCustomsBackVO.weightMisreport == 2">{{ $t("过机重量异常") }}:{{ $t("我司误差超10kg") }}</p>
</p> <p style="color: #d9001b" v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2 && pageData.boxCustomsBackVO.overWeight > 0">{{ $t("过机重量异常") }}:{{ $t("超过机场重量") }}{{ pageData.boxCustomsBackVO.overWeight }}kg</p>
<p style="color:#D9001B;" v-if="pageData.boxCustomsBackVO&&pageData.boxCustomsBackVO.overMachineStatus==2&&pageData.boxCustomsBackVO.overMachineAbnormalStatus==2&&pageData.boxCustomsBackVO.weightMisreport==2"> <p style="color: #d9001b" v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2 && pageData.boxCustomsBackVO.weightMisreport == 3">{{ $t("过机重量异常") }}: {{ $t("过机放行-未找到重货订单") }}</p>
{{$t('过机重量异常')}}:{{$t('我司误差超10kg')}} <p style="color: #d9001b" v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2 && pageData.boxCustomsBackVO.weightMisreport == 4">
</p> {{ $t("过机重量异常") }}: {{ $t("过机放行-已找到重货订单") }}:<span v-for="order in strToArray(pageData.boxCustomsBackVO.overOrders)" :key="order">{{ getOrders(order) }}</span>
<p style="color:#D9001B;" v-if="pageData.boxCustomsBackVO&&pageData.boxCustomsBackVO.overMachineStatus==2&&pageData.boxCustomsBackVO.overMachineAbnormalStatus==2&&pageData.boxCustomsBackVO.overWeight>0">
{{$t('过机重量异常')}}:{{$t('超过机场重量')}}{{pageData.boxCustomsBackVO.overWeight}}kg
</p>
<p style="color:#D9001B;" v-if="pageData.boxCustomsBackVO&&pageData.boxCustomsBackVO.overMachineStatus==2&&pageData.boxCustomsBackVO.overMachineAbnormalStatus==2&&pageData.boxCustomsBackVO.weightMisreport==3">
{{$t('过机重量异常')}}: {{$t('过机放行-未找到重货订单')}}
</p>
<p style="color:#D9001B;" v-if="pageData.boxCustomsBackVO&&pageData.boxCustomsBackVO.overMachineStatus==2&&pageData.boxCustomsBackVO.overMachineAbnormalStatus==2&&pageData.boxCustomsBackVO.weightMisreport==4">
{{$t('过机重量异常')}}: {{$t('过机放行-已找到重货订单')}}:<span v-for="order in strToArray(pageData.boxCustomsBackVO.overOrders)" :key="order">{{ getOrders(order) }}</span>
</p> </p>
</el-row> </el-row>
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font"><span style="color:red">*</span>{{$t('到仓时间')}}</p> <p class="label-font"><span style="color: red">*</span>{{ $t("到仓时间") }}</p>
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="ulWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="ulWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-row> </el-row>
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">{{$t('自编号')}}</p> <p class="label-font">{{ $t("自编号") }}</p>
<p class="label-font">{{selfNo}}</p> <p class="label-font">{{ selfNo }}</p>
<el-input v-model="labelNo" :placeholder="$t('请输入')"></el-input> <el-input v-model="labelNo" :placeholder="$t('请输入')"></el-input>
<div> <div>
<!-- <el-button type="primary" @click="modifyUnload">{{$t('提交')}}</el-button> --> <!-- <el-button type="primary" @click="modifyUnload">{{$t('提交')}}</el-button> -->
<el-button type="primary" @click="modifyBatchUnload">{{$t('批量输入')}}</el-button> <el-button type="primary" @click="modifyBatchUnload">{{ $t("批量输入") }}</el-button>
<el-button type="primary" @click="modifyAllUnload">{{$t('全部到仓')}}</el-button> <el-button type="primary" @click="modifyAllUnload">{{ $t("全部到仓") }}</el-button>
</div> </div>
</el-row> </el-row>
<!-- 当前部分 --> <!-- 当前部分 -->
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">{{$t('当前部分')}}</p> <p class="label-font">{{ $t("当前部分") }}</p>
<el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange"> <el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange">
<el-option key="0" :label="$t('全部')" value="0"></el-option> <el-option key="0" :label="$t('全部')" value="0"></el-option>
<el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
<p> <p>
{{getSectionInfo}} {{ getSectionInfo }}
</p> </p>
</el-row> </el-row>
...@@ -65,7 +56,7 @@ ...@@ -65,7 +56,7 @@
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status" :filter="statusDictFilter" clearable /> <dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status" :filter="statusDictFilter" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="batchUnLoad" :disabled="!multipleSelection.length">{{$t('选中订单一键卸柜')}}</el-button> <el-button @click="batchUnLoad" :disabled="!multipleSelection.length">{{ $t("选中订单一键卸柜") }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
...@@ -78,10 +69,10 @@ ...@@ -78,10 +69,10 @@
<el-table-column :label="$t('订单号')" align="center" prop="orderNo"> <el-table-column :label="$t('订单号')" align="center" prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{scope.row.orderNo}}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a>
</div> </div>
<div style="color:blue;fontWeight:bold;"> <div style="color: blue; fontweight: bold">
{{ scope.row.isExternalWarehouse === 1 ? '(' + $t('外部仓') + ')' : ''}} {{ scope.row.isExternalWarehouse === 1 ? "(" + $t("外部仓") + ")" : "" }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -89,9 +80,10 @@ ...@@ -89,9 +80,10 @@
<template slot-scope="scope"> <template slot-scope="scope">
<section class="table-goodList"> <section class="table-goodList">
<div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div"> <div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div">
<p>{{$t('品名')}}{{$l(item, 'prodTitle')}}</p> <p>{{ $t("品名") }}{{ $l(item, "prodTitle") }}</p>
<p>{{$t('品牌')}}:【<template v-if="item.brandName">{{item.brandName}}</template> <p>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="item.feeType" />{{ $t('】') }}</p> {{ $t("品牌") }}:【<template v-if="item.brandName">{{ item.brandName }}</template> <dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="item.feeType" />{{ $t("】") }}
</p>
</div> </div>
</section> </section>
</template> </template>
...@@ -106,25 +98,25 @@ ...@@ -106,25 +98,25 @@
<el-table-column :label="$t('实装箱数')" align="center" prop="installNum"> <el-table-column :label="$t('实装箱数')" align="center" prop="installNum">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{scope.row.installNum}}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.installNum }}</a>
</div> </div>
<div style="color:blue;fontWeight:bold;"> <div style="color: blue; fontweight: bold">
{{ scope.row.isExternalWarehouse === 1 ? '(' + $t('外部仓') + ')' : ''}} {{ scope.row.isExternalWarehouse === 1 ? "(" + $t("外部仓") + ")" : "" }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('到仓箱数')" align="center" prop="unloadNum"> <el-table-column :label="$t('到仓箱数')" align="center" prop="unloadNum">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{scope.row.unloadNum}}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.unloadNum }}</a>
</div> </div>
<div style="color:blue;fontWeight:bold;"> <div style="color: blue; fontweight: bold">
{{ scope.row.isExternalWarehouse === 1 ? '(' + $t('外部仓') + ')' : ''}} {{ scope.row.isExternalWarehouse === 1 ? "(" + $t("外部仓") + ")" : "" }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('清关状态')" align="center" prop=""> <el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template> <template slot-scope="scope">{{ clearStatus(scope.row) }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" /> <el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" />
<el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" /> <el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" />
...@@ -132,24 +124,27 @@ ...@@ -132,24 +124,27 @@
<el-table-column :label="$t('重量')" align="center" prop="weight" /> <el-table-column :label="$t('重量')" align="center" prop="weight" />
<el-table-column :label="$t('订单状态')" align="center" prop=""> <el-table-column :label="$t('订单状态')" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.statusMsg}} {{ scope.row.statusMsg }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('异常状态')" align="center" prop=""> <el-table-column :label="$t('异常状态')" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.exceptionList" type="text" size="small" @click="handleError(scope.row)" icon="el-icon-edit">{{getOrderError(scope.row, 'errorStatus')}}</el-button> <el-button v-if="scope.row.exceptionList" type="text" size="small" @click="handleError(scope.row)" icon="el-icon-edit">{{ getOrderError(scope.row, "errorStatus") }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('异常类型')" align="center" prop=""> <el-table-column :label="$t('异常类型')" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
{{getUnloadError(scope.row.exceptionList)}} {{ getUnloadError(scope.row.exceptionList) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" width="170" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" width="170" class-name="small-padding fixed-width">
<template slot-scope="scope" > <template slot-scope="scope">
<div class="number-area"> <div class="btns">
<el-button type="danger" size="small" @click="openError(scope.row)">{{$t('异常')}}</el-button> <el-button type="danger" size="small" @click="openError(scope.row)">{{ $t("异常") }}</el-button>
<el-button v-if="pageData.boxCustomsBackVO&&pageData.boxCustomsBackVO.overMachineStatus==2&&pageData.boxCustomsBackVO.overMachineAbnormalStatus==2" plain type="primary" size="small" @click="$router.push('/order/warehousing-update?id='+scope.row.orderId)">{{$t('入仓修改 ')}}</el-button> <el-button v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2" plain type="primary" size="small" @click="$router.push('/order/warehousing-update?id=' + scope.row.orderId)">{{ $t("入仓修改 ") }}</el-button>
<el-button plain type="primary" size="small" @click="order_warehouse_check_revoke(scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("撤销到仓") }}</el-button>
<el-button plain type="primary" size="small" @click="order_warehouse_check_force(scope.row.orderId)" v-if="scope.row.installNum > scope.row.unloadNum">{{ $t("强制到仓") }}</el-button>
<el-button plain type="primary" size="small" @click="$router.push('/order/warehousingTo-update?id=' + scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("到仓修改") }}</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -160,14 +155,14 @@ ...@@ -160,14 +155,14 @@
<el-row> <el-row>
<div class="label-font"> <div class="label-font">
<p> <p>
<span>{{$t('总计')}}:</span> <span>{{ $t("总计") }}:</span>
<span>{{getTotlContent(pageData.totalStatistics)}}</span> <span>{{ getTotlContent(pageData.totalStatistics) }}</span>
</p> </p>
</div> </div>
<div class="label-font"> <div class="label-font">
<p> <p>
<span>{{$t('到仓')}}:</span> <span>{{ $t("到仓") }}:</span>
<span>{{getUnLoadNumCount}}</span> <span>{{ getUnLoadNumCount }}</span>
</p> </p>
</div> </div>
</el-row> </el-row>
...@@ -175,23 +170,23 @@ ...@@ -175,23 +170,23 @@
<!-- 审核流程 --> <!-- 审核流程 -->
<el-row class="process-area"> <el-row class="process-area">
<div class="process"> <div class="process">
<div>{{$t('审批流程')}}</div> <div>{{ $t("审批流程") }}</div>
<work-flow xmlkey="unload_container" v-model="selectedUsers"></work-flow> <work-flow xmlkey="unload_container" v-model="selectedUsers"></work-flow>
</div> </div>
<!-- 操作 --> <!-- 操作 -->
<div v-if="!isUnderReview"> <div v-if="!isUnderReview">
<el-button type="success" @click="onSubmit">{{$t('提交完成到仓审核')}}</el-button> <el-button type="success" @click="onSubmit">{{ $t("提交完成到仓审核") }}</el-button>
<el-button plain type="primary" @click="$emit('closeDialog')">{{$t('返回')}}</el-button> <el-button plain type="primary" @click="$emit('closeDialog')">{{ $t("返回") }}</el-button>
</div> </div>
<div v-if="isUnderReview"> <div v-if="isUnderReview">
<el-button type="primary" @click="jumpReviewDetail">{{$t('到仓审核中')}}</el-button> <el-button type="primary" @click="jumpReviewDetail">{{ $t("到仓审核中") }}</el-button>
<el-button plain type="primary" @click="canclAudit">{{$t('取消审核')}}</el-button> <el-button plain type="primary" @click="canclAudit">{{ $t("取消审核") }}</el-button>
<el-button plain type="primary" @click="$emit('closeDialog')">{{$t('返回')}}</el-button> <el-button plain type="primary" @click="$emit('closeDialog')">{{ $t("返回") }}</el-button>
</div> </div>
</el-row> </el-row>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="dialogConfig.title" :visible.sync="dialogConfig.dialogVisible" :fullscreen="dialogConfig.fullscreen" :width="dialogConfig.width" :modal-append-to-body=false append-to-body> <el-dialog custom-class="shipping-dialog" :title="dialogConfig.title" :visible.sync="dialogConfig.dialogVisible" :fullscreen="dialogConfig.fullscreen" :width="dialogConfig.width" :modal-append-to-body="false" append-to-body>
<!-- 已装未装订单 --> <!-- 已装未装订单 -->
<template v-if="dialogConfig.type === 'orderTable'"> <template v-if="dialogConfig.type === 'orderTable'">
<el-table :data="orderList" height="500px" border> <el-table :data="orderList" height="500px" border>
...@@ -201,35 +196,26 @@ ...@@ -201,35 +196,26 @@
</template> </template>
</el-dialog> </el-dialog>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="$t('异常')" :visible.sync="dialogVisible" width="600px" :modal-append-to-body=false append-to-body> <el-dialog custom-class="shipping-dialog" :title="$t('异常')" :visible.sync="dialogVisible" width="600px" :modal-append-to-body="false" append-to-body>
<unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" /> <unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" />
</el-dialog> </el-dialog>
<el-dialog :title="$t('批量到仓选中订单')" :visible="batchUnloading" :before-close="handleCloseBatchUnloading" append-to-body> <el-dialog :title="$t('批量到仓选中订单')" :visible="batchUnloading" :before-close="handleCloseBatchUnloading" append-to-body>
<template v-for="item in batchLogs"> <template v-for="item in batchLogs">
<div>{{item}}</div> <div>{{ item }}</div>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import unloadingError from "./unloadingError.vue"; import unloadingError from "./unloadingError.vue"
import { import { loadGoodsList, airBatchUnload, airAllUnload, orderTagList, approvalCreate, approvalCancel, getSectionList, airSingleUnload, boxGoodsDetail } from "@/api/ecw/boxSea"
loadGoodsList, import { serviceMsg, getTotlContent, toReviewDetail } from "../../utils"
airBatchUnload, import WorkFlow from "@/components/WorkFlow"
airAllUnload, import Decimal from "decimal.js"
orderTagList, import { getWarehouseList } from "@/api/ecw/warehouse"
approvalCreate, import { order_warehouse_check_revoke, order_warehouse_check_force } from "@/api/ecw/order"
approvalCancel, import Template from "@/views/cms/template/index.vue"
getSectionList,
airSingleUnload,
boxGoodsDetail
} from "@/api/ecw/boxSea";
import { serviceMsg, getTotlContent, toReviewDetail } from "../../utils";
import WorkFlow from "@/components/WorkFlow";
import Decimal from "decimal.js";
import { getWarehouseList } from '@/api/ecw/warehouse'
import Template from '@/views/cms/template/index.vue'
/** /**
* 开始卸柜 * 开始卸柜
...@@ -254,7 +240,7 @@ export default { ...@@ -254,7 +240,7 @@ export default {
dialogVisible: false, dialogVisible: false,
width: "30%", width: "30%",
type: "", type: "",
fullscreen: false, fullscreen: false
}, },
dialogVisible: false, dialogVisible: false,
// 已装/未装 // 已装/未装
...@@ -271,17 +257,17 @@ export default { ...@@ -271,17 +257,17 @@ export default {
sectionObj: { sectionObj: {
secStatistics: {}, secStatistics: {},
sectionOrderList: [], sectionOrderList: [],
totalStatistics: {}, totalStatistics: {}
}, },
selectedUsers: [], selectedUsers: [],
sectionOrderList: [], sectionOrderList: [],
ulWarehouseTime: null, ulWarehouseTime: null,
warehouseList:[], warehouseList: [],
// 筛选参数 // 筛选参数
queryParams:{ queryParams: {
orderNo: '', orderNo: "",
startWarehouseIds:[], startWarehouseIds: [],
destWarehouseIds:[], destWarehouseIds: [],
status: null status: null
}, },
// 表格选中的 // 表格选中的
...@@ -289,21 +275,21 @@ export default { ...@@ -289,21 +275,21 @@ export default {
// 是否正在批量卸柜 // 是否正在批量卸柜
batchUnloading: false, batchUnloading: false,
// 批量操作的日志 // 批量操作的日志
batchLogs:[] batchLogs: []
}; }
}, },
created() { created() {
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then((res) => (this.warehouseList = res.data))
this.getLoadGoodsList(); this.getLoadGoodsList()
// 部分 // 部分
getSectionList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => { getSectionList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => {
this.sectionList = res.data.map((item, index) => { this.sectionList = res.data.map((item, index) => {
return { return {
...item, ...item,
title: this.$t("第{index}部分", { index: index + 1 }), title: this.$t("第{index}部分", { index: index + 1 })
}; }
}); })
}); })
boxGoodsDetail({ boxGoodsDetail({
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
secId: 0 secId: 0
...@@ -312,94 +298,106 @@ export default { ...@@ -312,94 +298,106 @@ export default {
}) })
}, },
methods: { methods: {
order_warehouse_check_revoke(orderId) {
this.$confirm(this.$t("确定要撤销到仓么?")).then(async () => {
let r = await order_warehouse_check_revoke({ orderId })
this.getLoadGoodsList()
})
},
order_warehouse_check_force(orderId) {
this.$confirm(this.$t("确定要强制到仓么?")).then(async () => {
let r = await order_warehouse_check_force({ orderId })
this.getLoadGoodsList()
})
},
getTotlContent, getTotlContent,
getOrders(id) { getOrders(id) {
let order = this.sectionOrderList.find((item) => item.orderId == id) let order = this.sectionOrderList.find((item) => item.orderId == id)
if (order) { if (order) {
return order.orderNo return order.orderNo
} }
return '' return ""
}, },
strToArray(str) { strToArray(str) {
if (!str) return [] if (!str) return []
let array = str?.split(',') ?? [] let array = str?.split(",") ?? []
return array.map((item) => { return array.map((item) => {
return Number(item) return Number(item)
}) })
}, },
/* 获取卸柜数据 */ /* 获取卸柜数据 */
getLoadGoodsList() { getLoadGoodsList() {
this.loading = true; this.loading = true
let params = { let params = {
secId: this.sectionId, secId: this.sectionId,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id
}; }
loadGoodsList(params).then((res) => { loadGoodsList(params).then((res) => {
const { data } = res; const { data } = res
this.pageData = data; this.pageData = data
this.loading = false; this.loading = false
}); })
}, },
/** 表格订单号点击 */ /** 表格订单号点击 */
orderClick(row) { orderClick(row) {
orderTagList({ orderId: row.orderId }).then((res) => { orderTagList({ orderId: row.orderId }).then((res) => {
const { data = {} } = res; const { data = {} } = res
this.orderList = []; this.orderList = []
// 取最长的list // 取最长的list
let dataLength = data.loadList.length; let dataLength = data.loadList.length
if (data.unLoadList.length > dataLength) { if (data.unLoadList.length > dataLength) {
dataLength = data.unLoadList.length; dataLength = data.unLoadList.length
} }
// 组装数据,用一个table组件渲染 // 组装数据,用一个table组件渲染
for (let index = 0; index < dataLength; index++) { for (let index = 0; index < dataLength; index++) {
this.orderList.push({ this.orderList.push({
loadTag: data.loadList[index], loadTag: data.loadList[index],
unloadTag: data.unloadCabinetList[index], unloadTag: data.unloadCabinetList[index]
}); })
} }
}); })
this.shwoDialog({ this.shwoDialog({
type: "orderTable", type: "orderTable",
title: row.selfNo, title: row.selfNo
}); })
}, },
/** 弹窗事件 */ /** 弹窗事件 */
shwoDialog(config) { shwoDialog(config) {
this.$set(this.dialogConfig, "title", config.title); this.$set(this.dialogConfig, "title", config.title)
this.$set(this.dialogConfig, "type", config.type); this.$set(this.dialogConfig, "type", config.type)
switch (config.type) { switch (config.type) {
case "orderTable": case "orderTable":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false)
break; break
} }
this.$set(this.dialogConfig, "dialogVisible", true); this.$set(this.dialogConfig, "dialogVisible", true)
}, },
/* 单个卸柜 */ /* 单个卸柜 */
modifyUnload() { modifyUnload() {
if (!this.labelNo) { if (!this.labelNo) {
this.$message.error(this.$t("请输入箱号标签")); this.$message.error(this.$t("请输入箱号标签"))
return; return
} }
airSingleUnload({ airSingleUnload({
orderNumCode: this.labelNo, orderNumCode: this.labelNo,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.labelNo = ""; this.labelNo = ""
this.getLoadGoodsList(); this.getLoadGoodsList()
}); })
}); })
}, },
/* 批量输入 */ /* 批量输入 */
modifyBatchUnload() { modifyBatchUnload() {
if (!this.labelNo) { if (!this.labelNo) {
this.$message.error(this.$t("请输入订单号")); this.$message.error(this.$t("请输入订单号"))
return; return
} }
if (!this.ulWarehouseTime) { if (!this.ulWarehouseTime) {
this.$message.error(this.$t("请选择到仓时间")); this.$message.error(this.$t("请选择到仓时间"))
return; return
} }
airBatchUnload({ airBatchUnload({
orderNo: this.labelNo, orderNo: this.labelNo,
...@@ -407,28 +405,28 @@ export default { ...@@ -407,28 +405,28 @@ export default {
unloadTime: this.ulWarehouseTime unloadTime: this.ulWarehouseTime
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.labelNo = ""; this.labelNo = ""
this.getLoadGoodsList(); this.getLoadGoodsList()
}); })
}); })
}, },
/* 一键卸柜 */ /* 一键卸柜 */
modifyAllUnload() { modifyAllUnload() {
if (!this.ulWarehouseTime) { if (!this.ulWarehouseTime) {
this.$message.error(this.$t("请选择到仓时间")); this.$message.error(this.$t("请选择到仓时间"))
return; return
} }
this.$confirm(this.$t("确认到仓?"), this.$t("提示"), { this.$confirm(this.$t("确认到仓?"), this.$t("提示"), {
type: "warning", type: "warning"
}) })
.then((_) => { .then((_) => {
airAllUnload({ shipmentId: this.$attrs.shipmentObj.id, unloadTime: this.ulWarehouseTime }).then((res) => { airAllUnload({ shipmentId: this.$attrs.shipmentObj.id, unloadTime: this.ulWarehouseTime }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.getLoadGoodsList(); this.getLoadGoodsList()
});
});
}) })
.catch((_) => {}); })
})
.catch((_) => {})
}, },
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
...@@ -442,160 +440,159 @@ export default { ...@@ -442,160 +440,159 @@ export default {
// this.$message.error(this.$t("存在未到港或未清关的订单")); // this.$message.error(this.$t("存在未到港或未清关的订单"));
// return // return
// } // }
if(this.getUnLoadNumCount>0){ if (this.getUnLoadNumCount > 0) {
approvalCreate({ approvalCreate({
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
approvalStatus: 0, approvalStatus: 0,
approvalType: 15, // 卸柜 approvalType: 15, // 卸柜
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel("submit"); this.cancel("submit")
}); })
}); })
}else{ } else {
this.$message.error(this.$t("货物到仓数小于实装数,请确认")); this.$message.error(this.$t("货物到仓数小于实装数,请确认"))
} }
}, },
/** 取消 */ /** 取消 */
cancel(type) { cancel(type) {
this.$emit('closeDialog', type) this.$emit("closeDialog", type)
}, },
/* 关闭弹窗 */ /* 关闭弹窗 */
closeDialog(type) { closeDialog(type) {
this.dialogVisible = false; this.dialogVisible = false
if (type === "query") this.getLoadGoodsList(); if (type === "query") this.getLoadGoodsList()
}, },
/* 打开异常 */ /* 打开异常 */
openError(row) { openError(row) {
this.currRow = row; this.currRow = row
this.dialogVisible = true; this.dialogVisible = true
}, },
/* 清关状态 */ /* 清关状态 */
clearStatus(row) { clearStatus(row) {
const { installNum, unloadNum } = row; const { installNum, unloadNum } = row
if (installNum === unloadNum) { if (installNum === unloadNum) {
return this.$t("全部清关"); return this.$t("全部清关")
} }
if (installNum >= unloadNum) { if (installNum >= unloadNum) {
return this.$t("部分清关"); return this.$t("部分清关")
} }
if (unloadNum === 0) { if (unloadNum === 0) {
return this.$t("未清关"); return this.$t("未清关")
} }
}, },
// 部分切换 // 部分切换
sectionChange() { sectionChange() {
this.getLoadGoodsList(); this.getLoadGoodsList()
}, },
/* 取消审核 */ /* 取消审核 */
canclAudit() { canclAudit() {
const { shipmentObj } = this.$attrs; const { shipmentObj } = this.$attrs
approvalCancel({ approvalCancel({
applyReason: this.$t("取消审核"), applyReason: this.$t("取消审核"),
id: shipmentObj["cabinetUnloadApprovalInfo"].id, id: shipmentObj["cabinetUnloadApprovalInfo"].id,
shipmentId: shipmentObj.id, shipmentId: shipmentObj.id
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel("submit"); this.cancel("submit")
}); })
}); })
}, },
// 获取异常类型 // 获取异常类型
getUnloadError(exceptionList) { getUnloadError(exceptionList) {
if (!exceptionList) return exceptionList; if (!exceptionList) return exceptionList
const codes = this.getDictDatas(this.DICT_TYPE.ORDER_ERROR_TYPE); const codes = this.getDictDatas(this.DICT_TYPE.ORDER_ERROR_TYPE)
let errorLabels = []; let errorLabels = []
exceptionList.forEach((item) => { exceptionList.forEach((item) => {
const errObj = codes.find( const errObj = codes.find((cItem) => cItem.value === item.orderExceptionType)
(cItem) => cItem.value === item.orderExceptionType if (errObj) errorLabels.push(errObj.label)
); })
if (errObj) errorLabels.push(errObj.label); return errorLabels.join(",")
});
return errorLabels.join(",");
}, },
// 订单异常 // 订单异常
getOrderError(row, type) { getOrderError(row, type) {
if (row.exceptionList && row.exceptionList.length) { if (row.exceptionList && row.exceptionList.length) {
return type === "orderStatus" ? this.$t("卸柜异常") : this.$t("待处理"); return type === "orderStatus" ? this.$t("卸柜异常") : this.$t("待处理")
} }
return type === "orderStatus" ? this.$t("已到港") : ""; return type === "orderStatus" ? this.$t("已到港") : ""
}, },
// 处理异常 // 处理异常
handleError(row) { handleError(row) {
this.$emit("closeStart", "close"); this.$emit("closeStart", "close")
this.$router.push({ this.$router.push({
path: `/order/pending?id=${row.orderId}`, path: `/order/pending?id=${row.orderId}`
}); })
}, },
jumpReviewDetail() { jumpReviewDetail() {
const { cabinetUnloadApprovalInfo } = this.$attrs.shipmentObj; const { cabinetUnloadApprovalInfo } = this.$attrs.shipmentObj
toReviewDetail.apply(this, [cabinetUnloadApprovalInfo.bpmProcessId]); toReviewDetail.apply(this, [cabinetUnloadApprovalInfo.bpmProcessId])
this.$emit("closeStart", "close"); this.$emit("closeStart", "close")
}, },
// 表格多选 // 表格多选
handleSelectionChange(selection) { handleSelectionChange(selection) {
console.log({selection}) console.log({ selection })
this.multipleSelection = selection this.multipleSelection = selection
}, },
async batchUnLoad(){ async batchUnLoad() {
if(!this.multipleSelection?.length){ if (!this.multipleSelection?.length) {
return this.$message(this.$t('请先选择订单')) return this.$message(this.$t("请先选择订单"))
} }
if(!this.ulWarehouseTime){ if (!this.ulWarehouseTime) {
return this.$message(this.$t('请选择卸柜时间')) return this.$message(this.$t("请选择卸柜时间"))
} }
console.log('批量卸柜') console.log("批量卸柜")
this.batchUnloading = true this.batchUnloading = true
this.batchLogs = [] this.batchLogs = []
for(const item of this.multipleSelection){ for (const item of this.multipleSelection) {
if(!this.batchUnloading)break; if (!this.batchUnloading) break
const time = new Date() const time = new Date()
const timeStr = [time.getHours(), time.getMinutes(), time.getSeconds()].map(item => item.toString().padStart(2, '0')).join(':') const timeStr = [time.getHours(), time.getMinutes(), time.getSeconds()].map((item) => item.toString().padStart(2, "0")).join(":")
await airBatchUnload({ await airBatchUnload({
orderNo: item.orderNo, orderNo: item.orderNo,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
unloadTime: this.ulWarehouseTime unloadTime: this.ulWarehouseTime
}).then((res) => { })
.then((res) => {
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜成功`) this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜成功`)
}).catch((err) => { })
.catch((err) => {
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜失败` + JSON.stringify(err)) this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜失败` + JSON.stringify(err))
}); })
} }
this.batchLogs.push("批量卸柜完成") this.batchLogs.push("批量卸柜完成")
this.getLoadGoodsList(); this.getLoadGoodsList()
}, },
handleCloseBatchUnloading(){ handleCloseBatchUnloading() {
this.batchUnloading = false this.batchUnloading = false
}, },
// 过滤订单状态筛选字典内容 // 过滤订单状态筛选字典内容
statusDictFilter(item){ statusDictFilter(item) {
if(item.cssClass && item.cssClass != 'air'){ if (item.cssClass && item.cssClass != "air") {
return false return false
} }
return true return true
}, }
}, },
computed: { computed: {
exportWarehouseList(){ exportWarehouseList() {
/* tradeType 1 进口,2出口,3进出口 */ /* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 2 || item.tradeType == 3)
}, },
importWarehouseList(){ importWarehouseList() {
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 1 || item.tradeType == 3)
}, },
filteredOrderList(){ filteredOrderList() {
if(!this.pageData?.sectionOrderList?.length) return [] if (!this.pageData?.sectionOrderList?.length) return []
return this.pageData.sectionOrderList.filter((item) => { return this.pageData.sectionOrderList.filter((item) => {
if(this.queryParams.orderNo && item.orderNo.indexOf(this.queryParams.orderNo) == -1)return false if (this.queryParams.orderNo && item.orderNo.indexOf(this.queryParams.orderNo) == -1) return false
if(this.queryParams.startWarehouseIds?.length && this.queryParams.startWarehouseIds.indexOf(item.startWarehouseName) === -1){ if (this.queryParams.startWarehouseIds?.length && this.queryParams.startWarehouseIds.indexOf(item.startWarehouseName) === -1) {
return false return false
} }
if(this.queryParams.destWarehouseIds?.length && this.queryParams.destWarehouseIds.indexOf(item.destWarehouseName) === -1){ if (this.queryParams.destWarehouseIds?.length && this.queryParams.destWarehouseIds.indexOf(item.destWarehouseName) === -1) {
return false return false
} }
if(this.queryParams.status && this.queryParams.status != item.status){ if (this.queryParams.status && this.queryParams.status != item.status) {
return false return false
} }
return true return true
...@@ -603,33 +600,42 @@ export default { ...@@ -603,33 +600,42 @@ export default {
}, },
/* 是否审核中 */ /* 是否审核中 */
isUnderReview() { isUnderReview() {
const { currNode, shipmentObj } = this.$attrs; const { currNode, shipmentObj } = this.$attrs
return shipmentObj[currNode.keyName] === 183 ? true : false; return shipmentObj[currNode.keyName] === 183 ? true : false
}, },
// 部分信息 // 部分信息
getSectionInfo() { getSectionInfo() {
const { totalStatistics, secStatistics } = this.pageData; const { totalStatistics, secStatistics } = this.pageData
if (!this.sectionId) { if (!this.sectionId) {
return getTotlContent(totalStatistics); return getTotlContent(totalStatistics)
} else { } else {
return getTotlContent(secStatistics); return getTotlContent(secStatistics)
} }
}, },
/* 已卸总数 */ /* 已卸总数 */
getUnLoadNumCount() { getUnLoadNumCount() {
let count = 0; let count = 0
if (this.pageData.sectionOrderList) { if (this.pageData.sectionOrderList) {
this.pageData.sectionOrderList.forEach((item) => { this.pageData.sectionOrderList.forEach((item) => {
count = Decimal.add(count, item.unloadNum).toNumber(); count = Decimal.add(count, item.unloadNum).toNumber()
}); })
} }
return count; return count
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.btns {
& > * {
&:nth-child(n + 1) {
margin: 0 auto;
margin-top: 6px;
display: block;
}
}
}
.app-startUnloading { .app-startUnloading {
p { p {
margin: 0; margin: 0;
......
<template> <template>
<div class="app-startUnloading"> <div class="app-startUnloading">
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font"><span style="color:red">*</span>{{$t('卸柜时间')}}</p> <p class="label-font"><span style="color: red">*</span>{{ $t("卸柜时间") }}</p>
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="ulWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="ulWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-row> </el-row>
<!-- 自编号 --> <!-- 自编号 -->
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">{{$t('自编号')}}</p> <p class="label-font">{{ $t("自编号") }}</p>
<p class="label-font">{{selfNo}}</p> <p class="label-font">{{ selfNo }}</p>
<el-input v-model="labelNo" :placeholder="$t('请输入')"></el-input> <el-input v-model="labelNo" :placeholder="$t('请输入')"></el-input>
<div> <div>
<el-button type="primary" :disabled="isSuccessReview" @click="modifyUnload">{{$t('提交')}}</el-button> <el-button type="primary" :disabled="isSuccessReview" @click="modifyUnload">{{ $t("提交") }}</el-button>
<el-button type="primary" :disabled="isSuccessReview" @click="modifyBatchUnload">{{$t('批量输入')}}</el-button> <el-button type="primary" :disabled="isSuccessReview" @click="modifyBatchUnload">{{ $t("批量输入") }}</el-button>
<el-button type="primary" :disabled="isSuccessReview" @click="modifyAllUnload">{{$t('一键卸柜')}}</el-button> <el-button type="primary" :disabled="isSuccessReview" @click="modifyAllUnload">{{ $t("一键卸柜") }}</el-button>
</div> </div>
</el-row> </el-row>
<!-- 当前部分 --> <!-- 当前部分 -->
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">{{$t('当前部分')}}</p> <p class="label-font">{{ $t("当前部分") }}</p>
<el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange"> <el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange">
<el-option key="0" :label="$t('全部')" value="0"></el-option> <el-option key="0" :label="$t('全部')" value="0"></el-option>
<el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
<p> <p>
{{getSectionInfo}} {{ getSectionInfo }}
</p> </p>
</el-row> </el-row>
<el-row> <el-row>
<el-form inline> <el-form inline>
<el-form-item :label="$t('订单号')"> <el-form-item :label="$t('订单号')">
...@@ -48,7 +47,7 @@ ...@@ -48,7 +47,7 @@
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status" :filter="statusDictFilter" clearable /> <dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status" :filter="statusDictFilter" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="batchUnLoad" :disabled="!multipleSelection.length">{{$t('选中订单一键卸柜')}}</el-button> <el-button @click="batchUnLoad" :disabled="!multipleSelection.length">{{ $t("选中订单一键卸柜") }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
...@@ -63,8 +62,8 @@ ...@@ -63,8 +62,8 @@
<div> <div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.orderNo }}</a>
</div> </div>
<div style="color:blue;fontWeight:bold;"> <div style="color: blue; fontweight: bold">
{{ scope.row.isExternalWarehouse === 1 ? '(' + $t('外部仓') + ')' : ''}} {{ scope.row.isExternalWarehouse === 1 ? "(" + $t("外部仓") + ")" : "" }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -72,9 +71,10 @@ ...@@ -72,9 +71,10 @@
<template slot-scope="scope"> <template slot-scope="scope">
<section class="table-goodList"> <section class="table-goodList">
<div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div"> <div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div">
<p>{{$t('品名')}}{{$l(item, 'prodTitle')}}</p> <p>{{ $t("品名") }}{{ $l(item, "prodTitle") }}</p>
<p>{{$t('品牌')}}:【<template v-if="item.brandName">{{item.brandName}}</template> <p>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="item.feeType" />{{ $t('】') }}</p> {{ $t("品牌") }}:【<template v-if="item.brandName">{{ item.brandName }}</template> <dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="item.feeType" />{{ $t("】") }}
</p>
</div> </div>
</section> </section>
</template> </template>
...@@ -91,8 +91,8 @@ ...@@ -91,8 +91,8 @@
<div> <div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.installNum }}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.installNum }}</a>
</div> </div>
<div style="color:blue;fontWeight:bold;"> <div style="color: blue; fontweight: bold">
{{ scope.row.isExternalWarehouse === 1 ? '(' + $t('外部仓') + ')' : ''}} {{ scope.row.isExternalWarehouse === 1 ? "(" + $t("外部仓") + ")" : "" }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -101,13 +101,13 @@ ...@@ -101,13 +101,13 @@
<div> <div>
<a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.unloadNum }}</a> <a href="javascript:void(0);" class="order-href" @click="orderClick(scope.row)">{{ scope.row.unloadNum }}</a>
</div> </div>
<div style="color:blue;fontWeight:bold;"> <div style="color: blue; fontweight: bold">
{{ scope.row.isExternalWarehouse === 1 ? '(' + $t('外部仓') + ')' : ''}} {{ scope.row.isExternalWarehouse === 1 ? "(" + $t("外部仓") + ")" : "" }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('清关状态')" align="center" prop=""> <el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template> <template slot-scope="scope">{{ clearStatus(scope.row) }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" /> <el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" />
<el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" /> <el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" />
...@@ -115,22 +115,27 @@ ...@@ -115,22 +115,27 @@
<el-table-column :label="$t('重量')" align="center" prop="weight" /> <el-table-column :label="$t('重量')" align="center" prop="weight" />
<el-table-column :label="$t('订单状态')" align="center" prop=""> <el-table-column :label="$t('订单状态')" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.statusMsg}} {{ scope.row.statusMsg }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('异常状态')" align="center" prop=""> <el-table-column :label="$t('异常状态')" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.exceptionList" type="text" size="small" @click="handleError(scope.row)" icon="el-icon-edit">{{getOrderError(scope.row, 'errorStatus')}}</el-button> <el-button v-if="scope.row.exceptionList" type="text" size="small" @click="handleError(scope.row)" icon="el-icon-edit">{{ getOrderError(scope.row, "errorStatus") }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('异常类型')" align="center" prop=""> <el-table-column :label="$t('异常类型')" align="center" prop="">
<template slot-scope="scope"> <template slot-scope="scope">
{{getUnloadError(scope.row.exceptionList)}} {{ getUnloadError(scope.row.exceptionList) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="danger" size="small" @click="openError(scope.row)">{{$t('异常')}}</el-button> <div class="btns">
<el-button type="danger" size="small" @click="openError(scope.row)">{{ $t("异常") }}</el-button>
<el-button plain type="primary" size="small" @click="order_warehouse_check_revoke(scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("撤销到仓") }}</el-button>
<el-button plain type="primary" size="small" @click="order_warehouse_check_force(scope.row.orderId)" v-if="scope.row.installNum > scope.row.unloadNum">{{ $t("强制到仓") }}</el-button>
<el-button plain type="primary" size="small" @click="$router.push('/order/warehousingTo-update?id=' + scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("到仓修改") }}</el-button>
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -140,14 +145,14 @@ ...@@ -140,14 +145,14 @@
<el-row> <el-row>
<div class="label-font"> <div class="label-font">
<p> <p>
<span>{{$t('总计')}}:</span> <span>{{ $t("总计") }}:</span>
<span>{{getTotlContent(pageData.totalStatistics)}}</span> <span>{{ getTotlContent(pageData.totalStatistics) }}</span>
</p> </p>
</div> </div>
<div class="label-font"> <div class="label-font">
<p> <p>
<span>{{$t('已卸')}}:</span> <span>{{ $t("已卸") }}:</span>
<span>{{getUnLoadNumCount}}</span> <span>{{ getUnLoadNumCount }}</span>
</p> </p>
</div> </div>
</el-row> </el-row>
...@@ -155,23 +160,23 @@ ...@@ -155,23 +160,23 @@
<!-- 审核流程 --> <!-- 审核流程 -->
<el-row class="process-area"> <el-row class="process-area">
<div class="process"> <div class="process">
<div>{{$t('审批流程')}}</div> <div>{{ $t("审批流程") }}</div>
<work-flow xmlkey="unload_container" v-model="selectedUsers"></work-flow> <work-flow xmlkey="unload_container" v-model="selectedUsers"></work-flow>
</div> </div>
<!-- 操作 --> <!-- 操作 -->
<div v-if="!isUnderReview"> <div v-if="!isUnderReview">
<el-button type="success" :disabled="isSuccessReview" @click="onSubmit">{{$t('卸柜完成')}}</el-button> <el-button type="success" :disabled="isSuccessReview" @click="onSubmit">{{ $t("卸柜完成") }}</el-button>
<el-button plain type="primary" @click="$emit('closeStart')">{{$t('返回')}}</el-button> <el-button plain type="primary" @click="$emit('closeStart')">{{ $t("返回") }}</el-button>
</div> </div>
<div v-if="isUnderReview"> <div v-if="isUnderReview">
<el-button type="primary" @click="jumpReviewDetail">{{$t('卸柜审核中')}}</el-button> <el-button type="primary" @click="jumpReviewDetail">{{ $t("卸柜审核中") }}</el-button>
<el-button plain type="primary" @click="canclAudit">{{$t('取消审核')}}</el-button> <el-button plain type="primary" @click="canclAudit">{{ $t("取消审核") }}</el-button>
<el-button plain type="primary" @click="$emit('closeStart')">{{$t('返回')}}</el-button> <el-button plain type="primary" @click="$emit('closeStart')">{{ $t("返回") }}</el-button>
</div> </div>
</el-row> </el-row>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="dialogConfig.title" :visible.sync="dialogConfig.dialogVisible" :fullscreen="dialogConfig.fullscreen" :width="dialogConfig.width" :modal-append-to-body=false append-to-body> <el-dialog custom-class="shipping-dialog" :title="dialogConfig.title" :visible.sync="dialogConfig.dialogVisible" :fullscreen="dialogConfig.fullscreen" :width="dialogConfig.width" :modal-append-to-body="false" append-to-body>
<template v-if="dialogConfig.type === 'orderTable'"> <template v-if="dialogConfig.type === 'orderTable'">
<el-table :data="orderList" height="500px" border> <el-table :data="orderList" height="500px" border>
<el-table-column :label="$t('实装')" align="center" prop="loadTag" /> <el-table-column :label="$t('实装')" align="center" prop="loadTag" />
...@@ -180,35 +185,26 @@ ...@@ -180,35 +185,26 @@
</template> </template>
</el-dialog> </el-dialog>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="$t('异常')" :visible.sync="dialogVisible" width="600px" :modal-append-to-body=false append-to-body> <el-dialog custom-class="shipping-dialog" :title="$t('异常')" :visible.sync="dialogVisible" width="600px" :modal-append-to-body="false" append-to-body>
<unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" /> <unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" />
</el-dialog> </el-dialog>
<el-dialog :title="$t('批量卸柜选中订单')" :visible="batchUnloading" :before-close="handleCloseBatchUnloading" append-to-body> <el-dialog :title="$t('批量卸柜选中订单')" :visible="batchUnloading" :before-close="handleCloseBatchUnloading" append-to-body>
<template v-for="item in batchLogs"> <template v-for="item in batchLogs">
<div>{{item}}</div> <div>{{ item }}</div>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import unloadingError from "./unloadingError.vue"; import unloadingError from "./unloadingError.vue"
import { import { loadGoodsList, batchUnload, orderTagList, allUnload, approvalCreate, approvalCancel, getSectionList, singleUnload } from "@/api/ecw/boxSea"
loadGoodsList, import { serviceMsg, getTotlContent, toReviewDetail } from "../../utils"
batchUnload, import WorkFlow from "@/components/WorkFlow"
orderTagList, import Decimal from "decimal.js"
allUnload, import { getWarehouseList } from "@/api/ecw/warehouse"
approvalCreate, import Template from "@/views/cms/template/index.vue"
approvalCancel, import { order_warehouse_check_revoke, order_warehouse_check_force } from "@/api/ecw/order"
getSectionList,
singleUnload,
} from "@/api/ecw/boxSea";
import { serviceMsg, getTotlContent, toReviewDetail } from "../../utils";
import WorkFlow from "@/components/WorkFlow";
import Decimal from "decimal.js";
import { getWarehouseList } from '@/api/ecw/warehouse'
import Template from '@/views/cms/template/index.vue'
/** /**
* 开始卸柜 * 开始卸柜
*/ */
...@@ -244,22 +240,22 @@ export default { ...@@ -244,22 +240,22 @@ export default {
dialogVisible: false, dialogVisible: false,
width: "30%", width: "30%",
type: "", type: "",
fullscreen: false, fullscreen: false
}, },
// 部分订单商品 // 部分订单商品
sectionObj: { sectionObj: {
secStatistics: {}, secStatistics: {},
sectionOrderList: [], sectionOrderList: [],
totalStatistics: {}, totalStatistics: {}
}, },
selectedUsers: [], selectedUsers: [],
ulWarehouseTime: null, ulWarehouseTime: null,
warehouseList:[], warehouseList: [],
// 筛选参数 // 筛选参数
queryParams:{ queryParams: {
orderNo: '', orderNo: "",
startWarehouseIds:[], startWarehouseIds: [],
destWarehouseIds:[], destWarehouseIds: [],
status: null status: null
}, },
// 表格选中的 // 表格选中的
...@@ -267,62 +263,74 @@ export default { ...@@ -267,62 +263,74 @@ export default {
// 是否正在批量卸柜 // 是否正在批量卸柜
batchUnloading: false, batchUnloading: false,
// 批量操作的日志 // 批量操作的日志
batchLogs:[] batchLogs: []
}; }
}, },
created() { created() {
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then((res) => (this.warehouseList = res.data))
this.getLoadGoodsList(); this.getLoadGoodsList()
// 部分 // 部分
getSectionList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => { getSectionList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => {
this.sectionList = res.data.map((item, index) => { this.sectionList = res.data.map((item, index) => {
return { return {
...item, ...item,
title: this.$t("第{index}部分", { index: index + 1 }), title: this.$t("第{index}部分", { index: index + 1 })
}; }
}); })
}); })
}, },
methods: { methods: {
order_warehouse_check_revoke(orderId) {
this.$confirm(this.$t("确定要撤销到仓么?")).then(async () => {
let r = await order_warehouse_check_revoke({ orderId })
this.getLoadGoodsList()
})
},
order_warehouse_check_force(orderId) {
this.$confirm(this.$t("确定要强制到仓么?")).then(async () => {
let r = await order_warehouse_check_force({ orderId })
this.getLoadGoodsList()
})
},
getTotlContent, getTotlContent,
/* 获取卸柜数据 */ /* 获取卸柜数据 */
getLoadGoodsList() { getLoadGoodsList() {
this.loading = true; this.loading = true
let params = { let params = {
secId: this.sectionId, secId: this.sectionId,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id
}; }
loadGoodsList(params).then((res) => { loadGoodsList(params).then((res) => {
const { data } = res; const { data } = res
this.pageData = data; this.pageData = data
this.loading = false; this.loading = false
}); })
}, },
/* 单个卸柜 */ /* 单个卸柜 */
modifyUnload() { modifyUnload() {
if (!this.labelNo) { if (!this.labelNo) {
this.$message.error(this.$t("请输入箱号标签")); this.$message.error(this.$t("请输入箱号标签"))
return; return
} }
singleUnload({ singleUnload({
orderNumCode: this.labelNo, orderNumCode: this.labelNo,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.labelNo = ""; this.labelNo = ""
this.getLoadGoodsList(); this.getLoadGoodsList()
}); })
}); })
}, },
/* 批量输入 */ /* 批量输入 */
modifyBatchUnload() { modifyBatchUnload() {
if (!this.labelNo) { if (!this.labelNo) {
this.$message.error(this.$t("请输入订单号")); this.$message.error(this.$t("请输入订单号"))
return; return
} }
if (!this.ulWarehouseTime) { if (!this.ulWarehouseTime) {
this.$message.error(this.$t("请选择卸柜时间")); this.$message.error(this.$t("请选择卸柜时间"))
return; return
} }
batchUnload({ batchUnload({
orderNo: this.labelNo, orderNo: this.labelNo,
...@@ -330,28 +338,28 @@ export default { ...@@ -330,28 +338,28 @@ export default {
unloadTime: this.ulWarehouseTime unloadTime: this.ulWarehouseTime
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.labelNo = ""; this.labelNo = ""
this.getLoadGoodsList(); this.getLoadGoodsList()
}); })
}); })
}, },
/* 一键卸柜 */ /* 一键卸柜 */
modifyAllUnload() { modifyAllUnload() {
if (!this.ulWarehouseTime) { if (!this.ulWarehouseTime) {
this.$message.error(this.$t("请选择卸柜时间")); this.$message.error(this.$t("请选择卸柜时间"))
return; return
} }
this.$confirm(this.$t("确认卸柜?"), this.$t("提示"), { this.$confirm(this.$t("确认卸柜?"), this.$t("提示"), {
type: "warning", type: "warning"
}) })
.then((_) => { .then((_) => {
allUnload({ shipmentId: this.$attrs.shipmentObj.id, unloadTime: this.ulWarehouseTime }).then((res) => { allUnload({ shipmentId: this.$attrs.shipmentObj.id, unloadTime: this.ulWarehouseTime }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.getLoadGoodsList(); this.getLoadGoodsList()
});
});
}) })
.catch((_) => {}); })
})
.catch((_) => {})
}, },
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
...@@ -359,211 +367,211 @@ export default { ...@@ -359,211 +367,211 @@ export default {
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
approvalStatus: 0, approvalStatus: 0,
approvalType: 3, // 卸柜 approvalType: 3, // 卸柜
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel(); this.cancel()
}); })
}); })
}, },
/** 表格订单号点击 */ /** 表格订单号点击 */
orderClick(row) { orderClick(row) {
orderTagList({ orderId: row.orderId }).then((res) => { orderTagList({ orderId: row.orderId }).then((res) => {
const { data = {} } = res; const { data = {} } = res
this.orderList = []; this.orderList = []
// 取最长的list // 取最长的list
let dataLength = data.loadList.length; let dataLength = data.loadList.length
if (data.unLoadList.length > dataLength) { if (data.unLoadList.length > dataLength) {
dataLength = data.unLoadList.length; dataLength = data.unLoadList.length
} }
// 组装数据,用一个table组件渲染 // 组装数据,用一个table组件渲染
for (let index = 0; index < dataLength; index++) { for (let index = 0; index < dataLength; index++) {
this.orderList.push({ this.orderList.push({
loadTag: data.loadList[index], loadTag: data.loadList[index],
unloadTag: data.unloadCabinetList[index], unloadTag: data.unloadCabinetList[index]
}); })
} }
}); })
this.shwoDialog({ this.shwoDialog({
type: "orderTable", type: "orderTable",
title: row.selfNo, title: row.selfNo
}); })
}, },
/** 取消 */ /** 取消 */
cancel() { cancel() {
this.$emit("closeStart", "submit"); this.$emit("closeStart", "submit")
}, },
/** 弹窗事件 */ /** 弹窗事件 */
shwoDialog(config) { shwoDialog(config) {
this.$set(this.dialogConfig, "title", config.title); this.$set(this.dialogConfig, "title", config.title)
this.$set(this.dialogConfig, "type", config.type); this.$set(this.dialogConfig, "type", config.type)
switch (config.type) { switch (config.type) {
case "orderTable": case "orderTable":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false)
break; break
case "supplementOrder": case "supplementOrder":
this.$set(this.dialogConfig, "fullscreen", true); this.$set(this.dialogConfig, "fullscreen", true)
break; break
case "batchInput": case "batchInput":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false)
this.batchObj = { boxNum: 0 }; this.batchObj = { boxNum: 0 }
this.boxOrderInfo = {}; this.boxOrderInfo = {}
break; break
case "correction": case "correction":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false)
this.correctionObj = {}; this.correctionObj = {}
break; break
case "correctionOrder": case "correctionOrder":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false)
this.orderObj = {}; this.orderObj = {}
break; break
case "modifyCabinet": case "modifyCabinet":
this.$set(this.dialogConfig, "fullscreen", false); this.$set(this.dialogConfig, "fullscreen", false)
this.modifyCabinetObj = {}; this.modifyCabinetObj = {}
this.$set(this.modifyCabinetObj,'cabinetId',this.shipmentObj.cabinetId) this.$set(this.modifyCabinetObj, "cabinetId", this.shipmentObj.cabinetId)
this.$set(this.modifyCabinetObj,'cubNo',this.shipmentObj.cubNo) this.$set(this.modifyCabinetObj, "cubNo", this.shipmentObj.cubNo)
break; break
case "splitOrder": case "splitOrder":
this.$set(this.dialogConfig, "fullscreen", true); this.$set(this.dialogConfig, "fullscreen", true)
break; break
} }
this.$set(this.dialogConfig, "dialogVisible", true); this.$set(this.dialogConfig, "dialogVisible", true)
}, },
/* 关闭弹窗 */ /* 关闭弹窗 */
closeDialog(type) { closeDialog(type) {
this.dialogVisible = false; this.dialogVisible = false
if (type === "query") this.getLoadGoodsList(); if (type === "query") this.getLoadGoodsList()
}, },
/* 打开异常 */ /* 打开异常 */
openError(row) { openError(row) {
this.currRow = row; this.currRow = row
this.dialogVisible = true; this.dialogVisible = true
}, },
/* 清关状态 */ /* 清关状态 */
clearStatus(row) { clearStatus(row) {
const { installNum, unloadNum } = row; const { installNum, unloadNum } = row
if (installNum === unloadNum) { if (installNum === unloadNum) {
return this.$t("全部清关"); return this.$t("全部清关")
} }
if (installNum >= unloadNum) { if (installNum >= unloadNum) {
return this.$t("部分清关"); return this.$t("部分清关")
} }
if (unloadNum === 0) { if (unloadNum === 0) {
return this.$t("未清关"); return this.$t("未清关")
} }
}, },
// 部分切换 // 部分切换
sectionChange() { sectionChange() {
this.getLoadGoodsList(); this.getLoadGoodsList()
}, },
/* 取消审核 */ /* 取消审核 */
canclAudit() { canclAudit() {
const { shipmentObj } = this.$attrs; const { shipmentObj } = this.$attrs
approvalCancel({ approvalCancel({
applyReason: this.$t("取消审核"), applyReason: this.$t("取消审核"),
id: shipmentObj["cabinetUnloadApprovalInfo"].id, id: shipmentObj["cabinetUnloadApprovalInfo"].id,
shipmentId: shipmentObj.id, shipmentId: shipmentObj.id
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel(); this.cancel()
}); })
}); })
}, },
// 获取异常类型 // 获取异常类型
getUnloadError(exceptionList) { getUnloadError(exceptionList) {
if (!exceptionList) return exceptionList; if (!exceptionList) return exceptionList
const codes = this.getDictDatas(this.DICT_TYPE.ORDER_ERROR_TYPE); const codes = this.getDictDatas(this.DICT_TYPE.ORDER_ERROR_TYPE)
let errorLabels = []; let errorLabels = []
exceptionList.forEach((item) => { exceptionList.forEach((item) => {
const errObj = codes.find( const errObj = codes.find((cItem) => cItem.value === item.orderExceptionType)
(cItem) => cItem.value === item.orderExceptionType if (errObj) errorLabels.push(errObj.label)
); })
if (errObj) errorLabels.push(errObj.label); return errorLabels.join(",")
});
return errorLabels.join(",");
}, },
// 订单异常 // 订单异常
getOrderError(row, type) { getOrderError(row, type) {
if (row.exceptionList && row.exceptionList.length) { if (row.exceptionList && row.exceptionList.length) {
return type === "orderStatus" ? this.$t("卸柜异常") : this.$t("待处理"); return type === "orderStatus" ? this.$t("卸柜异常") : this.$t("待处理")
} }
return type === "orderStatus" ? this.$t("已到港") : ""; return type === "orderStatus" ? this.$t("已到港") : ""
}, },
// 处理异常 // 处理异常
handleError(row) { handleError(row) {
this.$emit("closeStart", "close"); this.$emit("closeStart", "close")
this.$router.push({ this.$router.push({
path: `/order/pending?id=${row.orderId}`, path: `/order/pending?id=${row.orderId}`
}); })
}, },
jumpReviewDetail() { jumpReviewDetail() {
const { cabinetUnloadApprovalInfo } = this.$attrs.shipmentObj; const { cabinetUnloadApprovalInfo } = this.$attrs.shipmentObj
toReviewDetail.apply(this, [cabinetUnloadApprovalInfo.bpmProcessId]); toReviewDetail.apply(this, [cabinetUnloadApprovalInfo.bpmProcessId])
this.$emit("closeStart", "close"); this.$emit("closeStart", "close")
}, },
// 表格多选 // 表格多选
handleSelectionChange(selection) { handleSelectionChange(selection) {
console.log({selection}) console.log({ selection })
this.multipleSelection = selection this.multipleSelection = selection
}, },
async batchUnLoad(){ async batchUnLoad() {
if(!this.multipleSelection?.length){ if (!this.multipleSelection?.length) {
return this.$message(this.$t('请先选择订单')) return this.$message(this.$t("请先选择订单"))
} }
if(!this.ulWarehouseTime){ if (!this.ulWarehouseTime) {
return this.$message(this.$t('请选择卸柜时间')) return this.$message(this.$t("请选择卸柜时间"))
} }
console.log('批量卸柜') console.log("批量卸柜")
this.batchUnloading = true this.batchUnloading = true
this.batchLogs = [] this.batchLogs = []
for(const item of this.multipleSelection){ for (const item of this.multipleSelection) {
if(!this.batchUnloading)break; if (!this.batchUnloading) break
const time = new Date() const time = new Date()
const timeStr = [time.getHours(), time.getMinutes(), time.getSeconds()].map(item => item.toString().padStart(2, '0')).join(':') const timeStr = [time.getHours(), time.getMinutes(), time.getSeconds()].map((item) => item.toString().padStart(2, "0")).join(":")
await batchUnload({ await batchUnload({
orderNo: item.orderNo, orderNo: item.orderNo,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
unloadTime: this.ulWarehouseTime unloadTime: this.ulWarehouseTime
}).then((res) => { })
.then((res) => {
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜成功`) this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜成功`)
}).catch((err) => { })
.catch((err) => {
this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜失败` + JSON.stringify(err)) this.batchLogs.push(`${timeStr} 订单号:${item.orderNo}卸柜失败` + JSON.stringify(err))
}); })
} }
this.batchLogs.push("批量卸柜完成") this.batchLogs.push("批量卸柜完成")
this.getLoadGoodsList(); this.getLoadGoodsList()
}, },
handleCloseBatchUnloading(){ handleCloseBatchUnloading() {
this.batchUnloading = false this.batchUnloading = false
}, },
// 过滤订单状态筛选字典内容 // 过滤订单状态筛选字典内容
statusDictFilter(item){ statusDictFilter(item) {
if(item.cssClass && item.cssClass != 'sea'){ if (item.cssClass && item.cssClass != "sea") {
return false return false
} }
return true return true
}, }
}, },
computed: { computed: {
exportWarehouseList(){ exportWarehouseList() {
/* tradeType 1 进口,2出口,3进出口 */ /* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 2 || item.tradeType == 3)
}, },
importWarehouseList(){ importWarehouseList() {
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 1 || item.tradeType == 3)
}, },
filteredOrderList(){ filteredOrderList() {
if(!this.pageData?.sectionOrderList?.length) return [] if (!this.pageData?.sectionOrderList?.length) return []
return this.pageData.sectionOrderList.filter((item) => { return this.pageData.sectionOrderList.filter((item) => {
if(this.queryParams.orderNo && item.orderNo.indexOf(this.queryParams.orderNo) == -1 )return false if (this.queryParams.orderNo && item.orderNo.indexOf(this.queryParams.orderNo) == -1) return false
if(this.queryParams.startWarehouseIds?.length && this.queryParams.startWarehouseIds.indexOf(item.startWarehouseName) === -1){ if (this.queryParams.startWarehouseIds?.length && this.queryParams.startWarehouseIds.indexOf(item.startWarehouseName) === -1) {
return false return false
} }
if(this.queryParams.destWarehouseIds?.length && this.queryParams.destWarehouseIds.indexOf(item.destWarehouseName) === -1){ if (this.queryParams.destWarehouseIds?.length && this.queryParams.destWarehouseIds.indexOf(item.destWarehouseName) === -1) {
return false return false
} }
if(this.queryParams.status && this.queryParams.status != item.status){ if (this.queryParams.status && this.queryParams.status != item.status) {
return false return false
} }
return true return true
...@@ -571,38 +579,47 @@ export default { ...@@ -571,38 +579,47 @@ export default {
}, },
/* 是否审核中 */ /* 是否审核中 */
isUnderReview() { isUnderReview() {
const { currNode, shipmentObj } = this.$attrs; const { currNode, shipmentObj } = this.$attrs
return shipmentObj[currNode.keyName] === 183 ? true : false; return shipmentObj[currNode.keyName] === 183 ? true : false
}, },
/* 是否卸柜审核成功 */ /* 是否卸柜审核成功 */
isSuccessReview() { isSuccessReview() {
const { currNode, shipmentObj } = this.$attrs; const { currNode, shipmentObj } = this.$attrs
return shipmentObj[currNode.keyName] === 185 ? true : false; return shipmentObj[currNode.keyName] === 185 ? true : false
}, },
// 部分信息 // 部分信息
getSectionInfo() { getSectionInfo() {
const { totalStatistics, secStatistics } = this.pageData; const { totalStatistics, secStatistics } = this.pageData
if (!this.sectionId) { if (!this.sectionId) {
return getTotlContent(totalStatistics); return getTotlContent(totalStatistics)
} else { } else {
return getTotlContent(secStatistics); return getTotlContent(secStatistics)
} }
}, },
/* 已卸总数 */ /* 已卸总数 */
getUnLoadNumCount() { getUnLoadNumCount() {
let count = 0; let count = 0
if (this.pageData.sectionOrderList) { if (this.pageData.sectionOrderList) {
this.pageData.sectionOrderList.forEach((item) => { this.pageData.sectionOrderList.forEach((item) => {
count = Decimal.add(count, item.unloadNum).toNumber(); count = Decimal.add(count, item.unloadNum).toNumber()
}); })
} }
return count; return count
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.btns {
& > * {
&:nth-child(n + 1) {
margin: 0 auto;
margin-top: 6px;
display: block;
}
}
}
.app-startUnloading { .app-startUnloading {
p { p {
margin: 0; margin: 0;
......
...@@ -386,7 +386,7 @@ export default { ...@@ -386,7 +386,7 @@ export default {
console.log(r) console.log(r)
this.form.customerId = this.customerId this.form.customerId = this.customerId
this.form.number = r.data.number this.form.number = r.data.number
this.form.nubmerId = r.data.nubmerId this.form.numberId = r.data.numberId
this.form.numberVersion = r.data.numberVersion this.form.numberVersion = r.data.numberVersion
this.form.status = 0 this.form.status = 0
this.init() this.init()
...@@ -407,7 +407,7 @@ export default { ...@@ -407,7 +407,7 @@ export default {
followTime: row.nextTime, followTime: row.nextTime,
nextTime: "", nextTime: "",
number: r.data.number, number: r.data.number,
nubmerId: r.data.nubmerId, numberId: r.data.numberId,
numberVersion: r.data.numberVersion, numberVersion: r.data.numberVersion,
nextPlan: "", nextPlan: "",
status: 0 status: 0
......
...@@ -411,8 +411,9 @@ ...@@ -411,8 +411,9 @@
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('竞争对手')" prop="competitor"> <el-form-item :label="$t('竞争对手')" prop="competitor">
<el-select clearable v-model="form.competitor" :placeholder="$t('请选择')" class="w-200"> <el-select clearable v-model="form.competitor" :placeholder="$t('请选择')" class="w-200" @change="changeCompetitor">
<el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.id" />
<el-option :label="$t('其他')" :value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('重要程度')" prop="importance"> <el-form-item :label="$t('重要程度')" prop="importance">
...@@ -563,7 +564,7 @@ import { getCustomerContactsSelect } from "@/api/ecw/customerContacts" ...@@ -563,7 +564,7 @@ import { getCustomerContactsSelect } from "@/api/ecw/customerContacts"
import Decimal from "decimal.js" import Decimal from "decimal.js"
import getQuote from "@/views/ecw/customer/index.vue" import getQuote from "@/views/ecw/customer/index.vue"
import { getRegionList } from "@/api/ecw/order" import { getRegionList } from "@/api/ecw/order"
import { competitorListAll } from "@/api/ecw/customer" import { competitorListAll, addCompetitor } from "@/api/ecw/customer"
import { getCustomerContactsListByCustomer } from "@/api/ecw/customerContacts" import { getCustomerContactsListByCustomer } from "@/api/ecw/customerContacts"
import { parse } from "querystring" import { parse } from "querystring"
...@@ -1435,6 +1436,27 @@ export default { ...@@ -1435,6 +1436,27 @@ export default {
arr.push(tmp) arr.push(tmp)
}) })
return arr return arr
},
changeCompetitor(val) {
if (val == 0) {
this.$prompt("请输入主要竞争对手", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消"
}).then((data) => {
console.log(data)
addCompetitor({
name: data.value
}).then((r) => {
this.$message.success("添加成功!")
competitorListAll().then((res) => {
this.competitorList = res.data
this.$nextTick(() => {
this.form.competitor = r.data
})
})
})
})
}
} }
} }
} }
......
<template>
<div style="display: inline-block; margin-right: 10px">
<el-button size="mini" @click="visible = true" type="text">{{ title }}</el-button>
<el-dialog :title="title + ' - ' + warehousing.orderNo" :visible.sync="visible" width="100%">
<el-tabs v-model="activeName" type="card">
<el-tab-pane :label="edit ? $t('货物修改') : $t('货物入仓')" name="first">
<el-form ref="form" :model="form" :rules="formRules" label-width="80px">
<el-descriptions border :column="2">
<el-descriptions-item>
<template slot="label"><span style="color: red">*</span>{{ $t("中文品名") }}</template>
<span style="min-width: 200px; margin-right: 15px; display: inline-block">
<product-selector v-if="(!order.parentOrderId && !isAdd) || order.splitSeparateOrder" v-model="form.prodId" @change="onProductChange" determined protect-once />
<span v-else>{{ warehousing.prodTitleZh }}</span>
</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"><span style="color: red">*</span>{{ $t("英文品名") }}</template>
<product-selector v-if="(!order.parentOrderId && !isAdd) || order.splitSeparateOrder" lang="En" v-model="form.prodId" @change="onProductChange" determined protect-once />
<span v-else>{{ warehousing.prodTitleEn }}</span>
</el-descriptions-item>
<el-descriptions-item :label="$t('品牌')">
<template slot="label"><span style="color: red">*</span>{{ $t("品牌") }}</template>
<el-form-item required label="" prop="brand" label-width="0">
<el-select v-model="form.brand" :placeholder="$t('可修改')" filterable remote @change="handleBrandChange" :remote-method="getProductBrandPage" clearable>
<el-option v-for="item in brandList" :key="item.id" :label="item.titleZh" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('是否备案')">
<template slot="label"><span style="color: red">*</span>{{ $t("是否备案") }}</template>
{{ isBeian }}
</el-descriptions-item>
<el-descriptions-item :label="$t('收费模式')">
<template slot="label"><span style="color: red">*</span>{{ $t("收费模式") }}</template>
{{ feeType }}
</el-descriptions-item>
<el-descriptions-item :label="$t('入库参数')">
{{ $t("箱数") }}:{{ warehousing.warehouseCheckInfoVO.cartonsNum }}<br />
{{ $t("体积") }}:{{ warehousing.warehouseCheckInfoVO.volume }}m³<br />
{{ $t("重量") }}:{{ warehousing.warehouseCheckInfoVO.weight }}Kg
</el-descriptions-item>
</el-descriptions>
<el-row>
<el-col :span="8">
<el-form-item :label="$t('材质')" style="margin-top: 20px">
<dict-selector :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="form.checkMaterial" clearable></dict-selector>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :label="$t('到仓特性')" style="margin-top: 20px">
<el-checkbox-group v-model="form.warehouseCheckProdAttrIds">
<el-checkbox v-for="item in attrList" :key="item.id" :label="item.id">{{ item.attrName }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :label="$t('用途')">
<el-checkbox-group v-model="form.usageIds">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value">{{ $l(item, "label") }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>{{ $t("到仓记录") }}</span>
</div>
<el-form ref="tableForm" :rules="tableFormRules" :model="form" size="mini">
<el-table :data="form.table" style="width: 100%">
<el-table-column :label="$t('箱数')" width="150px">
<template v-slot:header> <span style="color: red">*</span>{{ $t("箱数") }}</template>
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.cartonsNum">
<el-input v-model="form.table[$index].cartonsNum" placeholder="" @blur="handleVolume($index)" :disabled="$index < protectRowCount">
<span slot="append">{{ getDictDataLabel(DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE, form.table[$index].specificationType) }}</span>
</el-input>
<dict-selector :disabled="$index < protectRowCount" :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" v-model="form.table[$index].specificationType" @change="handleVolume($index)"></dict-selector>
</el-form-item>
</template>
</el-table-column>
<el-table-column :label="$t('包装类型')" width="100px">
<template v-slot:header> <span style="color: red">*</span>{{ $t("包装类型") }}</template>
<template v-slot="{ r, c, $index }">
<el-form-item>
<dict-selector :disabled="$index < protectRowCount" :type="DICT_TYPE.ECW_PACKAGING_TYPE" v-model="form.table[$index].unit"></dict-selector>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="长(cm)">
<template v-slot:header>
<span>{{ $t("") }}</span
>(cm)
</template>
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.boxGauge1">
<el-input :disabled="$index < protectRowCount" type="number" v-model="form.table[$index].boxGauge1" placeholder="" @blur="handleVolume($index)"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="宽(cm)">
<template v-slot:header>
<span>{{ $t("") }}</span
>(cm)
</template>
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.boxGauge2">
<el-input :disabled="$index < protectRowCount" type="number" v-model="form.table[$index].boxGauge2" placeholder="" @blur="handleVolume($index)"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="高(cm)">
<template v-slot:header>
<span>{{ $t("") }}</span
>(cm)
</template>
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.boxGauge3">
<el-input :disabled="$index < protectRowCount" type="number" v-model="form.table[$index].boxGauge3" placeholder="" @blur="handleVolume($index)"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="体积(m³)">
<template v-slot:header>
<span style="color: red">*</span> <span>{{ $t("体积") }}</span
>(m³)
</template>
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.volume">
<el-input :disabled="$index < protectRowCount" v-model="form.table[$index].volume" placeholder="" type="number"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="重量(Kg)">
<template v-slot:header>
<span style="color: red">*</span> <span>{{ $t("重量") }}</span
>(Kg)
</template>
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.weight">
<el-input :disabled="$index < protectRowCount" v-model="form.table[$index].weight" placeholder="" type="number"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column :label="$t('数量')" width="140px">
<template v-slot="{ r, c, $index }">
<el-form-item :rules="tableFormRules.quantityAll">
<el-input :disabled="$index < protectRowCount" v-model.number="form.table[$index].quantityAll" placeholder="" type="number">
<template slot="append">{{ $t("") }}</template>
</el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column :label="$t('快递单号')">
<template v-slot="{ r, c, $index }">
<el-form-item>
<el-input :disabled="$index < protectRowCount" v-model="form.table[$index].expressNo" placeholder=""></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column :label="$t('储位')" prop="orderLocationBackVOList" width="150px">
<template v-slot="{ row, column, $index }">
<warehouse-area-select v-if="visible" v-model="form.table[$index].orderLocationBackVOList" :order-id="orderId" :order-item-id="warehousing.orderItemId" :warehouse-in-id="form.table[$index].id" :warehouse-id="warehouseId" :is-editing="false" readonly></warehouse-area-select>
</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template v-slot="{ r, c, $index }">
<el-form-item>
<el-input v-model="form.table[$index].remark" type="textarea" show-word-limit maxlength="100" placeholder="" :disabled="$index < protectRowCount"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot="{ row, column, $index }">
<WarehouseRecordDetail v-model="form.table[$index].orderWarehouseInDetailsVOList" :readonly="true" />
</template>
</el-table-column>
</el-table>
</el-form>
</el-card>
<el-card style="margin-top: 15px">
<div slot="header" class="clearfix">
<span style="font-size: 18px"><span style="color: red">*</span>{{ $t("到仓影像") }}</span>
</div>
<div>
<image-and-video-upload :fileSize="50" :isShowTip="true" v-model="form.pictureUrls" :id="orderItemId" :type="5" @delete="handleImageDelete"></image-and-video-upload>
</div>
</el-card>
</el-tab-pane>
</el-tabs>
<div v-if="edit && order.status !== 3">
<h2>{{ $t("审批流程") }}</h2>
<work-flow xmlkey="free_apply" v-model="selectedUsers" />
<!-- <div>选择的用户:{{selectedUsers}}</div>-->
</div>
<span slot="footer">
<template v-if="!isEditing">
<el-button @click="handleClose">{{ $t("关 闭") }}</el-button>
<el-button type="primary" :loading="submitting" @click="handleSubmit()">{{ edit ? $t("确认修改") : $t("提 交") }}</el-button>
</template>
<template v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + formId)">{{ $t("审核中") }}</el-button>
<el-button type="primary" @click="handleCancelProcessInstance">{{ $t("取消审核") }}</el-button>
<el-button @click="handleClose">{{ $t("返回") }}</el-button>
</template>
<template v-else> </template>
</span>
</el-dialog>
</div>
</template>
<script>
import ProductSelector from "@/components/ProductSelector"
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import { getFeeTypeByOrderProduct, getProductBrankPage } from "@/api/ecw/productBrank"
import { cancelProcessInstance } from "@/api/bpm/processInstance"
import WorkFlow from "@/components/WorkFlow"
import { DICT_TYPE, getDictDataLabel, getDictDatas } from "@/utils/dict"
import { orderWarehouseIn, orderWarehouseInUpdateApply, warehousePictureDelete, warehousePictureList } from "@/api/ecw/order"
import { getProductAttrList } from "@/api/ecw/productAttr"
import { getProductTypeList } from "@/api/ecw/productType"
import { addProduct } from "@/api/ecw/product"
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue"
import WarehouseRecordDetail from "@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue"
export default {
name: "Warehouse",
components: {
WarehouseRecordDetail,
ImageAndVideoUpload,
ProductSelector,
WarehouseAreaSelect,
WorkFlow
},
props: {
title: {
type: String,
default: undefined
},
order: {
type: Object,
default: undefined
},
isJiyun: {
type: Boolean,
default: false
},
// 入仓修改
edit: {
type: Boolean,
default: false
},
orderItemA: {
type: Object,
default: () => {
return {
material: undefined,
inTime: undefined,
orderWarehouseInBackItemDoList: []
}
}
},
orderItemB: {
type: Object,
default: () => {
return {
material: undefined,
inTime: undefined,
orderWarehouseInBackItemDoList: []
}
}
}
},
mounted() {
this.getAttrList()
this.getTypeList()
},
computed: {
isAdd() {
return this.$route.path === "/order/warehousing-add"
},
warehousing() {
return { ...this.orderItemA, ...this.orderItemB }
},
orderId() {
return this.order.orderId
},
orderItemId() {
return this.warehousing.orderItemId
},
brandObject() {
return this.brandList.find((e) => e.id === this.form.brand) || ""
},
brandObject1() {
return this.brandList.find((e) => e.id === this.form1.brand) || ""
},
isBeian() {
if (this.form.recordMode !== undefined) {
return [this.$t("无备案"), this.$t("有备案"), this.$t("中性")][this.form.recordMode]
}
if (this.brandObject.filing) {
return [this.$t("无备案"), this.$t("有备案"), this.$t("中性")][this.brandObject.filing]
} else {
return ""
}
},
isBeian1() {
if (this.form1.recordMode !== undefined) {
return [this.$t("无备案"), this.$t("有备案"), this.$t("中性")][this.form1.recordMode]
}
if (this.brandObject1.filing) {
return [this.$t("无备案"), this.$t("有备案"), this.$t("中性")][this.brandObject1.filing]
} else {
return ""
}
},
/**
* 收费模式
* @returns {string} 无牌价0,有牌价1,中性品牌价2
*/
feeType() {
const feeType = this.form.feeType
if (feeType >= 0 && feeType < 3) {
return [this.$t("无牌价"), this.$t("有牌价"), this.$t("中性品牌价")][feeType]
}
return ""
},
feeType1() {
const feeType = parseInt(this.form1.feeType)
if (feeType >= 0 && feeType < 3) {
return [this.$t("无牌价"), this.$t("有牌价"), this.$t("中性品牌价")][feeType]
}
return ""
},
warehouseId() {
return this.order.adjustToDestWarehouseId || this.order?.logisticsInfoDto?.startWarehouseId
}
},
watch: {
visible(val) {
if (val) {
this.init()
this.getProductBrandPage(this.warehousing.brandName)
this.getProductBrandPage1()
this.handleBrandChange(parseInt(this.form.brand))
} else {
this.$emit("close")
}
}
},
data() {
return {
DICT_TYPE,
getDictDataLabel,
getDictDatas,
activeName: "first",
visible: false,
submitting: false,
form: {
table: [],
brandType: undefined,
orderId: undefined,
orderNo: undefined,
brand: undefined,
inTime: undefined,
material: undefined,
orderItemId: undefined,
warehouseCheckProdAttrIds: [],
prodId: undefined,
prodTitleEn: undefined,
prodTitleZh: undefined,
prodType: undefined,
type: undefined,
feeType: undefined,
recordMode: undefined,
pictureUrls: [],
usageIds: []
},
form1: {
table: [],
brandType: undefined,
orderId: undefined,
orderNo: undefined,
brand: undefined,
inTime: undefined,
material: undefined,
orderItemId: undefined,
warehouseCheckProdAttrIds: [],
prodId: undefined,
prodTitleEn: undefined,
prodTitleZh: undefined,
prodType: undefined,
type: 1,
feeType: undefined,
recordMode: undefined,
pictureUrls: [],
usageIds: []
},
brandList: [],
brandList1: [],
formRules: {
prodId: [{ required: true, message: this.$t("请选择品名"), trigger: "change" }],
brand: [{ required: true, message: this.$t("请选择品牌"), trigger: "change" }]
},
tableFormRules: {
// cartonsNum: [{required: true, message: this.$t("箱数不能为空"), trigger: "change"}],
// boxGauge1: [{required: true, message: this.$t("货物长不能为空"), trigger: "change"}],
// boxGauge2: [{required: true, message: this.$t("货物宽不能为空"), trigger: "change"}],
// boxGauge3: [{required: true, message: this.$t("货物高不能为空"), trigger: "change"}],
// volume: [{required: true, message: this.$t("体积不能为空"), trigger: "change"}],
// weight: [{required: true, message: this.$t("重量不能为空"), trigger: "change"}],
// // quantityAll: [{required: true, message: this.$t("数量不能为空"), trigger: "change"}]
},
selectedUsers: undefined,
// 入仓修改正在审核中
isEditing: false,
// 审批业务id
formId: "",
// 追加时被保护的行数
protectRowCount: -1,
productForm: {
typeId: undefined,
attrArray: [],
titleZh: undefined,
titleEn: undefined
},
productRules: {
typeId: [{ required: true, message: this.$t("商品类型不能为空"), trigger: "change" }],
// attrArray: [{ required: true, message: this.$t("商品特性不能为空"), trigger: "change" }],
titleZh: [{ required: true, message: this.$t("中文标题不能为空"), trigger: "blur" }],
titleEn: [{ required: true, message: this.$t("英文标题不能为空"), trigger: "blur" }]
},
//类型列表
typeList: [],
// 特性列表
attrList: []
}
},
methods: {
init() {
this.form.brandType = this.warehousing.brandType
this.form.orderId = this.warehousing.orderId
this.form.orderItemId = this.warehousing.orderNo
this.form.orderNo = this.warehousing.orderNo
this.form.brand = this.warehousing.brand
this.form.brandType = this.warehousing.brandType
this.form.inTime = this.warehousing.inTime
this.form.material = this.warehousing.material
this.form.orderId = this.warehousing.orderId
this.form.orderItemId = this.warehousing.orderItemId
this.form.orderNo = this.warehousing.orderNo
if ((this.edit || this.isAdd) && this.warehousing.warehouseCheckProdAttrIds !== null) {
this.form.warehouseCheckProdAttrIds = this.warehousing.warehouseCheckProdAttrIds?.split(",").map((e) => +e) || []
} else {
this.form.warehouseCheckProdAttrIds = this.warehousing.warehouseCheckProdAttrIds?.split(",").map((e) => +e) || this.warehousing.prodAttrIds?.split(",").map((e) => +e) || []
}
this.form.prodId = this.warehousing.prodId
this.form.prodTitleEn = this.warehousing.prodTitleEn
this.form.prodTitleZh = this.warehousing.prodTitleZh
this.form.prodType = this.warehousing.prodType
this.form.type = this.warehousing.type
this.form.feeType = this.warehousing.feeType
this.form.pictureUrls = this.warehousing.pictureUrls
this.form.usageIds = this.warehousing.usageIds ? this.warehousing.usageIds.split(",") : []
if (this.form.usageIds.length > 0 && this.form.usageIds[0] === "") {
this.usageIds.splice(0, 1)
}
this.warehousing.orderWarehouseInBackItemDoList.forEach((e) => {
let bg = {}
if (e.boxGauge) {
const boxGauge = e.boxGauge.split("*")
// e.boxGauge1 = boxGauge[0]
// e.boxGauge2 = boxGauge[1]
// e.boxGauge3 = boxGauge[2]
bg = {
boxGauge1: boxGauge[0],
boxGauge2: boxGauge[1],
boxGauge3: boxGauge[2]
}
}
this.form.table.push({ ...e, ...bg })
})
if (!this.edit) {
let protectRowCount = 0
this.protectRowCount = this.form.table.map((e) => {
if (e.id) {
protectRowCount++
}
})
this.protectRowCount = protectRowCount
this.handleAdd()
this.handleAdd(1)
}
},
handleImageDelete(url) {
warehousePictureList({
bizId: this.orderId,
type: 1
}).then((r) => {
console.log(r, url)
if (r.data?.length > 0) {
const id = r.data.find((e) => e?.url === url)?.id
if (id) {
warehousePictureDelete(id).then((r) => {
console.log(r)
})
}
}
})
},
handleClose() {
this.visible = false
},
handleVolume(index, val) {
setTimeout(() => {
const { boxGauge1, boxGauge2, boxGauge3, specificationType, cartonsNum } = (val === 1 ? this.form1.table : this.form.table)[index]
let result = ""
if (boxGauge1 && boxGauge2 && boxGauge3 && specificationType && cartonsNum) {
result = (((specificationType === 1 || specificationType === "1" ? cartonsNum : 1) * (boxGauge1 * boxGauge2 * boxGauge3)) / 1000000 + 0.000001)?.toFixed(2) || ""
} else {
result = ""
}
if (result === "0.00") result = "0.01"
;(val === 1 ? this.form1.table : this.form.table)[index].volume = result
}, 0)
},
handleSubmit() {
if (this.activeName !== "first") {
// 添加非填单货物
if (this.form1.warehouseCheckProdAttrIds.indexOf(4) !== -1) {
return this.$notify({
title: this.$t("提示"),
message: this.$t("订单包含不接受货物,请检查"),
type: "warning"
})
}
this.$refs["form1"].validate((valid) => {
this.$refs["tableForm1"].validate((valid1) => {
if (!valid || !valid1) {
return
}
this.submitting = true
return orderWarehouseIn({
...this.form1,
brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId,
orderItemId: undefined,
orderNo: this.warehousing.orderNo,
warehouseCheckProdAttrIds: this.form1.warehouseCheckProdAttrIds.join(","),
usageIds: this.form1.usageIds.join(","),
orderWarehouseInItemDoList: this.form1.table.map((e) => {
return {
...e,
boxGauge: e.boxGauge1 + "*" + e.boxGauge2 + "*" + e.boxGauge3,
orderLocationCreateReqVOList: e.orderLocationBackVOList
}
})
})
.then((r) => {
this.submitting = false
if (r.data) {
this.$message.success("新增入仓成功")
this.handleClose()
} else {
this.$message.success("新增入仓失败")
}
})
.catch(() => {
this.submitting = false
})
})
})
} else {
if (this.form.warehouseCheckProdAttrIds.indexOf(4) !== -1) {
return this.$notify({
title: this.$t("提示"),
message: this.$t("订单包含不接受货物,请检查"),
type: "warning"
})
}
this.$refs["form"].validate((valid) => {
this.$refs["tableForm"].validate((valid1) => {
if (!valid || !valid1) {
return
}
if (this.edit) {
// 入仓修改
this.submitting = true
return orderWarehouseInUpdateApply({
...this.form,
brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId,
orderItemId: this.warehousing.orderItemId,
orderNo: this.warehousing.orderNo,
num: this.warehousing.num,
volume: (+this.warehousing.volume)?.toFixed(2) || "",
weight: (+this.warehousing.weight)?.toFixed(2) || "",
prodId: this.form.prodId,
warehouseCheckProdAttrIds: this.form.warehouseCheckProdAttrIds.join(","),
usageIds: this.form.usageIds.join(","),
orderWarehouseInUpdateItemDoList: this.form.table.map((e) => {
return {
...e,
boxGauge: e.boxGauge1 + "*" + e.boxGauge2 + "*" + e.boxGauge3,
orderLocationCreateReqVOList: e.orderLocationBackVOList
}
}),
copyUserId: this.selectedUsers
})
.then((r) => {
this.submitting = false
if (r.data) {
this.$message.success(r.msg || "入仓修改发起成功")
this.handleClose()
} else {
this.$message.success(r.msg || "入仓修改发起失败")
}
})
.catch(() => {
this.submitting = false
})
} else {
// 首次入仓、入仓补充
this.submitting = true
return orderWarehouseIn({
...this.form,
brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId,
orderItemId: this.warehousing.orderItemId,
orderNo: this.warehousing.orderNo,
isAppend: this.isAdd ? true : undefined,
warehouseCheckProdAttrIds: this.form.warehouseCheckProdAttrIds.join(","),
usageIds: this.form.usageIds.join(","),
orderWarehouseInItemDoList: this.form.table.map((e) => {
return {
...e,
boxGauge: e.boxGauge1 + "*" + e.boxGauge2 + "*" + e.boxGauge3,
orderLocationCreateReqVOList: e.orderLocationBackVOList
}
})
})
.then((r) => {
this.submitting = false
if (r.data) {
this.$message.success("入仓成功")
this.handleClose()
} else {
this.$message.success("入仓失败")
}
})
.catch(() => {
this.submitting = false
})
}
})
})
}
},
handleCancelProcessInstance() {
this.$prompt("请输入取消原因?", this.$t("取消流程"), {
type: "warning",
confirmButtonText: this.$t("确定"),
cancelButtonText: this.$t("取消"),
inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格
inputErrorMessage: this.$t("取消原因不能为空")
}).then(({ value }) => {
cancelProcessInstance(this.formId, value).then(() => {
this.opened = false
this.$modal.msgSuccess("取消成功")
})
})
},
onProductChange(product) {
if (!product) {
return
}
this.form.prodTitleZh = product.titleZh
this.form.prodTitleEn = product.titleEn
this.handleBrandChange(parseInt(this.form.brand))
this.form.warehouseCheckProdAttrIds = product.attrId ? product.attrId.split(",").map((e) => +e) : []
},
onProductChange1(product) {
if (!product) {
return
}
this.form1.prodTitleZh = product.titleZh
this.form1.prodTitleEn = product.titleEn
this.handleBrandChange(parseInt(this.form1.brand))
this.form1.warehouseCheckProdAttrIds = product.attrId ? product.attrId.split(",").map((e) => +e) : []
},
getProductBrandPage(titleZh = undefined) {
getProductBrankPage({ pageSize: 20, titleZh }).then((r) => {
this.brandList = r.data.list
})
},
getProductBrandPage1(titleZh = undefined) {
getProductBrankPage({ pageSize: 20, titleZh }).then((r) => {
this.brandList1 = r.data.list
})
},
handleBrandChange(v) {
getFeeTypeByOrderProduct({
brandId: parseInt(v),
productId: this.warehousing.prodId,
orderId: this.orderId
}).then((r) => {
if (r.code === 0) {
;(this.activeName === "first" ? this.form : this.form1).feeType = parseInt(r.data.feeType)
;(this.activeName === "first" ? this.form : this.form1).recordMode = parseInt(r.data.recordMode)
}
})
},
handleDelete(val) {
if (val === 1) {
this.form1.table.pop()
} else if (this.form.table.length > this.protectRowCount) {
this.form.table.pop()
}
},
handleDeleteRow(index, val) {
if (val === 1) {
this.form1.table.splice(index, 1)
} else if (this.form.table.length > this.protectRowCount) {
this.form.table.splice(index, 1)
}
},
handleAdd(val = 0) {
let cartonsNum = ""
if (val !== 1) {
// 货物入仓
let hasCartonsNum = 0
this.form.table.forEach((e) => {
hasCartonsNum += e.cartonsNum
})
cartonsNum = this.warehousing.num - hasCartonsNum
}
const form = val === 1 ? this.form1 : this.form
const formLength = form.table.length
let orderLocationBackVOList = []
/* // 不默认使用上一条记录的储位 https://zentao.test.jdshangmen.com/bug-view-3344.html
if (formLength > 0) {
orderLocationBackVOList = JSON.parse(JSON.stringify(form.table[formLength - 1].orderLocationBackVOList))
}*/
form.table.push({
boxGauge1: this.isJiyun ? 0 : "",
boxGauge2: this.isJiyun ? 0 : "",
boxGauge3: this.isJiyun ? 0 : "",
cartonsNum: cartonsNum > 0 ? cartonsNum : "",
expressNo: "",
quantityAll: undefined,
unit: "1",
volume: "",
weight: "",
specificationType: "1",
table: [],
orderLocationBackVOList
})
},
/** 获取产品属性列表 */
getAttrList() {
getProductAttrList().then((response) => {
this.attrList = response.data
})
},
/** 获取产品类型列表 */
getTypeList() {
getProductTypeList().then((response) => {
this.typeList = response.data
})
}
}
}
</script>
<style scoped></style>
<template>
<div style="display: inline-block">
<template v-if="text">
<el-button size="mini" type="text" style="margin-right: 10px" @click="handleOpen">{{ num }}{{$t('混箱')}}})</el-button>
</template>
<template v-else>
<el-button size="mini" type="primary" style="margin-right: 10px" @click="handleOpen">{{ title }}</el-button>
</template>
<el-dialog
append-to-body
:title="title"
:visible.sync="dialogVisible"
width="1024px"
:before-close="handleClose">
<template v-slot:title>
<div class="flex flex-items-center">
<div class="title flex-1 flex flex-items-center">{{title}}</div>
<el-button v-if="showChooseOrderItem" type="primary" size="mini" @click="handleShowChooseDialog">{{$t('选择订单商品')}}</el-button>
<div style="width: 100px"><!--占位,防止被关闭按钮挡住--></div>
</div>
</template>
<el-form v-if="dialogVisible">
<WarehouseRecordDetailItem
v-for="(item, index) in dataList"
:key="index" v-model="dataList[index]"
:index="index" :attr-list="attrList"
@handle-delete="handleDelete(index)"
:readonly="readonly"
/>
</el-form>
<el-button v-show="!readonly" type="primary" size="mini" @click="handleAddItem">{{$t('添加一条明细')}}</el-button>
<span v-show="!readonly" slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{$t('取消')}}</el-button>
<el-button type="primary" @click="handleSave">{{$t('确定')}}</el-button>
</span>
</el-dialog>
<choose-order-products
v-if="showChooseDialog"
:order-id="orderId"
:warehouse-in-id="warehouseInId"
@close="showChooseDialog=false"
@success="handleChooseOrderProducts"></choose-order-products>
</div>
</template>
<script>
import ProductSelector from "@/components/ProductSelector/index.vue";
import WarehouseRecordDetailItem from "@/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue";
import {getProductAttrList} from "@/api/ecw/productAttr";
import {getOrderItemCommonAttr} from "@/api/ecw/order";
import ChooseOrderProducts from "@/views/ecw/order/stocking/components/ChooseOrderProducts.vue";
/**
* 入仓明细弹窗
*/
export default {
name: 'WarehouseRecordDetail',
components: {ChooseOrderProducts, WarehouseRecordDetailItem, ProductSelector},
props: {
value: {
type: Array,
default: () => []
},
readonly: {
type: Boolean,
default: false
},
text: {
type: Boolean,
default: false
},
num:{
type:Number,
default:0
},
// 是否显示添加订单商品按钮
showChooseOrderItem:Boolean,
orderId: Number,
warehouseInId: Number
},
data() {
return {
dialogVisible: false,
dataList: [],
// 特性列表
attrList: [],
showChooseDialog: false
};
},
watch:{
dialogVisible(v){
if(!v){
this.$emit("close")
}
}
},
mounted() {
this.getAttrList()
},
methods: {
init() {
if (!this.value || this.value.length === 0) {
this.dataList = [{
"boxGauge": "",
"brand": undefined,
"cartonsNum": undefined,
"createTime": "",
"expressNo": "",
"prodAttrIds": '',
"prodId": undefined,
"quantityAll": undefined,
"specificationType": undefined,
"unit": "",
"usageIds": "",
"volume": undefined,
"weight": undefined,
"material": undefined
}]
} else {
this.dataList = JSON.parse(JSON.stringify(this.value))
}
},
/** 获取产品属性列表 */
getAttrList() {
getProductAttrList().then(response => {
this.attrList = response.data;
})
},
handleAddItem() {
this.dataList.push({
"boxGauge": "",
"brand": undefined,
"cartonsNum": undefined,
"createTime": "",
"expressNo": "",
"prodAttrIds": '',
"prodId": undefined,
"quantityAll": undefined,
"specificationType": undefined,
"unit": "",
"usageIds": "",
"volume": undefined,
"weight": undefined,
"material": undefined
})
},
handleDelete(index) {
this.dataList.splice(index, 1)
},
handleOpen() {
this.init()
this.dialogVisible = true
},
handleClose(done) {
if (this.readonly) {
return done()
}
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
handleSave() {
for (let i = 0; i < this.dataList.length; i++) {
if (!this.dataList[i].prodId) {
return this.$notify({
title: this.$t("填写第{n}条明细的品名", {n: i=1}),
type: "warning"
})
}
if (!this.dataList[i].brand) {
return this.$notify({
title: this.$t("填写第{n}条明细的品牌", {n: i=1}),
type: "warning"
})
}
if(!this.dataList[i].quantityAll){
return this.$notify({
title: this.$t("填写第{n}条明细的数量", {n: i=1}),
type: "warning"
})
}
}
this.$emit('input', this.dataList)
this.dialogVisible = false
},
handleShowChooseDialog(){
this.showChooseDialog = true
},
handleChooseOrderProducts(data){
this.showChooseDialog = false
if(!data?.length) return
// 如果最后一条是空的,则删除先
if(this.dataList?.length){
const index = this.dataList.length - 1
let lastItem = this.dataList[index]
if(!lastItem.prodId && !lastItem.brand && !lastItem.prodAttrIds && !lastItem.material && !lastItem.quantityAll){
this.dataList.splice(index, 1)
}
}
data.forEach(item => {
this.dataList.push({
"boxGauge": "",
"brand": item.brand,
"cartonsNum": undefined,
"createTime": "",
"expressNo": "",
"prodAttrIds": item.prodAttrIds,
"prodId": item.prodId,
"quantityAll": item.quantityAll,
"specificationType": undefined,
"unit": "",
"usageIds": item.usageIds || "",
"volume": undefined,
"weight": undefined,
"material": item.material
})
})
}
},
computed: {
title() {
if (this.readonly) {
return this.$t('查看箱明细')
}
return !this.value || this.value.length === 0 ? this.$t('添加箱明细') : this.$t('编辑箱明细')
}
}
}
</script>
<style scoped lang="scss">
.title{
font-size: 16px;
}
</style>
<template>
<el-card style="margin-bottom: 10px">
<div slot="header">
<span>序号{{ index + 1 }}</span>
<el-link v-show="!readonly" type="danger" @click="handleDelete" style="float: right">删除</el-link>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item :label="$t('中文品名')" required>
<product-selector v-model="value.prodId" @change="onProductChange" determined :disabled="readonly" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('品牌')" required>
<el-select
v-model="value.brand"
:placeholder="$t('可修改')"
filterable
remote
:remote-method="getProductBrandPage"
:disabled="readonly"
clearable>
<el-option
v-for="item in brandList"
:key="item.id"
:label="item.titleZh"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
<el-form-item :label="$t('材质')">
<dict-selector :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="material" clearable :disabled="readonly"></dict-selector>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('商品特性')">
<el-checkbox-group v-model="prodAttrIds">
<el-checkbox v-for="item in attrList" :key="item.id" :label="item.id" :disabled="readonly">{{ item.attrName }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('用途')">
<el-checkbox-group v-model="usageIds">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value" :disabled="readonly">{{ $l(item, 'label') }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<!--<el-row :gutter="10">
<el-col :span="4">
<el-form-item :label="$t('长')">
<el-input v-model="boxGauge1" type="number" :disabled="readonly" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('宽')">
<el-input v-model="boxGauge2" type="number" :disabled="readonly" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('高')">
<el-input v-model="boxGauge3" type="number" :disabled="readonly" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('重量')">
<el-input v-model="value.weight" type="number" :disabled="readonly" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('体积')">
<el-input v-model="value.volume" type="number" :disabled="readonly" />
</el-form-item>
</el-col>
</el-row>-->
<el-row :gutter="10">
<!--<el-col :span="4">
<el-form-item :label="$t('快递单号')">
<el-input v-model="value.expressNo" :disabled="readonly" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('包装类型')">
<dict-selector :type="DICT_TYPE.ECW_PACKAGING_TYPE" v-model="value.unit" :disabled="readonly"></dict-selector>
</el-form-item>
</el-col>-->
<el-col :span="4">
<el-form-item :label="$t('数量')" required>
<el-input v-model="value.quantityAll" type="number" :disabled="readonly" />
</el-form-item>
</el-col>
</el-row>
</el-card>
</template>
<script>
import ProductSelector from "@/components/ProductSelector/index.vue"
import { getProductBrank, getProductBrankPage } from '@/api/ecw/productBrank'
import {getProductAttrList} from "@/api/ecw/productAttr"
import {DICT_TYPE, getDictDatas} from '@/utils/dict'
export default {
name: "WarehouseRecordDetailItem",
computed: {
DICT_TYPE() {
return DICT_TYPE
}
},
components: {ProductSelector},
props: {
value: {
type: Object,
default: () => {}
},
index: {
type: Number,
default: 0
},
readonly: {
type: Boolean,
default: false
},
// 特性列表
attrList: {
type: Array,
default: () => []
}
},
data() {
return {
brandList: [],
prodAttrIds: [],
usageIds: [],
material: '',
boxGauge1: '',
boxGauge2: '',
boxGauge3: '',
}
},
async mounted() {
// 品牌回显
if (this.value.brand) {
await getProductBrank(this.value.brand).then(r => {
this.brandList = [r.data]
})
} else {
this.getProductBrandPage()
}
if(this.value.material){
this.$set(this, 'material', this.value.material)
}
if (typeof this.value.prodAttrIds === 'string' && this.value.prodAttrIds.length > 0) {
this.prodAttrIds = this.value.prodAttrIds.split(',').map(e => +e)
}
if (this.value.usageIds) {
this.usageIds = this.value.usageIds.split(',') || []
if (this.usageIds.length > 0 && this.usageIds[0] === ''){
this.usageIds.splice(0, 1)
}
}
if (this.value.boxGauge) {
const boxGauge = this.value.boxGauge.split('*')
if (boxGauge?.length === 3) {
this.boxGauge1 = boxGauge[0]
this.boxGauge2 = boxGauge[1]
this.boxGauge3 = boxGauge[2]
}
}
},
methods: {
getDictDatas,
/** 获取产品属性列表 */
getAttrList() {
getProductAttrList().then(response => {
this.attrList = response.data;
})
},
getProductBrandPage(titleZh = undefined) {
getProductBrankPage({pageSize: 20, titleZh}).then(r => {
this.brandList = r.data.list
})
},
handleDelete() {
this.$emit('handle-delete')
},
onProductChange(product){
if (!product || this.readonly) {
return
}
this.prodAttrIds = product.attrId ? product.attrId.split(',').map(e => +e) : []
}
},
watch: {
prodAttrIds(val) {
this.value.prodAttrIds = val.join(',')
},
usageIds(val) {
this.$nextTick(() => {
this.value.usageIds = val.join(',')
})
},
boxGauge1() {
if (this.boxGauge1 < 0 ) {
this.boxGauge1 = -this.boxGauge1
}
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
},
boxGauge2() {
if (this.boxGauge2 < 0 ) {
this.boxGauge2 = -this.boxGauge2
}
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
},
boxGauge3() {
if (this.boxGauge3 < 0 ) {
this.boxGauge3 = -this.boxGauge3
}
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
},
material(material){
this.value.material = material
},
'value.volume'() {
if (this.value.volume < 0) {
this.value.volume = -this.value.volume
}
},
'value.quantityAll'() {
if (this.value.quantityAll < 0) {
this.value.quantityAll = -this.value.quantityAll
}
},
'value.weight'() {
if (this.value.weight < 0) {
this.value.weight = -this.value.weight
}
},
'value.brand'(val){
if(!val) return
const index = this.brandList.findIndex(item => item.id == val)
getProductBrank(val).then(res => {
this.brandList.push(res.data)
})
},
"value.usageIds"(val) {
this.usageIds = val?.split(',') || []
if (this.usageIds.length > 0 && this.usageIds[0] === ''){
this.usageIds.splice(0, 1)
}
},
"value.material"(val) {
this.material = val
},
}
}
</script>
<style scoped lang="scss">
</style>
<template>
<div class="app-container">
<h2>{{ title }}-{{ order.orderNo }}</h2>
<order-base-info :order="order"></order-base-info>
<div style="margin-top: 20px; display: none">
<span>{{ $t("储位") }}{{ ($refs.area ? $refs.area.selected : []).join(",") }}</span>
<el-button type="primary" size="mini" @click="areaVisible = true" style="margin-left: 15px">{{ $t("选择") }}</el-button>
</div>
<h2>{{ $t("货物信息") }}</h2>
<el-table v-if="order.orderItemVOList && order.orderItemVOList.length > 0 && orderItemList && orderItemList.length > 0" :data="order.orderItemVOList || []" style="width: 100%">
<el-table-column type="index" width="50" :label="$t('序号')"> </el-table-column>
<el-table-column prop="prodTitleZh" :label="$t('品名')">
<template v-slot="{ row }">
{{ row.prodTitleZh }}<br />
{{ row.prodTitleEn }}
</template>
</el-table-column>
<el-table-column :label="$t('入库货物属性')">
<template v-slot="{ row }">
<template v-if="row.warehouseInInfoVO">
{{ $t("品牌") }}{{ row.brandName }}<br />
{{ $t("箱数") }}{{ row.warehouseInInfoVO.cartonsNum }}<br />
{{ $t("体积") }}{{ row.warehouseInInfoVO.volume }}<br />
{{ $t("重量") }}{{ row.warehouseInInfoVO.weight }}Kg
</template>
<span v-else>{{ $t("暂无信息") }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('到仓货物属性')">
<template v-slot="{ row }">
<template v-if="row.warehouseCheckInfoVO">
{{ $t("品牌") }}{{ row.brandName }}<br />
{{ $t("箱数") }}{{ row.warehouseCheckInfoVO.cartonsNum }}<br />
{{ $t("体积") }}{{ row.warehouseCheckInfoVO.volume }}<br />
{{ $t("重量") }}{{ row.warehouseCheckInfoVO.weight }}Kg
</template>
<span v-else>{{ $t("暂无信息") }}</span>
</template>
</el-table-column>
<el-table-column prop="expressNo" v-slot="{ row }" :label="$t('快递单号')">
{{ row.expressNo || (row.warehouseInInfoVO ? row.warehouseInInfoVO.expressNo : "") }}
</el-table-column>
<el-table-column prop="createTime" :label="$t('最后操作时间')">
<template v-slot="{ row }">
{{ parseTime(row.updateTime) }}
</template>
</el-table-column>
<el-table-column prop="diffType" v-slot="{ row }" :label="$t('状态')">
<dict-tag v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.diffType" :type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS" :value="row.warehouseInInfoVO.diffType" class="red" :class="{ green: row.warehouseInInfoVO.diffType === 4 }" />
<span :class="{ red: row.itemStatus === 3 }" v-else>{{ row.itemStatus === 3 ? $t("少了") + row.num + $t("箱") : $t("待入仓") }}</span>
<span class="red" v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.cartonsNumDiff">{{ row.warehouseInInfoVO.cartonsNumDiff }}{{ $t("箱") }}</span>
</el-table-column>
<el-table-column prop="address" :label="$t('操作')">
<template v-slot="{ row, column, $index }">
<warehouse :edit="true" :order-item-a="order.orderItemVOList[$index]" :order-item-b="orderItemList[$index]" :title="$t('修改')" :order="order" @close="getList"></warehouse>
</template>
</el-table-column>
</el-table>
<el-card v-if="order.parentOrderId" style="margin-top: 20px">
<div slot="header" class="clearfix">
<span style="font-size: 18px">{{ $t("标签箱号") }}</span>
</div>
<div v-for="(item, index) in label.orderLabelDtoList" :key="index" style="margin-bottom: 10px">
<el-input-number v-model="item.start" controls-position="right"></el-input-number>
-
<el-input-number v-model="item.end" controls-position="right"></el-input-number>
<el-button icon="el-icon-minus" circle v-show="index !== 0" @click="label.orderLabelDtoList.splice(index, 1)" style="margin-left: 10px"></el-button>
<el-button icon="el-icon-plus" circle @click="handleLabelAdd(index)"></el-button>
</div>
<div style="text-align: center">
<el-button type="primary" @click="handleLabelSubmit">{{ $t("修改箱号") }}</el-button>
</div>
</el-card>
<h2 v-if="orderSpecialNeeds.length > 0">{{ $t("特殊需求") }}</h2>
<el-form ref="form" :model="form" label-width="200px">
<el-form-item :label="$i18n.locale === 'en_US' ? item.labelEn : item.label" v-for="(item, index) in orderSpecialNeeds" :key="item.value" style="width: 600px">
<el-input-number v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoney" type="number" :min="0" step-strictly :placeholder="$t('请输入') + ($i18n.locale === 'en_US' ? item.labelEn : item.label)"></el-input-number>
<el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" :placeholder="$t('请选择')" style="width: 100px">
<el-option v-for="item in currencyList" :key="item.id" :label="$i18n.locale === 'en_US' ? item.titleEn : item.titleZh" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<h2>{{ $t("订单到仓数据") }}</h2>
<el-form-item :label="$t('到仓总方数')" style="width: 380px">
<el-input v-model="form.sumVolume" :placeholder="$t('请输入总方数')" readonly>
<span slot="append"></span>
</el-input>
</el-form-item>
<el-form-item :label="$t('到仓总重量')" style="width: 380px">
<el-input v-model="form.sumWeight" :placeholder="$t('请输入总重量')" readonly>
<span slot="append">kg</span>
</el-input>
</el-form-item>
<el-card style="margin-top: 15px">
<div slot="header" class="clearfix">
<span style="font-size: 18px">{{ $t("到仓影像") }}</span>
</div>
<div>
<image-and-video-upload readonly :fileSize="50" :isShowTip="true" :value="form.urls"></image-and-video-upload>
</div>
</el-card>
</el-form>
</div>
</template>
<script>
import { getCurrencyList } from "@/api/ecw/currency"
import { getLabelByOrder, getLabelWaitInByOrder, getOrder, getOrderWarehouseIn, getSpecialListByOrderId, listByOrderId, orderWarehouseInFinish, orderWarehouseInUpdateLabel, rollbackDelete, warehousePictureList } from "@/api/ecw/order"
import orderBaseInfo from "@/components/OrderBaseInfo"
import WarehouseAreaDialog from "@/components/WarehouseAreaDialog"
import { DICT_TYPE } from "@/utils/dict"
import PrintTag from "@/views/ecw/order/components/PrintTag"
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt"
import imageUpload from "@/components/ImageUpload"
import { parseTime } from "@/utils/ruoyi"
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload"
import Warehouse from "@/views/ecw/order/warehousingTo/components/Warehouse"
export default {
name: "Warehousing",
components: {
orderBaseInfo,
WarehouseAreaDialog,
PrintTag,
PrintWarehouseReceipt,
imageUpload,
ImageAndVideoUpload,
Warehouse
},
mounted() {
if (this.$route.query.id) {
this.orderId = parseInt(this.$route.query.id || undefined)
this.getOrderItemList()
getSpecialListByOrderId(this.orderId).then((r) => (this.specialList = r.data))
this.getOrder()
// Promise.all([
// this.getOrder(),
// listByOrderId({ orderId: this.orderId }).then((r) => {
// this.form.orderLocationCreateReqVOList = r.data
// })
// ])
}
getCurrencyList().then((res) => (this.currencyList = res.data))
},
data() {
return {
parseTime,
DICT_TYPE,
areaVisible: false,
finishVisible: false,
warehousingVisible: false,
form: {
orderSpecialNeedReceivableReqVoList: [],
orderLocationCreateReqVOList: [],
exceptionUrls: [],
descZh: "",
manualExceptionType: [],
urls: [],
sumVolume: "",
sumWeight: ""
},
currencyList: [],
order: {},
orderId: undefined,
orderItemList: [],
specialList: [],
warehousing: undefined,
isShowPrintTag: false,
isShowPrint: false,
escapeBol: false,
label: {
orderId: 0,
orderLabelDtoList: [
{
end: 0,
start: 0
}
]
},
exceptionRules: {
manualExceptionType: [
{ required: true, message: "请勾选原因类型", trigger: "change" },
{
validator: (rule, value, callback) => {
if (value.length <= 0) {
callback(new Error("请勾选原因类型"))
}
callback()
},
trigger: "change"
}
]
}
}
},
methods: {
getOrderItemList() {
this.orderItemList = []
return getOrderWarehouseIn(this.orderId).then((r) => (this.orderItemList = r.data))
},
getList() {
this.getOrder()
this.getOrderItemList()
},
getWarehousePictureList() {
return warehousePictureList({
bizId: this.order.orderId,
type: 7
}).then((r) => {
this.form.urls = r.data.map((i) => i.url)
})
},
include() {
return (state, arr) => {
return arr.indexOf(state) > -1
}
},
exclude() {
return (state, arr) => {
return arr.indexOf(state) == -1
}
},
handleLabelSubmit() {
orderWarehouseInUpdateLabel({
...this.label,
orderId: this.orderId
}).then((r) => {
if (r.code === 0) {
this.$message.success(r.msg || this.$t("修改标签箱号成功"))
}
})
},
// 箱号标签回显
getLabelByOrder() {
getLabelByOrder(this.orderId).then((r) => {
if (r.code === 0 && !!r.data && r.data.length > 0) {
this.label.orderLabelDtoList = r.data
} else {
// 没有历史数据,查默认值
getLabelWaitInByOrder(this.orderId).then((r) => {
console.log(r)
if (r.code === 0 && !!r.data) {
this.label.orderLabelDtoList = [r.data]
}
})
}
})
},
handleLabelAdd(index) {
this.label.orderLabelDtoList.splice(index + 1, 0, {
end: "",
start: ""
})
},
getTowSum() {
// let sumVolume = 0
// let sumWeight = 0
// this.order.orderItemVOList.forEach(e => {
// if (e?.warehouseInInfoVO?.volume) sumVolume += e.warehouseInInfoVO.volume
// if (e?.warehouseInInfoVO?.weight) sumWeight += e.warehouseInInfoVO.weight
// })
this.form.sumVolume = this.order.sumVolume // || sumVolume
this.form.sumWeight = this.order.sumWeight // || sumWeight
},
getOrder() {
return getOrder(this.orderId)
.then((r) => {
this.order = r.data
this.getTowSum()
})
.then(() => {
this.getLabelByOrder()
this.getWarehousePictureList()
})
},
specialHas0() {
let result = false
this.form.orderSpecialNeedReceivableReqVoList.forEach((e) => {
if (e.receivableMoney === "0" || e.receivableMoney === "") {
result = true
}
})
return result
},
handleException() {
this.$refs.exceptionForm.validate((valid) => {
if (valid) {
this.handleSubmit()
} else {
this.$message.warning("请勾选原因类型")
}
})
},
async handleSubmit() {
if (this.specialHas0()) {
const confirm = await this.$confirm(this.$t("有特需费用为0或未填写,请问是否继续?"), this.$t("注意"), {
confirmButtonText: this.$t("继续"),
cancelButtonText: this.$t("取消"),
type: "warning"
})
if (confirm !== "confirm") {
return
}
}
let form = {
orderSpecialNeedReceivableReqVoList: this.form.orderSpecialNeedReceivableReqVoList,
orderLocationCreateReqVOList: this.form.orderLocationCreateReqVOList,
orderId: this.order.orderId,
// urls: this.form.urls,
sumVolume: this.form.sumVolume,
sumWeight: this.form.sumWeight,
isAppend: this.isAdd
}
// 标签箱号
if (this.order.parentOrderId) {
form.labelList = this.label.orderLabelDtoList || []
}
if (this.escapeBol) {
form.exceptionUrls = this.form.exceptionUrls.length !== 0 ? this.form.exceptionUrls?.split(",") : []
form.descZh = this.form.descZh
form.manualExceptionType = this.form.manualExceptionType.join(",")
}
orderWarehouseInFinish(form).then((r) => {
if (r.code === 0) {
this.escapeBol = false
this.finishVisible = false
const message = !r.data ? this.$t("该订单已成功入仓,是否打印?") : `<h3>${this.$t("货物已入仓,存在异常")}</h3>${this.$t("该订单已成功入仓,是否打印?")}`
this.$confirm(message, this.$t("货物已入仓"), {
confirmButtonText: this.$t(""),
cancelButtonText: this.$t(""),
dangerouslyUseHTMLString: true
})
.then(() => {
this.isShowPrint = true
})
.catch(() => {
// this.$store.dispatch('tagsView/delVisitedView')
this.$message.success(this.$t("入仓成功"))
this.$tab.closePage()
})
}
})
},
handleWarehousingReturn(item) {
this.$confirm(item.prodTitleZh + this.$t("退仓后不可恢复,是否确认退仓?"), this.$t("确定要退仓?"), {
confirmButtonText: this.$t("确定"),
cancelButtonText: this.$t("取消"),
type: "warning"
})
.then(() => {
rollbackDelete({
orderId: item.orderId,
orderItemId: item.orderItemId
}).then(() => {
this.$message({
type: "success",
message: this.$t("货物退仓成功!")
})
this.getOrderItemList()
this.getOrder()
})
})
.catch((e) => {})
}
},
watch: {
orderSpecialNeeds(val) {
val.forEach((e) => {
this.form.orderSpecialNeedReceivableReqVoList.push({
id: e.id,
receivableMoney: e.transFee || "",
receivableMoneyCurrency: e.transCurrency || 3
})
})
}
},
computed: {
// 根据orderItemId获取入仓item
wareItem() {
return (orderItemId) => {
return this.orderItemList.find((item) => item.orderItemId == orderItemId)
}
},
isAdd() {
return this.$route.path === "/order/warehousingTo-add"
},
isEdit() {
return this.$route.path === "/order/warehousingTo-update"
},
title() {
return this.$i18n.locale === "en_US" ? this.$route.meta.titleEn : this.$route.name
},
orderSpecialNeedsDict() {
return this.$store.state.dict.dictDatas.order_special_needs
},
orderSpecialNeeds() {
const result = []
this.specialList.forEach((e) => {
const t = this.orderSpecialNeedsDict.find((f) => f.value === e.advanceType)
if (t) {
result.push({ ...e, label: t.label, labelEn: t.labelEn })
}
})
return result
},
warehouseId() {
return this.order?.logisticsInfoDto?.startWarehouseId
}
}
}
</script>
<style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red {
color: $--color-danger;
}
.green {
color: $--color-success;
}
</style>
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