first commit
This commit is contained in:
@@ -0,0 +1,395 @@
|
||||
<form class="layui-form page-content p-4">
|
||||
<h3 class="h3-title">发送消息</h3>
|
||||
{if condition="$id eq 0"}
|
||||
<table class="layui-table">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="type" lay-filter="type" value="1" title="同事" checked>
|
||||
<input type="radio" name="type" lay-filter="type" value="2" title="部门">
|
||||
<input type="radio" name="type" lay-filter="type" value="3" title="岗位">
|
||||
<input type="radio" name="type" lay-filter="type" value="4" title="全部">
|
||||
</td>
|
||||
</tr>
|
||||
<tr id ="person">
|
||||
<td class="layui-td-gray">收件人<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<input type="text" name="person_name" value="" lay-verify="required" lay-reqText="请选择收件人" placeholder="请选择收件人" readonly class="layui-input">
|
||||
<input type="hidden" name="uids" value="">
|
||||
<input type="hidden" name="dids" value="">
|
||||
<input type="hidden" name="pids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<span style="color: red">*</span></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">发送内容<span style="color: red">*</span></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" style="vertical-align:top">消息附件</td>
|
||||
<td>
|
||||
<div class="layui-upload" style="max-width: 800px;">
|
||||
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="testList">选择文件并上传</button> <span style="color:#FF5722;margin-left: 10px;">最大只能上传{:get_system_info('upload_max_filesize')}的文件,超过{:get_system_info('upload_max_filesize')}请压缩成多个文件上传。</span>
|
||||
<div class="layui-upload-list" style="display:none;">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="60%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
<th width="20%" style="text-align:center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="demoList"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{else/}
|
||||
<table class="layui-table">
|
||||
<tr>
|
||||
<td class="layui-td-gray">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="type" lay-filter="type" value="1" title="同事" {eq name="$detail.type" value="1"}checked{/eq}>
|
||||
<input type="radio" name="type" lay-filter="type" value="2" title="部门" {eq name="$detail.type" value="2"}checked{/eq}>
|
||||
<input type="radio" name="type" lay-filter="type" value="3" title="岗位" {eq name="$detail.type" value="3"}checked{/eq}>
|
||||
<input type="radio" name="type" lay-filter="type" value="4" title="全部" {eq name="$detail.type" value="4"}checked{/eq}>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id ="person" {eq name="$detail.type" value="3"}style="display:none;"{/eq}>
|
||||
<td class="layui-td-gray">收件人<span style="color: red">*</span></td>
|
||||
<td>
|
||||
{eq name="$detail.type" value="3"}
|
||||
<input type="text" name="person_name" value="0" lay-verify="required" lay-reqText="请选择收件人" placeholder="请选择收件人" readonly class="layui-input">
|
||||
{else/}
|
||||
<input type="text" name="person_name" value="{$detail.person_name}" lay-verify="required" lay-reqText="请选择收件人" placeholder="请选择收件人" readonly class="layui-input">
|
||||
{/eq}
|
||||
<input type="hidden" name="uids" value="{$detail.type_user}">
|
||||
<input type="hidden" name="dids" value="{$detail.type_user}">
|
||||
<input type="hidden" name="pids" value="{$detail.type_user}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<input type="text" name="title" value="{$detail.title}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required">
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="layui-td-gray">发送内容<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<textarea name="content" placeholder="请输入消息内容" class="layui-textarea" style="height: 200px;" lay-verify="required" lay-reqText="请输入消息内容">{$detail.content}</textarea>
|
||||
{if condition="($detail.fid > 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-2" style="vertical-align:top">引用消息附件</td>
|
||||
<td>
|
||||
<table class="layui-table" style="max-width: 680px;">
|
||||
<thead>
|
||||
<th width="70%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
<th width="10%" style="text-align:center">操作</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="$detail.from_file_array" id="vo"}
|
||||
<tr>
|
||||
<td>{$vo.name}</td>
|
||||
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
|
||||
<td style="text-align: center;"><a class="layui-btn layui-btn-xs layui-btn-normal" href="{$vo.filepath}" target="_blank">下载</a></td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">消息附件</td>
|
||||
<td>
|
||||
<div class="layui-upload" style="max-width: 800px;">
|
||||
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="testList">选择文件并上传</button> <span style="color:#FF5722;margin-left: 10px;">最大只能上传{:get_system_info('upload_max_filesize')}的文件,超过{:get_system_info('upload_max_filesize')}请压缩成多个文件上传。</span>
|
||||
<div class="layui-upload-list" {empty name="$file_array"}style="display:none;"{/empty}>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="60%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
<th width="20%" style="text-align:center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="demoList">
|
||||
{notempty name="$file_array"}
|
||||
{volist name="file_array" id="vo"}
|
||||
<tr data-id="{$vo.file_id}" id="tr_{$vo.id}">
|
||||
<td>{$vo.name}</td>
|
||||
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
|
||||
<td style="text-align: center;">
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger demo-delete" data-id="{$vo.id}">删除</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{/notempty}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
<div class="layui-form-item" style="padding-top:10px;">
|
||||
<input type="hidden" value="{$id}" name="id">
|
||||
<input type="hidden" value="{$fid}" name="fid">
|
||||
<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>
|
||||
|
||||
|
||||
<script>
|
||||
function openInit() {
|
||||
var form = layui.form
|
||||
,layer = layui.layer
|
||||
,table = layui.table
|
||||
,dtree = layui.dtree
|
||||
,upload = layui.upload
|
||||
,tool = layui.tool
|
||||
,employeepicker = layui.employeepicker;
|
||||
|
||||
form.render();
|
||||
//监听保存到草稿并发送
|
||||
form.on('submit(webform)', function(data){
|
||||
var file_ids = [];
|
||||
var item_tr = $('#demoList').find('tr');
|
||||
item_tr.each(function(index,item) {
|
||||
var item_id = $(item).data('id');
|
||||
if (item_id && item_id != '') {
|
||||
file_ids.push(item_id);
|
||||
}
|
||||
});
|
||||
console.log(file_ids.join(','));
|
||||
data.field.file_ids = file_ids.join(',');
|
||||
let callback = function (e) {
|
||||
if(e.code==0){
|
||||
layer.msg('消息正在发送...');
|
||||
$.ajax({
|
||||
url: "/home/message/send",
|
||||
type:'post',
|
||||
data:{'id':e.data},
|
||||
success: function (e) {
|
||||
layer.msg(e.msg);
|
||||
tool.close(1000);
|
||||
}
|
||||
})
|
||||
}else{
|
||||
layer.msg(e.msg);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save",data.field,callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
//监听保存到草稿
|
||||
form.on('submit(draftform)', function(data){
|
||||
var file_ids = [];
|
||||
var item_tr = $('#demoList').find('tr');
|
||||
item_tr.each(function(index,item) {
|
||||
var item_id = $(item).data('id');
|
||||
if (item_id && item_id != '') {
|
||||
file_ids.push(item_id);
|
||||
}
|
||||
});
|
||||
console.log(file_ids.join(','));
|
||||
data.field.file_ids = file_ids.join(',');
|
||||
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.close(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save",data.field,callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
upload.render({ //允许上传的文件后缀
|
||||
elem: '#testList'
|
||||
,url: '/api/index/upload' //此处配置你自己的上传接口即可
|
||||
,accept: 'file' //普通文件
|
||||
,exts: 'jpeg|jpg|png|gif|doc|docx|ppt|pptx|xls|xlsx|pdf|zip|rar|7z' //只允许上传文件
|
||||
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
|
||||
layer.msg('上传中...',{time: 3600000});
|
||||
}
|
||||
,done: function(res, index, upload){
|
||||
layer.msg('上传成功');
|
||||
var timestamp=new Date().getTime();
|
||||
var tr = '<tr data-id="'+res.data.id+'" id="tr_'+timestamp+'">\
|
||||
<td>'+ res.data.name +'</td>\
|
||||
<td align="center">'+ (res.data.filesize/(1024*1024)).toFixed(2) +'MB</td>\
|
||||
<td align="center">\
|
||||
<span class="layui-btn layui-btn-xs layui-btn-danger demo-delete" data-id="'+timestamp+'">删除</span>\
|
||||
</td>\
|
||||
</tr>';
|
||||
$('.layui-upload-list').show();
|
||||
$('#demoList').append(tr);
|
||||
}
|
||||
,error: function(index, upload){
|
||||
layer.msg('上传失败');
|
||||
}
|
||||
});
|
||||
|
||||
$('#demoList').on('click','.demo-delete',function(){
|
||||
let id = $(this).data('id');
|
||||
layer.confirm('确定要删除该附件吗?', {icon: 3, title:'提示'}, function(index){
|
||||
$('#tr_'+id).remove()
|
||||
layer.close(index);
|
||||
});
|
||||
})
|
||||
|
||||
//选择收件人类型
|
||||
form.on('radio(type)', function (data) {
|
||||
$('[name="person_name"]').val('');
|
||||
$('[name="dids"]').val('');
|
||||
$('[name="uids"]').val('');
|
||||
$('[name="auids"]').val('');
|
||||
if(data.value==4){
|
||||
$('#person').val('0').hide();
|
||||
}
|
||||
else{
|
||||
$('#person').val('').show();
|
||||
}
|
||||
});
|
||||
|
||||
//选择对应人
|
||||
$('[name="person_name"]').on('click',function(){
|
||||
type = $("input[name='type']:checked").val();
|
||||
if(type == 1){
|
||||
addEmployee();
|
||||
}else if(type == 2){
|
||||
selectDepartment();
|
||||
}else if(type == 3){
|
||||
selectAuditor();
|
||||
}
|
||||
});
|
||||
|
||||
//添加人员
|
||||
function addEmployee(){
|
||||
var ids=$('[name="uids"]').val(),names=$('[name="person_name"]').val(),idsArray=[],namesArray=[];
|
||||
if(ids!=''){
|
||||
idsArray=ids.split(',');
|
||||
namesArray=names.split(',');
|
||||
}
|
||||
employeepicker.init({
|
||||
ids:idsArray,
|
||||
names:namesArray,
|
||||
department_url: "/api/index/get_department_tree",
|
||||
employee_url: "/api/index/get_employee",
|
||||
callback:function(ids,names){
|
||||
$('[name="uids"]').val(ids.join(',')),
|
||||
$('[name="person_name"]').val(names.join(','));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//选择部门
|
||||
function selectDepartment(){
|
||||
var tpl='<div style="width:382px; height:338px;overflow-y: auto;">\
|
||||
<div id="checkemployeetree" style="padding:10px 0;"></div>\
|
||||
</div>';
|
||||
layer.open({
|
||||
type:1,
|
||||
title:'选择部门',
|
||||
area:['400px','450px'],
|
||||
content:tpl,
|
||||
success:function(){
|
||||
$.ajax({
|
||||
url: "/api/index/get_department_tree",
|
||||
type:'get',
|
||||
success:function(res){
|
||||
dtree.render({
|
||||
elem: "#checkemployeetree",
|
||||
data: res.trees,
|
||||
icon: "2", //修改二级图标样式
|
||||
checkbarType: "no-all", // 默认就是all,其他的值为: no-all p-casc self only
|
||||
checkbar: true //开启复选框
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
btn: ['确定'],
|
||||
btnAlign:'c',
|
||||
yes: function(){
|
||||
var ids=[],names=[];
|
||||
var check=dtree.getCheckbarNodesParam("checkemployeetree");
|
||||
if(check.length==0){
|
||||
layer.msg('请选择部门');
|
||||
return;
|
||||
}
|
||||
for(var m=0; m<check.length; m++){
|
||||
ids.push(check[m].nodeId);
|
||||
names.push(check[m].context);
|
||||
}
|
||||
$('[name="person_name"]').val(names.join(','));
|
||||
$('[name="dids"]').val(ids.join(','));
|
||||
layer.closeAll();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//选择岗位
|
||||
function selectAuditor(){
|
||||
layer.open({
|
||||
title:'选择岗位',
|
||||
type:1,
|
||||
area:['360px','480px'],
|
||||
content:'<div style="padding:5px 12px"><div id="position"></div></div>',
|
||||
success:function(){
|
||||
tableid=table.render({
|
||||
elem: '#position'
|
||||
,url: "/api/index/get_position"
|
||||
,page: false //开启分页
|
||||
,cols: [[
|
||||
{type:'checkbox',title: '选择'}
|
||||
,{field:'id', width:80, title: '编号', align:'center'}
|
||||
,{field:'name',title: '岗位名称'}
|
||||
]]
|
||||
});
|
||||
},
|
||||
btn: ['确定'],
|
||||
btnAlign:'c',
|
||||
yes: function(){
|
||||
var checkStatus = table.checkStatus(tableid.config.id);
|
||||
var data = checkStatus.data,val = [],title=[];
|
||||
if(data.length>0){
|
||||
for ( var i = 0; i <data.length; i++){
|
||||
val.push(data[i].id);
|
||||
title.push(data[i].name);
|
||||
}
|
||||
$('[name="person_name"]').val(title.join(','));
|
||||
$('[name="pids"]').val(val.join(','));
|
||||
layer.closeAll();
|
||||
}else{
|
||||
layer.msg('请选择岗位');
|
||||
return;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,142 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="breadcrumb"}
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
||||
<a href="/home/index">工作台</a>
|
||||
<a><cite>草稿箱</cite></a>
|
||||
</span>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="main-content">
|
||||
{include file="../../base/view/common/msgmenu" /}
|
||||
<div class="main-page-content">
|
||||
<form class="layui-form layui-form-bar">
|
||||
<div class="layui-inline" style="width:240px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
|
||||
</form>
|
||||
<table class="layui-hide" id="draft" lay-filter="draft"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="mail_type">
|
||||
<span class="layui-type{{d.mail_type}}">{{d.mail_type_title}}</span>
|
||||
</script>
|
||||
<script type="text/html" id="is_read">
|
||||
<span class="layui-type{{d.is_read}}">{{d.is_read_title}}</span>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn 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>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<div class="layui-btn-group"><button class="layui-btn layui-btn-xs layui-btn-normal" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','employeepicker'];
|
||||
function gouguInit() {
|
||||
var table = layui.table,form = layui.form,tool = layui.tool;
|
||||
|
||||
layui.pageTable = table.render({
|
||||
elem: '#draft',
|
||||
toolbar: '#toolbarDemo',
|
||||
title:'草稿箱',
|
||||
url: "/home/message/draft", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 200, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
||||
height: 'full-112',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'type_title', title: '接收人类型',width:100,align:'center'},
|
||||
{field: 'title', title: '消息主题'},
|
||||
{field: 'create_time', title: '保存时间', align:'center',width:160},
|
||||
{field: 'files', title: '附件(个)',align:'center', width:80},
|
||||
{field: 'right', title: '操作',fixed:'right', toolbar: '#barDemo', width:100, align:'center'}
|
||||
]]
|
||||
});
|
||||
|
||||
//搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
let f=data.field;
|
||||
layui.pageTable.reload({where:{keywords:f.keywords},page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
//行工具事件
|
||||
table.on('tool(draft)', 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.post("/home/message/check",{
|
||||
ids: data.id,
|
||||
type:2,
|
||||
source:2
|
||||
},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'edit'){
|
||||
tool.open('/home/message/add?id='+data.id);
|
||||
return;
|
||||
}
|
||||
});
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(draft)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.open("/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);
|
||||
}
|
||||
if (obj.event === 'del') {
|
||||
msg = '确定把选中的信息要放入垃圾箱吗?';
|
||||
type = 2;
|
||||
}
|
||||
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/check",{
|
||||
ids: idArray.join(','),
|
||||
type:type,
|
||||
source:2
|
||||
},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,181 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="breadcrumb"}
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
||||
<a href="/home/index">工作台</a>
|
||||
<a><cite>收件箱</cite></a>
|
||||
</span>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="main-content">
|
||||
{include file="../../base/view/common/msgmenu" /}
|
||||
<div class="main-page-content">
|
||||
<form class="layui-form layui-form-bar">
|
||||
<div class="layui-inline" style="width:200px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:120px">
|
||||
<select name="read">
|
||||
<option value="">消息状态</option>
|
||||
<option value="1">未读消息</option>
|
||||
<option value="2">已读消息</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:120px">
|
||||
<select name="template">
|
||||
<option value="">消息类型</option>
|
||||
<option value="1">个人消息</option>
|
||||
<option value="2">系统消息</option>
|
||||
</select>
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
|
||||
</form>
|
||||
<table class="layui-hide" id="inbox" lay-filter="inbox"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add"><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>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<div class="layui-btn-group">
|
||||
{{# if(d.template == 0){ }}
|
||||
<button class="layui-btn layui-btn-xs" lay-event="reply">回复</button>
|
||||
<button class="layui-btn layui-btn-xs layui-btn-warm" lay-event="resend">转发</button>
|
||||
{{# } }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','employeepicker'];
|
||||
function gouguInit() {
|
||||
var table = layui.table,form = layui.form,tool = layui.tool;
|
||||
|
||||
//请求信息
|
||||
layui.pageTable = table.render({
|
||||
elem: '#inbox',
|
||||
toolbar: '#toolbarDemo',
|
||||
title:'收件箱',
|
||||
url: "/home/message/inbox", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 200, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
||||
height: 'full-112',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'msg_type', title: '类型',width:90,align:'center',templet:function(d){
|
||||
var html = '<span class="color-priority-'+d.type+'">'+d.msg_type+'</span>';
|
||||
return html;
|
||||
}},
|
||||
{field: 'from_name', title: '发件人', width:90,align:'center'},
|
||||
{field: 'title', title: '消息主题',templet:function(d){
|
||||
var html = '<a class="open-a" data-href="/home/message/read/id/'+d.id+'">'+d.title+'</a>';
|
||||
return html;
|
||||
}},
|
||||
{field: 'send_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: 'files', title: '附件(个)',align:'center', width:80},
|
||||
{field: 'right', title: '操作',fixed:'right', toolbar: '#barDemo', width:136, align:'center'}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
let f=data.field;
|
||||
layui.pageTable.reload({where:{keywords:f.keywords,template:f.template,read:f.read},page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
|
||||
//表格行工具事件
|
||||
table.on('tool(inbox)', 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.post("/home/message/check",{
|
||||
ids: data.id,
|
||||
type:2,
|
||||
source:3
|
||||
},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
if(obj.event === 'reply'){
|
||||
tool.open('/home/message/reply?id='+data.id+'&type=1');
|
||||
return;
|
||||
}
|
||||
if(obj.event === 'resend'){
|
||||
tool.open('/home/message/reply?id='+data.id+'&type=2');
|
||||
return;
|
||||
}
|
||||
});
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(inbox)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.open("/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;
|
||||
};
|
||||
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/check",{
|
||||
ids: idArray.join(','),
|
||||
type:type,
|
||||
source:3
|
||||
},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,114 @@
|
||||
<form class="layui-form page-content p-4">
|
||||
<h3 class="h3-title">消息详情</h3>
|
||||
<table class="layui-table">
|
||||
<tr>
|
||||
<td class="layui-td-gray">信息主题</td>
|
||||
<td colspan="5">{$detail.title}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">发送人</td>
|
||||
<td>{$detail.person_name}</td>
|
||||
<td class="layui-td-gray-2">接收人类别</td>
|
||||
<td>
|
||||
{eq name="$detail.type" value="0"}-{/eq}
|
||||
{eq name="$detail.type" value="1"}同事{/eq}
|
||||
{eq name="$detail.type" value="2"}部门{/eq}
|
||||
{eq name="$detail.type" value="3"}岗位{/eq}
|
||||
{eq name="$detail.type" value="4"}全部{/eq}
|
||||
</td>
|
||||
<td class="layui-td-gray">发送时间</td>
|
||||
<td>{$detail.send_time}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">收件人</td>
|
||||
<td colspan="5">{$detail.users}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top;">消息内容</td>
|
||||
<td colspan="5">
|
||||
{$detail.content}
|
||||
{if condition="($detail.fid > 0)"}
|
||||
<table class="layui-table" style="margin-top:10px;">
|
||||
<tr>
|
||||
<td class="layui-td-gray">引用消息内容</td>
|
||||
<td style="color:#999">{$detail.from_content}</td>
|
||||
</tr>
|
||||
{notempty name="$detail.from_file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">引用消息附件</td>
|
||||
<td>
|
||||
<table class="layui-table" style="max-width: 680px;">
|
||||
<thead>
|
||||
<th width="70%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
<th width="10%" style="text-align:center">操作</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="$detail.from_file_array" id="vo"}
|
||||
<tr>
|
||||
<td>{$vo.name}</td>
|
||||
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
|
||||
<td style="text-align: center;"><a class="layui-btn layui-btn-xs layui-btn-normal" href="{$vo.filepath}" target="_blank">下载</a></td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$detail.file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">相关附件</td>
|
||||
<td colspan="5">
|
||||
<table class="layui-table" style="max-width: 800px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="70%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
<th width="10%" style="text-align:center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="detail.file_array" id="vo"}
|
||||
<tr>
|
||||
<td>{$vo.name}</td>
|
||||
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
|
||||
<td style="text-align: center;"><a class="layui-btn layui-btn-xs layui-btn-normal" href="{$vo.filepath}" target="_blank">下载</a></td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
{notempty name="$detail.read_users"}
|
||||
<tr>
|
||||
<td class="layui-td-gray-2" style="vertical-align:top">收件人已读回执</td>
|
||||
<td colspan="5">{$detail.read_users}</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
{if condition="($detail.template == 0) AND ($detail.pid != 0)"}
|
||||
<div class="layui-form-item pt-2" style=" padding-top:10px;">
|
||||
<span class="layui-btn reply-btn" data-id="{$detail.id}">回复</span>
|
||||
</div>
|
||||
{/if}
|
||||
</form>
|
||||
|
||||
<script>
|
||||
function openInit() {
|
||||
let tool = layui.tool;
|
||||
if(layui.pageTable){
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
$('.reply-btn').on('click',function(){
|
||||
let id=$(this).data('id');
|
||||
tool.load('/home/message/reply?id='+id+'&type=1');
|
||||
return;
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,345 @@
|
||||
<form class="layui-form page-content p-4">
|
||||
{if condition="$type eq 1"}
|
||||
<h3 class="h3-title">回复消息</h3>
|
||||
{else/}
|
||||
<h3 class="h3-title">转发消息</h3>
|
||||
{/if}
|
||||
<table class="layui-table">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">接收人类型</td>
|
||||
<td>
|
||||
<input type="radio" name="type" lay-filter="type" value="1" title="同事" checked>
|
||||
<input type="radio" name="type" lay-filter="type" value="2" title="部门">
|
||||
<input type="radio" name="type" lay-filter="type" value="3" title="岗位">
|
||||
<input type="radio" name="type" lay-filter="type" value="4" title="全部">
|
||||
</td>
|
||||
</tr>
|
||||
{if condition="$type eq 1"}
|
||||
<tr id ="person" {eq name="$detail.type" value="3"}style="display:none;"{/eq}>
|
||||
<td class="layui-td-gray">收件人<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<input type="text" name="person_name" value="{$detail.person_name}" lay-verify="required" lay-reqText="请选择收件人" placeholder="请选择收件人" readonly class="layui-input">
|
||||
<input type="hidden" name="uids" value="{$detail.from_uid}">
|
||||
<input type="hidden" name="dids" value="">
|
||||
<input type="hidden" name="pids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<input type="text" name="title" value="回复:{$detail.title}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required">
|
||||
</td>
|
||||
</tr>
|
||||
{else/}
|
||||
<tr id ="person" {eq name="$detail.type" value="3"}style="display:none;"{/eq}>
|
||||
<td class="layui-td-gray">收件人<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<input type="text" name="person_name" value="" lay-verify="required" lay-reqText="请选择收件人" placeholder="请选择收件人" readonly class="layui-input">
|
||||
<input type="hidden" name="uids" value="">
|
||||
<input type="hidden" name="dids" value="">
|
||||
<input type="hidden" name="pids" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">消息主题<span style="color: red">*</span></td>
|
||||
<td>
|
||||
<input type="text" name="title" value="转发:{$detail.title}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required">
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top;">消息内容<span style="color: red">*</span></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}
|
||||
</td>
|
||||
</tr>
|
||||
{notempty name="$file_array"}
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">原消息附件</td>
|
||||
<td>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="80%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="file_array" id="vo"}
|
||||
<tr>
|
||||
<td>{$vo.name}</td>
|
||||
<td style="text-align: center;">{$vo.filesize/1048576|round=2}MB</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">消息附件</td>
|
||||
<td>
|
||||
<div class="layui-upload" style="max-width: 800px;">
|
||||
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="testList">选择文件并上传</button> <span style="color:#FF5722;margin-left: 10px;">最大只能上传{:get_system_info('upload_max_filesize')}的文件,超过{:get_system_info('upload_max_filesize')}请压缩成多个文件上传。</span>
|
||||
<div class="layui-upload-list" style="display:none;">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="60%">文件名</th>
|
||||
<th width="20%" style="text-align:center">文件大小</th>
|
||||
<th width="20%" style="text-align:center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="demoList"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="layui-form-item" style="padding-top:10px;">
|
||||
<input type="hidden" value="0" name="id">
|
||||
<input type="hidden" value="{$fid}" name="fid">
|
||||
<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>
|
||||
|
||||
<script>
|
||||
function openInit() {
|
||||
var form = layui.form
|
||||
,layer = layui.layer
|
||||
,table = layui.table
|
||||
,dtree = layui.dtree
|
||||
,upload = layui.upload
|
||||
,tool = layui.tool
|
||||
,employeepicker = layui.employeepicker;
|
||||
|
||||
form.render();
|
||||
//监听保存到草稿并发送
|
||||
form.on('submit(webform)', function(data){
|
||||
var file_ids = [];
|
||||
var item_tr = $('#demoList').find('tr');
|
||||
item_tr.each(function(index,item) {
|
||||
var item_id = $(item).data('id');
|
||||
if (item_id && item_id != '') {
|
||||
file_ids.push(item_id);
|
||||
}
|
||||
});
|
||||
data.field.file_ids = file_ids.join(',');
|
||||
let callback = function (e) {
|
||||
if(e.code==0){
|
||||
layer.msg('消息正在发送中...');
|
||||
$.ajax({
|
||||
url: "/home/message/send",
|
||||
type:'post',
|
||||
data:{'id':e.data},
|
||||
success: function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.close(1000);
|
||||
}
|
||||
}
|
||||
})
|
||||
}else{
|
||||
layer.msg(e.msg);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save",data.field,callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
//监听保存到草稿
|
||||
form.on('submit(draftform)', function(data){
|
||||
var file_ids = [];
|
||||
var item_tr = $('#demoList').find('tr');
|
||||
item_tr.each(function(index,item) {
|
||||
var item_id = $(item).data('id');
|
||||
if (item_id && item_id != '') {
|
||||
file_ids.push(item_id);
|
||||
}
|
||||
});
|
||||
data.field.file_ids = file_ids.join(',');
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.close(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/save",data.field,callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
upload.render({ //允许上传的文件后缀
|
||||
elem: '#testList'
|
||||
,url: '/api/index/upload' //此处配置你自己的上传接口即可
|
||||
,accept: 'file' //普通文件
|
||||
,exts: 'jpeg|jpg|png|gif|doc|docx|ppt|pptx|xls|xlsx|pdf|zip|rar|7z' //只允许上传文件
|
||||
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
|
||||
layer.msg('上传中...',{time: 3600000});
|
||||
}
|
||||
,done: function(res, index, upload){
|
||||
layer.msg('上传成功');
|
||||
var timestamp=new Date().getTime();
|
||||
var tr = '<tr data-id="'+res.data.id+'" id="tr_'+timestamp+'">\
|
||||
<td>'+ res.data.name +'</td>\
|
||||
<td align="center">'+ (res.data.filesize/(1024*1024)).toFixed(2) +'MB</td>\
|
||||
<td align="center">\
|
||||
<span class="layui-btn layui-btn-xs layui-btn-danger demo-delete" data-id="'+timestamp+'">删除</span>\
|
||||
</td>\
|
||||
</tr>';
|
||||
$('.layui-upload-list').show();
|
||||
$('#demoList').append(tr);
|
||||
}
|
||||
,error: function(index, upload){
|
||||
layer.msg('上传失败');
|
||||
}
|
||||
});
|
||||
|
||||
$('#demoList').on('click','.demo-delete',function(){
|
||||
let id = $(this).data('id');
|
||||
layer.confirm('确定要删除该附件吗?', {icon: 3, title:'提示'}, function(index){
|
||||
$('#tr_'+id).remove()
|
||||
layer.close(index);
|
||||
});
|
||||
})
|
||||
|
||||
//选择收件人类型
|
||||
form.on('radio(type)', function (data) {
|
||||
$('[name="person_name"]').val('');
|
||||
$('[name="dids"]').val('');
|
||||
$('[name="uids"]').val('');
|
||||
$('[name="pids"]').val('');
|
||||
if(data.value==4){
|
||||
$('#person').val('0').hide();
|
||||
}
|
||||
else{
|
||||
$('#person').val('').show();
|
||||
}
|
||||
});
|
||||
|
||||
//选择对应人
|
||||
$('[name="person_name"]').on('click',function(){
|
||||
type = $("input[name='type']:checked").val();
|
||||
if(type == 1){
|
||||
addEmployee();
|
||||
}else if(type == 2){
|
||||
selectDepartment();
|
||||
}else if(type == 3){
|
||||
selectAuditor();
|
||||
}
|
||||
});
|
||||
|
||||
//添加人员
|
||||
function addEmployee(){
|
||||
var ids=$('[name="uids"]').val(),names=$('[name="person_name"]').val(),idsArray=[],namesArray=[];
|
||||
if(ids!=''){
|
||||
idsArray=ids.split(',');
|
||||
namesArray=names.split(',');
|
||||
}
|
||||
employeepicker.init({
|
||||
department_url: "/api/index/get_department_tree",
|
||||
employee_url: "/api/index/get_employee",
|
||||
ids:idsArray,
|
||||
names:namesArray,
|
||||
callback:function(ids,names){
|
||||
$('[name="uids"]').val(ids.join(',')),
|
||||
$('[name="person_name"]').val(names.join(','));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//选择部门
|
||||
function selectDepartment(){
|
||||
var tpl='<div style="width:382px; height:338px;overflow-y: auto;">\
|
||||
<div id="checkemployeetree" style="padding:10px 0;"></div>\
|
||||
</div>';
|
||||
layer.open({
|
||||
type:1,
|
||||
title:'选择部门',
|
||||
area:['400px','450px'],
|
||||
content:tpl,
|
||||
success:function(){
|
||||
$.ajax({
|
||||
url: "/api/index/get_department_tree",
|
||||
type:'get',
|
||||
success:function(res){
|
||||
dtree.render({
|
||||
elem: "#checkemployeetree",
|
||||
data: res.trees,
|
||||
icon: "2", //修改二级图标样式
|
||||
checkbarType: "no-all", // 默认就是all,其他的值为: no-all p-casc self only
|
||||
checkbar: true //开启复选框
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
btn: ['确定'],
|
||||
btnAlign:'c',
|
||||
yes: function(){
|
||||
var ids=[],names=[];
|
||||
var check=dtree.getCheckbarNodesParam("checkemployeetree");
|
||||
if(check.length==0){
|
||||
layer.msg('请选择部门');
|
||||
return;
|
||||
}
|
||||
for(var m=0; m<check.length; m++){
|
||||
ids.push(check[m].nodeId);
|
||||
names.push(check[m].context);
|
||||
}
|
||||
$('[name="person_name"]').val(names.join(','));
|
||||
$('[name="dids"]').val(ids.join(','));
|
||||
layer.closeAll();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//选择岗位
|
||||
function selectAuditor(){
|
||||
layer.open({
|
||||
title:'选择岗位',
|
||||
type:1,
|
||||
area:['360px','480px'],
|
||||
content:'<div style="padding:5px 12px"><div id="position"></div></div>',
|
||||
success:function(){
|
||||
tableid=table.render({
|
||||
elem: '#position'
|
||||
,url: "/api/index/get_position"
|
||||
,page: false //开启分页
|
||||
,cols: [[
|
||||
{type:'checkbox',title: '选择'}
|
||||
,{field:'id', width:80, title: '编号', align:'center'}
|
||||
,{field:'name',title: '岗位名称'}
|
||||
]]
|
||||
});
|
||||
},
|
||||
btn: ['确定'],
|
||||
btnAlign:'c',
|
||||
yes: function(){
|
||||
var checkStatus = table.checkStatus(tableid.config.id);
|
||||
var data = checkStatus.data,val = [],title=[];
|
||||
if(data.length>0){
|
||||
for ( var i = 0; i <data.length; i++){
|
||||
val.push(data[i].id);
|
||||
title.push(data[i].name);
|
||||
}
|
||||
$('[name="person_name"]').val(title.join(','));
|
||||
$('[name="pids"]').val(val.join(','));
|
||||
layer.closeAll();
|
||||
}else{
|
||||
layer.msg('请选择岗位');
|
||||
return;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,164 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="breadcrumb"}
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
||||
<a href="/home/index">工作台</a>
|
||||
<a><cite>垃圾箱</cite></a>
|
||||
</span>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="main-content">
|
||||
{include file="../../base/view/common/msgmenu" /}
|
||||
<div class="main-page-content">
|
||||
<form class="layui-form layui-form-bar">
|
||||
<div class="layui-inline" style="width:240px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
|
||||
</form>
|
||||
<table class="layui-hide" id="rubbish" lay-filter="rubbish"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="mail_type">
|
||||
<span class="color-priority-{{d.delete_source}}">{{d.delete_source_title}}</span>
|
||||
</script>
|
||||
<script type="text/html" id="is_read">
|
||||
<span class="color-priority-{{d.is_read}}">{{d.is_read_title}}</span>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn 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>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="recover"><i class="layui-icon"></i>移出垃圾箱</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<div class="layui-btn-group"><button class="layui-btn layui-btn-xs" lay-event="recover">还原</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">彻底删除</button></div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','employeepicker'];
|
||||
function gouguInit() {
|
||||
var table = layui.table,form = layui.form,gougu = layui.tool;
|
||||
|
||||
layui.pageTable = table.render({
|
||||
elem: '#rubbish',
|
||||
toolbar: '#toolbarDemo',
|
||||
title:'垃圾箱',
|
||||
url: "/home/message/rubbish", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 200, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
||||
height: 'full-112',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'delete_source_title', title: '来源',toolbar: '#mail_type',width:90,align:'center'},
|
||||
{field: 'from_name', title: '发件人', width:110,align:'center'},
|
||||
{field: 'title', title: '消息主题',templet:function(d){
|
||||
var html = '<a class="open-a" data-href="/home/message/read/id/'+d.id+'">'+d.title+'</a>';
|
||||
return html;
|
||||
}},
|
||||
{field: 'send_time', title: '发送时间', align:'center',width:160},
|
||||
{field: 'files', title: '附件(个)',align:'center', width:80},
|
||||
{field: 'right', title: '操作',fixed:'right', toolbar: '#barDemo', width:120, align:'center'}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
let f=data.field;
|
||||
layui.pageTable.reload({where:{keywords:f.keywords},page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
|
||||
//监听行工具事件
|
||||
table.on('tool(rubbish)', 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.post("/home/message/check",{
|
||||
ids: data.id,
|
||||
type:4
|
||||
},callback);
|
||||
layer.close(index);
|
||||
})
|
||||
}
|
||||
if(obj.event === 'recover'){
|
||||
layer.confirm('确定把该信息移出垃圾箱吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/check",{
|
||||
ids: data.id,
|
||||
type:3,
|
||||
},callback);
|
||||
layer.close(index);
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(rubbish)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.open("/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 'recover':
|
||||
msg = '确定把选中的信息移出垃圾箱吗?';
|
||||
type = 3;
|
||||
break;
|
||||
case 'del':
|
||||
msg = '确定把选中的信息彻底删除吗?';
|
||||
type = 4;
|
||||
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.post("/home/message/check",{
|
||||
ids: idArray.join(','),
|
||||
type:type
|
||||
},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,148 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
{block name="breadcrumb"}
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
||||
<a href="/home/index">工作台</a>
|
||||
<a><cite>发件箱</cite></a>
|
||||
</span>
|
||||
{/block}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="main-content">
|
||||
{include file="../../base/view/common/msgmenu" /}
|
||||
<div class="main-page-content">
|
||||
<form class="layui-form layui-form-bar">
|
||||
<div class="layui-inline" style="width:240px">
|
||||
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
|
||||
</form>
|
||||
<table class="layui-hide" id="sendbox" lay-filter="sendbox"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="mail_type">
|
||||
<span class="layui-type{{d.mail_type}}">{{d.mail_type_title}}</span>
|
||||
</script>
|
||||
<script type="text/html" id="is_read">
|
||||
<span class="layui-type{{d.is_read}}">{{d.is_read_title}}</span>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn 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>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<div class="layui-btn-group"><span class="layui-btn layui-btn-xs layui-btn-warm" lay-event="resend">转发</span><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','employeepicker'];
|
||||
function gouguInit() {
|
||||
var table = layui.table,form = layui.form,tool = layui.tool;
|
||||
|
||||
layui.pageTable = table.render({
|
||||
elem: '#sendbox',
|
||||
toolbar: '#toolbarDemo',
|
||||
title:'发件箱',
|
||||
url: "/home/message/sendbox", //数据接口
|
||||
page: true ,//开启分页
|
||||
limit: 20,
|
||||
cellMinWidth: 200, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
||||
height: 'full-112',
|
||||
cols: [[ //表头
|
||||
{type:'checkbox',fixed:'left'},
|
||||
{field: 'type_title', title: '接收人类型',width:100,align:'center'},
|
||||
{field: 'title', title: '消息主题',templet:function(d){
|
||||
var html = '<a class="open-a" data-href="/home/message/read/id/'+d.id+'">'+d.title+'</a>';
|
||||
return html;
|
||||
}},
|
||||
{field: 'send_time', title: '发件时间', align:'center',width:160},
|
||||
{field: 'files', title: '附件(个)',align:'center', width:80},
|
||||
{field: 'right', title: '操作',fixed:'right', toolbar: '#barDemo', width:100, align:'center'}
|
||||
]]
|
||||
});
|
||||
|
||||
|
||||
//搜索提交
|
||||
form.on('submit(webform)', function(data){
|
||||
let f=data.field;
|
||||
layui.pageTable.reload({where:{keywords:f.keywords},page:{curr:1}});
|
||||
return false;
|
||||
});
|
||||
|
||||
//行工具事件
|
||||
table.on('tool(sendbox)', 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.post("/home/message/check",{
|
||||
ids: data.id,
|
||||
type:2,
|
||||
source:1
|
||||
},callback);
|
||||
layer.close(index);
|
||||
})
|
||||
}
|
||||
if(obj.event === 'resend'){
|
||||
tool.open('/home/message/reply?id='+data.id+'&type=2');
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
//表头工具栏事件
|
||||
table.on('toolbar(sendbox)', function(obj){
|
||||
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
||||
var data = checkStatus.data;
|
||||
if (obj.event === 'add') {
|
||||
tool.open("/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);
|
||||
}
|
||||
if (obj.event === 'del') {
|
||||
msg = '确定把选中的信息要放入垃圾箱吗?';
|
||||
type = 2;
|
||||
}
|
||||
layer.confirm(msg, {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.post("/home/message/check",{
|
||||
ids: idArray.join(','),
|
||||
type:type,
|
||||
source:1
|
||||
},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
Reference in New Issue
Block a user