wui-components-v2 1.1.70 → 1.1.72

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 (82) hide show
  1. package/api/feishu.ts +20 -20
  2. package/api/index.ts +4 -4
  3. package/api/login.ts +51 -51
  4. package/api/tree.ts +28 -28
  5. package/components/action-popup/action-popup.vue +116 -116
  6. package/components/add-address-list/add-address-list.vue +187 -187
  7. package/components/add-address-page/config.ts +297 -297
  8. package/components/audio-play/audio-play.vue +220 -220
  9. package/components/batch-upload-file/batch-upload-file.vue +75 -75
  10. package/components/card-botom-buttons/card-botom-buttons.vue +279 -279
  11. package/components/demo-card/demo-card.vue +44 -44
  12. package/components/fold-card/fold-card.vue +2 -2
  13. package/components/form-control/form-control.vue +9 -1
  14. package/components/global-loading/GlobalLoading.md +366 -366
  15. package/components/global-loading/global-loading.vue +55 -55
  16. package/components/global-message/GlobalMessage.md +570 -570
  17. package/components/global-toast/GlobalToast.md +261 -261
  18. package/components/global-toast/global-toast.vue +56 -56
  19. package/components/label-value/open-value-more.vue +56 -56
  20. package/components/loading/loading.vue +5 -5
  21. package/components/login-form-box/login-form-box.vue +65 -65
  22. package/components/phone-login-form/phone-login-form.vue +204 -204
  23. package/components/privacy-popup/privacy-popup.vue +191 -191
  24. package/components/scan-input/scan-input.vue +406 -406
  25. package/components/select-col-picker/select-col-picker.vue +168 -168
  26. package/components/tab-search/tab-search.vue +73 -73
  27. package/components/tree-select/components/TreeNode.vue +200 -200
  28. package/components/tree-select/components/index.vue +471 -471
  29. package/components/tree-select/components/tree-select.vue +56 -56
  30. package/components/tree-select/index.vue +93 -93
  31. package/components/user-choose/user-choose.vue +169 -151
  32. package/components/video-play/video-play.vue +56 -56
  33. package/components/wui-auto-update-component/wui-auto-update-component.vue +132 -132
  34. package/components/wui-default/wui-default.vue +49 -49
  35. package/components/wui-details-page/wui-details-page.vue +147 -147
  36. package/components/wui-edit-page/wui-edit-page-copy.vue +757 -757
  37. package/components/wui-edit-page/wui-edit-page.vue +793 -793
  38. package/components/wui-login/wui-login.vue +43 -43
  39. package/components/wui-login1/wui-login.vue +41 -41
  40. package/components/wui-menus/wui-menus-top.vue +137 -137
  41. package/components/wui-menus/wui-menus-top1.vue +8 -8
  42. package/components/wui-menus1/components/banner-carousel.vue +320 -320
  43. package/components/wui-menus1/components/quick-panel.vue +55 -55
  44. package/components/wui-menus1/components/search-bar.vue +49 -49
  45. package/components/wui-menus1/components/section-menus.vue +208 -208
  46. package/components/wui-menus1/wui-menus-top.vue +718 -718
  47. package/components/wui-menus1/wui-menus-top1.vue +398 -398
  48. package/components/wui-notify-info/notify-handle.vue +53 -53
  49. package/components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue +75 -75
  50. package/components/wui-search-history-babbar/components/SearchBar.vue +70 -70
  51. package/components/wui-select-list/wui-select-list.vue +1 -9
  52. package/components/wui-select-popup/wui-select-popup.vue +1 -0
  53. package/components/wui-tree-page/wui-tree-page.vue +297 -297
  54. package/components/wui-update-component/wui-update-component.vue +221 -221
  55. package/composables/types/theme.ts +65 -65
  56. package/composables/types/user.ts +5 -5
  57. package/composables/useColorGenerator.ts +221 -221
  58. package/composables/useCompanyFieldFilter.ts +26 -24
  59. package/composables/useEnumes.ts +43 -43
  60. package/composables/useEventBus.ts +37 -37
  61. package/composables/useGlobalLoading.ts +47 -47
  62. package/composables/useGlobalMessage.ts +53 -53
  63. package/composables/useGlobalToast.ts +63 -63
  64. package/composables/useLocale.ts +54 -54
  65. package/composables/useManualTheme.ts +179 -179
  66. package/composables/useSectionMenus.ts +120 -120
  67. package/composables/useTabbar.ts +50 -50
  68. package/composables/useTheme.ts +74 -74
  69. package/composables/useUser.ts +24 -24
  70. package/index.d.ts +90 -90
  71. package/package.json +24 -24
  72. package/store/manualThemeStore.ts +143 -143
  73. package/store/persist.ts +41 -41
  74. package/store/themeStore.ts +74 -74
  75. package/store/userStore.ts +22 -22
  76. package/styles/dark-mode.scss +498 -498
  77. package/type.ts +154 -154
  78. package/utils/control-tree.ts +353 -353
  79. package/utils/eventBus.ts +36 -36
  80. package/utils/idata-scan.ts +99 -99
  81. package/utils/index.ts +979 -979
  82. package/utils/rsaEncrypt.ts +10 -10
@@ -1,221 +1,221 @@
1
- import { computed, ref } from 'vue'
2
- import {
3
- generateHarmoniousColors,
4
- generateIconColors,
5
- generateRandomColorFromHex,
6
- getColorVariant,
7
- hexToRgb,
8
- rgbToHex,
9
- } from '../utils/index'
10
- import { useManualTheme } from './useManualTheme'
11
- // 定义颜色对象的类型
12
- interface ColorObject {
13
- hex: string
14
- rgb: { r: number, g: number, b: number }
15
- hsl: { h: number, s: number, l: number }
16
- }
17
-
18
- /**
19
- * Vue 3 Composition API: 颜色生成器
20
- * @param {string} baseHex - 基础十六进制颜色,如 #2164F3
21
- * @param {object} options - 配置选项
22
- * @returns {object} 颜色相关的方法和响应式数据
23
- */
24
- export function useColorGenerator(options = {}) {
25
- // 默认配置
26
- const defaultOptions = {
27
- hueRange: 60,
28
- saturationRange: 0,
29
- lightnessRange: 0,
30
- count: 8,
31
- autoRegenerate: true,
32
- }
33
-
34
- const config = { ...defaultOptions, ...options }
35
- const {
36
- currentThemeColor,
37
- } = useManualTheme()
38
- // 响应式数据
39
- const baseColor = computed(() => currentThemeColor.value.primary)
40
- const hueRange = ref(config.hueRange)
41
- const saturationRange = ref(config.saturationRange)
42
- const lightnessRange = ref(config.lightnessRange)
43
- const colors = ref<ColorObject[]>([])
44
- const currentRandomColor = ref<ColorObject | null>(null)
45
- const colorVariants = ref<Record<string, string>>({})
46
-
47
- /**
48
- * 生成基础颜色的RGB对象
49
- */
50
- const baseRgb = computed(() => hexToRgb(baseColor.value))
51
-
52
- /**
53
- * 生成单个随机颜色
54
- */
55
- const generateRandomColor = () => {
56
- currentRandomColor.value = generateRandomColorFromHex(baseColor.value, {
57
- hueRange: hueRange.value,
58
- saturationRange: saturationRange.value,
59
- lightnessRange: lightnessRange.value,
60
- })
61
-
62
- return currentRandomColor.value
63
- }
64
-
65
- /**
66
- * 生成一组协调的颜色
67
- */
68
- const generateColors = (count = config.count) => {
69
- colors.value = generateHarmoniousColors(baseColor.value, count, {
70
- hueRange: hueRange.value,
71
- saturationRange: saturationRange.value,
72
- lightnessRange: lightnessRange.value,
73
- colorType: '',
74
- })
75
-
76
- return colors.value
77
- }
78
-
79
- /**
80
- * 生成图标颜色(使用智能算法)
81
- */
82
- const generateSmartIconColors = (count = config.count) => {
83
- colors.value = generateIconColors(baseColor.value, count)
84
- return colors.value
85
- }
86
-
87
- /**
88
- * 生成颜色变体
89
- */
90
- const generateColorVariants = () => {
91
- const variants = ['lighter', 'light', 'dark', 'darker', 'muted']
92
- colorVariants.value = {}
93
-
94
- variants.forEach((variant) => {
95
- colorVariants.value[variant] = getColorVariant(baseColor.value, variant)
96
- })
97
-
98
- return colorVariants.value
99
- }
100
-
101
- /**
102
- * 更新基础颜色
103
- */
104
- // const updateBaseColor = (newHex: string) => {
105
- // baseColor.value = newHex;
106
- // if (config.autoRegenerate) {
107
- // generateRandomColor();
108
- // generateColors();
109
- // }
110
- // };
111
-
112
- /**
113
- * 更新配置
114
- */
115
- const updateConfig = (newConfig: { hueRange: number | undefined, saturationRange: number | undefined, lightnessRange: number | undefined }) => {
116
- if (newConfig.hueRange !== undefined) {
117
- hueRange.value = newConfig.hueRange
118
- }
119
- if (newConfig.saturationRange !== undefined) {
120
- saturationRange.value = newConfig.saturationRange
121
- }
122
- if (newConfig.lightnessRange !== undefined) {
123
- lightnessRange.value = newConfig.lightnessRange
124
- }
125
-
126
- if (config.autoRegenerate) {
127
- generateRandomColor()
128
- generateColors()
129
- }
130
- }
131
-
132
- /**
133
- * 获取CSS变量对象,方便在CSS中使用
134
- */
135
- const cssVariables = computed(() => {
136
- const vars: Record<string, string> = {
137
- '--primary': baseColor.value,
138
- '--primary-rgb': `${baseRgb.value.r}, ${baseRgb.value.g}, ${baseRgb.value.b}`,
139
- }
140
-
141
- // 添加颜色变体
142
- Object.entries(colorVariants.value).forEach(([key, value]) => {
143
- vars[`--primary-${key}`] = value as string
144
- })
145
-
146
- // 添加生成的颜色
147
- colors.value.forEach((color, index) => {
148
- vars[`--color-${index + 1}`] = color.hex
149
- vars[`--color-${index + 1}-rgb`] = `${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b}`
150
- })
151
-
152
- return vars
153
- })
154
-
155
- /**
156
- * 应用到DOM元素的样式
157
- */
158
- const applyStyleToElement = (element: { style: { color: any, setProperty: (arg0: string, arg1: any) => void } }, colorObj: { hex: any }) => {
159
- if (element && colorObj) {
160
- element.style.color = colorObj.hex
161
- element.style.setProperty('--current-color', colorObj.hex)
162
- }
163
- }
164
-
165
- // 初始化
166
- generateRandomColor()
167
- generateColors()
168
- generateColorVariants()
169
-
170
- return {
171
- // 响应式数据
172
- baseColor,
173
- baseRgb,
174
- hueRange,
175
- saturationRange,
176
- lightnessRange,
177
- colors,
178
- currentRandomColor,
179
- colorVariants,
180
- cssVariables,
181
-
182
- // 计算属性
183
- currentHex: computed(() =>
184
- currentRandomColor.value?.hex || baseColor.value,
185
- ),
186
-
187
- // 方法
188
- generateRandomColor,
189
- generateColors,
190
- generateSmartIconColors,
191
- generateColorVariants,
192
- // updateBaseColor,
193
- updateConfig,
194
- applyStyleToElement,
195
-
196
- // 工具方法
197
- hexToRgb,
198
- rgbToHex,
199
- }
200
- }
201
-
202
- /**
203
- * 快速使用的简易版本
204
- * @param {string} baseHex - 基础颜色
205
- * @returns {object} 简化的颜色生成器
206
- */
207
- export function useQuickColorGenerator() {
208
- const generator = useColorGenerator({
209
- count: 5,
210
- autoRegenerate: false,
211
- })
212
-
213
- // 立即生成一次
214
- generator.generateSmartIconColors()
215
-
216
- return {
217
- colors: generator.colors,
218
- getRandomColor: generator.generateRandomColor,
219
- refreshColors: () => generator.generateSmartIconColors(5),
220
- }
221
- }
1
+ import { computed, ref } from 'vue'
2
+ import {
3
+ generateHarmoniousColors,
4
+ generateIconColors,
5
+ generateRandomColorFromHex,
6
+ getColorVariant,
7
+ hexToRgb,
8
+ rgbToHex,
9
+ } from '../utils/index'
10
+ import { useManualTheme } from './useManualTheme'
11
+ // 定义颜色对象的类型
12
+ interface ColorObject {
13
+ hex: string
14
+ rgb: { r: number, g: number, b: number }
15
+ hsl: { h: number, s: number, l: number }
16
+ }
17
+
18
+ /**
19
+ * Vue 3 Composition API: 颜色生成器
20
+ * @param {string} baseHex - 基础十六进制颜色,如 #2164F3
21
+ * @param {object} options - 配置选项
22
+ * @returns {object} 颜色相关的方法和响应式数据
23
+ */
24
+ export function useColorGenerator(options = {}) {
25
+ // 默认配置
26
+ const defaultOptions = {
27
+ hueRange: 60,
28
+ saturationRange: 0,
29
+ lightnessRange: 0,
30
+ count: 8,
31
+ autoRegenerate: true,
32
+ }
33
+
34
+ const config = { ...defaultOptions, ...options }
35
+ const {
36
+ currentThemeColor,
37
+ } = useManualTheme()
38
+ // 响应式数据
39
+ const baseColor = computed(() => currentThemeColor.value.primary)
40
+ const hueRange = ref(config.hueRange)
41
+ const saturationRange = ref(config.saturationRange)
42
+ const lightnessRange = ref(config.lightnessRange)
43
+ const colors = ref<ColorObject[]>([])
44
+ const currentRandomColor = ref<ColorObject | null>(null)
45
+ const colorVariants = ref<Record<string, string>>({})
46
+
47
+ /**
48
+ * 生成基础颜色的RGB对象
49
+ */
50
+ const baseRgb = computed(() => hexToRgb(baseColor.value))
51
+
52
+ /**
53
+ * 生成单个随机颜色
54
+ */
55
+ const generateRandomColor = () => {
56
+ currentRandomColor.value = generateRandomColorFromHex(baseColor.value, {
57
+ hueRange: hueRange.value,
58
+ saturationRange: saturationRange.value,
59
+ lightnessRange: lightnessRange.value,
60
+ })
61
+
62
+ return currentRandomColor.value
63
+ }
64
+
65
+ /**
66
+ * 生成一组协调的颜色
67
+ */
68
+ const generateColors = (count = config.count) => {
69
+ colors.value = generateHarmoniousColors(baseColor.value, count, {
70
+ hueRange: hueRange.value,
71
+ saturationRange: saturationRange.value,
72
+ lightnessRange: lightnessRange.value,
73
+ colorType: '',
74
+ })
75
+
76
+ return colors.value
77
+ }
78
+
79
+ /**
80
+ * 生成图标颜色(使用智能算法)
81
+ */
82
+ const generateSmartIconColors = (count = config.count) => {
83
+ colors.value = generateIconColors(baseColor.value, count)
84
+ return colors.value
85
+ }
86
+
87
+ /**
88
+ * 生成颜色变体
89
+ */
90
+ const generateColorVariants = () => {
91
+ const variants = ['lighter', 'light', 'dark', 'darker', 'muted']
92
+ colorVariants.value = {}
93
+
94
+ variants.forEach((variant) => {
95
+ colorVariants.value[variant] = getColorVariant(baseColor.value, variant)
96
+ })
97
+
98
+ return colorVariants.value
99
+ }
100
+
101
+ /**
102
+ * 更新基础颜色
103
+ */
104
+ // const updateBaseColor = (newHex: string) => {
105
+ // baseColor.value = newHex;
106
+ // if (config.autoRegenerate) {
107
+ // generateRandomColor();
108
+ // generateColors();
109
+ // }
110
+ // };
111
+
112
+ /**
113
+ * 更新配置
114
+ */
115
+ const updateConfig = (newConfig: { hueRange: number | undefined, saturationRange: number | undefined, lightnessRange: number | undefined }) => {
116
+ if (newConfig.hueRange !== undefined) {
117
+ hueRange.value = newConfig.hueRange
118
+ }
119
+ if (newConfig.saturationRange !== undefined) {
120
+ saturationRange.value = newConfig.saturationRange
121
+ }
122
+ if (newConfig.lightnessRange !== undefined) {
123
+ lightnessRange.value = newConfig.lightnessRange
124
+ }
125
+
126
+ if (config.autoRegenerate) {
127
+ generateRandomColor()
128
+ generateColors()
129
+ }
130
+ }
131
+
132
+ /**
133
+ * 获取CSS变量对象,方便在CSS中使用
134
+ */
135
+ const cssVariables = computed(() => {
136
+ const vars: Record<string, string> = {
137
+ '--primary': baseColor.value,
138
+ '--primary-rgb': `${baseRgb.value.r}, ${baseRgb.value.g}, ${baseRgb.value.b}`,
139
+ }
140
+
141
+ // 添加颜色变体
142
+ Object.entries(colorVariants.value).forEach(([key, value]) => {
143
+ vars[`--primary-${key}`] = value as string
144
+ })
145
+
146
+ // 添加生成的颜色
147
+ colors.value.forEach((color, index) => {
148
+ vars[`--color-${index + 1}`] = color.hex
149
+ vars[`--color-${index + 1}-rgb`] = `${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b}`
150
+ })
151
+
152
+ return vars
153
+ })
154
+
155
+ /**
156
+ * 应用到DOM元素的样式
157
+ */
158
+ const applyStyleToElement = (element: { style: { color: any, setProperty: (arg0: string, arg1: any) => void } }, colorObj: { hex: any }) => {
159
+ if (element && colorObj) {
160
+ element.style.color = colorObj.hex
161
+ element.style.setProperty('--current-color', colorObj.hex)
162
+ }
163
+ }
164
+
165
+ // 初始化
166
+ generateRandomColor()
167
+ generateColors()
168
+ generateColorVariants()
169
+
170
+ return {
171
+ // 响应式数据
172
+ baseColor,
173
+ baseRgb,
174
+ hueRange,
175
+ saturationRange,
176
+ lightnessRange,
177
+ colors,
178
+ currentRandomColor,
179
+ colorVariants,
180
+ cssVariables,
181
+
182
+ // 计算属性
183
+ currentHex: computed(() =>
184
+ currentRandomColor.value?.hex || baseColor.value,
185
+ ),
186
+
187
+ // 方法
188
+ generateRandomColor,
189
+ generateColors,
190
+ generateSmartIconColors,
191
+ generateColorVariants,
192
+ // updateBaseColor,
193
+ updateConfig,
194
+ applyStyleToElement,
195
+
196
+ // 工具方法
197
+ hexToRgb,
198
+ rgbToHex,
199
+ }
200
+ }
201
+
202
+ /**
203
+ * 快速使用的简易版本
204
+ * @param {string} baseHex - 基础颜色
205
+ * @returns {object} 简化的颜色生成器
206
+ */
207
+ export function useQuickColorGenerator() {
208
+ const generator = useColorGenerator({
209
+ count: 5,
210
+ autoRegenerate: false,
211
+ })
212
+
213
+ // 立即生成一次
214
+ generator.generateSmartIconColors()
215
+
216
+ return {
217
+ colors: generator.colors,
218
+ getRandomColor: generator.generateRandomColor,
219
+ refreshColors: () => generator.generateSmartIconColors(5),
220
+ }
221
+ }
@@ -8,7 +8,7 @@ export function useCompanyFieldFilter(
8
8
  fieldGroup: () => Groups | undefined,
9
9
  model: Ref<any>,
10
10
  enabled: boolean = true,
11
- companyFieldSourceId: string = COMPANY_FIELD_SOURCE_ID,
11
+ companyFieldSourceId: string = COMPANY_FIELD_SOURCE_ID
12
12
  ) {
13
13
  const deliveryCompanySourceId = ref<string>('')
14
14
  const selectedCompany = ref<string>('')
@@ -16,11 +16,11 @@ export function useCompanyFieldFilter(
16
16
  if (enabled) {
17
17
  watch(
18
18
  () => fieldGroup()?.fields,
19
- (newFields) => {
19
+ newFields => {
20
20
  const companyField: any = newFields?.find((item: any) => item.sourceId === companyFieldSourceId) || {}
21
21
  deliveryCompanySourceId.value = companyField.sourceId || ''
22
22
  },
23
- { deep: true, immediate: true },
23
+ { deep: true, immediate: true }
24
24
  )
25
25
 
26
26
  // 直接监听 model 中对应字段的值变化
@@ -33,59 +33,61 @@ export function useCompanyFieldFilter(
33
33
 
34
34
  watch(
35
35
  companyFieldValue,
36
- (newValue) => {
36
+ newValue => {
37
37
  selectedCompany.value = newValue ? String(newValue).substring(0, 2) : ''
38
38
  },
39
- { immediate: true },
39
+ { immediate: true }
40
40
  )
41
41
  }
42
42
 
43
- const formatFieldsItem=(company:string,item:any)=>{
44
- const transDefaultValue = item.usableRuleCriterias?.[0]?.transDefaultValue||''
45
- const isHidden=item?.unusableMode==='hidden'
46
- const values = transDefaultValue.split(',').map(v => v.trim())
47
- if(!company){
43
+ const formatFieldsItem = (company: string, item: any) => {
44
+ const transDefaultValue = item.usableRuleCriteria?.[0]?.transDefaultValue || ''
45
+ const isHidden = item?.unusableMode === 'hidden'
46
+ const values = transDefaultValue.split(',').map(v => v.trim())
47
+ if (!company) {
48
48
  return {
49
49
  ...item,
50
- hidden:isHidden,
50
+ hidden: isHidden,
51
51
  }
52
- }else{
53
-
52
+ } else {
54
53
  return {
55
54
  ...item,
56
- hidden: values.some(v => v.includes(company))?false:item.hidden,
55
+ hidden: values.some(v => v.includes(company)) ? false : item.hidden,
57
56
  }
58
-
59
57
  }
60
58
  }
61
59
  const filteredFields = computed(() => {
62
60
  const company = selectedCompany.value
63
61
  const allFields = fieldGroup()?.fields
64
- if (!allFields)
65
- return []
62
+ if (!allFields) return []
66
63
  const formattedFields = allFields.filter((item: any) => {
67
64
  // 如果没有选中公司,所有字段都显示
68
65
  if (!company) {
69
66
  return true
70
67
  }
71
- // 检查 usableRuleCriterias 是否存在且有值
72
- if (!item.usableRuleCriterias || item.usableRuleCriterias.length === 0) {
68
+ // 检查 usableRuleCriteria 是否存在且有值
69
+ if (!item.usableRuleCriteria || item.usableRuleCriteria.length === 0) {
73
70
  return true
74
71
  }
75
72
  // 获取 transDefaultValue 并检查是否包含选中的公司
76
- const transDefaultValue = item.usableRuleCriterias?.[0]?.transDefaultValue
73
+ const transDefaultValue = item.usableRuleCriteria?.[0]?.transDefaultValue
77
74
  if (typeof transDefaultValue === 'string') {
78
75
  const values = transDefaultValue.split(',').map(v => v.trim())
79
76
  // console.log('transDefaultValue', company, 'values', values,values.includes(company))
80
- return values.some(v => v.includes(company) )
77
+ return values.some(v => v.includes(company))
81
78
  }
82
79
  return true
83
80
  })
81
+ console.log('formattedFields', formattedFields)
84
82
  return formattedFields.map((item: any) => formatFieldsItem(company, item))
85
83
  })
86
- watch(filteredFields, (val) => {
87
- // console.log('filteredFields变化了', val, 'selectedCompany:', selectedCompany.value)
88
- }, { immediate: true })
84
+ watch(
85
+ filteredFields,
86
+ val => {
87
+ // console.log('filteredFields变化了', val, 'selectedCompany:', selectedCompany.value)
88
+ },
89
+ { immediate: true }
90
+ )
89
91
 
90
92
  return { filteredFields, selectedCompany }
91
93
  }
@@ -1,43 +1,43 @@
1
- import { ref } from 'vue'
2
- import { enums } from '../api/page'
3
- import ControlTypeSupportor from '../utils/control-type-supportor'
4
- import type { Enums } from '../type'
5
-
6
- export function useEnums({ config }: { config: any }) {
7
- const enumColumn = ref<Enums>({})
8
- // 获取枚举
9
- async function getEnums() {
10
- try {
11
- const params: string[] = []
12
- const criteria = config.value?.criteria ?? []
13
- const columns = config.value.columns ?? []
14
- const writes = config.value.rowActions?.reduce((acc: any, cur: any) => {
15
- return [...acc, ...cur.writes]
16
- }, []) || []
17
- columns.forEach((item: any) => {
18
- if (ControlTypeSupportor.getControlType(item) === 'select' || ControlTypeSupportor.getControlType(item) === 'multiselect') {
19
- params.push(`mstrucIds=${item.mstrucId}`)
20
- }
21
- })
22
- criteria.forEach((item: any) => {
23
- if (ControlTypeSupportor.getControlType(item) === 'select' || ControlTypeSupportor.getControlType(item) === 'multiselect') {
24
- params.push(`mstrucIds=${item.mstrucId}`)
25
- }
26
- })
27
- writes.forEach((item: any) => {
28
- if (ControlTypeSupportor.getControlType(item) === 'select' || ControlTypeSupportor.getControlType(item) === 'multiselect') {
29
- params.push(`mstrucIds=${item.mstrucId}`)
30
- }
31
- })
32
- if (!params.length)
33
- return
34
- const res = await enums(params.join('&'))
35
- enumColumn.value = res.enumMap || {}
36
- }
37
- catch (error) {
38
- console.log('error:', error)
39
- }
40
- }
41
-
42
- return { getEnums, enumColumn }
43
- }
1
+ import { ref } from 'vue'
2
+ import { enums } from '../api/page'
3
+ import ControlTypeSupportor from '../utils/control-type-supportor'
4
+ import type { Enums } from '../type'
5
+
6
+ export function useEnums({ config }: { config: any }) {
7
+ const enumColumn = ref<Enums>({})
8
+ // 获取枚举
9
+ async function getEnums() {
10
+ try {
11
+ const params: string[] = []
12
+ const criteria = config.value?.criteria ?? []
13
+ const columns = config.value.columns ?? []
14
+ const writes = config.value.rowActions?.reduce((acc: any, cur: any) => {
15
+ return [...acc, ...cur.writes]
16
+ }, []) || []
17
+ columns.forEach((item: any) => {
18
+ if (ControlTypeSupportor.getControlType(item) === 'select' || ControlTypeSupportor.getControlType(item) === 'multiselect') {
19
+ params.push(`mstrucIds=${item.mstrucId}`)
20
+ }
21
+ })
22
+ criteria.forEach((item: any) => {
23
+ if (ControlTypeSupportor.getControlType(item) === 'select' || ControlTypeSupportor.getControlType(item) === 'multiselect') {
24
+ params.push(`mstrucIds=${item.mstrucId}`)
25
+ }
26
+ })
27
+ writes.forEach((item: any) => {
28
+ if (ControlTypeSupportor.getControlType(item) === 'select' || ControlTypeSupportor.getControlType(item) === 'multiselect') {
29
+ params.push(`mstrucIds=${item.mstrucId}`)
30
+ }
31
+ })
32
+ if (!params.length)
33
+ return
34
+ const res = await enums(params.join('&'))
35
+ enumColumn.value = res.enumMap || {}
36
+ }
37
+ catch (error) {
38
+ console.log('error:', error)
39
+ }
40
+ }
41
+
42
+ return { getEnums, enumColumn }
43
+ }