liudong
2024-08-01 5ff5e947cbd5cc0d0819be8da5bbc18df8965a06
知识库文件的下载
4个文件已修改
126 ■■■■■ 已修改文件
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/kbList.ts 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/knowledgeLib/index.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yarn.lock 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -36,6 +36,7 @@
  },
  "dependencies": {
    "@arco-design/web-vue": "^2.44.7",
    "@vue-office/docx": "^1.6.2",
    "@vueuse/core": "^9.3.0",
    "arco-design-pro-vue": "^2.7.3",
    "axios": "^0.24.0",
src/api/kbList.ts
@@ -1,15 +1,15 @@
import axios from 'axios';
import qs from 'query-string';
import type { DescData } from '@arco-design/web-vue/es/descriptions/interface';
import axios from "axios";
import qs from "query-string";
import type { DescData } from "@arco-design/web-vue/es/descriptions/interface";
export interface PolicyRecord {
  id: string;
  number: number;
  name: string;
  contentType: 'img' | 'horizontalVideo' | 'verticalVideo';
  filterType: 'artificial' | 'rules';
  contentType: "img" | "horizontalVideo" | "verticalVideo";
  filterType: "artificial" | "rules";
  count: number;
  status: 'online' | 'offline';
  status: "online" | "offline";
  createdTime: string;
}
@@ -22,44 +22,49 @@
  list: PolicyRecord[];
  total: number;
}
// 知识库列表接口
export function queryKbList(params) {
  return axios.get('/api/v1/kb/list', {
  return axios.get("/api/v1/kb/list", {
    params
  });
}
// 知识库详情接口
export function queryKbdetail(params) {
  return axios.get('/api/v1/kb/detail', {
  return axios.get("/api/v1/kb/detail", {
    params
  });
}
// 信息接口
export function queryKbtenantInfo(params) {
  return axios.get('/api/v1/user/tenant_info', {
  return axios.get("/api/v1/user/tenant_info", {
    params
  });
}
// 文档列表接口
export function queryKbDocumentList(params) {
  return axios.get('/api/v1/document/list', {
  return axios.get("/api/v1/document/list", {
    params
  });
}
// 知识库创建接口
export function kbcreate(params) {
  return axios.post('/api/v1/kb/create', params);
  return axios.post("/api/v1/kb/create", params);
}
// 知识库删除接口
export function deleteKnow(params) {
  return axios.post('/api/v1/kb/rm', params);
  return axios.post("/api/v1/kb/rm", params);
}
//知识库更新接口
export function querykbupdate(params) {
  return axios.post('/api/v1/kb/update', params);
  return axios.post("/api/v1/kb/update", params);
}
// 文档上传接口
@@ -71,48 +76,49 @@
export function kbdocumentupload(params) {
  const config = {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      "Content-Type": "application/x-www-form-urlencoded"
      // token: token,
    },
  }
    }
  };
  return axios.post(
    '/api/v1/document/upload',
    "/api/v1/document/upload",
    params,
    config
  )
  );
}
// 文档启动/取消解析接口
export function kbdocumentrun(params) {
  return axios.post('/api/v1/document/run', params);
  return axios.post("/api/v1/document/run", params);
}
// 文档删除接口
export function kbdocumentrm(params) {
  return axios.post('/api/v1/document/rm', params);
  return axios.post("/api/v1/document/rm", params);
}
// 文档重命名接口
export function kbdocumentrename(params) {
  return axios.post('/api/v1/document/rename', params);
}
// 文件解析方法接口
export function kbdocumentchangeparser(params) {
  return axios.post('/api/v1/document/change_parser', params);
  return axios.post("/api/v1/document/rename", params);
}
 // 文档启用/禁用接口
// 文件解析方法接口
export function kbdocumentchangeparser(params) {
  return axios.post("/api/v1/document/change_parser", params);
}
// 文档启用/禁用接口
export function kbdocumentchangeStatus(params) {
  return axios.post('/api/v1/document/change_status', params);
  return axios.post("/api/v1/document/change_status", params);
}
// 模型列表接口
export function queryModelList(params) {
  return axios.get('/api/v1/llm/list', {
  return axios.get("/api/v1/llm/list", {
    params
  });
}
@@ -120,18 +126,40 @@
// 测试接口
export function kbretrievalTest(params) {
  return axios.post('/api/v1/chunk/retrieval_test', params);
  return axios.post("/api/v1/chunk/retrieval_test", params);
}
// 配置接口
export function kbUpdate(params) {
  return axios.post('/api/v1/kb/update', params);
  return axios.post("/api/v1/kb/update", params);
}
// 文档下载接口
export const downloadFile = ({
                               url,
                               filename,
                               target
                             }: {
  url: string;
  filename?: string;
  target?: string;
}) => {
  const downloadElement = document.createElement("a");
  downloadElement.style.display = "none";
  downloadElement.href = url;
  if (target) {
    downloadElement.target = "_blank";
  }
  downloadElement.rel = "noopener noreferrer";
  if (filename) {
    downloadElement.download = filename;
  }
  document.body.appendChild(downloadElement);
  downloadElement.click();
  document.body.removeChild(downloadElement);
};
src/views/dmx/knowledgeLib/index.vue
@@ -223,9 +223,14 @@
                        </template>
                      </a-button>
                    </a-popconfirm>
                    <a-button type="text" size="small">
                    <a-button type="text" size="small" @click="onDownloadDocument(record)">
                      <template #icon>
                        <icon-download />
                      </template>
                    </a-button>
                    <a-button type="text" size="small"  @click="seeload(record)">
                      <template #icon>
                        <icon-eye />
                      </template>
                    </a-button>
                  </template>
@@ -296,7 +301,7 @@
  queryKbDocumentList,
  deleteKnow,
  queryKbdetail,
  queryKbtenantInfo, kbdocumentrm, kbdocumentchangeparser, kbdocumentrun, kbdocumentchangeStatus
  queryKbtenantInfo, kbdocumentrm, kbdocumentchangeparser, kbdocumentrun, kbdocumentchangeStatus,downloadFile
} from "@/api/kbList";
  import { Pagination } from '@/types/global';
  import type { SelectOptionData } from '@arco-design/web-vue/es/select/interface';
@@ -433,8 +438,8 @@
      title: t('dmx.column.Operate'),
      dataIndex: 'action',
      slotName: 'action',
      width: 150,
      minWidth: 150,
      width: 200,
      minWidth: 200,
    },
  ]);
  const contentTypeOptions = computed<SelectOptionData[]>(() => [
@@ -659,6 +664,16 @@
      })
    }
  }
  const   onDownloadDocument =  async (record)=>{
    console.log(record);
    downloadFile({
      url: `/api/v1/document/get/${record.id}`,
      filename: record.name,
    });
  }
const   seeload =  async (row)=>{
  console.log(row);
}
const   handleChangeStatus =  async (row)=>{
  console.log(row);
@@ -685,11 +700,6 @@
    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('解析成功');
    row.run = '3';
yarn.lock
@@ -1015,6 +1015,11 @@
    "@volar/language-core" "1.11.1"
    path-browserify "^1.0.1"
"@vue-office/docx@^1.6.2":
  version "1.6.2"
  resolved "https://registry.npmmirror.com/@vue-office/docx/-/docx-1.6.2.tgz#c97d28db60db5325dd351d90b0202dd3d54ad427"
  integrity sha512-OHAoUHeY8nHjhWvwDhlPx+/rmRkxmqLpvPgtfCEOZ4H1c1LCdJ6eDbdV3152ww8dcdZ7fgGQu3fmSSaI7JwdpQ==
"@vue/babel-helper-vue-transform-on@1.2.2":
  version "1.2.2"
  resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz#7f1f817a4f00ad531651a8d1d22e22d9e42807ef"