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