1、结合最新版的layui2.8.2,整体优化了前台的体验操作

2、树形table去除第三方组件treeGrid的依赖,使用layui2.8.2内置的treetable组件。
3、使用layui2.8.2的日期组件的新特性对联动日期进行优化。
此处更新更多的是改动了模板文件,功能逻辑没改变。
This commit is contained in:
hdm 2023-05-18 12:26:49 +08:00
parent c6a7415b7b
commit c114d6edbc
62 changed files with 568 additions and 945 deletions

View File

@ -22,7 +22,8 @@ class Cate extends BaseController
{
if (request()->isAjax()) {
$cate = Db::name('ArticleCate')->order('create_time asc')->select();
return to_assign(0, '', $cate);
$list = generateTree($cate);
return to_assign(0, '', $list);
} else {
return view();
}

View File

@ -2,8 +2,8 @@
<!-- 主体 -->
{block name="body"}
<div class="p-3">
<div class="gg-form-bar border-t border-x">
<button class="layui-btn layui-btn-normal layui-btn-sm add-menu">+ 添加分类</button>
<div class="gg-form-bar border-t border-x" style="padding-bottom:12px;">
<button class="layui-btn layui-btn-sm add-menu">+ 添加分类</button>
</div>
<div>
<table class="layui-hide" id="treeTable" lay-filter="treeTable"></table>
@ -18,64 +18,66 @@
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool', 'treeGrid'];
const moduleInit = ['tool'];
function gouguInit() {
var treeGrid = layui.treeGrid,table = layui.table, tool = layui.tool;
var pageTable = treeGrid.render({
id:'treeTable'
,elem: '#treeTable'
,idField:'id'
,url: "/article/cate/cate"
,cellMinWidth: 100
,treeId:'id'//树形id字段名称
,treeUpId:'pid'//树形父id字段名称
,treeShowName:'title'//以树形式显示的字段
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field: 'sort', title: '排序',align:'center', width:80}
,{field:'title', edit:'text',width:240, title: '分类名称'}
,{field:'pid', title: '父级ID', width:80, align:'center'}
,{field:'desc', title: '描述', }
,{width:160,title: '操作', align:'center',templet: function(d){
var html = '<span class="layui-btn-group"><button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">添加子分类</button><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></span>';
return html;
}
}
]]
,page:false
//,skin:'line'
});
var treeTable = layui.treeTable, tool = layui.tool;
//表头工具栏事件
$('.add-menu').on('click', function(){
tool.side("/article/cate/cate_add");
layui.pageTable = treeTable.render({
elem: '#treeTable'
,url: "/article/cate/cate"
,tree: { // treeTable 特定属性集
customName: {name:'title'},
data: {},
view: {showIcon:false},
async: {},
callback: {}
}
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field: 'sort', title: '排序',align:'center', width:80}
,{field:'title', edit:'text',width:240, title: '分类名称'}
,{field:'pid', title: '父级ID', width:80, align:'center'}
,{field:'desc', title: '描述', }
,{width:160,title: '操作', align:'center',templet: function(d){
var html = '<span class="layui-btn-group"><button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">添加子分类</button><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></span>';
return html;
}
}
]]
,page:false
//,skin:'line'
});
//表头工具栏事件
$('.add-menu').on('click', function(){
tool.side("/article/cate/cate_add");
return;
});
//操作按钮
treeTable.on('tool(treeTable)', function (obj) {
if (obj.event === 'add') {
tool.side('/article/cate/cate_add?pid='+obj.data.id);
return;
});
//操作按钮
treeGrid.on('tool(treeTable)', function (obj) {
if (obj.event === 'add') {
tool.side('/article/cate/cate_add?pid='+obj.data.id);
return;
}
if (obj.event === 'edit') {
tool.side('/article/cate/cate_add?id='+obj.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();
}
}
if (obj.event === 'edit') {
tool.side('/article/cate/cate_add?id='+obj.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("/article/cate/cate_delete", { id: obj.data.id }, callback);
layer.close(index);
});
}
});
}
</script>
}
tool.delete("/article/cate/cate_delete", { id: obj.data.id }, callback);
layer.close(index);
});
}
});
}
</script>
{/block}
<!-- /脚本 -->

View File

@ -76,9 +76,7 @@
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout(function () {
parent.location.reload();
}, 1000);
tool.sideClose(1000);
}
}
tool.post("/article/cate/cate_add", data.field, callback);

View File

@ -1,81 +0,0 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-3">
<div class="gg-form-bar border-t border-x">
<button class="layui-btn layui-btn-normal layui-btn-sm add-menu">+ 添加分类</button>
</div>
<div>
<table class="layui-hide" id="treeTable" lay-filter="treeTable"></table>
</div>
</div>
<script type="text/html" id="switchStatus">
<input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="status" {{ d.status == 1 ? 'checked' : '' }}>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool', 'treeGrid'];
function gouguInit() {
var treeGrid = layui.treeGrid,table = layui.table, tool = layui.tool;
var pageTable = treeGrid.render({
id:'treeTable'
,elem: '#treeTable'
,idField:'id'
,url: "/article/cate/cate"
,cellMinWidth: 100
,treeId:'id'//树形id字段名称
,treeUpId:'pid'//树形父id字段名称
,treeShowName:'title'//以树形式显示的字段
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field: 'sort', title: '排序',align:'center', width:80}
,{field:'title', edit:'text',width:240, title: '分类名称'}
,{field:'pid', title: '父级ID', width:80, align:'center'}
,{field:'desc', title: '描述', }
,{width:160,title: '操作', align:'center',templet: function(d){
var html = '<span class="layui-btn-group"><button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">添加子分类</button><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></span>';
return html;
}
}
]]
,page:false
//,skin:'line'
});
//表头工具栏事件
$('.add-menu').on('click', function(){
tool.side("/article/cate/cate_add");
return;
});
//操作按钮
treeGrid.on('tool(treeTable)', function (obj) {
if (obj.event === 'add') {
tool.side('/article/cate/cate_add?pid='+obj.data.id);
return;
}
if (obj.event === 'edit') {
tool.side('/article/cate/cate_add?id='+obj.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("/article/cate/cate_delete", { id: obj.data.id }, callback);
layer.close(index);
});
}
});
}
</script>
{/block}
<!-- /脚本 -->

View File

@ -14,7 +14,10 @@
<div class="layui-input-inline" style="width:300px;">
<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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -14,7 +14,10 @@
<div class="layui-input-inline" style="width:300px;">
<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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -1098,6 +1098,19 @@ function get_data_node($data=[],$pid=0){
return array_values($dep);
}
function generateTree($flatArray, $parentId = 0) {
$tree = [];
foreach ($flatArray as $item) {
if ($item['pid'] === $parentId) {
$node = $item;
$node['children'] = generateTree($flatArray, $item['id']);
$tree[] = $node;
}
}
return $tree;
}
//访问按小时归档统计
function hour_document($arrData)
{

View File

@ -302,12 +302,7 @@ class Index extends BaseController
View::assign('flows', $flows);
View::assign('auth', $auth);
View::assign('detail', $detail);
if($detail['check_status'] == 0 || $detail['check_status'] == 4){
return view('view_set');
}
else{
return view();
}
return view();
}
//删除
public function delete()

View File

@ -2,7 +2,7 @@
<!-- 主体 -->
{block name="body"}
<div class="p-3">
<div class="gg-form-bar border-x border-t red">
<div class="gg-form-bar border-x border-t red" style="padding-bottom:12px">
<p><strong>说明</strong></p>
<p>合同性质分为:普通合同、框架合同、补充协议、其他合同</p>
<p>1、普通合同有合同金额且金额为必填项</p>
@ -14,7 +14,7 @@
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm addNew" type="button">+ 添加合同类型</button>
<button class="layui-btn layui-btn-sm addNew" type="button">+ 添加合同类型</button>
</div>
</script>
{/block}

View File

@ -76,16 +76,20 @@
</tr>
<tr>
<td class="layui-td-gray-2">客户联系地址</td>
<td>
<td colspan="3">
<input type="text" name="customer_address" autocomplete="off" placeholder="请输入客户联系地址" class="layui-input">
</td>
<td class="layui-td-gray-2">合同始日期<font>*</font></td>
<td class="layui-td-gray-2">合同始日期<font>*</font></td>
<td>
<input type="text" name="start_time" readonly lay-verify="required" lay-reqText="请选择合同开始时间" placeholder="请选择合同开始时间" class="layui-input select-time">
</td>
<td class="layui-td-gray-2">合同结束日期<font>*</font></td>
<td>
<input type="text" name="end_time" readonly lay-verify="required" lay-reqText="请选择合同结束时间" placeholder="请选择合同结束时间" class="layui-input select-time">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time" lay-verify="required" lay-reqText="请选择合同开始时间">
</div>
~
<div class="layui-input-inline" style="width:110px;margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time" lay-verify="required" lay-reqText="请选择合同结束时间">
</div>
</div>
</td>
</tr>
{neq name="$type" value="2"}
@ -120,7 +124,7 @@
</td>
<td class="layui-td-gray-2">合同签订时间<font>*</font></td>
<td>
<input type="text" name="sign_time" readonly lay-verify="required" lay-reqText="请选择合同签订日期" placeholder="请选择合同签订日期" class="layui-input select-time">
<input type="text" name="sign_time" readonly lay-verify="required" lay-reqText="请选择合同签订日期" placeholder="请选择合同签订日期" class="layui-input tool-time">
</td>
<td class="layui-td-gray-2">合同制定人<font>*</font></td>
<td>
@ -177,12 +181,11 @@
const moduleInit = ['tool','employeepicker','oaTool'];
function gouguInit() {
var form = layui.form,tool=layui.tool,table = layui.table,laydate = layui.laydate,oaTool = layui.oaTool, employeepicker = layui.employeepicker;
//日期
lay('.select-time').each(function () {
laydate.render({
elem: this,
trigger: 'click'
});
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//相关附件上传

View File

@ -23,7 +23,10 @@
<div class="layui-input-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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -66,16 +66,20 @@
</tr>
<tr>
<td class="layui-td-gray-2">客户联系地址</td>
<td>
<td colspan="3">
<input type="text" name="customer_address" value="{$detail.customer_address}" autocomplete="off" placeholder="请输入客户联系地址" class="layui-input">
</td>
<td class="layui-td-gray-2">合同始日期<font>*</font></td>
<td class="layui-td-gray-2">合同始日期<font>*</font></td>
<td>
<input type="text" name="start_time" value="{$detail.start_time}" readonly lay-verify="required" lay-reqText="请选择合同开始时间" placeholder="请选择合同开始时间" class="layui-input select-time">
</td>
<td class="layui-td-gray-2">合同结束日期<font>*</font></td>
<td>
<input type="text" name="end_time" value="{$detail.end_time}" readonly lay-verify="required" lay-reqText="请选择合同结束时间" placeholder="请选择合同结束时间" class="layui-input select-time">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time" value="{$detail.start_time}" readonly lay-verify="required" lay-reqText="请选择合同开始时间">
</div>
~
<div class="layui-input-inline" style="width:110px;margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time" value="{$detail.end_time}" readonly lay-verify="required" lay-reqText="请选择合同结束时间">
</div>
</div>
</td>
</tr>
{neq name="$detail.type" value="2"}
@ -111,7 +115,7 @@
</td>
<td class="layui-td-gray-2">合同签订时间<font>*</font></td>
<td>
<input type="text" name="sign_time" value="{$detail.sign_time}" readonly lay-verify="required" lay-reqText="请选择合同签订日期" placeholder="请选择合同签订日期" class="layui-input select-time">
<input type="text" name="sign_time" value="{$detail.sign_time}" readonly lay-verify="required" lay-reqText="请选择合同签订日期" placeholder="请选择合同签订日期" class="layui-input tool-time">
</td>
<td class="layui-td-gray-2">合同制定人<font>*</font></td>
<td>
@ -174,12 +178,11 @@
const moduleInit = ['tool','employeepicker','oaTool'];
function gouguInit() {
var form = layui.form,tool=layui.tool,table = layui.table,laydate = layui.laydate,oaTool = layui.oaTool, employeepicker = layui.employeepicker;
//日期
lay('.select-time').each(function () {
laydate.render({
elem: this,
trigger: 'click'
});
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//相关附件上传

View File

@ -35,7 +35,10 @@
<div class="layui-input-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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -12,50 +12,6 @@ html{background-color:#fff;}
.log-timeline .open-a{margin:0 4px;}
.log-item i{font-weight:800; color:#323232}
.log-content strong{margin:0 4px; color:#323232}
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:18px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->
@ -68,7 +24,7 @@ html{background-color:#fff;}
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<table class="layui-table layui-table-form">
<table class="layui-table layui-table-form" style="margin:0">
{gt name="$detail.pid" value="0"}
<tr>
<td class="layui-td-gray">母合同名称</td>
@ -212,52 +168,56 @@ html{background-color:#fff;}
</td>
</tr>
{/notempty}
{eq name="$detail.check_status" value="2" }
<tr>
<td class="layui-td-gray-2">归档状态</td>
{eq name="$detail.archive_status" value="0" }
<td colspan="7"><span class="layui-color-{$detail.archive_status}">{$detail.archive_status_name}</span></td>
{else/}
<td><span class="layui-color-{$detail.archive_status}">{$detail.archive_status_name}</span></td>
<td class="layui-td-gray-2">归档人</td>
<td>{$detail.archive_name} </td>
<td class="layui-td-gray-2">归档时间</td>
<td colspan="3">{$detail.archive_time}</td>
{/eq}
</tr>
{/eq}
</table>
{eq name="$detail.check_status" value="4" }
<tr>
<td class="layui-td-gray-2">中止人</td>
<td>{$detail.stop_name} </td>
<td class="layui-td-gray-2">中止时间</td>
<td colspan="5">{$detail.stop_time}</td>
</tr>
<tr>
<td class="layui-td-gray-2">中止备注</td>
<td colspan="7">{$detail.stop_remark}</td>
</tr>
{/eq}
{eq name="$detail.check_status" value="5" }
<tr>
<td class="layui-td-gray-2">作废人</td>
<td>{$detail.void_name} </td>
<td class="layui-td-gray-2">作废时间</td>
<td colspan="5">{$detail.void_time}</td>
</tr>
<tr>
<td class="layui-td-gray-2">作废备注</td>
<td colspan="7">{$detail.void_remark}</td>
</tr>
{/eq}
</table>
{eq name="$detail.check_status" value="1" }
{if ($detail.check_status == 1)}
{include file="/index/view_step" /}
{/eq}
<div class="pt-3">
{elseif ($detail.check_status == 0) OR ($detail.check_status == 4)}
{include file="/index/view_set" /}
{else /}
<table class="layui-table layui-table-form">
{eq name="$detail.check_status" value="2" }
<tr>
<td class="layui-td-gray-2">归档状态</td>
{eq name="$detail.archive_status" value="0" }
<td colspan="7"><span class="layui-color-{$detail.archive_status}">{$detail.archive_status_name}</span></td>
{else/}
<td><span class="layui-color-{$detail.archive_status}">{$detail.archive_status_name}</span></td>
<td class="layui-td-gray-2">归档人</td>
<td>{$detail.archive_name} </td>
<td class="layui-td-gray-2">归档时间</td>
<td colspan="3">{$detail.archive_time}</td>
{/eq}
</tr>
{/eq}
{eq name="$detail.check_status" value="5" }
<tr>
<td class="layui-td-gray-2">中止人</td>
<td>{$detail.stop_name} </td>
<td class="layui-td-gray-2">中止时间</td>
<td colspan="5">{$detail.stop_time}</td>
</tr>
<tr>
<td class="layui-td-gray-2">中止备注</td>
<td colspan="7">{$detail.stop_remark}</td>
</tr>
{/eq}
{eq name="$detail.check_status" value="6" }
<tr>
<td class="layui-td-gray-2">作废人</td>
<td>{$detail.void_name} </td>
<td class="layui-td-gray-2">作废时间</td>
<td colspan="5">{$detail.void_time}</td>
</tr>
<tr>
<td class="layui-td-gray-2">作废备注</td>
<td colspan="7">{$detail.void_remark}</td>
</tr>
{/eq}
</table>
<div class="pt-2">
{gt name="$auth" value="0"}
{eq name="$detail.check_status" value="2" }
{eq name="$detail.archive_status" value="1" }
@ -282,10 +242,9 @@ html{background-color:#fff;}
{if ( $detail.check_status eq 3) AND ( $is_create_admin eq 1) }
<span class="layui-btn layui-btn-primary check_back"><i class="layui-icon layui-icon-reduce-circle"></i> 撤回</span>
{/if}
{if ( $detail.check_status eq 4) AND ( $is_create_admin eq 1) }
<a class="layui-btn" href="/contract/index/add/id/{$detail.id}">重新编辑</a>
{/if}
</div>
{/if}
</div>
<div class="layui-tab-item">
{include file="/index/view_log" /}
@ -310,6 +269,9 @@ const moduleInit = ['tool','employeepicker','oaTool'];
log(layui);
}
});
if(typeof init==='function'){
init(form,tool);
}
if (typeof (flowStep) == "function") {
flowStep();
@ -336,7 +298,6 @@ const moduleInit = ['tool','employeepicker','oaTool'];
});
});
//选择共享成员弹窗
$('body').on('click','#shares',function () {
var ids=$(this).data('ids')+'',names = $(this).data('names')+'',share_ids_array=[],share_names_array=[];

View File

@ -1,266 +1,44 @@
{extend name="../../base/view/common/base" /}
{block name="style"}
<style>
html{background-color:#fff;}
.log-timeline{ position: relative; min-height:600px; padding-left: 48px; background-color:#fff;}
.log-timeline:after {content: ""; position: absolute; top: 0; left: 24px; width: 1px; height: 100%; background: #e3e9ed;}
.log-timeline dl{padding-bottom: 8px; position: relative;}
.log-timeline dt{font-size: 16px; line-height: 2.4; color: #323232; font-weight:600}
.log-timeline dd{font-size: 14px; line-height: 1.6; padding:5px 0}
.log-timeline .date-second-point{width: 10px; height: 10px; display: block; border-radius: 50%; border: 3px solid #FBBC05; background: #fff; position: absolute; z-index: 99; left:-32px; top:9px}
.log-timeline .log-thumb{width: 24px; height: 24px; border-radius: 50%; margin-right:4px;}
.log-timeline .open-a{margin:0 4px;}
.log-item i{font-weight:800; color:#323232}
.log-content strong{margin:0 4px; color:#323232}
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:18px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<form class="layui-form px-4 pt-2" lay-filter="contract">
<div class="layui-tab" style="margin:0;" lay-filter="contract" id="contractTab">
<ul class="layui-tab-title">
<li class="layui-this" data-load="true">合同详情</li>
<li>操作记录</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<table class="layui-table layui-table-form">
{gt name="$detail.pid" value="0"}
<tr>
<td class="layui-td-gray">母合同名称</td>
<td colspan="7">{$detail.pname}</td>
</tr>
{/gt}
<tr>
<td class="layui-td-gray">合同名称</td>
<td colspan="5">{$detail.name}</td>
<td class="layui-td-gray">合同编号</td>
<td>{$detail.code}</td>
</tr>
<tr>
<td class="layui-td-gray">签约主体(乙方)</td>
<td colspan="3">
{volist name=":contract_subject()" id="v"}
{eq name="$v.id" value="$detail.subject_id" }{$v.title}{/eq}
{/volist}
</td>
<td class="layui-td-gray">合同性质</td>
<td>
{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>
{volist name=":contract_cate()" id="v"}
{eq name="$v.id" value="$detail.cate_id" }{$v.title}{/eq}
{/volist}
</td>
</tr>
<tr>
<td class="layui-td-gray">客户名称(甲方)</td>
<td colspan="3">{$detail.customer}</td>
<td class="layui-td-gray">签约客户代表</td>
<td>{$detail.customer_name}</td>
<td class="layui-td-gray">客户联系电话</td>
<td>{$detail.customer_mobile}</td>
</tr>
<tr>
<td class="layui-td-gray-2">客户联系地址</td>
<td colspan="3">{$detail.customer_address}</td>
<td class="layui-td-gray-2">合同开始日期</td>
<td>{$detail.start_time}</td>
<td class="layui-td-gray-2">合同结束日期</td>
<td>{$detail.end_time}</td>
</tr>
{neq name="$detail.type" value="2"}
<tr>
<td class="layui-td-gray">合同金额</td>
<td>{$detail.cost}</td>
{eq name="$detail.is_tax" value="1" }
<td class="layui-td-gray">是否含税</td>
<td></td>
<td class="layui-td-gray">税点(百分比)</td>
<td colspan="3">{$detail.tax}%</td>
{/eq}
{eq name="$detail.is_tax" value="0" }
<td class="layui-td-gray">是否含税</td>
<td colspan="5"></td>
{/eq}
</tr>
{/neq}
{notempty name="$detail.remark"}
<tr>
<td class="layui-td-gray">备注信息</td>
<td colspan="7">{$detail.remark}</td>
</tr>
{/notempty}
{notempty name="$detail.file_ids"}
<tr>
<td class="layui-td-gray">相关附件</td>
<td colspan="7" style="line-height:inherit">
<div class="layui-row">
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="uploadImg{$vo.id}">{:file_card($vo,'view')}</div>
{/volist}
</div>
</td>
</tr>
{/notempty}
<tr>
<td colspan="8"><strong>签订信息</strong></td>
</tr>
<tr>
<td class="layui-td-gray-2">合同制定人</td>
<td>{$detail.prepared_name} </td>
<td class="layui-td-gray-2">合同签订人</td>
<td>{$detail.sign_name}</td>
<td class="layui-td-gray-2">合同签订时间</td>
<td>{$detail.sign_time}</td>
<td class="layui-td-gray-2">合同签订部门</td>
<td>{$detail.sign_department}</td>
</tr>
<tr>
<td class="layui-td-gray-2">合同保管人</td>
<td>{$detail.keeper_name}{gt name="$auth" value="0"}<span id="keeper" data-ids="{$detail.keeper_uid}" data-names="{$detail.keeper_name}" class="layui-btn layui-btn-xs layui-btn-normal ml-1">更改</span>{/gt}</td>
<td class="layui-td-gray">合同共享人员</td>
<td colspan="5">{$detail.share_names}{gt name="$auth" value="0"}<span id="shares" data-ids="{$detail.share_ids}" data-names="{$detail.share_names}" class="layui-btn layui-btn-xs layui-btn-normal ml-1">更改</span>{/gt}</td>
</tr>
<tr>
<td colspan="8"><strong>审核信息</strong></td>
</tr>
<tr>
<td class="layui-td-gray-2">合同状态</td>
<td><span class="layui-color-{$detail.check_status}">{$detail.status_name}</span></td>
<td class="layui-td-gray-2">录入人</td>
<td>{$detail.admin_name} </td>
<td class="layui-td-gray-2">录入时间</td>
<td colspan="3">{$detail.create_time}</td>
</tr>
{notempty name="$check_record"}
<tr>
<td class="layui-td-gray">历史审批记录</td>
<td colspan="7">
<ul class="layui-timeline flow-record pt-2">
{volist name="$check_record" id="vo"}
<li class="layui-timeline-item delete-{$vo.delete_time}">
<i class="layui-icon layui-timeline-axis">&#xe63f;</i>
<p style="padding-left:24px">{$vo.check_time_str}<span class="black ml-2">{$vo.name}</span><span class="mx-2 layui-color-{$vo.status}">{$vo.status_str}</span>了此申请。操作意见:<span class="green">{$vo.content}</span></p>
</li>
{/volist}
</ul>
</td>
</tr>
{/notempty}
{eq name="$is_create_admin" value = "1"}
<tr>
<td class="layui-td-gray-2">选择审批流程<font>*</font></td>
<td colspan="7">
<select name="flow_id" lay-verify="required" lay-filter="flowtype" lay-reqText="请选择审批流程">
<option value="">--请选择--</option>
{volist name="flows" id="vo"}
<option value="{$vo.id}" title="{$vo.check_type}">{$vo.name}</option>
{/volist}
</select>
</td>
</tr>
<tr id="flow_tr">
<td class="layui-td-gray">审核人<font>*</font></td>
<td colspan="7">
<input type="text" name="check_admin_name" value="" autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input picker-one" readonly>
<input type="hidden" name="check_admin_ids" value="">
</td>
</tr>
<tr>
<td class="layui-td-gray">抄送人</td>
<td colspan="7">
<input type="text" name="copy_names" value="" autocomplete="off" placeholder="请选择抄送人" class="layui-input picker-more" readonly>
<input type="hidden" name="copy_uids" value="">
</td>
</tr>
{/eq}
</table>
<div class="pt-3">
{eq name="$is_create_admin" value = "1"}
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交审核</button>
<a class="layui-btn" href="/contract/index/add/id/{$detail.id}">编辑合同</a>
{/eq}
{gt name="$auth" value="0"}
<span class="layui-btn layui-btn-warm" data-event="check" data-status="5">中止合同</span>
<span class="layui-btn layui-btn-danger" data-event="check" data-status="6">作废合同</span>
{/gt}
</div>
</div>
<div class="layui-tab-item">
{include file="/index/view_log" /}
</div>
</div>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
{eq name="$is_create_admin" value = "1"}
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray-2">选择审批流程<font>*</font></td>
<td colspan="7">
<select name="flow_id" lay-verify="required" lay-filter="flowtype" lay-reqText="请选择审批流程">
<option value="">--请选择--</option>
{volist name="flows" id="vo"}
<option value="{$vo.id}" title="{$vo.check_type}">{$vo.name}</option>
{/volist}
</select>
</td>
</tr>
<tr id="flow_tr">
<td class="layui-td-gray">审核人<font>*</font></td>
<td colspan="7">
<input type="text" name="check_admin_name" value="" autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input picker-one" readonly>
<input type="hidden" name="check_admin_ids" value="">
</td>
</tr>
<tr>
<td class="layui-td-gray">抄送人</td>
<td colspan="7">
<input type="text" name="copy_names" value="" autocomplete="off" placeholder="请选择抄送人" class="layui-input picker-more" readonly>
<input type="hidden" name="copy_uids" value="">
</td>
</tr>
</table>
{/eq}
<div class="pt-2">
{eq name="$is_create_admin" value = "1"}
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交审核</button>
<a class="layui-btn" href="/contract/index/add/id/{$detail.id}">编辑合同</a>
{/eq}
{gt name="$auth" value="0"}
<span class="layui-btn layui-btn-warm" data-event="check" data-status="5">中止合同</span>
<span class="layui-btn layui-btn-danger" data-event="check" data-status="6">作废合同</span>
{/gt}
</div>
<script>
const contract_id = '{$detail.id}';
const contract_status = '{$detail.check_status}';
const moduleInit = ['tool','employeepicker','oaTool'];
function gouguInit() {
var form = layui.form,tool=layui.tool, oaTool = layui.oaTool,element = layui.element,employeepicker = layui.employeepicker,dropdown = layui.dropdown;
element.on('tab(contract)', function(data){
let index = data.index;
if(index == 1){
log(layui);
}
});
function init(form,tool) {
$('body').on('click','[data-event="check"]',function(){
let status = $(this).data('status');
let action = '';
@ -319,7 +97,7 @@ const moduleInit = ['tool','employeepicker','oaTool'];
success:function(e){
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
parent.layui.tool.close(1000);
}
}
})
@ -398,55 +176,6 @@ const moduleInit = ['tool','employeepicker','oaTool'];
}
})
});
//选择合同保管人弹窗
$('body').on('click','#keeper',function () {
var ids=$(this).data('ids')+'',names = $(this).data('names')+'';
employeepicker.init({
ids:ids,
names:names,
type:0,
department_url: "/api/index/get_department_tree",
employee_url: "/api/index/get_employee",
callback:function(ids,names,dids,departments){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
location.reload();
}
}
tool.post("/contract/index/add", {'id':contract_id,'keeper_uid':ids,'scene':'change'}, callback);
}
});
});
//选择共享成员弹窗
$('body').on('click','#shares',function () {
var ids=$(this).data('ids')+'',names = $(this).data('names')+'',share_ids_array=[],share_names_array=[];
if(ids.length>0){
share_ids_array=ids.split(',');
share_names_array=names.split(',');
}
employeepicker.init({
ids:share_ids_array,
names:share_names_array,
type:1,
department_url: "/api/index/get_department_tree",
employee_url: "/api/index/get_employee",
callback:function(ids,names,dids,departments){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
location.reload();
}
}
tool.post("/contract/index/add", {'id':contract_id,'share_ids':ids.join(','),'scene':'change'}, callback);
}
});
});
}
</script>
{/block}
<!-- /脚本 -->

View File

@ -15,11 +15,11 @@
</select>
</div>
<div class="layui-input-inline" id="selectDate">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" autocomplete="off" name="start_date" id="startDate" class="layui-input" placeholder="预计签单时间">
</div>
<div class="layui-input-inline">-</div>
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" autocomplete="off" name="end_date" id="endDate" class="layui-input" placeholder="预计签单时间">
</div>
</div>
@ -27,8 +27,10 @@
<input type="text" name="username" placeholder="请选择归属人" class="layui-input picker-one" autocomplete="off" />
<input type="text" name="uid" style="display:none" />
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -46,6 +48,7 @@
laydate.render({
elem: '#selectDate'
,range: ['#startDate', '#endDate']
,rangeLinked:true
});
layui.pageTable = table.render({

View File

@ -6,7 +6,10 @@
<div class="layui-input-inline" style="width:300px;">
<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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -5,7 +5,6 @@
.gougu-upload-tips{color:#969696}
.layui-form-item{margin-bottom:8px;}
.layui-input-block{min-height:24px;}
.layui-input-inline{padding-bottom:12px;}
</style>
{/block}
<!-- 主体 -->
@ -73,9 +72,9 @@
<input type="hidden" name="tab" value="0" />
<input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>

View File

@ -3,17 +3,9 @@
{block name="body"}
<div class="p-3">
<div class="layui-row gg-form-bar border-x border-t">
<div class="layui-col-xs3">
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">去抢客</button>
</div>
<div class="layui-col-xs9" style="text-align:right">
<form class="layui-form" style="display:none;">
<div class="layui-input-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>
</div>
<div class="layui-input-inline">
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">去抢客</button>
</div>
</div>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -30,7 +30,10 @@
<div class="layui-input-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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -22,7 +22,10 @@
<div class="layui-input-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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -4,11 +4,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -19,7 +19,10 @@
<option value="5">已打款</option>
</select>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -40,7 +43,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -4,15 +4,18 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -28,7 +31,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -4,11 +4,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -22,7 +22,10 @@
<option value="5">已打款</option>
</select>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -43,7 +46,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -7,50 +7,6 @@
.layui-form-item .layui-btn-danger{display:none; margin-top:-8px}
.layui-form-item:hover .layui-btn-danger{display:inline-block;}
.select-1,.select-2{display:none;}
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:18px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->

View File

@ -1,51 +1,4 @@
{extend name="../../base/view/common/base" /}
{block name="style"}
<style>
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:18px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-4">

View File

@ -4,11 +4,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -20,7 +20,10 @@
<option value="2">全部到账</option>
</select>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -42,7 +45,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -4,11 +4,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -20,7 +20,10 @@
<option value="10">已作废</option>
</select>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -41,7 +44,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -4,15 +4,18 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -28,7 +31,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -4,11 +4,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -23,7 +23,10 @@
<option value="10">已作废</option>
</select>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -44,7 +47,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -7,50 +7,6 @@
.layui-form-item .layui-btn-danger{display:none; margin-top:-8px}
.layui-form-item:hover .layui-btn-danger{display:inline-block;}
.select-1,.select-2{display:none;}
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:18px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->

View File

@ -26,7 +26,8 @@ class Rule extends BaseController
->leftJoin('adminModule m', 'a.module = m.name')
->order('a.sort asc,a.id asc')
->select();
return to_assign(0, '', $rule);
$list = generateTree($rule);
return to_assign(0, '', $list);
} else {
return view();
}

View File

@ -6,7 +6,10 @@
<div class="layui-input-inline" style="width:300px;">
<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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -14,7 +14,10 @@
{/volist}
</select>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="log" lay-filter="log"></table>
</div>

View File

@ -154,9 +154,7 @@
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout(function () {
parent.location.reload();
}, 1000);
tool.sideClose(1000);
}
}
tool.post("/home/rule/add", data.field, callback);

View File

@ -2,31 +2,39 @@
<!-- 主体 -->
{block name="body"}
<div class="p-3">
<div class="gg-form-bar border-t border-x">
<div class="gg-form-bar border-t border-x" style="padding-bottom:12px;">
<button class="layui-btn layui-btn-sm add-menu">+ 添加菜单/节点</button>
</div>
<div>
<table class="layui-hide" id="treeTable" lay-filter="treeTable"></table>
</div>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="add">+ 添加权限组</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool', 'treeGrid'];
const moduleInit = ['tool'];
function gouguInit() {
var treeGrid = layui.treeGrid,table = layui.table, tool = layui.tool;
var pageTable = treeGrid.render({
id: 'treeTable'
, elem: '#treeTable'
, idField: 'id'
, url: "/home/rule/index"
var treeTable = layui.treeTable, tool = layui.tool;
layui.pageTable = treeTable.render({
elem: '#treeTable'
,url: "/home/rule/index"
,tree: { // treeTable 特定属性集
customName: {name:'title'},
data: {},
view: {showIcon:false},
async: {},
callback: {}
}
, cellMinWidth: 80
, treeId: 'id'//树形id字段名称
, treeUpId: 'pid'//树形父id字段名称
, treeShowName: 'title'//以树形式显示的字段
, cols: [[
{ field: 'id', width: 80, title: 'ID号', align: 'center' }
, { field: 'sort', width: 60, title: '排序', align: 'center' }
@ -64,7 +72,7 @@
});
//操作按钮
treeGrid.on('tool(treeTable)', function (obj) {
treeTable.on('tool(treeTable)', function (obj) {
console.log(obj);
if (obj.event === 'add') {
tool.side('/home/rule/add?pid=' + obj.data.id);

View File

@ -5,19 +5,22 @@
{include file="index/msgmenu" /}
<div style="margin-left:172px;">
<form class="layui-form gg-form-bar border-t border-x">
<div class="layui-inline" style="width:240px">
<div class="layui-input-inline" style="width:240px">
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
</div>
<div class="layui-inline" id="date">
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" id="date">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="start_time" name="start_time" class="layui-input" placeholder="开始日期">
</div>
~
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" style="width:112px; margin-bottom:0;">
<input type="text" autocomplete="off" id="end_time" name="end_time" class="layui-input" placeholder="结束日期">
</div>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -52,7 +55,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
layui.pageTable = table.render({

View File

@ -5,15 +5,15 @@
{include file="index/msgmenu" /}
<div style="margin-left:172px;">
<form class="layui-form gg-form-bar border-t border-x">
<div class="layui-inline" style="width:240px">
<div class="layui-input-inline" style="width:240px">
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
</div>
<div class="layui-inline" id="date">
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" id="date">
<div class="layui-input-inline" style="width:112px; margin-bottom:0;">
<input type="text" autocomplete="off" id="start_time" name="start_time" class="layui-input" placeholder="接收开始日期">
</div>
~
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="end_time" name="end_time" class="layui-input" placeholder="接收结束日期">
</div>
</div>
@ -31,7 +31,10 @@
<option value="2">个人消息</option>
</select>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -65,7 +68,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
layui.pageTable = table.render({
elem: '#test',

View File

@ -5,19 +5,22 @@
{include file="index/msgmenu" /}
<div style="margin-left:172px;">
<form class="layui-form gg-form-bar border-t border-x">
<div class="layui-inline" style="width:240px">
<div class="layui-input-inline" style="width:240px">
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
</div>
<div class="layui-inline" id="date">
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" id="date">
<div class="layui-input-inline" style="width:112px; margin-bottom:0;">
<input type="text" autocomplete="off" id="start_time" name="start_time" class="layui-input" placeholder="开始日期">
</div>
~
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="end_time" name="end_time" class="layui-input" placeholder="结束日期">
</div>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -54,7 +57,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
layui.pageTable = table.render({

View File

@ -5,19 +5,22 @@
{include file="index/msgmenu" /}
<div style="margin-left:172px;">
<form class="layui-form gg-form-bar border-t border-x">
<div class="layui-inline" style="width:240px">
<div class="layui-input-inline" style="width:240px">
<input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
</div>
<div class="layui-inline" id="date">
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" id="date">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="start_time" name="start_time" class="layui-input" placeholder="发送开始日期">
</div>
~
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="end_time" name="end_time" class="layui-input" placeholder="发送结束日期">
</div>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -53,7 +56,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
layui.pageTable = table.render({

View File

@ -131,7 +131,8 @@ class Index extends BaseController
{
if (request()->isAjax()) {
$cate = Db::name('NoteCate')->order('create_time asc')->select();
return to_assign(0, '', $cate);
$list = generateTree($cate);
return to_assign(0, '', $list);
} else {
return view();
}

View File

@ -90,7 +90,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//编辑器初始化

View File

@ -2,7 +2,7 @@
<!-- 主体 -->
{block name="body"}
<div class="p-3">
<div class="gg-form-bar border-t border-x">
<div class="gg-form-bar border-t border-x" style="padding-bottom:12px;">
<button class="layui-btn layui-btn-sm add-menu">+ 添加分类</button>
</div>
<div>
@ -18,19 +18,20 @@
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool', 'treeGrid'];
const moduleInit = ['tool'];
function gouguInit() {
var treeGrid = layui.treeGrid,table = layui.table, tool = layui.tool;
var pageTable = treeGrid.render({
id:'treeTable'
,elem: '#treeTable'
,idField:'id'
var treeTable = layui.treeTable, tool = layui.tool;
layui.pageTable = treeTable.render({
elem: '#treeTable'
,url: "/note/index/note_cate"
,cellMinWidth: 100
,treeId:'id'//树形id字段名称
,treeUpId:'pid'//树形父id字段名称
,treeShowName:'title'//以树形式显示的字段
,isOpenDefault:true
,tree: { // treeTable 特定属性集
customName: {name:'title'},
data: {},
view: {showIcon:false},
async: {},
callback: {}
}
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field: 'sort', title: '排序', align:'center', style:'cursor: pointer;', width:80}
@ -43,7 +44,6 @@
}
]]
,page:false
//,skin:'line'
});
@ -54,7 +54,7 @@
});
//操作按钮
treeGrid.on('tool(treeTable)', function (obj) {
treeTable.on('tool(treeTable)', function (obj) {
if (obj.event === 'add') {
tool.side('/note/index/note_cate_add?pid='+obj.data.id);
return;

View File

@ -68,9 +68,7 @@
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout(function () {
parent.location.reload();
}, 1000);
tool.sideClose(1000);
}
}
tool.post("/note/index/note_cate_add", data.field, callback);

View File

@ -16,16 +16,18 @@
<input type="text" name="uid" value="" style="display:none" />
</div>
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:120px;">
<div class="layui-input-inline" style="width:120px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="申请时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:120px;">
<div class="layui-input-inline" style="width:120px; margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="申请时间区间" readonly name="end_time">
</div>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -51,7 +53,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//监听搜索提交

View File

@ -25,16 +25,18 @@
<input type="text" name="uid" value="" style="display:none" />
</div>
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:120px;">
<div class="layui-input-inline" style="width:120px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="申请时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:120px;">
<div class="layui-input-inline" style="width:120px; margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="申请时间区间" readonly name="end_time">
</div>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -60,7 +62,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
element.on('tab(tab)', function(data){

View File

@ -17,48 +17,4 @@
.log-item i{font-weight:800; color:#323232}
.log-content strong{margin:0 4px; color:#323232}
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{ margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:20px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>

View File

@ -9,11 +9,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0;">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -24,7 +24,10 @@
<div class="layui-input-inline" style="width:220px;">
<input type="text" name="keywords" placeholder="输入工作内容" class="layui-input"/>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button><button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<div>
<table class="layui-hide" id="test" lay-filter="test"></table>
@ -48,7 +51,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
$('[lay-filter="clear"]').on('click',function(){

View File

@ -9,11 +9,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<div class="layui-input-inline" style="width:110px;margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -24,7 +24,10 @@
<div class="layui-input-inline" style="width:220px;">
<input type="text" name="keywords" placeholder="输入工作内容" class="layui-input"/>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button><button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<div>
<table class="layui-hide" id="test" lay-filter="test"></table>
@ -47,7 +50,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
$('[lay-filter="clear"]').on('click',function(){

View File

@ -11,12 +11,12 @@
<div class="layui-tab-content" style="padding:0">
<div class="layui-tab-item layui-show">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div class="layui-inline" id="date">
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" id="date">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="start_time" name="start_time" class="layui-input" placeholder="接收开始日期">
</div>
~
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" style="width:112px; margin-bottom:0">
<input type="text" autocomplete="off" id="end_time" name="end_time" class="layui-input" placeholder="接收结束日期">
</div>
</div>
@ -28,18 +28,21 @@
<option value="2">月报</option>
</select>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<div class="layui-tab-item">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform2">
<div class="layui-inline" id="date1">
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" id="date1">
<div class="layui-input-inline" style="width:112px; margin-bottom:0"">
<input type="text" autocomplete="off" id="start_time1" name="start_time" class="layui-input" placeholder="接收开始日期">
</div>
~
<div class="layui-input-inline" style="width:112px">
<div class="layui-input-inline" style="width:112px; margin-bottom:0"">
<input type="text" autocomplete="off" id="end_time1" name="end_time" class="layui-input" placeholder="接收结束日期">
</div>
</div>
@ -58,7 +61,10 @@
<option value="2">月报</option>
</select>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform1">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform1"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test1" lay-filter="test1"></table>
</div>
@ -94,7 +100,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'].
rangeLinked:true
});
layui.pageTable = table.render({
@ -179,7 +186,8 @@
//日期范围
laydate.render({
elem: '#date1',
range: ['#start_time1', '#end_time1']
range: ['#start_time1', '#end_time1'],
rangeLinked:true
});
layui.pageTable1 = table.render({

View File

@ -22,8 +22,10 @@
<div class="layui-input-inline" style="width:300px;">
<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>
<button type="reset" class="layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
</div>
<table class="layui-hide" id="document" lay-filter="document"></table>

View File

@ -163,7 +163,8 @@
//日期范围
laydate.render({
elem: '#date',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
//日期
@ -171,6 +172,7 @@
laydate.render({
elem: this,
range: '到',
rangeLinked:true,
trigger: 'click'
});
});

View File

@ -184,6 +184,7 @@
laydate.render({
elem: this,
range: '到',
rangeLinked:true,
trigger: 'click'
});
});

View File

@ -55,8 +55,10 @@
<div class="layui-input-inline" style="width:200px;">
<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>
<button type="reset" class="layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
</div>
<table class="layui-hide" id="task" lay-filter="task"></table>

View File

@ -9,11 +9,11 @@
<div class="p-3">
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:120px;">
<div class="layui-input-inline" style="width:120px; margin-bottom:0">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:120px;">
<div class="layui-input-inline" style="width:120px;margin-bottom:0">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
@ -24,7 +24,10 @@
<div class="layui-input-inline" style="width:240px;">
<input type="text" name="keywords" placeholder="输入工作内容" class="layui-input"/>
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button><button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<div>
<table class="layui-hide" id="test" lay-filter="test"></table>
@ -42,7 +45,8 @@
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
range: ['#start_time', '#end_time'],
rangeLinked:true
});
$('[lay-filter="clear"]').on('click',function(){

View File

@ -20,12 +20,13 @@ class Department extends BaseController
public function index()
{
if (request()->isAjax()) {
$list = Db::name('Department')
$cate = Db::name('Department')
->field('d.*,a.name as leader')
->alias('d')
->join('Admin a', 'a.id = d.leader_id', 'LEFT')
->order('d.sort desc,d.id asc')
->select();
$list = generateTree($cate);
return to_assign(0, '', $list);
} else {
return view();

View File

@ -89,9 +89,7 @@
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout(function () {
parent.location.reload();
}, 1000);
tool.sideClose(1000);
}
}
tool.post("/user/department/add", data.field, callback);

View File

@ -2,7 +2,7 @@
<!-- 主体 -->
{block name="body"}
<div class="p-3">
<div class="gg-form-bar border-t border-x">
<div class="gg-form-bar border-t border-x" style="padding-bottom:12px;">
<button class="layui-btn layui-btn-sm add-menu">+ 添加部门</button>
</div>
<div>
@ -15,20 +15,24 @@
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool', 'treeGrid'];
const moduleInit = ['tool'];
function gouguInit() {
var treeGrid = layui.treeGrid,table = layui.table, tool = layui.tool;
var pageTable = treeGrid.render({
id: 'treeTable'
, elem: '#treeTable'
, idField: 'id'
, url: "/user/department/index"
, cellMinWidth: 80
, treeId: 'id'//树形id字段名称
, treeUpId: 'pid'//树形父id字段名称
, treeShowName: 'title'//以树形式显示的字段
, height: 'full-0'
,isOpenDefault:true
var treeTable = layui.treeTable, tool = layui.tool;
layui.pageTable = treeTable.render({
elem: '#treeTable'
,id: 'treeTable'
,url: "/user/department/index"
,tree: { // treeTable 特定属性集
customName: {name:'title'},
data: {},
view: {showIcon:false},
async: {},
callback: {}
}
,done:function(){
treeTable.expandAll('treeTable', true); // 关闭全部节点
}
, cols: [[
{ field: 'id', width: 100, title: 'ID号', align: 'center' }
, { field: 'pid', title: '上级部门ID',width: 120, align: 'center'}
@ -52,7 +56,7 @@
});
//操作按钮
treeGrid.on('tool(treeTable)', function (obj) {
treeTable.on('tool(treeTable)', function (obj) {
if (obj.event === 'add') {
tool.side("/user/department/add?pid="+obj.data.id);
return;

View File

@ -6,7 +6,10 @@
<div class="layui-input-inline">
<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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -6,7 +6,10 @@
<div class="layui-input-inline">
<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>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>

View File

@ -43,7 +43,10 @@
<div class="layui-input-inline" style="width:240px">
<input type="text" name="keywords" placeholder="输入关键字ID/姓名/手机号码" class="layui-input" autocomplete="off" />
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<div class="layui-input-inline" style="width:150px;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
@ -191,7 +194,7 @@
url: "/user/user/index", //数据接口
page: true, //开启分页
limit: 20,
height: 'full-90',
height: 'full-85',
cols: [
[
{type:'checkbox',fixed:'left'},

View File

@ -13,7 +13,13 @@
.layui-table-box{background-color:#fff;}
.layui-table-page{background-color:#fff;border-bottom:1px solid #f1f1f1;}
.layui-table-tool{box-shadow: 0 0 0 rgb(0 0 0 / 1%);}
.layui-btn-reset {height: 38px;background-color: #fff; line-height: 38px; border: 1px solid transparent;padding: 0 12px; white-space: nowrap; color: #767a82;font-size: 14px;cursor: pointer;vertical-align: middle;}
.layui-input, .layui-select, .layui-textarea {height: 36px;line-height: 1.22;line-height: 36px\9;}
.layui-input, .layui-textarea {padding-left:6px;}
.layui-btn {height: 36px;line-height: 36px; padding:0 16px;}
.layui-btn-sm {height: 30px; line-height: 30px; padding:0 8px;}
.layui-btn-xs {height: 22px; line-height: 22px; padding:0 4px;}
.layui-btn-reset {height: 36px;background-color: #fff; line-height: 36px; border: 1px solid transparent;padding: 0 8px; white-space: nowrap; color: #767a82;font-size: 14px;cursor: pointer;vertical-align: middle;}
.layui-btn-reset:hover{color: #333333;}
.layui-tab-brief>.layui-tab-title .layui-this{color:#187FDD}
@ -68,6 +74,16 @@ a.tab-a:hover,a:hover,a.open-a:hover,a.link-a:hover,a.right-a:hover{color:#187FD
.h3,h3{font-size:18px; font-weight: 600;}
.h4,h4{font-size:16px; font-weight: 600;}
.f12{font-size:12px;}
.f14{font-size:14px;}
.f16{font-size:16px;}
.f18{font-size:18px;}
.f20{font-size:20px;}
.f24{font-size:24px;}
.f28{font-size:28px;}
.f32{font-size:32px;}
.f36{font-size:36px;}
.m-0{margin:0}
.m-1{margin:4px}
.m-2{margin:8px}
@ -254,7 +270,8 @@ div.layui-table-main::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0
}
/*gg-DIY*/
.gg-form-bar{padding:12px; background-color:#fff;}
.gg-form-bar{padding:10px 15px 0; background-color:#fff;}
.gg-form-bar .layui-input-inline{margin-bottom:10px;}
.gg-tab-bar{background-color:#fff;}
.gg-tab{text-align: left!important;}
.gg-tab-title{position: relative;left: 0; height: 40px; white-space: nowrap; font-size: 0;}
@ -287,6 +304,7 @@ div.layui-table-main::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0
.sub-menu li.sub-menu-li.active a{color:#4285F4; background-color:#F2F8FF}
.sub-menu li.sub-menu-li span.num{margin-left:4px}
/*附件*/
.file-card {background: #fff;border: 1px solid #f1f1f1; border-radius: 2px; padding:0; margin:4px 6px;
-webkit-box-align: center;
-ms-flex-align: center;
@ -305,6 +323,49 @@ div.layui-table-main::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0
.file-hasdelete{background:url(../images/delete_icon.png) no-repeat 96% 0; background-size: auto 58px; color:#aaa}
.file-hasdelete .file-icon{color:#aaa;}
.file-hasdelete .file-tool{display:none}
/*审批*/
.check-items{overflow-x: auto; padding: 2px 0;}
.flow-flex-row {box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.flow-flexbox { width: 100%;text-align: left;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
display: -webkit-flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
flex-wrap: wrap;
}
.check-item{width: auto; -ms-flex-negative: 0; flex-shrink: 0; padding:4px 0}
.check-item i{margin-right:3px; color:#646464;}
.check-item span{color:#999;margin:0 3px;}
.check-item .layui-icon {font-size:18px;}
.check-item .layui-icon.layui-icon-right{font-size:12px;}
.layui-icon[data-ok]{color:#34a853}
.layui-icon[data-no]{color:#FF5722;}
.check-item-status{color:#999; font-size:12px; margin-left:3px;}
.flow-tips{padding:6px 10px;}
.flow-tips li{padding:5px 0;}
.flow-tips li i{color:#4285f4;}
.flow-tips li span{color:#999; font-size:12px; margin-left:4px;}
.flow-record{padding:4px 4px 0;}
.flow-record .layui-timeline-item{text-decoration:line-through; color:#acacac; padding-bottom:10px;}
.flow-record .layui-timeline-item.delete-0{text-decoration:none; color:#323232;}
.layui-timeline-content ul{font-size:12px;}
.check-status{color:#999; margin-left:5px;}
.check-remark{padding:6px; margin-top:6px; margin-bottom:10px; border-radius:4px; background-color:#f5f5f5;}
.check-record{line-height:1.5; padding:4px 0}
.flow-this{font-weight:800;}
.flow-this i{color:#4285f4}
.editormd,.editormd-toolbar,.editormd .CodeMirror,.CodeMirror-gutters{border-color:#eeeeee!important;}
.editormd{margin-bottom:0!important;}
@ -314,5 +375,5 @@ div.layui-table-main::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0
.express-box { position: fixed; z-index:9999; height:100%; right: -100%; top:0;background-color: #fff;}
.express-box article{width:100%; height:100%; overflow:auto;}
.express-mask{ display: none; position: fixed; top: 0; left: 0; z-index: 9998; width: 100%; height: 100%; background-color: rgba(0,0,0,.6); }
.express-close{position: absolute;width:24px;height:60px; padding:30px 6px; line-height:30px;text-align:center; left: -38px;right:0; top: 20%;background-color:#FF5722;color:#fff;border-radius:6px 0 0 6px; cursor:pointer; border:2px solid #fff; border-right:none; font-weight:600; font-size:14px;}
.express-close{position: absolute;width:24px;height:60px; padding:20px 6px; line-height:30px;text-align:center; left: -38px;right:0; top: 16%;background-color:#FF5722;color:#fff;border-radius:6px 0 0 6px; cursor:pointer; border:2px solid #fff; border-right:none; font-weight:600; font-size:14px;}
.express-close:hover{opacity:0.9}