import type { TableColumn } from '@/components/NormalTable/table_interface'

// 筛选参数
export interface IListQuery {
  approvalStatus: string // 审批状态
  deptId: string // 所属部门id
  deptName?: string // 部门名称
  directorId: string // 负责人id
  equipmentNo: string // 统一编号
  equipmentName: string // 设备名称
  formId: string // 表单id
  manufactureNo: string // 出厂编号
  traceCompany: string // 溯源单位
  measureValidDateEnd: string // 检定有效期(开始)
  measureValidDateStart: string // 检定有效期(结束)
  partType?: string // 参照标准、工作标准和关键测量设备表必传固定值1
  standardType?: string // 标准类型
  limit: number // 每页数据数量
  offset: number // 页码
}

// 表格
export interface IList {
  id: string // 主键
  equipmentNo: string // 统一编号
  equipmentName: string // 设备名称
  model: string // 型号规格
  unitPrice: string // 设备单价（万元）
  manufacturer: string // 生产厂家
  manufactureNo: string // 出厂编号
  deptName: string // 所属部门
  directorName: string // 负责人
  usageStatus: string // 使用状态
  measureValidDate: string // 检定有效期
  traceCompany: string // 溯源单位
  approvalStatusName: string // 审批状态名称
  taskId: string // 任务id 用于审批
  processId: string // 流程实例id
}

// 详情表单-基本信息
export interface IForm {
  approvalType: string // 审批类型
  createUserId: string // 创建人id
  createUserName: string // 创建人名称
  createTime: string // 创建时间
  equipmentNo: string // 统一编号
  equipmentName: string // 设备名称
  unpackRecordId: string // 开箱记录
  purchaseDate: string // 购进日期
  productCountry: string // 生产国家
  manufacturer: string // 生产厂家
  manufactureNo: string // 出厂编号
  produceDate: string // 生产日期
  unitPrice: number // 设备单价（万元）
  usedYears: string | number // 使用年限
  model: string // 型号规格
  qualityStatus: string // 质量状况
  usageStatus: string // 使用状态
  level: string // 重要等级
  type: string // 设备类型
  standardType: string // 标准类型
  deptId: string // 部门id
  deptName: string // 所属部门
  directorId: string // 负责人id
  directorName: string // 负责人
  category: string // 设备分类
  measureCycle: number // 检定周期
  location: string // 位置信息
  remark: string // 备注
  instructionsFile: string // 说明书
  fileList: any // 文件列表
  traceCompany: string // 溯源单位
  traceDate: string // 溯源日期
  measureValidDate: string // 检定有效期
  meterIdentify: string // 计量标识
  meterStandardName?: string // 所属测量标准
  technicalFile?: string // 所依据的技术文件
  [key: string]: string | number | undefined
}
// 技术指标列表
export interface Itech {
  id: string
  equipmentNo: string // 设备编号
  measureParam: string // 检定参数名称
  measureRange: string // 测量范围
  uncertainty: string // 不确定度或允许误差极限或准确度等级
  errorCalculateIndicators: string // 误差计算指标
  editable?: boolean // 是否可编辑
}

// 主附件信息
export interface IAccessory {
  id: string // 主键
  equipmentNo?: string // 设备编号
  name: string // 名称
  information: string // 信息
  location: string // 位置
  editable?: boolean // 是否可编辑
}

// 核查点
export interface IInspect {
  id: string // 主键
  equipmentNo: string // 设备编号
  item: string // 核查项目
  checkPoint: string // 核查点
  unit: string // 单位
  upperLimit: string // 上限
  lowerLimit: string // 下限
  routine: string // 是否例行
  traceValue: string // 溯源值
  editable?: boolean // 是否可编辑
}

// 6个不可编辑表格菜单
export interface ITableMenu {
  name: string
  columns: TableColumn[]
  pagination: boolean
  list: 'useRecords' | 'maintenanceRecord' | 'certificate' | 'statusChangeRecord' | 'equipmentHistory' | 'equipmentFlowLog'
  searchFunc: Function
}

// 使用记录
export interface IUseRecords {
  code: string // 编号
  name: string // 名称
  jdy: string // 检定员
  createTime: string // 创建时间
}
// 维护记录
export interface IMaintenanceRecord {
  recordNo: string // 记录编号
  recordName: string // 记录名称
  recordDept: string // 记录部门
  recordPerson: string // 记录人
  recordTime: string // 记录时间
}
// 证书报告
export interface ICertificate {
  certificateNo: string // 证书编号
  certificateName: string // 证书名称
  source: string // 溯源单位
  measureDate: string // 检定日期
  validDate: string // 检定有效期
}
// 状态变更记录
export interface IStatusChangeRecord {
  type: string // 状态变更类型
  startDate: string // 开始日期
  endDate: string // 结束日期
  applyPerson: string // 申请人
  reason: string // 原因
}
// 设备流转日志
export interface IEquipmentFlowLog {
  useDept: string // 使用部门
  usePost: string // 使用岗位
  director: string // 负责人
  recordDate: string // 记录日期
}

// 基本信息备份，用于提交时去比较基本信息有没有改变-改变则审批
export interface IGetInfoForm {
  equipmentName: string // 设备名称
  unpackRecordId: string // 开箱记录id
  productCountry: string // 生产国家
  manufacturer: string // 生产厂家
  manufactureNo: string // 出厂编号
  produceDate: string // 生产日期
  unitPrice: number // 设备单价（万元）
  model: string // 型号规格
  qualityStatus: string // 质量状况
  usageStatus: string // 使用状态
  level: string // 重要等级
  type: string // 设备类型
  standardType: string // 标准类型
  deptId: string // 部门id
  deptName: string // 所属部门
  directorId: string // 负责人id
  directorName: string // 负责人
  category: string // 设备分类
  measureCycle: number // 检定周期
  location: string // 位置
  remark: string // 备注
  instructionsFile: string // 说明书
  [key: string]: string | number | undefined
}

