完成商品校验

master
zhaochencheng 3 years ago
parent 3944986c94
commit aac8aa97b8

@ -1,6 +1,6 @@
<template> <template>
<div class="add-product-wrapper"> <div class="add-product-wrapper">
<el-form label-width="108px" :model="form" ref="form"> <el-form label-width="108px" :model="form" ref="form" :rules="rules">
<el-card style="margin: 20px 20px; font-size: 14px"> <el-card style="margin: 20px 20px; font-size: 14px">
<div slot="header"> <div slot="header">
<span>基本信息</span> <span>基本信息</span>
@ -62,32 +62,38 @@
</div> </div>
<div class="values" v-if="s.name"> <div class="values" v-if="s.name">
<div class="value" v-for="(it2, idx1) in s.options" :key="idx1"> <div class="value" v-for="(it2, idx1) in s.options" :key="idx1">
<el-input :value="it2.name" @input="changeName(s, idx1, $event)" placeholder="请输入规格名称"></el-input><a class="red no-break ml8" v-if="idx1 &lt; s.options.length - 1 || (s.options.length === maxOptionNum &amp;&amp; idx1 === 3)" @click="deleteOption(s, idx1)"></a> <el-input :value="it2.name" @input="changeName(s, idx1, $event)" placeholder="请输入规格名称"></el-input><a class="red no-break ml8" v-if="idx1 < s.options.length - 1 || (s.options.length === maxOptionNum &amp;&amp; idx1 === 3)" @click="deleteOption(s, idx1)"></a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<el-button v-if="productAttr.length &lt; 2" @click="addSkuSort">+</el-button> <el-button v-if="productAttr.length < 2" @click="addSkuSort">+</el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="规格信息"> <el-form-item label="规格信息">
<el-button @click="refreshSku(null)" class="mb20">刷新列表</el-button> <el-button @click="refreshSku()" class="mb20">刷新列表</el-button>
<el-table :data="skuList" :max-height="400"> <el-table :data="form.skuList" :max-height="400">
<el-table-column v-for="s in skuAttr" :label="s.name" :key="s.name" :prop="s.name"></el-table-column> <el-table-column v-for="s in skuAttr" :label="s.name" :key="s.name" :prop="s.name"></el-table-column>
<el-table-column label="展示图片"> <el-table-column label="展示图片">
<template v-slot="{ row }"> <template v-slot="{ row }">
<oss-image-upload class="img-upload-mini" v-model="row.pic" :limit="1" :is-show-tip="false"></oss-image-upload> <oss-image-upload class="img-upload-mini" v-model="row.pic" :limit="1" :is-show-tip="false"></oss-image-upload>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="销售价格"> <el-table-column label="销售价格" >
<template v-slot="{ row }"> <template v-slot="{ row,$index }">
<el-form-item
:rules="{ required: true, message: '请填写价格', trigger: 'blur' }"
:prop="'skuList['+$index+'].price'">
<el-input v-model="row.price"></el-input> <el-input v-model="row.price"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="编码"> <el-table-column label="编码">
<template v-slot="{ row }"> <template v-slot="{ row }">
<el-form-item>
<el-input v-model="row.outSkuId"></el-input> <el-input v-model="row.outSkuId"></el-input>
<el-input v-model="row.spData" v-show="false"></el-input> <el-input v-model="row.spData" v-show="false"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -125,8 +131,12 @@ export default {
components: {BrandSelect, ProductCategorySelect}, components: {BrandSelect, ProductCategorySelect},
data() { data() {
return { return {
rules: {
name: [
{ required: true, message: '请输入商品名称', trigger: 'blur' },
],
},
form: {}, form: {},
skuList:[],
skuAttr:[], skuAttr:[],
albumPics:null, albumPics:null,
productAttr: [ productAttr: [
@ -150,15 +160,12 @@ export default {
} }
}, },
methods: { methods: {
refreshSku(preSkus){ refreshSku(){
let skus = []; let skus = [];
let skuMap = new Map() let skuMap = new Map()
if(preSkus){
this.skuList=preSkus
}
this.skuAttr=[...this.productAttr] this.skuAttr=[...this.productAttr]
if(this.skuList){ if(this.form.skuList){
this.skuList.forEach(sku=>{ this.form.skuList.forEach(sku=>{
skuMap.set(sku.spData,sku) skuMap.set(sku.spData,sku)
}) })
} }
@ -197,7 +204,7 @@ export default {
}) })
this.form.productAttr = JSON.stringify(this.productAttr) this.form.productAttr = JSON.stringify(this.productAttr)
this.skuList= skus this.form.skuList= skus
}, },
categoryChange(value){ categoryChange(value){
if(Array.isArray(value)){ if(Array.isArray(value)){
@ -221,7 +228,7 @@ export default {
if(this.form.productAttr){ if(this.form.productAttr){
this.productAttr =JSON.parse(this.form.productAttr) this.productAttr =JSON.parse(this.form.productAttr)
} }
this.refreshSku(this.form.skuList) this.refreshSku()
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
@ -231,7 +238,6 @@ export default {
if(this.albumPics){ if(this.albumPics){
this.form.albumPics = this.albumPics.toString() this.form.albumPics = this.albumPics.toString()
} }
this.form.skuList = this.skuList
if(this.form.categoryId && Array.isArray(this.form.categoryId)){ if(this.form.categoryId && Array.isArray(this.form.categoryId)){
this.form.categoryId = this.form.categoryId.pop() this.form.categoryId = this.form.categoryId.pop()
} }
@ -245,6 +251,16 @@ export default {
}); });
} }
this.cancel(); this.cancel();
}else{
if(this.form.name){
this.$alert('请填写规格价格', '提示', {
confirmButtonText: '确定',
});
}else{
this.$alert('请填写商品名称', '提示', {
confirmButtonText: '确定',
});
}
} }
}); });
}, },

Loading…
Cancel
Save