|
@@ -100,6 +100,11 @@
|
|
style="margin-top: 20px"
|
|
style="margin-top: 20px"
|
|
@click="handleSyncProductSkuPrice">同步价格
|
|
@click="handleSyncProductSkuPrice">同步价格
|
|
</el-button>
|
|
</el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ style="margin-top: 20px"
|
|
|
|
+ @click="handleSyncProductSkuStock">同步库存
|
|
|
|
+ </el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="属性图片:" v-if="hasAttrPic">
|
|
<el-form-item label="属性图片:" v-if="hasAttrPic">
|
|
<el-card shadow="never" class="cardBg">
|
|
<el-card shadow="never" class="cardBg">
|
|
@@ -325,30 +330,33 @@
|
|
},
|
|
},
|
|
//获取选中的属性值
|
|
//获取选中的属性值
|
|
getEditAttrValues(index) {
|
|
getEditAttrValues(index) {
|
|
- let values = [];
|
|
|
|
|
|
+ let values = new Set();
|
|
if (index === 0) {
|
|
if (index === 0) {
|
|
for (let i = 0; i < this.value.skuStockList.length; i++) {
|
|
for (let i = 0; i < this.value.skuStockList.length; i++) {
|
|
let sku = this.value.skuStockList[i];
|
|
let sku = this.value.skuStockList[i];
|
|
- if (sku.sp1 != null && values.indexOf(sku.sp1) === -1) {
|
|
|
|
- values.push(sku.sp1);
|
|
|
|
|
|
+ let spData = JSON.parse(sku.spData);
|
|
|
|
+ if (spData!= null && spData.length>=1) {
|
|
|
|
+ values.add(spData[0].value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (index === 1) {
|
|
} else if (index === 1) {
|
|
for (let i = 0; i < this.value.skuStockList.length; i++) {
|
|
for (let i = 0; i < this.value.skuStockList.length; i++) {
|
|
let sku = this.value.skuStockList[i];
|
|
let sku = this.value.skuStockList[i];
|
|
- if (sku.sp2 != null && values.indexOf(sku.sp2) === -1) {
|
|
|
|
- values.push(sku.sp2);
|
|
|
|
|
|
+ let spData = JSON.parse(sku.spData);
|
|
|
|
+ if (spData!= null && spData.length>=2) {
|
|
|
|
+ values.add(spData[1].value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
for (let i = 0; i < this.value.skuStockList.length; i++) {
|
|
for (let i = 0; i < this.value.skuStockList.length; i++) {
|
|
let sku = this.value.skuStockList[i];
|
|
let sku = this.value.skuStockList[i];
|
|
- if (sku.sp3 != null && values.indexOf(sku.sp3) === -1) {
|
|
|
|
- values.push(sku.sp3);
|
|
|
|
|
|
+ let spData = JSON.parse(sku.spData);
|
|
|
|
+ if (spData!= null && spData.length>=3) {
|
|
|
|
+ values.add(spData[2].value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return values;
|
|
|
|
|
|
+ return Array.from(values);
|
|
},
|
|
},
|
|
//获取属性的值
|
|
//获取属性的值
|
|
getEditParamValue(id){
|
|
getEditParamValue(id){
|
|
@@ -390,12 +398,11 @@
|
|
this.selectProductAttr[idx].options.splice(index, 1);
|
|
this.selectProductAttr[idx].options.splice(index, 1);
|
|
},
|
|
},
|
|
getProductSkuSp(row, index) {
|
|
getProductSkuSp(row, index) {
|
|
- if (index === 0) {
|
|
|
|
- return row.sp1;
|
|
|
|
- } else if (index === 1) {
|
|
|
|
- return row.sp2;
|
|
|
|
- } else {
|
|
|
|
- return row.sp3;
|
|
|
|
|
|
+ let spData = JSON.parse(row.spData);
|
|
|
|
+ if(spData!=null&&index<spData.length){
|
|
|
|
+ return spData[index].value;
|
|
|
|
+ }else{
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
handleRefreshProductSkuList() {
|
|
handleRefreshProductSkuList() {
|
|
@@ -415,10 +422,34 @@
|
|
type: 'warning'
|
|
type: 'warning'
|
|
}).then(() => {
|
|
}).then(() => {
|
|
if(this.value.skuStockList!==null&&this.value.skuStockList.length>0){
|
|
if(this.value.skuStockList!==null&&this.value.skuStockList.length>0){
|
|
|
|
+ let tempSkuList = [];
|
|
|
|
+ tempSkuList = tempSkuList.concat(tempSkuList,this.value.skuStockList);
|
|
let price=this.value.skuStockList[0].price;
|
|
let price=this.value.skuStockList[0].price;
|
|
- for(let i=0;i<this.value.skuStockList.length;i++){
|
|
|
|
- this.value.skuStockList[i].price=price;
|
|
|
|
|
|
+ for(let i=0;i<tempSkuList.length;i++){
|
|
|
|
+ tempSkuList[i].price=price;
|
|
|
|
+ }
|
|
|
|
+ this.value.skuStockList=[];
|
|
|
|
+ this.value.skuStockList=this.value.skuStockList.concat(this.value.skuStockList,tempSkuList);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ handleSyncProductSkuStock(){
|
|
|
|
+ this.$confirm('将同步第一个sku的库存到所有sku,是否继续', '提示', {
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ type: 'warning'
|
|
|
|
+ }).then(() => {
|
|
|
|
+ if(this.value.skuStockList!==null&&this.value.skuStockList.length>0){
|
|
|
|
+ let tempSkuList = [];
|
|
|
|
+ tempSkuList = tempSkuList.concat(tempSkuList,this.value.skuStockList);
|
|
|
|
+ let stock=this.value.skuStockList[0].stock;
|
|
|
|
+ let lowStock=this.value.skuStockList[0].lowStock;
|
|
|
|
+ for(let i=0;i<tempSkuList.length;i++){
|
|
|
|
+ tempSkuList[i].stock=stock;
|
|
|
|
+ tempSkuList[i].lowStock=lowStock;
|
|
}
|
|
}
|
|
|
|
+ this.value.skuStockList=[];
|
|
|
|
+ this.value.skuStockList=this.value.skuStockList.concat(this.value.skuStockList,tempSkuList);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -427,53 +458,59 @@
|
|
let skuList = this.value.skuStockList;
|
|
let skuList = this.value.skuStockList;
|
|
//只有一个属性时
|
|
//只有一个属性时
|
|
if (this.selectProductAttr.length === 1) {
|
|
if (this.selectProductAttr.length === 1) {
|
|
- let values = this.selectProductAttr[0].values;
|
|
|
|
- for (let i = 0; i < values.length; i++) {
|
|
|
|
|
|
+ let attr = this.selectProductAttr[0];
|
|
|
|
+ for (let i = 0; i < attr.values.length; i++) {
|
|
skuList.push({
|
|
skuList.push({
|
|
- sp1: values[i]
|
|
|
|
|
|
+ spData: JSON.stringify([{key:attr.name,value:attr.values[i]}])
|
|
});
|
|
});
|
|
}
|
|
}
|
|
} else if (this.selectProductAttr.length === 2) {
|
|
} else if (this.selectProductAttr.length === 2) {
|
|
- let values0 = this.selectProductAttr[0].values;
|
|
|
|
- let values1 = this.selectProductAttr[1].values;
|
|
|
|
- for (let i = 0; i < values0.length; i++) {
|
|
|
|
- if (values1.length === 0) {
|
|
|
|
|
|
+ let attr0 = this.selectProductAttr[0];
|
|
|
|
+ let attr1 = this.selectProductAttr[1];
|
|
|
|
+ for (let i = 0; i < attr0.values.length; i++) {
|
|
|
|
+ if (attr1.values.length === 0) {
|
|
skuList.push({
|
|
skuList.push({
|
|
- sp1: values0[i]
|
|
|
|
|
|
+ spData: JSON.stringify([{key:attr0.name,value:attr0.values[i]}])
|
|
});
|
|
});
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- for (let j = 0; j < values1.length; j++) {
|
|
|
|
|
|
+ for (let j = 0; j < attr1.values.length; j++) {
|
|
|
|
+ let spData = [];
|
|
|
|
+ spData.push({key:attr0.name,value:attr0.values[i]});
|
|
|
|
+ spData.push({key:attr1.name,value:attr1.values[j]});
|
|
skuList.push({
|
|
skuList.push({
|
|
- sp1: values0[i],
|
|
|
|
- sp2: values1[j]
|
|
|
|
|
|
+ spData: JSON.stringify(spData)
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- let values0 = this.selectProductAttr[0].values;
|
|
|
|
- let values1 = this.selectProductAttr[1].values;
|
|
|
|
- let values2 = this.selectProductAttr[2].values;
|
|
|
|
- for (let i = 0; i < values0.length; i++) {
|
|
|
|
- if (values1.length === 0) {
|
|
|
|
|
|
+ let attr0 = this.selectProductAttr[0];
|
|
|
|
+ let attr1 = this.selectProductAttr[1];
|
|
|
|
+ let attr2 = this.selectProductAttr[2];
|
|
|
|
+ for (let i = 0; i < attr0.values.length; i++) {
|
|
|
|
+ if (attr1.values.length === 0) {
|
|
skuList.push({
|
|
skuList.push({
|
|
- sp1: values0[i]
|
|
|
|
|
|
+ spData: JSON.stringify([{key:attr0.name,value:attr0.values[i]}])
|
|
});
|
|
});
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- for (let j = 0; j < values1.length; j++) {
|
|
|
|
- if (values2.length === 0) {
|
|
|
|
|
|
+ for (let j = 0; j < attr1.values.length; j++) {
|
|
|
|
+ if (attr2.values.length === 0) {
|
|
|
|
+ let spData = [];
|
|
|
|
+ spData.push({key:attr0.name,value:attr0.values[i]});
|
|
|
|
+ spData.push({key:attr1.name,value:attr1.values[j]});
|
|
skuList.push({
|
|
skuList.push({
|
|
- sp1: values0[i],
|
|
|
|
- sp2: values1[j]
|
|
|
|
|
|
+ spData: JSON.stringify(spData)
|
|
});
|
|
});
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- for (let k = 0; k < values2.length; k++) {
|
|
|
|
|
|
+ for (let k = 0; k < attr2.values.length; k++) {
|
|
|
|
+ let spData = [];
|
|
|
|
+ spData.push({key:attr0.name,value:attr0.values[i]});
|
|
|
|
+ spData.push({key:attr1.name,value:attr1.values[j]});
|
|
|
|
+ spData.push({key:attr2.name,value:attr2.values[k]});
|
|
skuList.push({
|
|
skuList.push({
|
|
- sp1: values0[i],
|
|
|
|
- sp2: values1[j],
|
|
|
|
- sp3: values2[k]
|
|
|
|
|
|
+ spData: JSON.stringify(spData)
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -497,7 +534,8 @@
|
|
//获取商品相关属性的图片
|
|
//获取商品相关属性的图片
|
|
getProductSkuPic(name){
|
|
getProductSkuPic(name){
|
|
for(let i=0;i<this.value.skuStockList.length;i++){
|
|
for(let i=0;i<this.value.skuStockList.length;i++){
|
|
- if(name===this.value.skuStockList[i].sp1){
|
|
|
|
|
|
+ let spData = JSON.parse(this.value.skuStockList[i].spData);
|
|
|
|
+ if(name===spData[0].value){
|
|
return this.value.skuStockList[i].pic;
|
|
return this.value.skuStockList[i].pic;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -527,7 +565,8 @@
|
|
mergeProductAttrPics() {
|
|
mergeProductAttrPics() {
|
|
for (let i = 0; i < this.selectProductAttrPics.length; i++) {
|
|
for (let i = 0; i < this.selectProductAttrPics.length; i++) {
|
|
for (let j = 0; j < this.value.skuStockList.length; j++) {
|
|
for (let j = 0; j < this.value.skuStockList.length; j++) {
|
|
- if (this.value.skuStockList[j].sp1 === this.selectProductAttrPics[i].name) {
|
|
|
|
|
|
+ let spData = JSON.parse(this.value.skuStockList[j].spData);
|
|
|
|
+ if (spData[0].value === this.selectProductAttrPics[i].name) {
|
|
this.value.skuStockList[j].pic = this.selectProductAttrPics[i].pic;
|
|
this.value.skuStockList[j].pic = this.selectProductAttrPics[i].pic;
|
|
}
|
|
}
|
|
}
|
|
}
|