yangyin
2024-11-12 272000b000564f5e4ed7c5562fe72a206c8a48f9
src/views/project/yw/dataManage/knowledge/AddKnowledge.vue
@@ -38,6 +38,9 @@
                  type="textarea"
               />
            </el-form-item>
            <el-form-item label="索引分数:" prop="scope">
               <el-input v-model="state.knowledgeForm.scope" style="width: 532px" />
            </el-form-item>
            <el-form-item label="数据类型:">
               <div v-for="(item, index) in state.dataTypeList" :key="index">
                  <div
@@ -129,9 +132,9 @@
                           :treedata="state.knowledgeBaseData"
                           :current-node-key="currentListID"
                           :defaultProps="{
                              id: 'group_id',
                              label: 'group_name',
                              children: 'Children',
                              label: 'title',
                              id: 'id',
                           }"
                           @click="handleClickNode"
                        >
@@ -217,13 +220,15 @@
<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';
const route = useRoute();
// 定义变量内容
const state = reactive({
   soliderValue: 0,
@@ -231,6 +236,7 @@
   knowledgeForm: {
      title: '',
      prompt: '',
      scope: null,
      dataType: 1,
      configurationMode: 1,
      segmentationMode: 1,
@@ -313,7 +319,17 @@
   fileData: [], //文件数据源
   isCreateIndex: false, //是否调用创建的索引的字段
   knowlg_id: '',
   groupKnow_id: null,
});
//验证scope字段只能输入正整数
const validateNumber = (rule, value, callback) => {
   if (value < 31) {
      callback(new Error('请输入大于30的正整数'));
   } else {
      state.knowledgeForm.scope = verifiyNumberInteger(value);
      callback();
   }
};
const knowledgeFormRules = reactive<FormRules>({
   title: [
      {
@@ -329,6 +345,7 @@
         trigger: 'blur',
      },
   ],
   scope: [{ validator: validateNumber, trigger: 'blur' }],
});
const knowledgeFormRef = ref();
const router = useRouter();
@@ -367,6 +384,7 @@
const backKnowledge = () => {
   state.showKnowledgeForm = false;
};
//#endregion
//#region ====================== 空知识库的创建 ======================
@@ -374,7 +392,12 @@
const emptyKnowledgeBase = async () => {
   const valid = await knowledgeFormRef.value.validate().catch(() => {});
   if (!valid) return;
   const res = await add_docvector_name({ title: state.knowledgeForm.title, prompt: state.knowledgeForm.prompt });
   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;
      getFileTreeData(true);
@@ -392,12 +415,13 @@
   });
   if (res.json_ok) {
      let obj = {
         id: res.knowlg_id,
         id: state.knowlg_id,
         title: state.knowledgeForm.title,
         prompt: state.knowledgeForm.prompt,
         publish: '',
         publish: 'N',
         create_time: currentTime,
         user_name: '',
         scope: state.knowledgeForm.scope,
      };
      mittBus.emit('addKnowledgeBaseObj', obj);
      router.push({ name: 'Knowledge' });
@@ -409,22 +433,18 @@
};
//#endregion
//#region ====================== 知识库文件上传 ==========
const treeLoading = ref(false);
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) => {
   treeLoading.value = true;
   const res = await get_knowledge_group_list().finally(() => {
      treeLoading.value = false;
   });
   const res = await get_knowledge_group_list();
   if (res?.json_ok) {
      const resData = (res.values || []) as [];
      const resData = (res.groups || []) as [];
      state.knowledgeBaseData = convertListToTree(resData, {
         ID: 'id',
         ID: 'group_id',
         Children: 'Children',
         ParentID: 'parent',
         ParentID: 'p_group_id',
      });
      if (selectFirst) {
         const firstListTreeNode = state.knowledgeBaseData[0];
@@ -442,7 +462,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();
@@ -486,6 +506,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 {