Commit 0c0aab7d authored by Marcus's avatar Marcus

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

No related merge requests found
...@@ -6,7 +6,7 @@ VUE_APP_TITLE = 捷道管理系统-测试站 ...@@ -6,7 +6,7 @@ VUE_APP_TITLE = 捷道管理系统-测试站
# 捷道管理系统/开发环境 # 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com' VUE_APP_BASE_API = 'https://api.jd.jdshangmen.com'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true
......
...@@ -62,7 +62,7 @@ export default { ...@@ -62,7 +62,7 @@ export default {
padding-right: 30px; padding-right: 30px;
padding-left: 5px; padding-left: 5px;
} }
$sizes: 0, 10,20,30,50,75,100,150,200,300,500,800,1000; $sizes: 0, 5, 10,20,30,50,75,100,150,200,300,500,800,1000;
@for $i from 1 through length($sizes){ @for $i from 1 through length($sizes){
$item: nth($sizes, $i); $item: nth($sizes, $i);
.ml-#{$item}{ .ml-#{$item}{
......
...@@ -49,7 +49,7 @@ export function exportboxExcel(query) { ...@@ -49,7 +49,7 @@ export function exportboxExcel(query) {
url: "/shipment/box/export-excel", url: "/shipment/box/export-excel",
method: "get", method: "get",
params: query, params: query,
timeout: 5 * 60000, timeout: 20 * 60000,
responseType: "blob", responseType: "blob",
}); });
} }
...@@ -343,3 +343,29 @@ export function updateUrl(data) { ...@@ -343,3 +343,29 @@ export function updateUrl(data) {
data, data,
}); });
} }
export function dealCustomsSplitNotify(notifyId){
return request({
url: `/shipment/box/dealCustomsSplitNotify?notifyId=${notifyId}`,
method: "get",
})
}
// 自编号报表分页
export function boxSettlementPage(params) {
return request({
url: "/shipment/box/pageSettlement",
method: "get",
params,
});
}
// 导出自编号汇总excel
export function exportSettlementExcel(params) {
return request({
url: "/shipment/box/export-shipment-summary",
method: "get",
responseType: "blob",
params,
});
}
import request from '@/utils/request'
// 创建汇率管理
export function createExchangeRate(data) {
return request({
url: '/ecw/exchange-rate/create',
method: 'post',
data: data
})
}
// 更新汇率管理
export function updateExchangeRate(data) {
return request({
url: '/ecw/exchange-rate/update',
method: 'put',
data: data
})
}
// 删除汇率管理
export function deleteExchangeRate(id) {
return request({
url: '/ecw/exchange-rate/delete?id=' + id,
method: 'delete'
})
}
// 获得汇率管理
export function getExchangeRate(id) {
return request({
url: '/ecw/exchange-rate/get?id=' + id,
method: 'get'
})
}
// 获得汇率管理分页
export function getExchangeRatePage(query) {
return request({
url: '/ecw/exchange-rate/page',
method: 'get',
params: query
})
}
// 汇率日志查询
export function getExchangeRateLogList(params){
return request({
url:'/ecw/exchange-rate-log/page',
method:'get',
params,
})
}
// 导出汇率管理 Excel
export function exportExchangeRateExcel(query) {
return request({
url: '/ecw/exchange-rate/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
...@@ -62,7 +62,14 @@ export function getReceivableDiscountLogById(query) { ...@@ -62,7 +62,14 @@ export function getReceivableDiscountLogById(query) {
params: query params: query
}) })
} }
// 根据订单ID获得需要预付应收款列表
export function getReceivableByOrderId(query) {
return request({
url: '/ecw/receivable/getReceivableByOrderId',
method: 'get',
params: query
})
}
// 根据订单ID获得需要预付应收款列表 // 根据订单ID获得需要预付应收款列表
export function getFirstReceivableListByOrderId(query) { export function getFirstReceivableListByOrderId(query) {
return request({ return request({
......
...@@ -103,4 +103,13 @@ export function getWarehousingVolume(params){ ...@@ -103,4 +103,13 @@ export function getWarehousingVolume(params){
}) })
} }
// 获取装柜或出仓重量
export function getBoxedWeight(params){
return request({
url:'/ecw/future-box/getBoxedWeight',
method:'get',
params
})
}
...@@ -96,6 +96,44 @@ export function feeApplicationListByOrderId(query){ ...@@ -96,6 +96,44 @@ export function feeApplicationListByOrderId(query){
data:data, data:data,
}) })
} }
// 批量申请费用
export function feeApplicationCreateBatch(data){
return request({
url:'order/fee-application/create/batch',
method:'post',
data:data,
})
}
// 根据订单ID获取是否有正在申请的费用申请
export function getFeeApplicationApproveByOrderId(orderId){
return request({
url:'/order/fee-application/get/isApprove',
method:'get',
params: {id: orderId}
})
}
// 根据流程主键ID得到批量申请费用
export function getBatchFeeByBusinessId(businessId){
return request({
url:'/order/fee-application/getBatchFeeByBusinessId',
method:'get',
params: {businessId}
})
}
// 查询批量申请费用
export function feeApplicationGetBatch(params){
return request({
url:'/order/fee-application/get/batch',
method:'get',
params
})
}
//费用申请修改 //费用申请修改
export function applicationUpdate(data){ export function applicationUpdate(data){
return request({ return request({
...@@ -422,6 +460,33 @@ export function getOrderSpecialByApproveId(approveId) { ...@@ -422,6 +460,33 @@ export function getOrderSpecialByApproveId(approveId) {
}) })
} }
// 特价申请-批量
export function createOrderSpecialBatch(data) {
return request({
url: '/ecw/order/special/apply/batch',
method: 'put',
data: data
})
}
// 获得订单特价申请详情-批量
export function getOrderSpecialBatch(orderId, type) {
console.log(orderId, type)
return request({
url: '/ecw/order/special/info/batch/' + orderId + '/' + type,
method: 'get'
})
}
// 根据订单项商品ID与审批类型获得订单商品的特价申请详情-批量
export function getOrderSpecialByApproveIdBatch(approveId) {
return request({
url: '/ecw/order/special/batch/info?approveId=' + approveId,
method: 'get'
})
}
// 订单号检索功能 // 订单号检索功能
export function getOrderNoSearch(params) { export function getOrderNoSearch(params) {
return request({ return request({
...@@ -757,7 +822,7 @@ export function splitItemUpdate(data){ ...@@ -757,7 +822,7 @@ export function splitItemUpdate(data){
data data
}) })
} }
// 可出订单列表 // 待备货(可出)订单列表
export function canShipmentPage(params){ export function canShipmentPage(params){
return request({ return request({
url: '/air/order/can/shipment/page', url: '/air/order/can/shipment/page',
...@@ -809,6 +874,16 @@ export function exportReadyStock(params){ ...@@ -809,6 +874,16 @@ export function exportReadyStock(params){
}) })
} }
// 导出可出订单
export function exportCanShipment(params){
return request({
url: '/ecw/order/export/can-shipment/search',
method: 'get',
params,
responseType: 'blob'
})
}
// 无需打包 // 无需打包
export function noNeedPack(orderItemId){ export function noNeedPack(orderItemId){
return request({ return request({
...@@ -849,4 +924,79 @@ export function orderItemPackLogPage(params){ ...@@ -849,4 +924,79 @@ export function orderItemPackLogPage(params){
method: 'get', method: 'get',
params params
}) })
} }
\ No newline at end of file // 上传报关资料
export function warehousePictureCreate(data) {
return request({
url: '/order/warehouse-picture/create',
method: 'post',
data
})
}
// 删除报关资料
export function warehousePictureDelete(id) {
return request({
url: '/order/warehouse-picture/delete?id=' + id,
method: 'delete'
})
}
//上传
export function uploadFile(data) {
return request({
url: '/infra/file/up',
method: 'post',
data: data
})
}
//上传
export function uploadOrgname(data) {
return request({
url: '/infra/file/org-name/up',
method: 'post',
data: data
})
}
/*根据订单ID查询目的国*/
export function getDestCountryByOrderId(params){
return request({
url: '/ecw/order/getDestCountryByOrderId',
method: 'get',
params:params
})
}
// 订单费用汇总
export function orderSummary(orderId){
return request({
url: '/ecw/orderCount/orderSummary/' + orderId,
method: 'get'
})
}
// 订单明细汇总
export function orderDetailSummary(orderId){
return request({
url: '/ecw/orderCount/orderDetailSummary/' + orderId,
method: 'get'
})
}
// 自编号的订单费用汇总
export function orderSummaryByContainerNumber(params){
return request({
url: '/ecw/orderCount/containerNumber/orderSummary',
method: 'get',
params
})
}
// 导出自编号订单汇总列表
export function exportOrderSummaryByContainerNumber(params){
return request({
url: '/ecw/order/export/export-order-summary',
method: 'get',
params,
timeout: 5 * 60000,
responseType: 'blob'
})
}
...@@ -148,4 +148,12 @@ export function exportCargoControl(params){ ...@@ -148,4 +148,12 @@ export function exportCargoControl(params){
responseType: 'arraybuffer', responseType: 'arraybuffer',
params params
}) })
} }
\ No newline at end of file
// 控货日志
export function getControlLogList(orderId){
return request({
url: '/order/order-control-log/list/' + orderId,
method: 'get'
})
}
...@@ -56,7 +56,14 @@ export function getOrderExceptionPage(query) { ...@@ -56,7 +56,14 @@ export function getOrderExceptionPage(query) {
params: query params: query
}) })
} }
// 获得新订单异常分页
export function getExceptionPage(query) {
return request({
url: '/ecw/order-exception/exceptionPage',
method: 'get',
params: query
})
}
// 导出订单异常 Excel // 导出订单异常 Excel
export function exportOrderExceptionExcel(query) { export function exportOrderExceptionExcel(query) {
return request({ return request({
...@@ -107,7 +114,7 @@ export function exportExcel(params) { ...@@ -107,7 +114,7 @@ export function exportExcel(params) {
return request({ return request({
url: '/ecw/order-exception/export-excel', url: '/ecw/order-exception/export-excel',
method: 'get', method: 'get',
timeout: 3*60*1000, timeout: 30*60*1000,
params, params,
// timeout: 3*60*1000, // timeout: 3*60*1000,
responseType: 'arraybuffer' responseType: 'arraybuffer'
...@@ -138,4 +145,13 @@ export function getExceptionDetailByBusinessId(query) { ...@@ -138,4 +145,13 @@ export function getExceptionDetailByBusinessId(query) {
method: 'get', method: 'get',
params: query params: query
}) })
} }
\ No newline at end of file
// 参数查询获得订单统计
export function getStatistics(query) {
return request({
url: '/ecw/order-exception/statistics',
method: 'get',
params: query
})
}
...@@ -145,3 +145,12 @@ export function deleteAllSplit(orderId) { ...@@ -145,3 +145,12 @@ export function deleteAllSplit(orderId) {
params: {orderId} params: {orderId}
}) })
} }
// 获取拆单订单的总货值与箱数拆分记录
export function splitItemWorthCheck(orderId, orderSplitItemId) {
return request({
url: '/order/split-item/worth/check',
method: 'get',
params: {orderId, orderSplitItemId}
})
}
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import {warehousePictureCreate} from "@/api/ecw/order";
export default { export default {
props: { props: {
...@@ -65,6 +66,15 @@ export default { ...@@ -65,6 +66,15 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
// 类型 1入仓 2 调拨出仓 3调拨到仓 4 订单转异
type: {
type: Number,
default: undefined
},
id: {
type: Number,
default: undefined
},
readonly: { readonly: {
type: Boolean, type: Boolean,
default: false default: false
...@@ -121,9 +131,11 @@ export default { ...@@ -121,9 +131,11 @@ export default {
methods: { methods: {
// 删除图片 // 删除图片
handleRemove(index) { handleRemove(index) {
this.fileList.splice(index, 1); if (this.id && this.type) {
this.$emit("input", this.listToString(this.fileList)); this.$emit("delete", this.fileList[index].url);
}
this.fileList.splice(index, 1);
this.$emit("input", this.listToString(this.fileList));
}, },
// 上传成功回调 // 上传成功回调
handleUploadSuccess(res) { handleUploadSuccess(res) {
...@@ -133,8 +145,21 @@ export default { ...@@ -133,8 +145,21 @@ export default {
this.fileList = this.fileList.concat(this.uploadList); this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = []; this.uploadList = [];
this.number = 0; this.number = 0;
this.$emit("input", this.listToString(this.fileList)); if (this.id && this.type) {
this.$modal.closeLoading(); warehousePictureCreate({
"bizId": this.id,
"type": this.type,
"url": res.data
}).then(() => {
this.$emit("input", this.listToString(this.fileList));
this.$emit("refresh");
this.$modal.closeLoading();
})
} else {
this.$emit("input", this.listToString(this.fileList));
this.$emit("refresh");
this.$modal.closeLoading();
}
} }
}else { }else {
this.handleUploadError(); this.handleUploadError();
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<el-button type="primary" @click="reLoad">{{$t('搜索')}}</el-button> <el-button type="primary" @click="reLoad">{{$t('搜索')}}</el-button>
<div v-if="showAll"> <div v-if="showAll">
<el-checkbox :label="$t('全选(最多500)')" @change="toggleAll" :disabled="isAllProduct"></el-checkbox> <el-checkbox :label="$t('全选') + `(${total > 500 ? $t('最多500') : $t('{total}个', {total})})`" @change="toggleAll" :disabled="isAllProduct"></el-checkbox>
<el-checkbox :label="$t('全选库内商品(共{cnt}个)', {cnt: total})" v-model="isAllProduct"></el-checkbox> <el-checkbox :label="$t('全选库内商品(共{cnt}个)', {cnt: allTotal})" v-model="isAllProduct"></el-checkbox>
</div> </div>
</div> </div>
<div class="list"> <div class="list">
...@@ -61,7 +61,8 @@ export default { ...@@ -61,7 +61,8 @@ export default {
list: [], list: [],
page: 1, page: 1,
pages: 1, pages: 1,
total: 0, // 商品总数 total: 0, // 当前筛选条件的商品总数
allTotal: 0, // 全库商品总数
queryParams: { queryParams: {
pageNo: 1, pageNo: 1,
pageSize: 500, pageSize: 500,
...@@ -115,6 +116,11 @@ export default { ...@@ -115,6 +116,11 @@ export default {
if(this.defaultIds.length){ if(this.defaultIds.length){
this.loadDefaultProds() this.loadDefaultProds()
} }
// 获取全库商品总数
getProductPage({pageNo: 1, pageSize: 1}).then(res => {
this.allTotal = res.data.total
})
}, },
methods: { methods: {
/* setAllProduct(status){ /* setAllProduct(status){
...@@ -209,4 +215,4 @@ export default { ...@@ -209,4 +215,4 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
</style> </style>
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
:clearable="clearable" :clearable="clearable"
remote remote
reserve-keyword reserve-keyword
placeholder="请选择" :placeholder="placeholder ? placeholder : $t('请选择')"
:loading="loading"> :loading="loading">
<el-option <el-option
v-for="(item, index) in list" v-for="(item, index) in list"
...@@ -22,6 +22,7 @@ export default { ...@@ -22,6 +22,7 @@ export default {
props:{ props:{
value: [String, Number], value: [String, Number],
clearable: Boolean, clearable: Boolean,
placeholder: String,
manage:{ manage:{
type:Boolean, type:Boolean,
default:false default:false
......
...@@ -293,7 +293,10 @@ export default { ...@@ -293,7 +293,10 @@ export default {
}, },
// 用于储位回显选中 // 用于储位回显选中
isSelected(warehouse, area, position = 0){ isSelected(warehouse, area, position = 0){
return !!this.value.find(e => warehouse === e.wareId && area === e.areaId && (position === e.locationId || undefined === e.locationId)) return !!this.value.find(e => {
// 最后一个条件不能用!e.locationId来判断,会导致选择了没有locationId的全部被选中,上次改这里忘记什么原因了,下次复现再来调整
return warehouse === e.wareId && area === e.areaId && (position === e.locationId || e.locationId == undefined)
})
}, },
} }
} }
......
...@@ -2641,7 +2641,7 @@ ...@@ -2641,7 +2641,7 @@
"上级区域": "Superior Area", "上级区域": "Superior Area",
"选择上级区域": "Select superior area", "选择上级区域": "Select superior area",
"请输入简称": "Please enter the abbreviation", "请输入简称": "Please enter the abbreviation",
"国家城市代码": "Country City Code", "国家代码-城市代码": "Country City Code",
"显示顺序": "Display order", "显示顺序": "Display order",
"请输入显示顺序": "Please enter the display order", "请输入显示顺序": "Please enter the display order",
"部门状态": "Department Status", "部门状态": "Department Status",
......
...@@ -485,6 +485,12 @@ export const constantRoutes = [ ...@@ -485,6 +485,12 @@ export const constantRoutes = [
props: true, props: true,
name: 'shippingAir', name: 'shippingAir',
meta: {titleZh: '空运出货操作', titleEn: "Ocean shipment operation", icon: '', activeMenu: '/shipment/boxAir'} meta: {titleZh: '空运出货操作', titleEn: "Ocean shipment operation", icon: '', activeMenu: '/shipment/boxAir'}
},
{
path: 'batch_markup',
component: (resolve) => import('@/views/ecw/box/batchMarkup'),
name: 'batchMarkup',
meta: {titleZh: '批量加价', titleEn: "Batch Markup", icon: '', activeMenu: '/boxSeaAir'}
} }
] ]
}, },
......
...@@ -2,7 +2,14 @@ import router from '@/router' ...@@ -2,7 +2,14 @@ import router from '@/router'
const state = { const state = {
visitedViews: [], visitedViews: [],
cachedViews: [] cachedViews: [],
}
// 获取页面的缓存名称
const getViewName = (view) => {
if(!view.meta?.componentPath){
return view.fullPath
}
return view.meta.componentPath.split('/').map(item => item.substring(0, 1).toUpperCase() + item.substring(1).toLowerCase()).join('')
} }
const mutations = { const mutations = {
...@@ -16,7 +23,7 @@ const mutations = { ...@@ -16,7 +23,7 @@ const mutations = {
}, },
ADD_CACHED_VIEW: (state, view) => { ADD_CACHED_VIEW: (state, view) => {
if (view.meta && view.meta.componentPath) { if (view.meta && view.meta.componentPath) {
let cacheName = view.meta.componentPath.split('/').map(item => item.substring(0, 1).toUpperCase() + item.substring(1).toLowerCase()).join('') let cacheName = getViewName(view)
if (state.cachedViews.includes(cacheName)) return if (state.cachedViews.includes(cacheName)) return
state.cachedViews.push(cacheName) state.cachedViews.push(cacheName)
} }
...@@ -31,7 +38,9 @@ const mutations = { ...@@ -31,7 +38,9 @@ const mutations = {
} }
}, },
DEL_CACHED_VIEW: (state, view) => { DEL_CACHED_VIEW: (state, view) => {
const index = state.cachedViews.indexOf(view.name) console.log('DEL_CACHED_VIEW', view)
const viewName = getViewName(view)
const index = state.cachedViews.indexOf(viewName)
index > -1 && state.cachedViews.splice(index, 1) index > -1 && state.cachedViews.splice(index, 1)
}, },
......
...@@ -122,6 +122,7 @@ export const DICT_TYPE = { ...@@ -122,6 +122,7 @@ export const DICT_TYPE = {
ECW_FEE_SOURCE: 'fee_source', // 费用来源 ECW_FEE_SOURCE: 'fee_source', // 费用来源
STOCK_UP_EXCEPTION_TYPE: 'stock_up_exception_type', // 备货异常类型, STOCK_UP_EXCEPTION_TYPE: 'stock_up_exception_type', // 备货异常类型,
ORDER_ITEM_PACK_STATUS: 'order_item_pack_status', // 空运备货打包状态 ORDER_ITEM_PACK_STATUS: 'order_item_pack_status', // 空运备货打包状态
RECEIPT_FEE_TYPE:'receipt_fee_type',
//--------ecw--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
...@@ -193,7 +194,7 @@ export const DICT_TYPE = { ...@@ -193,7 +194,7 @@ export const DICT_TYPE = {
ECW_AUTH_TYPE:'auth_type',//品牌授权 ECW_AUTH_TYPE:'auth_type',//品牌授权
NEED_ORDER_INQUIRY: 'need_order_inquiry', // 是否需要単询 NEED_ORDER_INQUIRY: 'need_order_inquiry', // 是否需要単询
EXCEPTION_SELECT_FILED:'exception_select_filed',
ECASH_INIT:'ecash_init', //e-cash ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'receivable_fee_type', FEE_TYPE:'receivable_fee_type',
// PAY_TYPE:'payment_type', // PAY_TYPE:'payment_type',
...@@ -224,7 +225,7 @@ export const DICT_TYPE = { ...@@ -224,7 +225,7 @@ export const DICT_TYPE = {
BOX_CUSTOMS_ERROR_TYPE: "customs_error_type",// 报关异常状态 BOX_CUSTOMS_ERROR_TYPE: "customs_error_type",// 报关异常状态
BOX_SHIPPING_ERROR_TYPE: "shipping_error_type",// 起运异常状态 BOX_SHIPPING_ERROR_TYPE: "shipping_error_type",// 起运异常状态
BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态 BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态
SETTLEMENT_STATUS: 'settlement_status', // 结算状态
APP_TYPE:"app_type", //系统类型 APP_TYPE:"app_type", //系统类型
AIR_SHIPMENT_PROCESS:'air_shipment_process' AIR_SHIPMENT_PROCESS:'air_shipment_process'
......
...@@ -6,6 +6,7 @@ import errorCode from '@/utils/errorCode' ...@@ -6,6 +6,7 @@ import errorCode from '@/utils/errorCode'
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import {getTenantEnable} from "@/utils/ruoyi"; import {getTenantEnable} from "@/utils/ruoyi";
import { getLocale } from '@/utils/db'; import { getLocale } from '@/utils/db';
import i18n from "@/i18n";
// 是否显示重新登录 // 是否显示重新登录
export let isRelogin = { show: false }; export let isRelogin = { show: false };
...@@ -114,9 +115,15 @@ service.interceptors.response.use(res => { ...@@ -114,9 +115,15 @@ service.interceptors.response.use(res => {
// 额外情况 // 额外情况
return Promise.reject(res.data) return Promise.reject(res.data)
} else if (code !== 200) { } else if (code !== 200) {
Notification.error({ // 如果内容很长则用alert提示,不然可能显示不全,自动隐藏也会导致看不完整就消失了
title: msg if(msg.length > 300){
}) MessageBox.alert(msg, i18n.t('错误提示'), i18n.t('确定'))
}else{
Notification.error({
title: msg
})
}
return Promise.reject(msg || 'error') return Promise.reject(msg || 'error')
} else { } else {
return res.data return res.data
......
...@@ -25,11 +25,11 @@ ...@@ -25,11 +25,11 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px;"> <div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px;">
<el-button icon="el-icon-edit-outline" type="success" size="mini" @click="handleAudit(item, true)">{{$t('通过')}} <el-button :loading="loading" icon="el-icon-edit-outline" type="success" size="mini" @click="handleAudit(item, true)">{{$t('通过')}}
</el-button> </el-button>
<el-button icon="el-icon-circle-close" type="danger" size="mini" @click="handleAudit(item, false)">{{$t('不通过')}} <el-button :loading="loading" icon="el-icon-circle-close" type="danger" size="mini" @click="handleAudit(item, false)">{{$t('不通过')}}
</el-button> </el-button>
<el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleUpdateAssignee(item)">{{$t('转办')}} <el-button :loading="loading" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleUpdateAssignee(item)">{{$t('转办')}}
</el-button> </el-button>
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate(item)">{{ $t('委派') }}</el-button>--> <!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate(item)">{{ $t('委派') }}</el-button>-->
<!-- <el-button icon="el-icon-refresh-left" type="warning" size="mini" @click="handleBack(item)">{{ $t('退回') }}</el-button>--> <!-- <el-button icon="el-icon-refresh-left" type="warning" size="mini" @click="handleBack(item)">{{ $t('退回') }}</el-button>-->
...@@ -181,11 +181,18 @@ export default { ...@@ -181,11 +181,18 @@ export default {
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
type: 2 type: 2
}, },
// 原来的费用申请
free_apply: { free_apply: {
component: "warehouseDetails", component: "warehouseDetails",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: 2 type: 2
}, },
// 2.0空运加的批量申请
batch_free_apply: {
component: () => import('@/views/ecw/order/components/BatchFeeApplication'),
businessId: this.processInstance.businessKey,
processInstanceId: this.$route.query.id
},
retired_warehouse: { retired_warehouse: {
component: "warehouseDetails", component: "warehouseDetails",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
...@@ -422,6 +429,8 @@ export default { ...@@ -422,6 +429,8 @@ export default {
}, },
data() { data() {
return { return {
// 提交中
loading: false,
// 遮罩层 // 遮罩层
processInstanceLoading: true, processInstanceLoading: true,
// 流程实例 // 流程实例
...@@ -655,12 +664,15 @@ export default { ...@@ -655,12 +664,15 @@ export default {
comment: this.auditForms[index].comment, comment: this.auditForms[index].comment,
copyUserIds: this.auditForms[index].copyUserIds copyUserIds: this.auditForms[index].copyUserIds
} }
this.loading = true
if (pass) { if (pass) {
approveTask(data).then(response => { approveTask(data).then(response => {
let p = this.matterNum let p = this.matterNum
//this.$store.commit('GET_MAATER', --p) //this.$store.commit('GET_MAATER', --p)
this.$modal.msgSuccess("审批通过成功!"); this.$modal.msgSuccess("审批通过成功!");
this.getDetail(); // 获得最新详情 this.getDetail(); // 获得最新详情
}).finally(() => {
this.loading = false
}); });
} else { } else {
rejectTask(data).then(response => { rejectTask(data).then(response => {
...@@ -668,6 +680,8 @@ export default { ...@@ -668,6 +680,8 @@ export default {
//this.$store.commit('GET_MAATER', --p) //this.$store.commit('GET_MAATER', --p)
this.$modal.msgSuccess("审批不通过成功!"); this.$modal.msgSuccess("审批不通过成功!");
this.getDetail(); // 获得最新详情 this.getDetail(); // 获得最新详情
}).finally(() => {
this.loading = false
}); });
} }
}); });
......
...@@ -71,6 +71,8 @@ export default { ...@@ -71,6 +71,8 @@ export default {
this.form = { ...this.shipmentObj }; this.form = { ...this.shipmentObj };
if(this.form.destinationClearance && this.form.destinationClearance != 3){ if(this.form.destinationClearance && this.form.destinationClearance != 3){
this.form.destinationClearanceSelect = 1 this.form.destinationClearanceSelect = 1
}else{
this.form.destinationClearanceSelect = 3
} }
this.getChannelList() this.getChannelList()
}, },
......
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
<span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span> <span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span>
</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" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)" <!-- <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
v-hasPermi="['shipment:box:query']">{{$t('查看')}}</el-button> v-hasPermi="['shipment:box:query']">{{$t('查看')}}</el-button>
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
v-hasPermi="['shipment:box:update']">{{$t('修改')}}</el-button> v-hasPermi="['shipment:box:update']">{{$t('修改')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['shipment:box:delete']">{{$t('删除')}}</el-button> --> v-hasPermi="['shipment:box:delete']">{{$t('删除')}}</el-button> -->
<el-dropdown trigger="click" @command="(command) => handleCommand(scope.row, command)"> <el-dropdown trigger="click" @command="(command) => handleCommand(scope.row, command)" style="marginRight:10px;">
<el-button type="primary"> {{ $t('操作') }}<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-button type="primary"> {{ $t('操作') }}<i class="el-icon-arrow-down el-icon--right"></i> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="edit">{{$t('编辑')}}</el-dropdown-item> <el-dropdown-item command="edit">{{$t('编辑')}}</el-dropdown-item>
...@@ -123,6 +123,20 @@ ...@@ -123,6 +123,20 @@
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)" v-hasPermi="['shipment:box:download:downloadPreloadGoodsList','shipment:box:download:downloadLoadGoodsList','shipment:box:download:downloadReceivableList','shipment:box:download:downloadAgentListFiles','shipment:box:download:downloadSoncapFiles','shipment:box:download:zipDownload','shipment:box:download:downloadLadingCopy']">
<el-button type="primary">
{{$t('下载')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="downloadPreloadGoodsList" v-hasPermi="['shipment:box:download:downloadPreloadGoodsList']">{{$t('预装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLoadGoodsList" v-hasPermi="['shipment:box:download:downloadLoadGoodsList']">{{$t('已装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadReceivableList" v-hasPermi="['shipment:box:download:downloadReceivableList']">{{$t('应收汇总表')}}</el-dropdown-item>
<el-dropdown-item command="downloadAgentListFiles" v-hasPermi="['shipment:box:download:downloadAgentListFiles']">agent list</el-dropdown-item>
<el-dropdown-item command="downloadSoncapFiles" v-hasPermi="['shipment:box:download:downloadSoncapFiles']">soncap</el-dropdown-item>
<el-dropdown-item command="zipDownload" v-hasPermi="['shipment:box:download:zipDownload']">{{$t('提货单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLadingCopy" v-hasPermi="['shipment:box:download:downloadLadingCopy']">{{$t('提单Copy')}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -180,7 +194,7 @@ ...@@ -180,7 +194,7 @@
</template> </template>
<script> <script>
import { deletebox, getbox, getboxPage, exportboxExcel } from '@/api/ecw/box' import {deletebox, getbox, getboxPage, exportboxExcel, getNoticeList, dealCustomsSplitNotify} from '@/api/ecw/box'
import { getChannelList } from '@/api/ecw/channel' import { getChannelList } from '@/api/ecw/channel'
import { getWarehouseList } from '@/api/ecw/warehouse' import { getWarehouseList } from '@/api/ecw/warehouse'
import costForm from './costForm.vue' import costForm from './costForm.vue'
...@@ -328,13 +342,27 @@ export default { ...@@ -328,13 +342,27 @@ export default {
getWarehouseList().then((res) => (this.warehouseList = res.data)) getWarehouseList().then((res) => (this.warehouseList = res.data))
this.getList() this.getList()
this.getChannelList() this.getChannelList()
this.queryNotice()
}, },
methods: { methods: {
formatDate, formatDate,
getChannelList() { getChannelList() {
getChannelList().then((res) => (this.channelList = res.data)) getChannelList().then((res) => (this.channelList = res.data))
}, },
queryNotice() {
getNoticeList({
transportTypeList: this.transportTypes.map((item) => item.value),
}).then((res) => {
const { data } = res;
this.noticeList = data ?? [];
if (data.length) {
this.$set(this.dialogCfg, "title", this.$t("出货操作提醒"));
this.$set(this.dialogCfg, "dialogType", "notice");
this.$set(this.dialogCfg, "width", "650px");
this.$set(this.dialogCfg, "open", true);
}
});
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true this.loading = true
...@@ -391,7 +419,10 @@ export default { ...@@ -391,7 +419,10 @@ export default {
this.$set(this.dialogCfg, 'fullscreen', false) this.$set(this.dialogCfg, 'fullscreen', false)
this.$set(this.dialogCfg, 'open', true) this.$set(this.dialogCfg, 'open', true)
this.currRow = { this.currRow = {
transportType: '3' transportType: '3',
destinationClearanceSelect: 1,
destinationClearance: 1,
deliveryType: 1
} }
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
...@@ -435,53 +466,105 @@ export default { ...@@ -435,53 +466,105 @@ export default {
return exportboxExcel(params) return exportboxExcel(params)
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, '${table.classComment}.xls') this.$download.excel(response, this.$t("空运管理") + ".xls");
this.exportLoading = false this.exportLoading = false
}) })
.catch(() => {}) .catch(() => {})
}, },
/** 查看按钮操作 */ /** 查看按钮操作 */
handleCommand(row, command) { async handleCommand(row, command) {
switch (command) { console.log(command, row);
case "detail": switch (command) {
this.$router.push("/boxAir/query/" + row.id); case "detail":
break; this.$router.push("/boxAir/query/" + row.id);
case 'air': break;
this.$router.push('/boxAir/shippingAir/' + row.id) case 'air':
break this.$router.push('/boxAir/shippingAir/' + row.id)
break
case 'edit': case 'edit':
this.handleUpdate(row) this.handleUpdate(row)
break break
case 'delete': case 'delete':
this.handleDelete(row); this.handleDelete(row);
break; break;
case "editLadingBill": case "editLadingBill":
const cabinetLabel = this.getCabinetName(row.cabinetId); const cabinetLabel = this.getCabinetName(row.cabinetId);
const title = this.$t( const title = this.$t(
"查看提单 {selfNo} 柜号:{cubNo} 柜型:{cabinetLabel}", "查看提单 {selfNo} 柜号:{cubNo} 柜型:{cabinetLabel}",
{ {
selfNo: row.selfNo, selfNo: row.selfNo,
cubNo: row.cubNo, cubNo: row.cubNo,
cabinetLabel: cabinetLabel, cabinetLabel: cabinetLabel,
} }
); );
this.$set(this.dialogCfg, "title", title); this.$set(this.dialogCfg, "title", title);
this.$set(this.dialogCfg, "fullscreen", true); this.$set(this.dialogCfg, "fullscreen", true);
break; break;
case 'batchMarkup': case 'batchMarkup':
this.$router.push('batch_markup?shipmentId=' + row.id) this.$router.push('/boxAir/batch_markup?shipmentId=' + row.id)
break
case "downloadPreloadGoodsList":
downloadFile(
command,
{shipmentId: row.id},
this.$t("预装单") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadLoadGoodsList":
downloadFile(
command,
{shipmentId: row.id},
this.$t("已装单") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "downloadReceivableList":
downloadFile(
command,
{shipmentId: row.id},
this.$t("应收汇总表") + `(${row.selfNo}).xlsx`,
"xlsx"
);
break;
case "zipDownload":
downloadFile(
command,
{shipmentId: row.id},
this.$t("提货单") + `(${row.selfNo}).zip`,
"zip"
);
break;
case "downloadAgentListFiles":
case "downloadSoncapFiles":
case "downloadLadingCopy":
downloadFileByUrl(command, {shipmentId: row.id});
break;
case "handle":
const { noticeType } = row;
if ([1, 2, 3, 4, 8].includes(noticeType)) {
this.$router.push("/boxAir/shippingAir/" + row.id);
}
if ([5, 6, 7].includes(noticeType)) {
this.$router.push("/boxAir/query/" + row.id);
}
if([9].includes(noticeType)){
await dealCustomsSplitNotify(row.notifyId)
}
this.closeDialog();
break;
} }
if (["editLadingBill", "cost", "error"].includes(command)) { if (["editLadingBill", "cost", "error"].includes(command)) {
this.currRow = row; this.currRow = row;
this.$set(this.dialogCfg, "dialogType", command); this.$set(this.dialogCfg, "dialogType", command);
this.$set(this.dialogCfg, "width", "600px"); this.$set(this.dialogCfg, "width", "600px");
this.$set(this.dialogCfg, "open", true); this.$set(this.dialogCfg, "open", true);
} }
}, },
}
} }
}
</script> </script>
......
...@@ -88,10 +88,13 @@ ...@@ -88,10 +88,13 @@
{{row.orderReportNumber || 0}} {{row.orderReportNumber || 0}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('已装柜方数')" align="center" prop="loadingNumber" > <el-table-column :label="$t('装柜或出仓方数')" align="center" prop="loadingNumber" >
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.loadingNumber || 0}} {{row.loadingNumber || 0}}
</template> </template>
</el-table-column>
<el-table-column label="装柜或出仓重量" prop="loadingWeight">
</el-table-column> </el-table-column>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180"> <el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -105,8 +108,8 @@ ...@@ -105,8 +108,8 @@
<div>{{row.hqNumber}}个40HQ</div> <div>{{row.hqNumber}}个40HQ</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('未来计划方数')" align="center" prop="futurePlanNumber" /> <el-table-column :label="$t('未来计划')" align="center" prop="futurePlanNumber" />
<el-table-column :label="$t('未来实际方数')" align="center" prop="actualNumber" /> <el-table-column :label="$t('未来实际')" align="center" prop="actualNumber" />
<el-table-column :label="$t('创建人')" align="center" prop="createName" /> <el-table-column :label="$t('创建人')" align="center" prop="createName" />
<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">
...@@ -158,26 +161,29 @@ ...@@ -158,26 +161,29 @@
<el-form-item :label="$t('自单代报订单方数')"> <el-form-item :label="$t('自单代报订单方数')">
{{form.orderReportNumber}} m³ {{form.orderReportNumber}} m³
</el-form-item> </el-form-item>
<el-form-item :label="$t('已装柜方数')"> <el-form-item :label="$t('装柜或出仓方数')">
{{form.loadingNumber}} m³ {{form.loadingNumber}} m³
</el-form-item> </el-form-item>
<el-form-item :label="$t('装柜或出仓重量')">
{{form.loadingWeight}} kG
</el-form-item>
<el-form-item label=""> <el-form-item label="">
<div> <div>
{{$t('未来')}} <el-input v-model="form.futureNumber" class="w-100"></el-input> {{$t('天货柜数')}} {{$t('未来')}} <el-input v-model="form.futureNumber" class="w-100"></el-input> {{$t('天')}}
</div> </div>
<div class="mt-10"> <div v-if="form.transportType !== '3'" class="mt-10">
<el-input v-model="form.gpNumber" class="w-100" /> &times; 40GP <el-input v-model="form.gpNumber" class="w-100" /> &times; 40GP
<el-input v-model="form.hqNumber" class="w-100 ml-10" /> &times; 40HQ <el-input v-model="form.hqNumber" class="w-100 ml-10" /> &times; 40HQ
</div> </div>
<div class="mt-10"> <div class="mt-10">
{{$t('未来{futureNumber}天计划方数',{futureNumber: form.futureNumber})}}: {{$t('未来{futureNumber}天计划{unit}',{futureNumber: form.futureNumber,unit:form.transportType === '1' ? '立方' : '重量'})}}:
<el-input v-model="form.futurePlanNumber" class="w-100"></el-input> <el-input v-model="form.futurePlanNumber" class="w-100"></el-input> {{form.transportType === '1' ? 'm3' : 'kg'}}
</div> </div>
<div class="mt-10"> <div class="mt-10">
{{$t('未来{futureNumber}天实际方数',{futureNumber: form.futureNumber})}}: {{$t('未来{futureNumber}天实际{unit}',{futureNumber: form.futureNumber,unit:form.transportType === '1' ? '立方' : '重量'})}}:
<el-input v-model="form.actualNumber" class="w-100"></el-input> <el-input v-model="form.actualNumber" class="w-100"></el-input> {{form.transportType === '1' ? 'm3' : 'kg'}}
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -190,7 +196,21 @@ ...@@ -190,7 +196,21 @@
</template> </template>
<script> <script>
import { createFutureBox, updateFutureBox, deleteFutureBox, getFutureBox, getFutureBoxPage, exportFutureBoxExcel, getBoxedVolume, getToBeWareHousedVolume,getWareHousedVolume,getExceptionVolume, getOrderReportVolume,getWarehousingVolume} from "@/api/ecw/futureBox"; import {
createFutureBox,
updateFutureBox,
deleteFutureBox,
getFutureBox,
getFutureBoxPage,
exportFutureBoxExcel,
getBoxedVolume,
getToBeWareHousedVolume,
getWareHousedVolume,
getExceptionVolume,
getOrderReportVolume,
getWarehousingVolume,
getBoxedWeight
} from "@/api/ecw/futureBox";
import {getCabinetPage} from "@/api/ecw/cabinet"; import {getCabinetPage} from "@/api/ecw/cabinet";
import { getChannelList } from '@/api/ecw/channel'; import { getChannelList } from '@/api/ecw/channel';
import { getWarehouseList } from "@/api/ecw/warehouse" import { getWarehouseList } from "@/api/ecw/warehouse"
...@@ -387,6 +407,10 @@ export default { ...@@ -387,6 +407,10 @@ export default {
getWarehousingVolume(data).then(res => { getWarehousingVolume(data).then(res => {
this.$set(this.form, 'warehousingNumber', res.data || 0) this.$set(this.form, 'warehousingNumber', res.data || 0)
}) })
// 获取装柜出货重量
getBoxedWeight(data).then(res =>{
this.$set(this.form,'loadingWeight', res.data || 0)
})
}, },
setDefaultVolume(){ setDefaultVolume(){
this.$set(this.form, 'loadingNumber', 0) this.$set(this.form, 'loadingNumber', 0)
...@@ -434,6 +458,7 @@ export default { ...@@ -434,6 +458,7 @@ export default {
actualNumber: undefined, actualNumber: undefined,
shippingChannelId: undefined, shippingChannelId: undefined,
status: undefined, status: undefined,
loadingWeight:undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
......
...@@ -213,7 +213,7 @@ import { ...@@ -213,7 +213,7 @@ import {
getbox, getbox,
getboxPage, getboxPage,
exportboxExcel, exportboxExcel,
getNoticeList, getNoticeList, dealCustomsSplitNotify,
} from "@/api/ecw/box"; } from "@/api/ecw/box";
import { import {
downloadFile, downloadFile,
...@@ -247,6 +247,11 @@ export default { ...@@ -247,6 +247,11 @@ export default {
{ value: "5", label: this.$t("清关时间") }, { value: "5", label: this.$t("清关时间") },
{ value: "6", label: this.$t("卸柜时间") }, { value: "6", label: this.$t("卸柜时间") },
], ],
ladingBillStatusData: [
this.$t("未完成"),
this.$t("部分完成"),
this.$t("已完成"),
],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 导出遮罩层 // 导出遮罩层
...@@ -283,11 +288,6 @@ export default { ...@@ -283,11 +288,6 @@ export default {
// 通知列表 // 通知列表
noticeList: [], noticeList: [],
allUsers: [], allUsers: [],
ladingBillStatusData: [
this.$t("未完成"),
this.$t("部分完成"),
this.$t("已完成"),
],
}; };
}, },
computed: { computed: {
...@@ -446,7 +446,7 @@ export default { ...@@ -446,7 +446,7 @@ export default {
} }
}, },
/** 查看按钮操作 */ /** 查看按钮操作 */
handleCommand(row, command) { async handleCommand(row, command) {
this.$set(this.dialogCfg, "fullscreen", false); this.$set(this.dialogCfg, "fullscreen", false);
switch (command) { switch (command) {
...@@ -533,6 +533,9 @@ export default { ...@@ -533,6 +533,9 @@ export default {
if ([5, 6, 7].includes(noticeType)) { if ([5, 6, 7].includes(noticeType)) {
this.$router.push("/boxSea/query/" + row.id); this.$router.push("/boxSea/query/" + row.id);
} }
if([9].includes(noticeType)){
await dealCustomsSplitNotify(row.notifyId)
}
this.closeDialog(); this.closeDialog();
break; break;
} }
......
...@@ -178,6 +178,10 @@ export default { ...@@ -178,6 +178,10 @@ export default {
}, },
// 先获取订单信息,pdf用 订单号+唛头命名 // 先获取订单信息,pdf用 订单号+唛头命名
createPdf(){ createPdf(){
// 空运的由接口生成pdf,所以直接提交即可
if(this.$route.fullPath.toLowerCase().indexOf('air') > -1){
return this.submit()
}
getOrder(this.currRow.orderId).then(res => { getOrder(this.currRow.orderId).then(res => {
this.afterCreatePdf(res.data) this.afterCreatePdf(res.data)
}) })
...@@ -218,11 +222,16 @@ export default { ...@@ -218,11 +222,16 @@ export default {
}, },
submit(imgUrl) { submit(imgUrl) {
let params = { let params = {
imgUrl,
billContent: this.billContent, billContent: this.billContent,
orderId: this.currRow.orderId, orderId: this.currRow.orderId,
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers,
}; };
// 有pdf地址则提交,没有则指定后端生成
if(imgUrl){
params.imgUrl = imgUrl
}else{
params.needBackend = true
}
if (["makeBill", "resetBill"].includes(this.dialogCfg.type)) { if (["makeBill", "resetBill"].includes(this.dialogCfg.type)) {
createBillService({ ...params, status: 1 }).then((res) => { createBillService({ ...params, status: 1 }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
......
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
<div class="status-line"></div> <div class="status-line"></div>
<div class="status-number">{{logList.length - index}}</div> <div class="status-number">{{logList.length - index}}</div>
<div class="status-info"> <div class="status-info">
<div>{{$l(item, 'title')}}</div> <div>{{$l(item, 'title')}} <el-button v-if="item.approvalId>0" type="text" @click="handleApproval(item.bpmProcessId)">{{$t('查看审批')}}</el-button></div>
<div> <div>
<p>{{formatDate(item.createTime)}}</p> <p>{{formatDate(item.createTime)}}</p>
<p>{{item.operator}}</p> <p>{{item.operator}}</p>
...@@ -574,6 +574,9 @@ export default { ...@@ -574,6 +574,9 @@ export default {
); );
} }
}, },
handleApproval(id) {
this.$router.push({path: '/bpm/process-instance/detail', query: {id: id}})
}
}, },
computed: { computed: {
visitedViews() { visitedViews() {
...@@ -636,7 +639,7 @@ export default { ...@@ -636,7 +639,7 @@ export default {
} else { } else {
return getTotlContent(secStatistics); return getTotlContent(secStatistics);
} }
}, }
}, },
}; };
</script> </script>
......
...@@ -234,7 +234,7 @@ export default { ...@@ -234,7 +234,7 @@ export default {
{ required: true, message: this.$t("必填"), trigger: "change" }, { required: true, message: this.$t("必填"), trigger: "change" },
], ],
overMachineStatus: [ overMachineStatus: [
{pattern: /^[12]$/, message: this.$t("必填")} { required: true, pattern: /^[12]$/, message: this.$t("必填")}
], ],
}, },
// 弹窗配置 // 弹窗配置
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<el-table-column :label="$t('储位')" align="center" prop="positionNo" width="250px"> <el-table-column :label="$t('储位')" align="center" prop="positionNo" width="250px">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div v-for="item in row.orderItemDOS" :key="item.orderItemId"> <div v-for="item in row.orderItemDOS" :key="item.orderItemId">
{{ notset(item.positionNo) }} {{ notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)) }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -184,6 +184,14 @@ export default { ...@@ -184,6 +184,14 @@ export default {
}) })
return arr.toString() return arr.toString()
}, },
getpositionNo(arr){
if(!arr) return arr
let data = []
arr.forEach(item=>{
data.push(item.areaName+item.locationName)
})
return data.toString()
},
removePkg(row) { removePkg(row) {
deleteRelate(this.pkgData.id, row.orderId).then(() => { deleteRelate(this.pkgData.id, row.orderId).then(() => {
this.$message.success(this.$t('移出成功')) this.$message.success(this.$t('移出成功'))
......
...@@ -15,19 +15,19 @@ ...@@ -15,19 +15,19 @@
</div> </div>
<div style="width: 140px"> <div style="width: 140px">
<p style="margin-top: 1mm; text-align: center"> <p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">EC001141212</span> <span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.mergePkgNo }}</span>
</p> </p>
<div style="border: 1px solid #999;margin-left: 10px;" /> <div style="border-top: 1px solid #999;margin-left: 10px;" />
<p style="margin-top: 1mm; text-align: center"> <p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.company }}</span> <span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.company }}</span>
</p> </p>
<div style="border: 1px solid #999;margin-left: 10px;" /> <div style="border-top: 1px solid #999;margin-left: 10px;" />
<p style="margin-top: 1mm; text-align: center"> <p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.startWarehouse }} -> {{ tagData.endWarehouse }}</span> <span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.startWarehouse }} -> {{ tagData.endWarehouse }}</span>
</p> </p>
<div style="border: 1px solid #999;margin-left: 10px;" /> <div style="border-top: 1px solid #999;margin-left: 10px;" />
<div style="display: flex;margin-top: 10px;"> <div style="display: flex;margin-top: 10px;">
<div style="border-right: 2px solid #999;width: 45px;"> <div style="border-right: 1px solid #999;width: 45px;">
<p style="margin-top: 1mm; text-align: center"> <p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.transportName }}</span> <span style="text-align: center; font-weight: 600; font-size: 4mm">{{ tagData.transportName }}</span>
</p> </p>
...@@ -40,10 +40,10 @@ ...@@ -40,10 +40,10 @@
</div> </div>
</div> </div>
</div> </div>
<div style="border: 1px solid #999;margin: 10px;" /> <div style="border-top: 1px solid #999;margin: 10px;" />
<div> <!--<div>
<img :src="tagData.barcodeUrl" style="width:250px;height: 50px;" /> <img :src="tagData.barcodeUrl" style="width:250px;height: 50px;" />
</div> </div>-->
<div style="height: 50px;"> <div style="height: 50px;">
<p style="margin-top: 1mm; text-align: center"> <p style="margin-top: 1mm; text-align: center">
<span style="text-align: center; font-weight: 600; font-size: 3mm">E&C Logistics: www.groupage.com</span> <span style="text-align: center; font-weight: 600; font-size: 3mm">E&C Logistics: www.groupage.com</span>
...@@ -110,4 +110,4 @@ export default { ...@@ -110,4 +110,4 @@ export default {
border: 1px solid #999; border: 1px solid #999;
border-radius: 5px; border-radius: 5px;
} }
</style> </style>
\ No newline at end of file
...@@ -112,7 +112,7 @@ export default { ...@@ -112,7 +112,7 @@ export default {
if(!arr) return arr if(!arr) return arr
let data = [] let data = []
arr.forEach(item=>{ arr.forEach(item=>{
data.push(item.locationName) data.push(item.areaName+item.locationName)
}) })
return data.toString() return data.toString()
}, },
......
...@@ -98,6 +98,7 @@ export default { ...@@ -98,6 +98,7 @@ export default {
// 提单补料对象 // 提单补料对象
subMaterialObj: { subMaterialObj: {
markNo: "N/M", markNo: "N/M",
issueType: '2'
}, },
// 出单方式 // 出单方式
method: constantDict.billingMethod, method: constantDict.billingMethod,
...@@ -126,7 +127,9 @@ export default { ...@@ -126,7 +127,9 @@ export default {
}); });
const voName = this.$attrs.currNode.voName; const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] }; let oldData = { ...this.shipmentObj[voName] };
oldData = formatNumberString(oldData, ["issueType"]);this.subMaterialObj = { if(!oldData.issueType || oldData.issueType == 0) oldData.issueType = 2
oldData = formatNumberString(oldData, ["issueType"]);
this.subMaterialObj = {
...oldData, ...oldData,
packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit, packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit,
}; };
......
...@@ -666,11 +666,11 @@ const constantDict = { ...@@ -666,11 +666,11 @@ const constantDict = {
billingMethod: [ billingMethod: [
{ {
value: "1", value: "1",
label: i18n.$t("电放"), label: i18n.$t("正本"),
}, },
{ {
value: "2", value: "2",
label: i18n.$t("正本"), label: i18n.$t("电放"),
}, },
], ],
// 是否有文件 // 是否有文件
......
...@@ -10,13 +10,14 @@ ...@@ -10,13 +10,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('装柜时间')" prop="ldBoxTime"> <el-form-item :label="$t('装柜时间')" prop="ldBoxTime">
<!-- {{cabinetObj.ldBoxTime?new Date(cabinetObj.ldBoxTime).format('yyyy-MM-dd hh:mm:ss'):new Date().format('yyyy-MM-dd hh:mm:ss')}} -->
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="cabinetObj.ldBoxTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="cabinetObj.ldBoxTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出仓时间')"> <el-form-item :label="$t('出仓时间')">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="cabinetObj.ldOutWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="cabinetObj.ldOutWarehouseTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('装柜图片')"> <el-form-item :label="$t('装柜图片')">
<ImageUpload :limit="1" :isShowTip=false v-model="cabinetObj.ldPictures" /> <ImageUpload :limit="1" :isShowTip=false v-model="cabinetObj.ldPictures" @input="saveImage" />
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -55,11 +56,7 @@ export default { ...@@ -55,11 +56,7 @@ export default {
// 装柜对象 // 装柜对象
cabinetObj: {}, cabinetObj: {},
// 校验 // 校验
rules: { rules: {},
ldBoxTime: [
{ required: true, message: this.$t("必填"), trigger: "change" },
],
},
}; };
}, },
created() { created() {
...@@ -136,6 +133,27 @@ export default { ...@@ -136,6 +133,27 @@ export default {
startCabinet() { startCabinet() {
this.dialogVisible = true; this.dialogVisible = true;
}, },
//自动保存图片
saveImage() {
const { ldPictures } = this.cabinetObj;
let pictures = ldPictures?.split(",") ?? [];
let newPictures = [];
for (const item of pictures) {
if (item) {
newPictures.push({
type: "image",
url: item,
});
}
}
cabinetCreate({
shipmentId: this.$attrs.shipmentObj.id,
ldPictures: newPictures.length ? JSON.stringify(newPictures) : "",
operateType: 1,
}).then(()=>{
this.$emit("getBoxInfo");
})
}
}, },
computed: { computed: {
isStartCabinet() { isStartCabinet() {
......
...@@ -50,6 +50,11 @@ ...@@ -50,6 +50,11 @@
<el-form-item :label="$t('始发地')"> <el-form-item :label="$t('始发地')">
<p>{{importCityName(queryParams.startWarehouseId)}}</p> <p>{{importCityName(queryParams.startWarehouseId)}}</p>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="destination">
<el-select v-model="queryParams.destCountryId" :placeholder="$t('请选择国家')" @change="clearDestWarehouseIdList">
<el-option v-for="item in countryList" :key="item.id" :label="$l(item, 'title')" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item :label="$t('目的地')" prop="destination"> <el-form-item :label="$t('目的地')" prop="destination">
<el-select v-model="queryParams.destWarehouseIdList" :placeholder="$t('请选择目的地')" multiple> <el-select v-model="queryParams.destWarehouseIdList" :placeholder="$t('请选择目的地')" multiple>
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
...@@ -154,6 +159,7 @@ import { ...@@ -154,6 +159,7 @@ import {
createGoods, createGoods,
remove, remove,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { getWarehouseList } from "@/api/ecw/warehouse"
import { import {
formatDate, formatDate,
getTotlContent, getTotlContent,
...@@ -161,6 +167,7 @@ import { ...@@ -161,6 +167,7 @@ import {
getCapacity, getCapacity,
sumStatistics, sumStatistics,
} from "../../utils"; } from "../../utils";
import { getListTree } from "@/api/ecw/region";
/** /**
* 补单 * 补单
*/ */
...@@ -169,6 +176,10 @@ export default { ...@@ -169,6 +176,10 @@ export default {
inheritAttrs: false, inheritAttrs: false,
data() { data() {
return { return {
//国家列表
countryList:[],
//仓库列表
warehouseList: [],
// 二维码/条码编号 // 二维码/条码编号
cabinetNo: "", cabinetNo: "",
// 表格数据 // 表格数据
...@@ -192,9 +203,22 @@ export default { ...@@ -192,9 +203,22 @@ export default {
}; };
}, },
created() { created() {
this.queryAllData(); this.getCountry()
}, },
methods: { methods: {
//获取国家
async getCountry() {
let countryList = await getListTree({treeType: 1})
this.countryList = countryList.data
let warehouseList = await getWarehouseList()
this.warehouseList = warehouseList.data
let warehouse = this.warehouseList.find(item=>item.id == this.$attrs.shipmentObj.destWarehouseId)
console.log(warehouse,'warehouse')
if(warehouse){
this.$set(this.queryParams,'destCountryId', warehouse.guojia)
}
this.queryAllData();
},
/* 查询已预装 */ /* 查询已预装 */
getSecGoods() { getSecGoods() {
loadSecGoodsList({ shipmentId: this.$attrs.shipmentObj.id }).then( loadSecGoodsList({ shipmentId: this.$attrs.shipmentObj.id }).then(
...@@ -335,17 +359,25 @@ export default { ...@@ -335,17 +359,25 @@ export default {
if (res.code === 566) { if (res.code === 566) {
this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), { this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), {
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
type: "warning", distinguishCancelAndClose: true,
confirmButtonText: '预装关联单',
cancelButtonText: '仅当前订单'
}) })
.then((_) => { .then((_) => {
createGoods({ ...params, relationStatus: 2 }).then((res) => { createGoods({ ...params, relationStatus: 2, singleLoad: false }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
}); });
}); });
}) })
.catch((_) => { .catch((action) => {
this.queryAllData(); if(action =='cancel'){
createGoods({ ...params, relationStatus: 2, singleLoad: true }).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
});
}
}); });
} }
}); });
...@@ -432,12 +464,16 @@ export default { ...@@ -432,12 +464,16 @@ export default {
formatDate, formatDate,
getTotlContent, getTotlContent,
sumStatistics, sumStatistics,
//切换国家时清除目的仓
clearDestWarehouseIdList() {
this.queryParams.destWarehouseIdList = []
}
}, },
computed: { computed: {
/** 目的地 */ /** 目的地 */
importWarehouseList() { importWarehouseList() {
return this.$attrs.warehouseList.filter( return this.$attrs.warehouseList.filter(
(item) => item.tradeType == "1" || item.type == "3" (item) => (item.tradeType == "1" || item.type == "3") && item.guojia == this.queryParams.destCountryId
); );
}, },
/* 容量 */ /* 容量 */
......
...@@ -264,6 +264,7 @@ export default { ...@@ -264,6 +264,7 @@ export default {
}, },
methods: { methods: {
getCustomsOrderList(dcCustomsType) { getCustomsOrderList(dcCustomsType) {
if(!dcCustomsType) dcCustomsType = '1'
customsOrderList({ customsOrderList({
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
customsTypes: dcCustomsType === "3" ? "2,3" : dcCustomsType, customsTypes: dcCustomsType === "3" ? "2,3" : dcCustomsType,
...@@ -547,6 +548,7 @@ export default { ...@@ -547,6 +548,7 @@ export default {
}, },
watch: { watch: {
"cusDeclarationObj.dcCustomsType"(val) { "cusDeclarationObj.dcCustomsType"(val) {
console.log(val,'val')
this.getCustomsOrderList(val); this.getCustomsOrderList(val);
}, },
"cusDeclarationObj.documentInfo"(val) { "cusDeclarationObj.documentInfo"(val) {
......
...@@ -699,7 +699,7 @@ export default { ...@@ -699,7 +699,7 @@ export default {
type: "warning", type: "warning",
}) })
.then((_) => { .then((_) => {
createGoods({ ...params, relationStatus: 1 }).then((res) => { createGoods({ ...params, relationStatus: 1, singleLoad: true }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
}); });
...@@ -713,17 +713,25 @@ export default { ...@@ -713,17 +713,25 @@ export default {
if (res.code === 566) { if (res.code === 566) {
this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), { this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), {
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
type: "warning", distinguishCancelAndClose: true,
confirmButtonText: '预装关联单',
cancelButtonText: '仅当前订单'
}) })
.then((_) => { .then((_) => {
createGoods({ ...params, relationStatus: 2 }).then((res) => { createGoods({ ...params, relationStatus: 2, singleLoad: false }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
}); });
}); });
}) })
.catch((_) => { .catch((action) => {
this.queryAllData(); if(action =='cancel'){
createGoods({ ...params, relationStatus: 2, singleLoad: true }).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
});
}
}); });
} }
}); });
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('包装数量与单位')" class="two-element"> <el-form-item :label="$t('包装数量与单位')" class="two-element">
<el-input v-model="subMaterialObj.packageNum" :placeholder="$t('请输入包装数量')"></el-input> <el-input v-model="subMaterialObj.packageNum" :placeholder="$t('请输入包装数量')"></el-input>
<dict-selector v-model="subMaterialObj.packageUnit" type="packaging_type" /> <dict-selector v-model="subMaterialObj.packageUnit" type="goods_package_type" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('货物毛重(KGS)')"> <el-form-item :label="$t('货物毛重(KGS)')">
<el-input v-model="subMaterialObj.kgs" :placeholder="$t('请输入货物毛重') + '(KGS)'"></el-input> <el-input v-model="subMaterialObj.kgs" :placeholder="$t('请输入货物毛重') + '(KGS)'"></el-input>
......
...@@ -178,7 +178,7 @@ export default { ...@@ -178,7 +178,7 @@ export default {
list.push({ list.push({
...oItem, ...oItem,
warehouseInInfo, warehouseInInfo,
multiSpecification: item.multiSpecification, multiSpecification: oItem.multiSpecification,
positionNo: oItem.positionNo, positionNo: oItem.positionNo,
tallyStatus: item.tallyStatus, tallyStatus: item.tallyStatus,
tallyTime: item.tallyTime, tallyTime: item.tallyTime,
......
<template> <template>
<div style="width: 100%;min-width: 100px"> <div style="width: 100%;min-width: 100px">
<el-select v-model="val"> <el-select @change="(e) =>{$emit('change', e)}" :disabled="disabled" v-model="val">
<el-option :value="item.id" :label="$l(item, 'title') + item.fuhao" v-for="(item) in options"></el-option> <el-option :value="item.id" :label="$l(item, 'title') + item.fuhao" v-for="(item) in options"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
export default { export default {
name: "currency-select", name: "currency-select",
props:{ props:{
disabled:{
type:Boolean,
default:false
},
options:{ options:{
type:Array, type:Array,
default:()=>[] default:()=>[]
......
<template> <template>
<div> <div>
<template v-if="!readonly">
<el-row type="flex" align="align" :gutter="10" > <el-row type="flex" align="align" :gutter="10" >
<el-col :span="6">空运订单重量上限(kg)</el-col> <el-col :span="6">空运订单重量上限(kg)</el-col>
<el-col :span="6" ><el-input v-model="value1.airWeightLimit"></el-input></el-col> <el-col :span="6" ><el-input v-model="value1.airWeightLimit"></el-input></el-col>
...@@ -8,12 +9,13 @@ ...@@ -8,12 +9,13 @@
</el-col> </el-col>
</el-row> </el-row>
<h1>空运清关费</h1> <h1>空运清关费</h1>
</template>
<div v-for="(item ,index) in value1[keyArr]"> <div v-for="(item ,index) in value1[keyArr]">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4"> <el-col :span="4">
第{{index + 1 }}阶梯定价方案: 第{{index + 1 }}阶梯定价方案:
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" v-if="!readonly">
<el-button type="primary" @click="addInterval" v-if="index === 0" > <el-button type="primary" @click="addInterval" v-if="index === 0" >
添加区间 添加区间
</el-button> </el-button>
...@@ -29,7 +31,7 @@ ...@@ -29,7 +31,7 @@
<el-col :span="9"> <el-col :span="9">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<el-input v-model="item.startNum"></el-input> - <el-input v-model="item.endNum" ></el-input > / <el-input v-model="item.startNum"></el-input> - <el-input v-model="item.endNum" ></el-input > /
<weight-select v-model="item.weightUnit" :options="unitList"></weight-select> <weight-select @change="changeWeight" :disabled="index > 0" v-model="item.weightUnit" :options="unitList"></weight-select>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
...@@ -40,8 +42,8 @@ ...@@ -40,8 +42,8 @@
<el-col :span="9"> <el-col :span="9">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<el-input v-model="item.clearancePrice"></el-input> <el-input v-model="item.clearancePrice"></el-input>
<currency-select :options="currencyList" v-model="item.clearancePriceUnit"></currency-select> <currency-select @change="setCurrency" :disabled="index > 0" :options="currencyList" v-model="item.clearancePriceUnit"></currency-select>
/ <weight-select :options="unitList" v-model="item.clearanceVolumeUnit"></weight-select> / <weight-select :disabled="index > 0" @change="setAirFreightWeight" :options="unitList" v-model="item.clearanceVolumeUnit"></weight-select>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
...@@ -54,6 +56,7 @@ import {getCurrencyPage} from "@/api/ecw/currency"; ...@@ -54,6 +56,7 @@ import {getCurrencyPage} from "@/api/ecw/currency";
import CurrencySelect from "@/views/ecw/channel/componrnts/currency-select.vue"; import CurrencySelect from "@/views/ecw/channel/componrnts/currency-select.vue";
import {getUnitList} from "@/api/ecw/unit"; import {getUnitList} from "@/api/ecw/unit";
import WeightSelect from "@/views/ecw/channel/componrnts/weight-select.vue"; import WeightSelect from "@/views/ecw/channel/componrnts/weight-select.vue";
import Template from "@/views/cms/template/index.vue";
export default { export default {
props:{ props:{
value:{ value:{
...@@ -63,10 +66,11 @@ export default { ...@@ -63,10 +66,11 @@ export default {
keyArr:{ keyArr:{
type:String, type:String,
default:'channelPriceStepClearanceList' default:'channelPriceStepClearanceList'
} },
readonly: Boolean
}, },
name: "packaging-type", name: "packaging-type",
components: {WeightSelect, CurrencySelect}, components: {Template, WeightSelect, CurrencySelect},
created() { created() {
getCurrencyPage(this.params).then(res => this.currencyList = res.data.list) getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
...@@ -91,16 +95,31 @@ export default { ...@@ -91,16 +95,31 @@ export default {
}) })
}, },
methods:{ methods:{
changeWeight(e){
this.value1[this.keyArr].forEach(item => {
item.weightUnit = e
})
},
setCurrency(e){
this.value1[this.keyArr].forEach(item => {
item.clearancePriceUnit = e
})
},
setAirFreightWeight(e){
this.value1[this.keyArr].forEach(item => {
item.clearanceVolumeUnit = e
})
},
addInterval(){ addInterval(){
let p = { let p = {
"channelId":'', "channelId":'',
"clearancePrice":'', "clearancePrice":'',
"clearancePriceUnit":'', "clearancePriceUnit": this.value1[this.keyArr].length && this.value1[this.keyArr][0].clearancePriceUnit ? this.value1[this.keyArr][0].clearancePriceUnit : '',
"clearanceVolumeUnit":6, "clearanceVolumeUnit":this.value1[this.keyArr].length ? this.value1[this.keyArr][0].clearanceVolumeUnit : 6,
"endNum":'', "endNum":'',
"packagingId":'', "packagingId":'',
"startNum":'', "startNum":'',
"weightUnit":6 "weightUnit": this.value1[this.keyArr].length ? this.value1[this.keyArr][0].weightUnit : 6
} }
this.value1[this.keyArr].push(p) this.value1[this.keyArr].push(p)
this.$forceUpdate(); this.$forceUpdate();
......
<template> <template>
<div style="min-width: 100px;width: 100%;"> <div style="min-width: 100px;width: 100%;">
<el-select v-model="val"> <el-select @change="(e) =>{$emit('change',e)}" :disabled="disabled" v-model="val">
<el-option v-for="(item, index) in options" :value="item.id" :key="index" :label="$l(item ,'title')" ></el-option> <el-option v-for="(item, index) in options" :value="item.id" :key="index" :label="$l(item ,'title')" ></el-option>
</el-select> </el-select>
</div> </div>
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
export default { export default {
name: "weight-select", name: "weight-select",
props:{ props:{
disabled:{
type:Boolean,
default:false
},
options:{ options:{
type:Array, type:Array,
default:()=>[] default:()=>[]
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<el-form-item :label="$t('快递')" prop="expressId"> <el-form-item :label="$t('快递')" prop="expressId">
<!-- <el-input v-model="form.expressId" placeholder="请输入快递ID" /> --> <!-- <el-input v-model="form.expressId" placeholder="请输入快递ID" /> -->
<el-select v-model="form.expressId"> <el-select v-model="form.expressId">
<el-option v-for="item in expressList" :value="item.id" :label="item.companyName" :key="item.id"/> <el-option v-for="item in expressList" :value="item.id+''" :label="item.companyName" :key="item.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -283,8 +283,7 @@ export default { ...@@ -283,8 +283,7 @@ export default {
this.form.channelPackagingList = []; this.form.channelPackagingList = [];
this.dialogVisible = false; this.dialogVisible = false;
getChannel(val).then((res) => { getChannel(val).then((res) => {
console.log(res.data,'data') (res.data.channelPackagingList || []).forEach((item,index) =>{
res.data.channelPackagingList.forEach((item,index) =>{
this.form.channelPackagingList[index] = { airWeightLimit:item.airWeightLimit, packagingTypes: item.packagingTypes ? item.packagingTypes.split(',') : [], channelPriceStepClearanceList:[],} this.form.channelPackagingList[index] = { airWeightLimit:item.airWeightLimit, packagingTypes: item.packagingTypes ? item.packagingTypes.split(',') : [], channelPriceStepClearanceList:[],}
// if(!this.form.channelPackagingList[index]){ // if(!this.form.channelPackagingList[index]){
// this.form.channelPackagingList[index] = { airWeightLimit:item.airWeightLimit, packagingTypes:item.packagingTypes ? item.packagingTypes.split(',') : [], channelPriceStepClearanceList:[],} // this.form.channelPackagingList[index] = { airWeightLimit:item.airWeightLimit, packagingTypes:item.packagingTypes ? item.packagingTypes.split(',') : [], channelPriceStepClearanceList:[],}
......
...@@ -204,7 +204,7 @@ export default { ...@@ -204,7 +204,7 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const channelId = row.channelId; const channelId = row.channelId;
this.$modal.confirm(this.$t('是否确认删除渠道管理编号为{channelId}的数据项?'),{channelId} ).then(function() { this.$modal.confirm(this.$t('是否确认删除渠道管理编号为{channelId}的数据项?',{channelId})).then(function() {
return deleteChannel(channelId); return deleteChannel(channelId);
}).then(() => { }).then(() => {
this.getList(); this.getList();
......
...@@ -42,12 +42,12 @@ ...@@ -42,12 +42,12 @@
v-hasPermi="['ecw:currency:create']">{{ $t('新增') }}</el-button> v-hasPermi="['ecw:currency:create']">{{ $t('新增') }}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"-->
v-hasPermi="['ecw:currency:export']">{{ $t('导出') }}</el-button> <!-- v-hasPermi="['ecw:currency:export']">{{ $t('导出') }}</el-button>-->
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
100外币兑人民币(CNY)汇率表 <!-- 100外币兑人民币(CNY)汇率表-->
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="" align="center" prop="id" /> <el-table-column label="" align="center" prop="id" />
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
<el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1" @change="handleStatusChange(scope.row)" /> <el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1" @change="handleStatusChange(scope.row)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="100外币兑人民币汇率" align="center" prop="huilv" /> <!-- <el-table-column label="100外币兑人民币汇率" align="center" prop="huilv" />-->
<el-table-column label="100人民币兑外币汇率" align="center" prop="exchangeToFc" /> <!-- <el-table-column label="100人民币兑外币汇率" align="center" prop="exchangeToFc" />-->
<el-table-column :label="$t('排序')" align="center" prop="aorder" /> <el-table-column :label="$t('排序')" align="center" prop="aorder" />
<!-- <el-table-column label="" align="center" prop="createAt" width="180">--> <!-- <el-table-column label="" align="center" prop="createAt" width="180">-->
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
...@@ -100,12 +100,12 @@ ...@@ -100,12 +100,12 @@
<!-- <el-form-item :label="$t('状态')" prop="show">--> <!-- <el-form-item :label="$t('状态')" prop="show">-->
<!-- <el-input v-model="form.show" :placeholder="$t('请输入状态')" />--> <!-- <el-input v-model="form.show" :placeholder="$t('请输入状态')" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="100外币兑人民币汇率" prop="huilv"> <!-- <el-form-item label="100外币兑人民币汇率" prop="huilv">-->
<el-input v-model="form.huilv" placeholder="请输入100外币兑人民币汇率" /> <!-- <el-input v-model="form.huilv" placeholder="请输入100外币兑人民币汇率" />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="100人民币兑外币汇率" prop="exchangeToFc"> <!-- <el-form-item label="100人民币兑外币汇率" prop="exchangeToFc">-->
<el-input v-model="form.exchangeToFc" placeholder="请输入100人民币兑外币汇率" /> <!-- <el-input v-model="form.exchangeToFc" placeholder="请输入100人民币兑外币汇率" />-->
</el-form-item> <!-- </el-form-item>-->
<!-- <el-form-item label="100人民币兑外币汇率" prop="huilv"> <!-- <el-form-item label="100人民币兑外币汇率" prop="huilv">
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}} {{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}}
</el-form-item> --> </el-form-item> -->
...@@ -179,6 +179,9 @@ export default { ...@@ -179,6 +179,9 @@ export default {
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
titleZh:{required:true,message:'请输入中文名称',target:'blur'},
titleEn:{required:true,message:'请输入英文名称',target:'blur'},
fuhao:{required:true,message:'请输入货币符号 ',target:'blur'},
}, },
statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS), statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS),
...@@ -228,7 +231,18 @@ export default { ...@@ -228,7 +231,18 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.queryParams = {
pageNo: 1,
pageSize: 10,
titleZh: null,
titleEn: null,
fuhao: null,
status: null,
huilv: null,
aorder: null,
createAt: null,
updateAt: null,
};
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
...@@ -309,6 +323,36 @@ export default { ...@@ -309,6 +323,36 @@ export default {
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
} }
},
watch:{
'queryParams.titleZh':{
handler(value){
if(value === ''){
this.queryParams.titleZh = undefined
}
}
},
'queryParams.titleEn':{
handler(value){
if(value === ''){
this.queryParams.titleEn = undefined
}
},
},
'queryParams.fuhao':{
handler(value){
if(value === ''){
this.queryParams.fuhao = undefined
}
},
},
'queryParams.status':{
handler(value){
if(value === ''){
this.queryParams.status = undefined
}
}
}
} }
}; };
</script> </script>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-dialog title="更多联系人" :visible.sync="visible"> <el-dialog title="更多联系人" :visible.sync="visible">
<div v-if="info"> <div v-if="info">
<div style="text-align: center;margin-bottom: 20px;" v-for="(item, index) in info" :key="index"> <div style="text-align: center;margin-bottom: 20px;" v-for="(item, index) in info" :key="index">
联系人{{index + 1}}{{$l('name', item)}}联系方式{{index + 1}}:+{{item.areaCode}} {{item.phoneNew}}<br/> 联系人{{index + 1}}{{$l(item, 'name')}} &ensp;&ensp;&ensp; 联系方式{{index + 1}}:+{{item.areaCode}} {{item.phoneNew}}<br/>
邮箱:{{item.email}} 邮箱:{{item.email}}
</div> </div>
......
<template> <template>
<div> <div>
<div v-for="(item, index) in info.customerHandoverDetailDtoList"> <div v-for="(item, index) in info.customerHandoverDetailDtoList">
<div style="color: blue"> 客户编号{{index + 1}}{{item.customerNumber}} 客户名称{{index + 1}}{{item.customerName}} </div> <router-link :to="'/customer/query/' + item.customerId"><div style="color: blue"> 客户编号{{index + 1}}{{item.customerNumber}} 客户名称{{index + 1}}{{item.customerName}} </div></router-link>
<div>就客户经理{{index + 1}}{{item.oldCustomerServiceName || '-'}} <span v-if="item.oldCustomerServiceDeptName">{{item.oldCustomerServiceDeptName}}</span></div> <div>就客户经理{{index + 1}}{{item.oldCustomerServiceName || '-'}} <span v-if="item.oldCustomerServiceDeptName">{{item.oldCustomerServiceDeptName}}</span></div>
</div> </div>
<div style="color: blue">新客户经理:{{info.newCustomerServiceName || '-'}} <span v-if="info.newCustomerServiceDeptName">{{info.newCustomerServiceDeptName}}</span> </div> <div>新客户经理:{{info.newCustomerServiceName || '-'}} <span v-if="info.newCustomerServiceDeptName">{{info.newCustomerServiceDeptName}}</span> </div>
<div> <div>
申请理由:{{info.reason}} 申请理由:{{info.reason}}
</div> </div>
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<el-dialog <el-dialog
center center
:title="$t('客服')" :title="$t('客服')"
:visible.sync="show" :visible="show"
@close="close"
width="30%"> width="30%">
<div style="width: 100%;min-height: 200px;text-align: center"> <div style="width: 100%;min-height: 200px;text-align: center">
<el-select filterable v-model="service"> <el-select filterable v-model="service">
...@@ -66,12 +67,18 @@ export default { ...@@ -66,12 +67,18 @@ export default {
if(r.code === 0){ if(r.code === 0){
this.$emit('update:show',false) this.$emit('update:show',false)
this.$emit('update:customerIds',[]) this.$emit('update:customerIds',[])
this. service = ''; this. service = '';
this.textarea = ''; this.textarea = '';
this.$message.success(this.$t('用户批量转移成功!')) this.$message.success(this.$t('用户批量转移成功!'))
} }
}) })
}, },
close(){
this. service = '';
this.textarea = '';
this.$emit('update:show',false)
},
} }
} }
</script> </script>
......
...@@ -231,6 +231,7 @@ import { parseTime } from '@/utils/ruoyi'; ...@@ -231,6 +231,7 @@ import { parseTime } from '@/utils/ruoyi';
cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}], cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}],
startTime: [{required: true, message: this.$t("起始时间不能为空"), trigger: "change"}], startTime: [{required: true, message: this.$t("起始时间不能为空"), trigger: "change"}],
endTime: [{required: true, message: this.$t("截止时间不能为空"), trigger: "change"}], endTime: [{required: true, message: this.$t("截止时间不能为空"), trigger: "change"}],
cubeUnit:[{required: true, message: this.$t("目标单位不能为空"), trigger: "change"}]
} }
}; };
}, },
......
This diff is collapsed.
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收款账户')" prop="accountNo"> <el-form-item :label="$t('收款账户')" prop="accountNo">
<span>{{ addForm.accountNo+'('+addForm.accountName+')' }}</span> <span>{{ addForm.accountNo}}{{'('+addForm.accountName+')' }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('实收日期')" prop="amountDate"> <el-form-item :label="$t('实收日期')" prop="amountDate">
<span>{{ addForm.amountDate }}</span> <span>{{ addForm.amountDate }}</span>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<span>{{ addForm.amount }}</span> <span>{{ addForm.amount }}</span>
</el-form-item> </el-form-item>
<el-form-item label-width="0px" prop="currencyId"> <el-form-item label-width="0px" prop="currencyId">
<span>({{getCurrencyLabel(showCurrencyId)}})</span> <span>({{getCurrencyLabel(addForm.currencyId)}})</span>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item <el-form-item
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<template slot="label"> <template slot="label">
{{ $t('兑核销基准币种金额') }}{{getCurrencyLabel(showCurrencyId)}} {{ $t('兑核销基准币种金额') }}{{getCurrencyLabel(showCurrencyId)}}
</template> </template>
<span>{{ addForm.writeOffAmount?parseFloat(addForm.writeOffAmount).toFixed(6):'' }}</span> <span>{{ addForm.writeOffAmount?parseFloat(addForm.writeOffAmount).toFixed(2):'' }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('水单附件')" prop="attr"> <el-form-item :label="$t('水单附件')" prop="attr">
<div> <div>
...@@ -114,11 +114,12 @@ ...@@ -114,11 +114,12 @@
this.detailed = res.data.map(v => ({ this.detailed = res.data.map(v => ({
...v, ...v,
amountDate: this.parseTime(v.amountDate, '{y}-{m}-{d}'), amountDate: this.parseTime(v.amountDate, '{y}-{m}-{d}'),
accountNo: +v.accountNo, rate:parseFloat(v.rate).toFixed(2),
rate:parseFloat(v.rate).toFixed(6),
attr: v.attr ? v.attr.split(',').map(t => ({ name: t.slice(t.lastIndexOf('/') + 1), url: t })) : [] attr: v.attr ? v.attr.split(',').map(t => ({ name: t.slice(t.lastIndexOf('/') + 1), url: t })) : []
})) }))
console.log(this.detailed)
this.addForm = this.detailed.find((itt) => itt.id == this.bankId); this.addForm = this.detailed.find((itt) => itt.id == this.bankId);
console.log(this.addForm)
this.handleAddReceiptItem() this.handleAddReceiptItem()
}) })
}, },
......
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
<el-table-column :label="$t('应付金额')" align="center" prop="totalAmount"/> <el-table-column :label="$t('应付金额')" align="center" prop="totalAmount"/>
<el-table-column :label="$t('币种')" align="center" prop="currencyId"> <el-table-column :label="$t('币种')" align="center" prop="currencyId">
<template slot-scope="scope"> <template slot-scope="scope">
{{ getCurrencyLabel(scope.row.currencyId) }} {{ getCurrencyLabel(scope.row.currencyId) }}
<!-- <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> --> <!-- <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> -->
</template> </template>
</el-table-column> </el-table-column>
...@@ -474,6 +474,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse' ...@@ -474,6 +474,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
import WorkFlow from '@/components/WorkFlow/' import WorkFlow from '@/components/WorkFlow/'
import {getCustomer, getCustomerPage} from "@/api/ecw/customer"; import {getCustomer, getCustomerPage} from "@/api/ecw/customer";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import {getExchangeRatePage} from "@/api/ecw/exchangeRate";
export default { export default {
name: "commission-requestFunds", name: "commission-requestFunds",
...@@ -515,10 +516,12 @@ export default { ...@@ -515,10 +516,12 @@ export default {
dialogVisible: false, dialogVisible: false,
interdict:false, interdict:false,
bankAccountList:[], bankAccountList:[],
rateList:[],
}; };
}, },
async created() { async created() {
await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list) await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
await getExchangeRatePage({page:1,rows: 100}).then(res => this.rateList = res.data.list)
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then(res => this.warehouseList = res.data)
let that = this; let that = this;
if (that.$route.query.payableId && that.$route.query.payableId !== '0') { if (that.$route.query.payableId && that.$route.query.payableId !== '0') {
...@@ -742,8 +745,8 @@ export default { ...@@ -742,8 +745,8 @@ export default {
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val.map(v => { this.multipleSelection = val.map(v => {
var rate = NP.divide(this.currencyList.find(vs => vs.id === v.currencyId).huilv, 100).toFixed(6) let p = this.rateList.find(i =>i.sourceCurrencyId === v.currencyId && i.targetCurrencyId === 3)
return Object.assign(v, {exchangeRate: rate}) return Object.assign(v, {exchangeRate: p.currencyRate})
}); });
}, },
hiddenDialog() { hiddenDialog() {
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
<el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item> <el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item>
<el-descriptions-item :label="$t('期望收款金额')"> <el-descriptions-item :label="$t('期望收款金额')">
<template> <template>
<div sytle="display:flex">
<div v-for="itemAmount in collectionAmount" :key="itemAmount.currencyNameZh">{{ itemAmount.amount}}{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}</div> <div v-for="itemAmount in collectionAmount" :key="itemAmount.currencyNameZh">{{ itemAmount.amount}}{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}</div>
</div>
</template> </template>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="reason" :label="$t('申请理由')">{{reason}}</el-descriptions-item> <el-descriptions-item v-if="reason" :label="$t('申请理由')">{{reason}}</el-descriptions-item>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="reason" :label="$t('申请理由')">{{reason}}</el-descriptions-item> <el-descriptions-item v-if="reason" :label="$t('申请理由')">{{reason}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
<el-descriptions :column="3" border> <el-descriptions :column="3" border>
<el-descriptions-item > <el-descriptions-item >
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
{{ WriteOffProportion }}% {{ WriteOffProportion }}%
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div style="margin: 20px 0;font-size:16px" v-if="form.financeRemark">{{$t('备注')}}:{{form.financeRemark}}</div>
<div class="btn"> <div class="btn">
<el-button <el-button
size="mini" size="mini"
......
This diff is collapsed.
...@@ -454,6 +454,7 @@ import { getCurrencyPage } from "@/api/ecw/currency"; ...@@ -454,6 +454,7 @@ import { getCurrencyPage } from "@/api/ecw/currency";
import NP from 'number-precision' import NP from 'number-precision'
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
import WorkFlow from '@/components/WorkFlow/' import WorkFlow from '@/components/WorkFlow/'
import { getExchangeRatePage } from "@/api/ecw/exchangeRate";
export default { export default {
name: "EcwFinancialCreatpayment", name: "EcwFinancialCreatpayment",
...@@ -492,18 +493,46 @@ export default { ...@@ -492,18 +493,46 @@ export default {
currencyList: [], currencyList: [],
warehouseList:[], warehouseList:[],
selectedUsers:[], selectedUsers:[],
dialogVisible:false dialogVisible:false,
rateList:[],
}; };
}, },
activated(){ activated(){
console.log(11) console.log(11)
// this.getList(); if (this.$route.query.payableId && this.$route.query.payableId != 0) {
this.payableId = this.$route.query.payableId;
getPayableInfoByIds({ id: this.payableId }).then(res => {
this.handleSelectionChange([res.data])
this.list = this.multipleSelection
this.$set(this.form, 'supplierId', res.data.supplierId)
this.selectChange(this.form.supplierId)
})
}
if (this.$route.query.id && this.$route.query.id !== '0') {
this.id = this.$route.query.id;
getPaymentInfoByIds({ id: this.id }).then(res => {
this.form = {
...res.data,
latestPayAt: this.parseTime(res.data.latestPayAt, '{y}-{m}-{d}'),
applicationAt: this.parseTime(res.data.applicationAt, '{y}-{m}-{d}'),
invoiceStatus: String(res.data.invoiceStatus),
}
this.$set(this.form,'supplierBankAccount',res.data.supplierBankAccount)
console.log(this.form)
})
getPaymentItem({ id: this.id }).then(res => {
this.list = [...res.data]
this.defaultList = [...res.data]
})
}
}, },
async created() { async created() {
await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list) await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
await getExchangeRatePage({page:1,rows: 100}).then(res => this.rateList = res.data.list)
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then(res => this.warehouseList = res.data)
let that = this; let that = this;
if (that.$route.query.payableId && that.$route.query.payableId !== '0') { if (that.$route.query.payableId && that.$route.query.payableId != 0) {
this.payableId = this.$route.query.payableId; this.payableId = this.$route.query.payableId;
getPayableInfoByIds({ id: this.payableId }).then(res => { getPayableInfoByIds({ id: this.payableId }).then(res => {
this.handleSelectionChange([res.data]) this.handleSelectionChange([res.data])
...@@ -714,10 +743,18 @@ export default { ...@@ -714,10 +743,18 @@ export default {
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val.map(v => { this.multipleSelection = val.map(v => {
var rate = NP.divide(this.currencyList.find(vs => vs.id === v.currencyId).huilv, 100).toFixed(6) // var rate = NP.divide(this.currencyList.find(vs => vs.id === v.currencyId).huilv, 100).toFixed(6)
var rate = this.getRate(v.currencyId)
return Object.assign(v, { exchangeRate: rate }) return Object.assign(v, { exchangeRate: rate })
}); });
}, },
//获取汇率
getRate(sourceCurrencyId){
var targetCurrencyId = this.currencyList.find(vs=>vs.titleEn=='RMB').id
var rate = this.rateList.find(v=>(v.sourceCurrencyId === sourceCurrencyId&&v.targetCurrencyId===targetCurrencyId))
if(rate) return rate.currencyRate
return ''
},
hiddenDialog() { hiddenDialog() {
this.open = false; this.open = false;
}, },
......
...@@ -2,7 +2,11 @@ ...@@ -2,7 +2,11 @@
<div class="app-container" > <div class="app-container" >
<div id="print" style="font-size: 18px;"> <div id="print" style="font-size: 18px;">
<div style="text-align: center;font-weight: bold;font-size: 26px;padding: 22px 0;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">{{$t('捷道货运收款单')}}</div> <div style="position:relative;text-align: center;font-weight: bold;font-size: 26px;padding: 22px 0;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">
<div style="position:absolute;left:4px;top:4px">{{$t('广州市捷道国际货运代理有限公司')}}
</div>
<span>{{$t('收款单')}}</span>
</div>
<table border="1" style="width: 100%;text-align: center;border-collapse: collapse; "> <table border="1" style="width: 100%;text-align: center;border-collapse: collapse; ">
<tr> <tr>
<td style="font-weight: bold;width:12.5%">{{$t('部门')}}</td> <td style="font-weight: bold;width:12.5%">{{$t('部门')}}</td>
...@@ -27,26 +31,26 @@ ...@@ -27,26 +31,26 @@
<th style="width: 12.5%;">{{$t('序号')}}</th> <th style="width: 12.5%;">{{$t('序号')}}</th>
<th style="width: 12.5%;">{{$t('提单号')}}</th> <th style="width: 12.5%;">{{$t('提单号')}}</th>
<th style="width: 12.5%;">{{$t('订单号')}}</th> <th style="width: 12.5%;">{{$t('订单号')}}</th>
<th style="width: 12.5%;">{{$t('品名')}}</th> <!-- <th style="width: 12.5%;">{{$t('品名')}}</th> -->
<th style="width: 12.5%;">{{$t('收入类型')}}</th> <th style="width: 12.5%;">{{$t('收入类型')}}</th>
<th style="width: 12.5%;">{{$t('金额')}}</th>
<th style="width: 12.5%;">{{$t('币种')}}</th> <th style="width: 12.5%;">{{$t('币种')}}</th>
<th style="width: 12.5%;">{{$t('金额')}}</th>
<th style="width: 12.5%;">{{$t('优惠金额')}}</th> <th style="width: 12.5%;">{{$t('优惠金额')}}</th>
</tr> </tr>
<tr v-for="(item, index) in list" :key="index"> <tr v-for="(item, index) in list" :key="item.id">
<td>{{ index + 1 }}</td> <td>{{ index + 1 }}</td>
<td>{{ orderData.tidanNo||''}}</td> <td>{{ orderData.tidanNo||''}}</td>
<td>{{ item.orderNo }}</td> <td>{{ item.orderNo }}</td>
<td>{{ $i18n.locale=='zh_CN'?item.titleZh:item.titleEn }}</td> <!-- <td>{{ $i18n.locale=='zh_CN'?item.titleZh:item.titleEn }}</td> -->
<td><dict-tag :value="item.feeType" :type="DICT_TYPE.FEE_TYPE"></dict-tag></td> <td><dict-tag :value="item.feeType" :type="DICT_TYPE.RECEIPT_FEE_TYPE"></dict-tag></td>
<td> {{item.totalAmount}}</td>
<td>{{getCurrencyLabel(item.currencyId)}}</td> <td>{{getCurrencyLabel(item.currencyId)}}</td>
<td> {{item.totalAmount}}</td>
<td>{{ item.discountTotal||0 }}</td> <td>{{ item.discountTotal||0 }}</td>
</tr> </tr>
<tr v-for="(items, indexs) in receiptAccountList" :key="indexs"> <tr v-for="(items, indexs) in receiptAccountList" :key="indexs">
<td>{{getCurrencyLabel(items.currencyId)}}{{$t('应收合计')}}</td> <td>{{getCurrencyLabel(items.currencyId)}}{{$t('应收合计')}}</td>
<td ><span v-if="items.discountTotal>0">{{ `${items.receivableAmount - items.discountTotal }(${items.receivableAmount} - ${items.discountTotal})` }}</span> <td ><span v-if="items.discountTotal>0">{{ `${items.receivableAmount - items.discountTotal }(${items.receivableAmount} - ${items.discountTotal})` }}</span>
<span v-else>{{ `${items.receivableAmount - items.discountTotal }` }}</span> <span v-else>{{ `${items.receivableAmount}` }}</span>
</td> </td>
<td>{{$t('汇率')}}</td> <td>{{$t('汇率')}}</td>
<td>{{ items.collectionRate}}</td> <td>{{ items.collectionRate}}</td>
...@@ -64,7 +68,7 @@ ...@@ -64,7 +68,7 @@
<p style="margin: 0;word-break: break-all;">A/C NO{{bankTiem.accountNo}}</p> <p style="margin: 0;word-break: break-all;">A/C NO{{bankTiem.accountNo}}</p>
</div> </div>
<div style="padding:6px 0;width: 87.5%;text-align: center;"> <div style="padding:6px 0;width: 87.5%;text-align: center;">
<p style="margin: 0;">{{$t('实收')}}{{getCurrencyLabel(bankTiem.currencyId)}}{{bankTiem.amount}}¥</p> <p style="margin: 0;">{{$t('实收')}}{{getCurrencyLabel(bankTiem.currencyId)}}{{bankTiem.amount}}{{getCurrencyFuhao(bankTiem.currencyId)}}</p>
<!-- <p style="margin: 0;">未收:¥{{bankTiem.noReceipt}}</p> --> <!-- <p style="margin: 0;">未收:¥{{bankTiem.noReceipt}}</p> -->
</div> </div>
</div> </div>
...@@ -212,6 +216,11 @@ ...@@ -212,6 +216,11 @@
if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn
return '' return ''
}, },
getCurrencyFuhao(id){
var label = this.currencyList.filter(item=>item.id == id)
if(label.length>0) return label[0].fuhao
return ''
},
getList() { getList() {
getReceivableItem({ id: this.id }).then(res => { getReceivableItem({ id: this.id }).then(res => {
this.detailed = res.data this.detailed = res.data
......
This diff is collapsed.
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" v-hasPermi="['ecw:receivable:collection']" @click="handleAdd(scope.row.id)" >{{ $t('收款') }}</el-button> <el-button size="mini" type="text" v-hasPermi="['ecw:receivable:collection']" @click="handleAdd(scope.row)" >{{ $t('收款') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -350,8 +350,9 @@ export default { ...@@ -350,8 +350,9 @@ export default {
this.getList(); this.getList();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd(id) { handleAdd(row) {
return this.$router.push("creatCollection?receiptId=" + id); if(!row) return this.$router.push("creatCollection");
return this.$router.push("creatCollection?orderId=" + row.orderId);
}, },
submitForm() {}, submitForm() {},
}, },
......
This diff is collapsed.
This diff is collapsed.
...@@ -64,6 +64,15 @@ ...@@ -64,6 +64,15 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-form-item :label="$t('编号')">
<el-input
style="max-width: 188px"
v-model="queryParams.numberNo"
:placeholder="$t('订单号和提单号,自编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">{{ $t('查找') }}</el-button> <el-button type="primary" @click="handleQuery">{{ $t('查找') }}</el-button>
</el-form-item> </el-form-item>
......
...@@ -1019,6 +1019,10 @@ export default { ...@@ -1019,6 +1019,10 @@ export default {
item.transportId = this.form.transportId item.transportId = this.form.transportId
}) })
if(this.form.transportVO?.packageTypeArr){
this.form.transportVO.packageType = this.form.transportVO.packageTypeArr.join(',')
}
// 修改的提交 // 修改的提交
if (this.form.offerId != null) { if (this.form.offerId != null) {
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
......
...@@ -259,8 +259,10 @@ export default { ...@@ -259,8 +259,10 @@ export default {
this.params.orderNo = this.list[0].orderNo this.params.orderNo = this.list[0].orderNo
orderWarehouseInAdjustApply(this.params).then(r => { orderWarehouseInAdjustApply(this.params).then(r => {
if (r.code === 0) { if (r.code === 0) {
this.$emit('getList')
this.$emit('update:dialogVisible', false) this.$emit('update:dialogVisible', false)
this.$message.success(this.$t('调仓申请提交成功,请耐心等待审核')); this.$message.success(this.$t('调仓申请提交成功,请耐心等待审核'));
} }
}) })
}, },
...@@ -271,6 +273,7 @@ export default { ...@@ -271,6 +273,7 @@ export default {
}).then(({ value }) => { }).then(({ value }) => {
warehouseApprovalCancel(this.applyStatus.orderWarehouseApprovalBackVO.id,value) .then(r => { warehouseApprovalCancel(this.applyStatus.orderWarehouseApprovalBackVO.id,value) .then(r => {
if(r.data){ if(r.data){
this.$emit('getList')
this.$message.success(this.$t('取消调仓成功')) this.$message.success(this.$t('取消调仓成功'))
this.$emit('update:dialogVisible',false) this.$emit('update:dialogVisible',false)
......
...@@ -145,6 +145,7 @@ ...@@ -145,6 +145,7 @@
<el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{$t('调货')}}</el-button> <el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{$t('调货')}}</el-button>
<el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{$t('反复核')}}</el-button> <el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{$t('反复核')}}</el-button>
</template> </template>
<el-button type="text" size="mini" @click="showLogOrderId=scope.row.orderId" v-hasPermi="['ecw:cargo_control:log']">{{$t('控货日志')}}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -157,6 +158,8 @@ ...@@ -157,6 +158,8 @@
<release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" /> <release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" />
<transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onTransferCargoSuccess" :cargoControlPickId="pickInfo ? pickInfo.id : 0" /> <transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onTransferCargoSuccess" :cargoControlPickId="pickInfo ? pickInfo.id : 0" />
<fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" /> <fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" />
<!--控货日志-->
<cargo-log-list v-if="showLogOrderId" :order-id="showLogOrderId" @close="showLogOrderId=null" />
</div> </div>
</template> </template>
...@@ -173,9 +176,11 @@ import { getCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo, ...@@ -173,9 +176,11 @@ import { getCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo,
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from '@/views/ecw/order/components/TransferCargo'
import Fallback from './components/Fallback' import Fallback from './components/Fallback'
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
import CargoLogList from "@/views/ecw/order/components/CargoLogList.vue";
export default { export default {
name: "EcwOrderCargocontrol", name: "EcwOrderCargocontrol",
components: { components: {
CargoLogList,
CustomerSelector, ProductSelector, Selector, Transfer, Release,CargoControlEdit, TransferCargo, Fallback CustomerSelector, ProductSelector, Selector, Transfer, Release,CargoControlEdit, TransferCargo, Fallback
}, },
data() { data() {
...@@ -215,6 +220,7 @@ export default { ...@@ -215,6 +220,7 @@ export default {
showTransferCargoOrderId: null, // 调货ID showTransferCargoOrderId: null, // 调货ID
showFallbackOrder: null, // 调货订单 showFallbackOrder: null, // 调货订单
pickInfo: null, // 当前操作的提货信息 pickInfo: null, // 当前操作的提货信息
showLogOrderId: null, // 显示控货日志的订单ID
}; };
}, },
computed: { computed: {
......
...@@ -53,11 +53,16 @@ ...@@ -53,11 +53,16 @@
<el-table-column :label="$t('提单号')" prop="tidanNo"></el-table-column> <el-table-column :label="$t('提单号')" prop="tidanNo"></el-table-column>
<el-table-column :label="$t('备注')" prop="remarks"></el-table-column> <el-table-column :label="$t('备注')" prop="remarks"></el-table-column>
<el-table-column :label="$t('操作人')" prop="operator"></el-table-column> <el-table-column :label="$t('操作人')" prop="operator"></el-table-column>
<el-table-column :label="$t('日期')" prop="createTime"> <el-table-column :label="$t('放货日期')" prop="createTime">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.createTime|parseTime}} {{row.createTime|parseTime}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('复核日期')" prop="createTime">
<template slot-scope="{row}">
{{row.checkTime|parseTime}}
</template>
</el-table-column>
<el-table-column :label="$t('状态')" prop="status"> <el-table-column :label="$t('状态')" prop="status">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_RELEASE_STATUS" :value="row.status" /> <dict-tag :type="DICT_TYPE.ECW_RELEASE_STATUS" :value="row.status" />
...@@ -70,7 +75,7 @@ ...@@ -70,7 +75,7 @@
<el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{$t('放货复核')}}</el-button> <el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{$t('放货复核')}}</el-button>
<el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button> <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button>
<el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button> <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{$t('审核详情')}}</el-button> <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{$t('审核详情')}}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button> <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button>
</template> </template>
......
...@@ -33,7 +33,20 @@ ...@@ -33,7 +33,20 @@
</div> </div>
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<!-- 优惠申请 -->
<el-descriptions-item :label="$t('申请理由')" v-if="type == 31 || type == 32" :span="4">
<div class="bold" v-for="(item,index) in detail.batchApplyOrderItemDetailVOList" :key="index">
<div>{{index+1}}.【{{$l(item, 'prodTitle')}}</div>
<div>
{{item.charging ? $t('原全包价') : $t('原运费')}}{{item.orgFreight}} {{ currencyMap[item.freightCurrency] }} / {{ unitMap[item.freightVolume] }}
{{item.charging ? $t('新全包价') : $t('新运费')}}{{item.freight}} {{ currencyMap[item.freightCurrency] }} / {{ unitMap[item.freightVolume] }}
</div>
<div v-if="!item.charging">
{{$t('原清关费')}}{{item.orgClearanceFreight}} {{ currencyMap[item.clearanceFreightCurrency] }} / {{ unitMap[item.clearanceFreightVolume] }}
{{$t('新清关费')}}{{item.clearanceFreight}} {{ currencyMap[item.clearanceFreightCurrency] }} / {{ unitMap[item.clearanceFreightVolume] }}
</div>
</div>
</el-descriptions-item>
<!-- 重泡货 --> <!-- 重泡货 -->
<el-descriptions-item :label="$t('申请理由')" v-if="type == 4 || type ==5" :span="4"> <el-descriptions-item :label="$t('申请理由')" v-if="type == 4 || type ==5" :span="4">
<div class="bold" v-if="type == 4"> <div class="bold" v-if="type == 4">
...@@ -142,7 +155,7 @@ export default { ...@@ -142,7 +155,7 @@ export default {
} }
}, },
type(){ type(){
if([1,2,3,4,5].indexOf(this.type) > -1){ if([1,2,3,4,5,31,32].indexOf(this.type) > -1){
// 加载费用体积单位 // 加载费用体积单位
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
...@@ -176,6 +189,7 @@ export default { ...@@ -176,6 +189,7 @@ export default {
getApproval(this.id).then(res => { getApproval(this.id).then(res => {
this.type = res.data.type this.type = res.data.type
this.detail = JSON.parse(res.data.details) this.detail = JSON.parse(res.data.details)
console.log(this.detail)
}) })
}, },
getOrder(){ getOrder(){
......
<template>
<div>
<h1>{{ $t('申请信息【订单信息】') }}</h1>
<el-descriptions :column="4" border>
<el-descriptions-item :label="$t('订单号')">{{ order.orderNo }}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId"></dict-tag>
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{ order.channelName }}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
{{ order.statusMsg }}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">
{{ order.marks }}
</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">{{ order.logisticsInfoDto.startTitleZh }}</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')">{{ order.logisticsInfoDto.destTitleZh }}</el-descriptions-item>
</el-descriptions>
<div style="font-size: 14px">
<p>{{ $t('申请理由') }}</p>
<div v-for="(item, index) in feeList" :key="item.id">
{{index + 1}}、【<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="item.feeType" />】,
<dict-tag :value="item.payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-tag>
{{ item.applicationFee }}{{ currencyName(item.applicationFeeCurrency) }}
{{$t('备注')}}{{ item.remarks || $t('')}}
</div>
</div>
</div>
</template>
<script>
import {
warehouseApprovalGetByFormId,
warehouseApprovalGetById,
warehouseAreaPositionList
} from "@/api/ecw/batchSingleApplication";
import {
applicationGetOrderByProcessId,
feeApplicationGet, feeApplicationGetBatch, getBatchFeeByBusinessId, getBatchFeeByProcessId,
getOrder,
getOrderPage,
getWarehouseUpdateApprovalInfo, qetBatchFeeByBusinessId
} from '@/api/ecw/order'
import { getChannelList } from '@/api/ecw/channel';
import Template from "@/views/cms/template";
import {getSupplierPage} from "@/api/ecw/supplier";
import { DICT_TYPE } from "@/utils/dict";
import { getCurrencyList } from "@/api/ecw/currency";
import {arrryToKeyedObjectBy} from '@/utils/index'
export default {
components: {Template},
props:{
businessId: [Number, String],
processInstanceId: String
},
name: "BatchFeeApplicationDetail",
data(){
return{
order: null,
feeList: [],
currencyList:[]
}
},
computed:{
currencyMap(){
return arrryToKeyedObjectBy(this.currencyList, 'id')
},
currencyName(){
return id => {
let obj = this.currencyMap[id]
if(obj) return this.$l(obj, 'title')
return this.$t('未知')
}
}
},
created() {
getCurrencyList().then(res => {
this.currencyList = res.data
})
getBatchFeeByBusinessId(this.businessId).then(res => {
console.log({res})
this.feeList = res.data
return getOrder(res.data[0].orderId)
}).then(res => {
this.order = res.data
})
},
methods:{
}
}
</script>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-form-item label=""> <el-form-item label="">
<el-button type="primary" @click="submit">{{$t('提交')}}</el-button> <el-button type="primary" @click="submit" :loading="loading">{{$t('提交')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-dialog> </el-dialog>
...@@ -47,6 +47,8 @@ export default { ...@@ -47,6 +47,8 @@ export default {
}, },
data(){ data(){
return { return {
// 提交中状态
loading: false,
current: 'createBatch', current: 'createBatch',
show: false, show: false,
form:{ form:{
...@@ -94,10 +96,12 @@ export default { ...@@ -94,10 +96,12 @@ export default {
}) })
} }
} }
this.loading = true;
({createBatch, createSplitBatch}[this.current])(data).then(res => { ({createBatch, createSplitBatch}[this.current])(data).then(res => {
this.$message.success(this.$t("操作成功")); this.$message.success(this.$t("操作成功"));
this.$emit('success') this.$emit('success')
}).finally(() => {
this.loading = false
}) })
}) })
}, },
......
...@@ -25,18 +25,27 @@ ...@@ -25,18 +25,27 @@
<el-descriptions-item :label="$t('申请原因')" v-if="applyType == 8"> <el-descriptions-item :label="$t('申请原因')" v-if="applyType == 8">
<dict-tag :type="DICT_TYPE.ECW_PICK_RECURRENT_NUCLEAR_TYPE" :value="detail.recurrentNuclearType" /> <dict-tag :type="DICT_TYPE.ECW_PICK_RECURRENT_NUCLEAR_TYPE" :value="detail.recurrentNuclearType" />
</el-descriptions-item> </el-descriptions-item>
<!-- 调货 --> <!-- 调货 -->
<el-descriptions-item :label="$t('申请原因')" v-if="applyType == 9"> <el-descriptions-item :label="$t('申请原因')" v-if="applyType == 9">
{{$l(detail, 'reason')}} {{$l(detail, 'reason')}}
</el-descriptions-item> </el-descriptions-item>
<!-- 取消放货 --> <!-- 取消放货 -->
<el-descriptions-item :label="$t('申请原因')" v-if="applyType == 10"> <el-descriptions-item :label="$t('申请原因')" v-if="applyType == 10" :span="2">
<dict-tag :type="DICT_TYPE.ECW_CANCEL_PICK_TYPE" :value="detail.cancelPickType" /> <dict-tag :type="DICT_TYPE.ECW_CANCEL_PICK_TYPE" :value="detail.cancelPickType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="voucherList.length" :label="$t('凭证')" :span="3">
<div v-for="(item, index) in voucherList" :key="index" style="padding:5px">
<video v-if="isVideo(item)" :src="item" @click="playVideo(item)" style="width: 100px; height: 100px;"></video>
<el-image v-else :src="item" style="width: 100px; height: 100px;" :preview-src-list="voucherImages"></el-image>
</div>
</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-dialog :visible="!!videoUrl" :before-close="closeVideoPlayer">
<video v-if="!!videoUrl" :src="videoUrl" style="width: 500px; height: 500px" controls></video>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
...@@ -44,7 +53,9 @@ import {getPickUpdateApproveInfo} from '@/api/ecw/orderCargoControl' ...@@ -44,7 +53,9 @@ import {getPickUpdateApproveInfo} from '@/api/ecw/orderCargoControl'
import {getOrder} from '@/api/ecw/order' import {getOrder} from '@/api/ecw/order'
import {getChannelListByIds} from '@/api/ecw/channel' import {getChannelListByIds} from '@/api/ecw/channel'
import {parseTime} from '@/utils/ruoyi' import {parseTime} from '@/utils/ruoyi'
import Template from "@/views/cms/template/index.vue";
export default { export default {
components: {Template},
filters: {parseTime}, filters: {parseTime},
props:{ props:{
id: [String, Number], id: [String, Number],
...@@ -55,7 +66,8 @@ export default { ...@@ -55,7 +66,8 @@ export default {
detail: null, detail: null,
order: null, order: null,
channels: [], channels: [],
channelName: '/' channelName: '/',
videoUrl: null
} }
}, },
watch:{ watch:{
...@@ -74,7 +86,24 @@ export default { ...@@ -74,7 +86,24 @@ export default {
let channel = this.channels.find(item => item.channelId == id) let channel = this.channels.find(item => item.channelId == id)
return channel ? channel.nameZh : '/' return channel ? channel.nameZh : '/'
} }
} },
// 凭证
voucherList(){
if(!this.detail || !this.detail.voucher) return []
return this.detail.voucher.split(',')
},
// 图片类型的凭证
voucherImages(){
return this.voucherList.filter(item => {
return !this.isVideo(item)
})
},
// 判断是否是视频链接
isVideo(){
return (url) => {
return ['mp4'].indexOf(url.split('.').pop().toLowerCase()) > -1
}
}
}, },
created(){ created(){
if(this.id){ if(this.id){
...@@ -92,11 +121,20 @@ export default { ...@@ -92,11 +121,20 @@ export default {
}) })
}, },
getChannel(){ getChannel(){
if(!this.order || !this.order.channelId) return if(!this.order || !this.order.channelId) return
getChannel(this.order.channelId).then(res => { getChannel(this.order.channelId).then(res => {
this.channelName = this.$l(res.data, 'name') this.channelName = this.$l(res.data, 'name')
}) })
}, },
// 播放视频
playVideo(url){
console.log('play video', url)
this.videoUrl = url
},
// 关闭视频播放器
closeVideoPlayer(){
this.videoUrl = null
}
} }
} }
</script> </script>
...@@ -108,4 +146,4 @@ export default { ...@@ -108,4 +146,4 @@ export default {
font-weight: bold; font-weight: bold;
} }
} }
</style> </style>
\ No newline at end of file
<template>
<el-dialog :title="$t('控货日志')" visible :before-close="closeDialog" :close-on-click-modal="false" width="1000px">
<el-table :data="list">
<el-table-column :label="$t('操作时间')" prop="createTime" width="200">
<template slot-scope="{row}">{{row.createTime|parseTime}}</template>
</el-table-column>
<el-table-column :label="$t('操作人')" prop="creatorName" width="100"></el-table-column>
<el-table-column :label="$t('操作人类型')" prop="content" width="100">
<template slot-scope="{row}">{{row.userType == 1 ? $t('会员') : $t('管理员')}}</template>
</el-table-column>
<el-table-column :label="$t('操作类型')" prop="type" width="200"></el-table-column>
<el-table-column :label="$t('备注')" prop="msg"></el-table-column>
</el-table>
</el-dialog>
</template>
<script>
import {
getControlLogList,
} from '@/api/ecw/orderCargoControl'
import {parseTime} from '@/utils/ruoyi'
export default {
props:{
orderId: Number
},
filters: {parseTime},
data(){
return {
show: false,
list:[]
}
},
created(){
this.show = true
this.loadData()
},
methods:{
loadData(){
getControlLogList(this.orderId).then(res => this.list = res.data)
},
closeDialog(){
this.show = false
this.$emit('close');
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<el-dialog
:title="title"
visible
:before-close="closeDialog"
:close-on-click-modal="false"
width="800px"
>
<div v-for="item in fileList" :key="item.id" class="file-list">
<span>{{ getFileName(item.url) }}</span>
<div @click="deleteFile(item.id)">{{ $t('删除') }}</div>
<div @click="downloadFile(item.url)">{{ $t('下载') }}</div>
</div>
<div style="margin-top: 30px;display:flex;">
<el-upload action="#" accept="png" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUploadimg1">
<el-button size="small">
{{ $t('上传新附件') }}
<i class="el-icon-upload el-icon--right" />
</el-button>
</el-upload>
<el-button style="margin-left: 60px;" @click="closeDialog">{{ $t('返回') }}</el-button>
</div>
</el-dialog>
</template>
<script>
import { warehousePictureList, warehousePictureCreate, warehousePictureDelete,uploadOrgname } from '@/api/ecw/order'
export default {
props: {
orderId: [String, Number],
orderNo: [String, Number]
},
data() {
return {
show: false,
detail: null,
fileList: []
}
},
computed: {
title() {
let t = this.$t('报关资料')
if (this.orderNo) {
t += '-' + this.orderNo
}
return t
}
},
created() {
this.show = true
this.loadData()
},
methods: {
loadData() {
warehousePictureList({ bizId: this.orderId, type: 6 }).then((res) => {
this.fileList = res.data
})
},
getFileName(url) {
if (!url) return '/'
var file = url.split('/')
return file[file.length - 1]
},
closeDialog() {
this.show = false
this.$emit('close')
},
// 覆盖默认的上传行为
requestUpload() {
},
// 上传预处理
beforeUploadimg1(file) {
if (this.fileList.length >= 10) {
this.$message.error(this.$t('您最多上传10个附件'))
return
}
console.log(file)
var type = file.name.split('.')
if (['xls', 'doc', 'ppt', 'txt', 'pdf', 'jpg', 'png', 'jpeg', 'docx', 'xlsx'].indexOf(type[type.length - 1]) === -1) {
this.$message.error(this.$t('附件仅限doc/xls/ppt/txt/pdf/jpg/png/jpeg/docx/xlsx格式'))
} else {
// 上传
const formData = new FormData()
formData.append('file', file)
// formData.append('path', this.uuid())
uploadOrgname(formData).then(response => {
if (response.data) {
this.createImage(response.data)
}
})
}
},
createImage(url) {
warehousePictureCreate({ bizId: this.orderId, type: 6, url: url }).then(res => {
this.$message.success(this.$t('上传成功'))
this.loadData()
})
},
downloadFile(url) {
window.open(url, '_self')
},
deleteFile(id) {
this.$confirm(this.$t('确定删除附件吗?')).then(function() {
return warehousePictureDelete(id)
}).then(() => {
this.loadData()
this.$message({
message: this.$t('删除成功'),
type: 'success'
})
}).catch(() => {})
},
uuid() {
var s = []
var hexDigits = '0123456789abcdef'
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
}
s[14] = '4' // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = '-'
var uuid = s.join('')
return uuid
}
}
}
</script>
<style lang="scss" scoped>
.title {
font-size: 16px;
margin: 20px 0;
display: flex;
align-items: center;
&:before {
content: '';
width: 5px;
height: 15px;
background: #666;
margin-right: 10px;
}
}
.file-list{
display: flex;
align-items: center;
color: #297CE7;
margin-left: 30px;
font-size:16px;
margin-bottom:10px;
div{
cursor: pointer;
margin-left: 30px;
}
}
</style>
This diff is collapsed.
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
</template> </template>
<script> <script>
import {sendSmsCode} from '@/api/ecw/orderCargoControl' import {sendSmsCode} from '@/api/ecw/orderCargoControl'
const timeout = null let timeout = null
export default { export default {
props:{ props:{
orderId: [String, Number], orderId: [String, Number],
...@@ -46,10 +46,10 @@ export default { ...@@ -46,10 +46,10 @@ export default {
countDown(){ countDown(){
this.leftTime -- this.leftTime --
if(this.leftTime <= 0){ if(this.leftTime <= 0){
return false return false
} }
timeout = setTimeout(this.countDown, 1000) timeout = setTimeout(this.countDown, 1000)
} }
} }
} }
</script> </script>
\ No newline at end of file
...@@ -42,6 +42,15 @@ ...@@ -42,6 +42,15 @@
{{getLocationName(row.orderLocationBackVOList)}} {{getLocationName(row.orderLocationBackVOList)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" >
<template slot-scope="{row}">
<image-display :pictureUrls="warehouseItem.pictureUrls" :type="5">
<el-button type="text">
查看
</el-button>
</image-display>
</template>
</el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
</template> </template>
...@@ -50,8 +59,10 @@ import { getOrder, getOrderWarehouseIn } from '@/api/ecw/order' ...@@ -50,8 +59,10 @@ import { getOrder, getOrderWarehouseIn } from '@/api/ecw/order'
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect" import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import ImageDisplay from "@/views/ecw/order/components/imageDisplay.vue";
export default { export default {
components: { components: {
ImageDisplay,
WarehouseAreaSelect WarehouseAreaSelect
}, },
filters: {parseTime}, filters: {parseTime},
......
<template>
<div style="display: inline-block">
<div @click="visible = true">
<slot></slot>
</div>
<el-dialog
append-to-body
title="提示"
:visible.sync="visible"
width="80%">
<div style="display: flex;flex-wrap: wrap;">
<el-image style="width: 200px;height: 200px;margin-right: 10px;margin-bottom: 10px" v-for="(item) in list" :src="bizId ? item.url : item">
<video controls width="148px" height="148px" slot="error" :src="bizId ? item.url : item" ></video>
</el-image>
</div>
</el-dialog>
</div>
</template>
<script>
import {warehousePictureList} from "@/api/ecw/order";
export default {
props:{
bizId:[String, Number],
type:[Number],
pictureUrls:{
type: Array,
default:()=>[]
}
},
name: "imageDisplay",
data(){
return {
visible:false,
list:[],
}
},
created() {
},
methods:{
getList(){
warehousePictureList({bizId:this.bizId,type:this.type}).then(r =>{
this.list = r.data
;
})
}
},
watch:{
visible(val){
if(val){
if(this.bizId){
this.getList()
}else {
this.list = this.pictureUrls
}
}
}
}
}
</script>
<style scoped>
</style>
<template>
<div>
<template v-if="charging">
{{$t('全包价')}}:{{freight}}{{currencyMap[freightCurrency]}}
</template>
<template v-else>
<div>{{$t('运费')}}{{freight}}{{currencyMap[freightCurrency]}}</div>
<div>{{$t('清关费')}}{{clearance}}{{currencyMap[clearanceCurrency]}}</div>
</template>
</div>
</template>
<script>
export default {
props:{
// 货币映射
currencyMap:{
type:Object,
default(){
return {}
}
},
// 运费
freight: [String, Number],
// 运费货币
freightCurrency: Number,
// 清关费
clearance: [String, Number],
// 运费货币
clearanceCurrency: Number,
// 是否全包价
charging: Boolean
}
}
</script>
...@@ -12,13 +12,10 @@ ...@@ -12,13 +12,10 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('特殊要求备注')"><el-input type="textarea" style="width: 300px;" v-model="todoDetail"></el-input></el-form-item> <el-form-item :label="$t('特殊要求备注')"><el-input type="textarea" style="width: 300px;" v-model="todoDetail"></el-input></el-form-item>
<el-form-item v-for="(item,index) in this.getDictDatas(this.DICT_TYPE.ORDER_SPECIAL_NEEDS)" v-if="advanceType.indexOf(item.value) > -1" :key="item.value" :label="item.label + '预计金额'"> <el-form-item v-for="(item,index) in this.getDictDatas(this.DICT_TYPE.ORDER_SPECIAL_NEEDS)" v-if="advanceType.indexOf(item.value) > -1" :key="item.value" :label="item.label + '预计金额'">
<el-input style="width: 300px;" v-model="specialNeedsList[index].transFee"> <el-input-number style="width: 300px;" v-model.number="specialNeedsList[index].transFee" type="number" :min="0" step-strictly></el-input-number>
<div style="width: 100px;" slot="append" > <el-select v-model="specialNeedsList[index].transCurrency">
<el-select v-model="specialNeedsList[index].transCurrency"> <el-option v-for="item in JSON.parse(currency)" :key="item.id" :label="item.titleZh" :value="item.id" />
<el-option v-for="item in JSON.parse(currency)" :key="item.id" :label="item.titleZh" :value="item.id" /> </el-select>
</el-select>
</div>
</el-input>
<div style="display: inline-block;margin-left: 20px;"> <div style="display: inline-block;margin-left: 20px;">
<span style="margin-right: 10px;">{{ $t('付款类型') }}</span> <span style="margin-right: 10px;">{{ $t('付款类型') }}</span>
<dict-selector :placeholder="$t('请选择付款类型')" v-model="specialNeedsList[index].payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-selector> <dict-selector :placeholder="$t('请选择付款类型')" v-model="specialNeedsList[index].payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-selector>
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="50%"> width="50%">
<div style="display: flex;flex-wrap: wrap;"> <div style="display: flex;flex-wrap: wrap;">
<div v-for="item in list" style="padding: 10px"><el-image <div v-for="item in list" style="padding: 10px">
<el-image
style="width: 100px; height: 100px" style="width: 100px; height: 100px"
:src="item" :src="item"
:preview-src-list="list"> :preview-src-list="list">
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
<selector :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector> <selector :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery" :loading="loading">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -496,8 +496,8 @@ ...@@ -496,8 +496,8 @@
<print-lading-bill v-if="printLadingBillOrderId !== null" :order-id="printLadingBillOrderId" @close="printLadingBillOrderId=null" /> <print-lading-bill v-if="printLadingBillOrderId !== null" :order-id="printLadingBillOrderId" @close="printLadingBillOrderId=null" />
<batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/> <batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/>
<withdrawal v-if="show" :dialog-visible="show" :orderId="orderId" ></withdrawal> <withdrawal v-if="show" :dialog-visible="show" :orderId="orderId" ></withdrawal>
<batch-single-application :order-list="orderId" :dialog-visible.sync="warehouseBol"></batch-single-application> <batch-single-application @getList="getList" :order-list="orderId" :dialog-visible.sync="warehouseBol"></batch-single-application>
<fee-application :order-id="orderId" :currencys="JSON.stringify(currencyList)" :dialog-visible.sync="feeApplicationBol"></fee-application> <fee-application v-if="feeApplicationBol" :order-id="orderId" :currencys="JSON.stringify(currencyList)" :dialog-visible.sync="feeApplicationBol"></fee-application>
<merge-log :order-no="showMergedLogOrderNo" v-if="showMergedLogOrderNo !== null" @close="showMergedLogOrderNo=null" /> <merge-log :order-no="showMergedLogOrderNo" v-if="showMergedLogOrderNo !== null" @close="showMergedLogOrderNo=null" />
<pickup-log v-if="showPickupLogOrderNo" :order-no="showPickupLogOrderNo" @close="showPickupLogOrderNo=null" @delete="getList" /> <pickup-log v-if="showPickupLogOrderNo" :order-no="showPickupLogOrderNo" @close="showPickupLogOrderNo=null" @delete="getList" />
<SplitRevoke v-if="splitRevokeOrderId" :order-id="splitRevokeOrderId" @close="splitRevokeOrderId=null;getList()"></SplitRevoke> <SplitRevoke v-if="splitRevokeOrderId" :order-id="splitRevokeOrderId" @close="splitRevokeOrderId=null;getList()"></SplitRevoke>
......
...@@ -133,6 +133,8 @@ ...@@ -133,6 +133,8 @@
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='not_customer_service_exception'" v-hasPermi="['ecw:exception:notCustomer']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='not_customer_service_exception'" v-hasPermi="['ecw:exception:notCustomer']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='goods_add_exception'" v-hasPermi="['ecw:exception:goodsAddException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='goods_add_exception'" v-hasPermi="['ecw:exception:goodsAddException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='fee_exception'" v-hasPermi="['ecw:exception:feeException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<!-- v2.0 --> <!-- v2.0 -->
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='line_loop_exception'" v-hasPermi="['ecw:exception:lineLoopException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='line_loop_exception'" v-hasPermi="['ecw:exception:lineLoopException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='customs_fee_not_quote_exception'" v-hasPermi="['ecw:exception:notQuoteException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='customs_fee_not_quote_exception'" v-hasPermi="['ecw:exception:notQuoteException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
...@@ -142,7 +144,7 @@ ...@@ -142,7 +144,7 @@
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='in_warehousing_diff_exception'" v-hasPermi="['ecw:exception:inWarehousingException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='in_warehousing_diff_exception'" v-hasPermi="['ecw:exception:inWarehousingException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='stock_up_exception'" v-hasPermi="['ecw:exception:stockUpException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='stock_up_exception'" v-hasPermi="['ecw:exception:stockUpException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='channel_exception'" v-hasPermi="['ecw:exception:channelException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> <el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='channel_exception'" v-hasPermi="['ecw:exception:channelException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-tag style="margin-left:10px" v-if="scope.row.orderExceptionStatus==2">{{$t('已完成')}}</el-tag> <el-tag style="margin-left:10px" v-if="scope.row.orderExceptionStatus==2">{{$t('已完成')}}</el-tag>
<el-button v-else-if="scope.row.orderExceptionType=='order_superfluous_box_exception'" v-hasPermi="['ecw:exception:superfluousBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_superfluous_box_exception'" v-hasPermi="['ecw:exception:superfluousBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
...@@ -161,6 +163,7 @@ ...@@ -161,6 +163,7 @@
<el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='not_customer_service_exception'" v-hasPermi="['ecw:exception:notCustomer']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='not_customer_service_exception'" v-hasPermi="['ecw:exception:notCustomer']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='goods_add_exception'" v-hasPermi="['ecw:exception:goodsAddException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='goods_add_exception'" v-hasPermi="['ecw:exception:goodsAddException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='fee_exception'" v-hasPermi="['ecw:exception:feeException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<!-- v2.0 --> <!-- v2.0 -->
<el-button v-else-if="scope.row.orderExceptionType=='line_loop_exception'" v-hasPermi="['ecw:exception:lineLoopException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='line_loop_exception'" v-hasPermi="['ecw:exception:lineLoopException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='customs_fee_not_quote_exception'" v-hasPermi="['ecw:exception:notQuoteException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='customs_fee_not_quote_exception'" v-hasPermi="['ecw:exception:notQuoteException']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -33,9 +33,9 @@ ...@@ -33,9 +33,9 @@
<el-table-column :label="$t('重量') + '(kg)'" prop="weight" /> <el-table-column :label="$t('重量') + '(kg)'" prop="weight" />
<el-table-column :label="$t('数量(个)')" prop="quantity" /> <el-table-column :label="$t('数量(个)')" prop="quantity" />
<el-table-column :label="$t('入仓快递单号')" prop="expressNo" /> <el-table-column :label="$t('入仓快递单号')" prop="expressNo" />
<!--<el-table-column :label="$t('首次入仓时间')" prop="inTime" > <el-table-column :label="$t('首次入仓时间')" prop="inTime" >
<template slot-scope="{row}">{{row.inTime|parseTime}}</template> <template slot-scope="{row}">{{row.inTime|parseTime}}</template>
</el-table-column>--> </el-table-column>
<el-table-column :label="$t('储位')" prop="orderLocationBackVOList" > <el-table-column :label="$t('储位')" prop="orderLocationBackVOList" >
<template slot-scope="{row}"> <template slot-scope="{row}">
<!--{{getLocationName(row.orderLocationList)}}--> <!--{{getLocationName(row.orderLocationList)}}-->
...@@ -52,10 +52,12 @@ ...@@ -52,10 +52,12 @@
<script> <script>
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect/index.vue"; import WarehouseAreaSelect from "@/components/WarehouseAreaSelect/index.vue";
import {parseTime} from "@/utils/ruoyi";
export default { export default {
name: "WarehouseRecord", name: "WarehouseRecord",
components: {WarehouseAreaSelect}, components: {WarehouseAreaSelect},
filters: {parseTime},
props:{ props:{
list:{ list:{
type: Array, type: Array,
...@@ -73,6 +75,7 @@ export default { ...@@ -73,6 +75,7 @@ export default {
this.show = true this.show = true
}, },
methods:{ methods:{
parseTime,
// 获取储位名称 // 获取储位名称
getLocationName(locationArr){ getLocationName(locationArr){
if(!locationArr || !locationArr.length) return '' if(!locationArr || !locationArr.length) return ''
......
This diff is collapsed.
...@@ -464,7 +464,7 @@ export default { ...@@ -464,7 +464,7 @@ export default {
} }
}) })
this.protectRowCount = protectRowCount*/ this.protectRowCount = protectRowCount*/
this.handleAdd() // this.handleAdd()
// this.handleAdd(1) // this.handleAdd(1)
} }
}, },
......
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