feat(api): 新增 MinerU相关接口并优化 PDF预览功能

- 新增 getPdfUrl 接口用于获取 PDF 预览 URL
- 新增 minerUMarkDownUpdate 接口用于更新 Markdown 内容- 优化了 RenderMinerU 组件,增加保存并处理功能
- 调整了知识库详情页面布局
- 修复了规则管理相关组件的样式问题
This commit is contained in:
陈昱达
2025-04-11 18:08:27 +08:00
parent 93dd8483e4
commit 09a9b696e5
14 changed files with 535 additions and 404 deletions

View File

@@ -1,108 +1,112 @@
<script>
import { getRuleDetail } from "@/api/rules/index";
import { updateSplitRule } from "@/api/rules/index";
<script>
import { getRuleDetail } from '@/api/rules/index'
import { updateSplitRule } from '@/api/rules/index'
export default {
name: 'sEditSplitRule',
data() {
return {
// 表单数据有:规则名称、样式、提示词、备注
form: {
id: '',
ruleName: '',
ruleType: '',
ruleList: []
}
export default {
name: 'sEditSplitRule',
data() {
return {
// 表单数据有:规则名称、样式、提示词、备注
form: {
id: '',
ruleName: '',
ruleType: '',
ruleList: []
}
},
inject: ['diglogOptions'],
beforeMount() {
// 获取当前行数据
const { currentRow } = this.diglogOptions;
}
},
inject: ['diglogOptions'],
beforeMount() {
// 获取当前行数据
const { currentRow } = this.diglogOptions
// 获取规则详情
getRuleDetail(currentRow.id).then(res => {
const { content } = res.content;
console.log('origin query request', content);
// 获取规则详情
getRuleDetail(currentRow.id)
.then(res => {
const { content } = res.content
console.log('origin query request', content)
// 一次性设置表单数据,确保响应式更新
this.form = {
id: content.id,
ruleName: content.ruleName,
ruleType: content.ruleType,
ruleList: Array.isArray(content.ruleList) ? content.ruleList : []
};
}).catch(err => {
console.error('获取规则详情失败:', err);
});
},
methods: {
handleAdd() {
// TODO: 新增数据到后端
const payload = {
titleLevel: '',
ruleRegex: '',
description: ''
};
// 使用数组方法添加元素,确保响应式更新
this.form.ruleList.push(payload);
},
handleDelete() {
// TODO: 删除数据到后端
if (this.form.ruleList.length > 0) {
this.form.ruleList.pop();
}
},
handleSave() {
// 使用正确的API保存数据到后端
console.log(`this.form`,this.form);
})
.catch(err => {
console.error('获取规则详情失败:', err)
})
},
updateSplitRule(this.form).then(() => {
console.log('update split rule success');
this.diglogOptions.visible = false;
// 可以添加成功提示
this.$message && this.$message.success('保存成功');
}).catch(err => {
console.error(`update split rule failed: ${err}`);
// 可以添加错误提示
this.$message && this.$message.error('保存失败');
});
methods: {
handleAdd() {
// TODO: 新增数据到后端
const payload = {
titleLevel: '',
ruleRegex: '',
description: ''
}
// 使用数组方法添加元素,确保响应式更新
this.form.ruleList.push(payload)
},
handleDelete() {
// TODO: 删除数据到后端
if (this.form.ruleList.length > 0) {
this.form.ruleList.pop()
}
},
handleSave() {
// 使用正确的API保存数据到后端
console.log(`this.form`, this.form)
updateSplitRule(this.form)
.then(() => {
console.log('update split rule success')
this.diglogOptions.visible = false
// 可以添加成功提示
this.$message && this.$message.success('保存成功')
})
.catch(err => {
console.error(`update split rule failed: ${err}`)
// 可以添加错误提示
this.$message && this.$message.error('保存失败')
})
}
}
}
</script>
<template>
<div>
<el-form :model="form" label-width="100px">
<el-form-item label="规则名称">
<el-input v-model="form.ruleName"></el-input>
<template>
<div>
<el-form :model="form" label-width="100px">
<el-form-item label="规则名称">
<el-input v-model="form.ruleName"></el-input>
</el-form-item>
<el-card v-for="(item, index) in form.ruleList" :key="index">
<el-form-item label="样式">
<el-input v-model="item.titleLevel"></el-input>
</el-form-item>
<el-card v-for="(item, index) in form.ruleList" :key="index">
<el-form-item label="样式">
<el-input v-model="item.titleLevel"></el-input>
</el-form-item>
<el-form-item label="规则">
<el-input v-model="item.ruleRegex"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="item.description"></el-input>
</el-form-item>
</el-card>
</el-form>
<div slot="footer" class="dialog-footer flex" style="justify-content: space-between;">
<!-- 只有当点击保存的时候才能和服务端通信新增和删除 -->
<div>
<el-button type="primary" @click="handleAdd">+ 新增拆分</el-button>
<el-button type="info" @click="handleDelete">- 删除拆分</el-button>
</div>
<div>
<el-button @click="diglogOptions.visible = false"> </el-button>
<el-button type="primary" @click="handleSave"> </el-button>
</div>
<el-form-item label="规则">
<el-input v-model="item.ruleRegex"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="item.description"></el-input>
</el-form-item>
</el-card>
</el-form>
<div slot="footer" class="dialog-footer flex" style="justify-content: space-between;">
<!-- 只有当点击保存的时候才能和服务端通信新增和删除 -->
<div>
<el-button type="primary" @click="handleAdd">+ 新增拆分</el-button>
<el-button type="info" @click="handleDelete">- 删除拆分</el-button>
</div>
<div>
<el-button @click="diglogOptions.visible = false"> </el-button>
<el-button type="primary" @click="handleSave"> </el-button>
</div>
</div>
</template>
</div>
</template>
<style lang="css" scoped></style>