manghe/app/admin/view/SignConfig/add.html
2025-04-10 02:46:53 +08:00

185 lines
8.3 KiB
HTML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{include file="Public:header2"/}
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<form onsubmit="return false;">
<div class="layui-form" wid100 lay-filter="">
<div class="layui-form-item">
<label class="layui-form-label">配置类型</label>
<div class="layui-input-inline" style="width: 700px">
<input type="radio" name="type" value="1" lay-filter="config_type"
class="layui-input" title="每日签到" checked>
<input type="radio" name="type" value="2" lay-filter="config_type"
class="layui-input" title="累计签到">
</div>
</div>
<div class="layui-form-item" id="day_select">
<label class="layui-form-label">签到天数</label>
<div class="layui-input-inline">
<input type="number" name="day" min="1" max="365" value="1"
placeholder="请输入连续签到天数/累计天数" autocomplete="off" class="layui-input">
</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-inline">
<input type="text" name="title" lay-verify="required" placeholder="请输入配置标题"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">配置图标</label>
<div class="layui-input-inline">
<input type="text" name="icon" placeholder="请输入图标URL" autocomplete="off"
class="layui-input" style="width: 500px">
<div style="margin-top: 5px;">
<button type="button" class="layui-btn" id="upload_icon">
<i class="layui-icon">&#xe67c;</i>上传图标
</button>
<img id="icon_preview" style="max-width:200px;display:none;margin-top:10px;">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">配置描述</label>
<div class="layui-input-inline">
<textarea name="description" placeholder="请输入配置描述" class="layui-textarea"
style="width: 600px"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-inline">
<input type="number" name="sort" value="100" placeholder="请输入排序值,越小越靠前"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline" style="width: 700px">
<input type="radio" name="status" value="1" class="layui-input" title="启用" checked>
<input type="radio" name="status" value="0" class="layui-input" title="禁用">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">奖励信息</label>
<div class="layui-input-inline" style="width: 700px">
<div id="rewardInfoContainer"></div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" onclick="return check()">确认保存</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{include file="Public:footer"/}
<script type="text/javascript">
layui.use(['layer', 'form', 'upload'], function () {
var $ = layui.$;
var form = layui.form;
var upload = layui.upload;
// 页面加载时初始化奖励信息区域
initRewardInfo('rewardInfoContainer');
// 监听配置类型切换
form.on('radio(config_type)', function (data) {
if (data.value == '2') { // 连续签到
} else { // 每日签到
}
});
// 图标上传
upload.render({
elem: '#upload_icon',
url: '/admin/picture',
done: function (res) {
if (res.status == 1) { // 上传成功
layer.msg("上传成功", { icon: 1, time: 1000 }, function () {
$("input[name=icon]").val(res.data.imgurl);
$("#icon_preview").attr("src", res.data.path).show();
});
} else { // 上传失败
layer.msg(res.msg, { icon: 2, anim: 6, time: 1500 });
}
},
error: function () {
layer.msg('服务繁忙,请稍后重试', { icon: 2, anim: 6, time: 1500 });
}
});
});
function check() {
var url = "{:url('/admin/sign_config_add')}";
var $ = layui.$;
var load = layer.load(2);
// 表单验证
var type = $("input[name='type']:checked").val();
if (type == 1) {
var day = $("input[name='day']").val();
if (!day || day < 1) {
layer.msg('请输入有效的连续签到天数', { icon: 2, anim: 6, time: 1500 });
layer.close(load);
return false;
}
}
var title = $("input[name='title']").val();
if (!title) {
layer.msg('请输入配置标题', { icon: 2, anim: 6, time: 1500 });
layer.close(load);
return false;
}
// 验证奖励信息
if (!validateRewardInfo()) {
layer.close(load);
return false;
}
// 确保处理奖励数据 - 虽然validateRewardInfo已经调用了processRewardData这里再次调用以确保数据已处理
processRewardData();
var loadIndex = layer.load(1, { shade: [0.1, '#fff'] });
// 提交表单
$.post(url, $("form").serialize(), function (data) {
layer.close(loadIndex);
if (data.status == 1) {
layer.msg(data.msg, { icon: 1, time: 1000 }, function () {
// 关闭当前弹出层
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
});
} else {
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
layer.close(load);
});
}
});
}
</script>