WIN-2308041133\Administrator 1 week geleden
bovenliggende
commit
4ef3c54fa7
2 gewijzigde bestanden met toevoegingen van 88 en 268 verwijderingen
  1. 6 6
      app/admin/controller/store/StoreProduct.php
  2. 82 262
      app/admin/view/store/store_product/create.php

+ 6 - 6
app/admin/controller/store/StoreProduct.php

@@ -276,7 +276,7 @@ class StoreProduct extends AuthController
             ['level_name' => '青谷团', 'ratio' => 5.0]
         ];
         $data['level_radio'] = $level_radio;
-        $data['level_set'] = 1;
+//        $data['level_set'] = 1;
         return JsonService::successful($data);
     }
 
@@ -320,7 +320,7 @@ class StoreProduct extends AuthController
             ['activity', []],
             ['store_type', 1],
             ['mer_id',0],
-            ['level_set', 0],
+//            ['level_set', 0],
             ['level_radio', []],
         ], $this->request, false, true);
 //        $admin_id=$this->adminId;
@@ -332,7 +332,7 @@ class StoreProduct extends AuthController
 //        }
         $level_set = $data['level_set'];
         $level_radio = $data['level_radio'];
-        unset($data['level_set']);
+//        unset($data['level_set']);
         unset($data['level_radio']);
         foreach ($data['activity'] as $k => $v) {
             if ($v == '秒杀') {
@@ -396,10 +396,10 @@ class StoreProduct extends AuthController
             }
 
             $attr_res = StoreProductAttr::createProductAttr($attr, $detail, $id);
-            if ($level_set>0){
-                StoreProductLevel::where('product_id',$id)->where('type',1)->delete();
+//            if ($level_set>0){
+//                StoreProductLevel::where('product_id',$id)->where('type',1)->delete();
 //                未完待续
-            }
+//            }
             if ($attr_res) {
                 ProductModel::commitTrans();
                 return Json::success('修改成功!');

+ 82 - 262
app/admin/view/store/store_product/create.php

@@ -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',