From ed443d3ede30394bfa66039d1c7101d5cc54c54c Mon Sep 17 00:00:00 2001 From: "DESKTOP-FUS91B7\\Showeasy" Date: Sat, 25 Mar 2023 21:26:59 +0800 Subject: [PATCH] =?UTF-8?q?7=E5=85=AC=E5=99=B8=E6=8A=98=E6=89=A3=E9=9C=80?= =?UTF-8?q?=E6=B1=82=E5=AE=8C=E6=88=90=EF=BC=8C=E5=B1=95=E8=A6=BD=E5=90=8D?= =?UTF-8?q?=E7=A8=B1=E5=BF=85=E9=81=B8=E6=AC=8A=E9=99=90=E5=BE=85=E5=84=AA?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/content/selectExhibitionBooth.vue | 11 +- FrontEnd/pages/service/_id.vue | 148 ++++++++++++++++-- 2 files changed, 138 insertions(+), 21 deletions(-) diff --git a/FrontEnd/components/service/content/selectExhibitionBooth.vue b/FrontEnd/components/service/content/selectExhibitionBooth.vue index 39f2580..e989a53 100644 --- a/FrontEnd/components/service/content/selectExhibitionBooth.vue +++ b/FrontEnd/components/service/content/selectExhibitionBooth.vue @@ -46,10 +46,13 @@ export default { watch: { value: { handler: function () { - if (this.value) { - console.log(this.value); - this.$emit('booth-select', this.value); - } + // if (this.value) { + // console.log(this.value); + // this.$emit('booth-select', this.value); + // } + + this.$emit('booth-select', this.value); + }, }, }, diff --git a/FrontEnd/pages/service/_id.vue b/FrontEnd/pages/service/_id.vue index 7195e09..8b0b851 100644 --- a/FrontEnd/pages/service/_id.vue +++ b/FrontEnd/pages/service/_id.vue @@ -441,8 +441,10 @@ export default { previewFile: '', countdown: 15, rulesShow: false, - boothSelect: 0, + boothSelect: 0, serviceID: false, + stackerDiscountQuota: 0, + stackerDiscountQuotaUsed: 0, }; }, async created() { @@ -484,6 +486,8 @@ export default { this.$nextTick(()=>{ this.isLoading = false; }); + + // this.discount(); }, mounted() { let vm = this; @@ -671,6 +675,9 @@ export default { .then((response) => { if(response && response.data && response.data.DATA && response.data.DATA.rel){ let data = response.data.DATA.rel + + console.log('getExhibitions: ', data) + if(data.length>0){ this.selectExhibitionList = data.map((item) => { return { @@ -690,6 +697,9 @@ export default { .then((response) => { if(response && response.data && response.data.DATA && response.data.DATA.rel){ let data = response.data.DATA.rel + + console.log('getServiceItems: ', data) + if(data.length>0){ this.typeGroupList = data.map((item) => { if(item.ItemType=="02"){ @@ -722,6 +732,9 @@ export default { .then((response) => { if(response && response.data && response.data.DATA && response.data.DATA.rel){ let data = response.data.DATA.rel + + console.log('getPackages: ', data) + if(data.length>0){ this.selectPackageList = data.map((item) => { return { @@ -740,6 +753,9 @@ export default { .then((response) => { if(response && response.data && response.data.DATA && response.data.DATA.rel){ let data = response.data.DATA.rel + + console.log('getQuantitySelects: ', data) + if(data.length>0){ this.quantitySelectList = data; } @@ -772,7 +788,7 @@ export default { if(response && response.data && response.data.DATA && response.data.DATA.rel){ let data = response.data.DATA.rel - console.log(data) + console.log('getServiceData: ', data) if(data){ this.content.name = data.ServiceName; @@ -819,6 +835,11 @@ export default { //攤位數量 getBoothSelect(value){ this.boothSelect = value; + + this.setStackerDiscountQuota(); + + this.ChangeCosts(null); + }, //抓卡車相關數據 async getInfoItem() { @@ -828,7 +849,7 @@ export default { if(response && response.data && response.data.DATA && response.data.DATA.rel){ let data = response.data.DATA.rel - console.log(data); + console.log('getInfoItem: ', data); if(data.length>0){ this.expenseRules = data; @@ -914,7 +935,7 @@ export default { } } } - // let pickupServiceData = this.$refs.ref_pickupService.formData; + // let pickupServiceData = this.$refs. ref_pickupService.formData; if(this.rulesShow){ this.ChangeCosts(null); return false; @@ -964,11 +985,14 @@ export default { this.$refs.ref_quantitySelectGroup.clearAll(); } }, - //展館服務(包裝、尺寸、數量、服務類型) + //展館服務(包裝、尺寸、數量、服務類型) //加總金額 ChangeCosts(data){ let totalPrice = 0; this.totalPrice = 0; this.rulesShow = false; + + this.stackerDiscountQuotaUsed = 0; + // let selectExhibitionData = this.$refs.ref_selectExhibition.formData; let selectExhibitionServiceData = []; if(this.selectExhibitionServiceList.length>0){ @@ -981,22 +1005,37 @@ export default { } } if(selectExhibitionServiceData.length>0){ + + + // sort by serviceData weight + selectExhibitionServiceData = selectExhibitionServiceData.sort(function(serviceDataA, serviceDataB) { + + return serviceDataB.weight - serviceDataA.weight; + + }); + + console.table(selectExhibitionServiceData) + for(let i=0;i0){ - for(let j=0;j0){ + for(let j=0;j { + + if(rule.ItemType === "01" && rule.BoothNo > 0) { + + this.stackerDiscountQuota = this.boothSelect / rule.BoothNo * rule.ItemNo; + + } + + }); + + } + + }, + // 7公噸以下優惠折扣 + stackerDiscount(quantity, formData, serviceType) { + + this.expenseRules.forEach( rule => { + + if(rule.PreferentialScheme === "1") { + + // check if serviceType is null + if (serviceType && serviceType.itemType) { + + if (serviceType.itemType == rule.ItemType) { + + if(formData.weight <= rule.TonNo) { + + // if stacker discount still has quota + let quotaLeft = this.stackerDiscountQuota - this.stackerDiscountQuotaUsed; + + for (let i = 0; i < quotaLeft; i++) { + + if (quantity > 0) { + + quantity -= 1; + this.stackerDiscountQuotaUsed += 1; + + } + + } + + } + + } + + } + + } + + }) + + return quantity; + + }, + // 堆高機 stackerCostRules(data1,data2){ - //這邊這邊是這個 - console.log('expenseRules', this.expenseRules); + console.log('堆高機func: ', data1); + console.log('堆高機func: ', data2); + console.log('expenseRules: ', this.expenseRules); let price = 0; let tmpWeight = 0;//Number(data1.weight)/1000; @@ -1059,7 +1161,7 @@ export default { for(let i=0;i0){ for(let j=0;j