using Infrastructure.Web; using Infrastructure.Web.Mvc; using Microsoft.AspNetCore.Mvc; using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using UoN.ExpressiveAnnotations.NetCore.Attributes; namespace TeacherExt.Models { [Display(Name = "教师")] public class EditTeacherModel { [SkipSearch,SkipList] [HiddenInput] [ReadOnly(true)] public Guid Id { get; set; } [SelectList] [HiddenInput] [ReadOnly(true)] [Required(ErrorMessage = "必填项")] [Display(Order = 0, Name = "审核状态")] public string CheckStatus { get; set; } [Description("是否使用已有字段:所属单位/学校")] [ReadOnly(true)] [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Display(Order = 10, Name = "工作单位")] public string Organ { get; set; } = "测试数据"; [Description("(1)是否使用已有字段:教师状态(2)选型项不一致")] [SkipSearch, SkipList] [SelectList] [Display(Order = 20, Name = "人员类别")] public string UserType { get; set; } [Description("使用并修改已有字段[教师姓名]为[姓名]")] [Required(ErrorMessage = "必填项")] //[Description("姓名中请勿含有空格")] [StringLength(4,MinimumLength =2,ErrorMessage ="{0}的长度在{2}-{1}之间")] [RegularExpression(@"[\u4e00-\u9fa5]+", ErrorMessage = "姓名格式错误")] [Display(Order = 30, Name = "姓名")] public string RealName { get; set; } [SkipSearch] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 40, Name = "性别")] public string Sex { get; set; }//current [Description("使用并修改已有字段[出生日期]为[出生年月]")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 50, Name = "出生年月")] public DateTime? Birthday { get; set; } [SkipSearch, SkipList] [HiddenInput] [Range(1, 200)] [Description("根据身份证计算")] [Display(Order = 60, Name = "年龄")] public int Age { get; set; }//current [Description("是否保留[其他]选择项?是否按照国标设置?")] [SkipSearch] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 70, Name = "民族")] public string Nation { get; set; } [SkipSearch] [Required(ErrorMessage = "必填项")] [Description("以 省/自治区/直辖市 + 区/县 等形式填写")] [Display(Order = 80, Name = "籍贯")] public string NativePlace { get; set; } //[Description("是否使用已有字段:所属单位")] //[SkipSearch] //[Display(Order = 81, Name = "学校")] //[ReadOnly(true)] //public string School { get; set; } = "测试学校"; //[Description("是否使用已有字段:所属单位")] //[SkipSearch] //[Display(Order = 82, Name = "部门")] //[ReadOnly(true)] //public string Department { get; set; } = "测试部门"; [Description("是否必填")] [SkipSearch, SkipList] [DataType(DataType.PhoneNumber)] [Required(ErrorMessage = "必填项")] [Display(Order = 90, Name = "联系电话")] public string PhoneNumber { get; set; } [Description("是否必填")] [SkipSearch, SkipList] [RegularExpression(@"^(\d{15}|\d{17}(X|\d))$", ErrorMessage = "身份证号格式错误")] [Required(ErrorMessage = "必填项")] [Display(Order = 100, Name = "身份证号")] public string IdNumber { get; set; } [Description("是否必填")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 110, Name = "参加工作时间")] public DateTime? JobStart { get; set; } [SkipSearch, SkipList] [HiddenInput] [Required(ErrorMessage = "必填项")] [Description("根据参加工作时间计算")] [Display(Order = 120, Name = "工龄")] public int JobAge { get; set; } [Description("是否必填")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 130, Name = "任教时间")] public DateTime? TeachDate { get; set; } [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 140, Name = "到现所在校时间")] public DateTime? CurrentJobStart { get; set; } [SkipSearch, SkipList] [Display(Order = 141, Name = "到现所在校时间-已审核")] public bool CurrentJobStartChecked { get; set; } [Description("是否必填")] [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 150, Name = "政治面貌")] public string Politics { get; set; } [Description("是否必填")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 160, Name = "入党(派)时间")] public DateTime? JoinPartyDate { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 170, Name = "最高职称")] public string MaxTitle { get; set; } [SkipSearch, SkipList] [Display(Order = 171, Name = "最高职称-已审核")] public bool MaxTitleChecked { get; set; } [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 180, Name = "最高职称取得时间")] public DateTime? MaxTitleStart { get; set; } [SkipSearch, SkipList] [Display(Order = 181, Name = "最高职称取得时间-已审核")] public bool MaxTitleStartChecked { get; set; } [SelectList] [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Display(Order = 185, Name = "最高职称聘任状态")] public bool? IsJobAsMaxTitle { get; set; } [HtmlData("JobAsMaxTitle1")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Header("最高职称聘任时间")] [Display(Order = 190, Name = "最高职称聘任时间")] public DateTime? JobAsMaxTitleDate { get; set; } [SkipSearch, SkipList] [Display(Order = 191, Name = "已审核")] public bool JobAsMaxTitleDateChecked { get; set; } [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [Description("如:乡村教师职评、暂未岗位变更、新考/调入等")] [Required(ErrorMessage = "必填项")] [Header("最高职称聘任时间-未聘-原由")] [Display(Order = 200, Name = "最高职称未聘原由")] public string JobAsNotMaxTitle { get; set; } [SkipSearch, SkipList] [Display(Order = 191, Name = "已审核")] public bool JobAsNotMaxTitleChecked { get; set; } [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Header("最高职称聘任时间-未聘-现聘任职称")] [Display(Order = 210, Name = "现聘任职称")] public string NotMaxTitle { get; set; } [SkipSearch, SkipList] [Display(Order = 211, Name = "已审核")] public bool NotMaxTitleChecked { get; set; } [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Header("最高职称聘任时间-未聘-现聘任职称取得时间")] [Display(Order = 220, Name = "现聘任职称取得时间")] public DateTime? NotMaxTitleStart { get; set; } [SkipSearch, SkipList] [Display(Order = 221, Name = "已审核")] public bool NotMaxTitleStartChecked { get; set; } [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Header("最高职称聘任时间-未聘-现聘任职称聘任时间")] [Display(Order = 230, Name = "现聘任职称聘任时间")] public DateTime? JobAsNotMaxTitleDate { get; set; } [SkipSearch, SkipList] [Display(Order = 231, Name = "已审核")] public bool JobAsNotMaxTitleDateChecked { get; set; } [Description("是否必填")] [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 240, Name = "岗位类别")] public string PostType { get; set; } [Description("excel单元格提供的选项和批注提供的不一致")] [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 250, Name = "现岗位等级")] public string PostGrade { get; set; } [SkipSearch, SkipList] [Display(Order = 251, Name = "已审核")] public bool PostGradeChecked { get; set; } [Description("是否提示【以文件为准】")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 260, Name = "变更至现岗位等级时间")] public DateTime? CurrentPostGradeStart { get; set; } [SkipSearch, SkipList] [Display(Order = 261, Name = "已审核")] public bool CurrentPostGradeStartChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 270, Name = "享受学历待遇等级")] public string EducationGrade { get; set; } [SkipSearch, SkipList] [Display(Order = 271, Name = "已审核")] public bool EducationGradeChecked { get; set; } [Description("是否提示【以文件为准】")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Display(Order = 280, Name = "享受学历待遇等级时间")] public DateTime? EducationGradeDate { get; set; } [SkipSearch, SkipList] [Display(Order = 281, Name = "已审核")] public bool EducationGradeDateChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Header("全日制教育-毕业院校分类")] [Display(Order = 290, Name = "全日制毕业院校分类")] public string FullTimeSchoolType { get; set; } [Description("是否提示【填写毕业院校全称】")] [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("全日制教育-毕业院校")] [Display(Order = 300, Name = "全日制毕业院校")] public string FullTimeSchool { get; set; } [Description("是否提示【严格按照毕业证书填写】")] [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("全日制教育-毕业证书专业")] [Display(Order = 310, Name = "全日制毕业证书专业")] public string FullTimeSchoolMajor { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Header("全日制教育-学历")] [Display(Order = 320, Name = "全日制学历")] public string FullTimeSchoolEducation { get; set; } [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("全日制教育-学历取得时间")] [Display(Order = 330, Name = "全日制学历取得时间")] [DataType(DataType.Date)] public DateTime? JobTimeSchoolEducationDate { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Header("在职教育-毕业院校分类")] [Display(Order = 340, Name = "在职毕业院校分类")] public string JobTimeSchoolType { get; set; } [Description("是否提示【填写毕业院校全称】")] [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("在职教育-毕业院校")] [Display(Order = 350, Name = "在职毕业院校")] public string JobTimeSchool { get; set; } [Description("是否提示【严格按照毕业证书填写】")] [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("在职教育-毕业证书专业")] [Display(Order = 360, Name = "在职毕业证书专业")] public string JobTimeSchoolMajor { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Header("在职教育-学历")] [Display(Order = 370, Name = "在职学历")] public string JobTimeSchoolEducation { get; set; } [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("在职教育-学历取得时间")] [Display(Order = 380, Name = "在职学历取得时间")] [DataType(DataType.Date)] public DateTime? FullTimeSchoolEducationDate { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 390, Name = "最高学历")] public string MaxEducation { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 400, Name = "最高学位")] public string MaxDegree { get; set; } [SkipSearch, SkipList] [Display(Order = 410, Name = "是否担任班主任")] public bool IsClassTeacher { get; set; } [SkipSearch, SkipList] [Display(Order = 411, Name = "已审核")] public bool IsClassTeacherChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 420, Name = "主要任教学段")] public string MainTeachPeriod { get; set; } [SkipSearch, SkipList] [Display(Order = 421, Name = "已审核")] public bool MainTeachPeriodChecked { get; set; } [Description("是否提示【选择项中没有则手动填写】")] [SkipSearch, SkipList] [SelectList(true)] [Required(ErrorMessage = "必填项")] [Display(Order = 430, Name = "主要任教学科")] public string MainTeachSubject { get; set; } [SkipSearch, SkipList] [Display(Order = 432, Name = "已审核")] public bool MainTeachSubjectChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 440, Name = "主要任教年级")] public string MainTeachGrade { get; set; } [SkipSearch, SkipList] [Display(Order = 441, Name = "已审核")] public bool MainTeachGradeChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 450, Name = "兼职任教学段")] public string OtherTeachPeriod { get; set; } [SkipSearch, SkipList] [Display(Order = 451, Name = "已审核")] public bool OtherTeachPeriodChecked { get; set; } [Description("选择项中没有则手动填写")] [SkipSearch, SkipList] [SelectList] [Required(ErrorMessage = "必填项")] [Display(Order = 460, Name = "兼职任教学科")] public string OtherTeachSubject { get; set; } [SkipSearch, SkipList] [Display(Order = 462, Name = "已审核")] public bool OtherTeachSubjectChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Display(Order = 463, Name = "在编在岗")] public bool? HasPosition { get; set; } [HtmlData("HasPosition1")] [SkipSearch, SkipList] [SelectList] [Display(Order = 464, Name = "是否中层")] public bool? IsMiddleLevel { get; set; } [Description("是否提示【选择项中没有则手动填写】")] [HtmlData("HasPosition11")] [SkipSearch, SkipList] [SelectList(true)] [Required(ErrorMessage = "必填项")] [Header("在编人员在岗情况-在编在岗-是-职务")] [Display(Order = 470, Name = "职务")] public string Position { get; set; } [SkipSearch, SkipList] [Display(Order = 471, Name = "已审核")] public bool PositionChecked { get; set; } [HtmlData("HasPosition11")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Header("在编人员在岗情况-在编在岗-是-任命时间")] [Display(Order = 480, Name = "任命时间")] public DateTime? PositionStart { get; set; } [SkipSearch, SkipList] [Display(Order = 481, Name = "已审核")] public bool PositionStartChecked { get; set; } [Description("是否显示【填写所教学科全称】")] [HtmlData("HasPosition12")] [SkipSearch, SkipList] [Header("在编人员在岗情况-在编在岗-否 (一线教师")] [Display(Order = 491, Name = "在编在岗一线教师")] public string FrontTeacher { get; set; } [HtmlData("HasPosition2")] [SkipSearch, SkipList] [Description("是否显示【长期病假 产假 挂职 支教 其他(请写出具体原因)】")] [Header("在编人员在岗情况-在编不在岗-原由")] [Display(Order = 500, Name = "在编不在岗原由")] public string NotOnPostReason { get; set; } [SkipSearch, SkipList] [Display(Order = 501, Name = "已审核")] public bool NotOnPostReasonChecked { get; set; } [HtmlData("HasPosition2")] [SkipSearch, SkipList] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] [Header("在编人员在岗情况-在编在不岗-不在岗 起始时间")] [Display(Order = 510, Name = "在编在不岗起始时间")] public DateTime? NotOnPostReasonDate { get; set; } [SkipSearch, SkipList] [Display(Order = 511, Name = "已审核")] public bool NotOnPostReasonDateChecked { get; set; } [SkipSearch, SkipList] [SelectList] [Header("教师资格证 种类")] [Display(Order = 520, Name = "教师资格证种类")] public string TeacherCardType { get; set; } [Description("是否提示【严格按照资格证书填写】")] [SkipSearch, SkipList] [Display(Order = 530, Name = "任教学科")] public string TeacherCardSubject { get; set; } [SkipSearch, SkipList] [SelectList] [Display(Order = 540, Name = "普通话等级")] public string TeacherCardLangLevel { get; set; } [SkipSearch, SkipList] [SelectList(true)] [Required(ErrorMessage = "必填项")] [Display(Order = 550, Name = "现家庭详细地址-区县")] public string CurrentAddressArea { get; set; } [SkipSearch, SkipList] [Required(ErrorMessage = "必填项")] [Header("现家庭详细地址(街道-门牌号)")] [Display(Order = 560, Name = "详细地址(街道-门牌号)")] public string CurrentAddressStreat { get; set; } [SkipSearch, SkipList] [Display(Order = 570, Name = "备注")] public string Comment { get; set; } } }