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
+122
View File
@@ -0,0 +1,122 @@
{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">申请主题<font>*</font></td>
<td colspan="3"><input type="text" name="title" autocomplete="off" placeholder="请输入用章申请主题" lay-verify="required" lay-reqText="请输入用申请主题" class="layui-input"></td>
<td class="layui-td-gray">用印部门</td>
<td>{$user.department}{$user.name}<input type="hidden" name="did" value="{$user.did}"></td>
</tr>
<tr>
<td class="layui-td-gray">盖章次数<font>*</font></td>
<td>
<input type="text" name="num" value='' placeholder="请输入盖章次数" lay-verify="required|number" lay-reqText="请输入盖章次数" class="layui-input">
</td>
<td class="layui-td-gray-2">预期用印日期<font>*</font></td>
<td><input type="text" name="use_time" value='' readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择预期用印日期" class="layui-input tool-time"></td>
<td class="layui-td-gray-2">印章类型<font>*</font></td>
<td>
<select name="seal_cate_id" lay-verify="required" lay-reqText="请输入印章类型">
<option value="">选择印章类型</option>
{volist name="$sealcate" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</td>
</tr>
<tr>
<td class="layui-td-gray">印章是否外借<font>*</font></td>
<td>
<input type="radio" name="is_borrow" value="0" title="否" checked>
<input type="radio" name="is_borrow" value="1" title="是">
</td>
<td class="layui-td-gray-2">印章借用日期</td>
<td><input type="text" name="start_time" value='' readonly placeholder="请选择" class="layui-input tool-time"></td>
<td class="layui-td-gray">结束借用日期</td>
<td><input type="text" name="end_time" value='' readonly placeholder="请选择" class="layui-input tool-time"></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">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="">
</div>
</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">
<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','uploadPlus','oaPicker','formSelects','oaCheck'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus= layui.uploadPlus,formSelects= layui.formSelects,oaCheck=layui.oaCheck;
oaCheck.init({
check_name:'seal',
check_btn:0
});
//选择用印部门
var selected_a = $('#did').attr('xm-selected');
formSelects.data('select1', 'server', {
url: '/api/index/get_department_select',
keyword: selected_a
});
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
if (data.field.is_borrow==1 && data.field.start_time == '') {
layer.msg('请完善印章借用日期');
return false;
}
if (data.field.is_borrow==1 && data.field.end_time == '') {
layer.msg('请完善结束借用日期');
return false;
}
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 = 'seal';
data.field.action_id = e.data.return_id;
oaCheck.submit(data.field,checkCallback);
}
}
let clickbtn = $(this);
tool.post("/adm/seal/add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+149
View File
@@ -0,0 +1,149 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<div class="layui-card border-x border-t" style="margin-bottom:0; box-shadow:0 0 0 0 rgb(5 32 96 / 0%)">
<div class="body-table layui-tab layui-tab-brief" lay-filter="tab">
<ul class="layui-tab-title">
<li class="layui-this">全部</li>
<li>我申请的</li>
<li>待我审批</li>
<li>我已审批</li>
<li>抄送我的</li>
</ul>
</div>
</div>
<form class="layui-form gg-form-bar border-x" id="barsearchform">
<div class="layui-input-inline" style="width:128px">
<select name="check_status">
<option value="">选择审批状态</option>
{volist name=":get_check_status()" id="vo"}
<option value="{$key}">{$vo}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline" style="width:128px">
<select name="seal_cate_id">
<option value="">选择印章类型</option>
{volist name=":get_base_data('seal_cate')" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline" style="width:300px">
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:150px">
<input type="hidden" name="tab" value="0" />
<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_seal" lay-filter="table_seal"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/adm/seal/add">+ 用章申请</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool, element = layui.element;
//tab切换
element.on('tab(tab)', function(data){
$('[name="tab"]').val(data.index);
$("#barsearchform")[0].reset();
layui.pageTable.reload({where:{tab:data.index},page:{curr:1}});
return false;
});
layui.pageTable = table.render({
elem: "#table_seal"
, toolbar: "#toolbarDemo"
,url: "/adm/seal/datalist"
,page: true
,limit: 20
,cellMinWidth: 60
,height: 'full-154'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'check_status',title: '审批状态',width:112, 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:'seal_cate',title: '用章类型',width:100, align:'center'}
,{field:'is_borrow',title: '是否外借',width:80, align:'center',templet: function(d){
if(d.is_borrow==1){
return '<div class="red">是</div>';
}
else{
return '<div class="green">否</div>';
}
}}
,{field:'use_dname',title: '用印部门',width:100, align:'center'}
,{field:'num',title: '盖章次数',width:80, align:'center'}
,{field:'admin_name',title: '申请人',width:90, align:'center'}
,{field:'create_time', title: '创建时间',width:150,align:'center'}
,{width:120,fixed:'right',title: '操作', align:'center',templet: function(d){
var html='';
var btn1='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</a>';
var btn2='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
var btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
html = '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
if((d.check_status==0||d.check_status==4) && d.admin_id == login_admin){
return '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
}
else{
return '<div class="layui-btn-group">'+btn1+'</div>';
}
}}
]]
});
//表头工具栏事件
table.on('toolbar(table_seal)', function(obj){
if (obj.event === 'add') {
tool.side("/adm/seal/add");
return;
}
});
table.on('tool(table_seal)',function (obj) {
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
var data = obj.data;
if (obj.event === 'view') {
tool.side("/adm/seal/view?id="+data.id);
return;
}
if (obj.event === 'edit') {
tool.side("/adm/seal/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/seal/del", { id: data.id }, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+126
View File
@@ -0,0 +1,126 @@
{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">申请主题<font>*</font></td>
<td colspan="3"><input type="text" name="title" value="{$detail.title}" autocomplete="off" placeholder="请输入用章申请主题" lay-verify="required" lay-reqText="请输入用申请主题" class="layui-input"></td>
<td class="layui-td-gray">用印部门</td>
<td>{$user.department}{$user.name}<input type="hidden" name="did" value="{$user.did}"></td>
</tr>
<tr>
<td class="layui-td-gray">盖章次数<font>*</font></td>
<td>
<input type="text" name="num" value='{$detail.num}' placeholder="请输入盖章次数" lay-verify="required|number" lay-reqText="请输入盖章次数" class="layui-input">
</td>
<td class="layui-td-gray-2">预期用印日期<font>*</font></td>
<td><input type="text" name="use_time" value="{$detail.use_time|date='Y-m-d'}" readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择预期用印日期" class="layui-input tool-time"></td>
<td class="layui-td-gray-2">印章类型<font>*</font></td>
<td>
<select name="seal_cate_id" lay-verify="required" lay-reqText="请输入印章类型">
<option value="">选择印章类型</option>
{volist name="$sealcate" id="vo"}
<option value="{$vo.id}" {eq name="$vo.id" value="$detail.seal_cate_id"}selected{/eq}>{$vo.title}</option>
{/volist}
</select>
</td>
</tr>
<tr>
<td class="layui-td-gray">印章是否外借<font>*</font></td>
<td>
<input type="radio" name="is_borrow" value="0" title="否" {eq name="$detail.is_borrow" value="0"}checked{/eq}>
<input type="radio" name="is_borrow" value="1" title="是" {eq name="$detail.is_borrow" value="1"}checked{/eq}>
</td>
<td class="layui-td-gray-2">印章借用日期</td>
<td><input type="text" name="start_time" value="{$detail.start_time}" readonly placeholder="请选择" class="layui-input tool-time"></td>
<td class="layui-td-gray">结束借用日期</td>
<td><input type="text" name="end_time" value="{$detail.end_time}" readonly placeholder="请选择" class="layui-input tool-time"></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">{$detail.content}</textarea>
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
{notempty name="$detail.file_array"}
{volist name="$detail.file_array" id="vo"}
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo)}</div>
{/volist}
{/notempty}
</div>
</td>
</tr>
</table>
<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}">
<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','uploadPlus','oaPicker','formSelects','oaCheck'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus= layui.uploadPlus,formSelects= layui.formSelects,oaCheck=layui.oaCheck;
oaCheck.init({
check_name:'seal',
check_btn:0
});
//选择用印部门
var selected_a = $('#did').attr('xm-selected');
formSelects.data('select1', 'server', {
url: '/api/index/get_department_select',
keyword: selected_a
});
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
if (data.field.is_borrow==1 && data.field.start_time == '') {
layer.msg('请完善印章借用日期');
return false;
}
if (data.field.is_borrow==1 && data.field.end_time == '') {
layer.msg('请完善结束借用日期');
return false;
}
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 = 'seal';
data.field.action_id = e.data.return_id;
oaCheck.submit(data.field,checkCallback);
}
}
let clickbtn = $(this);
tool.post("/adm/seal/add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+155
View File
@@ -0,0 +1,155 @@
{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:128px">
<select name="check_status">
<option value="">选择用章状态</option>
{volist name="status" id="vo"}
<option value="{$key}">{$vo}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline" style="width:128px">
<select name="seal_cate_id">
<option value="">选择印章类型</option>
{volist name=":get_base_data('seal_cate')" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline" style="width:300px">
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:150px">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="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_seal" lay-filter="table_seal"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div>
<h3>用章记录</h3>
</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_seal"
, toolbar: "#toolbarDemo"
,url: "/adm/seal/record"
,page: true
,limit: 20
,cellMinWidth: 60
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'check_status',title: '用章状态',width:90, align:'center',templet: function(d){
let status_str = '未使用';
if(d.status == 1){
status_str = '已使用';
if(d.is_borrow==1){
status_str = '已外借';
}
}
if(d.status == 2){
status_str = '已归还';
}
return html = '<span class="check-status-color-'+d.status+'">『'+status_str+'』</span>';
}}
,{field:'title',title: '用章申请主题',minWidth:240}
,{field:'seal_cate',title: '用章类型',width:100, align:'center'}
,{field:'is_borrow',title: '是否外借',width:80, align:'center',templet: function(d){
if(d.is_borrow==1){
return '<div class="red">是</div>';
}
else{
return '<div class="green">否</div>';
}
}}
,{field:'use_dname',title: '用印部门',width:100, align:'center'}
,{field:'num',title: '盖章次数',width:80, align:'center'}
,{field:'admin_name',title: '申请人',width:90, align:'center'}
,{field:'create_time', title: '创建时间',width:150,align:'center'}
,{width:168,fixed:'right',title: '操作', align:'center',templet: function(d){
var html='';
var btn1='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</a>';
var btn2='<a class="layui-btn layui-btn-xs" lay-event="use">使用登记</a>';
var btn3='<a class="layui-btn layui-btn-xs" lay-event="use">出借登记</a>';
var btn4='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="back">归还登记</a>';
if(d.status == 0){
if(d.is_borrow==1){
html = '<div class="layui-btn-group">'+btn1+btn3+'</div>';
}
else{
html = '<div class="layui-btn-group">'+btn1+btn2+'</div>';
}
}
if(d.status == 1){
if(d.is_borrow==1){
html = '<div class="layui-btn-group">'+btn1+btn4+'</div>';
}
else{
html = '<div class="layui-btn-group">'+btn1+'</div>';
}
}
if(d.status == 2){
html = '<div class="layui-btn-group">'+btn1+'</div>';
}
return html;
}}
]]
});
table.on('tool(table_seal)',function (obj) {
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
var data = obj.data;
if (obj.event === 'view') {
tool.side("/adm/seal/view?id="+data.id);
return;
}
if (obj.event === 'use') {
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/api/set_seal_status", { id: obj.data.id,status: 1 }, callback);
layer.close(index);
});
return;
}
if (obj.event === 'back') {
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/api/set_seal_status", { id: obj.data.id,status: 2 }, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+75
View File
@@ -0,0 +1,75 @@
{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 colspan="3">{$detail.title}</td>
<td class="layui-td-gray">印章类型</td>
<td>{$detail.seal_cate}</td>
</tr>
<tr>
<td class="layui-td-gray">盖章次数</td>
<td>{$detail.num}</td>
<td class="layui-td-gray">用印部门</td>
<td>{$detail.use_dname|default='-'}{$create_user.name}</td>
<td class="layui-td-gray-2">预期用印日期</td>
<td>{$detail.use_time|date='Y-m-d'}</td>
</tr>
<tr>
<td class="layui-td-gray">印章是否外借</td>
<td>
{eq name="$detail.is_borrow" value="0"}否{/eq}
{eq name="$detail.is_borrow" value="1"}是{/eq}
</td>
<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>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">盖章内容</td>
<td colspan="5">{:nl2br($detail.content)}</td>
</tr>
{eq name="detail.check_status" value="2"}
<tr>
<td class="layui-td-gray">用章状态</td>
<td colspan="5"><span class="check-status-color-{$detail.status}">『{$detail.status_str}』</span></td>
</tr>
{/eq}
{notempty name="$detail.file_array"}
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
{volist name="$detail.file_array" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo,'view')}</div>
{/volist}
</div>
</td>
</tr>
{/notempty}
</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>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','oaCheck'];
function gouguInit() {
var form = layui.form,tool=layui.tool,oaCheck=layui.oaCheck;
oaCheck.init({
check_name:'seal'
});
}
</script>
{/block}
<!-- /脚本 -->