|
50 | 50 | <!-- 列表 -->
|
51 | 51 | <ContentWrap>
|
52 | 52 | <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
53 |
| - <el-table-column label="编号" align="center" prop="id" /> |
54 |
| - <el-table-column label="知识库编号" align="center" prop="knowledgeId" /> |
55 |
| - <el-table-column label="文档编号" align="center" prop="documentId" /> |
56 |
| - <el-table-column label="切片内容" align="center" prop="content" /> |
| 53 | + <el-table-column label="分段编号" align="center" prop="id" /> |
| 54 | + <el-table-column type="expand"> |
| 55 | + <template #default="props"> |
| 56 | + <div |
| 57 | + class="content-expand" |
| 58 | + style=" |
| 59 | + padding: 10px 20px; |
| 60 | + white-space: pre-wrap; |
| 61 | + line-height: 1.5; |
| 62 | + background-color: #f9f9f9; |
| 63 | + border-radius: 4px; |
| 64 | + border-left: 3px solid #409eff; |
| 65 | + " |
| 66 | + > |
| 67 | + <div |
| 68 | + class="content-title" |
| 69 | + style="margin-bottom: 8px; color: #606266; font-size: 14px; font-weight: bold" |
| 70 | + > |
| 71 | + 完整内容: |
| 72 | + </div> |
| 73 | + {{ props.row.content }} |
| 74 | + </div> |
| 75 | + </template> |
| 76 | + </el-table-column> |
| 77 | + <el-table-column |
| 78 | + label="切片内容" |
| 79 | + align="center" |
| 80 | + prop="content" |
| 81 | + min-width="250px" |
| 82 | + :show-overflow-tooltip="true" |
| 83 | + /> |
57 | 84 | <el-table-column label="字符数" align="center" prop="contentLength" />
|
58 |
| - <el-table-column label="向量库的id" align="center" prop="vectorId" /> |
59 |
| - <el-table-column label="token数量" align="center" prop="tokens" /> |
| 85 | + <el-table-column label="token 数量" align="center" prop="tokens" /> |
60 | 86 | <el-table-column label="召回次数" align="center" prop="retrievalCount" />
|
61 | 87 | <el-table-column label="是否启用" align="center" prop="status">
|
62 | 88 | <template #default="scope">
|
63 |
| - <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" /> |
| 89 | + <el-switch |
| 90 | + v-model="scope.row.status" |
| 91 | + :active-value="0" |
| 92 | + :inactive-value="1" |
| 93 | + @change="handleStatusChange(scope.row)" |
| 94 | + :disabled="!checkPermi(['ai:knowledge:update'])" |
| 95 | + /> |
64 | 96 | </template>
|
65 | 97 | </el-table-column>
|
66 | 98 | <el-table-column
|
@@ -109,6 +141,8 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
109 | 141 | import { dateFormatter } from '@/utils/formatTime'
|
110 | 142 | import { KnowledgeSegmentApi, KnowledgeSegmentVO } from '@/api/ai/knowledge/segment'
|
111 | 143 | import KnowledgeSegmentForm from './KnowledgeSegmentForm.vue'
|
| 144 | +import { CommonStatusEnum } from '@/utils/constants' |
| 145 | +import { checkPermi } from '@/utils/permission' |
112 | 146 |
|
113 | 147 | /** AI 知识库分段 列表 */
|
114 | 148 | defineOptions({ name: 'KnowledgeSegment' })
|
@@ -173,6 +207,24 @@ const handleDelete = async (id: number) => {
|
173 | 207 | } catch {}
|
174 | 208 | }
|
175 | 209 |
|
| 210 | +/** 修改状态操作 */ |
| 211 | +const handleStatusChange = async (row: KnowledgeSegmentVO) => { |
| 212 | + try { |
| 213 | + // 修改状态的二次确认 |
| 214 | + const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '禁用' |
| 215 | + await message.confirm('确认要"' + text + '"该分段吗?') |
| 216 | + // 发起修改状态 |
| 217 | + await KnowledgeSegmentApi.updateKnowledgeSegmentStatus({ id: row.id, status: row.status }) |
| 218 | + message.success(t('common.updateSuccess')) |
| 219 | + // 刷新列表 |
| 220 | + await getList() |
| 221 | + } catch { |
| 222 | + // 取消后,进行恢复按钮 |
| 223 | + row.status = |
| 224 | + row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE |
| 225 | + } |
| 226 | +} |
| 227 | +
|
176 | 228 | /** 初始化 **/
|
177 | 229 | onMounted(() => {
|
178 | 230 | // 如果文档 ID 不存在,显示错误提示并关闭页面
|
|
0 commit comments