import './proj-edit-step.css'; import { Breadcrumb, Col, Flex, GetProp, Input, message, Modal, Row, Space, Spin, Upload, UploadFile, UploadProps } from "antd"; import {Link, useNavigate, useParams} from "react-router-dom"; import {useEffect, useState} from "react"; import {DevUserId, get, downloadUrl, put, uploadImageUrl, post} from "../../../util/AjaxUtils.ts"; import {Button, Form} from 'antd'; type FormFieldType = { loginpageId: string; logo: string; bgImgs: string; subTitle: string; copyrightOwner: string; copyrightDate: string; adminUsername: string; adminPassword: string; }; type FileType = Parameters>[0]; export default function ProjConfigLoginpage() { const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [isEditModalOpen, setIsEditModalOpen] = useState(false); const [logoImgArray, setLogoImgArray] = useState([]); const [bgImgArray, setBgImgArray] = useState([]); const [iframeSrcDoc, setIframeSrcDoc] = useState(); const height = window.innerHeight - 210; const beforeUpload = (file: FileType) => { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; if (!isJpgOrPng) { message.error('只能上传 JPG/PNG 格式文件!'); } return isJpgOrPng; }; const preview = () => { post({ messageApi, url: '/api/proj/preview', body: { projId: pathParams.projId, loginpageId: form.getFieldValue('loginpageId'), logo: logoImgArray.length > 0 ? logoImgArray[0].uid : '', bgImgs: bgImgArray.length > 0 ? bgImgArray[0].uid : '', subTitle: form.getFieldValue('subTitle'), copyrightOwner: form.getFieldValue('copyrightOwner'), copyrightDate: form.getFieldValue('copyrightDate'), }, onSuccess({data}) { setIframeSrcDoc(data.data); } }) } useEffect(() => { get({ messageApi, url: `/api/proj/get/config-loginpage/${pathParams.projId}`, onSuccess({data}) { form.setFieldValue('loginpageId', data.loginpageId); form.setFieldValue('subTitle', data.subTitle); form.setFieldValue('copyrightOwner', data.copyrightOwner); form.setFieldValue('copyrightDate', data.copyrightDate); form.setFieldValue('adminUsername', data.adminUsername); form.setFieldValue('adminPassword', data.adminPassword); if (data.logo) { const url = downloadUrl(data.logo); logoImgArray.splice(0, 1, { uid: data.logo, name: 'logo.png', status: 'done', url: url, thumbUrl: url, }) setLogoImgArray([ ...logoImgArray ]) } if (data.bgImgs) { const url = downloadUrl(data.bgImgs); bgImgArray.splice(0, 1, { uid: data.bgImgs, name: 'bg.png', status: 'done', url: url, thumbUrl: url, }) setBgImgArray([ ...bgImgArray ]) } preview(); } }) }, []) return ( <> {contextHolder} 首页}, {title: 创建项目}, {title: 编辑项目}, {title: '登录界面设置'}, ]} />
{ setIsEditModalOpen(true); }} autoComplete="off" > { preview() }}/> { preview() }}/> { preview() }}/> { if (info.file.status === 'uploading') { setLoading(true); return; } if (info.file.status === 'done') { setLoading(false); const fileId = info.file.response.data.fileId; const url = downloadUrl(fileId); logoImgArray.splice(0, 1, { uid: info.file.response.data.fileId, name: 'logo.png', status: 'done', url: url, thumbUrl: url, }) setLogoImgArray([ ...logoImgArray ]) preview() return; } }} onRemove={() => { logoImgArray.splice(0) setLogoImgArray([ ...logoImgArray ]) preview() }} > { if (info.file.status === 'uploading') { setLoading(true); return; } if (info.file.status === 'done') { setLoading(false); const fileId = info.file.response.data.fileId; const url = downloadUrl(fileId); bgImgArray.splice(0, 1, { uid: info.file.response.data.fileId, name: 'bg.png', status: 'done', url: url, thumbUrl: url, }) setBgImgArray([ ...bgImgArray ]) preview() return; } }} onRemove={() => { bgImgArray.splice(0) setBgImgArray([ ...bgImgArray ]) preview() }} >