From b06418c37c2b9e3c01c8e382fb311d35629f1d9a Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 23 Apr 2025 17:53:03 +0800
Subject: [PATCH] feat(mall): 添加活动报名状态字段

---
 src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html |  412 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 412 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html b/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html
new file mode 100644
index 0000000..f3617d2
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html
@@ -0,0 +1,412 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-activity-discount" lay-title="活动设置">
+    <div class="layui-row febs-container">
+        <div class="layui-col-md12">
+            <div class="layui-fluid" id="activity-discount-update">
+                <form class="layui-form" action="" lay-filter="activity-discount-update-form">
+                    <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
+                        <ul class="layui-tab-title">
+                            <li class="layui-this">基础信息</li>
+                        </ul>
+                        <div class="layui-tab-content">
+                            <div class="layui-tab-item layui-show">
+                                <blockquote class="layui-elem-quote blue-border">基础信息</blockquote>
+                                <!-- 隐藏的 ID 项 -->
+                                <div class="layui-form-item febs-hide">
+                                    <label class="layui-form-label">ID:</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="id" autocomplete="off" class="layui-input">
+                                    </div>
+                                </div>
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">分类:</label>
+                                        <div class="layui-input-block">
+                                            <div id="activity-group"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">排序:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="orderCnt" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">名称:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="name" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">类型:</label>
+                                        <div class="layui-input-block">
+                                            <select name="type">
+                                                <option value="1">普通活动</option>
+                                                <option value="2">众筹活动</option>
+                                                <option value="3">投票活动</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">推荐首页:</label>
+                                        <div class="layui-input-block">
+                                            <select name="hotState">
+                                                <option value="0">不推荐</option>
+                                                <option value="1">推荐</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">联系方式:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="phone" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">地址:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="address" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">投票次数:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="voteCnt" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                            <div class="layui-form-mid layui-word-aux">投票活动,单个ID每天投票次数</div>
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">自主报名:</label>
+                                        <div class="layui-input-block">
+                                            <select name="addState">
+                                                <option value="0">不允许</option>
+                                                <option value="1">允许</option>
+                                            </select>
+                                            <div class="layui-form-mid layui-word-aux">投票活动,是否允许用户小程序自主报名</div>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">开始时间:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="startTime" id="febs-form-group-date-start" lay-verify="datetime"
+                                                   placeholder="yyyy-MM-dd hh:mm:ss" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">结束时间:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="endTime" id="febs-form-group-date-end" lay-verify="datetime"
+                                                   placeholder="yyyy-MM-dd hh:mm:ss" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+
+
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">门票售卖:</label>
+                                        <div class="layui-input-block">
+                                            <select name="payState">
+                                                <option value="0">关闭</option>
+                                                <option value="1">开启</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">门票总数:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="joinCnt" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                            <div class="layui-form-mid layui-word-aux">门票总数</div>
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">门票价格:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="payAmount" lay-verify="required"
+                                                   placeholder="" autocomplete="off" class="layui-input">
+                                            <div class="layui-form-mid layui-word-aux">门票价格(关闭众筹,或者免费参与,请填写0)</div>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="layui-row layui-col-space10 layui-form-item">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">封面:</label>
+                                        <div class="layui-input-block">
+                                            <div class="layui-upload">
+                                                <button type="button" class="layui-btn layui-btn-normal layui-btn" id="test1Max">上传</button>
+                                                <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
+                                                    <div class="layui-upload-list" id="demo1Max"></div>
+                                                </blockquote>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label febs-form-item-require">背景:</label>
+                                        <div class="layui-input-block">
+                                            <div class="layui-upload">
+                                                <button type="button" class="layui-btn layui-btn-normal layui-btn" id="testMax">上传</button>
+                                                <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
+                                                    <div class="layui-upload-list" id="demoMax"></div>
+                                                </blockquote>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="layui-row layui-col-space10 layui-form-item febs-hide">
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label">封面链接:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" id="indexImg" lay-verify="required" name="indexImg" autocomplete="off" class="layui-input" readonly>
+                                        </div>
+                                    </div>
+                                    <div class="layui-col-lg6">
+                                        <label class="layui-form-label">背景链接:</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" id="backImg" lay-verify="required" name="backImg" autocomplete="off" class="layui-input" readonly>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label febs-form-item-require">活动描述:</label>
+                                    <div class="layui-input-block">
+                                        <div style="border: 1px solid #ccc;">
+                                            <div id="toolbar-container" class="toolbar"></div>
+                                            <div id="text-container" class="text" style="height: 450px;"></div>
+                                        </div>
+                                    </div>
+                                </div>
+
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-form-item febs-hide">
+                        <button class="layui-btn" lay-submit="" lay-filter="activity-discount-update-form-submit" id="submit">保存</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+<style>
+    .blue-border {
+        border-left-color: #2db7f5;
+        font-size: 18px;
+    }
+</style>
+<script type="text/html" id="toolbar">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delSku">删除</button>
+    </div>
+</script>
+<!-- 表格操作栏 end -->
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate', 'layedit', 'upload', 'element', 'table', 'xmSelect'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            layer = layui.layer,
+            table = layui.table,
+            formSelects = layui.formSelects,
+            treeSelect = layui.treeSelect,
+            form = layui.form,
+            laydate = layui.laydate,
+            eleTree = layui.eleTree,
+            $view = $('#activity-discount-update'),
+            layedit = layui.layedit,
+            activity = [[${activity}]],
+            upload = layui.upload,
+            validate = layui.validate,
+            element = layui.element;
+
+
+        const E = window.wangEditor;
+        const editor = new E('#toolbar-container', '#text-container'); // 传入两个元素
+        editor.config.showLinkImg = false;
+        editor.config.uploadFileName = 'file';
+        editor.config.customUploadImg = function (files, insertImgFn) {
+            // files 是 input 中选中的文件列表
+            // insertImgFn 是获取图片 url 后,插入到编辑器的方法
+            // 上传图片,返回结果,将图片插入到编辑器中
+            for (let i = 0; i < files.length; i++){
+                var form = new FormData();
+                form.append("file", files[0]);
+                $.ajax({
+                    url:'/admin/goods/uploadFileBase64',
+                    type: "post",
+                    processData: false,
+                    contentType: false,
+                    data: form,
+                    dataType: 'json',
+                    success(res) {
+                        // 上传代码返回结果之后,将图片插入到编辑器中
+                        insertImgFn(res.data.src, res.data.title, '')
+                    }
+                })
+            }
+        };
+        editor.create();
+
+        laydate.render({
+            elem: '#febs-form-group-date-start',
+            type: 'datetime',   // 选择器类型为日期时间
+            format: 'yyyy-MM-dd HH:mm:ss' // 自定义格式
+        });
+
+        laydate.render({
+            elem: '#febs-form-group-date-end',
+            type: 'datetime',   // 选择器类型为日期时间
+            format: 'yyyy-MM-dd HH:mm:ss' // 自定义格式
+        });
+
+        formSelects.render();
+
+        let activityGroup = xmSelect.render({
+            el: '#activity-group',
+            language: 'zn',
+            prop : {
+                value : 'id',
+                children : 'child'
+            },
+            iconfont: {
+                parent: 'hidden',
+            },
+            tips: '请选择',
+            filterable: true,
+            radio: true,
+            clickClose: true,
+            tree: {
+                show: true,
+                //非严格模式
+                strict: false,
+            },
+            data: []
+        })
+
+        febs.get(ctx + 'admin/happyActivity/allGroup', null, function(res) {
+            activityGroup.update({
+                data : res.data,
+                autoRow: true,
+            });
+
+            initActivityValue();
+        })
+
+        //图片上传
+        upload.render({
+            elem: '#test1Max'
+            ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+            ,accept: 'file' //普通文件
+            ,size: 10240 //限制文件大小,单位 KB
+            ,before: function(obj){
+                //预读本地文件示例,不支持ie8
+                obj.preview(function(index, file, result){
+                    $('#demo1Max').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">')
+                });
+            }
+            ,done: function(res){
+                $("#indexImg").val(res.data.src);
+            }
+        });
+
+        //图片上传
+        upload.render({
+            elem: '#testMax'
+            ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+            ,accept: 'file' //普通文件
+            ,size: 10240 //限制文件大小,单位 KB
+            ,before: function(obj){
+                //预读本地文件示例,不支持ie8
+                obj.preview(function(index, file, result){
+                    $('#demoMax').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">')
+                });
+            }
+            ,done: function(res){
+                $("#backImg").val(res.data.src);
+            }
+        });
+
+
+        function initActivityValue() {
+            if (!activity) {
+                console.warn("activity 数据为空,无法初始化表单!");
+                return;
+            }
+
+            form.val("activity-discount-update-form", {
+                "id": activity.id || '',
+                "name": activity.name || '',
+                "type": activity.type || '',
+                "joinCnt": activity.joinCnt || '',
+                "startTime": activity.startTime || '',
+                "endTime": activity.endTime || '',
+                "phone": activity.phone || '',
+                "address": activity.address || '',
+                "payState": activity.payState || '',
+                "payAmount": activity.payAmount || '',
+                "orderCnt": activity.orderCnt || '',
+                "hotState": activity.hotState || '',
+                "voteCnt": activity.voteCnt || '',
+                "addState": activity.addState || ''
+            });
+            $('#demoMax').append('<img src="' + activity.backImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">')
+            $("#backImg").val(activity.backImg);
+            $('#demo1Max').append('<img src="' + activity.indexImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">')
+            $("#indexImg").val(activity.indexImg);
+
+            var arr = [];
+            arr.push(activity.categoryId)
+            activityGroup.setValue(arr);
+
+            editor.txt.html(activity.textRemark);
+        }
+
+
+
+        form.on('submit(activity-discount-update-form-submit)', function (data) {
+            data.field.groupId = activityGroup.getValue('valueStr');
+            data.field.introduce = editor.txt.html();
+            $.ajax({
+                'url':ctx + 'admin/happyActivity/activityUpdate',
+                'type':'post',
+                'dataType':'json',
+                'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式
+                'traditional': true,//ajax传递数组必须添加属性
+                'data':JSON.stringify(data.field),
+                'success':function (data) {
+                    if(data.code==200){
+                        layer.closeAll();
+                        febs.alert.success(data.message);
+                        $('#febs-activity').find('#reset').click();
+                    }else{
+                        febs.alert.warn(data.message);
+                    }
+                },
+                'error':function () {
+                    febs.alert.warn('服务器繁忙');
+                }
+            })
+            return false;
+        });
+    });
+</script>

--
Gitblit v1.9.1