diff --git a/src/api/permiss_policy.ts b/src/api/permiss_policy.ts new file mode 100644 index 0000000..d8bc4b2 --- /dev/null +++ b/src/api/permiss_policy.ts @@ -0,0 +1,53 @@ +import request from '@/utils/user_center_request'; + +export const GetPermissPolicyService = () =>{ + let token = localStorage.getItem("token") || ""; + return request.get('/permission/get_policy', + { + headers: { + 'token': token, //token + } + } + ) +} + +export const UpdatePermissPolicyService = (Data: any) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + let token = localStorage.getItem("token") || ""; + return request.post('/permission/update_policy', params,{ + headers: { + 'token': token, //token + } + }) +} + + + +export const AddPermissPolicyService = (Data: any) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + let token = localStorage.getItem("token") || ""; + return request.post('/permission/add_policy', params,{ + headers: { + 'token': token, //token + } + }) +} + +export const DelPermissPolicyService = (Data: any) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + let token = localStorage.getItem("token") || ""; + return request.post('/permission/del_policy', params,{ + headers: { + 'token': token, //token + } + }) +} diff --git a/src/components/menu.ts b/src/components/menu.ts index 81bbd6c..03a0578 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -32,6 +32,12 @@ export const menuData: Menus[] = [ title: '功能管理', }, + { + id: '73', + pid: '1', + index: '/manage-permiss-policy', + title: '权限策略管理', + } ], }, @@ -208,12 +214,12 @@ export const menuData: Menus[] = [ index: '/ucenter', title: '个人中心', }, - { - id: '9', - icon: 'Files', - index: '/kbase-chat', - title: '知识库交互', - }, + // { + // id: '9', + // icon: 'Files', + // index: '/kbase-chat', + // title: '知识库交互', + // }, { id: '53', icon: 'ChatDotSquare', @@ -226,12 +232,12 @@ export const menuData: Menus[] = [ index: '/gen-prompt', title: '提示词生成', }, - { - id: '57', - icon: 'ChatDotSquare', - index: '/ai-ppt', - title: '智能PPT生成', - }, + // { + // id: '57', + // icon: 'ChatDotSquare', + // index: '/ai-ppt', + // title: '智能PPT生成', + // }, { id: '59', icon: 'Select', diff --git a/src/router/index.ts b/src/router/index.ts index f86df9c..ee7f6ea 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -59,6 +59,16 @@ const routes: RouteRecordRaw[] = [ }, component: () => import(/* webpackChunkName: "system-user" */ '../views/system/manage-file.vue'), }, + { + path: '/manage-permiss-policy', + name: 'manage-permiss-policy', + meta: { + title: '权限策略管理', + permiss: '73', + }, + component: () => import(/* webpackChunkName: "system-user" */ '../views/system/manage-permiss-policy.vue'), + + }, { path: '/manage-session', name: 'manage-session', diff --git a/src/store/permiss.ts b/src/store/permiss.ts index dfa6465..1d7f8ff 100644 --- a/src/store/permiss.ts +++ b/src/store/permiss.ts @@ -57,7 +57,8 @@ export const usePermissStore = defineStore("permiss", { "58", //知识库管理 "59", //项目选择 "71", //用户功能管理 - "72" //数据库管理工具 + "72", //数据库管理工具 + "73", //权限策略管理 ], user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "58", "59", "61", "71"], }, diff --git a/src/types/permiss_policy.ts b/src/types/permiss_policy.ts new file mode 100644 index 0000000..46affd3 --- /dev/null +++ b/src/types/permiss_policy.ts @@ -0,0 +1,51 @@ +// 策略信息结构体 +export interface Policy { + ID: number; + CreatedAt: string; // 日期时间格式,如 "2025-11-03T20:09:59.455+08:00" + UpdatedAt: string; // 日期时间格式 + DeletedAt: null | string; // 可能为 null 或日期时间格式 + name: string; + info: string; + redis: number; // 0 表示禁用,推测可能为布尔含义的数字 + run_shell: number; // 同上 + upload: number; // 同上 + cid: number; + file: number; // 同上 + device: number; // 同上 + upload_size: number; // 上传大小限制 + upload_max_size: number; // 最大上传大小限制 + send_mail: number; // 同上 +} + +// 范围信息结构体 +export interface Range { + id: number; + type: number; + prev: number; + name: string; +} + +// 完整响应结构体 +export interface PermissPolicyResponseData { + policy: Policy; + range: Range[]; // 范围信息数组 +} + +export interface PolicyUserRange { + ID: number; + CreatedAt: string; // 日期时间格式,如 "2025-11-03T20:09:59.455+08:00" + UpdatedAt: string; // 日期时间格式 + DeletedAt: null | string; // 可能为 null 或日期时间格式 + name: string; + info: string; + redis: number; // 0 表示禁用,推测可能为布尔含义的数字 + run_shell: number; // 同上 + upload: number; // 同上 + cid: number; + file: number; // 同上 + device: number; // 同上 + upload_size: number; // 上传大小限制 + upload_max_size: number; // 最大上传大小限制 + send_mail: number; // 同上 + range: Range[]; // 范围信息数组 +} \ No newline at end of file diff --git a/src/views/system/manage-permiss-policy.vue b/src/views/system/manage-permiss-policy.vue new file mode 100644 index 0000000..6a9dff9 --- /dev/null +++ b/src/views/system/manage-permiss-policy.vue @@ -0,0 +1,353 @@ + + \ No newline at end of file