WIN-2308041133\Administrator 1 settimana fa
parent
commit
bb4934c4aa

+ 12 - 2
app/admin/controller/store/StoreProduct.php

@@ -4,6 +4,7 @@ namespace app\admin\controller\store;
 
 use app\admin\controller\AuthController;
 use app\models\store\StoreProductLevel;
+use app\models\system\SystemUserLevel;
 use app\models\system\Tree;
 use app\admin\model\store\{
     StoreDescription,
@@ -330,7 +331,7 @@ class StoreProduct extends AuthController
             $data['is_pick']=SystemStore::where('id',$data['mer_id'])->value('is_pick');
 //            var_dump($data);die();
 //        }
-        $level_set = $data['level_set'];
+//        $level_set = $data['level_set'];
         $level_radio = $data['level_radio'];
 //        unset($data['level_set']);
         unset($data['level_radio']);
@@ -397,7 +398,11 @@ class StoreProduct extends AuthController
 
             $attr_res = StoreProductAttr::createProductAttr($attr, $detail, $id);
 //            if ($level_set>0){
-//                StoreProductLevel::where('product_id',$id)->where('type',1)->delete();
+                StoreProductLevel::where('product_id',$id)->where('type',1)->delete();
+                foreach ($level_radio as $k => $v) {
+                    $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()]);
+                }
 //                未完待续
 //            }
             if ($attr_res) {
@@ -432,6 +437,11 @@ class StoreProduct extends AuthController
                 $detail[0]['detail'] = ['规格' => '默认'];
             }
             $attr_res = StoreProductAttr::createProductAttr($attr, $detail, $res['id']);
+            StoreProductLevel::where('product_id',$id)->where('type',1)->delete();
+            foreach ($level_radio as $k => $v) {
+                $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()]);
+            }
             if ($attr_res) {
                 ProductModel::commitTrans();
                 return Json::success('添加产品成功!');

+ 60 - 22
app/admin/view/store/store_product/create.php

@@ -1028,13 +1028,13 @@
             form: null,//layui.form
             layTabId: 1,
             ruleBool: id ? true : false,
-            // 等级返利设置
+            // 等级返利设置 - 添加grade字段,从1到5
             level_radio: [
-                { level_name: '青源客', ratio: '' },
-                { level_name: '青润使', ratio: '' },
-                { level_name: '青金团', ratio: '' },
-                { level_name: '青玉团', ratio: '' },
-                { level_name: '青谷团', ratio: '' }
+                { level_name: '青源客', ratio: '', grade: 1 },
+                { level_name: '青润使', ratio: '', grade: 2 },
+                { level_name: '青金团', ratio: '', grade: 3 },
+                { level_name: '青玉团', ratio: '', grade: 4 },
+                { level_name: '青谷团', ratio: '', grade: 5 }
             ],
         },
         watch: {
@@ -1052,14 +1052,6 @@
                     this.render();
                 }
             },
-            // 'formData.image':function (n) {
-            //     if(!this.batchAttr.pic){
-            //         this.batchAttr.pic = n;
-            //     }
-            //     if(!this.formData.attr.pic){
-            //         this.formData.attr.pic = n;
-            //     }
-            // }
         },
         methods: {
             back: function () {
@@ -1175,17 +1167,63 @@
                     var productInfo = res.data.productInfo || {};
                     if (productInfo.id && that.id) {
                         that.$set(that, 'formData', productInfo);
-                        // 处理等级返利数据
+                        // 处理等级返利数据 - 确保有grade字段
                         if (productInfo.level_radio && productInfo.level_radio.length > 0) {
-                            that.$set(that, 'level_radio', productInfo.level_radio);
+                            // 如果后台返回的数据有grade字段,直接使用
+                            // 如果没有,补充grade字段
+                            var processedLevelRadio = productInfo.level_radio.map(function(item, index) {
+                                // 确保有grade字段,如果没有则根据位置添加
+                                if (!item.hasOwnProperty('grade')) {
+                                    // 根据等级名称匹配grade
+                                    var gradeMap = {
+                                        '青源客': 1,
+                                        '青润使': 2,
+                                        '青金团': 3,
+                                        '青玉团': 4,
+                                        '青谷团': 5
+                                    };
+                                    var grade = gradeMap[item.level_name] || (index + 1);
+                                    return {
+                                        level_name: item.level_name,
+                                        ratio: item.ratio,
+                                        grade: grade
+                                    };
+                                }
+                                return item;
+                            });
+                            // 确保有5个等级,按grade排序
+                            var finalLevelRadio = [];
+                            for (var i = 1; i <= 5; i++) {
+                                var found = processedLevelRadio.find(function(item) {
+                                    return item.grade == i;
+                                });
+                                if (found) {
+                                    finalLevelRadio.push(found);
+                                } else {
+                                    // 如果没有该等级,创建默认值
+                                    var levelNameMap = {
+                                        1: '青源客',
+                                        2: '青润使',
+                                        3: '青金团',
+                                        4: '青玉团',
+                                        5: '青谷团'
+                                    };
+                                    finalLevelRadio.push({
+                                        level_name: levelNameMap[i] || '未知等级',
+                                        ratio: '',
+                                        grade: i
+                                    });
+                                }
+                            }
+                            that.$set(that, 'level_radio', finalLevelRadio);
                         } else {
-                            // 如果没有数据,保持初始值
+                            // 如果没有数据,使用默认
                             that.$set(that, 'level_radio', [
-                                { level_name: '青源客', ratio: '' },
-                                { level_name: '青润使', ratio: '' },
-                                { level_name: '青金团', ratio: '' },
-                                { level_name: '青玉团', ratio: '' },
-                                { level_name: '青谷团', ratio: '' }
+                                { level_name: '青源客', ratio: '', grade: 1 },
+                                { level_name: '青润使', ratio: '', grade: 2 },
+                                { level_name: '青金团', ratio: '', grade: 3 },
+                                { level_name: '青玉团', ratio: '', grade: 4 },
+                                { level_name: '青谷团', ratio: '', grade: 5 }
                             ]);
                         }
                         that.generate();