Browse Source

reactor:知识库知识类型管理调整;

zhangchong 10 months ago
parent
commit
4fa37ac763

+ 35 - 18
src/views/knowledge/config/type/component/Knowledge-type-add.vue

@@ -26,18 +26,35 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="关联组织" prop="orgArray" :rules="[{ required: true, message: '请选择关联组织', trigger: 'change' }]">
-							<el-cascader
-								:options="orgData"
-								filterable
-								:props="{  value: 'id', label: 'name', checkStrictly: true, multiple: true }"
-								placeholder="请选择关联组织"
-								clearable
-								class="w100"
-								v-model="state.ruleForm.orgArray"
-								ref="orgRef"
-								@change="changeOrgData"
-							>
-							</el-cascader>
+              <el-tree-select
+                v-model="state.ruleForm.orgArray"
+                placeholder="请选择关联组织"
+                :data="orgData"
+                multiple
+                :render-after-expand="false"
+                show-checkbox
+                ref="orgRef"
+                node-key="id"
+                @change="changeOrgData"
+                :props="{  label: 'name' }"
+                class="w100"
+                check-strictly
+                check-on-click-node
+                collapse-tags
+                collapse-tags-tooltip
+                :max-collapse-tags="3"
+                filterable
+              >
+                <!--                <template #header>
+                                  <el-checkbox
+                                    v-model="checkAll"
+                                    :indeterminate="indeterminate"
+                                    @change="handleCheckAll"
+                                  >
+                                    All
+                                  </el-checkbox>
+                                </template>-->
+              </el-tree-select>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
@@ -93,10 +110,10 @@ const getOrgData = async () => {
 };
 // 打开弹窗
 const ruleFormRef = ref<any>(); // 表单ref
-const openDialog = (treeData: any[], orgData: any[]) => {
+const openDialog = (treeData: any[]) => {
+  state.dialogVisible = true;
 	state.treeData = treeData ?? [];
 	getOrgData();
-	state.dialogVisible = true;
 };
 const close = () => {
 	ruleFormRef.value?.clearValidate();
@@ -115,12 +132,12 @@ const getKnowledgeList = () => {
 // 选择适用部门
 const orgRef = ref<RefType>();
 const changeOrgData = () => {
-	let currentNode = orgRef.value.getCheckedNodes();
+  const currentNode = orgRef.value.getCheckedNodes();
   state.ruleForm.typeOrgDtos = currentNode.map((item: any) => {
     return {
-      orgId: item.value,
-      orgName: item.label
-    }
+      orgId: item.id,
+      orgName: item.name,
+    };
   });
 };
 // 新增

+ 33 - 19
src/views/knowledge/config/type/component/Knowledge-type-edit.vue

@@ -26,21 +26,35 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="关联组织" prop="orgArray" :rules="[{ required: true, message: '请选择关联组织', trigger: 'change' }]">
-							<el-cascader
-								:options="orgData"
-								filterable
-								:props="{ value: 'id', label: 'name', checkStrictly: true, multiple: true }"
-								placeholder="请选择关联组织"
-								clearable
-								class="w100"
-								v-model="state.ruleForm.orgArray"
-								ref="orgRef"
-								@change="changeOrgData"
-								collapse-tags
-								collapse-tags-tooltip
-								:max-collapse-tags="3"
-							>
-							</el-cascader>
+              <el-tree-select
+                v-model="state.ruleForm.orgArray"
+                :data="orgData"
+                multiple
+                :render-after-expand="false"
+                show-checkbox
+                ref="orgRef"
+                node-key="id"
+                @change="changeOrgData"
+                :props="{  label: 'name' }"
+                class="w100"
+                check-strictly
+                check-on-click-node
+                collapse-tags
+                collapse-tags-tooltip
+                :max-collapse-tags="3"
+                filterable
+                placeholder="请选择关联组织"
+              >
+<!--                <template #header>
+                  <el-checkbox
+                    v-model="checkAll"
+                    :indeterminate="indeterminate"
+                    @change="handleCheckAll"
+                  >
+                    All
+                  </el-checkbox>
+                </template>-->
+              </el-tree-select>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
@@ -100,13 +114,13 @@ const getOrgData = async () => {
 const ruleFormRef = ref<any>(); // 表单ref
 const openDialog = async (row: any, treeData: any) => {
 	try {
+    state.dialogVisible = true;
 		await getOrgData();
 		const { result } = await typeDetail(row.id);
 		state.ruleForm = result;
 		state.treeData = other.deepClone(treeData);
 		state.treeData = excludeSelfById(state.treeData, row.id);
 		state.ruleForm.orgArray = result.knowledgeTypeOrgs.map((item: any) => item.orgId);
-		state.dialogVisible = true;
 	} catch (error) {
 		// 打印错误信息
 		console.error(error);
@@ -129,11 +143,11 @@ const getKnowledgeList = () => {
 // 选择适用部门
 const orgRef = ref<RefType>();
 const changeOrgData = () => {
-	let currentNode = orgRef.value.getCheckedNodes();
+	const currentNode = orgRef.value.getCheckedNodes();
 	state.ruleForm.typeOrgDtos = currentNode.map((item: any) => {
 		return {
-			orgId: item.value,
-			orgName: item.label,
+			orgId: item.id,
+			orgName: item.name,
 		};
 	});
 };

+ 37 - 22
src/views/knowledge/config/type/component/knowledge-type-connect.vue

@@ -3,20 +3,35 @@
 		<el-dialog title="关联组织" v-model="state.dialogVisible" draggable append-to-body destroy-on-close @close="close" width="500px">
 			<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="80px" v-loading="state.loading">
 				<el-form-item label="关联组织" prop="orgArray" :rules="[{ required: true, message: '请选择关联组织', trigger: 'change' }]">
-					<el-cascader
-						:options="orgData"
-						filterable
-						:props="{ value: 'id', label: 'name', checkStrictly: true, emitPath: false, multiple: true }"
-						placeholder="请选择关联组织"
-						class="w100"
-						v-model="state.ruleForm.orgArray"
-						ref="orgRef"
-						@change="changeOrgData"
-						collapse-tags
-						collapse-tags-tooltip
-						:max-collapse-tags="3"
-					>
-					</el-cascader>
+          <el-tree-select
+            v-model="state.ruleForm.orgArray"
+            :data="orgData"
+            multiple
+            :render-after-expand="false"
+            show-checkbox
+            placeholder="请选择关联组织"
+            ref="orgRef"
+            node-key="id"
+            @change="changeOrgData"
+            :props="{  label: 'name' }"
+            class="w100"
+            check-strictly
+            check-on-click-node
+            collapse-tags
+            collapse-tags-tooltip
+            :max-collapse-tags="3"
+            filterable
+          >
+            <!--                <template #header>
+                              <el-checkbox
+                                v-model="checkAll"
+                                :indeterminate="indeterminate"
+                                @change="handleCheckAll"
+                              >
+                                All
+                              </el-checkbox>
+                            </template>-->
+          </el-tree-select>
 				</el-form-item>
 			</el-form>
 			<template #footer>
@@ -66,11 +81,11 @@ const getOrgData = async () => {
 const ruleFormRef = ref<any>(); // 表单ref
 const openDialog = async (row: any) => {
 	try {
+    state.dialogVisible = true;
 		await getOrgData();
 		const { result } = await typeDetail(row.id);
 		state.ruleForm = result;
 		state.ruleForm.orgArray = result.knowledgeTypeOrgs.map((item: any) => item.orgId);
-		state.dialogVisible = true;
 	} catch (error) {
 		// 打印错误信息
 		console.error(error);
@@ -87,13 +102,13 @@ const closeDialog = () => {
 // 选择适用部门
 const orgRef = ref<RefType>();
 const changeOrgData = () => {
-	let currentNode = orgRef.value.getCheckedNodes();
-	state.ruleForm.typeOrgDtos = currentNode.map((item: any) => {
-		return {
-			orgId: item.value,
-			orgName: item.label,
-		};
-	});
+  const currentNode = orgRef.value.getCheckedNodes();
+  state.ruleForm.typeOrgDtos = currentNode.map((item: any) => {
+    return {
+      orgId: item.id,
+      orgName: item.name,
+    };
+  });
 };
 // 保存
 const onSubmit = async (formEl: FormInstance | undefined) => {