Commit 0ed79233 authored by 我在何方's avatar 我在何方
parents a61cb77e 88fea860
...@@ -506,10 +506,11 @@ export function boxGoodsDetail(data) { ...@@ -506,10 +506,11 @@ export function boxGoodsDetail(data) {
* @param {*} id * @param {*} id
* @return {*} * @return {*}
*/ */
export function deleteSection(id) { export function deleteSection(params) {
return request({ return request({
url: "/ecw/box-preload-goods/deleteSection?id=" + id, url: "/ecw/box-preload-goods/deleteSection",
method: "delete", method: "delete",
params
}); });
} }
...@@ -520,10 +521,11 @@ export function deleteSection(id) { ...@@ -520,10 +521,11 @@ export function deleteSection(id) {
* @param {*} id * @param {*} id
* @return {*} * @return {*}
*/ */
export function deleteGoods(id) { export function deleteGoods(params) {
return request({ return request({
url: "/ecw/box-preload-goods/delete?ids=" + id.join(","), url: "/ecw/box-preload-goods/delete",
method: "delete", method: "delete",
params
}); });
} }
......
...@@ -71,9 +71,13 @@ export function exportCustomerContactsExcel(query) { ...@@ -71,9 +71,13 @@ export function exportCustomerContactsExcel(query) {
// 根据客户ID获得联系人列表 // 根据客户ID获得联系人列表
export function getCustomerContactsListByCustomer(query) { export function getCustomerContactsListByCustomer(query) {
if(query.customerId){
return request({ return request({
url: '/ecw/customer-contacts/list-by-customer', url: '/ecw/customer-contacts/list-by-customer',
method: 'get', method: 'get',
params: query params: query
}) })
}else {
return Promise.resolve()
}
} }
...@@ -688,6 +688,15 @@ export function operateLogPage(params){ ...@@ -688,6 +688,15 @@ export function operateLogPage(params){
}) })
} }
// 获取操作日志详情
export function getOperateLogDetail(id){
return request({
url: '/ecw/order-operate-log/get',
params: {id},
method: 'get',
})
}
// 取消拆单申请 // 取消拆单申请
export function splitCancelApply(data){ export function splitCancelApply(data){
return request({ return request({
......
...@@ -113,3 +113,11 @@ export function exportExcel(params) { ...@@ -113,3 +113,11 @@ export function exportExcel(params) {
responseType: 'arraybuffer' responseType: 'arraybuffer'
}) })
} }
// 根据订ID获取订单异常结果
export function getOrderExcptionResult(query) {
return request({
url: '/ecw/order-exception-result/page',
method: 'get',
params: query
})
}
\ No newline at end of file
...@@ -59,7 +59,6 @@ export function deleteSplit(id) { ...@@ -59,7 +59,6 @@ export function deleteSplit(id) {
}) })
} }
//取消申请拆单 //取消申请拆单
export function cancelApply(data) { export function cancelApply(data) {
return request({ return request({
url: '/order/split/cancel-apply', url: '/order/split/cancel-apply',
...@@ -137,3 +136,12 @@ export function quantitycheck(query) { ...@@ -137,3 +136,12 @@ export function quantitycheck(query) {
params: query params: query
}) })
} }
// 重置拆单
export function deleteAllSplit(orderId) {
return request({
url: '/order/split/delete/all',
method: 'delete',
params: {orderId}
})
}
...@@ -134,4 +134,10 @@ export function serviceConfig(data) { ...@@ -134,4 +134,10 @@ export function serviceConfig(data) {
}) })
} }
// 数量是否必填
export function quantityRequired(lineId) {
return request({
url: '/ecw/warehouse/quantity/required/' + lineId,
method: 'get'
})
}
...@@ -21,7 +21,7 @@ export default { ...@@ -21,7 +21,7 @@ export default {
this.$emit('input', this.valueSync.replace('+', '')) this.$emit('input', this.valueSync.replace('+', ''))
}, },
value(){ value(){
if(this.value)this.valueSync = this.value this.valueSync = this.value
} }
}, },
created(){ created(){
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
<div class="line"> <div class="line">
<div class="label">{{$t('姓名(英文)')}}</div> <div class="label">{{$t('姓名(英文)')}}</div>
<div class="value">{{item.contactsNameEn}}</div> <div class="value">{{item.contactsNameEn}}</div>
<el-tag v-if="item.isInOpenSea" type="danger" effect="dark">{{$t('')}}</el-tag>
</div> </div>
<div class="line"> <div class="line">
<div class="label">{{$t('电话')}}</div> <div class="label">{{$t('电话')}}</div>
......
...@@ -171,7 +171,7 @@ export default { ...@@ -171,7 +171,7 @@ export default {
this.customerFollow.form.bizId = this.id this.customerFollow.form.bizId = this.id
}) })
listServiceUser().then(r => { listServiceUser().then(r => {
console.log( r.data,'r.data跟进业务') // console.log( r.data,'r.data跟进业务')
this.serviceUserList = r.data this.serviceUserList = r.data
}) })
this.getCustomerFollowList() this.getCustomerFollowList()
......
...@@ -258,9 +258,7 @@ export default { ...@@ -258,9 +258,7 @@ export default {
} }
}, },
initArea(){ resetAreaTreeSelected(area) {
return getByWarehouseId({ warehouseId: this.warehouseId }).then(r => {
const area = r.data
area.forEach(e => { area.forEach(e => {
// 仓库 // 仓库
e.children?.forEach(f => { e.children?.forEach(f => {
...@@ -276,12 +274,18 @@ export default { ...@@ -276,12 +274,18 @@ export default {
}) })
}) })
}) })
this.area = area return area
},
initArea(){
return getByWarehouseId({ warehouseId: this.warehouseId }).then(r => {
this.area = this.resetAreaTreeSelected(r.data)
}) })
}, },
// 用于储位回显选中 // 用于储位回显选中
isSelected(warehouse, area, position = 0){ isSelected(warehouse, area, position = 0){
return !!this.value.find(e => warehouse === e.wareId && area === e.areaId && position === e.locationId) return !!this.value.find(e => warehouse === e.wareId && area === e.areaId && (position === e.locationId || undefined === e.locationId))
}, },
} }
} }
......
...@@ -119,6 +119,7 @@ export const DICT_TYPE = { ...@@ -119,6 +119,7 @@ export const DICT_TYPE = {
ECW_CUSTOMER_RESOURCE_TYPE: 'customer_resource_type', // 客户资源类型 ECW_CUSTOMER_RESOURCE_TYPE: 'customer_resource_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--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
......
...@@ -87,6 +87,7 @@ service.interceptors.response.use(res => { ...@@ -87,6 +87,7 @@ service.interceptors.response.use(res => {
return Promise.reject('无效的会话,或者会话已过期,请重新登录。') return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code === 500) { } else if (code === 500) {
Message({ Message({
dangerouslyUseHTMLString: true,
message: msg, message: msg,
type: 'error' type: 'error'
}) })
...@@ -109,6 +110,9 @@ service.interceptors.response.use(res => { ...@@ -109,6 +110,9 @@ service.interceptors.response.use(res => {
} else if (code === 566) { } else if (code === 566) {
// 额外情况 // 额外情况
return Promise.reject(res.data) return Promise.reject(res.data)
} else if (code === 666) {
// 额外情况
return Promise.reject(res.data)
} else if (code !== 200) { } else if (code !== 200) {
Notification.error({ Notification.error({
title: msg title: msg
......
<template> <template>
<iframe src="https://chat.groupage.cn/" class="iframe"></iframe> <iframe :src="url" class="iframe"></iframe>
</template> </template>
<style> <style>
.iframe{ .iframe{
...@@ -8,3 +8,24 @@ ...@@ -8,3 +8,24 @@
border: none; border: none;
} }
</style> </style>
<script>
import {getUserProfile} from "@/api/system/user";
export default {
data() {
return {
username: ''
}
},
computed:{
url(){
return 'https://chatgpt.groupage.cn/#/' + this.username
}
},
created() {
getUserProfile().then(res => {
this.username = res.data.username
})
}
}
</script>
...@@ -167,11 +167,19 @@ ...@@ -167,11 +167,19 @@
</el-input> </el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('货值')" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.worth" @change="updateField(scope.row, 'worth')" size="mini" :disabled="index === 0">
<span slot="append">{{ $t('美元') }}</span>
</el-input>
</template>
</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">
<span>{{scope.row.num}}</span> <span>{{scope.row.num}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('计划装柜')" align="center"> <el-table-column :label="$t('计划装柜')" align="center">
{{planCabinet}} {{planCabinet}}
</el-table-column> </el-table-column>
...@@ -226,7 +234,7 @@ ...@@ -226,7 +234,7 @@
</el-col>--> </el-col>-->
</el-row> </el-row>
<el-form-item :label="$t('放入箱数')+':'"> <el-form-item :label="$t('放入箱数')+':'">
{{shopForm.num||0}} <el-input-number v-model="shopForm.num" controls-position="right" :min="0" :max="+shopForm.leftNum" @change="calcAverg"></el-input-number>
</el-form-item> </el-form-item>
...@@ -251,6 +259,12 @@ ...@@ -251,6 +259,12 @@
<el-form-item :label="$t('收费重量')"> <el-form-item :label="$t('收费重量')">
<el-input-number v-model="shopForm.chargeWeight" controls-position="right" :min="0" :max="mainOrderItem.chargeWeight"></el-input-number> <el-input-number v-model="shopForm.chargeWeight" controls-position="right" :min="0" :max="mainOrderItem.chargeWeight"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item v-if="mainOrderItem.orderItemId" label-width="0">
{{ $t('剩余货值') }}:{{ mainOrderItem.worth || 0 }}{{ $t('美元') }}
</el-form-item>
<el-form-item :label="$t('放入货值')">
<el-input-number v-model="shopForm.worth" controls-position="right" :min="0" :max="mainOrderItem.worth"></el-input-number>
</el-form-item>
<!--按照原型这里需要显示剩余数量,但是事实无法计算剩余数量,因为已装数量是未知的--> <!--按照原型这里需要显示剩余数量,但是事实无法计算剩余数量,因为已装数量是未知的-->
<el-form-item :label="$t('放入数量(个)')+':'" prop="quantity" v-if="isQuantity"> <el-form-item :label="$t('放入数量(个)')+':'" prop="quantity" v-if="isQuantity">
<el-input-number v-model="shopForm.quantity" controls-position="right" :min="0" :max="mainOrderItem.quantity || undefined"></el-input-number> <el-input-number v-model="shopForm.quantity" controls-position="right" :min="0" :max="mainOrderItem.quantity || undefined"></el-input-number>
...@@ -271,10 +285,11 @@ ...@@ -271,10 +285,11 @@
<script> <script>
import { import {
getSplitList, getSplitList,
quantitycheck, // quantitycheck,
createSplitItem, createSplitItem,
deleteSplitItem, deleteSplitItem,
} from "@/api/ecw/orderHandle"; } from "@/api/ecw/orderHandle";
import {quantityRequired} from "@/api/ecw/warehouse";
import { getTradeCityList } from "@/api/ecw/region"; import { getTradeCityList } from "@/api/ecw/region";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
import {getOrder, splitItemUpdate} from "@/api/ecw/order"; import {getOrder, splitItemUpdate} from "@/api/ecw/order";
...@@ -405,14 +420,6 @@ export default { ...@@ -405,14 +420,6 @@ export default {
}); });
return _total; return _total;
}, },
/*totalSplitQty() {
let _total = 0;
const { orderSplitItemBackVOList = [] } = this.splitData;
orderSplitItemBackVOList.forEach((v) => {
_total = Decimal.add(_total, Number(v.quantity)).toNumber();
});
return _total;
},*/
/* 打开拆单 */ /* 打开拆单 */
getSplit() { getSplit() {
this.orderItems = this.currRow.goodsList ?? []; this.orderItems = this.currRow.goodsList ?? [];
...@@ -545,11 +552,12 @@ export default { ...@@ -545,11 +552,12 @@ export default {
leftNum = Math.min(leftNum, this.mainOrderItem.num) leftNum = Math.min(leftNum, this.mainOrderItem.num)
// 放入箱数 // 放入箱数
this.$set(this.shopForm, 'num', leftNum) this.$set(this.shopForm, 'num', leftNum)
this.calcAverg()
},
// 按比例计算体积重量的默认值
calcAverg(){
// 装箱比例 // 装箱比例
const rate = leftNum / this.mainOrderItem.num const rate = this.shopForm.num / this.mainOrderItem.num
// 放入个数,剩余个数是算不出来的,因为不知道已装数量,所以放入数量只能按照总数的比例计算 // 放入个数,剩余个数是算不出来的,因为不知道已装数量,所以放入数量只能按照总数的比例计算
this.$set(this.shopForm, 'quantity', Math.ceil(this.mainOrderItem.quantity*rate|| 0 * rate)) this.$set(this.shopForm, 'quantity', Math.ceil(this.mainOrderItem.quantity*rate|| 0 * rate))
...@@ -558,66 +566,10 @@ export default { ...@@ -558,66 +566,10 @@ export default {
this.$set(this.shopForm, 'chargeVolume', (this.mainOrderItem.chargeVolume * rate).toFixed(2)) this.$set(this.shopForm, 'chargeVolume', (this.mainOrderItem.chargeVolume * rate).toFixed(2))
this.$set(this.shopForm, 'weight', (this.mainOrderItem.weight * rate).toFixed(2)) this.$set(this.shopForm, 'weight', (this.mainOrderItem.weight * rate).toFixed(2))
this.$set(this.shopForm, 'chargeWeight', (this.mainOrderItem.chargeWeight * rate).toFixed(2)) this.$set(this.shopForm, 'chargeWeight', (this.mainOrderItem.chargeWeight * rate).toFixed(2))
this.$set(this.shopForm, 'worth', (this.mainOrderItem.worth * rate).toFixed(2))
}, },
/*async changeProdTitleZh() { /*async getSelectData(item) {
const item = this.setShopForm("zhId"); await quantityRequired(this.orderData.lineId).then((res) => {
this.shopForm.enId = item.id;
this.shopForm = { ...this.shopForm };
await this.getSelectData(item);
},
async changeProdTitleEn() {
const item = this.setShopForm("enId");
this.shopForm.zhId = item.id;
this.shopForm = { ...this.shopForm };
await this.getSelectData(item);
},
setShopForm(key) {
let list = [];
list = this.orderItems.filter((item) => item.id == this.shopForm[key]);
const data = list[0];
const itemNum = data.num ?? 0;
const itemQty = data.quantity ?? 0;
// 获取拆单项的总num
const total = this.totalSplitNum();
// 订单的剩余
const orderNum = this.currRow.num - this.currRow.installNum;
// 剩余可装
const remainNum = Decimal.sub(orderNum, total).toNumber();
this.shopForm.num = 0;
this.shopForm.putNum = 0;
// 剩余可装大于等于订单项剩余,显示订单剩余
if (remainNum >= itemNum) {
this.shopForm.num = remainNum;
this.shopForm.putNum = itemNum;
}
// 订单剩余小于订单项剩余,显示订单项剩余
if (remainNum < itemNum) {
this.shopForm.num = this.shopForm.putNum = remainNum;
}
const totalQty = this.totalSplitQty();
this.shopForm.quantity = 0;
if (totalQty >= itemQty) {
this.shopForm.quantity = totalQty;
}
if (totalQty < itemQty) {
this.shopForm.quantity = itemQty;
}
this.shopForm.orderItemId = data.orderItemId;
this.shopForm.putQuantity = Decimal.div(
this.shopForm.quantity,
this.shopForm.num
).toFixed(0);
return data;
},*/
async getSelectData(item) {
await quantitycheck({
seaFreightVolume: item.seaFreightVolume,
clearanceFreightVolume: item.clearanceFreightVolume,
}).then((res) => {
if (res.data) { if (res.data) {
this.isQuantity = true; this.isQuantity = true;
this.shopRules.putQuantity = [ this.shopRules.putQuantity = [
...@@ -632,7 +584,7 @@ export default { ...@@ -632,7 +584,7 @@ export default {
delete this.shopRules.putQuantity; delete this.shopRules.putQuantity;
} }
}); });
}, },*/
shopAdd() { shopAdd() {
this.$refs["shopForm"].validate((valid) => { this.$refs["shopForm"].validate((valid) => {
if (valid) { if (valid) {
...@@ -667,7 +619,8 @@ export default { ...@@ -667,7 +619,8 @@ export default {
volume: this.shopForm.volume, volume: this.shopForm.volume,
weight: this.shopForm.weight, weight: this.shopForm.weight,
chargeWeight: this.shopForm.chargeWeight, chargeWeight: this.shopForm.chargeWeight,
chargeVolume: this.shopForm.chargeVolume chargeVolume: this.shopForm.chargeVolume,
worth: this.shopForm.worth
}; };
// 按数量计费的才需要传递数量 // 按数量计费的才需要传递数量
if(this.isQuantity){ if(this.isQuantity){
......
...@@ -535,6 +535,31 @@ export default { ...@@ -535,6 +535,31 @@ export default {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.getLoadSecGoodsList(); this.getLoadSecGoodsList();
}); });
}).catch((res) => {
if (res.code === 666) {
this.$confirm("<div style='max-height:500px;overflow:auto'>"+res.msg+this.$t('是否需要一起移出?')+"</div>", this.$t("提示"), {
dangerouslyUseHTMLString: true,
distinguishCancelAndClose: true,
confirmButtonText: '确定移出',
cancelButtonText: '仅移出当前订单'
})
.then((_) => {
remove({ ...params, deleteType: 2 }).then((res) => {
serviceMsg(res, this).then(() => {
this.getLoadSecGoodsList();
});
});
})
.catch(action => {
if(action =='cancel'){
remove({ ...params, deleteType: 1 }).then((res) => {
serviceMsg(res, this).then(() => {
this.getLoadSecGoodsList();
});
});
}
});
}
}); });
}, },
/* 修改柜信息 */ /* 修改柜信息 */
......
...@@ -246,6 +246,31 @@ export default { ...@@ -246,6 +246,31 @@ export default {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.getSecGoods(); this.getSecGoods();
}); });
}).catch((res) => {
if (res.code === 666) {
this.$confirm(res.msg+this.$t('是否需要一起移出?'), this.$t("提示"), {
dangerouslyUseHTMLString: true,
distinguishCancelAndClose: true,
confirmButtonText: '确定移出',
cancelButtonText: '仅移出当前订单'
})
.then((_) => {
remove({ ...params, deleteType: 2 }).then((res) => {
serviceMsg(res, this).then(() => {
this.getSecGoods();
});
});
})
.catch(action => {
if(action =='cancel'){
remove({ ...params, deleteType: 1 }).then((res) => {
serviceMsg(res, this).then(() => {
this.getSecGoods();
});
});
}
});
}
}); });
}, },
/** 预装 */ /** 预装 */
...@@ -262,11 +287,67 @@ export default { ...@@ -262,11 +287,67 @@ export default {
} else { } else {
params.orderItemIdList = [item.orderItemId]; params.orderItemIdList = [item.orderItemId];
} }
createGoods(params).then((res) => { createGoods(params)
.then((res) => {
const { data } = res;
if (data.relationMsg) {
const msg = data.relationMsg.replaceAll(",", "");
this.$confirm(msg, this.$t("提示"), {
dangerouslyUseHTMLString: true,
type: "warning",
})
.then((_) => {
loadRelationOrder(data).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
}); });
}); });
})
.catch((_) => {
this.queryAllData();
});
} else {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
}
})
.catch((res) => {
if (res.code === 555) {
const msg = res.msg && res.msg.replaceAll(",", "");
this.$confirm(msg, this.$t("提示"), {
dangerouslyUseHTMLString: true,
type: "warning",
})
.then((_) => {
createGoods({ ...params, relationStatus: 1 }).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
});
})
.catch((_) => {
this.queryAllData();
});
}
if (res.code === 566) {
this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), {
dangerouslyUseHTMLString: true,
type: "warning",
})
.then((_) => {
createGoods({ ...params, relationStatus: 2 }).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
});
})
.catch((_) => {
this.queryAllData();
});
}
});
}, },
/* 增加部分 */ /* 增加部分 */
addPart() { addPart() {
...@@ -289,7 +370,11 @@ export default { ...@@ -289,7 +370,11 @@ export default {
} }
) )
.then((_) => { .then((_) => {
deleteSection(this.partData.id).then((res) => { let params = {
id: this.partData.id,
deleteType: 2
};
deleteSection(params).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.partData = {}; this.partData = {};
this.getSecGoods(); this.getSecGoods();
......
...@@ -631,7 +631,11 @@ export default { ...@@ -631,7 +631,11 @@ export default {
} }
) )
.then((_) => { .then((_) => {
deleteSection(part.id).then((res) => { let params = {
id: part.id,
deleteType: 2
};
deleteSection(params).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
}); });
...@@ -657,6 +661,7 @@ export default { ...@@ -657,6 +661,7 @@ export default {
if (data.relationMsg) { if (data.relationMsg) {
const msg = data.relationMsg.replaceAll(",", ""); const msg = data.relationMsg.replaceAll(",", "");
this.$confirm(msg, this.$t("提示"), { this.$confirm(msg, this.$t("提示"), {
dangerouslyUseHTMLString: true,
type: "warning", type: "warning",
}) })
.then((_) => { .then((_) => {
...@@ -679,6 +684,7 @@ export default { ...@@ -679,6 +684,7 @@ export default {
if (res.code === 555) { if (res.code === 555) {
const msg = res.msg && res.msg.replaceAll(",", ""); const msg = res.msg && res.msg.replaceAll(",", "");
this.$confirm(msg, this.$t("提示"), { this.$confirm(msg, this.$t("提示"), {
dangerouslyUseHTMLString: true,
type: "warning", type: "warning",
}) })
.then((_) => { .then((_) => {
...@@ -695,6 +701,7 @@ export default { ...@@ -695,6 +701,7 @@ export default {
if (res.code === 566) { if (res.code === 566) {
this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), { this.$confirm(res.msg+this.$t('是否需要一起预装?'), this.$t("提示"), {
dangerouslyUseHTMLString: true,
type: "warning", type: "warning",
}) })
.then((_) => { .then((_) => {
...@@ -737,12 +744,39 @@ export default { ...@@ -737,12 +744,39 @@ export default {
if (type === "row") { if (type === "row") {
ids.push(data.id); ids.push(data.id);
} }
let param = {
deleteGoods(ids).then((res) => { ids: ids.join(",")
}
deleteGoods(param).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
}).catch((res) => {
if (res.code === 666) {
this.$confirm("<div style='max-height:500px;overflow:auto'>"+res.msg+this.$t('是否需要一起移出?')+"</div>", this.$t("提示"), {
dangerouslyUseHTMLString: true,
distinguishCancelAndClose: true,
confirmButtonText: '确定移出',
cancelButtonText: '仅移出当前订单'
})
.then((_) => {
deleteGoods({ ...param, deleteType: 2 }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
}); });
}); });
})
.catch(action => {
if(action =='cancel'){
deleteGoods({ ...param, deleteType: 1 }).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
});
}
});
}
});
}, },
/* 查询所有数据 */ /* 查询所有数据 */
queryAllData() { queryAllData() {
......
...@@ -240,15 +240,41 @@ export default { ...@@ -240,15 +240,41 @@ export default {
type: "warning", type: "warning",
}) })
.then((_) => { .then((_) => {
tallyRemove({ let param = {
orderIdLIst: orderIds, orderIdLIst: orderIds,
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
}).then((res) => { }
tallyRemove(param).then((res) => {
serviceMsg(res, this).then(() => {
this.getList();
});
}).catch((res) => {
if (res.code === 666) {
this.$confirm("<div style='max-height:500px;overflow:auto'>"+res.msg+this.$t('是否需要一起移出?')+"</div>", this.$t("提示"), {
dangerouslyUseHTMLString: true,
distinguishCancelAndClose: true,
confirmButtonText: '确定移出',
cancelButtonText: '仅移出当前订单'
})
.then((_) => {
tallyRemove({ ...param, deleteType: 2 }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.getList(); this.getList();
}); });
}); });
}) })
.catch(action => {
if(action =='cancel'){
tallyRemove({ ...param, deleteType: 1 }).then((res) => {
serviceMsg(res, this).then(() => {
this.getList();
});
});
}
});
}
});
})
.catch((_) => {}); .catch((_) => {});
}, },
// 关闭弹窗 // 关闭弹窗
......
...@@ -587,9 +587,10 @@ export default { ...@@ -587,9 +587,10 @@ export default {
this.reset() this.reset()
// this.getUserMemberUserFn() // this.getUserMemberUserFn()
if(this.customerId !== '0') { if(this.customerId !== '0') {
let customerId = this.customerId
// 编辑客户 // 编辑客户
this.getCustomer(this.customerId).then(() => { this.getCustomer(this.customerId).then(() => {
getCustomerContactsListByCustomer({customerId: this.customerId}).then(r => { getCustomerContactsListByCustomer({customerId: customerId}).then(r => {
this.form.customerContacts = r.data this.form.customerContacts = r.data
let list = this.form.customerContacts.map(item => item.userid); let list = this.form.customerContacts.map(item => item.userid);
if(list.length >0){ if(list.length >0){
...@@ -611,9 +612,8 @@ export default { ...@@ -611,9 +612,8 @@ export default {
if(this.form.lightUnit){ if(this.form.lightUnit){
this.showPao = true this.showPao = true
} }
// 获取重泡货路线 // 获取重泡货路线
getCustomerLines(this.customerId).then(res => { getCustomerLines(customerId).then(res => {
this.zhongLines = res.data.filter(item => item.zhongPaoType == 1) this.zhongLines = res.data.filter(item => item.zhongPaoType == 1)
this.paoLines = res.data.filter(item => item.zhongPaoType == 2) this.paoLines = res.data.filter(item => item.zhongPaoType == 2)
if(this.zhongLines.length)this.showZhong1 = true if(this.zhongLines.length)this.showZhong1 = true
......
...@@ -690,7 +690,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse' ...@@ -690,7 +690,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
import WorkFlow from '@/components/WorkFlow/' import WorkFlow from '@/components/WorkFlow/'
export default { export default {
name: "CreatCollection", name: "EcwFinancialCreatcollection",
components: { components: {
CustomerSelector,WorkFlow CustomerSelector,WorkFlow
}, },
...@@ -745,6 +745,10 @@ export default { ...@@ -745,6 +745,10 @@ export default {
isUpdate:false isUpdate:false
}; };
}, },
activated(){
console.log(11)
// this.getList();
},
async created() { async created() {
getUserProfile().then(res => { getUserProfile().then(res => {
this.discountForm.author = res.data.username this.discountForm.author = res.data.username
......
...@@ -456,7 +456,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse' ...@@ -456,7 +456,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
import WorkFlow from '@/components/WorkFlow/' import WorkFlow from '@/components/WorkFlow/'
export default { export default {
name: "CreatPayment", name: "EcwFinancialCreatpayment",
components: { components: {
CustomerSelector,WorkFlow CustomerSelector,WorkFlow
}, },
...@@ -495,6 +495,10 @@ export default { ...@@ -495,6 +495,10 @@ export default {
dialogVisible:false dialogVisible:false
}; };
}, },
activated(){
console.log(11)
// this.getList();
},
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)
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then(res => this.warehouseList = res.data)
......
<script> <script>
// 对edit组件复用并更名,防止keepalive缓存数据 // 对edit组件复用并更名,防止keepalive缓存数据
import edit from './edit.vue' import edit from './edit.vue'
edit.name = 'OfferCreate' edit.name = 'EcwOfferCreate'
export default edit export default edit
</script> </script>
...@@ -520,6 +520,16 @@ import QuickCreateCustomer from '@/components/QuickCreateCustomer' ...@@ -520,6 +520,16 @@ import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {getCustomerContactsSelect} from '@/api/ecw/customerContacts' import {getCustomerContactsSelect} from '@/api/ecw/customerContacts'
import Decimal from 'decimal.js' import Decimal from 'decimal.js'
window.Decimal= Decimal window.Decimal= Decimal
const createDefaultForm = () => {
return {
sendstatus:0,
type: [],
control: false,
isCargoControl: false,
prodCreateReqVOList:[],
transportVO: {}
}
}
export default { export default {
name: "EcwOfferEdit", name: "EcwOfferEdit",
components: { components: {
...@@ -542,14 +552,7 @@ export default { ...@@ -542,14 +552,7 @@ export default {
// couponList: [], // couponList: [],
fee: {}, // 费用 fee: {}, // 费用
// 表单参数 // 表单参数
form: { form: {...createDefaultForm()},
sendstatus:0,
type: [],
control: false,
isCargoControl: false,
prodCreateReqVOList:[],
transportVO: {}
},
// 表单校验 // 表单校验
labelStyle: 'width:120px', labelStyle: 'width:120px',
...@@ -846,7 +849,7 @@ export default { ...@@ -846,7 +849,7 @@ export default {
}) })
}, },
'form.transportVO.packageTypeArr'(val){ 'form.transportVO.packageTypeArr'(val){
this.$set(this.form.transportVO, 'packageType', val.join(',')) this.$set(this.form.transportVO, 'packageType', (val || []).join(','))
}, },
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择 // 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter(val){ selectedRouter(val){
...@@ -982,6 +985,8 @@ export default { ...@@ -982,6 +985,8 @@ export default {
if(this.form.channelId){ if(this.form.channelId){
params.channelId = this.form.channelId params.channelId = this.form.channelId
} }
// 如果没有任何条件,不请求接口
if(!params.startCityId && !params.destCityId && !params.transportType && !params.channelId) return false
getOpenedRouterList(params).then(res => this.routerList = res.data) getOpenedRouterList(params).then(res => this.routerList = res.data)
}, },
// 计算体积 // 计算体积
...@@ -1035,6 +1040,14 @@ export default { ...@@ -1035,6 +1040,14 @@ export default {
}) })
// 添加的提交 // 添加的提交
createOffer(data).then(response => { createOffer(data).then(response => {
// 重置表单内容
this.$set(this, 'form', {...createDefaultForm()})
this.routerList = []
this.$nextTick(() => {
console.log('清理表单校验和路线')
this.addProduct()
this.$refs.form.clearValidate()
})
this.$modal.msgSuccess(this.$t("新增成功")); this.$modal.msgSuccess(this.$t("新增成功"));
this.$redirect('index') this.$redirect('index')
}); });
......
...@@ -310,7 +310,7 @@ export default { ...@@ -310,7 +310,7 @@ export default {
}) })
.then(res => { .then(res => {
this.$message.success('操作成功') this.$message.success('操作成功')
this.handleQuery() this.getList()
}) })
}, },
// 批量复核 // 批量复核
...@@ -319,7 +319,7 @@ export default { ...@@ -319,7 +319,7 @@ export default {
return batchReview("orderIds=" + this.ids.join(',')) return batchReview("orderIds=" + this.ids.join(','))
}).then(() => { }).then(() => {
this.$message.success(this.$t('操作成功')) this.$message.success(this.$t('操作成功'))
this.handleQuery() this.getList()
}) })
}, },
cargoTransfer(row){ cargoTransfer(row){
...@@ -333,15 +333,15 @@ export default { ...@@ -333,15 +333,15 @@ export default {
}, },
onReleaseSuccess(){ onReleaseSuccess(){
this.showReleaseOrderId = null this.showReleaseOrderId = null
this.handleQuery() this.getList()
}, },
onFallbackSuccess(){ onFallbackSuccess(){
this.showFallbackOrder = null this.showFallbackOrder = null
this.handleQuery() this.getList()
}, },
onTransferCargoSuccess(){ onTransferCargoSuccess(){
this.showTransferCargoOrderId = null this.showTransferCargoOrderId = null
this.handleQuery() this.getList()
} }
} }
}; };
......
<template>
<el-dialog :visible="true" title="日志详情" :before-close="closeDialog">
<el-form label-width="100px">
<el-form-item label="ID">{{detail.id}}</el-form-item>
<el-form-item :label="$t('时间')">{{detail.createTime|parseTime}}</el-form-item>
<el-form-item :label="$t('操作人')">{{detail.creatorName}}【ID: {{detail.creator}}</el-form-item>
<el-form-item :label="$t('操作人类型')">{{detail.userType == 2 ? $t('管理员') : $t('会员')}}</el-form-item>
<el-form-item :label="$t('操作描述')">{{detail.msg}}</el-form-item>
<el-form-item :label="$t('操作类型')">{{detail.type}}</el-form-item>
<el-form-item :label="$t('请求地址')">{{detail.requestUrl}}</el-form-item>
<el-form-item :label="$t('请求备注')">{{detail.note}}</el-form-item>
<el-form-item :label="$t('请求内容')">{{detail.body}}</el-form-item>
</el-form>
</el-dialog>
</template>
<script>
import {getOperateLogDetail} from "@/api/ecw/order";
import {parseTime} from '@/utils/ruoyi'
export default {
name: "OperateLogDetail",
filters: {parseTime},
props:{
logId: Number
},
data(){
return {
detail: null
}
},
created() {
this.$nextTick(this.getDetail)
},
methods:{
getDetail(){
getOperateLogDetail(this.logId).then(res => {
this.detail = res.data
})
},
closeDialog(){
this.$emit('close')
}
}
}
</script>
<style scoped>
</style>
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
<send-sms-code :order-id="detail.orderId" scene="5" /> <send-sms-code :order-id="detail.orderId" scene="5" />
</el-form-item> </el-form-item>
<el-form-item label="" style="margin-top:20px"> <el-form-item label="" style="margin-top:20px">
<el-button type="success" @click="submit">{{$t('确认货')}}</el-button> <el-button type="success" @click="submit">{{$t('确认货')}}</el-button>
<el-button type="default" @click="closeDialog">{{$t('关闭')}}</el-button> <el-button type="default" @click="closeDialog">{{$t('关闭')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
<script> <script>
// 对edit组件复用并更名,防止keepalive缓存数据 // 对edit组件复用并更名,防止keepalive缓存数据
import edit from './edit.vue' import edit from './edit.vue'
edit.name = 'OrderCreate' edit.name = 'EcwOrderCreate'
export default edit export default edit
</script> </script>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<template v-else-if="order.containerNumber"> - {{order.containerNumber}}</template> <template v-else-if="order.containerNumber"> - {{order.containerNumber}}</template>
</div> </div>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12" v-if="order.consignorVO"> <el-col :span="12" v-if="order.consignorVO" >
<el-descriptions class="margin-top" border :title="$t('发货人')" :column="3" :labelStyle="{width:'110px'}" :contentStyle="{width:'150px'}"> <el-descriptions class="margin-top" border :title="$t('发货人')" :column="3" :labelStyle="{width:'110px'}" :contentStyle="{width:'150px'}">
<el-descriptions-item :label="$t('中文名称')">{{order.consignorVO.name}}</el-descriptions-item> <el-descriptions-item :label="$t('中文名称')">{{order.consignorVO.name}}</el-descriptions-item>
<!-- v1.7新增 --> <!-- v1.7新增 -->
...@@ -278,7 +278,11 @@ ...@@ -278,7 +278,11 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('费用明细')" name="four"> <el-tab-pane :label="$t('费用明细')" name="four">
<el-table :data="feeList"> <el-table :data="feeList">
<el-table-column :label="$t('订单号')" prop="orderNo"></el-table-column> <el-table-column :label="$t('订单号')" prop="orderNo">
<template slot-scope="{row}">
{{row.orderNo}}
</template>
</el-table-column>
<el-table-column :label="$t('运输方式')"> <el-table-column :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-table-column> </el-table-column>
...@@ -297,6 +301,11 @@ ...@@ -297,6 +301,11 @@
{{$l(row, 'title')}} {{$l(row, 'title')}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('费用来源')" prop="feeSource">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_FEE_SOURCE" :value="row.feeSource" />
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" prop="num"> <el-table-column :label="$t('箱数')" prop="num">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.num || '-'}} {{row.num || '-'}}
...@@ -355,6 +364,11 @@ ...@@ -355,6 +364,11 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" prop="note">
<template slot-scope="{row}">
<el-link type="primary" @click="showLogDetailId=row.id">{{$t('详情')}}</el-link>
</template>
</el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
...@@ -427,7 +441,11 @@ ...@@ -427,7 +441,11 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
<!--日志详情-->
<operate-log-detail v-if="showLogDetailId" :log-id="showLogDetailId" @close="showLogDetailId=null"></operate-log-detail>
</div> </div>
</template> </template>
<script> <script>
...@@ -445,9 +463,11 @@ import {getProductBrank} from '@/api/ecw/productBrank' ...@@ -445,9 +463,11 @@ 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";
export default { export default {
name: "detail", name: "detail",
components: { components: {
OperateLogDetail,
PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect
}, },
filters: { filters: {
...@@ -492,6 +512,7 @@ export default { ...@@ -492,6 +512,7 @@ export default {
showText:this.$t('显示更多'), showText:this.$t('显示更多'),
showMore:false, showMore:false,
consigneeText:this.$t('更多'), consigneeText:this.$t('更多'),
showLogDetailId: null, // 显示日志详情的ID
} }
}, },
computed:{ computed:{
......
...@@ -115,9 +115,31 @@ ...@@ -115,9 +115,31 @@
<el-input :value="selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''" disabled :placeholder="$t('请在右侧选择线路')"></el-input> <el-input :value="selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''" disabled :placeholder="$t('请在右侧选择线路')"></el-input>
</el-form-item> </el-form-item>
<select size="5" v-model="form.lineId" style="min-width: 300px; border:1px solid #DCDFE6; border-radius:4px" :disabled2="inWarehouse"> <select size="5" v-model="form.lineId" style="min-width: 300px; border:1px solid #DCDFE6; border-radius:4px" :disabled2="inWarehouse">
<option v-for="item in routerList" :value="item.id" :key="item.id">{{$l(item, 'startTitle')}} >> {{$l(item, 'destTitle')}}</option> <option v-for="item in routerList" :value="item.id" :key="item.id">
{{$l(item, 'startTitle')}} >> {{$l(item, 'destTitle')}}
(<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item.transportType"></dict-tag>)
</option>
</select> </select>
</div> </div>
<!--目的港清关:选择专线空运才显示,默认选中我司
我司选中后,按钮下方显示“多票”和“单票”的操作,默认选中多票。
客户选中后,按钮下方显示“单票”的操作,默认选中,无需点击-->
<div class="form-section" v-if="form.transportId == 3">
<el-form-item :label="$t('目的港清关')">
<el-radio-group v-model="form.portDestCustomsClear">
<el-radio :label="1">{{$t('我司')}}</el-radio>
<el-radio :label="2">{{$t('客户')}}</el-radio>
</el-radio-group>
</el-form-item>
</div>
<div class="form-section" v-if="form.transportId == 3">
<el-form-item :label="$t('发货方式')">
<el-radio-group v-model="form.deliveryWay">
<el-radio :label="1" v-if="form.portDestCustomsClear == 1">{{$t('多票')}}</el-radio>
<el-radio :label="2">{{$t('单票')}}</el-radio>
</el-radio-group>
</el-form-item>
</div>
</el-card> </el-card>
<el-card class="mt-10"> <el-card class="mt-10">
<div slot="header" class="card-title"> <div slot="header" class="card-title">
...@@ -443,7 +465,7 @@ ...@@ -443,7 +465,7 @@
<dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable :disabled="false" /> <dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" defaultable :disabled="false" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('清关证书备注')" > <el-form-item :label="$t('清关证书备注')" >
<el-input v-model="form.remarks" :disabled="false"></el-input> <el-input v-model="form.customsClearCertRemarks" :disabled="false"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[3,4].indexOf(+form.transportId) > -1"> <div v-if="[3,4].indexOf(+form.transportId) > -1">
...@@ -552,7 +574,19 @@ import WorkFlow from '@/components/WorkFlow' ...@@ -552,7 +574,19 @@ import WorkFlow from '@/components/WorkFlow'
import { getCustomer } from "@/api/ecw/customer"; import { getCustomer } from "@/api/ecw/customer";
// 缓存默认的表单数据 // 缓存默认的表单数据
let defaultFormData = null let makeDefaultFormData = () => {
return {
status:0,
sendstatus:0,
isCargoControl: false,
isCollection: false,
type:[],
isExternalWarehouse: false,
externalWarehouseDtoList:[],
orderItemVOList:[],
drawee: 2
}
}
window.Decimal = Decimal window.Decimal = Decimal
export default { export default {
...@@ -592,17 +626,7 @@ export default { ...@@ -592,17 +626,7 @@ export default {
couponTypeList: [], couponTypeList: [],
fee: {}, // 费用 fee: {}, // 费用
// 表单参数 // 表单参数
form: { form: makeDefaultFormData(),
status:0,
sendstatus:0,
isCargoControl: false,
isCollection: false,
type:[],
isExternalWarehouse: false,
externalWarehouseDtoList:[],
orderItemVOList:[],
drawee: 2
},
ccIdArr: [], ccIdArr: [],
// 表单校验 // 表单校验
labelStyle: 'width:120px', labelStyle: 'width:120px',
...@@ -817,6 +841,11 @@ export default { ...@@ -817,6 +841,11 @@ export default {
this.$set(this.form, 'channelId', null) this.$set(this.form, 'channelId', null)
} }
// 如果是专线空运默认目的港清关选择我司
if(transportId == 3){
this.$set(this.form, 'portDestCustomsClear', 1)
}
this.getOpenedRouterList() this.getOpenedRouterList()
}, },
'form.channelId'(){ 'form.channelId'(){
...@@ -829,6 +858,7 @@ export default { ...@@ -829,6 +858,7 @@ export default {
} }
this.$set(this.form, 'departureId', router.startCityId) this.$set(this.form, 'departureId', router.startCityId)
this.$set(this.form, 'objectiveId', router.destCityId) this.$set(this.form, 'objectiveId', router.destCityId)
this.$set(this.form, 'transportId', router.transportType)
this.calculationPrice() this.calculationPrice()
}, },
...@@ -860,6 +890,17 @@ export default { ...@@ -860,6 +890,17 @@ export default {
this.$set(this.form, 'drawee', isCargoControl ? 2 : 2) this.$set(this.form, 'drawee', isCargoControl ? 2 : 2)
} }
}, },
// 目的港清关,1我司,2客户
'form.portDestCustomsClear'(portDestCustomsClear){
// 我司默认多票
if(portDestCustomsClear == 1){
this.$set(this.form, 'deliveryWay', 1)
}
// 客户默认单票
if(portDestCustomsClear == 2){
this.$set(this.form, 'deliveryWay', 2)
}
},
/* 'form.orderItemVOList'(){ /* 'form.orderItemVOList'(){
console.log('form.orderItemVOList', this.form.orderItemVOList.length, this.form.orderItemVOList) console.log('form.orderItemVOList', this.form.orderItemVOList.length, this.form.orderItemVOList)
}, */ }, */
...@@ -888,7 +929,6 @@ export default { ...@@ -888,7 +929,6 @@ export default {
} }
}, },
async created() { async created() {
defaultFormData = Object.assign({}, this.form)
this.productAttrList = (await getProductAttrList()).data this.productAttrList = (await getProductAttrList()).data
this.channelList = (await getChannelList()).data this.channelList = (await getChannelList()).data
...@@ -1056,7 +1096,7 @@ export default { ...@@ -1056,7 +1096,7 @@ export default {
// 检查正整数 // 检查正整数
checkPositiveInterge(row, field){ checkPositiveInterge(row, field){
console.log('checkPositiveInterge', field, row[field]) console.log('checkPositiveInterge', field, row[field])
row[field] = row[field].replace(/[^\d]/g, '') row[field] = row[field].toString().replace(/[^\d]/g, '')
}, },
onProductChange(row, product){ onProductChange(row, product){
console.log(product) console.log(product)
...@@ -1103,6 +1143,8 @@ export default { ...@@ -1103,6 +1143,8 @@ export default {
if(this.form.transportId){ if(this.form.transportId){
params.transportType = this.form.transportId params.transportType = this.form.transportId
} }
// 始发,目的和运输方式都没有的时候不获取
if(!params.startCityId && !params.destCityId && !params.transportType) return false
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
})) }))
...@@ -1194,10 +1236,15 @@ export default { ...@@ -1194,10 +1236,15 @@ export default {
this.$modal.msgSuccess(this.$t("新增成功")); this.$modal.msgSuccess(this.$t("新增成功"));
// 重置数据 // 重置数据
this.form = {...defaultFormData} this.form = {...makeDefaultFormData()}
this.routerList = []
this.addProduct()
this.$nextTick(() =>{
this.$refs.form.clearValidate() this.$refs.form.clearValidate()
this.$redirect('success?orderId=' + response.data) this.$redirect('success?orderId=' + response.data)
})
}); });
}); });
}, },
......
...@@ -85,13 +85,6 @@ ...@@ -85,13 +85,6 @@
<el-option :label="$t('自有仓')" :value="0"></el-option> <el-option :label="$t('自有仓')" :value="0"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单类型')" prop="number">
<el-select v-model="queryParams.type" :placeholder="$t('请选择')" clearable >
<el-option :label="$t('普通订单')" :value="0"></el-option>
<el-option :label="$t('集运服务')" :value="1"></el-option>
<el-option :label="$t('海外仓')" :value="2"></el-option>
</el-select>
</el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label=""> <el-form-item label="">
......
This diff is collapsed.
...@@ -110,7 +110,25 @@ ...@@ -110,7 +110,25 @@
</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">
<el-tag v-if="scope.row.orderExceptionStatus==2">{{$t('已完成')}}</el-tag> <!-- <el-button v-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType!='order_no_quote_exception'" v-hasPermi="['ecw:exception:seeExceptionInfo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button> -->
<el-button v-if="scope.row.orderExceptionStatus==2&&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.orderExceptionStatus==2&&scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('查看')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionStatus==2&&scope.row.orderExceptionType=='order_pay_exception'" v-hasPermi="['ecw:exception:pay']" 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_miss_exception'" v-hasPermi="['ecw:exception:miss']" 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_superfluous_goods_exception'" v-hasPermi="['ecw:exception:superfluousGoods']" 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_in_water_exception'" v-hasPermi="['ecw:exception:inWater']" 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_damage_exception'" v-hasPermi="['ecw:exception:damaged']" 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_heavy_cargo_exception'" v-hasPermi="['ecw:exception:heavyCargo']" 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_doc_exception'" v-hasPermi="['ecw:exception:doc']" 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_consignor_exception'" v-hasPermi="['ecw:exception:consignor']" 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_other_exception'" v-hasPermi="['ecw:exception:other']" 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_cod_exception'" v-hasPermi="['ecw:exception:cod']" 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_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" 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=='goods_add_exception'" v-hasPermi="['ecw:exception:goodsAddException']" 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-button v-else-if="scope.row.orderExceptionType=='order_superfluous_box_exception'" v-hasPermi="['ecw:exception:superfluousBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_superfluous_box_exception'" v-hasPermi="['ecw:exception:superfluousBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pay_exception'" v-hasPermi="['ecw:exception:pay']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_pay_exception'" v-hasPermi="['ecw:exception:pay']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
......
This diff is collapsed.
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
{{$t('数量')}}{{order.sumQuantity}}{{$t('')}} {{$t('数量')}}{{order.sumQuantity}}{{$t('')}}
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('货方式')"> <el-form-item :label="$t('货方式')">
<dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.pickType" form-type="radio" formatter="number"></dict-selector> <dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.pickType" form-type="radio" formatter="number"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('提货时间')" v-if="form.pickType == 1"> <el-form-item :label="$t('提货时间')" v-if="form.pickType == 1">
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<el-input v-model="form.remark" type="textarea" placeholder=""></el-input> <el-input v-model="form.remark" type="textarea" placeholder=""></el-input>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-button type="primary" @click="submit">{{$t('确认货')}}</el-button> <el-button type="primary" @click="submit">{{$t('确认货')}}</el-button>
<el-button type="default" @click="$router.back()">{{$t('取消')}}</el-button> <el-button type="default" @click="$router.back()">{{$t('取消')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
This diff is collapsed.
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<div class="title">{{$t('新增订单生成成功')}}</div> <div class="title">{{$t('新增订单生成成功')}}</div>
<div class="line">{{$t('订单号')}}{{order.orderNo}}</div> <div class="line">{{$t('订单号')}}{{order.orderNo}}</div>
<div class="line">{{$t('运输方式')}}<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" /></div> <div class="line">{{$t('运输方式')}}<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" /></div>
<div class="line" v-if="order.channelName">{{$t('出货渠道')}}{{order.channelName}}</div>
<div class="line">{{$t('路线')}}{{$l(order.logisticsInfoDto, 'startTitle')}} >> {{$l(order.logisticsInfoDto, 'destTitle')}}</div> <div class="line">{{$t('路线')}}{{$l(order.logisticsInfoDto, 'startTitle')}} >> {{$l(order.logisticsInfoDto, 'destTitle')}}</div>
<div class="line">{{$t('商品列表')}} <div class="line">{{$t('商品列表')}}
<span v-for="(item, index) in order.orderItemVOList" :key="index"> <span v-for="(item, index) in order.orderItemVOList" :key="index">
......
...@@ -941,6 +941,12 @@ export default { ...@@ -941,6 +941,12 @@ export default {
} }
const form = val === 1 ? this.form1 : this.form const form = val === 1 ? this.form1 : this.form
const formLength = form.table.length
let orderLocationBackVOList = []
/* // 不默认使用上一条记录的储位 https://zentao.test.jdshangmen.com/bug-view-3344.html
if (formLength > 0) {
orderLocationBackVOList = JSON.parse(JSON.stringify(form.table[formLength - 1].orderLocationBackVOList))
}*/
form.table.push({ form.table.push({
"boxGauge1": this.isJiyun ? 0 : '', "boxGauge1": this.isJiyun ? 0 : '',
"boxGauge2": this.isJiyun ? 0 : '', "boxGauge2": this.isJiyun ? 0 : '',
...@@ -952,7 +958,8 @@ export default { ...@@ -952,7 +958,8 @@ export default {
"volume": '', "volume": '',
"weight": '', "weight": '',
specificationType: '1', specificationType: '1',
table: [] table: [],
orderLocationBackVOList
}) })
}, },
/** 获取产品属性列表 */ /** 获取产品属性列表 */
......
...@@ -88,36 +88,52 @@ ...@@ -88,36 +88,52 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('重货方数')" v-if="type=='order_heavy_cargo_exception'"> <el-table-column :label="$t('重货方数')" v-if="type=='order_heavy_cargo_exception'">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.weVolume||0}}CBM</span> <span>{{scope.row.chargeVolume||0}}CBM</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('泡货方数')" v-if="type!='order_heavy_cargo_exception'"> <el-table-column :label="$t('泡货方数')" v-if="type!='order_heavy_cargo_exception'">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.weVolume||0}}CBM</span> <span>{{scope.row.chargeVolume||0}}CBM</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('重货重量')" v-if="type=='order_heavy_cargo_exception'"> <el-table-column :label="$t('重货重量')" v-if="type=='order_heavy_cargo_exception'">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.voWeight||0}}KG</span> <span>{{scope.row.chargeWeight ||0}}KG</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('泡货重量')" v-if="type!='order_heavy_cargo_exception'" > <el-table-column :label="$t('泡货重量')" v-if="type!='order_heavy_cargo_exception'" >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.vweight||0}}KG</span> <span>{{scope.row.chargeWeight ||0}}KG</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('最后操作时间')" scope="handlerTime" /> <el-table-column :label="$t('最后操作时间')" scope="handlerTime" />
</el-table> </el-table>
</el-card>
<el-card v-if="list.orderExceptionStatus==2">
<div slot="header" class="card-title">{{$t('处理结果')}}</div>
<el-descriptions :column="1">
<el-descriptions-item :label="$t('处理时间')">
{{parseTime(handlerParams.handlerTime)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('处理结果')">
{{handlerParams.handlerResult=='general_cargo'?$t('设为普货'):$t('设为已处理')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('备注')">
{{handlerParams.handlerRemark||"无"}}
</el-descriptions-item>
</el-descriptions>
</el-card> </el-card>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<div> <div v-if="list.orderExceptionStatus!=2">
<el-button type="primary" @click="submit('general_cargo')">{{$t('设为普货')}}</el-button> <el-button type="primary" @click="submit('general_cargo')">{{$t('设为普货')}}</el-button>
<el-button plain type="primary" @click="submit('process')">{{$t('设为已处理')}}</el-button> <el-button plain type="primary" @click="submit('process')">{{$t('设为已处理')}}</el-button>
</div> </div>
<div v-else>
<el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
</div> </div>
<el-form :model="handlerParams" ref="queryForms" size="small" label-width="50px" class="card"> </div>
<el-form v-if="list.orderExceptionStatus!=2" :model="handlerParams" ref="queryForms" size="small" label-width="50px" class="card">
<el-form-item :label="$t('备注')+':'" size="medium"> <el-form-item :label="$t('备注')+':'" size="medium">
<el-input style="width: 500px;" type="textarea" v-model="handlerParams.orderExceptionHandlerRemark" /> <el-input style="width: 500px;" type="textarea" v-model="handlerParams.orderExceptionHandlerRemark" />
</el-form-item> </el-form-item>
...@@ -127,7 +143,7 @@ ...@@ -127,7 +143,7 @@
</template> </template>
<script> <script>
import {getExceptionById,handlerExceptionByExceptionId} from "@/api/ecw/orderException" import {getExceptionById,handlerExceptionByExceptionId,getOrderExcptionResult} from "@/api/ecw/orderException"
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order' import {getOrder} from '@/api/ecw/order'
import {getProductBrankPage} from '@/api/ecw/productBrank' import {getProductBrankPage} from '@/api/ecw/productBrank'
...@@ -171,6 +187,9 @@ export default { ...@@ -171,6 +187,9 @@ export default {
getExceptionById(this.id).then(response => { getExceptionById(this.id).then(response => {
this.list = response.data; this.list = response.data;
this.loading = false; this.loading = false;
if(this.list.orderExceptionStatus==2){
this.getOrderExcptionResult()
}
this.getOrders() this.getOrders()
}); });
}, },
...@@ -178,6 +197,14 @@ export default { ...@@ -178,6 +197,14 @@ export default {
var brank = this.branklist.find(item=>item.id==id) var brank = this.branklist.find(item=>item.id==id)
return brank.titleZh||'' return brank.titleZh||''
}, },
//获取异常结果
getOrderExcptionResult(){
getOrderExcptionResult({orderExceptionId:this.id}).then(res=>{
this.handlerParams = res.data.list[0]
console.log(this.handlerParams)
})
},
checkCode(data){ checkCode(data){
if(data.indexOf('+')==-1){ if(data.indexOf('+')==-1){
return '+'+data return '+'+data
...@@ -219,7 +246,7 @@ export default { ...@@ -219,7 +246,7 @@ export default {
submit(result){ submit(result){
handlerExceptionByExceptionId({orderExceptionId:this.list.id,orderExceptionHandlerResult:result,orderExceptionHandlerRemark:this.handlerParams.orderExceptionHandlerRemark}).then(res=>{ handlerExceptionByExceptionId({orderExceptionId:this.list.id,orderExceptionHandlerResult:result,orderExceptionHandlerRemark:this.handlerParams.orderExceptionHandlerRemark}).then(res=>{
this.$modal.msgSuccess(this.$t("提交成功")); this.$modal.msgSuccess(this.$t("提交成功"));
this.$router.back() this.$store.dispatch('tagsView/delCurrentView')
}) })
} }
} }
......
...@@ -735,7 +735,7 @@ export default { ...@@ -735,7 +735,7 @@ export default {
this.form.priceStepList.forEach(item => { this.form.priceStepList.forEach(item => {
let notEmptyFields = ['startNum', 'endNum', 'weightUnit'] let notEmptyFields = ['startNum', 'endNum', 'weightUnit']
notEmptyFields.forEach(field => { notEmptyFields.forEach(field => {
if(item[field].toString().trim() == ''){ if(!item[field] || item[field].toString().trim() == ''){
stepPriceEmpty = true stepPriceEmpty = true
} }
}) })
...@@ -744,7 +744,7 @@ export default { ...@@ -744,7 +744,7 @@ export default {
} }
}) })
if(stepPriceEmpty){ if(stepPriceEmpty){
return this.$message.error(this.$t('阶梯价格设置不能留空')) return this.$message.error(this.$t('阶梯价格设置不能留空'))
} }
} }
......
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