liudong
2024-08-21 755748ef83c96247b6a191189be8571d739022a2
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 @@
                            >解析中...</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>
@@ -514,15 +584,15 @@
</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 {
@@ -614,6 +684,9 @@
    parser_idObj: {},
  });
  let tabs = ref([]);
  let timer = null;// 定时器
  const selectTab = (index, item) => {
    selectedTab.value = index;
@@ -621,17 +694,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 +732,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 +749,19 @@
      title: t('解析方法'),
      dataIndex: 'parser_id',
      slotName: 'parser_id',
      width: 150,
    },
    {
      title: t('启用'),
      dataIndex: 'status',
      slotName: 'status',
      width: 100,
    },
    {
      title: t('解析状态'),
      dataIndex: 'run',
      slotName: 'run',
      width: 100,
    },
    {
      title: t('dmx.column.Operate'),
@@ -749,8 +827,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,10 +868,10 @@
  };
  const search = () => {
    basePagination.page = 1;
    fetchData({
      kb_id: kbobj.id,
      page: 1,
      page_size: 20,
      ...basePagination,
      keywords: keywords.value,
    });
  };
@@ -773,7 +881,8 @@
  };
  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 +894,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 +905,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 +937,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 +992,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 +1041,6 @@
            }
          });
        });
        // fetchData({
        //   kb_id: tabs.value[selectedTab.value].id,
        //   page: 1,
        //   page_size: 20,
        // });
        getKbList();
      } else {
        // Message.error('解析失败');
@@ -966,8 +1069,7 @@
  const getKbList = async () => {
    await fetchData({
      kb_id: tabs.value[selectedTab.value].id,
      page: 1,
      page_size: 20,
      ...basePagination,
    });
  };
@@ -1028,8 +1130,7 @@
      // console.log(kbobj, 'kbobj');
      fetchData({
        kb_id: kbobj.id,
        page: 1,
        page_size: 20,
        ...basePagination,
      });
    }
  };
@@ -1092,11 +1193,14 @@
      run: run,
    });
    if (data.code == 0) {
      // 定时器查询当前列表
      fetchData({
        kb_id: tabs.value[selectedTab.value].id,
        page: 1,
        page_size: 20,
        ...basePagination,
      });
    } else {
      // Message.error('解析失败');
      // row.run = '1';
@@ -1106,10 +1210,10 @@
  };
  const changeFetchData = async (row) => {
    basePagination.page = 1;
    fetchData({
      kb_id: kbobj.id,
      page: 1,
      page_size: 20,
      ...basePagination,
    });
  };
  watch(
@@ -1133,6 +1237,9 @@
  onMounted(() => {
    knowledgeData();
  });
  onBeforeUnmount(() => {
    clearInterval(timer);
  })
</script>
<style scoped lang="less">