Commit febe6038 authored by huyf's avatar huyf

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

# Conflicts:
#	src/utils/request.js
parents aa9e45d2 a4eeea5b
......@@ -6,7 +6,7 @@ VUE_APP_TITLE = 捷道管理系统-测试站
# 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.jd.jdshangmen.com'
VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
......
{
"ExpandedNodes": [
"",
"\\src"
"\\src",
"\\src\\views",
"\\src\\views\\ecw",
"\\src\\views\\ecw\\order"
],
"SelectedNode": "\\src\\main.js",
"PreviewInSolutionExplorer": false
}
\ No newline at end of file
No preview for this file type
......@@ -46,11 +46,23 @@ export default {
align-items: center;
justify-content: center;
}
.items-center{
align-items: center;
}
.flex-between{
display: flex;
justify-content: space-between;
}
.empty-placeholder{
padding: 50px;
text-align: center;
}
$sizes: 0, 10,20,30,50,100,150,200,300,500,800,1000;
/*给el-input-number一个紧凑的样式*/
.el-input-number.is-controls-right.tight .el-input__inner{
padding-right: 30px;
padding-left: 5px;
}
$sizes: 0, 10,20,30,50,75,100,150,200,300,500,800,1000;
@for $i from 1 through length($sizes){
$item: nth($sizes, $i);
.ml-#{$item}{
......
......@@ -49,6 +49,7 @@ export function exportboxExcel(query) {
url: "/shipment/box/export-excel",
method: "get",
params: query,
timeout: 5 * 60000,
responseType: "blob",
});
}
......@@ -257,6 +258,7 @@ export function downloadAgentListFiles(params) {
return request({
url: "/ecw/box-preload-goods/downloadAgentListFiles",
method: "get",
timeout: 3*60*1000,
params,
});
}
......@@ -266,6 +268,7 @@ export function downloadSoncapFiles(params) {
return request({
url: "/ecw/box-preload-goods/downloadSoncapFiles",
method: "get",
timeout: 3*60*1000,
params,
});
}
......@@ -275,6 +278,7 @@ export function downloadCustomFiles(params) {
return request({
url: "/ecw/box-preload-goods/downloadCustomFiles",
method: "get",
timeout: 3*60*1000,
params,
});
}
......@@ -284,6 +288,7 @@ export function downloadLoadGoodsList(params) {
return request({
url: "/ecw/box-preload-goods/downloadLoadGoodsList",
responseType: "blob",
timeout: 3*60*1000,
method: "get",
params,
});
......@@ -294,6 +299,7 @@ export function downloadPreloadGoodsList(params) {
return request({
url: "/ecw/box-preload-goods/downloadPreloadGoodsList",
responseType: "blob",
timeout: 3*60*1000,
method: "get",
params,
});
......@@ -304,6 +310,7 @@ export function downloadReceivableList(params) {
return request({
url: "/ecw/box-preload-goods/downloadReceivableList",
responseType: "blob",
timeout: 3*60*1000,
method: "get",
params,
});
......@@ -314,6 +321,7 @@ export function downloadLadingCopy(params) {
return request({
url: "/ecw/box-lading-copy/downloadLadingCopy",
method: "get",
timeout: 3*60*1000,
params,
});
}
......
import request from "@/utils/request";
// 创建出货
export function createbox(data) {
return request({
url: "/shipment/box/createAir",
method: "post",
data: data,
});
}
// 更新出货
export function updatebox(data) {
return request({
url: "/shipment/box/update",
method: "put",
data: data,
});
}
/**
* 订舱
*
* @export
* @param {*} data
* @return {*}
*/
export function booking(data) {
if (data.id) {
return request({
url: "/shipment/box-book-air/update",
method: "put",
data,
});
}
return request({
url: "/shipment/box-book-air/create",
method: "post",
data,
});
}
/**
* 获得待预装分页
*
* @export
* @param {*} data
* @return {*}
*/
export function preloadPage(data) {
return request({
url: "/ecw/box-preload-goods/preloadPageAir",
method: "post",
data,
});
}
/**
* 预装
*
* @export
* @param {*} data
* @return {*}
*/
export function createGoods(data) {
return request({
url: "/ecw/box-preload-goods/createAir",
method: "post",
data,
});
}
/***************************** 合包 start **********************************/
/**
* 获得获得合包箱分页
*
* @export
* @param {*} data
* @return {*}
*/
export function getMergePkgList(params) {
return request({
url: "/ecw/box-merge-pkg/page",
method: "get",
params,
});
}
/**
* 创建合包箱
*
* @export
* @param {*} data
* @return {*}
*/
export function createMergePkg(data) {
return request({
url: "/ecw/box-merge-pkg/create",
method: "post",
data,
});
}
/**
* 更新合包箱
*
* @export
* @param {*} data
* @return {*}
*/
export function updateMergePkg(data) {
return request({
url: "/ecw/box-merge-pkg/update",
method: "put",
data,
});
}
/**
* 删除合包箱
*
* @export
* @param {*} data
* @return {*}
*/
export function deleteMergePkg(id) {
return request({
url: `/ecw/box-merge-pkg/delete?id=`+id,
method: "delete",
});
}
/**
* 获得未装箱列表分页
*
* @export
* @param {*} data
* @return {*}
*/
export function getUnPkgPage(params) {
return request({
url: "/ecw/box-merge-pkg/getUnPkgPage",
method: "get",
params,
});
}
/**
* 获得已装箱列表分页
*
* @export
* @param {*} data
* @return {*}
*/
export function getPkgPageByPkgId(params) {
return request({
url: "/ecw/box-merge-pkg/getPkgPageByPkgId",
method: "get",
params,
});
}
/**
* 创建合包订单
*
* @export
* @param {*} data
* @return {*}
*/
export function createPkgOrder(data) {
return request({
url: "/ecw/box-pkg-order/create",
method: "post",
data,
});
}
/**
* 批量创建合包订单
*
* @export
* @param {*} data
* @return {*}
*/
export function createBatchPkgOrder(data) {
return request({
url: "/ecw/box-pkg-order/createBatch",
method: "post",
data,
});
}
/**
* 移出合包订单
*
* @export
* @param {*} data
* @return {*}
*/
export function deleteRelate(pkgId, orderId) {
return request({
url: `/ecw/box-pkg-order/deleteRelate`,
method: "delete",
headers:{
'Content-type': 'application/x-www-form-urlencoded'
},
data: 'pkgId='+pkgId+'&orderId='+orderId
});
}
/**
* 批量移出合包订单
*
* @export
* @param {*} data
* @return {*}
*/
export function deleteBatchRelate(data) {
return request({
url: `/ecw/box-pkg-order/deleteBatchRelate`,
method: "post",
data: data
});
}
/**
* 获得封箱数据
*
* @export
* @param {*} data
* @return {*}
*/
export function getMergePkgInfoById(id) {
return request({
url: "/ecw/box-merge-pkg/getMergePkgInfoById?id="+id,
method: "get"
});
}
/**
* 获得封箱标签数据
*
* @export
* @param {*} data
* @return {*}
*/
export function getMergeTagById(id) {
return request({
url: "/ecw/box-merge-pkg/getMergeTagById?id="+id,
method: "get"
});
}
/**
* 完成合包
*
* @export
* @param {*} data
* @return {*}
*/
export function finishMergePkg(shipmentId) {
return request({
url: "/ecw/box-merge-pkg/finishMergePkg?shipmentId="+shipmentId,
method: "get"
});
}
/***************************** 合包 end **********************************/
/***************************** 起运 start *******************************/
export function takeoffCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-air-fly/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-air-fly/create",
method: "post",
data,
});
}
/***************************** 起运 end *******************************/
......@@ -143,6 +143,18 @@ export function billCreate(data) {
});
}
/**
* 获得提单补料pdf
*/
export function getBoxLadingBillPdf(params) {
return request({
url: "/ecw/box-lading-bill/getBoxLadingBillPdf",
method: "get",
responseType: 'arraybuffer',
params,
});
}
/**
* 驳船
*
......@@ -319,6 +331,50 @@ export function settlementCreate(data) {
});
}
/**
* 空运出货
*
* @export
* @param {*} data
* @return {*}
*/
export function airShipmentCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-air-shipment/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-air-shipment/create",
method: "post",
data,
});
}
/**
* 空运出仓
*
* @export
* @param {*} data
* @return {*}
*/
export function airCheckoutCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-air-checkout/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-air-checkout/create",
method: "post",
data,
});
}
/**
* 出货审核
*
......@@ -494,10 +550,11 @@ export function boxGoodsDetail(data) {
* @param {*} id
* @return {*}
*/
export function deleteSection(id) {
export function deleteSection(params) {
return request({
url: "/ecw/box-preload-goods/deleteSection?id=" + id,
url: "/ecw/box-preload-goods/deleteSection",
method: "delete",
params
});
}
......@@ -508,10 +565,11 @@ export function deleteSection(id) {
* @param {*} id
* @return {*}
*/
export function deleteGoods(id) {
export function deleteGoods(params) {
return request({
url: "/ecw/box-preload-goods/delete?ids=" + id.join(","),
url: "/ecw/box-preload-goods/delete",
method: "delete",
params
});
}
......@@ -524,12 +582,27 @@ export function deleteGoods(id) {
*/
export function createGoods(data) {
return request({
url: "/ecw/box-preload-goods/create",
url: "/ecw/box-preload-goods/v2/create",
method: "post",
data,
});
}
/**
* 获得订单所有关联列表
*
* @export
* @param {*} params
* @return {*}
*/
export function getAllRelateOrderList(params) {
return request({
url: "/order/guanlian/getAllRelateOrderList",
method: "get",
params,
});
}
/**
* 预装关联订单
*
......
import request from '@/utils/request'
import query from "@/views/ecw/customer/query";
import * as url from "url";
import {methods} from "vue2-ace-editor";
// 创建客户
export function createCustomer(data) {
......@@ -26,7 +27,14 @@ export function updateCustomer(data) {
data: data
})
}
// 新建潜在客户
export function createPotential(data){
return request({
url:'/ecw/customer/create-potential',
method:'post',
data
})
}
// 删除客户
export function deleteCustomer(id) {
return request({
......@@ -48,7 +56,9 @@ export function getCustomerPage(query) {
return request({
url: '/ecw/customer/page',
method: 'get',
params: query
params: query,
timeout: 60000
})
}
/**
......@@ -70,6 +80,14 @@ export function getCustomerSelect(query) {
params: query
})
}
// 潜在客户
export function getPotential(query){
return request({
url:'/ecw/customer/get-potential',
method:'get',
params:query
})
}
// 根据客户id集合获得客户详情列表
export function getCustomerList(query) {
......@@ -173,7 +191,20 @@ export function handOverCustomer(data) {
data: data,
})
}
export function handoverApproval(data) {
return request({
url: '/ecw/customer/handover/approval',
method: 'post',
data: data,
})
}
export function handoverApprovalDetails(params){
return request({
url:'/ecw/customer/handover/approval',
method:'get',
params
})
}
// 公海池客户
export function getPublicList(query) {
return request({
......@@ -379,3 +410,27 @@ export function changeCustomerAir(data){
})
}
// 设置整柜
export function setChangeCustomerFcl(data){
return request({
url:'/ecw/customer/change-customer-fcl',
method:'put',
data
})
}
//获得客户日志
export function getCustomerOperatelogPage(params){
return request({
url:'/customer/operate-log/page',
method:'get',
params
})
}
// 获得客户日志详情
export function getCustomerOperatelog(params){
return request({
url:'customer/operate-log/get',
method:'get',
params
})
}
......@@ -71,9 +71,13 @@ export function exportCustomerContactsExcel(query) {
// 根据客户ID获得联系人列表
export function getCustomerContactsListByCustomer(query) {
if(query.customerId){
return request({
url: '/ecw/customer-contacts/list-by-customer',
method: 'get',
params: query
})
}else {
return Promise.resolve()
}
}
......@@ -9,7 +9,7 @@ export function createDeptTarget(data) {
})
}
// 我的业绩
// 我的部门业绩
export function myDeptAchievementByPage(data) {
return request({
url: '/sale/dept-target/myDeptAchievementByPage',
......@@ -17,7 +17,7 @@ export function myDeptAchievementByPage(data) {
data: data
})
}
// 我的部门业绩
// 我的业绩
export function myAchievementByPage(data) {
return request({
url: '/sale/dept-target/myAchievementByPage',
......@@ -26,6 +26,15 @@ export function myAchievementByPage(data) {
})
}
// 全部业绩
export function allAchievementByPage(data) {
return request({
url: '/sale/dept-target/allAchievementByPage',
method: 'post',
data: data
})
}
// 更新部门业绩目标设置
export function updateDeptTarget(data) {
return request({
......@@ -67,6 +76,15 @@ export function getDeptTargetPage(query) {
})
}
// 获得我的部门及以下业绩目标设置分页
export function getMyDeptTargetPage(query) {
return request({
url: '/sale/dept-target/deptStatistics/page',
method: 'get',
params: query
})
}
// 获得个人目标进度分页
export function getPersonTargetPage(query) {
return request({
......@@ -85,3 +103,23 @@ export function exportDeptTargetExcel(query) {
responseType: 'blob'
})
}
// 导出部门业绩目标设置 Excel
export function exportDetailExcel(query) {
return request({
url: '/sale/dept-target/exportDetailExcel',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 导出部门业绩目标设置 Excel
export function exportStatisticsExcel(query) {
return request({
url: '/sale/dept-target/exportStatisticsExcel',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -273,6 +273,14 @@ export function getPayableInfoByIds(query) {
params: query
})
}
//获取佣金应付款详情
export function getCommissionPayable(params){
return request({
url:'/ecw/commission-payable/get',
method:"get",
params
})
}
// 创建付款单
export function createPayment(data) {
......@@ -282,6 +290,14 @@ export function createPayment(data) {
data: data
})
}
// 创建佣金订单
export function commissionPayment(data){
return request({
url:'/ecw/commission-payment/create',
method:'post',
data
})
}
// 获取付款单列表
export function getPaymentList(query) {
......@@ -300,6 +316,22 @@ export function getPaymentInfoByIds(query) {
params: query
})
}
// 获得佣金付款单
export function getCommissionPayment(params){
return request({
url:'/ecw/commission-payment/get',
method:'get',
params
})
}
// 获得佣金付款单列表
export function getCommissionPayableList(params){
return request({
url:'/ecw/commission-payable/list',
method:'get',
params
})
}
// 获得付款单付款明细
export function getPaymentItem(query) {
......@@ -310,6 +342,7 @@ export function getPaymentItem(query) {
})
}
// 更新付款单
export function updatePayment(data) {
return request({
......@@ -318,6 +351,14 @@ export function updatePayment(data) {
data: data
})
}
// 更新佣金付款单
export function commissionPaymentUpdate(data){
return request({
url:'/ecw/commission-payment/update',
method:'put',
data
})
}
// 删除付款单
export function deletePayment(id) {
......@@ -337,25 +378,278 @@ export function paymentVerify(query) {
}
// 核销付款单
export function paymentVerification(id) {
export function paymentVerification(data) {
return request({
url: '/ecw/payment/verification/' + id,
method: 'GET'
url: '/ecw/payment/verification',
method: 'post',
data
})
}
// 反核销付款单
export function paymentVerificationCancel(id) {
export function paymentVerificationCancel(data) {
return request({
url: '/ecw/payment/verificationCancel/' + id,
method: 'GET'
url: '/ecw/payment/verificationCancel',
method: 'post',
data
})
}
// 取消付款单反核销
export function paymentCancelFinancePaymentWriteOffNo(data){
return request({
url:'ecw/payment/cancelFinancePaymentWriteOffNo',
method:'post',
data
})
}
// 反审核付款单
export function paymentVerifyCancel(id) {
export function paymentVerifyCancel(data) {
return request({
url: '/ecw/payment/verifyCancel',
method: 'post',
data
})
}
//获取佣金应付款
export function payablePage(params){
return request({
url:'/ecw/commission-payable/page',
method:'get',
params
})
}
//获取佣金付款单
export function commissionPaymentPage(params){
return request({
url:'/ecw/commission-payment/page',
method:'get',
params
})
}
// 根据流程主键获取付款单流程审核信息
export function getPaymentApprove(id) {
return request({
url: '/ecw/payment/verifyCancel/' + id,
url: '/ecw/payment/getPaymentApprove?id='+id,
method: 'GET'
})
}
// 根据流程主键获取收款单流程审核信息
export function getReceiptApprove(id) {
return request({
url: '/ecw/receipt/getReceiptApprove?id='+id,
method: 'GET'
})
}
// 收款单核销
export function financeReceiptWriteOff(query) {
return request({
url: '/ecw/receipt/financeReceiptWriteOff',
method: 'POST',
data: query
})
}
// 收款单银行明细核销
export function financeReceiptItemWriteOff(query) {
return request({
url: '/ecw/receipt-item/financeReceiptItemWriteOff',
method: 'POST',
data: query
})
}
// 收款单银行明细核销反审核
export function financeReceiptItemWriteOffNo(query) {
return request({
url: '/ecw/receipt-item/financeReceiptItemWriteOffNo',
method: 'POST',
data: query
})
}
// 收款单反审核
export function financeApproveNo(query) {
return request({
url: '/ecw/receipt/financeApproveNo',
method: 'POST',
data: query
})
}
// 收款单反核销
export function financeReceiptWriteOffNo(query) {
return request({
url: '/ecw/receipt/financeReceiptWriteOffNo',
method: 'POST',
data: query
})
}
// 收款单取消审核
export function cancelFinanceReceiptApproval(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptApproval',
method: 'POST',
data: query
})
}
// 取消收款单反审核
export function cancelFinanceReceiptApprovalNo(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptApprovalNo',
method: 'POST',
data: query
})
}
// 取消收款单全部核销审核
export function cancelFinanceReceiptWriteOff(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptWriteOff',
method: 'POST',
data: query
})
}
// 取消收款单反核销
export function cancelFinanceReceiptWriteOffNo(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptWriteOffNo',
method: 'POST',
data: query
})
}
// 取消收款明细核销
export function cancelFinanceReceiptItemWriteOff(query) {
return request({
url: '/ecw/receipt-item/cancelFinanceReceiptItemWriteOff',
method: 'POST',
data: query
})
}
// 取消收款明细反核销
export function cancelFinanceReceiptItemWriteOffNo(query) {
return request({
url: '/ecw/receipt-item/cancelFinanceReceiptItemWriteOffNo',
method: 'POST',
data: query
})
}
// 取消审核
export function cancelFinancePaymentApproval(data){
return request({
url:'/ecw/payment/cancelFinancePaymentApproval',
method:'post',
data
})
}
// 取消付款单反审核
export function cancelFinancePaymentApprovalNo(data){
return request({
url:'/ecw/payment/cancelFinancePaymentApprovalNo',
method:'post',
data
})
}
// 取消付款单核销
export function cancelFinancePaymentWriteOff(data){
return request({
url:'/ecw/payment/cancelFinancePaymentWriteOff',
method:'post',
data
})
}
// 取消付款单反核销
export function cancelFinancePaymentWriteOffNo(data){
return request({
url:'/ecw/payment/cancelFinancePaymentWriteOffNo',
method:'post',
data
})
}
//删除佣金付款单
export function commissionPaymentDelete(params){
return request({
url:'/ecw/commission-payment/delete',
method:'delete',
params
})
}
//反审核佣金付款单
export function commissionPaymentVerifyCancel(data){
return request({
url:'/ecw/commission-payment/verifyCancel',
method:'post',
data
})
}
// 佣金付款单核销
export function commissionPaymentVerification(data){
return request({
url:'/ecw/commission-payment/verification',
method:'post',
data
})
}
//付款单反核销申请
export function commissionPaymentVerificationCancel(data){
return request({
url:'/ecw/commission-payment/verificationCancel',
method:'post',
data
})
}
// 取消付款单反审核
export function commissionPaymentCancelFinancePaymentApprovalNo(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentApprovalNo',
method:'post',
data
})
}
// 取消付款单核销
export function commissionPaymentCancelFinancePaymentWriteOff(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentWriteOff',
method:'post',
data
})
}
// 取消付款单反核销
export function commissionPaymentCancelFinancePaymentWriteOffNo(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentWriteOffNo',
method:'post',
data,
})
}
//取消付款单审核
export function commissionPaymentCancelFinancePaymentApproval(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentApproval',
method:'post',
data
})
}
//根据流程主键获取付款单流程审核信息
export function commissionPaymentGetPaymentApprove(params){
return request({
url:'/ecw/commission-payment/getPaymentApprove',
method:'get',
params
})
}
......@@ -25,7 +25,8 @@ export function getCustomerPage(query) {
return request({
url: '/ecw/indirect-customer/page',
method: 'get',
params: query
params: query,
timeout: 30000
})
}
......
import request from '@/utils/request'
// 创建提单托运人
export function createLadingShipper(data) {
return request({
url: '/ecw/lading-shipper/create',
method: 'post',
data: data
})
}
// 更新提单托运人
export function updateLadingShipper(data) {
return request({
url: '/ecw/lading-shipper/update',
method: 'put',
data: data
})
}
// 删除提单托运人
export function deleteLadingShipper(id) {
return request({
url: '/ecw/lading-shipper/delete?id=' + id,
method: 'delete'
})
}
// 获得提单托运人
export function getLadingShipper(id) {
return request({
url: '/ecw/lading-shipper/get?id=' + id,
method: 'get'
})
}
// 获得提单托运人分页
export function getLadingShipperPage(query) {
return request({
url: '/ecw/lading-shipper/page',
method: 'get',
params: query
})
}
// 导出提单托运人 Excel
export function exportLadingShipperExcel(query) {
return request({
url: '/ecw/lading-shipper/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -133,3 +133,13 @@ export function offerDeptPage(params) {
params
})
}
// 导出部分报价单 exportDeptOfferExcel
export function exportDeptOfferExcel(query) {
return request({
url: '/ecw/offer/dept/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
\ No newline at end of file
import request from '@/utils/request'
import {param} from "@/utils";
// 创建订单
export function createOrder(data) {
......@@ -53,6 +52,15 @@ export function getOrderPage(query) {
})
}
// 获得订单列表
export function getOrderList(query) {
return request({
url: '/ecw/order/list',
method: 'get',
params: query
})
}
// 导出订单 Excel
export function exportOrderExcel(query) {
return request({
......@@ -68,6 +76,7 @@ export function printTag(id) {
return request({
url: '/order/print/orderTagPrint?orderId=' + id,
method: 'get',
timeout: 3 * 60000
})
}
......@@ -166,7 +175,7 @@ export function orderWarehouseIn(data){
// 入仓修改
export function orderWarehouseInUpdateApply(data){
return request({
url: '/order/order-warehouse-in/update-apply',
url: '/order/order-warehouse-in/update-or-updateApply',
method: 'put',
data
})
......@@ -212,6 +221,15 @@ export function saveOrUpdateOrderLocation(data){
})
}
// 入仓修改储位
export function updateWarehouseInLocation(data){
return request({
url: '/order/location/update-warehouse-in-location',
method: 'put',
data
})
}
// 获取入仓修改审批单详情-审批使用
export function getWarehouseUpdateApprovalInfo(id) {
return request({
......@@ -328,6 +346,7 @@ export function feeApplicationGet(params){
params
})
}
// 调仓-明细-后台使用
export function getAdjustInfo(params){
return request({
url:'/order/order-warehouse-in/get-adjust-info',
......@@ -547,6 +566,7 @@ export function orderExportSearch(params){
return request({
url: '/ecw/order/export/search',
method: 'GET',
timeout: 5 * 60000,
responseType: 'arraybuffer',
params
})
......@@ -558,6 +578,7 @@ export function orderExportMySearch(params){
url: '/ecw/order/export/my/search',
responseType: 'arraybuffer',
method: 'GET',
timeout: 5 * 60000,
params
})
}
......@@ -568,6 +589,7 @@ export function orderExportDeptSearch(params){
url: '/ecw/order/export/dept/search',
method: 'GET',
responseType: 'arraybuffer',
timeout: 5 * 60000,
params
})
}
......@@ -578,6 +600,7 @@ export function exportAbnormal(params){
url: '/ecw/order/export/export-exception',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -589,6 +612,7 @@ export function exportHeavyOrder(params){
url: '/ecw/order/export/export-heavyOrder',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -599,6 +623,7 @@ export function exportReturnOrder(params){
url: '/ecw/order/export/export-returnOrder',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -609,6 +634,7 @@ export function exportSaleRepay(params){
url: '/ecw/order/export/export-saleRepay',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -620,6 +646,7 @@ export function exportCustomsDatas(params){
url: '/ecw/order/export/export-customDatas',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -631,6 +658,7 @@ export function exportShippingDatas(params){
url: '/ecw/order/export/export-shipDatas',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -642,6 +670,7 @@ export function exportShipFee(params){
url: '/ecw/order/export/export-shipFee',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
......@@ -653,6 +682,171 @@ export function exportUnload(params){
url: '/ecw/order/export/export-excel',
method: 'get',
params: params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
// 操作日志分页
export function operateLogPage(params){
return request({
url: '/ecw/order-operate-log/page',
method: 'get',
params: params,
timeout: 5 * 60000
})
}
// 获取操作日志详情
export function getOperateLogDetail(id){
return request({
url: '/ecw/order-operate-log/get',
params: {id},
method: 'get',
})
}
// 取消拆单申请
export function splitCancelApply(data){
return request({
url: '/order/split/cancel-apply',
method: 'put',
data
})
}
// 撤销拆单
export function orderSplitRevoke(data){
return request({
url: '/order/split/revoke',
method: 'put',
data
})
}
/*根据订单ID获取撤销拆单详情*/
export function splitRevoke(orderId){
return request({
url: '/order/split/revoke/' + orderId,
method: 'get'
})
}
/*根据审批ID获取撤销拆单详情*/
export function splitRevokeApply(approvalId){
return request({
url: '/order/split/revoke/apply/' + approvalId,
method: 'get'
})
}
/*取消撤销拆单*/
export function cancelSplitRevoke(data){
return request({
url: '/order/split/cancel/revoke',
method: 'put',
data
})
}
/*修改拆单项*/
export function splitItemUpdate(data){
return request({
url: '/order/split-item/update',
method: 'post',
data
})
}
// 可出订单列表
export function canShipmentPage(params){
return request({
url: '/air/order/can/shipment/page',
method: 'get',
params
})
}
// 待出订单列表
export function waitingShipmentPage(params){
return request({
url: '/air/order/waiting/shipment/page',
method: 'get',
params
})
}
// 备货订单列表
export function canReadyStockShipmentPage(params){
return request({
url: '/air/order/can-ready-stock/shipment/page',
method: 'get',
params
})
}
// 确认订单可出
export function setCanShipment(orderId){
return request({
url: '/air/order/can/shipment/' + orderId,
method: 'put',
})
}
// 批量可出
export function batchCanShipment(orderIdList){
return request({
url: '/air/order/can/shipment/',
method: 'put',
data: {orderIdList}
})
}
// 导出备货订单
export function exportReadyStock(params){
return request({
url: '/ecw/order/export/ready-stock/search',
method: 'get',
params,
responseType: 'blob'
})
}
// 无需打包
export function noNeedPack(orderItemId){
return request({
url: '/order/order-warehouse-in/no-need-to-pack',
method: 'get',
params: {orderItemId}
})
}
// 完成打包
export function finishPacked(data){
return request({
url: '/order/order-warehouse-in/finish-packed',
method: 'post',
data
})
}
// 完成备货
export function finishStock(data){
return request({
url: '/order/order-warehouse-in/finish-stocked',
method: 'put',
data
})
}
// 批量转异
export function batchException(data){
return request({
url: '/air/order/manual-exception/batch',
method: 'put',
data
})
}
// 打包记录列表
export function orderItemPackLogPage(params){
return request({
url: '/order/item-pack-log/page',
method: 'get',
params
})
}
\ No newline at end of file
......@@ -107,7 +107,35 @@ export function exportExcel(params) {
return request({
url: '/ecw/order-exception/export-excel',
method: 'get',
timeout: 3*60*1000,
params,
// timeout: 3*60*1000,
responseType: 'arraybuffer'
})
}
// 根据订ID获取订单异常结果
export function getOrderExcptionResult(query) {
return request({
url: '/ecw/order-exception-result/page',
method: 'get',
params: query
})
}
// 根据订单ID,异常ID获取价格
export function getOrderExceptionChannelPriceList(data) {
return request({
url: '/order/exception-channel-price/getOrderExceptionChannelPriceList',
method: 'post',
data: data
})
}
// 根据工作流中传的业务ID,获取不可出渠道异常详细信息
export function getExceptionDetailByBusinessId(query) {
return request({
url: '/ecw/order-exception/getExceptionDetailByBusinessId',
method: 'get',
params: query
})
}
\ No newline at end of file
......@@ -59,7 +59,6 @@ export function deleteSplit(id) {
})
}
//取消申请拆单
export function cancelApply(data) {
return request({
url: '/order/split/cancel-apply',
......@@ -137,3 +136,12 @@ export function quantitycheck(query) {
params: query
})
}
// 重置拆单
export function deleteAllSplit(orderId) {
return request({
url: '/order/split/delete/all',
method: 'delete',
params: {orderId}
})
}
......@@ -9,6 +9,15 @@ export function createProduct(data) {
})
}
// 创建产品
export function addProduct(data) {
return request({
url: '/ecw/product/add',
method: 'post',
data: data
})
}
// 更新产品
export function updateProduct(data) {
return request({
......@@ -79,3 +88,11 @@ export function calculationPrice(data){
data: data
})
}
//新增商品可用优惠信息列表
export function product_coupon_newProd(params){
return request({
url:'/product/coupon/newProd/list',
method:'get',
params
})
}
......@@ -107,3 +107,12 @@ export function getProductPriceGetPrice(query) {
params: query
})
}
// 更新单询
export function updateOrderInquiry(data) {
return request({
url: '/ecw/product-price/updateOrderInquiry',
method: 'put',
data: data
})
}
......@@ -26,6 +26,15 @@ export function deleteSupplier(id) {
})
}
// 获得供应商列表
export function getSupplierList(query) {
return request({
url: '/ecw/supplier/list',
method: 'get',
params: query
})
}
// 获得供应商
export function getSupplier(id) {
return request({
......@@ -52,3 +61,30 @@ export function exportSupplierExcel(query) {
responseType: 'blob'
})
}
// 创建清关文件号码
export function createFileNo(data) {
return request({
url: '/ecw/clearance-file-no/create',
method: 'post',
data: data
})
}
// 更新供应商
export function updateFileNo(data) {
return request({
url: '/ecw/clearance-file-no/update',
method: 'put',
data: data
})
}
// 获得清关文件号码
export function getFileNoPage(query) {
return request({
url: '/ecw/clearance-file-no/page',
method: 'get',
params: query
})
}
\ No newline at end of file
......@@ -134,4 +134,10 @@ export function serviceConfig(data) {
})
}
// 数量是否必填
export function quantityRequired(lineId) {
return request({
url: '/ecw/warehouse/quantity/required/' + lineId,
method: 'get'
})
}
......@@ -5,7 +5,9 @@ export function getApiAccessLogPage(query) {
return request({
url: '/infra/api-access-log/page',
method: 'get',
timeout: 1000*60*3,
params: query
})
}
......
......@@ -13,6 +13,7 @@ export function getApiErrorLogPage(query) {
return request({
url: '/infra/api-error-log/page',
method: 'get',
timeout: 1000*60*3,
params: query
})
}
......
......@@ -9,6 +9,15 @@ export function listDept(query) {
})
}
// 查询当前登陆人的所属部门列表
export function myListDept(query) {
return request({
url: '/system/dept/myListDept',
method: 'get',
params: query
})
}
// 查询部门列表(排除节点)
export function listDeptExcludeChild(deptId) {
return request({
......
......@@ -5,6 +5,7 @@ export function listOperateLog(query) {
return request({
url: '/system/operate-log/page',
method: 'get',
timeout: 5*60000,
params: query
})
}
......@@ -15,6 +16,7 @@ export function exportOperateLog(query) {
url: '/system/operate-log/export',
method: 'get',
params: query,
timeout: 5*60000,
responseType: 'blob'
})
}
......@@ -21,7 +21,7 @@ export default {
this.$emit('input', this.valueSync.replace('+', ''))
},
value(){
if(this.value)this.valueSync = this.value
this.valueSync = this.value
}
},
created(){
......
......@@ -13,6 +13,11 @@
<div class="value">{{item.contactsName}}</div>
<el-tag v-if="item.isInOpenSea" type="danger" effect="dark">{{$t('')}}</el-tag>
</div>
<!-- v1.7新增 -->
<div class="line">
<div class="label">{{$t('姓名(英文)')}}</div>
<div class="value">{{item.contactsNameEn}}</div>
</div>
<div class="line">
<div class="label">{{$t('电话')}}</div>
<div class="value">+{{item.areaCode}} {{item.phoneNew}}</div>
......@@ -25,6 +30,11 @@
<div class="label">{{$t('公司')}}</div>
<div class="value">{{item.company}}</div>
</div>
<!-- v1.7新增 -->
<div class="line">
<div class="label">{{$t('公司(英文)')}}</div>
<div class="value">{{item.companyEn}}</div>
</div>
</div>
</div>
</div>
......
......@@ -141,6 +141,10 @@ export default {
*/
id: Number,
customerId: Number,
customerQuery:{
type:Boolean,
default:false
}
},
data() {
return {
......@@ -171,7 +175,7 @@ export default {
this.customerFollow.form.bizId = this.id
})
listServiceUser().then(r => {
console.log( r.data,'r.data跟进业务')
// console.log( r.data,'r.data跟进业务')
this.serviceUserList = r.data
})
this.getCustomerFollowList()
......@@ -237,7 +241,7 @@ export default {
this.$refs.dictMethod.changeValue(this.customerFollow.form.followMethod);
},
getCustomerFollowList() {
if(this.$route.name === 'customerQuery'){
if(this.customerQuery){
getCustomerFollowPage({customerId: this.customerId,pageNo:this.pageNo,pageSize:this.pageSize}).then(r => {
this.customerFollowList = r.data.list;
this.total = r.data.total;
......
......@@ -52,6 +52,8 @@ export default {
this.list.unshift(res.data)
this.index = 0
})
}else{
this.index = index
}
},
remoteMethod(keyword){
......@@ -61,6 +63,9 @@ export default {
getCustomerSelect(params)
.then(res => this.list = res.data.list)
.finally(() => this.loading = false)
},
reset(){
this.index=null
}
}
}
......
......@@ -57,8 +57,11 @@ export default {
}
},
computed:{
dicts(){
return this.getList(this.type)
},
dictList(){
return this.getList(this.type).filter(this.filter)
return this.dicts.filter(this.filter)
},
formattedList(){
let arr = []
......
......@@ -5,10 +5,11 @@
<el-image @click="dialogImageUrl = item.url; dialogVisible = true; " style="height: 148px; width:148px;" fit="fit" :src="item.url">
<video controls width="148px" height="148px" slot="error" :src="item.url" ></video>
</el-image>
<div @click="handleRemove(index)" class="el-icon-error" style="font-size: 25px;cursor: pointer;position: absolute;right: -10px; top: -10px" ></div>
<div v-if="!readonly" @click="handleRemove(index)" class="el-icon-error" style="font-size: 25px;cursor: pointer;position: absolute;right: -10px; top: -10px" ></div>
</div>
<div>
<el-upload
v-if="!readonly"
multiple
:action="uploadImgUrl"
list-type="picture-card"
......@@ -23,7 +24,7 @@
<i class="el-icon-plus"></i>
</el-upload>
<!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip">
<div class="el-upload__tip" slot="tip" v-if="showTip && !readonly">
{{ $t('请上传') }}
<template v-if="fileSize">{{ $t('大小不超过') }}<b style="color: #f56c6c">{{ fileSize }}MB</b> </template> <br>
<template v-if="fileType">{{ $t('格式为') }}<b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>{{ $t('的文件') }}</div>
......@@ -63,6 +64,10 @@ export default {
isShowTip: {
type: Boolean,
default: true
},
readonly: {
type: Boolean,
default: false
}
},
data() {
......
......@@ -14,8 +14,12 @@
<el-option
v-for="(item, index) in list"
:key="item.id"
:label="item['title' + lang]"
:label="item['title' + lang] + (item.auditStatus === 2 ? '' : `(${lang === 'Zh' ? '待确定' : 'To be determined'})`)"
:value="index">
<span style="float: left">{{ item['title' + lang] }}</span>
<span style="float: right; color: #c76e6e; font-size: 13px">
{{ item.auditStatus === 2 ? '' : (lang === 'Zh' ? '待确定' : 'To be determined') }}
</span>
</el-option>
</el-select>
</template>
......@@ -30,6 +34,16 @@ export default {
lang: {
type: String,
default: 'Zh'
},
// 是否显示待确认商品,不传默认不显示
determined: {
type: Boolean,
default: false
},
// 是否显示已有商品,不传默认
status: {
type: [String, Number],
default: null
}
},
data(){
......@@ -49,6 +63,10 @@ export default {
value(val){
// console.log('初始化内容', val)
this.init()
},
// 类型变了,清空内容
productType(){
this.list = []
}
},
created(){
......@@ -65,8 +83,10 @@ export default {
if(index < 0){
getProduct(this.value).then(res => {
this.list.unshift(res.data)
this.$nextTick(() => {
this.index = 0
})
})
}else this.index = index
},
onFocus(){
......@@ -80,7 +100,9 @@ export default {
},
remoteMethod(keyword){
let params = {
pageSize: keyword ? 100000 : 10
pageSize: keyword ? 100000 : 10,
filter: !this.determined,
status:this.status
}
if(this.productType){
params.typeId = this.productType
......
......@@ -32,14 +32,14 @@
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" prop="createTime">
<!-- <el-form-item :label="$t('创建时间')" prop="createTime">
<el-date-picker
v-model="form.createTime"
type="datetime"
value-format="timestamp"
:placeholder="$t('选择创建时间')">
</el-date-picker>
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('客户经理')" prop="customerService">
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')">
<el-option v-for="item in serviceUserList"
......
......@@ -2,7 +2,7 @@
<div>
<div class="filters mb-10">
{{$t('运输方式')}}
<dict-selector :type='DICT_TYPE.ECW_TRANSPORT_TYPE' v-model="transportType" :placeholder="$t('请选择运输方式')" style="width:150px" />
<dict-selector :type='DICT_TYPE.ECW_TRANSPORT_TYPE' v-model="transportType" :placeholder="$t('请选择运输方式')" :filter="transportFilter" style="width:150px" />
{{$t('始发地')}}
<el-select :placeholder="$t('请选择始发地')" v-model="exportCity" clearable>
......@@ -14,10 +14,13 @@
<el-option v-for="item in importCityList" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select>
<template v-if="type == 'air'">
{{$t('出货渠道')}}:
<el-select :placeholder="$t('请选择目渠道')" v-model="channelId" clearable>
<el-option v-for="item in channelList" :key="item.channelId" :label="item.nameZh" :value="item.channelId" />
</el-select>
</template>
</div>
<div class="mb-10">
<el-radio-group v-model="checkAll">
......@@ -45,11 +48,16 @@
{{$l(row, 'destTitle')}}
</template>
</el-table-column>
<el-table-column :label="$t('渠道')" prop="startTitleZh">
<el-table-column :label="$t('渠道')" prop="startTitleZh" v-if="type == 'air'">
<template slot-scope="{row}">
{{$l(row.channel, 'name')}}
</template>
</el-table-column>
<el-table-column v-if="showAttr" :label="$t('商品特性')" prop="startTitleZh">
<template slot-scope="{row}">
{{ getAttrNames(row.attrId) }}
</template>
</el-table-column>
<el-table-column :label="$t('操作')" prop="">
<template slot="header">
<el-checkbox @change="toggleGroupChecker(index, $event)" v-model="groupChecker[item.value]"></el-checkbox>
......@@ -69,12 +77,17 @@
import {getChannelList} from '@/api/ecw/channel'
import {getTradeCityList} from '@/api/ecw/region'
import {openedRouterList} from '@/api/ecw/warehouse'
import {getProductAttrList} from "@/api/ecw/productAttr";
import Template from "@/views/cms/template";
export default {
components: {Template},
props:{
value: {
type: Array
},
option: Object
option: Object,
// 类型,sea海运,air空运
type: String
},
data(){
return {
......@@ -90,7 +103,7 @@ export default {
hideMap: {}, // 折叠状态
checkAll: null,
groupChecker: {}, // 分组全选状态
attrList:[], // 商品特性
}
},
computed:{
......@@ -114,12 +127,14 @@ export default {
})
return ids
},
// 根据选择的渠道筛选
availChannelList(){
return this.channelList.filter(item => !this.channelId || this.channelId == item.channelId)
},
filteredRouterList(){
let transportTypeList = []
this.transportTypeDicts
.filter(this.transportFilter)
.filter(transport => !this.channelId || transport.cssClass == 'channel')
.forEach(item => {
if(this.transportType === null || this.transportType == '' || this.transportType == item.value){
......@@ -151,6 +166,25 @@ export default {
}
})
return transportTypeList
},
// 是否显示商品特性(渠道)
showAttr(){
return this.type == 'air'
},
// 显示产品特性
getAttrName(){
return (id) => {
let item = this.attrList.find(item => item.id == id)
if(!item) return ''
return this.$l(item, 'attrName')
}
},
// 显示多个商品特性
getAttrNames(){
return (ids) => {
if(!ids) return ''
return ids.split(',').filter( item => !!item).map(id => this.getAttrName(id)).join(',')
}
}
},
watch:{
......@@ -209,8 +243,18 @@ export default {
this.changeOption()
}
// 如果显示特性,则需要查询特数据备用
if(this.showAttr){
this.getAttrList()
}
},
methods:{
getAttrList(){
getProductAttrList().then(res => {
this.attrList = res.data
})
},
changeOption(){
if(!this.option) return
this.importCity = +this.option.importCity || null
......@@ -265,15 +309,6 @@ export default {
return this.selectedRoutes.findIndex(item => {
return item.lineId == router.id && item.channelId == router.channel.channelId
})
/* let index = null
this.selectedRoutes.forEach((item, i)=>{
if(item.lineId == router.id && item.shippingChannelId == router.channel.channelId){
index = i
// break
}
})
return index */
},
SpanMethod({ row, column, rowIndex, columnIndex }){
if (columnIndex < 2 ) {
......@@ -290,7 +325,11 @@ export default {
// 折叠,展开
toggleHide(value){
this.$set(this.hideMap, value, !this.hideMap[value])
}
},
// 运输方式筛选
transportFilter(item){
return (this.type == 'sea' ? ['1','2'] : ['3', '4']).indexOf(item.value) > -1
},
}
}
</script>
......
<template>
<el-select
v-model="valueSync"
multiple
filterable
clearable
remote
reserve-keyword
:disabled="disabled"
placeholder="请输入关键词"
@focus="remoteMethod('')"
:remote-method="remoteMethod"
:loading="loading">
<el-option
v-for="(item) in list"
:key="item.id"
:label="$l(item, 'company') + '('+item.companyCode+')'"
:value="item.id">
</el-option>
</el-select>
</template>
<script>
import {getSupplierList, getSupplierPage} from '@/api/ecw/supplier'
export default {
props:{
companyType: [String, Number],
value: [Array],
disabled: {
type: Boolean,
default: false
}
},
data(){
return {
valueSync: [],
list:[],
loading: false
}
},
computed:{
},
watch:{
valueSync(val){
this.$emit('input', val)
},
value(val){
this.valueSync = this.value
this.init(val)
}
},
created(){
this.valueSync = this.value
this.init(this.value)
},
methods:{
init(val){
if(val === null || val == undefined || val == '') return
let params = {
ids: val.toString()
}
getSupplierList(params).then(res => {
this.list = res.data
})
},
remoteMethod(keyword){
let params = {
pageSize: 500,
companyType: this.companyType
}
params.keyword = keyword
this.loading = true
getSupplierPage(params)
.then(res => this.list = res.data.list)
.finally(() => this.loading = false)
}
}
}
</script>
\ No newline at end of file
......@@ -17,11 +17,15 @@
</template>
<script>
import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customerContacts'
import {listSimpleUsers} from '@/api/system/user'
import {listServiceUser, listSimpleUsers} from '@/api/system/user'
export default {
props:{
value: [String, Number],
clearable: Boolean
clearable: Boolean,
manage:{
type:Boolean,
default:false
}
},
data(){
return {
......@@ -44,9 +48,18 @@ export default {
}
},
created(){
if(this.manage){
// 客户经理
listServiceUser().then(r=>{
this.list = r.data;
})
}else {
// 全部客户
listSimpleUsers().then(res => {
this.list = res.data
})
}
// this.init()
},
methods:{
......
This diff is collapsed.
......@@ -12,7 +12,7 @@
</div>
<el-form label-position="left" label-width="100px">
<el-form-item :label="$t('抄送')">
<el-select v-model="valueSync" multiple :placeholder="$t('请选择抄送人')" style="width:100%" filterable >
<el-select v-model="valueSync" multiple :placeholder="$t('请选择抄送人')" style="width:100%" filterable :disabled="disabled" >
<el-option
v-for="item in users"
:key="item.id"
......@@ -45,7 +45,8 @@ export default {
taskData: { // 任务实例的数据。传递时,可展示 UserTask 审核相关的信息
type: Array,
default: () => [],
}
},
disabled: Boolean
},
data(){
return {
......
This diff is collapsed.
......@@ -161,7 +161,7 @@
"目的仓": "目的仓",
"目的地": "目的地",
"确定": "确定",
"确订打印": "确订打印",
"确定打印": "确定打印",
"确认添加": "确认添加",
"税率": "税率",
"箱数": "箱数",
......
......@@ -94,10 +94,14 @@ export default {
}
},
created() {
this.updateMessage()
// 未避免频繁内存溢出,减少请求记录感染,开发的时候不轮询消息
if(process.env.NODE_ENV != 'development'){
setInterval(() => {
this.updateMessage()
}, 10000)
}
this.updateMessage()
},
components: {
Breadcrumb,
......@@ -158,7 +162,7 @@ export default {
saveLocale(value)
}, */
async logout() {
this.$modal.confirm('确定注销并退出系统吗?', '提示').then(() => {
this.$modal.confirm(this.$t('确定注销并退出系统吗?'), this.$t('提示')).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = '/';
})
......
import { Message, MessageBox, Notification, Loading } from 'element-ui'
import i18n from "@/i18n";
let loadingInstance;
export default {
// 消息提示
msg(content) {
......@@ -21,19 +20,19 @@ export default {
},
// 弹出提示
alert(content) {
MessageBox.alert(content, "系统提示")
MessageBox.alert(content, i18n.t("系统提示"))
},
// 错误提示
alertError(content) {
MessageBox.alert(content, "系统提示", { type: 'error' })
MessageBox.alert(content, i18n.t("系统提示"), { type: 'error' })
},
// 成功提示
alertSuccess(content) {
MessageBox.alert(content, "系统提示", { type: 'success' })
MessageBox.alert(content, i18n.t("系统提示"), { type: 'success' })
},
// 警告提示
alertWarning(content) {
MessageBox.alert(content, "系统提示", { type: 'warning' })
MessageBox.alert(content, i18n.t("系统提示"), { type: 'warning' })
},
// 通知提示
notify(content) {
......@@ -52,18 +51,19 @@ export default {
Notification.warning(content)
},
// 确认窗体
confirm(content) {
return MessageBox.confirm(content, "系统提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
return MessageBox.confirm(content, i18n.t("系统提示"), {
confirmButtonText: i18n.t('确定'),
cancelButtonText: i18n.t('取消'),
type: "warning",
})
},
// 提交内容
prompt(content) {
return MessageBox.prompt(content, "系统提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
return MessageBox.prompt(content, i18n.t("系统提示"), {
confirmButtonText: i18n.t('确定'),
cancelButtonText: i18n.t('取消'),
type: "warning",
})
},
......
......@@ -157,8 +157,8 @@ export const constantRoutes = [
}, {
path: 'process-instance/detail',
component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve),
name: '流程详情',
meta: {title: '流程详情', activeMenu: '/bpm/task/my'}
name: 'Flow details',
meta: {title: '流程详情',titleEn:'Flow details', activeMenu: '/bpm/task/my'}
}
]
},
......@@ -171,13 +171,13 @@ export const constantRoutes = [
path: 'empAchievement',
component: (resolve) => require(['@/views/ecw/deptTarget/empAchievement'], resolve),
name: '员工业绩',
meta: {title: '员工业绩', activeMenu: '/deptTarget/index'}
meta: {title: '员工业绩',titleEn: 'Emp Achievement', activeMenu: '/deptTarget/index'}
},
{
path: 'myDeptAchievement',
component: (resolve) => require(['@/views/ecw/deptTarget/myDeptAchievement'], resolve),
name: '我的部门业绩',
meta: {title: '我的部门业绩', activeMenu: '/deptTarget/myDeptAchievement'}
meta: {title: '我的部门业绩',titleEn: 'My dept Achievement', activeMenu: '/deptTarget/myDeptAchievement'}
}
]
},
......@@ -466,6 +466,28 @@ export const constantRoutes = [
}
]
},
{
path: '/boxAir',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'query/:shipmentId(\\d+)',
component: (resolve) => import('@/views/ecw/box/queryAir'),
props: true,
name: 'shippingDetail',
meta: {titleZh: '出货详情', titleEn: "Shipping Details", icon: '', activeMenu: '/shipment/boxDetail'}
},
{
path: 'shippingAir/:shipmentId(\\d+)',
component: (resolve) => import('@/views/ecw/box/shippingAir/shippingAir'),
props: true,
name: 'shippingAir',
meta: {titleZh: '空运出货操作', titleEn: "Ocean shipment operation", icon: '', activeMenu: '/shipment/boxAir'}
}
]
},
]
// 防止连续点击多次路由报错
......
......@@ -70,6 +70,7 @@ export const DICT_TYPE = {
ECW_DATA_SOURCE: 'data_source', // 数据来源
ECW_REGION_TYPE: 'region_trade_type', // 区域类型
ECW_TRANSPORT_TYPE: 'transport_type', //货运方式
ECW_KYC_DATA: 'member_control_reuest', //会员控单方式
ECW_CHARGE_TYPE: 'warehouse_charge_type', //仓储收费方式
ECW_SHELF_TYPE: 'shelf_type', //货架类型
ECW_PRODUCT_MATERIAL: 'product_material', //商品材质
......@@ -118,6 +119,9 @@ export const DICT_TYPE = {
ECW_CUSTOMER_RESOURCE_TYPE: 'customer_resource_type', // 客户资源类型
ECW_CUSTOMER_TRANSPORT_TYPE: 'customer_transport_type', // 客户出货渠道(跟运输方式相同,但是显示全部)
ECW_ORDER_APPROVAL_TYPE: 'order_approval_type', // 订单相关审批类型
ECW_FEE_SOURCE: 'fee_source', // 费用来源
STOCK_UP_EXCEPTION_TYPE: 'stock_up_exception_type', // 备货异常类型,
ORDER_ITEM_PACK_STATUS: 'order_item_pack_status', // 空运备货打包状态
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source',
......@@ -151,6 +155,7 @@ export const DICT_TYPE = {
CUSTOMER_CREDIT_RULE_TYPE: 'customer_credit_rule_type',
CUSTOMER_LEVEL_RULE_TYPE: 'customer_level_rule_type',
CUSTOMER_ESOURCE_TYPE:'customer_resource_type',//客户资源类型
CUSTOMER_OPERATE_TYPE:'customer_operate_type',
// order
ORDER_TYPE: 'order_type', // 订单类型
PRODUCT_RECORD_ATTRIBUTE: 'product_record_attribute', //产品备案属性
......@@ -178,6 +183,8 @@ export const DICT_TYPE = {
ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果
ORDER_QUERY_PROD_FIELD: 'order_query_prod_field',//订单查询产品字段
ORDER_QUERY_NO_FIELD: 'order_query_no_field',//订单查询非产品字段
NEED_KNOW_TYPE:'need_know_type',//需知类型
NEED_KNOW_STATUS:'need_know_status',//需知状态
MANUAL_EXCEPTION_TYPE:'manual_exception_type',
......@@ -185,6 +192,8 @@ export const DICT_TYPE = {
WAREHOUSING_SPECIFICATION_TYPE: 'warehousing_specification_type',
ECW_AUTH_TYPE:'auth_type',//品牌授权
NEED_ORDER_INQUIRY: 'need_order_inquiry', // 是否需要単询
ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'receivable_fee_type',
// PAY_TYPE:'payment_type',
......@@ -193,6 +202,8 @@ export const DICT_TYPE = {
ORDER_SPECIAL_NEEDS:'order_special_needs', // 订单特殊需求
ORDER_ABNORMAL_STATE:'order_abnormal_state',
TARGET_TYPE:'target_type',//部门业绩目标类型
CEBE_UNIT:'cube_unit',//目标单位
RECEIPT_ITEM_STATE:'receipt_item_state',//收款单明细状态
// ========== 出货模块 ==========
BOX_SHIPPING_TRAILER_STATUS: 'shipping_trailer_status', // 拖车状态
BOX_SHIPPING_CUSTOMS_TYPE: 'shipping_customs_type', // 报关方式
......@@ -214,7 +225,9 @@ export const DICT_TYPE = {
BOX_SHIPPING_ERROR_TYPE: "shipping_error_type",// 起运异常状态
BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态
APP_TYPE:"app_type", //系统类型
AIR_SHIPMENT_PROCESS:'air_shipment_process'
}
/**
......
......@@ -10,6 +10,7 @@ export function checkPermi(value) {
const permissions = store.getters && store.getters.permissions
const permissionDatas = value
const all_permission = "*:*:*";
console.log(permissionDatas)
const hasPermission = permissions.some(permission => {
return all_permission === permission || permissionDatas.includes(permission)
......
......@@ -16,7 +16,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL: (localStorage.VUE_APP_BASE_API || process.env.VUE_APP_BASE_API) + '/admin-api/', // 此处的 /admin-api/ 地址,原因是后端的基础路径为 /admin-api/
// 超时
timeout: 100000
timeout: 1000 * 30
})
// request拦截器
service.interceptors.request.use(config => {
......@@ -87,6 +87,7 @@ service.interceptors.response.use(res => {
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code === 500) {
Message({
dangerouslyUseHTMLString: true,
message: msg,
type: 'error'
})
......@@ -106,6 +107,12 @@ service.interceptors.response.use(res => {
} else if (code === 555) {
// 额外情况
return Promise.reject(res.data)
} else if (code === 566) {
// 额外情况
return Promise.reject(res.data)
} else if (code === 666) {
// 额外情况
return Promise.reject(res.data)
} else if (code !== 200) {
Notification.error({
title: msg
......
......@@ -281,6 +281,11 @@ export default {
component: "BoxSplitDetail",
id: this.processInstance.businessKey,
},
// 退场拆单,跟出货装柜拆单一样
exit_split: {
component: "BoxSplitDetail",
id: this.processInstance.businessKey,
},
merge_detail: {
component: "MergeDetail",
id: this.processInstance.businessKey,
......@@ -339,6 +344,77 @@ export default {
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//付款单审核-所有审核流程详情组件
finance_payment_approve:{
component: () => import('@/views/ecw/financial/components/PaymentApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单审核
finance_receipt_approve:{
component: () => import('@/views/ecw/financial/components/CollectionApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单核销
finance_receipt_write_off:{
component: () => import('@/views/ecw/financial/components/CollectionWriteoff'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单反核销审核
finance_receipt_write_off_no:{
component: () => import('@/views/ecw/financial/components/CollectionApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单核销反审核
finance_receipt_approve_no:{
component: () => import('@/views/ecw/financial/components/CollectionApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单银行实收明细核销
finance_receipt_item_write_off:{
component: () => import('@/views/ecw/financial/components/CollectionBankDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单银行实收反核销
finance_receipt_item_write_off_no:{
component: () => import('@/views/ecw/financial/components/CollectionBankDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//佣金付款单审核详情-关于佣金付款单所有审核详情
commissionPaymentDetails:{
component: ()=>import('@/views/ecw/financial/components/commissionPaymentDetails.vue'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
/*撤销拆单*/
split_revoke:{
component: () => import("@/views/ecw/order/components/SplitRevokeDetail"),
id: this.processInstance.businessKey
},
// 不可出渠道异常审核
not_shiping_channel:{
component: () => import('@/views/ecw/order/components/NotShipingChannel'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
// 出货批量加价审核
box_batch_markup:{
component: () => import('@/views/ecw/box/components/batchMakeUpDetail.vue'),
processId: this.processInstance.businessKey,
type: this.processInstance.processDefinition?.formCustomViewPath
},
// 可获移交详情
customer_handover_details:{
component: () => import('@/views/ecw/customer/components/customer-handover-details.vue'),
processId: this.processInstance.businessKey,
type: this.processInstance.processDefinition?.formCustomViewPath
}
}
console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
......
......@@ -2,13 +2,13 @@
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('流程编号')" prop="processId">
<el-form-item :label="$t('流程编号')" prop="instanceId">
<el-input v-model="queryParams.instanceId" :placeholder="$t('请输入流程编号')" clearable/>
</el-form-item>
<el-form-item :label="$t('流程名称')" prop="processName">
<el-input v-model="queryParams.processName" :placeholder="$t('请输入任务名称')" clearable/>
</el-form-item>
<el-form-item :label="$t('流程分类')" prop="processName">
<el-form-item :label="$t('流程分类')" prop="categoryId">
<el-select v-model="queryParams.categoryId" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
......
<template>
<iframe src="https://chat.groupage.cn/" class="iframe"></iframe>
<iframe :src="url" class="iframe"></iframe>
</template>
<style>
.iframe{
......@@ -8,3 +8,24 @@
border: none;
}
</style>
<script>
import {getUserProfile} from "@/api/system/user";
export default {
data() {
return {
username: ''
}
},
computed:{
url(){
return 'https://chatgpt.groupage.cn/#/' + this.username
}
},
created() {
getUserProfile().then(res => {
this.username = res.data.username
})
}
}
</script>
This diff is collapsed.
<template>
<div class="app-approvalShipping">
<h1>{{$t('申请信息')}}{{$t('出货信息')}}</h1>
<el-descriptions :column="6" border>
<el-descriptions-item :label="$t('自编号')">{{boxBackVO.selfNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')">
{{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('柜型')">
{{cabinetLabel}}
</el-descriptions-item>
<el-descriptions-item :label="$t('体积/重量')">
{{getVolumeWeight(loadDetail.totalStatistics)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('货柜状态')">
{{boxBackVO.shipmentStatusText}}
</el-descriptions-item>
</el-descriptions>
<div v-if="approvalInfo.applyReason">
<h1>{{$t('申请原因')}}</h1>
<div>
{{approvalInfo.applyReason}}
</div>
</div>
<el-table :data="loadDetail.sectionOrderList" border class="mt-10">
<el-table-column prop="orderNo" :label="$t('订单号')" align="center">
<template v-slot="{row}">
<el-button type="text" @click="jumpOrderDetail(row)">{{row.orderNo}}</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('货物信息')" align="center" width="500px">
<template v-slot="{row}">
<section>
<div v-for="(item, index) in row.goodsList" :key="index">
<div>{{index+1}}{{$l(item, 'prodTitle')}}</div>
</div>
</section>
</template>
</el-table-column>
<el-table-column :label="$t('收费箱数')" align="center" prop="num"></el-table-column>
<el-table-column :label="$t('收费体积')" align="center" prop="chargeVolume"></el-table-column>
<el-table-column :label="$t('收费重量')" align="center" prop="chargeWeight"></el-table-column>
<el-table-column :label="$t('加价金额')" align="center">
<template slot-scope="{row}" v-if="details">
<div>
{{$t('运费')}}{{details.freightFee || 0}}{{ currencyMap[details.freightCurrencyId]}}/{{unitMap[details.freightUnitId]}}
</div>
<div>
{{$t('清关费')}}{{details.clearanceFee || 0}}{{ currencyMap[details.clearanceCurrencyId]}}/{{unitMap[details.clearanceUnitId]}}
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { approvalDetail } from "@/api/ecw/box";
import { getSeaStatus, getTotlContent } from "../shippingSea/utils";
import { getCabinetPage } from "@/api/ecw/cabinet";
import { getChannelList } from "@/api/ecw/channel";
import Decimal from "decimal.js";
import Template from "@/views/cms/template/index.vue";
import {getUnitList} from "@/api/ecw/unit";
import {getCurrencyList} from "@/api/ecw/currency";
/**
* 批量加价审核详情
*/
export default {
name: "BatchMakeUpDetail",
components: {Template},
props: {
processId: {
type: [Number, String],
},
type: String,
},
data() {
return {
unitList:[],
currencyList:[],
approvalInfo: {},
boxBackVO: {},
loadDetail: {},
// 柜型
cabinetLabel: "",
//渠道
channelList: [],
// 弹出配置
dialogConfig: {
title: "",
visible: false,
},
srcStrs: [],
};
},
created() {
getUnitList().then(res => this.unitList = res.data)
getCurrencyList().then(res => this.currencyList = res.data)
getChannelList().then((res) => (this.channelList = res.data));
},
methods: {
getTotlContent,
/* 获取详情 */
getApprovalDetail(processId) {
approvalDetail({ approvalId: processId }).then((res) => {
this.approvalInfo = res.data.approvalInfo;
this.boxBackVO = res.data.boxBackVO;
this.loadDetail = res.data.loadDetail;
});
},
/* 获取柜型 */
getCabinetLabel(cabinetId) {
getCabinetPage(null).then((response) => {
const cabinetList = response.data.list;
for (const cabinetItem of cabinetList) {
if (cabinetItem.id == cabinetId) {
this.cabinetLabel = cabinetItem.name;
break;
}
}
});
},
/* 合计 */
calcSum(goodsList) {
let sum = 0;
goodsList.forEach((element) => {
sum = Decimal.add(sum, element.num).toNumber();
});
return sum;
},
/* 跳转订单详情 */
jumpOrderDetail(row) {
this.$router.push("/order/detail?orderId=" + row.orderId);
},
},
watch: {
processId: {
immediate: true,
handler(val) {
this.getApprovalDetail(val);
},
},
boxBackVO(val) {
// 柜型
this.getCabinetLabel(val.cabinetId);
},
},
computed: {
/* 渠道 */
getShipChannelName() {
return (shippingChannelId) => {
for (const channelItem of this.channelList) {
if (channelItem.channelId == shippingChannelId) {
return this.$l(channelItem, "name");
}
}
};
},
/* 体积重量 */
getVolumeWeight() {
return (total) => {
return this.getTotlContent(total);
};
},
/* 是否显示卸柜箱数 */
isShowColumn() {
return (shippingVO) => {
return getSeaStatus(shippingVO) >= 182 ? true : false;
};
},
details(){
if(!this.approvalInfo) return null
return JSON.parse(this.approvalInfo?.details)
},
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
},
};
</script>
<style lang="scss" scoped>
.el-image {
border-radius: 5px;
background-color: #ebeef5;
box-shadow: 0 0 5px 1px #ccc;
::v-deep .el-image__inner {
transition: all 0.3s;
cursor: pointer;
&:hover {
transform: scale(1.2);
}
}
::v-deep .image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
color: #909399;
font-size: 30px;
}
}
</style>
<template>
<div class="shippingSea-dialog">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item :label="$t('运输方式')" prop="transportType">
<el-radio-group v-model="form.transportType">
<el-radio v-for="dict in transportTypes" :key="dict.value" :label="dict.value">{{$l(dict, 'label')}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('出货渠道')" prop="shippingChannelId">
<el-select v-model="form.shippingChannelId" :placeholder="$t('请选择出货渠道')">
<el-option v-for="item in channelList" :label="$l(item, 'name')" :value="item.channelId" :key="item.channelId"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('始发地')" prop="startWarehouseId">
<el-select v-model="form.startWarehouseId" :placeholder="$t('请选择始发地')">
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的地')" prop="destWarehouseId">
<el-select v-model="form.destWarehouseId" :placeholder="$t('请选择目的地')">
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的港清关')" prop="destinationClearance">
<el-radio-group v-model="form.destinationClearanceSelect" @input="destinationClearanceSelect">
<el-radio :label="1">{{$t('我司')}}</el-radio>
<el-radio :label="3">{{$t('客户')}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.destinationClearanceSelect==1" prop="destinationClearance" :rules="[
{ required: true, message: this.$t('清关方式不能为空'), trigger: 'blur' }
]">
<el-radio-group v-model="form.destinationClearance">
<el-radio :label="1">{{$t('我司清关')}}</el-radio>
<el-radio :label="2">{{$t('合作方清关')}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('发货方式')" prop="deliveryType">
<el-radio-group v-model="form.deliveryType">
<el-radio :label="1">{{$t('多票')}}</el-radio>
<el-radio :label="2">{{$t('单票')}}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">{{$t('确定')}}</el-button>
<el-button @click="cancel">{{$t('取消')}}</el-button>
</div>
</div>
</template>
<script>
import { createbox, updatebox } from "@/api/ecw/boxAir";
import { getChannelList } from '@/api/ecw/channel'
export default {
name: "editAirForm",
inheritAttrs: false,
props: {
transportTypes: Array,
warehouseList: Array,
cabinetList: Array,
shipmentObj: Object,
},
created() {
this.form = { ...this.shipmentObj };
if(this.form.destinationClearance && this.form.destinationClearance != 3){
this.form.destinationClearanceSelect = 1
}
this.getChannelList()
},
data() {
return {
// 表单参数
form: {},
channelList: [],
// 表单校验
rules: {
shippingChannelId: [
{ required: true, message: this.$t('出货渠道不能为空'), trigger: 'blur' }
],
startWarehouseId: [
{ required: true, message: this.$t('始发地不能为空'), trigger: 'blur' }
],
destWarehouseId: [
{ required: true, message: this.$t('目的地不能为空'), trigger: 'blur' }
]
}
};
},
methods: {
getChannelList() {
getChannelList().then((res) => (this.channelList = res.data))
},
destinationClearanceSelect(val) {
this.$set(this.form,'destinationClearance',val)
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate((valid) => {
if (!valid) {
return
}
// 修改的提交
if (this.form.id != null) {
updatebox(this.form).then((response) => {
this.$modal.msgSuccess(this.$t('修改成功'))
this.$emit("closeDialog", "edit");
})
return
}
// 添加的提交
createbox(this.form).then((response) => {
this.$modal.msgSuccess(this.$t('新增成功'))
this.$emit("closeDialog", "edit");
})
})
},
/** 取消按钮 */
cancel() {
this.$emit("closeDialog");
},
},
computed: {
exportWarehouseList() {
return this.warehouseList.filter(
(item) => item.tradeType == "2" || item.type == "3"
);
},
importWarehouseList() {
return this.warehouseList.filter(
(item) => item.tradeType == "1" || item.type == "3"
);
},
},
};
</script>
<style lang="scss">
// 海运操作统一弹窗样式
.shippingSea-dialog {
// 页面内元素弹窗form控件宽度设置
.el-form-item__content {
> div:not(.el-input-number) {
width: 100%;
}
}
.operate-button {
text-align: center;
}
.two-element-formItem {
display: flex;
> :last-child {
width: 100%;
margin-left: 10px;
}
}
.two-element {
.el-form-item__content {
display: flex;
> :last-child {
margin-left: 10px;
}
}
}
}
</style>
This diff is collapsed.
......@@ -158,7 +158,7 @@
<el-form-item :label="$t('自单代报订单方数')">
{{form.orderReportNumber}} m³
</el-form-item>
<el-form-item :label="$t('已装柜数')">
<el-form-item :label="$t('已装柜数')">
{{form.loadingNumber}} m³
</el-form-item>
......@@ -338,10 +338,11 @@ export default {
//在仓 = 已入仓-已封柜
//this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
//},
/* 2023-05-06 微信群@郑屹反馈确认,由接口计算,前端无需处理
'form.loadingNumber'(){
//在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
}
}*/
},
methods: {
getVolume(){
......@@ -354,10 +355,13 @@ export default {
}
let data = {
transportId: this.form.transportType,
channelId: this.form.shippingChannelId,
departureId: this.form.startWarehouseId,
objectiveId: this.form.destWarehouseId
}
// 空运才需要渠道
if(data.transportId == 4){
data.channelId = this.form.shippingChannelId
}
// 获得已封柜方数
getBoxedVolume(data).then(res => {
this.$set(this.form, 'loadingNumber', res.data || 0)
......
......@@ -56,6 +56,14 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('提单制作')" prop="ladingBillStatus">
<el-select v-model="queryParams.ladingBillStatus" :placeholder="$t('请选择提单制作状态')" clearable size="small">
<el-option v-for="(item,index) in ladingBillStatusData" :key="index" :label="item" :value="index">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -107,6 +115,13 @@
<el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" />
<el-table-column :label="$t('提单状态')" align="center" prop="ladingBillStatus" width="180">
<template slot-scope="scope">
<span>{{ ladingBillStatusData[scope.row.ladingBillStatus] }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('日期')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span>
......@@ -119,7 +134,7 @@
{{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item :disabled="scope.row.ldStatus>=46" command="edit">{{$t('编辑')}}</el-dropdown-item> -->
<el-dropdown-item :disabled="scope.row.prStatus>21" command="edit" v-hasPermi="['shipment:box:update']">{{$t('编辑')}}</el-dropdown-item>
<el-dropdown-item command="sea" v-hasPermi="['shipment:box:action:sea']">{{$t('操作-海运')}}</el-dropdown-item>
<el-dropdown-item command="error" v-hasPermi="['shipment:box:action:error']">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost" v-hasPermi="['shipment:box:action:cost']">{{$t('费用登记')}}</el-dropdown-item>
......@@ -268,6 +283,11 @@ export default {
// 通知列表
noticeList: [],
allUsers: [],
ladingBillStatusData: [
this.$t("未完成"),
this.$t("部分完成"),
this.$t("已完成"),
],
};
},
computed: {
......@@ -297,7 +317,7 @@ export default {
this.DICT_TYPE.ECW_TRANSPORT_TYPE
).filter((item) => item.value == "1" || item.value == "2");
getWarehouseList().then((res) => (this.warehouseList = res.data));
getCabinetPage(null).then((response) => {
getCabinetPage({status:0}).then((response) => {
this.cabinetList = response.data.list;
});
this.getList();
......
......@@ -301,7 +301,7 @@ export default {
this.DICT_TYPE.ECW_TRANSPORT_TYPE
).filter((item) => item.value == "4");
getWarehouseList().then((res) => (this.warehouseList = res.data));
getCabinetPage(null).then((response) => {
getCabinetPage({status:0}).then((response) => {
this.cabinetList = response.data.list;
});
this.getList();
......
......@@ -9,7 +9,22 @@
<el-row style="margin-top:15px">
<el-table :data="billData.list" border max-height="500px">
<el-table-column :label="$t('序号')" align="center" width="50" prop="tidanNo" />
<el-table-column :label="$t('订单号')" align="center" prop="orderNo" />
<el-table-column :label="$t('订单号')" align="center" prop="orderNo">
<template slot-scope="scope">
<div>
{{scope.row.orderNo}}
</div>
<div style="color:blue;fontWeight:bold;">
{{ scope.row.drawee? scope.row.drawee:''}}
</div>
<div style="color:red;fontWeight:bold;">
{{ scope.row.applicationInfo? scope.row.applicationInfo : ''}}
</div>
<div style="color:red;fontWeight:bold;">
{{ scope.row.customsTypeName? scope.row.customsTypeName : ''}}
</div>
</template>
</el-table-column>
<el-table-column :label="$t('货物信息')" align="center" prop="">
<template slot-scope="scope">
<section class="table-goodList">
......
......@@ -140,9 +140,9 @@
</el-table-column>
<el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;">{{$t('编辑')}}</el-button>
<el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;" v-hasPermi="['ecw:box-cost:update']">{{$t('编辑')}}</el-button>
<el-popconfirm :title="$t('确定是否删除')" @confirm="deleteCostClick(scope.row)">
<el-button type="danger" size="small" slot="reference">{{$t('删除')}}</el-button>
<el-button type="danger" size="small" slot="reference" v-hasPermi="['ecw:box-cost:delete']">{{$t('删除')}}</el-button>
</el-popconfirm>
</template>
</el-table-column>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment