const GENDER_OPTIONS = ['男', '女'] const YES_NO_OPTIONS = ['是', '否'] export const GXMU_MODULES = [ { title: '十佳青年岗位能手', code: 'gxmu_sjqn', icon: '青', group: '个人奖项', desc: '面向青年岗位骨干与先进典型的申报入口。' }, { title: '十佳团支部书记', code: 'gxmu_sjtbzbsj', icon: '书', group: '个人奖项', desc: '聚焦基层团支部书记的履职表现与带动成效。' }, { title: '五四红旗团委', code: 'gxmu_wshqtw', icon: '委', group: '组织奖项', desc: '用于先进团委集体申报与材料汇总展示。' }, { title: '五四红旗团支部', code: 'gxmu_wshqtzb', icon: '支', group: '组织奖项', desc: '聚焦先进团支部建设成果与品牌工作展示。' }, { title: '优秀共青团干部', code: 'gxmu_yxgqtdgb', icon: '干', group: '个人奖项', desc: '面向团学骨干和团务干部的申报入口。' }, { title: '优秀共青团员', code: 'gxmu_yxgqty', icon: '员', group: '个人奖项', desc: '面向优秀团员个人事迹与成长表现申报。' }, { title: '挑战杯', code: 'gxmu_tzbcy_form', icon: '挑', group: '竞赛项目', desc: '面向挑战杯项目材料填报与过程归档。' }, { title: '青马工程', code: 'gxmu_qmgc_form', icon: '青', group: '培养项目', desc: '用于青马工程学员培养信息和成果申报。' }, { title: '未来学术之星', code: 'gxmu_wxxzx_project', icon: '星', group: '创新项目', desc: '用于未来学术之星项目申报和材料整理。' } ] const createFields = (fields) => fields.map((field) => ({ required: false, placeholder: `请输入${field.label}`, ...field })) export const GXMU_FORM_MAP = { gxmu_sjqn: { title: '十佳青年岗位能手申报表', subtitle: '参考后台 SJQNForm 字段结构,适用于个人申报信息填写。', sections: [ { title: '基础信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'applyType', label: '申报类别', required: true }, { key: 'name', label: '姓名', required: true }, { key: 'gender', label: '性别', type: 'select', options: GENDER_OPTIONS }, { key: 'birthMonth', label: '出生年月', type: 'month' }, { key: 'nation', label: '民族' }, { key: 'politics', label: '政治面貌' }, { key: 'education', label: '学历' }, { key: 'position', label: '职务' }, { key: 'title', label: '职称' }, { key: 'unit', label: '所在单位' } ]) }, { title: '申报内容', fields: createFields([ { key: 'awards', label: '近三年曾获校级及以上奖励', type: 'textarea' }, { key: 'experience', label: '工作(学习)经历', type: 'textarea' }, { key: 'mainStory', label: '主要事迹', type: 'textarea' } ]) } ] }, gxmu_sjtbzbsj: { title: '十佳团支部书记申报表', subtitle: '参考后台 SJTBZBSJForm 字段结构,适用于个人申报信息填写。', sections: [ { title: '基础信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'name', label: '姓名', required: true }, { key: 'gender', label: '性别', type: 'select', options: GENDER_OPTIONS }, { key: 'birthMonth', label: '出生年月', type: 'month' }, { key: 'nation', label: '民族' }, { key: 'politics', label: '政治面貌' }, { key: 'collegeClass', label: '学院班级/单位科室' }, { key: 'branch', label: '所在团支部' }, { key: 'eduEval', label: '上一年度团员教育评议等次' } ]) }, { title: '申报内容', fields: createFields([ { key: 'awards', label: '近三年曾获校级及以上奖励', type: 'textarea' }, { key: 'experience', label: '工作(学习)经历', type: 'textarea' }, { key: 'mainStory', label: '主要事迹', type: 'textarea' } ]) } ] }, gxmu_wshqtw: { title: '五四红旗团委申报表', subtitle: '参考后台 WSHQTWForm 字段结构,适用于组织集体申报。', sections: [ { title: '组织基本信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'orgName', label: '二级团组织全称', required: true }, { key: 'leader', label: '负责人' }, { key: 'phone', label: '联系电话', type: 'phone' }, { key: 'memberTotal', label: '现有团员总数', type: 'number' }, { key: 'memberDeveloped2024', label: '上一年度发展团员人数', type: 'number' }, { key: 'smartSystemLogin', label: '是否已登录智慧团建系统', type: 'select', options: YES_NO_OPTIONS }, { key: 'committeeCount', label: '团委委员人数', type: 'number' }, { key: 'fulltimeCadreCount', label: '专职团干部数(其中教师/学生)' }, { key: 'parttimeCadreCount', label: '兼职团干部数(其中教师/学生)' }, { key: 'lastElectionTime', label: '团委最近一次换届时间', type: 'date' }, { key: 'branchCount', label: '团支部数', type: 'number' } ]) }, { title: '年度建设情况', fields: createFields([ { key: 'feeReceivable2024', label: '上一年度应收团费', type: 'number' }, { key: 'feeReceived2024', label: '上一年度实收团费', type: 'number' }, { key: 'feePayable2024', label: '上一年度应上缴团费', type: 'number' }, { key: 'feePaid2024', label: '上一年度实际上缴团费', type: 'number' }, { key: 'standardizedWork2024', label: '是否开展规范化建设工作', type: 'select', options: YES_NO_OPTIONS }, { key: 'recommendActivist2024', label: '推荐入党积极分子人数', type: 'number' }, { key: 'activistConfirmed', label: '确定为入党积极分子数', type: 'number' }, { key: 'recommendDevTarget2024', label: '推荐党的发展对象人数', type: 'number' }, { key: 'devTargetConfirmed', label: '确定为党的发展对象数', type: 'number' } ]) }, { title: '主要成果', fields: createFields([ { key: 'honorsFiveYears', label: '近五年获得校级及以上荣誉情况', type: 'textarea' }, { key: 'workSummaryThreeYears', label: '近三年开展的主要工作及取得的效果', type: 'textarea' } ]) } ] }, gxmu_wshqtzb: { title: '五四红旗团支部申报表', subtitle: '参考后台 WSHQTZBForm 字段结构,适用于基层团支部集体申报。', sections: [ { title: '组织基本信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'branchName', label: '团支部全称', required: true }, { key: 'secondOrg', label: '所属二级团组织' }, { key: 'secretary', label: '团支部书记' }, { key: 'politics', label: '政治面貌' }, { key: 'contact', label: '联系方式', type: 'phone' }, { key: 'establishTime', label: '成立时间', type: 'date' }, { key: 'lastElectionTime', label: '最近一次换届时间', type: 'date' }, { key: 'smartSystemLogin', label: '是否已登录智慧团建系统', type: 'select', options: YES_NO_OPTIONS }, { key: 'memberTotal', label: '现有团员总数', type: 'number' }, { key: 'memberDeveloped2024', label: '上一年度发展团员数', type: 'number' } ]) }, { title: '年度建设情况', fields: createFields([ { key: 'feeReceivable2024', label: '上一年度应收团费', type: 'number' }, { key: 'feeReceived2024', label: '上一年度实收团费', type: 'number' }, { key: 'feePayable2024', label: '上一年度应上缴团费', type: 'number' }, { key: 'feePaid2024', label: '上一年度实际上缴团费', type: 'number' }, { key: 'recommendActivist2024', label: '推荐入党积极分子人数', type: 'number' }, { key: 'activistConfirmed', label: '确定为入党积极分子数', type: 'number' }, { key: 'recommendDevTarget2024', label: '推荐党的发展对象人数', type: 'number' }, { key: 'devTargetConfirmed', label: '确定为党的发展对象数', type: 'number' }, { key: 'branchCommitteeMeetingCount', label: '团支部委员会会议召开次数', type: 'number' }, { key: 'branchMemberMeetingCount', label: '团支部团员大会召开次数', type: 'number' }, { key: 'eduEvalDone', label: '是否开展团员教育评议', type: 'select', options: YES_NO_OPTIONS }, { key: 'annualRegDone', label: '是否开展团员年度团籍注册', type: 'select', options: YES_NO_OPTIONS }, { key: 'classCount', label: '开展团课次数', type: 'number' }, { key: 'smartSystem100', label: '是否100%录入智慧团建', type: 'select', options: YES_NO_OPTIONS } ]) }, { title: '主要成果', fields: createFields([ { key: 'honorsFiveYears', label: '近五年获得院级及以上荣誉情况', type: 'textarea' }, { key: 'workSummaryThreeYears', label: '近三年开展的主要工作及取得的效果', type: 'textarea' } ]) } ] }, gxmu_yxgqtdgb: { title: '优秀共青团干部申报表', subtitle: '参考后台 YXGQTDGBForm 字段结构,适用于团干部个人申报。', sections: [ { title: '基础信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'name', label: '姓名', required: true }, { key: 'gender', label: '性别', type: 'select', options: GENDER_OPTIONS }, { key: 'nation', label: '民族' }, { key: 'birthMonth', label: '出生年月', type: 'month' }, { key: 'politics', label: '政治面貌' }, { key: 'position', label: '职务' }, { key: 'identity', label: '身份' }, { key: 'organization', label: '所在团组织' }, { key: 'contact', label: '联系方式', type: 'phone' }, { key: 'memberNo', label: '发展团员编号' }, { key: 'currentDutyTime', label: '任现团内职务时间', type: 'month' }, { key: 'cadreYears', label: '担任团干部年限' }, { key: 'assessment2024', label: '上一年度工作考核结果' }, { key: 'volunteerRegTime', label: '成为注册志愿者时间', type: 'month' } ]) }, { title: '申报内容', fields: createFields([ { key: 'cadreExperience', label: '从事团干部经历', type: 'textarea' }, { key: 'honorsFiveYears', label: '近五年获得校级及以上荣誉情况', type: 'textarea' }, { key: 'mainStory', label: '主要事迹', type: 'textarea' } ]) } ] }, gxmu_yxgqty: { title: '优秀共青团员申报表', subtitle: '参考后台 YXGQTYForm 字段结构,适用于团员个人申报。', sections: [ { title: '基础信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'name', label: '姓名', required: true }, { key: 'gender', label: '性别', type: 'select', options: GENDER_OPTIONS }, { key: 'nation', label: '民族' }, { key: 'politics', label: '政治面貌' }, { key: 'birthMonth', label: '出生年月', type: 'month' }, { key: 'joinTime', label: '入团时间', type: 'month' }, { key: 'collegeMajorClass', label: '所在学院、专业、班级' }, { key: 'position', label: '职务' }, { key: 'volunteerRegTime', label: '成为注册志愿者时间', type: 'month' }, { key: 'eduEval2024', label: '上一年度团员教育评议等次' }, { key: 'smartSystem', label: '是否已登录智慧团建系统', type: 'select', options: YES_NO_OPTIONS }, { key: 'contact', label: '联系电话', type: 'phone' }, { key: 'totalVolunteerHours', label: '累计志愿服务时长' }, { key: 'volunteerHours2024', label: '上一年度志愿服务时长' }, { key: 'memberNo', label: '发展团员编号' } ]) }, { title: '申报内容', fields: createFields([ { key: 'honorsFiveYears', label: '近五年获得荣誉情况', type: 'textarea' }, { key: 'mainStory', label: '主要事迹', type: 'textarea' } ]) } ] }, gxmu_tzbcy_form: { title: '挑战杯申报表', subtitle: '面向挑战杯项目申报、团队信息和成果材料整理。', sections: [ { title: '项目信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'projectName', label: '项目名称', required: true }, { key: 'projectType', label: '项目类型', required: true }, { key: 'projectGroup', label: '项目分组', required: true }, { key: 'leaderName', label: '项目负责人', required: true }, { key: 'leaderCollege', label: '负责人学院' }, { key: 'leaderPhone', label: '负责人电话', type: 'phone' }, { key: 'guidanceTeacher', label: '指导老师' } ]) }, { title: '项目内容', fields: createFields([ { key: 'projectSummary', label: '项目简介', type: 'textarea', required: true }, { key: 'innovationPoint', label: '创新亮点', type: 'textarea' }, { key: 'teamMembers', label: '团队成员', type: 'textarea' }, { key: 'honors', label: '已有成果与奖励', type: 'textarea' } ]) } ] }, gxmu_qmgc_form: { title: '青马工程申报表', subtitle: '用于青马工程学员基础信息、培养情况和成果申报。', sections: [ { title: '基础信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'name', label: '姓名', required: true }, { key: 'gender', label: '性别', type: 'select', options: GENDER_OPTIONS }, { key: 'college', label: '学院', required: true }, { key: 'className', label: '班级' }, { key: 'phone', label: '联系电话', type: 'phone' }, { key: 'politics', label: '政治面貌' } ]) }, { title: '培养情况', fields: createFields([ { key: 'trainingExperience', label: '培养经历', type: 'textarea', required: true }, { key: 'practiceExperience', label: '实践经历', type: 'textarea' }, { key: 'mainAchievement', label: '主要成果', type: 'textarea' }, { key: 'selfEvaluation', label: '个人总结', type: 'textarea' } ]) } ] }, gxmu_wxxzx_project: { title: '未来学术之星申报表', subtitle: '用于未来学术之星项目申报、课题信息和支撑材料整理。', sections: [ { title: '项目基础信息', fields: createFields([ { key: 'year', label: '年份', type: 'year', required: true }, { key: 'projectName', label: '项目名称', required: true }, { key: 'applicantName', label: '申请人', required: true }, { key: 'college', label: '学院', required: true }, { key: 'major', label: '专业' }, { key: 'phone', label: '联系电话', type: 'phone' }, { key: 'guidanceTeacher', label: '指导老师' } ]) }, { title: '申报内容', fields: createFields([ { key: 'researchDirection', label: '研究方向', type: 'textarea' }, { key: 'projectBasis', label: '项目基础', type: 'textarea', required: true }, { key: 'researchPlan', label: '研究计划', type: 'textarea' }, { key: 'expectedResult', label: '预期成果', type: 'textarea' } ]) } ] } } export const getModuleMeta = (code) => GXMU_MODULES.find((item) => item.code === code) export const getFormConfig = (code) => GXMU_FORM_MAP[code] export const createInitialFormData = (code) => { const config = getFormConfig(code) if (!config) { return {} } return config.sections.reduce((result, section) => { section.fields.forEach((field) => { result[field.key] = field.defaultValue || '' }) return result }, {}) }