优化后端样式

This commit is contained in:
李志强 2025-05-16 16:53:17 +08:00
parent 92b79bf0b1
commit 11552223e3
15 changed files with 822 additions and 539 deletions

View File

@ -1,18 +1,20 @@
{include file="public/header" /}
<div class="config-container">
<!-- 页面头部 -->
<div class="page-header">
<div class="header-title">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-app"></i>
<span>文章分类管理</span>
</div>
<div class="header-actions">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>新增分类
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button type="button" class="layui-btn layui-btn-normal" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加分类
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
@ -121,6 +123,17 @@
/* background: #f2f2f2; */
}
.layui-col-md7 .layui-btn-primary {
border-color: #d2d2d2;
background: 0 0;
color: #5f5f5f
}
.layui-col-md7 .layui-btn-primary:hover {
background-color: #1e9fff;
color: #efefef
}
/* 页面头部样式 */
.page-header {
display: flex;

View File

@ -1,10 +1,12 @@
{include file="public/header" /}
<div class="config-container">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-list"></i>
<span>文章列表</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;">
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div class="shaixuan">
<label>筛选:</label>
<div class="layui-form" style="display: flex; gap: 10px;">
@ -199,13 +201,4 @@
function refresh() {
layui.table.reload('articleTable');
}
</script>
<style>
.maintitle {
font-size: 20px;
font-weight: bold;
color: #333;
margin-bottom: 10px;
}
</style>
</script>

View File

@ -1,18 +1,22 @@
{include file="public/header" /}
<div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;">
<div>
<span>菜单管理</span>
</div>
<div>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-picture"></i>
<span>菜单管理</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加菜单
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<div id="test7" class="demo-tree"></div>
<table class="layui-table">

View File

@ -1,210 +1,249 @@
{include file="public/header" /}
<!-- 页面样式 -->
<style>
.layui-table-cell { height: 40px; line-height: 40px; }
.layui-table-cell img { height: 36px; width: auto; max-width: 80px; }
.banner-preview-img { max-width: 80px; cursor: pointer; }
.banner-form { padding: 20px; }
.banner-upload-preview { max-width: 100%; margin-top: 10px; }
</style>
<!-- 主体内容 -->
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-icon layui-icon-picture"></span> Banner管理
<button class="layui-btn layui-btn-sm layui-btn-normal" style="float:right;" id="addBanner">
<i class="layui-icon">&#xe654;</i> 添加Banner
</button>
<div class="config-container">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-picture"></i>
<span>Banner管理</span>
</div>
<div class="layui-card-body">
<table id="bannerTable" lay-filter="bannerTable"></table>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" id="addBanner">
<i class="layui-icon layui-icon-add-1"></i>添加Banner
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
</div>
<!-- Banner表单 -->
<div id="bannerForm" style="display: none;">
<form class="layui-form banner-form">
<input type="hidden" name="id">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题" class="layui-input">
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<table id="bannerTable" lay-filter="bannerTable"></table>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">图片</label>
<div class="layui-input-block">
<div class="layui-upload-drag" id="uploadImage">
<i class="layui-icon layui-icon-upload"></i>
<p>点击上传或拖拽图片至此处</p>
<div id="uploadPreview" style="display: none;">
<img src="" alt="Banner图片" class="banner-upload-preview">
</div>
</div>
<!-- Banner表单 -->
<div id="bannerForm" style="display: none;">
<form class="layui-form banner-form">
<input type="hidden" name="id">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题"
class="layui-input">
</div>
<input type="hidden" name="image" id="imageInput">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">链接</label>
<div class="layui-input-block">
<input type="text" name="url" placeholder="请输入链接地址" class="layui-input">
<div class="layui-form-item">
<label class="layui-form-label">图片</label>
<div class="layui-input-block">
<div class="layui-upload-drag" id="uploadImage">
<i class="layui-icon layui-icon-upload"></i>
<p>点击上传或拖拽图片至此处</p>
<div id="uploadPreview" style="display: none;">
<img src="" alt="Banner图片" class="banner-upload-preview">
</div>
</div>
<input type="hidden" name="image" id="imageInput">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" name="sort" value="0" class="layui-input" placeholder="数字越大越靠前">
<div class="layui-form-item">
<label class="layui-form-label">链接</label>
<div class="layui-input-block">
<input type="text" name="url" placeholder="请输入链接地址" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<input type="radio" name="status" value="1" title="启用" checked>
<input type="radio" name="status" value="0" title="禁用">
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" name="sort" value="0" class="layui-input" placeholder="数字越大越靠前">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="saveBanner">保存</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<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>
</form>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="saveBanner">保存</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
</div>
<script>
layui.use(['table', 'form', 'upload', 'layer'], function(){
var table = layui.table,
form = layui.form,
upload = layui.upload,
layer = layui.layer;
layui.use(['table', 'form', 'upload', 'layer'], function () {
var table = layui.table,
form = layui.form,
upload = layui.upload,
layer = layui.layer;
// 表格列配置
var tableColumns = [[
{field: 'id', title: 'ID', width: 80, align: 'center', fixed: 'left'},
{field: 'title', title: '标题', align: 'center'},
{field: 'image', title: '图片', width: 280, align: 'center', templet: function(d){
return '<img src="'+ d.image +'" class="banner-preview-img" onclick="previewImage(\''+ d.image +'\')">';
}},
{field: 'url', title: '链接', align: 'center', width: 300},
{field: 'sort', title: '排序', align: 'center', width: 100, sort: true},
{field: 'create_time', title: '创建时间', align: 'center', width: 180, sort: true},
{field: 'update_time', title: '更新时间', align: 'center', width: 180, sort: true},
{title: '操作', align: 'center', width: 120, fixed: 'right', templet: function(d){
return '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>' +
'<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
}}
]];
// 初始化表格
table.render({
elem: '#bannerTable',
url: '/admin/yunzeradmin/bannerlist',
method: 'get',
page: true,
cols: tableColumns,
limit: 10,
limits: [10, 20, 30, 50],
text: { none: '暂无相关数据' }
});
// 上传组件配置
var uploadConfig = {
elem: '#uploadImage',
url: '/admin/upload/image',
accept: 'images',
acceptMime: 'image/*',
done: function(res){
if(res.code === 0){
$('#uploadPreview').show().find('img').attr('src', res.data.url);
$('#imageInput').val(res.data.url);
layer.msg('上传成功');
}else{
layer.msg('上传失败');
// 表格列配置
var tableColumns = [[
{ field: 'id', title: 'ID', width: 80, align: 'center' },
{ field: 'title', title: '标题', align: 'center' },
{
field: 'image', title: '图片', width: 180, align: 'center', templet: function (d) {
return '<img src="' + d.image + '" class="banner-preview-img" onclick="previewImage(\'' + d.image + '\')">';
}
},
{ field: 'url', title: '链接', align: 'center', width: 300 },
{ field: 'sort', title: '排序', align: 'center', width: 100, sort: true },
{ field: 'create_time', title: '创建时间', align: 'center', width: 180, sort: true },
{
title: '操作', align: 'center', width: 240, templet: function (d) {
return '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>' +
'<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
}
}
]];
// 初始化表格
table.render({
elem: '#bannerTable',
url: '/admin/yunzeradmin/bannerlist',
method: 'get',
page: true,
cols: tableColumns,
limit: 10,
limits: [10, 20, 30, 50],
text: { none: '暂无相关数据' }
});
// 上传组件配置
var uploadConfig = {
elem: '#uploadImage',
url: '/admin/upload/image',
accept: 'images',
acceptMime: 'image/*',
done: function (res) {
if (res.code === 0) {
$('#uploadPreview').show().find('img').attr('src', res.data.url);
$('#imageInput').val(res.data.url);
layer.msg('上传成功');
} else {
layer.msg('上传失败');
}
}
};
// 初始化上传组件
upload.render(uploadConfig);
// 监听表格工具条事件
table.on('tool(bannerTable)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
showBannerForm(data);
} else if (obj.event === 'del') {
layer.confirm('确定删除此Banner', function (index) {
deleteBanner(data.id, obj);
layer.close(index);
});
}
});
// 添加Banner按钮点击事件
$('#addBanner').on('click', function () {
showBannerForm();
});
// 监听表单提交
form.on('submit(saveBanner)', function (data) {
var url = data.field.id ? '/admin/yunzeradmin/banneredit' : '/admin/yunzeradmin/banneradd';
$.post(url, data.field, function (res) {
if (res.code === 0) {
layer.closeAll('page');
table.reload('bannerTable');
layer.msg('保存成功');
} else {
layer.msg(res.msg);
}
});
return false;
});
// 显示Banner表单
function showBannerForm(data) {
layer.open({
type: 1,
title: data ? '编辑Banner' : '添加Banner',
content: $('#bannerForm'),
area: ['800px', '600px'],
success: function (layero) {
form.render();
if (data) {
form.val('bannerForm', data);
if (data.image) {
$('#uploadPreview').show().find('img').attr('src', data.image);
$('#imageInput').val(data.image);
}
}
}
});
}
};
// 初始化上传组件
upload.render(uploadConfig);
// 监听表格工具条事件
table.on('tool(bannerTable)', function(obj){
var data = obj.data;
if(obj.event === 'edit'){
showBannerForm(data);
} else if(obj.event === 'del'){
layer.confirm('确定删除此Banner', function(index){
deleteBanner(data.id, obj);
layer.close(index);
// 删除Banner
function deleteBanner(id, obj) {
$.post('/admin/yunzeradmin/bannerdel', { id: id }, function (res) {
if (res.code === 0) {
obj.del();
layer.msg('删除成功');
} else {
layer.msg(res.msg);
}
});
}
});
// 添加Banner按钮点击事件
$('#addBanner').on('click', function(){
showBannerForm();
});
// 监听表单提交
form.on('submit(saveBanner)', function(data){
var url = data.field.id ? '/admin/yunzeradmin/banneredit' : '/admin/yunzeradmin/banneradd';
$.post(url, data.field, function(res){
if(res.code === 0){
layer.closeAll('page');
table.reload('bannerTable');
layer.msg('保存成功');
}else{
layer.msg(res.msg);
}
});
return false;
});
// 显示Banner表单
function showBannerForm(data) {
layer.open({
type: 1,
title: data ? '编辑Banner' : '添加Banner',
content: $('#bannerForm'),
area: ['500px', '600px'],
success: function(layero){
form.render();
if(data){
form.val('bannerForm', data);
if(data.image){
$('#uploadPreview').show().find('img').attr('src', data.image);
$('#imageInput').val(data.image);
}
}
// 预览图片
function previewImage(url) {
layer.photos({
photos: {
"data": [{
"src": url
}]
}
});
}
</script>
// 删除Banner
function deleteBanner(id, obj) {
$.post('/admin/yunzeradmin/bannerdel', {id: id}, function(res){
if(res.code === 0){
obj.del();
layer.msg('删除成功');
}else{
layer.msg(res.msg);
}
});
<!-- 页面样式 -->
<style>
.layui-table-cell {
height: 40px;
line-height: 40px;
}
});
// 预览图片
function previewImage(url) {
layer.photos({
photos: {
"data": [{
"src": url
}]
}
});
}
</script>
.layui-table-cell img {
height: 36px;
width: auto;
max-width: 80px;
}
.banner-preview-img {
max-width: 80px;
cursor: pointer;
}
.banner-form {
padding: 20px;
}
.banner-upload-preview {
max-width: 100%;
margin-top: 10px;
}
</style>

View File

@ -1,19 +1,22 @@
{include file="public/header" /}
<div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;">
<div>
<span>角色列表</span>
</div>
<div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-group"></i>
<span>角色列表</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<table class="layui-table">
<thead>

View File

@ -1,18 +1,22 @@
{include file="public/header" /}
<div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;">
<div>
<span>用户列表</span>
</div>
<div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-user"></i>
<span>用户列表</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<table class="layui-table">
<thead>

View File

@ -17,6 +17,7 @@
color: #2c3e50;
font-weight: 500;
margin-right: 20px;
line-height: 50px;
}
.config-header a {
text-decoration: none;
@ -39,3 +40,11 @@
align-items: center;
}
.maintitle {
font-size: 20px;
font-weight: bold;
color: #333;
margin-bottom: 20px;
border-bottom: 1px solid #eee;
width: 100%;
}

View File

@ -1108,7 +1108,7 @@ a cite {
height: 100%;
line-height: 60px;
text-align: center;
color: #1b6dfd;
color: #16baaa;
font-size: 16px;
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 15%)
}
@ -2298,7 +2298,7 @@ a cite {
}
.layui-bg-green {
background-color: #1b6dfd !important;
background-color: #16baaa !important;
color: #fff !important
}
@ -2371,8 +2371,8 @@ a cite {
.layui-border-green {
border-width: 1px;
border-style: solid;
border-color: #1b6dfd !important;
color: #1b6dfd !important
border-color: #16baaa !important;
color: #16baaa !important
}
.layui-border-cyan {
@ -2578,7 +2578,7 @@ hr.layui-border-red {
}
.layui-font-green {
color: #1b6dfd !important
color: #16baaa !important
}
.layui-font-cyan {
@ -2608,7 +2608,7 @@ hr.layui-border-red {
line-height: 38px;
border: 1px solid transparent;
padding: 0 18px;
background-color: #1b6dfd;
background-color: #16baaa;
color: #fff;
white-space: nowrap;
text-align: center;
@ -2668,7 +2668,7 @@ hr.layui-border-red {
}
.layui-btn-primary:hover {
border-color: #1b6dfd;
border-color: #16baaa;
color: #333
}
@ -2742,7 +2742,7 @@ hr.layui-border-red {
.layui-btn-group .layui-btn-primary:hover {
border-color: #d2d2d2;
color: #1b6dfd
color: #16baaa
}
.layui-btn-group .layui-btn:first-child {
@ -3747,7 +3747,7 @@ hr.layui-border-red {
}
.layui-laypage a:hover {
color: #1b6dfd
color: #16baaa
}
.layui-laypage em {
@ -3775,7 +3775,7 @@ hr.layui-border-red {
padding: 1px;
width: 100%;
height: 100%;
background-color: #1b6dfd
background-color: #16baaa
}
.layui-laypage-em {
@ -3841,7 +3841,7 @@ hr.layui-border-red {
.layui-laypage input:focus,
.layui-laypage select:focus {
border-color: #1b6dfd !important
border-color: #16baaa !important
}
.layui-laypage button {
@ -4708,11 +4708,11 @@ body .layui-table-tips .layui-layer-content {
.layui-upload-drag .layui-icon {
font-size: 50px;
color: #1b6dfd
color: #16baaa
}
.layui-upload-drag[lay-over] {
border-color: #1b6dfd
border-color: #16baaa
}
.layui-upload-form {
@ -5063,7 +5063,7 @@ body .layui-table-tips .layui-layer-content {
.layui-tabs-header .layui-this,
.layui-tabs-header li:hover {
color: #1b6dfd
color: #16baaa
}
.layui-tabs-header .layui-this:after {
@ -5074,7 +5074,7 @@ body .layui-table-tips .layui-layer-content {
z-index: 1;
width: 100%;
height: 100%;
border-bottom: 3px solid #1b6dfd;
border-bottom: 3px solid #16baaa;
box-sizing: border-box;
pointer-events: none
}
@ -5367,7 +5367,7 @@ body .layui-table-tips .layui-layer-content {
.layui-nav-tree .layui-this,
.layui-nav-tree .layui-this>a,
.layui-nav-tree .layui-this>a:hover {
background-color: #1b6dfd;
background-color: #16baaa;
color: #fff
}
@ -5382,7 +5382,7 @@ body .layui-table-tips .layui-layer-content {
}
.layui-nav-tree .layui-nav-bar {
background-color: #1b6dfd
background-color: #16baaa
}
.layui-nav-tree .layui-nav-child {
@ -5638,7 +5638,7 @@ body .layui-table-tips .layui-layer-content {
}
.layui-tab-brief>.layui-tab-title .layui-this {
color: #1b6dfd
color: #16baaa
}
.layui-tab-brief>.layui-tab-more li.layui-this:after,
@ -5968,34 +5968,28 @@ body .layui-table-tips .layui-layer-content {
}
.layui-carousel>[carousel-item]>.layui-this {
-webkit-transform: translateX(0);
transform: translateX(0)
left: 0
}
.layui-carousel>[carousel-item]>.layui-carousel-prev {
-webkit-transform: translateX(-100%);
transform: translateX(-100%)
left: -100%
}
.layui-carousel>[carousel-item]>.layui-carousel-next {
-webkit-transform: translateX(100%);
transform: translateX(100%)
left: 100%
}
.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,
.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right {
-webkit-transform: translateX(0);
transform: translateX(0)
left: 0
}
.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left {
-webkit-transform: translateX(-100%);
transform: translateX(-100%)
left: -100%
}
.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right {
-webkit-transform: translateX(100%);
transform: translateX(100%)
left: 100%
}
.layui-carousel[lay-anim=updown] .layui-carousel-arrow {
@ -6031,34 +6025,28 @@ body .layui-table-tips .layui-layer-content {
}
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this {
-webkit-transform: translateY(0);
transform: translateY(0)
top: 0
}
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev {
-webkit-transform: translateY(-100%);
transform: translateY(-100%)
top: -100%
}
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next {
-webkit-transform: translateY(100%);
transform: translateY(100%)
top: 100%
}
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right {
-webkit-transform: translateY(0);
transform: translateY(0)
top: 0
}
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left {
-webkit-transform: translateY(-100%);
transform: translateY(-100%)
top: -100%
}
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right {
-webkit-transform: translateY(100%);
transform: translateY(100%)
top: 100%
}
.layui-carousel[lay-anim=fade]>[carousel-item]>* {
@ -6677,7 +6665,7 @@ body .layui-util-face .layui-layer-content {
}
.layui-slider-input-btn i:hover {
color: #1b6dfd
color: #16baaa
}
.layui-slider-vertical {
@ -8034,7 +8022,7 @@ html #layuicss-laydate {
.laydate-theme-molv .layui-laydate-header {
border: none;
background-color: #1b6dfd
background-color: #16baaa
}
.laydate-theme-molv .layui-laydate-header i,
@ -8059,7 +8047,7 @@ html #layuicss-laydate {
.laydate-theme-molv .layui-this,
.laydate-theme-molv .layui-this>div {
background-color: #1b6dfd !important
background-color: #16baaa !important
}
.laydate-theme-molv .layui-laydate-footer {
@ -8076,7 +8064,7 @@ html #layuicss-laydate {
.layui-laydate-linkage.laydate-theme-grid .laydate-selected,
.layui-laydate-linkage.laydate-theme-grid .laydate-selected:hover {
background-color: #f2f2f2 !important;
color: #1b6dfd !important
color: #16baaa !important
}
.layui-laydate-linkage.laydate-theme-grid .laydate-selected.laydate-day-next,
@ -9051,24 +9039,22 @@ html #layuicss-layer {
}
.layui-layer-lan .layui-layer-btn .layui-layer-btn1 {
background: #c9c5c5;
/* color: #fff !important; */
background: #c9c5c5
}
.layui-layer-molv .layui-layer-title {
background: #1b6dfd;
background: #009f95;
color: #fff;
border: none
}
.layui-layer-molv .layui-layer-btn a {
background: #1b6dfd;
border-color: #1b6dfd
background: #009f95;
border-color: #009f95
}
.layui-layer-molv .layui-layer-btn .layui-layer-btn1 {
background: #337efd;
/* color: #fff !important; */
background: #92b8b1
}
.layui-layer-lan .layui-layer-setwin .layui-icon,

View File

@ -1,4 +1,4 @@
<?php /*a:2:{s:66:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\banner.php";i:1747380371;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;}*/ ?>
<?php /*a:2:{s:66:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\banner.php";i:1747385326;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;}*/ ?>
<!DOCTYPE html>
<html>
<head>
@ -93,212 +93,251 @@
</script>
</head>
<body style="padding:10px; box-sizing: border-box;">
<!-- 页面样式 -->
<style>
.layui-table-cell { height: 40px; line-height: 40px; }
.layui-table-cell img { height: 36px; width: auto; max-width: 80px; }
.banner-preview-img { max-width: 80px; cursor: pointer; }
.banner-form { padding: 20px; }
.banner-upload-preview { max-width: 100%; margin-top: 10px; }
</style>
<!-- 主体内容 -->
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-icon layui-icon-picture"></span> Banner管理
<button class="layui-btn layui-btn-sm layui-btn-normal" style="float:right;" id="addBanner">
<i class="layui-icon">&#xe654;</i> 添加Banner
</button>
<div class="config-container">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-picture"></i>
<span>Banner管理</span>
</div>
<div class="layui-card-body">
<table id="bannerTable" lay-filter="bannerTable"></table>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" id="addBanner">
<i class="layui-icon layui-icon-add-1"></i>添加Banner
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
</div>
<!-- Banner表单 -->
<div id="bannerForm" style="display: none;">
<form class="layui-form banner-form">
<input type="hidden" name="id">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题" class="layui-input">
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<table id="bannerTable" lay-filter="bannerTable"></table>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">图片</label>
<div class="layui-input-block">
<div class="layui-upload-drag" id="uploadImage">
<i class="layui-icon layui-icon-upload"></i>
<p>点击上传或拖拽图片至此处</p>
<div id="uploadPreview" style="display: none;">
<img src="" alt="Banner图片" class="banner-upload-preview">
</div>
</div>
<!-- Banner表单 -->
<div id="bannerForm" style="display: none;">
<form class="layui-form banner-form">
<input type="hidden" name="id">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题"
class="layui-input">
</div>
<input type="hidden" name="image" id="imageInput">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">链接</label>
<div class="layui-input-block">
<input type="text" name="url" placeholder="请输入链接地址" class="layui-input">
<div class="layui-form-item">
<label class="layui-form-label">图片</label>
<div class="layui-input-block">
<div class="layui-upload-drag" id="uploadImage">
<i class="layui-icon layui-icon-upload"></i>
<p>点击上传或拖拽图片至此处</p>
<div id="uploadPreview" style="display: none;">
<img src="" alt="Banner图片" class="banner-upload-preview">
</div>
</div>
<input type="hidden" name="image" id="imageInput">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" name="sort" value="0" class="layui-input" placeholder="数字越大越靠前">
<div class="layui-form-item">
<label class="layui-form-label">链接</label>
<div class="layui-input-block">
<input type="text" name="url" placeholder="请输入链接地址" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<input type="radio" name="status" value="1" title="启用" checked>
<input type="radio" name="status" value="0" title="禁用">
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" name="sort" value="0" class="layui-input" placeholder="数字越大越靠前">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="saveBanner">保存</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<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>
</form>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="saveBanner">保存</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
</div>
<script>
layui.use(['table', 'form', 'upload', 'layer'], function(){
var table = layui.table,
form = layui.form,
upload = layui.upload,
layer = layui.layer;
layui.use(['table', 'form', 'upload', 'layer'], function () {
var table = layui.table,
form = layui.form,
upload = layui.upload,
layer = layui.layer;
// 表格列配置
var tableColumns = [[
{field: 'id', title: 'ID', width: 80, align: 'center', fixed: 'left'},
{field: 'title', title: '标题', align: 'center'},
{field: 'image', title: '图片', width: 280, align: 'center', templet: function(d){
return '<img src="'+ d.image +'" class="banner-preview-img" onclick="previewImage(\''+ d.image +'\')">';
}},
{field: 'url', title: '链接', align: 'center', width: 300},
{field: 'sort', title: '排序', align: 'center', width: 100, sort: true},
{field: 'create_time', title: '创建时间', align: 'center', width: 180, sort: true},
{field: 'update_time', title: '更新时间', align: 'center', width: 180, sort: true},
{title: '操作', align: 'center', width: 120, fixed: 'right', templet: function(d){
return '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>' +
'<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
}}
]];
// 初始化表格
table.render({
elem: '#bannerTable',
url: '/admin/yunzeradmin/bannerlist',
method: 'get',
page: true,
cols: tableColumns,
limit: 10,
limits: [10, 20, 30, 50],
text: { none: '暂无相关数据' }
});
// 上传组件配置
var uploadConfig = {
elem: '#uploadImage',
url: '/admin/upload/image',
accept: 'images',
acceptMime: 'image/*',
done: function(res){
if(res.code === 0){
$('#uploadPreview').show().find('img').attr('src', res.data.url);
$('#imageInput').val(res.data.url);
layer.msg('上传成功');
}else{
layer.msg('上传失败');
// 表格列配置
var tableColumns = [[
{ field: 'id', title: 'ID', width: 80, align: 'center' },
{ field: 'title', title: '标题', align: 'center' },
{
field: 'image', title: '图片', width: 180, align: 'center', templet: function (d) {
return '<img src="' + d.image + '" class="banner-preview-img" onclick="previewImage(\'' + d.image + '\')">';
}
},
{ field: 'url', title: '链接', align: 'center', width: 300 },
{ field: 'sort', title: '排序', align: 'center', width: 100, sort: true },
{ field: 'create_time', title: '创建时间', align: 'center', width: 180, sort: true },
{
title: '操作', align: 'center', width: 240, templet: function (d) {
return '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>' +
'<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
}
}
]];
// 初始化表格
table.render({
elem: '#bannerTable',
url: '/admin/yunzeradmin/bannerlist',
method: 'get',
page: true,
cols: tableColumns,
limit: 10,
limits: [10, 20, 30, 50],
text: { none: '暂无相关数据' }
});
// 上传组件配置
var uploadConfig = {
elem: '#uploadImage',
url: '/admin/upload/image',
accept: 'images',
acceptMime: 'image/*',
done: function (res) {
if (res.code === 0) {
$('#uploadPreview').show().find('img').attr('src', res.data.url);
$('#imageInput').val(res.data.url);
layer.msg('上传成功');
} else {
layer.msg('上传失败');
}
}
};
// 初始化上传组件
upload.render(uploadConfig);
// 监听表格工具条事件
table.on('tool(bannerTable)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
showBannerForm(data);
} else if (obj.event === 'del') {
layer.confirm('确定删除此Banner', function (index) {
deleteBanner(data.id, obj);
layer.close(index);
});
}
});
// 添加Banner按钮点击事件
$('#addBanner').on('click', function () {
showBannerForm();
});
// 监听表单提交
form.on('submit(saveBanner)', function (data) {
var url = data.field.id ? '/admin/yunzeradmin/banneredit' : '/admin/yunzeradmin/banneradd';
$.post(url, data.field, function (res) {
if (res.code === 0) {
layer.closeAll('page');
table.reload('bannerTable');
layer.msg('保存成功');
} else {
layer.msg(res.msg);
}
});
return false;
});
// 显示Banner表单
function showBannerForm(data) {
layer.open({
type: 1,
title: data ? '编辑Banner' : '添加Banner',
content: $('#bannerForm'),
area: ['800px', '600px'],
success: function (layero) {
form.render();
if (data) {
form.val('bannerForm', data);
if (data.image) {
$('#uploadPreview').show().find('img').attr('src', data.image);
$('#imageInput').val(data.image);
}
}
}
});
}
};
// 初始化上传组件
upload.render(uploadConfig);
// 监听表格工具条事件
table.on('tool(bannerTable)', function(obj){
var data = obj.data;
if(obj.event === 'edit'){
showBannerForm(data);
} else if(obj.event === 'del'){
layer.confirm('确定删除此Banner', function(index){
deleteBanner(data.id, obj);
layer.close(index);
// 删除Banner
function deleteBanner(id, obj) {
$.post('/admin/yunzeradmin/bannerdel', { id: id }, function (res) {
if (res.code === 0) {
obj.del();
layer.msg('删除成功');
} else {
layer.msg(res.msg);
}
});
}
});
// 添加Banner按钮点击事件
$('#addBanner').on('click', function(){
showBannerForm();
});
// 监听表单提交
form.on('submit(saveBanner)', function(data){
var url = data.field.id ? '/admin/yunzeradmin/banneredit' : '/admin/yunzeradmin/banneradd';
$.post(url, data.field, function(res){
if(res.code === 0){
layer.closeAll('page');
table.reload('bannerTable');
layer.msg('保存成功');
}else{
layer.msg(res.msg);
}
});
return false;
});
// 显示Banner表单
function showBannerForm(data) {
layer.open({
type: 1,
title: data ? '编辑Banner' : '添加Banner',
content: $('#bannerForm'),
area: ['500px', '600px'],
success: function(layero){
form.render();
if(data){
form.val('bannerForm', data);
if(data.image){
$('#uploadPreview').show().find('img').attr('src', data.image);
$('#imageInput').val(data.image);
}
}
// 预览图片
function previewImage(url) {
layer.photos({
photos: {
"data": [{
"src": url
}]
}
});
}
</script>
// 删除Banner
function deleteBanner(id, obj) {
$.post('/admin/yunzeradmin/bannerdel', {id: id}, function(res){
if(res.code === 0){
obj.del();
layer.msg('删除成功');
}else{
layer.msg(res.msg);
}
});
<!-- 页面样式 -->
<style>
.layui-table-cell {
height: 40px;
line-height: 40px;
}
});
// 预览图片
function previewImage(url) {
layer.photos({
photos: {
"data": [{
"src": url
}]
}
});
}
</script>
.layui-table-cell img {
height: 36px;
width: auto;
max-width: 80px;
}
.banner-preview-img {
max-width: 80px;
cursor: pointer;
}
.banner-form {
padding: 20px;
}
.banner-upload-preview {
max-width: 100%;
margin-top: 10px;
}
</style>

View File

@ -1,4 +1,4 @@
<?php /*a:3:{s:63:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzer\menuinfo.php";i:1746709977;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<?php /*a:3:{s:63:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzer\menuinfo.php";i:1747385442;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<!DOCTYPE html>
<html>
<head>
@ -94,19 +94,23 @@
</head>
<body style="padding:10px; box-sizing: border-box;">
<div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;">
<div>
<span>菜单管理</span>
</div>
<div>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-picture"></i>
<span>菜单管理</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" id="addBanner">
<i class="layui-icon layui-icon-add-1"></i>添加菜单
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<div id="test7" class="demo-tree"></div>
<table class="layui-table">

View File

@ -0,0 +1,176 @@
<?php /*a:3:{s:68:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\groupadd.php";i:1746709977;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo htmlentities((string) $config['admin_name']); ?></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css" media="all"/>
<link rel="stylesheet" type="text/css" href="/static/css/moban.css" media="all"/>
<link rel="stylesheet" type="text/css" href="/static/css/wangeditor.css" media="all"/>
<style type="text/css">
.header span{background:#009688;margin-left:30px;padding:10px;color:#ffffff;}
.header div{border-bottom:solid 2px #009688;margin-top: 8px;}
.header button{float:right;margin-top:-5px;}
.pagination {
display: inline-block;
padding-left: 0;
margin: 20px 0;
border-radius: 4px;
}
.pagination > li {
display: inline;
}
.pagination > li > a,
.pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
margin-left: -1px;
line-height: 1.42857143;
color: #337ab7;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
margin-left: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
z-index: 2;
color: #23527c;
background-color: #eee;
border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
z-index: 3;
color: #fff;
cursor: default;
background-color: #337ab7;
border-color: #337ab7;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
color: #777;
cursor: not-allowed;
background-color: #fff;
border-color: #ddd;
}
.close-img { background: url(/static/images/close_img.png); background-size: 20px 20px; width:20px; height: 20px; position: absolute; right: 5px; top: 5px; z-index: 2;}
</style>
<script type="text/javascript" src="/static/layui/layui.js"></script>
<script type="text/javascript">
layui.use(['layer','form','table','laydate','element','upload'],function(){
layer = layui.layer; // layui 弹框
form = layui.form; // layui form表单
table = layui.table; // layui 表格
laydate = layui.laydate; // layui 时间框
element = layui.element; // layui element
upload = layui.upload; // layui 上传
$ = layui.jquery; // layui jquery
})
</script>
</head>
<body style="padding:10px; box-sizing: border-box;">
<form class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">角色名称</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="group_name" placeholder="请输入角色名称">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<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-itme">
<label class="layui-form-label">权限菜单</label>
<?php if(is_array($menus) || $menus instanceof \think\Collection || $menus instanceof \think\Paginator): $i = 0; $__LIST__ = $menus;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): $mod = ($i % 2 );++$i;?>
<hr>
<div class="layui-input-block">
<input type="checkbox" name="menu[<?php echo htmlentities((string) $vo['smid']); ?>]" lay-skin="primary" title="<?php echo htmlentities((string) $vo['label']); ?>">
<hr>
<?php if(is_array($vo['children']) || $vo['children'] instanceof \think\Collection || $vo['children'] instanceof \think\Paginator): $i = 0; $__LIST__ = $vo['children'];if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$cvo): $mod = ($i % 2 );++$i;?>
<input type="checkbox" name="menu[<?php echo htmlentities((string) $cvo['smid']); ?>]" lay-skin="primary" title="<?php echo htmlentities((string) $cvo['label']); ?>">
<?php endforeach; endif; else: echo "" ;endif; ?>
</div>
<?php endforeach; endif; else: echo "" ;endif; ?>
</div>
</form>
<div class="layui-form-item" style="margin-top:10px;">
<div class="layui-input-block">
<button type="button" class="layui-btn" onclick="save()">保存</button>
</div>
</div>
<script type="text/javascript">
layui.use(['layer','form'],function(){
var form = layui.form;
layer = layui.layer;
$ = layui.jquery;
});
function save(){
$.post("<?php echo htmlentities((string) $config['admin_route']); ?>yunzeradmin/groupadd",$('form').serialize(),function(res){
if(res.code>0){
layer.msg(res.msg,{'icon':2});
}else{
layer.msg(res.msg,{'icon':1});
setTimeout(function(){parent.window.location.reload();},1000);
}
},'json');
}
</script>
</body>
</html>
<script type="text/javascript">
// 显示图片
function show_img(obj){
var imgurl = $(obj).attr('src');
var res = getMousePos();
var html = '<div style="background:#fff;position:absolute;width:200px;border:solid 1px #cdcdcd;border-radius:6px;padding:2px;left:'+res.x+'px;top:'+res.y+'px;z-index:1000" id="preview">\
<img style="width:100%;border-radius:6px;" src="'+imgurl+'">\
</div>';
$('body').append(html);
}
// 隐藏图片
function hide_img(){
$('#preview').remove();
}
// 图片位置计算
function getMousePos(event) {
var e = event || window.event;
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
var x = e.pageX || e.clientX + scrollX;
var y = e.pageY || e.clientY + scrollY;
return { 'x': x, 'y': y };
}
// 删除图片
function deleteImage(path,obj){
$(obj).closest('.upload_pic_li').remove();
}
</script>

View File

@ -1,4 +1,4 @@
<?php /*a:2:{s:67:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\article\articlelist.php";i:1747366479;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;}*/ ?>
<?php /*a:2:{s:67:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\article\articlelist.php";i:1747385257;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;}*/ ?>
<!DOCTYPE html>
<html>
<head>
@ -94,11 +94,13 @@
</head>
<body style="padding:10px; box-sizing: border-box;">
<div class="config-container">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-list"></i>
<span>文章列表</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;">
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div class="shaixuan">
<label>筛选:</label>
<div class="layui-form" style="display: flex; gap: 10px;">
@ -293,13 +295,4 @@
function refresh() {
layui.table.reload('articleTable');
}
</script>
<style>
.maintitle {
font-size: 20px;
font-weight: bold;
color: #333;
margin-bottom: 10px;
}
</style>
</script>

View File

@ -1,4 +1,4 @@
<?php /*a:3:{s:69:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\groupinfo.php";i:1746709977;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<?php /*a:3:{s:69:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\groupinfo.php";i:1747385540;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<!DOCTYPE html>
<html>
<head>
@ -94,20 +94,23 @@
</head>
<body style="padding:10px; box-sizing: border-box;">
<div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;">
<div>
<span>角色列表</span>
</div>
<div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-group"></i>
<span>角色列表</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<table class="layui-table">
<thead>

View File

@ -1,4 +1,4 @@
<?php /*a:3:{s:68:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\userinfo.php";i:1746709977;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<?php /*a:3:{s:68:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\yunzeradmin\userinfo.php";i:1747385487;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;s:59:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\tail.php";i:1746709977;}*/ ?>
<!DOCTYPE html>
<html>
<head>
@ -94,19 +94,23 @@
</head>
<body style="padding:10px; box-sizing: border-box;">
<div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;">
<div>
<span>用户列表</span>
</div>
<div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-user"></i>
<span>用户列表</span>
</div>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button class="layui-btn layui-bg-blue" id="addBanner">
<i class="layui-icon layui-icon-add-1"></i>添加
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<table class="layui-table">
<thead>

View File

@ -1,4 +1,4 @@
<?php /*a:2:{s:67:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\article\articlecate.php";i:1747372046;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;}*/ ?>
<?php /*a:2:{s:67:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\article\articlecate.php";i:1747384911;s:61:"E:\Demos\DemoOwns\PHP\yunzer\app\admin\view\public\header.php";i:1746849526;}*/ ?>
<!DOCTYPE html>
<html>
<head>
@ -94,19 +94,21 @@
</head>
<body style="padding:10px; box-sizing: border-box;">
<div class="config-container">
<!-- 页面头部 -->
<div class="page-header">
<div class="header-title">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle">
<i class="layui-icon layui-icon-app"></i>
<span>文章分类管理</span>
</div>
<div class="header-actions">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>新增分类
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
<div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<div>
<button type="button" class="layui-btn layui-btn-normal" onclick="add()">
<i class="layui-icon layui-icon-add-1"></i>添加分类
</button>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
@ -215,6 +217,17 @@
/* background: #f2f2f2; */
}
.layui-col-md7 .layui-btn-primary {
border-color: #d2d2d2;
background: 0 0;
color: #5f5f5f
}
.layui-col-md7 .layui-btn-primary:hover {
background-color: #1e9fff;
color: #efefef
}
/* 页面头部样式 */
.page-header {
display: flex;