This commit is contained in:
许允枞 2025-03-13 13:59:29 +08:00
parent 0a62aaf1aa
commit 65a0594a67

View File

@ -73,7 +73,8 @@
</div>
<div class="bjandshanchu">
<div class="one" @click="handleE(item)">编辑</div>
<div class="two" v-if="item.type == '2'" @click="downloadFile(item)">下载</div>
<!-- <div class="two" v-if="item.type == '2'" @click="downloadFile(item)">下载</div>-->
<div class="two" v-if="item.type == '2'" @click="preview(item)">预览</div>
<div class="two" @click="clickStaff(item.id)" v-hasPermi="['inspectionFile:inspectionFilePermis:edit']">
分配权限
</div>
@ -99,13 +100,48 @@
</div>
</el-dialog>
<el-dialog title="文件预览" :visible.sync="isShowFile" width="70%" append-to-body>
<div class="preview-container">
<!-- 左侧预览区域 -->
<iframe
:src="fileUrl"
frameborder="0"
class="preview-iframe" v-if="!isImage"
>
</iframe>
<image-preview class="preview-iframe" :src="imageUrl + selectFile.filePath" v-else></image-preview>
<!-- 右侧文件列表 -->
<div class="file-list">
<el-table
:data="inspectionFileList"
height="100%"
@row-click="handleFileClick"
:row-class-name="getRowClassName"> <!-- 动态绑定行样式 -->
<el-table-column
prop="fileName"
label="文件列表"
min-width="180">
<template #default="{row}">
<div class="file-item">
<i :class="row.type === '1' ? 'el-icon-folder' : 'el-icon-document'"></i>
{{ row.fileName }}
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-dialog>
<el-drawer
title="修改记录"
:visible.sync="drawer"
>
<div style="height: 200px; padding: 10px;">
<el-steps direction="vertical" >
<el-steps direction="vertical">
<el-step v-for="(item, index) in drawerData" :key="index" :title="'记录 ' + (index + 1)" status="process">
<template #description>
<div class="step-content">
@ -155,23 +191,23 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 批量添加-->
<!-- 批量添加-->
<el-dialog title="批量新增" :visible.sync="openBatch" width="600px" append-to-body>
<el-form ref="formBatch" :model="form" :rules="rules" label-width="120px">
<el-form-item label="文件路径" prop="fileList">
<el-upload
class="upload-demo"
:action="uploadFileUrl"
multiple
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
:headers="headers"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
<el-upload
class="upload-demo"
:action="uploadFileUrl"
multiple
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
:headers="headers"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
</el-form-item>
<el-form-item label="提醒时间" prop="warnTime">
<el-date-picker clearable
@ -213,12 +249,13 @@ export default {
data() {
return {
uploadFileUrl: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/uploadDetail",
imageUrl: process.env.VUE_APP_FILE_API,
//
loading: true,
//
ids: [],
fileList:[],
headers: { Authorization: "Bearer " + getAccessToken() }, //
fileList: [],
headers: {Authorization: "Bearer " + getAccessToken()}, //
//
single: true,
//
@ -231,6 +268,9 @@ export default {
inspectionFileList: [],
//
title: "",
selectFile:{
isImage:false
},
drawer: false,
//
open: false,
@ -240,7 +280,7 @@ export default {
//
daterangeWarnTime: [],
number: 0,
uploadList:[],
uploadList: [],
//
queryParams: {
pageNum: 1,
@ -252,6 +292,7 @@ export default {
oldFatherId: '',
//
form: {},
isShowFile: false,
//
rules: {
fileList: [
@ -277,6 +318,8 @@ export default {
selectStaffList: [],
fileId: '',
drawerData: {},
fileUrl: '',
isImage : false
};
},
created() {
@ -304,6 +347,35 @@ export default {
}
},
//
preview(item) {
this.fileUrl = 'https://view.officeapps.live.com/op/view.aspx?src=' + this.imageUrl + item.filePath
// this.fileUrl = 'https://view.xdocin.com/view?src=' + this.imageUrl + item.filePath
console.log(this.fileUrl)
this.$nextTick(() => {
// this.$refs.filePreview.show()
this.selectFile = item
this.isImage = item.isImage
})
console.log(this.imageUrl + this.selectFile.filePath)
this.isShowFile = true
},
handleFileClick(row) {
if (row.type === '2') {
// this.fileUrl = 'https://view.xdocin.com/view?src=' + this.imageUrl + row.filePath
this.fileUrl = 'https://view.officeapps.live.com/op/view.aspx?src=' + this.imageUrl + row.filePath
this.$nextTick(() => {
// this.$refs.filePreview.show()
this.selectFile = row
this.isImage = row.isImage
})
}
},
getRowClassName({ row }) {
console.log('返回的class',row.id === this.selectFile.id ? 'highlight-row' : '')
//
return row.id === this.selectFile.id ? 'highlight-row' : '';
},
clickStaff(fileId) {
this.fileId = fileId
@ -341,7 +413,7 @@ export default {
// this.queryParams.params["beginWarnTime"] = this.daterangeWarnTime[0];
// this.queryParams.params["endWarnTime"] = this.daterangeWarnTime[1];
// }
if (this.$route.query.folderId){
if (this.$route.query.folderId) {
this.queryParams.fatherId = this.$route.query.folderId
this.fatherId = this.$route.query.folderId
}
@ -521,8 +593,8 @@ export default {
},
/** 提交按钮 */
submitBatchForm() {
console.log(this.form,'内容')
console.log(this.fileList,'文件')
console.log(this.form, '内容')
console.log(this.fileList, '文件')
this.$refs["formBatch"].validate(valid => {
this.fileList.forEach(item => {
item.fatherId = this.fatherId
@ -631,7 +703,7 @@ export default {
handleUploadSuccess(res, file) {
if (res.code === 0) {
// edit by
this.uploadList.push({ name: res.data.name, url: res.data.url });
this.uploadList.push({name: res.data.name, url: res.data.url});
this.uploadedSuccessfully();
} else {
this.number--;
@ -691,6 +763,7 @@ export default {
color: #F56C6C;
cursor: pointer;
}
/* 增加步骤间距 */
.custom-step {
margin-bottom: 35px;
@ -707,7 +780,7 @@ export default {
/* 时间样式 */
.step-time {
font-size: 14px;
//color: #666;
//color: #666;
}
/* 文件名称高亮 */
@ -727,8 +800,52 @@ export default {
.step-download:hover {
color: #307ec7;
}
/deep/.el-drawer__header {
/deep/ .el-drawer__header {
font-size: 22px;
}
.preview-container {
display: flex;
height: 80vh;
}
.preview-iframe {
flex: 6;
width: 100%;
height: 100%;
margin-right: 10px;
}
.file-list {
flex: 1;
border-left: 1px solid #ebeef5;
padding-left: 10px;
}
.file-item {
cursor: pointer;
padding: 8px;
transition: background 0.3s;
}
.file-item:hover {
background: #f5f7fa;
}
/* 调整表格高度 */
:deep(.el-table) {
height: calc(100% - 2px) !important;
}
/* 隐藏表格头 */
:deep(.el-table__header-wrapper) {
display: none;
}
.highlight-row {
background-color: #f0f7ff; /* 高亮背景色 */
color: #409eff; /* 高亮文字颜色 */
}
</style>