@fmdevui/fm-dev
Version:
Page level components developed based on Element Plus.
546 lines (545 loc) • 17.3 kB
TypeScript
import { DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
declare function __VLS_template(): {
attrs: Partial<{}>;
slots: {
queryForm?(_: {
query: {
[x: string]: any;
page?: number | undefined;
pageSize?: number | undefined;
};
handleQuery: () => void;
}): any;
columns?(_: {}): any;
};
refs: {
selectRef: unknown;
tableRef: unknown;
};
rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ExtractPropTypes<{
/**
* 使用示例:
*
* 单选模式:
* <pulldown-selecter
* v-model="state.ruleForm.userId"
* :defaultOptions="[ id: state.ruleForm.userId, realName: state.ruleForm.realName ]"
* :fetch-options="handleSysUserTable"
* :queryParams="state.queryParams"
* :dropdown-width="dropdownWidth"
* :placeholder="placeholder"
* :label-prop="realName"
* :value-prop="id"
* @@change="handelChange"
* filterable
* clearable
* class="w100"
* >
*
* 多选模式:
* <pulldown-selecter
* v-model="state.ruleForm.userIds"
* :defaultOptions="state.ruleForm.defaultUsers"
* :fetch-options="handleSysUserTable"
* :queryParams="state.queryParams"
* :dropdown-width="dropdownWidth"
* :placeholder="placeholder"
* :label-prop="realName"
* :value-prop="id"
* @@change="handelChange"
* multiple
* filterable
* clearable
* class="w100"
* >
*
* 查询条件表单插槽:
* <template #queryForm="{ query, handleQuery }">
* <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
* <el-form-item label="姓名" prop="realName">
* <el-input v-model="query.realName" placeholder="请输入姓名" class="w100" clearable @keydown.enter.native="handleQuery()" />
* </el-form-item>
* </el-col>
* <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
* <el-form-item label="电话" prop="phone">
* <el-input v-model="query.phone" placeholder="请输入电话" class="w100" clearable @keydown.enter.native="handleQuery()" />
* </el-form-item>
* </el-col>
* </template>
*
* 表格列插槽:
* <template #columns>
* <el-table-column prop="realName" label="姓名" />
* <el-table-column prop="account" label="账号" width="160"/ >
* <el-table-column prop="idCardNo" label="身份证号" width="140" />
* <el-table-column prop="cardNo" label="卡号" width="140" />
* <el-table-column prop="gender" label="性别" width="85">
* <template #default="{ row }">
* <g-sys-dict v-model="row.gender" code="GenderEnum" />
* </template>
* </el-table-column>
* <el-table-column prop="birthday" label="生日">
* <template #default="{ row, $index }">
* {{ commonFun.dateFormatYMD(row, $index, row.birthday) }}
* </template>
* </el-table-column>
* <el-table-column prop="phone" label="联系电话" width="100" />
* </template>
* </pulldown-selecter>
*/
modelValue: (StringConstructor | ArrayConstructor | NumberConstructor | null)[];
/**
* 获取表格数据的异步方法(必填)
* @example
* const handleSysUserTable = (params: any) => {
* return getAPI(SysUserApi).apiSysUserPagePost(params);
* };
*/
fetchOptions: {
type: FunctionConstructor;
};
islocalData: {
type: BooleanConstructor;
default: boolean;
};
localdataList: {
type: {
(arrayLength: number): any[];
(...items: any[]): any[];
new (arrayLength: number): any[];
new (...items: any[]): any[];
isArray(arg: any): arg is any[];
readonly prototype: any[];
from<T>(arrayLike: ArrayLike<T>): T[];
from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
of<T>(...items: T[]): T[];
readonly [Symbol.species]: ArrayConstructor;
};
default: never[];
};
/**
* api service name
*/
apiService: {
type: StringConstructor;
default: string;
};
/**
* api service 下的方法
*/
apiAction: {
type: StringConstructor;
default: string;
};
/**
* 基础编码 自动获取数据
*/
method: {
type: StringConstructor;
default: string;
};
/**
* 选中记录后绑定值的属性名
* 默认为'id',即选中某行后,会取该行数据的id字段作为值
*/
valueProp: {
type: StringConstructor;
default: string;
};
/**
* 选中记录后显示文本的属性名
* 默认为'name',即在下拉框中显示的文本取自该字段
*/
labelProp: {
type: StringConstructor;
default: string;
};
/**
* 显示值的格式化方法
* 可以自定义选中后在输入框中显示的文本格式
* @example
* :labelFormat="(item: any) => `${item.realName}(${item.account})`"
*/
labelFormat: {
type: FunctionConstructor;
default: (item: any) => undefined;
};
/**
* 默认查询条件的属性名
* 在输入框中输入的关键词会赋值给该字段
*/
keywordProp: {
type: StringConstructor;
default: string;
};
/**
* 下拉框的宽度
*/
dropdownWidth: {
type: StringConstructor;
default: string;
};
/**
* 下拉框的高度
*/
dropdownHeight: {
type: StringConstructor;
default: string;
};
/**
* 输入框的占位符文本
*/
placeholder: {
type: StringConstructor;
default: string;
};
/**
* 默认选项,用于回显已选中的数据
* 当数据不在当前页时,通过该属性提供数据进行回显
*/
defaultOptions: {
type: {
(arrayLength: number): any[];
(...items: any[]): any[];
new (arrayLength: number): any[];
new (...items: any[]): any[];
isArray(arg: any): arg is any[];
readonly prototype: any[];
from<T>(arrayLike: ArrayLike<T>): T[];
from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
of<T>(...items: T[]): T[];
readonly [Symbol.species]: ArrayConstructor;
};
default: never[];
};
/**
* 查询表单的高度偏移量
* 用于计算表格高度时减去查询表单占用的高度
*/
queryHeightOffset: {
type: NumberConstructor;
default: number;
};
/**
* 查询表单标签的宽度
*/
queryLabelWidth: {
type: StringConstructor;
};
/**
* 查询参数对象
* 父组件传入的额外查询条件,会与组件内部的查询条件合并
*/
queryParams: {
type: ObjectConstructor;
default: () => {};
};
/**
* 是否显示分页组件
*/
pagination: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否禁用组件
*/
disabled: BooleanConstructor;
/**
* 是否多选模式
*/
multiple: BooleanConstructor;
/**
* 是否可清空
*/
clearable: BooleanConstructor;
}>, {
setValue: (option: any | any[], row?: any) => void;
handleQuery: (clearKeyword?: boolean) => void;
setQueryParams: (query: any, append?: boolean) => void;
setDefaultOptions: (options: any[]) => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
change: (...args: any[]) => void;
"update:modelValue": (...args: any[]) => void;
}, string, PublicProps, Readonly< ExtractPropTypes<{
/**
* 使用示例:
*
* 单选模式:
* <pulldown-selecter
* v-model="state.ruleForm.userId"
* :defaultOptions="[ id: state.ruleForm.userId, realName: state.ruleForm.realName ]"
* :fetch-options="handleSysUserTable"
* :queryParams="state.queryParams"
* :dropdown-width="dropdownWidth"
* :placeholder="placeholder"
* :label-prop="realName"
* :value-prop="id"
* @@change="handelChange"
* filterable
* clearable
* class="w100"
* >
*
* 多选模式:
* <pulldown-selecter
* v-model="state.ruleForm.userIds"
* :defaultOptions="state.ruleForm.defaultUsers"
* :fetch-options="handleSysUserTable"
* :queryParams="state.queryParams"
* :dropdown-width="dropdownWidth"
* :placeholder="placeholder"
* :label-prop="realName"
* :value-prop="id"
* @@change="handelChange"
* multiple
* filterable
* clearable
* class="w100"
* >
*
* 查询条件表单插槽:
* <template #queryForm="{ query, handleQuery }">
* <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
* <el-form-item label="姓名" prop="realName">
* <el-input v-model="query.realName" placeholder="请输入姓名" class="w100" clearable @keydown.enter.native="handleQuery()" />
* </el-form-item>
* </el-col>
* <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
* <el-form-item label="电话" prop="phone">
* <el-input v-model="query.phone" placeholder="请输入电话" class="w100" clearable @keydown.enter.native="handleQuery()" />
* </el-form-item>
* </el-col>
* </template>
*
* 表格列插槽:
* <template #columns>
* <el-table-column prop="realName" label="姓名" />
* <el-table-column prop="account" label="账号" width="160"/ >
* <el-table-column prop="idCardNo" label="身份证号" width="140" />
* <el-table-column prop="cardNo" label="卡号" width="140" />
* <el-table-column prop="gender" label="性别" width="85">
* <template #default="{ row }">
* <g-sys-dict v-model="row.gender" code="GenderEnum" />
* </template>
* </el-table-column>
* <el-table-column prop="birthday" label="生日">
* <template #default="{ row, $index }">
* {{ commonFun.dateFormatYMD(row, $index, row.birthday) }}
* </template>
* </el-table-column>
* <el-table-column prop="phone" label="联系电话" width="100" />
* </template>
* </pulldown-selecter>
*/
modelValue: (StringConstructor | ArrayConstructor | NumberConstructor | null)[];
/**
* 获取表格数据的异步方法(必填)
* @example
* const handleSysUserTable = (params: any) => {
* return getAPI(SysUserApi).apiSysUserPagePost(params);
* };
*/
fetchOptions: {
type: FunctionConstructor;
};
islocalData: {
type: BooleanConstructor;
default: boolean;
};
localdataList: {
type: {
(arrayLength: number): any[];
(...items: any[]): any[];
new (arrayLength: number): any[];
new (...items: any[]): any[];
isArray(arg: any): arg is any[];
readonly prototype: any[];
from<T>(arrayLike: ArrayLike<T>): T[];
from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
of<T>(...items: T[]): T[];
readonly [Symbol.species]: ArrayConstructor;
};
default: never[];
};
/**
* api service name
*/
apiService: {
type: StringConstructor;
default: string;
};
/**
* api service 下的方法
*/
apiAction: {
type: StringConstructor;
default: string;
};
/**
* 基础编码 自动获取数据
*/
method: {
type: StringConstructor;
default: string;
};
/**
* 选中记录后绑定值的属性名
* 默认为'id',即选中某行后,会取该行数据的id字段作为值
*/
valueProp: {
type: StringConstructor;
default: string;
};
/**
* 选中记录后显示文本的属性名
* 默认为'name',即在下拉框中显示的文本取自该字段
*/
labelProp: {
type: StringConstructor;
default: string;
};
/**
* 显示值的格式化方法
* 可以自定义选中后在输入框中显示的文本格式
* @example
* :labelFormat="(item: any) => `${item.realName}(${item.account})`"
*/
labelFormat: {
type: FunctionConstructor;
default: (item: any) => undefined;
};
/**
* 默认查询条件的属性名
* 在输入框中输入的关键词会赋值给该字段
*/
keywordProp: {
type: StringConstructor;
default: string;
};
/**
* 下拉框的宽度
*/
dropdownWidth: {
type: StringConstructor;
default: string;
};
/**
* 下拉框的高度
*/
dropdownHeight: {
type: StringConstructor;
default: string;
};
/**
* 输入框的占位符文本
*/
placeholder: {
type: StringConstructor;
default: string;
};
/**
* 默认选项,用于回显已选中的数据
* 当数据不在当前页时,通过该属性提供数据进行回显
*/
defaultOptions: {
type: {
(arrayLength: number): any[];
(...items: any[]): any[];
new (arrayLength: number): any[];
new (...items: any[]): any[];
isArray(arg: any): arg is any[];
readonly prototype: any[];
from<T>(arrayLike: ArrayLike<T>): T[];
from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
of<T>(...items: T[]): T[];
readonly [Symbol.species]: ArrayConstructor;
};
default: never[];
};
/**
* 查询表单的高度偏移量
* 用于计算表格高度时减去查询表单占用的高度
*/
queryHeightOffset: {
type: NumberConstructor;
default: number;
};
/**
* 查询表单标签的宽度
*/
queryLabelWidth: {
type: StringConstructor;
};
/**
* 查询参数对象
* 父组件传入的额外查询条件,会与组件内部的查询条件合并
*/
queryParams: {
type: ObjectConstructor;
default: () => {};
};
/**
* 是否显示分页组件
*/
pagination: {
type: BooleanConstructor;
default: boolean;
};
/**
* 是否禁用组件
*/
disabled: BooleanConstructor;
/**
* 是否多选模式
*/
multiple: BooleanConstructor;
/**
* 是否可清空
*/
clearable: BooleanConstructor;
}>> & Readonly<{
onChange?: ((...args: any[]) => any) | undefined;
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
}>, {
disabled: boolean;
placeholder: string;
clearable: boolean;
method: string;
apiService: string;
apiAction: string;
islocalData: boolean;
localdataList: any[];
valueProp: string;
labelProp: string;
labelFormat: Function;
keywordProp: string;
dropdownWidth: string;
dropdownHeight: string;
defaultOptions: any[];
queryHeightOffset: number;
queryParams: Record<string, any>;
pagination: boolean;
multiple: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {
selectRef: unknown;
tableRef: unknown;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};