|
@@ -7,39 +7,65 @@
|
|
|
empty-text="没有模板信息"
|
|
|
>
|
|
|
<el-table-column prop="id" label="ID" align="center" width="80" />
|
|
|
- <el-table-column prop="object_name" label="文件名称" align="center" />
|
|
|
- <el-table-column prop="size" label="分块数" align="center" />
|
|
|
- <el-table-column prop="last_modified" label="上传时间" align="center" />
|
|
|
- <el-table-column prop="" label="解析方法" align="center" />
|
|
|
- <el-table-column prop="createTime" label="启用" align="center" />
|
|
|
- <el-table-column prop="status" label="解析状态" align="center">
|
|
|
+ <el-table-column prop="name" label="文件名称" align="center">
|
|
|
<template #default="scope">
|
|
|
+ <span @click="getName(scope.row)">{{ scope.row.name }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="token_num" label="分块数" align="center" />
|
|
|
+ <el-table-column prop="create_time" label="上传时间" align="center" />
|
|
|
+ <!-- <el-table-column prop="" label="解析方法" align="center" /> -->
|
|
|
+ <el-table-column prop="createTime" label="启用" align="center"
|
|
|
+ ><template #default="scope">
|
|
|
<div v-if="scope.row.status == 5">启用</div>
|
|
|
<div v-if="scope.row.status == 6">停用</div>
|
|
|
+ </template></el-table-column
|
|
|
+ >
|
|
|
+ <el-table-column prop="run" label="解析状态" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div v-if="scope.row.run == 0">未解析</div>
|
|
|
+ <div v-if="scope.row.run == 1">解析中</div>
|
|
|
+ <div v-if="scope.row.run == 3">成功</div>
|
|
|
+ <div v-if="scope.row.run == 4">失败</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" align="center" width="300"><!-- editWidth() -->
|
|
|
+ <el-table-column label="操作" align="center" width="500"
|
|
|
+ ><!-- editWidth() -->
|
|
|
<template #default="scope">
|
|
|
<div class="btns">
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
size="small"
|
|
|
v-if="allowEdit"
|
|
|
- @click="btnEdit(scope.row.object_name)"
|
|
|
+ @click="analysis(scope.row)"
|
|
|
+ >解析</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ v-if="allowEdit"
|
|
|
+ @click="Analytical(scope.row)"
|
|
|
+ >解析方法</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ v-if="allowEdit"
|
|
|
+ @click="btnEdit(scope.row)"
|
|
|
><svg-icon icon-class="edit" />修改文件名</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
size="small"
|
|
|
v-if="allowEdit"
|
|
|
- @click="btnDown(scope.row.object_name)"
|
|
|
+ @click="btnDown(scope.row.name)"
|
|
|
><svg-icon icon-class="edit" />下载</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
type="danger"
|
|
|
size="small"
|
|
|
v-if="allowDelete"
|
|
|
- @click="btnDelete(scope.row.object_name)"
|
|
|
+ @click="btnDelete(scope.row.id)"
|
|
|
><svg-icon icon-class="delete" />删除</el-button
|
|
|
>
|
|
|
</div>
|
|
@@ -78,11 +104,56 @@
|
|
|
<el-button type="primary" @click="submitBuck">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <!-- 解析方法 -->
|
|
|
+ <el-dialog
|
|
|
+ title="解析方法"
|
|
|
+ :visible.sync="anaDialogVisible"
|
|
|
+ width="30%"
|
|
|
+ :before-close="handleAnalClose"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ :model="analForm"
|
|
|
+ ref="analRef"
|
|
|
+ label-position="top"
|
|
|
+ :rules="analRules"
|
|
|
+ >
|
|
|
+ <el-form-item label="页码范围:" prop="new_name">
|
|
|
+ <el-input-number
|
|
|
+ v-model="analForm.start_page"
|
|
|
+ controls-position="right"
|
|
|
+ :min="1"
|
|
|
+ ></el-input-number>
|
|
|
+ <el-input-number
|
|
|
+ v-model="analForm.end_page"
|
|
|
+ controls-position="right"
|
|
|
+ :min="1"
|
|
|
+ style="margin-left: 10px"
|
|
|
+ ></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="块token数">
|
|
|
+ <div class="block">
|
|
|
+ <el-slider v-model="analForm.token_num" :max="2048" show-input>
|
|
|
+ </el-slider>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="handleAnalClose">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitAnal">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getBucketContents, deleteFile, nameGetUrl,renameFile } from "@/api/knowledge";
|
|
|
+import {
|
|
|
+ getBucketContents,
|
|
|
+ deleteFile,
|
|
|
+ nameGetUrl,
|
|
|
+ renameFile,
|
|
|
+ analysis,
|
|
|
+} from "@/api/knowledge";
|
|
|
export default {
|
|
|
props: {
|
|
|
queryForm: {
|
|
@@ -91,7 +162,7 @@ export default {
|
|
|
return {
|
|
|
page: 1,
|
|
|
pageSize: 10,
|
|
|
- bucket_name: "",
|
|
|
+ id: "",
|
|
|
};
|
|
|
},
|
|
|
},
|
|
@@ -137,22 +208,64 @@ export default {
|
|
|
currentData: {},
|
|
|
dialogVisible: false,
|
|
|
wordForm: {
|
|
|
- bucket_name: this.$route.query.bucket_name,
|
|
|
- object_name: "",
|
|
|
+ document_id: "",
|
|
|
new_name: "",
|
|
|
},
|
|
|
wordRules: {
|
|
|
new_name: [
|
|
|
{ required: true, message: "请输入文件名称", trigger: "blur" },
|
|
|
- { validator: validateBucketName, trigger: "blur" },
|
|
|
+ /* { validator: validateBucketName, trigger: "blur" }, */
|
|
|
],
|
|
|
},
|
|
|
+ anaDialogVisible: false,
|
|
|
+ analForm: {
|
|
|
+ start_page: 1,
|
|
|
+ end_page: 10000,
|
|
|
+ token_num: 0,
|
|
|
+ },
|
|
|
+ analRules: {},
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
this.search();
|
|
|
},
|
|
|
methods: {
|
|
|
+ /* 跳转页面 */
|
|
|
+ getName(e) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/knowledge/category/infoList",
|
|
|
+ query: { id: 6 },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* 解析 */
|
|
|
+ analysis(e) {
|
|
|
+ analysis({
|
|
|
+ document_id: e.id,
|
|
|
+ start_page: 0,
|
|
|
+ end_page: 1000,
|
|
|
+ max_tokens: e.token_num,
|
|
|
+ }).then((res) => {});
|
|
|
+ },
|
|
|
+ handleAnalClose() {
|
|
|
+ this.anaDialogVisible = false;
|
|
|
+ },
|
|
|
+ /* 确认 */
|
|
|
+ submitAnal() {
|
|
|
+ this.dataList.map((el) => {
|
|
|
+ if (this.analForm.id == el.id) {
|
|
|
+ el.start_page = this.analForm.start_page;
|
|
|
+ el.end_page = this.analForm.end_page;
|
|
|
+ el.token_num=this.analForm.token_num
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ /* 解析方法 */
|
|
|
+ Analytical(e) {
|
|
|
+ this.analForm.id = e.id;
|
|
|
+ this.analForm.token_num = e.token_num;
|
|
|
+ this.anaDialogVisible = true;
|
|
|
+ },
|
|
|
editWidth() {
|
|
|
if (this.allowDelete && this.allowEdit) {
|
|
|
return 200;
|
|
@@ -179,8 +292,7 @@ export default {
|
|
|
btnDelete(e) {
|
|
|
let _this = this;
|
|
|
let par = {
|
|
|
- bucket_name: this.$route.query.bucket_name,
|
|
|
- object_name: e,
|
|
|
+ document_id: e,
|
|
|
};
|
|
|
_this
|
|
|
.$confirm("您是否确认删除该记录?", "提示", {
|
|
@@ -190,6 +302,8 @@ export default {
|
|
|
})
|
|
|
.then((res) => {
|
|
|
deleteFile(par).then((res) => {
|
|
|
+ if (res.status !== 200) return;
|
|
|
+ _this.$message.success(res.data);
|
|
|
_this.search();
|
|
|
});
|
|
|
})
|
|
@@ -207,7 +321,8 @@ export default {
|
|
|
},
|
|
|
/* 修改文件名 */
|
|
|
btnEdit(e) {
|
|
|
- this.wordForm.object_name = e;
|
|
|
+ this.wordForm.new_name = e.name;
|
|
|
+ this.wordForm.document_id = e.id;
|
|
|
this.dialogVisible = true;
|
|
|
},
|
|
|
/* 提交 */
|
|
@@ -216,9 +331,12 @@ export default {
|
|
|
if (valid) {
|
|
|
renameFile(this.wordForm).then((res) => {
|
|
|
if (res.status !== 200) return;
|
|
|
- this.search()
|
|
|
+ this.search();
|
|
|
this.dialogVisible = false;
|
|
|
- this.wordForm = {};
|
|
|
+ this.wordForm = {
|
|
|
+ new_name: "",
|
|
|
+ document_id: "",
|
|
|
+ };
|
|
|
});
|
|
|
} else {
|
|
|
this.$message.error("请填写文档名称");
|
|
@@ -229,8 +347,7 @@ export default {
|
|
|
//编辑
|
|
|
btnDown(e) {
|
|
|
nameGetUrl({
|
|
|
- bucket_name: this.$route.query.bucket_name,
|
|
|
- object_name: e,
|
|
|
+ name: e,
|
|
|
})
|
|
|
.then((res) => {
|
|
|
if (res.status !== 200) {
|
|
@@ -284,8 +401,12 @@ export default {
|
|
|
getBucketContents(_this.queryForm)
|
|
|
.then((res) => {
|
|
|
if (res.status !== 200) return;
|
|
|
- _this.dataList = res.data.files;
|
|
|
- _this.pageTotal = res.data.total_count;
|
|
|
+ res.data.documents.map((el) => {
|
|
|
+ el.start_page = this.analForm.start_page;
|
|
|
+ el.end_page = this.analForm.end_page;
|
|
|
+ });
|
|
|
+ _this.dataList = res.data.documents;
|
|
|
+ _this.pageTotal = res.data.pagination.total_count;
|
|
|
_this.loading = false; // Set loading to false after data is processed
|
|
|
})
|
|
|
.catch(() => {
|