// 表单字段类型
export type FormFieldType = 'text' | 'number' | 'select' | 'textarea' | 'date' | 'switch' | 'radio' | 'checkbox' | 'custom' | 'time' | 'slider'

// 表单字段选项
export interface FormFieldOption {
  label: string
  value: any
  disabled?: boolean
}

// 表单构建器项目接口
export interface FormBuilderItem {
  id: string
  label: string
  key: string
  type: FormFieldType
  defaultValue: any
  placeholder?: string
  required?: boolean
  disabled?: boolean
  // 质检标准相关
  standard?: string // 质检标准描述
  standardType?: 'text' | 'number' | 'range' | 'select' // 标准类型
  standardValue?: any // 标准值
  standardRange?: { min: number; max: number } // 标准范围
  standardOptions?: FormFieldOption[] // 标准选项
  showStandard?: boolean // 是否显示标准
  // 选择器相关
  options?: FormFieldOption[]
  // 数字输入相关
  min?: number
  max?: number
  step?: number
  precision?: number
  // 文本输入相关
  rows?: number
  maxlength?: number
  // 日期相关
  dateType?: 'date' | 'datetime' | 'daterange' | 'datetimerange'
  format?: string
  valueFormat?: string
  // 开关相关
  activeText?: string
  inactiveText?: string
  // 自定义验证规则
  rules?: any[]
}

// 表单构建器配置接口
export interface FormBuilderConfig {
  title?: string
  items: FormBuilderItem[]
  // 使用场景配置
  mode?: 'simple' | 'advanced' | 'custom'
  // 是否显示预览
  showPreview?: boolean
  // 是否允许拖拽排序
  allowDrag?: boolean
  // 自定义字段类型
  customFieldTypes?: FormFieldType[]
}

// 表单构建器事件接口
export interface FormBuilderEvents {
  change: (items: FormBuilderItem[]) => void
  itemAdd: (item: FormBuilderItem) => void
  itemRemove: (item: FormBuilderItem) => void
  itemUpdate: (item: FormBuilderItem, index: number) => void
}

// 表单构建器方法接口
export interface FormBuilderMethods {
  getFormItems: () => FormBuilderItem[]
  setFormItems: (items: FormBuilderItem[]) => void
  clearItems: () => void
  addItemWithData: (label: string, key: string, type?: FormFieldType, defaultValue?: any) => void
  exportConfig: () => FormBuilderConfig
  importConfig: (config: FormBuilderConfig) => void
}



