Commit e03115cd authored by 邓春圆's avatar 邓春圆

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

parents cff971d2 a0013648
...@@ -57,7 +57,11 @@ ...@@ -57,7 +57,11 @@
</el-table-column> </el-table-column>
<el-table-column v-if="showAttr" :label="$t('商品特性')" prop="startTitleZh"> <el-table-column v-if="showAttr" :label="$t('商品特性')" prop="startTitleZh">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ getAttrNames(row.attrId) }} <!--{{ getAttrNames(row.attrId) }}-->
<template v-if="row.channel && row.channel.attrNameList">
{{row.channel.attrNameList.join(',')}}
</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" prop=""> <el-table-column :label="$t('操作')" prop="">
...@@ -182,7 +186,7 @@ export default { ...@@ -182,7 +186,7 @@ export default {
// 显示产品特性 // 显示产品特性
getAttrName(){ getAttrName(){
return (id) => { return (id) => {
let item = this.attrList.find(item => item.id == id) let item = this.attrList.find(item => item.id === +id)
if(!item) return '' if(!item) return ''
return this.$l(item, 'attrName') return this.$l(item, 'attrName')
} }
...@@ -233,7 +237,12 @@ export default { ...@@ -233,7 +237,12 @@ export default {
}, },
// 显示的路线发生变化之后,清空已勾选的路线 // 显示的路线发生变化之后,清空已勾选的路线
filteredRouterList(){ filteredRouterList(){
if(this.inited)this.selectedRoutes = [] if(this.inited){
this.selectedRoutes = []
Object.keys(this.groupChecker).forEach(key => {
this.groupChecker[key] = false
})
}
} }
}, },
async created(){ async created(){
...@@ -254,6 +263,9 @@ export default { ...@@ -254,6 +263,9 @@ export default {
if(this.showAttr){ if(this.showAttr){
this.getAttrList() this.getAttrList()
} }
await this.$nextTick()
this.inited = true
}, },
methods:{ methods:{
getAttrList(){ getAttrList(){
......
<template> <template>
<div class="shippingSea-dialog"> <div class="shippingSea-dialog">
<el-form ref="errorForm" :model="errorObj" label-width="140px"> <el-form ref="errorForm" :model="errorObj" label-width="140px">
<el-form-item :label="$t('操作步骤')"> <el-form-item :label="$t('操作步骤')" :rules="[{required: true,message: this.$t('操作步骤必填'),trigger: 'blur'}]" prop="opStep">
<el-select v-model="errorObj.opStep" :placeholder="$t('请选择操作步骤')"> <el-select v-model="errorObj.opStep" :placeholder="$t('请选择操作步骤')">
<el-option v-for="type in this.getDictDatas(DICT_TYPE[this.process])" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE[this.process])" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option>
</el-select> </el-select>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SEA_AIR)" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SEA_AIR)" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option>
</el-select>--> </el-select>-->
</el-form-item> </el-form-item>
<el-form-item :label="$t('票异常')"> <el-form-item :label="$t('票异常')" :rules="[{required: true,message: this.$t('票异常必填'),trigger: 'blur'}]" prop="billAbnId">
<el-select v-model="errorObj.billAbnId" :placeholder="$t('请选择票异常')"> <el-select v-model="errorObj.billAbnId" :placeholder="$t('请选择票异常')">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION)" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION)" :key="type.value" :label="$l(type, 'label')" :value="type.value"></el-option>
</el-select> </el-select>
...@@ -91,12 +91,13 @@ export default { ...@@ -91,12 +91,13 @@ export default {
} }
}, },
created() { created() {
const { currNode } = this.$attrs; // console.log(this.$attrs,'this.$attrs');
this.errorObj = { opStep: currNode?.dataKey ?? undefined }; // const { currNode } = this.$attrs;
console.log(currNode, this.errorObj.opStep) // this.errorObj = { opStep: currNode?.dataKey ?? undefined };
if (this.$attrs.shipmentObj.bosType == "seaAir") { // console.log(currNode, this.errorObj.opStep)
this.flag = "seaAir"; // if (this.$attrs.shipmentObj.bosType == "seaAir") {
} // this.flag = "seaAir";
// }
}, },
watch: { watch: {
// 异常开始时间 // 异常开始时间
...@@ -123,6 +124,7 @@ export default { ...@@ -123,6 +124,7 @@ export default {
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["errorForm"].validate((valid) => { this.$refs["errorForm"].validate((valid) => {
console.log(valid,'valid')
if (valid) { if (valid) {
abnormalCreate({ abnormalCreate({
...this.errorObj, ...this.errorObj,
......
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
<el-input v-model="queryParams.weightRatioMin" :placeholder="$t('请输入 小')" clearable /> <el-input v-model="queryParams.weightRatioMin" :placeholder="$t('请输入 小')" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="shippingChannelId"> <el-form-item :label="$t('出货渠道')" prop="channelId">
<el-select v-model="queryParams.shippingChannelId" :placeholder="$t('请选择出货渠道')" @change="selectChannel"> <el-select v-model="queryParams.channelId" :placeholder="$t('请选择出货渠道')" @change="selectChannel">
<el-option v-for="item in channelList" :label="$l(item, 'name')" :value="item.channelId" :key="item.channelId"></el-option> <el-option v-for="item in channelList" :label="$l(item, 'name')" :value="item.channelId" :key="item.channelId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -46,8 +46,7 @@ import { listUser } from "@/api/system/user"; ...@@ -46,8 +46,7 @@ import { listUser } from "@/api/system/user";
import { getLadingShipperPage } from "@/api/ecw/ladingShipper"; import { getLadingShipperPage } from "@/api/ecw/ladingShipper";
// 这里引入的数据切换语言后要刷新才生效,优化办法是label同时配备labelEn字段,然后再页面上用$l函数调用 // 这里引入的数据切换语言后要刷新才生效,优化办法是label同时配备labelEn字段,然后再页面上用$l函数调用
import { airBaseData } from "./utils"; import { airBaseData, airOneData, airNextData } from "./utils";
import { airOneData } from "./utils";
/** /**
* 海运操作主页面 * 海运操作主页面
*/ */
...@@ -64,6 +63,7 @@ export default { ...@@ -64,6 +63,7 @@ export default {
return { return {
airBaseData, airBaseData,
airOneData, airOneData,
airNextData,
shipmentObj: {}, shipmentObj: {},
warehouseList: [], warehouseList: [],
// 供应商 // 供应商
...@@ -127,6 +127,9 @@ export default { ...@@ -127,6 +127,9 @@ export default {
if(this.shipmentObj.destinationClearance==3&&this.shipmentObj.deliveryType==2){ if(this.shipmentObj.destinationClearance==3&&this.shipmentObj.deliveryType==2){
this.seaBaseData = this.airOneData() this.seaBaseData = this.airOneData()
} }
if(this.shipmentObj.destinationClearance==2){
this.seaBaseData = this.airNextData()
}
this.flag = true this.flag = true
}); });
}, },
......
...@@ -572,6 +572,309 @@ function airOneData() { ...@@ -572,6 +572,309 @@ function airOneData() {
]; ];
} }
/**
* 目的港清关=我司&合作方清关流程
*
* @return {*}
*/
function airNextData() {
return [
[
{
title: i18n.$t("订舱"),
imgSrc: {
start: require("@/assets/images/shipping/dc-start.png"),
end: require("@/assets/images/shipping/dc-end.png"),
},
type: "booking", // 类型
dataKey: "1", // 字典数据键值
/**
* 订舱状态:11、未订舱;12、已订舱
*/
voName: "bookAirInfo", // 订舱对象vo
keyName: "bkStatus",
status: {
start: [11],
wait: [],
end: [12],
},
},
],
[
{
title: i18n.$t("分拣"),
imgSrc: {
start: require("@/assets/images/shipping/yz-start.png"),
wait: require("@/assets/images/shipping/yz-wait.png"),
end: require("@/assets/images/shipping/yz-end.png"),
},
type: "preinstall",
dataKey: "2", // 字典数据键值
/**
* 预装状态:21、未预装;22、预装中;23、预装审核中;24、预装审核失败;25、预装审核成功
*/
voName: "preInstallInfo",
keyName: "prStatus",
status: {
start: [21],
wait: [22, 23, 24],
end: [25],
},
}
],
[
{
title: i18n.$t("理货"),
imgSrc: {
start: require("@/assets/images/shipping/lh-start.png"),
wait: require("@/assets/images/shipping/lh-wait.png"),
end: require("@/assets/images/shipping/lh-end.png"),
},
type: "tally",
dataKey: "3", // 字典数据键值
/**
* 理货状态:2111、未理货;2112、已理货
*/
voName: "tallyInfo",
keyName: "tyStatus",
status: {
start: [2111],
wait: [],
end: [2112],
},
},
{
title: i18n.$t("合包"),
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
type: "mergePkg",
dataKey: "4", // 字典数据键值
/**
* 合包状态:161待合包 162已合包
*/
voName: "boxMergePkgBackVO",
keyName: "mergePkgStatus",
status: {
start: [161],
wait: [],
end: [162],
},
},
],
[
{
title: i18n.$t("出货"),
imgSrc: {
start: require("@/assets/images/shipping/zg-start.png"),
wait: require("@/assets/images/shipping/zg-wait.png"),
end: require("@/assets/images/shipping/zg-end.png"),
},
type: "shipment",
dataKey: "5", // 字典数据键值
/**
* 出货状态:171、待出货 172、出货审核中 173、审核失败 174、审核成功 = 175、已出货
*/
voName: "boxAirShipmentBackVO",
keyName: "airShipmentStatus",
status: {
start: [171],
wait: [172,173],
end: [175],
},
},
{
title: i18n.$t("出仓"),
imgSrc: {
start: require("@/assets/images/shipping/zg-start.png"),
wait: require("@/assets/images/shipping/zg-wait.png"),
end: require("@/assets/images/shipping/zg-end.png"),
},
type: "checkout",
dataKey: "6", // 字典数据键值
/**
* 出仓状态:221、未出仓 222、已出仓
*/
voName: "boxAirCheckoutBackVO",
keyName: "checkoutStatus",
status: {
start: [221],
wait: [],
end: [222],
},
},
],
[
{
title: "AGENT",
imgSrc: {
start: require("@/assets/images/shipping/agent-start.png"),
wait: require("@/assets/images/shipping/agent-wait.png"),
end: require("@/assets/images/shipping/agent-end.png"),
},
type: "agent",
voName: "agentInfo",
currStatus: "start",
dataKey: "7"
},
{
title: i18n.$t("报关"),
imgSrc: {
start: require("@/assets/images/shipping/bg-start.png"),
wait: require("@/assets/images/shipping/bg-wait.png"),
end: require("@/assets/images/shipping/bg-end.png"),
},
type: "cusDeclaration",
dataKey: "8", // 字典数据键值
/**
*报关状态:51、未报关;52、报关中;53、已报关
*/
voName: "customsInfo",
keyName: "dcStatus",
status: {
start: [51],
wait: [52],
end: [53],
},
},
],
[
{
title: i18n.$t("起飞"),
imgSrc: {
start: require("@/assets/images/shipping/ecqf-start.png"),
wait: require("@/assets/images/shipping/ecqf-wait.png"),
end: require("@/assets/images/shipping/ecqf-end.png"),
},
type: "twoWayTakeoff",
dataKey: "10", // 字典数据键值
/**
* 起飞状态:231、未起飞;232、已起飞
*/
voName: "boxAirFlyInfo",
keyName: "flyStatus",
status: {
start: [231],
wait: [],
end: [232],
},
},
],
[
{
type: "clrDocument",
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
title: i18n.$t("清关文件"),
dataKey: "11", // 字典数据键值
/**
* 清关文件状态:111、未清关文件;112、已清关文件
*/
voName: "clearanceDocInfo",
keyName: "cdStatus",
status: {
start: [111],
wait: [],
end: [112],
},
},
],
[
{
title: i18n.$t("到港"),
imgSrc: {
start: require("@/assets/images/shipping/dg-start.png"),
wait: require("@/assets/images/shipping/dg-wait.png"),
end: require("@/assets/images/shipping/dg-end.png"),
},
type: "arrival",
dataKey: "12", // 字典数据键值
/**
* 到港状态:151、未到港;152、已到港
*/
voName: "airArrivalInfo",
keyName: "sapStatus",
status: {
start: [151],
wait: [],
end: [152],
},
},
],
[
{
title: i18n.$t("清关"),
imgSrc: {
start: require("@/assets/images/shipping/qg-start.png"),
wait: require("@/assets/images/shipping/qg-wait.png"),
end: require("@/assets/images/shipping/qg-end.png"),
},
type: "cusClearance",
dataKey: "13", // 字典数据键值
/**
* 清关状态:131、未清关;132、已清关
*/
voName: "clearanceInfo",
keyName: "clStatus",
status: {
start: [131],
wait: [],
end: [132],
},
},
],
[
{
title: i18n.$t("到仓"),
imgSrc: {
start: require("@/assets/images/shipping/xg-start.png"),
wait: require("@/assets/images/shipping/xg-wait.png"),
end: require("@/assets/images/shipping/xg-end.png"),
},
type: "unloading",
dataKey: "14", // 字典数据键值
/**
* 卸柜状态:181、未卸柜;182、卸柜中;183、卸柜审核中;184、卸柜审核失败;185、卸柜审核成功;186、已卸柜
*/
voName: "cabinetUnloadInfo",
keyName: "toWarehouseStatus",
status: {
start: [181],
wait: [182, 183, 184],
end: [185, 186],
},
},
],
[
{
title: i18n.$t("结算"),
imgSrc: {
start: require("@/assets/images/shipping/js-start.png"),
wait: require("@/assets/images/shipping/js-wait.png"),
end: require("@/assets/images/shipping/js-end.png"),
},
type: "settlement",
dataKey: "15", // 字典数据键值
/**
* 结算状态:191、未结算;192、结算中;193、已结算
*/
voName: "settlementInfo",
keyName: "slStatus",
status: {
start: [191],
wait: [192],
end: [193],
},
},
],
];
}
/** /**
* 详情显示列 * 详情显示列
* *
...@@ -1193,6 +1496,7 @@ export { ...@@ -1193,6 +1496,7 @@ export {
getSeaStatus, getSeaStatus,
airBaseData, airBaseData,
airOneData, airOneData,
airNextData,
constantDict, constantDict,
formatStringNumber, formatStringNumber,
formatDateStr, formatDateStr,
......
...@@ -42,8 +42,8 @@ ...@@ -42,8 +42,8 @@
<el-form-item :label="$t('联系方式')" prop="key"> <el-form-item :label="$t('联系方式')" prop="key">
<el-input v-model="queryParams.phoneNew" :placeholder="$t('请输入联系方式')" clearable/> <el-input v-model="queryParams.phoneNew" :placeholder="$t('请输入联系方式')" clearable/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="userId">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.userId" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList" <el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
......
...@@ -393,10 +393,9 @@ ...@@ -393,10 +393,9 @@
<span v-if="amount"> {{amount}}{{getCurrencyLabel(currency)}}</span> <span v-if="amount"> {{amount}}{{getCurrencyLabel(currency)}}</span>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收款账户')" prop="accountNo" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('收款账户不能为空') }"> <el-form-item :label="$t('收款账户')" prop="accountNo" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('收款账户不能为空') }">
<el-select v-if="!isView" v-model="addForm.accountId" :placeholder="$t('请选择收款账户')" style="width: 220px" @change="accountChange"> <el-select v-if="!isView" filterable clear v-model="addForm.accountId" :placeholder="$t('请选择收款账户')" style="width: 220px" @change="accountChange" v-el-select-loadmore="loadmore">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName + '(' + item.baAccountNum + ')'" :value="item.id" /> <el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName + '(' + item.baAccountNum + ')'" :value="item.id" />
</el-select> </el-select>
<span v-else>{{ addForm.accountNo}}{{'('+addForm.accountName+')' }}</span> <span v-else>{{ addForm.accountNo}}{{'('+addForm.accountName+')' }}</span>
...@@ -620,7 +619,12 @@ export default { ...@@ -620,7 +619,12 @@ export default {
detailIndex:1, detailIndex:1,
wiffShow:false, wiffShow:false,
wiffRemark:'', wiffRemark:'',
rateList:[] rateList:[],
codePage: {
pageNo: 1,
pageSize: 20
},
pages:1
} }
}, },
computed: { computed: {
...@@ -698,6 +702,22 @@ export default { ...@@ -698,6 +702,22 @@ export default {
this.setWriteOffAmount() this.setWriteOffAmount()
}, },
}, },
directives: {
'el-select-loadmore': {
bind (el, binding) {
const SELECTWRAP_DOM = el.querySelector(
'.el-select-dropdown .el-select-dropdown__wrap'
)
SELECTWRAP_DOM.addEventListener('scroll', function () {
const condition =
this.scrollHeight - this.scrollTop <= this.clientHeight
if (condition) {
binding.value()
}
})
}
}
},
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)
...@@ -720,7 +740,10 @@ export default { ...@@ -720,7 +740,10 @@ export default {
// }); // });
// console.log(this.deptData) // console.log(this.deptData)
}); });
await getBankAccountPage(this.params).then((res) => (this.bankData = res.data.list)); await getBankAccountPage(this.codePage).then((res) => {
this.bankData = res.data.list
this.pages = (res.data.total/this.codePage.pageSize)+1
});
if (this.$route.query.id) { if (this.$route.query.id) {
this.id = this.$route.query.id; this.id = this.$route.query.id;
await getReceiptInfoByIds({ id: this.id }).then(res => { await getReceiptInfoByIds({ id: this.id }).then(res => {
...@@ -811,6 +834,24 @@ export default { ...@@ -811,6 +834,24 @@ export default {
this.getList() this.getList()
}, },
methods: { methods: {
// 懒加载
loadmore () {
this.codePage.pageNo++
// 大于页码不请求了
console.log(111)
if (this.codePage.pageNo > this.pages) {
return
}
this.getCodeList()
},
getCodeList() {
setTimeout(() => {
getBankAccountPage(this.codePage).then(res => {
this.bankData = this.bankData.concat(res.data.list)
this.pages = (res.data.total/this.codePage.pageSize)+1
})
}, 200)
},
rateChange(row, index) { rateChange(row, index) {
if(row.collectionRate){ if(row.collectionRate){
row.receivableAmount && (row.collectionAmount = Math.round(NP.times(row.collectionRate || 0, NP.minus(row.receivableAmount, row.discountTotal||0)))) row.receivableAmount && (row.collectionAmount = Math.round(NP.times(row.collectionRate || 0, NP.minus(row.receivableAmount, row.discountTotal||0))))
......
...@@ -75,12 +75,16 @@ ...@@ -75,12 +75,16 @@
{{getLocationName(row.orderLocationBackVOList)}} {{getLocationName(row.orderLocationBackVOList)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" > <!-- <el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" >
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-button type="primary" @click="seeMv(orderWarehouseInContent.pictureUrls)">{{$t('查看')}}</el-button> <el-button type="primary" @click="seeMv(orderWarehouseInContent.pictureUrls)">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
<div style="margin:20px 0;font-size:16px;font-weight:600">
{{$t('打包前入仓影像')}}
</div>
<image-and-video-upload v-if="orderWarehouseInContent.pictureUrls" readonly :fileSize="50" :isShowTip="true" :value="orderWarehouseInContent.pictureUrls" ></image-and-video-upload>
</el-card> </el-card>
<el-card style="margin-bottom:10px"> <el-card style="margin-bottom:10px">
<div slot="header" class="card-title"> <div slot="header" class="card-title">
...@@ -131,12 +135,16 @@ ...@@ -131,12 +135,16 @@
{{getLocationName(row.orderLocationBackVOList)}} {{getLocationName(row.orderLocationBackVOList)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" > <!-- <el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" >
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-button type="primary" @click="seeMv(warehouseItem.pictureUrls)">{{$t('查看')}}</el-button> <el-button type="primary" @click="seeMv(warehouseItem.pictureUrls)">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
<div style="margin:20px 0;font-size:16px;font-weight:600">
{{$t('打包后入仓影像')}}
</div>
<image-and-video-upload v-if="warehouseItem.pictureUrls" readonly :fileSize="50" :isShowTip="true" :value="warehouseItem.pictureUrls" ></image-and-video-upload>
</el-card> </el-card>
<el-card style="margin-bottom:10px"> <el-card style="margin-bottom:10px">
<el-descriptions :title="$t('打包数据')" :column="2" :labelStyle="{width:'120px'}"> <el-descriptions :title="$t('打包数据')" :column="2" :labelStyle="{width:'120px'}">
......
...@@ -666,6 +666,7 @@ let makeDefaultFormData = () => { ...@@ -666,6 +666,7 @@ let makeDefaultFormData = () => {
orderItemVOList:[], orderItemVOList:[],
drawee: 2, drawee: 2,
harvestMethod: "1", harvestMethod: "1",
displayBillLadingPrice: true
} }
} }
window.Decimal = Decimal window.Decimal = Decimal
...@@ -1000,6 +1001,20 @@ export default { ...@@ -1000,6 +1001,20 @@ export default {
if(!this.initing){ if(!this.initing){
this.$set(this.form, 'drawee', isCargoControl ? 2 : 2) this.$set(this.form, 'drawee', isCargoControl ? 2 : 2)
} }
this.setBllLandingPrice()
},
'form.type'(){
this.setBllLandingPrice()
},
'form.drawee'(){
this.setBllLandingPrice()
},
'form.consigneeId'(){
this.setBllLandingPrice()
},
'form.consignorId'(){
this.setBllLandingPrice()
}, },
// 目的港清关,1我司,2客户 // 目的港清关,1我司,2客户
'form.portDestCustomsClear'(portDestCustomsClear){ 'form.portDestCustomsClear'(portDestCustomsClear){
...@@ -1515,6 +1530,33 @@ export default { ...@@ -1515,6 +1530,33 @@ export default {
that.$set(that.form, 'offerId', response.data.offerId) that.$set(that.form, 'offerId', response.data.offerId)
}) })
}, },
// 设置默认的提货单是否显示价格
setBllLandingPrice(){
if(this.form.orderId) return
// 海外仓归属发货人
// 控货订单归属发货人
// 非控货订单 + 付款人为发货人 归属发货人, 其他归属收货人
let customerId = null
if(this.form.type == 2 || this.form.isCargoControl == 1 || this.form.drawee == 2 ){
customerId = this.form.consignorId
}else{
customerId = this.form.consigneeId
}
if(!customerId) return
console.log('原归属人',this.displayBillLadingPriceFrom, '新归属人', customerId)
// 如果当前的提单价格设置来自同一个客户则不在查询
if(this.displayBillLadingPriceFrom == customerId) return;
this.displayBillLadingPriceFrom = customerId
// 获取客户信息
getCustomer(customerId).then(res => {
console.log('isShowTidanPrice', res)
this.form.displayBillLadingPrice = res.data.isShowTidanPrice
})
},
} }
}; };
</script> </script>
......
...@@ -16,12 +16,13 @@ ...@@ -16,12 +16,13 @@
<el-descriptions-item :label="$t('目的仓')" :span="2"> <el-descriptions-item :label="$t('目的仓')" :span="2">
{{order.logisticsInfoDto.destAddressZh}} {{order.logisticsInfoDto.destAddressZh}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('异常描述')" :span="2"> <el-descriptions-item :label="$t('异常描述')+':'" :span="2">
{{$l(orderExceptionData.orderExceptionDescVO, 'desc')}} {{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div v-for="row in orderItemData" :key="row.orderItemId"> <div v-for="(row,index) in orderItemData" :key="row.orderItemId">
<div v-if="row.charging ==1" class="price_list"> <div v-if="row.charging ==1" class="price_list">
<span>品名{{parseInt(index)+1}}{{$l(row.prodTitle, 'desc')}}</span>
<span>旧成交价:</span> <span>旧成交价:</span>
<div> <div>
<div v-if="!row.oneSeaFreight"> <div v-if="!row.oneSeaFreight">
...@@ -57,48 +58,49 @@ ...@@ -57,48 +58,49 @@
</div> </div>
</div> </div>
</div> </div>
</div> <div v-if="loopOrderItem[index].charging ==1" class="price_list">
<div v-for="row in loopOrderItem" :key="row.orderItemId">
<div v-if="row.charging ==1" class="price_list">
<span>新成交价:</span> <span>新成交价:</span>
<div> <div>
<div v-if="!row.oneSeaFreight"> <div v-if="!loopOrderItem[index].oneSeaFreight">
<span >{{$t('全包价')}}:</span> <span >{{$t('全包价')}}:</span>
<span>{{$t('未报价')}}</span> <span>{{$t('未报价')}}</span>
</div> </div>
<div v-else> <div v-else>
<span >{{$t('全包价')}}:</span> <span >{{$t('全包价')}}:</span>
<span>{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span> <span>{{loopOrderItem[index].oneSeaFreight}} {{currencyMap[loopOrderItem[index].seaFreightCurrency]}} / {{unitMap[loopOrderItem[index].seaFreightVolume]}}</span>
</div> </div>
</div> </div>
</div> </div>
<div v-else class="price_list"> <div v-else class="price_list">
<span>新成交价:</span> <span>新成交价:</span>
<div> <div>
<div v-if="!row.oneSeaFreight"> <div v-if="!loopOrderItem[index].oneSeaFreight">
<span>{{$t('运费')}}:</span> <span>{{$t('运费')}}:</span>
<span>{{$t('未报价')}}</span> <span>{{$t('未报价')}}</span>
</div> </div>
<div v-else> <div v-else>
<span >{{$t('运费')}}:</span> <span >{{$t('运费')}}:</span>
<span>{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span> <span>{{loopOrderItem[index].oneSeaFreight}} {{currencyMap[loopOrderItem[index].seaFreightCurrency]}} / {{unitMap[loopOrderItem[index].seaFreightVolume]}}</span>
</div> </div>
</div> </div>
<div> <div>
<div v-if="!row.oneClearanceFreight"> <div v-if="!loopOrderItem[index].oneClearanceFreight">
<span >{{$t('清关费')}}:</span> <span >{{$t('清关费')}}:</span>
<span>{{$t('未报价')}}</span> <span>{{$t('未报价')}}</span>
</div> </div>
<div v-else> <div v-else>
<span>{{$t('清关费')}}:</span> <span>{{$t('清关费')}}:</span>
<span>{{row.oneClearanceFreight}} {{currencyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}</span> <span>{{loopOrderItem[index].oneClearanceFreight}} {{currencyMap[loopOrderItem[index].clearanceFreightCurrency]}} / {{unitMap[loopOrderItem[index].clearanceFreightVolume]}}</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- <div v-for="row in loopOrderItem" :key="row.orderItemId"> -->
<!-- </div> -->
<el-descriptions :column="3" v-if="order" :colon="false"> <el-descriptions :column="3" v-if="order" :colon="false">
<el-descriptions-item :label="$t('备注')" :span="2"> <el-descriptions-item :label="$t('备注')+':'" :span="2">
{{$l(orderExceptionData.orderExceptionRemark, 'desc')}} {{orderExceptionData.orderExceptionNotes||'/'}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
......
This diff is collapsed.
...@@ -148,7 +148,7 @@ export default { ...@@ -148,7 +148,7 @@ export default {
} }
if (typeof this.value.prodAttrIds === 'string' && this.value.prodAttrIds.length > 0) { if (typeof this.value.prodAttrIds === 'string' && this.value.prodAttrIds.length > 0) {
this.prodAttrIds.push(...this.value.prodAttrIds.split(',').map(e => +e)) this.prodAttrIds = this.value.prodAttrIds.split(',').map(e => +e)
} }
console.log(this.prodAttrIds) console.log(this.prodAttrIds)
......
...@@ -299,12 +299,12 @@ export default { ...@@ -299,12 +299,12 @@ export default {
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
this.$nextTick(async () => { await this.$nextTick()
// 如果是空运,阶梯价格默认为1 // 如果是空运,阶梯价格默认为1
if(this.type == 'air'){ if(this.type == 'air'){
this.$set(this.form, 'stepPrice', 1) this.$set(this.form, 'stepPrice', 1)
} }
await this.$nextTick()
// 默认单位,空运千克,海运立方米 // 默认单位,空运千克,海运立方米
this.setDefaultVolumeUnit(this.type == 'air' ? 6 : 7) this.setDefaultVolumeUnit(this.type == 'air' ? 6 : 7)
...@@ -312,21 +312,23 @@ export default { ...@@ -312,21 +312,23 @@ export default {
if(this.$route.query.templateId){ if(this.$route.query.templateId){
await this.getTemplateDetail(this.$route.query.templateId) await this.getTemplateDetail(this.$route.query.templateId)
} }
})
// 从价格中获取特需的默认单位
const obj = (this.form.stepPrice ? this.form.priceStepList[0] : this.form) || {}
this.getDictDatas(this.DICT_TYPE.ECW_SPECIAL_REQ_FOR_LINE_PRODUCTS).forEach(item => { this.getDictDatas(this.DICT_TYPE.ECW_SPECIAL_REQ_FOR_LINE_PRODUCTS).forEach(item => {
// 没有的才push,已有的可能是从复制模板携带过来的数据 // 没有的才push,已有的可能是从复制模板携带过来的数据
if(!this.form.specialList.find(special => special.specialDictType == item.value)) { if(!this.form.specialList.find(special => special.specialDictType == item.value)) {
console.log('特需push', item.value)
this.form.specialList.push({ this.form.specialList.push({
"clearancePrice": null, "clearancePrice": null,
"clearancePriceUnit": null, "clearancePriceUnit": obj.clearancePriceUnit,
"clearanceVolumeUnit": null, "clearanceVolumeUnit": obj.clearanceVolumeUnit,
"specialDictType": item.value, "specialDictType": item.value,
"transportPrice": null, "transportPrice": null,
"transportPriceUnit": null, "transportPriceUnit": obj.transportPriceUnit,
"transportVolumeUnit": null, "transportVolumeUnit": obj.transportVolumeUnit,
}) })
} }else console.log('已存在特需', item.value)
}) })
...@@ -334,15 +336,16 @@ export default { ...@@ -334,15 +336,16 @@ export default {
methods: { methods: {
// 获取模板数据(复制的源路线价格信息) // 获取模板数据(复制的源路线价格信息)
async getTemplateDetail(id){ async getTemplateDetail(id){
await getProductPrice(id).then(res => { const res = await getProductPrice(id)
// 填充商品、线路、价格信息、出货渠道(空运) // 填充商品、线路、价格信息、出货渠道(空运)
// this.form.productIdList = [res.data.productId] // this.form.productIdList = [res.data.productId]
/* 23-11-07要求不复制商品和线路 https://zentao.test.jdshangmen.com/bug-view-5145.html
this.selectedRoutes = [{ this.selectedRoutes = [{
"lineId": res.data.warehouseLineId, "lineId": res.data.warehouseLineId,
"channelId": res.data.shippingChannelId, "channelId": res.data.shippingChannelId,
"transportId": res.data.warehouseLineDO.transportType, "transportId": res.data.warehouseLineDO.transportType,
"shippingChannelId":res.data.channelId "shippingChannelId":res.data.channelId
}] }]*/
// 要复制过来的字段 // 要复制过来的字段
const { const {
allPrice, allPrice,
...@@ -393,10 +396,10 @@ export default { ...@@ -393,10 +396,10 @@ export default {
this.$set(this, 'form', Object.assign({}, this.form, data)) this.$set(this, 'form', Object.assign({}, this.form, data))
// 产品选择器默认选择的商品 // 产品选择器默认选择的商品
/* 23-11-07要求不复制商品和线路 https://zentao.test.jdshangmen.com/bug-view-5145.html
getProduct(res.data.productId).then(res => { getProduct(res.data.productId).then(res => {
this.$refs.productSelector.choose(res.data) this.$refs.productSelector.choose(res.data)
}) })*/
})
}, },
// 同步全部单位 // 同步全部单位
syncAllUnit(){ syncAllUnit(){
......
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
<div style="font-size:14px; margin:10px 0"> <div style="font-size:14px; margin:10px 0">
{{$t('第{index}阶梯定价方案', {index: index+1})}} {{$t('第{index}阶梯定价方案', {index: index+1})}}
<template v-if="index == form.priceStepList.length - 1 && !readonly"> <template v-if="index == form.priceStepList.length - 1 && !readonly">
<el-link type="primary" @click.native="form.priceStepList.push({})">{{$t('添加区间')}}</el-link> <el-link type="primary" @click.native="addStepPrice">{{$t('添加区间')}}</el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link type="danger" @click.native="form.priceStepList.splice(index, 1)">{{$t('删除')}}</el-link> <el-link type="danger" @click.native="form.priceStepList.splice(index, 1)">{{$t('删除')}}</el-link>
</template> </template>
...@@ -221,7 +221,7 @@ ...@@ -221,7 +221,7 @@
<el-input v-model="quickForm.minus" class="w-100 ml-10 mr-10" :disabled="!!quickForm.plus"></el-input> <el-input v-model="quickForm.minus" class="w-100 ml-10 mr-10" :disabled="!!quickForm.plus"></el-input>
<selector disabled v-model="currencyAndUnit.currency" :options="currencyList" :label-field="$l('title')" value-field="id" class="w-100" /> <selector disabled v-model="currencyAndUnit.currency" :options="currencyList" :label-field="$l('title')" value-field="id" class="w-100" />
/ <selector disabled v-model="currencyAndUnit.unit" :options="unitList" :label-field="$l('title')" value-field="id" class="w-100" /> / <selector disabled v-model="currencyAndUnit.unit" :options="unitList" :label-field="$l('title')" value-field="id" class="w-100" />
<div class="ml-10">{{$t('*针对所有价格')}}</div> <div class="ml-10">{{$t('*针对所有价格')}}</div>
</div> </div>
<div class="mt-10"> <div class="mt-10">
<el-button @click="quickSet" type="primary" :disabled="!quickForm.plus && !quickForm.minus">{{$t('确定')}}</el-button> <el-button @click="quickSet" type="primary" :disabled="!quickForm.plus && !quickForm.minus">{{$t('确定')}}</el-button>
...@@ -956,6 +956,25 @@ export default { ...@@ -956,6 +956,25 @@ export default {
// 加上对应的价格,但是不能小于0 // 加上对应的价格,但是不能小于0
this.$set(item, field, Math.max(0, Decimal(item[field] || 0).plus(amount).toNumber())) this.$set(item, field, Math.max(0, Decimal(item[field] || 0).plus(amount).toNumber()))
}) })
},
// 添加区间价
addStepPrice(){
let fields = {}
const obj = this.form.priceStepList[0] || {}
if(this.form.priceType == 1){
fields = {
allPriceUnit: obj['allPriceUnit'],
allVolumeUnit: obj['allVolumeUnit']
}
}else{
fields = {
transportPriceUnit: obj.transportPriceUnit,
transportVolumeUnit: obj.transportVolumeUnit,
clearancePriceUnit: obj.clearancePriceUnit,
clearanceVolumeUnit: obj.transportVolumeUnit,
}
}
this.form.priceStepList.push(fields)
} }
} }
} }
......
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