first commit

This commit is contained in:
2026-07-23 09:40:36 +08:00
commit 090abf48fa
989 changed files with 145728 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page" lay-filter="form-outs">
<h3 class="pb-2">会议室预定</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray-2">会议主题<font>*</font></td>
<td colspan="3"><input name="title" class="layui-input" value="{$detail.title|default=''}" lay-verify="required" placeholder="请输入会议主题" lay-reqText="请输入会议主题"></td>
<td class="layui-td-gray">会议地点<font>*</font></td>
<td>
<input type="text" name="room" value="{$detail.room|default=''}" readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择会议室" class="layui-input picker-oa" data-types="room">
<input type="hidden" name="room_id" value="{$detail.room_id|default=''}">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">开始时间<font>*</font></td>
<td><input id="start_date" name="start_date" class="layui-input" value="{$detail.start_time|default=''}" readonly lay-verify="required" placeholder="请选择开始时间" lay-reqText="请选择开始时间"></td>
<td class="layui-td-gray">结束时间<font>*</font></td>
<td><input id="end_date" name="end_date" class="layui-input" value="{$detail.end_time|default=''}" readonly lay-verify="required" placeholder="请选择结束时间" lay-reqText="请选择结束时间"></td>
<td class="layui-td-gray">会议人数<font>*</font></td>
<td><input name="num" class="layui-input" value="{$detail.num|default=''}" lay-verify="required|number" placeholder="请完善会议人数" lay-reqText="请完善会议人数"></td>
</tr>
<tr>
<td class="layui-td-gray">会议需求<font>*</font></td>
<td colspan="5">
{empty name="detail"}
{volist name="$requirements" id="v"}
<input type="checkbox" name="requirement[]" title="{$v.title}" value="{$v.id}" lay-skin="primary">
{/volist}
{else/}
{volist name="$requirements" id="v"}
<input type="checkbox" name="requirement[]" title="{$v.title}" value="{$v.id}" lay-skin="primary" {eq name="$v.checked" value="1" }checked{/eq}>
{/volist}
{/empty}
</td>
</tr>
<tr>
<td class="layui-td-gray">其他要求</td>
<td colspan="5">
<input name="remark" class="layui-input" value="{$detail.remark|default=''}" placeholder="请输入其他要求">
</td>
</tr>
</table>
<div id="checkBox" data-status="{$detail.check_status|default=0}" data-id="{$detail.id|default=0}" data-checkflowid="{$detail.check_flow_id|default=0}" class="pt-3"></div>
<div class="pt-4">
<input type="hidden" name="id" value="{$detail.id|default=0}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaCheck'];
function gouguInit() {
var form = layui.form,tool=layui.tool,oaCheck=layui.oaCheck,laydate=layui.laydate;
oaCheck.init({
check_name:'meeting_order',
check_btn:0
});
laydate.render({
elem: '#start_date',
fullPanel :true,
type: 'datetime',
format: 'yyyy-MM-dd HH:mm'
});
laydate.render({
elem: '#end_date',
fullPanel :true,
type: 'datetime',
format: 'yyyy-MM-dd HH:mm'
});
//监听提交
form.on('submit(webform)', function (data) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
let checkCallback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
data.field.check_name = 'meeting_order';
data.field.action_id = e.data.return_id;
oaCheck.submit(data.field,checkCallback);
}
}
let clickbtn = $(this);
tool.post("/adm/meeting/add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+100
View File
@@ -0,0 +1,100 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
<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="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="table_meeting" lay-filter="table_meeting"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-group">
<button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/adm/meeting/add">+ 添加会议室预定</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool;
layui.pageTable = table.render({
elem: "#table_meeting"
, toolbar: "#toolbarDemo"
,url: "/adm/meeting/datalist"
,page: true
,limit: 20
,cellMinWidth: 80
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{
field:'check_status',title: '审批状态',width:110, align:'center',templet: function(d){
var html = '<span class="check-status-color-'+d.check_status+'">『'+d.check_status_str+'』</span>';
return html;
}
}
,{field:'title',title: '会议主题',minWidth: 240}
,{field:'meeting_date',title: '会议日期/时间',width: 280,align:'center'}
,{field:'room',title: '会议室',minWidth: 240}
,{field:'num',title: '会议人数',width: 80,align:'center'}
,{field: 'check_user', width: 100,title: '当前审核人'}
,{field:'admin_name',title: '申请人',width:90,align:'center'}
,{field:'create_time', title: '创建时间',width:150,align:'center'}
,{width:120,fixed:'right',title: '操作', align:'center',ignoreExport:true,templet:function(d){
var html='<div class="layui-btn-group">';
var btn1='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
var btn2='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
var btn3='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
html+=btn1;
if((d.check_status==0 ||d.check_status==4) && d.admin_id==login_admin){
html+=btn2+btn3;
}
html+='</div>';
return html;
}}
]]
});
table.on('tool(table_meeting)',function (obj) {
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
var data = obj.data;
if (obj.event === 'view') {
tool.side("/adm/meeting/view?id="+data.id);
return;
}
if (obj.event === 'edit') {
tool.side("/adm/meeting/add?id="+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除该内容吗?', { icon: 3, title: '提示' }, function (index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/meeting/del", { id: data.id }, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+128
View File
@@ -0,0 +1,128 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<style>
.layui-table-tool-temp{padding-right:0}
</style>
<div class="p-page">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div class="layui-input-inline" style="width:300px;">
<input type="text" class="layui-input" id="diff_time" placeholder="会议日期" readonly name="diff_time">
</div>
<div class="layui-input-inline" style="width:110px;">
<input type="text" name="anchor" placeholder="主持人" class="layui-input picker-admin" readonly />
<input type="text" name="anchor_id" value="" style="display:none" />
</div>
<div class="layui-input-inline" style="width:220px;">
<input type="text" name="keywords" placeholder="会议主题" class="layui-input"/>
</div>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<span class="layui-btn layui-btn-sm tool-add" data-href="/adm/meeting/records_add">+ 会议纪要</span>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaPicker','laydatePlus','tablePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool ,form = layui.form, laydatePlus = layui.laydatePlus;
//日期范围
var diff_time = new laydatePlus({'target':'diff_time'});
layui.pageTable = table.render({
elem: '#test',
title: '会议纪要列表',
toolbar: '#toolbarDemo',
defaultToolbar: false,
page: true, //开启分页
limit: 20,
height: 'full-114',
url: "/adm/meeting/records", //数据接口
cols: [
[
{type:'checkbox',fixed:'left'},
{
field: 'id',
title: '序号',
align: 'center',
width: 80
}, {
field: 'meeting_date',
title: '会议日期',
align: 'center',
width: 100
},{
field: 'title',
title: '会议主题',
minWidth:240
},{
field: 'did_name',
title: '主办部门',
align: 'center',
width: 90
},{
field: 'anchor',
title: '主持人',
align: 'center',
width: 90
},{
field: 'recorder_name',
title: '记录人',
align: 'center',
width: 90
},{
field: 'right',
title: '操作',
width: 124,
align: 'center',
templet: function(d){
var btn='<div class="layui-btn-group"><span class="layui-btn layui-btn-xs layui-bg-blue" lay-event="view">查看</span><span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span><span class="layui-btn layui-btn-xs layui-bg-red" lay-event="del">删除</span></div>';
return btn;
}
}
]
]
});
//监听行工具事件
table.on('tool(test)', function(obj) {
var data = obj.data;
if (obj.event === 'view') {
tool.side("/adm/meeting/records_view?id="+data.id);
return;
}
if (obj.event === 'edit') {
tool.side("/adm/meeting/records_add?id="+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定删除该会议纪要吗?', {
icon: 3,
title: '提示'
}, function(index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/meeting/records_del", {id: data.id}, callback);
layer.close(index);
});
}
});
}
</script>
{/block}
<!-- /脚本 -->
+106
View File
@@ -0,0 +1,106 @@
{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">会议时间<font>*</font></td>
<td><input type="text" name="meeting_date" lay-verify="required" readonly lay-reqText="请选择会议时间" placeholder="请选择会议时间" class="layui-input tool-time" data-type="datetime" data-format ="yyyy-MM-dd HH:mm"></td>
<td class="layui-td-gray">主持人<font>*</font></td>
<td>
<input type="text" name="anchor" lay-verify="required" readonly lay-reqText="请选择主持人" placeholder="请选择主持人" class="layui-input picker-admin">
<input type="hidden" name="anchor_id">
</td>
<td class="layui-td-gray">记录人<font>*</font></td>
<td>
<input type="text" name="recorder" lay-verify="required" readonly lay-reqText="请选择记录人" placeholder="请选择记录人" class="layui-input picker-admin">
<input type="hidden" name="recorder_id">
</td>
</tr>
<tr>
<td class="layui-td-gray">会 议 室<font>*</font></td>
<td colspan="3">
<input type="text" name="room_name" autocomplete="off" readonly placeholder="请选择" lay-verify="required" readonly lay-reqText="请选择会议室" class="layui-input picker-oa" data-types="room">
<input type="hidden" name="room_id">
</td>
<td class="layui-td-gray">主办部门<font>*</font></td>
<td>
<input type="text" name="did_name" autocomplete="off" readonly placeholder="请选择" lay-verify="required" readonly lay-reqText="请选择主办部门" class="layui-input picker-oa" data-types="department">
<input type="hidden" name="did">
</td>
</tr>
<tr>
<td class="layui-td-gray">参会人员<font>*</font></td>
<td colspan="5">
<input type="text" name="join" lay-verify="required" readonly lay-reqText="请选择参会人员" placeholder="请选择参会人员" class="layui-input picker-admin" data-type="2">
<input type="hidden" name="join_uids">
</td>
</tr>
<tr>
<td class="layui-td-gray">会议主题<font>*</font></td>
<td colspan="5"><input type="text" name="title" lay-verify="required" lay-reqText="请输入会议主题" placeholder="请输入会议主题" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">会议内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入内容" class="layui-textarea" lay-verify="required" lay-reqText="请输入会议内容"></textarea>
</td>
</tr>
<tr>
<td class="layui-td-gray-2" style="vertical-align:top;">下一步<br>工作计划<font>*</font></td>
<td colspan="5">
<textarea name="plans" placeholder="请输入内容" class="layui-textarea" lay-verify="required" lay-reqText="请输入下一步工作计划"></textarea>
</td>
</tr>
<tr>
<td class="layui-td-gray">参会人员签字<font>*</font></td>
<td colspan="5">
<input type="text" name="sign" lay-verify="required" readonly lay-reqText="请选择" placeholder="请选择" class="layui-input picker-admin" data-type="2">
<input type="hidden" name="sign_uids">
</td>
</tr>
<tr>
<td class="layui-td-gray">共享给谁<font>*</font></td>
<td colspan="5">
<input type="text" name="share" lay-verify="required" readonly lay-reqText="请选择" placeholder="请选择" class="layui-input picker-admin" data-type="2">
<input type="hidden" name="share_uids">
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">备注信息</td>
<td colspan="5">
<textarea name="remarks" placeholder="请输入内容" class="layui-textarea"></textarea>
</td>
</tr>
</table>
<div class="py-3">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
//监听提交
form.on('submit(webform)', function (data) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
let clickbtn = $(this);
tool.post("/adm/meeting/records_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+107
View File
@@ -0,0 +1,107 @@
{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">会议时间<font>*</font></td>
<td><input type="text" name="meeting_date" value="{$detail.meeting_date|date='Y-m-d H:i:s'}" lay-verify="required" readonly lay-reqText="请选择会议时间" placeholder="请选择会议时间" class="layui-input tool-time" data-type="datetime" data-format ="yyyy-MM-dd HH:mm"></td>
<td class="layui-td-gray">主持人<font>*</font></td>
<td>
<input type="text" name="anchor" value="{$detail.anchor_name}" lay-verify="required" readonly lay-reqText="请选择主持人" placeholder="请选择主持人" class="layui-input picker-admin">
<input type="hidden" name="anchor_id" value="{$detail.anchor_id}">
</td>
<td class="layui-td-gray">记录人<font>*</font></td>
<td>
<input type="text" name="recorder" value="{$detail.recorder_name}" lay-verify="required" readonly lay-reqText="请选择记录人" placeholder="请选择记录人" class="layui-input picker-admin">
<input type="hidden" name="recorder_id" value="{$detail.recorder_id}">
</td>
</tr>
<tr>
<td class="layui-td-gray">会 议 室<font>*</font></td>
<td colspan="3">
<input type="text" name="room_name" value="{$detail.room}" autocomplete="off" readonly placeholder="请选择" lay-verify="required" readonly lay-reqText="请选择会议室" class="layui-input picker-oa" data-types="room">
<input type="hidden" name="room_id" value="{$detail.room_id}">
</td>
<td class="layui-td-gray">主办部门<font>*</font></td>
<td>
<input type="text" name="did_name" value="{$detail.did_name|default=''}" autocomplete="off" readonly placeholder="请选择" lay-verify="required" readonly lay-reqText="请选择主办部门" class="layui-input picker-oa" data-types="department">
<input type="hidden" name="did" value="{$detail.did}">
</td>
</tr>
<tr>
<td class="layui-td-gray">参会人员<font>*</font></td>
<td colspan="5">
<input type="text" name="join" value="{$detail.join_names}" lay-verify="required" readonly lay-reqText="请选择参会人员" placeholder="请选择参会人员" class="layui-input picker-admin" data-type="2">
<input type="hidden" name="join_uids" value="{$detail.join_uids}">
</td>
</tr>
<tr>
<td class="layui-td-gray">会议主题<font>*</font></td>
<td colspan="5"><input type="text" name="title" value="{$detail.title}" lay-verify="required" lay-reqText="请输入会议主题" placeholder="请输入会议主题" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">会议内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入内容" class="layui-textarea" lay-verify="required" lay-reqText="请输入会议内容">{$detail.content}</textarea>
</td>
</tr>
<tr>
<td class="layui-td-gray-2" style="vertical-align:top;">下一步<br>工作计划<font>*</font></td>
<td colspan="5">
<textarea name="plans" placeholder="请输入内容" class="layui-textarea" lay-verify="required" lay-reqText="请输入下一步工作计划">{$detail.plans}</textarea>
</td>
</tr>
<tr>
<td class="layui-td-gray">参会人员签字<font>*</font></td>
<td colspan="5">
<input type="text" name="sign" value="{$detail.sign_names}" lay-verify="required" readonly lay-reqText="请选择" placeholder="请选择" class="layui-input picker-admin" data-type="2">
<input type="hidden" name="sign_uids" value="{$detail.sign_uids}">
</td>
</tr>
<tr>
<td class="layui-td-gray">共享给谁<font>*</font></td>
<td colspan="5">
<input type="text" name="share" value="{$detail.share_names}" lay-verify="required" readonly lay-reqText="请选择" placeholder="请选择" class="layui-input picker-admin" data-type="2">
<input type="hidden" name="share_uids" value="{$detail.share_uids}">
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">备注信息</td>
<td colspan="5">
<textarea name="remarks" placeholder="请输入内容" class="layui-textarea">{$detail.remarks|default=''}</textarea>
</td>
</tr>
</table>
<div class="py-3">
<input type="hidden" name="id" value="{$detail.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
//监听提交
form.on('submit(webform)', function (data) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
let clickbtn = $(this);
tool.post("/adm/meeting/records_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+67
View File
@@ -0,0 +1,67 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">会议纪要</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">会议时间</td>
<td>{$detail.meeting_date|date='Y-m-d H:i'}</td>
<td class="layui-td-gray">主持人</td>
<td>{$detail.anchor_name}</td>
<td class="layui-td-gray">记录人</td>
<td>{$detail.recorder_name}</td>
</tr>
<tr>
<td class="layui-td-gray">会 议 室</td>
<td colspan="3">{$detail.room}</td>
<td class="layui-td-gray">主办部门</td>
<td>{$detail.did_name|default=""}</td>
</tr>
<tr>
<td class="layui-td-gray">参会人员</td>
<td colspan="5">{$detail.join_names}</td>
</tr>
<tr>
<td class="layui-td-gray">会议主题</td>
<td colspan="5">{$detail.title}</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">会议内容</td>
<td colspan="5">{$detail.content}</td>
</tr>
<tr>
<td class="layui-td-gray-2" style="vertical-align:top;">下一步<br>工作计划</td>
<td colspan="5">{$detail.plans}</td>
</tr>
<tr>
<td class="layui-td-gray">参会人员签字</td>
<td colspan="5">{$detail.sign_names}</td>
</tr>
<tr>
<td class="layui-td-gray">共享给谁</td>
<td colspan="5">{$detail.share_names}</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">备注信息</td>
<td colspan="5">{$detail.remarks|default=''}</td>
</tr>
</table>
<div class="pt-4">
<a href="/api/export/pdf?types=meeting&id={$detail.id}" class="layui-btn" target="_blank"><i class="layui-icon layui-icon-print"></i>导出打印</a>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
}
</script>
{/block}
<!-- /脚本 -->
+114
View File
@@ -0,0 +1,114 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
<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="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="roomTable" lay-filter="roomTable"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm tool-add" data-href="/adm/meeting/room_add">+ 会议室</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus','laydatePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool,form = layui.form,laydatePlus = layui.laydatePlus;
var diff_time = new laydatePlus({'target':'diff_time'});
layui.pageTable = table.render({
elem: '#roomTable'
,toolbar: '#toolbarDemo'
,title:'会议室列表'
,url: "/adm/meeting/room"
,is_excel: true
,page: true
,cellMinWidth: 60
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'title',title: '会议室名称',width:150}
,{field:'num',title: '可容纳人数',width:100, align:'center'}
,{field:'keep_name',title: '管理员',width:80, align:'center'}
,{field:'address',title: '会议室地址',width:300}
,{field:'device',title: '会议室设备',minWidth:240,}
,{field:'status', title: '状态',width:60,align:'center',templet: function(d){
var html1='<span class="green">正常</span>';
var html2='<span class="yellow">禁用</span>';
if(d.status==1){
return html1;
}
else{
return html2;
}
}}
,{width:180,title: '操作', align:'center',templet: function(d){
var html='';
var btn='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">查看</a>';
var btn1='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
var btn2='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="disable">禁用</a>';
var btn3='<a class="layui-btn layui-btn-xs layui-bg-purple" lay-event="open">启用</a>';
var btn4='<a class="layui-btn layui-btn-xs layui-bg-blue" lay-event="use">使用情况</a>';
if(d.status==1){
html = '<div class="layui-btn-group">'+btn+btn1+btn2+btn4+'</div>';
}
else{
html = '<div class="layui-btn-group">'+btn+btn1+btn3+btn4+'</div>';
}
return html;
}}
]]
});
table.on('tool(roomTable)',function (obj) {
var that = this;
if(obj.event === 'edit'){
tool.side("/adm/meeting/room_add?id="+obj.data.id);
}
if(obj.event === 'view'){
tool.side("/adm/meeting/room_view?id="+obj.data.id);
}
if(obj.event === 'use'){
tool.side("/adm/meeting/room_use?id="+obj.data.id);
}
if(obj.event === 'disable'){
layer.confirm('确定要禁用该会议室吗?', {icon: 3, title:'提示'}, function(index){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
layui.pageTable.reload();
}
}
tool.post("/adm/meeting/room_check", { id: obj.data.id,status: 0,title: obj.data.title}, callback);
layer.close(index);
});
}
if(obj.event === 'open'){
layer.confirm('确定要启用该会议室吗?', {icon: 3, title:'提示'}, function(index){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
layui.pageTable.reload();
}
}
tool.post("/adm/meeting/room_check", { id: obj.data.id,status: 1,title: obj.data.title}, callback);
layer.close(index);
});
}
});
}
</script>
{/block}
<!-- /脚本 -->
+71
View File
@@ -0,0 +1,71 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-1">新增会议室</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray-2">会议室名称<font>*</font></td>
<td colspan="3">
<input type="text" name="title" autocomplete="off" lay-verify="required" lay-reqText="请完善会议室名称" placeholder="请完善会议室名称" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">地址(楼层)<font>*</font></td>
<td colspan="3">
<input type="text" name="address" autocomplete="off" lay-verify="required" lay-reqText="请完善会议室地址(楼层)" placeholder="请输入会议室地址(楼层)" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">管 理 员<font>*</font></td>
<td>
<input type="text" name="keep_name" autocomplete="off" readonly lay-verify="required" lay-reqText="请选择会议室管理员" placeholder="请选择" class="layui-input picker-admin">
<input type="hidden" name="keep_uid">
</td>
<td class="layui-td-gray-2">可容纳人数<font>*</font></td>
<td><input type="text" name="num" autocomplete="off" placeholder="请输入可容纳人数" lay-verify="required|number" lay-reqText="请输入可容纳人数" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray">内置设备<font>*</font></td>
<td colspan="3">
<input type="text" name="device" autocomplete="off" lay-verify="required" lay-reqText="请完善会议室内置设备" placeholder="请输入会议室内置设备" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">相关描述</td>
<td colspan="3">
<textarea name="remark" placeholder="请输入会议室相关描述" class="layui-textarea"></textarea>
</td>
</tr>
</table>
<div class="pt-2">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
let clickbtn = $(this);
tool.post("/adm/meeting/room_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+72
View File
@@ -0,0 +1,72 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-1">编辑会议室</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray-2">会议室名称<font>*</font></td>
<td colspan="3">
<input type="text" name="title" value="{$detail.title}" autocomplete="off" lay-verify="required" lay-reqText="请完善会议室名称" placeholder="请完善会议室名称" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">地址(楼层)<font>*</font></td>
<td colspan="3">
<input type="text" name="address" value="{$detail.address}" autocomplete="off" lay-verify="required" lay-reqText="请完善会议室地址(楼层)" placeholder="请输入会议室地址(楼层)" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">管 理 员<font>*</font></td>
<td>
<input type="text" name="keep_name" value="{$detail.keep_name}" autocomplete="off" readonly lay-verify="required" lay-reqText="请选择会议室管理员" placeholder="请选择" class="layui-input picker-admin">
<input type="hidden" name="keep_uid" value="{$detail.keep_uid}">
</td>
<td class="layui-td-gray-2">可容纳人数<font>*</font></td>
<td><input type="text" name="num" autocomplete="off" value="{$detail.num}" placeholder="请输入费用金额" lay-verify="required|number" lay-reqText="请输入费用金额" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray">内置设备<font>*</font></td>
<td colspan="3">
<input type="text" name="device" value="{$detail.device}" autocomplete="off" lay-verify="required" lay-reqText="请完善会议室内置设备" placeholder="请输入会议室内置设备" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">相关描述</td>
<td colspan="3">
<textarea name="remark" placeholder="请输入会议室相关描述" class="layui-textarea">{$detail.remark|default=''}</textarea>
</td>
</tr>
</table>
<div class="pt-2">
<input type="hidden" name="id" value="{$detail.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
let clickbtn = $(this);
tool.post("/adm/meeting/room_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+157
View File
@@ -0,0 +1,157 @@
{extend name="../../base/view/common/base" /}
{block name="style"}
<link rel="stylesheet" href="{__GOUGU__}/third_party/fullcalendar/main.min.css"/>
<style>
#calendar {width: 100%;margin: 0 auto; background-color:#fff;
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
}
.fc .fc-toolbar.fc-header-toolbar{margin-bottom:0;border:1px solid #eeeeee; border-bottom:none;padding:15px 12px;}
.fc-col-header{background-color:#fafafa;}
.fc .fc-button-primary {color: #fff; background-color: #1E9FFF; border-color: #1E9FFF;}
.fc .fc-button-primary:not(:disabled).fc-button-active, .fc .fc-button-primary:not(:disabled):active { color: #fff; background-color: #FBBC05; border-color: #FBBC05;}
.fc .fc-button-primary:focus, .fc .fc-button-primary:not(:disabled).fc-button-active:focus, .fc .fc-button-primary:not(:disabled):active:focus {box-shadow: 0 0 0 0;}
.fc .fc-button-primary:hover{color:#fff; background-color:#52B5FF; border-color:#52B5FF;}
.fc-daygrid-event-harness{cursor:pointer;}
.fc .fc-daygrid-week-number{font-size:12px;}
.fc-daygrid-block-event .fc-event-time{font-weight:800}
.fc-h-event .fc-event-main{color:#111111}
.fc-theme-standard .fc-scrollgrid,.fc-theme-standard td, .fc-theme-standard th{border-color:#eee;}
.fc-v-event .fc-event-main-frame{color:#333}
/*今天背景色和字体颜色 */
.fc .fc-daygrid-day.fc-day-today .fc-event-title,.fc .fc-daygrid-day.fc-day-today .fc-event-time,.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number{font-weight:800;color:#FF5722;}
.calendar-select{width:100px; height:40px; position:absolute; top:31px; right:262px; z-index:100;}
.calendar-select .layui-input{height: 36px; line-height: 1.2;}
.layui-tags-span {padding: 3px 6px;font-size: 12px; background-color:#fff; border-radius: 3px; margin:2px 0; margin-right: 5px; border: 1px solid #e6e6e6; display: inline-block;}
.layui-layer-content .layui-table-view .layui-table td,.layui-layer-content .layui-table-view .layui-table th{padding:1px 0;}
.layui-unselect dl {max-height:188px;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<script src="{__GOUGU__}/third_party/fullcalendar/main.min.js"></script>
<div class="p-page">
<div id="calendar"></div>
</div>
<!-- /主体 -->
{/block}
{block name="copyright"}{/block}
<!-- 脚本 -->
{block name="script"}
<script type="text/javascript">
var id={$detail.id};
function addZero(num){
if(num<10){
num='0'+num;
}
return num;
}
const moduleInit = ['tool','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool, oaPicker = layui.oaPicker,laydate = layui.laydate,dropdown = layui.dropdown;
//日历
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
views: {
dayGrid: {
viewDidMount:function(arg){
calendar.setOption('height', window.innerHeight-30);
}
},
timeGrid: {
viewDidMount:function(arg){
calendar.setOption('height', 'auto');
}
},
week: {
viewDidMount:function(arg){
calendar.setOption('height', 'auto');
}
},
day: {
viewDidMount:function(arg){
calendar.setOption('height', 'auto');
}
}
},
//initialDate: '2020-09-12',//默认显示日期
initialView: 'dayGridMonth',//默认显示月视图
headerToolbar: {
left: 'prev,next',//prev,next today add
center: 'title',
right: 'dayGridMonth,timeGridWeek,listWeek' //clear dayGridMonth,timeGridWeek,timeGridDay,listWeek
},
height: 'auto',//自动高度
navLinks: true, // can click day/week names to navigate views
editable: true,//确定是否可以拖拉调整日历事件的时间。
eventResize:function(ev) {
var arg = ev.event
console.log(arg);
},
eventDrop:function(ev) {
var arg = ev.event
console.log(arg);
},
selectable: true,//拖拉选择日期
selectMirror: true,//是否在用户拖动时绘制"占位符"事件。
select: function(arg) {
console.log(arg);
},
nowIndicator: true,
firstDay: 1,
weekNumbers: true,// 是否开启周数
displayEventEnd: false, //所有视图显示结束时间
eventTimeFormat: { // 事件的时间格式,like '14:30:00'
hour: '2-digit',
minute: '2-digit',
//second: '2-digit',
meridiem: false,
hour12: false //设置时间为24小时
},
slotLabelFormat: { // 列表视图左边的时间格式,like '14:30:00'
hour: '2-digit',
minute: '2-digit',
//second: '2-digit',
meridiem: false,
hour12: false //设置时间为24小时
},
locale: 'zh-cn',//语言
buttonText: {
//按钮文本
today: '今天',
month: '月',
week: '周',
day: '日',
list: '预定列表',
},
weekText: '周',
allDayText: '全天',
moreLinkText: function(n) {
return '另外 ' + n + ' 个'
},
noEventsText: '没有预定记录',
events: function(fetchInfo, successCallback, failureCallback ){
$.ajax({
type:"POST",
url: "/adm/meeting/room_use",
dataType:"json",
data:{start:fetchInfo.startStr,end:fetchInfo.endStr,id:id},
success:function(result){
//console.info(result);
successCallback(result);
},
error:function(){
failureCallback();
}
})
},
eventClick: function(info) {
//console.log(info.event);
tool.side('/adm/meeting/view?id='+info.event.id);
}
});
calendar.render();
}
</script>
{/block}
<!-- /脚本 -->
+44
View File
@@ -0,0 +1,44 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-1">会议室信息</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray-2">会议室名称</td>
<td colspan="3">{$detail.title}</td>
</tr>
<tr>
<td class="layui-td-gray">地址(楼层)</td>
<td colspan="3">{$detail.address}</td>
</tr>
<tr>
<td class="layui-td-gray">管 理 员</td>
<td>{$detail.keep_name}</td>
<td class="layui-td-gray-2">可容纳人数</td>
<td>{$detail.num}</td>
</tr>
<tr>
<td class="layui-td-gray">内置设备</td>
<td colspan="3">{$detail.device}</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">相关描述</td>
<td colspan="3">{$detail.remark|default=''}</td>
</tr>
</table>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
}
</script>
{/block}
<!-- /脚本 -->
+52
View File
@@ -0,0 +1,52 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<h3 class="pb-2">会议室预定</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray-2">会议主题</td>
<td colspan="3">{$detail.title|default=''}</td>
<td class="layui-td-gray">会议地点</td>
<td>{$detail.room|default=''}</td>
</tr>
<tr>
<td class="layui-td-gray-2">开始时间</td>
<td>{$detail.start_time|default=''}</td>
<td class="layui-td-gray">结束时间</td>
<td>{$detail.end_time|default=''}</td>
<td class="layui-td-gray">会议人数</td>
<td>{$detail.num|default=''}</td>
</tr>
<tr>
<td class="layui-td-gray">会议需求</td>
<td colspan="5">
{volist name="$detail.requirements_array" id="v"}
{eq name="$v.checked" value="1" }<span class="layui-badge layui-bg-blue">{$v.title}</span>{/eq}
{/volist}
</td>
</tr>
<tr>
<td class="layui-td-gray">其他要求</td>
<td colspan="5">{$detail.remark|default=''}</td>
</tr>
</table>
<div id="checkBox" data-status="{$detail.check_status}" data-id="{$detail.id}" data-checkflowid="{$detail.check_flow_id}" class="pt-3"></div>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
var moduleInit = ['tool','oaCheck'];
function gouguInit() {
var tool = layui.tool,oaCheck = layui.oaCheck;
//审批相关
oaCheck.init({
check_name:'meeting_order',
});
}
</script>
{/block}
<!-- /脚本 -->