优化后端样式

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -17,6 +17,7 @@
color: #2c3e50; color: #2c3e50;
font-weight: 500; font-weight: 500;
margin-right: 20px; margin-right: 20px;
line-height: 50px;
} }
.config-header a { .config-header a {
text-decoration: none; text-decoration: none;
@ -39,3 +40,11 @@
align-items: center; 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%; height: 100%;
line-height: 60px; line-height: 60px;
text-align: center; text-align: center;
color: #1b6dfd; color: #16baaa;
font-size: 16px; font-size: 16px;
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 15%) box-shadow: 0 1px 2px 0 rgb(0 0 0 / 15%)
} }
@ -2298,7 +2298,7 @@ a cite {
} }
.layui-bg-green { .layui-bg-green {
background-color: #1b6dfd !important; background-color: #16baaa !important;
color: #fff !important color: #fff !important
} }
@ -2371,8 +2371,8 @@ a cite {
.layui-border-green { .layui-border-green {
border-width: 1px; border-width: 1px;
border-style: solid; border-style: solid;
border-color: #1b6dfd !important; border-color: #16baaa !important;
color: #1b6dfd !important color: #16baaa !important
} }
.layui-border-cyan { .layui-border-cyan {
@ -2578,7 +2578,7 @@ hr.layui-border-red {
} }
.layui-font-green { .layui-font-green {
color: #1b6dfd !important color: #16baaa !important
} }
.layui-font-cyan { .layui-font-cyan {
@ -2608,7 +2608,7 @@ hr.layui-border-red {
line-height: 38px; line-height: 38px;
border: 1px solid transparent; border: 1px solid transparent;
padding: 0 18px; padding: 0 18px;
background-color: #1b6dfd; background-color: #16baaa;
color: #fff; color: #fff;
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
@ -2668,7 +2668,7 @@ hr.layui-border-red {
} }
.layui-btn-primary:hover { .layui-btn-primary:hover {
border-color: #1b6dfd; border-color: #16baaa;
color: #333 color: #333
} }
@ -2742,7 +2742,7 @@ hr.layui-border-red {
.layui-btn-group .layui-btn-primary:hover { .layui-btn-group .layui-btn-primary:hover {
border-color: #d2d2d2; border-color: #d2d2d2;
color: #1b6dfd color: #16baaa
} }
.layui-btn-group .layui-btn:first-child { .layui-btn-group .layui-btn:first-child {
@ -3747,7 +3747,7 @@ hr.layui-border-red {
} }
.layui-laypage a:hover { .layui-laypage a:hover {
color: #1b6dfd color: #16baaa
} }
.layui-laypage em { .layui-laypage em {
@ -3775,7 +3775,7 @@ hr.layui-border-red {
padding: 1px; padding: 1px;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #1b6dfd background-color: #16baaa
} }
.layui-laypage-em { .layui-laypage-em {
@ -3841,7 +3841,7 @@ hr.layui-border-red {
.layui-laypage input:focus, .layui-laypage input:focus,
.layui-laypage select:focus { .layui-laypage select:focus {
border-color: #1b6dfd !important border-color: #16baaa !important
} }
.layui-laypage button { .layui-laypage button {
@ -4708,11 +4708,11 @@ body .layui-table-tips .layui-layer-content {
.layui-upload-drag .layui-icon { .layui-upload-drag .layui-icon {
font-size: 50px; font-size: 50px;
color: #1b6dfd color: #16baaa
} }
.layui-upload-drag[lay-over] { .layui-upload-drag[lay-over] {
border-color: #1b6dfd border-color: #16baaa
} }
.layui-upload-form { .layui-upload-form {
@ -5063,7 +5063,7 @@ body .layui-table-tips .layui-layer-content {
.layui-tabs-header .layui-this, .layui-tabs-header .layui-this,
.layui-tabs-header li:hover { .layui-tabs-header li:hover {
color: #1b6dfd color: #16baaa
} }
.layui-tabs-header .layui-this:after { .layui-tabs-header .layui-this:after {
@ -5074,7 +5074,7 @@ body .layui-table-tips .layui-layer-content {
z-index: 1; z-index: 1;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-bottom: 3px solid #1b6dfd; border-bottom: 3px solid #16baaa;
box-sizing: border-box; box-sizing: border-box;
pointer-events: none pointer-events: none
} }
@ -5367,7 +5367,7 @@ body .layui-table-tips .layui-layer-content {
.layui-nav-tree .layui-this, .layui-nav-tree .layui-this,
.layui-nav-tree .layui-this>a, .layui-nav-tree .layui-this>a,
.layui-nav-tree .layui-this>a:hover { .layui-nav-tree .layui-this>a:hover {
background-color: #1b6dfd; background-color: #16baaa;
color: #fff color: #fff
} }
@ -5382,7 +5382,7 @@ body .layui-table-tips .layui-layer-content {
} }
.layui-nav-tree .layui-nav-bar { .layui-nav-tree .layui-nav-bar {
background-color: #1b6dfd background-color: #16baaa
} }
.layui-nav-tree .layui-nav-child { .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 { .layui-tab-brief>.layui-tab-title .layui-this {
color: #1b6dfd color: #16baaa
} }
.layui-tab-brief>.layui-tab-more li.layui-this:after, .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 { .layui-carousel>[carousel-item]>.layui-this {
-webkit-transform: translateX(0); left: 0
transform: translateX(0)
} }
.layui-carousel>[carousel-item]>.layui-carousel-prev { .layui-carousel>[carousel-item]>.layui-carousel-prev {
-webkit-transform: translateX(-100%); left: -100%
transform: translateX(-100%)
} }
.layui-carousel>[carousel-item]>.layui-carousel-next { .layui-carousel>[carousel-item]>.layui-carousel-next {
-webkit-transform: translateX(100%); left: 100%
transform: translateX(100%)
} }
.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left, .layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,
.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right { .layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right {
-webkit-transform: translateX(0); left: 0
transform: translateX(0)
} }
.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left { .layui-carousel>[carousel-item]>.layui-this.layui-carousel-left {
-webkit-transform: translateX(-100%); left: -100%
transform: translateX(-100%)
} }
.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right { .layui-carousel>[carousel-item]>.layui-this.layui-carousel-right {
-webkit-transform: translateX(100%); left: 100%
transform: translateX(100%)
} }
.layui-carousel[lay-anim=updown] .layui-carousel-arrow { .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 { .layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this {
-webkit-transform: translateY(0); top: 0
transform: translateY(0)
} }
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev { .layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev {
-webkit-transform: translateY(-100%); top: -100%
transform: translateY(-100%)
} }
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next { .layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next {
-webkit-transform: translateY(100%); top: 100%
transform: translateY(100%)
} }
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left, .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 { .layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right {
-webkit-transform: translateY(0); top: 0
transform: translateY(0)
} }
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left { .layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left {
-webkit-transform: translateY(-100%); top: -100%
transform: translateY(-100%)
} }
.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right { .layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right {
-webkit-transform: translateY(100%); top: 100%
transform: translateY(100%)
} }
.layui-carousel[lay-anim=fade]>[carousel-item]>* { .layui-carousel[lay-anim=fade]>[carousel-item]>* {
@ -6677,7 +6665,7 @@ body .layui-util-face .layui-layer-content {
} }
.layui-slider-input-btn i:hover { .layui-slider-input-btn i:hover {
color: #1b6dfd color: #16baaa
} }
.layui-slider-vertical { .layui-slider-vertical {
@ -8034,7 +8022,7 @@ html #layuicss-laydate {
.laydate-theme-molv .layui-laydate-header { .laydate-theme-molv .layui-laydate-header {
border: none; border: none;
background-color: #1b6dfd background-color: #16baaa
} }
.laydate-theme-molv .layui-laydate-header i, .laydate-theme-molv .layui-laydate-header i,
@ -8059,7 +8047,7 @@ html #layuicss-laydate {
.laydate-theme-molv .layui-this, .laydate-theme-molv .layui-this,
.laydate-theme-molv .layui-this>div { .laydate-theme-molv .layui-this>div {
background-color: #1b6dfd !important background-color: #16baaa !important
} }
.laydate-theme-molv .layui-laydate-footer { .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,
.layui-laydate-linkage.laydate-theme-grid .laydate-selected:hover { .layui-laydate-linkage.laydate-theme-grid .laydate-selected:hover {
background-color: #f2f2f2 !important; background-color: #f2f2f2 !important;
color: #1b6dfd !important color: #16baaa !important
} }
.layui-laydate-linkage.laydate-theme-grid .laydate-selected.laydate-day-next, .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 { .layui-layer-lan .layui-layer-btn .layui-layer-btn1 {
background: #c9c5c5; background: #c9c5c5
/* color: #fff !important; */
} }
.layui-layer-molv .layui-layer-title { .layui-layer-molv .layui-layer-title {
background: #1b6dfd; background: #009f95;
color: #fff; color: #fff;
border: none border: none
} }
.layui-layer-molv .layui-layer-btn a { .layui-layer-molv .layui-layer-btn a {
background: #1b6dfd; background: #009f95;
border-color: #1b6dfd border-color: #009f95
} }
.layui-layer-molv .layui-layer-btn .layui-layer-btn1 { .layui-layer-molv .layui-layer-btn .layui-layer-btn1 {
background: #337efd; background: #92b8b1
/* color: #fff !important; */
} }
.layui-layer-lan .layui-layer-setwin .layui-icon, .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> <!DOCTYPE html>
<html> <html>
<head> <head>
@ -93,212 +93,251 @@
</script> </script>
</head> </head>
<body style="padding:10px; box-sizing: border-box;"> <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="config-container">
<div class="layui-card"> <!-- 页面头部样式 -->
<div class="layui-card-header"> <div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<span class="layui-icon layui-icon-picture"></span> Banner管理 <div class="maintitle">
<button class="layui-btn layui-btn-sm layui-btn-normal" style="float:right;" id="addBanner"> <i class="layui-icon layui-icon-picture"></i>
<i class="layui-icon">&#xe654;</i> 添加Banner <span>Banner管理</span>
</button>
</div> </div>
<div class="layui-card-body"> <div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<table id="bannerTable" lay-filter="bannerTable"></table> <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> </div>
</div>
<!-- Banner表单 --> <div class="layui-fluid">
<div id="bannerForm" style="display: none;"> <div class="layui-card">
<form class="layui-form banner-form"> <div class="layui-card-body">
<input type="hidden" name="id"> <table id="bannerTable" lay-filter="bannerTable"></table>
<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> </div>
</div> </div>
<div class="layui-form-item"> </div>
<label class="layui-form-label">图片</label>
<div class="layui-input-block"> <!-- Banner表单 -->
<div class="layui-upload-drag" id="uploadImage"> <div id="bannerForm" style="display: none;">
<i class="layui-icon layui-icon-upload"></i> <form class="layui-form banner-form">
<p>点击上传或拖拽图片至此处</p> <input type="hidden" name="id">
<div id="uploadPreview" style="display: none;"> <div class="layui-form-item">
<img src="" alt="Banner图片" class="banner-upload-preview"> <label class="layui-form-label">标题</label>
</div> <div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入标题"
class="layui-input">
</div> </div>
<input type="hidden" name="image" id="imageInput">
</div> </div>
</div> <div class="layui-form-item">
<div class="layui-form-item"> <label class="layui-form-label">图片</label>
<label class="layui-form-label">链接</label> <div class="layui-input-block">
<div class="layui-input-block"> <div class="layui-upload-drag" id="uploadImage">
<input type="text" name="url" placeholder="请输入链接地址" class="layui-input"> <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> <div class="layui-form-item">
<div class="layui-form-item"> <label class="layui-form-label">链接</label>
<label class="layui-form-label">排序</label> <div class="layui-input-block">
<div class="layui-input-block"> <input type="text" name="url" placeholder="请输入链接地址" class="layui-input">
<input type="number" name="sort" value="0" class="layui-input" placeholder="数字越大越靠前"> </div>
</div> </div>
</div> <div class="layui-form-item">
<div class="layui-form-item"> <label class="layui-form-label">排序</label>
<label class="layui-form-label">状态</label> <div class="layui-input-block">
<div class="layui-input-block"> <input type="number" name="sort" value="0" class="layui-input" placeholder="数字越大越靠前">
<input type="radio" name="status" value="1" title="启用" checked> </div>
<input type="radio" name="status" value="0" title="禁用">
</div> </div>
</div> <div class="layui-form-item">
<div class="layui-form-item"> <label class="layui-form-label">状态</label>
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="saveBanner">保存</button> <input type="radio" name="status" value="1" title="启用" checked>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <input type="radio" name="status" value="0" title="禁用">
</div>
</div> </div>
</div> <div class="layui-form-item">
</form> <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> </div>
<script> <script>
layui.use(['table', 'form', 'upload', 'layer'], function(){ layui.use(['table', 'form', 'upload', 'layer'], function () {
var table = layui.table, var table = layui.table,
form = layui.form, form = layui.form,
upload = layui.upload, upload = layui.upload,
layer = layui.layer; layer = layui.layer;
// 表格列配置 // 表格列配置
var tableColumns = [[ var tableColumns = [[
{field: 'id', title: 'ID', width: 80, align: 'center', fixed: 'left'}, { field: 'id', title: 'ID', width: 80, align: 'center' },
{field: 'title', title: '标题', align: 'center'}, { 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: '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}, { field: 'url', title: '链接', align: 'center', width: 300 },
{field: 'update_time', title: '更新时间', align: 'center', width: 180, sort: true}, { field: 'sort', title: '排序', align: 'center', width: 100, sort: true },
{title: '操作', align: 'center', width: 120, fixed: 'right', templet: function(d){ { field: 'create_time', title: '创建时间', align: 'center', width: 180, sort: true },
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>'; 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('上传失败');
} }
]];
// 初始化表格
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);
}
}
}
});
} }
};
// 初始化上传组件 // 删除Banner
upload.render(uploadConfig); function deleteBanner(id, obj) {
$.post('/admin/yunzeradmin/bannerdel', { id: id }, function (res) {
// 监听表格工具条事件 if (res.code === 0) {
table.on('tool(bannerTable)', function(obj){ obj.del();
var data = obj.data; layer.msg('删除成功');
if(obj.event === 'edit'){ } else {
showBannerForm(data); layer.msg(res.msg);
} else if(obj.event === 'del'){ }
layer.confirm('确定删除此Banner', function(index){
deleteBanner(data.id, obj);
layer.close(index);
}); });
} }
}); });
// 添加Banner按钮点击事件 // 预览图片
$('#addBanner').on('click', function(){ function previewImage(url) {
showBannerForm(); layer.photos({
}); photos: {
"data": [{
// 监听表单提交 "src": url
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);
}
}
} }
}); });
} }
</script>
// 删除Banner
function deleteBanner(id, obj) {
$.post('/admin/yunzeradmin/bannerdel', {id: id}, function(res){ <!-- 页面样式 -->
if(res.code === 0){ <style>
obj.del(); .layui-table-cell {
layer.msg('删除成功'); height: 40px;
}else{ line-height: 40px;
layer.msg(res.msg);
}
});
} }
});
// 预览图片 .layui-table-cell img {
function previewImage(url) { height: 36px;
layer.photos({ width: auto;
photos: { max-width: 80px;
"data": [{ }
"src": url
}] .banner-preview-img {
} max-width: 80px;
}); cursor: pointer;
} }
</script>
.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> <!DOCTYPE html>
<html> <html>
<head> <head>
@ -94,19 +94,23 @@
</head> </head>
<body style="padding:10px; box-sizing: border-box;"> <body style="padding:10px; box-sizing: border-box;">
<div class="config-container"> <div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;"> <!-- 页面头部样式 -->
<div> <div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<span>菜单管理</span> <div class="maintitle">
</div> <i class="layui-icon layui-icon-picture"></i>
<div> <span>菜单管理</span>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="add()"> </div>
<i class="layui-icon layui-icon-add-1"></i>添加 <div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
</button> <div>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()"> <button class="layui-btn layui-bg-blue" id="addBanner">
<i class="layui-icon layui-icon-refresh"></i>刷新 <i class="layui-icon layui-icon-add-1"></i>添加菜单
</button> </button>
</div> <button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
</div> <i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<div id="test7" class="demo-tree"></div> <div id="test7" class="demo-tree"></div>
<table class="layui-table"> <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> <!DOCTYPE html>
<html> <html>
<head> <head>
@ -94,11 +94,13 @@
</head> </head>
<body style="padding:10px; box-sizing: border-box;"> <body style="padding:10px; box-sizing: border-box;">
<div class="config-container"> <div class="config-container">
<!-- 页面头部样式 -->
<div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;"> <div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="maintitle"> <div class="maintitle">
<i class="layui-icon layui-icon-list"></i>
<span>文章列表</span> <span>文章列表</span>
</div> </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"> <div class="shaixuan">
<label>筛选:</label> <label>筛选:</label>
<div class="layui-form" style="display: flex; gap: 10px;"> <div class="layui-form" style="display: flex; gap: 10px;">
@ -293,13 +295,4 @@
function refresh() { function refresh() {
layui.table.reload('articleTable'); layui.table.reload('articleTable');
} }
</script> </script>
<style>
.maintitle {
font-size: 20px;
font-weight: bold;
color: #333;
margin-bottom: 10px;
}
</style>

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> <!DOCTYPE html>
<html> <html>
<head> <head>
@ -94,20 +94,23 @@
</head> </head>
<body style="padding:10px; box-sizing: border-box;"> <body style="padding:10px; box-sizing: border-box;">
<div class="config-container"> <div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;"> <!-- 页面头部样式 -->
<div> <div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<span>角色列表</span> <div class="maintitle">
</div> <i class="layui-icon layui-icon-group"></i>
<div> <span>角色列表</span>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="add()"> </div>
<i class="layui-icon layui-icon-add-1"></i>添加 <div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
</button> <div>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()"> <button class="layui-btn layui-bg-blue" onclick="add()">
<i class="layui-icon layui-icon-refresh"></i>刷新 <i class="layui-icon layui-icon-add-1"></i>添加
</button> </button>
</div> <button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
<i class="layui-icon layui-icon-refresh"></i>刷新
</div> </button>
</div>
</div>
</div>
<table class="layui-table"> <table class="layui-table">
<thead> <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> <!DOCTYPE html>
<html> <html>
<head> <head>
@ -94,19 +94,23 @@
</head> </head>
<body style="padding:10px; box-sizing: border-box;"> <body style="padding:10px; box-sizing: border-box;">
<div class="config-container"> <div class="config-container">
<div class="config-header" style="display:flex;justify-content: space-between;"> <!-- 页面头部样式 -->
<div> <div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<span>用户列表</span> <div class="maintitle">
</div> <i class="layui-icon layui-icon-user"></i>
<div> <span>用户列表</span>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="add()"> </div>
<i class="layui-icon layui-icon-add-1"></i>添加 <div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
</button> <div>
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="refresh()"> <button class="layui-btn layui-bg-blue" id="addBanner">
<i class="layui-icon layui-icon-refresh"></i>刷新 <i class="layui-icon layui-icon-add-1"></i>添加
</button> </button>
</div> <button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
</div> <i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div>
</div>
<table class="layui-table"> <table class="layui-table">
<thead> <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> <!DOCTYPE html>
<html> <html>
<head> <head>
@ -94,19 +94,21 @@
</head> </head>
<body style="padding:10px; box-sizing: border-box;"> <body style="padding:10px; box-sizing: border-box;">
<div class="config-container"> <div class="config-container">
<!-- 页面头部 --> <!-- 页面头部样式 -->
<div class="page-header"> <div class="config-header" style="display: flex;flex-direction: column;flex-wrap: wrap;align-items: flex-start;">
<div class="header-title"> <div class="maintitle">
<i class="layui-icon layui-icon-app"></i> <i class="layui-icon layui-icon-app"></i>
<span>文章分类管理</span> <span>文章分类管理</span>
</div> </div>
<div class="header-actions"> <div style="display: flex;align-items: flex-start;flex-direction: column;gap: 15px;margin-bottom: 10px;">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="add()"> <div>
<i class="layui-icon layui-icon-add-1"></i>新增分类 <button type="button" class="layui-btn layui-btn-normal" onclick="add()">
</button> <i class="layui-icon layui-icon-add-1"></i>添加分类
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" onclick="refresh()"> </button>
<i class="layui-icon layui-icon-refresh"></i>刷新 <button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="refresh()">
</button> <i class="layui-icon layui-icon-refresh"></i>刷新
</button>
</div>
</div> </div>
</div> </div>
@ -215,6 +217,17 @@
/* background: #f2f2f2; */ /* 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 { .page-header {
display: flex; display: flex;