diff --git a/src/views/goods/Update.vue b/src/views/goods/Update.vue index 0757a75..f5ae051 100644 --- a/src/views/goods/Update.vue +++ b/src/views/goods/Update.vue @@ -55,26 +55,20 @@ - + - + - + @@ -108,8 +102,14 @@
@@ -129,29 +129,27 @@ v-for="(item, index) in formData.deliveryList" :key="index" :value="item.delivery_id" - >{{ item.name }} + >{{ item.name }}
- 新增模板 + 新增模板 刷新
- + 上架 下架 - + + + + + 提交 + 下一步 @@ -193,17 +191,8 @@ /> - - + + @@ -227,15 +219,16 @@ > 千克 (Kg) - + 下单减库存 付款减库存 @@ -274,12 +267,22 @@ + + 提交 + 上一步 + 下一步 +
- + + + 提交 + 上一步 + 下一步 +
@@ -323,11 +326,9 @@ v-decorator="['serviceIds']" placeholder="请选择服务与承诺" > - {{ item.name }} + {{ + item.name + }}
去新增 @@ -340,7 +341,7 @@ :wrapperCol="wrapperCol" extra="用户端展示的销量 = 初始销量 + 实际销量" > - +
销售区域 @@ -385,9 +386,7 @@ :wrapperCol="wrapperCol" extra="开启后用户购买此商品将获得积分" > - + 开启 关闭 @@ -398,9 +397,7 @@ :wrapperCol="wrapperCol" extra="开启后用户购买此商品可以使用积分进行抵扣" > - + 开启 关闭 @@ -443,17 +440,20 @@ :addonBefore="item.name" addonAfter="折" :inputProps="{ min: 0, max: 9.9 }" - v-decorator="[`alone_grade_equity[grade_id:${item.grade_id}]`, { - initialValue: formData.defaultUserGradeValue[item.grade_id], rules: [{ required: true, message: '折扣率不能为空'}] - }]" + v-decorator="[ + `alone_grade_equity[grade_id:${item.grade_id}]`, + { + initialValue: formData.defaultUserGradeValue[item.grade_id], + rules: [{ required: true, message: '折扣率不能为空' }], + }, + ]" />
-

单独折扣:折扣率范围0.0-9.9,例如: 9.8代表98折,0代表不折扣

+

+ 单独折扣:折扣率范围0.0-9.9,例如: 9.8代表98折,0代表不折扣 +

默认折扣:默认为用户所属会员等级的折扣率

@@ -492,16 +492,17 @@ :addonBefore="item.name" :addonAfter="form.getFieldValue('dealer_money_type') == 10 ? '%' : '元'" :inputProps="{ min: 0, precision: 2 }" - v-decorator="[item.value, { rules: [{ required: true, message: '佣金不能为空'}] }]" + v-decorator="[item.value, { rules: [{ required: true, message: '佣金不能为空' }] }]" /> + + 提交 + 上一步 +
- - 提交 - @@ -530,7 +531,7 @@ export default { MultiSpec, AreasModal }, - data () { + data() { return { // 默认的标签索引 tabKey: 0, @@ -565,64 +566,62 @@ export default { }, watch: { // 监听商品ID变化 - '$route.query.goodsId' (val) { + '$route.query.goodsId'(val) { if (val) { this.goodsId = val this.initData() this.getDataList() } - } + }, }, - created () { + created() { // 初始化数据 this.initData() }, - beforeDestroy () { + beforeDestroy() { // 销毁商品详情 GoodsModel.formData.goods = {} }, methods: { - // 初始化数据 - initData () { + initData() { // 记录商品ID this.goodsId = this.$route.query.goodsId // 获取form所需的数据 this.isLoading = true - GoodsModel.getFromData(this.goodsId) - .then(() => { - // 商品表单数据 - if (!isEmptyObject(this.form.getFieldsValue())) { - // 第一次赋值 - this.form.setFieldsValue(GoodsModel.getFieldsValue()) - // 第二次赋值 (适用于动态渲染的form-item) - this.$nextTick(() => { - this.form.setFieldsValue(GoodsModel.getFieldsValue2()) - this.ruleList = this.formData.goods.rules?this.formData.goods.rules:[] - this.onForceUpdate() - }) - } - this.isLoading = false - }) + GoodsModel.getFromData(this.goodsId).then(() => { + // 商品表单数据 + if (!isEmptyObject(this.form.getFieldsValue())) { + // 第一次赋值 + this.form.setFieldsValue(GoodsModel.getFieldsValue()) + // 第二次赋值 (适用于动态渲染的form-item) + this.$nextTick(() => { + this.form.setFieldsValue(GoodsModel.getFieldsValue2()) + this.onForceUpdate() + }) + } + this.isLoading = false + }) }, // 手动强制更新页面 - onForceUpdate (bool = false) { + onForceUpdate(bool = false) { this.$forceUpdate() // bool为true时再执行一次 $forceUpdate, 特殊情况下需执行两次,原因如下: // 第一次执行 $forceUpdate时, 新元素绑定v-decorator无法获取到form.getFieldValue - bool && setTimeout(() => { - this.$forceUpdate() - }, 10) + bool && + setTimeout(() => { + this.$forceUpdate() + }, 10) }, // 切换tab选项卡 - handleTabs (key) { + handleTabs(key) { this.tabKey = key }, // 刷新分类列表 - onReloadCategoryList () { + onReloadCategoryList() { this.isLoading = true GoodsModel.getCategoryList().then(() => { this.isLoading = false @@ -630,7 +629,7 @@ export default { }, // 刷新服务与承诺列表 - onReloadServiceList () { + onReloadServiceList() { this.isLoading = true GoodsModel.getServiceList().then(() => { this.isLoading = false @@ -638,7 +637,7 @@ export default { }, // 刷新配送模板列表 - onReloadDeliveryList () { + onReloadDeliveryList() { this.isLoading = true GoodsModel.getDeliveryList().then(() => { this.isLoading = false @@ -646,10 +645,12 @@ export default { }, // 确认按钮 - handleSubmit (e) { + handleSubmit(e) { e.preventDefault() // 表单验证 - const { form: { validateFields }, } = this + const { + form: { validateFields },ruleList + } = this validateFields((errors, values) => { // 定位到错误的tab选项卡 if (errors) { @@ -668,7 +669,7 @@ export default { } values.rules = ruleList // 整理商品分类ID集 - values.categoryIds = values.categorys.map(item => item.value) + values.categoryIds = values.categorys.map((item) => item.value) delete values.categorys // 提交到后端api this.onFormSubmit(values) @@ -677,14 +678,24 @@ export default { }, // 定位到错误的tab选项卡 - onTargetTabError (errors) { + onTargetTabError(errors) { // 表单字段与tabKey对应关系 // 只需要必填字段就可 const tabsFieldsMap = [ - ['goods_type', 'goods_name', 'categorys', 'imagesIds', 'delivery_id', 'is_ind_delivery_type', 'delivery_type', 'is_brand', 'is_in_store'], + [ + 'goods_type', + 'goods_name', + 'categorys', + 'imagesIds', + 'delivery_id', + 'is_ind_delivery_type', + 'delivery_type', + 'is_brand', + 'is_in_store', + ], ['spec_type', 'goods_price', 'is_restrict', 'restrict_total', 'restrict_single', 'cost_price'], ['content'], - ['alone_grade_equity', 'first_money', 'second_money', 'third_money'] + ['alone_grade_equity', 'first_money', 'second_money', 'third_money'], ] const field = Object.keys(errors).shift() for (const key in tabsFieldsMap) { @@ -696,11 +707,11 @@ export default { }, // 提交到后端api - onFormSubmit (values) { + onFormSubmit(values) { this.isLoading = true this.isBtnLoading = true GoodsApi.edit({ goodsId: this.goodsId, form: values }) - .then(result => { + .then((result) => { // 显示提示信息 this.$message.success(result.message, 1.5) // 跳转到列表页 @@ -711,11 +722,10 @@ export default { .catch(() => { this.isBtnLoading = false }) - .finally(() => this.isLoading = false) + .finally(() => (this.isLoading = false)) }, - - // 新增记录 - handleAdd() { + // 新增记录 + handleAdd() { const index = this.ruleList.length const newItem = { ...defaultItem, key: index } // 排除的城市id集(已存在的城市id集) @@ -775,28 +785,10 @@ export default { }, }) }, - - } + }, } - +