Commit ab30e4b3 authored by 我在何方's avatar 我在何方

Merge branch 'release' of http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator into release

parents 598cc544 1df51fc2
...@@ -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
......
...@@ -59,7 +59,7 @@ export default { ...@@ -59,7 +59,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",
}); });
} }
...@@ -350,3 +350,22 @@ export function dealCustomsSplitNotify(notifyId){ ...@@ -350,3 +350,22 @@ export function dealCustomsSplitNotify(notifyId){
method: "get", 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({
......
...@@ -413,6 +413,33 @@ export function getOrderSpecialByApproveId(approveId) { ...@@ -413,6 +413,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({
...@@ -515,19 +542,6 @@ export function warehousePictureList(data){ ...@@ -515,19 +542,6 @@ export function warehousePictureList(data){
data data
}) })
} }
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 deptOrderPage(params){ export function deptOrderPage(params){
...@@ -761,4 +775,78 @@ export function splitItemUpdate(data){ ...@@ -761,4 +775,78 @@ export function splitItemUpdate(data){
data data
}) })
} }
// 上传报关资料
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'
})
}
...@@ -149,3 +149,11 @@ export function exportCargoControl(params){ ...@@ -149,3 +149,11 @@ export function exportCargoControl(params){
params params
}) })
} }
// 控货日志
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'
...@@ -121,3 +128,12 @@ export function getOrderExcptionResult(query) { ...@@ -121,3 +128,12 @@ export function getOrderExcptionResult(query) {
params: query params: query
}) })
} }
// 参数查询获得订单统计
export function getStatistics(query) {
return request({
url: '/ecw/order-exception/statistics',
method: 'get',
params: query
})
}
\ No newline at end of file
...@@ -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}
})
}
...@@ -5,10 +5,11 @@ ...@@ -5,10 +5,11 @@
<el-image @click="dialogImageUrl = item.url; dialogVisible = true; " style="height: 148px; width:148px;" fit="fit" :src="item.url"> <el-image @click="dialogImageUrl = item.url; dialogVisible = true; " style="height: 148px; width:148px;" fit="fit" :src="item.url">
<video controls width="148px" height="148px" slot="error" :src="item.url" ></video> <video controls width="148px" height="148px" slot="error" :src="item.url" ></video>
</el-image> </el-image>
<div @click="handleRemove(index)" class="el-icon-error" style="font-size: 25px;cursor: pointer;position: absolute;right: -10px; top: -10px" ></div> <div v-if="!readonly" @click="handleRemove(index)" class="el-icon-error" style="font-size: 25px;cursor: pointer;position: absolute;right: -10px; top: -10px" ></div>
</div> </div>
<div> <div>
<el-upload <el-upload
v-if="!readonly"
multiple multiple
:action="uploadImgUrl" :action="uploadImgUrl"
list-type="picture-card" list-type="picture-card"
...@@ -23,7 +24,7 @@ ...@@ -23,7 +24,7 @@
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
<!-- 上传提示 --> <!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip"> <div class="el-upload__tip" slot="tip" v-if="showTip && !readonly">
{{ $t('请上传') }} {{ $t('请上传') }}
<template v-if="fileSize">{{ $t('大小不超过') }}<b style="color: #f56c6c">{{ fileSize }}MB</b> </template> <br> <template v-if="fileSize">{{ $t('大小不超过') }}<b style="color: #f56c6c">{{ fileSize }}MB</b> </template> <br>
<template v-if="fileType">{{ $t('格式为') }}<b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>{{ $t('的文件') }}</div> <template v-if="fileType">{{ $t('格式为') }}<b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>{{ $t('的文件') }}</div>
...@@ -73,6 +74,10 @@ export default { ...@@ -73,6 +74,10 @@ export default {
id: { id: {
type: Number, type: Number,
default: undefined default: undefined
},
readonly: {
type: Boolean,
default: false
} }
}, },
data() { data() {
...@@ -126,9 +131,11 @@ export default { ...@@ -126,9 +131,11 @@ export default {
methods: { methods: {
// 删除图片 // 删除图片
handleRemove(index) { handleRemove(index) {
if (this.id && this.type) {
this.$emit("delete", this.fileList[index].url);
}
this.fileList.splice(index, 1); this.fileList.splice(index, 1);
this.$emit("input", this.listToString(this.fileList)); this.$emit("input", this.listToString(this.fileList));
this.$emit("delete", index);
}, },
// 上传成功回调 // 上传成功回调
handleUploadSuccess(res) { handleUploadSuccess(res) {
...@@ -138,6 +145,7 @@ export default { ...@@ -138,6 +145,7 @@ 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;
if (this.id && this.type) {
warehousePictureCreate({ warehousePictureCreate({
"bizId": this.id, "bizId": this.id,
"type": this.type, "type": this.type,
...@@ -147,6 +155,11 @@ export default { ...@@ -147,6 +155,11 @@ export default {
this.$emit("refresh"); this.$emit("refresh");
this.$modal.closeLoading(); 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){
......
...@@ -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
......
This diff is collapsed.
...@@ -2,7 +2,11 @@ import router from '@/router' ...@@ -2,7 +2,11 @@ import router from '@/router'
const state = { const state = {
visitedViews: [], visitedViews: [],
cachedViews: [] cachedViews: [],
}
// 获取页面的缓存名称
const getViewName = (view) => {
return view.meta.componentPath.split('/').map(item => item.substring(0, 1).toUpperCase() + item.substring(1).toLowerCase()).join('')
} }
const mutations = { const mutations = {
...@@ -16,7 +20,7 @@ const mutations = { ...@@ -16,7 +20,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 +35,9 @@ const mutations = { ...@@ -31,7 +35,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)
}, },
......
...@@ -120,6 +120,7 @@ export const DICT_TYPE = { ...@@ -120,6 +120,7 @@ export const DICT_TYPE = {
ECW_CUSTOMER_TRANSPORT_TYPE: 'customer_transport_type', // 客户出货渠道(跟运输方式相同,但是显示全部) ECW_CUSTOMER_TRANSPORT_TYPE: 'customer_transport_type', // 客户出货渠道(跟运输方式相同,但是显示全部)
ECW_ORDER_APPROVAL_TYPE: 'order_approval_type', // 订单相关审批类型 ECW_ORDER_APPROVAL_TYPE: 'order_approval_type', // 订单相关审批类型
ECW_FEE_SOURCE: 'fee_source', // 费用来源 ECW_FEE_SOURCE: 'fee_source', // 费用来源
RECEIPT_FEE_TYPE:'receipt_fee_type',
//--------ecw--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
...@@ -217,8 +218,10 @@ export const DICT_TYPE = { ...@@ -217,8 +218,10 @@ 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'
} }
/** /**
......
...@@ -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) {
// 如果内容很长则用alert提示,不然可能显示不全,自动隐藏也会导致看不完整就消失了
if(msg.length > 300){
MessageBox.alert(msg, i18n.t('错误提示'), i18n.t('确定'))
}else{
Notification.error({ Notification.error({
title: msg title: msg
}) })
}
return Promise.reject(msg || 'error') return Promise.reject(msg || 'error')
} else { } else {
return res.data return res.data
......
...@@ -55,6 +55,12 @@ ...@@ -55,6 +55,12 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('提单制作')" prop="ladingBillStatus">
<el-select v-model="queryParams.ladingBillStatus" :placeholder="$t('请选择提单制作状态')" clearable size="small">
<el-option v-for="(item,index) in ladingBillStatusData" :key="index" :label="item" :value="index">
</el-option>
</el-select>
</el-form-item>
<el-form-item> <el-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">{{$t('搜索')}}</el-button>
...@@ -107,6 +113,12 @@ ...@@ -107,6 +113,12 @@
<el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" /> <el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" />
<el-table-column :label="$t('提单状态')" align="center" prop="ladingBillStatus" width="180">
<template slot-scope="scope">
<span>{{ ladingBillStatusData[scope.row.ladingBillStatus] }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('日期')" align="center" prop="createTime" width="180"> <el-table-column :label="$t('日期')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<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>
...@@ -232,6 +244,11 @@ export default { ...@@ -232,6 +244,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,
// 导出遮罩层 // 导出遮罩层
......
...@@ -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>
......
...@@ -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(
...@@ -440,12 +464,16 @@ export default { ...@@ -440,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
); );
}, },
/* 容量 */ /* 容量 */
......
...@@ -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>
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<el-table-column :label="$t('发布人') + '/' + $t('发布时间')" align="center" prop="startTime" width="180"> <el-table-column :label="$t('发布人') + '/' + $t('发布时间')" align="center" prop="startTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.creatorName }}</div> <div>{{ scope.row.creatorName }}</div>
<div>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</div> <div>{{ parseTime(scope.row.createTime) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('开始时间')" align="center" prop="startTime" width="180"> <el-table-column :label="$t('开始时间')" align="center" prop="startTime" width="180">
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
<el-table-column :label="$t('更新人') + '/' + $t('更新时间')" align="center" width="180"> <el-table-column :label="$t('更新人') + '/' + $t('更新时间')" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.updaterName }}</div> <div>{{ scope.row.updaterName }}</div>
<div>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</div> <div>{{ parseTime(scope.row.updateTime)}}</div>
</template> </template>
</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">
......
...@@ -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>
...@@ -47,7 +47,9 @@ ...@@ -47,7 +47,9 @@
<el-descriptions-item :label="$t('主营类别')">{{ $l(customer,'productTypeName') }}</el-descriptions-item> <el-descriptions-item :label="$t('主营类别')">{{ $l(customer,'productTypeName') }}</el-descriptions-item>
<el-descriptions-item :label="$t('常提货网点')">{{ $l(customer,'pickupPointName') }}</el-descriptions-item> <el-descriptions-item :label="$t('常提货网点')">{{ $l(customer,'pickupPointName') }}</el-descriptions-item>
<el-descriptions-item :label="$t('图片')"> <el-descriptions-item :label="$t('图片')">
<el-image v-show="!!customer.picture" :src="customer.picture" style="width: 100px;height: 100px"></el-image> <el-image v-if="customer.picture" :src="customer.picture" style="width: 100px;height: 100px">
<span slot="error">加载失败</span>
</el-image>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item> <el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item>
<el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ?$t('新客户') : $t('老客户') }}</el-descriptions-item> <el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ?$t('新客户') : $t('老客户') }}</el-descriptions-item>
......
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>
...@@ -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()
}) })
}, },
......
...@@ -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>
......
...@@ -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>
......
...@@ -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" />
......
...@@ -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(){
......
...@@ -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
}) })
}) })
}, },
......
...@@ -32,11 +32,20 @@ ...@@ -32,11 +32,20 @@
</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,6 +86,23 @@ export default { ...@@ -74,6 +86,23 @@ 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(){
...@@ -97,6 +126,15 @@ export default { ...@@ -97,6 +126,15 @@ export default {
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>
......
<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],
......
...@@ -41,6 +41,15 @@ ...@@ -41,6 +41,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>
...@@ -49,8 +58,10 @@ import { getOrder, getOrderWarehouseIn } from '@/api/ecw/order' ...@@ -49,8 +58,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">
......
...@@ -245,10 +245,15 @@ ...@@ -245,10 +245,15 @@
<el-tab-pane :label="$t('运单资料/提货单')" name="three"> <el-tab-pane :label="$t('运单资料/提货单')" name="three">
<!--inWarehouseState 1待入库,2多了,3少了,4到齐--> <!--inWarehouseState 1待入库,2多了,3少了,4到齐-->
<el-button v-hasPermi="['ecw:order:show_receipt']" type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState == 0 && order.shipmentState == 0">{{$t('查看入仓单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_receipt']" type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState == 0 && order.shipmentState == 0">{{$t('查看入仓单')}}</el-button>
<image-display :type="1" :biz-id="order.orderId">
<el-button style="margin: 0 15px" type="text">{{$t('入仓影像')}}</el-button>
</image-display>
<el-button v-hasPermi="['ecw:order:show_landing']" type="text" @click.native="showLadingBill=true" :disabled="!order.ladingState">{{$t('查看提货单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_landing']" type="text" @click.native="showLadingBill=true" :disabled="!order.ladingState">{{$t('查看提货单')}}</el-button>
<el-button v-hasPermi="['ecw:order:show_packing']" :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">{{$t('装箱单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_packing']" :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">{{$t('装箱单')}}</el-button>
<el-button v-hasPermi="['ecw:order:show_customs']" type="text" @click="showDeclaration=true">{{$t('查看报关资料')}}</el-button>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('费用明细')" name="four"> <el-tab-pane :label="$t('费用明细')" name="four">
<el-button v-has-permi="['order:detail:fee-detail']" type="primary" @click="showFeeSummary=true">{{$t('费用汇总')}}</el-button>
<el-table :data="feeList"> <el-table :data="feeList">
<el-table-column :label="$t('订单号')" prop="orderNo"> <el-table-column :label="$t('订单号')" prop="orderNo">
<template slot-scope="{row}"> <template slot-scope="{row}">
...@@ -266,7 +271,6 @@ ...@@ -266,7 +271,6 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('目的地')"> <el-table-column :label="$t('目的地')">
{{$l(objective, 'title') || '-'}} {{$l(objective, 'title') || '-'}}
{{$l(objective, 'title') || '-'}}
</el-table-column> </el-table-column>
<el-table-column :label="$t('品名')" prop="titleZh"> <el-table-column :label="$t('品名')" prop="titleZh">
<template slot-scope="{row}"> <template slot-scope="{row}">
...@@ -416,12 +420,20 @@ ...@@ -416,12 +420,20 @@
<!--日志详情--> <!--日志详情-->
<operate-log-detail v-if="showLogDetailId" :log-id="showLogDetailId" @close="showLogDetailId=null"></operate-log-detail> <operate-log-detail v-if="showLogDetailId" :log-id="showLogDetailId" @close="showLogDetailId=null"></operate-log-detail>
<!-- 报关资料 -->
<declaration-documents v-if="showDeclaration" :order-id="order.orderId" :order-no="order.orderNo" @close="showDeclaration=false" />
<!--费用汇总-->
<fee-detail
v-if="showFeeSummary"
:order-id="order.orderId"
:currency-map="currencyMap"
@close="showFeeSummary=false" />
</div> </div>
</template> </template>
<script> <script>
import { getOrder, operateLogPage } from '@/api/ecw/order' import {getOrder, operateLogPage} from '@/api/ecw/order'
import { getDictDatas, DICT_TYPE, getDictData } from '@/utils/dict'; import { getDictDatas, DICT_TYPE, getDictData } from '@/utils/dict';
import PrintWarehouseReceipt from './components/PrintWarehouseReceipt' import PrintWarehouseReceipt from './components/PrintWarehouseReceipt'
import PrintLadingBill from './components/PrintLadingBill' import PrintLadingBill from './components/PrintLadingBill'
...@@ -431,16 +443,20 @@ import {getReceivableListByOrderId} from '@/api/ecw/receipt' ...@@ -431,16 +443,20 @@ import {getReceivableListByOrderId} from '@/api/ecw/receipt'
import { getChannel } from '@/api/ecw/channel'; import { getChannel } from '@/api/ecw/channel';
import {listByIds} from '@/api/ecw/region' import {listByIds} from '@/api/ecw/region'
import WarehouseDetail from './components/WarehouseDetail'; import WarehouseDetail from './components/WarehouseDetail';
import {getProductBrank} from '@/api/ecw/productBrank'
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi';
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect" import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import {checkPermi} from '@/utils/permission' import {checkPermi} from '@/utils/permission'
import OperateLogDetail from "@/views/ecw/order/components/OprateLogDetail"; import OperateLogDetail from "@/views/ecw/order/components/OprateLogDetail";
import DeclarationDocuments from './components/DeclarationDocuments';
import ImageDisplay from "@/views/ecw/order/components/imageDisplay.vue";
import FeeDetail from "@/views/ecw/order/components/FeeDetail.vue";
export default { export default {
name: "detail", name: "detail",
components: { components: {
ImageDisplay,
OperateLogDetail, OperateLogDetail,
PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect,DeclarationDocuments,
FeeDetail
}, },
filters: { filters: {
customsTypeFilter(e, customsTypeList) { customsTypeFilter(e, customsTypeList) {
...@@ -484,7 +500,9 @@ export default { ...@@ -484,7 +500,9 @@ export default {
showText:this.$t('显示更多'), showText:this.$t('显示更多'),
showMore:false, showMore:false,
consigneeText:this.$t('更多'), consigneeText:this.$t('更多'),
showLogDetailId: null, // 显示日志详情的ID showLogDetailId: null, // 显示日志详情的ID,
showDeclaration:false, //显示报关资料
showFeeSummary: false, // 是否显示费用汇总
} }
}, },
computed:{ computed:{
......
...@@ -301,7 +301,8 @@ ...@@ -301,7 +301,8 @@
{{sum.totalWorth.toFixed() || 0}}元 {{sum.totalWorth.toFixed() || 0}}元
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('保价费')"> <el-descriptions-item :label="$t('保价费')">
{{fee.insuranceFee || 0}} {{$t('美元')}} {{fee.insuranceFee || 0}}
{{ selectedRouter ? currentcyMap[selectedRouter.currencyUnit || 1] : '' }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -313,13 +314,21 @@ ...@@ -313,13 +314,21 @@
<el-input v-model="form.marks" ></el-input> <el-input v-model="form.marks" ></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('是否控货')" prop="isCargoControl" class="ml-20"> <el-form-item :label="$t('是否控货')" prop="isCargoControl" class="ml-20">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCargoControl" form-type="radio"/> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model="form.isCargoControl"
formatter="bool"
form-type="radio"
:filter="(item) => {
return selectedRouter && selectedRouter.controlStatus === 1 && item.value === 'true' ? false : true
}"
/>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section" v-if="collectionProxy"> <div class="form-section" v-if="collectionProxy">
<el-form-item :label="$t('是否代收货款')" prop="isCollection"> <el-form-item :label="$t('是否代收货款')" prop="isCollection">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCollection" form-type="radio" :disabled="false" /> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.isCollection" form-type="radio" :disabled="false" />
</el-form-item> </el-form-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项--> <!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-form-item :label="$t('代收货款金额')" v-if="collectionProxy && form.isCollection" prop="collectionProxy" class="ml-20"> <el-form-item :label="$t('代收货款金额')" v-if="collectionProxy && form.isCollection" prop="collectionProxy" class="ml-20">
<el-input type="number" v-model="form.collectionProxy" class="w-200 mr-10" :disabled="false"></el-input> <el-input type="number" v-model="form.collectionProxy" class="w-200 mr-10" :disabled="false"></el-input>
...@@ -329,6 +338,8 @@ ...@@ -329,6 +338,8 @@
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('单证报关')" :span="2" prop="customsType"> <el-form-item :label="$t('单证报关')" :span="2" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable :disabled="false" /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable :disabled="false" />
<!--自单代报显示提示-->
<div v-if="+form.customsType === 2" style="color:red;font-size:14px">{{$t('报关退税,请备齐资料。')}}</div>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
...@@ -550,6 +561,7 @@ import SupplierSelector from '@/components/SupplierSelector' ...@@ -550,6 +561,7 @@ import SupplierSelector from '@/components/SupplierSelector'
import Decimal from 'decimal.js' import Decimal from 'decimal.js'
import WorkFlow from '@/components/WorkFlow' import WorkFlow from '@/components/WorkFlow'
import { getCustomer } from "@/api/ecw/customer"; import { getCustomer } from "@/api/ecw/customer";
import {debounce} from "@/utils";
// 缓存默认的表单数据 // 缓存默认的表单数据
let makeDefaultFormData = () => { let makeDefaultFormData = () => {
...@@ -783,7 +795,7 @@ export default { ...@@ -783,7 +795,7 @@ export default {
console.log('departureId', departureId) console.log('departureId', departureId)
this.getOpenedRouterList() this.getOpenedRouterList()
// 修改始发地后需要重新选择路线 // 修改始发地后需要重新选择路线
if(oldDepartureId && oldDepartureId != departureId){ if(oldDepartureId && oldDepartureId != departureId && !this.initing){
console.log('修改始发地,重置lineId', oldDepartureId, departureId) console.log('修改始发地,重置lineId', oldDepartureId, departureId)
this.$set(this.form, 'lineId', null) this.$set(this.form, 'lineId', null)
} }
...@@ -792,7 +804,7 @@ export default { ...@@ -792,7 +804,7 @@ export default {
'form.objectiveId'(objectiveId, oldObjectiveId){ 'form.objectiveId'(objectiveId, oldObjectiveId){
this.getOpenedRouterList() this.getOpenedRouterList()
// 修改目的地后需要重新选择路线 // 修改目的地后需要重新选择路线
if(oldObjectiveId && oldObjectiveId != objectiveId){ if(oldObjectiveId && oldObjectiveId != objectiveId && !this.initing){
console.log('修改目的地,重置lineId', oldObjectiveId, objectiveId) console.log('修改目的地,重置lineId', oldObjectiveId, objectiveId)
this.$set(this.form, 'lineId', null) this.$set(this.form, 'lineId', null)
} }
...@@ -810,7 +822,7 @@ export default { ...@@ -810,7 +822,7 @@ export default {
}) })
} }
// 更换运输方式之后,之前选择的路线会失效,需要重新选择 // 更换运输方式之后,之前选择的路线会失效,需要重新选择
if(oldTransportId && oldTransportId != transportId && transportId != this.selectedRouter?.transportType){ if(oldTransportId && oldTransportId != transportId && transportId != this.selectedRouter?.transportType && !this.initing){
console.log('重置路线',oldTransportId, transportId, this.selectedRouter?.transportType) console.log('重置路线',oldTransportId, transportId, this.selectedRouter?.transportType)
this.$set(this.form, 'lineId', undefined) this.$set(this.form, 'lineId', undefined)
} }
...@@ -834,6 +846,17 @@ export default { ...@@ -834,6 +846,17 @@ export default {
this.$set(this.form, 'objectiveId', router.destCityId) this.$set(this.form, 'objectiveId', router.destCityId)
this.calculationPrice() this.calculationPrice()
this.$nextTick(() => {
// 如果开启了默认送货上门,则默认选择送货上门,2是送货上门,10是默认送货上门
this.$set(this.form, 'harvestMethod', this.routeOtherServices.indexOf('2') > -1 && this.routeOtherServices.indexOf('10') > -1 ? '2' : '1')
// controlStatus 0 支持控货,1不支持控货
// 如果不支持控货,则控货不能选择是
if (router.controlStatus === 1) {
this.$set(this.form, 'isCargoControl', false)
}
})
}, },
/* 'form.packageTypeArr'(val){ /* 'form.packageTypeArr'(val){
console.log('packageType', val, val.length) console.log('packageType', val, val.length)
...@@ -922,6 +945,7 @@ export default { ...@@ -922,6 +945,7 @@ export default {
// console.warn('onTableMounted', e) // console.warn('onTableMounted', e)
}, },
getOrder(){ getOrder(){
this.initing = true
getUpdateInfo(this.$route.query.id).then(res => { getUpdateInfo(this.$route.query.id).then(res => {
this.form = Object.assign({}, {...res.data}, {orderItemVOList: []}) this.form = Object.assign({}, {...res.data}, {orderItemVOList: []})
...@@ -975,6 +999,7 @@ export default { ...@@ -975,6 +999,7 @@ export default {
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单 // 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this.$nextTick(() => { this.$nextTick(() => {
console.log('nextTick 订单渲染完成')
res.data.orderItemVOList.forEach(item => { res.data.orderItemVOList.forEach(item => {
item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '').map(attrId => +attrId) item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '').map(attrId => +attrId)
this.form.orderItemVOList.push({...item}) this.form.orderItemVOList.push({...item})
...@@ -990,6 +1015,8 @@ export default { ...@@ -990,6 +1015,8 @@ export default {
} }
this.initing = false this.initing = false
}) })
console.log('order数据加载成功')
}).catch(() => { }).catch(() => {
this.initing = false this.initing = false
}) })
...@@ -1095,6 +1122,7 @@ export default { ...@@ -1095,6 +1122,7 @@ export default {
}, },
// 获取路线 // 获取路线
getOpenedRouterList(){ getOpenedRouterList(){
debounce(() => {
let params = {} let params = {}
if(this.form.departureId){ if(this.form.departureId){
params.startCityId = this.form.departureId params.startCityId = this.form.departureId
...@@ -1110,6 +1138,7 @@ export default { ...@@ -1110,6 +1138,7 @@ export default {
getOpenedRouterList(params).then(res => this.routerList = res.data.filter(item => { getOpenedRouterList(params).then(res => this.routerList = res.data.filter(item => {
return this.exportCityIds.indexOf(item.startCityId) > -1 && this.importCityIds.indexOf(item.destCityId) > -1 return this.exportCityIds.indexOf(item.startCityId) > -1 && this.importCityIds.indexOf(item.destCityId) > -1
})) }))
}, 100, false)()
}, },
// 计算体积 // 计算体积
calcVolume(row){ calcVolume(row){
...@@ -1130,7 +1159,7 @@ export default { ...@@ -1130,7 +1159,7 @@ export default {
/** 提交按钮 */ /** 提交按钮 */
// type 在新建的时候表示状态,0草稿,2带入仓 // type 在新建的时候表示状态,0草稿,2带入仓
submitForm(submitType) { submitForm(submitType) {
this.$refs["form"].validate((valid, errors) => { this.$refs["form"].validate(async (valid, errors) => {
if (!valid) { if (!valid) {
return this.$showFormValidateErrors(errors) return this.$showFormValidateErrors(errors)
} }
...@@ -1166,6 +1195,13 @@ export default { ...@@ -1166,6 +1195,13 @@ export default {
} }
}) })
this.form.packageType = this.form.packageTypeArr.join(',') this.form.packageType = this.form.packageTypeArr.join(',')
// 付款人=发货人提示
if (+this.form.drawee === 1) {
await this.$confirm(this.$t('请再次确认运费由您支付还是收货人支付?'))
}
// 修改的提交 // 修改的提交
if (this.form.orderNo != null) { if (this.form.orderNo != null) {
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的仓')" prop="destinationId"> <el-form-item :label="$t('目的仓')" prop="destinationId">
<el-select v-model="queryParams.destinationId" :placeholder="$t('请选择目的仓')" clearable> <el-select v-model="queryParams.destinationId" multiple :placeholder="$t('请选择目的仓')" clearable>
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -32,9 +32,21 @@ ...@@ -32,9 +32,21 @@
<el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id" ></el-option> <el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
</el-row>
<el-row>
<el-form-item :label="$t('运输方式')+':'" > <el-form-item :label="$t('运输方式')+':'" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :clearable="true" v-model="queryParams.transportId" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :clearable="true" v-model="queryParams.transportId" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单状态')" prop="status">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.orderStatus"
@keyup.enter.native="handleQuery" clearable />
</el-form-item>
<el-form-item :label="$t('跟进客服')" prop="salesmanId">
<el-select v-model="queryParams.salesmanId" :placeholder="$t('请选择')" clearable>
<el-option v-for="dict in followUpList" :key="parseInt(dict.id)" :label="dict.nickname" :value="parseInt(dict.id)"/>
</el-select>
</el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item :label="$t('控货')+':'"> <el-form-item :label="$t('控货')+':'">
...@@ -44,7 +56,7 @@ ...@@ -44,7 +56,7 @@
<dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :clearable="true" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :clearable="true" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('异常类型')+':'"> <el-form-item :label="$t('异常类型')+':'">
<dict-selector :type="DICT_TYPE.ORDER_ERROR_TYPE" :clearable="true" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/> <dict-selector :multiple="true" :type="DICT_TYPE.ORDER_ERROR_TYPE" :clearable="true" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单号')+':'"> <el-form-item :label="$t('订单号')+':'">
<el-input v-model="queryParams.orderNo" :placeholder="$t('请输入订单号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.orderNo" :placeholder="$t('请输入订单号')" clearable @keyup.enter.native="handleQuery"/>
...@@ -75,7 +87,7 @@ ...@@ -75,7 +87,7 @@
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :clearable="true" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :clearable="true" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')+':'"> <el-form-item :label="$t('客户经理')+':'">
<el-select v-model="queryParams.salesmanId" :placeholder="$t('请选择跟进业务')" clearable> <el-select v-model="queryParams.customerIds" multiple :placeholder="$t('请选择客户经理')" clearable>
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/> <el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -92,7 +104,7 @@ ...@@ -92,7 +104,7 @@
</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">{{$t('搜索')}}</el-button>
<!-- <el-button icon="el-icon-refresh" @click="reset">{{ $t('重置') }}</el-button> --> <el-button icon="el-icon-refresh" @click="reset">{{ $t('重置') }}</el-button>
</el-form-item> </el-form-item>
</el-row> </el-row>
</el-form> </el-form>
...@@ -100,10 +112,34 @@ ...@@ -100,10 +112,34 @@
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="12"> <el-col :span="1.5">
<el-button type="primary" size="mini" @click="exportSearch" v-hasPermi="['ecw:exception:export']">导出</el-button> <el-button type="primary" size="mini" @click="exportSearch" v-hasPermi="['ecw:exception:export']">导出</el-button>
</el-col> </el-col>
<el-col :span="12"><right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar></el-col> <el-col :span="17.5">
<div class="total" v-if="totalData">
<div :label="$t('箱数')">
<div>{{$t('箱数')}}:</div>
<span v-if="totalData.totalNum">{{totalData.totalNum+$t('')}}</span>
<span v-else></span>
</div>
<div>
<div>{{$t('测量方数汇总')}}:</div>
<span v-if="totalData.totalVolume">{{totalData.totalVolume}}</span>
<span v-else></span>
</div>
<div>
<div>{{$t('收费方数汇总')}}:</div>
<span v-if="totalData.totalChargeVolume">{{totalData.totalChargeVolume}}</span>
<span v-else></span>
</div>
<div>
<div>{{$t('重量汇总')}}:</div>
<span v-if="totalData.totalWeight">{{totalData.totalWeight}}KG</span>
<span v-else></span>
</div>
</div>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<!-- 列表 --> <!-- 列表 -->
...@@ -172,7 +208,8 @@ ...@@ -172,7 +208,8 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('异常类型')" align="center"> <el-table-column :label="$t('异常类型')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="scope.row.orderExceptionType" /> <span v-if="scope.row.moreException">{{$t('多个异常')}}</span>
<dict-tag v-else :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="scope.row.orderExceptionType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
...@@ -196,6 +233,7 @@ ...@@ -196,6 +233,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.orderId)">{{$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.orderId)">{{$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.orderId)">{{$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.orderId)">{{$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.orderId)">{{$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.orderId)">{{$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.orderId)">{{$t('处理')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -206,11 +244,11 @@ ...@@ -206,11 +244,11 @@
</template> </template>
<script> <script>
import {getOrderExceptionPage, exportExcel} from "@/api/ecw/orderException" import {getOrderExceptionPage, exportExcel,getStatistics} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
// import { userList } from "@/api/system/user" // import { userList } from "@/api/system/user"
import {listServiceUser} from "@/api/system/user" import {listServiceUser,userList} from "@/api/system/user"
import CustomerSelector from '@/components/CustomerSelector' import CustomerSelector from '@/components/CustomerSelector'
import ProductSelector from '@/components/ProductSelector' import ProductSelector from '@/components/ProductSelector'
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
...@@ -239,6 +277,8 @@ export default { ...@@ -239,6 +277,8 @@ export default {
}, },
tradeCityList:[], tradeCityList:[],
warehouseList:[], warehouseList:[],
totalData:{},
followUpList:[],
}; };
}, },
activated(){ activated(){
...@@ -250,6 +290,9 @@ export default { ...@@ -250,6 +290,9 @@ export default {
getTradeCityList().then(res => this.tradeCityList = res.data) getTradeCityList().then(res => this.tradeCityList = res.data)
listServiceUser().then(r => { listServiceUser().then(r => {
this.creatorData = r.data this.creatorData = r.data
})
userList('documentary customer service').then(r => {
this.followUpList = r.data;
}) })
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then(res => this.warehouseList = res.data)
// userList('salesman').then(res =>this.creatorData = res.data) // userList('salesman').then(res =>this.creatorData = res.data)
...@@ -283,13 +326,15 @@ export default { ...@@ -283,13 +326,15 @@ export default {
this.loading = false; this.loading = false;
// this.reset() // this.reset()
}); });
getStatistics(params).then(res=>this.totalData = res.data)
}, },
/** 表单重置 */ /** 表单重置 */
reset() { reset() {
this.queryParams = { this.queryParams = {
page: 1, page: 1,
rows: 10, rows: 10,
}; }
this.getList()
}, },
importCityName(id){ importCityName(id){
return this.tradeCityList.filter(item => item.id == id) return this.tradeCityList.filter(item => item.id == id)
...@@ -348,3 +393,15 @@ export default { ...@@ -348,3 +393,15 @@ export default {
} }
} }
</script> </script>
<style scoped>
.total{
display:flex;
align-items: center;
}
.total div{
margin-right:10px;
font-size:14px;
display:flex;
align-items: center;
}
</style>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('金额')"> <el-table-column :label="$t('金额')">
<template v-slot:default = 'scope'> <template v-slot:default = 'scope'>
<el-input :disabled="isModify[forbidden(scope.row)]" v-model="scope.row.applicationFee" ></el-input> <el-input :disabled="isModify[forbidden(scope.row)]" v-model.number="scope.row.applicationFee" ></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('货币类型')"> <el-table-column :label="$t('货币类型')">
......
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
</el-select> </el-select>
</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>
......
...@@ -127,6 +127,7 @@ ...@@ -127,6 +127,7 @@
<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>
<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>
...@@ -146,6 +147,7 @@ ...@@ -146,6 +147,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>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -8,10 +8,13 @@ ...@@ -8,10 +8,13 @@
<el-form v-if="orderData" :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card"> <el-form v-if="orderData" :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card">
<el-row> <el-row>
<el-form-item :label="$t('订单号')+':'"> <el-form-item :label="$t('订单号')+':'">
{{orderData.orderNo || ''}} <router-link :to="{path: '/order/detail',query: {orderId: orderData.orderId}}" class="link-type">
<span>{{orderData.orderNo || ''}}</span>
</router-link>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="shopData&&orderExceptionData.orderExceptionType!='goods_add_exception'"> <div v-if="shopData&&['goods_add_exception','fee_exception',].indexOf(orderExceptionData.orderExceptionType) == -1">
<el-row> <el-row>
<el-form-item :label="$t('产品名称')+':'" > <el-form-item :label="$t('产品名称')+':'" >
{{shopData.prodTitleZh || ''}} {{shopData.prodTitleZh || ''}}
...@@ -31,7 +34,7 @@ ...@@ -31,7 +34,7 @@
</el-row> </el-row>
<!-- 单证异常,发货人异常,其他异常 不显示这部分内容 --> <!-- 单证异常,发货人异常,其他异常 不显示这部分内容 -->
<div v-if="['order_doc_exception','order_consignor_exception', 'order_other_exception'].indexOf(orderExceptionData.orderExceptionType) == -1"> <div v-if="['order_doc_exception','order_consignor_exception', 'order_other_exception','fee_exception'].indexOf(orderExceptionData.orderExceptionType) == -1">
<!-- 预付异常,提货异常,代收货款是针对整个订单的 --> <!-- 预付异常,提货异常,代收货款是针对整个订单的 -->
<template v-if="['order_pay_exception','order_pick_up_exception', 'order_cod_exception','not_customer_service_exception'].indexOf(orderExceptionData.orderExceptionType) > -1"> <template v-if="['order_pay_exception','order_pick_up_exception', 'order_cod_exception','not_customer_service_exception'].indexOf(orderExceptionData.orderExceptionType) > -1">
<el-row> <el-row>
...@@ -159,7 +162,7 @@ ...@@ -159,7 +162,7 @@
</el-table> </el-table>
<!-- 单证异常,发货人异常,其他异常的表格 --> <!-- 单证异常,发货人异常,其他异常的表格 -->
<el-table v-if="['order_doc_exception', 'order_consignor_exception', 'order_other_exception'].indexOf(orderExceptionData.orderExceptionType) > -1" v-loading="loading" border :data="orderData.orderItemVOList"> <el-table v-if="['order_doc_exception', 'order_consignor_exception', 'order_other_exception','fee_exception'].indexOf(orderExceptionData.orderExceptionType) > -1" v-loading="loading" border :data="orderData.orderItemVOList">
<el-table-column :label="$t('序号')" align="center" prop="id" type="index"> <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.$index + 1}}</span> <span>{{scope.$index + 1}}</span>
...@@ -607,7 +610,7 @@ ...@@ -607,7 +610,7 @@
// that.orderExceptionData.orderExceptionType = 'order_other_exception' // that.orderExceptionData.orderExceptionType = 'order_other_exception'
// that.orderExceptionData.orderExceptionType = 'order_miss_exception' // that.orderExceptionData.orderExceptionType = 'order_miss_exception'
// that.orderExceptionData.orderExceptionType = 'not_customer_service_exception' // that.orderExceptionData.orderExceptionType = 'not_customer_service_exception'
// that.orderExceptionData.orderExceptionType = 'goods_add_exception' // that.orderExceptionData.orderExceptionType = 'fee_exception'
that.loading = false; that.loading = false;
that.orderId = response.data.orderId that.orderId = response.data.orderId
that.getOrderData() that.getOrderData()
......
This diff is collapsed.
This diff is collapsed.
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
<div> <div>
{{$t('可拆')}}: {{$t('可拆')}}:
{{maxSplitNum}}{{$t('箱')}}, {{maxSplitNum}}{{$t('箱')}},
{{$t('体积')}}:{{leftData('volume')}}{{$t('m³')}} {{$t('体积')}}:{{leftData('volume')}}
{{$t('重量')}}:{{leftData('weight')}}{{$t('kg')}} {{$t('重量')}}:{{leftData('weight')}}kg
{{$t('数量')}}:{{leftData('quantity')}}{{$t('个')}} {{$t('数量')}}:{{leftData('quantity')}}{{$t('个')}}
</div> </div>
</el-card> </el-card>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -732,14 +732,20 @@ export default { ...@@ -732,14 +732,20 @@ export default {
}else{ }else{
// 全包价 的阶段 设置和运费(全包价)不能为空 // 全包价 的阶段 设置和运费(全包价)不能为空
let stepPriceEmpty = false let stepPriceEmpty = false
this.form.priceStepList.forEach(item => { this.form.priceStepList.forEach((item, index) => {
let notEmptyFields = ['startNum', 'endNum', 'weightUnit'] let notEmptyFields = ['startNum', 'endNum', 'weightUnit']
notEmptyFields.forEach(field => { notEmptyFields.forEach(field => {
// 第一个阶梯的起始值不判断0
if(index === 0 && field == 'startNum' && item[field] == 0) return
if(!item[field] || item[field].toString().trim() == ''){ if(!item[field] || item[field].toString().trim() == ''){
console.warn('notEmptyFields', field, item[field])
stepPriceEmpty = true stepPriceEmpty = true
} }
}) })
if((this.form.priceType == 0 && !item.transportPrice) || (this.form.priceType == 1 && !item.allPrice)){ if((this.form.priceType == 0 && !item.transportPrice) || (this.form.priceType == 1 && !item.allPrice)){
console.warn('运费或者全包价未设置', index, item.transportPrice, item.allPrice)
stepPriceEmpty = true stepPriceEmpty = true
} }
}) })
......
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