From e426ee93a2553550766e25958dcb70a6f7339b9c Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期二, 27 八月 2024 17:13:05 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/flow_web
---
src/views/dmx/knowledgeLib/index.vue | 299 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 226 insertions(+), 73 deletions(-)
diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index 1be7bab..994f862 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -23,8 +23,9 @@
:class="{ active: selectedTab === index }"
>
{{ tab.name }}
- <a-popover position="bl">
+ <a-popover position="bl" >
<icon-more
+ v-hasPermi="'/kb/delete'"
:style="{ position: 'absolute', top: '10px', right: '10px' }"
/>
<template #content>
@@ -34,6 +35,7 @@
<span
style="cursor: pointer; color: #4977ba; font-size: 12px"
@click="deleteKnowledge(tab.id)"
+ v-hasPermi="'/kb/delete'"
><icon-delete style="font-size: 14px" />鍒犻櫎</span
>
</template>
@@ -88,6 +90,7 @@
type="text"
class="button"
style="color: #2a2a2b"
+ v-hasPermi="'/kb/data_status'"
@click="enableDisable(1)"
>
<template #icon>
@@ -101,6 +104,7 @@
type="text"
class="button"
style="color: #2a2a2b"
+ v-hasPermi="'/kb/data_status'"
@click="enableDisable(0)"
>
<template #icon>
@@ -114,6 +118,7 @@
type="text"
class="button"
style="color: #2a2a2b"
+ v-hasPermi="'/kb/data_analysis'"
@click="addBlock(1)"
>
<template #icon>
@@ -127,6 +132,7 @@
type="text"
class="button"
style="color: #2a2a2b"
+ v-hasPermi="'/kb/data_analysis'"
@click="addBlock(2)"
>
<template #icon>
@@ -140,6 +146,7 @@
<a-button
type="text"
class="button"
+ v-hasPermi="'/kb/data_delete'"
style="color: #2a2a2b"
@click="addBlock(3)"
>
@@ -298,6 +305,7 @@
<template #status="{ record }">
<a-switch
v-model="record.status"
+ :disabled="!getAut('/kb/data_status')"
size="small"
checked-value="1"
unchecked-value="0"
@@ -308,14 +316,25 @@
<div style="display: flex; align-items: center">
<div style="width: 100px">
<a-popover title="" v-if="record.run == '4'">
- <a-tag
- :loading="record.loading"
- :color="'blue'"
- border
- >{{ $t('dmx.list.complete') }}</a-tag
+ <a-tag :loading="record.loading" :color="'red'" border
+ >澶辫触</a-tag
>
<template #content>
- <p></p>
+ <p>娴佺▼寮�濮嬩簬锛歿{ record.process_begin_at }}</p>
+ <p
+ >杩囩▼鎸佺画鏃堕棿:{{
+ record.process_duation.toFixed(2)
+ }}</p
+ >
+ <div>
+ <p
+ >杩涘害娑堟伅锛�<span
+ v-html="
+ record.progress_msg.replace(/\n/g, '<br/>')
+ "
+ ></span
+ ></p>
+ </div>
</template>
</a-popover>
<a-popover title="" v-if="record.run == '3'">
@@ -326,7 +345,21 @@
>{{ $t('dmx.list.complete') }}</a-tag
>
<template #content>
- <p></p>
+ <p>娴佺▼寮�濮嬩簬锛歿{ record.process_begin_at }}</p>
+ <p
+ >杩囩▼鎸佺画鏃堕棿:{{
+ record.process_duation.toFixed(2)
+ }}</p
+ >
+ <div>
+ <p
+ >杩涘害娑堟伅锛�<span
+ v-html="
+ record.progress_msg.replace(/\n/g, '<br/>')
+ "
+ ></span
+ ></p>
+ </div>
</template>
</a-popover>
<a-popover title="" v-if="record.run == '1'">
@@ -337,7 +370,21 @@
>瑙f瀽涓�...</a-tag
>
<template #content>
- <p></p>
+ <p>娴佺▼寮�濮嬩簬锛歿{ record.process_begin_at }}</p>
+ <p
+ >杩囩▼鎸佺画鏃堕棿:{{
+ record.process_duation.toFixed(2)
+ }}</p
+ >
+ <div>
+ <p
+ >杩涘害娑堟伅锛�<span
+ v-html="
+ record.progress_msg.replace(/\n/g, '<br/>')
+ "
+ ></span
+ ></p>
+ </div>
</template>
</a-popover>
<a-popover title="" v-if="record.run == '2'">
@@ -348,7 +395,21 @@
>{{ $t('dmx.list.cancel') }}</a-tag
>
<template #content>
- <p></p>
+ <p>娴佺▼寮�濮嬩簬锛歿{ record.process_begin_at }}</p>
+ <p
+ >杩囩▼鎸佺画鏃堕棿:{{
+ record.process_duation.toFixed(2)
+ }}</p
+ >
+ <div>
+ <p
+ >杩涘害娑堟伅锛�<span
+ v-html="
+ record.progress_msg.replace(/\n/g, '<br/>')
+ "
+ ></span
+ ></p>
+ </div>
</template>
</a-popover>
<a-popover title="" v-if="record.run == '0'">
@@ -359,7 +420,21 @@
>{{ $t('dmx.list.NotStarted') }}
</a-tag>
<template #content>
- <p></p>
+ <p>娴佺▼寮�濮嬩簬锛歿{ record.process_begin_at }}</p>
+ <p
+ >杩囩▼鎸佺画鏃堕棿锛歿{
+ record.process_duation.toFixed(2)
+ }}</p
+ >
+ <div>
+ <p
+ >杩涘害娑堟伅锛�<span
+ v-html="
+ record.progress_msg.replace(/\n/g, '<br/>')
+ "
+ ></span
+ ></p>
+ </div>
</template>
</a-popover>
</div>
@@ -368,6 +443,7 @@
type="text"
size="large"
@click="run(record)"
+ v-hasPermi="'/kb/data_analysis'"
:loading="record.loading"
>
<template #icon>
@@ -395,39 +471,57 @@
</div>
</template>
<template #action="{ record }">
- <tool
- :kbtenantInfo="kbtenantInfo"
+ <a-tooltip content="瑙f瀽鏂规硶">
+ <a-button
+ type="text"
+ :disabled="record.run == '1'"
+ @click="handleClick(record)"
+ 鏌�
+ size="small"
+ >
+ <template #icon>
+ <icon-tool />
+ </template>
+ </a-button>
+ </a-tooltip>
+ <edit
:item="record"
- :kbdetail="kbdetail"
+ v-hasPermi="'/kb/rename'"
+ @upTabdateItem="upTabdateItem"
/>
- <edit :item="record" @upTabdateItem="upTabdateItem" />
<a-popconfirm
:content="'纭畾鍒犻櫎鍚�'"
type="warning"
@ok="deleteItem(record)"
>
+ <a-tooltip content="鍒犻櫎">
+ <a-button
+ type="text"
+ size="small"
+ :disabled="record.run == '1'"
+ v-hasPermi="'/kb/data_delete'"
+ >
+ <template #icon>
+ <icon-delete />
+ </template>
+ </a-button>
+ </a-tooltip>
+ </a-popconfirm>
+ <a-tooltip content="涓嬭浇">
<a-button
type="text"
size="small"
+ v-hasPermi="'/kb/data_download'"
:disabled="record.run == '1'"
+ @click="onDownloadDocument(record)"
>
<template #icon>
- <icon-delete />
+ <icon-download />
</template>
</a-button>
- </a-popconfirm>
+ </a-tooltip>
+ <!--
<a-button
- type="text"
- size="small"
- :disabled="record.run == '1'"
- @click="onDownloadDocument(record)"
- >
- <template #icon>
- <icon-download />
- </template>
- </a-button>
-
- <!-- <a-button
type="text"
size="small"
:disabled="record.run == '1'"
@@ -442,7 +536,11 @@
</a-card>
</a-scrollbar>
</a-tab-pane>
- <a-tab-pane key="2" :title="t('dmx.list.test')">
+ <a-tab-pane
+ key="2"
+ :title="t('dmx.list.test')"
+ v-if="getAut('/kb/test')"
+ >
<a-scrollbar
class="rt-container-main"
:style="{ height: documentHeight + 70 + 'px' }"
@@ -451,7 +549,11 @@
<test ref="testForm"></test>
</a-scrollbar>
</a-tab-pane>
- <a-tab-pane key="3" :title="t('dmx.list.disposition')">
+ <a-tab-pane
+ key="3"
+ :title="t('dmx.list.disposition')"
+ v-if="getAut('/kb/update')"
+ >
<a-scrollbar
class="rt-container-main"
:style="{ height: documentHeight + 70 + 'px' }"
@@ -504,12 +606,18 @@
<!-- </div>-->
</div>
</div>
- <a-modal title=" " v-model:visible="visible" :footer="false" fullscreen>
- <!-- <docx previewSrc="http://192.168.20.116:1080/v1/document/get/405c3efa4d8c11ef97560242ac120006"></docx>-->
- <docx v-if="documenttype == 'docx'" :previewSrc="previewSrc"></docx>
- <excel v-if="documenttype == 'excel'" :previewSrc="previewSrc"></excel>
- <txtPdf v-if="documenttype == 'txtPdf'" :previewSrc="previewSrc"></txtPdf>
- </a-modal>
+ <!-- <a-modal title=" " v-model:visible="visible" :footer="false" fullscreen>-->
+ <!-- <!– <docx previewSrc="http://192.168.20.116:1080/v1/document/get/405c3efa4d8c11ef97560242ac120006"></docx>–>-->
+ <!-- <docx v-if="documenttype == 'docx'" :previewSrc="previewSrc"></docx>-->
+ <!-- <excel v-if="documenttype == 'excel'" :previewSrc="previewSrc"></excel>-->
+ <!-- <txtPdf v-if="documenttype == 'txtPdf'" :previewSrc="previewSrc"></txtPdf>-->
+ <!-- </a-modal>-->
+ <tool
+ ref="toolForm"
+ :kbtenantInfo="kbtenantInfo"
+ :item="setObj"
+ :kbdetail="kbdetail"
+ />
</div>
</template>
@@ -522,6 +630,7 @@
nextTick,
onBeforeMount,
onMounted,
+ onBeforeUnmount,
} from 'vue';
import { useI18n } from 'vue-i18n';
import useLoading from '@/hooks/loading';
@@ -552,13 +661,14 @@
import config from '@/views/dmx/knowledgeLib/config.vue';
import test from '@/views/dmx/knowledgeLib/test.vue';
import tool from '@/views/dmx/knowledgeLib/tool.vue';
- import docx from '@/views/dmx/knowledgeLib/components/docx.vue';
- import excel from '@/views/dmx/knowledgeLib/components/excel.vue';
- import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue';
+ // import docx from '@/views/dmx/knowledgeLib/components/docx.vue';
+ // import excel from '@/views/dmx/knowledgeLib/components/excel.vue';
+ // import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue';
import { Message, Modal } from '@arco-design/web-vue';
import { documentHeight, parseTime } from '@/utils';
import { deleteLlm } from '@/api/model';
import { userModelState } from '@/store';
+ import { getUserResources } from '@/utils/auth';
let modelStore = userModelState();
const httpUrl = modelStore.hrefUrl;
@@ -581,6 +691,7 @@
const formModel = ref(generateFormModel());
const cloneColumns = ref([]);
const showColumns = ref<Column[]>([]);
+ let setObj = reactive({});
const size = ref<SizeProps>('medium');
let visible = ref(false);
@@ -600,6 +711,7 @@
let kbdetail = reactive({});
let parser_ids = reactive({});
let seeObj = reactive({});
+ let toolForm = ref(null);
let kbtenantInfo = reactive({
asr_id: 'paraformer-realtime-8k-v1',
embd_id: 'BAAI/bge-large-zh-v1.5',
@@ -614,6 +726,7 @@
parser_idObj: {},
});
let tabs = ref([]);
+ let timer = null; // 瀹氭椂鍣�
const selectTab = (index, item) => {
selectedTab.value = index;
@@ -621,17 +734,23 @@
// console.log(item.id);
kbobj = item;
kbId = kbobj.id;
+ basePagination.page = 1;
fetchData({
kb_id: kbobj.id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
getKbdetail(kbobj.id);
};
+ const getAut = (val) => {
+ const roleData = JSON.parse(getUserResources());
+ const roleBtn = roleData.map((item: any) => item.component);
+ return roleBtn.includes(val);
+ };
+
const basePagination: Pagination = {
- current: 1,
- pageSize: 20,
+ page: 1,
+ page_size: 10,
};
const pagination = reactive({
...basePagination,
@@ -659,10 +778,12 @@
title: t('dmx.column.name'),
dataIndex: 'name',
slotName: 'name',
+ width: 300,
},
{
title: t('鍒嗗揩鏁�'),
dataIndex: 'chunk_num',
+ width: 90,
},
{
title: t('dmx.column.UploadTime'),
@@ -674,16 +795,19 @@
title: t('瑙f瀽鏂规硶'),
dataIndex: 'parser_id',
slotName: 'parser_id',
+ width: 150,
},
{
title: t('鍚敤'),
dataIndex: 'status',
slotName: 'status',
+ width: 100,
},
{
title: t('瑙f瀽鐘舵��'),
dataIndex: 'run',
slotName: 'run',
+ width: 100,
},
{
title: t('dmx.column.Operate'),
@@ -749,8 +873,38 @@
});
// console.log(renderData.value, 'renderData');
+ pagination.page = params.page;
pagination.current = params.page;
pagination.total = data.data.total;
+
+ if (timer) {
+ clearInterval(timer);
+ }
+ // 瀹氭椂鍣ㄦ煡璇㈡枃妗�
+ timer = setInterval(async () => {
+ let params = { ...basePagination, kb_id: kbobj.id };
+ const data = await queryKbDocumentList(params);
+ if (data.code == '0') {
+ parser_ids = kbtenantInfo.parser_ids
+ .split(',')
+ .reduce((acc, pair) => {
+ const [key, value] = pair.split(':');
+ acc[key] = value;
+ return acc;
+ }, {});
+ // console.log(parser_ids, 'parser_ids');
+ kbtenantInfo.parser_idObj = parser_ids;
+ renderData.value = data.data.docs || [];
+ renderData.value = renderData.value.map((item) => {
+ return {
+ ...item,
+ loading: false,
+ parser_id: parser_ids[item.parser_id],
+ };
+ });
+ // console.log(renderData.value, 'renderData');
+ }
+ }, 10000);
}
} catch (err) {
// you can report use errorHandler or other
@@ -760,20 +914,22 @@
};
const search = () => {
+ basePagination.page = 1;
fetchData({
kb_id: kbobj.id,
- page: 1,
- page_size: 20,
+ ...basePagination,
keywords: keywords.value,
});
};
- const handleClick = () => {
- visible.value = true;
+ const handleClick = (data) => {
+ Object.assign(setObj, data);
+ toolForm.value.handleClick(data);
};
const onPageChange = (current: number) => {
- fetchData({ ...basePagination, current, kb_id: kbobj.id });
+ basePagination.page = current;
+ fetchData({ ...basePagination, kb_id: kbobj.id });
};
const selectTabAll = (val) => {
@@ -785,7 +941,7 @@
checkedArr.value = val;
};
- const knowledgeData = async (params = { page: 1, page_size: 20 }) => {
+ const knowledgeData = async (params = { page: 1, page_size: 10 }) => {
listloading.value = true;
try {
const { data } = await queryKbList(params);
@@ -796,10 +952,10 @@
kbobj = tabs.value[0];
kbId = kbobj.id;
activeKey.value = '1';
+ basePagination.page = 1;
fetchData({
kb_id: kbobj.id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
getKbdetail(kbobj.id);
} else {
@@ -828,13 +984,15 @@
const getknowledge = async (id) => {
setLoading(true);
try {
- const { data } = await queryKbList({ page: 1, page_size: 20 });
+ const { data } = await queryKbList({ page: 1, page_size: 10 });
+
console.log(data, '鏌ヨ鐭ヨ瘑搴撳垪琛�');
tabs.value = data;
if (tabs.value.length > 0) {
// 瀹氫綅鍒版柊澧炵殑鐭ヨ瘑搴撳崟鍏�
selectedTab.value = tabs.value.findIndex((item) => item.id == id);
getKbdetail(id); // 鑾峰彇璇︽儏
+ kbobj.id = id;
activeKey.value = '3';
}
} catch (err) {
@@ -883,22 +1041,21 @@
const cancleConfig = () => {
activeKey.value = '1';
let id = tabs.value[selectedTab.value].id;
- fetchData({
- kb_id: id,
- page: 1,
- page_size: 20,
- });
+ // basePagination.page = 1;
+ // fetchData({
+ // kb_id: id,
+ // ...basePagination,
+ // });
};
const saveConfig = async () => {
activeKey.value = '1';
let id = tabs.value[selectedTab.value].id;
- const { data } = await queryKbList({ page: 1, page_size: 20 });
+ const { data } = await queryKbList({ page: 1, page_size: 10 });
tabs.value = data;
fetchData({
kb_id: id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
getKbdetail(id); // 鑾峰彇璇︽儏
};
@@ -933,11 +1090,6 @@
}
});
});
- // fetchData({
- // kb_id: tabs.value[selectedTab.value].id,
- // page: 1,
- // page_size: 20,
- // });
getKbList();
} else {
// Message.error('瑙f瀽澶辫触');
@@ -966,8 +1118,7 @@
const getKbList = async () => {
await fetchData({
kb_id: tabs.value[selectedTab.value].id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
};
@@ -1028,8 +1179,7 @@
// console.log(kbobj, 'kbobj');
fetchData({
kb_id: kbobj.id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
}
};
@@ -1092,10 +1242,10 @@
run: run,
});
if (data.code == 0) {
+ // 瀹氭椂鍣ㄦ煡璇㈠綋鍓嶅垪琛�
fetchData({
kb_id: tabs.value[selectedTab.value].id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
} else {
// Message.error('瑙f瀽澶辫触');
@@ -1106,10 +1256,10 @@
};
const changeFetchData = async (row) => {
+ basePagination.page = 1;
fetchData({
kb_id: kbobj.id,
- page: 1,
- page_size: 20,
+ ...basePagination,
});
};
watch(
@@ -1133,6 +1283,9 @@
onMounted(() => {
knowledgeData();
});
+ onBeforeUnmount(() => {
+ clearInterval(timer);
+ });
</script>
<style scoped lang="less">
--
Gitblit v1.8.0