Commit 5be4cb5b by gongyang

Merge remote-tracking branch 'origin/feature/20251222/notice' into feature/20251222/notice

parents 560bd543 bc2292d8
layui.use(['form', 'table', 'laydate', 'layedit'], function () {
var form = layui.form;
var table = layui.table;
var laydate = layui.laydate;
var layedit = layui.layedit;
var pageS = {
init: function () {
//时间初始化
laydate.render({
elem: '#create_time',
type: 'date',
range: "~"
});
laydate.render({
elem: '#last_contact_time',
type: 'date',
range: "~"
});
pageS.render()
},
render: function () {
table.render({
elem: '#list',
url: '/msgapi/businessNoticeList',
toolbar: '#toolbar',
method: 'get',
where: {
},
drag: false,
overflow: {
type: 'tips'
},
cols: [[
{ field: "checkbox", type: 'checkbox', fixed: true, width: 60, align: 'center' },
{ field: 'business_notice_id', title: 'ID', width: 90 },
{ field: 'title', title: '标题', width: 250 },
{ field: 'create_name', title: '创建人', width: 150 },
{ field: 'source_cn', title: '来源', width: 150 },
{ field: 'system_id_cn', title: '系统', width: 150 },
{ field: 'create_time_cn', title: '创建时间', width: 180 },
{ field: 'type_cn', title: '类型', width: 120 },
{ field: 'show_status_cn', title: '显示状态', width: 100 },
{ field: 'top_status_cn', title: '置顶状态', width: 150 },
{
title: '操作', fixed: 'right', field: "handle", width: 280, align: 'center', templet: function (d) {
var btn_str = `<button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button>`
btn_str += `<button class="layui-btn layui-btn-xs" lay-event="hide">${d.show_status==1?'隐藏':'显示'}</button>`
btn_str += `<button class="layui-btn layui-btn-xs" lay-event="top">${d.top_status==1?'取消置顶':'置顶'}</button>`
btn_str += `<button class="layui-btn layui-btn-xs" lay-event="del">删除</button>`
btn_str += `<button class="layui-btn layui-btn-xs" lay-event="log">日志</button>`
return btn_str;
}
}
]],
// parseData: LayUiTableParseData,
done: function (res, curr, count) {
pageS.handle()
}
});
},
handle: function () {
//查询搜索
form.on('submit(getList)', function (data) {
table.reload('list', {
where: { ...data.field },
page: {
curr: 1
}
});
});
//监听头工具栏事件
table.on('toolbar(list)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
var data = checkStatus.data;
var ids = data.map(obj => {
return obj.business_notice_id
})
switch (obj.event) {
//新增
case 'add':
layer.open({
type: 1,
title: '新增公告',
offset: '50px',
area: ['1100px', '470px'],
shadeClose: true,
resize: false,
move: false,
content: $('#addNotHtml').html(),
success: function (layero, dIndex) {
layero.find('.layui-layer-content').css('overflow', 'visible');
layeditIndex = layedit.build('update_content_text', {
height: 200,
}); //建立编辑器
form.render();
//提交表单
form.on('submit(addNotSub)', function (data) {
var params = data.field;
params.info=layedit.getContent(layeditIndex)
if(!params.info){
layer.msg("请输入公告内容")
return
}
Request('/msgapi/saveBusinessNotice', 'POST',params, function (res) {
if (res.errcode == 0) {
layer.msg('保存成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
return false
});
}
});
break;
//批量显示
case 'show':
if (data.length == 0) {
layer.msg("请勾选至少1条数据");
return false;
}
layer.confirm('<p style="text-align: center">确认批量显示勾选公告吗?</p>', {
skin: 'layui-layer-admin',
title: '批量显示',
shade: .1,
resize: false,
offset: '250px',
move: false
}, function (i) {
Request('/msgapi/showBusinessNotice', 'POST', { business_notice_id: ids.join(","),show_status:1 }, function (res) {
if (res.errcode == 0) {
layer.msg('操作成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
});
break;
//批量隐藏
case 'hide':
if (data.length == 0) {
layer.msg("请勾选至少1条数据");
return false;
}
layer.confirm('<p style="text-align: center">确认批量隐藏勾选公告吗?</p>', {
skin: 'layui-layer-admin',
title: '批量隐藏',
shade: .1,
resize: false,
offset: '250px',
move: false
}, function (i) {
Request('/msgapi/showBusinessNotice', 'POST', { business_notice_id: ids.join(","),show_status:0 }, function (res) {
if (res.errcode == 0) {
layer.msg('操作成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
});
break;
//删除
case 'del':
if (data.length == 0) {
layer.msg("请勾选至少1条数据");
return false;
}
layer.confirm('<p style="text-align: center">确认删除勾选公告吗?</p>', {
skin: 'layui-layer-admin',
title: '删除',
shade: .1,
resize: false,
offset: '250px',
move: false
}, function (i) {
Request('/msgapi/delBusinessNotice', 'POST', { business_notice_id: ids.join(","),is_del:1 }, function (res) {
if (res.errcode == 0) {
layer.msg('操作成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
});
break;
}
});
//触发单元格工具事件
table.on('tool(list)', function (obj) {
var data = obj.data;
if (obj.event === 'log') {
//日志
layer.open({
type: 1,
title: '查看日志',
offset: '50px',
area: ['900px', 'auto'],
shadeClose: false,
resize: false,
move: false,
skin: 'logSkin',
content: `<div style="padding:20px;"><table id="logList" lay-filter="logList"></table></div>`,
success: function (layero, dIndex) {
table.render({
elem: '#logList',
url: '/api/log/getCustomerUserLogs',
method: 'GET',
size: 'sm',
page: false,
where: {
obj_type: 1613,
obj_id: data.id
},
cols: [[
{ type: 'numbers', title: '序号' },
{ field: 'create_name', title: '操作人', width: 160 },
{ field: 'create_time', title: '时间', width: 160 },
{ field: 'content', title: '内容' }
]],
limit: 1000000,
parseData: function (res) {
return {
code: res.code,
msg: res.msg,
count: res.data ? res.data.length : 0,
data: res.data
}
},
done: function (res, curr, count) {
}
});
}
});
}
if (obj.event === 'edit') {
//编辑
layer.open({
type: 1,
title: '新增公告',
offset: '50px',
area: ['1100px', '470px'],
shadeClose: true,
resize: false,
move: false,
content: $('#addNotHtml').html(),
success: function (layero, dIndex) {
layero.find('.layui-layer-content').css('overflow', 'visible');
form.val("addNotForm",{
business_notice_id:data.business_notice_id,
title:data.title,
type:data.type,
show_status:data.show_status,
})
// var newHtml =data.info
$('#update_content_text').val(data.info);
// layedit.build && layedit.del(layeditIndex);
layeditIndex = layedit.build('update_content_text', { height: 200 });
form.render();
//提交表单
form.on('submit(addNotSub)', function (data) {
var params = data.field;
params.info=layedit.getContent(layeditIndex)
if(!params.info){
layer.msg("请输入公告内容")
return
}
Request('/msgapi/saveBusinessNotice', 'POST',params, function (res) {
if (res.errcode == 0) {
layer.msg('保存成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
return false
});
}
});
}
if (obj.event === 'hide') {
//显示隐藏
layer.confirm(`<p style="text-align: center">确认${data.show_status==1?'隐藏':'显示'}当前公告吗?</p>`, {
skin: 'layui-layer-admin',
title: `${data.show_status==1?'隐藏':'显示'}`,
shade: .1,
resize: false,
offset: '250px',
move: false
}, function (i) {
Request('/msgapi/delBusinessNotice', 'POST', { business_notice_id: data.business_notice_id,is_del:1 }, function (res) {
if (res.errcode == 0) {
layer.msg('操作成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
});
}
if (obj.event === 'del') {
//删除
layer.confirm(`<p style="text-align: center">确认删除当前公告吗?</p>`, {
skin: 'layui-layer-admin',
title: `删除`,
shade: .1,
resize: false,
offset: '250px',
move: false
}, function (i) {
Request('/msgapi/showBusinessNotice', 'POST', { business_notice_id:data.business_notice_id,show_status:data.show_status==1?0:1 }, function (res) {
if (res.errcode == 0) {
layer.msg('操作成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
});
}
if (obj.event === 'top') {
//置顶
layer.confirm(`<p style="text-align: center">确认${data.top_status==1?'取消置顶':'置顶'}当前公告吗?</p>`, {
skin: 'layui-layer-admin',
title: `${data.top_status==1?'取消置顶':'置顶'}`,
shade: .1,
resize: false,
offset: '250px',
move: false
}, function (i) {
Request('/msgapi/topBusinessNotice', 'POST', { business_notice_id:data.business_notice_id,show_status:data.top_status==1?0:1 }, function (res) {
if (res.errcode == 0) {
layer.msg('操作成功', { shift: 0, time: 2000 }, function () {
layer.closeAll();
table.reload('list');
});
} else {
layer.msg(res.errmsg);
}
});
});
}
});
}
}
pageS.init();
});
\ No newline at end of file
This diff could not be displayed because it is too large.
No preview for this file type
This diff could not be displayed because it is too large.
No preview for this file type
No preview for this file type
This diff could not be displayed because it is too large.
<style>
.layui-form-label {
width: 100px;
}
label.required:before {
content: ' *';
color: red
}
.layui-layer.layui-layer-page.layui-layer-msg{z-index: 999999999!important;}
.layedit-tool-image{display: none!important;}
.layui-layer {top:100px!important}
</style>
<section class="section-page">
<form class="layui-form" onsubmit="return false" lay-filter="taskForm">
<div class="layui-form-item mb0">
<div class="layui-inline">
<label class="layui-form-label">公告标题</label>
<div class="layui-input-inline">
<input type="text" name="title" placeholder="请输入公告标题" autocomplete="off" class="layui-input" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">公告类型</label>
<div class="layui-input-inline">
<select name="type">
<option value="">全部</option>
<option value="1">最新补货</option>
<option value="2">最新入库</option>
<option value="3">优势货源</option>
<option value="4">个人消息</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">显示状态</label>
<div class="layui-input-inline">
<select name="show_status">
<option value="">全部</option>
<option value="0">隐藏</option>
<option value="1">显示</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">置顶状态</label>
<div class="layui-input-inline">
<select name="top_status">
<option value="">全部</option>
<option value="0">非置顶</option>
<option value="1">置顶</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-inline">
<input type="text" name="create_time_begin" placeholder="请选择创建时间" autocomplete="off" class="layui-input" id="create_time" />
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-sm" lay-submit="" lay-filter="getList">查询</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</div>
</form>
<table id="list" lay-filter="list"></table>
</section>
<!--工具类-->
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
<a class="layui-btn layui-btn-sm btn-color" lay-event="add">新增</a>
<a class="layui-btn layui-btn-sm btn-color" lay-event="show">批量显示</a>
<a class="layui-btn layui-btn-sm btn-color" lay-event="hide">批量隐藏</a>
<a class="layui-btn layui-btn-sm btn-color" lay-event="del">删除</a>
</div>
</script>
<!--新增-->
<script type="text/html" id="addNotHtml">
<form class="layui-form layer-box-padding" onsubmit="return false;" style="padding: 20px 20px 30px 20px;" lay-filter="addNotForm">
<input type="hidden" name="business_notice_id">
<div class="layui-form-item ">
<div class="layui-inline">
<label class="layui-form-label required">公告标题</label>
<div class="layui-input-inline">
<input type="text" name="title" placeholder="请输入公告标题" autocomplete="off" class="layui-input" lay-verify="required"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required">公告类型</label>
<div class="layui-input-inline">
<select name="type" lay-verify="required">
<option value="">全部</option>
<option value="1">最新补货</option>
<option value="2">最新入库</option>
<option value="3">优势货源</option>
<option value="4">个人消息</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required">公告状态</label>
<div class="layui-input-inline">
<select name="show_status" lay-verify="required">
<option value="">全部</option>
<option value="0">隐藏</option>
<option value="1">显示</option>
</select>
</div>
</div>
</div>
<div class="layui-form-item ">
<div class="layui-inline">
<label class="layui-form-label required">公告详情</label>
<div class="layui-input-inline" style="width: 800px;">
<textarea id="update_content_text" class="layui-textarea" style="display: none" ></textarea>
<input type="hidden" id="update_content" >
</div>
</div>
</div>
<div class="layui-form-item" style="margin-top: 30px;">
<div class="layui-input-block">
<button type="submit" class="layui-btn layui-btn-sm " lay-submit="" lay-filter="addNotSub">确定</button>
<button class="layui-btn layui-btn-sm layui-btn-primary" onclick="layer.closeAll()">取消</button>
</div>
</div>
</form>
</script>
<script src="/js/Message/layui/layui.all.js"></script>
<script>
/**
*
* @param url
* @param type
* @param param
* @param callback
* @param isload
* @constructor
*/
function Request(url, type, param, callback, isload) {
if (isload == undefined) {
var index = layer.load(2, {
offset: '100px'
});
}
//设置携带cookie
$.ajaxSetup({
xhrFields: {
withCredentials: true
}
});
var params = $.extend({}, param);
$.ajax({
type: type,
url: url,
data: params,
xhrFields: {
withCredentials: true
},
timeout: 30000,
success: function(data) {
typeof callback == 'function' && callback(data);
if (isload == undefined) {
layer.close(index);
}
},
error: function() {
layer.closeAll('loading');
layer.msg('网络出现问题,请重试!');
}
});
}
</script>
<script src="/js/Message/MessageList.js"></script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment