mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-10 11:26:50 +08:00
feat(knowledge): 新增知识库创建、删除功能并优化知识库列表和详情页面
- 新增知识库创建和删除接口 - 实现知识库创建、删除功能 - 优化知识库列表页面,增加删除按钮 - 更新知识库详情页面,支持修改功能- 修复知识库更新接口,改为 POST 方法
This commit is contained in:
@@ -21,7 +21,22 @@ export function getDatasetById(params) {
|
||||
export function datasetUpdate(data) {
|
||||
return request({
|
||||
url: getUrl('/datasets/update'),
|
||||
method: 'get',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 知识库新增
|
||||
export function datasetCreate(data) {
|
||||
return request({
|
||||
url: getUrl('/datasets/create'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 知识库删除
|
||||
export function datasetDelete(data) {
|
||||
return request({
|
||||
url: getUrl(`/datasetsEx/delete?id=${data.id}`),
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
@@ -48,6 +48,14 @@ service.interceptors.response.use(
|
||||
response => {
|
||||
const res = response.data
|
||||
endLoading()
|
||||
if(!res.content){
|
||||
Message({
|
||||
message: res.message,
|
||||
type: 'error',
|
||||
duration: 5 * 500
|
||||
})
|
||||
return Promise.reject(res)
|
||||
}
|
||||
if (response.request.responseType == 'blob' || response.request.responseType == 'Blob') {
|
||||
return response.data
|
||||
}
|
||||
|
||||
@@ -2,103 +2,122 @@
|
||||
<div class='container index-container'>
|
||||
<el-card shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<h3>新增知识库</h3>
|
||||
<h3>{{$route.query.datasetId ? '修改' : '新增'}}知识库</h3>
|
||||
</div>
|
||||
<el-row >
|
||||
<el-col :span='21' :offset='1'>
|
||||
<el-form :model="model" ref="model" label-width="100px">
|
||||
<el-form-item label="知识库名称:" prop="knowledgeName">
|
||||
<el-input></el-input>
|
||||
<el-form :model="model" ref="model" label-width="120px" :rules='rules'>
|
||||
<el-form-item label="知识库名称:" prop="name">
|
||||
<el-input v-model='model.name'></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="描述(可选):" prop="knowledgeName" requried>
|
||||
<el-input type='textarea'></el-input>
|
||||
<el-form-item label="描述(可选):" prop="description" requried>
|
||||
<el-input type='textarea' v-model='model.description'></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="分段模式:" prop="knowledgeName" requried>
|
||||
<el-radio-group>
|
||||
<el-radio label="1">通用分段模式</el-radio>
|
||||
<el-radio label="1">Q&A分段模式</el-radio>
|
||||
<el-form-item label="分段模式:" prop="segmentedMode" requried>
|
||||
<el-radio-group v-model='model.segmentedMode'>
|
||||
<el-radio :label="0">通用分段模式</el-radio>
|
||||
<el-radio :label="1">Q&A分段模式</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
|
||||
<el-col :span='24' class='text-center'>
|
||||
<el-button type='primary' size='medium' @click='save'>创建</el-button>
|
||||
<el-button type='primary' size='medium' @click='save'>{{$route.query.datasetId ? '保存' : '创建'}}</el-button>
|
||||
<el-button size='medium' @click='$router.go(-1)'>取消 </el-button>
|
||||
<el-button size='medium' @click='jumpKnowledgeList' v-if='infoDialogVisible'>返回知识库列表</el-button>
|
||||
<el-button size='medium' @click='jumpKnowledgeDetail' v-if='infoDialogVisible'>查看知识库详情 </el-button>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
|
||||
</el-row>
|
||||
|
||||
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
<!-- <el-dialog title="知识库操作成功" :visible.sync="infoDialogVisible" width="50%"></el-dialog>-->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import 'nprogress/nprogress.css' // progress bar style
|
||||
import renderLoading from '@/components/RenderLoading/loading/index'
|
||||
import NProgress from 'nprogress'
|
||||
|
||||
import { getDatasetById,datasetUpdate,datasetCreate } from '@/api/generatedApi/index'
|
||||
export default {
|
||||
name: 'knowledgeForm',
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
props: {
|
||||
knowledgeForm: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {
|
||||
knowledgeName:''
|
||||
infoDialogVisible:false,
|
||||
|
||||
model:{
|
||||
description:'',
|
||||
name:'',
|
||||
segmentedMode:null,
|
||||
id:null
|
||||
},
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: '请输入知识库名称', trigger: 'blur' },
|
||||
],
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
knowledgeId: {
|
||||
type: String
|
||||
}
|
||||
},
|
||||
props: {},
|
||||
watch: {},
|
||||
components: {},
|
||||
filters: {},
|
||||
methods: {
|
||||
jumpKnowledgeList(){
|
||||
this.$router.push({
|
||||
path: '/knowledge/list',
|
||||
})
|
||||
},
|
||||
jumpKnowledgeDetail(item){
|
||||
this.$router.push({
|
||||
path: '/knowledge/detail',
|
||||
query:{
|
||||
datasetId:this.model.id
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
getDetail (){
|
||||
let { datasetId } = this.$route.query
|
||||
if(!datasetId) return
|
||||
getDatasetById({ id:datasetId }).then(res=>{
|
||||
this.model = {
|
||||
...res.content.content
|
||||
}
|
||||
})
|
||||
},
|
||||
save(){
|
||||
// 配置进度条参数
|
||||
// NProgress.configure({
|
||||
// showSpinner: false, // 隐藏转圈圈
|
||||
// })
|
||||
|
||||
// setTimeout(()=>{
|
||||
//
|
||||
// NProgress.done();
|
||||
// },5000)
|
||||
|
||||
// let loadingDom = document.getElementById('knowledgeFormDrawer').querySelector('.el-drawer')
|
||||
|
||||
// console.log(loadingDom)
|
||||
// let loading = renderLoading.service({
|
||||
// target:loadingDom,
|
||||
// })
|
||||
|
||||
// loading.close()
|
||||
|
||||
this.$refs.model.validate(valid => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
(!this.$route.query.datasetId?datasetCreate:datasetUpdate)(this.model).then(res=>{
|
||||
// 添加保存成功的提示
|
||||
this.$message.success('保存成功');
|
||||
this.model.id = res.content.content.id
|
||||
this.infoDialogVisible = true
|
||||
// this.$router.go(-1)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
created() {
|
||||
},
|
||||
mounted() {
|
||||
this.getDetail()
|
||||
},
|
||||
computed: {
|
||||
// model 获取 knowledgeForm
|
||||
model() {
|
||||
return this.knowledgeForm
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -93,10 +93,14 @@ export default {
|
||||
},
|
||||
// 保存知识库标题
|
||||
saveKnowledgeName(){
|
||||
let { datasetId } = this.$route.query
|
||||
this.knowledgeName = this.copyKnowledgeName
|
||||
// 调用update接口
|
||||
datasetUpdate({
|
||||
|
||||
name:this.knowledgeName,
|
||||
description:this.knowledgeDesc,
|
||||
segmentedMode:this.segmentedMode,
|
||||
id:datasetId,
|
||||
}).then(res=>{
|
||||
this.editKnowledge = false
|
||||
})
|
||||
@@ -108,19 +112,21 @@ export default {
|
||||
|
||||
// 跳转去上传文件
|
||||
jumpAddKnowledge() {
|
||||
let { datasetId } = this.$route.query
|
||||
this.$router.push({
|
||||
path: '/knowledge/detail/create',
|
||||
query: {
|
||||
datasetId: ''
|
||||
datasetId: datasetId
|
||||
}
|
||||
})
|
||||
},
|
||||
// 跳转到知识库编辑
|
||||
jumpEditKnowledge(){
|
||||
let { datasetId } = this.$route.query
|
||||
this.$router.push({
|
||||
path: '/knowledge/knowledge-create',
|
||||
query: {
|
||||
datasetId: ''
|
||||
datasetId: datasetId
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
</div>
|
||||
<div class="item-bottom mt20">
|
||||
<el-button type="text" class="fs14" @click="knowLedgeDetail(item)">查看详情</el-button>
|
||||
<el-button type="text" class="fs14">修改</el-button>
|
||||
<el-button type="text" class="fs14 danger">删除</el-button>
|
||||
<el-button type="text" class="fs14" @click='createdKnowLedge(item)'>修改</el-button>
|
||||
<el-button type="text" class="fs14 danger" @click='deleteKnowLedge(item)'>删除</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { docManageDataset } from '@/api/generatedApi/index'
|
||||
import { docManageDataset,datasetDelete } from '@/api/generatedApi/index'
|
||||
import knowledgeForm from '@/views/knowledge/detail/components/knowledgeForm.vue'
|
||||
|
||||
export default {
|
||||
@@ -82,11 +82,11 @@ export default {
|
||||
this.datasetList = res.content.content
|
||||
})
|
||||
},
|
||||
createdKnowLedge() {
|
||||
createdKnowLedge(item) {
|
||||
this.$router.push({
|
||||
path: '/knowledge/knowledge-create',
|
||||
query:{
|
||||
datasetId: ''
|
||||
datasetId: item?item.id:null
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -97,6 +97,22 @@ export default {
|
||||
datasetId: item.id
|
||||
}
|
||||
})
|
||||
},
|
||||
deleteKnowLedge(item) {
|
||||
this.$confirm('此操作将永久删除该知识库, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
datasetDelete({id: item.id}).then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '删除成功!'
|
||||
})
|
||||
this.getList()
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {},
|
||||
|
||||
Reference in New Issue
Block a user