基于现有银龄平台移动端架构,开发"发布人才"功能,允许银龄用户在移动端发布个人求职信息,展示个人专长、技能和经验。
| 表单字段 | 实体字段 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 真实姓名 | realName | string | ✅ | 1-50字符 |
| 年龄 | age | number | ✅ | 50-100岁 |
| 性别 | gender | enum | ✅ | MALE/FEMALE/OTHER |
| 联系电话 | phone | string | ✅ | 手机号格式 |
| 昵称 | nickname | string | ❌ | 1-50字符 |
| 所属机构 | organization | string | ❌ | 如退休单位、社团等 |
| 邮箱 | string | ❌ | 邮箱格式 | |
| 个人简介 | personalIntro | string | ❌ | 1000字以内 |
| 个人技能 | personalSkills | string | ❌ | 以逗号分隔的技能列表 |
| 个人经历 | personalExperience | string | ❌ | 工作经历、教育背景等 |
| 求职需求 | jobSeekingRequirements | string | ❌ | 期望工作类型、时间安排等 |
| 头像 | avatarUrl | string | ❌ | 图片URL |
位置: src/client/mobile/components/PublishTalentForm.tsx
interface PublishTalentFormProps {
onSuccess?: () => void;
onCancel?: () => void;
initialData?: Partial<CreateSilverTalentRequest>;
}
interface FormData {
realName: string;
nickname?: string;
organization?: string;
age: number;
gender: 'MALE' | 'FEMALE' | 'OTHER';
phone: string;
email?: string;
personalIntro?: string;
personalSkills?: string;
personalExperience?: string;
jobSeekingRequirements?: string;
avatarUrl?: string;
}
const validationRules = {
realName: [
{ required: true, message: '请输入真实姓名' },
{ min: 1, max: 50, message: '姓名长度应在1-50字符之间' }
],
age: [
{ required: true, message: '请输入年龄' },
{ type: 'number', min: 50, max: 100, message: '年龄应在50-100岁之间' }
],
gender: [
{ required: true, message: '请选择性别' }
],
phone: [
{ required: true, message: '请输入联系电话' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码' }
],
email: [
{ type: 'email', message: '请输入正确的邮箱地址' }
],
personalIntro: [
{ max: 1000, message: '个人简介不能超过1000字' }
],
personalSkills: [
{ max: 2000, message: '个人技能描述不能超过2000字' }
],
personalExperience: [
{ max: 3000, message: '个人经历不能超过3000字' }
],
jobSeekingRequirements: [
{ max: 1000, message: '求职需求不能超过1000字' }
]
};
/api/v1/silver-users/profiles{
"realName": "张老先生",
"age": 65,
"gender": "MALE",
"phone": "13800138000",
"nickname": "张老师",
"organization": "退休中学教师",
"email": "zhang@example.com",
"personalIntro": "退休中学语文教师,擅长书法和传统文化教育...",
"personalSkills": "书法,国画,古典文学,诗词创作",
"personalExperience": "从事教育工作40年,曾在重点中学任教...",
"jobSeekingRequirements": "希望寻找文化教育类兼职工作,时间灵活"
}
/api/v1/files/upload-policy 获取上传凭证interface FormState {
loading: boolean;
submitting: boolean;
errors: Record<string, string>;
previewImage: string;
}
PublishTalentForm.tsx 组件PublishPagesrc/client/mobile/components/PublishTalentForm.tsx - 主要表单组件src/client/mobile/pages/PublishPage.tsx - 集成现有发布页面src/client/api.ts - API客户端调用src/client/utils/upload.ts - 图片上传工具