保誠-保戶業務員媒合平台
tomasysh
2025-01-02 4efb98f2b554b76270b12837db7a7f724e2ede89
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import { VNode, CreateElement } from 'vue';
import { ElementUIComponent } from './component'
 
/** Trigger mode of expanding current item */
export type ExpandTrigger = 'click' | 'hover'
 
/** Cascader Option */
export interface CascaderOption {
  label: string,
  value: any,
  children?: CascaderOption[],
  disabled?: boolean,
  leaf?: boolean
}
 
/** Cascader Props */
export interface CascaderProps<V, D> {
  expandTrigger?: ExpandTrigger,
  multiple?: boolean,
  checkStrictly?: boolean,
  emitPath?: boolean,
  lazy?: boolean,
  lazyLoad?: (node: CascaderNode<V, D>, resolve: Resolve<D>) => void,
  value?: string,
  label?: string,
  children?: string,
  disabled?: string
  leaf?: string
}
 
/** Cascader Node */
export interface CascaderNode<V, D> {
  uid: number,
  data: D,
  value: V,
  label: string,
  level: number,
  isDisabled: boolean,
  isLeaf: boolean,
  parent: CascaderNode<V, D> | null,
  children: CascaderNode<V, D>[]
  config: CascaderProps<V, D>
}
 
type Resolve<D> = (dataList?: D[]) => void
 
export interface CascaderPanelSlots {
  /** Custom label content */
  default: VNode[]
 
  [key: string]: VNode[]
}
 
/** CascaderPanel Component */
export declare class ElCascaderPanel<V = any, D = CascaderOption> extends ElementUIComponent {
  /** Selected value */
  value: V | V[]
 
  /** Data of the options */
  options: D[]
 
  /** Configuration options */
  props: CascaderProps<V, D>
 
  /** Whether to add border */
  border: boolean
 
  /** Render function of custom label content */
  renderLabel: (h: CreateElement, context: { node: CascaderNode<V, D>; data: D }) => VNode
 
  $slots: CascaderPanelSlots
}