|
@ -1,202 +1,201 @@ |
|
|
<template> |
|
|
<template> |
|
|
<el-card class="form-container" shadow="never"> |
|
|
<el-card class="form-container" shadow="never"> |
|
|
<el-steps :active="active" finish-status="success" align-center> |
|
|
<el-steps :active="active" finish-status="success" align-center> |
|
|
<el-step title="商品息信"></el-step> |
|
|
<el-step title="商品息信"></el-step> |
|
|
<el-step title="商品展示"></el-step> |
|
|
<el-step title="商品展示"></el-step> |
|
|
<el-step title="图片及详情"></el-step> |
|
|
<el-step title="图片及详情"></el-step> |
|
|
</el-steps> |
|
|
</el-steps> |
|
|
<product-info-detail |
|
|
<product-info-detail v-show="showStatus[0]" v-model="productParam" :is-edit="isEdit" @nextStep="nextStep"> |
|
|
v-show="showStatus[0]" |
|
|
</product-info-detail> |
|
|
v-model="productParam" |
|
|
<product-sale-detail v-show="showStatus[1]" v-model="productParam" :is-edit="isEdit" @nextStep="nextStep" |
|
|
:is-edit="isEdit" |
|
|
@prevStep="prevStep"> |
|
|
@nextStep="nextStep"> |
|
|
</product-sale-detail> |
|
|
</product-info-detail> |
|
|
<product-attr-detail v-show="showStatus[2]" v-model="productParam" :is-edit="isEdit" |
|
|
<product-sale-detail |
|
|
@finishCommit="finishCommit" @nextStep="nextStep" @prevStep="prevStep"> |
|
|
v-show="showStatus[1]" |
|
|
</product-attr-detail> |
|
|
v-model="productParam" |
|
|
<!-- <product-relation-detail |
|
|
:is-edit="isEdit" |
|
|
|
|
|
@nextStep="nextStep" |
|
|
|
|
|
@prevStep="prevStep"> |
|
|
|
|
|
</product-sale-detail> |
|
|
|
|
|
<product-attr-detail |
|
|
|
|
|
v-show="showStatus[2]" |
|
|
|
|
|
v-model="productParam" |
|
|
|
|
|
:is-edit="isEdit" |
|
|
|
|
|
@finishCommit="finishCommit" |
|
|
|
|
|
@nextStep="nextStep" |
|
|
|
|
|
@prevStep="prevStep"> |
|
|
|
|
|
</product-attr-detail> |
|
|
|
|
|
<!-- <product-relation-detail |
|
|
|
|
|
v-show="showStatus[3]" |
|
|
v-show="showStatus[3]" |
|
|
v-model="productParam" |
|
|
v-model="productParam" |
|
|
:is-edit="isEdit" |
|
|
:is-edit="isEdit" |
|
|
@prevStep="prevStep" |
|
|
@prevStep="prevStep" |
|
|
@finishCommit="finishCommit"> |
|
|
@finishCommit="finishCommit"> |
|
|
</product-relation-detail> --> |
|
|
</product-relation-detail> --> |
|
|
</el-card> |
|
|
</el-card> |
|
|
</template> |
|
|
</template> |
|
|
<script> |
|
|
<script> |
|
|
import ProductInfoDetail from './ProductInfoDetail'; |
|
|
import ProductInfoDetail from './ProductInfoDetail'; |
|
|
import ProductSaleDetail from './ProductSaleDetail'; |
|
|
import ProductSaleDetail from './ProductSaleDetail'; |
|
|
import ProductAttrDetail from './ProductAttrDetail'; |
|
|
import ProductAttrDetail from './ProductAttrDetail'; |
|
|
// import ProductRelationDetail from './ProductRelationDetail'; |
|
|
// import ProductRelationDetail from './ProductRelationDetail'; |
|
|
import {createProduct,getProduct,updateProduct} from '@/api/product'; |
|
|
import { |
|
|
|
|
|
createProduct, |
|
|
|
|
|
getProduct, |
|
|
|
|
|
updateProduct |
|
|
|
|
|
} from '@/api/product'; |
|
|
|
|
|
|
|
|
const defaultProductParam = { |
|
|
const defaultProductParam = { |
|
|
albumPics: '', |
|
|
albumPics: '', |
|
|
brandId: null, |
|
|
brandId: null, |
|
|
brandName: '', |
|
|
brandName: '', |
|
|
deleteStatus: 0, |
|
|
deleteStatus: 0, |
|
|
description: '', |
|
|
description: '', |
|
|
tags:'', |
|
|
tags: '', |
|
|
tagsArr:'', |
|
|
tagsArr: '', |
|
|
detailDesc: '', |
|
|
detailDesc: '', |
|
|
detailHtml: '', |
|
|
detailHtml: '', |
|
|
detailMobileHtml: '', |
|
|
detailMobileHtml: '', |
|
|
detailTitle: '', |
|
|
detailTitle: '', |
|
|
feightTemplateId: 0, |
|
|
feightTemplateId: 0, |
|
|
flashPromotionCount: 0, |
|
|
flashPromotionCount: 0, |
|
|
flashPromotionId: 0, |
|
|
flashPromotionId: 0, |
|
|
flashPromotionPrice: 0, |
|
|
flashPromotionPrice: 0, |
|
|
flashPromotionSort: 0, |
|
|
flashPromotionSort: 0, |
|
|
giftPoint: 0, |
|
|
giftPoint: 0, |
|
|
giftGrowth: 0, |
|
|
giftGrowth: 0, |
|
|
keywords: '', |
|
|
keywords: '', |
|
|
lowStock: 0, |
|
|
lowStock: 0, |
|
|
name: '', |
|
|
name: '', |
|
|
newStatus: 0, |
|
|
newStatus: 0, |
|
|
note: '', |
|
|
note: '', |
|
|
originalPrice: 0, |
|
|
originalPrice: 0, |
|
|
pic: '', |
|
|
pic: '', |
|
|
//会员价格{memberLevelId: 0,memberPrice: 0,memberLevelName: null} |
|
|
//会员价格{memberLevelId: 0,memberPrice: 0,memberLevelName: null} |
|
|
memberPriceList: [], |
|
|
memberPriceList: [], |
|
|
//商品满减 |
|
|
//商品满减 |
|
|
productFullReductionList: [{fullPrice: 0, reducePrice: 0}], |
|
|
productFullReductionList: [{ |
|
|
//商品阶梯价格 |
|
|
fullPrice: 0, |
|
|
productLadderList: [{count: 0,discount: 0,price: 0}], |
|
|
reducePrice: 0 |
|
|
previewStatus: 0, |
|
|
}], |
|
|
price: 0, |
|
|
//商品阶梯价格 |
|
|
productAttributeCategoryId: null, |
|
|
productLadderList: [{ |
|
|
//商品属性相关{productAttributeId: 0, value: ''} |
|
|
count: 0, |
|
|
productAttributeValueList: [], |
|
|
discount: 0, |
|
|
//商品sku库存信息{lowStock: 0, pic: '', price: 0, sale: 0, skuCode: '', sp1: '', sp2: '', sp3: '', stock: 0} |
|
|
price: 0 |
|
|
skuStockList: [], |
|
|
}], |
|
|
//商品相关专题{subjectId: 0} |
|
|
previewStatus: 0, |
|
|
subjectProductRelationList: [], |
|
|
price: 0, |
|
|
//商品相关优选{prefrenceAreaId: 0} |
|
|
productAttributeCategoryId: null, |
|
|
prefrenceAreaProductRelationList: [], |
|
|
//商品属性相关{productAttributeId: 0, value: ''} |
|
|
productCategoryId: null, |
|
|
productAttributeValueList: [], |
|
|
productCategoryName: '', |
|
|
//商品sku库存信息{lowStock: 0, pic: '', price: 0, sale: 0, skuCode: '', sp1: '', sp2: '', sp3: '', stock: 0} |
|
|
areaId : null, |
|
|
skuStockList: [], |
|
|
areaName:'', |
|
|
//商品相关专题{subjectId: 0} |
|
|
productSn: '', |
|
|
subjectProductRelationList: [], |
|
|
promotionEndTime: '', |
|
|
//商品相关优选{prefrenceAreaId: 0} |
|
|
promotionPerLimit: 0, |
|
|
prefrenceAreaProductRelationList: [], |
|
|
promotionPrice: 0, |
|
|
productCategoryId: null, |
|
|
promotionStartTime: '', |
|
|
productCategoryName: '', |
|
|
promotionType: 0, |
|
|
areaId: null, |
|
|
storeClassId:null, |
|
|
areaName: '', |
|
|
publishStatus: 0, |
|
|
productSn: '', |
|
|
isFenxiao:0, |
|
|
promotionEndTime: '', |
|
|
isVip:0, |
|
|
promotionPerLimit: 0, |
|
|
recommandStatus: 0, |
|
|
promotionPrice: 0, |
|
|
sale: 0, |
|
|
promotionStartTime: '', |
|
|
serviceIds: '', |
|
|
promotionType: 0, |
|
|
sort: 0, |
|
|
storeClassId: null, |
|
|
stock: 0, |
|
|
publishStatus: 0, |
|
|
subTitle: '', |
|
|
isFenxiao: 0, |
|
|
unit: '', |
|
|
isVip: 0, |
|
|
usePointLimit: 0, |
|
|
recommandStatus: 0, |
|
|
verifyStatus: 0, |
|
|
sale: 0, |
|
|
transfee:0, |
|
|
serviceIds: '', |
|
|
weight: 0 |
|
|
sort: 0, |
|
|
}; |
|
|
stock: 0, |
|
|
export default { |
|
|
subTitle: '', |
|
|
name: 'ProductDetail', |
|
|
unit: '', |
|
|
components: {ProductInfoDetail, ProductSaleDetail, ProductAttrDetail |
|
|
usePointLimit: 0, |
|
|
// , ProductRelationDetail |
|
|
verifyStatus: 0, |
|
|
|
|
|
transfee: 0, |
|
|
|
|
|
weight: 0 |
|
|
|
|
|
}; |
|
|
|
|
|
export default { |
|
|
|
|
|
name: 'ProductDetail', |
|
|
|
|
|
components: { |
|
|
|
|
|
ProductInfoDetail, |
|
|
|
|
|
ProductSaleDetail, |
|
|
|
|
|
ProductAttrDetail |
|
|
|
|
|
// , ProductRelationDetail |
|
|
}, |
|
|
}, |
|
|
props: { |
|
|
props: { |
|
|
isEdit: { |
|
|
isEdit: { |
|
|
type: Boolean, |
|
|
type: Boolean, |
|
|
default: false |
|
|
default: false |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
active: 0, |
|
|
active: 0, |
|
|
productParam: Object.assign({}, defaultProductParam), |
|
|
productParam: Object.assign({}, defaultProductParam), |
|
|
showStatus: [true, false, false, false] |
|
|
showStatus: [true, false, false, false] |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
created(){ |
|
|
created() { |
|
|
if(this.isEdit){ |
|
|
if (this.isEdit) { |
|
|
getProduct(this.$route.query.id).then(response=>{ |
|
|
getProduct(this.$route.query.id).then(response => { |
|
|
this.productParam=response.data; |
|
|
this.productParam = response.data; |
|
|
console.log('kkkkk',this.productParam) |
|
|
console.log('kkkkk', this.productParam) |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
hideAll() { |
|
|
hideAll() { |
|
|
for (let i = 0; i < this.showStatus.length; i++) { |
|
|
for (let i = 0; i < this.showStatus.length; i++) { |
|
|
this.showStatus[i] = false; |
|
|
this.showStatus[i] = false; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
prevStep() { |
|
|
prevStep() { |
|
|
if (this.active > 0 && this.active < this.showStatus.length) { |
|
|
if (this.active > 0 && this.active < this.showStatus.length) { |
|
|
this.active--; |
|
|
this.active--; |
|
|
this.hideAll(); |
|
|
this.hideAll(); |
|
|
this.showStatus[this.active] = true; |
|
|
this.showStatus[this.active] = true; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
nextStep() { |
|
|
nextStep() { |
|
|
if (this.active < this.showStatus.length - 1) { |
|
|
if (this.active < this.showStatus.length - 1) { |
|
|
this.active++; |
|
|
this.active++; |
|
|
this.hideAll(); |
|
|
this.hideAll(); |
|
|
this.showStatus[this.active] = true; |
|
|
this.showStatus[this.active] = true; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
finishCommit(isEdit) { |
|
|
finishCommit(isEdit) { |
|
|
console.log(this.productParam) |
|
|
console.log(this.productParam) |
|
|
if(this.productParam.tagList){ |
|
|
if (this.productParam.tagList) { |
|
|
this.productParam.tags=this.productParam.tagList.join(','); |
|
|
this.productParam.tags = this.productParam.tagList.join(','); |
|
|
this.productParam.tagList=null; |
|
|
this.productParam.tagList = null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.$confirm('是否要提交该产品', '提示', { |
|
|
this.$confirm('是否要提交该产品', '提示', { |
|
|
confirmButtonText: '确定', |
|
|
confirmButtonText: '确定', |
|
|
cancelButtonText: '取消', |
|
|
cancelButtonText: '取消', |
|
|
type: 'warning' |
|
|
type: 'warning' |
|
|
}).then(() => { |
|
|
}).then(() => { |
|
|
if(isEdit){ |
|
|
if (isEdit) { |
|
|
updateProduct(this.$route.query.id,this.productParam).then(response=>{ |
|
|
updateProduct(this.$route.query.id, this.productParam).then(response => { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
type: 'success', |
|
|
type: 'success', |
|
|
message: '提交成功', |
|
|
message: '提交成功', |
|
|
duration:1000 |
|
|
duration: 1000 |
|
|
}); |
|
|
}); |
|
|
this.$router.back(); |
|
|
this.$router.back(); |
|
|
}); |
|
|
}); |
|
|
}else{ |
|
|
} else { |
|
|
createProduct(this.productParam).then(response=>{ |
|
|
createProduct(this.productParam).then(response => { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
type: 'success', |
|
|
type: 'success', |
|
|
message: '提交成功', |
|
|
message: '提交成功', |
|
|
duration:1000 |
|
|
duration: 1000 |
|
|
}); |
|
|
}); |
|
|
location.reload(); |
|
|
location.reload(); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
<style> |
|
|
<style> |
|
|
.form-container { |
|
|
.form-container { |
|
|
width: 800px; |
|
|
width: 800px; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|