diff --git a/src/components/shop-cloud/shop-cloud-new.vue b/src/components/shop-cloud/shop-cloud-new.vue index c839e1716c5b6d146de461c3209b3d503556b436..4c8e5f689488489482eda57c593dd77eb6610e7a 100644 --- a/src/components/shop-cloud/shop-cloud-new.vue +++ b/src/components/shop-cloud/shop-cloud-new.vue @@ -1030,7 +1030,7 @@ export default { let sumCM = 0; let sumDisk = 0; let a_deductions = 0; - let arrJifei = JSON.parse(JSON.stringify(this.jifeiList1)); + let arrJifei = JSON.parse(JSON.stringify(this.jifeiList)); if (this.activeName == "0") { a_deductions = this.deductions; if (this.cpu_memory && this.cpu_memory.length != 0) { @@ -1101,77 +1101,255 @@ export default { this.formNew.appDuration >= 1 ? this.formNew.appDuration : 0 }个月`; } else if (this.activeName == "1") { + let nochangeCM = false, + nochangeRQ = false; + let diffDay = helper.getTwoTimesDiff(this.paramsOld.cloud_end_time); a_deductions = this.deductions; - if (this.cpu_memory && this.cpu_memory.length != 0) { - if (this.formOld.cpu == "8") { - if (this.formOld.memory == "16") { - let priceObj = this.cpu_memory.find((item) => { - return item.cpu == 8 && item.memory == 16; - }); - this.eci_single_money = Number(priceObj.price); - sumCM += Number(priceObj.price); - } else if (this.formOld.memory == "32") { - let priceObj = this.cpu_memory.find((item) => { - return item.cpu == 8 && item.memory == 32; - }); - this.eci_single_money = Number(priceObj.price); - sumCM += Number(priceObj.price); - } - } else if (this.formOld.cpu == "16") { - if (this.formOld.memory == "32") { - let priceObj = this.cpu_memory.find((item) => { - return item.cpu == 16 && item.memory == 32; - }); - this.eci_single_money = Number(priceObj.price); - sumCM += Number(priceObj.price); - } else if (this.formOld.memory == "64") { - let priceObj = this.cpu_memory.find((item) => { - return item.cpu == 16 && item.memory == 64; - }); - this.eci_single_money = Number(priceObj.price); - sumCM += Number(priceObj.price); - } + if ( + (this.formOld.cpu == "" && this.formOld.memory == "") || + (this.formOld.cpu == this.paramsOld.cpu && + this.formOld.memory == this.paramsOld.memory) || + (this.formOld.cpu == "" && + this.formOld.memory == this.paramsOld.memory) || + (this.formOld.cpu == this.paramsOld.cpu && this.formOld.memory == "") + ) { + console.log("noCMchange"); + // 没变 + nochangeCM = true; + if (this.formOld.appDuration != 0) { + // 续期 + let cpu0 = this.paramsOld.cpu; + let memory0 = this.paramsOld.memory; + let priceObj = this.cpu_memory.find((item) => { + return item.cpu == cpu0 && item.memory == memory0; + }); + this.eci_single_money = Number(priceObj.price); + sumCM += Number(priceObj.price); + sumCM = sumCM * this.formOld.appDuration; + } else { + // 不续期 + sumCM = 0; } + arrJifei[0].num = `${ + this.formOld.cpu && this.formOld.cpu > 0 + ? this.formOld.cpu + : this.paramsOld.cpu + }核+${ + this.formOld.memory && this.formOld.memory > 0 + ? this.formOld.memory + : this.paramsOld.memory + }G`; + arrJifei[0].time = `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月" + : "" + }`; + arrJifei[0].sum = `${sumCM}金币`; + arrJifei[1].num = `${ + this.formOld.containerGroup && this.formOld.containerGroup > 0 + ? this.formOld.containerGroup + : this.paramsOld.containers + }个`; + arrJifei[1].time = `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月" + : "" + }`; + } else if ( + this.formOld.cpu != "" && + this.formOld.memory != "" && + (this.formOld.cpu < this.paramsOld.cpu || + this.formOld.memory < this.paramsOld.memory) + ) { + console.log("-CM"); + // 减配置 + if (this.formOld.appDuration != 0) { + // 续期 + let cpu0 = this.formOld.cpu; + let memory0 = this.formOld.memory; + let priceObj = this.cpu_memory.find((item) => { + return item.cpu == cpu0 && item.memory == memory0; + }); + this.eci_single_money = Number(priceObj.price); + sumCM += Number(priceObj.price); + sumCM = + (sumCM * (Number(this.formOld.appDuration) * 30 + diffDay)) / 30; + arrJifei[0].num = `${ + this.formOld.cpu && this.formOld.cpu > 0 + ? this.formOld.cpu + : this.paramsOld.cpu + }核+${ + this.formOld.memory && this.formOld.memory > 0 + ? this.formOld.memory + : this.paramsOld.memory + }G`; + arrJifei[0].time = `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月续期+剩余" + : "" + }${diffDay}天`; + arrJifei[0].sum = `${sumCM}金币`; + arrJifei[1].num = `${ + this.formOld.containerGroup && this.formOld.containerGroup > 0 + ? this.formOld.containerGroup + : this.paramsOld.containers + }个`; + arrJifei[1].time = `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月续期+剩余" + : "" + }${diffDay}天`; + } else { + // 不续期 + sumCM = 0; + } + } else { + // 加配置 + console.log("+CM"); + if (this.cpu_memory && this.cpu_memory.length != 0) { + console.log(this.formOld.cpu, this.formOld.memory); + let cpu0 = this.formOld.cpu || this.paramsOld.cpu; + let memory0 = this.formOld.memory || this.paramsOld.memory; + let priceObj = this.cpu_memory.find((item) => { + return item.cpu == cpu0 && item.memory == memory0; + }); + this.eci_single_money = Number(priceObj.price); + sumCM += Number(priceObj.price); + } + sumCM = + (sumCM * (Number(this.formOld.appDuration) * 30 + diffDay)) / 30; + arrJifei[0].num = `${ + this.formOld.cpu && this.formOld.cpu > 0 + ? this.formOld.cpu + : this.paramsOld.cpu + }核+${ + this.formOld.memory && this.formOld.memory > 0 + ? this.formOld.memory + : this.paramsOld.memory + }G`; + arrJifei[0].time = `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月续期+剩余" + : "" + }${diffDay}天`; + arrJifei[0].sum = `${sumCM}金币`; + arrJifei[1].num = `${ + this.formOld.containerGroup && this.formOld.containerGroup > 0 + ? this.formOld.containerGroup + : this.paramsOld.containers + }个`; + arrJifei[1].time = `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月续期+剩余" + : "" + }${diffDay}天`; } - sumCM = sumCM * Number(this.formOld.appDuration); + let nowHasCap = this.dataDiskList.reduce( + (sum, e) => sum + e.disk_cap, + 0 + ); if ( this.formOld.dataDisk >= 0 && this.formOld.perDataDisk >= 0 && this.formOld.appDuration >= 0 ) { + // 加D,续期 if (this.hard_disk && this.hard_disk.length != 0) { this.disk_single_money = Number(this.hard_disk[0].price); - sumDisk += - Number(this.formOld.dataDisk) * - Number(this.formOld.perDataDisk) * - Number(this.formOld.appDuration) * - Number(this.hard_disk[0].price); + sumDisk += Number( + ( + ((Number(this.formOld.dataDisk) * + Number(this.formOld.perDataDisk) + + nowHasCap) * + Number(Number(this.formOld.appDuration) * 30 + diffDay) * + Number(this.hard_disk[0].price)) / + 30 + ).toFixed(2) + ); } arrJifei[2] = { name: "数据盘", - num: `${this.formOld.dataDisk}个数据盘,每个数据盘${this.formOld.perDataDisk}GB`, - time: `${this.formOld.appDuration}个月`, + num: `增加${this.formOld.dataDisk}个数据盘,每个数据盘${ + this.formOld.perDataDisk + }GB${ + nowHasCap == 0 ? "" : ",原有数据盘共计剩余" + nowHasCap + "GB" + }`, + time: `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月续期+剩余" + : "" + }${diffDay}天`, sum: `${sumDisk}金币`, }; } else { - arrJifei.splice(2); + // 不加D,续期 + if (this.formOld.appDuration != 0) { + if (delCap != 0) { + if (this.hard_disk && this.hard_disk.length != 0) { + this.disk_single_money = Number(this.hard_disk[0].price); + sumDisk += Number( + ( + nowHasCap * + Number(this.formOld.appDuration) * + Number(this.hard_disk[0].price) + ).toFixed(2) + ); + } + arrJifei[2] = { + name: "数据盘", + num: `原有数据盘共计剩余${nowHasCap}GB`, + time: `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月续期+剩余" + : "" + }${diffDay}天`, + sum: `${sumDisk}金币`, + }; + } else { + // not Del + if (this.hard_disk && this.hard_disk.length != 0) { + this.disk_single_money = Number(this.hard_disk[0].price); + sumDisk += Number( + ( + nowHasCap * + Number(this.formOld.appDuration) * + Number(this.hard_disk[0].price) + ).toFixed(2) + ); + } + arrJifei[2] = { + name: "数据盘", + num: `原有数据盘共计${nowHasCap}GB`, + time: `${ + this.formOld.appDuration >= 1 + ? this.formOld.appDuration + "个月" + : "" + }`, + sum: `${sumDisk}金币`, + }; + } + } else { + // 不加D,不续期 + sumDisk = 0; + arrJifei.splice(2); + } + } + if ( + !this.formOld.containerGroup || + this.formOld.containerGroup == "" || + this.formOld.containerGroup == this.paramsOld.containers + ) { + nochangeRQ = true; + } + if (nochangeRQ && this.formOld.appDuration == 0) { + arrJifei.splice(1, 1); + } + if (nochangeCM && this.formOld.appDuration == 0) { + arrJifei.splice(0, 1); } - arrJifei[0].num = `${this.formOld.cpu >= 1 ? this.formOld.cpu : 0}核+${ - this.formOld.memory >= 1 ? this.formOld.memory : 0 - }G`; - arrJifei[0].time = `${ - this.formOld.appDuration >= 1 ? this.formOld.appDuration : 0 - }个月`; - arrJifei[0].sum = `${sumCM}金币`; - arrJifei[1].num = `${ - this.formOld.containerGroup >= 1 ? this.formOld.containerGroup : 0 - }个`; - arrJifei[1].time = `${ - this.formOld.appDuration >= 1 ? this.formOld.appDuration : 0 - }个月`; } this.jifeiList1 = arrJifei; - // console.log(sumCM, sumDisk) + console.log(sumCM, sumDisk); this.amounts_payable = Number( (Number(sumCM) + Number(sumDisk)).toFixed(2) ); @@ -1330,7 +1508,10 @@ export default { { value: "8", label: "8" }, { value: "16", label: "16" }, ], - optionsRAM: [], + optionsRAM: [ + { value: "16", label: "16" }, + { value: "32", label: "32" }, + ], options_store_type: [ { value: "nfs-client", label: "nfs-client" }, { value: "rook-ceph-block", label: "rook-ceph-block" }, @@ -1380,27 +1561,27 @@ export default { workplacedesc: [ { required: true, message: "请输入描述信息", trigger: "blur" }, ], - cpu: [ - { required: true, message: "请选择CPU使用量", trigger: "change" }, - ], - memory: [ - { required: true, message: "请选择内存使用量", trigger: "change" }, - ], - containerGroup: [ - { required: true, message: "请输入容器组规格", trigger: "blur" }, - ], - perCPUs: [ - { required: true, message: "请输入CPU最大使用量", trigger: "blur" }, - ], - perCPU: [ - { required: true, message: "请输入CPU默认使用量", trigger: "blur" }, - ], - perRAMs: [ - { required: true, message: "请输入内存最大使用量", trigger: "blur" }, - ], - perRAM: [ - { required: true, message: "请输入内存默认使用量", trigger: "blur" }, - ], + // cpu: [ + // { required: true, message: "请选择CPU使用量", trigger: "change" }, + // ], + // memory: [ + // { required: true, message: "请选择内存使用量", trigger: "change" }, + // ], + // containerGroup: [ + // { required: true, message: "请输入容器组规格", trigger: "blur" }, + // ], + // perCPUs: [ + // { required: true, message: "请输入CPU最大使用量", trigger: "blur" }, + // ], + // perCPU: [ + // { required: true, message: "请输入CPU默认使用量", trigger: "blur" }, + // ], + // perRAMs: [ + // { required: true, message: "请输入内存最大使用量", trigger: "blur" }, + // ], + // perRAM: [ + // { required: true, message: "请输入内存默认使用量", trigger: "blur" }, + // ], }, dialogVisible: false, diaForm: {}, @@ -1484,6 +1665,11 @@ export default { }, }, ], + jifeiList: [ + { name: "CPU+内存", num: "0核+0G", time: "0个月", sum: "0金币" }, + { name: "容器组", num: "0个", time: "0个月", sum: "-" }, + // { name: "数据盘", num: "0个数据盘,每个数据盘0GB", time: "0个月", sum: "2000金币" }, + ], jifeiList1: [ { name: "CPU+内存", num: "0核+0G", time: "0个月", sum: "0金币" }, { name: "容器组", num: "0个", time: "0个月", sum: "-" }, @@ -1553,6 +1739,17 @@ export default { this.dataDiskList.forEach((item, index) => { item.name = `磁盘${index + 1}`; }); + if (this.paramsOld.cpu == "16") { + this.optionsRAM = [ + { value: "32", label: "32" }, + { value: "64", label: "64" }, + ]; + } else { + this.optionsRAM = [ + { value: "16", label: "16" }, + { value: "32", label: "32" }, + ]; + } this.form.link_man = paramsOld.apply_connect_username; this.form.phone = paramsOld.apply_connect_mobile; this.formShow = true; @@ -1634,6 +1831,17 @@ export default { sum: "0金币", }, ]; + if (this.paramsOld.cpu == "16") { + this.optionsRAM = [ + { value: "32", label: "32" }, + { value: "64", label: "64" }, + ]; + } else { + this.optionsRAM = [ + { value: "16", label: "16" }, + { value: "32", label: "32" }, + ]; + } } else { this.formShow = false; } @@ -1654,9 +1862,72 @@ export default { } else if (this.activeName == 1) { this.$refs["formOld"].validate((valid) => { if (valid) { - formParams = this.formOld; - this.dialogVisible = true; - this.diaForm = Object.assign(formParams, this.form); + // console.log( + // this.formOld.cpu, + // this.formOld.memory, + // this.formOld.containerGroup, + // this.formOld.dataDisk, + // this.formOld.perDataDisk, + // this.formOld.appDuration + // ); + if ( + (this.formOld.cpu && + this.formOld.cpu != "" && + this.formOld.cpu != this.paramsOld.cpu) || + (this.formOld.memory && + this.formOld.memory != "" && + this.formOld.memory != this.paramsOld.memory) || + (this.formOld.containerGroup && + this.formOld.containerGroup != 0 && + this.formOld.containerGroup != this.paramsOld.containers) || + (this.formOld.dataDisk && this.formOld.dataDisk != 0) || + (this.formOld.perDataDisk && this.formOld.perDataDisk != 0) || + (this.formOld.appDuration && this.formOld.appDuration != 0) || + (this.formOld.perCPUs && + this.formOld.perCPUs != 0 && + this.formOld.perCPUs != this.paramsOld.one_cpu_max) || + (this.formOld.perCPU && + this.formOld.perCPU != 0 && + this.formOld.perCPU != this.paramsOld.one_cpu_min) || + (this.formOld.perRAMs && + this.formOld.perRAMs != 0 && + this.formOld.perRAMs != this.paramsOld.one_memory_max) || + (this.formOld.perRAM && + this.formOld.perRAM != 0 && + this.formOld.perRAM != this.paramsOld.one_memory_min) + ) { + formParams = JSON.parse(JSON.stringify(this.formOld)); + console.log(formParams); + this.dialogVisible = true; + this.diaForm = Object.assign(formParams, this.form); + if (!this.diaForm.cpu) { + this.diaForm.cpu = this.paramsOld.cpu; + } + if (!this.diaForm.memory) { + this.diaForm.memory = this.paramsOld.memory; + } + if (!this.diaForm.containerGroup) { + this.diaForm.containerGroup = this.paramsOld.containers; + } + if (!this.diaForm.perCPUs) { + this.diaForm.perCPUs = this.paramsOld.one_cpu_max; + } + if (!this.diaForm.perCPU) { + this.diaForm.perCPU = this.paramsOld.one_cpu_min; + } + if (!this.diaForm.perRAMs) { + this.diaForm.perRAMs = this.paramsOld.one_memory_max; + } + if (!this.diaForm.perRAM) { + this.diaForm.perRAM = this.paramsOld.one_memory_min; + } + // console.log(this.diaForm) + } else { + this.$message({ + message: `请调整工作区域后再提交`, + type: "error", + }); + } } else { console.log("error submit!!"); return false; @@ -1746,17 +2017,53 @@ export default { resource_id: this.workSpaceId, resource_apply: { apply_file: this.formOld.apply_file, - cpu: Number(this.formOld.cpu), + cpu: Number( + this.formOld.cpu && + this.formOld.cpu != "" && + this.formOld.cpu != 0 + ? this.formOld.cpu + : this.paramsOld.cpu + ), duration: this.formOld.appDuration, duration_unit: Number(this.formOld.durType), apply_connect_username: this.form.link_man, apply_connect_mobile: this.form.phone, - memory: Number(this.formOld.memory), - containers: this.formOld.containerGroup, - one_cpu_min: this.formOld.perCPU ? this.formOld.perCPU : 0, - one_cpu_max: this.formOld.perCPUs ? this.formOld.perCPUs : 0, - one_memory_min: this.formOld.perRAM ? this.formOld.perRAM : 0, - one_memory_max: this.formOld.perRAMs ? this.formOld.perRAMs : 0, + memory: Number( + this.formOld.memory && + this.formOld.memory != "" && + this.formOld.memory != 0 + ? this.formOld.memory + : this.paramsOld.memory + ), + containers: + this.formOld.containerGroup != "" && + this.formOld.containerGroup != 0 + ? this.formOld.containerGroup + : this.paramsOld.containers, + one_cpu_min: + this.formOld.perCPU && + this.formOld.perCPU != "" && + this.formOld.perCPU != 0 + ? this.formOld.perCPU + : this.paramsOld.one_cpu_min, + one_cpu_max: + this.formOld.perCPUs && + this.formOld.perCPUs != "" && + this.formOld.perCPUs != 0 + ? this.formOld.perCPUs + : this.paramsOld.one_cpu_max, + one_memory_min: + this.formOld.perRAM && + this.formOld.perRAM != "" && + this.formOld.perRAM != 0 + ? this.formOld.perRAM + : this.paramsOld.one_memory_min, + one_memory_max: + this.formOld.perRAMs && + this.formOld.perRAMs != "" && + this.formOld.perRAMs != 0 + ? this.formOld.perRAMs + : this.paramsOld.one_memory_max, }, disks: [ { @@ -1834,15 +2141,15 @@ export default { changeCPU(val) { this.formOld.memory = ""; this.formNew.memory = ""; - if (val == "8") { + if (val == "16") { this.optionsRAM = [ - { value: "16", label: "16" }, { value: "32", label: "32" }, + { value: "64", label: "64" }, ]; - } else if (val == "16") { + } else { this.optionsRAM = [ + { value: "16", label: "16" }, { value: "32", label: "32" }, - { value: "64", label: "64" }, ]; } }, diff --git a/src/components/shopping-cart/shopping-cart-cell.vue b/src/components/shopping-cart/shopping-cart-cell.vue index cc2ccf8eae9d3c524d3bf12e6de502b699253d57..97ea9942d8ec4eeb82a906dee6b7740f837da9e2 100644 --- a/src/components/shopping-cart/shopping-cart-cell.vue +++ b/src/components/shopping-cart/shopping-cart-cell.vue @@ -339,12 +339,12 @@ export default { }, changeSubscription(val) { this.changeCellItem(); - this.updateShoppingCart(); }, changeNum(val) { this.changeCellItem(); }, changeCellItem() { + this.updateShoppingCart(); this.$emit("changeCellMsg", { index: this.cellIndex, data: this.cellItems, diff --git a/src/pages/workbench/yygl/app_detail.vue b/src/pages/workbench/yygl/app_detail.vue index 685a3e9965ee307ad0b69c7278fbf987847a82eb..eb62503e9b451da6c414d866bf623648f7860cb7 100644 --- a/src/pages/workbench/yygl/app_detail.vue +++ b/src/pages/workbench/yygl/app_detail.vue @@ -999,7 +999,7 @@ export default { } if (val.yydetail == "申请上架" || val.yydetail == "申请上架d") { this.tipsOptions.message = - "申请下架应用需要向组织管理员发送通知,组织管理员通过上架请求后该应用将在应用商店上架。"; + "申请上架应用需要向组织管理员发送通知,组织管理员通过上架请求后该应用将在应用商店上架。"; this.tipsOptions.btnSubmitText = "确认"; } this.tipsOptions.confirmSubmit = () => { diff --git a/src/services/helper.js b/src/services/helper.js index 43b5f04090eea6b88639a72b44e5ee07c094cdac..5b100000fe90e238d9c9bff65ede06a77981d5e6 100644 --- a/src/services/helper.js +++ b/src/services/helper.js @@ -97,4 +97,24 @@ module.exports.getQueryString = function (name, url) { } } return theRequest[name]; +} + +module.exports.getTwoTimesDiff = function (time) {//di作为一个变量传进来 + //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 + var dateEnd = new Date(time);//使用new Date + var dateBegin = new Date();//获取当前时间 + var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数 + var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数 + // var leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数 + // var hours=Math.floor(leave1/(3600*1000))//计算出小时数 + // //计算相差分钟数 + // var leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数 + // var minutes=Math.floor(leave2/(60*1000))//计算相差分钟数 + // //计算相差秒数 + // var leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数 + // var seconds=Math.round(leave3/1000) + // console.log(" 相差 "+dayDiff+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒") + // console.log(dateDiff+"时间差的毫秒数",dayDiff+"计算出相差天数",leave1+"计算天数后剩余的毫秒数" + // ,hours+"计算出小时数",minutes+"计算相差分钟数",seconds+"计算相差秒数"); + return dayDiff; } \ No newline at end of file