From f0f0763cebd99e11907f4aa4e97cc751cbe83405 Mon Sep 17 00:00:00 2001 From: molong Date: Thu, 19 Feb 2026 11:46:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/System/Admin/Config.php | 9 +- resources/admin/.prettierrc.json | 8 + resources/admin/src/App.vue | 108 +- resources/admin/src/api/auth.js | 207 ++-- resources/admin/src/api/system.js | 230 ++--- resources/admin/src/assets/style/app.scss | 4 +- resources/admin/src/assets/style/auth.scss | 61 +- resources/admin/src/boot.js | 10 +- .../admin/src/components/scCron/index.vue | 65 +- .../src/components/scEditor/UploadAdapter.js | 152 ++- .../admin/src/components/scEditor/index.vue | 262 ++--- .../admin/src/components/scExport/README.md | 249 ++--- .../admin/src/components/scExport/index.vue | 162 ++- .../admin/src/components/scForm/index.vue | 229 ++--- .../src/components/scIconPicker/index.vue | 947 ++++++++---------- .../admin/src/components/scImport/README.md | 108 +- .../admin/src/components/scImport/index.vue | 200 ++-- .../admin/src/components/scSelect/README.md | 266 ++--- .../admin/src/components/scSelect/index.vue | 180 ++-- .../admin/src/components/scTable/index.vue | 329 +++--- .../admin/src/components/scUpload/file.vue | 122 +-- .../admin/src/components/scUpload/index.vue | 265 +++-- resources/admin/src/config/index.js | 46 +- resources/admin/src/config/routes.js | 4 +- resources/admin/src/config/upload.js | 8 +- resources/admin/src/hooks/useI18n.js | 10 +- resources/admin/src/hooks/useTable.js | 170 ++-- resources/admin/src/hooks/useWebSocket.js | 216 ++-- resources/admin/src/i18n/index.js | 18 +- resources/admin/src/i18n/locales/en-US.js | 485 +++++---- resources/admin/src/i18n/locales/zh-CN.js | 485 +++++---- .../src/layouts/components/breadcrumb.vue | 44 +- .../admin/src/layouts/components/navMenu.vue | 38 +- .../admin/src/layouts/components/search.vue | 169 ++-- .../admin/src/layouts/components/setting.vue | 169 ++-- .../admin/src/layouts/components/sideMenu.vue | 139 +-- .../admin/src/layouts/components/tags.vue | 240 ++--- .../admin/src/layouts/components/task.vue | 222 ++-- .../admin/src/layouts/components/userbar.vue | 476 ++++----- resources/admin/src/layouts/index.vue | 251 ++--- resources/admin/src/layouts/other/404.vue | 44 +- resources/admin/src/layouts/other/empty.vue | 57 +- resources/admin/src/main.js | 32 +- .../auth/department/components/SaveDialog.vue | 219 ++-- .../admin/src/pages/auth/department/index.vue | 353 +++---- .../src/pages/auth/online-user/index.vue | 373 +++---- .../src/pages/auth/online-user/sessions.vue | 258 ++--- .../auth/permission/components/SaveForm.vue | 471 ++++----- .../admin/src/pages/auth/permission/index.vue | 487 ++++----- .../pages/auth/role/components/CopyDialog.vue | 136 ++- .../auth/role/components/PermissionDialog.vue | 125 +-- .../pages/auth/role/components/SaveDialog.vue | 175 ++-- resources/admin/src/pages/auth/role/index.vue | 471 ++++----- .../auth/user/components/BatchRoleDialog.vue | 104 +- .../auth/user/components/DepartmentDialog.vue | 92 +- .../pages/auth/user/components/RoleDialog.vue | 120 +-- .../pages/auth/user/components/SaveDialog.vue | 309 +++--- resources/admin/src/pages/auth/user/index.vue | 636 +++++------- .../pages/home/components/QuickActions.vue | 353 +++---- .../src/pages/home/components/Welcome.vue | 80 +- resources/admin/src/pages/home/index.vue | 8 +- resources/admin/src/pages/login/index.vue | 145 +-- .../admin/src/pages/login/resetPassword.vue | 152 ++- .../admin/src/pages/login/userRegister.vue | 133 +-- .../system/city/components/SaveDialog.vue | 207 ++-- .../admin/src/pages/system/city/index.vue | 349 ++----- .../components/DictionaryDialog.vue | 316 ------ .../src/pages/system/dictionarie/index.vue | 766 -------------- .../components/DictionaryDialog.vue | 254 +++++ .../components/ItemDialog.vue | 227 ++--- .../src/pages/system/dictionary/index.vue | 629 ++++++++++++ .../system/log/components/DetailDialog.vue | 143 +-- .../admin/src/pages/system/log/index.vue | 487 ++++----- .../src/pages/system/notification/index.vue | 531 ++++------ .../setting/components/ConfigDialog.vue | 401 -------- .../system/setting/components/ConfigForm.vue | 291 ------ .../setting/components/SaveConfigDialog.vue | 374 +++++++ .../system/setting/components/SaveDialog.vue | 424 -------- .../admin/src/pages/system/setting/index.vue | 838 ++++++++-------- .../task/components/TaskDetailDialog.vue | 106 +- .../system/task/components/TaskDialog.vue | 347 +++---- .../admin/src/pages/system/task/index.vue | 403 +++----- .../pages/ucenter/components/BasicInfo.vue | 112 +-- .../src/pages/ucenter/components/Password.vue | 111 +- .../pages/ucenter/components/ProfileInfo.vue | 16 +- .../src/pages/ucenter/components/Security.vue | 74 +- resources/admin/src/pages/ucenter/index.vue | 180 ++-- resources/admin/src/router/index.js | 128 ++- resources/admin/src/router/systemRoutes.js | 36 +- resources/admin/src/stores/index.js | 10 +- .../admin/src/stores/modules/dictionary.js | 123 ++- resources/admin/src/stores/modules/i18n.js | 30 +- resources/admin/src/stores/modules/layout.js | 114 +-- resources/admin/src/stores/modules/message.js | 202 ++-- .../admin/src/stores/modules/notification.js | 374 ++++--- resources/admin/src/stores/modules/user.js | 68 +- resources/admin/src/stores/persist.js | 12 +- resources/admin/src/utils/request.js | 72 +- resources/admin/src/utils/tool.js | 392 ++++---- resources/admin/src/utils/websocket.js | 306 +++--- routes/api.php | 6 +- 101 files changed, 8952 insertions(+), 13203 deletions(-) create mode 100644 resources/admin/.prettierrc.json delete mode 100644 resources/admin/src/pages/system/dictionarie/components/DictionaryDialog.vue delete mode 100644 resources/admin/src/pages/system/dictionarie/index.vue create mode 100644 resources/admin/src/pages/system/dictionary/components/DictionaryDialog.vue rename resources/admin/src/pages/system/{dictionarie => dictionary}/components/ItemDialog.vue (52%) create mode 100644 resources/admin/src/pages/system/dictionary/index.vue delete mode 100644 resources/admin/src/pages/system/setting/components/ConfigDialog.vue delete mode 100644 resources/admin/src/pages/system/setting/components/ConfigForm.vue create mode 100644 resources/admin/src/pages/system/setting/components/SaveConfigDialog.vue delete mode 100644 resources/admin/src/pages/system/setting/components/SaveDialog.vue diff --git a/app/Http/Controllers/System/Admin/Config.php b/app/Http/Controllers/System/Admin/Config.php index d9d535c..1ede049 100644 --- a/app/Http/Controllers/System/Admin/Config.php +++ b/app/Http/Controllers/System/Admin/Config.php @@ -132,7 +132,14 @@ class Config extends Controller public function getByGroup(Request $request) { - $configs = $this->configService->getByGroup($request->input('group')); + $group = $request->input('group'); + // 如果没有指定分组,返回所有配置项 + if (empty($group)) { + $result = $this->configService->getList([]); + $configs = $result['list'] ?? []; + } else { + $configs = $this->configService->getByGroup($group); + } return response()->json([ 'code' => 200, 'message' => 'success', diff --git a/resources/admin/.prettierrc.json b/resources/admin/.prettierrc.json new file mode 100644 index 0000000..05d41b7 --- /dev/null +++ b/resources/admin/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "singleQuote": true, + "printWidth": 300, + "useTabs": true, + "tabWidth": 4 +} diff --git a/resources/admin/src/App.vue b/resources/admin/src/App.vue index 255cb7b..ba91338 100644 --- a/resources/admin/src/App.vue +++ b/resources/admin/src/App.vue @@ -1,141 +1,131 @@ diff --git a/resources/admin/src/api/auth.js b/resources/admin/src/api/auth.js index 319f17f..909db9c 100644 --- a/resources/admin/src/api/auth.js +++ b/resources/admin/src/api/auth.js @@ -1,36 +1,36 @@ -import request from "@/utils/request"; +import request from '@/utils/request' export default { // 认证相关 login: { post: async function (params) { - return await request.post("auth/login", params); + return await request.post('auth/login', params) }, }, logout: { post: async function () { - return await request.post("auth/logout"); + return await request.post('auth/logout') }, }, me: { get: async function () { - return await request.get("auth/me"); + return await request.get('auth/me') }, }, changePassword: { post: async function (params) { - return await request.post("auth/change-password", params); + return await request.post('auth/change-password', params) }, }, // 文件上传 upload: { post: async function (file) { - const formData = new FormData(); - formData.append("file", file); - return await request.post("system/upload", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + const formData = new FormData() + formData.append('file', file) + return await request.post('system/upload', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, @@ -38,71 +38,68 @@ export default { user: { list: { get: async function (params) { - return await request.get("auth/user", { params }); + return await request.get('auth/user', { params }) }, }, detail: { get: async function (id) { - return await request.get(`auth/user/${id}`); + return await request.get(`auth/user/${id}`) }, }, add: { post: async function (params) { - return await request.post("auth/user", params); + return await request.post('auth/user', params) }, }, edit: { put: async function (id, params) { - return await request.put(`auth/user/${id}`, params); + return await request.put(`auth/user/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`auth/user/${id}`); + return await request.delete(`auth/user/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post("auth/user/batch-delete", params); + return await request.post('auth/user/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post("auth/user/batch-status", params); + return await request.post('auth/user/batch-status', params) }, }, batchDepartment: { post: async function (params) { - return await request.post( - "auth/user/batch-department", - params, - ); + return await request.post('auth/user/batch-department', params) }, }, batchRoles: { post: async function (params) { - return await request.post("auth/user/batch-roles", params); + return await request.post('auth/user/batch-roles', params) }, }, export: { post: async function (params) { - return await request.post("auth/user/export", params, { - responseType: "blob", - }); + return await request.post('auth/user/export', params, { + responseType: 'blob', + }) }, }, import: { post: async function (formData) { - return await request.post("auth/user/import", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('auth/user/import', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, downloadTemplate: { get: async function () { - return await request.get("auth/user/download-template", { - responseType: "blob", - }); + return await request.get('auth/user/download-template', { + responseType: 'blob', + }) }, }, }, @@ -111,34 +108,27 @@ export default { onlineUser: { count: { get: async function () { - return await request.get("auth/online-user/count"); + return await request.get('auth/online-user/count') }, }, list: { get: async function (params) { - return await request.get("auth/online-user", { params }); + return await request.get('auth/online-user', { params }) }, }, sessions: { get: async function (userId) { - return await request.get( - `auth/online-user/${userId}/sessions`, - ); + return await request.get(`auth/online-user/${userId}/sessions`) }, }, offline: { post: async function (userId, params) { - return await request.post( - `auth/online-user/${userId}/offline`, - params, - ); + return await request.post(`auth/online-user/${userId}/offline`, params) }, }, offlineAll: { post: async function (userId) { - return await request.post( - `auth/online-user/${userId}/offline-all`, - ); + return await request.post(`auth/online-user/${userId}/offline-all`) }, }, }, @@ -147,84 +137,81 @@ export default { role: { list: { get: async function (params) { - return await request.get("auth/role", { params }); + return await request.get('auth/role', { params }) }, }, all: { get: async function () { - return await request.get("auth/role/all"); + return await request.get('auth/role/all') }, }, detail: { get: async function (id) { - return await request.get(`auth/role/${id}`); + return await request.get(`auth/role/${id}`) }, }, add: { post: async function (params) { - return await request.post("auth/role", params); + return await request.post('auth/role', params) }, }, edit: { put: async function (id, params) { - return await request.put(`auth/role/${id}`, params); + return await request.put(`auth/role/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`auth/role/${id}`); + return await request.delete(`auth/role/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post("auth/role/batch-delete", params); + return await request.post('auth/role/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post("auth/role/batch-status", params); + return await request.post('auth/role/batch-status', params) }, }, permissions: { get: async function (id) { - return await request.get(`auth/role/${id}/permissions`); + return await request.get(`auth/role/${id}/permissions`) }, post: async function (id, params) { - return await request.post( - `auth/role/${id}/permissions`, - params, - ); + return await request.post(`auth/role/${id}/permissions`, params) }, }, copy: { post: async function (id, params) { - return await request.post(`auth/role/${id}/copy`, params); + return await request.post(`auth/role/${id}/copy`, params) }, }, batchCopy: { post: async function (params) { - return await request.post("auth/role/batch-copy", params); + return await request.post('auth/role/batch-copy', params) }, }, export: { post: async function (params) { - return await request.post("auth/role/export", params, { - responseType: "blob", - }); + return await request.post('auth/role/export', params, { + responseType: 'blob', + }) }, }, import: { post: async function (formData) { - return await request.post("auth/role/import", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('auth/role/import', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, downloadTemplate: { get: async function () { - return await request.get("auth/role/download-template", { - responseType: "blob", - }); + return await request.get('auth/role/download-template', { + responseType: 'blob', + }) }, }, }, @@ -233,74 +220,68 @@ export default { permission: { list: { get: async function (params) { - return await request.get("auth/permission", { params }); + return await request.get('auth/permission', { params }) }, }, tree: { get: async function () { - return await request.get("auth/permission/tree"); + return await request.get('auth/permission/tree') }, }, menu: { get: async function () { - return await request.get("auth/permission/menu"); + return await request.get('auth/permission/menu') }, }, detail: { get: async function (id) { - return await request.get(`auth/permission/${id}`); + return await request.get(`auth/permission/${id}`) }, }, add: { post: async function (params) { - return await request.post("auth/permission", params); + return await request.post('auth/permission', params) }, }, edit: { put: async function (id, params) { - return await request.put(`auth/permission/${id}`, params); + return await request.put(`auth/permission/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`auth/permission/${id}`); + return await request.delete(`auth/permission/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post( - "auth/permission/batch-delete", - params, - ); + return await request.post('auth/permission/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post( - "auth/permission/batch-status", - params, - ); + return await request.post('auth/permission/batch-status', params) }, }, export: { post: async function (params) { - return await request.post("auth/permission/export", params, { - responseType: "blob", - }); + return await request.post('auth/permission/export', params, { + responseType: 'blob', + }) }, }, import: { post: async function (formData) { - return await request.post("auth/permission/import", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('auth/permission/import', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, downloadTemplate: { get: async function () { - return await request.get("auth/permission/download-template", { - responseType: "blob", - }); + return await request.get('auth/permission/download-template', { + responseType: 'blob', + }) }, }, }, @@ -309,75 +290,69 @@ export default { department: { list: { get: async function (params) { - return await request.get("auth/department", { params }); + return await request.get('auth/department', { params }) }, }, tree: { get: async function (params) { - return await request.get("auth/department/tree", { params }); + return await request.get('auth/department/tree', { params }) }, }, all: { get: async function () { - return await request.get("auth/department/all"); + return await request.get('auth/department/all') }, }, detail: { get: async function (id) { - return await request.get(`auth/department/${id}`); + return await request.get(`auth/department/${id}`) }, }, add: { post: async function (params) { - return await request.post("auth/department", params); + return await request.post('auth/department', params) }, }, edit: { put: async function (id, params) { - return await request.put(`auth/department/${id}`, params); + return await request.put(`auth/department/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`auth/department/${id}`); + return await request.delete(`auth/department/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post( - "auth/department/batch-delete", - params, - ); + return await request.post('auth/department/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post( - "auth/department/batch-status", - params, - ); + return await request.post('auth/department/batch-status', params) }, }, export: { post: async function (params) { - return await request.post("auth/department/export", params, { - responseType: "blob", - }); + return await request.post('auth/department/export', params, { + responseType: 'blob', + }) }, }, import: { post: async function (formData) { - return await request.post("auth/department/import", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('auth/department/import', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, downloadTemplate: { get: async function () { - return await request.get("auth/department/download-template", { - responseType: "blob", - }); + return await request.get('auth/department/download-template', { + responseType: 'blob', + }) }, }, }, -}; +} diff --git a/resources/admin/src/api/system.js b/resources/admin/src/api/system.js index 2d7c15b..924f4e2 100644 --- a/resources/admin/src/api/system.js +++ b/resources/admin/src/api/system.js @@ -1,57 +1,51 @@ -import request from "@/utils/request"; +import request from '@/utils/request' export default { // 系统配置管理 config: { list: { get: async function (params) { - return await request.get("system/setting", { params }); + return await request.get('system/setting', { params }) }, }, groups: { get: async function () { - return await request.get("system/setting/groups"); + return await request.get('system/setting/groups') }, }, all: { get: async function (params) { - return await request.get("system/setting/all", { params }); + return await request.get('system/setting/all', { params }) }, }, detail: { get: async function (id) { - return await request.get(`system/setting/${id}`); + return await request.get(`system/setting/${id}`) }, }, add: { post: async function (params) { - return await request.post("system/setting", params); + return await request.post('system/setting', params) }, }, edit: { put: async function (id, params) { - return await request.put(`system/setting/${id}`, params); + return await request.put(`system/setting/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`system/setting/${id}`); + return await request.delete(`system/setting/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post( - "system/setting/batch-delete", - params, - ); + return await request.post('system/setting/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post( - "system/setting/batch-status", - params, - ); + return await request.post('system/setting/batch-status', params) }, }, }, @@ -60,40 +54,40 @@ export default { log: { list: { get: async function (params) { - return await request.get("system/log", { params }); + return await request.get('system/log', { params }) }, }, detail: { get: async function (id) { - return await request.get(`system/log/${id}`); + return await request.get(`system/log/${id}`) }, }, delete: { delete: async function (id) { - return await request.delete(`system/log/${id}`); + return await request.delete(`system/log/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post("system/log/batch-delete", params); + return await request.post('system/log/batch-delete', params) }, }, clear: { post: async function (params) { - return await request.post("system/log/clear", params); + return await request.post('system/log/clear', params) }, }, export: { get: async function (params) { - return await request.get("system/log/export", { + return await request.get('system/log/export', { params, - responseType: "blob", - }); + responseType: 'blob', + }) }, }, statistics: { get: async function (params) { - return await request.get("system/log/statistics", { params }); + return await request.get('system/log/statistics', { params }) }, }, }, @@ -102,48 +96,42 @@ export default { dictionary: { list: { get: async function (params) { - return await request.get("system/dictionary", { params }); + return await request.get('system/dictionary', { params }) }, }, all: { get: async function () { - return await request.get("system/dictionary/all"); + return await request.get('system/dictionary/all') }, }, detail: { get: async function (id) { - return await request.get(`system/dictionary/${id}`); + return await request.get(`system/dictionary/${id}`) }, }, add: { post: async function (params) { - return await request.post("system/dictionary", params); + return await request.post('system/dictionary', params) }, }, edit: { put: async function (id, params) { - return await request.put(`system/dictionary/${id}`, params); + return await request.put(`system/dictionary/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`system/dictionary/${id}`); + return await request.delete(`system/dictionary/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post( - "system/dictionary/batch-delete", - params, - ); + return await request.post('system/dictionary/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post( - "system/dictionary/batch-status", - params, - ); + return await request.post('system/dictionary/batch-status', params) }, }, items: { @@ -151,7 +139,7 @@ export default { get: async function (code) { return await request.get(`system/dictionary/code`, { params: { code }, - }); + }) }, }, }, @@ -161,51 +149,42 @@ export default { dictionaryItem: { list: { get: async function (params) { - return await request.get("system/dictionary-item", { params }); + return await request.get('system/dictionary-item', { params }) }, }, all: { get: async function () { - return await request.get("system/dictionary-item/all"); + return await request.get('system/dictionary-item/all') }, }, detail: { get: async function (id) { - return await request.get(`system/dictionary-item/${id}`); + return await request.get(`system/dictionary-item/${id}`) }, }, add: { post: async function (params) { - return await request.post("system/dictionary-item", params); + return await request.post('system/dictionary-item', params) }, }, edit: { put: async function (id, params) { - return await request.put( - `system/dictionary-item/${id}`, - params, - ); + return await request.put(`system/dictionary-item/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`system/dictionary-item/${id}`); + return await request.delete(`system/dictionary-item/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post( - "system/dictionary-item/batch-delete", - params, - ); + return await request.post('system/dictionary-item/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post( - "system/dictionary-item/batch-status", - params, - ); + return await request.post('system/dictionary-item/batch-status', params) }, }, }, @@ -214,52 +193,52 @@ export default { task: { list: { get: async function (params) { - return await request.get("system/task", { params }); + return await request.get('system/task', { params }) }, }, all: { get: async function () { - return await request.get("system/task/all"); + return await request.get('system/task/all') }, }, detail: { get: async function (id) { - return await request.get(`system/task/${id}`); + return await request.get(`system/task/${id}`) }, }, add: { post: async function (params) { - return await request.post("system/task", params); + return await request.post('system/task', params) }, }, edit: { put: async function (id, params) { - return await request.put(`system/task/${id}`, params); + return await request.put(`system/task/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`system/task/${id}`); + return await request.delete(`system/task/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post("system/task/batch-delete", params); + return await request.post('system/task/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post("system/task/batch-status", params); + return await request.post('system/task/batch-status', params) }, }, run: { post: async function (id) { - return await request.post(`system/task/${id}/run`); + return await request.post(`system/task/${id}/run`) }, }, statistics: { get: async function () { - return await request.get("system/task/statistics"); + return await request.get('system/task/statistics') }, }, }, @@ -268,62 +247,62 @@ export default { city: { list: { get: async function (params) { - return await request.get("system/city", { params }); + return await request.get('system/city', { params }) }, }, tree: { get: async function () { - return await request.get("system/city/tree"); + return await request.get('system/city/tree') }, }, detail: { get: async function (id) { - return await request.get(`system/city/${id}`); + return await request.get(`system/city/${id}`) }, }, children: { get: async function (code) { - return await request.get(`system/city/code/${code}/children`); + return await request.get(`system/city/code/${code}/children`) }, }, provinces: { get: async function () { - return await request.get("system/city/provinces"); + return await request.get('system/city/provinces') }, }, cities: { get: async function (provinceId) { - return await request.get(`system/city/${provinceId}/cities`); + return await request.get(`system/city/${provinceId}/cities`) }, }, districts: { get: async function (cityId) { - return await request.get(`system/city/${cityId}/districts`); + return await request.get(`system/city/${cityId}/districts`) }, }, add: { post: async function (params) { - return await request.post("system/city", params); + return await request.post('system/city', params) }, }, edit: { put: async function (id, params) { - return await request.put(`system/city/${id}`, params); + return await request.put(`system/city/${id}`, params) }, }, delete: { delete: async function (id) { - return await request.delete(`system/city/${id}`); + return await request.delete(`system/city/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post("system/city/batch-delete", params); + return await request.post('system/city/batch-delete', params) }, }, batchStatus: { post: async function (params) { - return await request.post("system/city/batch-status", params); + return await request.post('system/city/batch-status', params) }, }, }, @@ -332,31 +311,31 @@ export default { upload: { single: { post: async function (formData) { - return await request.post("system/upload", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('system/upload', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, multiple: { post: async function (formData) { - return await request.post("system/upload/multiple", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('system/upload/multiple', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, base64: { post: async function (params) { - return await request.post("system/upload/base64", params); + return await request.post('system/upload/base64', params) }, }, delete: { post: async function (params) { - return await request.post("system/upload/delete", params); + return await request.post('system/upload/delete', params) }, }, batchDelete: { post: async function (params) { - return await request.post("system/upload/batch-delete", params); + return await request.post('system/upload/batch-delete', params) }, }, }, @@ -365,78 +344,69 @@ export default { notification: { list: { get: async function (params) { - return await request.get("system/notification", { params }); + return await request.get('system/notification', { params }) }, }, unread: { get: async function (params) { - return await request.get("system/notification/unread", { + return await request.get('system/notification/unread', { params, - }); + }) }, }, unreadCount: { get: async function () { - return await request.get("system/notification/unread-count"); + return await request.get('system/notification/unread-count') }, }, detail: { get: async function (id) { - return await request.get(`system/notification/${id}`); + return await request.get(`system/notification/${id}`) }, }, markAsRead: { post: async function (id) { - return await request.post(`system/notification/${id}/read`); + return await request.post(`system/notification/${id}/read`) }, }, batchMarkAsRead: { post: async function (params) { - return await request.post( - "system/notification/batch-read", - params, - ); + return await request.post('system/notification/batch-read', params) }, }, markAllAsRead: { post: async function () { - return await request.post("system/notification/read-all"); + return await request.post('system/notification/read-all') }, }, delete: { delete: async function (id) { - return await request.delete(`system/notification/${id}`); + return await request.delete(`system/notification/${id}`) }, }, batchDelete: { post: async function (params) { - return await request.post( - "system/notification/batch-delete", - params, - ); + return await request.post('system/notification/batch-delete', params) }, }, clearRead: { post: async function () { - return await request.post("system/notification/clear-read"); + return await request.post('system/notification/clear-read') }, }, statistics: { get: async function () { - return await request.get("system/notification/statistics"); + return await request.get('system/notification/statistics') }, }, send: { post: async function (params) { - return await request.post("system/notification/send", params); + return await request.post('system/notification/send', params) }, }, retryUnsent: { post: async function (params) { - return await request.post( - "system/notification/retry-unsent", - params, - ); + return await request.post('system/notification/retry-unsent', params) }, }, }, @@ -446,78 +416,74 @@ export default { config: { all: { get: async function () { - return await request.get("system/config"); + return await request.get('system/config') }, }, group: { get: async function (params) { - return await request.get("system/config/group", { + return await request.get('system/config/group', { params, - }); + }) }, }, key: { get: async function (params) { - return await request.get("system/config/key", { params }); + return await request.get('system/config/key', { params }) }, }, }, dictionary: { all: { get: async function () { - return await request.get("system/dictionary"); + return await request.get('system/dictionary') }, }, code: { get: async function (params) { - return await request.get("system/dictionary/code", { + return await request.get('system/dictionary/code', { params, - }); + }) }, }, detail: { get: async function (id) { - return await request.get(`system/dictionary/${id}`); + return await request.get(`system/dictionary/${id}`) }, }, }, city: { tree: { get: async function () { - return await request.get("system/city/tree"); + return await request.get('system/city/tree') }, }, provinces: { get: async function () { - return await request.get("system/city/provinces"); + return await request.get('system/city/provinces') }, }, cities: { get: async function (provinceId) { - return await request.get( - `system/city/${provinceId}/cities`, - ); + return await request.get(`system/city/${provinceId}/cities`) }, }, districts: { get: async function (cityId) { - return await request.get( - `system/city/${cityId}/districts`, - ); + return await request.get(`system/city/${cityId}/districts`) }, }, detail: { get: async function (id) { - return await request.get(`system/city/${id}`); + return await request.get(`system/city/${id}`) }, }, }, upload: { post: async function (formData) { - return await request.post("system/upload", formData, { - headers: { "Content-Type": "multipart/form-data" }, - }); + return await request.post('system/upload', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) }, }, }, -}; +} diff --git a/resources/admin/src/assets/style/app.scss b/resources/admin/src/assets/style/app.scss index 6ac0bf4..796fd91 100644 --- a/resources/admin/src/assets/style/app.scss +++ b/resources/admin/src/assets/style/app.scss @@ -5,9 +5,7 @@ } body { - font-family: - -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", - Arial, sans-serif; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } diff --git a/resources/admin/src/assets/style/auth.scss b/resources/admin/src/assets/style/auth.scss index b48b220..05e69a5 100644 --- a/resources/admin/src/assets/style/auth.scss +++ b/resources/admin/src/assets/style/auth.scss @@ -34,52 +34,29 @@ display: flex; align-items: center; justify-content: center; - background: linear-gradient( - 135deg, - var(--bg-gradient-start) 0%, - var(--bg-gradient-end) 100% - ); + background: linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%); position: relative; overflow: hidden; // Tech pattern background &::before { - content: ""; + content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; - background-image: - radial-gradient( - circle at 20% 50%, - rgba(255, 107, 53, 0.03) 0%, - transparent 50% - ), - radial-gradient( - circle at 80% 20%, - rgba(255, 179, 71, 0.05) 0%, - transparent 40% - ), - radial-gradient( - circle at 40% 80%, - rgba(255, 127, 80, 0.04) 0%, - transparent 40% - ); + background-image: radial-gradient(circle at 20% 50%, rgba(255, 107, 53, 0.03) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255, 179, 71, 0.05) 0%, transparent 40%), radial-gradient(circle at 40% 80%, rgba(255, 127, 80, 0.04) 0%, transparent 40%); pointer-events: none; } // Animated tech elements &::after { - content: ""; + content: ''; position: absolute; width: 600px; height: 600px; - background: radial-gradient( - circle, - rgba(255, 107, 53, 0.08) 0%, - transparent 70% - ); + background: radial-gradient(circle, rgba(255, 107, 53, 0.08) 0%, transparent 70%); border-radius: 50%; top: -200px; right: -200px; @@ -114,18 +91,14 @@ // Tech accent line &::before { - content: ""; + content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 4px; - background: linear-gradient( - 90deg, - var(--auth-primary), - var(--auth-secondary) - ); + background: linear-gradient(90deg, var(--auth-primary), var(--auth-secondary)); border-radius: 0 0 4px 4px; } } @@ -139,11 +112,7 @@ font-weight: 700; color: var(--text-primary); margin-bottom: 8px; - background: linear-gradient( - 135deg, - var(--auth-primary-dark), - var(--auth-primary) - ); + background: linear-gradient(135deg, var(--auth-primary-dark), var(--auth-primary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; @@ -220,20 +189,12 @@ transition: all 0.3s ease; &.ant-btn-primary { - background: linear-gradient( - 135deg, - var(--auth-primary), - var(--auth-primary-dark) - ); + background: linear-gradient(135deg, var(--auth-primary), var(--auth-primary-dark)); border: none; box-shadow: 0 8px 24px rgba(255, 107, 53, 0.35); &:hover { - background: linear-gradient( - 135deg, - var(--auth-primary-light), - var(--auth-primary) - ); + background: linear-gradient(135deg, var(--auth-primary-light), var(--auth-primary)); transform: translateY(-2px); box-shadow: 0 12px 32px rgba(255, 107, 53, 0.45); } @@ -291,7 +252,7 @@ &::before, &::after { - content: ""; + content: ''; flex: 1; height: 1px; background: var(--border-color); diff --git a/resources/admin/src/boot.js b/resources/admin/src/boot.js index c8ef6dd..0b53f85 100644 --- a/resources/admin/src/boot.js +++ b/resources/admin/src/boot.js @@ -1,14 +1,14 @@ -import * as AIcons from "@ant-design/icons-vue"; -import * as ElementPlusIconsVue from "@element-plus/icons-vue"; +import * as AIcons from '@ant-design/icons-vue' +import * as ElementPlusIconsVue from '@element-plus/icons-vue' export default { install(app) { for (let icon in AIcons) { - app.component(`${icon}`, AIcons[icon]); + app.component(`${icon}`, AIcons[icon]) } for (const [key, component] of Object.entries(ElementPlusIconsVue)) { - app.component(`El${key}`, component); + app.component(`El${key}`, component) } }, -}; +} diff --git a/resources/admin/src/components/scCron/index.vue b/resources/admin/src/components/scCron/index.vue index 571b34a..d655175 100644 --- a/resources/admin/src/components/scCron/index.vue +++ b/resources/admin/src/components/scCron/index.vue @@ -1,32 +1,15 @@ diff --git a/resources/admin/src/pages/auth/department/index.vue b/resources/admin/src/pages/auth/department/index.vue index e96102b..8112af4 100644 --- a/resources/admin/src/pages/auth/department/index.vue +++ b/resources/admin/src/pages/auth/department/index.vue @@ -4,18 +4,8 @@
- - + + 正常 禁用 @@ -35,17 +25,11 @@ 新增 - + 启用 - + 禁用 @@ -57,22 +41,16 @@ diff --git a/resources/admin/src/pages/auth/role/index.vue b/resources/admin/src/pages/auth/role/index.vue index 9e1b060..20b7e51 100644 --- a/resources/admin/src/pages/auth/role/index.vue +++ b/resources/admin/src/pages/auth/role/index.vue @@ -3,12 +3,7 @@
- + 搜索 @@ -27,16 +22,10 @@ @@ -47,15 +36,9 @@ @@ -66,38 +49,16 @@
- + diff --git a/resources/admin/src/pages/auth/user/components/BatchRoleDialog.vue b/resources/admin/src/pages/auth/user/components/BatchRoleDialog.vue index d83c51b..b426d73 100644 --- a/resources/admin/src/pages/auth/user/components/BatchRoleDialog.vue +++ b/resources/admin/src/pages/auth/user/components/BatchRoleDialog.vue @@ -1,110 +1,94 @@ diff --git a/resources/admin/src/pages/auth/user/components/DepartmentDialog.vue b/resources/admin/src/pages/auth/user/components/DepartmentDialog.vue index 45df8c0..9d19794 100644 --- a/resources/admin/src/pages/auth/user/components/DepartmentDialog.vue +++ b/resources/admin/src/pages/auth/user/components/DepartmentDialog.vue @@ -1,16 +1,6 @@ @@ -188,119 +129,57 @@
- + - + - + - + - + - + diff --git a/resources/admin/src/pages/home/components/QuickActions.vue b/resources/admin/src/pages/home/components/QuickActions.vue index 9a0f26b..50082f4 100644 --- a/resources/admin/src/pages/home/components/QuickActions.vue +++ b/resources/admin/src/pages/home/components/QuickActions.vue @@ -8,11 +8,7 @@
diff --git a/resources/admin/src/pages/system/dictionarie/index.vue b/resources/admin/src/pages/system/dictionarie/index.vue deleted file mode 100644 index 6bd46b9..0000000 --- a/resources/admin/src/pages/system/dictionarie/index.vue +++ /dev/null @@ -1,766 +0,0 @@ - - - - - diff --git a/resources/admin/src/pages/system/dictionary/components/DictionaryDialog.vue b/resources/admin/src/pages/system/dictionary/components/DictionaryDialog.vue new file mode 100644 index 0000000..ffd5781 --- /dev/null +++ b/resources/admin/src/pages/system/dictionary/components/DictionaryDialog.vue @@ -0,0 +1,254 @@ + + + + + diff --git a/resources/admin/src/pages/system/dictionarie/components/ItemDialog.vue b/resources/admin/src/pages/system/dictionary/components/ItemDialog.vue similarity index 52% rename from resources/admin/src/pages/system/dictionarie/components/ItemDialog.vue rename to resources/admin/src/pages/system/dictionary/components/ItemDialog.vue index f964dd3..652daa3 100644 --- a/resources/admin/src/pages/system/dictionarie/components/ItemDialog.vue +++ b/resources/admin/src/pages/system/dictionary/components/ItemDialog.vue @@ -1,103 +1,46 @@ diff --git a/resources/admin/src/pages/system/log/components/DetailDialog.vue b/resources/admin/src/pages/system/log/components/DetailDialog.vue index ca37cf3..4d7ede3 100644 --- a/resources/admin/src/pages/system/log/components/DetailDialog.vue +++ b/resources/admin/src/pages/system/log/components/DetailDialog.vue @@ -1,22 +1,17 @@ diff --git a/resources/admin/src/pages/system/setting/components/ConfigForm.vue b/resources/admin/src/pages/system/setting/components/ConfigForm.vue deleted file mode 100644 index 891ec68..0000000 --- a/resources/admin/src/pages/system/setting/components/ConfigForm.vue +++ /dev/null @@ -1,291 +0,0 @@ - - - - - diff --git a/resources/admin/src/pages/system/setting/components/SaveConfigDialog.vue b/resources/admin/src/pages/system/setting/components/SaveConfigDialog.vue new file mode 100644 index 0000000..9a89744 --- /dev/null +++ b/resources/admin/src/pages/system/setting/components/SaveConfigDialog.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/resources/admin/src/pages/system/setting/components/SaveDialog.vue b/resources/admin/src/pages/system/setting/components/SaveDialog.vue deleted file mode 100644 index 55776de..0000000 --- a/resources/admin/src/pages/system/setting/components/SaveDialog.vue +++ /dev/null @@ -1,424 +0,0 @@ - - - - - diff --git a/resources/admin/src/pages/system/setting/index.vue b/resources/admin/src/pages/system/setting/index.vue index 55722cf..3bdb72f 100644 --- a/resources/admin/src/pages/system/setting/index.vue +++ b/resources/admin/src/pages/system/setting/index.vue @@ -1,472 +1,462 @@