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,143 +1,143 @@
1
- import { defineStore } from 'pinia'
2
- import type { LocaleOption, ThemeColorOption, ThemeMode, ThemeState } from '../composables/types/theme'
3
- import { LocaleOptions, themeColorOptions } from '../composables/types/theme'
4
- /**
5
- * 完整版主题状态管理
6
- * 支持手动切换主题、主题色选择、跟随系统主题等完整功能
7
- */
8
- export const useManualThemeStore = defineStore('manualTheme', {
9
- state: (): ThemeState => ({
10
- theme: 'light',
11
- followSystem: true, // 是否跟随系统主题
12
- hasUserSet: false, // 用户是否手动设置过主题
13
- currentThemeColor: themeColorOptions[0],
14
- Locale: LocaleOptions[0],
15
- themeVars: {
16
- darkBackground: '#1B1B1E',
17
- darkBackground2: '#141414',
18
- darkBackground3: '#1c1c1c',
19
- darkBackground4: '#262626',
20
- darkBackground5: '#333333',
21
- darkBackground6: '#4a4a4a',
22
- darkBackground7: '#606060',
23
- darkColor: '#ffffff',
24
- darkColor2: '#e8e8e8',
25
- darkColor3: '#999999',
26
- colorTheme: themeColorOptions[0].primary,
27
- colorPrimary: themeColorOptions[0].primary, // 添加主色调变量,用于 tabbar 等组件
28
- },
29
- }),
30
-
31
- getters: {
32
- isDark: state => state.theme === 'dark',
33
- },
34
-
35
- actions: {
36
- /**
37
- * 手动切换主题
38
- * @param mode 指定主题模式,不传则自动切换
39
- */
40
- toggleTheme(mode?: ThemeMode) {
41
- this.theme = mode || (this.theme === 'light' ? 'dark' : 'light')
42
- this.hasUserSet = true // 标记用户已手动设置
43
- this.followSystem = false // 不再跟随系统
44
- this.setNavigationBarColor()
45
- },
46
-
47
- /**
48
- * 设置是否跟随系统主题
49
- * @param follow 是否跟随系统
50
- */
51
- setFollowSystem(follow: boolean) {
52
- this.followSystem = follow
53
- if (follow) {
54
- this.hasUserSet = false
55
- this.initTheme() // 重新获取系统主题
56
- }
57
- },
58
-
59
- /**
60
- * 设置导航栏颜色
61
- */
62
- setNavigationBarColor() {
63
- uni.setNavigationBarColor({
64
- frontColor: this.theme === 'light' ? '#ffffff' : '#ffffff',
65
- backgroundColor: this.theme === 'light' ? this.themeVars.colorTheme : '#000000',
66
- })
67
- },
68
-
69
- /**
70
- * 设置主题色
71
- * @param color 主题色选项
72
- */
73
- setCurrentThemeColor(color: ThemeColorOption) {
74
- this.currentThemeColor = color
75
- this.themeVars.colorTheme = color.primary
76
- this.themeVars.colorPrimary = color.primary // 同步更新主色调变量
77
- },
78
-
79
- /**
80
- * 设置语言
81
- */
82
- setLocale(locale: LocaleOption) {
83
- this.Locale = locale
84
- },
85
- /**
86
- * 获取系统主题
87
- * @returns 系统主题模式
88
- */
89
- getSystemTheme(): ThemeMode {
90
- try {
91
- // #ifdef MP-WEIXIN
92
- // 微信小程序使用 getAppBaseInfo
93
- const appBaseInfo = uni.getAppBaseInfo()
94
- if (appBaseInfo && appBaseInfo.theme) {
95
- return appBaseInfo.theme as ThemeMode
96
- }
97
- // #endif
98
-
99
- // #ifndef MP-WEIXIN
100
- // 其他平台使用 getSystemInfoSync
101
- const systemInfo = uni.getSystemInfoSync()
102
- if (systemInfo && systemInfo.theme) {
103
- return systemInfo.theme as ThemeMode
104
- }
105
- // #endif
106
- }
107
- catch (error) {
108
- console.warn('获取系统主题失败:', error)
109
- }
110
- return 'light' // 默认返回 light
111
- },
112
-
113
- /**
114
- * 初始化主题
115
- */
116
- initTheme() {
117
- // 如果用户已手动设置且不跟随系统,保持当前主题
118
- if (this.hasUserSet && !this.followSystem) {
119
- console.log('使用用户设置的主题:', this.theme)
120
- this.setNavigationBarColor()
121
- return
122
- }
123
-
124
- // 获取系统主题
125
- const systemTheme = this.getSystemTheme()
126
-
127
- // 如果是首次启动或跟随系统,使用系统主题
128
- if (!this.hasUserSet || this.followSystem) {
129
- this.theme = systemTheme
130
- if (!this.hasUserSet) {
131
- this.followSystem = true
132
- // console.log('首次启动,使用系统主题:', this.theme)
133
- }
134
- else {
135
- console.log('跟随系统主题:', this.theme)
136
- }
137
- }
138
-
139
- this.setNavigationBarColor()
140
- },
141
-
142
- },
143
- })
1
+ import { defineStore } from 'pinia'
2
+ import type { LocaleOption, ThemeColorOption, ThemeMode, ThemeState } from '../composables/types/theme'
3
+ import { LocaleOptions, themeColorOptions } from '../composables/types/theme'
4
+ /**
5
+ * 完整版主题状态管理
6
+ * 支持手动切换主题、主题色选择、跟随系统主题等完整功能
7
+ */
8
+ export const useManualThemeStore = defineStore('manualTheme', {
9
+ state: (): ThemeState => ({
10
+ theme: 'light',
11
+ followSystem: true, // 是否跟随系统主题
12
+ hasUserSet: false, // 用户是否手动设置过主题
13
+ currentThemeColor: themeColorOptions[0],
14
+ Locale: LocaleOptions[0],
15
+ themeVars: {
16
+ darkBackground: '#1B1B1E',
17
+ darkBackground2: '#141414',
18
+ darkBackground3: '#1c1c1c',
19
+ darkBackground4: '#262626',
20
+ darkBackground5: '#333333',
21
+ darkBackground6: '#4a4a4a',
22
+ darkBackground7: '#606060',
23
+ darkColor: '#ffffff',
24
+ darkColor2: '#e8e8e8',
25
+ darkColor3: '#999999',
26
+ colorTheme: themeColorOptions[0].primary,
27
+ colorPrimary: themeColorOptions[0].primary, // 添加主色调变量,用于 tabbar 等组件
28
+ },
29
+ }),
30
+
31
+ getters: {
32
+ isDark: state => state.theme === 'dark',
33
+ },
34
+
35
+ actions: {
36
+ /**
37
+ * 手动切换主题
38
+ * @param mode 指定主题模式,不传则自动切换
39
+ */
40
+ toggleTheme(mode?: ThemeMode) {
41
+ this.theme = mode || (this.theme === 'light' ? 'dark' : 'light')
42
+ this.hasUserSet = true // 标记用户已手动设置
43
+ this.followSystem = false // 不再跟随系统
44
+ this.setNavigationBarColor()
45
+ },
46
+
47
+ /**
48
+ * 设置是否跟随系统主题
49
+ * @param follow 是否跟随系统
50
+ */
51
+ setFollowSystem(follow: boolean) {
52
+ this.followSystem = follow
53
+ if (follow) {
54
+ this.hasUserSet = false
55
+ this.initTheme() // 重新获取系统主题
56
+ }
57
+ },
58
+
59
+ /**
60
+ * 设置导航栏颜色
61
+ */
62
+ setNavigationBarColor() {
63
+ uni.setNavigationBarColor({
64
+ frontColor: this.theme === 'light' ? '#ffffff' : '#ffffff',
65
+ backgroundColor: this.theme === 'light' ? this.themeVars.colorTheme : '#000000',
66
+ })
67
+ },
68
+
69
+ /**
70
+ * 设置主题色
71
+ * @param color 主题色选项
72
+ */
73
+ setCurrentThemeColor(color: ThemeColorOption) {
74
+ this.currentThemeColor = color
75
+ this.themeVars.colorTheme = color.primary
76
+ this.themeVars.colorPrimary = color.primary // 同步更新主色调变量
77
+ },
78
+
79
+ /**
80
+ * 设置语言
81
+ */
82
+ setLocale(locale: LocaleOption) {
83
+ this.Locale = locale
84
+ },
85
+ /**
86
+ * 获取系统主题
87
+ * @returns 系统主题模式
88
+ */
89
+ getSystemTheme(): ThemeMode {
90
+ try {
91
+ // #ifdef MP-WEIXIN
92
+ // 微信小程序使用 getAppBaseInfo
93
+ const appBaseInfo = uni.getAppBaseInfo()
94
+ if (appBaseInfo && appBaseInfo.theme) {
95
+ return appBaseInfo.theme as ThemeMode
96
+ }
97
+ // #endif
98
+
99
+ // #ifndef MP-WEIXIN
100
+ // 其他平台使用 getSystemInfoSync
101
+ const systemInfo = uni.getSystemInfoSync()
102
+ if (systemInfo && systemInfo.theme) {
103
+ return systemInfo.theme as ThemeMode
104
+ }
105
+ // #endif
106
+ }
107
+ catch (error) {
108
+ console.warn('获取系统主题失败:', error)
109
+ }
110
+ return 'light' // 默认返回 light
111
+ },
112
+
113
+ /**
114
+ * 初始化主题
115
+ */
116
+ initTheme() {
117
+ // 如果用户已手动设置且不跟随系统,保持当前主题
118
+ if (this.hasUserSet && !this.followSystem) {
119
+ console.log('使用用户设置的主题:', this.theme)
120
+ this.setNavigationBarColor()
121
+ return
122
+ }
123
+
124
+ // 获取系统主题
125
+ const systemTheme = this.getSystemTheme()
126
+
127
+ // 如果是首次启动或跟随系统,使用系统主题
128
+ if (!this.hasUserSet || this.followSystem) {
129
+ this.theme = systemTheme
130
+ if (!this.hasUserSet) {
131
+ this.followSystem = true
132
+ // console.log('首次启动,使用系统主题:', this.theme)
133
+ }
134
+ else {
135
+ console.log('跟随系统主题:', this.theme)
136
+ }
137
+ }
138
+
139
+ this.setNavigationBarColor()
140
+ },
141
+
142
+ },
143
+ })
package/store/persist.ts CHANGED
@@ -1,41 +1,41 @@
1
- /*
2
- * @Author: weisheng
3
- * @Date: 2025-06-23 22:23:05
4
- * @LastEditTime: 2025-06-24 19:03:21
5
- * @LastEditors: weisheng
6
- * @Description:
7
- * @FilePath: /wot-demo/src/store/persist.ts
8
- * 记得注释
9
- */
10
- import type { PiniaPluginContext } from 'pinia'
11
- import { CommonUtil } from '@wot-ui/ui'
12
-
13
- function persist({ store }: PiniaPluginContext, excludedIds: string[]) {
14
- // 检查当前store的id是否在排除列表中
15
- const isExcluded = excludedIds.includes(store.$id)
16
-
17
- // 如果当前store的id在排除列表中,则不进行持久化
18
- if (isExcluded) {
19
- return
20
- }
21
-
22
- // 暂存State
23
- let persistState = CommonUtil.deepClone(store.$state)
24
- // 从缓存中读取
25
- const storageState = uni.getStorageSync(store.$id)
26
- if (storageState) {
27
- persistState = storageState
28
- }
29
- store.$state = persistState
30
- store.$subscribe(() => {
31
- // 在存储变化的时候将store缓存
32
- uni.setStorageSync(store.$id, CommonUtil.deepClone(store.$state))
33
- })
34
- }
35
-
36
- export function persistPlugin(list: string[]) {
37
- return (context: PiniaPluginContext) => {
38
- // 调用persist函数,并传入排除列表
39
- persist(context, list)
40
- }
41
- }
1
+ /*
2
+ * @Author: weisheng
3
+ * @Date: 2025-06-23 22:23:05
4
+ * @LastEditTime: 2025-06-24 19:03:21
5
+ * @LastEditors: weisheng
6
+ * @Description:
7
+ * @FilePath: /wot-demo/src/store/persist.ts
8
+ * 记得注释
9
+ */
10
+ import type { PiniaPluginContext } from 'pinia'
11
+ import { CommonUtil } from '@wot-ui/ui'
12
+
13
+ function persist({ store }: PiniaPluginContext, excludedIds: string[]) {
14
+ // 检查当前store的id是否在排除列表中
15
+ const isExcluded = excludedIds.includes(store.$id)
16
+
17
+ // 如果当前store的id在排除列表中,则不进行持久化
18
+ if (isExcluded) {
19
+ return
20
+ }
21
+
22
+ // 暂存State
23
+ let persistState = CommonUtil.deepClone(store.$state)
24
+ // 从缓存中读取
25
+ const storageState = uni.getStorageSync(store.$id)
26
+ if (storageState) {
27
+ persistState = storageState
28
+ }
29
+ store.$state = persistState
30
+ store.$subscribe(() => {
31
+ // 在存储变化的时候将store缓存
32
+ uni.setStorageSync(store.$id, CommonUtil.deepClone(store.$state))
33
+ })
34
+ }
35
+
36
+ export function persistPlugin(list: string[]) {
37
+ return (context: PiniaPluginContext) => {
38
+ // 调用persist函数,并传入排除列表
39
+ persist(context, list)
40
+ }
41
+ }
@@ -1,74 +1,74 @@
1
- import { defineStore } from 'pinia'
2
- import type { SystemThemeState, ThemeMode } from '../composables/types/theme'
3
- import { themeColorOptions } from '../composables/types/theme'
4
-
5
- /**
6
- * 简化版系统主题状态管理
7
- * 仅支持跟随系统主题,不提供手动切换功能
8
- * 导航栏颜色通过 theme.json 自动处理
9
- */
10
- export const useThemeStore = defineStore('theme', {
11
- state: (): SystemThemeState => ({
12
- theme: 'light',
13
- themeVars: {
14
- darkBackground: '#0f0f0f',
15
- darkBackground2: '#1a1a1a',
16
- darkBackground3: '#242424',
17
- darkBackground4: '#2f2f2f',
18
- darkBackground5: '#3d3d3d',
19
- darkBackground6: '#4a4a4a',
20
- darkBackground7: '#606060',
21
- darkColor: '#ffffff',
22
- darkColor2: '#e0e0e0',
23
- darkColor3: '#a0a0a0',
24
- colorTheme: themeColorOptions[0].primary,
25
- },
26
- }),
27
-
28
- getters: {
29
- isDark: state => state.theme === 'dark',
30
- },
31
-
32
- actions: {
33
- /**
34
- * 获取系统主题
35
- * @returns 系统主题模式
36
- */
37
- getSystemTheme(): ThemeMode {
38
- // #ifdef MP-WEIXIN
39
- // 微信小程序使用 getAppBaseInfo
40
- const appBaseInfo = uni.getAppBaseInfo()
41
- if (appBaseInfo && appBaseInfo.theme) {
42
- return appBaseInfo.theme as ThemeMode
43
- }
44
- // #endif
45
-
46
- // #ifndef MP-WEIXIN
47
- // 其他平台使用 getSystemInfoSync
48
- const systemInfo = uni.getSystemInfoSync()
49
- if (systemInfo && systemInfo.theme) {
50
- return systemInfo.theme as ThemeMode
51
- }
52
- // #endif
53
-
54
- return 'light' // 默认返回 light
55
- },
56
-
57
- /**
58
- * 设置主题(仅内部使用)
59
- * @param theme 主题模式
60
- */
61
- setTheme(theme: ThemeMode) {
62
- this.theme = theme
63
- },
64
-
65
- /**
66
- * 初始化系统主题
67
- */
68
- initSystemTheme() {
69
- const systemTheme = this.getSystemTheme()
70
- this.theme = systemTheme
71
- console.log('初始化系统主题:', this.theme)
72
- },
73
- },
74
- })
1
+ import { defineStore } from 'pinia'
2
+ import type { SystemThemeState, ThemeMode } from '../composables/types/theme'
3
+ import { themeColorOptions } from '../composables/types/theme'
4
+
5
+ /**
6
+ * 简化版系统主题状态管理
7
+ * 仅支持跟随系统主题,不提供手动切换功能
8
+ * 导航栏颜色通过 theme.json 自动处理
9
+ */
10
+ export const useThemeStore = defineStore('theme', {
11
+ state: (): SystemThemeState => ({
12
+ theme: 'light',
13
+ themeVars: {
14
+ darkBackground: '#0f0f0f',
15
+ darkBackground2: '#1a1a1a',
16
+ darkBackground3: '#242424',
17
+ darkBackground4: '#2f2f2f',
18
+ darkBackground5: '#3d3d3d',
19
+ darkBackground6: '#4a4a4a',
20
+ darkBackground7: '#606060',
21
+ darkColor: '#ffffff',
22
+ darkColor2: '#e0e0e0',
23
+ darkColor3: '#a0a0a0',
24
+ colorTheme: themeColorOptions[0].primary,
25
+ },
26
+ }),
27
+
28
+ getters: {
29
+ isDark: state => state.theme === 'dark',
30
+ },
31
+
32
+ actions: {
33
+ /**
34
+ * 获取系统主题
35
+ * @returns 系统主题模式
36
+ */
37
+ getSystemTheme(): ThemeMode {
38
+ // #ifdef MP-WEIXIN
39
+ // 微信小程序使用 getAppBaseInfo
40
+ const appBaseInfo = uni.getAppBaseInfo()
41
+ if (appBaseInfo && appBaseInfo.theme) {
42
+ return appBaseInfo.theme as ThemeMode
43
+ }
44
+ // #endif
45
+
46
+ // #ifndef MP-WEIXIN
47
+ // 其他平台使用 getSystemInfoSync
48
+ const systemInfo = uni.getSystemInfoSync()
49
+ if (systemInfo && systemInfo.theme) {
50
+ return systemInfo.theme as ThemeMode
51
+ }
52
+ // #endif
53
+
54
+ return 'light' // 默认返回 light
55
+ },
56
+
57
+ /**
58
+ * 设置主题(仅内部使用)
59
+ * @param theme 主题模式
60
+ */
61
+ setTheme(theme: ThemeMode) {
62
+ this.theme = theme
63
+ },
64
+
65
+ /**
66
+ * 初始化系统主题
67
+ */
68
+ initSystemTheme() {
69
+ const systemTheme = this.getSystemTheme()
70
+ this.theme = systemTheme
71
+ console.log('初始化系统主题:', this.theme)
72
+ },
73
+ },
74
+ })
@@ -1,22 +1,22 @@
1
- import { defineStore } from 'pinia'
2
-
3
- const useUserStore = defineStore('userInfo', {
4
- state: () => ({
5
- id: '',
6
- name: '',
7
- nickName: '',
8
- }),
9
- getters: {
10
-
11
- },
12
- actions: {
13
- setUserInfo(userInfo: any) {
14
- this.id = userInfo.id
15
- this.name = userInfo.name
16
- this.nickName = userInfo.nickName
17
- },
18
-
19
- },
20
- })
21
-
22
- export default useUserStore
1
+ import { defineStore } from 'pinia'
2
+
3
+ const useUserStore = defineStore('userInfo', {
4
+ state: () => ({
5
+ id: '',
6
+ name: '',
7
+ nickName: '',
8
+ }),
9
+ getters: {
10
+
11
+ },
12
+ actions: {
13
+ setUserInfo(userInfo: any) {
14
+ this.id = userInfo.id
15
+ this.name = userInfo.name
16
+ this.nickName = userInfo.nickName
17
+ },
18
+
19
+ },
20
+ })
21
+
22
+ export default useUserStore