@jari-ace/element-plus-component 0.1.7 → 0.1.9
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/dist/components/inputI18n/InputI18n.vue.d.ts.map +1 -1
- package/dist/components/inputI18n/InputI18n.vue.js +2 -2
- package/dist/components/inputI18n/InputI18n.vue.js.map +1 -1
- package/dist/components/userPicker/src/UserPicker.vue.d.ts +0 -3
- package/dist/components/userPicker/src/UserPicker.vue.d.ts.map +1 -1
- package/dist/components/userPicker/src/UserPicker.vue.js +9 -7
- package/dist/components/userPicker/src/UserPicker.vue.js.map +1 -1
- package/dist/components/userSelectDialog/src/userSelectDialog.vue.d.ts +2 -5
- package/dist/components/userSelectDialog/src/userSelectDialog.vue.d.ts.map +1 -1
- package/dist/components/userSelectDialog/src/userSelectDialog.vue.js +14 -11
- package/dist/components/userSelectDialog/src/userSelectDialog.vue.js.map +1 -1
- package/dist/hooks/useRealms.d.ts +22 -0
- package/dist/hooks/useRealms.d.ts.map +1 -0
- package/dist/hooks/useRealms.js +25 -0
- package/dist/hooks/useRealms.js.map +1 -0
- package/dist/hooks/useUserRefQuery.d.ts.map +1 -1
- package/dist/hooks/useUserRefQuery.js +4 -2
- package/dist/hooks/useUserRefQuery.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.js +1239 -1211
- package/lib/index.umd.cjs +2 -2
- package/package.json +2 -2
- package/packages/components/enumPicker/src/EnumPicker.vue +103 -103
- package/packages/components/inputI18n/InputI18n.vue +6 -2
- package/packages/components/userPicker/src/UserPicker.vue +8 -6
- package/packages/components/userSelectDialog/src/userSelectDialog.vue +16 -8
- package/packages/hooks/useRealms.ts +28 -0
- package/packages/hooks/useUserRefQuery.ts +4 -2
- package/packages/index.ts +1 -0
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { EnumValueDefinition } from '@jari-ace/app-bolts';
|
|
3
|
-
|
|
4
|
-
import { computed, ref, watch } from 'vue';
|
|
5
|
-
|
|
6
|
-
import { createAxiosWithoutCache } from '@jari-ace/app-bolts';
|
|
7
|
-
import { useEnumApi } from '@jari-ace/app-bolts';
|
|
8
|
-
import { ElOption, ElSelect } from 'element-plus';
|
|
9
|
-
// 遍历出EnumValueDefinition类型的KEY 并排除掉
|
|
10
|
-
type KeyFields = 'id' | 'text' | 'value';
|
|
11
|
-
|
|
12
|
-
interface ModelValue {
|
|
13
|
-
value?: string;
|
|
14
|
-
text?: string;
|
|
15
|
-
id?: string;
|
|
16
|
-
}
|
|
17
|
-
const props = withDefaults(
|
|
18
|
-
defineProps<{
|
|
19
|
-
clearable?: boolean; // 是否可清空
|
|
20
|
-
filterable?: boolean; // 是否可筛选
|
|
21
|
-
keyField?: KeyFields;
|
|
22
|
-
multiple?: boolean; // 是否多选
|
|
23
|
-
name: string; // 枚举名称,用于获取枚举数据
|
|
24
|
-
serviceName: string;
|
|
25
|
-
}>(),
|
|
26
|
-
{
|
|
27
|
-
multiple: false,
|
|
28
|
-
clearable: true,
|
|
29
|
-
filterable: true,
|
|
30
|
-
keyField: 'value',
|
|
31
|
-
},
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
const enums = ref<EnumValueDefinition[]>([]);
|
|
35
|
-
const loading = ref<boolean>(false);
|
|
36
|
-
const model = defineModel<ModelValue[]>({
|
|
37
|
-
default: () => [],
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const axios = createAxiosWithoutCache();
|
|
41
|
-
const api = useEnumApi(axios);
|
|
42
|
-
async function loadData() {
|
|
43
|
-
if (!props.name || !props.serviceName) return;
|
|
44
|
-
loading.value = true;
|
|
45
|
-
api
|
|
46
|
-
.queryByName(props.serviceName, props.name)
|
|
47
|
-
.then((res) => {
|
|
48
|
-
enums.value = res.values;
|
|
49
|
-
})
|
|
50
|
-
.finally(() => {
|
|
51
|
-
loading.value = false;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const modelValue = computed((): string | string[] | undefined => {
|
|
56
|
-
if (props.multiple) {
|
|
57
|
-
return model.value.map((m) => m[props.keyField] as string) || [];
|
|
58
|
-
} else {
|
|
59
|
-
if (model.value[0] !== undefined) {
|
|
60
|
-
return model.value[0][props.keyField];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return '';
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const handleChange = (value: string | string[]) => {
|
|
67
|
-
if (typeof value === 'string') {
|
|
68
|
-
const obj = enums.value.find((e) => e[props.keyField] === value);
|
|
69
|
-
model.value = obj ? [obj] : [];
|
|
70
|
-
} else {
|
|
71
|
-
model.value = enums.value.filter((e) => value.includes(e[props.keyField]));
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
// function filter(queryName: string) {
|
|
76
|
-
// bindingChannels.value = channels.value?.filter(c => c.name.indexOf(queryName) > -1) ?? [];
|
|
77
|
-
// }
|
|
78
|
-
|
|
79
|
-
loadData();
|
|
80
|
-
|
|
81
|
-
watch(() => props.name, loadData);
|
|
82
|
-
watch(() => props.serviceName, loadData);
|
|
83
|
-
</script>
|
|
84
|
-
|
|
85
|
-
<template>
|
|
86
|
-
<ElSelect
|
|
87
|
-
v-loading="loading"
|
|
88
|
-
:model-value="modelValue"
|
|
89
|
-
:filterable="props.filterable"
|
|
90
|
-
:multiple="props.multiple"
|
|
91
|
-
:clearable="props.clearable"
|
|
92
|
-
@change="handleChange"
|
|
93
|
-
>
|
|
94
|
-
<ElOption
|
|
95
|
-
v-for="item in enums"
|
|
96
|
-
:key="item.id"
|
|
97
|
-
:value="item[props.keyField]"
|
|
98
|
-
:label="item.text"
|
|
99
|
-
/>
|
|
100
|
-
</ElSelect>
|
|
101
|
-
</template>
|
|
102
|
-
|
|
103
|
-
<style scoped lang="scss"></style>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { EnumValueDefinition } from '@jari-ace/app-bolts';
|
|
3
|
+
|
|
4
|
+
import { computed, ref, watch } from 'vue';
|
|
5
|
+
|
|
6
|
+
import { createAxiosWithoutCache } from '@jari-ace/app-bolts';
|
|
7
|
+
import { useEnumApi } from '@jari-ace/app-bolts';
|
|
8
|
+
import { ElOption, ElSelect } from 'element-plus';
|
|
9
|
+
// 遍历出EnumValueDefinition类型的KEY 并排除掉
|
|
10
|
+
type KeyFields = 'id' | 'text' | 'value';
|
|
11
|
+
|
|
12
|
+
interface ModelValue {
|
|
13
|
+
value?: string;
|
|
14
|
+
text?: string;
|
|
15
|
+
id?: string;
|
|
16
|
+
}
|
|
17
|
+
const props = withDefaults(
|
|
18
|
+
defineProps<{
|
|
19
|
+
clearable?: boolean; // 是否可清空
|
|
20
|
+
filterable?: boolean; // 是否可筛选
|
|
21
|
+
keyField?: KeyFields;
|
|
22
|
+
multiple?: boolean; // 是否多选
|
|
23
|
+
name: string; // 枚举名称,用于获取枚举数据
|
|
24
|
+
serviceName: string;
|
|
25
|
+
}>(),
|
|
26
|
+
{
|
|
27
|
+
multiple: false,
|
|
28
|
+
clearable: true,
|
|
29
|
+
filterable: true,
|
|
30
|
+
keyField: 'value',
|
|
31
|
+
},
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const enums = ref<EnumValueDefinition[]>([]);
|
|
35
|
+
const loading = ref<boolean>(false);
|
|
36
|
+
const model = defineModel<ModelValue[]>({
|
|
37
|
+
default: () => [],
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const axios = createAxiosWithoutCache();
|
|
41
|
+
const api = useEnumApi(axios);
|
|
42
|
+
async function loadData() {
|
|
43
|
+
if (!props.name || !props.serviceName) return;
|
|
44
|
+
loading.value = true;
|
|
45
|
+
api
|
|
46
|
+
.queryByName(props.serviceName, props.name)
|
|
47
|
+
.then((res) => {
|
|
48
|
+
enums.value = res.values;
|
|
49
|
+
})
|
|
50
|
+
.finally(() => {
|
|
51
|
+
loading.value = false;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const modelValue = computed((): string | string[] | undefined => {
|
|
56
|
+
if (props.multiple) {
|
|
57
|
+
return model.value.map((m) => m[props.keyField] as string) || [];
|
|
58
|
+
} else {
|
|
59
|
+
if (model.value[0] !== undefined) {
|
|
60
|
+
return model.value[0][props.keyField];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return '';
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
const handleChange = (value: string | string[]) => {
|
|
67
|
+
if (typeof value === 'string') {
|
|
68
|
+
const obj = enums.value.find((e) => e[props.keyField] === value);
|
|
69
|
+
model.value = obj ? [obj] : [];
|
|
70
|
+
} else {
|
|
71
|
+
model.value = enums.value.filter((e) => value.includes(e[props.keyField]));
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// function filter(queryName: string) {
|
|
76
|
+
// bindingChannels.value = channels.value?.filter(c => c.name.indexOf(queryName) > -1) ?? [];
|
|
77
|
+
// }
|
|
78
|
+
|
|
79
|
+
loadData();
|
|
80
|
+
|
|
81
|
+
watch(() => props.name, loadData);
|
|
82
|
+
watch(() => props.serviceName, loadData);
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
<template>
|
|
86
|
+
<ElSelect
|
|
87
|
+
v-loading="loading"
|
|
88
|
+
:model-value="modelValue"
|
|
89
|
+
:filterable="props.filterable"
|
|
90
|
+
:multiple="props.multiple"
|
|
91
|
+
:clearable="props.clearable"
|
|
92
|
+
@change="handleChange"
|
|
93
|
+
>
|
|
94
|
+
<ElOption
|
|
95
|
+
v-for="item in enums"
|
|
96
|
+
:key="item.id"
|
|
97
|
+
:value="item[props.keyField]"
|
|
98
|
+
:label="item.text"
|
|
99
|
+
/>
|
|
100
|
+
</ElSelect>
|
|
101
|
+
</template>
|
|
102
|
+
|
|
103
|
+
<style scoped lang="scss"></style>
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import {ElInput, ElOption, ElSelect} from "element-plus";
|
|
3
3
|
import {nextTick, onUnmounted, ref, watch} from "vue"
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createAxiosWithoutCache,
|
|
6
|
+
useAppMessageApi,
|
|
7
|
+
useLoginUser
|
|
8
|
+
} from "@jari-ace/app-bolts";
|
|
5
9
|
import MessageEditor from "./I18nBundleEditor.vue"
|
|
6
10
|
import {trim} from "lodash-es";
|
|
7
11
|
import {useAppInstances} from "../../hooks/useAppInstances";
|
|
@@ -20,7 +24,7 @@ const props = withDefaults(defineProps<{
|
|
|
20
24
|
const model = defineModel<string>({
|
|
21
25
|
default: ""
|
|
22
26
|
})
|
|
23
|
-
const axios =
|
|
27
|
+
const axios = createAxiosWithoutCache()
|
|
24
28
|
const api = useAppMessageApi(axios)
|
|
25
29
|
const locale = useLoginUser().locale
|
|
26
30
|
const messageKeys = ref<string[]>()
|
|
@@ -31,12 +31,12 @@ import {JaUserSelectDialog} from "../../userSelectDialog";
|
|
|
31
31
|
import {JaScrollbar} from "../../scrollbar";
|
|
32
32
|
import CustomGroupManager from "./CustomGroupManager.vue";
|
|
33
33
|
import JaUserList from "./JaUserList.vue";
|
|
34
|
-
|
|
34
|
+
import {useRealms} from '../../../hooks/useRealms'
|
|
35
35
|
const props = defineProps({
|
|
36
36
|
/**
|
|
37
37
|
* 可选择用户的用户域ID
|
|
38
38
|
*/
|
|
39
|
-
realmId: {type: String, required: false
|
|
39
|
+
realmId: {type: String, required: false},
|
|
40
40
|
/**
|
|
41
41
|
* 弹出下拉选框的快捷键
|
|
42
42
|
*/
|
|
@@ -65,13 +65,15 @@ const props = defineProps({
|
|
|
65
65
|
*/
|
|
66
66
|
maxHeight: {type: [Number, String], required: false},
|
|
67
67
|
})
|
|
68
|
+
|
|
68
69
|
const localRealmId = ref<string>();
|
|
69
70
|
|
|
70
|
-
function loadRealmId() {
|
|
71
|
+
async function loadRealmId() {
|
|
71
72
|
if (props.realmId) {
|
|
72
73
|
localRealmId.value = props.realmId;
|
|
73
74
|
} else {
|
|
74
|
-
|
|
75
|
+
const defaultRealm = await useRealms().getDefaultRealm();
|
|
76
|
+
localRealmId.value = defaultRealm.id;
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
|
|
@@ -126,8 +128,8 @@ function switchUserSelect(u: UserReference) {
|
|
|
126
128
|
|
|
127
129
|
|
|
128
130
|
function onPopoverShow() {
|
|
129
|
-
if (
|
|
130
|
-
queryParams.value.realmId =
|
|
131
|
+
if (props.realmId) {
|
|
132
|
+
queryParams.value.realmId = props.realmId
|
|
131
133
|
}
|
|
132
134
|
if (queryParams.value.name && queryParams.value.name.length > minLengthToTriggerUserQuery) {
|
|
133
135
|
queryParams.value.name = undefined;
|
|
@@ -37,12 +37,13 @@ import {JaButton} from "../../button";
|
|
|
37
37
|
import throttle from "lodash-es/throttle";
|
|
38
38
|
import {JaUserGroupTree} from "../../userGroupTree";
|
|
39
39
|
import {JaCustomGroupTree} from "../../customGroupTree";
|
|
40
|
+
import { useRealms } from "../../../hooks/useRealms";
|
|
40
41
|
//#region Props和Const声明和初始化
|
|
41
42
|
const props = defineProps({
|
|
42
43
|
/**
|
|
43
44
|
* 可选择用户的用户域ID
|
|
44
45
|
*/
|
|
45
|
-
realmId: {type: String, required:
|
|
46
|
+
realmId: {type: String, required: false},
|
|
46
47
|
/**
|
|
47
48
|
* 是否多选模式
|
|
48
49
|
*/
|
|
@@ -59,12 +60,20 @@ const selectedUsers = defineModel<UserReference[] | UserReference | null>({
|
|
|
59
60
|
required: true
|
|
60
61
|
});
|
|
61
62
|
const localRealmId = ref<string>();
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
async function loadRealmId() {
|
|
66
|
+
if (props.realmId) {
|
|
67
|
+
localRealmId.value = props.realmId;
|
|
68
|
+
} else {
|
|
69
|
+
const defaultRealm = await useRealms().getDefaultRealm();
|
|
70
|
+
localRealmId.value = defaultRealm.id;
|
|
71
|
+
}
|
|
67
72
|
}
|
|
73
|
+
|
|
74
|
+
loadRealmId()
|
|
75
|
+
|
|
76
|
+
|
|
68
77
|
if (props.multiple) {
|
|
69
78
|
if (!selectedUsers.value) {
|
|
70
79
|
selectedUsers.value = [];
|
|
@@ -256,8 +265,7 @@ function switchSelectOnlyView() {
|
|
|
256
265
|
}
|
|
257
266
|
|
|
258
267
|
function onOpen() {
|
|
259
|
-
if (!userQuery.queryParams.value.realmId
|
|
260
|
-
!== localRealmId.value) {
|
|
268
|
+
if (!userQuery.queryParams.value.realmId && localRealmId.value) {
|
|
261
269
|
userQuery.queryParams.value.realmId = localRealmId.value;
|
|
262
270
|
}
|
|
263
271
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 用户域列表
|
|
3
|
+
*/
|
|
4
|
+
import {ref} from 'vue';
|
|
5
|
+
import {type AceAxiosRequestConfig, useRealmApi} from '@jari-ace/app-bolts';
|
|
6
|
+
import type {Realm} from '@jari-ace/app-bolts';
|
|
7
|
+
|
|
8
|
+
const realms = ref<Realm[]>([]);
|
|
9
|
+
|
|
10
|
+
export function useRealms() {
|
|
11
|
+
const realmApi = useRealmApi();
|
|
12
|
+
const getAllRealms = async () => {
|
|
13
|
+
if(realms.value.length!==0)return;
|
|
14
|
+
const config = {} as AceAxiosRequestConfig
|
|
15
|
+
realms.value = await realmApi.getAll(config);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const getDefaultRealm = async () => {
|
|
19
|
+
await getAllRealms()
|
|
20
|
+
return realms.value.find(r => r.name === 'ace-platform')
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
realms,
|
|
25
|
+
getAllRealms,
|
|
26
|
+
getDefaultRealm
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import type {TreeNodeType} from "./useTreeData";
|
|
14
14
|
import {ALL_DEPARTMENT, NO_DEPARTMENT} from "../components/departmentPicker/src/consts";
|
|
15
15
|
import debounce from "lodash-es/debounce";
|
|
16
|
+
import { useRealms } from "./useRealms";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* 用户查询hook,当查询参数变化时,会自动查询,订阅结果即可
|
|
@@ -132,12 +133,13 @@ export function useUserRefQuery(
|
|
|
132
133
|
});
|
|
133
134
|
})
|
|
134
135
|
|
|
135
|
-
function queryUsers() {
|
|
136
|
+
async function queryUsers() {
|
|
136
137
|
if (queryPrerequisites && !queryPrerequisites()) {
|
|
137
138
|
return Promise.resolve(undefined);
|
|
138
139
|
}
|
|
139
140
|
if (!queryParams.value.realmId) {
|
|
140
|
-
|
|
141
|
+
const defaultRealm = await useRealms().getDefaultRealm();
|
|
142
|
+
queryParams.value.realmId = defaultRealm.id;
|
|
141
143
|
}
|
|
142
144
|
const builder = useUserQueryBuilder();
|
|
143
145
|
const qUser = builder.getQEntity();
|
package/packages/index.ts
CHANGED