|
|
|
|
|
let apiUrl = {
|
|
|
brand: '/platform/getSellerBrandInfo',
|
|
|
sort: '/platform/getSellerSortInfo',
|
|
|
color: '/platform/querySellerProductColors',
|
|
|
size: '/platform/querySortSize',
|
|
|
addProduct: '/platform/addProduct',
|
|
|
params: '/platform/queryProductParamBySortId',
|
|
|
attr: '/platform/selectAttributes',
|
|
|
material: '/platform/querySellerProductMaterial',
|
|
|
updateNetInfo: '/platform/updateSellerProductNetSaleInfo',
|
|
|
updateProduct: '/platform/updateProduct',
|
|
|
getProduct: '/platform/getProduct'
|
|
|
};
|
|
|
|
|
|
const request = require('axios');
|
|
|
|
|
|
/**
|
|
|
* 获得店铺关联品牌
|
|
|
*/
|
|
|
function getBrand() {
|
|
|
return request.get(apiUrl.brand).then((result) => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据品牌获得品类信息
|
|
|
* @param brandId
|
|
|
* @param level 可选参数:1, 2, 3
|
|
|
* @param sortId 父级sortId
|
|
|
*/
|
|
|
function getSort(brandId, level, sortId) {
|
|
|
let opts = {
|
|
|
brandId: brandId,
|
|
|
level: level
|
|
|
};
|
|
|
|
|
|
if (sortId) {
|
|
|
Object.assign(opts, {sortId});
|
|
|
}
|
|
|
|
|
|
return request.get(apiUrl.sort, {
|
|
|
params: opts
|
|
|
}).then((result) => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得品牌所支持的所有颜色
|
|
|
*/
|
|
|
function getColor() {
|
|
|
return request.get(apiUrl.color).then((result) => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得品类下所支持的尺码
|
|
|
* @param smallSortId
|
|
|
*/
|
|
|
function getSize(smallSortId) {
|
|
|
return request.get(apiUrl.size, {
|
|
|
params: {
|
|
|
sortId: smallSortId
|
|
|
}
|
|
|
}).then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得品类支持的商品相关参数
|
|
|
* @param sortId
|
|
|
*/
|
|
|
function getProductParams(sortId) {
|
|
|
return request.get(apiUrl.params, {
|
|
|
params: {
|
|
|
sortId
|
|
|
}
|
|
|
}).then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得品类的属性
|
|
|
* @param sorId
|
|
|
*/
|
|
|
function getProductAttribute(sortId) {
|
|
|
const saleType = 2;
|
|
|
const displayPosition = 3;
|
|
|
|
|
|
return request.get(apiUrl.attr, {
|
|
|
params: {
|
|
|
categoryId: sortId,
|
|
|
saleType,
|
|
|
displayPosition
|
|
|
}
|
|
|
}).then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得商品风格
|
|
|
* @param sortId
|
|
|
*/
|
|
|
function getProductStyle(sortId) {
|
|
|
const saleType = 2;
|
|
|
const displayPosition = 2;
|
|
|
|
|
|
return request.get(apiUrl.attr, {
|
|
|
params: {
|
|
|
categoryId: sortId,
|
|
|
saleType,
|
|
|
displayPosition
|
|
|
}
|
|
|
}).then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得品类下的所有材质
|
|
|
* @param sortId 第一级sort
|
|
|
*/
|
|
|
function getMaterial(maxSortId) {
|
|
|
return request.get(apiUrl.material, {
|
|
|
params: {
|
|
|
maxSortId: maxSortId
|
|
|
}
|
|
|
}).then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获得所有属性
|
|
|
* @param smallSortId
|
|
|
* @param maxSortId
|
|
|
*/
|
|
|
|
|
|
function addModelAttr(attr) {
|
|
|
attr.model = attr.inputType === 'checkbox' ? [] : '';
|
|
|
return attr;
|
|
|
}
|
|
|
|
|
|
function getAllAttr(smallSortId, maxSortId) {
|
|
|
return Promise.all([
|
|
|
getProductParams(smallSortId).then(r => r.data).then(r => r.map(addModelAttr)),
|
|
|
getProductAttribute(smallSortId).then(r => r.data).then(r => r.map(addModelAttr)),
|
|
|
getProductStyle(smallSortId).then(r => r.data).then(r => r.map(addModelAttr)),
|
|
|
getMaterial(maxSortId).then(r => r.data).then(r => addModelAttr(r)),
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新商品网销信息
|
|
|
* @param info
|
|
|
*/
|
|
|
function updateNetInfo(info) {
|
|
|
return request.post(apiUrl.updateNetInfo, info)
|
|
|
.then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存商品基本信息
|
|
|
* @param product
|
|
|
*/
|
|
|
function saveBaseProductInfo(product) {
|
|
|
return request.post(apiUrl.addProduct, product)
|
|
|
.then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询商品所以有信息,包括网销信息
|
|
|
* @param skn
|
|
|
*/
|
|
|
function getProductAllInfo(skn) {
|
|
|
return request.get(apiUrl.getProduct, {
|
|
|
params: {
|
|
|
productSkn: skn
|
|
|
}
|
|
|
}).then(result => result.data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新商品信息,包括基础信息和网销信息
|
|
|
* @param product
|
|
|
*/
|
|
|
function updateProductAllInfo(product) {
|
|
|
return request.post(apiUrl.updateProduct, product)
|
|
|
.then(result => result.data);
|
|
|
}
|
|
|
|
|
|
export default {
|
|
|
getBrand,
|
|
|
getSort,
|
|
|
getColor,
|
|
|
getSize,
|
|
|
getProductParams,
|
|
|
getProductAttribute,
|
|
|
getMaterial,
|
|
|
getProductStyle,
|
|
|
getAllAttr,
|
|
|
updateNetInfo,
|
|
|
saveBaseProductInfo,
|
|
|
getProductAllInfo,
|
|
|
updateProductAllInfo
|
|
|
}; |