Commit 8ffd93bb authored by 田翔's avatar 田翔

fix: 文件预览报错问题

parent 9a495d52
{ {
"name": "panda-xform", "name": "panda-xform",
"version": "4.1.3", "version": "4.1.4",
"description": "4.1.3 台账列表功能完善", "description": "4.1.4 文件预览报错问题",
"keywords": [ "keywords": [
"panda-xform" "panda-xform"
], ],
......
import React, { useEffect, useState } from 'react' import React, { useEffect, useMemo, useState } from 'react'
import styles from './index.less' import styles from './index.less'
import { Button, Upload, message } from 'antd' import { Button, Upload, message } from 'antd'
import { accepts, getFileType } from '../../../../../../constant' import { accepts, getFileType } from '../../../../../../constant'
...@@ -32,9 +32,32 @@ const FileView = (props) => { ...@@ -32,9 +32,32 @@ const FileView = (props) => {
let fileList = value ? value.split(',') : [] let fileList = value ? value.split(',') : []
const [visible, setVisible] = useState(false) const [visible, setVisible] = useState(false)
const [viewVisible, setViewVisible] = useState(false) const [viewVisible, setViewVisible] = useState(false)
const [showList, setShowList] = useState('')
const [showFile, setShowFile] = useState({ fileType: '', filePath: '' }) const [showFile, setShowFile] = useState({ fileType: '', filePath: '' })
const showList = useMemo(() => {
let list = []
fileList.forEach((item, index) => {
if (item) { // @Tips: 直接过滤掉名字中有异常字符的文件
let uid = index + '_' + Math.random()
let _obj = {
uid: uid,
value: item,
name: item.split('\\').reverse()[0],
type: fileType === '图片' ? 'image/jpeg' : 'file',
status: 'done',
url: `${downloadFileUrl}?filePath=${item}${site ? `&_site=${site}` : ''}`,
sourcePath: item.url,
originFileObj: { "uid": uid },
"response": { "code": 0, "msg": "Ok", "data": item, "stackTrace": null },
"xhr": {},
};
// if (schema.renderTo === 'Image') _obj.thumbUrl = `${downloadFileUrl}?filePath=${item}${site ? `&_site=${site}` : ''}`;
list.push(_obj)
}
})
return JSON.stringify(list)
}, [value])
if (!fileList.length) return null if (!fileList.length) return null
if (fileType === '图片') { if (fileType === '图片') {
...@@ -93,30 +116,6 @@ const FileView = (props) => { ...@@ -93,30 +116,6 @@ const FileView = (props) => {
} }
} }
useEffect(() => {
let list = []
fileList.forEach((item, index) => {
if (item) { // @Tips: 直接过滤掉名字中有异常字符的文件
let uid = index + '_' + Math.random()
let _obj = {
uid: uid,
value: item,
name: item.split('\\').reverse()[0],
type: fileType === '图片' ? 'image/jpeg' : 'file',
status: 'done',
url: `${downloadFileUrl}?filePath=${item}${site ? `&_site=${site}` : ''}`,
sourcePath: item.url,
originFileObj: { "uid": uid },
"response": { "code": 0, "msg": "Ok", "data": item, "stackTrace": null },
"xhr": {},
};
// if (schema.renderTo === 'Image') _obj.thumbUrl = `${downloadFileUrl}?filePath=${item}${site ? `&_site=${site}` : ''}`;
list.push(_obj)
}
})
setShowList(JSON.stringify(list))
}, [value])
return ( return (
<div className={styles.fileView}> <div className={styles.fileView}>
<Button <Button
......
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