其余文件

This commit is contained in:
2026-04-14 17:46:22 +08:00
parent 294b68fe37
commit 3691f4db22
1343 changed files with 189847 additions and 0 deletions

View File

@ -0,0 +1,188 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips {
color: red;
}
.unit-tips {
float: left;
display: block;
padding: 9px 0 !important;
line-height: 20px;
margin-right: 10px;
}
.layui-form-mid.layui-word-aux {
width: 392px;
}
.mintop {
padding-top: -350px;
position: relative;
top: -40px;
}
.one_price {
margin-bottom: 11px !important;
}
.input_width {
width: 40% !important;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-coupon" id="layuiadmin-form-coupon" style="padding: 20px 30px 0 0;">
<!-- 产品来源 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>产品来源:</label>
<input type="hidden" name="source_id" id="source_id" value="0">
<div class="layui-input-inline input_width">
<input type="radio" name="source_type" value="0" title="商品库" checked>
</div>
</div>
<!-- 选择商品 -->
<div class="layui-form-item">
<div class="layui-input-block">
<a class="layui-btn layui-btn-normal select-goods">选择商品</a>
</div>
</div>
<!-- 商品名称 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>商品名称:</label>
<div class="layui-input-inline input_width">
<input type="text" id="goods_name" name="name"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required">
</div>
</div>
<!-- 商品封面 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>商品封面:</label>
<div class="layui-input-block">
<div class="like-upload-image " switch-tab="0" lay-verType="tips">
<div class="upload-image-elem"><a class="add-upload-image upload-cover-img"> + 添加</a></div>
</div>
<div class="layui-form-mid layui-word-aux">建议尺寸200像素 * 200像素图片尺寸不能超过300像素 * 300像素。</div>
</div>
</div>
<!-- 价格形式-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>价格形式:</label>
<!--一口价 -->
<div class="layui-form-item mintop one_price">
<label class="layui-form-label"></label>
<div class="layui-input-inline" style="margin-right: 0px;width: 120px;">
<input type="radio" name="price_type" value="1" title="一口价" checked>
</div>
<div class="unit-tips">价格</div>
<div class="layui-input-inline" style="width: 110px">
<input type="number" name="price" id="price" class="layui-input" min="0">
</div>
<div class="unit-tips"></div>
</div>
<!-- 价格区间-->
<label class="layui-form-label"></label>
<div class="mintop">
<div class="layui-input-inline" style="margin-right: 0px;width: 120px;">
<input type="radio" name="price_type" value="2" title="价格区间">
</div>
<div class="unit-tips">价格</div>
<div class="layui-input-inline" style="width: 110px">
<input type="number" name="section_price_start" class="layui-input " autocomplete="off" min="0">
</div>
<div class="unit-tips">&nbsp;&nbsp;&nbsp;-</div>
<div class="layui-input-inline" style="width: 110px">
<input type="number" name="section_price_end" class="layui-input " autocomplete="off" min="0">
</div>
<div class="unit-tips"></div>
</div>
<!--显示折扣价 -->
<div class="layui-form-item mintop" style="padding-top: 10px">
<label class="layui-form-label"></label>
<div class="layui-input-inline" style="margin-right: 0px;width: 120px;">
<input type="radio" name="price_type" value="3" title="显示折扣价">
</div>
<div class="unit-tips">原价</div>
<div class="layui-input-inline" style="width: 110px">
<input type="number" name="discount_price_start" class="layui-input " autocomplete="off" min="0">
</div>
<div class="unit-tips">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div class="unit-tips">现价</div>
<div class="layui-input-inline" style="width: 110px">
<input type="number" name="discount_price_end" class="layui-input " autocomplete="off" min="0">
</div>
<div class="unit-tips"></div>
</div>
</div>
<!-- 商品链接 -->
<div class="layui-form-item">
<label class="layui-form-label" style="margin-top:-15px;"><font color="red">*</font>商品链接:</label>
<div class="layui-input-inline input_width" style="margin-top:-15px;">
<input type="text" id="url" name="url"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required">
<div class="layui-form-mid " style="color: #999;">
请确保小程序页面路径可被访问例如pages/goods_details/goods_details?id=goods_id
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
</div>
</div>
<script>
layui.use(['table', 'form'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table;
// 选择商品
$(document).on('click', '.select-goods', function () {
layer.open({
type: 2
, title: '选择商品'
, content: '{:url("common/selectGoods")}'
, area: ['90%', '90%']
, btn: ['确认', '取消']
, yes: function (index, layero) {
var data = window["layui-layer-iframe" + index].callbackdata();
data.forEach(function (item, index) {
$('.del-upload-btn').parent().remove()
$('#goods_name').val(item.name);
$('imput[name="price_type"]:eq(0)').attr('checked', true);
$('#price').val(item.min_price);
$('#url').val('pages/goods_details/goods_details?id=' + item.id);
var template = '<div class="upload-image-div">';
template += '<img src="'+item.image+'" alt="img">';
template += '<input type="hidden" name="cover_img" value="'+item.image+'">';
template += '<div class="del-upload-btn">x</div>';
$('.upload-image-elem').parent().before(template);
$('.upload-image-elem').hide();
$('#source_id').val(item.id);
});
}
})
});
like.delUpload();
// 直播背景
$(document).on("click", ".upload-cover-img", function () {
like.imageUpload({
limit: 1,
field: "cover_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
});
</script>

View File

@ -0,0 +1,79 @@
{layout name="layout2" /}
<style>
.div-flex {
display: flex;
align-items: center;
justify-content: left;
}
.image {
height: 80px;
width: 80px;
}
</style>
<div class="layui-card-body">
<!--基本信息-->
<div class="layui-form" lay-filter="layuiadmin-form-order" id="layuiadmin-form-order">
<input type="hidden" class="id" name="id" value="{$detail.id}">
<div class="layui-form-item div-flex">
<label class="layui-form-label ">产品来源</label>
<div class="div-width">{$detail.source_type_text}</div>
</div>
<div class="layui-form-item div-flex">
<label class="layui-form-label ">商品名称:</label>
<div class="div-width">{$detail.name}</div>
</div>
<div class="layui-form-item div-flex">
<label class="layui-form-label ">商品封面:</label>
<div class="div-width"><img src="{$detail.cover_img}" class="image-show image"></div>
</div>
<!-- 价格形式-->
<div class="layui-form-item div-flex">
<label class="layui-form-label ">价格形式:</label>
<div class="div-width">
<span>{$detail.price_type_text}</span>
<span>{$detail.price_tips}</span>
</div>
</div>
<div class="layui-form-item div-flex">
<label class="layui-form-label ">商品链接:</label>
<div class="div-width">{$detail.url}</div>
</div>
<div class="layui-form-item div-flex">
<label class="layui-form-label ">审核状态:</label>
<div class="div-width">{$detail.audit_status_text}</div>
</div>
<div class="layui-form-item" style="text-align: center">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary width_160 " id="back">返回</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
layui.use(['form'], function () {
var $ = layui.$;
//主图放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 400);
});
$('#back').click(function () {
var index=parent.layer.getFrameIndex(window.name); //获取当前窗口的name
parent.layer.close(index);
parent.layui.table.reload('like-table-lists');
return true;
});
});
</script>

View File

@ -0,0 +1,233 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
height: auto;
white-space: normal;
}
</style>
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>* 商家提交直播商品后,平台审核后,将交由微信再次进行审核;</p>
<p>* 直播商品每天最多可添加500次删除商品每天最多可删除1000次。</p>
</div>
</div>
</div>
</div>
<!-- 搜索区域 -->
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label for="goods_name" class="layui-form-label">商品名称:</label>
<div class="layui-inline" style="margin-right:0;">
<div class="layui-input-inline" >
<input type="text" id="goods_name" name="goods_name" placeholder="请输入商品名称"
autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-inline">
<a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
<a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<ul class="layui-tab-title">
<li data-type="all" class="layui-this">全部</li>
<li data-type="ing">审核中</li>
<li data-type="success">审核通过</li>
<li data-type="fail">审核未通过</li>
</ul>
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-card-body">
<div style="padding-bottom: 10px;" class="add">
<button class="layui-btn layui-btn-sm layuiadmin-btn {$view_theme_color}" data-type="add">
添加直播商品
</button>
<!-- <button class="layui-btn layui-btn-sm layuiadmin-btn layui-btn-primary" data-type="sync">-->
<!-- 同步商品库-->
<!-- </button>-->
</div>
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="operation">
<a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="detail">详情</a>
{{# if(d.sys_audit_status > 1 ){ }}
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
{{# } }}
</script>
<!-- 商品信息 -->
<script type="text/html" id="table-goods">
<div class="goods-content">
<div style="text-align: left;">
<img src="{{ d.cover_img }}" style="height:80px;width: 80px" class="image-show">
<div class="layui-input-inline ">
<span class="">{{ d.name }}</span>
</div>
</div>
</div>
</script>
<!-- 商品价格 -->
<script type="text/html" id="table-price">
<div class="price-content">
<span>{{ d.price_text }}</span>
</div>
</script>
<!-- 审核状态 -->
<script type="text/html" id="table-audit">
<div class="audit-content">
<span>{{ d.audit_status_text }}</span>
<span>{{ d.audit_remark }}</span>
</div>
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
layui.use(['table', 'laydate', 'form'], function () {
var $ = layui.$
, table = layui.table
, element = layui.element
, form = layui.form
, status = 'all';
form.on("submit(search)", function(data){
table.reload("like-table-lists", {
where: data.field,
page: {
curr: 1
}
});
});
form.on("submit(clear-search)", function(){
$("#goods_name").val("");
form.render();
table.reload("like-table-lists", {
where: {},
page: {
curr: 1
}
});
});
getList();
element.on('tab(tab-all)', function (data) {
status = $(this).attr('data-type');
getList();
});
function getList() {
like.tableLists("#like-table-lists", '{:url("live.LiveGoods/lists")}?status=' + status, [
{field: 'goodsId', width: 80, title: 'ID', sort: true, hide: true}
, {field: 'goods_info', title: '商品信息', width: 300, templet:'#table-goods'}
, {field: 'price', title: '商品价格', width: 200, align: 'center',templet: '#table-price'}
, {field: 'url', title: '商品链接', width: 320, align: 'center'}
, {field: 'audit_status', title: '状态', width: 200, align: 'center', templet:'#table-audit'}
, {fixed: 'right', title: '操作', width: 150, align: 'center', toolbar: '#operation'}
]);
}
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 400);
});
//事件
var active = {
add: function () {
layer.open({
type: 2
, title: '添加直播商品'
, content: '{:url("live.LiveGoods/add")}'
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'addSubmit'
, submit = layero.find('iframe').contents().find('#' + submitID);
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
console.log(field);
like.ajax({
url: '{:url("live.LiveGoods/add")}',
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('like-table-lists');
}
}
});
});
submit.trigger('click');
}
});
},
detail: function (obj) {
layer.open({
type: 2
, title: '商品信息'
, content: '{:url("live.LiveGoods/detail")}?id=' + obj.data.id
, area: ['90%', '90%']
, yes: function (index, layero) {
}
});
},
// 同步商品库
sync: function () {
table.reload('like-table-lists');
},
// 删除
del: function (obj) {
layer.confirm('确定要删除商品:' + obj.data.name, function (index) {
like.ajax({
url: '{:url("live.LiveGoods/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);
obj.del();
}
}
});
layer.close(index);
})
}
};
// 监听表格右侧工具条
table.on('tool(like-table-lists)', function (obj) {
var type = obj.event;
active[type] ? active[type].call(this, obj) : '';
});
// 绑定点击按钮事件
$('.layui-btn.layuiadmin-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
</script>

View File

@ -0,0 +1,163 @@
{layout name="layout2" /}
<style>
.layui-form-label {
width: 120px;
}
.layui-input-block{
margin-left:150px;
}
</style>
<div class="layui-card layui-form">
<div class="layui-card-body">
<!-- 直播间标题 -->
<div class="layui-form-item">
<label for="name" class="layui-form-label" ><font color="red">*</font>直播间标题:</label>
<div class="layui-input-inline">
<input type="text" id="name" name="name" placeholder="填写本次直播的标题"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required">
</div>
</div>
<!--直播类型-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>直播类型:</label>
<div class="layui-input-block">
<input type="radio" name="type" value="0" title="手机直播" checked>
</div>
<div class="layui-form-mid layui-word-aux">通过“小程序直播”开播</div>
</div>
<!-- 开播时间 -->
<div class="layui-form-item">
<label for="startTime" class="layui-form-label" ><font color="red">*</font>开播时间:</label>
<div class="layui-input-inline">
<input type="text" id="startTime" name="start_time" placeholder="填写直播开始时间"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required" readonly>
<div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">填写直播开始时间开播时间需要在当前时间的10分钟后并且不能在6个月后</div>
</div>
</div>
<!-- 结束时间 -->
<div class="layui-form-item">
<label for="endTime" class="layui-form-label" ><font color="red">*</font>结束时间:</label>
<div class="layui-input-inline">
<input type="text" id="endTime" name="end_time" class="layui-input" placeholder="直播结束时间"
autocomplete="off" lay-verType="tips" lay-verify="required" readonly>
<div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">开播时间和结束时间间隔不得短于30分钟不得超过24小时</div>
</div>
</div>
<!-- 主播昵称 -->
<div class="layui-form-item">
<label for="anchor_name" class="layui-form-label" ><font color="red">*</font>主播昵称:</label>
<div class="layui-input-inline">
<input type="text" id="anchor_name" name="anchor_name" placeholder="填写本次直播的主播昵称"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required">
</div>
</div>
<!-- 主播微信账号 -->
<div class="layui-form-item">
<label for="anchor_wechat" class="layui-form-label" ><font color="red">*</font>主播微信号:</label>
<div class="layui-input-inline">
<input type="text" id="anchor_wechat" name="anchor_wechat" placeholder="填写本次直播的主播微信号"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required">
<div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">每个直播间需要绑定主播微信号,用以核实主播身份,不会展示给观众。</div>
</div>
</div>
<!-- 分享卡片封面 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>分享卡片封面:</label>
<div class="layui-input-block">
<div class="like-upload-image " switch-tab="0" lay-verType="tips">
<div class="upload-image-elem"><a class="add-upload-image upload-share-img"> + 添加</a></div>
</div>
<div class="layui-form-mid layui-word-aux">用户在微信对话框内分享的直播间将以分享卡片的形式呈现。 建议尺寸800像素 * 640像素图片大小不得超过1M</div>
</div>
</div>
<!-- 直播卡片封面 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>直播卡片封面:</label>
<div class="layui-input-block">
<div class="like-upload-image " switch-tab="0" lay-verType="tips">
<div class="upload-image-elem"><a class="add-upload-image upload-feeds-img"> + 添加</a></div>
</div>
<div class="layui-form-mid layui-word-aux">图片建议大小为 800像素 * 800像素。图片大小不超过300KB。 图片内容遵循平台规范后更容易被推荐。</div>
</div>
</div>
<!-- 直播间背景墙 -->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>直播间背景墙:</label>
<div class="layui-input-block">
<div class="like-upload-image " switch-tab="0" lay-verType="tips">
<div class="upload-image-elem"><a class="add-upload-image upload-cover-img"> + 添加</a></div>
</div>
<div class="layui-form-mid layui-word-aux">直播间背景墙是每个直播间的默认背景。 建议尺寸600像素 * 1300像素图片大小不得超过3M</div>
</div>
</div>
<!-- 直播间功能-->
<div class="layui-form-item">
<label class="layui-form-label" >直播间功能:</label>
<div class="layui-input-block">
<input type="checkbox" name="close_like" lay-skin="primary" title="开启点赞" checked>
<input type="checkbox" name="close_goods" lay-skin="primary" title="开启货架" checked>
<input type="checkbox" name="close_comment" lay-skin="primary" title="开启评论" checked>
<input type="checkbox" name="close_replay" lay-skin="primary" title="开启回放" checked>
<input type="checkbox" name="close_share" lay-skin="primary" title="开启分享" checked>
<input type="checkbox" name="close_kf" lay-skin="primary" title="开启客服" checked>
<input type="checkbox" name="is_feeds_public" lay-skin="primary" title="开启官方收录">
</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.use(['table', 'form', 'laydate', 'element'], function () {
var $ = layui.$
,form = layui.form
,laydate = layui.laydate
,element = layui.element;
// 时间组件
laydate.render({type:'datetime' ,elem:'#startTime', trigger:'click'});
laydate.render({type:'datetime' ,elem:'#endTime' ,trigger: 'click'});
like.delUpload();
// 分享卡片封面
$(document).on("click", ".upload-share-img", function () {
like.imageUpload({
limit: 1,
field: "share_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
// 直播封面
$(document).on("click", ".upload-feeds-img", function () {
like.imageUpload({
limit: 1,
field: "feeds_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
// 直播背景
$(document).on("click", ".upload-cover-img", function () {
like.imageUpload({
limit: 1,
field: "cover_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
});
</script>

View File

@ -0,0 +1,194 @@
{layout name="layout2" /}
<style>
.layui-form-label {
width: 120px;
}
.layui-input-block{
margin-left:150px;
}
</style>
<div class="layui-card layui-form">
<div class="layui-card-body">
<input type="hidden" name="id" value="{$detail.id}">
<!-- 直播间标题 -->
<div class="layui-form-item">
<label for="name" class="layui-form-label" ><font color="red">*</font>直播间标题:</label>
<div class="layui-input-inline">
<input type="text" id="name" name="name" placeholder="填写本次直播的标题" value="{$detail.name}"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required">
</div>
</div>
<!--直播类型-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>直播类型:</label>
<div class="layui-input-block">
<input type="radio" name="type" value="0" title="手机直播" checked>
</div>
<div class="layui-form-mid layui-word-aux">通过“小程序直播”开播</div>
</div>
<!-- 开播时间 -->
<div class="layui-form-item">
<label for="startTime" class="layui-form-label" ><font color="red">*</font>开播时间:</label>
<div class="layui-input-inline">
<input type="text" id="startTime" name="start_time" placeholder="填写直播开始时间" value="{$detail.start_time}"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required" readonly>
<div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">填写直播开始时间开播时间需要在当前时间的10分钟后并且不能在6个月后</div>
</div>
</div>
<!-- 结束时间 -->
<div class="layui-form-item">
<label for="endTime" class="layui-form-label" ><font color="red">*</font>结束时间:</label>
<div class="layui-input-inline">
<input type="text" id="endTime" name="end_time" class="layui-input" placeholder="直播结束时间" value="{$detail.end_time}"
autocomplete="off" lay-verType="tips" lay-verify="required" readonly>
<div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">开播时间和结束时间间隔不得短于30分钟不得超过24小时</div>
</div>
</div>
<!-- 主播昵称 -->
<div class="layui-form-item">
<label for="anchor_name" class="layui-form-label" ><font color="red">*</font>主播昵称:</label>
<div class="layui-input-inline">
<input type="text" id="anchor_name" name="anchor_name" placeholder="填写本次直播的主播昵称"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required" value="{$detail.anchor_name}">
</div>
</div>
<!-- 主播微信账号 -->
<div class="layui-form-item">
<label for="anchor_wechat" class="layui-form-label" ><font color="red">*</font>主播微信号:</label>
<div class="layui-input-inline">
<input type="text" id="anchor_wechat" name="anchor_wechat" placeholder="填写本次直播的主播微信号"
class="layui-input" autocomplete="off" lay-verType="tips" lay-verify="required" value="{$detail.anchor_wechat}">
<div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">每个直播间需要绑定主播微信号,用以核实主播身份,不会展示给观众。</div>
</div>
</div>
<!-- 分享卡片封面 -->
<div class="layui-form-item">
<label class="layui-form-label">分享卡片封面:</label>
<div class="layui-input-block">
<div class="like-upload-image">
{if $detail.share_img}
<div class="upload-image-div">
<img src="{$detail.share_img}" alt="img">
<input type="hidden" name="share_img" value="{$detail.share_img}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image upload-share-img"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image upload-share-img"> + 添加图片</a></div>
{/if}
</div>
<div class="layui-form-mid layui-word-aux">用户在微信对话框内分享的直播间将以分享卡片的形式呈现。 建议尺寸800像素 * 640像素图片大小不得超过1M</div>
</div>
</div>
<!-- 直播卡片封面 -->
<div class="layui-form-item">
<label class="layui-form-label">直播卡片封面:</label>
<div class="layui-input-block">
<div class="like-upload-image">
{if $detail.feeds_img}
<div class="upload-image-div">
<img src="{$detail.feeds_img}" alt="img">
<input type="hidden" name="feeds_img" value="{$detail.feeds_img}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image upload-feeds-img"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image upload-feeds-img"> + 添加图片</a></div>
{/if}
</div>
<div class="layui-form-mid layui-word-aux">图片建议大小为 800像素 * 800像素。图片大小不超过300KB。 图片内容遵循平台规范后更容易被推荐。</div>
</div>
</div>
<!-- 直播间背景墙 -->
<div class="layui-form-item">
<label class="layui-form-label">直播间背景墙:</label>
<div class="layui-input-block">
<div class="like-upload-image">
{if $detail.cover_img}
<div class="upload-image-div">
<img src="{$detail.cover_img}" alt="img">
<input type="hidden" name="cover_img" value="{$detail.cover_img}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image upload-cover-img"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image upload-cover-img"> + 添加图片</a></div>
{/if}
</div>
<div class="layui-form-mid layui-word-aux">直播间背景墙是每个直播间的默认背景。 建议尺寸600像素 * 1300像素图片大小不得超过3M</div>
</div>
</div>
<!-- 直播间功能-->
<div class="layui-form-item">
<label class="layui-form-label" >直播间功能:</label>
<div class="layui-input-block">
<input type="checkbox" name="close_like" lay-skin="primary" title="开启点赞" {eq name="detail.close_like" value="0"}checked{/eq}>
<input type="checkbox" name="close_goods" lay-skin="primary" title="开启货架" {eq name="detail.close_goods" value="0"}checked{/eq}>
<input type="checkbox" name="close_comment" lay-skin="primary" title="开启评论" {eq name="detail.close_comment" value="0"}checked{/eq}>
<input type="checkbox" name="close_replay" lay-skin="primary" title="开启回放" {eq name="detail.close_replay" value="0"}checked{/eq}>
<input type="checkbox" name="close_share" lay-skin="primary" title="开启分享" {eq name="detail.close_share" value="0"}checked{/eq}>
<input type="checkbox" name="close_kf" lay-skin="primary" title="开启客服" {eq name="detail.close_kf" value="0"}checked{/eq}>
<input type="checkbox" name="is_feeds_public" lay-skin="primary" title="开启官方收录" {eq name="detail.is_feeds_public" value="1"}checked{/eq}>
</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.use(['table', 'form', 'laydate', 'element'], function () {
var $ = layui.$
,form = layui.form
,laydate = layui.laydate
,element = layui.element;
// 时间组件
laydate.render({type:'datetime' ,elem:'#startTime', trigger:'click'});
laydate.render({type:'datetime' ,elem:'#endTime' ,trigger: 'click'});
like.delUpload();
// 分享卡片封面
$(document).on("click", ".upload-share-img", function () {
like.imageUpload({
limit: 1,
field: "share_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
// 直播封面
$(document).on("click", ".upload-feeds-img", function () {
like.imageUpload({
limit: 1,
field: "feeds_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
// 直播背景
$(document).on("click", ".upload-cover-img", function () {
like.imageUpload({
limit: 1,
field: "cover_img",
that: $(this),
content: '/shop/file/lists?type=10',
});
});
});
</script>

View File

@ -0,0 +1,325 @@
{layout name="layout1" /}
<style>
.layui-table-cell{
height:auto;
overflow:hidden;
text-overflow:inherit;
}
</style>
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*同步直播间每天最多可同步100000次请合理分配获取频次。</p>
<p>*扫此二维码开播:<img class="image-show" src="/static/admin/images/zhibo.png" alt="zb"
style="width:50px;height:50px;"></p>
</div>
</div>
</div>
</div>
<!-- 搜索区域 -->
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label for="live_info" class="layui-form-label">直播信息:</label>
<div class="layui-inline" style="margin-right:0;">
<div class="layui-input-inline" >
<input type="text" id="live_info" name="live_info" placeholder="请输入直播间名称/主播名称"
autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">直播状态:</label>
<div class="layui-input-block">
<select name="live_status" id="live_status">
<option value="">全部</option>
{foreach $live_status as $item => $val}
<option value="{$item}">{$val}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-row">
<div class="layui-inline">
<label class="layui-form-label">开播时间:</label>
<div class="layui-input-inline">
<div class="layui-input-inline">
<input type="text" name="start_time" class="layui-input" id="start_time"
placeholder="" autocomplete="off">
</div>
</div>
<div class="layui-input-inline" style="margin-right: 5px;width: 20px;">
<label class="layui-form-mid"></label>
</div>
<div class="layui-input-inline">
<input type="text" name="end_time" class="layui-input" id="end_time"
placeholder="" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
<a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<ul class="layui-tab-title">
<li data-type="" class="layui-this">全部</li>
<li data-type="0">待审核</li>
<li data-type="1">审核通过</li>
<li data-type="2">审核未通过</li>
</ul>
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-card-body">
<div style="padding-bottom: 10px;">
<button class="layui-btn layui-btn-sm layuiadmin-btn {$view_theme_color}" data-type="add">
创建直播间
</button>
<!-- <button class="layui-btn layui-btn-sm layuiadmin-btn layui-btn-primary" data-type="sync">-->
<!-- 同步直播间-->
<!-- </button>-->
</div>
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="operation">
{{# if(d.audit_status == 1 && d.live_status <= 102){ }}
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="import">导入商品</a>
{{# } }}
{{# if(d.audit_status > 0 ){ }}
<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>
<!-- 直播间信息 -->
<script type="text/html" id="anchor-content">
<img src="{{ d.feeds_img }}" style="height:80px;width: 80px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<p >{{ d.name }}</p>
<p >主播{{ d.anchor_name }}</p>
</div>
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
layui.use(['table', 'form', 'laydate', 'element'], function () {
var $ = layui.$
, table = layui.table
, laydate = layui.laydate
, element = layui.element
, form = layui.form
, status = -1;
//日期时间范围
laydate.render({
elem: '#start_time'
, type: 'datetime'
, theme: '#1E9FFF'
});
laydate.render({
elem: '#end_time'
, type: 'datetime'
, theme: '#1E9FFF'
});
form.on("submit(search)", function(data){
table.reload("like-table-lists", {
where: data.field,
page: {
curr: 1
}
});
});
form.on("submit(clear-search)", function(){
$("#live_info").val("");
$("#live_status").val("");
$("#start_time").val("");
$("#end_time").val("");
form.render();
table.reload("like-table-lists", {
where: {},
page: {
curr: 1
}
});
});
getList();
element.on('tab(tab-all)', function (data) {
status = $(this).attr('data-type');
getList();
});
function getList() {
like.tableLists("#like-table-lists", '{:url("live.LiveRoom/lists")}?status=' + status, [
{field: 'id', title: 'ID', sort: true, hide: true}
, {field: 'live_time_text', title: '开播时间', align: 'center', width:250}
, {field: 'anchor', title: '直播间信息', align: 'left', templet:'#anchor-content', width:300}
, {field: 'audit_status_text', title: '审核状态', align: 'center', width:120}
, {field: 'live_status_text', title: '直播状态', align: 'center', width:120}
, {field: 'goods_num', title: '商品数量', align: 'center', width:120}
, {fixed: 'right', title: '操作', align: 'center', toolbar: '#operation', width:200}
]);
}
//事件
var active = {
add: function () {
layer.open({
type: 2
, title: '创建直播间'
, content: '{:url("live.LiveRoom/add")}'
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'addSubmit'
, submit = layero.find('iframe').contents().find('#' + submitID);
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
like.ajax({
url: '{:url("live.LiveRoom/add")}',
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('like-table-lists');
}
}
});
});
submit.trigger('click');
}
});
},
edit: function (obj) {
layer.open({
type: 2
, title: '编辑直播间'
, content: '{:url("live.LiveRoom/edit")}?id=' + obj.data.id
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
console.log(obj.id)
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'addSubmit'
, submit = layero.find('iframe').contents().find('#' + submitID);
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
like.ajax({
url: '{:url("live.LiveRoom/edit")}',
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('like-table-lists');
}
}
});
});
submit.trigger('click');
}
});
},
// 同步直播间
sync: function () {
table.reload('like-table-lists');
},
// 删除
del: function (obj) {
layer.confirm('确定要删除直播间:' + obj.data.name, function (index) {
like.ajax({
url: '{:url("live.LiveRoom/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);
obj.del();
}
}
});
layer.close(index);
})
},
// 导入直播商品
import: function (obj) {
layer.open({
type: 2
, title: '导入商品'
, content: '{:url("live.LiveRoom/selectGoods")}'
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'addSubmit'
, submit = layero.find('iframe').contents().find('#' + submitID);
var selectData = iframeWindow.callbackdata();
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var goods_ids = [];
selectData.forEach(function(item, index, arr) {
if(goods_ids.indexOf(item.id) == -1) {
goods_ids.push(item.id);
}
});
like.ajax({
url: '{:url("live.LiveRoom/importGoods")}',
data: {'goods_ids' : goods_ids, '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('like-table-lists');
}
}
});
});
submit.trigger('click');
}
});
},
};
// 监听表格右侧工具条
table.on('tool(like-table-lists)', function (obj) {
var type = obj.event;
active[type] ? active[type].call(this, obj) : '';
});
// 绑定点击按钮事件
$('.layui-btn.layuiadmin-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
// 图片
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 400);
});
});
</script>

View File

@ -0,0 +1,90 @@
{layout name="layout2" /}
<style>
.layui-table-cell {
height: auto;
}
</style>
<div class="wrapper">
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item type">
<div class="layui-inline">
<label class="layui-form-label">商品名称:</label>
<div class="layui-input-block">
<input type="text" name="goods_name" id="goods_name" placeholder="请输入关键词"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-like {$view_theme_color}" lay-submit
lay-filter="like-table-search">查询
</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
lay-filter="like-clear-search">重置
</button>
</div>
</div>
</div>
<div class="layui-card-body">
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="goods-info">
<img src="{{d.cover_img}}" style="height:60px;width: 60px" class="image-show"> {{d.name}}
</script>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="addSubmit" class="addSubmit" id="addSubmit" value="确认">
</div>
</div>
<script>
var table;
layui.use(["table", "element", "form"], function () {
var $ = layui.$
, form = layui.form
, element = layui.element;
table = layui.table
//监听搜索
form.on('submit(like-table-search)', function (data) {
var field = data.field;
//执行重载
table.reload('like-table-lists', {
where: field
});
});
//清空查询
form.on('submit(like-clear-search)', function () {
$('#goods_name').val('');
form.render('select');
//刷新列表
table.reload('like-table-lists', {
where: [],
page: {
curr: 1
}
});
});
like.tableLists('#like-table-lists', '{:url("live.LiveRoom/selectGoods")}', [
{type: 'checkbox', field: 'id'}
, {field: 'name', title: '商品名称', toolbar: '#goods-info'}
, {field: 'price_text', title: '价格'}
, {field: 'goods_stock', title: '库存'}
]);
});
var callbackdata = function () {
var data = table.checkStatus('like-table-lists').data
, index = parent.layer.getFrameIndex(window.name);
// parent.layer.close(index);
return data;
}
</script>