Files
mier-php/public/admin/page/gift/gift_edit.html
2025-08-11 10:22:05 +08:00

599 lines
23 KiB
JavaScript
Raw Permalink 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.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.5.5/css/layui.css" media="all">
<link rel="stylesheet" href="../../css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>礼物添加</legend>
</fieldset>
<form class="layui-form" action="" lay-filter="MyForm" autocomplete="off">
<input type="hidden" name="gid" value="" lay-verify="required" class="layui-input" />
<div class="layui-form-item">
<label class="layui-form-label">礼物名称</label>
<div class="layui-input-inline">
<input type="text" name="gift_name" value="" lay-verify="required" 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="gift_price" value="" lay-verify="required" 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="tag_name" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">
礼物类型
</label>
<div class="layui-input-block">
<input type="radio" name="type" lay-filter="type" value="1" title="普通礼物" checked>
<input type="radio" name="type" lay-filter="type" value="3" title="情侣礼物">
<!--<input type="radio" name="type" lay-filter="type" value="4" title="幸运礼物">-->
<input type="radio" name="type" lay-filter="type" value="5" title="盲盒">
<input type="radio" name="type" lay-filter="type" value="6" title="爵位礼物">
<input type="radio" name="type" lay-filter="type" value="7" title="麦位礼物">
<input type="radio" name="type" lay-filter="type" value="8" title="挂件礼物">
</div>
</div>
<div class="layui-form-item" id="nobility_div">
<label class="layui-form-label required">选择爵位</label>
<div class="layui-input-inline">
<select name="nid" lay-filter="nid">
</select>
</div>
</div>
<div class="layui-form-item" id="multiple_div">
<label class="layui-form-label required">选择倍率</label>
<div class="layui-input-inline">
<select name="mid" lay-filter="mid">
</select>
</div>
</div>
<div class="layui-form-item" id="position_div">
<label class="layui-form-label required">选择礼物位置</label>
<div class="layui-input-inline">
<select name="position" lay-filter="position">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">二级密码</label>
<div class="layui-input-inline">
<input type="password" name="secondary_password" value="" lay-verify="required" 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="base_image" value="" id="base_image" class="layui-input layui-hide">
<img src="../../images/bg.jpg" id="base_image_image" height="100px" width="100px">
<div class="layui-upload" style="margin-top: 10px;">
<button type="button" class="layui-btn" id="test1">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1">
<p id="demoText"></p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">特效文件类型</label>
<div class="layui-input-inline">
<input type="radio" name="file_type" lay-filter="file_type" value="1" title="SVGA" checked />
<input type="radio" name="file_type" lay-filter="file_type" value="2" title="MP4" />
</div>
</div>
<div class="layui-form-item" id="play_image_div" style="display:block;">
<label class="layui-form-label ">礼物特效图(SVGA)</label>
<div class="layui-input-inline">
<input type="text" name="play_image" value="" id="play_image" class="layui-input layui-hide">
<div id="demoCanvas" class="layui-upload-img" style="height: 300px;display: none;">
</div>
<div class="layui-upload" style="margin-top: 10px;">
<button type="button" class="layui-btn" id="test2">上传文件</button>
<div class="layui-upload-list">
<p id="demoText"></p>
</div>
</div>
</div>
</div>
<div class="layui-form-item" id="plays_images_div" style="display:block;">
<label class="layui-form-label ">礼物特效图(MP4)</label>
<div class="layui-input-inline">
<input type="text" name="plays_image" value="" id="plays_images" class="layui-input layui-hide">
<div class="layui-upload" style="margin-top: 10px;">
<button type="button" class="layui-btn" id="test3">上传文件</button>
<div class="layui-upload-list">
<p id="demoText"></p>
</div>
</div>
<div style="float: left; margin-left: 10px;">
<video width="500" height="300" id="preview_play_image_vap" src="" controls>
</video>
</div>
</div>
</div>
<div class="layui-form-item" id="pendant_images_div" style="display:block;">
<label class="layui-form-label ">挂件图(MP4)</label>
<div class="layui-input-inline">
<input type="text" name="pendant_image" value="" id="pendant_images" class="layui-input layui-hide">
<div class="layui-upload" style="margin-top: 10px;">
<button type="button" class="layui-btn" id="test4">上传文件</button>
<div class="layui-upload-list">
<p id="demoText"></p>
</div>
</div>
<div style="float: left; margin-left: 10px;">
<video width="500" height="300" id="preview_plays_image_vap" src="" controls>
</video>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">是否有特效</label>
<div class="layui-input-inline">
<input type="radio" name="gift_type" value="1" title="无" checked />
<input type="radio" name="gift_type" value="2" title="有" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">公屏播报</label>
<div class="layui-input-inline">
<input type="radio" name="is_public_screen" value="1" title="是" checked />
<input type="radio" name="is_public_screen" value="2" title="否" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">全服播报</label>
<div class="layui-input-inline">
<input type="radio" name="is_public_server" value="1" title="是" checked />
<input type="radio" name="is_public_server" value="2" title="否" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">购买状态</label>
<div class="layui-input-inline">
<input type="radio" name="is_can_buy" value="1" title="是" checked />
<input type="radio" name="is_can_buy" value="2" title="否" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">显示状态</label>
<div class="layui-input-inline">
<input type="radio" name="is_show" value="1" title="是" checked />
<input type="radio" name="is_show" value="2" title="否" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-inline">
<input type="text" name="sort" value="0" lay-verify="required" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="saveBtn">确认保存</button>
</div>
</div>
</form>
</div>
</div>
<script src="../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
<script src="../../common/common.js" charset="utf-8"></script>
<script src="../../extend/svgaplayerweb@2.3.1/svga.min.js" charset="utf-8"></script>
<!-- 注意如果你直接复制所有代码到本地上述js路径需要改成你本地的 -->
<script>
layui.use(['form', 'table'], function () {
var form = layui.form,
layer = layui.layer,
table = layui.table,
$ = layui.$;
/**
* 初始化表单,要加上,不然刷新部分组件可能会不加载
*/
form.render();
// 当前弹出层防止ID被覆盖
var parentIndex = layer.index;
var roomInfo;
$("#nobility_div").hide();
$("#multiple_div").hide();
$("#pendant_images_div").hide();
$('#position_div').hide();
$.post(WebHost + "Gift/gift_info", {
"login_token": AdminLoginToken,
"gid": parent.Id,
}, function (data) {
if (data.code == 201) {
layer.msg(data.msg, { time: 1000 }, function () {
});
} else {
roomInfo = data.data;
if(roomInfo.type == 6){
$("#nobility_div").show();
}
if(roomInfo.type == 4){
$("#multiple_div").show();
}
if(roomInfo.type == 7){
$("#position_div").show();
}
if(roomInfo.type == 8){
$("#pendant_images_div").show();
$('#preview_plays_image_vap').attr('src', roomInfo.pendant_image_path);
}
$("#base_image_image").attr('src', roomInfo.http_base_image);
if (roomInfo.show_status == 2) {
$("#play_image_div").hide();
}
if(roomInfo.file_type == 1){
$("#plays_images_div").hide();
$("#demoCanvas").show();
var player = new SVGA.Player('#demoCanvas');
var parser = new SVGA.Parser('#demoCanvas'); // 如果你需要支持 IE6+,那么必须把同样的选择器传给 Parser。
parser.load(roomInfo.http_play_image, function (videoItem) {
player.setVideoItem(videoItem);
player.startAnimation();
})
}else{
$("#play_image_div").hide();
$('#preview_play_image_vap').attr('src', roomInfo.http_play_image);
}
// $("#reg_code_path_img").attr('src',roomInfo.reg_code_path);
form.val('MyForm', roomInfo)
}
}, "json");
//监听提交
form.on('submit(saveBtn)', function (data) {
data.field.login_token = AdminLoginToken
$.post(
WebHost + 'Gift/edit_gift',
data.field,
function (data, textStatus, jqXHR) {
if (data.code == 200) {
parent.layui.table.reload('currentTableId', {}, 'json');//刷新父级页面
}
layer.msg(data.msg, { time: 1000 }, function () {
});
},
"json"
);
// var index = layer.alert(JSON.stringify(data.field), {
// title: '最终的提交信息'
// }, function () {
// // 关闭弹出层
// layer.close(index);
// layer.close(parentIndex);
// });
return false;
});
form.on("radio(type)", function (data) {
var value = data.value;
if (value == 6) {
$("#nobility_div").show();
} else {
$("#nobility_div").hide();
}
if (value == 4) {
$("#multiple_div").show();
} else {
$("#multiple_div").hide();
}
if(value == 7){
$("#position_div").show();
}else{
$("#position_div").hide();
}
if(value == 8){
$("#pendant_images_div").show();
}else{
$("#pendant_images_div").hide();
}
});
form.on("radio(file_type)", function (data) {
var value = data.value;
if (value == 2) {
$("#play_image_div").hide();
$("#plays_images_div").show();
} else {
$("#play_image_div").show();
$("#plays_images_div").hide();
}
});
initNobilitySelect();
function initNobilitySelect() {
$.ajax({
type: "POST",
url: WebHost + "nobility/get_nobility_list",
data: { "login_token": AdminLoginToken, "limit": 999 },
dataType: "json",
async: false,
success: function (data) {
var list = data.data;
$("select[name='nid']").html('');
var option = document.createElement("option");
option.setAttribute("value", 0);
option.innerText = '请选择爵位';
$("select[name='nid']").append(option)
if (list != null || list.size() > 0) {
for (var c in list) {
var option = document.createElement("option");
option.setAttribute("value", list[c].lid);
option.innerText = list[c].name;
$("select[name='nid']").append(option)
}
};
form.render();
}
});
}
initPositionSelect();
function initPositionSelect() {
$.ajax({
type: "POST",
url: WebHost + "gift/get_gift_position_list",
data: { "login_token": AdminLoginToken, "limit": 999 },
dataType: "json",
async: false,
success: function (data) {
var list = data.data;
$("select[name='position']").html('');
var option = document.createElement("option");
option.setAttribute("value", 0);
option.innerText = '请选择礼物位置';
$("select[name='position']").append(option)
if (list != null || list.size() > 0) {
for (var c in list) {
var option = document.createElement("option");
option.setAttribute("value", list[c].id);
option.innerText = list[c].name;
$("select[name='position']").append(option)
}
};
form.render();
}
});
}
initMultipleSelect();
function initMultipleSelect() {
$.ajax({
type: "POST",
url: WebHost + "multiple/get_gift_multiple_type_list",
data: { "login_token": AdminLoginToken, "limit": 999 },
dataType: "json",
async: false,
success: function (data) {
var list = data.data;
$("select[name='mid']").html('');
var option = document.createElement("option");
option.setAttribute("value", 0);
option.innerText = '请选择倍率类型';
$("select[name='mid']").append(option)
if (list != null || list.size() > 0) {
for (var c in list) {
var option = document.createElement("option");
option.setAttribute("value", list[c].id);
option.innerText = list[c].name;
$("select[name='mid']").append(option)
}
};
form.render();
}
});
}
});
</script>
<script>
layui.use('upload', function () {
var $ = layui.jquery
, upload = layui.upload;
//普通图片上传
var uploadInst = upload.render({
elem: '#test1'
, url: WebHost + "Upload/file_upload"//改成您自己的上传接口
, data: {
"login_token": AdminLoginToken,
"file_category": "gift"
}
, before: function (obj) {
//预读本地文件示例不支持ie8
obj.preview(function (index, file, result) {
$('#base_image_image').attr('src', result); //图片链接base64
});
}
, done: function (res) {
//如果上传失败
if (res.code == 201) {
return layer.msg('上传失败');
}
//上传成功
$('#base_image').val(res.data.image_path); //图片链接base64
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
//普通文件上传
var uploadInst = upload.render({
elem: '#test2'
, url: WebHost + "Upload/file_upload"//改成您自己的上传接口
, data: {
"login_token": AdminLoginToken,
"file_category": "gift"
}
, accept: 'file' //普通文件
, exts: 'svga' //只允许上传压缩文件
, before: function (obj) {
//
}
, done: function (res) {
//如果上传失败
if (res.code == 201) {
return layer.msg('上传失败');
}
//上传成功
$('#play_image').val(res.data.image_path); //图片链接base64
var player = new SVGA.Player('#demoCanvas');
var parser = new SVGA.Parser('#demoCanvas'); // 如果你需要支持 IE6+,那么必须把同样的选择器传给 Parser。
parser.load(res.data.http_image_path, function (videoItem) {
player.setVideoItem(videoItem);
player.startAnimation();
})
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
//普通文件上传
var uploadInst = upload.render({
elem: '#test3'
, url: WebHost + "Upload/file_upload"//改成您自己的上传接口
, data: {
"login_token": AdminLoginToken,
"file_category": "gift"
}
, accept: 'file' //普通文件
, exts: 'mp4' //只允许上传压缩文件
, before: function (obj) {
//
}
, done: function (res) {
//如果上传失败
if (res.code == 201) {
return layer.msg('上传失败');
}
//上传成功
$('#plays_images').val(res.data.image_path); //图片链接base64
$('#preview_play_image_vap').attr('src', res.data.http_image_path);
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
//普通文件上传
var uploadInst = upload.render({
elem: '#test4'
, url: WebHost + "Upload/file_upload"//改成您自己的上传接口
, data: {
"login_token": AdminLoginToken,
"file_category": "gift"
}
, accept: 'file' //普通文件
, exts: 'mp4' //只允许上传压缩文件
, before: function (obj) {
//
}
, done: function (res) {
//如果上传失败
if (res.code == 201) {
return layer.msg('上传失败');
}
//上传成功
$('#pendant_images').val(res.data.image_path); //图片链接base64
$('#preview_plays_image_vap').attr('src', res.data.http_image_path);
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
});
</script>
</body>
</html>