diff --git a/seller/src/views/goods/goods-seller/goodsOperationSec.vue b/seller/src/views/goods/goods-seller/goodsOperationSec.vue index 0965954f..347f3bb8 100644 --- a/seller/src/views/goods/goods-seller/goodsOperationSec.vue +++ b/seller/src/views/goods/goods-seller/goodsOperationSec.vue @@ -203,6 +203,7 @@ = 5) { this.$Message.error("规格项不能大于5个!"); return; @@ -1269,8 +1286,10 @@ export default { editSkuItem(val, index, item) { if (this.skuTableData.find((i) => i[val])) { this.$Message.error("已存在相同规格项!"); + this.containsSameSkuItem = true; return; } + this.containsSameSkuItem = false; if (this.zz(0, val) > 20) { this.$Message.error("规格值最多十个字符长度!"); // val = val.toString().slice(0, 4); @@ -1322,8 +1341,13 @@ export default { skuValueChange(val, index, item, $index) { if (this.skuTableData.find((i) => i[val.name] === val.value)) { this.$Message.error("已存在相同规格值!"); + + this.skuInfo = cloneObj(this.skuInfoCopy); + this.skuTableData = cloneObj(this.skuTableDataCopy); return; } + + this.containsSameSkuValue = false; if (val.value === '') { return; } @@ -1343,6 +1367,8 @@ export default { return e; }); this.currentSkuVal = val.value; + this.skuTableDataCopy = cloneObj(this.skuTableData); + this.skuInfoCopy = cloneObj(this.skuInfo); this.renderTableData(this.skuTableData); }, // 获取焦点时,取得规格名对应的规格值 @@ -1366,6 +1392,12 @@ export default { (e) => e[spec.name] !== this.lastEditSkuValue ); } + + // 判断是否存在重复规格值 + if(!this.skuTableData.find((i) => i[val.name] === val.value)) { + this.skuTableDataCopy = cloneObj(this.skuTableData); + this.skuInfoCopy = cloneObj(this.skuInfo); + } }, /** 移除当前规格项 进行数据变化*/ handleCloseSkuItem($index, item) { @@ -1456,6 +1488,21 @@ export default { this.$Message.error("请输入规格值"); return; } + + if (this.containsSameSkuItem) { + this.$Message.error("存在重复规格项!"); + return; + } + + if (item.spec_values.find((i) => i.value === this.newSkuValues[$index])) { + this.newSkuValues[$index] = ""; + this.skuInfo = cloneObj(this.skuInfoCopy); + this.skuTableData = cloneObj(this.skuTableDataCopy); + this.$Message.error("存在重复规格值!"); + this.containsSameSkuNewValue = true; + return; + } + if (this.validateEmpty(item.spec_values)) { if (item.spec_values.length >= 10) { this.$Message.error("规格值不能大于10个!"); @@ -1514,6 +1561,9 @@ export default { } this.baseInfoForm.regeneratorSkuFlag = true; this.newSkuValues[$index] = ""; + + this.skuTableDataCopy = cloneObj(this.skuTableData); + this.skuInfoCopy = cloneObj(this.skuInfo); } }, handleClearSku() { @@ -1780,6 +1830,14 @@ export default { }, /** 添加商品 **/ save() { + if (this.containsSameSkuItem) { + this.$Message.error("存在重复规格项!"); + return; + } + if (this.containsSameSkuValue) { + this.$Message.error("存在重复规格值!"); + return; + } this.submitLoading = true; this.$refs["baseInfoForm"].validate((valid) => { if (valid) {