WIN-2308041133\Administrator 6 日 前
コミット
d2db5e8903
1 ファイル変更223 行追加31 行削除
  1. 223 31
      app/admin/view/store/store_product/create.php

+ 223 - 31
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>
@@ -630,6 +639,21 @@
                                         </div>
                                     </div>
                                 </div>
+                                <div class="layui-col-xs12 layui-col-sm6 layui-col-md6">
+                                    <div class="grid-demo grid-demo-bg1">
+                                        <div class="layui-form-item">
+                                            <label class="layui-form-label">门店选择<i class="red">*</i></label>
+                                            <div class="layui-input-block">
+                                                <select name="mer_id" lay-filter="mer_id">
+                                                    <option value="0">请选择</option>
+                                                    <option :value="item.id" v-for="item in merList"
+                                                            :selected=" item.id == formData.mer_id ? true : false ">{{item.store_name}}</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+
                                 <div class="layui-row layui-col-space15">
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
@@ -650,7 +674,7 @@
                             </div>
                             <div class="layui-tab-item">
                                 <div class="layui-row layui-col-space15">
-                                    <textarea type="text/plain" name="description" id="myEditor" style="width:100%;">{{formData.description}}</textarea>
+                                    <textarea type="text/plain" name="description" id="myEditor" style="width:100%;"></textarea>
                                 </div>
                             </div>
                             <div class="layui-tab-item">
@@ -668,6 +692,19 @@
                                             </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">
@@ -680,6 +717,48 @@
                                             </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">
+                                                    <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>
+                                    </div>
+
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
@@ -693,6 +772,8 @@
                                             </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">
@@ -708,6 +789,8 @@
                                             </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">
@@ -730,7 +813,8 @@
                                             </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">
@@ -779,8 +863,8 @@
                                             </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">
@@ -826,21 +910,8 @@
                                             </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">
@@ -916,6 +987,23 @@
                                             </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_wholesale" lay-filter="is_wholesale" value="1"
+                                                           title="开启"
+                                                           :checked="formData.is_wholesale == 1 ? true : false">
+                                                    <input type="radio" name="is_wholesale" lay-filter="is_wholesale" value="0"
+                                                           title="关闭"
+                                                           :checked="formData.is_wholesale == 0 ? true : false">
+                                                </div>
+                                            </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">
@@ -987,12 +1075,15 @@
             cateList: [],
             //运费模板
             tempList: [],
+            //门店
+            merList: [],
             upload: {
                 videoIng: false
             },
             formData: {
                 cate_id: [],
                 temp_id: 0,
+                mer_id: 0,
                 commission: 0,
                 store_name: '',
                 keyword: '',
@@ -1020,6 +1111,7 @@
                 attrs: [],
                 description: '',
                 ficti: 0,
+                rebate_ratio: 0,
                 give_integral: 0,
                 sort: 0,
                 is_show: 1,
@@ -1027,6 +1119,7 @@
                 is_benefit: 0,
                 is_best: 0,
                 is_new: 0,
+                is_wholesale: 0,
                 is_good: 0,
                 store_type: 1,
                 is_sub: 0,
@@ -1067,7 +1160,7 @@
             activity: {'秒杀': '#1E9FFF', '砍价': '#189688', '拼团': '#FEB900'},
             attr: [],//临时属性
             newRule: false,//是否添加新规则
-            radioRule: ['store_type', 'is_sub', 'is_show', 'is_hot', 'is_benefit', 'is_new', 'is_good', 'is_best', '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
@@ -1080,6 +1173,14 @@
             form: null,//layui.form
             layTabId: 1,
             ruleBool: id ? true : false,
+            // 等级返利设置 - 添加grade字段,从1到5
+            level_radio: [
+                { 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: {
             'formData.is_sub': function (n) {
@@ -1096,14 +1197,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 () {
@@ -1204,7 +1297,7 @@
 
             },
             /**
-             * 获取商品信息
+             * 获取商品信息 - 修复等级返利数据填充问题
              * */
             getProductInfo: function () {
                 var that = this;
@@ -1215,11 +1308,68 @@
                 })).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) {
+                        // 将产品信息赋值给formData
                         that.$set(that, 'formData', productInfo);
+
+                        // 修复等级返利数据填充问题
+                        console.log('获取到的level_radio数据:', productInfo.level_radio);
+
+                        // 初始化默认的等级数组
+                        var defaultLevels = [
+                            { 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 }
+                        ];
+
+                        // 检查是否有保存的等级返利数据
+                        if (productInfo.level_radio && productInfo.level_radio.length > 0) {
+                            console.log('有保存的等级返利数据,开始处理...');
+
+                            // 遍历后台返回的数据,更新默认数组中的比例
+                            productInfo.level_radio.forEach(function(savedItem) {
+                                // 查找对应的等级
+                                var foundIndex = defaultLevels.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) {
+                                    // 更新比例
+                                    defaultLevels[foundIndex].ratio = savedItem.ratio || '';
+                                    console.log('更新等级 ' + defaultLevels[foundIndex].level_name + ' 的比例为: ' + defaultLevels[foundIndex].ratio);
+                                }
+                            });
+                        } else {
+                            console.log('没有保存的等级返利数据,使用默认值');
+                        }
+
+                        // 设置到Vue实例
+                        that.$set(that, 'level_radio', defaultLevels);
+                        console.log('最终设置的level_radio:', defaultLevels);
+
+                        // 生成商品规格
                         that.generate();
+                    } else {
+                        // 新增商品时使用默认值
+                        that.$set(that, 'level_radio', [
+                            { 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.getRuleList();
                     that.init();
                 }).catch(function (res) {
@@ -1470,9 +1620,13 @@
                     return $btn;
 
                 });
-                //实例化编辑器
+                //实例化编辑器 - 关键修复:保留原版的设置方式
                 this.um = UM.getEditor('myEditor', {initialFrameWidth: '99%', initialFrameHeight: 400});
-                this.um.setContent(that.formData.description);
+                // 关键修复:这里直接设置编辑器内容,确保商品详情正常显示
+                if (that.formData.description) {
+                    this.um.setContent(that.formData.description);
+                }
+
                 that.$nextTick(function () {
                     layui.use(['form', 'element'], function () {
                         that.form = layui.form;
@@ -1480,6 +1634,9 @@
                         that.form.on('select(temp_id)', function (data) {
                             that.$set(that.formData, 'temp_id', data.value);
                         });
+                        that.form.on('select(mer_id)', function (data) {
+                            that.$set(that.formData, 'mer_id', data.value);
+                        });
                         that.form.on('select(rule_index)', function (data) {
                             that.ruleIndex = data.value;
                         });
@@ -1568,6 +1725,9 @@
                 if (!that.formData.temp_id) {
                     return that.showMsg('请选择运费模板');
                 }
+                if (!that.formData.mer_id) {
+                    return that.showMsg('请选择门店');
+                }
                 if (!that.formData.store_name) {
                     return that.showMsg('请填写商品名称');
                 }
@@ -1631,7 +1791,33 @@
                         }
                     }
                 }
+
+                // 处理等级返利数据 - 确保传递当前填写的level_radio
+                that.formData.level_radio = that.level_radio;
+                console.log('提交的level_radio数据:', that.level_radio);
+
+                // 验证等级返利数据(改为可选验证,可以不填)
+                var hasLevelRatio = false;
+                for (var i = 0; i < that.level_radio.length; i++) {
+                    var ratio = that.level_radio[i].ratio;
+                    if (ratio && ratio !== '') {
+                        hasLevelRatio = true;
+                        var ratioNum = parseFloat(ratio);
+                        if (isNaN(ratioNum) || ratioNum < 0 || ratioNum > 100) {
+                            return that.showMsg('等级返利比例必须在0-100之间');
+                        }
+                    }
+                }
+
+                // 如果有填写等级返利,则设置到formData,否则设置为空数组
+                if (!hasLevelRatio) {
+                    that.formData.level_radio = [];
+                }
+
+                // 获取编辑器内容
                 that.formData.description = that.getContent();
+
+                // 提交数据
                 that.requestPost(that.U({
                     c: 'store.StoreProduct',
                     a: 'save',
@@ -1717,7 +1903,11 @@
         mounted: function () {
             var that = this;
             axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+
+            // 获取商品信息
             that.getProductInfo();
+
+            // 设置全局变量
             window.$vm = that;
             window.changeIMG = that.changeIMG;
             window.insertEditor = that.insertEditor;
@@ -1725,6 +1915,8 @@
             window.successFun = function () {
                 that.getRuleList(1);
             }
+
+            // 视频上传
             $(that.$refs.filElem).change(function () {
                 var inputFile = this.files[0];
                 that.requestPost(that.U({c: "widget.video", a: 'get_signature'})).then(function (res) {
@@ -1754,7 +1946,7 @@
                 }).catch(function (res) {
                     return that.showMsg(res.msg || '获取密钥失败,请检查您的配置');
                 });
-            })
+            });
         }
     });
 </script>