UNPKG

@ithinkdt/naive

Version:

iThinkDT Naive UI

55 lines (47 loc) 2.09 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import { HTMLAttributes } from 'vue' import { TransferProps } from 'ithinkdt-ui' import { PublicProps, GenericCtx, GenericReturn, GenericExposed } from '@ithinkdt/common' import { UserInfo } from '@ithinkdt/core' export interface UserGroupOption { code: string name: string } export interface DeptOption { code: string name: string children?: DeptOption[] } declare interface _UserDeptProps<Multiple extends boolean> { type?: 'user' | 'dept' selectType?: 'dropdown' | 'dialog' | 'transfer' value?: Multiple extends true ? string[] : string placeholder?: string menuProps?: HTMLAttributes multiple?: boolean defaultExpandAll?: boolean filterable?: boolean disabled?: boolean size?: TransferProps['size'] users?: UserInfo[] groups?: UserGroupOption[] depts?: DeptOption[] getUsersByGroup?: (code: string) => Promise<UserInfo[]> getUsersByDept?: (code: string) => Promise<UserInfo[]> 'onUpdate:value'?: (value: Multiple extends true ? string[] : string) => any onUpdateValue?: (value: Multiple extends true ? string[] : string) => any } declare interface _UserDeptEmits<Multiple extends boolean> { (e: 'update:value', value: Multiple extends true ? string[] : string): void (e: 'update-value', value: Multiple extends true ? string[] : string): void } export declare const DtUserDept: <Multiple extends boolean>( props: _UserDeptProps<Multiple> & PublicProps, ctx?: Pick<GenericCtx<_UserDeptProps<Multiple>, _UserDeptEmits<Multiple>>, 'attrs' | 'emit' | 'slots'>, expose?: (exposed?: GenericExposed) => void, setup?: GenericCtx<_UserDeptProps<Multiple>, _UserDeptEmits<Multiple>>, ) => GenericReturn<_UserDeptProps<Multiple>, _UserDeptEmits<Multiple>> export declare interface UserDeptProps<Multiple extends boolean = false> extends _UserDeptProps<Multiple> { 'onUpdate:value'?(value: Multiple extends true ? string[] : string): void onUpdateValue?(value: Multiple extends true ? string[] : string): void }