el-plus 0.0.110 → 0.0.112
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 +12 -0
- package/dist/index.full.js +45 -22
- package/dist/index.full.min.js +4 -4
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +45 -22
- package/es/components/input/index.d.ts +15 -0
- package/es/components/input/src/input.d.ts +4 -0
- package/es/components/input/src/input.mjs +4 -0
- package/es/components/input/src/input.mjs.map +1 -1
- package/es/components/input/src/input.vue.d.ts +9 -0
- package/es/components/input/src/input.vue2.mjs +9 -1
- package/es/components/input/src/input.vue2.mjs.map +1 -1
- package/es/components/select/index.d.ts +15 -14
- package/es/components/select/src/select.d.ts +4 -0
- package/es/components/select/src/select.mjs +5 -0
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/select.vue.d.ts +9 -8
- package/es/components/select/src/select.vue2.mjs +4 -7
- package/es/components/select/src/select.vue2.mjs.map +1 -1
- package/es/components/select/src/use-select.d.ts +2 -2
- package/es/components/select/src/use-select.mjs +22 -13
- package/es/components/select/src/use-select.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/lib/components/input/index.d.ts +15 -0
- package/lib/components/input/src/input.d.ts +4 -0
- package/lib/components/input/src/input.js +4 -0
- package/lib/components/input/src/input.js.map +1 -1
- package/lib/components/input/src/input.vue.d.ts +9 -0
- package/lib/components/input/src/input.vue2.js +8 -0
- package/lib/components/input/src/input.vue2.js.map +1 -1
- package/lib/components/select/index.d.ts +15 -14
- package/lib/components/select/src/select.d.ts +4 -0
- package/lib/components/select/src/select.js +5 -0
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/select.vue.d.ts +9 -8
- package/lib/components/select/src/select.vue2.js +4 -7
- package/lib/components/select/src/select.vue2.js.map +1 -1
- package/lib/components/select/src/use-select.d.ts +2 -2
- package/lib/components/select/src/use-select.js +22 -13
- package/lib/components/select/src/use-select.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ var useRequest = require('../../../hooks/use-request.js');
|
|
|
5
5
|
|
|
6
6
|
function useSelect(props, emit) {
|
|
7
7
|
let hasLoaded = false;
|
|
8
|
+
const loadedOptions = vue.ref([]);
|
|
8
9
|
const { loading, requestFn } = useRequest.useRequest({
|
|
9
10
|
api: props.api,
|
|
10
11
|
method: props.method,
|
|
@@ -16,12 +17,12 @@ function useSelect(props, emit) {
|
|
|
16
17
|
hooks: {
|
|
17
18
|
success(data) {
|
|
18
19
|
if (Array.isArray(data)) {
|
|
19
|
-
|
|
20
|
+
loadedOptions.value = data;
|
|
20
21
|
} else if (data && typeof data === "object") {
|
|
21
22
|
const rawData = data;
|
|
22
|
-
|
|
23
|
+
loadedOptions.value = rawData?.list || rawData?.data || [];
|
|
23
24
|
} else {
|
|
24
|
-
|
|
25
|
+
loadedOptions.value = [];
|
|
25
26
|
}
|
|
26
27
|
hasLoaded = true;
|
|
27
28
|
},
|
|
@@ -30,22 +31,30 @@ function useSelect(props, emit) {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
});
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
const echoOption = vue.computed(() => {
|
|
35
|
+
const v = props.modelValue;
|
|
36
|
+
const d = props.desc;
|
|
37
|
+
if ((v || v === 0) && d) {
|
|
38
|
+
const exists = loadedOptions.value.some(
|
|
39
|
+
(item) => item[props.valueKey] === v
|
|
40
|
+
);
|
|
41
|
+
if (!exists) {
|
|
42
|
+
return [{ [props.labelKey]: d, [props.valueKey]: v }];
|
|
43
|
+
}
|
|
42
44
|
}
|
|
45
|
+
return [];
|
|
46
|
+
});
|
|
47
|
+
const customOptions = vue.computed(() => [
|
|
48
|
+
...echoOption.value,
|
|
49
|
+
...loadedOptions.value
|
|
50
|
+
]);
|
|
51
|
+
const loadOptions = () => {
|
|
43
52
|
if (props.api) {
|
|
44
53
|
if (!props.lazy && !props.remote) {
|
|
45
54
|
requestFn();
|
|
46
55
|
}
|
|
47
56
|
} else if (props.options?.length) {
|
|
48
|
-
|
|
57
|
+
loadedOptions.value = props.options;
|
|
49
58
|
}
|
|
50
59
|
};
|
|
51
60
|
const getSelectItem = (value) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-select.js","sources":["../../../../../../packages/components/select/src/use-select.ts"],"sourcesContent":["import { ref ,computed} from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n
|
|
1
|
+
{"version":3,"file":"use-select.js","sources":["../../../../../../packages/components/select/src/use-select.ts"],"sourcesContent":["import { ref ,computed} from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n // 已加载的选项(api 请求结果 / props.options / 搜索结果)\n const loadedOptions = ref<SelectOption[]>([])\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n loadedOptions.value = data as OptionArr\n } else if (data && typeof data === 'object') {\n const rawData = data as OptionObj\n loadedOptions.value = rawData?.list || rawData?.data || []\n } else {\n loadedOptions.value = []\n }\n hasLoaded = true\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 回显占位项:value/desc 存在且不在已加载列表中时,补充一项\n // 由 computed 自动响应 value/desc/loadedOptions 的变化,无需 watch\n const echoOption = computed<SelectOption[]>(() => {\n const v = props.modelValue\n const d = props.desc\n if ((v || v === 0) && d) {\n const exists = loadedOptions.value.some(\n (item: SelectOption) => item[props.valueKey] === v,\n )\n if (!exists) {\n return [{ [props.labelKey]: d, [props.valueKey]: v }]\n }\n }\n return []\n })\n // 最终下拉项 = 回显占位 + 已加载\n const customOptions = computed<SelectOption[]>(() => [\n ...echoOption.value,\n ...loadedOptions.value,\n ])\n // 加载下拉列表(只负责加载,不处理回显)\n const loadOptions = () => {\n if (props.api) {\n if (!props.lazy && !props.remote) {\n requestFn!()\n }\n } else if (props.options?.length) {\n loadedOptions.value = props.options\n }\n }\n // 获取选中项\n const getSelectItem = (value: SelectProps['modelValue']) => {\n if (Array.isArray(value)) {\n if (!customOptions.value) return []\n return customOptions.value.filter((item: SelectOption) => {\n return value.indexOf(item[props.valueKey]) > -1\n })\n }\n if (!customOptions.value) return {}\n return (\n customOptions.value.find((item: SelectOption) => {\n return item[props.valueKey] === value\n }) || {}\n )\n }\n const expandAttrs = computed(() => {\n return {\n loading: props.loading || loading?.value,\n remoteMethod: (query: string) => {\n if (!query) return\n requestFn!({\n $searchValue: query,\n })\n },\n onChange(value: SelectProps['modelValue']) {\n emit('change', value, getSelectItem(value))\n },\n onVisibleChange(visible: boolean) {\n if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {\n requestFn!()\n }\n emit('visible-change', visible)\n },\n }\n })\n return {\n customOptions,\n loadOptions,\n expandAttrs,\n }\n}\n"],"names":["ref","useRequest","computed"],"mappings":"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"}
|
package/lib/package.json.js
CHANGED