yinbangzhong
2024-09-12 ff0ae974a1c561eaf2915988dac63cd066af189f
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)"
                                >
@@ -309,11 +316,8 @@
                    <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>流程开始于:{{ record.process_begin_at }}</p>
@@ -467,17 +471,19 @@
                    </div>
                  </template>
                  <template #action="{ record }">
                    <a-button
                      type="text"
                      :disabled="record.run == '1'"
                      @click="handleClick(record)"
                      v-hasPermi="'/kb/data_update'"
                      size="small"
                    >
                      <template #icon>
                        <icon-tool />
                      </template>
                    </a-button>
                    <a-tooltip content="解析方法">
                      <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"
                      v-hasPermi="'/kb/rename'"
@@ -488,30 +494,34 @@
                      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'"
                        v-hasPermi="'/kb/data_delete'"
                        @click="onDownloadDocument(record)"
                      >
                        <template #icon>
                          <icon-delete />
                          <icon-download />
                        </template>
                      </a-button>
                    </a-popconfirm>
                    </a-tooltip>
                    <!--
                    <a-button
                      type="text"
                      size="small"
                      v-hasPermi="'/kb/data_download'"
                      :disabled="record.run == '1'"
                      @click="onDownloadDocument(record)"
                    >
                      <template #icon>
                        <icon-download />
                      </template>
                    </a-button>
                    <!-- <a-button
                      type="text"
                      size="small"
                      :disabled="record.run == '1'"
@@ -596,12 +606,12 @@
        <!--        </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>-->
    <!--      &lt;!&ndash;      <docx  previewSrc="http://192.168.20.116:1080/v1/document/get/405c3efa4d8c11ef97560242ac120006"></docx>&ndash;&gt;-->
    <!--      <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"
@@ -651,9 +661,9 @@
  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';
@@ -867,34 +877,8 @@
        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);
        documentList()
      }
    } catch (err) {
      // you can report use errorHandler or other
@@ -902,6 +886,31 @@
      setLoading(false);
    }
  };
  const documentList= 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');
    }
  }
  const search = () => {
    basePagination.page = 1;
@@ -975,12 +984,14 @@
    setLoading(true);
    try {
      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) {