declare module Base {
  // ajax请求返回数据格式
  interface IResponseData<T = any> {
    success: boolean
    failed: boolean
    solution: string
    message: string
    errorMsg: string
    data: T
    status: string
  }
  // list接口返回数据格式
  interface IListData<T = any>{
    page: number,
    pages: number,
    total:number,
    rows: T[]
  }
  interface IResponseList<T = any> extends IResponseData{
    data: IListData<T>
  }
  // 列表查询传参
  interface IListParams {
    page?: number
    rows?: number
    simple?: boolean
    params?: string,
    sorter?: string
  }
  // 模态框打开
  interface IDialog<T = any> {
    visible: boolean
    record: T
  }
  // 搜索配置
  interface ISearchConfig<T = any> {
    label?: string,
    value: string,
    type: string,
    initValue?: string | number,
    sign?: string,
    data?: T[],
    onChange?: {
      (val: string, listQuery: any): void
    }
  }
  // 列表
  type IListState<T = any> = {
    list: T[],
    total: number,
    params: IListParams,
  }
}