|
@@ -1,4 +1,10 @@
|
|
|
-import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
|
+import React, {
|
|
|
+ useCallback,
|
|
|
+ useEffect,
|
|
|
+ useMemo,
|
|
|
+ useRef,
|
|
|
+ useState,
|
|
|
+} from "react";
|
|
|
import styles from "./index.module.scss";
|
|
|
import { Button, Form, FormInstance, Input, Popconfirm } from "antd";
|
|
|
import TextArea from "antd/es/input/TextArea";
|
|
@@ -39,8 +45,9 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
});
|
|
|
setDirCode(info.dirCode);
|
|
|
setCover(info.thumb);
|
|
|
+ if (myType === "master") setBacImg(info.imgBack);
|
|
|
setFileList(file);
|
|
|
- setVideoFile({ name: info.videoName || "视频", path: info.video });
|
|
|
+ setVideoFile({ name: info.videoName, path: info.video });
|
|
|
}
|
|
|
},
|
|
|
[myType]
|
|
@@ -63,6 +70,9 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
// 封面图
|
|
|
const [cover, setCover] = useState("");
|
|
|
|
|
|
+ // 背景图
|
|
|
+ const [bacImg, setBacImg] = useState("");
|
|
|
+
|
|
|
// 多张图
|
|
|
const [fileList, setFileList] = useState([] as FileImgListType[]);
|
|
|
|
|
@@ -78,7 +88,9 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
const onFinish = useCallback(
|
|
|
async (value: any) => {
|
|
|
setCheck(true);
|
|
|
- if (!cover) return;
|
|
|
+ if (!cover && myType !== "craft") return;
|
|
|
+
|
|
|
+ if (myType === "master" && !bacImg) return;
|
|
|
|
|
|
const obj = {
|
|
|
...value,
|
|
@@ -89,6 +101,8 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
type: myType,
|
|
|
video: videoFile.path,
|
|
|
videoName: videoFile.name,
|
|
|
+ // 大师独有
|
|
|
+ imgBack: bacImg,
|
|
|
};
|
|
|
|
|
|
let resUrl = "block";
|
|
@@ -110,6 +124,7 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
},
|
|
|
[
|
|
|
addFu,
|
|
|
+ bacImg,
|
|
|
closeFu,
|
|
|
cover,
|
|
|
dirCode,
|
|
@@ -122,6 +137,15 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
]
|
|
|
);
|
|
|
|
|
|
+ const myUrlRes = useMemo(() => {
|
|
|
+ let sta = "";
|
|
|
+ let arr = ["national", "history", "custom", "project"];
|
|
|
+ if (arr.includes(myType)) sta = `cms/block/upload/${myType}`;
|
|
|
+ else if (myType === "craft") sta = "cms/craft/upload";
|
|
|
+ else if (myType === "master") sta = "cms/master/upload";
|
|
|
+ return sta;
|
|
|
+ }, [myType]);
|
|
|
+
|
|
|
return (
|
|
|
<div className={styles.A2Edit}>
|
|
|
<div
|
|
@@ -142,7 +166,12 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
rules={[{ required: true, message: "请输入标题!" }]}
|
|
|
getValueFromEvent={(e) => e.target.value.replace(/\s+/g, "")}
|
|
|
>
|
|
|
- <Input maxLength={20} showCount placeholder="请输入内容" />
|
|
|
+ <Input
|
|
|
+ disabled={myType === "craft"}
|
|
|
+ maxLength={20}
|
|
|
+ showCount
|
|
|
+ placeholder="请输入内容"
|
|
|
+ />
|
|
|
</Form.Item>
|
|
|
|
|
|
<Form.Item
|
|
@@ -173,30 +202,52 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
</Form.Item>
|
|
|
|
|
|
{/* 封面图 */}
|
|
|
- <div className="e_row">
|
|
|
- <div className="e_rowL">
|
|
|
- <span>* </span>封面:
|
|
|
+ {myType === "craft" ? null : (
|
|
|
+ <div className="e_row">
|
|
|
+ <div className="e_rowL">
|
|
|
+ <span>* </span>封面:
|
|
|
+ </div>
|
|
|
+ <div className="e_rowR">
|
|
|
+ <UpFileOne
|
|
|
+ myUrl={myUrlRes}
|
|
|
+ cover={cover}
|
|
|
+ setCover={(val) => setCover(val)}
|
|
|
+ isLook={isLook}
|
|
|
+ coverCheck={check}
|
|
|
+ size={5}
|
|
|
+ dirCode={dirCode}
|
|
|
+ sizeTxt={myType === "project" ? "376 x 349" : "783 x 362"}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div className="e_rowR">
|
|
|
- <UpFileOne
|
|
|
- myUrl={`cms/block/upload/${myType}`}
|
|
|
- cover={cover}
|
|
|
- setCover={(val) => setCover(val)}
|
|
|
- isLook={isLook}
|
|
|
- coverCheck={check}
|
|
|
- size={5}
|
|
|
- dirCode={dirCode}
|
|
|
- sizeTxt={myType === "project" ? "376 x 349" : "783 x 362"}
|
|
|
- />
|
|
|
+ )}
|
|
|
+ {myType === "master" ? (
|
|
|
+ <div className="e_row">
|
|
|
+ <div className="e_rowL">
|
|
|
+ <span>* </span>背景图:
|
|
|
+ </div>
|
|
|
+ <div className="e_rowR">
|
|
|
+ <UpFileOne
|
|
|
+ myUrl={myUrlRes}
|
|
|
+ cover={bacImg}
|
|
|
+ setCover={(val) => setBacImg(val)}
|
|
|
+ isLook={isLook}
|
|
|
+ coverCheck={check}
|
|
|
+ size={5}
|
|
|
+ dirCode={dirCode}
|
|
|
+ sizeTxt="756 x 1708"
|
|
|
+ checkTxt="请上传背景图!"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ ) : null}
|
|
|
|
|
|
{/* 多张图片 */}
|
|
|
<div className="e_row" hidden={isLook && fileList.length === 0}>
|
|
|
<div className="e_rowL">图片:</div>
|
|
|
<div className="e_rowR">
|
|
|
<UpFileMore
|
|
|
- myUrl={`cms/block/upload/${myType}`}
|
|
|
+ myUrl={myUrlRes}
|
|
|
max={15}
|
|
|
fileList={fileList}
|
|
|
setFileList={(data) => setFileList(data)}
|
|
@@ -208,24 +259,26 @@ function A2Edit({ editId, isLook, closeFu, editFu, addFu, myType }: Props) {
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- {/* 多张图片 */}
|
|
|
- <div className="e_row" hidden={isLook && !videoFile.path}>
|
|
|
- <div className="e_rowL">视频:</div>
|
|
|
- <div className="e_rowR">
|
|
|
- <UpFileOther
|
|
|
- fileUrl={videoFile}
|
|
|
- setFileUrl={(val) => setVideoFile(val)}
|
|
|
- isLook={isLook}
|
|
|
- fileCheck={false}
|
|
|
- size={500}
|
|
|
- dirCode={dirCode}
|
|
|
- myUrl={`cms/block/upload/${myType}`}
|
|
|
- myType="video"
|
|
|
- format={["video/mp4"]}
|
|
|
- formatTxt="mp4"
|
|
|
- />
|
|
|
+ {/* 视频附件 */}
|
|
|
+ {myType === "master" ? null : (
|
|
|
+ <div className="e_row" hidden={isLook && !videoFile.path}>
|
|
|
+ <div className="e_rowL">视频:</div>
|
|
|
+ <div className="e_rowR">
|
|
|
+ <UpFileOther
|
|
|
+ fileUrl={videoFile}
|
|
|
+ setFileUrl={(val) => setVideoFile(val)}
|
|
|
+ isLook={isLook}
|
|
|
+ fileCheck={false}
|
|
|
+ size={500}
|
|
|
+ dirCode={dirCode}
|
|
|
+ myUrl={myUrlRes}
|
|
|
+ myType="video"
|
|
|
+ format={["video/mp4"]}
|
|
|
+ formatTxt="mp4"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ )}
|
|
|
|
|
|
{/* 确定和取消按钮 */}
|
|
|
<br />
|