From fae098d82647f8212357704fd08484e6333a9794 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Fri, 23 May 2025 09:31:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coursewareStore/index.vue | 141 ++++++++++++------ 1 file changed, 93 insertions(+), 48 deletions(-) diff --git a/src/views/educationalTraining/resourceAdministration/coursewareStore/index.vue b/src/views/educationalTraining/resourceAdministration/coursewareStore/index.vue index 0aa0d5c..a329770 100644 --- a/src/views/educationalTraining/resourceAdministration/coursewareStore/index.vue +++ b/src/views/educationalTraining/resourceAdministration/coursewareStore/index.vue @@ -7,7 +7,8 @@ placeholder="请输入关键字" maxlength="100" show-word-limit - clearable v-no-whitespace + clearable + v-no-whitespace @keyup.enter.native="handleSearch" /> @@ -22,7 +23,9 @@ 新建文件夹 - 批量下载 + + 批量下载 + @@ -38,12 +41,13 @@ @selection-change="handleSelectionChange" @select-all="handleSelectAll" > - + + + - @@ -187,17 +218,25 @@ import { operFolderOrFile, uploadFiles, downLoadFile, - downLoadCoursewareFile + downLoadCoursewareFile, } from '@/api/educationalTraining/resourceAdministration' import axios from 'axios' import { getToken } from '@/utils/auth' import { download } from '@/utils/request' import MiniFileUpload from '@/views/educationalTraining/resourceAdministration/coursewareStore/miniFileUpload.vue' +import bnsKkFilePreview from '@/components/pro-tabs/bns-kkFile-preview.vue' + export default { - components: { MiniFileUpload }, + components: { MiniFileUpload, bnsKkFilePreview }, data() { return { + documentPreview: false, // 文件预览 + kkFilePreview: { + filePreviewUrl: '', + fileName: '', + showDownloadButton: false, + }, // 文件预览列表 fullscreenLoading: false, // 上传loading uploadVisible: false, // 上传弹框 fileList: [], // 上传文件列表 @@ -206,7 +245,7 @@ export default { // 查询参数 queryParams: { // 关键字 - keyWord: '' + keyWord: '', }, // 列表数据 tableData: [], @@ -216,20 +255,20 @@ export default { dialogForm: { coursewareName: '', // 课件名 oldCoursewareName: '', // 旧的名称 - marl: '' // 备注 + marl: '', // 备注 }, isEdit: false, // 是否重命名 isRemark: false, // 是否备注 isMove: false, // 是否移动 // 弹框表单验证 rules: { - coursewareName: [{ required: true, message: '请输入课件名', trigger: 'blur' }] + coursewareName: [{ required: true, message: '请输入课件名', trigger: 'blur' }], }, showTree: false, // 是否显示树 treeData: [], // 树数据 defaultProps: { children: 'children', - label: 'coursewareName' + label: 'coursewareName', }, // 新建题库 questionTitle: '新建题库', // 弹框标题 @@ -237,52 +276,51 @@ export default { questionForm: { coursewareName: '', // 题库名称 selectedTree: '', // 选中的树节点 - parentId: 0 // 父级id + parentId: 0, // 父级id }, questionRules: { - coursewareName: [{ required: true, message: '请输入题库名称', trigger: 'blur' }] + coursewareName: [{ required: true, message: '请输入题库名称', trigger: 'blur' }], }, questionLabel: '位置', row: {}, // 当前行 editAndRemark: '重命名', // 弹框标题 downLoading: false, // 下载loading coursewareIds: [], // 选中的课件id - isSelect:false + isSelect: false, } }, created() { this.getList() }, - mounted() { - }, + mounted() {}, methods: { isSelectable(row, index) { - return ![1, 2].includes(Number(row.fileType)); + return ![1, 2].includes(Number(row.fileType)) }, handleSelectAll() { - if (!this.isSelect){ - this.coursewareIds = this.getCoursewareIds(this.tableData); + if (!this.isSelect) { + this.coursewareIds = this.getCoursewareIds(this.tableData) //设置可选状态的行 选中 this.isSelect = true - }else{ + } else { this.$refs.table.clearSelection() this.coursewareIds = [] this.isSelect = false } }, getCoursewareIds(data) { - let ids = []; + let ids = [] data.forEach(node => { console.log('🚀 ~ getCoursewareIds ~ node:', node) if (node.coursewareId && Number(node.fileType) !== 1 && Number(node.fileType) !== 2) { - this.$refs.table.toggleRowSelection(node, true); - ids.push(node.coursewareId); + this.$refs.table.toggleRowSelection(node, true) + ids.push(node.coursewareId) } if (node.children && node.children.length > 0) { - ids = ids.concat(this.getCoursewareIds(node.children)); + ids = ids.concat(this.getCoursewareIds(node.children)) } - }); - return ids; + }) + return ids }, handleSelectionChange(val) { this.coursewareIds = val.map(item => item.coursewareId).join(',') @@ -408,7 +446,7 @@ export default { // 批量下载 const params = { coursewareId: this.coursewareIds, - fileType: 1 + fileType: 1, } console.log('🚀 ~ handleDownload ~ params:', params) download('/exam/coursewareLibrary/downLoadFile', params, '课件库.zip').then(res => { @@ -421,7 +459,7 @@ export default { } const params = { coursewareId: row.coursewareId, - fileType: row.fileType + fileType: row.fileType, } // dev-api/exam/coursewareLibrary/downLoadFile // 获取当前的 location.origin @@ -534,14 +572,14 @@ export default { this.$confirm('是否确认删除?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', - type: 'warning' + type: 'warning', }).then(() => { // 确定 operFolderOrFile({ operType: 3, coursewareId: row.coursewareId, fileType: row.fileType, - parentId: row.parentId + parentId: row.parentId, }).then(res => { console.log('🚀 ~ handleDelete ~ res:', res) // 刷新列表 @@ -564,7 +602,7 @@ export default { coursewareId: this.row.coursewareId, fileType: this.row.fileType, coursewareName: this.dialogForm.coursewareName, - parentId: this.row.parentId + parentId: this.row.parentId, }).then(res => { console.log('🚀 ~ handleSave ~ res:', res) // 关闭弹框 @@ -578,7 +616,7 @@ export default { operType: 2, coursewareId: this.row.coursewareId, fileType: this.row.fileType, - marl: this.dialogForm.marl + marl: this.dialogForm.marl, }).then(res => { console.log('🚀 ~ handleSave ~ res:', res) // 关闭弹框 @@ -595,7 +633,7 @@ export default { const params = { coursewareId: item.coursewareId, fileType: item.fileType, - type: item.type + type: item.type, } const res = await getCoursewareLibraryTree(params) console.log('🚀 ~ getCoursewareLibraryTree ~ res-位置树:', res) @@ -637,7 +675,7 @@ export default { operType: 4, coursewareId: this.row.coursewareId, fileType: this.row.fileType, - parentId: this.questionForm.parentId + parentId: this.questionForm.parentId, }).then(res => { console.log('🚀 ~ handleQuestion ~ res:', res) // 关闭弹框 @@ -664,8 +702,15 @@ export default { uploadSuccess() { this.uploadVisible = false this.getList() - } - } + }, + + // 文件预览按钮 + handlePreview(row) { + this.kkFilePreview.filePreviewUrl = row.filePath + this.kkFilePreview.fileName = row.coursewareName + this.documentPreview = true + }, + }, }