mirror of
https://gitee.com/ulthon/ulthon_information.git
synced 2026-03-03 16:24:28 +08:00
初始化项目
This commit is contained in:
100
view/admin/admin/admin_log.html
Normal file
100
view/admin/admin/admin_log.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'log';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>操作日志</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
|
||||
</div>
|
||||
<div style="overflow: auto;">
|
||||
<table class="layui-table">
|
||||
<colgroup>
|
||||
<col width="150">
|
||||
<col width="200">
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>访问地址</th>
|
||||
<th>访问信息</th>
|
||||
<th>操作管理员</th>
|
||||
<!-- <th>操作</th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list' id='vo'}
|
||||
|
||||
<tr data-id="{$vo.id}" data-param="{$vo->getData('param')}">
|
||||
<td>{$vo.id}</td>
|
||||
<td>
|
||||
<p>{$vo.url.name}</p>
|
||||
<p>{$vo.key}</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>访问时间:{$vo.create_time}</p>
|
||||
<p>访问IP:{$vo.ip}</p>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<img src="{$vo.admin.avatar}" alt="" style="width: 50px;">
|
||||
{$vo.admin_id}/{$vo.admin.nickname}
|
||||
</td>
|
||||
<!-- <td>
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td> -->
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) eq 0" }
|
||||
<tr>
|
||||
<td colspan="6">暂无操作记录</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list->render()|raw}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
142
view/admin/admin/create.html
Normal file
142
view/admin/admin/create.html
Normal file
@@ -0,0 +1,142 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>添加管理员</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加管理员</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('Admin/save')}" method="POST" class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">登录账号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" required lay-verify="required"
|
||||
value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">昵称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" required lay-verify="required"
|
||||
value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password"
|
||||
value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">管理组</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="group_id" lay-verify="">
|
||||
<option value="">请选择一个分组</option>
|
||||
{volist name='group_list' id='group'}
|
||||
<option value="{$group.id}">{$group.name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
<div class="layui-form-mid layui-word-aux">
|
||||
不设置分组,帐号拥有所有权限
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">头像</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-admin-avatar">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="layui-circle admin-avatar" style="width: 80px" src=""
|
||||
alt="" srcset="">
|
||||
</div>
|
||||
<input type="hidden" name="avatar" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">创建</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
base: '/static/lib/layui/lib/cropper/'
|
||||
}).use(['layer', 'upload', 'croppers','form'], function () {
|
||||
var upload = layui.upload;
|
||||
var croppers = layui.croppers;
|
||||
|
||||
|
||||
var uploadSiteLogo = croppers.render({
|
||||
elem: '.upload-admin-avatar',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 2,
|
||||
dir: 'admin_avatar'
|
||||
},
|
||||
saveW: 150 //保存宽度
|
||||
,
|
||||
saveH: 150,
|
||||
mark: 1 / 1 //选取比例
|
||||
,
|
||||
area: '900px' //弹窗宽度
|
||||
,
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="avatar"]').val(result.data.save_name);
|
||||
$('.admin-avatar').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
112
view/admin/admin/edit.html
Normal file
112
view/admin/admin/edit.html
Normal file
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Login';
|
||||
var currentLeftNavItem = 'account';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>基本资料</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>资料管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('Admin/update')}" method="POST" class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">登录账号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" value="{$admin.account}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">昵称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" value="{$admin.nickname}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">头像</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-admin-avatar">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="layui-circle admin-avatar" style="width: 80px" src="{$admin.avatar}" alt="" srcset="">
|
||||
</div>
|
||||
<input type="hidden" name="avatar" value="{$admin->getData('avatar')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
base:'/static/lib/layui/lib/cropper/'
|
||||
}).use(['layer','upload','croppers'],function(){
|
||||
var upload = layui.upload;
|
||||
var croppers = layui.croppers;
|
||||
|
||||
|
||||
var uploadSiteLogo = croppers.render({
|
||||
elem:'.upload-admin-avatar',
|
||||
url:'{:url("File/save")}',
|
||||
data:{
|
||||
type:2,
|
||||
dir:'admin_avatar'
|
||||
}
|
||||
,saveW:150 //保存宽度
|
||||
,saveH:150
|
||||
,mark:1/1 //选取比例
|
||||
,area:'900px' //弹窗宽度
|
||||
,accept:'images',
|
||||
done:function(result){
|
||||
if(result.code == 0){
|
||||
layer.msg('上传成功');
|
||||
$('input[name="avatar"]').val(result.data.save_name);
|
||||
$('.admin-avatar').attr('src',result.data.src);
|
||||
}else{
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
146
view/admin/admin/edit_account.html
Normal file
146
view/admin/admin/edit_account.html
Normal file
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite> 编辑管理员</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加管理员</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('Admin/updateAccount')}" method="POST" class="layui-form">
|
||||
<input type="hidden" name="id" value="{$admin.id}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">登录账号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" required lay-verify="required"
|
||||
value="{$admin.account}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">昵称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" required lay-verify="required"
|
||||
value="{$admin.nickname}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" value="" class="layui-input">
|
||||
<div class="layui-form-mid layui-word-aux">
|
||||
留空不修改
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">管理组</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="group_id" lay-verify="">
|
||||
<option value="">请选择一个分组</option>
|
||||
{volist name='group_list' id='group'}
|
||||
{if condition="$group.id eq $admin.group_id" }
|
||||
<option value="{$group.id}" selected="selected">{$group.name}</option>
|
||||
{else /}
|
||||
<option value="{$group.id}">{$group.name}</option>
|
||||
{/if}
|
||||
{/volist}
|
||||
</select>
|
||||
<div class="layui-form-mid layui-word-aux">
|
||||
不设置分组,帐号拥有所有权限
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">头像</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-admin-avatar">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="layui-circle admin-avatar" style="width: 80px" src="{$admin.avatar}"
|
||||
alt="{$admin.avatar}" srcset="">
|
||||
</div>
|
||||
<input type="hidden" name="avatar" value="{$admin->getData('avatar')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">创建</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
base: '/static/lib/layui/lib/cropper/'
|
||||
}).use(['layer', 'upload', 'croppers','form'], function () {
|
||||
var upload = layui.upload;
|
||||
var croppers = layui.croppers;
|
||||
|
||||
|
||||
var uploadSiteLogo = croppers.render({
|
||||
elem: '.upload-admin-avatar',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 2,
|
||||
dir: 'admin_avatar'
|
||||
},
|
||||
saveW: 150 //保存宽度
|
||||
,
|
||||
saveH: 150,
|
||||
mark: 1 / 1 //选取比例
|
||||
,
|
||||
area: '900px' //弹窗宽度
|
||||
,
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="avatar"]').val(result.data.save_name);
|
||||
$('.admin-avatar').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
102
view/admin/admin/index.html
Normal file
102
view/admin/admin/index.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>管理员管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>管理员管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<a class="layui-btn" href="{:url('Admin/create')}">添加管理员</a>
|
||||
</div>
|
||||
<div style="overflow: auto;">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>头像</th>
|
||||
<th>账号</th>
|
||||
<th>昵称</th>
|
||||
<th>分组</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='$list' id='vo'}
|
||||
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td><img src="{$vo.avatar}" alt=""></td>
|
||||
<td>{$vo.account}</td>
|
||||
<td>{$vo.nickname}</td>
|
||||
<td>{$vo.group.name|default="未分组"}</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<a class="layui-btn layui-btn-sm" href="{:url('Admin/editAccount',['id'=>$vo.id])}">编辑</a>
|
||||
<div class="layui-btn layui-btn-sm delete">
|
||||
删除
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) eq 0" }
|
||||
<tr>
|
||||
<td colspan="6">暂无数据</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
|
||||
$('.delete').click(function(){
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?',function(){
|
||||
$.get('{:url("delete")}',{
|
||||
id:$(item).parents('.item').data('id')
|
||||
},function(result){
|
||||
layer.msg('删除成功');
|
||||
|
||||
$(item).parents('.item').remove();
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
73
view/admin/admin/password.html
Normal file
73
view/admin/admin/password.html
Normal file
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Login';
|
||||
var currentLeftNavItem = 'password';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>密码管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>密码管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('Admin/passwordUpdate')}" method="POST" class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">原密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="original_password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">新密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="new_password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">确认密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="check_password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
72
view/admin/admin_group/create.html
Normal file
72
view/admin/admin_group/create.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'group';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>添加分组</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加分组</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('save')}" class="layui-form" method="POST" >
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分组名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分组权限</div>
|
||||
<div class="layui-input-block">
|
||||
{volist name='permission_list' id='vo'}
|
||||
<input type="checkbox" name="permissions[]" title="{$vo.name}({$vo->getData('key')})" value="{$vo.id}" lay-skin="primary" checked>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">创建分组</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</legend>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
<script>
|
||||
layui.use(['form'])
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
78
view/admin/admin_group/edit.html
Normal file
78
view/admin/admin_group/edit.html
Normal file
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'group';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>添加分组</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加分组</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('update',['id'=>$admin_group.id])}" class="layui-form" method="POST" >
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分组名称</div>
|
||||
<div class="layui-input-block">
|
||||
|
||||
<input type="text" name="name" class="layui-input" value="{$admin_group.name}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分组权限</div>
|
||||
<div class="layui-input-block">
|
||||
{volist name='permission_list' id='vo'}
|
||||
{if condition="empty($vo->getData('name'))" }
|
||||
|
||||
<input type="checkbox" name="permissions[]" title="{$vo.name}" value="{$vo.id}" lay-skin="primary" {if condition="in_array($vo.id,$admin_group.permissions)"}checked{/if}>
|
||||
{else /}
|
||||
<input type="checkbox" name="permissions[]" title="{$vo.name}({$vo->getData('key')})" value="{$vo.id}" lay-skin="primary" {if condition="in_array($vo.id,$admin_group.permissions)"}checked{/if}>
|
||||
{/if}
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">保存分组</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</legend>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
<script>
|
||||
layui.use(['form'])
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
89
view/admin/admin_group/index.html
Normal file
89
view/admin/admin_group/index.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'group';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>分组管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<div class="layui-btn-container">
|
||||
<a class="layui-btn" href="{:url('AdminGroup/create')}">添加分组</a>
|
||||
</div>
|
||||
</div>
|
||||
<div style="overflow: auto;">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>分组名称</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list' id='vo'}
|
||||
<tr class="item">
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.name}</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<a href="{:url('edit',['id'=>$vo.id])}" class="layui-btn layui-btn-sm">编辑</a>
|
||||
<div data-href="{:url('delete',['id'=>$vo.id])}" class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) eq 0" }
|
||||
<tr>
|
||||
<td colspan="3">暂无数据</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
$('.delete').click(function(){
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?',function(){
|
||||
$.get($(item).data('href'),function(result){
|
||||
if(result.code == 0){
|
||||
$(item).parents('.item').remove();
|
||||
}
|
||||
layer.msg(result.msg);
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
162
view/admin/admin_permission/index.html
Normal file
162
view/admin/admin_permission/index.html
Normal file
@@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Admin';
|
||||
var currentLeftNavItem = 'premission';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin_manage"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>权限管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
|
||||
<div style="overflow: auto;">
|
||||
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>权限名称</th>
|
||||
<th>权限标识</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list' id='vo'}
|
||||
|
||||
<tr class="item" data-id="{$vo.id}" data-is-log="{$vo->getData('is_log')}">
|
||||
<td>{$vo.id}</td>
|
||||
<td>
|
||||
<span>{$vo.name}</span>
|
||||
<div class="layui-btn layui-btn-sm set-name" data-name="{$vo.name}">设置</div>
|
||||
</td>
|
||||
<td>
|
||||
<span>{$vo.key}</span>
|
||||
<div class="layui-btn layui-btn-sm set-url"
|
||||
data-url="{$vo.key}">设置</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn layui-btn-sm is-log">{$vo.is_log}</div>
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) eq 0" }
|
||||
<tr>
|
||||
<td colspan="3">暂无数据</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list->render()|raw}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
|
||||
layui.use(['layer'], function () {
|
||||
$('.set-name').click(function () {
|
||||
var item = this;
|
||||
layer.prompt({
|
||||
value: $(item).data('name')
|
||||
}, function (value, index) {
|
||||
$.post('{:url("AdminPermission/update")}', {
|
||||
id: $(item).parents('.item').data('id'),
|
||||
name: value
|
||||
}, function (result) {
|
||||
layer.close(index)
|
||||
$(item).siblings('span').text(value)
|
||||
})
|
||||
})
|
||||
})
|
||||
$('.set-url').click(function () {
|
||||
var item = this;
|
||||
layer.prompt({
|
||||
value: $(item).data('url')
|
||||
}, function (value, index) {
|
||||
$.post('{:url("AdminPermission/update")}', {
|
||||
id: $(item).parents('.item').data('id'),
|
||||
url: value
|
||||
}, function (result) {
|
||||
layer.close(index)
|
||||
$(item).siblings('span').text(value)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
$('.delete').click(function () {
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?', function () {
|
||||
$.get('{:url("AdminPermission/delete")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
}, function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('删除成功');
|
||||
$(item).parents('.item').remove();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
$('.is-log').click(function () {
|
||||
var item = this;
|
||||
var isLog = $(item).parents('.item').data('is-log')
|
||||
if (isLog == 0) {
|
||||
isLog = 1
|
||||
} else {
|
||||
isLog = 0
|
||||
}
|
||||
$.post('{:url("AdminPermission/update")}', {
|
||||
id: $(item).parents('.item').data('id'),
|
||||
is_log: isLog
|
||||
}, function () {
|
||||
if (isLog == 1) {
|
||||
$(item).text('记录')
|
||||
} else {
|
||||
$(item).text('不记录')
|
||||
|
||||
}
|
||||
$(item).parents('.item').data('is-log',isLog)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
137
view/admin/category/create.html
Normal file
137
view/admin/category/create.html
Normal file
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>分类管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'category-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>分类管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>新增分类</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form" action="{:url('save')}" method="post">
|
||||
<input type="hidden" name="type" value="{$Request.param.type}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分类名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" value="" required lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">上级分类</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="pid">
|
||||
<option value="0">--无上级分类--</option>
|
||||
{volist name='$list_category' id='category'}
|
||||
|
||||
<option value="{$category.id}">{:str_repeat('|--',$category.level)}{$category.title}</option>
|
||||
{/volist}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">副标题/描述</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">附图</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="title_img">
|
||||
<div>
|
||||
<div class="layui-btn upload-title-img">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img src="" class="title-img" style="display: none;max-width: 200px;max-height: 200px;;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">模板</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="tpl_name">
|
||||
{volist name=':config("view_type.category")' id='view_type'}
|
||||
<option value="{$key}">{$view_type}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="显示" checked>
|
||||
<input type="radio" name="status" value="0" title="不显示">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" submit lay-submit lay-filter="site-info">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
layui.use(['form', 'upload'], function () {
|
||||
var upload = layui.upload;
|
||||
|
||||
upload.render({
|
||||
elem: '.upload-title-img',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="title_img"]').val(result.data.save_name)
|
||||
$('.title-img').attr('src', result.data.src).show();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
145
view/admin/category/edit.html
Normal file
145
view/admin/category/edit.html
Normal file
@@ -0,0 +1,145 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>分类管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'category-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>分类管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>编辑分类</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form" action="{:url('update')}" method="post" lay-filter="*">
|
||||
<input type="hidden" name="id" value="{$category.id}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分类名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" value="{$category.title}" required lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">上级分类</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="pid">
|
||||
<option value="0">--无上级分类--</option>
|
||||
{volist name='$list_category' id='vo'}
|
||||
{if $category.id != $vo.id}
|
||||
<option value="{$vo.id}">{:str_repeat('|--',$vo.level)}{$vo.title}</option>
|
||||
{/if}
|
||||
{/volist}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">副标题/描述</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" class="layui-textarea">{$category->getData('desc')}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">附图</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="title_img" value="{$category->getData('title_img')}">
|
||||
<div>
|
||||
<div class="layui-btn upload-title-img">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img src="{$category.title_img}" class="title-img" style="max-width: 200px;max-height: 200px;;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">模板</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="tpl_name">
|
||||
{volist name=':config("view_type.category")' id='view_type'}
|
||||
<option value="{$key}">{$view_type}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="显示">
|
||||
<input type="radio" name="status" value="0" title="不显示">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" submit lay-submit lay-filter="site-info">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
layui.use(['form','upload'],function(){
|
||||
var form = layui.form;
|
||||
var upload = layui.upload;
|
||||
|
||||
form.val('*',{
|
||||
pid:'{$category.pid}',
|
||||
tpl_name:'{$category->getData("tpl_name")}',
|
||||
status:'{$category->getData("status")}',
|
||||
})
|
||||
|
||||
upload.render({
|
||||
elem: '.upload-title-img',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="title_img"]').val(result.data.save_name)
|
||||
$('.title-img').attr('src', result.data.src).show();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
98
view/admin/category/index.html
Normal file
98
view/admin/category/index.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>分类管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'category-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>分类管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<a href="{:url('create',['type'=>$Request.param.type])}" class="layui-btn">新增</a>
|
||||
</div>
|
||||
<div>
|
||||
<table class="layui-table">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>名称</th>
|
||||
<th>模板</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{volist name="list" id="vo"}
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td> {:str_repeat('|--',$vo.level)} {$vo.title}</td>
|
||||
<td>{$vo.tpl_name}</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<a class="layui-btn layui-btn-sm" href="{:url('index/Category/read',['id'=>$vo.id,'type'=>$Request.param.type])}">查看</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{:url('edit',['id'=>$vo.id])}">编辑</a>
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/volist}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
$('.delete').click(function () {
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?子分类将向上挪动一级', function () {
|
||||
$.get('{:url("delete")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
}, function (result) {
|
||||
layer.msg('删除成功');
|
||||
|
||||
$(item).parents('.item').remove();
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
4
view/admin/common/_footer.html
Normal file
4
view/admin/common/_footer.html
Normal file
@@ -0,0 +1,4 @@
|
||||
<div class="layui-footer">
|
||||
<!-- 底部固定区域 -->
|
||||
© www.ulthon.com - <a href="http://www.ulthon.com">奥宏网络科技有限公司</a>
|
||||
</div>
|
||||
99
view/admin/common/_header.html
Normal file
99
view/admin/common/_header.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<div class="layui-header">
|
||||
<a class="layui-logo" href="{:url('index/Index/index')}" target="_blank">{:get_system_config('site_name')}</a>
|
||||
<!-- 头部区域(可配合layui已有的水平导航) PC端显示 -->
|
||||
<ul class="layui-nav layui-layout-left layui-hide-xs pc-nav-container">
|
||||
<li class="layui-nav-item header-nav-item" data-name="Index" ><a href="{:url('admin/Index/index')}">首页</a></li>
|
||||
<li class="layui-nav-item header-nav-item" data-name="User" ><a href="{:url('admin/User/index')}">用户管理</a></li>
|
||||
{if check_permission('file_list') }
|
||||
<li class="layui-nav-item header-nav-item" data-name="File" ><a href="{:url('admin/File/index')}">文件管理</a></li>
|
||||
{/if}
|
||||
<li class="layui-nav-item header-nav-item" data-name="Post-1" ><a href="{:url('admin/Post/index')}">内容管理</a></li>
|
||||
{if get_system_config('index_tpl_name') == 'easy_blue_' }
|
||||
<li class="layui-nav-item header-nav-item" data-name="Post-2" ><a href="{:url('admin/Post/index',['type'=>2])}">官网文章管理</a></li>
|
||||
{/if}
|
||||
{if get_system_config('index_tpl_name') == 'articles_' }
|
||||
<li class="layui-nav-item header-nav-item" data-name="Post-3" ><a href="{:url('admin/Post/index',['type'=>3])}">头条资讯管理</a></li>
|
||||
{/if}
|
||||
{if get_system_config('index_tpl_name') == 'documents_' }
|
||||
<li class="layui-nav-item header-nav-item" data-name="Post-4" ><a href="{:url('admin/Post/index',['type'=>4])}">文档管理</a></li>
|
||||
{/if}
|
||||
{if get_system_config('index_tpl_name') == 'blog_' }
|
||||
<li class="layui-nav-item header-nav-item" data-name="Post-blog_post" ><a href="{:url('admin/Post/index',['type'=>'blog_post'])}">博客管理</a></li>
|
||||
{/if}
|
||||
<li class="layui-nav-item header-nav-item" data-name="Admin" ><a href="{:url('admin/Admin/index')}">管理员管理</a></li>
|
||||
<li class="layui-nav-item header-nav-item" data-name="System" ><a href="{:url('admin/System/index')}">系统设置</a></li>
|
||||
</ul>
|
||||
<ul class="layui-nav layui-layout-right layui-hide-xs">
|
||||
<li class="layui-nav-item header-nav-item" data-name="Login">
|
||||
<a href="javascript:;">
|
||||
<img src="{$admin.avatar}" class="layui-nav-img">
|
||||
{$admin.nickname}
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="{:url('Admin/edit')}">基本资料</a></dd>
|
||||
<dd><a href="{:url('Admin/password')}">安全设置</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
<li class="layui-nav-item"><a href="{:url('Login/logout')}">退出</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<!-- 手机端显示 -->
|
||||
|
||||
<div class="left-bottom-options layui-show-xs-block layui-hide-md layui-icon layui-icon-right">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-nav layui-layout-right layui-show-xs-block layui-hide-md">
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;" class="mobile-nav-current-title">菜单</a>
|
||||
<dl class="layui-nav-child mobile-nav-container"> <!-- 二级菜单 -->
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item header-nav-item" data-name="Login">
|
||||
<a href="javascript:;">
|
||||
<img src="{$admin.avatar}" class="layui-nav-img">
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="{:url('Admin/edit')}">基本资料</a></dd>
|
||||
<dd><a href="{:url('Admin/password')}">安全设置</a></dd>
|
||||
<dd><a href="{:url('Login/logout')}">退出</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tpl" style="display: none;">
|
||||
<dd class="mobile-nav-item header-nav-item"><a href="{:url('Admin/edit')}">基本资料</a></dd>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
$(function(){
|
||||
$('.pc-nav-container').children().each(function(n,e){
|
||||
var nav = $('.tpl .mobile-nav-item').clone();
|
||||
|
||||
nav.data('name',$(e).data('name'))
|
||||
|
||||
nav.html($(e).html())
|
||||
|
||||
nav.appendTo('.mobile-nav-container')
|
||||
})
|
||||
|
||||
$('.left-bottom-options').click(function(){
|
||||
layer.open({
|
||||
type:1,
|
||||
content:$('.layui-side'),
|
||||
anim:3,
|
||||
offset:'l',
|
||||
area:['140px','100%'],
|
||||
shadeClose:true,
|
||||
title:false,
|
||||
closeBtn:false,
|
||||
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
119
view/admin/common/_require.html
Normal file
119
view/admin/common/_require.html
Normal file
@@ -0,0 +1,119 @@
|
||||
<link rel="stylesheet" href="/static/css/reset.css">
|
||||
<link rel="stylesheet" href="/static/css/pagination.css">
|
||||
<link rel="stylesheet" href="/static/lib/layui/css/layui.css">
|
||||
<link rel="stylesheet" href="/static/css/{$Request.cookie.skin_name|default='skin-1'}.css">
|
||||
<link rel="stylesheet" href="/static/css/common.css">
|
||||
<script src="/static/lib/jquery/jquery-3.4.1.min.js"></script>
|
||||
<script src="/static/lib/jquery/jquery.cookie.js"></script>
|
||||
<script src="/static/lib/layui/layui.js"></script>
|
||||
<script src="/static/js/common.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
//JavaScript代码区域
|
||||
layui.use(['element', 'layer', 'util'], function () {
|
||||
var element = layui.element;
|
||||
var util = layui.util;
|
||||
var defaultCookieSetting = {
|
||||
path: '/',
|
||||
expires: 7,
|
||||
}
|
||||
//执行
|
||||
util.fixbar({
|
||||
bar1: ''
|
||||
, click: function (type) {
|
||||
console.log(type);
|
||||
if (type === 'bar1') {
|
||||
var skinName = $.cookie('skin_name')
|
||||
$('body').removeClass()
|
||||
if (skinName == 'skin-1') {
|
||||
$.cookie('skin_name', 'skin-0', defaultCookieSetting)
|
||||
$('body').addClass('skin-0')
|
||||
} else {
|
||||
$.cookie('skin_name', 'skin-1', defaultCookieSetting)
|
||||
$('body').addClass('skin-1')
|
||||
|
||||
}
|
||||
|
||||
location.reload()
|
||||
}
|
||||
}
|
||||
});
|
||||
$('.layui-side').addClass('layui-hide-xs')
|
||||
|
||||
});
|
||||
|
||||
$(function () {
|
||||
var skinName = $.cookie('skin-name')
|
||||
|
||||
$('body').addClass(skinName)
|
||||
setTimeout(() => {
|
||||
if (typeof currentHeaderNavItem != "undefined") {
|
||||
$('.header-nav-item').each(function (i, e) {
|
||||
if ($(e).data('name') == currentHeaderNavItem) {
|
||||
$(e).addClass('layui-this')
|
||||
}
|
||||
})
|
||||
}
|
||||
if (typeof currentLeftNavItem != "undefined") {
|
||||
$('.left-nav-item').each(function (i, e) {
|
||||
if ($(e).data('name') == currentLeftNavItem) {
|
||||
$(e).addClass('layui-this')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 表格转卡片
|
||||
|
||||
|
||||
|
||||
var tableContainer = $('.layui-table').parent()
|
||||
|
||||
$('.layui-table').addClass('layui-hide-xs')
|
||||
|
||||
var cardList = $('<div class="table-card layui-show-xs-block layui-hide-md"></div>').prependTo(tableContainer)
|
||||
|
||||
$('.layui-table tbody tr').each(function () {
|
||||
var trItem = this;
|
||||
|
||||
var boxItem = $('.tpl .table-card-box').clone()
|
||||
|
||||
$.each($(trItem).data(),function(index,value){
|
||||
|
||||
$(boxItem).data(index,value)
|
||||
})
|
||||
|
||||
$(trItem).find('td').each(function (index, ele) {
|
||||
var itemItem = $('.tpl .table-card-item').clone()
|
||||
$(itemItem).find('.item-title').text($('.layui-table thead th').eq(index).text())
|
||||
|
||||
if($(ele).children().length == 0){
|
||||
$(itemItem).find('.item-value').html($(ele).html())
|
||||
}else{
|
||||
|
||||
$(ele).children().clone().appendTo($(itemItem).find('.item-value'))
|
||||
}
|
||||
|
||||
$(itemItem).appendTo(boxItem)
|
||||
})
|
||||
|
||||
$(boxItem).appendTo(cardList)
|
||||
})
|
||||
|
||||
}, 1);
|
||||
|
||||
|
||||
})
|
||||
</script>
|
||||
{:get_system_config('site_tongji')}
|
||||
|
||||
<div class="tpl" style="display: none;">
|
||||
<div class="table-card-box item">
|
||||
|
||||
</div>
|
||||
<div class="table-card-item">
|
||||
<div class="item-title"></div>
|
||||
<div class="item-value"></div>
|
||||
</div>
|
||||
</div>
|
||||
13
view/admin/common/left_admin.html
Normal file
13
view/admin/common/left_admin.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="account">
|
||||
<a class="" href="{:url('admin/Admin/edit')}">账号信息</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="password">
|
||||
<a class="" href="{:url('Admin/password')}">密码管理</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
19
view/admin/common/left_admin_manage.html
Normal file
19
view/admin/common/left_admin_manage.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="index">
|
||||
<a class="" href="{:url('admin/Admin/index')}">管理员列表</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="group">
|
||||
<a class="" href="{:url('admin/AdminGroup/index')}">分组管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="premission">
|
||||
<a class="" href="{:url('admin/AdminPermission/index')}">权限管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="log">
|
||||
<a class="" href="{:url('Admin/adminLog')}">操作日志</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
15
view/admin/common/left_file.html
Normal file
15
view/admin/common/left_file.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">文件管理</a>
|
||||
<dl class="layui-nav-child">
|
||||
{volist name=":config('upload_type')" id="vo"}
|
||||
<dd class="left-nav-item" data-name="index-{$key}"><a href="{:url('File/index',['type'=>$key])}">{$vo}</a></dd>
|
||||
{/volist}
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
10
view/admin/common/left_index.html
Normal file
10
view/admin/common/left_index.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="index">
|
||||
<a class="" href="{:url('admin/Index/index')}">系统信息</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
16
view/admin/common/left_post.html
Normal file
16
view/admin/common/left_post.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="post-{$Request.param.type|default='1'}">
|
||||
<a class="" href="{:url('Post/index',['type'=>$Request.param.type])}">文章管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="category-{$Request.param.type|default='1'}">
|
||||
<a class="" href="{:url('Category/index',['type'=>$Request.param.type])}">分类管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="tag-{$Request.param.type|default='1'}">
|
||||
<a class="" href="{:url('Tag/index',['type'=>$Request.param.type])}">标签管理</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
133
view/admin/common/left_system.html
Normal file
133
view/admin/common/left_system.html
Normal file
@@ -0,0 +1,133 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="index">
|
||||
<a class="" href="{:url('admin/System/index')}">系统管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="others">
|
||||
<a class="" href="{:url('admin/System/others')}">第三方管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="theme">
|
||||
<a class="" href="{:url('admin/System/theme')}">主题管理</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="agreement">
|
||||
<a class="" href="{:url('admin/System/agreement')}">用户协议管理</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
{if get_system_config('index_tpl_name') == 'easy_blue_' }
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">简约蓝官网</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd class="left-nav-item" data-name="pc-nav-10">
|
||||
<a href="{:url('Nav/index',['type'=>10,'show_img'=>1,'show_target'=>1])}">头部导航</a>
|
||||
</dd>
|
||||
<dd class="left-nav-item" data-name="easy_blue"><a href="{:url('System/easyBlue')}">一般参数</a></dd>
|
||||
|
||||
<dd class="left-nav-item" data-name="pc-nav-6">
|
||||
<a href="{:url('Nav/index',['type'=>6,'show_img'=>1,'show_target'=>1])}">首页布局块1</a>
|
||||
</dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-7">
|
||||
<a href="{:url('Nav/index',['type'=>7,'show_img'=>1,'show_target'=>1])}">首页布局块2</a>
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
{if get_system_config('index_tpl_name') == 'articles_' }
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">资讯头条</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd class="left-nav-item" data-name="pc-nav-10">
|
||||
<a href="{:url('Nav/index',['type'=>11,'show_target'=>1])}">头部导航</a>
|
||||
</dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-6">
|
||||
<a href="{:url('Nav/index',['type'=>8,'show_img'=>0,'show_target'=>1])}">更多导航</a>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
{if get_system_config('index_tpl_name') == 'documents_' }
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">文档中心</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd class="left-nav-item" data-name="pc-nav-document_header_nav">
|
||||
<a href="{:url('Nav/index',['type'=>'document_header_nav','show_target'=>1])}">头部导航</a>
|
||||
</dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-6">
|
||||
<a href="{:url('Nav/index',['type'=>9,'show_img'=>0,'show_target'=>1])}">首页目录</a>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
{if get_system_config('index_tpl_name') == 'blog_' }
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">博客主题</a>
|
||||
<dl class="layui-nav-child">
|
||||
|
||||
<dd class="left-nav-item" data-name="pc-nav-blog_header_nav">
|
||||
<a href="{:url('Nav/index',['type'=>'blog_header_nav','show_target'=>1])}">头部导航</a>
|
||||
</dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-6">
|
||||
<dd class="left-nav-item" data-name="blog"><a href="{:url('System/blog')}">一般参数</a></dd>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">PC管理</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd class="left-nav-item" data-name="pc-nav-1" title="默认皮肤没有使用">
|
||||
<a href="{:url('Nav/index',['type'=>1,'show_target'=>1])}">头部导航 <i class="layui-icon layui-icon-help"></i>
|
||||
</a>
|
||||
</dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-2"><a
|
||||
href="{:url('Nav/index',['type'=>2,'show_target'=>1])}">友情链接管理</a></dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-3"><a
|
||||
href="{:url('Nav/index',['type'=>3,'show_img'=>1,'show_target'=>1])}">PC轮播图管理</a></dd>
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">小程序</a>
|
||||
<dl class="layui-nav-child">
|
||||
|
||||
<dd class="left-nav-item" data-name="pc-nav-4"><a
|
||||
href="{:url('Nav/index',['type'=>4,'show_img'=>1,'show_xcx'=>1])}">首页导航管理</a></dd>
|
||||
<dd class="left-nav-item" data-name="pc-nav-5"><a
|
||||
href="{:url('Nav/index',['type'=>5,'show_img'=>1,'show_xcx'=>1])}">轮播图管理</a></dd>
|
||||
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item">
|
||||
<a class="" href="{:url('admin/System/clearCache')}">清空缓存</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
10
view/admin/common/left_user.html
Normal file
10
view/admin/common/left_user.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed left-nav-item" data-name="index">
|
||||
<a class="" href="{:url('admin/User/index')}">用户列表列表</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
41
view/admin/common/tpl.html
Normal file
41
view/admin/common/tpl.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Index';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>系统信息</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
182
view/admin/file/index.html
Normal file
182
view/admin/file/index.html
Normal file
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>文件管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'File';
|
||||
var currentLeftNavItem = 'index-{$Request.param.type|default=1}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_file"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>文件管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<form action="" lay-filter="filter" class="layui-form layui-form-pane ">
|
||||
<input type="hidden" name="type" value="{$Request.param.type|default=1}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">范围</label>
|
||||
<div class="layui-input-inline" style="width: 200px;">
|
||||
<select name="status" lay-verify="">
|
||||
<option value="">全部</option>
|
||||
<option value="0">未使用(仅供预览)</option>
|
||||
<option value="1">已使用</option>
|
||||
<option value="2">已删除</option>
|
||||
<option value="3">已清除</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div style="overflow: auto;">
|
||||
<table class="layui-table">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>预览</th>
|
||||
<th>文件信息</th>
|
||||
<th style="min-width: 200px;">状态时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{php}$empty = '<tr>
|
||||
<td colspan="10">暂无数据</td>
|
||||
</tr>';{/php}
|
||||
{volist name="list" id="vo" empty="$empty"}
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td>
|
||||
{switch $vo.mime_type}
|
||||
{case image/png|image/gif|image/jpeg }
|
||||
<a href="{$vo.src}" target="_blank"><img
|
||||
onerror="this.src = '/static/images/error.jpg'" src="{$vo.src}"
|
||||
alt=""></a>
|
||||
{/case}
|
||||
{default /}
|
||||
<a href="{$vo.src}" target="_blank" class="layui-btn layui-btn-sm">打开源文件</a>
|
||||
{/switch}
|
||||
</td>
|
||||
<td>
|
||||
<p>保存名称:{$vo->getData('save_name')}</p>
|
||||
<p>文件名:{$vo->getData('file_name')}</p>
|
||||
<p>文件类型: {$vo.mime_type}</p>
|
||||
<p>文件用途: <span style="color: red">{$vo.type}</span> </p>
|
||||
<p>文件大小: {$vo.file_size}</p>
|
||||
<p>文件指纹: {$vo.file_md5}</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="color: red">{$vo.status}</p>
|
||||
<p>上传时间:{$vo.create_time}</p>
|
||||
<p>使用时间:{$vo.used_time}</p>
|
||||
<p>删除时间:{$vo.delete_time}</p>
|
||||
<p>清除时间:{$vo.clear_time}</p>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
{if condition="empty($vo->getData('clear_time'))" }
|
||||
{if condition="!empty($vo->getData('used_time')) &&
|
||||
empty($vo->getData('delete_time'))" }
|
||||
<div class="layui-btn layui-btn-sm force-clear">强制清除文件</div>
|
||||
{else /}
|
||||
<div class="layui-btn layui-btn-sm clear">清除文件</div>
|
||||
{/if}
|
||||
{/if}
|
||||
{if condition="empty($vo->getData('clear_time'))" }
|
||||
<a class="layui-btn layui-btn-sm" href="{$vo.src}" target="_blank">下载</a>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list|raw}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.use(['layer', 'form'], function () {
|
||||
|
||||
var form = layui.form;
|
||||
|
||||
form.val('filter', {
|
||||
status: '{$Request.param.status}'
|
||||
})
|
||||
|
||||
$('.clear').click(function () {
|
||||
var item = this;
|
||||
console.log($(item).parents('.item').data('id'));
|
||||
|
||||
layer.confirm('确定要清除吗?清除后不能恢复', function () {
|
||||
$.get('{:url("File/clear")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
}, function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('删除成功');
|
||||
$(item).parents('td').children().remove()
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
$('.force-clear').click(function () {
|
||||
var item = this;
|
||||
|
||||
layer.confirm('确定要强制清除吗?该文件有可能正在使用', function () {
|
||||
$.get('{:url("File/clear")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
}, function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('删除成功');
|
||||
$(item).parents('td').children().remove()
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
133
view/admin/index/index.html
Normal file
133
view/admin/index/index.html
Normal file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{:get_system_config('site_name')}</title>
|
||||
{include file="common/_require"}
|
||||
<style>
|
||||
.layui-form-pane .layui-form-label{
|
||||
width: 200px;
|
||||
}
|
||||
.layui-form-pane .layui-input-block{
|
||||
margin-left: 200px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Index';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
|
||||
|
||||
{include file="common/_header"}
|
||||
|
||||
|
||||
{include file="common/left_index"}
|
||||
|
||||
<div class="layui-body">
|
||||
<!-- 内容主体区域 -->
|
||||
<div style="padding: 15px;">
|
||||
<div>
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>系统信息</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<form class="layui-form layui-form-pane">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">网站名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:get_system_config('site_name')}" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">系统版本</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="1.0.0" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">ThinkPHP版本</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:app()->version()}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">PHP版本</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{$Think.PHP_VERSION}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">服务器版本
|
||||
<a href="https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=2fzx2rfo" target="_blank"><i class="layui-icon layui-icon-help"></i></a>
|
||||
</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:php_uname('s')}{:php_uname('r')}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">PHP运行方式</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:php_sapi_name()}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">PHP安装路径</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{$Think.DEFAULT_INCLUDE_PATH}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">Zend版本</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:Zend_Version()}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">服务器当前时间</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:date('Y-m-d H:i:s')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">超时时间</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:get_cfg_var('max_execution_time')}秒">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">内存限制</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{:get_cfg_var('memory_limit')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">服务器解释引擎</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" readonly value="{$Request.server.SERVER_SOFTWARE}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
106
view/admin/login/index.html
Normal file
106
view/admin/login/index.html
Normal file
@@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>登陆</title>
|
||||
|
||||
{include file="common/_require"}
|
||||
|
||||
<style>
|
||||
.login{
|
||||
margin-top: 20vh;
|
||||
}
|
||||
|
||||
.title{
|
||||
text-align: center;
|
||||
font-size: 22px;
|
||||
line-height: 2;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<div class="ul-container">
|
||||
<div class="layui-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md4 layui-col-md-offset4">
|
||||
<div class="login">
|
||||
<div class="title">
|
||||
{:get_system_config('site_name')}
|
||||
</div>
|
||||
<div>
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" required lay-verify="required"
|
||||
placeholder="请输入用户名" value="test(直接登陆即可)" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" required lay-verify="required"
|
||||
placeholder="请输入密码" value="test(直接登陆即可)" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">验证码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="captcha" required lay-verify="required"
|
||||
placeholder="请输入验证码" autocomplete="off" value="test(直接登陆即可)" class="layui-input">
|
||||
<img class="captcha" src="/api/Captcha/build" onclick="this.src = '/api/Captcha/build?v='+Math.random()" style="cursor: pointer;width:
|
||||
100%;" alt="">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
|
||||
<button class="layui-btn layui-btn-fluid" lay-submit lay-filter="login">登陆</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
layui.use(['form','layer'],function(){
|
||||
var form = layui.form;
|
||||
|
||||
var loadLayer = null;
|
||||
|
||||
form.on('submit(login)',function(data){
|
||||
loadLayer = layer.load(2);
|
||||
$.post('{:url("admin/Login/auth")}',data.field,function(result){
|
||||
layer.close(loadLayer);
|
||||
if(result.code == 0){
|
||||
layer.msg('登陆成功');
|
||||
setTimeout(() => {
|
||||
location.href = '{:url("admin/Index/index")}'
|
||||
}, 1200);
|
||||
}else{
|
||||
$('.captcha').click()
|
||||
layer.msg(result.msg);
|
||||
}
|
||||
})
|
||||
|
||||
return false;
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
171
view/admin/nav/create.html
Normal file
171
view/admin/nav/create.html
Normal file
@@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>导航</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'pc-nav-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>导航</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('save')}" method="POST" class="layui-form">
|
||||
|
||||
<input type="hidden" name="type" value="{$Request.param.type}">
|
||||
<input type="hidden" name="show_img" value="{$Request.param.show_img|default='0'}">
|
||||
<input type="hidden" name="show_target" value="{$Request.param.show_target|default='0'}">
|
||||
<input type="hidden" name="show_xcx" value="{$Request.param.show_xcx|default='0'}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">标题</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" required lay-verify="required" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">副标题/描述</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $Request.param.show_img == 1 }
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">图片</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="img">
|
||||
<div>
|
||||
<div class="layui-btn upload">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="nav-img" src="" style="display: none;max-width: 200px;max-height: 200px;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $Request.param.show_target == 1 }
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">打开方式</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="target" value="_self" title="当前页面" checked>
|
||||
<input type="radio" name="target" value="_blank" title="新页面">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">链接</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="value" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $Request.param.show_xcx == 1 }
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">小程序打开类型</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="xcx_type" value="1" title="导航页面">
|
||||
<input type="radio" name="xcx_type" value="2" title="普通页面">
|
||||
<input type="radio" name="xcx_type" value="3" title="web-view">
|
||||
<input type="radio" name="xcx_type" value="4" title="其他小程序">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">小程序页面</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="value" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">小程序appid</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="xcx_appid" value="" class="layui-input">
|
||||
<div class="layui-form-mid layui-word-aux">小程序打开类型为其他小程序时生效</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">排序</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="显示" checked>
|
||||
<input type="radio" name="status" value="0" title="不显示">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">创建</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
layui.use(['upload','form'], function () {
|
||||
var upload = layui.upload
|
||||
|
||||
|
||||
var uploadTitleImg = upload.render({
|
||||
elem: '.upload',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 6,
|
||||
dir: 'nav'
|
||||
},
|
||||
accept: 'images',
|
||||
acceptMime: 'image/jpg,image/png,image/gif',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="img"]').val(result.data.save_name);
|
||||
$('.nav-img').attr('src', result.data.src).show();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
178
view/admin/nav/edit.html
Normal file
178
view/admin/nav/edit.html
Normal file
@@ -0,0 +1,178 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>导航</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'pc-nav-{$nav.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>导航</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>编辑</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('update')}" method="POST" class="layui-form" lay-filter="*">
|
||||
<input type="hidden" name="show_img" value="{$Request.param.show_img|default='0'}">
|
||||
<input type="hidden" name="show_target" value="{$Request.param.show_target|default='0'}">
|
||||
<input type="hidden" name="show_xcx" value="{$Request.param.show_xcx|default='0'}">
|
||||
<input type="hidden" name="id" value="{$nav.id}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">标题</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" required lay-verify="required" value="{$nav.title}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">副标题/描述</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" class="layui-textarea">{$nav.desc}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $Request.param.show_img == 1 }
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">图片</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="img" value="{$nav->getData('img')}">
|
||||
<div>
|
||||
<div class="layui-btn upload">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="nav-img" src="{$nav.img}" style="max-width: 200px;max-height: 200px;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $Request.param.show_target == 1 }
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">打开方式</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="target" value="_self" title="当前页面">
|
||||
<input type="radio" name="target" value="_blank" title="新页面">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">链接</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="value" value="{$nav.value}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $Request.param.show_xcx == 1 }
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">小程序打开类型</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="xcx_type" value="1" title="导航页面">
|
||||
<input type="radio" name="xcx_type" value="2" title="普通页面">
|
||||
<input type="radio" name="xcx_type" value="3" title="web-view">
|
||||
<input type="radio" name="xcx_type" value="4" title="其他小程序">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">小程序页面</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="value" value="{$nav.value}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">小程序appid</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="xcx_appid" value="{$nav.xcx_appid}" class="layui-input">
|
||||
<div class="layui-form-mid layui-word-aux">小程序打开类型为其他小程序时生效</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">排序</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" value="{$nav.sort}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="显示">
|
||||
<input type="radio" name="status" value="0" title="不显示">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
layui.use(['upload', 'form'], function () {
|
||||
var upload = layui.upload
|
||||
var form = layui.form
|
||||
|
||||
form.val('*', {
|
||||
target: '{$nav->getData("target")}',
|
||||
xcx_type: '{$nav->getData("xcx_type")}',
|
||||
status: '{$nav->getData("status")}',
|
||||
})
|
||||
|
||||
var uploadTitleImg = upload.render({
|
||||
elem: '.upload',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 6,
|
||||
dir: 'nav'
|
||||
},
|
||||
accept: 'images',
|
||||
acceptMime: 'image/jpg,image/png,image/gif',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="img"]').val(result.data.save_name);
|
||||
$('.nav-img').attr('src', result.data.src).show();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
116
view/admin/nav/index.html
Normal file
116
view/admin/nav/index.html
Normal file
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>导航管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'pc-nav-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>导航</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<a href="{:url('create',['type'=>$type,'show_img'=>$Request.param.show_img,'show_target'=>$Request.param.show_target,'show_xcx'=>$Request.param.show_xcx])}"
|
||||
class="layui-btn">添加</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>名称</th>
|
||||
<th>链接</th>
|
||||
{eq name='$Request.param.show_img' value='1'}
|
||||
<th>图片</th>
|
||||
{/eq}
|
||||
<th>排序</th>
|
||||
<th>状态</th>
|
||||
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list' id='vo'}
|
||||
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.title}</td>
|
||||
|
||||
<td>{$vo.value}</td>
|
||||
{eq name='$Request.param.show_img' value='1'}
|
||||
<th><img src="{$vo.img}" alt=""></th>
|
||||
{/eq}
|
||||
<td>{$vo.sort}</td>
|
||||
<td>{$vo.status_name}</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<a class="layui-btn layui-btn-sm"
|
||||
href="{:url('edit',['id'=>$vo.id,'show_img'=>$Request.param.show_img,'show_target'=>$Request.param.show_target,'show_xcx'=>$Request.param.show_xcx])}">编辑</a>
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) == 0" }
|
||||
<tr>
|
||||
<td colspan="7">暂无数据</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list|raw}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$('.delete').click(function () {
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?', function () {
|
||||
$.get('{:url("delete")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
}, function (result) {
|
||||
layer.msg('删除成功');
|
||||
|
||||
$(item).parents('.item').remove();
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
466
view/admin/post/create.html
Normal file
466
view/admin/post/create.html
Normal file
@@ -0,0 +1,466 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>内容管理</title>
|
||||
{include file="common/_require"}
|
||||
<link rel="stylesheet" href="/static/lib/quill/quill.snow.css">
|
||||
<script src="/static/lib/quill/quill.min.js"></script>
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'post-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
#toolbar select{
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>内容管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<form action="{:url('save')}" method="POST" class="layui-form" lay-filter="*">
|
||||
<input type="hidden" name="type" value="{$Request.param.type}">
|
||||
<div class="layui-col-md9 layui-col-lg10">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加</legend>
|
||||
<div class="layui-field-box">
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">标题</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" required lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">封面</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="poster">
|
||||
<div>
|
||||
<div class="layui-btn upload-poster">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img src="" class="poster" style="display: none;max-width: 200px;max-height: 200px;;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">描述</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">内容</div>
|
||||
<div class="layui-input-block">
|
||||
<div id="toolbar">
|
||||
<!-- Add font size dropdown -->
|
||||
<select class="ql-size" lay-ignore="lay-ignore">
|
||||
<option value="small">小号</option>
|
||||
<!-- Note a missing, thus falsy value, is used to reset to default -->
|
||||
<option selected>正常</option>
|
||||
<option value="large">大号</option>
|
||||
<option value="huge">特大号</option>
|
||||
</select>
|
||||
<!-- Add a bold button -->
|
||||
<button class="ql-bold"></button>
|
||||
<button class="ql-italic"></button>
|
||||
<button class="ql-link"></button>
|
||||
<button class="ql-underline"></button>
|
||||
<button class="ql-strike"></button>
|
||||
<button class="ql-blockquote"></button>
|
||||
<button class="ql-code-block"></button>
|
||||
<button class="ql-header" value="1" title="大标题"></button>
|
||||
<button class="ql-header" value="2" title="小标题"></button>
|
||||
<button class="ql-list" value="ordered" title="有序列表"></button>
|
||||
<button class="ql-list" value="bullet" title="无序列表"></button>
|
||||
|
||||
<!-- Add subscript and superscript buttons -->
|
||||
<button class="ql-script" value="sub"></button>
|
||||
<button class="ql-script" value="super"></button>
|
||||
<button class="ql-indent" value="-1"></button>
|
||||
<button class="ql-indent" value="+1"></button>
|
||||
<button class="ql-direction" value="rtl"></button>
|
||||
<select class="ql-color" lay-ignore="lay-ignore"></select>
|
||||
<select class="ql-background" lay-ignore="lay-ignore"></select>
|
||||
<select class="ql-font" lay-ignore="lay-ignore"></select>
|
||||
<button class="ql-align" value="center"></button>
|
||||
<button class="ql-align" value=""></button>
|
||||
<button class="ql-align" value="right"></button>
|
||||
<button class="ql-align" value="justify"></button>
|
||||
<button class="ql-image" title="选择图片"></button>
|
||||
|
||||
|
||||
</div>
|
||||
<div id="editor" style="height: 600px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit" lay-submit lay-filter="save">保存</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="layui-col-md3 layui-col-lg2">
|
||||
<fieldset class="layui-elem-field sm-form">
|
||||
<legend>信息</legend>
|
||||
<div class="layui-field-box">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="发布">
|
||||
<input type="radio" name="status" value="0" title="不发布" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">发表时间</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="publish_time" class="layui-input publish-time">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分类</div>
|
||||
<div class="layui-input-block ">
|
||||
<div class="category-list"></div>
|
||||
|
||||
|
||||
<div class="quick-input-item sm-quick-input-item">
|
||||
<div class="new-category-option-list">
|
||||
<select name="" lay-verify="">
|
||||
<option value="0">选择父分类</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="">
|
||||
|
||||
<input type="text" name="" placeholder="输入新分类名称" id="new-category" class="layui-input">
|
||||
<div class="layui-btn create-category">新增</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">标签</div>
|
||||
<div class="layui-input-block ">
|
||||
<div class="tag-list">
|
||||
|
||||
</div>
|
||||
<div class="quick-input-item sm-quick-input-item" title="输入新标签,使用空格分隔可一次添加多个标签">
|
||||
<div class="">
|
||||
<input type="text" name="" placeholder="输入新标签" autocomplete="off" id="new-tags" class="layui-input">
|
||||
<div class="layui-btn create-tags">新增</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">是否置顶</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="is_top" value="1" title="置顶">
|
||||
<input type="radio" name="is_top" value="0" title="不置顶" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">跳转链接</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="jump_to_url" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">跳转链接状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="jump_to_url_status" value="0" title="不显示">
|
||||
<input type="radio" name="jump_to_url_status" value="1" title="仅显示" checked>
|
||||
<input type="radio" name="jump_to_url_status" value="2" title="自动跳转">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">排序</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" class="layui-input">
|
||||
<div class="layui-form-mid layui-word-aux">越大越靠前</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">模板</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="tpl_name">
|
||||
{volist name=':config("view_type.post")' id='tpl_name'}
|
||||
<option value="{$key}">{$tpl_name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<div class="tpl" style="display: none;">
|
||||
<input type="checkbox" name="tags[]" class="tag-item" value="0" title="高层" lay-skin="primary">
|
||||
<div class="category-item">
|
||||
<input type="checkbox" name="categorys[]" value="0" title="PHP" lay-skin="primary">
|
||||
</div>
|
||||
<option value="0" class="new-category-item">选择父分类</option>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
layui.use(['form', 'upload','laydate'], function () {
|
||||
var upload = layui.upload;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
|
||||
laydate.render({
|
||||
elem:'.publish-time',
|
||||
type:'datetime'
|
||||
})
|
||||
|
||||
var currentRange = {
|
||||
index: 0,
|
||||
lenght: 0
|
||||
}
|
||||
var quill = new Quill('#editor', {
|
||||
theme: 'snow',
|
||||
modules: {
|
||||
toolbar: '#toolbar',
|
||||
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
quill.on('selection-change', function (range, oldRange, source) {
|
||||
if (range) {
|
||||
if (range.length == 0) {
|
||||
console.log('User cursor is on', range.index);
|
||||
} else {
|
||||
var text = quill.getText(range.index, range.length);
|
||||
console.log('User has highlighted', text);
|
||||
}
|
||||
currentRange = range;
|
||||
console.log(currentRange);
|
||||
|
||||
} else {
|
||||
console.log('Cursor not in the editor');
|
||||
}
|
||||
});
|
||||
|
||||
quill.on('text-change', function (delta, oldDelta, source) {
|
||||
|
||||
if (source == 'api') {
|
||||
console.log("An API call triggered this change.");
|
||||
} else if (source == 'user') {
|
||||
console.log("A user action triggered this change.");
|
||||
}
|
||||
});
|
||||
|
||||
upload.render({
|
||||
elem: '.ql-image',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
quill.insertEmbed(++currentRange.index, 'image', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
upload.render({
|
||||
elem: '.upload-poster',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="poster"]').val(result.data.save_name)
|
||||
$('.poster').attr('src', result.data.src).show();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
var toolbar = quill.getModule('toolbar');
|
||||
toolbar.addHandler('image', function () {
|
||||
return false;
|
||||
});
|
||||
|
||||
form.on('submit(save)', function (data) {
|
||||
|
||||
var formData = data.field;
|
||||
|
||||
formData.content = quill.getContents().ops
|
||||
formData.content_html = $('#editor .ql-editor').html()
|
||||
|
||||
console.log(formData);
|
||||
|
||||
$.post('{:url("save")}',formData,function(result){
|
||||
console.log(result);
|
||||
layer.msg('添加成功')
|
||||
setTimeout(() => {
|
||||
location.href = result.data.jump_to_url
|
||||
}, 1200);
|
||||
})
|
||||
|
||||
return false;
|
||||
|
||||
})
|
||||
var tagPage = 1;
|
||||
initTags()
|
||||
function initTags() {
|
||||
$('.tag-list').children().remove()
|
||||
$('#new-tags').val('')
|
||||
tagPage = 1;
|
||||
loadTags()
|
||||
}
|
||||
function loadTags() {
|
||||
$.get('{:url("Tag/index")}', {
|
||||
page: tagPage,
|
||||
type:'{$Request.param.type}'
|
||||
}, function (result) {
|
||||
tagPage++;
|
||||
result.data.data.forEach(tag => {
|
||||
var domTag = $('.tpl .tag-item').clone();
|
||||
domTag.attr('title', tag.title)
|
||||
domTag.val(tag.id)
|
||||
domTag.appendTo('.tag-list')
|
||||
});
|
||||
form.render('checkbox')
|
||||
if (result.data.current_page < result.data.last_page) {
|
||||
loadTags()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
$('.create-tags').click(function () {
|
||||
var value = $.trim($('#new-tags').val());
|
||||
|
||||
if(value.length == 0){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post('{:url("Tag/save")}', {
|
||||
tags: value
|
||||
}, function (result) {
|
||||
layer.msg('添加成功')
|
||||
initTags()
|
||||
})
|
||||
})
|
||||
|
||||
var categoryPage = 1;
|
||||
initCategory();
|
||||
function initCategory(){
|
||||
$('.category-list').children().remove();
|
||||
$('.new-category-option-list').find('.new-category-item').remove();
|
||||
$('.new-category-option-list').find('.layui-form-select').remove();
|
||||
$('#new-category').val('')
|
||||
categoryPage = 1;
|
||||
loadCategory()
|
||||
}
|
||||
|
||||
function loadCategory() {
|
||||
$.get('{:url("Category/index")}',{
|
||||
type:'{$Request.param.type}'
|
||||
},function(result){
|
||||
console.log(result);
|
||||
result.data.forEach(category => {
|
||||
var prefix = '';
|
||||
for (let prefixLevelIndex = 0; prefixLevelIndex < category.level; prefixLevelIndex++) {
|
||||
prefix += '|--'
|
||||
|
||||
}
|
||||
var domCategory = $('.tpl .category-item').clone();
|
||||
|
||||
domCategory.find('input').val(category.id)
|
||||
domCategory.find('input').attr('title', prefix+category.title)
|
||||
|
||||
domCategory.appendTo('.category-list')
|
||||
|
||||
var domNewCategory = $('.tpl .new-category-item').clone();
|
||||
|
||||
domNewCategory.text(prefix+category.title)
|
||||
domNewCategory.val(category.id)
|
||||
domNewCategory.attr('title',category.title)
|
||||
|
||||
domNewCategory.appendTo('.new-category-option-list select')
|
||||
|
||||
});
|
||||
form.render()
|
||||
})
|
||||
}
|
||||
$('.create-category').click(function(){
|
||||
var pid = $('.new-category-option-list').find('select').val();
|
||||
var title = $('#new-category').val()
|
||||
|
||||
$.post('{:url("Category/save")}',{
|
||||
title:title,
|
||||
pid:pid
|
||||
},function(result){
|
||||
if(result.code == 0){
|
||||
layer.msg('添加成功')
|
||||
initCategory();
|
||||
}else{
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
488
view/admin/post/edit.html
Normal file
488
view/admin/post/edit.html
Normal file
@@ -0,0 +1,488 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>内容管理</title>
|
||||
{include file="common/_require"}
|
||||
<link rel="stylesheet" href="/static/lib/quill/quill.snow.css">
|
||||
<script src="/static/lib/quill/quill.min.js"></script>
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'post-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
|
||||
<style>
|
||||
#toolbar select {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>内容管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<form action="{:url('update')}" method="POST" class="layui-form" lay-filter="*">
|
||||
<input type="hidden" name="id" value="{$post.id}">
|
||||
<div class="layui-col-md9 layui-col-lg10">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>编辑</legend>
|
||||
<div class="layui-field-box">
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">标题</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" required lay-verify="required" value="{$post->title}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">封面</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="poster" value="{$post->getData('poster')}">
|
||||
<div>
|
||||
<div class="layui-btn upload-poster">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img src="{$post->poster}" class="poster" style="max-width: 200px;max-height: 200px;;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">描述</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" class="layui-textarea">{$post->getData('desc')}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">内容</div>
|
||||
<div class="layui-input-block">
|
||||
<div id="toolbar">
|
||||
<!-- Add font size dropdown -->
|
||||
<select class="ql-size" lay-ignore="lay-ignore">
|
||||
<option value="small">小号</option>
|
||||
<!-- Note a missing, thus falsy value, is used to reset to default -->
|
||||
<option selected>正常</option>
|
||||
<option value="large">大号</option>
|
||||
<option value="huge">特大号</option>
|
||||
</select>
|
||||
<!-- Add a bold button -->
|
||||
<button class="ql-bold"></button>
|
||||
<button class="ql-italic"></button>
|
||||
<button class="ql-link"></button>
|
||||
<button class="ql-underline"></button>
|
||||
<button class="ql-strike"></button>
|
||||
<button class="ql-blockquote"></button>
|
||||
<button class="ql-code-block"></button>
|
||||
<button class="ql-header" value="1" title="大标题"></button>
|
||||
<button class="ql-header" value="2" title="小标题"></button>
|
||||
<button class="ql-list" value="ordered" title="有序列表"></button>
|
||||
<button class="ql-list" value="bullet" title="无序列表"></button>
|
||||
|
||||
<!-- Add subscript and superscript buttons -->
|
||||
<button class="ql-script" value="sub"></button>
|
||||
<button class="ql-script" value="super"></button>
|
||||
<button class="ql-indent" value="-1"></button>
|
||||
<button class="ql-indent" value="+1"></button>
|
||||
<button class="ql-direction" value="rtl"></button>
|
||||
<select class="ql-color" lay-ignore="lay-ignore"></select>
|
||||
<select class="ql-background" lay-ignore="lay-ignore"></select>
|
||||
<select class="ql-font" lay-ignore="lay-ignore"></select>
|
||||
<button class="ql-align" value="center"></button>
|
||||
<button class="ql-align" value=""></button>
|
||||
<button class="ql-align" value="right"></button>
|
||||
<button class="ql-align" value="justify"></button>
|
||||
<button class="ql-image" title="选择图片"></button>
|
||||
|
||||
|
||||
</div>
|
||||
<div id="editor" style="height: 600px;">
|
||||
|
||||
</div>
|
||||
<div id="content" style="display: none;">{:json_encode($post->content)}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit" lay-submit lay-filter="save">保存</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="layui-col-md3 layui-col-lg2">
|
||||
<fieldset class="layui-elem-field sm-form">
|
||||
<legend>信息</legend>
|
||||
<div class="layui-field-box">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="发布">
|
||||
<input type="radio" name="status" value="0" title="不发布">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">发表时间</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="publish_time" value="{$post->publish_time}"
|
||||
class="layui-input publish-time">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">分类</div>
|
||||
<div class="layui-input-block ">
|
||||
<div class="category-list"></div>
|
||||
|
||||
|
||||
<div class="quick-input-item sm-quick-input-item">
|
||||
<div class="new-category-option-list">
|
||||
<select name="" lay-verify="">
|
||||
<option value="0">选择父分类</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="">
|
||||
|
||||
<input type="text" name="" placeholder="输入新分类名称" id="new-category" class="layui-input">
|
||||
<div class="layui-btn create-category">新增</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">标签</div>
|
||||
<div class="layui-input-block ">
|
||||
<div class="tag-list">
|
||||
|
||||
</div>
|
||||
<div class="quick-input-item sm-quick-input-item" title="输入新标签,使用空格分隔可一次添加多个标签">
|
||||
<div class="">
|
||||
<input type="text" name="" placeholder="输入新标签" autocomplete="off" id="new-tags"
|
||||
class="layui-input">
|
||||
<div class="layui-btn create-tags">新增</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">是否置顶</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="is_top" value="1" title="置顶">
|
||||
<input type="radio" name="is_top" value="0" title="不置顶">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">跳转链接</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="jump_to_url" value="{$post->getData('jump_to_url')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">跳转链接状态</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="jump_to_url_status" value="0" title="不显示">
|
||||
<input type="radio" name="jump_to_url_status" value="1" title="仅显示">
|
||||
<input type="radio" name="jump_to_url_status" value="2" title="自动跳转">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">排序</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" value="{$post->getData('sort')}" class="layui-input">
|
||||
<div class="layui-form-mid layui-word-aux">越大越靠前</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">模板</div>
|
||||
<div class="layui-input-block">
|
||||
<select name="tpl_name">
|
||||
{volist name=':config("view_type.post")' id='tpl_name'}
|
||||
<option value="{$key}">{$tpl_name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<div class="tpl" style="display: none;">
|
||||
<input type="checkbox" name="tags[]" class="tag-item" value="0" title="高层" lay-skin="primary">
|
||||
<div class="category-item">
|
||||
<input type="checkbox" name="categorys[]" value="0" title="PHP" lay-skin="primary">
|
||||
</div>
|
||||
<option value="0" class="new-category-item">选择父分类</option>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var categoryList = JSON.parse('{:json_encode($post->categorys->column("category_id"))}')
|
||||
var tagList = JSON.parse('{:json_encode($post->tags->column("tag_id"))}')
|
||||
layui.use(['form', 'upload', 'laydate'], function () {
|
||||
var upload = layui.upload;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
|
||||
laydate.render({
|
||||
elem: '.publish-time',
|
||||
type: 'datetime'
|
||||
})
|
||||
|
||||
var currentRange = {
|
||||
index: 0,
|
||||
lenght: 0
|
||||
}
|
||||
var quill = new Quill('#editor', {
|
||||
theme: 'snow',
|
||||
modules: {
|
||||
toolbar: '#toolbar',
|
||||
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
quill.setContents(JSON.parse($('#content').text()))
|
||||
|
||||
|
||||
quill.on('selection-change', function (range, oldRange, source) {
|
||||
if (range) {
|
||||
if (range.length == 0) {
|
||||
console.log('User cursor is on', range.index);
|
||||
} else {
|
||||
var text = quill.getText(range.index, range.length);
|
||||
console.log('User has highlighted', text);
|
||||
}
|
||||
currentRange = range;
|
||||
console.log(currentRange);
|
||||
|
||||
} else {
|
||||
console.log('Cursor not in the editor');
|
||||
}
|
||||
});
|
||||
|
||||
quill.on('text-change', function (delta, oldDelta, source) {
|
||||
|
||||
if (source == 'api') {
|
||||
console.log("An API call triggered this change.");
|
||||
} else if (source == 'user') {
|
||||
console.log("A user action triggered this change.");
|
||||
}
|
||||
});
|
||||
|
||||
upload.render({
|
||||
elem: '.ql-image',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
quill.insertEmbed(++currentRange.index, 'image', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
upload.render({
|
||||
elem: '.upload-poster',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="poster"]').val(result.data.save_name)
|
||||
$('.poster').attr('src', result.data.src).show();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
var toolbar = quill.getModule('toolbar');
|
||||
toolbar.addHandler('image', function () {
|
||||
return false;
|
||||
});
|
||||
|
||||
form.val('*', {
|
||||
status: '{$post->getData("status")}',
|
||||
is_top: '{$post->getData("is_top")}',
|
||||
jump_to_url_status: '{$post->getData("jump_to_url_status")}',
|
||||
tpl_name: '{$post->getData("tpl_name")}',
|
||||
})
|
||||
|
||||
form.on('submit(save)', function (data) {
|
||||
|
||||
var formData = data.field;
|
||||
|
||||
formData.content = quill.getContents().ops
|
||||
formData.content_html = $('#editor .ql-editor').html()
|
||||
|
||||
console.log(formData);
|
||||
|
||||
$.post('{:url("update")}', formData, function (result) {
|
||||
|
||||
layer.msg('保存成功')
|
||||
setTimeout(() => {
|
||||
location.href = result.data.jump_to_url
|
||||
}, 1200);
|
||||
})
|
||||
|
||||
return false;
|
||||
|
||||
})
|
||||
var tagPage = 1;
|
||||
initTags()
|
||||
function initTags() {
|
||||
$('.tag-list').children().remove()
|
||||
$('#new-tags').val('')
|
||||
tagPage = 1;
|
||||
loadTags()
|
||||
}
|
||||
function loadTags() {
|
||||
$.get('{:url("Tag/index")}', {
|
||||
page: tagPage,
|
||||
type:'{$Request.param.type}'
|
||||
}, function (result) {
|
||||
tagPage++;
|
||||
result.data.data.forEach(tag => {
|
||||
var domTag = $('.tpl .tag-item').clone();
|
||||
domTag.attr('title', tag.title)
|
||||
domTag.val(tag.id)
|
||||
if (tagList.indexOf(tag.id) >= 0) {
|
||||
domTag.attr('checked', 'checked')
|
||||
}
|
||||
domTag.appendTo('.tag-list')
|
||||
});
|
||||
form.render('checkbox')
|
||||
if (result.data.current_page < result.data.last_page) {
|
||||
loadTags()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
$('.create-tags').click(function () {
|
||||
var value = $.trim($('#new-tags').val());
|
||||
|
||||
if (value.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post('{:url("Tag/save")}', {
|
||||
tags: value
|
||||
}, function (result) {
|
||||
layer.msg('添加成功')
|
||||
initTags()
|
||||
})
|
||||
})
|
||||
|
||||
var categoryPage = 1;
|
||||
initCategory();
|
||||
function initCategory() {
|
||||
$('.category-list').children().remove();
|
||||
$('.new-category-option-list').find('.new-category-item').remove();
|
||||
$('.new-category-option-list').find('.layui-form-select').remove();
|
||||
$('#new-category').val('')
|
||||
categoryPage = 1;
|
||||
loadCategory()
|
||||
}
|
||||
|
||||
function loadCategory() {
|
||||
$.get('{:url("Category/index")}', {
|
||||
type:'{$Request.param.type}'
|
||||
},function (result) {
|
||||
|
||||
result.data.forEach(category => {
|
||||
var prefix = '';
|
||||
for (let prefixLevelIndex = 0; prefixLevelIndex < category.level; prefixLevelIndex++) {
|
||||
prefix += '|--'
|
||||
|
||||
}
|
||||
var domCategory = $('.tpl .category-item').clone();
|
||||
|
||||
domCategory.find('input').val(category.id)
|
||||
domCategory.find('input').attr('title', prefix + category.title)
|
||||
|
||||
if (categoryList.indexOf(category.id) >= 0) {
|
||||
|
||||
domCategory.find('input').attr('checked', 'checked')
|
||||
|
||||
|
||||
}
|
||||
domCategory.appendTo('.category-list')
|
||||
|
||||
var domNewCategory = $('.tpl .new-category-item').clone();
|
||||
|
||||
domNewCategory.text(prefix + category.title)
|
||||
domNewCategory.val(category.id)
|
||||
domNewCategory.attr('title', category.title)
|
||||
|
||||
domNewCategory.appendTo('.new-category-option-list select')
|
||||
|
||||
});
|
||||
form.render()
|
||||
})
|
||||
}
|
||||
$('.create-category').click(function () {
|
||||
var pid = $('.new-category-option-list').find('select').val();
|
||||
var title = $('#new-category').val()
|
||||
|
||||
$.post('{:url("Category/save")}', {
|
||||
title: title,
|
||||
pid: pid
|
||||
}, function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('添加成功')
|
||||
initCategory();
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
116
view/admin/post/index.html
Normal file
116
view/admin/post/index.html
Normal file
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>内容管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'post-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>系统信息</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<a href="{:url('create',['type'=>$Request.param.type])}" class="layui-btn">添加</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th >名称</th>
|
||||
<th>封面</th>
|
||||
<th >简介</th>
|
||||
<th>排序</th>
|
||||
<th>状态</th>
|
||||
<th>分类</th>
|
||||
<th>标签</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list' id='vo'}
|
||||
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td style="max-width: 160px;">{$vo.title}</td>
|
||||
|
||||
<td><img src="{$vo.poster}" alt=""></td>
|
||||
<td style="max-width: 200px;">{$vo.desc_short}</td>
|
||||
<td>{$vo.sort}</td>
|
||||
<td>{$vo.status_name}</td>
|
||||
<td>
|
||||
{volist name='vo.categorys_list' id='category'}
|
||||
<p>{:str_repeat('|--',$category.level)}{$category.title}</p>
|
||||
{/volist}
|
||||
</td>
|
||||
<td>
|
||||
{volist name='vo.tags_list' id='tag'}
|
||||
<span class="layui-badge layui-bg-blue">{$tag.title}</span>
|
||||
{/volist}
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<a class="layui-btn layui-btn-sm" href="{:url('index/Post/read',['id'=>$vo.id])}">查看</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{:url('edit',['id'=>$vo.id,'type'=>$Request.param.type])}">编辑</a>
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) == 0" }
|
||||
<tr>
|
||||
<td colspan="7">暂无数据</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list|raw}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$('.delete').click(function () {
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?', function () {
|
||||
$.get('{:url("delete")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
}, function (result) {
|
||||
layer.msg('删除成功');
|
||||
|
||||
$(item).parents('.item').remove();
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
186
view/admin/system/agreement.html
Normal file
186
view/admin/system/agreement.html
Normal file
@@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>系统管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'agreement';
|
||||
</script>
|
||||
<style>
|
||||
.layui-form-pane .layui-form-label {
|
||||
width: 160px
|
||||
}
|
||||
|
||||
.layui-form-pane .layui-input-block {
|
||||
margin-left: 160px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>用户协议管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-md12">
|
||||
|
||||
<div id="toolbar">
|
||||
<!-- Add font size dropdown -->
|
||||
<select class="ql-size" lay-ignore>
|
||||
<option value="small">小号</option>
|
||||
<!-- Note a missing, thus falsy value, is used to reset to default -->
|
||||
<option selected>正常</option>
|
||||
<option value="large">大号</option>
|
||||
<option value="huge">特大号</option>
|
||||
</select>
|
||||
<!-- Add a bold button -->
|
||||
<button class="ql-bold"></button>
|
||||
<button class="ql-italic"></button>
|
||||
<button class="ql-link"></button>
|
||||
<button class="ql-underline"></button>
|
||||
<button class="ql-strike"></button>
|
||||
<button class="ql-blockquote"></button>
|
||||
<button class="ql-code-block"></button>
|
||||
<button class="ql-header" value="1" title="大标题"></button>
|
||||
<button class="ql-header" value="2" title="小标题"></button>
|
||||
<button class="ql-list" value="ordered" title="有序列表"></button>
|
||||
<button class="ql-list" value="bullet" title="无序列表"></button>
|
||||
|
||||
<!-- Add subscript and superscript buttons -->
|
||||
<button class="ql-script" value="sub"></button>
|
||||
<button class="ql-script" value="super"></button>
|
||||
<button class="ql-indent" value="-1"></button>
|
||||
<button class="ql-indent" value="+1"></button>
|
||||
<button class="ql-direction" value="rtl"></button>
|
||||
<select class="ql-color" lay-ignore></select>
|
||||
<select class="ql-background" lay-ignore></select>
|
||||
<select class="ql-font" lay-ignore></select>
|
||||
<button class="ql-align" value="center"></button>
|
||||
<button class="ql-align" value=""></button>
|
||||
<button class="ql-align" value="right"></button>
|
||||
<button class="ql-align" value="justify"></button>
|
||||
<button class="ql-image" title="选择图片"></button>
|
||||
|
||||
|
||||
</div>
|
||||
<div id="editor">
|
||||
|
||||
</div>
|
||||
<div class="content" style="display: none;">
|
||||
{:json_encode(unserialize(get_system_config('user_agreement')))}
|
||||
</div>
|
||||
<div>
|
||||
<div class="layui-btn layui-btn-fluid save-article">保存</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
<link rel="stylesheet" href="/static/lib/quill/quill.snow.css">
|
||||
<script src="/static/lib/quill/quill.min.js"></script>
|
||||
<script>
|
||||
layui.use(['layer', 'upload'], function () {
|
||||
var upload = layui.upload;
|
||||
var layer = layui.layer;
|
||||
var currentRange = {
|
||||
index: 0,
|
||||
lenght: 0
|
||||
}
|
||||
var quill = new Quill('#editor', {
|
||||
theme: 'snow',
|
||||
modules: {
|
||||
toolbar: '#toolbar',
|
||||
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
quill.setContents(JSON.parse($('.content').text()))
|
||||
|
||||
quill.on('selection-change', function (range, oldRange, source) {
|
||||
if (range) {
|
||||
if (range.length == 0) {
|
||||
console.log('User cursor is on', range.index);
|
||||
} else {
|
||||
var text = quill.getText(range.index, range.length);
|
||||
console.log('User has highlighted', text);
|
||||
}
|
||||
currentRange = range;
|
||||
console.log(currentRange);
|
||||
|
||||
} else {
|
||||
console.log('Cursor not in the editor');
|
||||
}
|
||||
});
|
||||
|
||||
quill.on('text-change', function (delta, oldDelta, source) {
|
||||
|
||||
if (source == 'api') {
|
||||
console.log("An API call triggered this change.");
|
||||
} else if (source == 'user') {
|
||||
console.log("A user action triggered this change.");
|
||||
}
|
||||
});
|
||||
|
||||
var uploadSiteLogo = upload.render({
|
||||
elem: '.ql-image',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 4,
|
||||
dir: 'article'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
quill.insertEmbed(++currentRange.index, 'image', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
var toolbar = quill.getModule('toolbar');
|
||||
toolbar.addHandler('image', function () {
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-article').click(function () {
|
||||
var content = quill.getContents()
|
||||
console.log(content);
|
||||
$.post("{:url('admin/System/update')}",{
|
||||
user_agreement:content.ops
|
||||
},function(){
|
||||
layer.msg('保存完成')
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
122
view/admin/system/blog.html
Normal file
122
view/admin/system/blog.html
Normal file
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>系统管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'blog';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>系统设置</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>系统管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form" action="{:url('admin/System/update')}" method="post"
|
||||
lay-filter="*">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">欢迎语</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="blog_welcome_tips" value="{:get_system_config('blog_welcome_tips')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页背景大图</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-index-bg">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="index-bg" style="max-width: 200px;"
|
||||
src="{:get_source_link(get_system_config('blog_index_bg_img'))}" alt="">
|
||||
</div>
|
||||
<input type="hidden" name="blog_index_bg_img" value="{:get_system_config('blog_index_bg_img')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页背景大标题(支持换行)</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="blog_index_bg_title" class="layui-textarea">{:get_system_config('blog_index_bg_title')}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页背景小标题(支持换行)</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="blog_index_bg_title_plus" class="layui-textarea">{:get_system_config('blog_index_bg_title_plus')}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" submit lay-submit lay-filter="site-info">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.use(['layer', 'form','upload'], function () {
|
||||
|
||||
var form = layui.form;
|
||||
var upload = layui.upload;
|
||||
|
||||
form.val('*', {
|
||||
index_tpl_name: '{:get_system_config("index_tpl_name")}'
|
||||
})
|
||||
|
||||
var uploadSiteLogo = upload.render({
|
||||
elem: '.upload-index-bg',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 1,
|
||||
dir: 'site_logo'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="blog_index_bg_img"]').val(result.data.save_name);
|
||||
$('.index-bg').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>`
|
||||
</body>
|
||||
|
||||
</html>
|
||||
99
view/admin/system/easy_blue.html
Normal file
99
view/admin/system/easy_blue.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>系统管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'easy_blue';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>系统设置</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>系统管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form" action="{:url('admin/System/update')}" method="post"
|
||||
lay-filter="*">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页块1标题前半部分</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="easy_index_block_1_title_1" value="{:get_system_config('easy_index_block_1_title_1')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页块1标题后半部分</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="easy_index_block_1_title_2" value="{:get_system_config('easy_index_block_1_title_2')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页块2标题前半部分</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="easy_index_block_2_title_1" value="{:get_system_config('easy_index_block_2_title_1')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页块2标题后半部分</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="easy_index_block_2_title_2" value="{:get_system_config('easy_index_block_2_title_2')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">首页底部查看链接跳转</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="easy_index_bottom_jump_url" value="{:get_system_config('easy_index_bottom_jump_url')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" submit lay-submit lay-filter="site-info">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.use(['layer', 'form'], function () {
|
||||
|
||||
var form = layui.form;
|
||||
|
||||
form.val('*', {
|
||||
index_tpl_name: '{:get_system_config("index_tpl_name")}'
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>`
|
||||
</body>
|
||||
|
||||
</html>
|
||||
244
view/admin/system/index.html
Normal file
244
view/admin/system/index.html
Normal file
@@ -0,0 +1,244 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>系统管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>系统设置</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>系统管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form" action="{:url('admin/System/update')}" method="post">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">网站名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_name" value="{:get_system_config('site_name')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">网站描述</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_desc" value="{:get_system_config('site_desc')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">网站logo</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-site-logo">上传logo</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="site-logo" style="max-width: 200px;"
|
||||
src="{:get_source_link(get_system_config('site_logo'))}" alt="">
|
||||
</div>
|
||||
<input type="hidden" name="site_logo" value="{:get_system_config('site_logo')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">备案号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_beian" value="{:get_system_config('site_beian')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">公安备案号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_safe_beian" value="{:get_system_config('site_safe_beian')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">公安备案跳转链接</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_safe_beian_url" value="{:get_system_config('site_safe_beian_url')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">版权描述</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_copyright" value="{:get_system_config('site_copyright')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">联系电话</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_contact_phone" value="{:get_system_config('site_contact_phone')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">工作时间</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="site_worktime" value="{:get_system_config('site_worktime')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">联系邮箱</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="stie_contact_email" value="{:get_system_config('stie_contact_email')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">二维码</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-site-qrcode">上传二维码</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="site-qrcode" style="max-width: 200px;"
|
||||
src="{:get_source_link(get_system_config('site_qrcode'))}" alt="">
|
||||
</div>
|
||||
<input type="hidden" name="site_qrcode" value="{:get_system_config('site_qrcode')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">站点fovicon</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-site-fovicon">上传fovicon</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="site-fovicon" style="max-width: 200px;"
|
||||
src="{:get_source_link(get_system_config('site_favicon'))}" alt="">
|
||||
</div>
|
||||
<input type="hidden" name="site_favicon" value="{:get_system_config('site_favicon')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">主域名</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="main_domain" value="{:get_system_config('main_domain')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">资源域名</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="resource_domain" value="{:get_system_config('resource_domain')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<div class="layui-form-label">统计代码</div>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="site_tongji" class="layui-textarea">{:get_system_config('site_tongji')}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" submit lay-submit lay-filter="site-info">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.use(['layer', 'upload'], function () {
|
||||
var upload = layui.upload;
|
||||
|
||||
|
||||
var uploadSiteLogo = upload.render({
|
||||
elem: '.upload-site-logo',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 1,
|
||||
dir: 'site_logo'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="site_logo"]').val(result.data.save_name);
|
||||
$('.site-logo').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
var uploadSiteLogo = upload.render({
|
||||
elem: '.upload-site-qrcode',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 1,
|
||||
dir: 'site_logo'
|
||||
},
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="site_qrcode"]').val(result.data.save_name);
|
||||
$('.site-qrcode').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
var uploadSiteLogo = upload.render({
|
||||
elem: '.upload-site-fovicon',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 1,
|
||||
dir: 'site_logo'
|
||||
},
|
||||
accept: 'images',
|
||||
acceptMime:'image/x-icon',
|
||||
exts:'ico',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="site_favicon"]').val(result.data.save_name);
|
||||
$('.site-fovicon').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>`
|
||||
</body>
|
||||
|
||||
</html>
|
||||
257
view/admin/system/others.html
Normal file
257
view/admin/system/others.html
Normal file
@@ -0,0 +1,257 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>系统管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'others';
|
||||
</script>
|
||||
<style>
|
||||
.layui-form-pane .layui-form-label{
|
||||
width:160px
|
||||
}
|
||||
.layui-form-pane .layui-input-block{
|
||||
margin-left: 160px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>第三方管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field " >
|
||||
<legend>阿里OSS存储设置 <a href="https://www.aliyun.com/product/oss?source=5176.11533457&userCode=2fzx2rfo&type=copy" target="_blank"><i class="layui-icon layui-icon-help"></i></a></legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form layui-form-pane" action="{:url('admin/System/update')}" method="post">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AccessKey</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qiniu_access_key" value="{:get_system_config('qiniu_access_key')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">SecretKey</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qiniu_secret_key" value="{:get_system_config('qiniu_secret_key')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">空间名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qiniu_bucket" value="{:get_system_config('qiniu_bucket')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">空间域名</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qiniu_domain" value="{:get_system_config('qiniu_domain')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field " >
|
||||
<legend>阿里短信配置 <a href="https://www.aliyun.com/acts/alicomcloud/new-discount?userCode=2fzx2rfo" target="_blank"><i class="layui-icon layui-icon-help"></i></a></legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form layui-form-pane" action="{:url('admin/System/update')}" method="post">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AccessKey</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ali_msn_access_key" value="{:get_system_config('ali_msn_access_key')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AccessSecret</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ali_msn_access_secret" value="{:get_system_config('ali_msn_access_secret')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">模板ID</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ali_msg_tpl_id" value="{:get_system_config('ali_msg_tpl_id')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field " >
|
||||
<legend>微信第三方平台配置</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form layui-form-pane" action="{:url('admin/System/update')}" method="post">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AppID</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_open_app_id" value="{:get_system_config('wx_open_app_id')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AppSecret</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_open_app_secret" value="{:get_system_config('wx_open_app_secret')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">消息校验Token</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_open_app_token" value="{:get_system_config('wx_open_app_token')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">消息加解密Key</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_open_app_aes_key" value="{:get_system_config('wx_open_app_aes_key')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field " >
|
||||
<legend>微信公众号配置</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form layui-form-pane">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">公众号名称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_app_name" class="layui-input" value="{:get_system_config('wx_app_name')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AppID</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_app_id" class="layui-input" value="{:get_system_config('wx_app_id')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">AppSecret</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_app_secret" class="layui-input" value="{:get_system_config('wx_app_secret')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">Token</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_app_token" class="layui-input" value="{:get_system_config('wx_app_token')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-btn-container">
|
||||
|
||||
<div class="layui-btn layui-btn-fluid" >保存</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field " >
|
||||
<legend>微信支付配置<i class="layui-icon layui-icon-help" onmouseover="layer.tips('支付的公众号必须是上面授权的公众号',this)"></i></legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form layui-form-pane" action="{:url('admin/System/update')}" method="post">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">商户ID</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_mch_id" value="{:get_system_config('wx_mch_id')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">商户秘钥</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_mch_secert" value="{:get_system_config('wx_mch_secert')}" class="layui-input" id="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">商户key</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_mch_pen_key" readonly value="{:get_system_config('wx_mch_pen_key')}" class="layui-input" id="">
|
||||
<div class="layui-btn">上传</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">商户cert</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="wx_mch_pem_cert" readonly value="{:get_system_config('wx_mch_pem_cert')}" class="layui-input" id="">
|
||||
<div class="layui-btn">上传</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid">授权</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
<script>
|
||||
layui.use(['layer'],function(){
|
||||
var layer = layui.layer;
|
||||
|
||||
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
88
view/admin/system/theme.html
Normal file
88
view/admin/system/theme.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>系统管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'System';
|
||||
var currentLeftNavItem = 'theme';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_system"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>系统设置</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>系统管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form class="layui-form layui-form-pane" action="{:url('admin/System/update')}" method="post" lay-filter="*">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">选择主题</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<input type="radio" name="index_tpl_name" value="" title="无-''">
|
||||
</div>
|
||||
<div>
|
||||
<input type="radio" name="index_tpl_name" value="easy_blue_" title="官网主题简约蓝-'easy_blue_'">
|
||||
</div>
|
||||
<div>
|
||||
<input type="radio" name="index_tpl_name" value="articles_" title="资讯头条主题-'articles_'">
|
||||
</div>
|
||||
<div>
|
||||
<input type="radio" name="index_tpl_name" value="documents_" title="文档主题-'documents_'">
|
||||
</div>
|
||||
<div>
|
||||
<input type="radio" name="index_tpl_name" value="blog_" title="博客主题-'blog_'">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" submit lay-submit lay-filter="site-info">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.use(['layer','form'],function(){
|
||||
|
||||
var form = layui.form;
|
||||
|
||||
form.val('*',{
|
||||
index_tpl_name:'{:get_system_config("index_tpl_name")}'
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>`
|
||||
</body>
|
||||
|
||||
</html>
|
||||
133
view/admin/tag/index.html
Normal file
133
view/admin/tag/index.html
Normal file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>标签管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'Post-{$Request.param.type|default="1"}';
|
||||
var currentLeftNavItem = 'tag-{$Request.param.type|default="1"}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_post"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>标签管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div>
|
||||
<div class="layui-btn create">新增</div>
|
||||
</div>
|
||||
<div>
|
||||
<table class="layui-table">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>名称</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{volist name="list" id="vo"}
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td> {:str_repeat('|--',$vo.level)} <span class="tag-name">{$vo.title}</span></td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn layui-btn-sm edit" data-href="{:url('update',['id'=>$vo.id,'type'=>$Request.param.type])}">编辑</div>
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/volist}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list|raw}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
$('.delete').click(function () {
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?', function () {
|
||||
$.get('{:url("delete")}', {
|
||||
id: $(item).parents('.item').data('id')
|
||||
|
||||
}, function (result) {
|
||||
layer.msg('删除成功');
|
||||
|
||||
$(item).parents('.item').remove();
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
$('.create').click(function () {
|
||||
layer.prompt({
|
||||
title: '请输入标签,空格分隔可添加多个'
|
||||
}, function (value, index) {
|
||||
$.post('{:url("save")}', {
|
||||
tags: value,
|
||||
type:'{$Request.param.type}'
|
||||
}, function (result) {
|
||||
layer.msg('添加成功')
|
||||
setTimeout(() => {
|
||||
location.reload()
|
||||
}, 1200);
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
$('.edit').click(function(){
|
||||
var self = this;
|
||||
|
||||
layer.prompt({
|
||||
title:'请输入标签,空格无效',
|
||||
value:$(self).parents('.item').find('.tag-name').text()
|
||||
},function(value,index){
|
||||
$.post($(self).data('href'),{
|
||||
title:value
|
||||
},function(result){
|
||||
layer.msg('修改成功');
|
||||
|
||||
$(self).parents('.item').find('.tag-name').text(value)
|
||||
layer.close(index)
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
129
view/admin/user/create.html
Normal file
129
view/admin/user/create.html
Normal file
@@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'User';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_user"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>添加用户</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加管理员</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('User/save')}" method="POST" class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">登录账号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" required lay-verify="required"
|
||||
value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">昵称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" required lay-verify="required"
|
||||
value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password"
|
||||
value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">头像</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-admin-avatar">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="layui-circle admin-avatar" style="width: 80px" src=""
|
||||
alt="" srcset="">
|
||||
</div>
|
||||
<input type="hidden" name="avatar" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">创建</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
base: '/static/lib/layui/lib/cropper/'
|
||||
}).use(['layer', 'upload', 'croppers','form'], function () {
|
||||
var upload = layui.upload;
|
||||
var croppers = layui.croppers;
|
||||
|
||||
|
||||
var uploadSiteLogo = croppers.render({
|
||||
elem: '.upload-admin-avatar',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 3,
|
||||
dir: 'user_avatar'
|
||||
},
|
||||
saveW: 150 //保存宽度
|
||||
,
|
||||
saveH: 150,
|
||||
mark: 1 / 1 //选取比例
|
||||
,
|
||||
area: '900px' //弹窗宽度
|
||||
,
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="avatar"]').val(result.data.save_name);
|
||||
$('.admin-avatar').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
130
view/admin/user/edit.html
Normal file
130
view/admin/user/edit.html
Normal file
@@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'User';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_user"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>添加用户</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>添加管理员</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('User/update')}" method="POST" class="layui-form">
|
||||
<input type="hidden" name="id" value="{$user.id}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">登录账号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" required lay-verify="required"
|
||||
value="{$user.account}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">昵称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" required lay-verify="required"
|
||||
value="{$user.nickname}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">头像</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-admin-avatar">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="layui-circle admin-avatar" style="width: 80px"
|
||||
src="{$user.avatar}" alt="{$user.avatar}" srcset="">
|
||||
</div>
|
||||
<input type="hidden" name="avatar" value="{$user->getData('avatar')}"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">修改</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
base: '/static/lib/layui/lib/cropper/'
|
||||
}).use(['layer', 'upload', 'croppers', 'form'], function () {
|
||||
var upload = layui.upload;
|
||||
var croppers = layui.croppers;
|
||||
|
||||
|
||||
var uploadSiteLogo = croppers.render({
|
||||
elem: '.upload-admin-avatar',
|
||||
url: '{:url("File/save")}',
|
||||
data: {
|
||||
type: 3,
|
||||
dir: 'user_avatar'
|
||||
},
|
||||
saveW: 200, //保存宽度
|
||||
|
||||
saveH: 200,
|
||||
mark: 1 / 1, //选取比例
|
||||
|
||||
area: true, //弹窗宽度
|
||||
|
||||
accept: 'images',
|
||||
done: function (result) {
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
$('input[name="avatar"]').val(result.data.save_name);
|
||||
$('.admin-avatar').attr('src', result.data.src);
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
106
view/admin/user/index.html
Normal file
106
view/admin/user/index.html
Normal file
@@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>应用管理</title>
|
||||
{include file="common/_require"}
|
||||
|
||||
<script>
|
||||
var currentHeaderNavItem = 'User';
|
||||
var currentLeftNavItem = 'index';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_user"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>用户列表</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div >
|
||||
<a class="layui-btn" href="{:url('create')}"> 添加用户</a>
|
||||
</div>
|
||||
<div style="overflow: auto;">
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>帐号</th>
|
||||
<th>头像</th>
|
||||
<th>手机号</th>
|
||||
<th>昵称</th>
|
||||
<th>注册时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list' id='vo'}
|
||||
|
||||
<tr class="item" data-id="{$vo.id}">
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.account}</td>
|
||||
<td><img src="{$vo.avatar}" alt=""></td>
|
||||
<td>{$vo.phone}</td>
|
||||
<td>{$vo.nickname}</td>
|
||||
<td>{$vo.create_time}</td>
|
||||
<td>
|
||||
<div class="layui-btn-container">
|
||||
<a class="layui-btn layui-btn-sm" href="{:url('admin/User/edit',['id'=>$vo.id])}">编辑</a>
|
||||
<div class="layui-btn layui-btn-sm delete">删除</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/volist}
|
||||
{if condition="count($list) == 0" }
|
||||
<tr>
|
||||
<td colspan="7">暂无数据</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
{$list|raw}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
|
||||
$('.delete').click(function(){
|
||||
var item = this;
|
||||
layer.confirm('确定要删除吗?',function(){
|
||||
$.get('{:url("delete")}',{
|
||||
id:$(item).parents('.item').data('id')
|
||||
},function(result){
|
||||
layer.msg('删除成功');
|
||||
|
||||
$(item).parents('.item').remove();
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user