From e1d1b5e5a2248381bc4faa2ac0e629676d17ff3c Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 01 Jul 2026 10:59:05 +0800
Subject: [PATCH] feat(mall): 支持优惠券多选绑定功能

---
 src/main/resources/templates/febs/views/modules/mallMember/couponSelect.html |   52 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/src/main/resources/templates/febs/views/modules/mallMember/couponSelect.html b/src/main/resources/templates/febs/views/modules/mallMember/couponSelect.html
index 0b7995f..156b28e 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/couponSelect.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/couponSelect.html
@@ -31,10 +31,8 @@
 
         <div class="layui-form-item">
             <label class="layui-form-label">优惠卷:</label>
-            <div class="layui-input-inline">
-                <select name="couponId" class="coupon-select-category" id="couponCategarySelect">
-                    <option value="">请选择</option>
-                </select>
+            <div class="layui-input-block">
+                <div id="coupon-select-multi"></div>
             </div>
         </div>
 
@@ -45,7 +43,7 @@
 </div>
 
 <script data-th-inline="javascript">
-    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate','upload'], function () {
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate','upload', 'xmSelect'], function () {
         var $ = layui.$,
             febs = layui.febs,
             layer = layui.layer,
@@ -57,6 +55,7 @@
             adminCouponSelectVo = [[${adminCouponSelectVo}]],
             $view = $('#coupon-select'),
             upload = layui.upload,
+            xmSelect = layui.xmSelect,
             validate = layui.validate;
 
         form.render();
@@ -66,27 +65,48 @@
 
         formSelects.render();
 
-        //(下拉框)
-        $.get(ctx + 'admin/goods/coupon/tree', function (data) {
-            for (var k in data)
-            {
-                $(".coupon-select-category").append("<option value='" + data[k].couponId + "'>" + data[k].couponName + "</option>");
+        // 多选优惠券
+        var couponMultiSelect = xmSelect.render({
+            el: '#coupon-select-multi',
+            language: 'zn',
+            tips: '请选择优惠券',
+            filterable: true,
+            data: []
+        });
+
+        febs.get(ctx + 'admin/goods/coupon/tree', null, function(data) {
+            var options = [];
+            for (var k in data) {
+                options.push({
+                    name: data[k].couponName,
+                    value: data[k].couponId
+                });
             }
-            layui.use('form', function () {
-                var form = layui.form;
-                $("#couponCategarySelect").val('')
-                form.render();
+            couponMultiSelect.update({
+                data: options,
+                autoRow: true
             });
         });
+
         initUserValue();
 
         function initUserValue() {
             form.val("coupon-select-form", {
-                "id": adminCouponSelectVo.id,
+                "id": adminCouponSelectVo.id
             });
         }
 
         form.on('submit(coupon-select-form-submit)', function (data) {
+            var selected = couponMultiSelect.getValue();
+            if (!selected || selected.length === 0) {
+                febs.alert.warn('请选择优惠券');
+                return false;
+            }
+            var couponIds = [];
+            for (var i = 0; i < selected.length; i++) {
+                couponIds.push(selected[i].value);
+            }
+            data.field.couponIds = couponIds;
             febs.post(ctx + 'admin/mallMember/salemanCoupon', data.field, function () {
                 layer.closeAll();
                 febs.alert.success('操作成功');
@@ -95,4 +115,4 @@
             return false;
         });
     });
-</script>
\ No newline at end of file
+</script>

--
Gitblit v1.9.1