import { buildProps, definePropType } from "../../../utils/vue/props/runtime"; import { ExtractPropTypes } from "vue"; import type ImportView from "./import-view.vue"; import type { XLSX, Rules } from "@/utils"; export type Type = "success" | "warning" | "error" | "info"; export type Tip = { title?: string; description: string; type?: Type; closable?: boolean; }; export type Column = Record; export type Tips = Array; export type Columns = Array; export type Data = Array>; export type Append = Record; export type Fields = Record; export type ReadSuccessFn = (data: Data) => Promise; export type ReturnFileNameFn = (fileName: string) => void; export const importViewProps = buildProps({ sheetName: { type: definePropType([String, Array]), }, /** * @description table scroll */ scroll: { type: Number, default: 1500, }, /** * @description download template file path */ filePath: { type: String, default: "", }, readSuccess: { type: definePropType(Function), }, returnFileName: { type: definePropType(Function), }, fields: { type: definePropType(Object), required: true, }, visible: { type: Boolean, required: true, }, title: { type: String, default: "", }, append: { type: definePropType(Object), }, tips: { type: definePropType(Array), }, rules: { type: definePropType(Object), }, formatter: { type: Function, }, width: { type: String, default: "80%", }, showFinishResult: { type: Boolean, default: false, }, finishDataColumns: { type: definePropType(Array), }, finishDataSource: { type: definePropType(Array), default: [], }, } as const); export type ImportViewProps = ExtractPropTypes; export const importViewEmits = { close: (): void => {}, finish: (): void => {}, }; export type ImportViewInstance = InstanceType;