yangyin
2024-11-12 e30bb3208315331271a1ea8c2cd13259c30639c5
src/views/project/yw/dataManage/knowledge/AddKnowledge.vue
@@ -132,10 +132,11 @@
                           :treedata="state.knowledgeBaseData"
                           :current-node-key="currentListID"
                           :defaultProps="{
                              id: 'group_id',
                              label: 'group_name',
                              children: 'Children',
                              label: 'title',
                              id: 'id',
                           }"
                           defaultExpandAll
                           @click="handleClickNode"
                        >
                        </LeftTreeByMgr>
@@ -220,14 +221,16 @@
<script setup lang="ts">
import { ElMessage, type FormRules } from 'element-plus';
import moment from 'moment';
import { computed, nextTick, reactive, ref } from 'vue';
import { useRouter } from 'vue-router';
import { computed, nextTick, onMounted, reactive, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { add_docvector_file, add_docvector_name } from '/@/api/knowledge/docvector';
import { get_knowledge_group_list, list_knowledge_file } from '/@/api/knowledge/group';
import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue';
import mittBus from '/@/utils/mitt';
import { verifiyNumberInteger } from '/@/utils/toolsValidate';
import { convertListToTree } from '/@/utils/util';
import { OptClassificationMap, classificationEnum } from '/@/views/types/metrics';
const route = useRoute();
// 定义变量内容
const state = reactive({
   soliderValue: 0,
@@ -318,6 +321,7 @@
   fileData: [], //文件数据源
   isCreateIndex: false, //是否调用创建的索引的字段
   knowlg_id: '',
   groupKnow_id: null,
});
//验证scope字段只能输入正整数
const validateNumber = (rule, value, callback) => {
@@ -390,13 +394,26 @@
const emptyKnowledgeBase = async () => {
   const valid = await knowledgeFormRef.value.validate().catch(() => {});
   if (!valid) return;
   var currentTime = moment().format('YYYY-MM-DD HH:mm:ss');
   const res = await add_docvector_name({
      title: state.knowledgeForm.title,
      prompt: state.knowledgeForm.prompt,
      scope: state.knowledgeForm.scope,
      group_id: state.groupKnow_id,
   });
   if (res.json_ok) {
      state.knowlg_id = res.knowlg_id;
      let obj = {
         id: state.knowlg_id,
         group_id: state.groupKnow_id,
         title: state.knowledgeForm.title,
         prompt: state.knowledgeForm.prompt,
         publish: 'N',
         create_time: currentTime,
         user_name: '',
         scope: state.knowledgeForm.scope,
      };
      mittBus.emit('addEmptyKnowledge', obj);
      getFileTreeData(true);
   }
};
@@ -413,6 +430,7 @@
   if (res.json_ok) {
      let obj = {
         id: state.knowlg_id,
         title: state.knowledgeForm.title,
         prompt: state.knowledgeForm.prompt,
         publish: 'N',
@@ -420,7 +438,7 @@
         user_name: '',
         scope: state.knowledgeForm.scope,
      };
      mittBus.emit('addKnowledgeBaseObj', obj);
      mittBus.emit('updateKnowledgeBaseObj', obj);
      router.push({ name: 'Knowledge' });
      //清空表单
      knowledgeFormRef.value.resetFields();
@@ -432,17 +450,24 @@
//#region ====================== 知识库文件上传 ==========
const currentTreeNode = ref(null);
const leftTreeRef = ref(null);
const currentListID = computed(() => currentTreeNode.value?.id);
const currentListID = computed(() => currentTreeNode.value?.group_id);
//获取文件列表
const getFileTreeData = async (selectFirst = false) => {
   const res = await get_knowledge_group_list();
   if (res?.json_ok) {
      const resData = (res.values || []) as [];
      state.knowledgeBaseData = convertListToTree(resData, {
         ID: 'id',
      const resData = (res.groups || []) as [];
      const byParentData = convertListToTree(resData, {
         ID: 'group_id',
         Children: 'Children',
         ParentID: 'parent',
         ParentID: 'p_group_id',
      });
      const result = [];
      byParentData.forEach((item) => {
         if (item.group_type == OptClassificationMap[classificationEnum.Knowledge]) {
            result.push(item);
         }
      });
      state.knowledgeBaseData = result;
      if (selectFirst) {
         const firstListTreeNode = state.knowledgeBaseData[0];
         if (firstListTreeNode) {
@@ -459,7 +484,7 @@
const handleClickNode = (data: any) => {
   multipleSelection.value = [];
   nextTick(() => {
      leftTreeRef.value?.treeRef.setCurrentKey(data.id);
      leftTreeRef.value?.treeRef.setCurrentKey(data.group_id);
   });
   currentTreeNode.value = data;
   getFileTableData();
@@ -503,6 +528,10 @@
   multipleTableRef.value.toggleRowSelection(item, false);
};
//#endregion
onMounted(() => {
   const group_id = route.query.group_id;
   state.groupKnow_id = group_id;
});
</script>
<style scoped lang="scss">
.set-form-height {