From 6aa83f599b3214ce591371d1be52822a4a8509d4 Mon Sep 17 00:00:00 2001 From: aihe <961836564@qq.com> Date: Sun, 2 Jun 2024 16:37:54 +0800 Subject: [PATCH] uu --- .../bpe-gooditem-edit-tmp.vue | 34 ++++++++++-- .../bpe-gooditem-filed-edit-tmp.vue | 55 +++++++++---------- .../bpe-gooditemsize-tmp.vue | 31 ++++++++--- .../bpe-goodsize-tmp.vue | 4 +- components/tpx-input/tpx-input.vue | 13 ++++- pages/post/model.js | 3 + 6 files changed, 93 insertions(+), 47 deletions(-) diff --git a/components/buns-post-edit-templates/bpe-gooditem-edit-tmp.vue b/components/buns-post-edit-templates/bpe-gooditem-edit-tmp.vue index 2876de3..f6fdf81 100644 --- a/components/buns-post-edit-templates/bpe-gooditem-edit-tmp.vue +++ b/components/buns-post-edit-templates/bpe-gooditem-edit-tmp.vue @@ -15,23 +15,25 @@ - - {{item.goodsName}} + + + + - + - + @@ -51,6 +53,25 @@ return this.$store.getters.dicData } }, + watch: { + 'modelInfo.parcelQty': { + handler: function(newVal) { + let listQt = 0 + let maxCaIndex + this.modelInfo.cargoList.map((t, i)=> { + listQt += (+t.cargoQty) + if(typeof maxCaIndex == 'undefined' && newVal < listQt) { + maxCaIndex = i + t.cargoQty = newVal - (listQt - t.cargoQty) + } + }) + // 超出总数的 item,截取掉 + if(typeof maxCaIndex != 'undefined') { + this.modelInfo.cargoList.splice(maxCaIndex + 1, this.modelInfo.cargoList.length -1 - maxCaIndex) + } + } + } + }, props: { value: { default () { @@ -97,7 +118,8 @@ \ No newline at end of file diff --git a/components/buns-post-edit-templates/bpe-gooditemsize-tmp.vue b/components/buns-post-edit-templates/bpe-gooditemsize-tmp.vue index 026dc22..68013a8 100644 --- a/components/buns-post-edit-templates/bpe-gooditemsize-tmp.vue +++ b/components/buns-post-edit-templates/bpe-gooditemsize-tmp.vue @@ -7,13 +7,13 @@ - + - + - + @@ -38,6 +38,20 @@ get(){ return this.value } + }, + calChangeVal(){ + const { length, width, height, cargoQty } = this.modelInfo + return { + length, width, height, cargoQty + } + } + }, + watch: { + calChangeVal: { + handler: function(newVal){ + this.calculateVplume(newVal) + }, + deep: true } }, props: { @@ -61,16 +75,19 @@ }, methods: { - calculateVplume() { + calculateVplume(calVal) { setTimeout(()=> { let volume = this.modelInfo.volume - const { length, width, height } = this.modelInfo - if(length && width && height){ - volume = length/100 * width/100 * height/100 + const { length, width, height, cargoQty } = calVal + console.log("cargoQty======v", cargoQty) + if(length && width && height && cargoQty){ + volume = length/100 * width/100 * height/100 * cargoQty } if(volume && volume.toFixed) { volume = volume.toFixed(5) this.modelInfo.volume = volume + } else { + this.modelInfo.volume = 0 } }, 500); } diff --git a/components/buns-post-edit-templates/bpe-goodsize-tmp.vue b/components/buns-post-edit-templates/bpe-goodsize-tmp.vue index 40ce447..0602f82 100644 --- a/components/buns-post-edit-templates/bpe-goodsize-tmp.vue +++ b/components/buns-post-edit-templates/bpe-goodsize-tmp.vue @@ -4,7 +4,7 @@ 总件数 - + @@ -80,10 +80,8 @@ handleCargoChange(list){ let parcelQty = 0, totalVolume = 0 list.map(t=> { - parcelQty += (+t.cargoQty) || 0 totalVolume += (+t.volume) || 0 }) - this.modelInfo.parcelQty = parcelQty this.modelInfo.totalVolume = totalVolume.toFixed(5) }, async calceOther() { diff --git a/components/tpx-input/tpx-input.vue b/components/tpx-input/tpx-input.vue index 160d926..1e24545 100644 --- a/components/tpx-input/tpx-input.vue +++ b/components/tpx-input/tpx-input.vue @@ -63,6 +63,8 @@ }, _digit:{ // 保留小数位 }, + _maxNum:{ // 最大数值 + }, customStyle:{ default () { return '' @@ -98,12 +100,17 @@ this.$emit('update:value', val) }, formatter(val) { + let newVal = val if(this._digit) { let reg = new RegExp(`^\\d*(\\.?\\d{0,${this._digit}})`, 'g') - let newVal = val.match(reg)[0] - return newVal + newVal = val.match(reg)[0] } - return val + if(typeof this._maxNum != 'undefined') { + if(val > this._maxNum) { + newVal = this._maxNum + } + } + return newVal } } } diff --git a/pages/post/model.js b/pages/post/model.js index e5a0727..f89acc7 100644 --- a/pages/post/model.js +++ b/pages/post/model.js @@ -102,6 +102,9 @@ export const getOrderModels = () => { ], freight: undefined, // 计费总计 cargoList: [ // 货物列表 + { + cargoQty: 1, + } // { // goodsCode: 货物代码:eg 123, // goodsName: 货物名称,