From e6666db4911ee0214cc57564ded0cbb9534220a4 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期二, 30 七月 2024 15:00:13 +0800
Subject: [PATCH] 知识库页面测试和配置接口调用开发

---
 src/views/dmx/knowledgeLib/index.vue |  178 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 132 insertions(+), 46 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index 07dba76..7bf2dae 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -26,7 +26,6 @@
                   <a-popconfirm content="纭畾鍒犻櫎鍚�?" @ok="deleteKnowledge(tab.id)" type="warning">
                     <span style="cursor: pointer;color: #0960bd;font-size: 12px"><icon-delete />鍒犻櫎</span>
                   </a-popconfirm>
-
                 </template>
               </a-popover>
             </div>
@@ -53,7 +52,7 @@
                             style="width: 200px;margin-right: 10px"
                           />
                           <!--            鏂板缓-->
-                          <add />
+                          <add :kbobj="kbobj" @changeFetchData="changeFetchData"/>
                         </a-col>
                       </a-row>
                     </a-form>
@@ -166,54 +165,56 @@
                   <template #create_time="{ record }">
                     <span>{{parseTime(record.create_time)}}</span>
                   </template>
+<!--                  <template #parser_id="{ record }">-->
+<!--                    <span>{{ parser_ids[record.parser_id]}}</span>-->
+<!--                  </template>-->
                   <template #status="{ record }">
-                    <a-switch v-model="record.status"  checked-value="0" unchecked-value="1"/>
+                    <a-switch v-model="record.status"  checked-value="1" unchecked-value="0" @change="handleChangeStatus(record)"/>
                   </template>
                   <template #run="{ record }">
                     <div style="display: flex;align-items: center;">
                       <div style="width: 100px">
-                        <a-popover title="Title" v-if="record.run == '2'">
-                          <a-tag :color="'blue'" border>{{$t('dmx.list.complete')}}</a-tag>
+                        <a-popover title="Title" v-if="record.run == '3'">
+                          <a-tag  :loading="record.loading" :color="'blue'" border>{{$t('dmx.list.complete')}}</a-tag>
                           <template #content>
                             <p>Here is the text content</p>
                           </template>
                         </a-popover>
                         <a-popover title="Title" v-if="record.run == '1'">
-                          <a-tag :color="'gold'" border>{{$t('dmx.list.cancel')}}</a-tag>
+                          <a-tag :loading="record.loading"  :color="'blue'" border>{{$t('dmx.list.complete')}}</a-tag>
+                          <template #content>
+                            <p>Here is the text content</p>
+                          </template>
+                        </a-popover>
+                        <a-popover title="Title" v-if="record.run == '2'">
+                          <a-tag :loading="record.loading"  :color="'gold'" border>{{$t('dmx.list.cancel')}}</a-tag>
                           <template #content>
                             <p>Here is the text content</p>
                           </template>
                         </a-popover>
                         <a-popover title="Title" v-if="record.run == '0'">
-                          <a-tag :color="'green'" border>{{$t('dmx.list.NotStarted')}}</a-tag>
+                          <a-tag :loading="record.loading"  :color="'green'" border>{{$t('dmx.list.NotStarted')}}</a-tag>
                           <template #content>
                             <p>Here is the text content</p>
                           </template>
                         </a-popover>
                       </div>
-                      <div>
-                        <a-button type="text" size="large" v-if="record.run == '2'">
+                      <div >
+                        <a-button type="text" size="large" @click="run(record)" :loading="record.loading">
                           <template #icon>
-                            <icon-sync />
-                          </template>
-                        </a-button>
-                        <a-button type="text" size="large" v-if="record.run == '1'">
-                          <template #icon>
-                            <icon-sync style="color: green" />
-                          </template>
-                        </a-button>
-                        <a-button type="text" size="large" v-if="record.run == '0'">
-                          <template #icon>
-                            <icon-play-circle style="color: green" />
+                            <icon-sync  v-if="record.run == '3'"/>
+                            <icon-sync  v-if="record.run == '2'"/>
+                            <icon-sync style="color: green"  v-if="record.run == '1'"/>
+                            <icon-play-circle style="color: green"  v-if="record.run == '0'"/>
                           </template>
                         </a-button>
                       </div>
                     </div>
                   </template>
                   <template #action="{ record }" >
-                    <tool/>
-                    <edit/>
-                    <a-popconfirm :content="t('纭畾鍒犻櫎鍚�')" type="warning" @ok="deleteItem(record)">
+                    <tool :kbtenantInfo="kbtenantInfo" :item="record" :kbdetail="kbdetail" />
+                    <edit :item="record" @upTabdateItem="upTabdateItem"/>
+                    <a-popconfirm :content="'纭畾鍒犻櫎鍚�'" type="warning" @ok="deleteItem(record)">
                       <a-button  type="text" size="small">
                         <template #icon>
                           <icon-delete />
@@ -232,12 +233,12 @@
           </a-tab-pane>
           <a-tab-pane key="2" :title="t('dmx.list.test')">
             <div class="rt-container-main">
-              <test ></test>
+              <test :kbobj="kbobj"></test>
             </div>
           </a-tab-pane>
           <a-tab-pane key="3" :title="t('dmx.list.disposition')">
             <div class="rt-container-main">
-              <config ></config>
+              <config :kbtenantInfo="kbtenantInfo" :kbdetail="kbdetail" :kbobj="kbobj"></config>
             </div>
           </a-tab-pane>
         </a-tabs>
@@ -293,7 +294,7 @@
   queryKbDocumentList,
   deleteKnow,
   queryKbdetail,
-  queryKbtenantInfo
+  queryKbtenantInfo, kbdocumentrm, kbdocumentchangeparser, kbdocumentrun, kbdocumentchangeStatus
 } from "@/api/kbList";
   import { Pagination } from '@/types/global';
   import type { SelectOptionData } from '@arco-design/web-vue/es/select/interface';
@@ -307,7 +308,6 @@
   import test from '@/views/dmx/knowledgeLib/test.vue'
   import tool from '@/views/dmx/knowledgeLib/tool.vue'
   import addDetails from '@/views/dmx/knowledgeLib/addDetails.vue'
-  import { deleteAccount } from "@/api/account";
 import { Message } from "@arco-design/web-vue";
 import { parseTime } from "@/utils";
   type SizeProps = 'mini' | 'small' | 'medium' | 'large';
@@ -334,13 +334,29 @@
   let visible = ref(false)
   let detailsShow = ref(false)
   let selectedTab = ref(0)
+  let kbobj = reactive({})
+  let kbdetail = reactive({})
+  let parser_ids = reactive({})
+  let kbtenantInfo = reactive({
+    "asr_id": "paraformer-realtime-8k-v1",
+    "embd_id": "BAAI/bge-large-zh-v1.5",
+    "img2txt_id": "qwen-vl-max",
+    "llm_id": "qwen-plus",
+    "name": "wanghao鈥榮 Kingdom",
+    "parser_ids": "naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One",
+    "rerank_id": "BAAI/bge-reranker-v2-m3",
+    "role": "owner",
+    "tenant_id": "948fc6fa41ab11ef8fb80242ac120004",
+    parser_idObj:{}
+  })
   let tabs = ref([])
 
   const  selectTab = (index,item) => {
     selectedTab.value= index;
     console.log(item.id);
+    kbobj= item
     fetchData({
-      kb_id: item.id,
+      kb_id: kbobj.id,
       page: 1,
       page_size: 20
     })
@@ -396,7 +412,6 @@
       title: t('鍚敤'),
       dataIndex: 'status',
       slotName: 'status',
-      slotName: 'status',
     },
     {
       title: t('瑙f瀽鐘舵��'),
@@ -451,15 +466,31 @@
       const  data  = await queryKbDocumentList(params);
       console.log(data, 'data');
       if(data.code=='0'){
+        //   璇︽儏
+        // const  kbtenantInfo  = await queryKbtenantInfo();
+        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.value');
+
         pagination.current = params.page;
         pagination.total = data.data.total;
         //   鏌ヨ鐭ヨ瘑搴撹鎯�
-        const  kbdetail  = await queryKbdetail({
+        kbdetail  = await queryKbdetail({
           kb_id:params.kb_id,
         });
-        //   璇︽儏
-        // const  kbtenantInfo  = await queryKbtenantInfo();
 
 
 
@@ -498,8 +529,9 @@
       tabs.value = data;
       console.log(tabs.value, 'tabs');
       if(tabs.value.length>0 && tabs.value[0]){
+        kbobj = tabs.value[0]
         fetchData({
-          kb_id: tabs.value[0].id,
+          kb_id: kbobj.id,
           page: 1,
           page_size: 20
         })
@@ -516,10 +548,6 @@
   };
 
   const deleteKnowledge = async (id) => {
-
-
-
-
     let data = await deleteKnow({
       kb_id:id
     })
@@ -595,17 +623,75 @@
     detailsShow.value = false
 
   }
-
-  const   deleteItem =  async (row)=>{
-    console.log(row);
-    // let data = await deleteAccount({id: row.number})
-    account.value.$messageSuccess('鍒犻櫎鎴愬姛')
-    //
-    // if(data.code == 200){
-    //   this.$messageSuccess('鍒犻櫎鎴愬姛')
-    // }
+  function upTabdateItem(id, newName) {
+    console.log(id, newName);
+    const itemToUpdate = renderData.value.find(item => item.id === id);
+    if (itemToUpdate) {
+      itemToUpdate.name = newName;
+    }
   }
 
+const   deleteItem =  async (row)=>{
+    console.log(row);
+    let data = await kbdocumentrm({doc_id: row.id})
+    if(data.code == 0){
+      Message.success('鍒犻櫎鎴愬姛');
+      console.log(kbobj, 'kbobj');
+      fetchData({
+        kb_id: kbobj.id,
+        page: 1,
+        page_size: 20
+      })
+    }
+  }
+
+const   handleChangeStatus =  async (row)=>{
+  console.log(row);
+  let data = await kbdocumentchangeStatus({
+    doc_id: row.id,
+    status: row.status
+  })
+  if(data.code == 0){
+    Message.success('鎿嶄綔鎴愬姛');
+  }
+}
+
+
+const   run =  async (row)=>{
+  console.log(row);
+  row.loading = true;
+  let run = '1'
+  if(row.run!='2'){
+    run = '1'
+  }else {
+    run = '2'
+  }
+  let data = await kbdocumentrun({
+    doc_ids: [row.id],
+    run: run
+  })
+  // let data = await kbdocumentchangeparser({
+  //   parser_id: row.parser_id,
+  //   doc_id: row.id,
+  //   parser_config: row.parser_config,
+  // })
+  if(data.code == 0){
+    Message.success('瑙f瀽鎴愬姛');
+    row.run = '3';
+  }else{
+    Message.error('瑙f瀽澶辫触');
+    row.run = '1';
+  }
+  row.loading = false;
+}
+
+const   changeFetchData =  async (row)=>{
+  fetchData({
+    kb_id: kbobj.id,
+    page: 1,
+    page_size: 20
+  })
+}
   watch(
     () => columns.value,
     (val) => {

--
Gitblit v1.8.0