wui-components-v2 1.1.70 → 1.1.71

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 (79) 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/global-loading/GlobalLoading.md +366 -366
  14. package/components/global-loading/global-loading.vue +55 -55
  15. package/components/global-message/GlobalMessage.md +570 -570
  16. package/components/global-toast/GlobalToast.md +261 -261
  17. package/components/global-toast/global-toast.vue +56 -56
  18. package/components/label-value/open-value-more.vue +56 -56
  19. package/components/loading/loading.vue +5 -5
  20. package/components/login-form-box/login-form-box.vue +65 -65
  21. package/components/phone-login-form/phone-login-form.vue +204 -204
  22. package/components/privacy-popup/privacy-popup.vue +191 -191
  23. package/components/scan-input/scan-input.vue +406 -406
  24. package/components/select-col-picker/select-col-picker.vue +168 -168
  25. package/components/tab-search/tab-search.vue +73 -73
  26. package/components/tree-select/components/TreeNode.vue +200 -200
  27. package/components/tree-select/components/index.vue +471 -471
  28. package/components/tree-select/components/tree-select.vue +56 -56
  29. package/components/tree-select/index.vue +93 -93
  30. package/components/user-choose/user-choose.vue +169 -151
  31. package/components/video-play/video-play.vue +56 -56
  32. package/components/wui-auto-update-component/wui-auto-update-component.vue +132 -132
  33. package/components/wui-default/wui-default.vue +49 -49
  34. package/components/wui-details-page/wui-details-page.vue +147 -147
  35. package/components/wui-edit-page/wui-edit-page-copy.vue +757 -757
  36. package/components/wui-edit-page/wui-edit-page.vue +793 -793
  37. package/components/wui-login/wui-login.vue +43 -43
  38. package/components/wui-login1/wui-login.vue +41 -41
  39. package/components/wui-menus/wui-menus-top.vue +137 -137
  40. package/components/wui-menus/wui-menus-top1.vue +8 -8
  41. package/components/wui-menus1/components/banner-carousel.vue +320 -320
  42. package/components/wui-menus1/components/quick-panel.vue +55 -55
  43. package/components/wui-menus1/components/search-bar.vue +49 -49
  44. package/components/wui-menus1/components/section-menus.vue +208 -208
  45. package/components/wui-menus1/wui-menus-top.vue +718 -718
  46. package/components/wui-menus1/wui-menus-top1.vue +398 -398
  47. package/components/wui-notify-info/notify-handle.vue +53 -53
  48. package/components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue +75 -75
  49. package/components/wui-search-history-babbar/components/SearchBar.vue +70 -70
  50. package/components/wui-select-popup/wui-select-popup.vue +1 -0
  51. package/components/wui-tree-page/wui-tree-page.vue +297 -297
  52. package/components/wui-update-component/wui-update-component.vue +221 -221
  53. package/composables/types/theme.ts +65 -65
  54. package/composables/types/user.ts +5 -5
  55. package/composables/useColorGenerator.ts +221 -221
  56. package/composables/useEnumes.ts +43 -43
  57. package/composables/useEventBus.ts +37 -37
  58. package/composables/useGlobalLoading.ts +47 -47
  59. package/composables/useGlobalMessage.ts +53 -53
  60. package/composables/useGlobalToast.ts +63 -63
  61. package/composables/useLocale.ts +54 -54
  62. package/composables/useManualTheme.ts +179 -179
  63. package/composables/useSectionMenus.ts +120 -120
  64. package/composables/useTabbar.ts +50 -50
  65. package/composables/useTheme.ts +74 -74
  66. package/composables/useUser.ts +24 -24
  67. package/index.d.ts +90 -90
  68. package/package.json +24 -24
  69. package/store/manualThemeStore.ts +143 -143
  70. package/store/persist.ts +41 -41
  71. package/store/themeStore.ts +74 -74
  72. package/store/userStore.ts +22 -22
  73. package/styles/dark-mode.scss +498 -498
  74. package/type.ts +154 -154
  75. package/utils/control-tree.ts +353 -353
  76. package/utils/eventBus.ts +36 -36
  77. package/utils/idata-scan.ts +99 -99
  78. package/utils/index.ts +979 -979
  79. 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