fix: 优化商品编辑
This commit is contained in:
parent
1a56534d28
commit
9a7aee7e97
@ -203,6 +203,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<AutoComplete ref="input" v-model="val.value"
|
<AutoComplete ref="input" v-model="val.value"
|
||||||
|
:disabled="containsSameSkuItem"
|
||||||
:filter-method="filterMethod"
|
:filter-method="filterMethod"
|
||||||
:maxlength="30" placeholder="请输入规格值" style="width: 180px"
|
:maxlength="30" placeholder="请输入规格值" style="width: 180px"
|
||||||
@on-focus="changeSkuVals(val, item.name)"
|
@on-focus="changeSkuVals(val, item.name)"
|
||||||
@ -257,6 +258,7 @@
|
|||||||
|
|
||||||
<FormItem v-if="item.spec_values.length < 10 && item.spec_values.length >= 1 && item.spec_values[0].value !== ''" class="sku-item-content-val flex" label="" style="line-height: 32px;">
|
<FormItem v-if="item.spec_values.length < 10 && item.spec_values.length >= 1 && item.spec_values[0].value !== ''" class="sku-item-content-val flex" label="" style="line-height: 32px;">
|
||||||
<AutoComplete ref="input" v-model="newSkuValues[$index]"
|
<AutoComplete ref="input" v-model="newSkuValues[$index]"
|
||||||
|
:disabled="containsSameSkuItem"
|
||||||
:filter-method="filterMethod"
|
:filter-method="filterMethod"
|
||||||
:maxlength="30" placeholder="自定义规格值" style="width: 180px"
|
:maxlength="30" placeholder="自定义规格值" style="width: 180px"
|
||||||
@on-blur="addSpec($index, item)"
|
@on-blur="addSpec($index, item)"
|
||||||
@ -630,6 +632,10 @@ export default {
|
|||||||
skuTableColumn: [],
|
skuTableColumn: [],
|
||||||
/** 表格数据 */
|
/** 表格数据 */
|
||||||
skuTableData: [],
|
skuTableData: [],
|
||||||
|
// 持久化的sku数据
|
||||||
|
skuTableDataCopy: [],
|
||||||
|
// 持久化的sku数据
|
||||||
|
skuInfoCopy: [],
|
||||||
/** 默认的规格参数 */
|
/** 默认的规格参数 */
|
||||||
skuData: [],
|
skuData: [],
|
||||||
/** 默认的规格值 */
|
/** 默认的规格值 */
|
||||||
@ -671,6 +677,9 @@ export default {
|
|||||||
shopCategory: [],
|
shopCategory: [],
|
||||||
/** 商品单位列表 */
|
/** 商品单位列表 */
|
||||||
goodsUnitList: [],
|
goodsUnitList: [],
|
||||||
|
containsSameSkuItem: false,
|
||||||
|
containsSameSkuValue: false,
|
||||||
|
containsSameSkuNewValue: false,
|
||||||
// 展示商品视频
|
// 展示商品视频
|
||||||
showGoodsVideo: false,
|
showGoodsVideo: false,
|
||||||
ignoreColumn: [
|
ignoreColumn: [
|
||||||
@ -1246,6 +1255,14 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 添加规格项 */
|
/** 添加规格项 */
|
||||||
addSkuItem() {
|
addSkuItem() {
|
||||||
|
if (this.containsSameSkuItem) {
|
||||||
|
this.$Message.error("存在重复规格项!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.containsSameSkuValue) {
|
||||||
|
this.$Message.error("存在重复规格值!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.skuInfo.length >= 5) {
|
if (this.skuInfo.length >= 5) {
|
||||||
this.$Message.error("规格项不能大于5个!");
|
this.$Message.error("规格项不能大于5个!");
|
||||||
return;
|
return;
|
||||||
@ -1269,8 +1286,10 @@ export default {
|
|||||||
editSkuItem(val, index, item) {
|
editSkuItem(val, index, item) {
|
||||||
if (this.skuTableData.find((i) => i[val])) {
|
if (this.skuTableData.find((i) => i[val])) {
|
||||||
this.$Message.error("已存在相同规格项!");
|
this.$Message.error("已存在相同规格项!");
|
||||||
|
this.containsSameSkuItem = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this.containsSameSkuItem = false;
|
||||||
if (this.zz(0, val) > 20) {
|
if (this.zz(0, val) > 20) {
|
||||||
this.$Message.error("规格值最多十个字符长度!");
|
this.$Message.error("规格值最多十个字符长度!");
|
||||||
// val = val.toString().slice(0, 4);
|
// val = val.toString().slice(0, 4);
|
||||||
@ -1322,8 +1341,13 @@ export default {
|
|||||||
skuValueChange(val, index, item, $index) {
|
skuValueChange(val, index, item, $index) {
|
||||||
if (this.skuTableData.find((i) => i[val.name] === val.value)) {
|
if (this.skuTableData.find((i) => i[val.name] === val.value)) {
|
||||||
this.$Message.error("已存在相同规格值!");
|
this.$Message.error("已存在相同规格值!");
|
||||||
|
|
||||||
|
this.skuInfo = cloneObj(this.skuInfoCopy);
|
||||||
|
this.skuTableData = cloneObj(this.skuTableDataCopy);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.containsSameSkuValue = false;
|
||||||
if (val.value === '') {
|
if (val.value === '') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1343,6 +1367,8 @@ export default {
|
|||||||
return e;
|
return e;
|
||||||
});
|
});
|
||||||
this.currentSkuVal = val.value;
|
this.currentSkuVal = val.value;
|
||||||
|
this.skuTableDataCopy = cloneObj(this.skuTableData);
|
||||||
|
this.skuInfoCopy = cloneObj(this.skuInfo);
|
||||||
this.renderTableData(this.skuTableData);
|
this.renderTableData(this.skuTableData);
|
||||||
},
|
},
|
||||||
// 获取焦点时,取得规格名对应的规格值
|
// 获取焦点时,取得规格名对应的规格值
|
||||||
@ -1366,6 +1392,12 @@ export default {
|
|||||||
(e) => e[spec.name] !== this.lastEditSkuValue
|
(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) {
|
handleCloseSkuItem($index, item) {
|
||||||
@ -1456,6 +1488,21 @@ export default {
|
|||||||
this.$Message.error("请输入规格值");
|
this.$Message.error("请输入规格值");
|
||||||
return;
|
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 (this.validateEmpty(item.spec_values)) {
|
||||||
if (item.spec_values.length >= 10) {
|
if (item.spec_values.length >= 10) {
|
||||||
this.$Message.error("规格值不能大于10个!");
|
this.$Message.error("规格值不能大于10个!");
|
||||||
@ -1514,6 +1561,9 @@ export default {
|
|||||||
}
|
}
|
||||||
this.baseInfoForm.regeneratorSkuFlag = true;
|
this.baseInfoForm.regeneratorSkuFlag = true;
|
||||||
this.newSkuValues[$index] = "";
|
this.newSkuValues[$index] = "";
|
||||||
|
|
||||||
|
this.skuTableDataCopy = cloneObj(this.skuTableData);
|
||||||
|
this.skuInfoCopy = cloneObj(this.skuInfo);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleClearSku() {
|
handleClearSku() {
|
||||||
@ -1780,6 +1830,14 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 添加商品 **/
|
/** 添加商品 **/
|
||||||
save() {
|
save() {
|
||||||
|
if (this.containsSameSkuItem) {
|
||||||
|
this.$Message.error("存在重复规格项!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.containsSameSkuValue) {
|
||||||
|
this.$Message.error("存在重复规格值!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.submitLoading = true;
|
this.submitLoading = true;
|
||||||
this.$refs["baseInfoForm"].validate((valid) => {
|
this.$refs["baseInfoForm"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user