diff --git a/src/pages/events/banner/components/BannerFormModal.tsx b/src/pages/events/banner/components/BannerFormModal.tsx index c4806c8..a52ca84 100644 --- a/src/pages/events/banner/components/BannerFormModal.tsx +++ b/src/pages/events/banner/components/BannerFormModal.tsx @@ -13,10 +13,25 @@ import { Spin, } from 'ant-design-vue'; import { JUMP_TYPE_OPTIONS } from '../model/useBannerModel'; +import { + TITLE_MAX, + PATH_MAX, + URL_MAX, + titleRules, + imageUrlRules, + typeRules, + linkUrlRules, + miniProgramPathRules, + areaRules, + startTimeRules, + endTimeRules, + sortRules, +} from '../model/form'; import { getProvinceCityCascaderOptions, cityNameToCascaderPath } from '@/utils/areaData'; import { ImageCropper } from '@yp-component/root'; import { FileImageOutlined } from '@ant-design/icons-vue'; import { uploadFile, OssUploadType } from '@/utils/oss'; +import { isImageFile } from '@/utils/form'; import { getEventList, getEventDetail, type TournamentAdminVO } from '../../list/model/services'; import dayjs from 'dayjs'; import styles from './BannerFormModal.module.less'; @@ -40,11 +55,6 @@ const getDefaultForm = () => ({ sort: 1, }); -/** 表单字段最大长度限制 */ -const TITLE_MAX = 50; -const PATH_MAX = 200; -const URL_MAX = 500; - /** 图片上传限制:最大 10MB */ const IMAGE_MAX_SIZE = 10 * 1024 * 1024; @@ -351,7 +361,7 @@ export default defineComponent({ target.value = ''; if (!file) return; - if (!/^image\//.test(file.type)) { + if (!isImageFile(file)) { message.error('请选择图片文件'); return; } @@ -468,14 +478,7 @@ export default defineComponent({ requiredMark > {/* ===== Banner 标题 ===== */} -