yinbangzhong
2024-08-01 95baade90cc1d433201fe6a43455b40b5907ea4b
权限智能体添加
3个文件已修改
173 ■■■■■ 已修改文件
src/api/authority.ts 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/authority/resource/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/authority/users/index.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/authority.ts
@@ -1,5 +1,5 @@
import axios from "axios";
import { Pagination } from "@/types/global";
import axios from 'axios';
import { Pagination } from '@/types/global';
export interface User {
  userId: string;
@@ -9,7 +9,8 @@
  phoneNumber: string;
  dept: any;
  resources: any;
  knowledges:any;
  knowledges: any;
  dialogs: any;
  createTime: string;
  status: string;
}
@@ -28,30 +29,30 @@
}
export interface Resource {
  "menuId": string;
  "createTime": string;
  "updateTime": string;
  "menuName": string;
  "component": string;
  "description": string;
  "icon": string;
  "orderNum": string;
  "target": string;
  "parentId": string;
  "parentName": string;
  "children": any;
  "syesourcetype": string;
  "status": string;
  "path": string;
  "perms": string;
  "menuType": string;
  menuId: string;
  createTime: string;
  updateTime: string;
  menuName: string;
  component: string;
  description: string;
  icon: string;
  orderNum: string;
  target: string;
  parentId: string;
  parentName: string;
  children: any;
  syesourcetype: string;
  status: string;
  path: string;
  perms: string;
  menuType: string;
}
export interface Knowledge {
  "id": string;
  "createTime": string;
  "updateTime": string;
  "name": string;
  id: string;
  createTime: string;
  updateTime: string;
  name: string;
}
export interface Result<T> {
@@ -62,75 +63,78 @@
}
export function UserList(params: Pagination) {
  return axios.get<Result<User[]>>("/base/system/user/list", { params });
  return axios.get<Result<User[]>>('/base/system/user/list', { params });
}
export function Userstatus(userID, status) {
  return axios.put("/base/system/user/changeStatus", { "userId": userID, "status": status });
  return axios.put('/base/system/user/changeStatus', {
    userId: userID,
    status: status,
  });
}
export function UserChangePwd(userId) {
  return axios.put("/base/system/user/profile/updatePwd", { "userId": userId });
  return axios.put('/base/system/user/profile/updatePwd', { userId: userId });
}
export function UserEdit(user) {
  return axios.put("/base/system/user", { user });
  return axios.put('/base/system/user', { user });
}
export function UserAdd(user) {
  return axios.post("/base/system/user", { user });
  return axios.post('/base/system/user', { user });
}
export function UserDelete(userId) {
  return axios.delete("/base/system/user/" + userId);
  return axios.delete('/base/system/user/' + userId);
}
export function OrganizationList(key: string) {
  return axios.post<Result<Organization[]>>("/base/system/dept/list", { "deptName": key });
  return axios.post<Result<Organization[]>>('/base/system/dept/list', {
    deptName: key,
  });
}
export function OrganizationAdd(organization) {
  return axios.post("/base/system/dept", { organization });
  return axios.post('/base/system/dept', { organization });
}
export function OrganizationDelete(id) {
  return axios.delete("/base/system/dept/" + id);
  return axios.delete('/base/system/dept/' + id);
}
export function OrganizationUpdate(organization) {
  return axios.put("/base/system/dept", { organization });
  return axios.put('/base/system/dept', { organization });
}
export function OrganizationById(id) {
  return axios.get<Result<Organization>>("/base/system/dept/" + id);
  return axios.get<Result<Organization>>('/base/system/dept/' + id);
}
export function ResourceList(key: string) {
  return axios.get<Result<Resource[]>>("/base/system/menu/treeselect");
  return axios.get<Result<Resource[]>>('/base/system/menu/treeselect');
}
export function ResourceAdd(resource) {
  return axios.post("/base/system/menu", { resource });
  return axios.post('/base/system/menu', { resource });
}
export function ResourceDelete(id) {
  return axios.delete("/base/system/menu/" + id);
  return axios.delete('/base/system/menu/' + id);
}
export function ResourceUpdate(resource) {
  return axios.put("/base/system/menu", { resource });
  return axios.put('/base/system/menu', { resource });
}
export function ResourceById(id) {
  return axios.get<Result<Resource>>("/base/system/menu/" + id);
  return axios.get<Result<Resource>>('/base/system/menu/' + id);
}
export function KnowledgeList() {
  return axios.get<Result<Knowledge>>("/base/system/knowledge/list");
}
  return axios.get<Result<Knowledge>>('/base/system/knowledge/list');
}
export function DialogList() {
  return axios.get<Result<Knowledge>>('/base/system/dialog/list');
}
src/views/authority/resource/index.vue
@@ -107,15 +107,15 @@
// 0目录 1菜单 2按钮
let options = ref([
  {
    key: "0",
    key: "3",
    value: "目录"
  },
  {
    key: "1",
    key: "0",
    value: "菜单"
  },
  {
    key: "2",
    key: "1",
    value: "按钮"
  }
]);
src/views/authority/users/index.vue
@@ -197,7 +197,16 @@
              <icon-user />
              智能体
            </template>
            Content of Tab Panel 3
            <a-checkbox-group v-model="checkedKeysDialog" direction="vertical" @change="onCheckDialog">
              <a-checkbox
                v-for="(dialog, index) of DialogsList"
                :value="dialog.id"
                :lable="dialog.name"
                @change="onCheckDialog"
              >
                {{ dialog.name }}
              </a-checkbox>
            </a-checkbox-group>
          </a-tab-pane>
        </a-tabs>
        <a-card :style="{ width: '100%',height: '200px', 'overflow-y': 'auto', margin:'1px'}"
@@ -226,6 +235,17 @@
              {{ tag.knowledgeName }}
            </a-tag>
          </a-space>
          <a-divider />
          <a-space wrap>
            智能体:
            <a-tag
              v-for="(tag, index) of checkStrictlyDialog"
              :key="tag.dialogId"
              @close="handleDialogRemove(tag)"
            >
              {{ tag.dialogName }}
            </a-tag>
          </a-space>
        </a-card>
      </div>
@@ -240,6 +260,7 @@
import { Pagination } from "@/types/global";
import type { TableColumnData } from "@arco-design/web-vue/es/table/interface";
import {
  DialogList,
  KnowledgeList,
  OrganizationList,
  ResourceList,
@@ -268,7 +289,12 @@
let checkedKeysKnowledge= ref([]);
let checkStrictlyKnowledge= ref([]);
let checkedKeysDialog= ref([]);
let checkStrictlyDialog= ref([]);
let knowledgeList = ref([]);
let DialogsList = ref([]);
let menuTips = ref(["权限管理", "账号"]);
type SizeProps = "mini" | "small" | "medium" | "large";
@@ -344,6 +370,23 @@
    });
  }
};
const onCheckDialog = (newCheckedKeys, event) => {
  let o = { "dialogId": event.target.value, "dialogName": event.target.labels[0].innerText };
  if (event.target.checked) {
    checkStrictlyDialog.value.push(o);
  } else {
    checkStrictlyDialog.value.forEach((val, idx, array) => {
      // val: 当前值
      if (val.dialogId == event.target.value) {
        checkStrictlyDialog.value.splice(idx, 1);
        return true;
      }
    });
  }
};
const handleRemove = (key) => {
  checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key);
};
@@ -353,6 +396,10 @@
const handleKnowledgeRemove = (key) => {
  checkStrictlyKnowledge.value = checkStrictlyKnowledge.value.filter((tag) => tag !== key);
};
const handleDialogRemove = (key) => {
  checkStrictlyDialog.value = checkStrictlyDialog.value.filter((tag) => tag !== key);
};
const basePagination: Pagination = {
  current: 1,
@@ -442,15 +489,21 @@
};
const editResourceHandleOk = async () => {
  let resources: Array = [],Knowledges: Array = [], user: User = { "userId": selectUser.value.userId };
  let resources: Array = [],dialogs: Array = [],Knowledges: Array = [], user: User = { "userId": selectUser.value.userId };
  checkStrictlyMenu.value.forEach((val) => {
    resources.push(val.menuId);
  });
  user.resources = resources;
  checkStrictlyKnowledge.value.forEach((val) => {
    Knowledges.push(val.knowledgeId);
  });
  user.knowledges = Knowledges;
  checkStrictlyDialog.value.forEach((val) => {
    dialogs.push(val.dialogId);
  });
  user.dialogs = dialogs;
  await UserEdit(user).then((res) => {
    fetchData();
@@ -524,6 +577,8 @@
    checkStrictlyMenu.value = [];
    checkStrictlyKnowledge.value=[];
    checkedKeysKnowledge.value=[];
    checkStrictlyDialog.value=[];
    checkedKeysDialog.value=[];
    selectUser.value = record;
    record.resources.forEach((val) => {
      checkStrictlyMenu.value.push({ "menuId": val.menuId, "menuName": val.menuName });
@@ -533,6 +588,10 @@
    record.knowledges.forEach((val) => {
      checkStrictlyKnowledge.value.push({ "knowledgeId": val.id, "knowledgeName": val.name });
      checkedKeysKnowledge.value.push(val.id);
    });
    record.dialogs.forEach((val) => {
      checkStrictlyDialog.value.push({ "dialogId": val.id, "dialogName": val.name });
      checkedKeysDialog.value.push(val.id);
    });
  }
@@ -596,6 +655,10 @@
KnowledgeList().then((res) => {
  knowledgeList.value = res.rows;
});
DialogList().then((res) => {
  DialogsList.value = res.rows;
});
fetchData();
OrganizationData("");
MenuData();