添加网站文件

This commit is contained in:
2025-12-22 13:59:40 +08:00
commit 117aaf83d1
19468 changed files with 2111999 additions and 0 deletions

View File

@@ -0,0 +1,187 @@
{layout name="layout2" /}
<link rel="stylesheet" href="/static/admin/css/goods.css" media="all">
<div class="layui-card layui-form">
<div class="layui-card-body">
<div class="layui-form-item">
<label for="prize_type" class="layui-form-label"><font color="red">*</font>类型:</label>
<div class="layui-input-inline">
<select id="prize_type" name="prize_type" lay-filter="prize_type"
lay-verType="tips" lay-verify="required|number">
<option value="">请选择</option>
<option value="1">商城积分</option>
<option value="3">实物商品</option>
<option value="4">虚拟商品</option>
<option value="5">优惠券</option>
<option value="2">谢谢参与</option>
</select>
</div>
</div>
<!-- 选择积分类型 才会出现 -->
<div class="layui-form-item" id="prize_number" style="display:none;">
<label for="number" class="layui-form-label"><font color="red">*</font>数量:</label>
<div class="layui-input-inline">
<input type="number" min="0" id="number" name="number" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')" value="0"
autocomplete="off" lay-verType="tips" lay-verify="prize_number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">图片:</label>
<div style="height:80px;line-height:80px">
<div class="master-image"></div>
<div class="goods-img-add goods-image upload-image-div" lay-verify="image" lay-vertype="tips"> <a class="upload-image-a"> + 添加图片</a></div>
</div>
</div>
<!-- 抽奖几率 -->
<div class="layui-form-item" style="margin-bottom: 0;">
<label for="probability" class="layui-form-label"><font color="red">*</font>几率:</label>
<div class="layui-input-inline">
<input type="number" min="0" id="probability" name="probability" class="layui-input"
onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
autocomplete="off" lay-verType="tips" lay-verify="required|number">
</div>
<div class="layui-form-mid layui-word-aux">%</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">请填写0~100的数字</div>
</div>
</div>
<!-- 排序 -->
<div class="layui-form-item">
<label for="sort" class="layui-form-label"><font color="red">*</font>排序:</label>
<div class="layui-input-inline">
<input type="number" min="0" id="sort" name="sort" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')" value="0"
autocomplete="off" lay-verType="tips" lay-verify="required|number">
</div>
</div>
<!-- 状态 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>状态:</label>
<div class="layui-input-inline">
<input type="radio" name="status" value="1" title="开启">
<input type="radio" name="status" value="0" title="关闭" checked>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index'
}).use(['index', 'form', 'like'], function() {
var $ = layui.$
, form = layui.form
, like = layui.like;
//商品主图事件
$(document).on('mouseenter', '.goods-li', function () {
$(this).children().last().show();
});
$(document).on('mouseleave', '.goods-li', function () {
$(this).children().last().hide();
});
$(document).on('click', '.goods-li', function () {
var src = $(this).children('img').attr('src');
like.showImg(src, 400);
});
//主图显示删除按钮
$(document).on('mouseenter','.master-image',function () {
$(this).children('.goods-image-del').show();
});
$(document).on('mouseleave', '.master-image', function () {
$(this).children('.goods-image-del').hide();
});
$(document).on('click', '.master-image', function () {
var src = $(this).children('img').attr('src');
like.showImg(src, 400);
});
$(document).on('click', '.goods-img-del-x', function () {
if($(this).hasClass('goods-image-del')){
$(this).parent().next().show();
$(this).parent().children().remove();
}
$(this).parent().remove();
return false;
});
// 上传图片
like.imageUpload('.goods-img-add', function (uris, element) {
if(element.hasClass('goods-image')){
if(uris.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '' +
'<input name="image" type="hidden" value="'+ like.getUrlFileName(uris[0], '{$storageUrl}') + '">' +
' <img class="goods-img" src="' + uris[0] + '">\n' +
'<a class="goods-img-del-x goods-image-del">x</a>'
element.prev().append(html);
element.css('display','none');
return 0;
}
var count = element.prev().children().length;
count = !count ? 0:count;
if (count+uris.length > 5) {
layer.msg('最多最能选中5张图片');
return;
}
for(var i in uris){
var uri = uris[i];
var template_goods_image = $('#template-goods-image').html();
element.prev().append(template_goods_image.replace('{image-src}', '/'+uri).replace('{image-src}', '/'+uri));
}
}, true);
// 选择抽奖类型
form.on('select(prize_type)', function(data) {
// 未选择类型
if (data.value === "" ) {
$("#prize_number").hide();
$("#prize_number input").val(0);
}
// 积分类型类型
if (data.value === "1") {
$("#prize_number").show();
}
// 谢谢惠顾类型
if (data.value === "2") {
$("#prize_number").hide();
$("#prize_number input").val(0);
}
});
// 表单验证
form.verify({
prize_number: function (value) {
var type = $("#prize_type").val();
if (type === "1") {
if (value === "") {
return '请填写奖品数量';
}
if (parseInt(value) < 0) {
return '奖品数量需为大于等于0的正整数';
}
}
}
});
});
</script>

View File

@@ -0,0 +1,194 @@
{layout name="layout2" /}
<link rel="stylesheet" href="/static/admin/css/goods.css" media="all">
<div class="layui-card layui-form">
<div class="layui-card-body">
<div class="layui-form-item">
<label for="prize_type" class="layui-form-label"><font color="red">*</font>类型:</label>
<div class="layui-input-inline">
<select id="prize_type" name="prize_type" lay-filter="prize_type"
lay-verType="tips" lay-verify="required|number">
<option value="">请选择</option>
<option value="1" {if $detail.prize_type == 1}selected{/if}>积分</option>
<option value="2" {if $detail.prize_type == 2}selected{/if}>谢谢惠顾</option>
</select>
</div>
</div>
<div class="layui-form-item" id="prize_number" {if $detail.prize_type == 2}style="display:none;"{/if}>
<label for="number" class="layui-form-label"><font color="red">*</font>数量:</label>
<div class="layui-input-inline">
<input type="number" min="0" id="number" name="number" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')" value="{$detail.number}"
autocomplete="off" lay-verType="tips" lay-verify="prize_number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">图片:</label>
<div style="height:80px;line-height:80px">
<div class="master-image">
{if !empty($detail.image) and $detail.image}
<input name="image" type="hidden" value="{$detail.image}">
<img class="goods-img" src="{$storageUrl}{$detail.image}" alt="图">
<a class="goods-img-del-x goods-image-del" style="display: none;">x</a>
{/if}
</div>
<div class="goods-img-add goods-image upload-image-div" lay-verify="image" lay-vertype="tips" verify-msg="选择图片" {if $detail.image}style="display: none;"{/if}>
<a class="upload-image-a"> + 添加图片</a>
</div>
</div>
</div>
</div>
<!-- 抽奖几率 -->
<div class="layui-form-item" style="margin-bottom: 0;">
<label for="probability" class="layui-form-label"><font color="red">*</font>几率:</label>
<div class="layui-input-inline">
<input type="hidden" name="id" value="{$detail.id}">
<input type="number" min="0" id="probability" name="probability" class="layui-input" value="{$detail.probability}"
onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
autocomplete="off" lay-verType="tips" lay-verify="required|number">
</div>
<div class="layui-form-mid layui-word-aux">%</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">请填写0~100的数字</div>
</div>
</div>
<!-- 排序 -->
<div class="layui-form-item">
<label for="sort" class="layui-form-label"><font color="red">*</font>排序:</label>
<div class="layui-input-inline">
<input type="number" min="0" id="sort" name="sort" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')" value="{$detail.sort}"
autocomplete="off" lay-verType="tips" lay-verify="required|number">
</div>
</div>
<!-- 状态 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>状态:</label>
<div class="layui-input-inline">
<input type="radio" name="status" value="1" title="开启" {if $detail.status}checked{/if}>
<input type="radio" name="status" value="0" title="关闭" {if !$detail.status}checked{/if}>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index'
}).use(['index', 'form', 'like'], function() {
var $ = layui.$
, form = layui.form
, like = layui.like;
//商品主图事件
$(document).on('mouseenter', '.goods-li', function () {
$(this).children().last().show();
});
$(document).on('mouseleave', '.goods-li', function () {
$(this).children().last().hide();
});
$(document).on('click', '.goods-li', function () {
var src = $(this).children('img').attr('src');
like.showImg(src, 400);
});
//主图显示删除按钮
$(document).on('mouseenter','.master-image',function () {
$(this).children('.goods-image-del').show();
});
$(document).on('mouseleave', '.master-image', function () {
$(this).children('.goods-image-del').hide();
});
$(document).on('click', '.master-image', function () {
var src = $(this).children('img').attr('src');
like.showImg(src, 400);
});
$(document).on('click', '.goods-img-del-x', function () {
if($(this).hasClass('goods-image-del')){
$(this).parent().next().show();
$(this).parent().children().remove();
}
$(this).parent().remove();
return false;
});
// 上传图片
like.imageUpload('.goods-img-add', function (uris, element) {
if(element.hasClass('goods-image')){
if(uris.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '' +
'<input name="image" type="hidden" value="'+ like.getUrlFileName(uris[0], '{$storageUrl}') + '">' +
' <img class="goods-img" src="' + uris[0] + '">\n' +
'<a class="goods-img-del-x goods-image-del">x</a>'
element.prev().append(html);
element.css('display','none');
return 0;
}
var count = element.prev().children().length;
count = !count ? 0:count;
if (count+uris.length > 5) {
layer.msg('最多最能选中5张图片');
return;
}
for(var i in uris){
var uri = uris[i];
var template_goods_image = $('#template-goods-image').html();
element.prev().append(template_goods_image.replace('{image-src}', '/'+uri).replace('{image-src}', '/'+uri));
}
}, true);
// 选择抽奖类型
form.on('select(prize_type)', function(data) {
// 未选择类型
if (data.value === "" ) {
$("#prize_number").hide();
$("#prize_number input").val(0);
}
// 积分类型类型
if (data.value === "1") {
$("#prize_number").show();
}
// 谢谢惠顾类型
if (data.value === "2") {
$("#prize_number").hide();
$("#prize_number input").val(0);
}
});
// 表单验证
form.verify({
prize_number: function (value) {
var type = $("#prize_type").val();
if (type === "1") {
if (value === "") {
return '请填写奖品数量';
}
if (parseInt(value) < 0) {
return '奖品数量需为大于等于0的正整数';
}
}
}
});
});
</script>

View File

@@ -0,0 +1,349 @@
{layout name="layout1" /}
<div class="layui-fluid">
<div class="layui-card">
<!-- 提示区域 -->
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*设置参与积分抽奖的奖品。</p>
</div>
</div>
</div>
</div>
<!-- 选项卡 -->
<div class="layui-tab layui-tab-card">
<ul class="layui-tab-title">
<li data-type="1" class="layui-this">奖品</li>
<li data-type="2">设置</li>
<li data-type="3">记录</li>
</ul>
<div class="layui-tab-content">
<!-- 1、奖品 -->
<div class="layui-tab-item layui-show">
<!-- 操作按钮 -->
<div style="padding: 30px 0 10px 0;">
<button class="layui-btn layui-btn-sm layuiadmin-btn-event {$view_theme_color}" data-type="add">新增奖品</button>
</div>
<!-- 数据表格 -->
<table id="table-data-lists-prize" lay-filter="table-data-lists-prize"></table>
<script type="text/html" id="table-image">
<img src="{$storageUrl}{{d.image}}" alt="图片" style="width:60px;height:60px;" class="image-show">
</script>
<script type="text/html" id="table-status">
<input type="checkbox" lay-filter="switch-status"
data-id={{d.id}} data-field='status' lay-skin="switch"
lay-text="是|否" {{# if(d.status){ }} checked {{# } }} />
</script>
<script type="text/html" id="operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
</script>
</div>
<!-- 2、设置 -->
<div class="layui-tab-item">
<div class="layui-form">
<div class="layui-form-item" style="margin-bottom:0;">
<label for="limit" class="layui-form-label">抽奖次数:</label>
<div class="layui-input-inline">
<input type="number" min="0" id="limit" name="limit" value="{$setConfig.limit}"
onkeyup="value=value.replace(/[^\d]/g,'')"
class="layui-input" autocomplete="off" lay-verify="required|number">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">每日抽奖次数</div>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label for="rule" class="layui-form-label">活动规则:</label>
<div class="layui-input-inline" style="width:350px;">
<textarea name="rule" id="rule" placeholder="请输入内容" class="layui-textarea">{$setConfig.rule}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">抽奖状态:</label>
<div class="layui-input-inline">
<input type="radio" name="status" value="1" title="开启" {if $setConfig.status}checked{/if}>
<input type="radio" name="status" value="0" title="关闭" {if !$setConfig.status}checked{/if}>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="addSetButton">提交</button>
</div>
</div>
</div>
</div>
<!-- 3、记录 -->
<div class="layui-tab-item">
<table id="table-data-lists-record" lay-filter="table-data-lists-record"></table>
<script type="text/html" id="table-userInfo">
<div class="layui-input-inline" style="text-align: left">
{{# if(d.user){ }}
<p>会员编号{{d.user.sn}}</p>
<p>手机号码{{d.user.mobile}}</p>
<p>会员昵称{{d.user.nickname}}</p>
{{# } }}
</div>
</script>
</div>
</div>
</div>
</div>
</div>
<!-- CSS样式 -->
<style>
.layui-table-cell { height: auto; }
</style>
<!-- JS脚本 -->
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index','table','like'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
,like = layui.like;
// 渲染数据表格
table.render({
id: 'table-data-lists-prize'
,elem: '#table-data-lists-prize'
,url: '{:url("LuckDraw/index")}'
,cols: [[
{field:'id', title:'ID', width:80}
,{field:'name', title:'奖品名称', width:150}
,{field:'number', title:'奖品数量', width:100, align:'center'}
,{field:'images', title:'图片', width:120, align:'center', templet:"#table-image"}
,{field:'probability', title:'几率', width:80, align:'center'}
,{field:'sort', title:'排序', edit:true, width:80, align:'center'}
,{field:'status', title:'状态', width:100, align:'center', templet:"#table-status"}
,{title:'操作', toolbar: '#operation'}
]]
,page:true
,text: {none: '暂无数据!'}
,parseData: function(res){
return {
"code":res.code,
"msg":res.msg,
"count": res.data.count,
"data": res.data.list
};
}
});
// 渲染抽奖记录
table.render({
id: 'table-data-lists-record'
,elem: '#table-data-lists-record'
,url: '{:url("LuckDraw/record")}'
,cols: [[
{field:'id', title:'ID', width:80}
,{field:'userInfo', title:'会员信息', width:200, templet:"#table-userInfo"}
,{field:'create_time', title:'抽奖时间', width:200, align:'center'}
,{field:'prize_name', title:'奖品', width:150, align:'center'}
,{field:'number', title:'数量', width:100, align:'center'}
]]
,page:true
,text: {none: '暂无数据!'}
,parseData: function(res){
return {
"code":res.code,
"msg":res.msg,
"count": res.data.count,
"data": res.data.list
};
}
});
// 操作事件管理
var active = {
add: function() {
layer.open({
type: 2
,title: '新增奖品'
,content: '{:url("LuckDraw/add")}'
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index];
var submit = layero.find('iframe').contents().find('#addSubmit');
console.log("aaa");
//监听提交
iframeWindow.layui.form.on('submit(addSubmit)', function(data){
$.ajax({
url: '{:url("LuckDraw/add")}',
data: data.field,
type: 'post',
success:function(res) {
if(res.code === 1) {
layui.layer.msg(res.msg, {offset:'15px',icon:1,time:1000});
layer.close(index);
table.reload('table-data-lists-prize', {
where: []
});
} else {
layui.layer.msg(res.msg, {offset:'15px',icon:2,time:1000});
}
}
});
});
submit.trigger('click');
}
})
},
edit: function (obj) {
if ({$setConfig.status} === 1) {
layui.layer.msg('请在设置关闭抽奖在操作!', { time:1000 });
return false;
}
layer.open({
type: 2
,title: '编辑奖品'
,content: '{:url("LuckDraw/edit")}?id='+obj.data.id
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index];
var submit = layero.find('iframe').contents().find('#addSubmit');
//监听提交
iframeWindow.layui.form.on('submit(addSubmit)', function(data){
$.ajax({
url: '{:url("LuckDraw/edit")}',
data: data.field,
type: 'post',
success:function(res) {
if(res.code === 1) {
layui.layer.msg(res.msg, {offset:'15px',icon:1,time:1000});
layer.close(index);
table.reload('table-data-lists-prize', {
where: []
});
} else {
layui.layer.msg(res.msg, {offset:'15px',icon:2,time:1000});
}
}
});
});
submit.trigger('click');
}
})
},
del: function (obj) {
layer.confirm('确定删除: '+obj.data.name, function(index){
if ({$setConfig.status} === 1) {
layui.layer.msg('请在设置关闭抽奖在操作!', { time:1000 });
return false;
}
like.ajax({
url:'{:url("LuckDraw/del")}',
data: {id: obj.data.id},
type: 'post',
success:function(res) {
if(res.code === 1) {
layui.layer.msg(res.msg, {offset:'15px',icon:1,time:1000});
layer.close(index);
table.reload('table-data-lists-prize');
obj.del();
} else {
layui.layer.msg(res.msg, {offset:'15px',icon:2,time:1000});
}
}
});
layer.close(index);
});
},
// 切换状态
switchStatus: function (obj) {
if ({$setConfig.status} === 1) {
layui.layer.msg('请在设置关闭抽奖在操作!', { time:1000 });
table.reload('table-data-lists-prize', { where: [] });
return false;
}
like.ajax({
url:'{:url("LuckDraw/switchStatus")}',
data:obj,
type:"post",
success:function(res) {
if(res.code === 1) {
layui.layer.msg(res.msg, { offset:'15px', icon:1, time:1000 });
}
}
});
}
};
// 监听提交设置
form.on('submit(addSetButton)', function(data){
$.ajax({
url: '{:url("LuckDraw/set")}',
data: data.field,
type: 'post',
success:function(res) {
if(res.code === 1) {
layui.layer.msg(res.msg, {offset:'15px',icon:1,time:1000});
location.href = '{:url("LuckDraw/index")}';
} else {
layui.layer.msg(res.msg, {offset:'15px',icon:2,time:1000});
}
}
});
return false;
});
// 切换状态
form.on('switch(switch-status)',function (obj) {
var id = obj.elem.attributes['data-id'].nodeValue;
var fields = obj.elem.attributes['data-field'].nodeValue;
var status = this.checked ? 1 : 0;
var data = {"id":id, "field":fields, "status":status};
active['switchStatus'] ? active['switchStatus'].call(this, data) : '';
});
table.on('edit(table-data-lists-prize)', function (obj) {
var data = {"id":obj.data.id, "field":obj.field, "data":obj.data.sort};
$.ajax({
url: '{:url("LuckDraw/sort")}',
data: data,
type: 'post',
success:function(res) {
if(res.code === 0) {
layui.layer.msg(res.msg, {offset:'15px',icon:2,time:1000});
}
}
});
return false;
});
// 绑定事件按钮(激活active事件)
$('.layui-btn.layuiadmin-btn-event').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
// 监听表格按钮
table.on('tool(table-data-lists-prize)', function(obj){
active[obj.event].call(this, obj)
});
});
</script>