From 062a8f259faa30f2b7200adfb093b2c716f4f8ab Mon Sep 17 00:00:00 2001 From: GYYM <704080176@qq.com> Date: Wed, 16 Oct 2024 11:27:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=BB=98=E5=88=B6=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/role/interface/index.ts | 52 +++++ frontend/src/api/role/role.ts | 72 ++++++ frontend/src/api/role/roleData.ts | 70 ++++++ frontend/src/views/authority/role/index.vue | 242 ++++++++++++++++++++ 4 files changed, 436 insertions(+) create mode 100644 frontend/src/api/role/interface/index.ts create mode 100644 frontend/src/api/role/role.ts create mode 100644 frontend/src/api/role/roleData.ts create mode 100644 frontend/src/views/authority/role/index.vue diff --git a/frontend/src/api/role/interface/index.ts b/frontend/src/api/role/interface/index.ts new file mode 100644 index 0000000..3c6b1bb --- /dev/null +++ b/frontend/src/api/role/interface/index.ts @@ -0,0 +1,52 @@ +import type { ReqPage } from '@/api/interface' + +// 角色管理模块 +export namespace Role { + + export interface Permission{ + id: string; //权限名称 + name: string; //权限ID + havePermission:boolean; //是否拥有该权限 + } + + // 角色列表 + export interface ResRoleList { + id: string; //角色类型ID + rolename: string; //角色类型名称 + status: number; //角色类型状态 + describe:string; //角色描述 + permissionList?:Permission[]; //角色权限列表 + } + + // 角色参数 + export interface ReqRoleParams extends ReqPage { + id: string; //角色类型ID + rolename: string; //角色类型名称 + status: number; //角色类型状态 + describe:string; //角色描述 + permissionList?:Permission[]; //角色权限列表 + } + // 角色字典 + export interface ResStatus { + roleLabel: string; + roleValue: number; + } + + // export interface ResGender { + // genderLabel: string; + // genderValue: number; + // } + + //角色权限列表 + export interface ResPermissionList { + id: string; + name: string; + permissionList?: Permission[]; + } + + // export interface ResRole { + // id: string; + // name: string; + // children?: ResDepartment[]; + // } + } \ No newline at end of file diff --git a/frontend/src/api/role/role.ts b/frontend/src/api/role/role.ts new file mode 100644 index 0000000..62bb047 --- /dev/null +++ b/frontend/src/api/role/role.ts @@ -0,0 +1,72 @@ +import { ResPage } from '@/api/interface' +import { Role } from './interface' +import { ADMIN as rePrefix } from '@/api/config/serviceName' +import http from '@/api' + +/** + * @name 角色管理模块 + */ +// 获取角色列表 +export const getRoleList = (params: Role.ReqRoleParams) => { + return http.post>(`${rePrefix}/role/list`, params) +} + +// // 获取树形用户列表 +// export const getRoleTreeList = (params: Role.ReqRoleParams) => { +// return http.post>(`${rePrefix}/role/tree/list`, params) +// } + +// 新增角色 +export const addRole = (params: { id: string }) => { + return http.post(`${rePrefix}/role/add`, params) +} + +// 批量添加角色 +export const BatchAddRole = (params: FormData) => { + return http.post(`${rePrefix}/role/import`, params) +} + +// 编辑角色 +export const editRole = (params: { id: string }) => { + return http.post(`${rePrefix}/role/edit`, params) +} + +// 删除角色 +export const deleteRole = (params: { id: string[] }) => { + return http.post(`${rePrefix}/role/delete`, params) +} + +// 切换角色状态 +export const changeRoleStatus = (params: { id: string; status: number }) => { + return http.post(`${rePrefix}/role/change`, params) +} + +// 重置用户密码 +// export const resetUserPassWord = (params: { id: string }) => { +// return http.post(`${rePrefix}/role/rest_password`, params) +// } + +// 导出角色数据 +export const exportRoleInfo = (params: Role.ReqRoleParams) => { + return http.download(`${rePrefix}/role/export`, params) +} + +// 获取角色状态字典 +export const getRoleStatus = () => { + return http.get(`${rePrefix}/role/status`) +} + +// 获取用户性别字典 +// export const getUserGender = () => { +// return http.get(`${rePrefix}/user/gender`) +// } + +// 获取角色权限列表 +export const getRoleDepartment = () => { + return http.get(`${rePrefix}/role/permission`) +} + +// 获取用户角色字典 +// export const getUserRole = () => { +// return http.get(`${rePrefix}/user/role`) +// } diff --git a/frontend/src/api/role/roleData.ts b/frontend/src/api/role/roleData.ts new file mode 100644 index 0000000..0861067 --- /dev/null +++ b/frontend/src/api/role/roleData.ts @@ -0,0 +1,70 @@ +const data = [ + { + rolename:"操作员", + id: 'operator_role', + status:1, + describe:"可以对待检设备的台账进行操作并执行检测功能", + permissionList: [ + { + name: "台账管理", + id: "dataManager", + havePermission: false, + }, + { + name: "系统配置", + id: "sysManager", + havePermission: false, + }, + { + name: "设备检测", + id: "devTest", + havePermission: true, + }, + ]}, + { + rolename:"管理员", + id: 'manager_role', + status:1, + describe:"可以设置检测脚本、误差体系、新增操作人员", + permissionList: [ + { + name: "台账管理", + id: "dataManager", + havePermission: true, + }, + { + name: "系统配置", + id: "sysManager", + havePermission: false, + }, + { + name: "设备检测", + id: "devTest", + havePermission: true, + }, + ]}, + { + rolename:"超级管理员", + id: 'superManager_role', + status:0, + describe:"可以修改程序的底层配置,例如检测指标的具体类型", + permissionList: [ + { + name: "台账管理", + id: "dataManager", + havePermission: true, + }, + { + name: "系统配置", + id: "sysManager", + havePermission: true, + }, + { + name: "设备检测", + id: "devTest", + havePermission: true, + }, + ]}, + ] + + export default data \ No newline at end of file diff --git a/frontend/src/views/authority/role/index.vue b/frontend/src/views/authority/role/index.vue new file mode 100644 index 0000000..6d44c07 --- /dev/null +++ b/frontend/src/views/authority/role/index.vue @@ -0,0 +1,242 @@ + + + + \ No newline at end of file From 7c7e5c5f7878693e3fefe09b1cfd0b0b8ff23f7a Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Wed, 16 Oct 2024 15:33:14 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/.env | 3 + frontend/src/hooks/useAuthButtons.ts | 32 +++++------ .../src/layouts/LayoutTransverse/index.vue | 2 +- .../components/Header/components/Avatar.vue | 2 +- frontend/src/main.ts | 6 ++ frontend/src/types/env.d.ts | 1 + frontend/src/views/demo/proTable/index.vue | 57 ++++++++++--------- 7 files changed, 57 insertions(+), 46 deletions(-) diff --git a/frontend/.env b/frontend/.env index cdcf40a..fea476b 100644 --- a/frontend/.env +++ b/frontend/.env @@ -9,3 +9,6 @@ VITE_OPEN=true # 打包后是否生成包分析文件 VITE_REPORT=false + +# 浏览器是否显示vue的告警信息 +VUE_APP_SILENCE_WARNINGS=true diff --git a/frontend/src/hooks/useAuthButtons.ts b/frontend/src/hooks/useAuthButtons.ts index 1a89cf9..016a49d 100644 --- a/frontend/src/hooks/useAuthButtons.ts +++ b/frontend/src/hooks/useAuthButtons.ts @@ -1,22 +1,22 @@ -import { computed } from "vue"; -import { useRoute } from "vue-router"; -import { useAuthStore } from "@/stores/modules/auth"; +import { computed } from 'vue' +import { useRoute } from 'vue-router' +import { useAuthStore } from '@/stores/modules/auth' /** * @description 页面按钮权限 * */ export const useAuthButtons = () => { - const route = useRoute(); - const authStore = useAuthStore(); - const authButtons = authStore.authButtonListGet[route.name as string] || []; + const route = useRoute() + const authStore = useAuthStore() + const authButtons = authStore.authButtonListGet[route.name as string] || [] + const BUTTONS = computed(() => { + let currentPageAuthButton: { [key: string]: boolean } = {} + authButtons.forEach(item => (currentPageAuthButton[item] = true)) + // currentPageAuthButton.status = true + return currentPageAuthButton + }) - const BUTTONS = computed(() => { - let currentPageAuthButton: { [key: string]: boolean } = {}; - authButtons.forEach(item => (currentPageAuthButton[item] = true)); - return currentPageAuthButton; - }); - - return { - BUTTONS - }; -}; + return { + BUTTONS, + } +} diff --git a/frontend/src/layouts/LayoutTransverse/index.vue b/frontend/src/layouts/LayoutTransverse/index.vue index ed49c78..92032ce 100644 --- a/frontend/src/layouts/LayoutTransverse/index.vue +++ b/frontend/src/layouts/LayoutTransverse/index.vue @@ -9,7 +9,7 @@ src="@/assets/images/cn_pms9100_logo.png" alt="logo" /> - {{ title }} + {{ title }} diff --git a/frontend/src/layouts/components/Header/components/Avatar.vue b/frontend/src/layouts/components/Header/components/Avatar.vue index 87daba7..dcfa024 100644 --- a/frontend/src/layouts/components/Header/components/Avatar.vue +++ b/frontend/src/layouts/components/Header/components/Avatar.vue @@ -2,7 +2,7 @@
- +
{{ username }} diff --git a/frontend/src/main.ts b/frontend/src/main.ts index 5c339ca..e369960 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -35,8 +35,14 @@ import errorHandler from "@/utils/errorHandler"; import registerGlobComp from '@/components' + const app = createApp(App); +// 自定义警告处理程序,忽略所有警告 +if (import.meta.env.VUE_APP_SILENCE_WARNINGS === true) { + app.config.warnHandler = () => {}; +} + app.config.errorHandler = errorHandler; // register the element Icons component diff --git a/frontend/src/types/env.d.ts b/frontend/src/types/env.d.ts index be1365c..4442bae 100644 --- a/frontend/src/types/env.d.ts +++ b/frontend/src/types/env.d.ts @@ -16,6 +16,7 @@ declare type Recordable = Record; declare interface ViteEnv { VITE_USER_NODE_ENV: 'development' | 'production' | 'test'; VITE_GLOB_APP_TITLE: string; + VUE_APP_SILENCE_WARNINGS: boolean; VITE_PORT: number; VITE_OPEN: boolean; VITE_REPORT: boolean; diff --git a/frontend/src/views/demo/proTable/index.vue b/frontend/src/views/demo/proTable/index.vue index 70c1f19..1f2a02e 100644 --- a/frontend/src/views/demo/proTable/index.vue +++ b/frontend/src/views/demo/proTable/index.vue @@ -1,9 +1,9 @@ - + \ No newline at end of file