|
|
@@ -21,19 +21,17 @@ import MyPopconfirm from '../MyPopconfirm'
|
|
|
// import { A2_APIchangeImgName } from "@/store/action/A2exhibition";
|
|
|
|
|
|
export type FileListType = {
|
|
|
- fileName: string
|
|
|
- thumb?: string
|
|
|
- filePath: string
|
|
|
- id: number
|
|
|
+ originalName: string
|
|
|
+ originalUrl: string
|
|
|
+ compressedUrl: string
|
|
|
+ _id: string
|
|
|
type: 'model' | 'img' | 'audio' | 'video'
|
|
|
- imgName: string
|
|
|
}
|
|
|
|
|
|
type Props = {
|
|
|
ref: any //当前自己的ref,给父组件调用
|
|
|
selecFlag: string //筛选的字符串 模型/图片/音频/视频
|
|
|
fileCheck: boolean //有没有点击过确定
|
|
|
- dirCode: string //文件的code码
|
|
|
myUrl: string //请求地址
|
|
|
isLook?: boolean //是不是查看
|
|
|
modelSize?: number //模型文件大小限制
|
|
|
@@ -53,7 +51,6 @@ function ZupTypes(
|
|
|
{
|
|
|
selecFlag,
|
|
|
fileCheck,
|
|
|
- dirCode,
|
|
|
myUrl,
|
|
|
isLook = false,
|
|
|
modelSize = 500,
|
|
|
@@ -103,10 +100,10 @@ function ZupTypes(
|
|
|
const fileCheckFu = useMemo(() => {
|
|
|
let flag = false
|
|
|
if (typeCheck.length === 0) flag = true
|
|
|
- if (typeCheck.includes('model') && !fileList.model.id) flag = true
|
|
|
+ if (typeCheck.includes('model') && !fileList.model._id) flag = true
|
|
|
if (typeCheck.includes('img') && fileList.img.length === 0) flag = true
|
|
|
- if (typeCheck.includes('audio') && !fileList.audio.id) flag = true
|
|
|
- if (typeCheck.includes('video') && !fileList.video.id) flag = true
|
|
|
+ if (typeCheck.includes('audio') && !fileList.audio._id) flag = true
|
|
|
+ if (typeCheck.includes('video') && !fileList.video._id) flag = true
|
|
|
return flag
|
|
|
}, [fileList, typeCheck])
|
|
|
|
|
|
@@ -190,20 +187,11 @@ function ZupTypes(
|
|
|
// 创建FormData
|
|
|
const fd = new FormData()
|
|
|
fd.append('type', fileOneType)
|
|
|
- fd.append('dirCode', dirCode)
|
|
|
+
|
|
|
fd.append('isDb', 'true')
|
|
|
- //初始图片 fileName为:未命名
|
|
|
- if (isUpName) {
|
|
|
- fd.append('isDefaultName', 'false')
|
|
|
- }
|
|
|
|
|
|
fd.append('file', file)
|
|
|
|
|
|
- if (fileOneType === 'img' && file.size > 1 * 1024 * 1024) {
|
|
|
- // 开启压缩图片
|
|
|
- fd.append('isCompress', 'true')
|
|
|
- }
|
|
|
-
|
|
|
e.target.value = ''
|
|
|
|
|
|
try {
|
|
|
@@ -217,7 +205,7 @@ function ZupTypes(
|
|
|
if (fileOneType === 'img') {
|
|
|
setFileList(prev => ({
|
|
|
...prev,
|
|
|
- img: [...prev.img, { ...res.data, imgName: '未命名' }]
|
|
|
+ img: [...prev.img, { ...res.data, originalName: '未命名' }]
|
|
|
}))
|
|
|
} else {
|
|
|
setFileList(prev => ({ ...prev, [fileOneType]: res.data }))
|
|
|
@@ -232,12 +220,10 @@ function ZupTypes(
|
|
|
},
|
|
|
[
|
|
|
audioSize,
|
|
|
- dirCode,
|
|
|
fileList.img.length,
|
|
|
fileOneType,
|
|
|
imgLength,
|
|
|
imgSize,
|
|
|
- isUpName,
|
|
|
modelSize,
|
|
|
multipleImg,
|
|
|
myUrl,
|
|
|
@@ -273,8 +259,8 @@ function ZupTypes(
|
|
|
|
|
|
// 删除某一张图片
|
|
|
const delImgListFu = useCallback(
|
|
|
- (id: number) => {
|
|
|
- const newItems = fileList.img.filter(v => v.id !== id)
|
|
|
+ (_id: string) => {
|
|
|
+ const newItems = fileList.img.filter(v => v._id !== _id)
|
|
|
setFileList({ ...fileList, img: newItems })
|
|
|
},
|
|
|
[fileList]
|
|
|
@@ -289,16 +275,16 @@ function ZupTypes(
|
|
|
<span> </span>
|
|
|
{type === 'model' ? '模型' : type === 'audio' ? '音频' : '视频'}:
|
|
|
</div>
|
|
|
- {fileList[type].id ? (
|
|
|
+ {fileList[type]._id ? (
|
|
|
<div className='ZTbox2'>
|
|
|
- <div className='ZTbox2Name'>{fileList[type].fileName}</div>
|
|
|
+ <div className='ZTbox2Name'>{fileList[type].originalName}</div>
|
|
|
|
|
|
<div
|
|
|
className='ZTbox2Look'
|
|
|
onClick={() =>
|
|
|
store.dispatch({
|
|
|
type: 'layout/lookDom',
|
|
|
- payload: { src: fileList[type].filePath, type }
|
|
|
+ payload: { src: fileList[type].originalUrl, type }
|
|
|
})
|
|
|
}
|
|
|
>
|
|
|
@@ -306,7 +292,7 @@ function ZupTypes(
|
|
|
</div>
|
|
|
|
|
|
<a
|
|
|
- href={baseURL + fileList[type].filePath}
|
|
|
+ href={baseURL + fileList[type].originalUrl}
|
|
|
download
|
|
|
target='_blank'
|
|
|
className='ZTbox2Down'
|
|
|
@@ -358,7 +344,7 @@ function ZupTypes(
|
|
|
|
|
|
data.forEach(v => {
|
|
|
if (v.type === 'img') {
|
|
|
- obj.img.push({ ...v, imgName: v.fileName })
|
|
|
+ obj.img.push(v)
|
|
|
} else obj[v.type!] = v
|
|
|
})
|
|
|
setFileList(obj)
|
|
|
@@ -367,20 +353,20 @@ function ZupTypes(
|
|
|
|
|
|
// --------------让父组件调用的返回 附件 信息
|
|
|
const fileComFileResFu = useCallback(() => {
|
|
|
- let coverUrl = ''
|
|
|
- let coverUrlBig = ''
|
|
|
+ let cover = ''
|
|
|
+ let coverSmall = ''
|
|
|
const fileIds = []
|
|
|
- if (fileList.model.id && typeCheck.includes('model')) fileIds.push(fileList.model.id)
|
|
|
- if (fileList.audio.id && typeCheck.includes('audio')) fileIds.push(fileList.audio.id)
|
|
|
- if (fileList.video.id && typeCheck.includes('video')) fileIds.push(fileList.video.id)
|
|
|
+ if (fileList.model._id && typeCheck.includes('model')) fileIds.push(fileList.model._id)
|
|
|
+ if (fileList.audio._id && typeCheck.includes('audio')) fileIds.push(fileList.audio._id)
|
|
|
+ if (fileList.video._id && typeCheck.includes('video')) fileIds.push(fileList.video._id)
|
|
|
if (typeCheck.includes('img')) {
|
|
|
fileList.img.forEach((v, i) => {
|
|
|
- if (v.id) {
|
|
|
- fileIds.push(v.id)
|
|
|
+ if (v._id) {
|
|
|
+ fileIds.push(v._id)
|
|
|
if (oneIsCover && i === 0) {
|
|
|
// 返回 第一张图的url 作为封面
|
|
|
- coverUrl = v.thumb || v.filePath
|
|
|
- coverUrlBig = v.filePath || v.thumb!
|
|
|
+ cover = v.originalUrl || v.compressedUrl
|
|
|
+ coverSmall = v.compressedUrl || v.originalUrl
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
@@ -389,15 +375,15 @@ function ZupTypes(
|
|
|
sonType: typeCheck,
|
|
|
sonFileIds: fileIds,
|
|
|
sonIsOk: fileCheckFu,
|
|
|
- coverUrl,
|
|
|
- coverUrlBig
|
|
|
+ cover,
|
|
|
+ coverSmall
|
|
|
}
|
|
|
}, [
|
|
|
fileCheckFu,
|
|
|
- fileList.audio.id,
|
|
|
+ fileList.audio._id,
|
|
|
fileList.img,
|
|
|
- fileList.model.id,
|
|
|
- fileList.video.id,
|
|
|
+ fileList.model._id,
|
|
|
+ fileList.video._id,
|
|
|
oneIsCover,
|
|
|
typeCheck
|
|
|
])
|
|
|
@@ -410,21 +396,21 @@ function ZupTypes(
|
|
|
|
|
|
// 修改图片名称
|
|
|
const [isNameChange, setIsNameChange] = useState({
|
|
|
- id: 0,
|
|
|
+ id: '',
|
|
|
oldName: '',
|
|
|
newName: ''
|
|
|
})
|
|
|
|
|
|
// 关闭弹窗
|
|
|
const isNameChangeXFu = useCallback(() => {
|
|
|
- setIsNameChange({ id: 0, oldName: '', newName: '' })
|
|
|
+ setIsNameChange({ id: '', oldName: '', newName: '' })
|
|
|
}, [])
|
|
|
|
|
|
// 点击图片名字-出来弹窗
|
|
|
const isNameChangeFu = useCallback(
|
|
|
(item: FileListType) => {
|
|
|
if (isLook) return
|
|
|
- setIsNameChange({ id: item.id, oldName: item.imgName, newName: '' })
|
|
|
+ setIsNameChange({ id: item._id, oldName: item.originalName, newName: '' })
|
|
|
},
|
|
|
[isLook]
|
|
|
)
|
|
|
@@ -444,7 +430,7 @@ function ZupTypes(
|
|
|
// ...fileList,
|
|
|
// img: fileList.img.map((v) => ({
|
|
|
// ...v,
|
|
|
- // imgName: v.id === isNameChange.id ? isNameChange.newName : v.imgName,
|
|
|
+ // originalName: v.id === isNameChange.id ? isNameChange.newName : v.originalName,
|
|
|
// })),
|
|
|
// });
|
|
|
// isNameChangeXFu();
|
|
|
@@ -499,15 +485,21 @@ function ZupTypes(
|
|
|
{fileList.img.map((v, i) => (
|
|
|
<div
|
|
|
className='ZTbox1ImgRow'
|
|
|
- key={v.id}
|
|
|
+ key={v._id}
|
|
|
draggable='true'
|
|
|
onDragStart={() => setDragImg(v)}
|
|
|
onDragOver={e => handleDragOver(e, v)}
|
|
|
onDragEnter={e => handleDragEnter(e, v)}
|
|
|
onDragEnd={() => setDragImg(null)}
|
|
|
>
|
|
|
- {v.thumb || v.filePath ? (
|
|
|
- <ImageLazy noLook={true} width={100} height={100} src={v.thumb || v.filePath} />
|
|
|
+ {v.compressedUrl || v.originalUrl ? (
|
|
|
+ <ImageLazy
|
|
|
+ noLook={true}
|
|
|
+ width={100}
|
|
|
+ height={100}
|
|
|
+ src={v.compressedUrl || v.originalUrl}
|
|
|
+ srcBig={v.originalUrl || v.compressedUrl}
|
|
|
+ />
|
|
|
) : null}
|
|
|
|
|
|
{oneIsCover && i === 0 ? <div className='ZTbox1ImgRowCover'>封面</div> : null}
|
|
|
@@ -515,11 +507,11 @@ function ZupTypes(
|
|
|
{/* 修改图片名字 */}
|
|
|
{isUpName ? (
|
|
|
<div
|
|
|
- title={v.imgName}
|
|
|
+ title={v.originalName}
|
|
|
className='ZTbox1ImgRowName'
|
|
|
onClick={() => isNameChangeFu(v)}
|
|
|
>
|
|
|
- {v.imgName}
|
|
|
+ {v.originalName}
|
|
|
</div>
|
|
|
) : null}
|
|
|
|
|
|
@@ -529,21 +521,21 @@ function ZupTypes(
|
|
|
store.dispatch({
|
|
|
type: 'layout/lookBigImg',
|
|
|
payload: {
|
|
|
- url: baseURL + v.filePath,
|
|
|
+ url: baseURL + v.originalUrl,
|
|
|
show: true
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
rev={undefined}
|
|
|
/>
|
|
|
- <a href={baseURL + v.filePath} download target='_blank' rel='noreferrer'>
|
|
|
+ <a href={baseURL + v.originalUrl} download target='_blank' rel='noreferrer'>
|
|
|
<DownloadOutlined rev={undefined} />
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
<MyPopconfirm
|
|
|
txtK='删除'
|
|
|
- onConfirm={() => delImgListFu(v.id!)}
|
|
|
+ onConfirm={() => delImgListFu(v._id)}
|
|
|
Dom={<CloseOutlined className='ZTbox1ImgRowX' rev={undefined} />}
|
|
|
/>
|
|
|
</div>
|