mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-09 10:56:50 +08:00
273 lines
8.2 KiB
Vue
273 lines
8.2 KiB
Vue
<script>
|
||
import { getDocByPage } from '@/api/knowledge/task-page'
|
||
import KnowledgeInfo from '@/views/track/views/knowledge-info/Index.vue'
|
||
|
||
export default {
|
||
components: {
|
||
KnowledgeInfo
|
||
},
|
||
data() {
|
||
return {
|
||
infoDialogVisible: false,
|
||
activeForm: {},
|
||
tabList: [],
|
||
form: {
|
||
knowledge: '',
|
||
knowledgeName: '',
|
||
uploadUser: '',
|
||
documentStatus: '',
|
||
taskTime: []
|
||
},
|
||
tableConfig: {
|
||
total: 0,
|
||
currentPage: 1,
|
||
pageSize: 10,
|
||
columns: [
|
||
{ prop: 'taskCode', key: '任务号', width: '180' },
|
||
{ prop: 'docTypeName', key: '知识库', width: '180' },
|
||
{ prop: 'fileName', key: '知识文件名称' },
|
||
{ prop: 'documentStatus', key: '上传状态', width: '100' },
|
||
{ prop: 'createdUser', key: '上传用户', width: '100' },
|
||
{ prop: 'createdDate', key: '上传时间', width: '200' },
|
||
{
|
||
key: '操作',
|
||
render: (h, params) => {
|
||
return h('div', [
|
||
h(
|
||
'el-button',
|
||
{
|
||
props: { type: 'text', size: 'mini' },
|
||
on: { click: () => this.handleActiveInfo(params) }
|
||
},
|
||
'查看详情'
|
||
)
|
||
])
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
computed: {
|
||
/**
|
||
* 获取筛选后的列表数据
|
||
*/
|
||
getFilterTableData() {
|
||
let filteredList = this.tabList
|
||
|
||
// 按照顺序进行筛选,先按照知识库进行筛选
|
||
filteredList = this.form.knowledge
|
||
? filteredList.filter(item => {
|
||
return item.docTypeName === this.form.knowledge
|
||
})
|
||
: filteredList
|
||
|
||
// 按照知识文件名称进行筛选
|
||
filteredList = this.form.knowledgeName
|
||
? filteredList.filter(item => {
|
||
return item.fileName === this.form.knowledgeName
|
||
})
|
||
: filteredList
|
||
|
||
// 按照上传用户进行筛选
|
||
filteredList = this.form.uploadUser
|
||
? filteredList.filter(item => {
|
||
return item.createdUser === this.form.uploadUser
|
||
})
|
||
: filteredList
|
||
|
||
// 按照任务状态进行筛选
|
||
filteredList = this.form.documentStatus
|
||
? filteredList.filter(item => {
|
||
return item.documentStatus === this.form.documentStatus
|
||
})
|
||
: filteredList
|
||
|
||
// 处理的状态格式化
|
||
filteredList = filteredList.map(item => {
|
||
if (item.documentStatus === 0 || item.documentStatus === '上传中') {
|
||
item.documentStatus = '上传中'
|
||
} else if (item.documentStatus === 1 || item.documentStatus === '成功') {
|
||
item.documentStatus = '成功'
|
||
} else if (item.documentStatus === -1 || item.documentStatus === '失败') {
|
||
item.documentStatus = '失败'
|
||
}
|
||
return item
|
||
})
|
||
|
||
// 按照任务时间进行筛选
|
||
filteredList =
|
||
this.form.taskTime.length > 0
|
||
? filteredList.filter(item => {
|
||
return (
|
||
new Date(item.uploadDate).getTime() >= new Date(this.form.taskTime[0]).getTime() &&
|
||
new Date(item.uploadDate).getTime() <= new Date(this.form.taskTime[1]).getTime()
|
||
)
|
||
})
|
||
: filteredList
|
||
|
||
// 默认返回所有列表
|
||
return filteredList
|
||
},
|
||
/**
|
||
* 获取知识库列表
|
||
*/
|
||
getKnowledgeList() {
|
||
// 进行去重处理
|
||
const knowledgeList = [...new Set(this.tabList.map(item => item.docTypeName))]
|
||
return knowledgeList
|
||
},
|
||
/**
|
||
* 获取知识文件名称列表
|
||
*/
|
||
getKnowledgeNameList() {
|
||
// 进行去重处理
|
||
const knowledgeNameList = [...new Set(this.tabList.map(item => item.fileName))]
|
||
return knowledgeNameList
|
||
},
|
||
/**
|
||
* 获取上传用户列表
|
||
*/
|
||
getUploadUserList() {
|
||
// 进行去重处理
|
||
const uploadUserList = [...new Set(this.tabList.map(item => item.createdUser))]
|
||
return uploadUserList
|
||
},
|
||
/**
|
||
* 获取任务状态列表
|
||
*/
|
||
getTaskStatusList() {
|
||
// 进行去重处理
|
||
const taskStatusList = [...new Set(this.tabList.map(item => item.documentStatus))]
|
||
return taskStatusList
|
||
}
|
||
},
|
||
methods: {
|
||
handleCurrentChange(current) {
|
||
this.tableConfig.currentPage = current
|
||
this.getTableData()
|
||
},
|
||
handleSizeChange(size) {
|
||
this.tableConfig.pageSize = size
|
||
this.getTableData()
|
||
},
|
||
getTableData() {
|
||
const payload = {
|
||
page: this.tableConfig.currentPage,
|
||
pageSize: this.tableConfig.pageSize,
|
||
docId: ''
|
||
}
|
||
|
||
getDocByPage(payload).then(res => {
|
||
this.tabList = res.content.content.list ? res.content.content.list : []
|
||
this.tableConfig.total = res.content.content.total
|
||
console.log(`res:`, res.content.content.list)
|
||
})
|
||
},
|
||
handleReset() {
|
||
this.form = {
|
||
knowledge: '',
|
||
knowledgeName: '',
|
||
uploadUser: '',
|
||
documentStatus: '',
|
||
taskTime: []
|
||
}
|
||
},
|
||
handleActiveInfo(scope) {
|
||
this.infoDialogVisible = true
|
||
this.activeForm = scope.row
|
||
}
|
||
},
|
||
created() {
|
||
this.getTableData()
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<template>
|
||
<div class="track-container">
|
||
<el-card shadow="hover">
|
||
<!-- <template #header>
|
||
<div class="card-header">
|
||
<h3>知识库管理</h3>
|
||
</div>
|
||
</template> -->
|
||
<!-- 知识库信息 -->
|
||
<el-form :model="form" label-width="100px" size="small">
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="知识库">
|
||
<el-select v-model="form.knowledge" placeholder="请选择知识库">
|
||
<el-option v-for="item in getKnowledgeList" :key="item" :label="item" :value="item"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="知识文件名称">
|
||
<el-select v-model="form.knowledgeName" placeholder="请选择知识文件名称">
|
||
<el-option v-for="item in getKnowledgeNameList" :key="item" :label="item" :value="item"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="上传用户">
|
||
<el-select v-model="form.uploadUser" placeholder="请选择上传用户">
|
||
<el-option v-for="item in getUploadUserList" :key="item" :label="item" :value="item"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="上传状态">
|
||
<el-select v-model="form.documentStatus" placeholder="请选择上传状态">
|
||
<el-option v-for="item in getTaskStatusList" :key="item" :label="item" :value="item"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item label="任务时间">
|
||
<el-date-picker
|
||
v-model="form.taskTime"
|
||
type="daterange"
|
||
unlink-panels
|
||
range-separator="至"
|
||
start-placeholder="开始日期"
|
||
end-placeholder="结束日期"
|
||
>
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="9">
|
||
<el-button type="primary" size="small" @click="handleReset">重置筛选</el-button>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
|
||
<!-- 任务列表 -->
|
||
<div>
|
||
<r-table
|
||
:columns="tableConfig.columns"
|
||
:data="getFilterTableData"
|
||
:deletion="false"
|
||
:total="tableConfig.total"
|
||
@currentChange="handleCurrentChange"
|
||
@sizeChange="handleSizeChange"
|
||
/>
|
||
|
||
<!-- 弹出提示框, 里面是各种详情内容 -->
|
||
<el-drawer title="上传任务详情" :visible.sync="infoDialogVisible" size="80%" :before-close="() => (infoDialogVisible = false)">
|
||
<knowledge-info :form="activeForm" v-if="infoDialogVisible"></knowledge-info>
|
||
</el-drawer>
|
||
</div>
|
||
</el-card>
|
||
</div>
|
||
</template>
|
||
|
||
<style lang="scss" scoped>
|
||
.track-container {
|
||
padding: 20px 20px;
|
||
}
|
||
</style>
|