export interface IListQuery {
  name: string
  deptName: string
  offset: number
  limit: number
  sort?: string
  order?: string
}

export interface IDictType {
  name: string
  id: string
  value: string
}

export interface ITableColumn {
  text: string // 标题
  value: string // 值
  align?: 'left' | 'center' | 'right' // 排列
  width?: string | number // 宽度,px值
  show?: boolean // 是否显示列
  showOverflow?: boolean // 是否溢出为省略号
  filter?: Function // 字段过滤器
  styleFilter?: Function // 文字过滤器
  fixed?: boolean // 固定列
  filters?: { text: string; value: string }[] // 列筛选
  isFilters?: boolean // 是否有列筛选
  required?: boolean // 是否必填
}

export interface IStaffBasicInfo {
  id?: string
  account: string
  staffNo: string
  staffName: string
  pictureFile?: string
  idCard: string
  birthday: string
  nativePlace?: string
  education?: string
  educationName?: string
  recordDate?: string
  officerNo?: string
  gender: string
  genderName: string
  graduationDate?: string
  nation?: string
  degree?: string
  degreeName?: string
  deptId: string
  deptName: string
  station?: string
  major?: string
  certificateNumber?: string
  engageDate?: string
  workingDate?: string
  titleInitialDate?: string
  titleRecentlyDate?: string
  academicStartDate?: string
  partyDate?: string
  enlistmentDate?: string
  staffType: string
  staffTypeName?: string
  rankLevel?: string
  rankLevelDate: string
  jobLevel?: string
  jobLevelDate?: string
  treatmentLevel?: string
  treatmentLevelDate?: string
  workingExperience?: string
  rankExperience?: string
  titleExperience?: string
  rewardsPunishments?: string
  remark?: string
  score?: string
  staffScore?: string
  editable?: boolean
}

export interface IStaffEducationInfo {
  id: string
  staffId: string
  graduateSchool: string
  speciality: string
  education: string
  educationName?: string
  startDate: string
  endDate: string
  timeSpan?: string
  editable?: boolean
}

export interface IStaffAbilityInfo {
  id: string
  staffId: string
  obtainDate: string
  abilityName: string
  publication: string
  remark: string
  file: string
  editable?: boolean
}

export interface IStaffProjectInfo {
  id: string
  staffId: string
  projectDate: string
  projectName: string
  remark: string
  file: string
  editable?: boolean
}

export interface IStaffAuthorizeInfo {
  id: string
  staffId: string
  authorizeParam: string
  authorizeContent: string
  authorizeDate: string
  validDate: string
  file: string
  editable?: boolean
}

export interface IStaffResumeInfo {
  id: string
  staffId: string
  resumeName: string
  details: string
  resumeDate: string
  editable?: boolean
}

export interface IStaffPromoteInfo {
  id: string
  staffId: string
  promoteExperience: string
  company: string
  promoteDate: string
  editable?: boolean
}

export interface IStaffVerifierInfo {
  id: string
  staffId: string
  certNo: string
  certName: string
  grantDate: string
  effectiveDate: string
  grantCompany: string
  file: string
  editable?: boolean
}
