diff --git a/app/Http/Controllers/Auth/Admin/Department.php b/app/Http/Controllers/Auth/Admin/Department.php index 85233e8..f376825 100644 --- a/app/Http/Controllers/Auth/Admin/Department.php +++ b/app/Http/Controllers/Auth/Admin/Department.php @@ -38,9 +38,10 @@ class Department extends Controller /** * 获取部门树 */ - public function tree() + public function tree(Request $request) { - $result = $this->departmentService->getTree(); + $params = $request->only(['keyword', 'status']); + $result = $this->departmentService->getTree($params); return response()->json([ 'code' => 200, diff --git a/app/Services/Auth/DepartmentService.php b/app/Services/Auth/DepartmentService.php index c3623cc..d0153c0 100644 --- a/app/Services/Auth/DepartmentService.php +++ b/app/Services/Auth/DepartmentService.php @@ -56,6 +56,14 @@ class DepartmentService { $query = Department::query(); + // 搜索条件 + if (!empty($params['keyword'])) { + $query->where(function ($q) use ($params) { + $q->where('name', 'like', '%' . $params['keyword'] . '%') + ->orWhere('leader', 'like', '%' . $params['keyword'] . '%'); + }); + } + if (isset($params['status']) && $params['status'] !== '') { $query->where('status', $params['status']); } diff --git a/resources/admin/index.html b/resources/admin/index.html index 64ef599..c390243 100644 --- a/resources/admin/index.html +++ b/resources/admin/index.html @@ -3,245 +3,44 @@ -VueAdmin - 管理后台 + + + - -
- -
VueAdmin
-
正在加载管理后台...
-
-
-
-
-
-
-
-
-
首次加载可能需要几秒钟,请耐心等待
+
+ - - -
- - - - - +
+
+
+
+ + diff --git a/resources/admin/public/config.js b/resources/admin/public/config.js new file mode 100644 index 0000000..bce9607 --- /dev/null +++ b/resources/admin/public/config.js @@ -0,0 +1,14 @@ +// 配置覆盖文件 +// 此文件中的配置项会覆盖 src/config/index.js 中的默认配置 +// 修改后无需重新构建,只需刷新页面即可生效 + +window.SY_CONFIG = { + // 项目名称 + APP_NAME: '系统管理后台', + + // 示例:覆盖接口地址 + // API_URL: 'http://your-domain.com/admin/', + + // 示例:覆盖超时时间 + // TIMEOUT: 30000, +} diff --git a/resources/admin/public/vite.svg b/resources/admin/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/resources/admin/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/resources/admin/src/api/auth.js b/resources/admin/src/api/auth.js index 4328c1b..eb4badd 100644 --- a/resources/admin/src/api/auth.js +++ b/resources/admin/src/api/auth.js @@ -229,18 +229,18 @@ export default { }, }, - // 部门管理 - departments: { - list: { - get: async function (params) { - return await request.get('departments', { params }) + // 部门管理 + departments: { + list: { + get: async function (params) { + return await request.get('departments', { params }) + }, }, - }, - tree: { - get: async function () { - return await request.get('departments/tree') + tree: { + get: async function (params) { + return await request.get('departments/tree', { params }) + }, }, - }, all: { get: async function () { return await request.get('departments/all') diff --git a/resources/admin/src/assets/style/pages.scss b/resources/admin/src/assets/style/pages.scss new file mode 100644 index 0000000..ca7757a --- /dev/null +++ b/resources/admin/src/assets/style/pages.scss @@ -0,0 +1,94 @@ +// 页面公共布局样式 + +// 标准页面布局(垂直布局) +.pages-base-layout { + display: flex; + flex-direction: column; + height: 100%; + padding: 0; + + .tool-bar { + padding: 12px 16px; + background: #fff; + border-bottom: 1px solid #f0f0f0; + display: flex; + flex-direction: row; + + .left-panel { + display: flex; + align-items: center; + flex: 1; + } + + .right-panel { + display: flex; + gap: 8px; + } + } + + .table-content { + flex: 1; + overflow: hidden; + background: #f5f5f5; + } +} + +// 侧边栏布局(左右分栏) +.pages-sidebar-layout { + display: flex; + flex-direction: row; + height: 100%; + padding: 0; + + .left-box { + width: 260px; + border-right: 1px solid #f0f0f0; + display: flex; + flex-direction: column; + background: #fff; + + .header { + padding: 12px 16px; + border-bottom: 1px solid #f0f0f0; + background: #fafafa; + } + + .body { + flex: 1; + overflow-y: auto; + padding: 16px; + } + } + + .right-box { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + + .tool-bar { + padding: 12px 16px; + background: #fff; + border-bottom: 1px solid #f0f0f0; + display: flex; + flex-direction: row; + + .left-panel { + display: flex; + align-items: center; + flex: 1; + } + + .right-panel { + display: flex; + gap: 8px; + } + } + + .table-content { + flex: 1; + overflow: hidden; + background: #f5f5f5; + } + } +} diff --git a/resources/admin/src/config/index.js b/resources/admin/src/config/index.js index b15316c..78f6b00 100644 --- a/resources/admin/src/config/index.js +++ b/resources/admin/src/config/index.js @@ -1,4 +1,5 @@ -export default { +// 默认配置 +const defaultConfig = { APP_NAME: 'vueadmin', DASHBOARD_URL: '/dashboard', @@ -57,3 +58,10 @@ export default { //DES加密秘钥,必须是8字节 LS_DES_key: '12345678', } + +// 合并 public/config.js 中的覆盖配置 +if (typeof window !== 'undefined' && window.SY_CONFIG) { + Object.assign(defaultConfig, window.SY_CONFIG) +} + +export default defaultConfig diff --git a/resources/admin/src/main.js b/resources/admin/src/main.js index e70ebe6..115f5eb 100644 --- a/resources/admin/src/main.js +++ b/resources/admin/src/main.js @@ -3,6 +3,7 @@ import { createApp } from 'vue' import Antd from 'ant-design-vue' import 'ant-design-vue/dist/reset.css' import '@/assets/style/app.scss' +import '@/assets/style/pages.scss' import App from './App.vue' import router from './router' import pinia from './stores' diff --git a/resources/admin/src/pages/auth/departments/save.vue b/resources/admin/src/pages/auth/departments/components/SaveDialog.vue similarity index 80% rename from resources/admin/src/pages/auth/departments/save.vue rename to resources/admin/src/pages/auth/departments/components/SaveDialog.vue index 3023e8f..2c0b692 100644 --- a/resources/admin/src/pages/auth/departments/save.vue +++ b/resources/admin/src/pages/auth/departments/components/SaveDialog.vue @@ -4,7 +4,7 @@ - @@ -21,6 +21,12 @@ + + + 正常 + 禁用 + +
保 存 @@ -32,12 +38,12 @@ - - diff --git a/resources/admin/src/pages/auth/permissions/components/SaveForm.vue b/resources/admin/src/pages/auth/permissions/components/SaveForm.vue index b384bc9..ca66610 100644 --- a/resources/admin/src/pages/auth/permissions/components/SaveForm.vue +++ b/resources/admin/src/pages/auth/permissions/components/SaveForm.vue @@ -365,7 +365,7 @@ defineExpose({ .form-tip { font-size: 12px; - color: #8c8c8; + color: #8c8c8c; margin-top: 4px; line-height: 1.5; } diff --git a/resources/admin/src/pages/auth/permissions/index.vue b/resources/admin/src/pages/auth/permissions/index.vue index 3d00cab..d1dade0 100644 --- a/resources/admin/src/pages/auth/permissions/index.vue +++ b/resources/admin/src/pages/auth/permissions/index.vue @@ -263,9 +263,3 @@ onMounted(() => { loadMenuTree() }) - - diff --git a/resources/admin/src/pages/auth/permissions/save.vue b/resources/admin/src/pages/auth/permissions/save.vue deleted file mode 100644 index a485484..0000000 --- a/resources/admin/src/pages/auth/permissions/save.vue +++ /dev/null @@ -1,379 +0,0 @@ - - - - - diff --git a/resources/admin/src/pages/auth/roles/permission.vue b/resources/admin/src/pages/auth/roles/components/PermissionDialog.vue similarity index 100% rename from resources/admin/src/pages/auth/roles/permission.vue rename to resources/admin/src/pages/auth/roles/components/PermissionDialog.vue diff --git a/resources/admin/src/pages/auth/roles/save.vue b/resources/admin/src/pages/auth/roles/components/SaveDialog.vue similarity index 100% rename from resources/admin/src/pages/auth/roles/save.vue rename to resources/admin/src/pages/auth/roles/components/SaveDialog.vue diff --git a/resources/admin/src/pages/auth/roles/index.vue b/resources/admin/src/pages/auth/roles/index.vue index 98a2250..6e1bf76 100644 --- a/resources/admin/src/pages/auth/roles/index.vue +++ b/resources/admin/src/pages/auth/roles/index.vue @@ -303,9 +303,3 @@ const permissionSuccess = () => { refreshTable() } - - diff --git a/resources/admin/src/pages/auth/users/index.vue b/resources/admin/src/pages/auth/users/index.vue index 2506ff9..1a1ea05 100644 --- a/resources/admin/src/pages/auth/users/index.vue +++ b/resources/admin/src/pages/auth/users/index.vue @@ -503,9 +503,3 @@ onMounted(() => { loadDepartmentTree() }) - -