Commit f801a9f9 authored by dragondean@qq.com's avatar dragondean@qq.com

海运非阶梯价包装类型

parent c862a18e
...@@ -161,17 +161,49 @@ ...@@ -161,17 +161,49 @@
</el-col> </el-col>
</el-row> </el-row>
</template> </template>
<template v-else> <template v-else-if="form.priceType === 1">
<sea-price <sea-price
ref="seaPrice" ref="seaPrice"
:price-type="form.priceType"
:currency-list="currencyList" :currency-list="currencyList"
:unit-list="unitList" :unit-list="unitList"
:value="form" :value="form"
:readonly="readonly" :readonly="readonly"
field-prefix="all"
:price-name="$t('全包价')"
packaging-field="fullPricePackagingList"
@changeUnit="handleFormUnitChange($event)" @changeUnit="handleFormUnitChange($event)"
></sea-price> ></sea-price>
</template> </template>
<template v-else>
<el-row :gutter="20">
<el-col :span="12">
<sea-price
ref="seaPrice"
:currency-list="currencyList"
:unit-list="unitList"
:value="form"
:readonly="readonly"
field-prefix="transport"
:price-name="$t('运费')"
packaging-field="freightPricePackagingList"
@changeUnit="handleFormUnitChange($event)"
></sea-price>
</el-col>
<el-col :span="12">
<sea-price
ref="seaPrice"
:currency-list="currencyList"
:unit-list="unitList"
:value="form"
:readonly="readonly"
field-prefix="clearance"
:price-name="$t('清关费')"
packaging-field="clearancePricePackagingList"
@changeUnit="handleFormUnitChange($event)"
></sea-price>
</el-col>
</el-row>
</template>
<el-form-item :label="$t('价格有效期')"> <el-form-item :label="$t('价格有效期')">
<el-date-picker v-model="form.validateStartDate" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="form.validateStartDate" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
...@@ -608,6 +640,15 @@ export default { ...@@ -608,6 +640,15 @@ export default {
}) })
return stepPriceList return stepPriceList
}, },
// 格式化包装类型费用
getPackingPrice(packging){
if(!packging?.length) return
packging = JSON.parse(JSON.stringify(packging))
return packging.map(item => {
item.packagingTypes = item.packagingTypes.join(",")
return item
})
},
// 非阶梯价格更新单位 // 非阶梯价格更新单位
handleFormUnitChange(data){ handleFormUnitChange(data){
// 海运非阶梯价没有重量单位,所以按照体积单位同步最小起计量单位 // 海运非阶梯价没有重量单位,所以按照体积单位同步最小起计量单位
...@@ -621,7 +662,23 @@ export default { ...@@ -621,7 +662,23 @@ export default {
}) })
} }
// TODO 等加了包装之后还需要同步包装的单位 // 同步包装的单位
let packingField = {
transportVolumeUnit: 'freightPricePackagingList',
clearanceVolumeUnit: 'clearancePricePackagingList',
allVolumeUnit: 'fullPricePackagingList'
}[data.field]
if(!this.form[packingField]?.length){
return false
}
this.form[packingField].forEach(item => {
if(data.field.indexOf("PriceUnit") > -1){
p['packagingPriceUnit'] = data.value
}
if(data.field.indexOf("VolumeUnit") > -1){
p['packagingVolumeUnit'] = data.value
}
})
}, },
initStepPrice(){ initStepPrice(){
if(this.form.priceType == 1 && !this.form.fullPriceStepList?.length){ if(this.form.priceType == 1 && !this.form.fullPriceStepList?.length){
...@@ -638,7 +695,6 @@ export default { ...@@ -638,7 +695,6 @@ export default {
}, },
// force 为是否强制提交,在价格过期的时候需要确认后强制提交 // force 为是否强制提交,在价格过期的时候需要确认后强制提交
submitForm(force = false) { submitForm(force = false) {
console.log("this.$refs[\"form\"]", this.$refs["form"])
this.$refs["form"].validate(async (valid) => { this.$refs["form"].validate(async (valid) => {
if (!valid) { if (!valid) {
return; return;
...@@ -658,7 +714,8 @@ export default { ...@@ -658,7 +714,8 @@ export default {
// specialList: this.specialProducts, // specialList: this.specialProducts,
isAllProduct: 0 isAllProduct: 0
}) })
if(this.$refs.stepPrice){ // 阶梯价
if(this.form.stepPrice){
let isValid = true let isValid = true
for (let stepPrice of this.$refs.stepPrice){ for (let stepPrice of this.$refs.stepPrice){
if(!stepPrice.validate()){ if(!stepPrice.validate()){
...@@ -667,18 +724,40 @@ export default { ...@@ -667,18 +724,40 @@ export default {
} }
} }
if(!isValid)return if(!isValid)return
}
// 全包价
if(this.form.priceType == 1) {
data.fullPriceStepList = this.getPriceList(this.form.fullPriceStepList)
delete data.clearancePriceStepList
delete data.freightPriceStepList
}else{
data.clearancePriceStepList = this.getPriceList(this.form.clearancePriceStepList)
data.freightPriceStepList = this.getPriceList(this.form.freightPriceStepList)
delete data.fullPriceStepList
}
}
//海运非阶梯价校验
else{
// 有多个组件则表示清关费 + 运费
if(this.$refs.seaPrice?.length){
let isValid = true
for (let seaPrice of this.$refs.seaPrice){
if(!seaPrice.validate()){
isValid = false
break
}
}
if(!isValid)return
}
// 只有一个海运费组件,全包价
else if(this.$refs.seaPrice && !this.$refs.seaPrice.validate()){
return
}
// 全包价 // 格式化
if(this.form.priceType == 1) { data.fullPricePackagingList = this.getPackingPrice(data.fullPricePackagingList)
data.fullPriceStepList = this.getPriceList(this.form.fullPriceStepList) data.freightPricePackagingList = this.getPackingPrice(data.freightPricePackagingList)
delete data.clearancePriceStepList data.clearancePricePackagingList = this.getPackingPrice(data.clearancePricePackagingList)
delete data.freightPriceStepList
}else{
data.clearancePriceStepList = this.getPriceList(this.form.clearancePriceStepList)
data.freightPriceStepList = this.getPriceList(this.form.freightPriceStepList)
delete data.fullPriceStepList
} }
// 设置了有效期,且已过期则给提示 // 设置了有效期,且已过期则给提示
......
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