From 09db9d662b70649e2b378d2599dfe7f7a2bd93ab Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 22 八月 2024 16:19:43 +0800
Subject: [PATCH] agent会话停止功能

---
 src/views/dmx/knowledgeLib/index.vue |  227 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 174 insertions(+), 53 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index 1be7bab..4f8fefc 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -315,7 +315,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 == '3'">
@@ -326,7 +340,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 +365,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 +390,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 +415,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>
@@ -395,11 +465,16 @@
                     </div>
                   </template>
                   <template #action="{ record }">
-                    <tool
-                      :kbtenantInfo="kbtenantInfo"
-                      :item="record"
-                      :kbdetail="kbdetail"
-                    />
+                    <a-button
+                      type="text"
+                      :disabled="record.run == '1'"
+                      @click="handleClick(record)"
+                      size="small"
+                    >
+                      <template #icon>
+                        <icon-tool />
+                      </template>
+                    </a-button>
                     <edit :item="record" @upTabdateItem="upTabdateItem" />
                     <a-popconfirm
                       :content="'纭畾鍒犻櫎鍚�'"
@@ -510,19 +585,25 @@
       <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>
 
 <script lang="ts" setup>
-  import {
-    computed,
-    ref,
-    reactive,
-    watch,
-    nextTick,
-    onBeforeMount,
-    onMounted,
-  } from 'vue';
+import {
+  computed,
+  ref,
+  reactive,
+  watch,
+  nextTick,
+  onBeforeMount,
+  onMounted, onBeforeUnmount
+} from "vue";
   import { useI18n } from 'vue-i18n';
   import useLoading from '@/hooks/loading';
   import {
@@ -581,6 +662,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 +682,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 +697,9 @@
     parser_idObj: {},
   });
   let tabs = ref([]);
+  let timer = null;// 瀹氭椂鍣�
+
+
 
   const selectTab = (index, item) => {
     selectedTab.value = index;
@@ -621,17 +707,17 @@
     // 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 basePagination: Pagination = {
-    current: 1,
-    pageSize: 20,
+    page: 1,
+    page_size: 10,
   };
   const pagination = reactive({
     ...basePagination,
@@ -659,10 +745,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 +762,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 +840,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 +881,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 +908,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 +919,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,7 +951,7 @@
   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) {
@@ -883,22 +1006,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 +1055,6 @@
             }
           });
         });
-        // fetchData({
-        //   kb_id: tabs.value[selectedTab.value].id,
-        //   page: 1,
-        //   page_size: 20,
-        // });
         getKbList();
       } else {
         // Message.error('瑙f瀽澶辫触');
@@ -966,8 +1083,7 @@
   const getKbList = async () => {
     await fetchData({
       kb_id: tabs.value[selectedTab.value].id,
-      page: 1,
-      page_size: 20,
+      ...basePagination,
     });
   };
 
@@ -1028,8 +1144,7 @@
       // console.log(kbobj, 'kbobj');
       fetchData({
         kb_id: kbobj.id,
-        page: 1,
-        page_size: 20,
+        ...basePagination,
       });
     }
   };
@@ -1092,11 +1207,14 @@
       run: run,
     });
     if (data.code == 0) {
+      // 瀹氭椂鍣ㄦ煡璇㈠綋鍓嶅垪琛�
       fetchData({
         kb_id: tabs.value[selectedTab.value].id,
-        page: 1,
-        page_size: 20,
+        ...basePagination,
       });
+
+
+
     } else {
       // Message.error('瑙f瀽澶辫触');
       // row.run = '1';
@@ -1106,10 +1224,10 @@
   };
 
   const changeFetchData = async (row) => {
+    basePagination.page = 1;
     fetchData({
       kb_id: kbobj.id,
-      page: 1,
-      page_size: 20,
+      ...basePagination,
     });
   };
   watch(
@@ -1133,6 +1251,9 @@
   onMounted(() => {
     knowledgeData();
   });
+  onBeforeUnmount(() => {
+    clearInterval(timer);
+  })
 </script>
 
 <style scoped lang="less">

--
Gitblit v1.8.0