469 lines
20 KiB
HTML
469 lines
20 KiB
HTML
{layout name="layout1" /}
|
|
<div class="layui-fluid">
|
|
<div class="layui-card">
|
|
<div class="layui-card-body">
|
|
<div class="layui-collapse like-layui-collapse" lay-accordion="" 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-form layui-card-header layuiadmin-card-header-auto">
|
|
<div class="layui-form-item">
|
|
<div class="layui-inline">
|
|
<div class="layui-input-inline" style="width: 200px;">
|
|
<input type="text" id="keyword" name="keyword" placeholder="请输入关键词" autocomplete="off" class="layui-input">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-inline">
|
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" lay-submit lay-filter="user-search">查询</button>
|
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-user layui-btn-primary " lay-submit lay-filter="user-clear-search">清空查询</button>
|
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-user layui-btn-primary " lay-submit lay-filter="export-file">导出</button>
|
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" data-type="send_coupon">添加</button>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="layui-card-body">
|
|
<table id="user-lists" lay-filter="user-lists"></table>
|
|
<script type="text/html" id="user-operation">
|
|
<a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="info">资料</a>
|
|
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
|
|
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="del">删除</a>
|
|
</script>
|
|
<script type="text/html" id="user-info">
|
|
{{ d.title }}
|
|
</script>
|
|
<script type="text/html" id="referrer">
|
|
{{ d.staff_name || '--' }}
|
|
</script>
|
|
<script type="text/html" id="account">
|
|
{{ d.collection || 0 }}
|
|
</script>
|
|
<script type="text/html" id="status">
|
|
{{# if(d.state == 1){ }}
|
|
<span class="layui-badge layui-bg-green">显示</span>
|
|
{{# } else { }}
|
|
<span class="layui-badge layui-bg-gray">不显示</span>
|
|
{{# } }}
|
|
</script>
|
|
<script type="text/html" id="img-templet">
|
|
{{# if(d.img){ }}
|
|
<img src="{{ d.img }}" alt="封面图" style="width: 60px; height: 60px; object-fit: cover; cursor: pointer;" class="image-show">
|
|
{{# } else { }}
|
|
<span>无图片</span>
|
|
{{# } }}
|
|
</script>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<style>
|
|
.layui-table-cell {
|
|
height: auto;
|
|
}
|
|
</style>
|
|
<script>
|
|
layui.config({
|
|
version:"{$front_version}",
|
|
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
|
|
}).extend({
|
|
index: 'lib/index' //主入口模块
|
|
}).use(['index','table','like','laydate'], function(){
|
|
var $ = layui.$
|
|
,form = layui.form
|
|
,table = layui.table
|
|
,like = layui.like
|
|
, laydate = layui.laydate;
|
|
|
|
//监听搜索
|
|
form.on('submit(user-search)', function(data){
|
|
var field = data.field;
|
|
//执行重载
|
|
table.reload('user-lists', {
|
|
where: field,
|
|
page: {
|
|
curr: 1 //重新从第 1 页开始
|
|
}
|
|
});
|
|
});
|
|
//日期时间范围
|
|
laydate.render({
|
|
elem: '#start_time'
|
|
,type: 'datetime'
|
|
,trigger: 'click'
|
|
});
|
|
|
|
//日期时间范围
|
|
laydate.render({
|
|
elem: '#end_time'
|
|
,type: 'datetime'
|
|
,trigger: 'click'
|
|
});
|
|
//日期时间范围
|
|
laydate.render({
|
|
elem: '#start_times'
|
|
,type: 'datetime'
|
|
,trigger: 'click'
|
|
});
|
|
|
|
//日期时间范围
|
|
laydate.render({
|
|
elem: '#end_times'
|
|
,type: 'datetime'
|
|
,trigger: 'click'
|
|
});
|
|
|
|
|
|
//清空查询
|
|
form.on('submit(user-clear-search)', function(){
|
|
$('#keyword_type').val('sn');
|
|
$('#keyword').val(''); //清空输入框
|
|
$('#level').val(''); //清空输入框
|
|
$('#group_id').val(''); //清空输入框
|
|
$('#start_time').val(''); //清空输入框
|
|
$('#end_time').val(''); //清空输入框
|
|
form.render('select');
|
|
//刷新列表
|
|
table.reload('user-lists', {
|
|
where: [],
|
|
page: {
|
|
curr: 1 //重新从第 1 页开始
|
|
}
|
|
});
|
|
});
|
|
|
|
// 导出
|
|
form.on('submit(export-file)', function(data){
|
|
var field = data.field;
|
|
$.ajax({
|
|
url: '{:url("user/exportFile")}',
|
|
type: 'get',
|
|
data: field,
|
|
dataType: 'json',
|
|
error: function() {
|
|
layer.msg('导出超时,请稍后再试!');
|
|
},
|
|
success: function(res) {
|
|
table.exportFile(res.data.exportTitle,res.data.exportData, res.data.exportExt, res.data.exportName);
|
|
},
|
|
timeout: 15000
|
|
});
|
|
layer.msg('导出中请耐心等待~');
|
|
});
|
|
|
|
|
|
//事件
|
|
var active = {
|
|
send_coupon:function() { //发放优惠券
|
|
layer.open({
|
|
type: 2
|
|
,title: '添加'
|
|
,content: '{:url("Moments/add")}'
|
|
,area: ['55%', '80%']
|
|
,btn: ['确定', '取消']
|
|
,yes: function(index, layero){
|
|
var iframeWindow = window['layui-layer-iframe'+ index]
|
|
,submitID = 'user_group-submit'
|
|
,submit = layero.find('iframe').contents().find("#add-user_group-submit");
|
|
|
|
//监听提交
|
|
iframeWindow.layui.form.on('submit(add-user_group-submit)', function(data){
|
|
var field = data.field;
|
|
|
|
// 手动收集图片数组字段,确保数据正确传递
|
|
var goods_images = [];
|
|
iframeWindow.$('input[name="goods_image[]"]').each(function(){
|
|
var val = iframeWindow.$(this).val();
|
|
if (val && val.trim() !== '') {
|
|
goods_images.push(val.trim());
|
|
}
|
|
});
|
|
|
|
// 将图片数组添加到提交数据中
|
|
if (goods_images.length > 0) {
|
|
field['goods_image'] = goods_images;
|
|
}
|
|
|
|
// 阻止表单默认提交,使用 AJAX 提交
|
|
like.ajax({
|
|
url:'{:url("Moments/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('user-lists'); //数据刷新
|
|
} else {
|
|
// 验证失败,显示错误信息,但不关闭弹窗,保留已上传的图片
|
|
layui.layer.msg(res.msg || '提交失败,请检查表单信息', {
|
|
offset: '15px'
|
|
, icon: 2
|
|
, time: 2000
|
|
});
|
|
}
|
|
},
|
|
error: function(xhr, status, error) {
|
|
// 请求失败,显示错误信息,但不关闭弹窗
|
|
layui.layer.msg('提交失败:' + (xhr.responseJSON?.msg || error), {
|
|
offset: '15px'
|
|
, icon: 2
|
|
, time: 2000
|
|
});
|
|
}
|
|
});
|
|
return false; // 阻止表单默认提交
|
|
});
|
|
submit.trigger('click');
|
|
}
|
|
});
|
|
|
|
}
|
|
,set_group:function() { //设置分组
|
|
var check_status = table.checkStatus('user-lists')
|
|
,user_list = check_status.data; //得到选中的数据
|
|
|
|
|
|
//是否已选数据
|
|
if( user_list.length === 0){
|
|
return layer.msg('请选择用户');
|
|
}
|
|
//获取所选id
|
|
ids = [];
|
|
for (var i in user_list){
|
|
ids.push(user_list[i]['id']);
|
|
}
|
|
|
|
layer.open({
|
|
type: 2
|
|
,title: '设置分组'
|
|
,content: '{:url("user/setGroup")}'
|
|
,area: ['60%', '60%']
|
|
,btn: ['确定', '取消']
|
|
,yes: function(index, layero){
|
|
var iframeWindow = window['layui-layer-iframe'+ index]
|
|
,submitID = 'user-submit-edit'
|
|
,submit = layero.find('iframe').contents().find("#set_group-submit");
|
|
//监听提交
|
|
iframeWindow.layui.form.on('submit(set_group-submit)', function(data){
|
|
var group_id = data.field.group_id;
|
|
$.ajax({
|
|
url:'{:url("user/setGroup")}',
|
|
data:{group_id:group_id,user_ids:ids},
|
|
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('user-lists'); //数据刷新
|
|
} else if(res.code == 1){
|
|
layui.layer.msg(res.msg)
|
|
}
|
|
}
|
|
});
|
|
});
|
|
submit.trigger('click');
|
|
}
|
|
});
|
|
|
|
}
|
|
}
|
|
$('.layui-btn.layuiadmin-btn-user').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,600);
|
|
});
|
|
});
|
|
|
|
|
|
|
|
layui.define(['table', 'form'], function(exports){
|
|
var $ = layui.$
|
|
,table = layui.table
|
|
,form = layui.form;
|
|
|
|
//管理员管理
|
|
table.render({
|
|
id:'user-lists'
|
|
,elem: '#user-lists'
|
|
,url: '{:url("moments/lists")}' //模拟接口
|
|
,cols: [[
|
|
{type: 'checkbox'}
|
|
,{field: 'id', title: 'ID', }
|
|
,{field: 'title', title: '标题',align: 'center', toolbar: '#user-info'}
|
|
,{field: 'goods_name', title: '绑定商品',}
|
|
,{field: 'staff_name', title: '绑定员工',align: 'center',toolbar: '#referrer'}
|
|
,{field: 'img', title: '封面图', templet: '#img-templet'}
|
|
,{field: 'collection', title: '收藏数量',toolbar: '#account'}
|
|
,{field: 'like', title: '点赞数量'}
|
|
,{field: 'page_views', title: '浏览量'}
|
|
,{field: 'order_sn', title: '订单编号'}
|
|
,{field: 'state', title: '状态',align: 'center',templet: '#status'}
|
|
,{fixed: 'right', title: '操作', width: 360,toolbar: '#user-operation'}
|
|
|
|
]]
|
|
,page:true
|
|
,text: {none: '暂无数据!'}
|
|
,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
|
|
return {
|
|
"code":res.code,
|
|
"msg":res.msg,
|
|
"count": res.data.count, //解析数据长度
|
|
"data": res.data.lists, //解析数据列表
|
|
};
|
|
}
|
|
, done: function fix() {
|
|
$(".layui-table-main tr").each(function (index, val) {
|
|
$(".layui-table-fixed").each(function () {
|
|
$($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
|
|
});
|
|
});
|
|
$(".layui-table-header tr").each(function (index, val) {
|
|
$(".layui-table-fixed").each(function () {
|
|
$($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
|
|
});
|
|
});
|
|
window.onresize = function () {
|
|
fix()
|
|
}
|
|
}
|
|
});
|
|
|
|
var moreShow = 0;
|
|
//监听工具条
|
|
table.on('tool(user-lists)', function(obj){
|
|
var data = obj.data;
|
|
|
|
// 查看详情
|
|
if(obj.event === 'info'){
|
|
var id = data.id;
|
|
layer.open({
|
|
type: 2
|
|
,title: '查看详情'
|
|
,content: '{:url("moments/info")}?id='+id
|
|
,area: ['90%','90%']
|
|
,btn: ['返回']
|
|
,yes: function(index){
|
|
layer.close(index);
|
|
}
|
|
});
|
|
}
|
|
|
|
// 编辑
|
|
if(obj.event === 'edit'){
|
|
var id = data.id;
|
|
layer.open({
|
|
type: 2
|
|
,title: '编辑动态'
|
|
,content: '{:url("moments/edit")}?id='+id
|
|
,area: ['90%', '90%']
|
|
,btn: ['确定', '取消']
|
|
,yes: function(index, layero){
|
|
var iframeWindow = window['layui-layer-iframe'+ index]
|
|
,submit = layero.find('iframe').contents().find('#edit-submit');
|
|
//监听提交
|
|
iframeWindow.layui.form.on('submit(edit-submit)', function(formData){
|
|
var field = formData.field;
|
|
|
|
// 手动收集图片数组
|
|
var goods_images = [];
|
|
layero.find('iframe').contents().find('input[name="goods_image[]"]').each(function(){
|
|
var imgVal = $(this).val();
|
|
if (imgVal) {
|
|
goods_images.push(imgVal);
|
|
}
|
|
});
|
|
field.goods_image = goods_images;
|
|
|
|
$.ajax({
|
|
url:'{:url("moments/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('user-lists'); //数据刷新
|
|
}else{
|
|
layer.msg(res.msg, {
|
|
offset: '15px'
|
|
, icon: 2
|
|
, time: 1000
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
submit.trigger('click');
|
|
}
|
|
});
|
|
}
|
|
|
|
// 删除
|
|
if(obj.event === 'del'){
|
|
var id = data.id;
|
|
layer.confirm('确定要删除这条动态吗?', {icon: 3, title:'提示'}, function(index){
|
|
$.ajax({
|
|
url: '{:url("moments/del")}',
|
|
type: 'post',
|
|
data: {id: id},
|
|
success: function(res){
|
|
if(res.code == 1){
|
|
layer.msg(res.msg, {icon: 1, time: 1000}, function(){
|
|
table.reload('user-lists'); //数据刷新
|
|
});
|
|
} else {
|
|
layer.msg(res.msg, {icon: 2, time: 1000});
|
|
}
|
|
layer.close(index);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
if(obj.event === 'staff'){
|
|
var id = obj.data.id;
|
|
$.post('{:url("user/staff")}?id='+id,function(res){
|
|
if(res.code==0){
|
|
layer.msg(res.msg, {icon: 1, time: 1000}, function(){
|
|
layer.msg(res.msg,{icon: 6, time: 1000});
|
|
layer.close(index); //关闭弹层
|
|
table.reload('user-lists'); //数据刷新
|
|
});
|
|
}else{
|
|
layer.msg(res.msg)
|
|
}
|
|
|
|
})
|
|
}
|
|
});
|
|
});
|
|
</script> |