feat(file): 添加文件浏览次数统计功能

- 在文件列表表格中新增浏览次数列显示
- 在文件详情描述中添加浏览次数信息展示
- 实现文件浏览次数自增接口 incrementView
- 前端点击文件预览时自动调用浏览次数增加功能
- 后端添加 SysFile 实体类 viewCount 字段
- 实现数据库表字段映射和更新逻辑
- 添加控制器接口 /incrementView/{fileId} 处理请求
This commit is contained in:
jhd
2026-07-04 09:40:48 +08:00
parent fa30ac37e9
commit 5029d09f09
9 changed files with 55 additions and 1 deletions

View File

@@ -52,6 +52,14 @@ export function exportFile(query) {
})
}
// 文件浏览次数 +1
export function incrementView(fileId) {
return request({
url: '/system/file/incrementView/' + fileId,
method: 'put'
})
}
// 查询与我相关的文件
export function listRelatedToMe(query) {
return request({

View File

@@ -152,6 +152,11 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="浏览次数" align="center" width="90">
<template slot-scope="scope">
<span>{{ scope.row.viewCount != null ? scope.row.viewCount : 0 }}</span>
</template>
</el-table-column>
</KLPTable>
<pagination
@@ -274,6 +279,7 @@
</el-descriptions-item>
<el-descriptions-item label="文件大小">{{ formatFileSize(infoFile.fileSize) }}</el-descriptions-item>
<el-descriptions-item label="文件后缀">{{ infoFile.suffix || '-' }}</el-descriptions-item>
<el-descriptions-item label="浏览次数">{{ infoFile.viewCount != null ? infoFile.viewCount : 0 }} </el-descriptions-item>
<el-descriptions-item label="订单编号">{{ infoFile.orderNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="所属部门">{{ infoFile.dept || '-' }}</el-descriptions-item>
<el-descriptions-item label="可见范围">
@@ -291,7 +297,7 @@
</template>
<script>
import { listFile, getFile, addFile, updateFile, delFile, exportFile, listVisibleUser, addVisibleUser, delVisibleUser, listVisibleUserByFileId, listRelatedToMe } from '@/api/system/file'
import { listFile, getFile, addFile, updateFile, delFile, exportFile, listVisibleUser, addVisibleUser, delVisibleUser, listVisibleUserByFileId, listRelatedToMe, incrementView } from '@/api/system/file'
import { getToken } from '@/utils/auth'
import UserSelect from '@/components/KLPService/UserSelect/index'
import ImagePreview from '@/components/FilePreview/preview/image/index.vue'
@@ -698,6 +704,7 @@ export default {
/** 点击文件名查看预览 */
handlePreview(row) {
this.selectedFile = row
incrementView(row.fileId)
},
/** 点击查看按钮弹出详情 */
handleShowInfo(row) {