{extend name="common/base"/} {block name="style"} <link rel="stylesheet" href="{__JS__}/module/dtree/dtree.css"> <link rel="stylesheet" href="{__JS__}/module/dtree/font/dtreefont.css"> {/block} <!-- 主体 --> {block name="body"} <form class="layui-form body-content"> <h3 style="padding:5px 0;">回复消息</h3> <table class="layui-table"> <tr> <td class="layui-td-gray2">接收人类型</td> <td> <input type="radio" name="type" lay-filter="type" value="0" title="同事" checked> <input type="radio" name="type" lay-filter="type" value="1" title="部门"> <input type="radio" name="type" lay-filter="type" value="2" title="岗位"> <input type="radio" name="type" lay-filter="type" value="3" 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-gray2">收件人<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="{$detail.from_uid}"> <input type="hidden" name="pids" value="{$detail.from_uid}"> </td> </tr> <tr> <td class="layui-td-gray2">主题<span style="color: red">*</span></td> <td> <input type="text" name="name" value="回复:{$detail.name}" 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-gray2">收件人<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-gray2">主题<span style="color: red">*</span></td> <td> <input type="text" name="name" value="转发:{$detail.name}" lay-verify="required" lay-reqText="请输入消息主题" placeholder="请输入消息主题" class="layui-input" lay-verify="required"> </td> </tr> {/if} <tr> <td class="layui-td-gray2" 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"> <tr> <td class="layui-td-gray2">原消息内容</td> <td>{$detail.content} </td> </tr> {notempty name="$file_array"} <tr> <td class="layui-td-gray2" style="vertical-align:top">原消息附件</td> <td> <table class="layui-table"> <thead> <tr> <th width="90%">文件名</th> <th width="10%" 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-gray2" style="vertical-align:top">消息附件</td> <td> <table class="layui-hide" id="schedule-document" lay-filter="schedule-document"></table> <div class="layui-upload" style="max-width: 1000px;"> <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="testList">选择文件(可多选)</button> <span style="color:#FF5722;margin-left: 10px;">最大只能上传300MB的文件,超过300MB请压缩成多个文件上传。</span> <div class="layui-upload-list" style="display:none;"> <table class="layui-table"> <thead> <tr> <th width="55%">文件名</th> <th width="15%" style="text-align:center">文件大小</th> <th width="20%" style="text-align:center">状态</th> <th width="10%" style="text-align:center">操作</th> </tr> </thead> <tbody id="demoList"></tbody> </table> <div style="margin-top:10px;"> <input type="hidden" class="layui-input" id="uploadId" name="file_ids" > <button type="button" class="layui-btn layui-btn-sm" id="testListAction">开始上传</button> </div> </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> {/block} <!-- /主体 --> <!-- 脚本 --> {block name="script"} <script> function init(layui){ var form = layui.form ,layer = layui.layer ,table = layui.table ,dtree = layui.dtree ,upload = layui.upload ,employeepicker = layui.employeepicker; //监听保存到草稿并发送 form.on('submit(webform)', function(data){ $.ajax({ url:"{:url('home/mail/save')}", type:'post', data:data.field, success:function(e){ if(e.code==0){ layer.msg('消息保存成功,正在发送中...'); $.ajax({ url:"{:url('home/mail/send')}", type:'post', data:{'id':e.data}, success:function(e){ if(e.code==0){ layer.confirm('发送成功,返回列表页吗?', {icon: 3, title:'提示'}, function(index){ parent.location.reload(); }) }else{ layer.msg(e.msg); } } }) }else{ layer.msg(e.msg); } } }) return false; }); //监听保存到草稿 form.on('submit(draftform)', function(data){ $.ajax({ url:"{:url('home/mail/save')}", type:'post', data:data.field, success:function(e){ if(e.code==0){ layer.confirm('保存草稿成功,返回列表页吗?', {icon: 3, title:'提示'}, function(index){ parent.location.reload(); }); }else{ layer.msg(e.msg); } } }) return false; }); var uploadId =[]; //多文件列表示例 var demoListView = $('#demoList') ,uploadListIns = upload.render({ elem: '#testList' ,url: "{:url('home/api/upload')}" ,accept: 'file' ,multiple: true ,auto: false ,bindAction: '#testListAction' ,data: {use:'file', action: 'project'} ,choose: function(obj){ var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列 //读取本地文件 obj.preview(function(index, file, result){ var tr = $(['<tr id="upload-'+ index +'">' ,'<td>'+ file.name +'</td>' ,'<td align="center">'+ (file.size/(1024*1024)).toFixed(2) +'MB</td>' ,'<td align="center">等待上传</td>' ,'<td align="center">' ,'<span class="layui-btn layui-btn-xs demo-reload layui-hide" data-index="'+index+'">重传</span>' ,'<span class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</span>' ,'</td>' ,'</tr>'].join('')); //单个重传 tr.find('.demo-reload').on('click', function(){ var idx=$(this).data('index'); obj.upload(idx, file); }); //删除 tr.find('.demo-delete').on('click', function(){ delete files[index]; //删除对应的文件 tr.remove(); uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选 }); $('.layui-upload-list').show(); demoListView.append(tr); //上传成功后单个删除 tr.on('click','.demo-del', function(){ var index=$(this).parents('tr').index(); console.log(index); uploadId.splice(index, 1); $('#uploadId').val(uploadId.join(',')); tr.remove(); if(uploadId.length==0){ $('.layui-upload-list').hide(); } }); }); } ,done: function(res, index, upload){ if(res.code == 0){ //上传成功 var tr = demoListView.find('tr#upload-'+ index) ,tds = tr.children(); tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>'); uploadId.push(res.data.id); tds.eq(3).html('<a class="layui-btn layui-btn-xs layui-btn-danger demo-del" data-index="'+(uploadId.length-1)+'">删除</a>'); $('#uploadId').val(uploadId.join(',')); return delete this.files[index]; //删除文件队列已经上传成功的文件 } this.error(index, upload); }, progress:function(percent,file,button,index){ var tr = demoListView.find('tr#upload-'+ index),tds = tr.children(); tds.eq(2).html('<span style="color: #5FB878;">上传中...</span>'); console.log(arguments); } ,error: function(index, upload){ var tr = demoListView.find('tr#upload-'+ index),tds = tr.children(); tds.eq(2).html('<span style="color: #FF5722;">上传失败,请检查网络,或者文件是否过大?</span>'); tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传 } }); //选择收件人类型 form.on('radio(type)', function (data) { $('[name="person_name"]').val(''); $('[name="dids"]').val(''); $('[name="uids"]').val(''); $('[name="auids"]').val(''); if(data.value==3){ $('#person').val('0').hide(); } else{ $('#person').val('').show(); } }); //选择对应人 $('[name="person_name"]').on('click',function(){ type = $("input[name='type']:checked").val(); if(type == 0){ addEmployee(); }else if(type == 1){ selectDepartment(); }else if(type == 2){ 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:"{:url('/home/api/get_department_tree')}", employee_url:"{:url('/home/api/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:"{:url('/home/api/get_department_tree')}", type:'post', 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="vaeservice"></div></div>', success:function(){ tableid=table.render({ elem: '#vaeservice' ,url:"{:url('/home/api/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="auids"]').val(val.join(',')); layer.closeAll(); }else{ layer.msg('请选择角色'); return; } } }) } } </script> {include file="common/layui" base='base' extend="['dtree','employeepicker']" callback="init" /} {/block} <!-- /脚本 -->