Commit a5820f2d by yuzhenWang

优化4

parent 34bd58a3
......@@ -275,6 +275,8 @@
</div>
</div>
</el-dialog>
<!-- 文件预览弹窗 -->
<FilePreview ref="filePreviewRef" />
</div>
</template>
......@@ -286,37 +288,47 @@ import { Upload, Document } from '@element-plus/icons-vue'
import useDictStore from '@/store/modules/dict'
import { getDicts } from '@/api/system/dict/data'
import request from '@/utils/request'
import FilePreview from '@/components/Preview/filePreview.vue'
import dayjs from 'dayjs'
import * as PDFJS from 'pdfjs-dist'
PDFJS.GlobalWorkerOptions.workerSrc = '/js/pdf.worker.min.mjs'
// ==================== 文件预览弹窗 ====================
const filePreviewRef = ref(null)
const previewDialogVisible = ref(false)
const previewUrl = ref('')
const previewFileName = ref('')
const previewFileType = ref('') // 'image', 'pdf', 'unsupported'
// 预览文件(页面内弹窗,不打开新窗口)
function previewFile(file, item) {
const url = file.url || file.response?.data?.url
if (!url) {
ElMessage.warning('文件地址不存在')
return
}
const ext = (file.name || '').split('.').pop().toLowerCase()
previewUrl.value = url
previewFileName.value = file.name || '文件'
if (['jpg', 'jpeg', 'png', 'webp', 'gif', 'bmp', 'svg'].includes(ext)) {
previewFileType.value = 'image'
previewDialogVisible.value = true
} else if (ext === 'pdf') {
previewFileType.value = 'pdf'
previewDialogVisible.value = true
} else {
// 不支持预览的文件类型,弹窗显示提示
previewFileType.value = 'unsupported'
previewDialogVisible.value = true
}
// 确保传入对象包含 url 和 name 属性
filePreviewRef.value?.open({
url: file.url || file.response?.data?.url,
name: file.name
})
}
// 预览文件(页面内弹窗,不打开新窗口)
// function previewFile(file, item) {
// const url = file.url || file.response?.data?.url
// if (!url) {
// ElMessage.warning('文件地址不存在')
// return
// }
// const ext = (file.name || '').split('.').pop().toLowerCase()
// previewUrl.value = url
// previewFileName.value = file.name || '文件'
// if (['jpg', 'jpeg', 'png', 'webp', 'gif', 'bmp', 'svg'].includes(ext)) {
// previewFileType.value = 'image'
// previewDialogVisible.value = true
// } else if (ext === 'pdf') {
// previewFileType.value = 'pdf'
// previewDialogVisible.value = true
// } else {
// // 不支持预览的文件类型,弹窗显示提示
// previewFileType.value = 'unsupported'
// previewDialogVisible.value = true
// }
// }
// 删除文件(复用原有删除逻辑)
function removeFile(file, item) {
......
......@@ -582,6 +582,9 @@ const searchConfig = ref([
labelKey: 'productName',
transform: res => {
return res?.data.records || []
},
onChangeExtraFields: {
productName: 'productName'
}
},
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment