|
|
@@ -143,6 +143,15 @@
|
|
|
padding-left: 10px;
|
|
|
line-height: 30px;
|
|
|
}
|
|
|
+
|
|
|
+ .level-ratio-table {
|
|
|
+ margin-top: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .level-ratio-table .layui-input {
|
|
|
+ width: 100px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
|
|
@@ -696,19 +705,6 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-<!-- <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">-->
|
|
|
-<!-- <div class="grid-demo grid-demo-bg1">-->
|
|
|
-<!-- <div class="layui-form-item">-->
|
|
|
-<!-- <label class="layui-form-label">返利点数</label>-->
|
|
|
-<!-- <div class="layui-input-block">-->
|
|
|
-<!-- <input type="number" name="rebate_ratio" lay-verify="title"-->
|
|
|
-<!-- autocomplete="off"-->
|
|
|
-<!-- placeholder="请输入返利点数" class="layui-input"-->
|
|
|
-<!-- v-model="formData.rebate_ratio">-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
<div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
|
|
|
<div class="grid-demo grid-demo-bg1">
|
|
|
<div class="layui-form-item">
|
|
|
@@ -721,46 +717,43 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 在这里添加等级返利设置 -->
|
|
|
- <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
|
|
|
- <div class="grid-demo grid-demo-bg1">
|
|
|
- <div class="layui-form-item">
|
|
|
- <label class="layui-form-label">等级返利设置</label>
|
|
|
- <div class="layui-input-block">
|
|
|
- <input type="radio" name="level_set" lay-filter="level_set" value="1"
|
|
|
- title="开启"
|
|
|
- :checked="formData.level_set == 1 ? true : false">
|
|
|
- <input type="radio" name="level_set" lay-filter="level_set" value="0"
|
|
|
- title="关闭"
|
|
|
- :checked="formData.level_set == 0 ? true : false">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
|
|
|
- <div class="layui-col-xs12 layui-col-sm12 layui-col-md12" v-if="formData.level_set == 1">
|
|
|
+ <!-- 等级返利设置 -->
|
|
|
+ <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
|
|
|
<div class="grid-demo grid-demo-bg1">
|
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label">等级返利比例(%)</label>
|
|
|
<div class="layui-input-block">
|
|
|
- <table class="layui-table">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th width="20%">等级名称</th>
|
|
|
- <th width="20%">返利比例(%)</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tbody>
|
|
|
- <tr v-for="(item, index) in level_radio" :key="index">
|
|
|
- <td>{{ item.level_name }}</td>
|
|
|
- <td>
|
|
|
- <input type="number" v-model="item.ratio" class="layui-input"
|
|
|
- placeholder="请输入返利比例" step="0.01" min="0" max="100">
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- <span class="info">设置每个等级对应的返利百分比</span>
|
|
|
+ <div class="level-ratio-table">
|
|
|
+ <table class="layui-table">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <th width="20%">等级名称</th>
|
|
|
+ <th width="16%">青源客</th>
|
|
|
+ <th width="16%">青润使</th>
|
|
|
+ <th width="16%">青金团</th>
|
|
|
+ <th width="16%">青玉团</th>
|
|
|
+ <th width="16%">青谷团</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td>返利比例(%)</td>
|
|
|
+ <td><input type="number" v-model="level_radio[0].ratio" class="layui-input"
|
|
|
+ placeholder="请输入" step="0.01" min="0" max="100"></td>
|
|
|
+ <td><input type="number" v-model="level_radio[1].ratio" class="layui-input"
|
|
|
+ placeholder="请输入" step="0.01" min="0" max="100"></td>
|
|
|
+ <td><input type="number" v-model="level_radio[2].ratio" class="layui-input"
|
|
|
+ placeholder="请输入" step="0.01" min="0" max="100"></td>
|
|
|
+ <td><input type="number" v-model="level_radio[3].ratio" class="layui-input"
|
|
|
+ placeholder="请输入" step="0.01" min="0" max="100"></td>
|
|
|
+ <td><input type="number" v-model="level_radio[4].ratio" class="layui-input"
|
|
|
+ placeholder="请输入" step="0.01" min="0" max="100"></td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ <span class="info">设置每个等级对应的返利百分比(0-100之间)</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -779,154 +772,25 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <!-- 佣金设置部分已经注释掉 -->
|
|
|
<div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
|
|
|
<div class="grid-demo grid-demo-bg1">
|
|
|
<div class="layui-form-item">
|
|
|
-<!-- <label class="layui-form-label">佣金设置</label>-->
|
|
|
-<!-- <div class="layui-input-block">-->
|
|
|
-<!-- <input type="radio" name="is_sub" lay-filter="is_sub" value="1"-->
|
|
|
-<!-- title="单独设置"-->
|
|
|
-<!-- :checked="formData.is_sub == 1 ? true : false">-->
|
|
|
-<!-- <input type="radio" name="is_sub" lay-filter="is_sub" value="0"-->
|
|
|
-<!-- title="默认设置"-->
|
|
|
-<!-- :checked="formData.is_sub == 0 ? true : false">-->
|
|
|
-<!-- </div>-->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="layui-col-xs12 layui-col-sm12 layui-col-md12"
|
|
|
- v-if="formData.is_sub == 1 && formData.spec_type == 1">
|
|
|
- <div class="grid-demo grid-demo-bg1">
|
|
|
- <div class="layui-form-item">
|
|
|
- <label class="layui-form-label">批量设置</label>
|
|
|
- <div class="layui-input-block">
|
|
|
- <input style="width: 20%;display: inline-block;" type="number"
|
|
|
- name="brokerage" lay-verify="title" autocomplete="off"
|
|
|
- placeholder="请输入一级返佣" class="layui-input"
|
|
|
- v-model="brokerage.brokerage">
|
|
|
- <input style="width: 20%;display: inline-block;" type="number"
|
|
|
- name="brokerage_two" lay-verify="title" autocomplete="off"
|
|
|
- placeholder="请输入二级返佣" class="layui-input"
|
|
|
- v-model="brokerage.brokerage_two">
|
|
|
- <button class="layui-btn layui-btn-sm" style="height: 38px;"
|
|
|
- type="button"
|
|
|
- @click="addBrokerage">批量设置
|
|
|
- </button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 单属性-->
|
|
|
- <div class="layui-col-xs12 layui-col-sm12 layui-col-md12"
|
|
|
- v-if="formData.spec_type == 0 && formData.is_sub == 1">
|
|
|
- <div class="grid-demo grid-demo-bg1">
|
|
|
- <div class="layui-form-item">
|
|
|
- <label class="layui-form-label">商品属性:</label>
|
|
|
- <div class="layui-input-block">
|
|
|
- <table class="layui-table">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th>图片</th>
|
|
|
- <th>售价</th>
|
|
|
- <th>积分</th>
|
|
|
- <th>成本价</th>
|
|
|
- <th>原价</th>
|
|
|
- <th>库存</th>
|
|
|
- <th>产品编号</th>
|
|
|
- <th>重量</th>
|
|
|
- <th>体积</th>
|
|
|
- <th>一级返佣</th>
|
|
|
- <th>二级返佣</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tr>
|
|
|
- <td>
|
|
|
- <div class="pictrueBox">
|
|
|
- <div class="pictrue" v-if="formData.attr.pic">
|
|
|
- <img :src="formData.attr.pic">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </td>
|
|
|
- <td>{{formData.attr.price}}</td>
|
|
|
- <td>{{formData.attr.integral}}</td>
|
|
|
- <td>{{formData.attr.cost}}</td>
|
|
|
- <td>{{formData.attr.ot_price}}</td>
|
|
|
- <td>{{formData.attr.stock}}</td>
|
|
|
- <td>{{formData.attr.bar_code}}</td>
|
|
|
- <td>{{formData.attr.weight}}</td>
|
|
|
- <td>{{formData.attr.volume}}</td>
|
|
|
- <td><input type="text" v-model="formData.attr.brokerage"
|
|
|
- class="layui-input"></td>
|
|
|
- <td><input type="text" v-model="formData.attr.brokerage_two"
|
|
|
- class="layui-input"></td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 单属性结束-->
|
|
|
- <!-- 多属性-->
|
|
|
- <div class="layui-col-xs12 layui-col-sm12 layui-col-md12"
|
|
|
- v-if="formData.attrs.length && formHeader.length && formData.is_sub == 1 && formData.spec_type == 1">
|
|
|
- <div class="grid-demo grid-demo-bg1" style="margin-top: 20px">
|
|
|
- <div class="layui-form-item">
|
|
|
- <label class="layui-form-label">商品属性:</label>
|
|
|
- <div class="layui-input-block">
|
|
|
- <table class="layui-table">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th v-for="(item,index) in formHeader"
|
|
|
- v-if="item.slot != 'action'">
|
|
|
- {{item.title}}
|
|
|
- </th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tr v-for="(item,index) in formData.attrs">
|
|
|
- <td v-for="(n,v) in item.detail">{{n}}</td>
|
|
|
- <td>
|
|
|
- <div class="pictrueBox">
|
|
|
- <div class="pictrue" v-if="item.pic"><img
|
|
|
- :src="item.pic"></div>
|
|
|
- </div>
|
|
|
- </td>
|
|
|
- <td>{{item.price}}</td>
|
|
|
- <td>{{item.integral}}</td>
|
|
|
- <td>{{item.cost}}</td>
|
|
|
- <td>{{item.ot_price}}</td>
|
|
|
- <td>{{item.stock}}</td>
|
|
|
- <td>{{item.bar_code}}</td>
|
|
|
- <td>{{item.weight}}</td>
|
|
|
- <td>{{item.volume}}</td>
|
|
|
- <td>
|
|
|
- <input type="number" v-model="item.brokerage"
|
|
|
- class="layui-input">
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <input type="number" v-model="item.brokerage_two"
|
|
|
- class="layui-input">
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
+ <!-- <label class="layui-form-label">佣金设置</label>-->
|
|
|
+ <!-- <div class="layui-input-block">-->
|
|
|
+ <!-- <input type="radio" name="is_sub" lay-filter="is_sub" value="1"-->
|
|
|
+ <!-- title="单独设置"-->
|
|
|
+ <!-- :checked="formData.is_sub == 1 ? true : false">-->
|
|
|
+ <!-- <input type="radio" name="is_sub" lay-filter="is_sub" value="0"-->
|
|
|
+ <!-- title="默认设置"-->
|
|
|
+ <!-- :checked="formData.is_sub == 0 ? true : false">-->
|
|
|
+ <!-- </div>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!--多属性结束-->
|
|
|
|
|
|
- <!-- <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">-->
|
|
|
- <!-- <div class="grid-demo grid-demo-bg1">-->
|
|
|
- <!-- <div class="layui-form-item">-->
|
|
|
- <!-- <label class="layui-form-label">商品状态</label>-->
|
|
|
- <!-- <div class="layui-input-block">-->
|
|
|
- <!-- <input type="radio" name="is_show" lay-filter="is_show" value="1" title="上架"-->
|
|
|
- <!-- :checked="formData.is_show == 1 ? true : false">-->
|
|
|
- <!-- <input type="radio" name="is_show" lay-filter="is_show" value="0" title="下架"-->
|
|
|
- <!-- :checked="formData.is_show == 0 ? true : false">-->
|
|
|
- <!-- </div>-->
|
|
|
- <!-- </div>-->
|
|
|
- <!-- </div>-->
|
|
|
- <!-- </div>-->
|
|
|
+ <!-- 其他设置保持原样 -->
|
|
|
<div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
|
|
|
<div class="grid-demo grid-demo-bg1">
|
|
|
<div class="layui-form-item">
|
|
|
@@ -1017,28 +881,6 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-<!-- <div class="layui-row layui-col-space15">-->
|
|
|
-<!-- <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">-->
|
|
|
-<!-- <div class="grid-demo grid-demo-bg1">-->
|
|
|
-<!-- <div class="layui-form-item">-->
|
|
|
-<!-- <label class="layui-form-label">活动优先级</label>-->
|
|
|
-<!-- <div class="layui-input-block">-->
|
|
|
-<!-- <span class="layui-btn layui-btn-sm layui-btn-normal"-->
|
|
|
-<!-- :style="'background-color:'+activity[item]"-->
|
|
|
-<!-- v-for="(item,index) in formData.activity" :key="index"-->
|
|
|
-<!-- draggable="true"-->
|
|
|
-<!-- @dragstart="handleDragStart($event, item)"-->
|
|
|
-<!-- @dragover.prevent="handleDragOver($event, item)"-->
|
|
|
-<!-- @dragenter="handleDragEnter($event, item)"-->
|
|
|
-<!-- @dragend="handleDragEnd($event, item)">-->
|
|
|
-<!-- {{item}}-->
|
|
|
-<!-- </span>-->
|
|
|
-<!-- <span class="info">可拖动按钮调整活动的优先展示顺序</span>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -1093,7 +935,6 @@
|
|
|
upload: {
|
|
|
videoIng: false
|
|
|
},
|
|
|
-
|
|
|
formData: {
|
|
|
cate_id: [],
|
|
|
temp_id: 0,
|
|
|
@@ -1174,19 +1015,7 @@
|
|
|
activity: {'秒杀': '#1E9FFF', '砍价': '#189688', '拼团': '#FEB900'},
|
|
|
attr: [],//临时属性
|
|
|
newRule: false,//是否添加新规则
|
|
|
- // ... 其他已有数据保持不变
|
|
|
- level_set: 0,
|
|
|
- level_radio: [
|
|
|
- { level_name: '青源客', ratio: '' },
|
|
|
- { level_name: '青润使', ratio: '' },
|
|
|
- { level_name: '青金团', ratio: '' },
|
|
|
- { level_name: '青玉团', ratio: '' },
|
|
|
- { level_name: '青谷团', ratio: '' }
|
|
|
- ],
|
|
|
- // 添加level_set到radioRule数组中
|
|
|
- radioRule: ['store_type', 'is_sub', 'is_show', 'is_hot', 'is_benefit', 'is_new', 'is_good', 'is_best','is_wholesale', 'spec_type', 'level_set'],
|
|
|
- // ... 其他数据保持不变
|
|
|
- // radioRule: ['store_type', 'is_sub', 'is_show', 'is_hot', 'is_benefit', 'is_new', 'is_good', 'is_best','is_wholesale', 'spec_type'],//radio 当选规则
|
|
|
+ radioRule: ['store_type', 'is_sub', 'is_show', 'is_hot', 'is_benefit', 'is_new', 'is_good', 'is_best','is_wholesale', 'spec_type'],//radio 当选规则
|
|
|
rule: { //多图选择规则
|
|
|
slider_image: {
|
|
|
maxLength: 5
|
|
|
@@ -1199,6 +1028,14 @@
|
|
|
form: null,//layui.form
|
|
|
layTabId: 1,
|
|
|
ruleBool: id ? true : false,
|
|
|
+ // 等级返利设置
|
|
|
+ level_radio: [
|
|
|
+ { level_name: '青源客', ratio: '' },
|
|
|
+ { level_name: '青润使', ratio: '' },
|
|
|
+ { level_name: '青金团', ratio: '' },
|
|
|
+ { level_name: '青玉团', ratio: '' },
|
|
|
+ { level_name: '青谷团', ratio: '' }
|
|
|
+ ],
|
|
|
},
|
|
|
watch: {
|
|
|
'formData.is_sub': function (n) {
|
|
|
@@ -1223,10 +1060,6 @@
|
|
|
// this.formData.attr.pic = n;
|
|
|
// }
|
|
|
// }
|
|
|
- // ... 其他watch保持不变
|
|
|
- 'formData.level_set': function(n) {
|
|
|
- // 处理level_set变化
|
|
|
- },
|
|
|
},
|
|
|
methods: {
|
|
|
back: function () {
|
|
|
@@ -1336,17 +1169,17 @@
|
|
|
a: 'get_product_info',
|
|
|
q: {id: that.id}
|
|
|
})).then(function (res) {
|
|
|
- // ... 原有的数据处理代码保持不变
|
|
|
-
|
|
|
+ that.$set(that, 'cateList', res.data.cateList);
|
|
|
+ that.$set(that, 'tempList', res.data.tempList);
|
|
|
+ that.$set(that, 'merList', res.data.merList);
|
|
|
var productInfo = res.data.productInfo || {};
|
|
|
if (productInfo.id && that.id) {
|
|
|
that.$set(that, 'formData', productInfo);
|
|
|
// 处理等级返利数据
|
|
|
if (productInfo.level_radio && productInfo.level_radio.length > 0) {
|
|
|
that.$set(that, 'level_radio', productInfo.level_radio);
|
|
|
- that.formData.level_set = 1;
|
|
|
} else {
|
|
|
- // 如果没有数据,重置为初始值
|
|
|
+ // 如果没有数据,保持初始值
|
|
|
that.$set(that, 'level_radio', [
|
|
|
{ level_name: '青源客', ratio: '' },
|
|
|
{ level_name: '青润使', ratio: '' },
|
|
|
@@ -1354,19 +1187,9 @@
|
|
|
{ level_name: '青玉团', ratio: '' },
|
|
|
{ level_name: '青谷团', ratio: '' }
|
|
|
]);
|
|
|
- that.formData.level_set = 0;
|
|
|
}
|
|
|
that.generate();
|
|
|
}
|
|
|
- // ... 后续代码保持不变
|
|
|
- that.$set(that, 'cateList', res.data.cateList);
|
|
|
- that.$set(that, 'tempList', res.data.tempList);
|
|
|
- that.$set(that, 'merList', res.data.merList);
|
|
|
- var productInfo = res.data.productInfo || {};
|
|
|
- if (productInfo.id && that.id) {
|
|
|
- that.$set(that, 'formData', productInfo);
|
|
|
- that.generate();
|
|
|
- }
|
|
|
that.getRuleList();
|
|
|
that.init();
|
|
|
}).catch(function (res) {
|
|
|
@@ -1709,25 +1532,6 @@
|
|
|
},
|
|
|
handleSubmit: function () {
|
|
|
var that = this, cate_id = $('input[name="cate_id"]').val();
|
|
|
- // ... 原有的验证代码保持不变
|
|
|
-
|
|
|
- // 处理等级返利数据
|
|
|
- if (that.formData.level_set == 1) {
|
|
|
- // 验证等级返利数据
|
|
|
- for (var i = 0; i < that.level_radio.length; i++) {
|
|
|
- var ratio = parseFloat(that.level_radio[i].ratio);
|
|
|
- if (isNaN(ratio) || ratio < 0 || ratio > 100) {
|
|
|
- return that.showMsg('请正确填写等级返利比例(0-100之间)');
|
|
|
- }
|
|
|
- }
|
|
|
- // 将level_radio赋值给formData
|
|
|
- that.formData.level_radio = that.level_radio;
|
|
|
- } else {
|
|
|
- // 关闭时清空数据
|
|
|
- that.formData.level_radio = [];
|
|
|
- }
|
|
|
-
|
|
|
- // ... 后续原有的提交代码保持不变
|
|
|
if (cate_id != '') {
|
|
|
this.formData.cate_id = cate_id.split(',');
|
|
|
}
|
|
|
@@ -1803,6 +1607,22 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 处理等级返利数据
|
|
|
+ that.formData.level_radio = that.level_radio;
|
|
|
+
|
|
|
+ // 验证等级返利数据
|
|
|
+ for (var i = 0; i < that.level_radio.length; i++) {
|
|
|
+ var ratio = that.level_radio[i].ratio;
|
|
|
+ if (ratio === '' || ratio === null || ratio === undefined) {
|
|
|
+ return that.showMsg('请填写所有等级的返利比例');
|
|
|
+ }
|
|
|
+ var ratioNum = parseFloat(ratio);
|
|
|
+ if (isNaN(ratioNum) || ratioNum < 0 || ratioNum > 100) {
|
|
|
+ return that.showMsg('等级返利比例必须在0-100之间');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
that.formData.description = that.getContent();
|
|
|
that.requestPost(that.U({
|
|
|
c: 'store.StoreProduct',
|