fast-element-plus 2.0.16 → 2.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/CONTRIBUTING.md +8 -0
  3. package/dist/component.d.ts +6564 -2
  4. package/dist/component.mjs.map +1 -1
  5. package/dist/components/avatar/src/avatar.d.ts +19 -7
  6. package/dist/components/avatar/src/avatar.mjs +5 -0
  7. package/dist/components/avatar/src/avatar.mjs.map +1 -1
  8. package/dist/components/button/src/button.d.ts +4 -4
  9. package/dist/components/button/src/button.mjs +3 -4
  10. package/dist/components/button/src/button.mjs.map +1 -1
  11. package/dist/components/carNumber/src/carNumber.mjs +7 -9
  12. package/dist/components/carNumber/src/carNumber.mjs.map +1 -1
  13. package/dist/components/contextMenu/src/contextMenu.mjs +8 -7
  14. package/dist/components/contextMenu/src/contextMenu.mjs.map +1 -1
  15. package/dist/components/dialog/src/dialog.d.ts +7 -4
  16. package/dist/components/dialog/src/dialog.mjs +6 -7
  17. package/dist/components/dialog/src/dialog.mjs.map +1 -1
  18. package/dist/components/drawer/src/drawer.mjs +14 -14
  19. package/dist/components/drawer/src/drawer.mjs.map +1 -1
  20. package/dist/components/form/src/form.d.ts +36 -24
  21. package/dist/components/form/src/form.mjs +8 -9
  22. package/dist/components/form/src/form.mjs.map +1 -1
  23. package/dist/components/form/src/formItem.d.ts +3 -3
  24. package/dist/components/form/src/formItem.mjs +18 -17
  25. package/dist/components/form/src/formItem.mjs.map +1 -1
  26. package/dist/components/form/utils/form.d.ts +2 -2
  27. package/dist/components/form/utils/form.mjs +2 -2
  28. package/dist/components/form/utils/form.mjs.map +1 -1
  29. package/dist/components/icon/src/icon.mjs.map +1 -1
  30. package/dist/components/iconSelector/src/iconSelector.d.ts +2 -2
  31. package/dist/components/iconSelector/src/iconSelector.mjs +4 -5
  32. package/dist/components/iconSelector/src/iconSelector.mjs.map +1 -1
  33. package/dist/components/image/src/image.d.ts +1 -1
  34. package/dist/components/image/src/image.mjs +2 -2
  35. package/dist/components/image/src/image.mjs.map +1 -1
  36. package/dist/components/inputDialogPage/src/inputDialogPage.mjs +10 -12
  37. package/dist/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
  38. package/dist/components/layoutGrid/src/layoutGrid.d.ts +23 -11
  39. package/dist/components/layoutGrid/src/layoutGrid.mjs +42 -43
  40. package/dist/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
  41. package/dist/components/layoutGrid/src/layoutGrid.type.d.ts +1 -1
  42. package/dist/components/layoutGrid/src/layoutGridItem.mjs +13 -14
  43. package/dist/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  44. package/dist/components/select/src/select.d.ts +27 -12
  45. package/dist/components/select/src/select.mjs +46 -44
  46. package/dist/components/select/src/select.mjs.map +1 -1
  47. package/dist/components/select/src/selectOption.mjs +4 -5
  48. package/dist/components/select/src/selectOption.mjs.map +1 -1
  49. package/dist/components/selectPage/src/selectPage.d.ts +24 -9
  50. package/dist/components/selectPage/src/selectPage.mjs +45 -52
  51. package/dist/components/selectPage/src/selectPage.mjs.map +1 -1
  52. package/dist/components/selectV2/src/selectV2.d.ts +49 -29
  53. package/dist/components/selectV2/src/selectV2.mjs +64 -62
  54. package/dist/components/selectV2/src/selectV2.mjs.map +1 -1
  55. package/dist/components/table/src/table.d.ts +63 -29
  56. package/dist/components/table/src/table.mjs +77 -81
  57. package/dist/components/table/src/table.mjs.map +1 -1
  58. package/dist/components/table/src/table.type.d.ts +2 -2
  59. package/dist/components/table/src/table.type.mjs.map +1 -1
  60. package/dist/components/table/src/tableColumn.d.ts +13 -13
  61. package/dist/components/table/src/tableColumn.mjs +17 -30
  62. package/dist/components/table/src/tableColumn.mjs.map +1 -1
  63. package/dist/components/table/src/tableColumnSettingDialog.mjs +24 -14
  64. package/dist/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  65. package/dist/components/table/src/tablePagination.mjs +2 -3
  66. package/dist/components/table/src/tablePagination.mjs.map +1 -1
  67. package/dist/components/table/src/tableSearchForm.d.ts +4 -4
  68. package/dist/components/table/src/tableSearchForm.mjs +24 -27
  69. package/dist/components/table/src/tableSearchForm.mjs.map +1 -1
  70. package/dist/components/table/src/tableSearchFormItem.d.ts +1 -7
  71. package/dist/components/table/src/tableSearchFormItem.mjs +3 -6
  72. package/dist/components/table/src/tableSearchFormItem.mjs.map +1 -1
  73. package/dist/components/table/src/useTable.d.ts +4 -4
  74. package/dist/components/table/src/useTable.mjs +13 -14
  75. package/dist/components/table/src/useTable.mjs.map +1 -1
  76. package/dist/components/table/utils/table.mjs +5 -7
  77. package/dist/components/table/utils/table.mjs.map +1 -1
  78. package/dist/components/tree/src/tree.d.ts +6 -6
  79. package/dist/components/tree/src/tree.mjs +28 -26
  80. package/dist/components/tree/src/tree.mjs.map +1 -1
  81. package/dist/components/treeSelect/src/treeSelect.d.ts +30 -27
  82. package/dist/components/treeSelect/src/treeSelect.mjs +45 -43
  83. package/dist/components/treeSelect/src/treeSelect.mjs.map +1 -1
  84. package/dist/components/upload/src/upload.d.ts +1 -1
  85. package/dist/components/upload/src/upload.mjs +4 -5
  86. package/dist/components/upload/src/upload.mjs.map +1 -1
  87. package/dist/components/upload/src/useUpload.mjs +5 -7
  88. package/dist/components/upload/src/useUpload.mjs.map +1 -1
  89. package/dist/components/upload/utils/upload.mjs +1 -1
  90. package/dist/components/upload/utils/upload.mjs.map +1 -1
  91. package/dist/components/uploadImage/src/uploadImage.d.ts +4 -16
  92. package/dist/components/uploadImage/src/uploadImage.mjs +7 -13
  93. package/dist/components/uploadImage/src/uploadImage.mjs.map +1 -1
  94. package/dist/components/uploadImages/src/uploadImages.d.ts +1 -1
  95. package/dist/components/uploadImages/src/uploadImages.mjs +7 -8
  96. package/dist/components/uploadImages/src/uploadImages.mjs.map +1 -1
  97. package/dist/directives/click-copy/index.mjs +5 -9
  98. package/dist/directives/click-copy/index.mjs.map +1 -1
  99. package/dist/element-plus.mjs +5 -6
  100. package/dist/element-plus.mjs.map +1 -1
  101. package/dist/hooks/use-screenFull/index.mjs.map +1 -1
  102. package/dist/index.css +1 -1
  103. package/dist/index.css.map +1 -1
  104. package/dist/index.global.min.js +4 -4
  105. package/dist/index.global.min.js.map +1 -1
  106. package/dist/utils/async/index.mjs.map +1 -1
  107. package/dist/utils/date/index.mjs.map +1 -1
  108. package/dist/utils/index.d.ts +1 -0
  109. package/dist/utils/object/index.d.ts +30 -0
  110. package/dist/utils/object/index.mjs +159 -0
  111. package/dist/utils/object/index.mjs.map +1 -0
  112. package/dist/utils/string/index.mjs.map +1 -1
  113. package/dist/utils/vue/emits.mjs.map +1 -1
  114. package/dist/utils/vue/install.mjs.map +1 -1
  115. package/dist/utils/vue/render.mjs.map +1 -1
  116. package/dist/version.d.ts +1 -1
  117. package/dist/version.mjs +1 -1
  118. package/dist/version.mjs.map +1 -1
  119. package/package.json +7 -11
@@ -1 +1 @@
1
- {"version":3,"file":"selectOption.mjs","names":[],"sources":["../../../../src/components/select/src/selectOption.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, reactive, resolveComponent } from \"vue\";\nimport { ElOption, ElOptionGroup } from \"element-plus\";\nimport { isUndefined } from \"lodash-unified\";\nimport { definePropType, makeSlots, useRender } from \"../../../utils\";\nimport type { ElSelectorOutput, ElSelectorValue } from \"./select.type\";\n\nexport default defineComponent({\n\tname: \"FaSelectOption\",\n\tprops: {\n\t\t/** @description 绑定值,优先级比 data 高 */\n\t\tvalue: {\n\t\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description 显示值,优先级比 data 高 */\n\t\tlabel: String,\n\t\t/** @description 禁用值,优先级比 data 高 */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description 子节点,优先级比 data 高 */\n\t\tchildren: {\n\t\t\ttype: definePropType<ElSelectorOutput[]>(Array),\n\t\t},\n\t\t/** @description 下拉框数据 */\n\t\tdata: {\n\t\t\ttype: definePropType<ElSelectorOutput>(Object),\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\t/** @description 更多细节,只有使用slot的时候有用 */\n\t\tmoreDetail: Boolean,\n\t},\n\tslots: makeSlots<{\n\t\t/** @description 默认内容插槽 */\n\t\tdefault: ElSelectorOutput;\n\t}>(),\n\tsetup(props, { slots }) {\n\t\tconst state = reactive({\n\t\t\tvalue: computed<ElSelectorValue>(() => (isUndefined(props.value) ? props.data.value : props.value) ?? \"\"),\n\t\t\tlabel: computed(() => (isUndefined(props.label) ? props.data.label : props.label)),\n\t\t\tdisabled: computed(() => (isUndefined(props.disabled) ? props.data.disabled : props.disabled) ?? false),\n\t\t\tchildren: computed(() => (isUndefined(props.children) ? props.data.children : props.children) ?? []),\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{state.children.length > 0 ? (\n\t\t\t\t\t<ElOptionGroup label={state.label} disabled={state.disabled}>\n\t\t\t\t\t\t{state.children.map((item) =>\n\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\tresolveComponent(\"FaSelectOption\"),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmoreDetail: props.moreDetail,\n\t\t\t\t\t\t\t\t\tdata: item,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ElOptionGroup>\n\t\t\t\t) : (\n\t\t\t\t\t<ElOption\n\t\t\t\t\t\tclass={{ \"fa-select-dropdown__selector__more-detail\": props.moreDetail && slots.default }}\n\t\t\t\t\t\tvalue={state.value}\n\t\t\t\t\t\tlabel={state.label}\n\t\t\t\t\t\tdisabled={state.disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{slots.default?.(props.data)}\n\t\t\t\t\t</ElOption>\n\t\t\t\t)}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"mappings":";;;;;;;AAIuE,SAAA,QAAA,GAAA;CAAA,OAAA,OAAA,MAAA,cAAA,OAAA,UAAA,SAAA,KAAA,CAAA,MAAA,qBAAA,CAAA,QAAA,CAAA;AAAA;AAEvE,IAAA,uBAAe,gBAAgB;CAC9B,MAAM;CACN,OAAO;;EAEN,OAAO;GACN,MAAM,eAAmD;IAAC;IAAQ;IAAQ;IAAS;GAAM,CAAC;GAC1F,SAAS,KAAA;EACV;;EAEA,OAAO;;EAEP,UAAU;GACT,MAAM;GACN,SAAS,KAAA;EACV;;EAEA,UAAU,EACT,MAAM,eAAmC,KAAK,EAC/C;;EAEA,MAAM;GACL,MAAM,eAAiC,MAAM;GAC7C,gBAAgB,CAAC;EAClB;;EAEA,YAAY;CACb;CACA,OAAO,UAGJ;CACH,MAAM,OAAO,EAAE,SAAS;EACvB,MAAM,QAAQ,SAAS;GACtB,OAAO,gBAAiC,YAAY,MAAM,KAAK,IAAI,MAAM,KAAK,QAAQ,MAAM,UAAU,EAAE;GACxG,OAAO,eAAgB,YAAY,MAAM,KAAK,IAAI,MAAM,KAAK,QAAQ,MAAM,KAAM;GACjF,UAAU,gBAAgB,YAAY,MAAM,QAAQ,IAAI,MAAM,KAAK,WAAW,MAAM,aAAa,KAAK;GACtG,UAAU,gBAAgB,YAAY,MAAM,QAAQ,IAAI,MAAM,KAAK,WAAW,MAAM,aAAa,CAAA,CAAE;EACpG,CAAC;EAED,gBAAU;GAAA,IAAA;GAAA,OAAA,YAAA,UAAA,MAAA,CAEP,MAAM,SAAS,SAAS,IAAC,YAAA,eAAA;IAAA,SACH,MAAM;IAAK,YAAY,MAAM;GAAQ,GAAA,QAAA,QACzD,MAAM,SAAS,KAAK,SACpB,EACC,iBAAiB,gBAAgB,GACjC;IACC,YAAY,MAAM;IAClB,MAAM;GACP,GACA,KACD,CACD,CAAC,IAAA,QAAA,EAAA,eAAA,CAAA,KAAA,EAAA,CAAA,IAAA,YAAA,UAAA;IAAA,SAIM,EAAE,6CAA6C,MAAM,cAAc,MAAM,QAAQ;IAAC,SAClF,MAAM;IAAK,SACX,MAAM;IAAK,YACR,MAAM;GAAQ,GAAA,EAAA,eAAA,CAEvB,MAAM,UAAU,MAAM,IAAI,CAAC,EAAA,CAAA,CAE7B,CAAA;EAAA,CAEF;CACF;AACD,CAAC"}
1
+ {"version":3,"file":"selectOption.mjs","names":[],"sources":["../../../../src/components/select/src/selectOption.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, reactive, resolveComponent } from \"vue\";\nimport { ElOption, ElOptionGroup } from \"element-plus\";\nimport { definePropType, makeSlots, useRender } from \"../../../utils\";\nimport type { ElSelectorOutput, ElSelectorValue } from \"./select.type\";\n\nexport default defineComponent({\n\tname: \"FaSelectOption\",\n\tprops: {\n\t\t/** @description 绑定值,优先级比 data 高 */\n\t\tvalue: {\n\t\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description 显示值,优先级比 data 高 */\n\t\tlabel: String,\n\t\t/** @description 禁用值,优先级比 data 高 */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description 子节点,优先级比 data 高 */\n\t\tchildren: {\n\t\t\ttype: definePropType<ElSelectorOutput[]>(Array),\n\t\t},\n\t\t/** @description 下拉框数据 */\n\t\tdata: {\n\t\t\ttype: definePropType<ElSelectorOutput>(Object),\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\t/** @description 更多细节,只有使用slot的时候有用 */\n\t\tmoreDetail: Boolean,\n\t},\n\tslots: makeSlots<{\n\t\t/** @description 默认内容插槽 */\n\t\tdefault: ElSelectorOutput;\n\t}>(),\n\tsetup(props, { slots }) {\n\t\tconst state = reactive({\n\t\t\tvalue: computed<ElSelectorValue>(() => props.value ?? props.data.value ?? \"\"),\n\t\t\tlabel: computed(() => props.label ?? props.data.label),\n\t\t\tdisabled: computed(() => props.disabled ?? props.data.disabled ?? false),\n\t\t\tchildren: computed(() => props.children ?? props.data.children ?? []),\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{state.children.length > 0 ? (\n\t\t\t\t\t<ElOptionGroup label={state.label} disabled={state.disabled}>\n\t\t\t\t\t\t{state.children.map((item) =>\n\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\tresolveComponent(\"FaSelectOption\"),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmoreDetail: props.moreDetail,\n\t\t\t\t\t\t\t\t\tdata: item,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ElOptionGroup>\n\t\t\t\t) : (\n\t\t\t\t\t<ElOption\n\t\t\t\t\t\tclass={{ \"fa-select-dropdown__selector__more-detail\": props.moreDetail && slots.default }}\n\t\t\t\t\t\tvalue={state.value}\n\t\t\t\t\t\tlabel={state.label}\n\t\t\t\t\t\tdisabled={state.disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{slots.default?.(props.data)}\n\t\t\t\t\t</ElOption>\n\t\t\t\t)}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"mappings":";;;;;;AAGuE,SAAA,QAAA,GAAA;CAAA,OAAA,OAAA,MAAA,cAAA,OAAA,UAAA,SAAA,KAAA,CAAA,MAAA,qBAAA,CAAA,QAAA,CAAA;AAAA;AAEvE,IAAA,uBAAe,gBAAgB;CAC9B,MAAM;CACN,OAAO;;EAEN,OAAO;GACN,MAAM,eAAmD;IAAC;IAAQ;IAAQ;IAAS;GAAM,CAAC;GAC1F,SAAS,KAAA;EACV;;EAEA,OAAO;;EAEP,UAAU;GACT,MAAM;GACN,SAAS,KAAA;EACV;;EAEA,UAAU,EACT,MAAM,eAAmC,KAAK,EAC/C;;EAEA,MAAM;GACL,MAAM,eAAiC,MAAM;GAC7C,gBAAgB,CAAC;EAClB;;EAEA,YAAY;CACb;CACA,OAAO,UAGJ;CACH,MAAM,OAAO,EAAE,SAAS;EACvB,MAAM,QAAQ,SAAS;GACtB,OAAO,eAAgC,MAAM,SAAS,MAAM,KAAK,SAAS,EAAE;GAC5E,OAAO,eAAe,MAAM,SAAS,MAAM,KAAK,KAAK;GACrD,UAAU,eAAe,MAAM,YAAY,MAAM,KAAK,YAAY,KAAK;GACvE,UAAU,eAAe,MAAM,YAAY,MAAM,KAAK,YAAY,CAAA,CAAE;EACrE,CAAC;EAED,gBAAU;GAAA,IAAA;GAAA,OAAA,YAAA,UAAA,MAAA,CAEP,MAAM,SAAS,SAAS,IAAC,YAAA,eAAA;IAAA,SACH,MAAM;IAAK,YAAY,MAAM;GAAQ,GAAA,QAAA,QACzD,MAAM,SAAS,KAAK,SACpB,EACC,iBAAiB,gBAAgB,GACjC;IACC,YAAY,MAAM;IAClB,MAAM;GACP,GACA,KACD,CACD,CAAC,IAAA,QAAA,EAAA,eAAA,CAAA,KAAA,EAAA,CAAA,IAAA,YAAA,UAAA;IAAA,SAIM,EAAE,6CAA6C,MAAM,cAAc,MAAM,QAAQ;IAAC,SAClF,MAAM;IAAK,SACX,MAAM;IAAK,YACR,MAAM;GAAQ,GAAA,EAAA,eAAA,CAEvB,MAAM,UAAU,MAAM,IAAI,CAAC,EAAA,CAAA,CAE7B,CAAA;EAAA,CAEF;CACF;AACD,CAAC"}
@@ -50,7 +50,12 @@ export declare const faSelectPageProps: {
50
50
  /** @description 配置选项 */
51
51
  props: {
52
52
  type: import("vue").PropType<SelectComponentProps>;
53
- default: () => Partial<SelectComponentProps>;
53
+ default: () => {
54
+ label: string;
55
+ hide: string;
56
+ disabled: string;
57
+ children: string;
58
+ };
54
59
  };
55
60
  /** @description 请求api */
56
61
  requestApi: {
@@ -149,13 +154,13 @@ export declare const faSelectPageProps: {
149
154
  /** FaSelectPage 的运行时 Emits 定义。 */
150
155
  export declare const faSelectPageEmits: {
151
156
  /** @description v-model 回调 */
152
- "update:modelValue": (value: ElSelectorModelValue) => boolean;
157
+ "update:modelValue": (value: ElSelectorModelValue) => value is string | number | boolean | object | ElSelectorValue[] | null | undefined;
153
158
  /** @description 选中数据改变 */
154
159
  change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean;
155
160
  /** @description v-model:label 回调 */
156
161
  "update:label": (value: string | string[] | null) => boolean;
157
162
  /** @description 数据改变 */
158
- dataChangeCallBack: (data: ElSelectorOutput[]) => boolean;
163
+ dataChange: (data: ElSelectorOutput[]) => boolean;
159
164
  'popup-scroll': ({ scrollTop, scrollLeft }: {
160
165
  scrollTop: number;
161
166
  scrollLeft: number;
@@ -237,7 +242,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
237
242
  /** @description 配置选项 */
238
243
  props: {
239
244
  type: import("vue").PropType<SelectComponentProps>;
240
- default: () => Partial<SelectComponentProps>;
245
+ default: () => {
246
+ label: string;
247
+ hide: string;
248
+ disabled: string;
249
+ children: string;
250
+ };
241
251
  };
242
252
  /** @description 请求api */
243
253
  requestApi: {
@@ -359,13 +369,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
359
369
  clearSelection: () => void;
360
370
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
361
371
  /** @description v-model 回调 */
362
- "update:modelValue": (value: ElSelectorModelValue) => boolean;
372
+ "update:modelValue": (value: ElSelectorModelValue) => value is string | number | boolean | object | ElSelectorValue[] | null | undefined;
363
373
  /** @description 选中数据改变 */
364
374
  change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean;
365
375
  /** @description v-model:label 回调 */
366
376
  "update:label": (value: string | string[] | null) => boolean;
367
377
  /** @description 数据改变 */
368
- dataChangeCallBack: (data: ElSelectorOutput[]) => boolean;
378
+ dataChange: (data: ElSelectorOutput[]) => boolean;
369
379
  'popup-scroll': ({ scrollTop, scrollLeft }: {
370
380
  scrollTop: number;
371
381
  scrollLeft: number;
@@ -424,7 +434,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
424
434
  /** @description 配置选项 */
425
435
  props: {
426
436
  type: import("vue").PropType<SelectComponentProps>;
427
- default: () => Partial<SelectComponentProps>;
437
+ default: () => {
438
+ label: string;
439
+ hide: string;
440
+ disabled: string;
441
+ children: string;
442
+ };
428
443
  };
429
444
  /** @description 请求api */
430
445
  requestApi: {
@@ -528,17 +543,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
528
543
  "onEnd-reached"?: ((direction: import("element-plus").ScrollbarDirection) => any) | undefined;
529
544
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
530
545
  "onUpdate:label"?: ((value: string | string[] | null) => any) | undefined;
531
- onDataChangeCallBack?: ((data: ElSelectorOutput<ElSelectorValue, any>[]) => any) | undefined;
546
+ onDataChange?: ((data: ElSelectorOutput<ElSelectorValue, any>[]) => any) | undefined;
532
547
  "onPopup-scroll"?: ((args_0: {
533
548
  scrollTop: number;
534
549
  scrollLeft: number;
535
550
  }) => any) | undefined;
536
551
  "onRemove-tag"?: ((val: unknown) => any) | undefined;
537
552
  }>, {
553
+ loading: boolean;
538
554
  props: SelectComponentProps;
539
555
  offset: number;
540
556
  placement: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "auto" | "bottom" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "auto" | "bottom" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | null)[], import("element-plus").Placement, unknown>;
541
- loading: boolean;
542
557
  disabled: boolean;
543
558
  modelValue: ElSelectorModelValue;
544
559
  autocomplete: string;
@@ -1,4 +1,5 @@
1
1
  import { addCssUnit } from "../../../utils/dom/index.mjs";
2
+ import { isEqual } from "../../../utils/object/index.mjs";
2
3
  import { useEmits } from "../../../utils/vue/emits.mjs";
3
4
  import { useExpose } from "../../../utils/vue/expose.mjs";
4
5
  import { definePropType, useProps } from "../../../utils/vue/props.mjs";
@@ -6,11 +7,9 @@ import { useRender } from "../../../utils/vue/render.mjs";
6
7
  import { makeSlots } from "../../../utils/vue/slots.mjs";
7
8
  import { withDefineType } from "../../../utils/vue/with.mjs";
8
9
  import { FaSelectOption } from "../../select/index.mjs";
9
- import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, onMounted, reactive, ref, watch } from "vue";
10
+ import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, reactive, shallowRef, useModel, watch } from "vue";
10
11
  import { Search } from "@element-plus/icons-vue";
11
12
  import { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from "element-plus";
12
- import { isArray, isBoolean, isEqual, isNil, isNull, isNumber, isObject, isString } from "lodash-unified";
13
- import { useVModel } from "@vueuse/core";
14
13
  //#region src/components/selectPage/src/selectPage.tsx
15
14
  /** FaSelectPage 的运行时 Props 定义。 */
16
15
  const faSelectPageProps = {
@@ -91,13 +90,13 @@ const faSelectPageProps = {
91
90
  const faSelectPageEmits = {
92
91
  ...selectEmits,
93
92
  /** @description v-model 回调 */
94
- "update:modelValue": (value) => isString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNil(value),
93
+ "update:modelValue": (value) => typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "object" && value !== null || value == null,
95
94
  /** @description 选中数据改变 */
96
95
  change: (_data, _value) => true,
97
96
  /** @description v-model:label 回调 */
98
- "update:label": (value) => isString(value) || isArray(value) || isNull(value),
97
+ "update:label": (value) => typeof value === "string" || Array.isArray(value) || value === null,
99
98
  /** @description 数据改变 */
100
- dataChangeCallBack: (data) => isArray(data)
99
+ dataChange: (data) => Array.isArray(data)
101
100
  };
102
101
  var selectPage_default = defineComponent({
103
102
  name: "FaSelectPage",
@@ -105,8 +104,9 @@ var selectPage_default = defineComponent({
105
104
  emits: faSelectPageEmits,
106
105
  slots: makeSlots(),
107
106
  setup(props, { slots, emit, expose }) {
108
- const selectedLabel = useVModel(props, "label", emit, { passive: true });
109
- const _globalSize = useGlobalSize();
107
+ const selectedLabel = useModel(props, "label");
108
+ const globalSize = useGlobalSize();
109
+ const selectRef = shallowRef(null);
110
110
  const state = reactive({
111
111
  value: withDefineType(),
112
112
  loading: false,
@@ -125,7 +125,6 @@ var selectPage_default = defineComponent({
125
125
  searchValue: void 0,
126
126
  defaultSelectorData: withDefineType()
127
127
  });
128
- const selectRef = ref();
129
128
  let requestVersion = 0;
130
129
  const handleData = (data) => {
131
130
  return data.map((item) => {
@@ -161,7 +160,7 @@ var selectPage_default = defineComponent({
161
160
  state.echo = false;
162
161
  state.totalRows = resData.totalRows ?? 0;
163
162
  state.selectorData = handleData(resData.rows ?? []);
164
- emit("dataChangeCallBack", state.selectorData);
163
+ emit("dataChange", state.selectorData);
165
164
  } catch (error) {
166
165
  if (currentRequestVersion !== requestVersion) return;
167
166
  state.pageIndex = 1;
@@ -194,15 +193,37 @@ var selectPage_default = defineComponent({
194
193
  }
195
194
  emit("visible-change", visible);
196
195
  };
196
+ const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
197
+ const handleChange = (value) => {
198
+ const selectorData = flattenOptions([
199
+ ...state.selectedList,
200
+ ...state.defaultSelectorData ? [state.defaultSelectorData] : [],
201
+ ...state.selectorData
202
+ ]);
203
+ if (props.multiple) {
204
+ const valueList = Array.isArray(value) ? value : [];
205
+ if (valueList.length === 0) {
206
+ emit("change", null, null);
207
+ return;
208
+ }
209
+ emit("change", valueList.map((item) => selectorData.find((option) => option.value !== void 0 && isEqual(option.value, item))).filter((item) => item !== void 0), value);
210
+ return;
211
+ }
212
+ if (value == null || Array.isArray(value)) {
213
+ emit("change", null, null);
214
+ return;
215
+ }
216
+ emit("change", selectorData.find((item) => item.value !== void 0 && isEqual(item.value, value)) ?? null, value);
217
+ };
197
218
  watch(() => props.modelValue, (newValue) => {
198
- if (state.echo && !isNil(newValue)) {
199
- const hasLabel = !isNil(props.label);
219
+ if (state.echo && newValue != null) {
220
+ const hasLabel = props.label != null;
200
221
  if (props.multiple) {
201
222
  if (!Array.isArray(newValue)) {
202
223
  console.error("[Fast:FaSelectPage]", "当启用 multiple 时,传入的 modelValue 必须是 Array。");
203
224
  return;
204
225
  }
205
- if (hasLabel && !isArray(props.label)) {
226
+ if (hasLabel && !Array.isArray(props.label)) {
206
227
  console.error("[Fast:FaSelectPage]", "当启用 multiple 时,传入的 modelValue:label 必须是 Array。");
207
228
  return;
208
229
  }
@@ -219,7 +240,7 @@ var selectPage_default = defineComponent({
219
240
  console.error("[Fast:FaSelectPage]", "当禁用 multiple 时,传入的 modelValue 不能是 Array。");
220
241
  return;
221
242
  }
222
- if (hasLabel && isArray(props.label)) {
243
+ if (hasLabel && Array.isArray(props.label)) {
223
244
  console.error("[Fast:FaSelectPage]", "当禁用 multiple 时,传入的 modelValue:label 不能是 Array。");
224
245
  return;
225
246
  }
@@ -231,28 +252,6 @@ var selectPage_default = defineComponent({
231
252
  }
232
253
  state.value = newValue;
233
254
  }, { immediate: true });
234
- const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
235
- const handleChange = (value) => {
236
- const selectorData = flattenOptions([
237
- ...state.selectedList,
238
- ...state.defaultSelectorData ? [state.defaultSelectorData] : [],
239
- ...state.selectorData
240
- ]);
241
- if (props.multiple) {
242
- const valueList = Array.isArray(value) ? value : [];
243
- if (valueList.length === 0) {
244
- emit("change", null, null);
245
- return;
246
- }
247
- emit("change", valueList.map((item) => selectorData.find((option) => option.value !== void 0 && isEqual(option.value, item))).filter((item) => item !== void 0), value);
248
- return;
249
- }
250
- if (isNil(value) || Array.isArray(value)) {
251
- emit("change", null, null);
252
- return;
253
- }
254
- emit("change", selectorData.find((item) => item.value !== void 0 && isEqual(item.value, value)) ?? null, value);
255
- };
256
255
  watch([() => state.value, () => state.selectorData], ([value]) => {
257
256
  const selectorData = flattenOptions([
258
257
  ...state.selectedList,
@@ -271,7 +270,7 @@ var selectPage_default = defineComponent({
271
270
  });
272
271
  return;
273
272
  }
274
- if (isNil(value) || Array.isArray(value)) {
273
+ if (value == null || Array.isArray(value)) {
275
274
  state.selectedList = [];
276
275
  selectedLabel.value = null;
277
276
  return;
@@ -284,13 +283,11 @@ var selectPage_default = defineComponent({
284
283
  flush: "sync",
285
284
  immediate: true
286
285
  });
287
- onMounted(() => {
288
- watch(() => props.initParam, (newValue, oldValue) => {
289
- if (!isEqual(newValue, oldValue)) {
290
- state.nextRefresh = true;
291
- if (!isNil(state.value)) handleModelValueUpdate(props.multiple ? [] : void 0);
292
- }
293
- });
286
+ watch(() => props.initParam, (newValue, oldValue) => {
287
+ if (!isEqual(newValue, oldValue)) {
288
+ state.nextRefresh = true;
289
+ if (state.value != null) handleModelValueUpdate(props.multiple ? [] : void 0);
290
+ }
294
291
  });
295
292
  const elSelectProps = useProps(props, selectProps, [
296
293
  "modelValue",
@@ -304,9 +301,9 @@ var selectPage_default = defineComponent({
304
301
  "visible-change"
305
302
  ]);
306
303
  const elPopperClass = computed(() => [
307
- `fa-select-page-dropdown fa-select-page-dropdown-${_globalSize.value}`,
304
+ `fa-select-page-dropdown fa-select-page-dropdown-${globalSize.value}`,
308
305
  props.popperClass,
309
- props.moreDetail && `fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${_globalSize.value}`
306
+ props.moreDetail && `fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${globalSize.value}`
310
307
  ]);
311
308
  useRender(() => createVNode(ElSelect, mergeProps(elSelectProps.value, elSelectEmits.value, {
312
309
  "ref": selectRef,
@@ -337,15 +334,11 @@ var selectPage_default = defineComponent({
337
334
  "modelValue": state.searchValue,
338
335
  "modelModifiers": { "trim": true },
339
336
  "onUpdate:modelValue": ($event) => state.searchValue = $event,
340
- "onKeyup": (event) => {
341
- if (event.key === "Enter") loadData(1);
342
- }
337
+ "onKeyup": (event) => event.key === "Enter" && loadData(1)
343
338
  }, { append: () => createVNode(ElButton, {
344
339
  "loading": state.loading,
345
340
  "icon": Search,
346
- "onClick": () => {
347
- loadData(1);
348
- }
341
+ "onClick": () => loadData(1)
349
342
  }, null) }),
350
343
  slots.header?.()
351
344
  ])],
@@ -1 +1 @@
1
- {"version":3,"file":"selectPage.mjs","names":["update:modelValue","update:label"],"sources":["../../../../src/components/selectPage/src/selectPage.tsx"],"sourcesContent":["import { useVModel } from \"@vueuse/core\";\nimport { Fragment, computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from \"element-plus\";\nimport { isArray, isBoolean, isEqual, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport { addCssUnit, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport { FaSelectOption } from \"../../select\";\nimport type { VNode } from \"vue\";\nimport type { ElSelectorModelValue, ElSelectorOutput, ElSelectorValue } from \"../../select\";\nimport type { SelectComponentProps } from \"../../select/src/select\";\nimport type { PagedInput, PagedResult } from \"../../table\";\n\n/** FaSelectPage 的运行时 Props 定义。 */\nexport const faSelectPageProps = {\n\t...selectProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<ElSelectorModelValue>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[] | null>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<ElSelectorOutput>>>(Function),\n\t\trequired: true as const,\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n};\n\n/** FaSelectPage 的运行时 Emits 定义。 */\nexport const faSelectPageEmits = {\n\t...selectEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: ElSelectorModelValue): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNil(value),\n\t/** @description 选中数据改变 */\n\tchange: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue): boolean => true,\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[] | null): boolean => isString(value) || isArray(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[]): boolean => isArray(data),\n};\n\n/** FaSelectPage 的插槽参数。 */\nexport interface FaSelectPageSlots extends Record<string, unknown> {\n\t/** @description FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n}\n\nexport default defineComponent({\n\tname: \"FaSelectPage\",\n\tprops: faSelectPageProps,\n\temits: faSelectPageEmits,\n\tslots: makeSlots<FaSelectPageSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<ElSelectorModelValue>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 选中的数据 */\n\t\t\tselectedList: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 15,\n\t\t\ttotalRows: 0,\n\t\t\tsearchValue: undefined,\n\t\t\tdefaultSelectorData: withDefineType<ElSelectorOutput | undefined>(),\n\t\t});\n\n\t\tconst selectRef = ref<InstanceType<typeof ElSelect>>();\n\t\tlet requestVersion = 0;\n\n\t\tconst handleData = (data: ElSelectorOutput[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t.map((item): ElSelectorOutput => {\n\t\t\t\t\tconst value: unknown = item[props.valueKey];\n\t\t\t\t\tconst label: unknown = typeof props.props.label === \"function\" ? props.props.label(item) : item[props.props.label ?? \"label\"];\n\t\t\t\t\tconst hide: unknown = typeof props.props.hide === \"function\" ? props.props.hide(item) : item[props.props.hide ?? \"hide\"];\n\t\t\t\t\tconst disabled: unknown =\n\t\t\t\t\t\ttypeof props.props.disabled === \"function\" ? props.props.disabled(item) : item[props.props.disabled ?? \"disabled\"];\n\t\t\t\t\tconst children: unknown = item[props.props.children ?? \"children\"];\n\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"object\")\n\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tchildren: Array.isArray(children) ? handleData(children as ElSelectorOutput[]) : [],\n\t\t\t\t\t\tdisabled: typeof disabled === \"boolean\" ? disabled : undefined,\n\t\t\t\t\t\thide: typeof hide === \"boolean\" ? hide : undefined,\n\t\t\t\t\t\tlabel: typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter((item) => item.hide !== true);\n\t\t};\n\n\t\tconst loadData = async (pageIndex?: number): Promise<void> => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tstate.loading = true;\n\t\t\tstate.pageIndex = pageIndex ?? state.pageIndex;\n\t\t\tconst params: PagedInput = {\n\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\tpageIndex: state.pageIndex,\n\t\t\t\tpageSize: state.pageSize,\n\t\t\t\tsearchValue: state.searchValue,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.totalRows = resData.totalRows ?? 0;\n\t\t\t\tstate.selectorData = handleData(resData.rows ?? []);\n\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t} catch (error) {\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\tstate.pageIndex = 1;\n\t\t\t\tstate.totalRows = 0;\n\t\t\t\tstate.selectorData = [];\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t}\n\t\t};\n\n\t\tconst pageIndexModel = computed({\n\t\t\tget: () => state.pageIndex,\n\t\t\tset: (pageIndex: number) => {\n\t\t\t\tloadData(pageIndex);\n\t\t\t},\n\t\t});\n\n\t\tconst handleModelValueUpdate = (value: ElSelectorModelValue): void => {\n\t\t\tstate.value = value;\n\t\t\temit(\"update:modelValue\", value);\n\t\t};\n\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\tawait loadData();\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\tif (!Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue:label 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectedList = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => {\n\t\t\t\t\t\t\t\tconst value: unknown = item;\n\t\t\t\t\t\t\t\tconst label: unknown = Array.isArray(props.label) ? props.label[index] : undefined;\n\t\t\t\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t\t\t\t(typeof value === \"string\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"number\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"boolean\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"object\")\n\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t\t\t\t\tlabel: hasLabel && typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue:label 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.defaultSelectorData = {\n\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\tlabel: typeof props.label === \"string\" ? props.label : undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tconst flattenOptions = (data: ElSelectorOutput[]): ElSelectorOutput[] =>\n\t\t\tdata.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);\n\n\t\tconst handleChange = (value?: ElSelectorModelValue): void => {\n\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t...state.selectedList,\n\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t...state.selectorData,\n\t\t\t]);\n\t\t\tif (props.multiple) {\n\t\t\t\tconst valueList = Array.isArray(value) ? value : [];\n\t\t\t\tif (valueList.length === 0) {\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = valueList\n\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t.filter((item): item is ElSelectorOutput => item !== undefined);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isNil(value) || Array.isArray(value)) {\n\t\t\t\temit(\"change\", null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\temit(\"change\", data ?? null, value);\n\t\t};\n\n\t\twatch(\n\t\t\t[() => state.value, () => state.selectorData],\n\t\t\t([value]) => {\n\t\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t\t...state.selectedList,\n\t\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t\t...state.selectorData,\n\t\t\t\t]);\n\n\t\t\t\tif (props.multiple) {\n\t\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.selectedList = value\n\t\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t\t.filter((item): item is ElSelectorOutput => item !== undefined);\n\t\t\t\t\tselectedLabel.value = value.map((item, index) => {\n\t\t\t\t\t\tconst data = state.selectedList.find((option) => option.value !== undefined && isEqual(option.value, item));\n\n\t\t\t\t\t\treturn data?.label ?? (Array.isArray(props.label) ? (props.label[index] ?? \"\") : \"\");\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (isNil(value) || Array.isArray(value)) {\n\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\t\tstate.selectedList = data ? [data] : [];\n\t\t\t\tselectedLabel.value = data?.label ?? (typeof props.label === \"string\" ? props.label : null);\n\t\t\t},\n\t\t\t{\n\t\t\t\tdeep: true,\n\t\t\t\tflush: \"sync\",\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tonMounted(() => {\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleModelValueUpdate(props.multiple ? [] : undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\n\t\tconst elSelectProps = useProps(props, selectProps, [\"modelValue\", \"popperClass\", \"loading\", \"props\"]);\n\t\tconst elSelectEmits = useEmits(selectEmits, emit, [\"update:modelValue\", \"change\", \"visible-change\"]);\n\t\tconst elPopperClass = computed(() => [\n\t\t\t`fa-select-page-dropdown fa-select-page-dropdown-${_globalSize.value}`,\n\t\t\tprops.popperClass,\n\t\t\tprops.moreDetail && `fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${_globalSize.value}`,\n\t\t]);\n\n\t\tuseRender(() => (\n\t\t\t<ElSelect\n\t\t\t\t{...elSelectProps.value}\n\t\t\t\t{...elSelectEmits.value}\n\t\t\t\tref={selectRef}\n\t\t\t\tclass=\"fa-select-page\"\n\t\t\t\tpopperClass={elPopperClass.value}\n\t\t\t\tstyle={{ width: addCssUnit(props.width) }}\n\t\t\t\tmodelValue={state.value}\n\t\t\t\tonUpdate:modelValue={handleModelValueUpdate}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tloading={state.loading}\n\t\t\t\tonVisible-change={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: (): VNode[] =>\n\t\t\t\t\t\tstate.selectorData.map((item) => (\n\t\t\t\t\t\t\t<FaSelectOption vSlots={{ default: slots.default }} data={item} moreDetail={props.moreDetail} />\n\t\t\t\t\t\t)),\n\t\t\t\t\theader: (): VNode[] => [\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{state.defaultSelectorData?.value !== undefined && (\n\t\t\t\t\t\t\t\t<ElOption\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__default-selector\"\n\t\t\t\t\t\t\t\t\tvalue={state.defaultSelectorData.value}\n\t\t\t\t\t\t\t\t\tlabel={state.defaultSelectorData.label ?? \"\"}\n\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span>{state.defaultSelectorData.label}</span>\n\t\t\t\t\t\t\t\t\t<span>Default</span>\n\t\t\t\t\t\t\t\t</ElOption>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__search-input\"\n\t\t\t\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"请输入关键字搜索\"\n\t\t\t\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\t\t\t\tonKeyup={(event: KeyboardEvent) => {\n\t\t\t\t\t\t\t\t\t\tif (event.key === \"Enter\") {\n\t\t\t\t\t\t\t\t\t\t\tloadData(1);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\tappend: () => (\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tloadData(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t</ElInput>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t{slots.header?.()}\n\t\t\t\t\t\t</Fragment>,\n\t\t\t\t\t],\n\t\t\t\t\tfooter: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<ElPagination\n\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__pagination\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvModel:currentPage={pageIndexModel.value}\n\t\t\t\t\t\t\t\tpageSize={state.pageSize}\n\t\t\t\t\t\t\t\ttotal={state.totalRows}\n\t\t\t\t\t\t\t\tlayout=\"prev, pager, next, total\"\n\t\t\t\t\t\t\t\tpagerCount={5}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{slots.footer?.()}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix?.() ?? [] }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty?.() ?? [] }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag?.() ?? [] }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading?.() ?? [] }),\n\t\t\t\t\t...(props.multiple\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlabel: ({ label: _label, value }: { label: string; value: string | number | boolean | object }): VNode[] => {\n\t\t\t\t\t\t\t\t\tconst selectedData = state.selectedList.find((f) => f.value === value);\n\t\t\t\t\t\t\t\t\tif (slots.label) {\n\t\t\t\t\t\t\t\t\t\treturn slots.label({ label: selectedData?.label ?? _label, value: selectedData?.value ?? value });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn selectedData ? [<span class=\"el-select__tags-text\">{selectedData.label}</span>] : [];\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: slots.label && {\n\t\t\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\t\t\tslots.label?.({ label, value }) ?? [],\n\t\t\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 选中的数据 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: Exclude<ElSelectorModelValue, null | undefined>) => handleModelValueUpdate(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleModelValueUpdate(props.multiple ? [] : undefined),\n\t\t});\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectPage.mjs","names":["update:modelValue","update:label"],"sources":["../../../../src/components/selectPage/src/selectPage.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, reactive, shallowRef, useModel, watch } from \"vue\";\nimport { Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport { FaSelectOption } from \"../../select\";\nimport type { ComponentObjectPropsOptions } from \"vue\";\nimport type { ElSelectorModelValue, ElSelectorOutput, ElSelectorValue } from \"../../select\";\nimport type { SelectComponentProps } from \"../../select/src/select\";\nimport type { PagedInput, PagedResult } from \"../../table\";\n\n/** FaSelectPage 的运行时 Props 定义。 */\nexport const faSelectPageProps = {\n\t...selectProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<ElSelectorModelValue>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[] | null>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: () => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<ElSelectorOutput>>>(Function),\n\t\trequired: true,\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n} satisfies ComponentObjectPropsOptions;\n\n/** FaSelectPage 的运行时 Emits 定义。 */\nexport const faSelectPageEmits = {\n\t...selectEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: ElSelectorModelValue) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** @description 选中数据改变 */\n\tchange: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => true,\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[] | null) => typeof value === \"string\" || Array.isArray(value) || value === null,\n\t/** @description 数据改变 */\n\tdataChange: (data: ElSelectorOutput[]) => Array.isArray(data),\n};\n\n/** FaSelectPage 的插槽参数。 */\nexport interface FaSelectPageSlots extends Record<string, unknown> {\n\t/** @description FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n}\n\nexport default defineComponent({\n\tname: \"FaSelectPage\",\n\tprops: faSelectPageProps,\n\temits: faSelectPageEmits,\n\tslots: makeSlots<FaSelectPageSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst selectRef = shallowRef<InstanceType<typeof ElSelect> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<ElSelectorModelValue>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 选中的数据 */\n\t\t\tselectedList: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 15,\n\t\t\ttotalRows: 0,\n\t\t\tsearchValue: undefined,\n\t\t\tdefaultSelectorData: withDefineType<ElSelectorOutput | undefined>(),\n\t\t});\n\n\t\tlet requestVersion = 0;\n\n\t\tconst handleData = (data: ElSelectorOutput[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst value: unknown = item[props.valueKey];\n\t\t\t\t\tconst label: unknown = typeof props.props.label === \"function\" ? props.props.label(item) : item[props.props.label ?? \"label\"];\n\t\t\t\t\tconst hide: unknown = typeof props.props.hide === \"function\" ? props.props.hide(item) : item[props.props.hide ?? \"hide\"];\n\t\t\t\t\tconst disabled: unknown =\n\t\t\t\t\t\ttypeof props.props.disabled === \"function\" ? props.props.disabled(item) : item[props.props.disabled ?? \"disabled\"];\n\t\t\t\t\tconst children: unknown = item[props.props.children ?? \"children\"];\n\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"object\")\n\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tchildren: Array.isArray(children) ? handleData(children as ElSelectorOutput[]) : [],\n\t\t\t\t\t\tdisabled: typeof disabled === \"boolean\" ? disabled : undefined,\n\t\t\t\t\t\thide: typeof hide === \"boolean\" ? hide : undefined,\n\t\t\t\t\t\tlabel: typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter((item) => item.hide !== true);\n\t\t};\n\n\t\tconst loadData = async (pageIndex?: number) => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tstate.loading = true;\n\t\t\tstate.pageIndex = pageIndex ?? state.pageIndex;\n\t\t\tconst params: PagedInput = {\n\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\tpageIndex: state.pageIndex,\n\t\t\t\tpageSize: state.pageSize,\n\t\t\t\tsearchValue: state.searchValue,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.totalRows = resData.totalRows ?? 0;\n\t\t\t\tstate.selectorData = handleData(resData.rows ?? []);\n\t\t\t\temit(\"dataChange\", state.selectorData);\n\t\t\t} catch (error) {\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\tstate.pageIndex = 1;\n\t\t\t\tstate.totalRows = 0;\n\t\t\t\tstate.selectorData = [];\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t}\n\t\t};\n\n\t\tconst pageIndexModel = computed({\n\t\t\tget: () => state.pageIndex,\n\t\t\tset: (pageIndex: number) => {\n\t\t\t\tloadData(pageIndex);\n\t\t\t},\n\t\t});\n\n\t\tconst handleModelValueUpdate = (value: ElSelectorModelValue) => {\n\t\t\tstate.value = value;\n\t\t\temit(\"update:modelValue\", value);\n\t\t};\n\n\t\tconst handleVisibleChange = async (visible: boolean) => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\tawait loadData();\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 visible-change,需要保持原始名称透传。\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\tconst flattenOptions = (data: ElSelectorOutput[]): ElSelectorOutput[] =>\n\t\t\tdata.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);\n\n\t\tconst handleChange = (value?: ElSelectorModelValue) => {\n\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t...state.selectedList,\n\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t...state.selectorData,\n\t\t\t]);\n\t\t\tif (props.multiple) {\n\t\t\t\tconst valueList = Array.isArray(value) ? value : [];\n\t\t\t\tif (valueList.length === 0) {\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = valueList\n\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t.filter((item) => item !== undefined);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (value == null || Array.isArray(value)) {\n\t\t\t\temit(\"change\", null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\temit(\"change\", data ?? null, value);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && newValue != null) {\n\t\t\t\t\tconst hasLabel = props.label != null;\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\tif (!Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !Array.isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue:label 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectedList = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => {\n\t\t\t\t\t\t\t\tconst value: unknown = item;\n\t\t\t\t\t\t\t\tconst label: unknown = Array.isArray(props.label) ? props.label[index] : undefined;\n\t\t\t\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t\t\t\t(typeof value === \"string\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"number\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"boolean\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"object\")\n\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t\t\t\t\tlabel: hasLabel && typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && Array.isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue:label 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.defaultSelectorData = {\n\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\tlabel: typeof props.label === \"string\" ? props.label : undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t[() => state.value, () => state.selectorData],\n\t\t\t([value]) => {\n\t\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t\t...state.selectedList,\n\t\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t\t...state.selectorData,\n\t\t\t\t]);\n\n\t\t\t\tif (props.multiple) {\n\t\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.selectedList = value\n\t\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t\t.filter((item) => item !== undefined);\n\t\t\t\t\tselectedLabel.value = value.map((item, index) => {\n\t\t\t\t\t\tconst data = state.selectedList.find((option) => option.value !== undefined && isEqual(option.value, item));\n\n\t\t\t\t\t\treturn data?.label ?? (Array.isArray(props.label) ? (props.label[index] ?? \"\") : \"\");\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (value == null || Array.isArray(value)) {\n\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\t\tstate.selectedList = data ? [data] : [];\n\t\t\t\tselectedLabel.value = data?.label ?? (typeof props.label === \"string\" ? props.label : null);\n\t\t\t},\n\t\t\t{\n\t\t\t\tdeep: true,\n\t\t\t\tflush: \"sync\",\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.initParam,\n\t\t\t(newValue, oldValue) => {\n\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\tif (state.value != null) {\n\t\t\t\t\t\thandleModelValueUpdate(props.multiple ? [] : undefined);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tconst elSelectProps = useProps(props, selectProps, [\"modelValue\", \"popperClass\", \"loading\", \"props\"]);\n\t\tconst elSelectEmits = useEmits(selectEmits, emit, [\"update:modelValue\", \"change\", \"visible-change\"]);\n\t\tconst elPopperClass = computed(() => [\n\t\t\t`fa-select-page-dropdown fa-select-page-dropdown-${globalSize.value}`,\n\t\t\tprops.popperClass,\n\t\t\tprops.moreDetail && `fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${globalSize.value}`,\n\t\t]);\n\n\t\tuseRender(() => (\n\t\t\t<ElSelect\n\t\t\t\t{...elSelectProps.value}\n\t\t\t\t{...elSelectEmits.value}\n\t\t\t\tref={selectRef}\n\t\t\t\tclass=\"fa-select-page\"\n\t\t\t\tpopperClass={elPopperClass.value}\n\t\t\t\tstyle={{ width: addCssUnit(props.width) }}\n\t\t\t\tmodelValue={state.value}\n\t\t\t\tonUpdate:modelValue={handleModelValueUpdate}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tloading={state.loading}\n\t\t\t\tonVisible-change={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\tstate.selectorData.map((item) => (\n\t\t\t\t\t\t\t<FaSelectOption vSlots={{ default: slots.default }} data={item} moreDetail={props.moreDetail} />\n\t\t\t\t\t\t)),\n\t\t\t\t\theader: () => [\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{state.defaultSelectorData?.value !== undefined && (\n\t\t\t\t\t\t\t\t<ElOption\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__default-selector\"\n\t\t\t\t\t\t\t\t\tvalue={state.defaultSelectorData.value}\n\t\t\t\t\t\t\t\t\tlabel={state.defaultSelectorData.label ?? \"\"}\n\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span>{state.defaultSelectorData.label}</span>\n\t\t\t\t\t\t\t\t\t<span>Default</span>\n\t\t\t\t\t\t\t\t</ElOption>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__search-input\"\n\t\t\t\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"请输入关键字搜索\"\n\t\t\t\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\t\t\t\tonKeyup={(event: KeyboardEvent) => event.key === \"Enter\" && loadData(1)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\tappend: () => <ElButton loading={state.loading} icon={Search} onClick={() => loadData(1)} />,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t</ElInput>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t{slots.header?.()}\n\t\t\t\t\t\t</Fragment>,\n\t\t\t\t\t],\n\t\t\t\t\tfooter: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<ElPagination\n\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__pagination\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvModel:currentPage={pageIndexModel.value}\n\t\t\t\t\t\t\t\tpageSize={state.pageSize}\n\t\t\t\t\t\t\t\ttotal={state.totalRows}\n\t\t\t\t\t\t\t\tlayout=\"prev, pager, next, total\"\n\t\t\t\t\t\t\t\tpagerCount={5}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{slots.footer?.()}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(slots.prefix && { prefix: () => slots.prefix?.() ?? [] }),\n\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t...(slots.tag && { tag: () => slots.tag?.() ?? [] }),\n\t\t\t\t\t...(slots.loading && { loading: () => slots.loading?.() ?? [] }),\n\t\t\t\t\t...(props.multiple\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlabel: ({ label: _label, value }: { label: string; value: string | number | boolean | object }) => {\n\t\t\t\t\t\t\t\t\tconst selectedData = state.selectedList.find((f) => f.value === value);\n\t\t\t\t\t\t\t\t\tif (slots.label) {\n\t\t\t\t\t\t\t\t\t\treturn slots.label({ label: selectedData?.label ?? _label, value: selectedData?.value ?? value });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn selectedData ? [<span class=\"el-select__tags-text\">{selectedData.label}</span>] : [];\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: slots.label && {\n\t\t\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }) =>\n\t\t\t\t\t\t\t\t\tslots.label?.({ label, value }) ?? [],\n\t\t\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 选中的数据 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: Exclude<ElSelectorModelValue, null | undefined>) => handleModelValueUpdate(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleModelValueUpdate(props.multiple ? [] : undefined),\n\t\t});\n\t},\n});\n"],"mappings":"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"}