From 9244eda73db2445b4fd298339652deb16e2e72ef Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 23 Apr 2025 17:19:42 +0800 Subject: [PATCH] feat(mall): 新增活动管理功能 --- src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html | 198 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 147 insertions(+), 51 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 index 0316b61..f3617d2 100644 --- a/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html +++ b/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html @@ -9,6 +9,7 @@ </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> @@ -18,7 +19,7 @@ </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> + <label class="layui-form-label febs-form-item-require">分类:</label> <div class="layui-input-block"> <div id="activity-group"></div> </div> @@ -26,40 +27,78 @@ </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> + <label class="layui-form-label febs-form-item-require">类型:</label> <div class="layui-input-block"> - <select name="activityType" class="activity-type"> - <option value="1">文字</option> - <option value="2">图片</option> - <option value="3">视频</option> - <option value="4">二维码</option> + <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">票数总数:</label> + <label class="layui-form-label febs-form-item-require">联系方式:</label> <div class="layui-input-block"> - <input type="text" name="totalVotes" lay-verify="required" - placeholder="" autocomplete="off" class="layui-input" disabled> + <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">参与人数:</label> + <label class="layui-form-label febs-form-item-require">地址:</label> <div class="layui-input-block"> - <input type="text" name="totalParticipants" lay-verify="required" - placeholder="" autocomplete="off" class="layui-input" disabled> + <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> @@ -77,40 +116,75 @@ </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> + <label class="layui-form-label febs-form-item-require">门票售卖:</label> <div class="layui-input-block"> - <select name="isMultiple" class="activity-type"> - <option value="1">是</option> - <option value="2">否</option> + <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> + <label class="layui-form-label febs-form-item-require">门票价格:</label> <div class="layui-input-block"> - <select name="votesType" class="activity-type" > - <option value="1">一天一次</option> - </select> + <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-form-item"> - <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 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-form-item febs-hide"> - <label class="layui-form-label">图片链接:</label> - <div class="layui-input-block"> - <input type="text" id="coverImage" lay-verify="required" name="coverImage" autocomplete="off" class="layui-input" readonly> + + <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> @@ -123,6 +197,7 @@ </div> </div> </div> + </div> </div> </div> @@ -177,7 +252,7 @@ var form = new FormData(); form.append("file", files[0]); $.ajax({ - url:'/admin/goods/uploadFileBaseEsc', + url:'/admin/goods/uploadFileBase64', type: "post", processData: false, contentType: false, @@ -228,7 +303,7 @@ data: [] }) - febs.get(ctx + 'admin/votesActivity/allGroup', null, function(res) { + febs.get(ctx + 'admin/happyActivity/allGroup', null, function(res) { activityGroup.update({ data : res.data, autoRow: true, @@ -239,9 +314,27 @@ //图片上传 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' //改成您自己的上传接口 - ,multiple: true + ,accept: 'file' //普通文件 + ,size: 10240 //限制文件大小,单位 KB ,before: function(obj){ //预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ @@ -249,7 +342,7 @@ }); } ,done: function(res){ - $("#coverImage").val(res.data.src); + $("#backImg").val(res.data.src); } }); @@ -263,26 +356,29 @@ form.val("activity-discount-update-form", { "id": activity.id || '', "name": activity.name || '', - "coverImage": activity.coverImage || '', - "activityType": activity.activityType || '1', // 默认选中文字 - "votesType": activity.votesType || '1', // 默认一天一次 - "isMultiple": activity.isMultiple || '2', // 默认否 - "introduce": activity.introduce || '', + "type": activity.type || '', + "joinCnt": activity.joinCnt || '', "startTime": activity.startTime || '', "endTime": activity.endTime || '', - "totalVotes": activity.totalVotes || '', - "totalParticipants": activity.totalParticipants || '', + "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.coverImage + '" alt="" class="layui-upload-img single-image" style="width: 130px">') - $("#coverImage").val(activity.coverImage); - + $('#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.groupId) + arr.push(activity.categoryId) activityGroup.setValue(arr); - editor.txt.html(activity.introduce); - + editor.txt.html(activity.textRemark); } @@ -291,7 +387,7 @@ data.field.groupId = activityGroup.getValue('valueStr'); data.field.introduce = editor.txt.html(); $.ajax({ - 'url':ctx + 'admin/votesActivity/activityUpdate', + 'url':ctx + 'admin/happyActivity/activityUpdate', 'type':'post', 'dataType':'json', 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式 -- Gitblit v1.9.1