import './proj-config-list-mod.css'; import { Alert, Button, Col, Flex, Form, Input, message, Modal, Row, Spin, } from "antd"; // import { useNavigate, useParams} from "react-router-dom"; import { useEffect, useState } from "react"; import FaiconSelect from "../../../components/faicon/FaIconSelect.tsx"; import ModField, { IModField } from "../../../components/modfield/ModField.tsx"; import { get, put } from "../../../util/AjaxUtils.ts"; import { MAX_MOD_SIZE, MAX_MOD_SIZE_FREE, MIN_MOD_SIZE, MIN_MOD_SIZE_FREE } from "./ProjConfigModList.tsx"; type FormFieldType = { projId: string; modName: string; modDesc: string; modIcon: string; fields: IModField[]; } type PropsType = { isFree?: boolean; projModId?: string closeModal?: any projId?:string } export default function ProjConfigModEdit(props: PropsType) { // const nav = useNavigate(); // const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [isModIconModalOpen, setIsModIconModalOpen] = useState(false); const [isEditModalOpen, setIsEditModalOpen] = useState(false); const [selectedModIcon, setSelectedModIcon] = useState('fa fa-list'); const [fields, setFields] = useState([]); const minSize = props.isFree ? MIN_MOD_SIZE_FREE : MIN_MOD_SIZE; const maxSize = props.isFree ? MAX_MOD_SIZE_FREE : MAX_MOD_SIZE; const height = window.innerHeight - 230; useEffect(() => { // console.log('嘻嘻嘻',props.projModId); get({ messageApi, url: `api/proj-mod/get/${props.projModId}`, onSuccess({ data }) { form.setFieldsValue({ projId: data.projId, modName: data.modName, modDesc: data.modDesc, modIcon: data.modIcon, fields: data.fields, }); setSelectedModIcon(data.modIcon); setFields(data.fields) } }) }, []) return ( <> {contextHolder} {/* 首页}, {title: 创建项目}, { title: { if(props.isFree) { nav(`/proj-efree/${pathParams.projId}`) } else { `/proj-edit/${pathParams.projId}` } }}>编辑项目 }, { title: { nav(-1); }}>系统菜单管理 }, {title: '编辑菜单'}, ]} /> */}
{ setIsEditModalOpen(true); }} autoComplete="off" > label="菜单名称" name="modName" extra="此内容会作为菜单名生成菜单,最多8个字" rules={[{ required: true, message: '请输入菜单名称' }]} > label="菜单说明" name="modDesc" extra="此内容会作为功能描述生成到操作手册中,请详细描述,最多600字" rules={[{ required: true, message: '请输入菜单说明' }]} > label="菜单图标" name="modIcon" extra="菜单图标会显示在菜单栏中" rules={[{ required: true, message: '请输入菜单图标' }]} > name="fields" rules={[{ required: true, message: '请添加菜单属性' }]} > { if (!dataArray) { return; } form.setFieldValue('fields', dataArray); }} />
{ setIsEditModalOpen(false); // const reg = /^[\u4e00-\u9fa5]+$/; // 中文字符的正则表达式 console.log(((form.getFieldValue('fields')))); const isChinese = (form.getFieldValue('fields')).every((item: { fieldDesc: string; }) => { return /^([\u4e00-\u9fa5a-zA-Z]+)$/.test(item.fieldDesc); }); // console.log(isChinese); if (!isChinese) { messageApi.error('描述由中文和字母组成') } else { put({ messageApi, url: `/api/proj-mod/update/${props.projModId}`, body: { projId: form.getFieldValue('projId'), modName: form.getFieldValue('modName'), modDesc: form.getFieldValue('modDesc'), modIcon: form.getFieldValue('modIcon'), fields: form.getFieldValue('fields'), }, onBefore() { setLoading(true); }, onSuccess() { messageApi.success('编辑成功'); setTimeout(function () { // 刷新当前页面 // location.reload(); // 返回上一页 // nav(-1); props.closeModal() }, 1000); }, onFinally() { setLoading(false); } }) } }} onCancel={() => { setIsEditModalOpen(false); }}>
确定提交吗?
{ setIsModIconModalOpen(false); }}>
{ form.setFieldValue('modIcon', icon); setSelectedModIcon(icon); }} />
) }