fast-element-plus 2.0.18 → 2.0.20
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.
- package/CHANGELOG.md +52 -19
- package/CONTRIBUTING.md +3 -4
- package/README.md +80 -27
- package/README.zh.md +66 -27
- package/dist/component.d.ts +123 -123
- package/dist/components/avatar/src/avatar.d.ts +26 -26
- package/dist/components/avatar/src/avatar.mjs +10 -10
- package/dist/components/avatar/src/avatar.mjs.map +1 -1
- package/dist/components/button/src/button.d.ts +32 -27
- package/dist/components/button/src/button.mjs +57 -36
- package/dist/components/button/src/button.mjs.map +1 -1
- package/dist/components/carNumber/src/carNumber.d.ts +8 -8
- package/dist/components/carNumber/src/carNumber.mjs +5 -5
- package/dist/components/carNumber/src/carNumber.mjs.map +1 -1
- package/dist/components/contextMenu/src/contextMenu.d.ts +7 -7
- package/dist/components/contextMenu/src/contextMenu.mjs +7 -7
- package/dist/components/contextMenu/src/contextMenu.mjs.map +1 -1
- package/dist/components/contextMenu/src/contextMenu.type.d.ts +7 -7
- package/dist/components/dialog/src/dialog.d.ts +76 -76
- package/dist/components/dialog/src/dialog.mjs +34 -34
- package/dist/components/dialog/src/dialog.mjs.map +1 -1
- package/dist/components/drawer/src/drawer.d.ts +59 -59
- package/dist/components/drawer/src/drawer.mjs +27 -27
- package/dist/components/drawer/src/drawer.mjs.map +1 -1
- package/dist/components/form/src/form.d.ts +30 -30
- package/dist/components/form/src/form.mjs +16 -16
- package/dist/components/form/src/form.mjs.map +1 -1
- package/dist/components/form/src/formItem.d.ts +30 -30
- package/dist/components/form/src/formItem.mjs +13 -13
- package/dist/components/form/src/formItem.mjs.map +1 -1
- package/dist/components/formItemTip/src/formItemTip.d.ts +9 -9
- package/dist/components/formItemTip/src/formItemTip.mjs +3 -3
- package/dist/components/formItemTip/src/formItemTip.mjs.map +1 -1
- package/dist/components/icon/src/icon.d.ts +10 -10
- package/dist/components/icon/src/icon.mjs +4 -4
- package/dist/components/icon/src/icon.mjs.map +1 -1
- package/dist/components/iconSelector/src/iconSelector.d.ts +6 -6
- package/dist/components/iconSelector/src/iconSelector.mjs +4 -4
- package/dist/components/iconSelector/src/iconSelector.mjs.map +1 -1
- package/dist/components/image/src/image.d.ts +36 -36
- package/dist/components/image/src/image.mjs +11 -11
- package/dist/components/image/src/image.mjs.map +1 -1
- package/dist/components/inputDialogPage/src/inputDialogPage.d.ts +37 -37
- package/dist/components/inputDialogPage/src/inputDialogPage.mjs +16 -16
- package/dist/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
- package/dist/components/layoutGrid/src/layoutGrid.d.ts +12 -12
- package/dist/components/layoutGrid/src/layoutGrid.mjs +6 -6
- package/dist/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
- package/dist/components/layoutGrid/src/layoutGridItem.d.ts +19 -19
- package/dist/components/layoutGrid/src/layoutGridItem.mjs +9 -9
- package/dist/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
- package/dist/components/select/src/select.d.ts +89 -89
- package/dist/components/select/src/select.mjs +30 -30
- package/dist/components/select/src/select.mjs.map +1 -1
- package/dist/components/select/src/selectOption.d.ts +13 -13
- package/dist/components/select/src/selectOption.mjs +6 -6
- package/dist/components/select/src/selectOption.mjs.map +1 -1
- package/dist/components/selectPage/src/selectPage.d.ts +76 -76
- package/dist/components/selectPage/src/selectPage.mjs +50 -36
- package/dist/components/selectPage/src/selectPage.mjs.map +1 -1
- package/dist/components/selectV2/index.mjs +2 -1
- package/dist/components/selectV2/index.mjs.map +1 -1
- package/dist/components/selectV2/src/selectV2.d.ts +161 -852
- package/dist/components/selectV2/src/selectV2.mjs +32 -340
- package/dist/components/selectV2/src/selectV2.mjs.map +1 -1
- package/dist/components/table/index.mjs +3 -2
- package/dist/components/table/index.mjs.map +1 -1
- package/dist/components/table/src/page.type.d.ts +1 -1
- package/dist/components/table/src/table.d.ts +211 -744
- package/dist/components/table/src/table.mjs +111 -307
- package/dist/components/table/src/table.mjs.map +1 -1
- package/dist/components/table/src/table.state.d.ts +3 -3
- package/dist/components/table/src/table.type.d.ts +1 -9
- package/dist/components/table/src/table.type.mjs.map +1 -1
- package/dist/components/table/src/tableColumn.d.ts +102 -399
- package/dist/components/table/src/tableColumn.mjs +28 -185
- package/dist/components/table/src/tableColumn.mjs.map +1 -1
- package/dist/components/table/src/tableColumnSettingDialog.d.ts +4 -4
- package/dist/components/table/src/tableColumnSettingDialog.mjs +3 -3
- package/dist/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
- package/dist/components/table/src/tablePagination.d.ts +4 -4
- package/dist/components/table/src/tablePagination.mjs +3 -3
- package/dist/components/table/src/tablePagination.mjs.map +1 -1
- package/dist/components/table/src/tableSearchForm.d.ts +12 -12
- package/dist/components/table/src/tableSearchForm.mjs +6 -6
- package/dist/components/table/src/tableSearchForm.mjs.map +1 -1
- package/dist/components/table/src/tableSearchFormItem.d.ts +4 -4
- package/dist/components/table/src/tableSearchFormItem.mjs +2 -2
- package/dist/components/table/src/tableSearchFormItem.mjs.map +1 -1
- package/dist/components/table/src/useTable.d.ts +1 -0
- package/dist/components/table/src/useTable.mjs +109 -65
- package/dist/components/table/src/useTable.mjs.map +1 -1
- package/dist/components/table/utils/table.d.ts +4 -4
- package/dist/components/table/utils/table.mjs +4 -4
- package/dist/components/table/utils/table.mjs.map +1 -1
- package/dist/components/tree/src/tree.d.ts +87 -87
- package/dist/components/tree/src/tree.mjs +48 -48
- package/dist/components/tree/src/tree.mjs.map +1 -1
- package/dist/components/treeSelect/src/treeSelect.d.ts +139 -133
- package/dist/components/treeSelect/src/treeSelect.mjs +57 -57
- package/dist/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/dist/components/upload/src/upload.d.ts +36 -36
- package/dist/components/upload/src/upload.mjs +19 -19
- package/dist/components/upload/src/upload.mjs.map +1 -1
- package/dist/components/uploadImage/src/uploadImage.d.ts +47 -47
- package/dist/components/uploadImage/src/uploadImage.mjs +24 -28
- package/dist/components/uploadImage/src/uploadImage.mjs.map +1 -1
- package/dist/components/uploadImages/src/uploadImages.d.ts +41 -41
- package/dist/components/uploadImages/src/uploadImages.mjs +21 -21
- package/dist/components/uploadImages/src/uploadImages.mjs.map +1 -1
- package/dist/directives/click-debounce/index.mjs +19 -11
- package/dist/directives/click-debounce/index.mjs.map +1 -1
- package/dist/directives/click-throttle/index.d.ts +4 -2
- package/dist/directives/click-throttle/index.mjs +21 -11
- package/dist/directives/click-throttle/index.mjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.global.min.js +3 -3
- package/dist/index.global.min.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/internal/props.d.ts +685 -0
- package/dist/internal/props.mjs +683 -0
- package/dist/internal/props.mjs.map +1 -0
- package/dist/utils/loading-tasks.d.ts +5 -0
- package/dist/utils/loading-tasks.mjs +32 -0
- package/dist/utils/loading-tasks.mjs.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/package.json +5 -10
|
@@ -7,44 +7,44 @@ import { useRender } from "../../../utils/vue/render.mjs";
|
|
|
7
7
|
import { makeSlots } from "../../../utils/vue/slots.mjs";
|
|
8
8
|
import { withDefineType } from "../../../utils/vue/with.mjs";
|
|
9
9
|
import { FaSelectOption } from "../../select/index.mjs";
|
|
10
|
-
import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, reactive, shallowRef, useModel, watch } from "vue";
|
|
10
|
+
import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, onBeforeUnmount, reactive, shallowRef, toRef, useModel, watch } from "vue";
|
|
11
11
|
import { Search } from "@element-plus/icons-vue";
|
|
12
12
|
import { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from "element-plus";
|
|
13
13
|
//#region src/components/selectPage/src/selectPage.tsx
|
|
14
|
-
/** FaSelectPage 的运行时 Props
|
|
14
|
+
/** FaSelectPage 的运行时 Props 定义 */
|
|
15
15
|
const faSelectPageProps = {
|
|
16
16
|
...selectProps,
|
|
17
|
-
/**
|
|
17
|
+
/** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */
|
|
18
18
|
disabled: {
|
|
19
19
|
type: Boolean,
|
|
20
20
|
default: void 0
|
|
21
21
|
},
|
|
22
|
-
/**
|
|
22
|
+
/** 远程数据加载时显示的文本;默认显示“加载中...”。 */
|
|
23
23
|
loadingText: {
|
|
24
24
|
type: String,
|
|
25
25
|
default: "加载中..."
|
|
26
26
|
},
|
|
27
|
-
/**
|
|
27
|
+
/** 筛选结果为空时显示的文本,也可通过 empty 插槽替换。 */
|
|
28
28
|
noMatchText: {
|
|
29
29
|
type: String,
|
|
30
30
|
default: "暂无匹配的数据"
|
|
31
31
|
},
|
|
32
|
-
/**
|
|
32
|
+
/** 没有可选数据时显示的文本,也可通过 empty 插槽替换。 */
|
|
33
33
|
noDataText: {
|
|
34
34
|
type: String,
|
|
35
35
|
default: "暂无数据"
|
|
36
36
|
},
|
|
37
|
-
/**
|
|
37
|
+
/** 多选时是否折叠已选标签 */
|
|
38
38
|
collapseTags: {
|
|
39
39
|
type: Boolean,
|
|
40
40
|
default: true
|
|
41
41
|
},
|
|
42
|
-
/**
|
|
42
|
+
/** 悬停折叠标签时是否显示全部选项;仅在 collapse-tags 开启时有效。 */
|
|
43
43
|
collapseTagsTooltip: {
|
|
44
44
|
type: Boolean,
|
|
45
45
|
default: true
|
|
46
46
|
},
|
|
47
|
-
/**
|
|
47
|
+
/** v-model 绑定值 */
|
|
48
48
|
modelValue: {
|
|
49
49
|
type: definePropType([
|
|
50
50
|
String,
|
|
@@ -55,16 +55,16 @@ const faSelectPageProps = {
|
|
|
55
55
|
]),
|
|
56
56
|
default: void 0
|
|
57
57
|
},
|
|
58
|
-
/**
|
|
58
|
+
/** v-model:label 绑定值 */
|
|
59
59
|
label: definePropType([String, Array]),
|
|
60
|
-
/**
|
|
60
|
+
/** 宽度 */
|
|
61
61
|
width: {
|
|
62
62
|
type: [String, Number],
|
|
63
63
|
default: "100%"
|
|
64
64
|
},
|
|
65
|
-
/**
|
|
65
|
+
/** 插槽使用的附加状态 */
|
|
66
66
|
moreDetail: Boolean,
|
|
67
|
-
/**
|
|
67
|
+
/** 配置选项 */
|
|
68
68
|
props: {
|
|
69
69
|
type: definePropType(Object),
|
|
70
70
|
default: () => ({
|
|
@@ -74,7 +74,7 @@ const faSelectPageProps = {
|
|
|
74
74
|
children: "children"
|
|
75
75
|
})
|
|
76
76
|
},
|
|
77
|
-
/**
|
|
77
|
+
/** 请求数据的函数 */
|
|
78
78
|
requestApi: {
|
|
79
79
|
type: definePropType(Function),
|
|
80
80
|
required: true
|
|
@@ -86,16 +86,16 @@ const faSelectPageProps = {
|
|
|
86
86
|
Object
|
|
87
87
|
])
|
|
88
88
|
};
|
|
89
|
-
/** FaSelectPage 的运行时 Emits
|
|
89
|
+
/** FaSelectPage 的运行时 Emits 定义 */
|
|
90
90
|
const faSelectPageEmits = {
|
|
91
91
|
...selectEmits,
|
|
92
|
-
/**
|
|
92
|
+
/** v-model 回调 */
|
|
93
93
|
"update:modelValue": (value) => typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "object" && value !== null || value == null,
|
|
94
|
-
/**
|
|
94
|
+
/** 选中数据改变 */
|
|
95
95
|
change: (_data, _value) => true,
|
|
96
|
-
/**
|
|
96
|
+
/** v-model:label 回调 */
|
|
97
97
|
"update:label": (value) => typeof value === "string" || Array.isArray(value) || value === null,
|
|
98
|
-
/**
|
|
98
|
+
/** 数据改变 */
|
|
99
99
|
dataChange: (data) => Array.isArray(data)
|
|
100
100
|
};
|
|
101
101
|
var selectPage_default = defineComponent({
|
|
@@ -126,6 +126,7 @@ var selectPage_default = defineComponent({
|
|
|
126
126
|
defaultSelectorData: withDefineType()
|
|
127
127
|
});
|
|
128
128
|
let requestVersion = 0;
|
|
129
|
+
let disposed = false;
|
|
129
130
|
const handleData = (data) => {
|
|
130
131
|
return data.map((item) => {
|
|
131
132
|
const value = item[props.valueKey];
|
|
@@ -144,7 +145,9 @@ var selectPage_default = defineComponent({
|
|
|
144
145
|
};
|
|
145
146
|
}).filter((item) => item.hide !== true);
|
|
146
147
|
};
|
|
148
|
+
const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
|
|
147
149
|
const loadData = async (pageIndex) => {
|
|
150
|
+
if (disposed) return;
|
|
148
151
|
const currentRequestVersion = ++requestVersion;
|
|
149
152
|
state.loading = true;
|
|
150
153
|
state.pageIndex = pageIndex ?? state.pageIndex;
|
|
@@ -156,19 +159,20 @@ var selectPage_default = defineComponent({
|
|
|
156
159
|
};
|
|
157
160
|
try {
|
|
158
161
|
const resData = await props.requestApi(params);
|
|
159
|
-
if (currentRequestVersion !== requestVersion) return;
|
|
162
|
+
if (disposed || currentRequestVersion !== requestVersion) return;
|
|
160
163
|
state.echo = false;
|
|
161
164
|
state.totalRows = resData.totalRows ?? 0;
|
|
162
165
|
state.selectorData = handleData(resData.rows ?? []);
|
|
166
|
+
state.defaultSelectorData &&= flattenOptions(state.selectorData).find((item) => isEqual(item.value, state.defaultSelectorData?.value)) ?? state.defaultSelectorData;
|
|
163
167
|
emit("dataChange", state.selectorData);
|
|
164
168
|
} catch (error) {
|
|
165
|
-
if (currentRequestVersion !== requestVersion) return;
|
|
169
|
+
if (disposed || currentRequestVersion !== requestVersion) return;
|
|
166
170
|
state.pageIndex = 1;
|
|
167
171
|
state.totalRows = 0;
|
|
168
172
|
state.selectorData = [];
|
|
169
173
|
throw error;
|
|
170
174
|
} finally {
|
|
171
|
-
if (currentRequestVersion === requestVersion) state.loading = false;
|
|
175
|
+
if (!disposed && currentRequestVersion === requestVersion) state.loading = false;
|
|
172
176
|
}
|
|
173
177
|
};
|
|
174
178
|
const pageIndexModel = computed({
|
|
@@ -193,12 +197,11 @@ var selectPage_default = defineComponent({
|
|
|
193
197
|
}
|
|
194
198
|
emit("visible-change", visible);
|
|
195
199
|
};
|
|
196
|
-
const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
|
|
197
200
|
const handleChange = (value) => {
|
|
198
201
|
const selectorData = flattenOptions([
|
|
202
|
+
...state.selectorData,
|
|
199
203
|
...state.selectedList,
|
|
200
|
-
...state.defaultSelectorData ? [state.defaultSelectorData] : []
|
|
201
|
-
...state.selectorData
|
|
204
|
+
...state.defaultSelectorData ? [state.defaultSelectorData] : []
|
|
202
205
|
]);
|
|
203
206
|
if (props.multiple) {
|
|
204
207
|
const valueList = Array.isArray(value) ? value : [];
|
|
@@ -254,9 +257,9 @@ var selectPage_default = defineComponent({
|
|
|
254
257
|
}, { immediate: true });
|
|
255
258
|
watch([() => state.value, () => state.selectorData], ([value]) => {
|
|
256
259
|
const selectorData = flattenOptions([
|
|
260
|
+
...state.selectorData,
|
|
257
261
|
...state.selectedList,
|
|
258
|
-
...state.defaultSelectorData ? [state.defaultSelectorData] : []
|
|
259
|
-
...state.selectorData
|
|
262
|
+
...state.defaultSelectorData ? [state.defaultSelectorData] : []
|
|
260
263
|
]);
|
|
261
264
|
if (props.multiple) {
|
|
262
265
|
if (!Array.isArray(value)) {
|
|
@@ -272,6 +275,7 @@ var selectPage_default = defineComponent({
|
|
|
272
275
|
}
|
|
273
276
|
if (value == null || Array.isArray(value)) {
|
|
274
277
|
state.selectedList = [];
|
|
278
|
+
state.defaultSelectorData = void 0;
|
|
275
279
|
selectedLabel.value = null;
|
|
276
280
|
return;
|
|
277
281
|
}
|
|
@@ -285,10 +289,20 @@ var selectPage_default = defineComponent({
|
|
|
285
289
|
});
|
|
286
290
|
watch(() => props.initParam, (newValue, oldValue) => {
|
|
287
291
|
if (!isEqual(newValue, oldValue)) {
|
|
292
|
+
requestVersion++;
|
|
293
|
+
state.loading = false;
|
|
294
|
+
state.selectorData = [];
|
|
295
|
+
state.selectedList = [];
|
|
296
|
+
state.defaultSelectorData = void 0;
|
|
297
|
+
state.pageIndex = 1;
|
|
288
298
|
state.nextRefresh = true;
|
|
289
299
|
if (state.value != null) handleModelValueUpdate(props.multiple ? [] : void 0);
|
|
290
300
|
}
|
|
291
301
|
});
|
|
302
|
+
onBeforeUnmount(() => {
|
|
303
|
+
disposed = true;
|
|
304
|
+
requestVersion++;
|
|
305
|
+
});
|
|
292
306
|
const elSelectProps = useProps(props, selectProps, [
|
|
293
307
|
"modelValue",
|
|
294
308
|
"popperClass",
|
|
@@ -369,21 +383,21 @@ var selectPage_default = defineComponent({
|
|
|
369
383
|
}) ?? [] }
|
|
370
384
|
}));
|
|
371
385
|
return useExpose(expose, {
|
|
372
|
-
/**
|
|
386
|
+
/** 使选择器的输入框获取焦点 */
|
|
373
387
|
focus: computed(() => selectRef.value?.focus),
|
|
374
|
-
/**
|
|
388
|
+
/** 使选择器的输入框失去焦点,并隐藏下拉框 */
|
|
375
389
|
blur: computed(() => selectRef.value?.blur),
|
|
376
|
-
/**
|
|
390
|
+
/** 获取当前选中的标签 */
|
|
377
391
|
selectedLabel: computed(() => selectRef.value?.selectedLabel),
|
|
378
|
-
/**
|
|
379
|
-
loading:
|
|
380
|
-
/**
|
|
392
|
+
/** 加载状态 */
|
|
393
|
+
loading: toRef(state, "loading"),
|
|
394
|
+
/** 选中的数据 */
|
|
381
395
|
selectedList: computed(() => state.selectedList),
|
|
382
|
-
/**
|
|
396
|
+
/** 刷新 */
|
|
383
397
|
refresh: loadData,
|
|
384
|
-
/**
|
|
398
|
+
/** 设置选择 */
|
|
385
399
|
setSelection: (value) => handleModelValueUpdate(value),
|
|
386
|
-
/**
|
|
400
|
+
/** 清除选择 */
|
|
387
401
|
clearSelection: () => handleModelValueUpdate(props.multiple ? [] : void 0)
|
|
388
402
|
});
|
|
389
403
|
}
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
1
|
+
{"version":3,"file":"selectPage.mjs","names":["update:modelValue","update:label"],"sources":["../../../../src/components/selectPage/src/selectPage.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, onBeforeUnmount, reactive, shallowRef, toRef, 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/** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 远程数据加载时显示的文本;默认显示“加载中...”。 */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** 筛选结果为空时显示的文本,也可通过 empty 插槽替换。 */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** 没有可选数据时显示的文本,也可通过 empty 插槽替换。 */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** 多选时是否折叠已选标签 */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 悬停折叠标签时是否显示全部选项;仅在 collapse-tags 开启时有效。 */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** v-model 绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<ElSelectorModelValue>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** v-model:label 绑定值 */\n\tlabel: definePropType<string | string[] | null>([String, Array]),\n\t/** 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** 插槽使用的附加状态 */\n\tmoreDetail: Boolean,\n\t/** 配置选项 */\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/** 请求数据的函数 */\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/** 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/** 选中数据改变 */\n\tchange: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => true,\n\t/** v-model:label 回调 */\n\t\"update:label\": (value: string | string[] | null) => typeof value === \"string\" || Array.isArray(value) || value === null,\n\t/** 数据改变 */\n\tdataChange: (data: ElSelectorOutput[]) => Array.isArray(data),\n};\n\n/** FaSelectPage 的插槽参数 */\nexport interface FaSelectPageSlots extends Record<string, unknown> {\n\t/** FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** 下拉列表顶部的内容 */\n\theader: never;\n\t/** 下拉列表底部的内容 */\n\tfooter: never;\n\t/** Select 组件头部内容 */\n\tprefix: never;\n\t/** 无选项时的列表 */\n\tempty: never;\n\t/** select 组件自定义标签内容 */\n\ttag: never;\n\t/** Select 组件自定义加载内容 */\n\tloading: never;\n\t/** 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\t// 新请求、参数变化和卸载都会使旧响应失效。\n\t\tlet requestVersion = 0;\n\t\tlet disposed = false;\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 flattenOptions = (data: ElSelectorOutput[]): ElSelectorOutput[] =>\n\t\t\tdata.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);\n\n\t\tconst loadData = async (pageIndex?: number) => {\n\t\t\tif (disposed) return;\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 (disposed || 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\t// 最新选项替换回显缓存,保留当前页之外的选中项。\n\t\t\t\tstate.defaultSelectorData &&=\n\t\t\t\t\tflattenOptions(state.selectorData).find((item) => isEqual(item.value, state.defaultSelectorData?.value)) ??\n\t\t\t\t\tstate.defaultSelectorData;\n\t\t\t\temit(\"dataChange\", state.selectorData);\n\t\t\t} catch (error) {\n\t\t\t\tif (disposed || 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 (!disposed && 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 handleChange = (value?: ElSelectorModelValue) => {\n\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t...state.selectorData,\n\t\t\t\t...state.selectedList,\n\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\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.selectorData,\n\t\t\t\t\t...state.selectedList,\n\t\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\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\tstate.defaultSelectorData = undefined;\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\trequestVersion++;\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\tstate.defaultSelectorData = undefined;\n\t\t\t\t\tstate.pageIndex = 1;\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\tonBeforeUnmount(() => {\n\t\t\tdisposed = true;\n\t\t\trequestVersion++;\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/** 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** 加载状态 */\n\t\t\tloading: toRef(state, \"loading\"),\n\t\t\t/** 选中的数据 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** 设置选择 */\n\t\t\tsetSelection: (value: Exclude<ElSelectorModelValue, null | undefined>) => handleModelValueUpdate(value),\n\t\t\t/** 清除选择 */\n\t\t\tclearSelection: () => handleModelValueUpdate(props.multiple ? [] : undefined),\n\t\t});\n\t},\n});\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { withInstall } from "../../utils/vue/install.mjs";
|
|
2
|
-
import
|
|
2
|
+
import { SelectV2Props } from "../../internal/props.mjs";
|
|
3
|
+
import selectV2_default, { faSelectV2Props } from "./src/selectV2.mjs";
|
|
3
4
|
//#region src/components/selectV2/index.ts
|
|
4
5
|
/** 面向大数据量选项并支持远程分页的虚拟化选择器组件。 */
|
|
5
6
|
const FaSelectV2 = withInstall(selectV2_default);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["SelectV2"],"sources":["../../../src/components/selectV2/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport SelectV2, { SelectV2Props, faSelectV2Props } from \"./src/selectV2\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\nimport type { faSelectV2Emits } from \"./src/selectV2\";\n\n/** 面向大数据量选项并支持远程分页的虚拟化选择器组件。 */\nexport const FaSelectV2: TSXWithInstall<typeof SelectV2> = withInstall(SelectV2);\nexport default FaSelectV2;\n\nexport { SelectV2Props, faSelectV2Props };\nexport type { FaSelectV2Slots } from \"./src/selectV2\";\n\n/** FaSelectV2 暴露的组件实例类型。 */\nexport type FaSelectV2Instance = InstanceType<typeof SelectV2>;\n\n/** FaSelectV2 的完整 Props 类型。 */\nexport type FaSelectV2Props = ExtractPropTypes<typeof faSelectV2Props>;\n\n/** FaSelectV2 的 Emits 类型。 */\nexport type FaSelectV2Emits = typeof faSelectV2Emits;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["SelectV2"],"sources":["../../../src/components/selectV2/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport SelectV2, { SelectV2Props, faSelectV2Props } from \"./src/selectV2\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\nimport type { faSelectV2Emits } from \"./src/selectV2\";\n\n/** 面向大数据量选项并支持远程分页的虚拟化选择器组件。 */\nexport const FaSelectV2: TSXWithInstall<typeof SelectV2> = withInstall(SelectV2);\nexport default FaSelectV2;\n\nexport { SelectV2Props, faSelectV2Props };\nexport type { FaSelectV2Slots } from \"./src/selectV2\";\n\n/** FaSelectV2 暴露的组件实例类型。 */\nexport type FaSelectV2Instance = InstanceType<typeof SelectV2>;\n\n/** FaSelectV2 的完整 Props 类型。 */\nexport type FaSelectV2Props = ExtractPropTypes<typeof faSelectV2Props>;\n\n/** FaSelectV2 的 Emits 类型。 */\nexport type FaSelectV2Emits = typeof faSelectV2Emits;\n"],"mappings":";;;;;AAOA,MAAa,aAA8C,YAAYA,gBAAQ"}
|