|
|
@@ -428,13 +428,16 @@
|
|
|
</div>
|
|
|
<div class="layui-form-item rules">
|
|
|
<label class="layui-form-label"></label>
|
|
|
- <button type="button"
|
|
|
- class="layui-btn layui-btn-primary layui-btn-sm"
|
|
|
- v-for="(val,inx) in item.detail">
|
|
|
- {{val}}
|
|
|
- <i class="layui-icon layui-icon-close"
|
|
|
- @click="deleteValue(item,inx)"></i>
|
|
|
- </button>
|
|
|
+ <button type="button"
|
|
|
+ :class="{'layui-btn-primary': !(item.specialDetail && item.specialDetail[val]), 'layui-btn-danger': (item.specialDetail && item.specialDetail[val])}"
|
|
|
+ class="layui-btn layui-btn-sm"
|
|
|
+ v-for="(val,inx) in item.detail"
|
|
|
+ @click="toggleSpecial(item, val)">
|
|
|
+ {{val}}
|
|
|
+ <span v-if="item.specialDetail && item.specialDetail[val]" style="margin-left:2px;font-size:10px">特供</span>
|
|
|
+ <i class="layui-icon layui-icon-close"
|
|
|
+ @click.stop="deleteValue(item,inx)"></i>
|
|
|
+ </button>
|
|
|
<div class="rules rulesBox">
|
|
|
<div class="rules-btn-sm">
|
|
|
<input type="text" v-model="item.detailValue" name="title"
|
|
|
@@ -1166,7 +1169,8 @@
|
|
|
// value: '',
|
|
|
// detailValue:'',
|
|
|
// attrHidden:false,
|
|
|
- // detail:[]
|
|
|
+ // detail:[],
|
|
|
+ // specialDetail:{} //{value: true} 标记特供规格值
|
|
|
// }
|
|
|
],
|
|
|
activity: ['秒杀', '砍价', '拼团'],
|
|
|
@@ -1484,6 +1488,20 @@
|
|
|
}
|
|
|
item.detail.push(item.detailValue);
|
|
|
item.detailValue = '';
|
|
|
+ if (!item.specialDetail) this.$set(item, 'specialDetail', {});
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 切换规格值特供状态
|
|
|
+ * @param item 规格对象
|
|
|
+ * @param val 规格值
|
|
|
+ */
|
|
|
+ toggleSpecial: function (item, val) {
|
|
|
+ if (!item.specialDetail) this.$set(item, 'specialDetail', {});
|
|
|
+ if (item.specialDetail[val]) {
|
|
|
+ this.$set(item.specialDetail, val, false);
|
|
|
+ } else {
|
|
|
+ this.$set(item.specialDetail, val, true);
|
|
|
+ }
|
|
|
},
|
|
|
/**
|
|
|
* 删除某个属性值
|
|
|
@@ -1492,7 +1510,12 @@
|
|
|
* */
|
|
|
deleteValue: function (item, inx) {
|
|
|
if (item.detail.length > 1) {
|
|
|
+ var oldVal = item.detail[inx];
|
|
|
item.detail.splice(inx, 1);
|
|
|
+ // 清理该值的特供标记
|
|
|
+ if (item.specialDetail && item.specialDetail[oldVal]) {
|
|
|
+ this.$delete(item.specialDetail, oldVal);
|
|
|
+ }
|
|
|
} else {
|
|
|
return this.showMsg('请设置至少一个属性');
|
|
|
}
|
|
|
@@ -1548,7 +1571,8 @@
|
|
|
value: this.formDynamic.attrsName,
|
|
|
detailValue: '',
|
|
|
attrHidden: false,
|
|
|
- detail: [this.formDynamic.attrsVal]
|
|
|
+ detail: [this.formDynamic.attrsVal],
|
|
|
+ specialDetail: {}
|
|
|
});
|
|
|
this.formDynamic.attrsName = '';
|
|
|
this.formDynamic.attrsVal = '';
|
|
|
@@ -2004,6 +2028,7 @@
|
|
|
if (rule) {
|
|
|
this.ruleBool = true;
|
|
|
var rule_value = rule.rule_value.map(function (item) {
|
|
|
+ item.specialDetail = item.specialDetail || {};
|
|
|
return item;
|
|
|
});
|
|
|
this.$set(this.formData, 'items', rule_value);
|