@jari-ace/element-plus-component 0.1.8 → 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.
Files changed (33) hide show
  1. package/dist/components/inputI18n/InputI18n.vue.d.ts.map +1 -1
  2. package/dist/components/inputI18n/InputI18n.vue.js +2 -2
  3. package/dist/components/inputI18n/InputI18n.vue.js.map +1 -1
  4. package/dist/components/userPicker/src/UserPicker.vue.d.ts +0 -3
  5. package/dist/components/userPicker/src/UserPicker.vue.d.ts.map +1 -1
  6. package/dist/components/userPicker/src/UserPicker.vue.js +9 -7
  7. package/dist/components/userPicker/src/UserPicker.vue.js.map +1 -1
  8. package/dist/components/userSelectDialog/src/userSelectDialog.vue.d.ts +2 -5
  9. package/dist/components/userSelectDialog/src/userSelectDialog.vue.d.ts.map +1 -1
  10. package/dist/components/userSelectDialog/src/userSelectDialog.vue.js +14 -11
  11. package/dist/components/userSelectDialog/src/userSelectDialog.vue.js.map +1 -1
  12. package/dist/hooks/useRealms.d.ts +22 -0
  13. package/dist/hooks/useRealms.d.ts.map +1 -0
  14. package/dist/hooks/useRealms.js +25 -0
  15. package/dist/hooks/useRealms.js.map +1 -0
  16. package/dist/hooks/useUserRefQuery.d.ts.map +1 -1
  17. package/dist/hooks/useUserRefQuery.js +4 -2
  18. package/dist/hooks/useUserRefQuery.js.map +1 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/lib/index.css +1 -1
  24. package/lib/index.js +1239 -1211
  25. package/lib/index.umd.cjs +2 -2
  26. package/package.json +1 -1
  27. package/packages/components/enumPicker/src/EnumPicker.vue +103 -103
  28. package/packages/components/inputI18n/InputI18n.vue +6 -2
  29. package/packages/components/userPicker/src/UserPicker.vue +8 -6
  30. package/packages/components/userSelectDialog/src/userSelectDialog.vue +16 -8
  31. package/packages/hooks/useRealms.ts +28 -0
  32. package/packages/hooks/useUserRefQuery.ts +4 -2
  33. 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 {createAxios, useAppMessageApi, useLoginUser} from "@jari-ace/app-bolts";
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 = createAxios()
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, default: 1},
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
- localRealmId.value = useLoginUser().realmId;
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 (!queryParams.value.realmId || queryParams.value.realmId !== localRealmId.value) {
130
- queryParams.value.realmId = localRealmId.value
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: true, default: 1},
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
- const login = useLoginUser();
63
- if (props.realmId) {
64
- localRealmId.value = props.realmId;
65
- } else {
66
- localRealmId.value = login.realmId;
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 || 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
- return Promise.resolve([] as UserReference[]);
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
@@ -19,3 +19,4 @@ export * from "./directives"
19
19
  export * from "./hooks/useDateTimeShortCuts"
20
20
  export * from "./components/scrollbar/utils"
21
21
  export * from "./hooks/useBridage"
22
+ export * from "./hooks/useRealms"