WIN-2308041133\Administrator před 6 měsíci
rodič
revize
60a09ea9c6

+ 15 - 0
app/admin/controller/store/StoreProduct.php

@@ -338,6 +338,7 @@ class StoreProduct extends AuthController
             ['mer_id',0],
 //            ['level_set', 0],
             ['level_radio', []],
+            ['level_discount', []],
         ], $this->request, false, true);
 //        $admin_id=$this->adminId;
 //        $mer_id = SystemAdmin::where('id',$admin_id)->value('mer_id');
@@ -348,8 +349,10 @@ class StoreProduct extends AuthController
 //        }
 //        $level_set = $data['level_set'];
         $level_radio = $data['level_radio'];
+        $level_discount = $data['level_discount'];
 //        unset($data['level_set']);
         unset($data['level_radio']);
+        unset($data['level_discount']);
         foreach ($data['activity'] as $k => $v) {
             if ($v == '秒杀') {
                 $data['activity'][$k] = 1;
@@ -420,6 +423,12 @@ class StoreProduct extends AuthController
                 }
 //                未完待续
 //            }
+            // 处理代理等级折扣
+            StoreProductLevel::where('product_id',$id)->where('type',2)->delete();
+            foreach ($level_discount as $k => $v) {
+                $level_id = \app\admin\model\system\SystemUserAgentLevel::where('grade',$v['grade'])->value('id');
+                StoreProductLevel::create(['product_id' => $id, 'type' => 2, 'level_id' => $level_id, 'discount' => $v['discount'],'create_time'=>time()]);
+            }
             if ($attr_res) {
                 ProductModel::commitTrans();
                 return Json::success('修改成功!');
@@ -457,6 +466,12 @@ class StoreProduct extends AuthController
                 $level_id = SystemUserLevel::where('grade',$v['grade'])->value('id');
                 StoreProductLevel::create(['product_id' => $id, 'type' => 1, 'level_id' => $level_id, 'ratio' => $v['ratio'],'create_time'=>time()]);
             }
+            // 处理代理等级折扣
+            StoreProductLevel::where('product_id',$id)->where('type',2)->delete();
+            foreach ($level_discount as $k => $v) {
+                $level_id = \app\admin\model\system\SystemUserAgentLevel::where('grade',$v['grade'])->value('id');
+                StoreProductLevel::create(['product_id' => $id, 'type' => 2, 'level_id' => $level_id, 'discount' => $v['discount'],'create_time'=>time()]);
+            }
             if ($attr_res) {
                 ProductModel::commitTrans();
                 return Json::success('添加产品成功!');

+ 116 - 0
app/admin/view/store/store_product/create.php

@@ -759,6 +759,45 @@
                                         </div>
                                     </div>
 
+                                    <!-- 代理等级折扣设置 -->
+                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12" v-if="formData.is_wholesale == 1">
+                                        <div class="grid-demo grid-demo-bg1">
+                                            <div class="layui-form-item">
+                                                <label class="layui-form-label">代理等级折扣(%)</label>
+                                                <div class="layui-input-block">
+                                                    <div class="level-ratio-table">
+                                                        <table class="layui-table">
+                                                            <thead>
+                                                            <tr>
+                                                                <th width="25%">等级名称</th>
+                                                                <th width="25%">社区</th>
+                                                                <th width="25%">代理</th>
+                                                                <th width="25%">董事</th>
+                                                                <th width="25%">执行董事</th>
+                                                            </tr>
+                                                            </thead>
+                                                            <tbody>
+                                                            <tr>
+                                                                <td>折扣比例(%)</td>
+                                                                <td><input type="number" v-model="level_discount[0].discount" class="layui-input"
+                                                                           placeholder="请输入" step="0.01" min="0" max="100"></td>
+                                                                <td><input type="number" v-model="level_discount[1].discount" class="layui-input"
+                                                                           placeholder="请输入" step="0.01" min="0" max="100"></td>
+                                                                <td><input type="number" v-model="level_discount[2].discount" class="layui-input"
+                                                                           placeholder="请输入" step="0.01" min="0" max="100"></td>
+                                                                <td><input type="number" v-model="level_discount[3].discount" 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>
+                                    </div>
+
+
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
@@ -1181,6 +1220,13 @@
                 { level_name: '青玉团', ratio: '', grade: 4 },
                 { level_name: '青谷团', ratio: '', grade: 5 }
             ],
+            // 代理等级折扣设置 - 4个等级
+            level_discount: [
+                { level_name: '社区', discount: '', grade: 1 },
+                { level_name: '代理', discount: '', grade: 2 },
+                { level_name: '董事', discount: '', grade: 3 },
+                { level_name: '执行董事', discount: '', grade: 4 }
+            ],
         },
         watch: {
             'formData.is_sub': function (n) {
@@ -1356,6 +1402,47 @@
                         that.$set(that, 'level_radio', defaultLevels);
                         console.log('最终设置的level_radio:', defaultLevels);
 
+                        // 处理代理等级折扣数据
+                        console.log('获取到的level_discount数据:', productInfo.level_discount);
+
+                        // 初始化默认的代理等级数组
+                        var defaultAgentLevels = [
+                            { level_name: '社区', discount: '', grade: 1 },
+                            { level_name: '代理', discount: '', grade: 2 },
+                            { level_name: '董事', discount: '', grade: 3 },
+                            { level_name: '执行董事', discount: '', grade: 4 }
+                        ];
+
+                        // 检查是否有保存的代理等级折扣数据
+                        if (productInfo.level_discount && productInfo.level_discount.length > 0) {
+                            console.log('有保存的代理等级折扣数据,开始处理...');
+
+                            // 遍历后台返回的数据,更新默认数组中的折扣
+                            productInfo.level_discount.forEach(function(savedItem) {
+                                // 查找对应的等级
+                                var foundIndex = defaultAgentLevels.findIndex(function(defaultItem) {
+                                    // 优先使用grade匹配,如果没有grade则使用level_name匹配
+                                    if (savedItem.grade) {
+                                        return defaultItem.grade == savedItem.grade;
+                                    } else {
+                                        return defaultItem.level_name === savedItem.level_name;
+                                    }
+                                });
+
+                                if (foundIndex !== -1) {
+                                    // 更新折扣
+                                    defaultAgentLevels[foundIndex].discount = savedItem.discount || '';
+                                    console.log('更新代理等级 ' + defaultAgentLevels[foundIndex].level_name + ' 的折扣为: ' + defaultAgentLevels[foundIndex].discount);
+                                }
+                            });
+                        } else {
+                            console.log('没有保存的代理等级折扣数据,使用默认值');
+                        }
+
+                        // 设置到Vue实例
+                        that.$set(that, 'level_discount', defaultAgentLevels);
+                        console.log('最终设置的level_discount:', defaultAgentLevels);
+
                         // 生成商品规格
                         that.generate();
                     } else {
@@ -1367,6 +1454,13 @@
                             { level_name: '青玉团', ratio: '', grade: 4 },
                             { level_name: '青谷团', ratio: '', grade: 5 }
                         ]);
+                        // 新增商品时使用代理等级折扣默认值
+                        that.$set(that, 'level_discount', [
+                            { level_name: '社区', discount: '', grade: 1 },
+                            { level_name: '代理', discount: '', grade: 2 },
+                            { level_name: '董事', discount: '', grade: 3 },
+                            { level_name: '执行董事', discount: '', grade: 4 }
+                        ]);
                     }
 
                     // 获取规则列表并初始化
@@ -1814,6 +1908,28 @@
                     that.formData.level_radio = [];
                 }
 
+                // 处理代理等级折扣数据
+                that.formData.level_discount = that.level_discount;
+                console.log('提交的level_discount数据:', that.level_discount);
+
+                // 验证代理等级折扣数据(改为可选验证,可以不填)
+                var hasLevelDiscount = false;
+                for (var i = 0; i < that.level_discount.length; i++) {
+                    var discount = that.level_discount[i].discount;
+                    if (discount && discount !== '') {
+                        hasLevelDiscount = true;
+                        var discountNum = parseFloat(discount);
+                        if (isNaN(discountNum) || discountNum < 0 || discountNum > 100) {
+                            return that.showMsg('代理等级折扣比例必须在0-100之间');
+                        }
+                    }
+                }
+
+                // 如果有填写代理等级折扣,则设置到formData,否则设置为空数组
+                if (!hasLevelDiscount) {
+                    that.formData.level_discount = [];
+                }
+
                 // 获取编辑器内容
                 that.formData.description = that.getContent();