yinbangzhong
2024-07-30 90075a6b89059dbbfad68019a551a145bec8a145
权限用户资源知识库
2个文件已修改
81 ■■■■■ 已修改文件
src/api/authority.ts 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/authority/users/index.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/authority.ts
@@ -8,7 +8,8 @@
  email: string;
  phoneNumber: string;
  dept: any;
  resources:any;
  resources: any;
  knowledges:any;
  createTime: string;
  status: string;
}
@@ -37,13 +38,20 @@
  "orderNum": string;
  "target": string;
  "parentId": string;
  "parentName":string;
  "parentName": string;
  "children": any;
  "syesourcetype": string;
  "status": string;
  "path": string;
  "perms": string;
  "menuType": string;
}
export interface Knowledge {
  "knowledgeId": string;
  "createTime": string;
  "updateTime": string;
  "knowledgeName": string;
}
export interface Result<T> {
@@ -121,4 +129,8 @@
export function ResourceById(id) {
  return axios.get<Result<Resource>>("/base/system/menu/" + id);
}
export function KnowledgeList() {
  return axios.get<Result<Knowledge>>("/base/system/knowledge/list");
}
src/views/authority/users/index.vue
@@ -179,7 +179,18 @@
              <icon-clock-circle />
              知识库
            </template>
            Content of Tab Panel 2
            <a-space direction="vertical" size="large">
              <a-checkbox-group v-model="checkedKeysKnowledge" direction="vertical" @change="onCheckKnowledge">
                <a-checkbox
                  v-for="(knowledg, index) of knowledgeList"
                  :value="knowledg.knowledgeId"
                  :lable="knowledg.knowledgeName"
                  @change="onCheckKnowledge"
                >
                  {{ knowledg.knowledgeName }}
                </a-checkbox>
              </a-checkbox-group>
            </a-space>
          </a-tab-pane>
          <a-tab-pane key="3">
            <template #title>
@@ -195,12 +206,24 @@
                hoverable
        >
          <a-space wrap>
            菜单功能:
            <a-tag
              v-for="(tag, index) of checkStrictlyMenu"
              :key="tag.menuId"
              @close="handleMenuRemove(tag)"
            >
              {{ tag.menuName }}
            </a-tag>
          </a-space>
          <a-divider />
          <a-space wrap>
            知识库:
            <a-tag
              v-for="(tag, index) of checkStrictlyKnowledge"
              :key="tag.knowledgeId"
              @close="handleKnowledgeRemove(tag)"
            >
              {{ tag.knowledgeName }}
            </a-tag>
          </a-space>
        </a-card>
@@ -217,6 +240,7 @@
import { Pagination } from "@/types/global";
import type { TableColumnData } from "@arco-design/web-vue/es/table/interface";
import {
  KnowledgeList,
  OrganizationList,
  ResourceList,
  User,
@@ -241,6 +265,10 @@
let expandKdysMenu = ref([]);
let checkStrictlyMenu = ref([]);
let checkedKeysKnowledge= ref([]);
let checkStrictlyKnowledge= ref([]);
let knowledgeList = ref([]);
let menuTips = ref(["权限管理", "账号"]);
type SizeProps = "mini" | "small" | "medium" | "large";
@@ -302,12 +330,30 @@
    });
  }
};
const onCheckKnowledge = (newCheckedKeys, event) => {
  let o = { "knowledgeId": event.target.value, "knowledgeName": event.target.labels[0].innerText };
  if (event.target.checked) {
    checkStrictlyKnowledge.value.push(o);
  } else {
    checkStrictlyKnowledge.value.forEach((val, idx, array) => {
      // val: 当前值
      if (val.knowledgeId == event.target.value) {
        checkStrictlyKnowledge.value.splice(idx, 1);
        return true;
      }
    });
  }
};
const handleRemove = (key) => {
  checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key);
};
const handleMenuRemove = (key) => {
  checkStrictlyMenu.value = checkStrictlyMenu.value.filter((tag) => tag !== key);
};
const handleKnowledgeRemove = (key) => {
  checkStrictlyKnowledge.value = checkStrictlyKnowledge.value.filter((tag) => tag !== key);
};
const basePagination: Pagination = {
  current: 1,
  pageSize: 20
@@ -396,11 +442,16 @@
};
const editResourceHandleOk = async () => {
  let resources: Array = [], user: User = { "userId": selectUser.value.userId };
  let resources: 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;
  await UserEdit(user).then((res) => {
    fetchData();
  });
@@ -471,11 +522,17 @@
    checkedKeysMenu.value = [];
    expandKdysMenu.value = [];
    checkStrictlyMenu.value = [];
    checkStrictlyKnowledge.value=[];
    checkedKeysKnowledge.value=[];
    selectUser.value = record;
    record.resources.forEach((val) => {
      checkStrictlyMenu.value.push({ "menuId": val.menuId, "menuName": val.menuName });
      checkedKeysMenu.value.push(val.menuId);
      expandKdysMenu.value.push(val.menuId);
    });
    record.knowledges.forEach((val) => {
      checkStrictlyKnowledge.value.push({ "knowledgeId": val.knowledgeId, "knowledgeName": val.knowledgeName });
      checkedKeysKnowledge.value.push(val.knowledgeId);
    });
  }
@@ -536,7 +593,9 @@
  });
};
KnowledgeList().then((res) => {
  knowledgeList.value = res.rows;
});
fetchData();
OrganizationData("");
MenuData();