Skip to content

组件运行时类型 ​

运行时类型定义在 uni_modules/tmx-ui/interface.ts。项目中按 .uts 导入:

ts
import { Tmui4xOptions, XCONFIG, I18nOptions, I18nGlobal } from "@/uni_modules/tmx-ui"

完整类型如下。

ts
/**
 * I18n配置选项类型(可选版本)- 用于初始化国际化实例
 */
export type I18nOptions = {
	/** 当前语言代码,如 'en-US'、'zh-CN' */
	locale?: string;
	/** 回退语言代码,当当前语言缺少翻译时使用 */
	fallbackLocale?: string;
	/** 翻译消息对象,按语言代码组织 */
	messages?: Record<string, any>;
	/** 日期时间格式化配置 */
	datetimeFormats?: any;
	/** 数字格式化配置 */
	numberFormats?: any;
	/** 字符串修饰器映射 */
	modifiers?: Map<string, any>;
	/** 复数规则映射,按语言代码组织 */
	pluralRules?: Map<string, any>;
	/** 缺失翻译处理函数 */
	missing?: ((locale: string, key: string, instance?: any, type?: string) => any) | null;
	/** 是否显示缺失翻译警告 */
	missingWarn?: boolean;
	/** 是否显示回退语言警告 */
	fallbackWarn?: boolean;
	/** 是否回退到根实例 */
	fallbackRoot?: boolean;
	/** 是否启用回退格式化 */
	fallbackFormat?: boolean;
	/** 是否允许未解析的翻译键 */
	unresolving?: boolean;
	/** 翻译后处理函数 */
	postTranslation?: ((str: string, key: string) => string) | null;
	/** 是否警告HTML消息 */
	warnHtmlMessage?: boolean;
	/** 是否转义参数 */
	escapeParameter?: boolean;
	/** 是否继承父级语言设置 */
	inheritLocale?: boolean;
	/** 警告处理器 */
	warnHandler?: any;
	/** 默认复数规则 */
	pluralRule?: any;
	/** 是否全局注入 */
	globalInjection?: boolean;
	/** 是否允许组合式API */
	allowComposition?: boolean;
	/** 是否使用遗留模式 */
	legacy?: boolean;
};
/** vue-i18n 全局实例(createI18n().global),含 t/d/n/te/tm 等组合式 API 常用方法 */
export type I18nGlobal = {
	/** 翻译文本。`t(key)` / `t(key, named)` / `t(key, list)` / `t(key, plural)` 多重载 */
	t: (key: string, ...args: any[]) => string;
	/** 解析已编译消息(rt: resolve translation),通常配合 tm() 使用 */
	rt?: (message: any, ...args: any[]) => string;
	/** 日期/时间格式化。`d(value)` / `d(value, key)` / `d(value, key, locale)` / `d(value, options)` */
	d?: (value: any, ...args: any[]) => string;
	/** 数字格式化。`n(value)` / `n(value, key)` / `n(value, key, locale)` / `n(value, options)` */
	n?: (value: any, ...args: any[]) => string;
	/** 判断 key 是否存在 */
	te?: (key: string, locale?: string) => boolean;
	/** 取整段消息子树(返回对象/数组结构) */
	tm?: (key: string) => any;

	/** 当前语言(Ref<string>,可读写) */
	locale?: any;
	/** 回退语言(Ref<string | string[] | ...>) */
	fallbackLocale?: any;
	/** 当前已注册的所有语言代码(只读) */
	availableLocales?: string[];
	/** 全部 messages(只读,结构与 createI18n 的 messages 一致) */
	messages?: any;
	/** 全部日期时间格式配置(只读) */
	datetimeFormats?: any;
	/** 全部数字格式配置(只读) */
	numberFormats?: any;

	/** 取指定语言的 messages */
	getLocaleMessage?: (locale: string) => any;
	/** 整包覆盖指定语言的 messages */
	setLocaleMessage?: (locale: string, message: any) => void;
	/** 深度合并指定语言的 messages(不会清空原有 key) */
	mergeLocaleMessage?: (locale: string, message: any) => void;

	/** 取指定语言的日期时间格式 */
	getDateTimeFormat?: (locale: string) => any;
	/** 整包覆盖指定语言的日期时间格式 */
	setDateTimeFormat?: (locale: string, format: any) => void;
	/** 深度合并指定语言的日期时间格式 */
	mergeDateTimeFormat?: (locale: string, format: any) => void;

	/** 取指定语言的数字格式 */
	getNumberFormat?: (locale: string) => any;
	/** 整包覆盖指定语言的数字格式 */
	setNumberFormat?: (locale: string, format: any) => void;
	/** 深度合并指定语言的数字格式 */
	mergeNumberFormat?: (locale: string, format: any) => void;
};

export type XCONFIG = {
	i18n: I18nGlobal | null;
	/** 默认颜色主题名称的配置 */
	theme: Map<string, string>;
	/** 全局的主题色 **/
	color: string;
	/** 全局默认的文本x-text色 */
	fontColor: string;
	/** 全局默认的文本x-text暗黑字体色 */
	fontDarkColor: string;
	/** 主题配置,auto,dark,light */
	dark: "dark" | "light" | "auto";
	/** 设计基准默认是375,如果修改会影响组件的尺寸,比如你设置为414,那么假设12号最终计算过程是414/375*12=13.248px,如果你小于375则不计算。 */
	designSize: number;
	/** 当屏幕宽大于或者等于667时再直接采用以375为基座,按照designSize比例来的原始尺寸,即尺寸不会变大也不会变小了 */
	maximumCalculatedSize: number;
	/** 设计单位px,rpx */
	unit: "px" | "rpx";

	/** 所有组件的文字统一缩放的倍数,如果你使用unit为rpx时,fontScale不要去设置,如果unit为px时,可以设置此值来缩放大小。 */
	fontScale: number;
	/** x-text默认的字号,如果你使用unit为rpx时,fontScale不要去设置 */
	fontSize: string;

	/** 一般容器sheet的暗黑背景 */
	sheetDarkColor: string;
	/** 一般输入框的次级暗黑背景 */
	sheetSecodBgDarkColor:string;
	/** 一般容器边线颜色如果你布局自己写了默认的边线色,但忘记填写组件上的暗黑线时,会取这里的值 */
	sheetDarkBorderColor: string[];

	/** 输入框,表单,常规灰背景待统一的二级暗黑背景 */
	inputDarkColor: string;
	/** 输入框默认的亮系背景色方便统一设计稿 */
	inputBgColor: string;
	/** 输入框默认的统一提示placeholderStyle方便统一设计稿 */
	placeholderStyle: string;
	/** 一般的表单,列表底的暗黑统一边线颜色 */
	borderDarkColor: string;

	/** 统一的输入框圆角 */
	inputRadius: string;
	/**
	 * 输入框统一的聚集样式
	 * 第3表示默认的边颜色(如果为空表示默认边颜色不生效.),第4表示聚焦时的颜色(空表示取全局color,transparent为不生效就是没有聚集样式)
	 * ['2px','solid','','']
	 */
	inputFocusBorder: string[];
	/** 统一的按钮圆角 */
	buttonRadius: string;
	/** 统一的标签圆角 */
	tagRadius: string;
	/**
	 * 统一列表的圆角
	 */
	cellRadius: string;
	/**
	 * 列表为cellCard组件时的边距
	 * [x]全部,[x,x]左右,上下,[x,x,x]左上右,[x,x,x,x]左上右下
	 */
	cellMargin: string[];
	/** 容器的全局圆角 */
	sheetRadius: string[];
	/** 容器的全局间隙 */
	sheetMargin: string[];
	/** 容器的全局内间隙 */
	sheetPadding: string[];
	/**
	 * 影响:
	 * 抽屉打开方向为上和下时的圆角
	 * 浮动面板
	 * 动作菜单
	 * */
	drawerRadius: string;
	/** 对话框modal的圆角 */
	modalRadius: string;
	/** 开关的圆角 */
	switchRadius: string;
	/**进度条的圆角 */
	progressRadius: string;
	/** 未选中时的颜色 */
	unRadioAndCheckBoxColor: string;
	/** 单选按钮组的圆角 */
	radioButtonRadius: string;
	/** 弹窗,弹层,对话框等等所有的动画类型。 */
	animationFun: string;
	/** 卡片的圆角 */
	cardRound: string;
	/**各种弹层右上角的关闭按钮图标名称,可以根据自己设计稿更换**/
	closeIcon: string;
	/** 默认图片预览是否开启 */
	previewImage: boolean;
	/** drawer,modal弹层默认的按钮是否是半圆,如果关闭就是1.x的风格 */
	modalActionsHalfRound: boolean;
	/** 统一的按钮投影[x,y,blur],建议值:[0,3,10],另外由于布局因此,投影它需要padding来空出投影值否则被裁剪 */
	buttonShadow: number[]
};

export type Tmui4xOptions = {
	config: XCONFIG | null;
	i18nOptions: I18nOptions | null;
};

export type NAVIGATE_TYPE = "navigate" | "redirect" | "switchTab" | "reLaunch" | "navigateBack";
/** 
 * 下拉菜单类型子项目信息
 */
export type XDROPDOWN_LISTITEM_INFO_TYPE = {
	/** 下拉列表项的唯一标识符 */
	id : string,
	/** 下拉列表项的标题 */
	title : string,
	/** 下拉列表项的键名 */
	keyName : string,
	/** 下拉列表项的图标 */
	icon : string,
	/** 下拉列表项激活状态下的图标 */
	activeIcon : string,
	/** 下拉列表项的字体颜色 */
	fontColor : string,
	/** 下拉列表项激活状态下的字体颜色 */
	activeFontColor : string,
	/** 下拉列表项的字体大小 */
	fontSize : string,
	/** 是否是按钮类型的下拉列表项 */
	isBtn : boolean
}

/** 
 * 节点的信息
 */
export type NODE_INFO = {
	/** 节点左边界的位置 */
	left : number,
	/** 节点的宽度 */
	width : number,
	/** 节点的高度 */
	height : number,
	/** 节点底部的位置 */
	bottom : number,
	/** 节点右边界的位置 */
	right : number,
	/** 节点顶部的位置 */
	top : number
}
/**
 * 消息条的数据类型
 */
export type SNACKBAR_INFO = {
	/**
	 *  可选的背景颜色
	 */
	background ?: string,
	/**
	 * 可选的文字颜色属性
	 */
	color ?: string,
	/**
	 * 可选的字体大小属性
	 */
	fontSize ?: string,
	/**
	 * 必需的内容属性
	 */
	content : string,
	/**
	 * 必需的id属性
	 */
	id : number,
	/**
	 * 图标
	 */
	icon ?: string
}
/**
 * 消息条的数据类型
 */
export type SNACKBAR_ITEM = {
	background : string,
	color : string,
	fontSize : string,
	content : string,
	id : number,
	icon : string
}

/**
 * 多选,选项组的子节点属性。
 */
export type CHECKBOX_ITEM_INFO = {
	id : string,
	/** 当前选中的值 */
	nowvalue :string|number|boolean,
	/** 选中的值 */
	value :string|number|boolean,
	/** 未选中的值 */
	unvalue : string|number|boolean
}
/**
 * 单选,选项组的子节点属性。
 */
export type RADIO_ITEM_INFO = {
	id : string,
	/** 当前选中的值 */
	nowvalue : string|number|boolean,
	/** 选中的值 */
	value : string|number|boolean,
	/** 未选中的值 */
	unvalue : string|number|boolean
}
/**
 * 单选按钮组件类型
 */
export type RADIO_BUTTON = {
	id : string|number,
	icon ?: string,
	title : string,
	/** 是否禁用 */
	disabled ?: boolean
}
/**
 * 宫格项目类型
 */
export type XGRID_ITEM_INFO = {
	iconSize : string,
	fontSize : string,
	iconColor : string,
	fontColor : string,
	fontDarkColor:string,
	darkIconColor : string
}
/**
 * 动作菜单项目类型
 */
export type XACTION_MENU_ITEM_INFO = {
	iconSize ?: string,
	fontSize ?: string,
	iconColor ?: string,
	fontColor ?: string,
	icon ?: string,
	disabled ?: boolean,
	id : string,
	text : string,
}

/**
 * 词云项目类型
 */
export type TEXTCLOUD_ITEM_INFO = {
	/** 文本 **/
	text : string,
	/** 权重 **/
	weight : number,
	/** 颜色值 **/
	color ?: string
}
/**
 * tabs组件项目类型
 */
export type TABS_ITEM_INFO = {
	/** 标题 **/
	title : string,
	/** 是否禁用 **/
	disabled ?: boolean,
	/** 唯一标识,如果不提供,会当作idnex索引取代 **/
	id ?: string,
	/** 角标类型,dot,label,"",空时不显示 */
	dotType ?: "" | "dot" | "label",
	/** 角标背景颜色 */
	dotColor ?: string,
	/** 角标文本,只有dotType="number"时有效 */
	dotText ?: string,
}

export type TABS_ITEM = {
	/** 标题 **/
	title : string,
	/** 是否禁用 **/
	disabled : boolean,
	/** 唯一标识,如果不提供,会当作idnex索引取代 **/
	id : string,
	/** 角标类型,dot,number,"",空时不显示 */
	dotType : string,
	/** 角标背景颜色 */
	dotColor : string,
	/** 角标文本,只有dotType="number"时有效 */
	dotText : string,
}

/**
 * 侧边分类数据
 */
export type SLIDER_TREE_ITEM_INFO = {
	id : string,
	title : string,
	children ?: SLIDER_TREE_ITEM_INFO[],
	disabled ?: boolean,
	//菜单左侧小图标
	icon ?: string,
	/** 选中的子级值 */
	selected ?: string[],
	[key : string] : any
}
/**
 * 底部导航项目信息tabbar
 */
export type TABBAR_ITEM_INFO = {
	/**
	 * 标题
	 * @type {string}
	 */
	title ?: string;
	/**
	 * 图标
	 * @type {string}
	 */
	icon ?: string;
	/**
	 * 被选中时的图标
	 * @type {string}
	 */
	selectedIcon ?: string;
	/**
	 * 是否禁用
	 * @type {boolean}
	 */
	disabled ?: boolean;

	/**
	 * 默认颜色
	 * @type {string}
	 */
	color ?: string;
	/**
	 * 选中时的颜色
	 * @type {string}
	 */
	selectedColor ?: string;

	/**
	 * 打开方式
	 * @type {NAVIGATE_TYPE}
	 */
	openType ?: NAVIGATE_TYPE;
	/**
	 * 链接地址
	 * @type {string}
	 */
	url ?: string;
	/**
	 * 是否显示角标。如果为dot,dotLabel不为空优先展示文本角标
	 * dot,
	 * label
	 */
	dotType ?: string,
	/**
	 * 文本角标。空不展示。
	 */
	dotLabel ?: string
}

export type TABBAR_ITEM = {
	title : string,
	icon : string,
	selectedIcon : string,
	disabled : boolean,
	color : string,
	selectedColor : string,
	openType : string,
	url : string,
	/**
	 * 是否显示角标。如果为dot,dotLabel不为空优先展示文本角标
	 * dot,
	 * label
	 */
	dotType ?: string,
	/**
	 * 文本角标。空不展示。
	 */
	dotLabel ?: string
}

/**
 * xUploadMedia组件参数配置表类型
 */
export type XUPLOADFILE_INFO = {
	/** 最大上传数量 */
	count ?: number,
	sourceType ?: Array<string>,
	sizeType ?: Array<string>,
	/** 上传地址 */
	hostUrl ?: string,
	/** 上传的文件字段名 */
	name ?: string,
	header ?: UTSJSONObject,
	formData ?: UTSJSONObject,
	/**
	 * 开启多文件同时上传。
	 * 开启后注意:多个文件中的字段名name都是file
	 */
	multipart ?: boolean,
	autoUpload ?: boolean,
	/** 开发者服务器返回code,默认是200,非200表示上传失败。 */
	statusCode ?: number,
	compress ?: boolean,
	quality ?: number | null,
	compressedHeight ?: number | null,
	compressedWidth ?: number | null

}
/**
 * 0未上传,1上传中,2上传成功,3上传失败(网络错误),4已取消(终止,上到一半取消了),5超过大小
 */
export type XUPLOADFILE_FILE_STATUS = 0 | 1 | 2 | 3 | 4 | 5

/**
 * 上传的文件类型
 */
export type XUPLOADFILE_FILE_INFO = {
	id : string,
	/** 文件类型 */
	type : string,
	/** 文件大小 */
	size : number,
	/** 文件路径 */
	path : string,
	/** 文件名 */
	name : string,
	/** 文件扩展名 */
	extension : string,
	progress : number,
	statusText : string,
	status : XUPLOADFILE_FILE_STATUS,
	response : string,
	/** 文件类型,photo,video */
	model ?: string
}
/**
 * 选择前|选择结束|上传前|成功|失败|完成前|完成|任何变动触发
 * chooseBefore|chooseAfter|beforeUpload|success|fail|beforeComplete|complete|change
 */
export type XUPLOADFILE_EVENT_NAME = "chooseBefore" | "chooseAfter" | "beforeUpload" | "success" | "fail" | "beforeComplete" | "complete" | "change"

/**
 * 文件上传双向绑定的对象类型
 */
export type XUPLOADFILE_FILE_VALUE = {
	id ?: string,
	response ?: string,
	url : string,
	/** 可选字段状态值,如果你自己添加的文件路径错误,再上传时安卓是直接引发io错误,uni.upload是捕捉不到的,请小心使用状态值,默认为2即用户添加的代表上传成功,其它值:0等待,1失败,2成功,3上传中,4超过大小。 */
	status ?: number
}


/**
 * picker数据结构
 */
export type PICKER_ITEM_INFO = {
	title : string,
	id ?: string,
	children ?: PICKER_ITEM_INFO[],
	disabled ?: boolean
}

/**
 * picker数据结构项目结构
 */
export type X_PICKER_X_ITEM = {
	id : string,
	title : string,
	children : X_PICKER_X_ITEM[],
	disabled : boolean,
}


export type CASCADER_ID = string | number
export type CASCADER_VALUE = CASCADER_ID | CASCADER_ID[]

/**
 * 极联器数据。用户可自行挂额外字段,不会报类型警告。
 */
export type CASCADER_ITEM_INFO = {
	id : CASCADER_ID,
	title : string,
	children ?: CASCADER_ITEM_INFO[],
	disabled ?: boolean,
	/** 选中的子级值 */
	selected ?: CASCADER_ID[],
	[key : string] : any
}

export type CALLFUN_T_BOOLEAN = (val : any) => boolean;
export type FORM_RULE_TYPE = '' | 'string' | 'number' | 'array' | 'UTSJSON' | 'phone' | 'email' | 'boolean' | 'date'
/**
* 表单校验对象
*/
export type FORM_RULE = {
	/**
	 * 字段类型,空值为自动判断 ,不填写默认为空,自动判断.
	 */
	type ?: FORM_RULE_TYPE,
	/**
	 * 校验函数。默认根据泛型判断字段值,如果不填写默认为自带的校验函数校验.
	 */
	valid ?: (val : any | null) => boolean,
	/**
	 * 错误信息,默认为自动根据类型编写提示
	 */
	errorMessage ?: string,
	/** 
	 * 最大值,如果为空值或者为-1表示不限制大小,(数组和字符串是长度,数字是值,utsjson是key字段数量)
	 * 如果type=date时.max是以毫秒值的时间值可以通过Date.getTime()或者通过我的xDate来取值
	 */
	max ?: number,
	/** 
	 * 最小值,如果为空默认为1,(数组,字符,utsjson为1,长不能小于1)
	 * * 如果type=date时,默认1不作判断请提供大于的值,此时只会校验val是不是合法的date值
	 */
	min ?: number,
	/**
	 * 触发时机,只针对input有效,其它默认全是change
	 * change变化时触发,blur失焦时触发(如果你配置在非input组件上,会导致无法校验,因为只有input才有blur事件.)
	 */
	trigger ?: "change" | "blur"
};
export type FORM_SUBMIT_OBJECT = {
	errorMessage : string,
	valid : boolean,
	key : string,
	value : any | null
}
/**
 * 提交表单时的验证结果
 */
export type FORM_SUBMIT_RESULT = {
	/**
	 * 是否验证通过
	 */
	valid : boolean,
	/**
	 * 首次(验证失败的第一个字段,并非你字段中的顺序,是按渲染顺序来)验证失败的字段 错误信息
	 */
	errorMessage : string,
	/**
	 * 首次(验证失败的第一个字段,并非你字段中的顺序,是按渲染顺序来)验证失败的字段 key
	 */
	key : string,

	formData : FORM_SUBMIT_OBJECT[]
}

export type CASCADER_TREE_ITEM = {
	id : string,
	title : string,
	children : CASCADER_TREE_ITEM[],
	disabled : boolean,
	/** 当前选中的id数组 */
	selected : string[],
	checked:boolean
}

export type CASCADER_PATH_MENU_TYPE = {
	indexPath:number[],
	ids:string[],
	pathData:CASCADER_TREE_ITEM[]
}

/**
 * xAnimate类型
 */
export type XANIMATE_OPIONS = {
	/** 元素id */
	ele ?: string,
	/** 时间 */
	duration ?: number,
	/** 动画类型 */
	timingFunction ?: string,
	/** -1表示无限循环播放,0表示不会播放,大于0表示播放该次数后停止播放 */
	loop ?: number,
	/** 表示循环播放时,是否左右来回播放,而不是始终从开始到结束这样的状态播放 */
	tyty ?: boolean,
	/** 是否让动画顺序挨过按attr添加的属性顺序执行动画,而不是统一一起执行。 */
	isDescPlay ?: boolean,
	/** 四位数数组的动画映射值,优先级高于timingFunction */
	bezier ?: number[],
	/** 动画结束后的回调函数 */
	complete ?: () => void,
	/** 动画开始 */
	start ?: () => void,
	/** 动画运行中执行 */
	frame ?: (propress : number) => void
}

/**
 * 日期的对象属性
 */
export type xDateDayInfoType = {
	/** 年 */
	year : number,
	/** 月0-11 */
	month : number,
	/** 天 */
	day : number,
	/** 小时0-23 */
	hours : number,
	/** 分钟0-59 */
	minutes : number,
	/** 秒0-59 */
	seconds : number,
	/** 本年的第几周 */
	weeks : number,
	/** 本周星期几 */
	week : number,
	/** 本周星期几,中文名称 */
	weekCn : string,
	/** 格式化的日期字符串 */
	date : string,
	/** 是否渲染显示 */
	isRender ?: boolean
}

/**
 * 日历单个日期的样式对象
 */
export type xCalendarDateStyle_type = {
	/** 是否显示右角标 */
	dot ?: boolean,
	/** 右角标背景颜色 */
	dotColor ?: string,
	/** 右角标文字颜色 */
	dotLabelColor ?: string,
	/** 注意如果dot为true,此内容为空就会显示小圆点。如果有内容优先显示本文本 */
	dotLabel ?: string,
	/** 底部文本 */
	label ?: string,
	/** 背景颜色 */
	color ?: string,
	/** 日期文字颜色 */
	fontColor ?: string,
	/** 设置的日期 */
	date : string
}

export type xCalendarDateStyleStatus = {
	date:string,
	color:string
}

export type xCalendarDateStyleBetweenStatus = {
	/** 指定了start和end,那么处于这两个日期(含起始)之间的会显示状态点 */
	start?:string,
	/** 指定了start和end,那么处于这两个日期(含起始)之间的会显示状态点 */
	end?:string,
	/** start和end间条件达成时的状态颜色 */
	color?:string,
	/* 区间内排除的指定日期 */
	notDate?:string[],
}
/**
 * 状态结构对象
 */
export type xCalendarDateStyleStatusType = {
	/** 启用日期区间设置连续性的状态,它与下面的参数不冲突,如果日期不在区间内,但又在指定的日期内,也会启用状态显示。 */
	between?:xCalendarDateStyleBetweenStatus,
	/** 指定单独的日期状态,高于between优先权 */
	date?:xCalendarDateStyleStatus[]
}

export type xRequestMethond = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS"

/**
 * xReuest请求配置表
 */
export type xRequestOptions = {
	/**
	 * 是否新增访问前缀域名。如果提供了,在请求时会覆盖函数设置的setHostUrl如果不提供就使用全局设置的域名。
	 */
	hostUrl?:string,
	/** 定义服务器成功的状态码,如果不为此值会让请求进入失败状态。 */
	successStatusCode ?: number,
	/** string|null */
	url ?: string,
	/** 如果请求时提供了缓存时间将对接口进行缓存,一定时间内请求直接返回上次结果,不会真正请求 */
	cacheTime?:number,
	/** 是否启用缓存 */
	useCache?:boolean,
	/** UTSJSONObject|string|null */
	data ?: any,
	/** UTSJSONObject|string|null */
	header ?: UTSJSONObject,
	method ?: xRequestMethond,
	timeout ?: number,
	firstIpv4 ?: boolean,
	/** 请求前是否显示loading遮罩 */
	showLoadToast ?: boolean,
	/** 请求成功后是否提示,否则不提示 */
	showSuccessToast ?: boolean,
	/** 出错时,是否显示提示,否则不提示 */
	showErrorToast ?: boolean,
	dataType ?: string | null,
	responseType ?: string | null,
	/** 显示loading是的提示文本。 */
	loadToastText ?:string,
	/**
	 * 成功后的提示文件,注意你不提供它会先偿试读取你返回结果中msg字段,如果没有返回系统的错误字段,如果还没有就是最终的默认错误信息了
	 * 如果你提供了,不会展示其它可能的错误信息,以提供的为准。
	 */
	successToastText ?:string,
	/**
	 * 失败后的提示文件,注意你不提供它会先偿试读取你返回结果中msg字段,如果没有默认的则提示:操作成功字样
	 * 如果你提供了,不会展示其它信息,以提供的为准。
	 */
	errorToastText ?:string,
}
/**
 * 在监事事件中返回的参数类型
 */
export type xRequestOptionsCallBack = {
	/**
	 * 是否新增访问前缀域名。如果提供了,在请求时会覆盖函数设置的setHostUrl如果不提供就使用全局设置的域名。
	 */
	hostUrl:string,
	/** 定义服务器成功的状态码,如果不为此值会让请求进入失败状态。 */
	successStatusCode : number,
	/** 是否启用缓存 */
	useCache:boolean,
	/** 如果请求时提供了缓存时间将对接口进行缓存,一定时间内请求直接返回上次结果,不会真正请求 */
	cacheTime:number,
	/** string|null */
	url : string,
	/** UTSJSONObject|string|null */
	data : any,
	/** UTSJSONObject|string|null */
	header : UTSJSONObject,
	method : xRequestMethond,
	timeout : number,
	firstIpv4 : boolean,
	/** 请求前是否显示loading遮罩 */
	showLoadToast : boolean,
	/** 请求成功后是否提示,否则不提示 */
	showSuccessToast : boolean,
	/** 出错时,是否显示提示,否则不提示 */
	showErrorToast : boolean,
	dataType ?: string | null,
	responseType ?: string | null,
	/** 显示loading是的提示文本。 */
	loadToastText ?:string,
	/**
	 * 成功后的提示文件,注意你不提供它会先偿试读取你返回结果中msg字段,如果没有返回系统的错误字段,如果还没有就是最终的默认错误信息了
	 * 如果你提供了,不会展示其它可能的错误信息,以提供的为准。
	 */
	successToastText ?:string,
	/**
	 * 失败后的提示文件,注意你不提供它会先偿试读取你返回结果中msg字段,如果没有默认的则提示:操作成功字样
	 * 如果你提供了,不会展示其它信息,以提供的为准。
	 */
	errorToastText ?:string,
}
/**
 * 请求成功后听结果
 */
export type xRequestResult<T=any> = {
	data : T | null,
	statusCode : number,
	header : any,
	cookies : string[],
}
/**
 * 请求的历史记录类型列表
 */
export type xRequestHistoryType<T = any> = {
	id : string,
	loading : boolean,
	loaded : boolean,
	/** 状态标志 */
	status : string,
	/** 请求总时间ms为单位 */
	time : number,
	/** 请求的接口api名称 */
	api : string,
	/** 请求成功后的数据集 */
	result : T
};

export type xTableColumns = {
	title : string,
	/** 对应行数据字段 */
	key : string,
	/** 列宽:px / rpx / %;空则均分剩余 */
	width ?: string,
	/** 点击表头排序(按数字或数字字符串) */
	sorter ?: boolean,
	/** 左/右冻结 */
	fixed ?: string,
	/** 对齐 left / center / right */
	align ?: string,
	/** 分组表头子列 */
	children ?: xTableColumns[]
}
export type XTABBARCONFIG = {
	/**
	 * 底部导航栏选中项索引值。
	 */
	tabbarActiveIndex : number,
	/**
	 * 底部导航的高
	 */
	tabbarHeight : number,
	/**
	 * 导航栏数据。
	 */
	list : TABBAR_ITEM_INFO[]
}

export type X_REQUEST_PRIVATE_CALL_FUN_TYPE = {
	history : xRequestHistoryType[],
	/**
	 *  设置为false时表示需要登录授权的请求不会被发起
	 *	比如第一次请求发现没有登录或者登录失败,设置此值为false后
	 * 后面所有再它后面请求的请求会部会被阻止请求。
	 */
	authPass : boolean,
	hostUrl : string,
	header : UTSJSONObject | null,
	/**
	 * 开了调试模式后,你能查看所有的请求日志并统计当前的
	 * 请求总数,及每次请求的时间
	 * 及请求的状态值。
	 */
	dev : boolean,
	showLoadToast : boolean,
	/** 请求成功后是否提示,否则不提示 */
	showSuccessToast : boolean,
	/** 出错时,是否显示提示,否则不提示 */
	showErrorToast : boolean
}

export type xPageStyle = {
	path : string,
	backgroundColorContent : string,
	navigationBarBackgroundColor : string,
	navigationBarTextStyle : string
}
export type XPRIVATECONFIG = {
	scrollTop : number,
	windowInnerWidth : number,
	windowInnerHeight : number,
	windowWidth : number,
	windowHeight : number,
	pageStyle : Map<string, xPageStyle>,
	pageReady : boolean,
	onLoadOpts:UTSJSONObject
}


export type xWaterfallDataItemType = {
	top : number,
	left : number,
	width : number,
	height : number,
	id : string,
	col : number,
	isRender : boolean,
	order : number
}

/**
 * 1:从未执行过动画
 * 2:已完成/结束
 * 3:暂停中
 * 6:循环中被暂停。
 * 4:执行动画中
 * 5:重置并继续
 */
export type xTweenStatus = 1 | 2 | 3 | 4 | 5 | 6
export type xTweenEventListenerName = 'enter' | 'complete' | 'start' | 'stop' | 'pause'
export type xTweenCallbackFunType = (x : number) => number
export type xTweenEventCallFunType = {
	id : string,
	ease : xTweenCallbackFunType | null,
	status : xTweenStatus,
	duration : number,
	progress : number,
	oldProgeress : number,
	startTime : number,
	autoRemove : boolean,
	complete : xTweenEventCall,
	enter : xTweenEventCall,
	start : xTweenEventCall,
	pause : xTweenEventCall,
	loop : number,
	tyty : boolean,
	step : number,
	//已执行的次数。
	_finishLoop : number,
	//是否允许在下次播放时反向(loop>1或者loop -1才生效)
	reverse : boolean,

}
export type xTweenEventCall = (item : xTweenEventCallFunType) => void;
export type xTweenAnimate = {
	//结束完成时都被执行
	complete ?: xTweenEventCall,
	//运行中执行,会不停的执行回调函数
	enter ?: xTweenEventCall,
	//开始时执行
	start ?: xTweenEventCall
	//暂停时执行.
	pause ?: xTweenEventCall,
	/**
	 * string|number[]|null
	 * 动画名称或者动画差值number[]长度为4
	 * args为string时,应该是ease名称,只能是内置的名称.
	 */
	ease ?: any,
	/**
	 * 动画持续的时间.
	 */
	duration : number,
	/**
	 * 执行完动画后,是否自动删除本动画
	 * 删除后,如果再点play不再有动画.如果需要执行就需要再次
	 * addAnimate来添加执行的动画.
	 */
	autoRemove ?: boolean,
	// 动画循环的次数,默认为1即执行一次,-1表示永久循环执行
	loop ?: number,
	//动画被执行后,如果loop=-1或者loop>1将在下一次动画执行时,将从反向开始播放.进度也会反向值.1-0
	tyty ?: boolean,
	// [未实现]按步骤帖执行动画,比如在指定duration时间内以这个步骤数完成
	step ?: number,
}

/** 思维导图数据类型 */
export type XTREEFLAT_NODES = {
	/** 标题,必填写,其它字段全部为非必填 */
	title : string,
	/** 唯一标识,如果不填写内部自动填写 */
	id ?: string | number,
	/** 文本颜色 */
	fontColor ?: string,
	/** 文本背景颜色 */
	bgColor ?: string,
	/** 绘制文本时的内边跑 */
	padding ?: number,
	/** 绘制项目是连接线上下项目或者左右项目的间距 */
	gutter ?: number,
	/** 父级与子级之间的连续长度 */
	parentLineGutter ?: number,
	/** 是否展开了子级 */
	opened ?: boolean,
	/** 是否禁用展开子级 */
	disabled ?: boolean,
	/** 当前项目是否选中 */
	selected ?: boolean,
	/** 绘制文本的字号大小 */
	fontSize ?: number,
	/** 子级数据,可以为空数组代表无子级不绘制下级 */
	children ?: Array<XTREEFLAT_NODES>
}

/** 思维导图组件配置项 */
export type XTreeFlatOpts = {
	/** 不填写默认为透明,即不绘制背景 */
	bgColor ?: string,
	nodeBgColor ?: string,
	/** 不填写默认为#333 */
	fontColor ?: string,
	/** 不填写默认为14,如果子节点设置了以子节点为准 */
	fontSize ?: number,
	/** 统一连线颜色,不配置取节点的背景,如果节点背景也没设置取#333 */
	lineColor ?: string,
	/** 连线宽 */
	lineWidth ?: number,
	/** 绘制文本时的内边跑 */
	padding ?: number,
	/** 绘制项目是连接线上下项目或者左右项目的间距 */
	gutter ?: number,
	/** 父级与子级之间的连续长度 */
	parentLineGutter ?: number,
	/** 点击有子节点的父级时,是否允许关闭和展开,默认关闭 */
	enbleOpenChildren ?: boolean,
	/** 节点圆角,默认为8 */
	nodeRadius ?: number,
	/** 布局方式:horizontal 水平(默认),vertical 垂直 */
	layout ?: 'horizontal' | 'vertical',
	/** 连线样式:straight 折线(默认),curve 平滑曲线 */
	lineType ?: 'straight' | 'curve'
}
最近更新