From 15d0502bb1892cf80bb82e4c86a2e0bef94ea3d3 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Wed, 4 Feb 2026 01:13:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= =?UTF-8?q?=EF=BC=8C=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/monitor/job.js | 92 +++ src/api/monitor/jobLog.js | 26 + src/api/system/config.js | 60 ++ src/api/system/menu.js | 60 ++ src/api/system/notice.js | 44 ++ src/api/system/role.js | 57 ++ src/api/system/user.js | 2 +- src/components/systemBtn/systemBtn.vue | 78 +++ src/pages.json | 87 ++- .../pages/system/config/addEdit.vue | 218 ++++++ .../pages/system/config/details.vue | 189 +++++ src/pages_mine/pages/system/config/list.vue | 587 ++++++++++++++++ src/pages_mine/pages/system/dept/list.vue | 2 +- src/pages_mine/pages/system/dict/list.vue | 2 +- src/pages_mine/pages/system/dictData/list.vue | 2 +- src/pages_mine/pages/system/index.vue | 19 +- src/pages_mine/pages/system/job/addEdit.vue | 283 ++++++++ src/pages_mine/pages/system/job/details.vue | 282 ++++++++ src/pages_mine/pages/system/job/list.vue | 653 ++++++++++++++++++ .../pages/system/logininfor/list.vue | 1 + src/pages_mine/pages/system/menu/addEdit.vue | 424 ++++++++++++ src/pages_mine/pages/system/menu/list.vue | 631 +++++++++++++++++ .../pages/system/notice/addEdit.vue | 587 ++++++++++++++++ .../pages/system/notice/details.vue | 299 ++++++++ src/pages_mine/pages/system/notice/list.vue | 617 +++++++++++++++++ src/pages_mine/pages/system/operlog/list.vue | 2 +- src/pages_mine/pages/system/post/list.vue | 2 +- src/pages_mine/pages/system/role/addEdit.vue | 524 ++++++++++++++ src/pages_mine/pages/system/role/list.vue | 580 ++++++++++++++++ src/pages_mine/pages/system/user/addEdit.vue | 353 +++++++++- src/pages_mine/pages/system/user/details.vue | 278 +++++--- src/pages_mine/pages/system/user/list.vue | 2 +- 32 files changed, 6915 insertions(+), 128 deletions(-) create mode 100644 src/api/monitor/job.js create mode 100644 src/api/monitor/jobLog.js create mode 100644 src/api/system/config.js create mode 100644 src/api/system/menu.js create mode 100644 src/api/system/notice.js create mode 100644 src/api/system/role.js create mode 100644 src/components/systemBtn/systemBtn.vue create mode 100644 src/pages_mine/pages/system/config/addEdit.vue create mode 100644 src/pages_mine/pages/system/config/details.vue create mode 100644 src/pages_mine/pages/system/config/list.vue create mode 100644 src/pages_mine/pages/system/job/addEdit.vue create mode 100644 src/pages_mine/pages/system/job/details.vue create mode 100644 src/pages_mine/pages/system/job/list.vue create mode 100644 src/pages_mine/pages/system/menu/addEdit.vue create mode 100644 src/pages_mine/pages/system/menu/list.vue create mode 100644 src/pages_mine/pages/system/notice/addEdit.vue create mode 100644 src/pages_mine/pages/system/notice/details.vue create mode 100644 src/pages_mine/pages/system/notice/list.vue create mode 100644 src/pages_mine/pages/system/role/addEdit.vue create mode 100644 src/pages_mine/pages/system/role/list.vue diff --git a/src/api/monitor/job.js b/src/api/monitor/job.js new file mode 100644 index 0000000..370a4e1 --- /dev/null +++ b/src/api/monitor/job.js @@ -0,0 +1,92 @@ +import request from '@/utils/request' + +// 查询定时任务列表 +export function listJob(query) { + return request({ + url: '/schedule/job/list', + method: 'get', + params: query + }) +} + +// 查询定时任务详细 +export function getJob(jobId) { + return request({ + url: '/schedule/job/' + jobId, + method: 'get' + }) +} + +// 新增定时任务 +export function addJob(data) { + return request({ + url: '/schedule/job', + method: 'post', + data: data + }) +} + +// 修改定时任务 +export function updateJob(data) { + return request({ + url: '/schedule/job', + method: 'put', + data: data + }) +} + +// 删除定时任务 +export function delJob(jobId) { + return request({ + url: '/schedule/job/' + jobId, + method: 'delete' + }) +} + +// 导出定时任务 +export function exportJob(query) { + return request({ + url: '/schedule/job/export', + method: 'get', + params: query + }) +} + +// 定时任务立即执行一次 +export function runJob(jobId, jobGroup) { + const data = { + jobId, + jobGroup + } + return request({ + url: '/schedule/job/run', + method: 'put', + data: data + }) +} + +// 启动定时任务 +export function startJob(jobId, jobGroup) { + const data = { + jobId, + jobGroup + } + return request({ + url: '/schedule/job/changeStatus', + method: 'put', + data: { ...data, status: '0' } + }) +} + +// 停止定时任务 +export function stopJob(jobId, jobGroup) { + const data = { + jobId, + jobGroup + } + return request({ + url: '/schedule/job/changeStatus', + method: 'put', + data: { ...data, status: '1' } + }) +} \ No newline at end of file diff --git a/src/api/monitor/jobLog.js b/src/api/monitor/jobLog.js new file mode 100644 index 0000000..5987636 --- /dev/null +++ b/src/api/monitor/jobLog.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 查询调度日志列表 +export function listJobLog(query) { + return request({ + url: '/schedule/job/log/list', + method: 'get', + params: query + }) +} + +// 删除调度日志 +export function delJobLog(jobLogId) { + return request({ + url: '/schedule/job/log/' + jobLogId, + method: 'delete' + }) +} + +// 清空调度日志 +export function cleanJobLog() { + return request({ + url: '/schedule/job/log/clean', + method: 'delete' + }) +} \ No newline at end of file diff --git a/src/api/system/config.js b/src/api/system/config.js new file mode 100644 index 0000000..a404d82 --- /dev/null +++ b/src/api/system/config.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function listConfig(query) { + return request({ + url: '/system/config/list', + method: 'get', + params: query + }) +} + +// 查询参数详细 +export function getConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'get' + }) +} + +// 根据参数键名查询参数值 +export function getConfigKey(configKey) { + return request({ + url: '/system/config/configKey/' + configKey, + method: 'get' + }) +} + +// 新增参数配置 +export function addConfig(data) { + return request({ + url: '/system/config', + method: 'post', + data: data + }) +} + +// 修改参数配置 +export function updateConfig(data) { + return request({ + url: '/system/config', + method: 'put', + data: data + }) +} + +// 删除参数配置 +export function delConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'delete' + }) +} + +// 刷新参数缓存 +export function refreshCache() { + return request({ + url: '/system/config/refreshCache', + method: 'delete' + }) +} diff --git a/src/api/system/menu.js b/src/api/system/menu.js new file mode 100644 index 0000000..87af6c3 --- /dev/null +++ b/src/api/system/menu.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询菜单列表 +export function listMenu(query) { + return request({ + url: '/system/menu/list', + method: 'get', + params: query + }) +} + +// 查询菜单详细 +export function getMenu(menuId) { + return request({ + url: '/system/menu/' + menuId, + method: 'get' + }) +} + +// 查询菜单下拉树结构 +export function treeselect() { + return request({ + url: '/system/menu/treeselect', + method: 'get' + }) +} + +// 根据角色ID查询菜单下拉树结构 +export function roleMenuTreeselect(roleId) { + return request({ + url: '/system/menu/roleMenuTreeselect/' + roleId, + method: 'get' + }) +} + +// 新增菜单 +export function addMenu(data) { + return request({ + url: '/system/menu', + method: 'post', + data: data + }) +} + +// 修改菜单 +export function updateMenu(data) { + return request({ + url: '/system/menu', + method: 'put', + data: data + }) +} + +// 删除菜单 +export function delMenu(menuId) { + return request({ + url: '/system/menu/' + menuId, + method: 'delete' + }) +} diff --git a/src/api/system/notice.js b/src/api/system/notice.js new file mode 100644 index 0000000..c274ea5 --- /dev/null +++ b/src/api/system/notice.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询公告列表 +export function listNotice(query) { + return request({ + url: '/system/notice/list', + method: 'get', + params: query + }) +} + +// 查询公告详细 +export function getNotice(noticeId) { + return request({ + url: '/system/notice/' + noticeId, + method: 'get' + }) +} + +// 新增公告 +export function addNotice(data) { + return request({ + url: '/system/notice', + method: 'post', + data: data + }) +} + +// 修改公告 +export function updateNotice(data) { + return request({ + url: '/system/notice', + method: 'put', + data: data + }) +} + +// 删除公告 +export function delNotice(noticeId) { + return request({ + url: '/system/notice/' + noticeId, + method: 'delete' + }) +} \ No newline at end of file diff --git a/src/api/system/role.js b/src/api/system/role.js new file mode 100644 index 0000000..44ca836 --- /dev/null +++ b/src/api/system/role.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +// 查询角色列表 +export function listRole(query) { + return request({ + url: '/system/role/list', + method: 'get', + params: query + }) +} + +// 查询角色详细 +export function getRole(roleId) { + return request({ + url: '/system/role/' + roleId, + method: 'get' + }) +} + +// 新增角色 +export function addRole(data) { + return request({ + url: '/system/role', + method: 'post', + data: data + }) +} + +// 修改角色 +export function updateRole(data) { + return request({ + url: '/system/role', + method: 'put', + data: data + }) +} + +// 删除角色 +export function delRole(roleId) { + return request({ + url: '/system/role/' + roleId, + method: 'delete' + }) +} + +// 角色状态修改 +export function changeRoleStatus(roleId, status) { + const data = { + roleId, + status + } + return request({ + url: '/system/role/changeStatus', + method: 'put', + data: data + }) +} diff --git a/src/api/system/user.js b/src/api/system/user.js index a9d8c6e..470d538 100644 --- a/src/api/system/user.js +++ b/src/api/system/user.js @@ -12,7 +12,7 @@ export function listUser(query) { // 查询用户详细 export function getUser(userId) { return request({ - url: '/system/user/' + userId, + url: '/system/user/' + (userId || ''), method: 'get' }) } diff --git a/src/components/systemBtn/systemBtn.vue b/src/components/systemBtn/systemBtn.vue new file mode 100644 index 0000000..c90a342 --- /dev/null +++ b/src/components/systemBtn/systemBtn.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/pages.json b/src/pages.json index c383d04..70517c2 100644 --- a/src/pages.json +++ b/src/pages.json @@ -8,7 +8,8 @@ "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue", "qiun-(.*)": "@/components/qiun-data-charts/components/qiun-$1/qiun-$1.vue", - "statisticBtn": "@/components/statisticBtn/statisticBtn.vue" + "statisticBtn": "@/components/statisticBtn/statisticBtn.vue", + "systemBtn": "@/components/systemBtn/systemBtn.vue" } }, "pages": [ @@ -897,15 +898,13 @@ { "path": "system/user/addEdit", "style": { - "navigationBarTitleText": "用户管理", - "navigationStyle": "custom" + "navigationBarTitleText": "用户管理" } }, { "path": "system/user/details", "style": { - "navigationBarTitleText": "用户详情", - "navigationStyle": "custom" + "navigationBarTitleText": "用户详情" } }, { @@ -949,6 +948,84 @@ "style": { "navigationBarTitleText": "操作日志" } + }, + { + "path": "system/config/list", + "style": { + "navigationBarTitleText": "参数配置" + } + }, + { + "path": "system/config/addEdit", + "style": { + "navigationBarTitleText": "参数配置" + } + }, + { + "path": "system/config/details", + "style": { + "navigationBarTitleText": "参数详情" + } + }, + { + "path": "system/menu/list", + "style": { + "navigationBarTitleText": "菜单管理" + } + }, + { + "path": "system/menu/addEdit", + "style": { + "navigationBarTitleText": "菜单管理" + } + }, + { + "path": "system/role/list", + "style": { + "navigationBarTitleText": "角色管理" + } + }, + { + "path": "system/role/addEdit", + "style": { + "navigationBarTitleText": "角色管理" + } + }, + { + "path": "system/notice/list", + "style": { + "navigationBarTitleText": "通知公告" + } + }, + { + "path": "system/notice/addEdit", + "style": { + "navigationBarTitleText": "通知公告" + } + }, + { + "path": "system/notice/details", + "style": { + "navigationBarTitleText": "公告详情" + } + }, + { + "path": "system/job/list", + "style": { + "navigationBarTitleText": "定时任务" + } + }, + { + "path": "system/job/addEdit", + "style": { + "navigationBarTitleText": "定时任务" + } + }, + { + "path": "system/job/details", + "style": { + "navigationBarTitleText": "任务详情" + } } ] }, diff --git a/src/pages_mine/pages/system/config/addEdit.vue b/src/pages_mine/pages/system/config/addEdit.vue new file mode 100644 index 0000000..62afb08 --- /dev/null +++ b/src/pages_mine/pages/system/config/addEdit.vue @@ -0,0 +1,218 @@ + + + + + + + diff --git a/src/pages_mine/pages/system/config/details.vue b/src/pages_mine/pages/system/config/details.vue new file mode 100644 index 0000000..d461f60 --- /dev/null +++ b/src/pages_mine/pages/system/config/details.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages_mine/pages/system/config/list.vue b/src/pages_mine/pages/system/config/list.vue new file mode 100644 index 0000000..86954ec --- /dev/null +++ b/src/pages_mine/pages/system/config/list.vue @@ -0,0 +1,587 @@ + + + + + diff --git a/src/pages_mine/pages/system/dept/list.vue b/src/pages_mine/pages/system/dept/list.vue index b21d3ad..c32d970 100644 --- a/src/pages_mine/pages/system/dept/list.vue +++ b/src/pages_mine/pages/system/dept/list.vue @@ -92,7 +92,7 @@ - + diff --git a/src/pages_mine/pages/system/dict/list.vue b/src/pages_mine/pages/system/dict/list.vue index 75009d4..0e565f9 100644 --- a/src/pages_mine/pages/system/dict/list.vue +++ b/src/pages_mine/pages/system/dict/list.vue @@ -91,7 +91,7 @@ - + diff --git a/src/pages_mine/pages/system/dictData/list.vue b/src/pages_mine/pages/system/dictData/list.vue index e956120..a6202d3 100644 --- a/src/pages_mine/pages/system/dictData/list.vue +++ b/src/pages_mine/pages/system/dictData/list.vue @@ -108,7 +108,7 @@ - + diff --git a/src/pages_mine/pages/system/index.vue b/src/pages_mine/pages/system/index.vue index 0860cec..a23f6f2 100644 --- a/src/pages_mine/pages/system/index.vue +++ b/src/pages_mine/pages/system/index.vue @@ -26,26 +26,31 @@ import { ref } from "vue"; const systemGridList = ref([ { path: '/pages_mine/pages/system/user/list', text: '用户管理', icon: 'person', color: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)' }, - { path: '/pages/system/role/index', text: '角色管理', icon: 'staff', color: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)' }, - { path: '/pages/system/menu/index', text: '菜单管理', icon: 'list', color: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)' }, + { path: '/pages_mine/pages/system/role/list', text: '角色管理', icon: 'staff', color: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)' }, + { path: '/pages_mine/pages/system/menu/list', text: '菜单管理', icon: 'list', color: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)' }, { path: '/pages_mine/pages/system/dept/list', text: '部门管理', icon: 'chat', color: 'linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)' }, { path: '/pages_mine/pages/system/post/list', text: '岗位管理', icon: 'contact', color: 'linear-gradient(135deg, #fd79a8 0%, #e84393 100%)' }, { path: '/pages_mine/pages/system/dict/list', text: '字典管理', icon: 'bars', color: 'linear-gradient(135deg, #f6d365 0%, #fda085 100%)' }, - { path: '/pages/system/config/index', text: '参数设置', icon: 'gear', color: 'linear-gradient(135deg, #5f72bd 0%, #9b23ea 100%)' }, - { path: '/pages/system/notice/index', text: '通知公告', icon: 'notification', color: 'linear-gradient(135deg, #0be881 0%, #0fbcf9 100%)' }, - { path: '/pages/system/job/index', text: '定时任务', icon: 'calendar', color: 'linear-gradient(135deg, #6366f1 0%, #a855f7 100%)' }, + { path: '/pages_mine/pages/system/config/list', text: '参数配置', icon: 'gear', color: 'linear-gradient(135deg, #5f72bd 0%, #9b23ea 100%)' }, + { path: '/pages_mine/pages/system/notice/list', text: '通知公告', icon: 'notification', color: 'linear-gradient(135deg, #0be881 0%, #0fbcf9 100%)' }, + { path: '/pages_mine/pages/system/job/list', text: '定时任务', icon: 'calendar', color: 'linear-gradient(135deg, #6366f1 0%, #a855f7 100%)' }, { path: '/pages_mine/pages/system/operlog/list', text: '操作日志', icon: 'compose', color: 'linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%)' }, { path: '/pages_mine/pages/system/logininfor/list', text: '登录日志', icon: 'eye', color: 'linear-gradient(135deg, #00d2ff 0%, #3a7bd5 100%)' } ]) function navigateTo(path) { - // 字典管理、登录日志、用户管理、岗位管理、部门管理、操作日志已开发完成,可以跳转 + // 字典管理、登录日志、用户管理、岗位管理、部门管理、操作日志、菜单管理、角色管理、参数配置、通知公告、定时任务已开发完成,可以跳转 if (path === '/pages_mine/pages/system/dict/list' || path === '/pages_mine/pages/system/logininfor/list' || path === '/pages_mine/pages/system/user/list' || path === '/pages_mine/pages/system/post/list' || path === '/pages_mine/pages/system/dept/list' || - path === '/pages_mine/pages/system/operlog/list') { + path === '/pages_mine/pages/system/operlog/list' || + path === '/pages_mine/pages/system/menu/list' || + path === '/pages_mine/pages/system/role/list' || + path === '/pages_mine/pages/system/config/list' || + path === '/pages_mine/pages/system/notice/list' || + path === '/pages_mine/pages/system/job/list') { uni.navigateTo({ url: path }); diff --git a/src/pages_mine/pages/system/job/addEdit.vue b/src/pages_mine/pages/system/job/addEdit.vue new file mode 100644 index 0000000..dbec3f6 --- /dev/null +++ b/src/pages_mine/pages/system/job/addEdit.vue @@ -0,0 +1,283 @@ + + + + + + + \ No newline at end of file diff --git a/src/pages_mine/pages/system/job/details.vue b/src/pages_mine/pages/system/job/details.vue new file mode 100644 index 0000000..8f6af20 --- /dev/null +++ b/src/pages_mine/pages/system/job/details.vue @@ -0,0 +1,282 @@ + + + + + \ No newline at end of file diff --git a/src/pages_mine/pages/system/job/list.vue b/src/pages_mine/pages/system/job/list.vue new file mode 100644 index 0000000..d87131d --- /dev/null +++ b/src/pages_mine/pages/system/job/list.vue @@ -0,0 +1,653 @@ + + + + + \ No newline at end of file diff --git a/src/pages_mine/pages/system/logininfor/list.vue b/src/pages_mine/pages/system/logininfor/list.vue index b9a6602..144770f 100644 --- a/src/pages_mine/pages/system/logininfor/list.vue +++ b/src/pages_mine/pages/system/logininfor/list.vue @@ -93,6 +93,7 @@ @confirm="confirmEndDate" @cancel="showEndDate = false"> + + + + + diff --git a/src/pages_mine/pages/system/menu/list.vue b/src/pages_mine/pages/system/menu/list.vue new file mode 100644 index 0000000..9a90632 --- /dev/null +++ b/src/pages_mine/pages/system/menu/list.vue @@ -0,0 +1,631 @@ + + + + + diff --git a/src/pages_mine/pages/system/notice/addEdit.vue b/src/pages_mine/pages/system/notice/addEdit.vue new file mode 100644 index 0000000..60b8544 --- /dev/null +++ b/src/pages_mine/pages/system/notice/addEdit.vue @@ -0,0 +1,587 @@ + + + + + + + \ No newline at end of file diff --git a/src/pages_mine/pages/system/notice/details.vue b/src/pages_mine/pages/system/notice/details.vue new file mode 100644 index 0000000..773fec4 --- /dev/null +++ b/src/pages_mine/pages/system/notice/details.vue @@ -0,0 +1,299 @@ + + + + + \ No newline at end of file diff --git a/src/pages_mine/pages/system/notice/list.vue b/src/pages_mine/pages/system/notice/list.vue new file mode 100644 index 0000000..9ddd0f9 --- /dev/null +++ b/src/pages_mine/pages/system/notice/list.vue @@ -0,0 +1,617 @@ + + + + + \ No newline at end of file diff --git a/src/pages_mine/pages/system/operlog/list.vue b/src/pages_mine/pages/system/operlog/list.vue index 5520b0e..849f79d 100644 --- a/src/pages_mine/pages/system/operlog/list.vue +++ b/src/pages_mine/pages/system/operlog/list.vue @@ -132,7 +132,7 @@ @confirm="confirmEndDate" @cancel="showEndDate = false"> - + diff --git a/src/pages_mine/pages/system/post/list.vue b/src/pages_mine/pages/system/post/list.vue index a6a5260..b05c2a7 100644 --- a/src/pages_mine/pages/system/post/list.vue +++ b/src/pages_mine/pages/system/post/list.vue @@ -91,7 +91,7 @@ - + diff --git a/src/pages_mine/pages/system/role/addEdit.vue b/src/pages_mine/pages/system/role/addEdit.vue new file mode 100644 index 0000000..877b94a --- /dev/null +++ b/src/pages_mine/pages/system/role/addEdit.vue @@ -0,0 +1,524 @@ + + + + + + + diff --git a/src/pages_mine/pages/system/role/list.vue b/src/pages_mine/pages/system/role/list.vue new file mode 100644 index 0000000..3bf39c7 --- /dev/null +++ b/src/pages_mine/pages/system/role/list.vue @@ -0,0 +1,580 @@ + + + + + diff --git a/src/pages_mine/pages/system/user/addEdit.vue b/src/pages_mine/pages/system/user/addEdit.vue index 2de0809..43f836f 100644 --- a/src/pages_mine/pages/system/user/addEdit.vue +++ b/src/pages_mine/pages/system/user/addEdit.vue @@ -44,6 +44,50 @@ + + + + + + + + + + + + + 已选择的岗位: + + + {{ name }} + + + + + + + + + + + + 已选择的角色: + + + {{ name }} + + + + @@ -62,31 +106,89 @@ - + + + + + + + 选择岗位 + 已选择 {{ tempPostIds.length }} 项 + + + + + + + + + + 取消 + 确定 + + + + + + + + + 选择角色 + 已选择 {{ tempRoleIds.length }} 项 + + + + + + + + + + 取消 + 确定 + + + diff --git a/src/pages_mine/pages/system/user/details.vue b/src/pages_mine/pages/system/user/details.vue index 99b3fe5..f35988c 100644 --- a/src/pages_mine/pages/system/user/details.vue +++ b/src/pages_mine/pages/system/user/details.vue @@ -1,46 +1,72 @@