From e30bb3208315331271a1ea8c2cd13259c30639c5 Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期二, 12 十一月 2024 17:33:38 +0800 Subject: [PATCH] 修改知识库管理 --- src/views/project/yw/dataManage/knowledge/AddKnowledge.vue | 133 ++++++++++++++++++++++++++++++++------------ 1 files changed, 96 insertions(+), 37 deletions(-) diff --git a/src/views/project/yw/dataManage/knowledge/AddKnowledge.vue b/src/views/project/yw/dataManage/knowledge/AddKnowledge.vue index c15c905..420f4a2 100644 --- a/src/views/project/yw/dataManage/knowledge/AddKnowledge.vue +++ b/src/views/project/yw/dataManage/knowledge/AddKnowledge.vue @@ -1,7 +1,7 @@ <template> <div class="flex flex-col h100"> <div class="mb-[10px] flex flex-shrink-0 items-center"> - <el-button style="margin-left: 8px; width: 40px" text @click="handleExitFlow"> + <el-button style="margin-left: 8px; width: 40px" link @click="handleExitFlow"> <el-icon style="font-size: 24px !important"> <ArrowLeft /> </el-icon> @@ -37,6 +37,9 @@ :rows="5" 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"> @@ -129,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> @@ -144,7 +148,6 @@ @select="handleSelectItem" highlight-current-row ref="multipleTableRef" - :class="{ 'hidden-checkbox-all': state.isRadio }" @select-all=" (selection) => { handleSelectAll(selection, state.fileData); @@ -177,7 +180,7 @@ <div class="bg-[#fff] border-[1px] border-solid border-[#d8d9e6] py-[12px] w-[215px] mr-[10px] px-[16px] rounded-lg cursor-pointer" :class="{ activeColor: state.knowledgeForm.segmentationMode === item.ID }" - @click="activeConfigurationType(item.ID)" + @click="activeDataProcessType(item.ID)" > <div class="flex items-center"> <div class="data_left"> @@ -205,7 +208,6 @@ <div class="set-form-footer"> <div v-show="!state.showKnowledgeForm"> <el-button type="primary" @click="nextKnowledge">涓嬩竴姝�</el-button> - <el-button @click="emptyKnowledgeBase">鍒涘缓绌虹煡璇嗗簱</el-button> </div> <div v-show="state.showKnowledgeForm"> <el-button @click="importCompleted" type="primary">瀵煎叆瀹屾垚</el-button> @@ -219,13 +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 { add_docvector_name } from '/@/api/knowledge/docvector'; +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, @@ -233,6 +238,7 @@ knowledgeForm: { title: '', prompt: '', + scope: null, dataType: 1, configurationMode: 1, segmentationMode: 1, @@ -313,8 +319,19 @@ showKnowledgeForm: false, knowledgeBaseData: [], //鐭ヨ瘑搴撶被鐩� fileData: [], //鏂囦欢鏁版嵁婧� - isRadio: false, //鏄惁鍗曢�� + isCreateIndex: false, //鏄惁璋冪敤鍒涘缓鐨勭储寮曠殑瀛楁 + knowlg_id: '', + groupKnow_id: null, }); +//楠岃瘉scope瀛楁鍙兘杈撳叆姝f暣鏁� +const validateNumber = (rule, value, callback) => { + if (value < 31) { + callback(new Error('璇疯緭鍏ュぇ浜�30鐨勬鏁存暟')); + } else { + state.knowledgeForm.scope = verifiyNumberInteger(value); + callback(); + } +}; const knowledgeFormRules = reactive<FormRules>({ title: [ { @@ -330,6 +347,7 @@ trigger: 'blur', }, ], + scope: [{ validator: validateNumber, trigger: 'blur' }], }); const knowledgeFormRef = ref(); const router = useRouter(); @@ -351,64 +369,105 @@ const activeConfigurationType = (id: number) => { state.knowledgeForm.configurationMode = id; }; +//閫夋嫨鏁版嵁鏂囨。鍒囧垎 +const activeDataProcessType = (id: number) => { + state.knowledgeForm.segmentationMode = id; +}; //涓嬩竴姝� const nextKnowledge = async () => { const valid = await knowledgeFormRef.value.validate().catch(() => {}); if (!valid) return; state.showKnowledgeForm = true; - getFileTreeData(true); + if (!state.isCreateIndex) { + emptyKnowledgeBase(); + state.isCreateIndex = true; + } }; const backKnowledge = () => { state.showKnowledgeForm = false; }; + //#endregion //#region ====================== 绌虹煡璇嗗簱鐨勫垱寤� ====================== //鍒涘缓涓�涓┖鐭ヨ瘑搴� const emptyKnowledgeBase = async () => { - var currentTime = moment().format('YYYY-MM-DD HH:mm:ss'); const valid = await knowledgeFormRef.value.validate().catch(() => {}); if (!valid) return; - const res = await add_docvector_name({ title: state.knowledgeForm.title, prompt: state.knowledgeForm.prompt }); + 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) { - ElMessage.success('鍒涘缓鎴愬姛'); + state.knowlg_id = res.knowlg_id; let obj = { - id: res.knowlg_id, + id: state.knowlg_id, + group_id: state.groupKnow_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' }); + mittBus.emit('addEmptyKnowledge', obj); + getFileTreeData(true); } }; //瀵煎叆瀹屾垚 -const importCompleted = () => { - return; - ElMessage.success('瀵煎叆瀹屾垚'); - router.push({ name: 'Knowledge' }); +const importCompleted = async () => { + var currentTime = moment().format('YYYY-MM-DD HH:mm:ss'); + // 涓婁紶鏂囦欢 + if (multipleSelection.value.length == 0) return ElMessage.warning('璇峰厛閫夋嫨鏂囦欢'); + const file_id = multipleSelection.value.map((v) => v.id).join(','); + const res = await add_docvector_file({ + knowlg_id: state.knowlg_id, + file_id: file_id, + }); + if (res.json_ok) { + let obj = { + id: state.knowlg_id, + + title: state.knowledgeForm.title, + prompt: state.knowledgeForm.prompt, + publish: 'N', + create_time: currentTime, + user_name: '', + scope: state.knowledgeForm.scope, + }; + mittBus.emit('updateKnowledgeBaseObj', obj); + router.push({ name: 'Knowledge' }); + //娓呯┖琛ㄥ崟 + knowledgeFormRef.value.resetFields(); + state.showKnowledgeForm = false; + state.isCreateIndex = false; + } }; //#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 []; - 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) { @@ -425,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(); @@ -469,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 { @@ -585,10 +648,6 @@ justify-content: center; } } -} -.hidden-checkbox-all :deep(.el-table__header .el-table-column--selection .el-checkbox) { - // 闅愯棌鍏ㄩ�塩heckbox - display: none; } </style> <style> -- Gitblit v1.9.3