first commit
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="style"}
|
||||
<style>
|
||||
.layui-table-1 .tr-2,.layui-table-1 .tr-3{display:none;}
|
||||
.layui-table-2 .tr-1,.layui-table-2 .tr-3{display:none;}
|
||||
.layui-table-3 .tr-1,.layui-table-3 .tr-2{display:none;}
|
||||
.layui-table-4 .tr-1,.layui-table-4 .tr-2,.layui-table-4 .tr-3,.layui-table-4 .tr-4{display:none;}
|
||||
</style>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
{if condition="$id eq 0"}
|
||||
<h3 class="pb-3">新建消息</h3>
|
||||
<table id="messageTable" class="layui-table layui-table-form layui-table-1">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="types" lay-filter="types" value="1" title="同事" checked>
|
||||
<input type="radio" name="types" lay-filter="types" value="2" title="部门">
|
||||
<input type="radio" name="types" lay-filter="types" value="3" title="岗位">
|
||||
<input type="radio" name="types" lay-filter="types" value="4" title="全部">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-1">
|
||||
<td class="layui-td-gray">收件人<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="unames" value="" placeholder="请选择收件人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="uids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-2">
|
||||
<td class="layui-td-gray">收件部门<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="dnames" value="" placeholder="请选择收件部门" readonly class="layui-input picker-oa" data-types="department" data-type="2">
|
||||
<input type="hidden" name="dids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-3">
|
||||
<td class="layui-td-gray">收件岗位<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="pnames" value="" placeholder="请选择收件岗位" readonly class="layui-input picker-oa" data-types="position" data-type="2"">
|
||||
<input type="hidden" name="pids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-4">
|
||||
<td class="layui-td-gray">抄送人</td>
|
||||
<td>
|
||||
<input type="text" name="copy_names" value="" placeholder="请选择抄送人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="copy_uids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<font>*</font></td>
|
||||
<td><input type="text" name="title" value="" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息内容<font>*</font></td>
|
||||
<td><textarea name="content" placeholder="请输入消息内容" class="layui-textarea" style="height: 200px;" lay-verify="required" lay-reqText="请输入消息内容"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button></div></td>
|
||||
<td>
|
||||
<div class="layui-row" id="uploadBox">
|
||||
<input type="hidden" data-type="file" name="file_ids" value="">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{else/}
|
||||
<h3 class="pb-3">编辑消息</h3>
|
||||
<table id="messageTable" class="layui-table layui-table-form layui-table-{$detail.types}">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="types" lay-filter="types" value="1" title="同事" {eq name="$detail.types" value="1"}checked{/eq}>
|
||||
<input type="radio" name="types" lay-filter="types" value="2" title="部门" {eq name="$detail.types" value="2"}checked{/eq}>
|
||||
<input type="radio" name="types" lay-filter="types" value="3" title="岗位" {eq name="$detail.types" value="3"}checked{/eq}>
|
||||
<input type="radio" name="types" lay-filter="types" value="4" title="全部" {eq name="$detail.types" value="4"}checked{/eq}>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-1">
|
||||
<td class="layui-td-gray">收件人<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="unames" value="{$detail.unames|default=''}" placeholder="请选择收件人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="uids" value="{$detail.uids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-2">
|
||||
<td class="layui-td-gray">收件部门<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="dnames" value="{$detail.dnames|default=''}" placeholder="请选择收件部门" readonly class="layui-input picker-oa" data-types="department" data-type="2">
|
||||
<input type="hidden" name="dids" value="{$detail.dids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-3">
|
||||
<td class="layui-td-gray">收件岗位<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="pnames" value="{$detail.pnames|default=''}" placeholder="请选择收件岗位" readonly class="layui-input picker-oa" data-types="position" data-type="2"">
|
||||
<input type="hidden" name="pids" value="{$detail.pids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-4">
|
||||
<td class="layui-td-gray">抄送人</td>
|
||||
<td>
|
||||
<input type="text" name="copy_names" value="{$detail.copy_names|default=''}" placeholder="请选择抄送人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="copy_uids" value="{$detail.copy_uids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<font>*</font></td>
|
||||
<td><input type="text" name="title" value="{$detail.title|default=''}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息内容<font>*</font></td>
|
||||
<td>
|
||||
<textarea name="content" placeholder="请输入消息内容" class="layui-textarea" style="height: 200px;" lay-verify="required" lay-reqText="请输入消息内容">{$detail.content|default=''}</textarea>
|
||||
{if condition="($detail.msg_id > 0)"}
|
||||
<table class="layui-table" style="margin-top:10px">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">引用消息内容</td>
|
||||
<td>{$detail.from_content}</td>
|
||||
</tr>
|
||||
{notempty name="$detail.from_file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">引用消息附件</td>
|
||||
<td>
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.from_file_array" id="vo"}
|
||||
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5">
|
||||
<div class="layui-row" id="uploadBox">
|
||||
<input type="hidden" name="file_ids" data-type="file" value="{$detail.file_ids}">
|
||||
{notempty name="$detail.file_ids"}
|
||||
{volist name="$detail.file_array" id="vo"}
|
||||
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo)}</div>
|
||||
{/volist}
|
||||
{/notempty}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
<div class="pt-4">
|
||||
<input type="hidden" value="{$id}" name="id">
|
||||
<input type="hidden" value="{$msg_id}" name="msg_id">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="draftform">存为草稿</button>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即发送</button>
|
||||
</div>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','oaPicker','uploadPlus'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,uploadPlus=layui.uploadPlus;
|
||||
let uploada = new uploadPlus();
|
||||
//监听保存到草稿并发送
|
||||
form.on('submit(webform)', function(data){
|
||||
data.field.is_draft=1;
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
let clickbtn = $(this);
|
||||
tool.post("/home/message/save", data.field, callback,clickbtn);
|
||||
return false;
|
||||
});
|
||||
|
||||
//监听保存到草稿
|
||||
form.on('submit(draftform)', function(data){
|
||||
data.field.is_draft=2;
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
let clickbtn = $(this);
|
||||
tool.post("/home/message/save", data.field, callback),clickbtn;
|
||||
return false;
|
||||
});
|
||||
|
||||
//选择收件人类型
|
||||
form.on('radio(types)', function (data) {
|
||||
$('#messageTable').attr('class','layui-table layui-table-form layui-table-'+data.value);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,162 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-page">
|
||||
{include file="message/msgmenu" /}
|
||||
<div style="margin-left:172px;">
|
||||
<form class="layui-form gg-form-bar border-t border-x">
|
||||
<div class="layui-input-inline" style="width:200px">
|
||||
<input type="text" autocomplete="off" name="range_time" readonly class="layui-input tool-time" data-range="~" placeholder="发送日期">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:300px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:150px;">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="add"><i class="layui-icon"></i>新建消息</button>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del"><i class="layui-icon"></i>批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool ,form = layui.form;
|
||||
|
||||
layui.pageTable = table.render({
|
||||
elem: '#test',
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar:false,
|
||||
title:'草稿箱',
|
||||
url: "/home/message/draft", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 80,
|
||||
height: 'full-114',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'title', title: '消息主题',minWidth:240},
|
||||
{field: 'types', title: '接收人类型',width:100,align:'center',templet: function (d) {
|
||||
var html = '<span class="layui-color-' + d.types + '">『同事』</span>';
|
||||
if(d.types==2){
|
||||
html = '<span class="layui-color-' + d.types + '">『部门』</span>';
|
||||
}
|
||||
if(d.types==3){
|
||||
html = '<span class="layui-color-' + d.types + '">『职位』</span>';
|
||||
}
|
||||
if(d.types==4){
|
||||
html = '<span class="layui-color-' + d.types + '">『全部』</span>';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{field: 'to_name', title: '接收人',width:200,templet: function (d) {
|
||||
var html = d.to_name;
|
||||
if(d.types==2){
|
||||
html = d.to_department;
|
||||
}
|
||||
if(d.types==3){
|
||||
html = d.to_position;
|
||||
}
|
||||
if(d.types==4){
|
||||
html = '全部员工';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{field: 'copy_names', title: '抄送人',width:160},
|
||||
{field: 'update_time', title: '最近保存时间', align:'center',width:160},
|
||||
{field: 'right', title: '操作',fixed:'right', width:120, align:'center',templet: function (d) {
|
||||
let html='<div class="layui-btn-group">';
|
||||
let btn1='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
|
||||
let btn2='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">查看</span>';
|
||||
let btn3='<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>';
|
||||
return html+btn1+btn2+btn3+'</div>'
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(test)', function(obj){
|
||||
let data = obj.data;
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('确定该信息要放入垃圾箱吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/del", {ids: data.id}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'edit'){
|
||||
tool.side('/home/message/add?id='+data.id);
|
||||
}
|
||||
if(obj.event === 'view'){
|
||||
tool.side('/home/message/view?id='+data.id);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(test)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.side("/home/message/add");
|
||||
return;
|
||||
}
|
||||
if(data.length==0){
|
||||
layer.msg('请选择要操作的消息');
|
||||
return false;
|
||||
}
|
||||
var idArray=[],msg='是否执行该操作?';
|
||||
for(var i=0;i<data.length;i++){
|
||||
idArray.push(data[i].id);
|
||||
}
|
||||
switch(obj.event){
|
||||
case 'del':
|
||||
msg = '确定把选中的信息要放入垃圾箱吗?';
|
||||
break;
|
||||
};
|
||||
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/del", {ids: idArray.join(',')}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
layui.pageTable.reload({where:data.field,page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,226 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-page">
|
||||
{include file="message/msgmenu" /}
|
||||
<div style="margin-left:172px;">
|
||||
<form class="layui-form gg-form-bar border-t border-x">
|
||||
<div class="layui-input-inline" style="width:200px">
|
||||
<input type="text" autocomplete="off" name="range_time" readonly class="layui-input tool-time" data-range="~" placeholder="接收日期">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:128px">
|
||||
<select name="read">
|
||||
<option value="">选择消息状态</option>
|
||||
<option value="1">未读消息</option>
|
||||
<option value="2">已读消息</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:128px">
|
||||
<select name="types">
|
||||
<option value="">选择消息类型</option>
|
||||
<option value="1">系统消息</option>
|
||||
<option value="2">个人消息</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:300px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:150px;">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i>新建消息</button>
|
||||
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="star"><i class="layui-icon"></i>设为星标</button>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm" lay-event="read"><i class="layui-icon"></i>设为已读</button>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del"><i class="layui-icon"></i>批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool ,form = layui.form;
|
||||
layui.pageTable = table.render({
|
||||
elem: '#test',
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar:false,
|
||||
title:'收件箱',
|
||||
url: "/home/message/inbox", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 80,
|
||||
height: 'full-114',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'msg_type', title: '消息类型',width:90,align:'center',templet: function (d) {
|
||||
var html = '<span class="yellow">系统消息</span>';
|
||||
if(d.from_uid > 0){
|
||||
html = '<span class="blue">个人消息</span>';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{field: 'from_name', title: '发件人', width:100,align:'center'},
|
||||
{field: 'title', title: '消息主题',minWidth:240},
|
||||
{field: 'create_time', title: '发件时间', align:'center',width:160},
|
||||
{field: 'read_time', title: '是否已读',align:'center', width:80,templet:function(d){
|
||||
var html='<span style="color:#5FB878">已读</span>';
|
||||
if(d.read_time==0){
|
||||
html='<span style="color:#FF5722">未读</span>';
|
||||
}
|
||||
return html;
|
||||
}},
|
||||
{field: 'is_star', title: '是否星标',align:'center', width:80,templet:function(d){
|
||||
var html='<span class="layui-icon layui-icon-rate" style="color:#5FB878; font-size:20px; cursor:pointer" lay-event="star"> </span>';
|
||||
if(d.is_star==1){
|
||||
html='<span class="layui-icon layui-icon-rate-solid" style="color:#ffb800; font-size:20px; cursor:pointer" lay-event="unstar"> </span>';
|
||||
}
|
||||
return html;
|
||||
}},
|
||||
{field: 'right', title: '操作',fixed:'right', width:160, align:'center',templet: function (d) {
|
||||
let html='<div class="layui-btn-group">';
|
||||
let btn1='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">查看</span>';
|
||||
let btn2='<span class="layui-btn layui-btn-xs" lay-event="reply">回复</span>';
|
||||
let btn3='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="resend">转发</span>';
|
||||
let btn4='<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>';
|
||||
if(d.from_uid == 0){
|
||||
return html+btn1+btn4+'</div>'
|
||||
}
|
||||
else{
|
||||
return html+btn1+btn2+btn3+btn4+'</div>'
|
||||
}
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(test)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'star'){
|
||||
layer.confirm('确定该信息设为星标吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/check", {
|
||||
ids: data.id,type:5,
|
||||
}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'unstar'){
|
||||
layer.confirm('确定该信息取消星标吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/check", {
|
||||
ids: data.id,type:6,
|
||||
}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('确定该信息要放入垃圾箱吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/check", {
|
||||
ids: data.id,type:2,
|
||||
}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'view'){
|
||||
tool.side('/home/message/read?id='+data.id);
|
||||
return;
|
||||
}
|
||||
if(obj.event === 'reply'){
|
||||
tool.side('/home/message/reply?msg_id='+data.id);
|
||||
return;
|
||||
}
|
||||
if(obj.event === 'resend'){
|
||||
tool.side('/home/message/resend?msg_id='+data.id);
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(test)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.side("/home/message/add");
|
||||
return;
|
||||
}
|
||||
if(data.length==0){
|
||||
layer.msg('请选择要操作的消息');
|
||||
return false;
|
||||
}
|
||||
var idArray=[],msg='是否执行该操作?',type=0;
|
||||
for(var i=0;i<data.length;i++){
|
||||
idArray.push(data[i].id);
|
||||
}
|
||||
switch(obj.event){
|
||||
case 'read':
|
||||
msg = '确定把选中的信息设为已读吗?';
|
||||
type = 1;
|
||||
break;
|
||||
case 'del':
|
||||
msg = '确定把选中的信息要放入垃圾箱吗?';
|
||||
type = 2;
|
||||
break;
|
||||
case 'star':
|
||||
msg = '确定把选中的信息设为星标吗?';
|
||||
type = 5;
|
||||
break;
|
||||
};
|
||||
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/check", {
|
||||
ids: idArray.join(','),
|
||||
type:type,
|
||||
}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
layui.pageTable.reload({where:data.field,page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="sub-menu" style="padding:15px 12px; width:160px; height: calc(100% - 14px);">
|
||||
<div class="border" style="width:100%;height:100%; background-color:#fbfbfb;">
|
||||
<ul>
|
||||
<li class="sub-menu-li {eq name='$action' value='inbox'} active{/eq}"><a href="/home/message/inbox"><i class="iconfont icon-yiyichuli"></i><span class="text">收件箱</span><span class="num">({$count.inbox})<span></a></li>
|
||||
<li class="sub-menu-li {eq name='$action' value='star'} active{/eq}"><a href="/home/message/star"><i class="iconfont icon-pingfen"></i><span class="text">星标信息</span><span class="num">({$count.star})<span></a></li>
|
||||
<li class="sub-menu-li {eq name='$action' value='sendbox'} active{/eq}"><a href="/home/message/sendbox"><i class="iconfont icon-tuiguangshezhi"></i><span class="text">发件箱</span><span class="num">({$count.sendbox})<span></a></li>
|
||||
<li class="sub-menu-li {eq name='$action' value='draft'} active{/eq}"><a href="/home/message/draft"><i class="iconfont icon-lunwenguanli"></i><span class="text">草稿箱</span><span class="num">({$count.draft})<span></a></li>
|
||||
<li class="sub-menu-li {eq name='$action' value='rubbish'} active{/eq}"><a href="/home/message/rubbish"><i class="iconfont icon-tiku"></i><span class="text">垃圾箱</span><span class="num">({$count.rubbish})<span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,105 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">消息详情</h3>
|
||||
<table id="messageTable" class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题</td>
|
||||
<td colspan="3">{$detail.title|default=''}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息类型</td>
|
||||
{eq name="$detail.message_id" value="0"}
|
||||
<td class="yellow">系统消息</td>
|
||||
{else/}
|
||||
<td class="blue">个人消息</td>
|
||||
{/eq}
|
||||
<td class="layui-td-gray">发送时间</td>
|
||||
<td>{$detail.create_time|default=''}</td>
|
||||
</tr>
|
||||
{gt name="$detail.message_id" value="0"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">发件人</td>
|
||||
<td>{$detail.from_uname|default=''}</td>
|
||||
<td class="layui-td-gray">收件人</td>
|
||||
<td>
|
||||
{eq name="$message.types" value="1"}
|
||||
<span class="layui-color-1">『同事』</span>{$message.unames|default=''}
|
||||
{/eq}
|
||||
{eq name="$message.types" value="2"}
|
||||
<span class="layui-color-2">『部门』</span>{$message.dnames|default=''}
|
||||
{/eq}
|
||||
{eq name="$message.types" value="3"}
|
||||
<span class="layui-color-3">『岗位』</span>{$message.pnames|default=''}
|
||||
{/eq}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$message.copy_names"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">抄送人</td>
|
||||
<td colspan="3">{$message.copy_names|default=''}</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
{/gt}
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息内容</td>
|
||||
<td colspan="3">
|
||||
<pre style="font-family:inherit">{$detail.content|default=''}</pre>
|
||||
{gt name="$detail.template" value="0"}
|
||||
{:get_message_link($detail.template,$detail.action_id)}
|
||||
{/gt}
|
||||
{if condition="($detail.msg_id > 0)"}
|
||||
<table class="layui-table" style="margin-top:10px">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">引用消息内容</td>
|
||||
<td>
|
||||
<pre style="font-family:inherit">{$detail.from_content}</pre>
|
||||
{gt name="$detail.from_template" value="0"}
|
||||
{:get_message_link($detail.from_template,$detail.from_action_id)}
|
||||
{/gt}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$detail.from_file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">引用消息附件</td>
|
||||
<td>
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.from_file_array" id="vo"}
|
||||
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$detail.file_ids"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息附件</td>
|
||||
<td colspan="3">
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.file_array" id="vo"}
|
||||
<div class="layui-col-md4">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
parent.layui.pageTable.reload();
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,138 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="style"}
|
||||
<style>
|
||||
.layui-table-1 .tr-2,.layui-table-1 .tr-3{display:none;}
|
||||
.layui-table-2 .tr-1,.layui-table-2 .tr-3{display:none;}
|
||||
.layui-table-3 .tr-1,.layui-table-3 .tr-2{display:none;}
|
||||
.layui-table-4 .tr-1,.layui-table-4 .tr-2,.layui-table-4 .tr-3,.layui-table-4 .tr-4{display:none;}
|
||||
</style>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">回复消息</h3>
|
||||
<table id="messageTable" class="layui-table layui-table-form layui-table-1">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="types" lay-filter="types" value="1" title="同事"checked>
|
||||
<input type="radio" name="types" lay-filter="types" value="2" title="部门">
|
||||
<input type="radio" name="types" lay-filter="types" value="3" title="岗位">
|
||||
<input type="radio" name="types" lay-filter="types" value="4" title="全部">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-1">
|
||||
<td class="layui-td-gray">收件人<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="unames" value="{$detail.from_name|default=''}" placeholder="请选择收件人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="uids" value="{$detail.from_uid|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-2">
|
||||
<td class="layui-td-gray">收件部门<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="dnames" value="{$detail.dnames|default=''}" placeholder="请选择收件部门" readonly class="layui-input picker-oa" data-types="department" data-type="2">
|
||||
<input type="hidden" name="dids" value="{$detail.dids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-3">
|
||||
<td class="layui-td-gray">收件岗位<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="pnames" value="{$detail.pnames|default=''}" placeholder="请选择收件岗位" readonly class="layui-input picker-oa" data-types="position" data-type="2"">
|
||||
<input type="hidden" name="pids" value="{$detail.pids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-4">
|
||||
<td class="layui-td-gray">抄送人</td>
|
||||
<td>
|
||||
<input type="text" name="copy_names" value="{$detail.copy_names|default=''}" placeholder="请选择抄送人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="copy_uids" value="{$detail.copy_uids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<font>*</font></td>
|
||||
<td><input type="text" name="title" value="回复:{$detail.title|default=''}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息内容<font>*</font></td>
|
||||
<td>
|
||||
<textarea name="content" placeholder="请输入消息内容" class="layui-textarea" style="height: 200px;" lay-verify="required" lay-reqText="请输入消息内容"></textarea>
|
||||
<table class="layui-table" style="margin-top:10px">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">回复消息内容</td>
|
||||
<td><pre style="font-family:inherit">{$detail.content|default=''}</pre></td>
|
||||
</tr>
|
||||
{notempty name="$detail.file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">回复消息附件</td>
|
||||
<td>
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.file_array" id="vo"}
|
||||
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button></div></td>
|
||||
<td>
|
||||
<div class="layui-row" id="uploadBox">
|
||||
<input type="hidden" data-type="file" name="file_ids" value="">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="pt-4">
|
||||
<input type="hidden" value="0" name="id">
|
||||
<input type="hidden" value="{$detail.id}" name="msg_id">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="draftform">存为草稿</button>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即发送</button>
|
||||
</div>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','oaPicker','uploadPlus'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,uploadPlus=layui.uploadPlus;
|
||||
let uploada = new uploadPlus();
|
||||
//监听保存到草稿并发送
|
||||
form.on('submit(webform)', function(data){
|
||||
data.field.is_draft=1;
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save", data.field, callback);
|
||||
});
|
||||
|
||||
//监听保存到草稿
|
||||
form.on('submit(draftform)', function(data){
|
||||
data.field.is_draft=2;
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save", data.field, callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
//选择收件人类型
|
||||
form.on('radio(types)', function (data) {
|
||||
$('#messageTable').attr('class','layui-table layui-table-form layui-table-'+data.value);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,138 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="style"}
|
||||
<style>
|
||||
.layui-table-1 .tr-2,.layui-table-1 .tr-3{display:none;}
|
||||
.layui-table-2 .tr-1,.layui-table-2 .tr-3{display:none;}
|
||||
.layui-table-3 .tr-1,.layui-table-3 .tr-2{display:none;}
|
||||
.layui-table-4 .tr-1,.layui-table-4 .tr-2,.layui-table-4 .tr-3,.layui-table-4 .tr-4{display:none;}
|
||||
</style>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">转发消息</h3>
|
||||
<table id="messageTable" class="layui-table layui-table-form layui-table-1">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="types" lay-filter="types" value="1" title="同事"checked>
|
||||
<input type="radio" name="types" lay-filter="types" value="2" title="部门">
|
||||
<input type="radio" name="types" lay-filter="types" value="3" title="岗位">
|
||||
<input type="radio" name="types" lay-filter="types" value="4" title="全部">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-1">
|
||||
<td class="layui-td-gray">收件人<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="unames" value="{$detail.from_name|default=''}" placeholder="请选择收件人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="uids" value="{$detail.from_uid|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-2">
|
||||
<td class="layui-td-gray">收件部门<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="dnames" value="{$detail.dnames|default=''}" placeholder="请选择收件部门" readonly class="layui-input picker-oa" data-types="department" data-type="2">
|
||||
<input type="hidden" name="dids" value="{$detail.dids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-3">
|
||||
<td class="layui-td-gray">收件岗位<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="pnames" value="{$detail.pnames|default=''}" placeholder="请选择收件岗位" readonly class="layui-input picker-oa" data-types="position" data-type="2"">
|
||||
<input type="hidden" name="pids" value="{$detail.pids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tr-4">
|
||||
<td class="layui-td-gray">抄送人</td>
|
||||
<td>
|
||||
<input type="text" name="copy_names" value="{$detail.copy_names|default=''}" placeholder="请选择抄送人" readonly class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="copy_uids" value="{$detail.copy_uids|default=''}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<font>*</font></td>
|
||||
<td><input type="text" name="title" value="转发:{$detail.title|default=''}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息内容<font>*</font></td>
|
||||
<td>
|
||||
<textarea name="content" placeholder="请输入消息内容" class="layui-textarea" style="height: 200px;" lay-verify="required" lay-reqText="请输入消息内容"></textarea>
|
||||
<table class="layui-table" style="margin-top:10px">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">转发消息内容</td>
|
||||
<td>{$detail.content|default=''}</td>
|
||||
</tr>
|
||||
{notempty name="$detail.file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">转发消息附件</td>
|
||||
<td>
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.file_array" id="vo"}
|
||||
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button></div></td>
|
||||
<td>
|
||||
<div class="layui-row" id="uploadBox">
|
||||
<input type="hidden" data-type="file" name="file_ids" value="">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="pt-4">
|
||||
<input type="hidden" value="0" name="id">
|
||||
<input type="hidden" value="{$detail.id}" name="msg_id">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="draftform">存为草稿</button>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即发送</button>
|
||||
</div>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','oaPicker','uploadPlus'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,uploadPlus=layui.uploadPlus;
|
||||
let uploada = new uploadPlus();
|
||||
//监听保存到草稿并发送
|
||||
form.on('submit(webform)', function(data){
|
||||
data.field.is_draft=1;
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save", data.field, callback);
|
||||
});
|
||||
|
||||
//监听保存到草稿
|
||||
form.on('submit(draftform)', function(data){
|
||||
data.field.is_draft=2;
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save", data.field, callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
//选择收件人类型
|
||||
form.on('radio(types)', function (data) {
|
||||
$('#messageTable').attr('class','layui-table layui-table-form layui-table-'+data.value);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,109 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-page">
|
||||
{include file="message/msgmenu" /}
|
||||
<div style="margin-left:172px;">
|
||||
<form class="layui-form gg-form-bar border-t border-x">
|
||||
<div class="layui-input-inline" style="width:300px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:150px;">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<h3>垃圾箱信息</h3>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool ,form = layui.form;
|
||||
layui.pageTable = table.render({
|
||||
elem: '#test',
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar:false,
|
||||
title:'垃圾箱',
|
||||
url: "/home/message/rubbish", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 80,
|
||||
height: 'full-114',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'sourse', title: '来源',width:90,align:'center',templet: function (d) {
|
||||
return '<span class="layui-color-' + d.types + '">『'+d.sourse+'』</span>';
|
||||
}
|
||||
},
|
||||
{field: 'from_name', title: '发送人',width:100,align:'center'},
|
||||
{field: 'title', title: '消息主题',minWidth:240},
|
||||
{field: 'send_time', title: '发件时间', align:'center',width:160},
|
||||
{field: 'right', title: '操作',fixed:'right', width:120, align:'center',templet: function (d) {
|
||||
let html='<div class="layui-btn-group">';
|
||||
let btn1='<span class="layui-btn layui-btn-xs" lay-event="recovery">还原</span>';
|
||||
let btn2='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">查看</span>';
|
||||
let btn3='<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="clear">清除</button></div>';
|
||||
return html+btn1+btn2+btn3+'</div>'
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(test)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'clear'){
|
||||
layer.confirm('确定清除该信息吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/clear", {ids: data.id,'table':data.table_name}, callback);
|
||||
layer.close(index);
|
||||
})
|
||||
}
|
||||
if(obj.event === 'recovery'){
|
||||
layer.confirm('确定还原该信息吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/recovery", {ids: data.id,'table':data.table_name}, callback);
|
||||
layer.close(index);
|
||||
})
|
||||
}
|
||||
if(obj.event === 'view'){
|
||||
if(data.table_name=='msg'){
|
||||
tool.side('/home/message/read?id='+data.id);
|
||||
}
|
||||
else{
|
||||
tool.side('/home/message/view?id='+data.id);
|
||||
}
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
layui.pageTable.reload({where:data.field,page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,159 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-page">
|
||||
{include file="message/msgmenu" /}
|
||||
<div style="margin-left:172px;">
|
||||
<form class="layui-form gg-form-bar border-t border-x">
|
||||
<div class="layui-input-inline" style="width:200px">
|
||||
<input type="text" autocomplete="off" name="range_time" readonly class="layui-input tool-time" data-range="~" placeholder="发送日期">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:300px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:150px;">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="add"><i class="layui-icon"></i>新建消息</button>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del"><i class="layui-icon"></i>批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool ,form = layui.form;
|
||||
layui.pageTable = table.render({
|
||||
elem: '#test',
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar:false,
|
||||
title:'发件箱',
|
||||
url: "/home/message/sendbox", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 80,
|
||||
height: 'full-114',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'title', title: '消息主题',minWidth:240},
|
||||
{field: 'types', title: '接收人类型',width:100,align:'center',templet: function (d) {
|
||||
var html = '<span class="layui-color-' + d.types + '">『同事』</span>';
|
||||
if(d.types==2){
|
||||
html = '<span class="layui-color-' + d.types + '">『部门』</span>';
|
||||
}
|
||||
if(d.types==3){
|
||||
html = '<span class="layui-color-' + d.types + '">『职位』</span>';
|
||||
}
|
||||
if(d.types==4){
|
||||
html = '<span class="layui-color-' + d.types + '">『全部』</span>';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{field: 'to_name', title: '接收人',width:200,templet: function (d) {
|
||||
var html = d.to_name;
|
||||
if(d.types==2){
|
||||
html = d.to_department;
|
||||
}
|
||||
if(d.types==3){
|
||||
html = d.to_position;
|
||||
}
|
||||
if(d.types==4){
|
||||
html = '全部员工';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{field: 'copy_names', title: '抄送人', width:160},
|
||||
{field: 'send_time_str', title: '发件时间', align:'center',width:160},
|
||||
{field: 'right', title: '操作',fixed:'right', width:90, align:'center',templet: function (d) {
|
||||
let html='<div class="layui-btn-group">';
|
||||
let btn1='<span class="layui-btn layui-btn-xs" lay-event="view">查看</span>';
|
||||
let btn2='<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>';
|
||||
return html+btn1+btn2+'</div>'
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(test)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('确定该信息要放入垃圾箱吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/del", {ids: data.id}, callback);
|
||||
layer.close(index);
|
||||
})
|
||||
}
|
||||
if(obj.event === 'view'){
|
||||
tool.side('/home/message/view?id='+data.id);
|
||||
return;
|
||||
}
|
||||
});
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(test)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.side("/home/message/add");
|
||||
return;
|
||||
}
|
||||
if(data.length==0){
|
||||
layer.msg('请选择要操作的消息');
|
||||
return false;
|
||||
}
|
||||
var idArray=[],msg='是否执行该操作?';
|
||||
for(var i=0;i<data.length;i++){
|
||||
idArray.push(data[i].id);
|
||||
}
|
||||
switch(obj.event){
|
||||
case 'del':
|
||||
msg = '确定把选中的信息要放入垃圾箱吗?';
|
||||
break;
|
||||
};
|
||||
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/del", {ids: idArray.join(',')}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
layui.pageTable.reload({where:data.field,page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,183 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-page">
|
||||
{include file="message/msgmenu" /}
|
||||
<div style="margin-left:172px;">
|
||||
<form class="layui-form gg-form-bar border-t border-x">
|
||||
<div class="layui-input-inline" style="width:200px">
|
||||
<input type="text" autocomplete="off" name="range_time" readonly class="layui-input tool-time" data-range="~" placeholder="接收日期">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:128px">
|
||||
<select name="types">
|
||||
<option value="">选择消息类型</option>
|
||||
<option value="1">系统消息</option>
|
||||
<option value="2">个人消息</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:300px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:150px;">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i>新建消息</button>
|
||||
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="unstar"><i class="layui-icon"></i>取消星标</button>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm" lay-event="read"><i class="layui-icon"></i>设为已读</button>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del"><i class="layui-icon"></i>批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool ,form = layui.form;
|
||||
layui.pageTable = table.render({
|
||||
elem: '#test',
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar:false,
|
||||
title:'标星信息',
|
||||
url: "/home/message/star", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 80,
|
||||
height: 'full-114',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'msg_type', title: '消息类型',width:90,align:'center',templet: function (d) {
|
||||
var html = '<span class="yellow">系统消息</span>';
|
||||
if(d.from_uid > 0){
|
||||
html = '<span class="blue">个人消息</span>';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{field: 'from_name', title: '发件人', width:100,align:'center'},
|
||||
{field: 'title', title: '消息主题',minWidth:240},
|
||||
{field: 'create_time', title: '发件时间', align:'center',width:160},
|
||||
{field: 'read_time', title: '是否已读',align:'center', width:90,templet:function(d){
|
||||
var html='<span style="color:#5FB878">已读</span>';
|
||||
if(d.read_time==0){
|
||||
html='<span style="color:#FF5722">未读</span>';
|
||||
}
|
||||
return html;
|
||||
}},
|
||||
{field: 'right', title: '操作',fixed:'right', width:160, align:'center',templet: function (d) {
|
||||
let html='<div class="layui-btn-group">';
|
||||
let btn1='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">查看</span>';
|
||||
let btn2='<span class="layui-btn layui-btn-xs" lay-event="reply">回复</span>';
|
||||
let btn3='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="resend">转发</span>';
|
||||
let btn4='<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>';
|
||||
if(d.from_uid == 0){
|
||||
return html+btn1+btn4+'</div>'
|
||||
}
|
||||
else{
|
||||
return html+btn1+btn2+btn3+btn4+'</div>'
|
||||
}
|
||||
}
|
||||
}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(test)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('确定该信息要放入垃圾箱吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/check", {
|
||||
ids: data.id,type:2,
|
||||
}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'view'){
|
||||
tool.side('/home/message/read?id='+data.id);
|
||||
return;
|
||||
}
|
||||
if(obj.event === 'reply'){
|
||||
tool.side('/home/message/reply?msg_id='+data.id);
|
||||
return;
|
||||
}
|
||||
if(obj.event === 'resend'){
|
||||
tool.side('/home/message/resend?msg_id='+data.id);
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(test)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.side("/home/message/add");
|
||||
return;
|
||||
}
|
||||
if(data.length==0){
|
||||
layer.msg('请选择要操作的消息');
|
||||
return false;
|
||||
}
|
||||
var idArray=[],msg='是否执行该操作?',type=0;
|
||||
for(var i=0;i<data.length;i++){
|
||||
idArray.push(data[i].id);
|
||||
}
|
||||
switch(obj.event){
|
||||
case 'read':
|
||||
msg = '确定把选中的信息设为已读吗?';
|
||||
type = 1;
|
||||
break;
|
||||
case 'del':
|
||||
msg = '确定把选中的信息要放入垃圾箱吗?';
|
||||
type = 2;
|
||||
break;
|
||||
case 'unstar':
|
||||
msg = '确定把选中的信息取消星标吗?';
|
||||
type = 6;
|
||||
break;
|
||||
};
|
||||
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if(e.code==0){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete("/home/message/check", {
|
||||
ids: idArray.join(','),
|
||||
type:type,
|
||||
}, callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
layui.pageTable.reload({where:data.field,page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,121 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">消息详情</h3>
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题</td>
|
||||
<td colspan="3">{$detail.title|default=''}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">收件人</td>
|
||||
<td>
|
||||
{eq name="$detail.types" value="1"}
|
||||
<span class="layui-color-1">『同事』</span>{$detail.unames|default=''}
|
||||
{/eq}
|
||||
{eq name="$detail.types" value="2"}
|
||||
<span class="layui-color-2">『部门』</span>{$detail.dnames|default=''}
|
||||
{/eq}
|
||||
{eq name="$detail.types" value="3"}
|
||||
<span class="layui-color-3">『岗位』</span>{$detail.pnames|default=''}
|
||||
{/eq}
|
||||
</td>
|
||||
{eq name="$detail.send_time" value="0"}
|
||||
<td class="layui-td-gray">发送状态</td>
|
||||
<td class="red">草稿,未发送</td>
|
||||
{else/}
|
||||
<td class="layui-td-gray">发送时间</td>
|
||||
<td>{$detail.send_time|date='Y-m-d H:i:s'}</td>
|
||||
{/eq}
|
||||
</tr>
|
||||
{notempty name="$detail.copy_names"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">抄送人</td>
|
||||
<td colspan="3">{$detail.copy_names|default=''}</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息内容</td>
|
||||
<td colspan="3">
|
||||
<pre style="font-family:inherit">{$detail.content|default=''}</pre>
|
||||
{gt name="$detail.template" value="0"}
|
||||
{:get_message_link($detail.template,$detail.action_id)}
|
||||
{/gt}
|
||||
{if condition="($detail.msg_id > 0)"}
|
||||
<table class="layui-table" style="margin-top:10px">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">引用消息内容</td>
|
||||
<td>
|
||||
<pre style="font-family:inherit">{$detail.from_content}</pre>
|
||||
{gt name="$detail.from_template" value="0"}
|
||||
{:get_message_link($detail.from_template,$detail.from_action_id)}
|
||||
{/gt}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$detail.from_file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">引用消息附件</td>
|
||||
<td>
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.from_file_array" id="vo"}
|
||||
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$detail.file_ids"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息附件</td>
|
||||
<td colspan="3">
|
||||
<div class="layui-row">
|
||||
{volist name="$detail.file_array" id="vo"}
|
||||
<div class="layui-col-md4">{:file_card($vo,'view')}</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
{notempty name="$detail.read_user_names"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">已读回执</td>
|
||||
<td colspan="3">{$detail.read_user_names}</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{eq name="$detail.send_time" value="0"}
|
||||
<div class="pt-4">
|
||||
<input type="hidden" value="{$detail.id}" name="id">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即发送</button>
|
||||
</div>
|
||||
{/eq}
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var tool = layui.tool,form = layui.form;
|
||||
//监听发送
|
||||
form.on('submit(webform)', function(data){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/send_message", data.field, callback);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
Reference in New Issue
Block a user