本次提交对全项目的国际化调用进行了规范化重构:
1. 为中文/英文语言包新增了avatar和gender的别名映射,兼容旧有headImg/sex写法
2. 修正了lang.js中的注释路径错误
3. 将所有页面和组件内的$lang调用从短路径改为带业务模块前缀的完整命名空间路径,例如将$lang('title')改为$lang('article.list.title')
4. 优化了i18n-lazy.js的注释说明,补充了正确的key命名格式示例
5. 统一了分销、订单、会员等模块的国际化key层级,确保所有语言调用路径一致
941 lines
29 KiB
JavaScript
941 lines
29 KiB
JavaScript
// import {getGoodsInfoById,getCategoryTree,addGoods,editGoods,addVirtualGoods,editVirtualGoods,addVirtualCardGoods,editVirtualCardGoods} from '@/api/goods'
|
|
// import {getOrderFormList} from '@/api/form'
|
|
// import {getSupplyList} from '@/api/supply'
|
|
export default {
|
|
data() {
|
|
return {
|
|
repeatFlag: false,
|
|
isIphoneX: false,
|
|
goodsImgHeight: 165, // 商品图片高度
|
|
isAWait: false,
|
|
albumPage: 'goodsEdit',
|
|
//店内分类
|
|
shopCategoryNumber: 1,
|
|
shopCategoryData: {
|
|
store_0: {}
|
|
},
|
|
shopCategoryIndex: '',
|
|
|
|
categoryList: [],
|
|
secondCategory: [],
|
|
thirdCategory: [],
|
|
categoryId: [0, 0, 0],
|
|
categoryName: ['', '', ''],
|
|
currentLevel: 1,
|
|
lastLevel: 1,
|
|
showFisrt: true,
|
|
showSecond: false,
|
|
showThird: false,
|
|
|
|
goodsData: {
|
|
id: 0,//商品id
|
|
goodsname:'',//商品名称
|
|
subtitle:'',//商品简介
|
|
is_show_arrive:1,//默认商品预达简介0关闭1开启
|
|
diy_arrive_switch:0,//商品自定义预达简介0关闭1开启
|
|
goods_start_count:1,//起售数量
|
|
grounding:1,//0下架1上架
|
|
is_index_show:1,//0首页不推荐1推荐
|
|
price:0,//售价
|
|
productprice:0,//原价
|
|
costprice:0,//成本价
|
|
total:0,//库存
|
|
pick_up_type:0,//提货时,0当日达1次日达2隔日达3自定义
|
|
dispatchtype:1,//1统一运费
|
|
dispatchprice:0,//统一运费金额
|
|
begin_time:'',//团购开始时间
|
|
end_time:'',//团购结束时间
|
|
oneday_limit_count:0,//每天限购
|
|
one_limit_count:0,//单次限购
|
|
total_limit_count:0,//历史限购
|
|
is_all_sale:0,//所有团长1部分团长0
|
|
goods_image:[],
|
|
begin_time:'',//团购开始时间
|
|
end_time:''//团购结束时间
|
|
},
|
|
groundingArray: [this.$lang('merch.edit.grounding.offShelf'), this.$lang('merch.edit.grounding.onShelf')],
|
|
|
|
pickuptypeArray: [this.$lang('merch.edit.pickupType.sameDay'), this.$lang('merch.edit.pickupType.nextDay'), this.$lang('merch.edit.pickupType.dayAfter')],//, '自定义'
|
|
|
|
|
|
currCategory: 0, // 当前所设置的商品分类
|
|
virtualDeliverArray: [{
|
|
name: this.$lang('merch.edit.virtualDeliver.auto'),
|
|
value: 'auto_deliver',
|
|
},
|
|
{
|
|
name: this.$lang('merch.edit.virtualDeliver.manual'),
|
|
value: 'artificial_deliver',
|
|
},
|
|
{
|
|
name: this.$lang('merch.edit.virtualDeliver.verify'),
|
|
value: 'verify',
|
|
}
|
|
],
|
|
virtualDeliverValue: {
|
|
'auto_deliver': this.$lang('merch.edit.virtualDeliver.auto'),
|
|
'artificial_deliver': this.$lang('merch.edit.virtualDeliver.manual'),
|
|
'verify': this.$lang('merch.edit.virtualDeliver.verify')
|
|
},
|
|
virtualReceiveArray: [{
|
|
name: this.$lang('merch.edit.virtualReceive.auto'),
|
|
value: 'auto_receive',
|
|
},
|
|
{
|
|
name: this.$lang('merch.edit.virtualReceive.buyerConfirm'),
|
|
value: 'artificial_receive',
|
|
},
|
|
],
|
|
virtualReceiveValue: {
|
|
'auto_receive': this.$lang('merch.edit.virtualReceive.auto'),
|
|
'artificial_receive': this.$lang('merch.edit.virtualReceive.buyerConfirm'),
|
|
},
|
|
validityTypeArray: [this.$lang('merch.edit.validityType.permanent'), this.$lang('merch.edit.validityType.daysAfterPurchase'), this.$lang('merch.edit.validityType.specifiedDate')],
|
|
virtualIndate: 0,
|
|
minDate: '',
|
|
carmiLength: this.$lang('merch.edit.carmi.add'),
|
|
limitLength: [ //限购
|
|
{
|
|
name: this.$lang('merch.edit.limitType.single'),
|
|
value: '1'
|
|
},
|
|
{
|
|
name: this.$lang('merch.edit.limitType.longTerm'),
|
|
value: '2'
|
|
}
|
|
],
|
|
current: 0,
|
|
goodsFormArray: [],
|
|
goodsForm: [],
|
|
|
|
supplyFormArray: [],
|
|
supplyForm: []
|
|
};
|
|
},
|
|
async onLoad(option) {
|
|
this.goodsData.id = option.id || 0;
|
|
|
|
// if (!this.$util.checkToken('/pages/goods/edit/index?id=' + this.goodsData.id)) return;
|
|
|
|
// this.clearStoreage();
|
|
|
|
// this.getCategoryTreeFn();
|
|
if (this.goodsData.id) {
|
|
this.isAWait = true;
|
|
this.$langConfig.title(this.$lang('merch.edit.title'));
|
|
await this.editGetGoodsInfo();
|
|
} else {
|
|
|
|
this.isAWait = false;
|
|
this.$langConfig.title(this.$lang('merch.edit.addTitle'));
|
|
}
|
|
|
|
let date = new Date();
|
|
this.minDate = date.getFullYear() + '-' + date.getMonth() + '-' + date.getUTCDate();
|
|
|
|
// if (this.addonIsExit.form) this.getGoodsForm();
|
|
|
|
// if (this.addonIsExit.supply) this.getSupplyList();
|
|
|
|
},
|
|
onShow() {
|
|
this.isIphoneX = this.$util.uniappIsIPhoneX();
|
|
//this.refreshData();
|
|
},
|
|
methods: {
|
|
|
|
groundingChange(e) {
|
|
this.goodsData.grounding = e.detail.value;
|
|
},
|
|
|
|
pickuptypeChange(e) {
|
|
this.goodsData.pick_up_type = e.detail.value;
|
|
},
|
|
|
|
// 获取编辑商品数据
|
|
async editGetGoodsInfo() {
|
|
this.$api.sendRequest({
|
|
url: 'app.getgoodsinfo',
|
|
data:{
|
|
id:this.goodsData.id
|
|
},
|
|
success: res => {
|
|
if(res.result.detail){
|
|
this.goodsData = res.result.detail
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.goodsNotExist'),
|
|
});
|
|
setTimeout(() => {
|
|
this.$util.redirectTo('/pages_goods/list', {}, 'redirectTo');
|
|
}, 1000);
|
|
}
|
|
// if (res.status == 0) {
|
|
// setTimeout(() => {
|
|
// this.$util.redirectTo('/pages_goods/list', {}, 'redirectTo');
|
|
// }, 1000);
|
|
// }
|
|
}
|
|
})
|
|
/*var res = await getGoodsInfoById(this.goodsData.goods_id);
|
|
if (res.code == 0 && res.data) {
|
|
var data = res.data;
|
|
|
|
data.goods_category.forEach((item, index) => {
|
|
this.shopCategoryData['store_' + index] = {
|
|
category_id: item.id,
|
|
category_name: item.category_name
|
|
}
|
|
})
|
|
this.shopCategoryNumber = data.goods_category.length;
|
|
|
|
// 商品分类
|
|
data.category_id = data.goods_category[0].id;
|
|
data.category_name = data.goods_category[0].category_name.replace(/\//g, " / ");
|
|
|
|
if (typeof data.category_id == 'string') {
|
|
this.categoryId = data.category_id.split(",");
|
|
this.categoryName = data.category_name.split(" / ");
|
|
} else {
|
|
this.categoryId = data.category_id;
|
|
this.categoryName = data.category_name;
|
|
}
|
|
|
|
delete data.category_json;
|
|
delete data.goods_category;
|
|
|
|
data.goods_image = data.goods_image.split(",");
|
|
|
|
data.goods_sku_data.forEach((item) => {
|
|
if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
|
|
});
|
|
|
|
if (data.goods_spec_format) {
|
|
uni.setStorageSync("editGoodsSpecFormat", data.goods_spec_format);
|
|
uni.setStorageSync("editGoodsSkuData", JSON.stringify(data.goods_sku_data));
|
|
data.goods_spec_format = JSON.parse(data.goods_spec_format);
|
|
} else {
|
|
data.sku_id = data.goods_sku_data[0].sku_id;
|
|
data.price = data.goods_sku_data[0].price;
|
|
data.market_price = data.goods_sku_data[0].market_price;
|
|
data.cost_price = data.goods_sku_data[0].cost_price;
|
|
data.weight = data.goods_sku_data[0].weight;
|
|
data.volume = data.goods_sku_data[0].volume;
|
|
data.sku_no = data.goods_sku_data[0].sku_no;
|
|
}
|
|
|
|
if (data.goods_class == 1) {
|
|
// 实物商品
|
|
delete data.virtual_indate;
|
|
uni.setStorageSync("editGoodsShippingTemplateId", data.shipping_template);
|
|
uni.setStorageSync("editGoodsShippingTemplateName", data.template_name ? data.template_name : '');
|
|
} else {
|
|
// 虚拟商品
|
|
delete data.shipping_template;
|
|
delete data.is_free_shipping;
|
|
}
|
|
|
|
// 商品参数
|
|
if (data.goods_attr_format) {
|
|
uni.setStorageSync("editGoodsAttrClass", data.goods_attr_class);
|
|
uni.setStorageSync("editGoodsAttrName", data.goods_attr_name);
|
|
uni.setStorageSync("editGoodsAttrFormat", data.goods_attr_format);
|
|
data.goods_attr_format = JSON.parse(data.goods_attr_format);
|
|
}
|
|
|
|
uni.setStorageSync("editGoodsState", data.goods_state);
|
|
uni.setStorageSync("editGoodsContent", data.goods_content);
|
|
|
|
if (data.verify_validity_type == 1) {
|
|
this.virtualIndate = data.virtual_indate;
|
|
} else if (data.verify_validity_type == 2) {
|
|
this.virtualTime = this.$util.timeStampTurnTime(data.virtual_indate, 'Y-m-d');
|
|
}
|
|
data.verify_num = data.goods_sku_data[0].verify_num
|
|
|
|
this.goodsData = data;
|
|
|
|
this.goodsData.goods_form_index = 0;
|
|
|
|
this.goodsData.supply_index = 0;
|
|
|
|
this.$forceUpdate();
|
|
} else {
|
|
this.$util.showToast({
|
|
title: '商品不存在',
|
|
});
|
|
setTimeout(() => {
|
|
this.$util.redirectTo('/pages_goods/list', {}, 'redirectTo');
|
|
}, 1000);
|
|
}*/
|
|
},
|
|
// 选择商品分类
|
|
openGoodsCategoryPop(index) {
|
|
this.currCategory = index;
|
|
if (this.shopCategoryData['store_' + index].category_id) {
|
|
this.categoryId = this.shopCategoryData['store_' + index].category_id.split(',');
|
|
this.categoryName = this.shopCategoryData['store_' + index].category_name.split(' / ');
|
|
|
|
this.categoryList.forEach((item, index) => {
|
|
item.selected = this.categoryId.indexOf(item.category_id.toString()) != -1;
|
|
if (item.selected) {
|
|
this.secondCategory = item.child_list;
|
|
}
|
|
if (item.child_list) {
|
|
if (item.selected) this.lastLevel = 2;
|
|
item.child_list.forEach(secondItem => {
|
|
secondItem.selected = this.categoryId.indexOf(secondItem.category_id.toString()) != -1;
|
|
if (secondItem.selected) {
|
|
this.thirdCategory = secondItem.child_list;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
this.changeShow(this.categoryId.length);
|
|
} else {
|
|
this.categoryId = [0];
|
|
this.categoryName = [''];
|
|
this.changeShow(1);
|
|
}
|
|
this.$refs.categoryPopup.open();
|
|
},
|
|
closeGoodsCategoryPop() {
|
|
this.$refs.categoryPopup.close();
|
|
},
|
|
// 编辑规格类型
|
|
openGoodsSpec() {
|
|
this.$util.redirectTo('/pages/goods/edit/spec');
|
|
},
|
|
// 编辑多规格
|
|
openGoodsSpecEdit() {
|
|
this.$util.redirectTo('/pages/goods/edit/spec_edit', {
|
|
goods_class: this.goodsData.goods_class,
|
|
virtual_deliver_type: this.goodsData.virtual_deliver_type
|
|
});
|
|
},
|
|
//编辑卡密
|
|
openCarmichaelEdit() {
|
|
this.$util.redirectTo('/pages/goods/edit/carmichael_edit', {
|
|
goods_class: this.goodsData.goods_class
|
|
});
|
|
},
|
|
// 编辑商品状态
|
|
openGoodsState() {
|
|
this.$util.redirectTo('/pages/goods/edit/state', {
|
|
goods_state: this.goodsData.goods_state
|
|
});
|
|
},
|
|
// 编辑快递运费
|
|
openExpressFreight() {
|
|
this.$util.redirectTo('/pages/goods/edit/express_freight', {
|
|
template_id: this.goodsData.shipping_template
|
|
});
|
|
},
|
|
// 编辑商品详情
|
|
openGoodsContent() {
|
|
this.$util.redirectTo('/pages/goods/edit/content');
|
|
},
|
|
// 编辑商品参数
|
|
openAttr() {
|
|
this.$util.redirectTo('/pages/goods/edit/attr');
|
|
},
|
|
/**
|
|
* 刷新商品图片高度
|
|
* @param {Object} data
|
|
*/
|
|
refreshGoodsImgHeight(data) {
|
|
if (data.height == '') return;
|
|
var height = parseFloat(data.height.replace('px', ''));
|
|
this.goodsImgHeight = height + 80;
|
|
this.$forceUpdate();
|
|
if (data.isLoad && this.$refs.loadingCover) {
|
|
// 数据渲染留点时间
|
|
setTimeout(() => {
|
|
this.$refs.loadingCover.hide();
|
|
}, 100);
|
|
}
|
|
uni.removeStorageSync("selectedAlbumImg");
|
|
|
|
},
|
|
// 获取商品分类树状结构
|
|
getCategoryTreeFn() {
|
|
getCategoryTree().then(res=>{
|
|
if (res.data) {
|
|
this.categoryList = res.data;
|
|
this.categoryList.forEach((item, index) => {
|
|
item.selected = this.categoryId.indexOf(item.category_id.toString()) != -1;
|
|
if (item.selected) {
|
|
this.secondCategory = item.child_list;
|
|
this.currentLevel = 1;
|
|
}
|
|
if (item.child_list) {
|
|
if (item.selected) this.lastLevel = 2;
|
|
item.child_list.forEach(secondItem => {
|
|
secondItem.selected = this.categoryId.indexOf(secondItem.category_id.toString()) != -1;
|
|
if (secondItem.selected) {
|
|
this.thirdCategory = secondItem.child_list;
|
|
this.currentLevel = 2;
|
|
}
|
|
if (secondItem.child_list) {
|
|
if (secondItem.selected) this.lastLevel = 3;
|
|
secondItem.child_list.forEach(thirdItem => {
|
|
thirdItem.selected = this.categoryId.indexOf(thirdItem.category_id.toString()) != -1;
|
|
if (thirdItem.selected) this.currentLevel = 3;
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
this.changeShow(this.lastLevel);
|
|
if (this.goodsData.goods_id == 0 && this.$refs.loadingCover) {
|
|
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
changeShow(index) {
|
|
if (index == 1) {
|
|
this.showFisrt = true;
|
|
this.showSecond = false;
|
|
this.showThird = false;
|
|
} else if (index == 2) {
|
|
this.showFisrt = false;
|
|
this.showSecond = true;
|
|
this.showThird = false;
|
|
} else if (index == 3) {
|
|
this.showFisrt = false;
|
|
this.showSecond = false;
|
|
this.showThird = true;
|
|
}
|
|
this.currentLevel = index;
|
|
this.$forceUpdate();
|
|
},
|
|
selectCategory(category) {
|
|
this.currentLevel = category.level;
|
|
|
|
// 如果当前选中跟上次不一样,则 要清空下级数据
|
|
if (category.level == 1 && this.categoryId[0] > 0 && this.categoryId[0] != category.captcha_id) {
|
|
this.categoryId[1] = 0;
|
|
this.categoryName[1] = '';
|
|
this.categoryId[2] = 0;
|
|
this.categoryName[2] = '';
|
|
} else if (category.level == 2 && this.categoryId[1] > 0 && this.categoryId[1] != category.captcha_id) {
|
|
this.categoryId[2] = 0;
|
|
this.categoryName[2] = '';
|
|
}
|
|
|
|
this.categoryId[category.level - 1] = category.category_id;
|
|
this.categoryName[category.level - 1] = category.category_name;
|
|
if (category.level == 1) {
|
|
if (category.child_list) {
|
|
this.secondCategory = category.child_list;
|
|
} else {
|
|
this.categoryId[1] = 0;
|
|
this.categoryName[1] = '';
|
|
this.categoryId[2] = 0;
|
|
this.categoryName[2] = '';
|
|
}
|
|
} else if (category.level == 2) {
|
|
if (category.child_list) {
|
|
this.thirdCategory = category.child_list;
|
|
} else {
|
|
this.categoryId[2] = 0;
|
|
this.categoryName[2] = '';
|
|
}
|
|
}
|
|
|
|
this.lastLevel = 1;
|
|
this.categoryList.forEach((item, index) => {
|
|
item.selected = this.categoryId[0] == item.category_id;
|
|
if (item.child_list) {
|
|
if (item.selected) this.lastLevel = 2;
|
|
item.child_list.forEach((secondItem, secondIndex) => {
|
|
secondItem.selected = this.categoryId[1] == secondItem.category_id;
|
|
if (secondItem.child_list) {
|
|
if (secondItem.selected) this.lastLevel = 3;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
this.changeShow(this.lastLevel);
|
|
|
|
this.goodsData.category_id = [];
|
|
this.goodsData.category_name = [];
|
|
|
|
for (var i = 0; i < this.categoryId.length; i++) {
|
|
if (this.categoryId[i]) this.goodsData.category_id.push(this.categoryId[i]);
|
|
}
|
|
for (var i = 0; i < this.categoryName.length; i++) {
|
|
if (this.categoryName[i]) this.goodsData.category_name.push(this.categoryName[i]);
|
|
}
|
|
|
|
this.goodsData.category_id = this.goodsData.category_id.toString();
|
|
this.goodsData.category_name = this.goodsData.category_name.join(" / ");
|
|
|
|
if (
|
|
(this.lastLevel == 3 && this.categoryId[2]) ||
|
|
(this.lastLevel == 2 && this.categoryId[1]) ||
|
|
(this.lastLevel == 1 && this.categoryId[0])
|
|
) {
|
|
this.shopCategoryData['store_' + this.currCategory] = {
|
|
category_id: this.goodsData.category_id,
|
|
category_name: this.goodsData.category_name
|
|
};
|
|
this.closeGoodsCategoryPop();
|
|
}
|
|
|
|
this.$forceUpdate();
|
|
},
|
|
addShopCategory() {
|
|
if (this.shopCategoryNumber == 10) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.maxCategory')
|
|
});
|
|
return;
|
|
}
|
|
this.shopCategoryData['store_' + this.shopCategoryNumber] = {};
|
|
++this.shopCategoryNumber;
|
|
},
|
|
deleteShopCategory(index) {
|
|
delete this.shopCategoryData['store_' + index];
|
|
--this.shopCategoryNumber;
|
|
|
|
//重置数据
|
|
let i = 0;
|
|
let obj = {};
|
|
for (let key in this.shopCategoryData) {
|
|
obj['store_' + i] = this.shopCategoryData[key];
|
|
i++;
|
|
}
|
|
this.shopCategoryData = {};
|
|
this.shopCategoryData = Object.assign(this.shopCategoryData, obj);
|
|
},
|
|
// 刷新数据
|
|
refreshData() {
|
|
var selectedAlbumImg = uni.getStorageSync('selectedAlbumImg');
|
|
if (selectedAlbumImg) {
|
|
uni.setStorageSync('selectedAlbumImgTemp', selectedAlbumImg);
|
|
selectedAlbumImg = JSON.parse(selectedAlbumImg);
|
|
this.goodsData.goods_image = selectedAlbumImg.list.split(",");
|
|
this.$refs.goodsShmilyDragImg.refresh();
|
|
}
|
|
|
|
// 规格项
|
|
this.goodsData.goods_spec_format = uni.getStorageSync('editGoodsSpecFormat') ? JSON.parse(uni.getStorageSync('editGoodsSpecFormat')) : [];
|
|
if (this.goodsData.goods_spec_format.length <= 0) {
|
|
|
|
this.goodsData.carmichael = uni.getStorageSync('editGoodsCarmichael') ? JSON.parse(uni.getStorageSync('editGoodsCarmichael')) : [];
|
|
if (this.goodsData.carmichael.length > 0) {
|
|
this.carmiLength = this.$lang('merch.edit.carmi.addWithCount', { count: this.goodsData.carmichael.length })
|
|
}
|
|
}
|
|
|
|
// 多规格数据
|
|
this.goodsData.goods_sku_data = uni.getStorageSync('editGoodsSkuData') ? JSON.parse(uni.getStorageSync('editGoodsSkuData')) : [];
|
|
if (this.goodsData.goods_sku_data.length > 0) {
|
|
this.goodsData.goods_stock = 0;
|
|
this.goodsData.goods_stock_alarm = 0;
|
|
this.goodsData.goods_sku_data.forEach((item) => {
|
|
if (item.stock) this.goodsData.goods_stock += parseInt(item.stock);
|
|
if (item.stock_alarm) this.goodsData.goods_stock_alarm += parseInt(item.stock_alarm);
|
|
});
|
|
}
|
|
|
|
// 快递运费
|
|
this.goodsData.shipping_template = uni.getStorageSync('editGoodsShippingTemplateId') || 0;
|
|
this.goodsData.is_free_shipping = this.goodsData.shipping_template > 0 ? 0 : 1;
|
|
this.goodsData.template_name = uni.getStorageSync('editGoodsShippingTemplateName') || '';
|
|
|
|
if (uni.getStorageSync('editGoodsState') !== undefined && uni.getStorageSync('editGoodsState') !== '') {
|
|
this.goodsData.goods_state = uni.getStorageSync('editGoodsState');
|
|
}
|
|
|
|
if (uni.getStorageSync('editGoodsContent') != undefined && uni.getStorageSync('editGoodsContent') != '') {
|
|
this.goodsData.goods_content = uni.getStorageSync('editGoodsContent');
|
|
}
|
|
// 商品参数
|
|
this.goodsData.goods_attr_class = uni.getStorageSync('editGoodsAttrClass') || 0;
|
|
this.goodsData.goods_attr_name = uni.getStorageSync('editGoodsAttrName') || '';
|
|
this.goodsData.goods_attr_format = uni.getStorageSync('editGoodsAttrFormat') ? JSON.parse(uni.getStorageSync('editGoodsAttrFormat')) : [];
|
|
this.$forceUpdate();
|
|
},
|
|
// 验证
|
|
verify() {
|
|
|
|
if (this.goodsData.goodsname.length == 0) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.pleaseEnterGoodsName')
|
|
});
|
|
return false;
|
|
}
|
|
|
|
if (this.goodsData.subtitle.length > 100) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.subtitleMaxLength', { max: 100 })
|
|
});
|
|
return false;
|
|
}
|
|
|
|
if (this.goodsData.goods_image.length == 0) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.pleaseUploadGoodsImage')
|
|
});
|
|
return false;
|
|
}
|
|
|
|
|
|
// if (!this.shopCategoryData.store_0.category_id) {
|
|
// this.$util.showToast({
|
|
// title: `请选择商品分类`
|
|
// });
|
|
// return false;
|
|
// }
|
|
|
|
// if (this.goodsData.goods_class == 2 && this.goodsData.virtual_deliver_type == 'verify') {
|
|
// if (this.goodsData.verify_validity_type == 1) {
|
|
// if (this.virtualIndate.length == 0) {
|
|
// this.$util.showToast({
|
|
// title: '请输入有效期'
|
|
// });
|
|
// return false;
|
|
// }
|
|
// if (isNaN(this.virtualIndate) || !this.$util.data().regExp.number.test(this.virtualIndate)) {
|
|
// this.$util.showToast({
|
|
// title: '[有效期]格式输入错误'
|
|
// });
|
|
// return false;
|
|
// }
|
|
// if (this.virtualIndate < 1) {
|
|
// this.$util.showToast({
|
|
// title: '有效期不能小于1天'
|
|
// });
|
|
// return false;
|
|
// }
|
|
// }
|
|
|
|
// if (this.goodsData.verify_validity_type == 2) {
|
|
// if (this.virtualTime.length == 0) {
|
|
// this.$util.showToast({
|
|
// title: '请设置有效期'
|
|
// });
|
|
// return false;
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
|
|
// 单规格
|
|
if (this.goodsData.price == 0) {
|
|
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.pleaseEnterSalePrice')
|
|
});
|
|
return false;
|
|
}
|
|
if (isNaN(this.goodsData.price) || !this.$util.data().regExp.digit.test(this.goodsData.price)) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.salePriceFormatError')
|
|
});
|
|
return false;
|
|
}
|
|
|
|
if (this.goodsData.productprice.length > 0 && (isNaN(this.goodsData.productprice) || !this.$util.data().regExp.digit.test(this.goodsData.productprice))) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.originalPriceFormatError')
|
|
});
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
// 总库存
|
|
if (this.goodsData.total == 0) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.pleaseEnterStock')
|
|
});
|
|
return false;
|
|
}
|
|
|
|
if (isNaN(this.goodsData.total) || !this.$util.data().regExp.number.test(this.goodsData.total)) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.stockFormatError')
|
|
});
|
|
return false;
|
|
}
|
|
if (isNaN(this.goodsData.goods_start_count) || !this.$util.data().regExp.number.test(this.goodsData.goods_start_count)) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.minOrderFormatError')
|
|
});
|
|
return false;
|
|
}
|
|
if (this.goodsData.goods_start_count < 0) {
|
|
this.$util.showToast({
|
|
title: this.$lang('merch.edit.message.minOrderNotLessThanZero')
|
|
});
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
|
|
},
|
|
// 删除本地缓存
|
|
clearStoreage() {
|
|
|
|
// 临时选择的商品图片
|
|
uni.removeStorageSync("selectedAlbumImg");
|
|
uni.removeStorageSync("selectedAlbumImgTemp");
|
|
|
|
// 商品规格
|
|
uni.removeStorageSync("editGoodsSpecFormat");
|
|
uni.removeStorageSync("editGoodsSkuData");
|
|
|
|
//电子卡密
|
|
uni.removeStorageSync("editGoodsCarmichael");
|
|
uni.removeStorageSync("specName");
|
|
|
|
// 物流公司
|
|
uni.removeStorageSync("editGoodsShippingTemplateId");
|
|
uni.removeStorageSync("editGoodsShippingTemplateName");
|
|
|
|
// 商品状态
|
|
uni.removeStorageSync("editGoodsState");
|
|
|
|
// 商品详情
|
|
uni.removeStorageSync("editGoodsContent");
|
|
|
|
// 商品参数
|
|
uni.removeStorageSync("editGoodsAttrClass");
|
|
uni.removeStorageSync("editGoodsAttrName");
|
|
uni.removeStorageSync("editGoodsAttrFormat");
|
|
},
|
|
save() {
|
|
if (!this.verify()) return;
|
|
if (this.repeatFlag) return;
|
|
this.repeatFlag = true;
|
|
this.$api.sendRequest({
|
|
url: 'app.addgoods',
|
|
data:this.goodsData,
|
|
success: res => {
|
|
this.$util.showToast({
|
|
title: res.result.message
|
|
});
|
|
if (res.status == 1) {
|
|
setTimeout(() => {
|
|
this.$util.redirectTo('/pages_goods/list', {}, 'redirectTo');
|
|
}, 1000);
|
|
} else {
|
|
this.repeatFlag = false;
|
|
}
|
|
}
|
|
})
|
|
|
|
// 清空规格的图片
|
|
return false
|
|
for (var i = 0; i < this.goodsData.goods_sku_data.length; i++) {
|
|
if (this.goodsData.goods_sku_data[i].sku_images.length == 0) this.goodsData.goods_sku_data[i].sku_image = '';
|
|
}
|
|
var data = JSON.parse(JSON.stringify(this.goodsData));
|
|
delete data.category_name;
|
|
|
|
data.category_json = [];
|
|
data.category_id = '';
|
|
|
|
for (var key in this.shopCategoryData) {
|
|
if (this.shopCategoryData[key].category_id) {
|
|
data.category_id += ',' + this.shopCategoryData[key].category_id;
|
|
data.category_json.push(this.shopCategoryData[key].category_id);
|
|
}
|
|
}
|
|
data.category_id += ',';
|
|
data.category_json = JSON.stringify(data.category_json);
|
|
if (data.goods_spec_format.length == 0) {
|
|
// 单规格数据
|
|
var singData = {
|
|
sku_id: (data.goods_id ? data.sku_id : 0),
|
|
sku_name: data.goods_name,
|
|
spec_name: '',
|
|
sku_no: data.sku_no,
|
|
sku_spec_format: '',
|
|
price: data.price,
|
|
market_price: data.market_price,
|
|
cost_price: data.cost_price,
|
|
stock: data.goods_stock,
|
|
stock_alarm: data.goods_stock_alarm,
|
|
weight: data.weight,
|
|
volume: this.goodsData.volume,
|
|
sku_image: data.goods_image[0],
|
|
sku_images: data.goods_image.toString(),
|
|
// verify_num: data.goods_sku_data.length > 0 ? data.goods_sku_data[0].verify_num : this.goodsData.verify_num
|
|
verify_num: data.verify_num
|
|
}
|
|
var singleSkuData = JSON.stringify([singData]);
|
|
}
|
|
data.goods_image = data.goods_image.toString();
|
|
// 商品规格json格式
|
|
data.goods_spec_format = data.goods_spec_format.length > 0 ? JSON.stringify(data.goods_spec_format) : '';
|
|
|
|
// SKU商品数据
|
|
data.goods_sku_data = data.goods_spec_format.length > 0 ? JSON.stringify(data.goods_sku_data) :
|
|
singleSkuData;
|
|
|
|
// 商品参数json格式
|
|
data.goods_attr_format = data.goods_attr_format.length > 0 ? JSON.stringify(data.goods_attr_format) : '';
|
|
|
|
data.spec_type_status = data.goods_spec_format.length > 0 ? 1 : 0;
|
|
|
|
if (this.goodsData.verify_validity_type == 1) {
|
|
data.virtual_indate = this.virtualIndate;
|
|
} else if (this.goodsData.verify_validity_type == 2) {
|
|
data.virtual_indate = this.virtualTime;
|
|
}
|
|
// data.carmichael= data.carmichael
|
|
// }
|
|
var save = null;
|
|
if (data.goods_class == 3) {
|
|
save = addVirtualCardGoods;
|
|
if (data.goods_id) save = editVirtualCardGoods;
|
|
}else if (data.goods_class == 2){
|
|
save = addVirtualGoods;
|
|
if (data.goods_id) save = editVirtualGoods;
|
|
}else {
|
|
save = addGoods;
|
|
if (data.goods_id) save = editGoods;
|
|
}
|
|
data.goods_form = this.goodsData.goods_form_index ? this.goodsForm[this.goodsData.goods_form_index - 1].id : 0;
|
|
|
|
data.supplier_id = this.goodsData.supply_index ? this.supplyForm[this.goodsData.supply_index - 1].supplier_id : 0;
|
|
if (this.repeatFlag) return;
|
|
this.repeatFlag = true;
|
|
save(data).then(res=>{
|
|
this.$util.showToast({
|
|
title: res.message
|
|
});
|
|
if (res.code == 0) {
|
|
this.clearStoreage();
|
|
setTimeout(() => {
|
|
this.$util.redirectTo('/pages_goods/list', {}, 'tabbar');
|
|
}, 1000);
|
|
} else {
|
|
this.repeatFlag = false;
|
|
}
|
|
});
|
|
},
|
|
//是否开启限购
|
|
onLimit() {
|
|
this.goodsData.is_limit = this.goodsData.is_limit == 1 ? 0 : 1
|
|
},
|
|
|
|
//限购类型
|
|
limitChange(e) {
|
|
this.goodsData.limit_type = e
|
|
},
|
|
/**
|
|
* 是否参与会员折扣
|
|
*/
|
|
joinMemberDiscount() {
|
|
this.goodsData.is_consume_discount = this.goodsData.is_consume_discount == 1 ? 0 : 1;
|
|
},
|
|
switchBtn(type) {
|
|
this.goodsData[type] = this.goodsData[type] == 1 ? 0 : 1;
|
|
},
|
|
/**
|
|
* 推荐方式选择
|
|
* @param {Object} e
|
|
*/
|
|
recommendWayChange(e) {
|
|
this.goodsData.recommend_way = e.detail.value;
|
|
},
|
|
/**
|
|
* 发货选择
|
|
* @param {Object} e
|
|
*/
|
|
virtualDeliverTypeChange(e) {
|
|
this.goodsData.virtual_deliver_type = this.virtualDeliverArray[e.detail.value]['value'];
|
|
},
|
|
/**
|
|
* 收货选择
|
|
* @param {Object} e
|
|
*/
|
|
virtualReceiveTypeChange(e) {
|
|
this.goodsData.virtual_receive_type = this.virtualReceiveArray[e.detail.value]['value'];
|
|
},
|
|
/**
|
|
* 核销有效期类型
|
|
* @param {Object} e
|
|
*/
|
|
validityTypeChange(e) {
|
|
this.goodsData.verify_validity_type = e.detail.value;
|
|
},
|
|
/**
|
|
* 核销有效期选择
|
|
* @param {Object} e
|
|
*/
|
|
virtualTimeChange(e) {
|
|
this.virtualTime = e.detail.value;
|
|
},
|
|
|
|
/**
|
|
* 团购开始时间选择
|
|
* @param {Object} e
|
|
*/
|
|
beginChange(e) {
|
|
this.goodsData.begin_time = e.detail.value;
|
|
},
|
|
/**
|
|
* 团购结束时间选择
|
|
* @param {Object} e
|
|
*/
|
|
endChange(e) {
|
|
this.goodsData.end_time = e.detail.value;
|
|
},
|
|
|
|
/**
|
|
* 是否需要核销
|
|
*/
|
|
isNeedVerify() {
|
|
this.goodsData.is_need_verify = this.goodsData.is_need_verify == 1 ? 0 : 1;
|
|
},
|
|
/**
|
|
* 获取商品表单
|
|
*/
|
|
getGoodsForm() {
|
|
getOrderFormList().then(res=>{
|
|
if (res.data) {
|
|
let goodsForm = [this.$lang('merch.edit.placeholder.selectGoodsForm')];
|
|
res.data.forEach((item, index) => {
|
|
goodsForm.push(item.form_name);
|
|
if (this.goodsData.form_id && this.goodsData.form_id == item.id) this.goodsData.goods_form_index = index + 1;
|
|
})
|
|
this.goodsForm = res.data;
|
|
this.goodsFormArray = goodsForm;
|
|
this.$forceUpdate();
|
|
}
|
|
})
|
|
},
|
|
goodsFormChange(e) {
|
|
this.goodsData.goods_form_index = e.detail.value;
|
|
this.$forceUpdate();
|
|
},
|
|
/**
|
|
* 获取供应商
|
|
*/
|
|
getSupplyList() {
|
|
getSupplyList().then(res=>{
|
|
if (res.data) {
|
|
let supplyForm = [this.$lang('merch.edit.placeholder.selectSupplier')];
|
|
res.data.forEach((item, index) => {
|
|
supplyForm.push(item.title);
|
|
if (this.goodsData.supplier_id && this.goodsData.supplier_id == item.supplier_id) this.goodsData.supply_index = index + 1;
|
|
})
|
|
this.supplyForm = res.data;
|
|
this.supplyFormArray = supplyForm;
|
|
this.$forceUpdate();
|
|
}
|
|
})
|
|
},
|
|
supplyChange(e) {
|
|
this.goodsData.supply_index = e.detail.value;
|
|
this.$forceUpdate();
|
|
}
|
|
}
|
|
}; |