You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs

526 lines
20 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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; } = Guid.NewGuid();
[SelectList]
[HiddenInput]
[ReadOnly(true)]
[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; }
[SkipSearch, SkipList]
[DataType(DataType.Date)]
[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]
[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]
[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]
[Display(Order = 450, Name = "兼职任教学段")]
public string OtherTeachPeriod { get; set; }
[SkipSearch, SkipList]
[Display(Order = 451, Name = "已审核")]
public bool OtherTeachPeriodChecked { get; set; }
[Description("选择项中没有则手动填写")]
[SkipSearch, SkipList]
[SelectList]
[Display(Order = 460, Name = "兼职任教学科")]
public string OtherTeachSubject { get; set; }
[SkipSearch, SkipList]
[Display(Order = 462, Name = "已审核")]
public bool OtherTeachSubjectChecked { get; set; }
[SkipSearch, SkipList]
[SelectList]
[Required(ErrorMessage = "必填项")]
[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; }
}
}