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,50 +1,50 @@
1
- import { computed, ref } from 'vue'
2
-
3
- export interface TabbarItem {
4
- name: string
5
- value: number | null
6
- active: boolean
7
- title: string
8
- icon: string
9
- activeIcon?: string // 激活状态自定义图标路径
10
- inactiveIcon?: string // 未激活状态自定义图标路径
11
- }
12
- export function useTabbar(tabbarItems: TabbarItem[]) {
13
- const tabbarList = ref<TabbarItem[]>([...tabbarItems])
14
-
15
- const activeTabbar = computed(() => {
16
- const item = tabbarList.value.find(item => item.active)
17
- return item || tabbarList.value[0]
18
- })
19
-
20
- const getTabbarItemValue = (name: string) => {
21
- const item = tabbarList.value.find(item => item.name === name)
22
- return item && item.value ? item.value : null
23
- }
24
-
25
- const setTabbarItem = (name: string, value: number) => {
26
- const tabbarItem = tabbarList.value.find(item => item.name === name)
27
- if (tabbarItem) {
28
- tabbarItem.value = value
29
- }
30
- }
31
-
32
- const setTabbarItemActive = (name: string) => {
33
- tabbarList.value.forEach((item) => {
34
- if (item.name === name) {
35
- item.active = true
36
- }
37
- else {
38
- item.active = false
39
- }
40
- })
41
- }
42
-
43
- return {
44
- tabbarList,
45
- activeTabbar,
46
- getTabbarItemValue,
47
- setTabbarItem,
48
- setTabbarItemActive,
49
- }
50
- }
1
+ import { computed, ref } from 'vue'
2
+
3
+ export interface TabbarItem {
4
+ name: string
5
+ value: number | null
6
+ active: boolean
7
+ title: string
8
+ icon: string
9
+ activeIcon?: string // 激活状态自定义图标路径
10
+ inactiveIcon?: string // 未激活状态自定义图标路径
11
+ }
12
+ export function useTabbar(tabbarItems: TabbarItem[]) {
13
+ const tabbarList = ref<TabbarItem[]>([...tabbarItems])
14
+
15
+ const activeTabbar = computed(() => {
16
+ const item = tabbarList.value.find(item => item.active)
17
+ return item || tabbarList.value[0]
18
+ })
19
+
20
+ const getTabbarItemValue = (name: string) => {
21
+ const item = tabbarList.value.find(item => item.name === name)
22
+ return item && item.value ? item.value : null
23
+ }
24
+
25
+ const setTabbarItem = (name: string, value: number) => {
26
+ const tabbarItem = tabbarList.value.find(item => item.name === name)
27
+ if (tabbarItem) {
28
+ tabbarItem.value = value
29
+ }
30
+ }
31
+
32
+ const setTabbarItemActive = (name: string) => {
33
+ tabbarList.value.forEach((item) => {
34
+ if (item.name === name) {
35
+ item.active = true
36
+ }
37
+ else {
38
+ item.active = false
39
+ }
40
+ })
41
+ }
42
+
43
+ return {
44
+ tabbarList,
45
+ activeTabbar,
46
+ getTabbarItemValue,
47
+ setTabbarItem,
48
+ setTabbarItemActive,
49
+ }
50
+ }
@@ -1,74 +1,74 @@
1
- import { computed, onBeforeMount, onUnmounted } from 'vue'
2
- import type { ThemeMode } from '../composables/types/theme'
3
- import { useThemeStore } from '../store/themeStore'
4
- /**
5
- * 简化版系统主题管理组合式API
6
- *
7
- * 功能特性:
8
- * - 仅跟随系统主题变化
9
- * - 自动响应系统主题切换
10
- * - 导航栏颜色通过 theme.json 自动处理
11
- * - 轻量级,无额外功能
12
- *
13
- * 适用场景:
14
- * - 只需要系统主题适应的简单应用
15
- * - 不需要用户手动控制主题的应用
16
- * - 追求轻量级主题管理的应用
17
- *
18
- * 注意事项:
19
- * - 不支持手动切换主题
20
- * - 不支持主题色自定义
21
- * - 导航栏颜色依赖 theme.json 配置
22
- *
23
- * @example
24
- * ```vue
25
- * <script setup>
26
- * import { useTheme } from '@/composables/useTheme'
27
- *
28
- * const { theme, isDark, themeVars } = useTheme()
29
- * </script>
30
- *
31
- * <template>
32
- * <wd-config-provider :theme-vars="themeVars">
33
- * <view :class="{ 'dark-mode': isDark }">
34
- * <text>当前主题: {{ theme }}</text>
35
- * </view>
36
- * </wd-config-provider>
37
- * </template>
38
- * ```
39
- */
40
- export function useTheme() {
41
- const store = useThemeStore()
42
-
43
- // 组件挂载前初始化系统主题
44
- onBeforeMount(() => {
45
- store.initSystemTheme()
46
- // 监听系统主题变化
47
- if (typeof uni !== 'undefined' && uni.onThemeChange) {
48
- uni.onThemeChange((res) => {
49
- // 系统主题变化时自动更新,导航栏颜色由 theme.json 自动处理
50
- store.setTheme(res.theme as ThemeMode)
51
- console.log('系统主题已切换至:', res.theme)
52
- })
53
- }
54
- })
55
-
56
- // 组件卸载时清理监听
57
- onUnmounted(() => {
58
- if (typeof uni !== 'undefined' && uni.offThemeChange) {
59
- uni.offThemeChange((res) => {
60
- store.setTheme(res.theme as ThemeMode)
61
- })
62
- }
63
- })
64
-
65
- return {
66
- // 状态(只读)
67
- theme: computed(() => store.theme),
68
- isDark: computed(() => store.isDark),
69
- themeVars: computed(() => store.themeVars),
70
- }
71
- }
72
-
73
- // 导出类型供外部使用
74
- export type { ThemeMode }
1
+ import { computed, onBeforeMount, onUnmounted } from 'vue'
2
+ import type { ThemeMode } from '../composables/types/theme'
3
+ import { useThemeStore } from '../store/themeStore'
4
+ /**
5
+ * 简化版系统主题管理组合式API
6
+ *
7
+ * 功能特性:
8
+ * - 仅跟随系统主题变化
9
+ * - 自动响应系统主题切换
10
+ * - 导航栏颜色通过 theme.json 自动处理
11
+ * - 轻量级,无额外功能
12
+ *
13
+ * 适用场景:
14
+ * - 只需要系统主题适应的简单应用
15
+ * - 不需要用户手动控制主题的应用
16
+ * - 追求轻量级主题管理的应用
17
+ *
18
+ * 注意事项:
19
+ * - 不支持手动切换主题
20
+ * - 不支持主题色自定义
21
+ * - 导航栏颜色依赖 theme.json 配置
22
+ *
23
+ * @example
24
+ * ```vue
25
+ * <script setup>
26
+ * import { useTheme } from '@/composables/useTheme'
27
+ *
28
+ * const { theme, isDark, themeVars } = useTheme()
29
+ * </script>
30
+ *
31
+ * <template>
32
+ * <wd-config-provider :theme-vars="themeVars">
33
+ * <view :class="{ 'dark-mode': isDark }">
34
+ * <text>当前主题: {{ theme }}</text>
35
+ * </view>
36
+ * </wd-config-provider>
37
+ * </template>
38
+ * ```
39
+ */
40
+ export function useTheme() {
41
+ const store = useThemeStore()
42
+
43
+ // 组件挂载前初始化系统主题
44
+ onBeforeMount(() => {
45
+ store.initSystemTheme()
46
+ // 监听系统主题变化
47
+ if (typeof uni !== 'undefined' && uni.onThemeChange) {
48
+ uni.onThemeChange((res) => {
49
+ // 系统主题变化时自动更新,导航栏颜色由 theme.json 自动处理
50
+ store.setTheme(res.theme as ThemeMode)
51
+ console.log('系统主题已切换至:', res.theme)
52
+ })
53
+ }
54
+ })
55
+
56
+ // 组件卸载时清理监听
57
+ onUnmounted(() => {
58
+ if (typeof uni !== 'undefined' && uni.offThemeChange) {
59
+ uni.offThemeChange((res) => {
60
+ store.setTheme(res.theme as ThemeMode)
61
+ })
62
+ }
63
+ })
64
+
65
+ return {
66
+ // 状态(只读)
67
+ theme: computed(() => store.theme),
68
+ isDark: computed(() => store.isDark),
69
+ themeVars: computed(() => store.themeVars),
70
+ }
71
+ }
72
+
73
+ // 导出类型供外部使用
74
+ export type { ThemeMode }
@@ -1,24 +1,24 @@
1
- import useUserStore from '../store/userStore'
2
- import type { UserInfo } from './types/user'
3
-
4
- export function useUser() {
5
- const userStore = useUserStore()
6
-
7
- function setUserInfo(userInfo: UserInfo) {
8
- userStore.setUserInfo(userInfo)
9
- }
10
-
11
- return {
12
- getUserInfo: (): UserInfo => {
13
- return {
14
- id: userStore.id,
15
- name: userStore.name,
16
- nickName: userStore.nickName,
17
- }
18
- },
19
- setUserInfo,
20
- id: userStore.id,
21
- name: userStore.name,
22
- nickName: userStore.nickName,
23
- }
24
- }
1
+ import useUserStore from '../store/userStore'
2
+ import type { UserInfo } from './types/user'
3
+
4
+ export function useUser() {
5
+ const userStore = useUserStore()
6
+
7
+ function setUserInfo(userInfo: UserInfo) {
8
+ userStore.setUserInfo(userInfo)
9
+ }
10
+
11
+ return {
12
+ getUserInfo: (): UserInfo => {
13
+ return {
14
+ id: userStore.id,
15
+ name: userStore.name,
16
+ nickName: userStore.nickName,
17
+ }
18
+ },
19
+ setUserInfo,
20
+ id: userStore.id,
21
+ name: userStore.name,
22
+ nickName: userStore.nickName,
23
+ }
24
+ }
package/index.d.ts CHANGED
@@ -1,90 +1,90 @@
1
- /**
2
- * 核心组件包类型声明文件
3
- */
4
-
5
- import type { App } from 'vue'
6
- import type { ConfigProviderThemeVars } from '@wot-ui/ui'
7
-
8
- // 类型声明
9
- export interface ThemeColorOption {
10
- name: string
11
- value: string
12
- primary: string
13
- }
14
-
15
- export interface LocaleOption {
16
- name: string
17
- value: string
18
- }
19
-
20
- export type ThemeMode = 'light' | 'dark'
21
-
22
- // SystemSettings 组件类型
23
- interface Component {
24
- name: string
25
- }
26
-
27
- // 声明 SystemSettings 组件
28
- declare const SystemSettings: import('vue').DefineComponent<Record<string, any>, Record<string, any>, any> & { name: string }
29
-
30
- // 组件列表类型
31
- declare const coms: Component[]
32
-
33
- /**
34
- * 批量注册组件
35
- * @param app Vue 应用实例
36
- */
37
- export declare function install(app: App): void
38
-
39
- // useLocale 组合式函数返回类型
40
- export interface UseLocaleReturn {
41
- locale: Readonly<LocaleOption>
42
- changeSystemLocale: () => void
43
- }
44
-
45
- // useManualTheme 组合式函数返回类型
46
- export interface UseManualThemeReturn {
47
- theme: Readonly<ThemeMode>
48
- primary: import('vue').ComputedRef<string>
49
- isDark: import('vue').ComputedRef<boolean>
50
- followSystem: import('vue').ComputedRef<boolean>
51
- hasUserSet: import('vue').ComputedRef<boolean>
52
- currentThemeColor: import('vue').ComputedRef<ThemeColorOption>
53
- currentLocale: import('vue').ComputedRef<LocaleOption>
54
- themeVars: import('vue').ComputedRef<ConfigProviderThemeVars>
55
- showThemeColorSheet: import('vue').Ref<boolean>
56
- showLanguageSheet: import('vue').Ref<boolean>
57
- themeColorOptions: ThemeColorOption[]
58
- LocaleOptions: LocaleOption[]
59
- initTheme: () => void
60
- toggleTheme: (mode?: ThemeMode) => void
61
- setFollowSystem: (follow: boolean) => void
62
- openThemeColorPicker: () => void
63
- closeThemeColorPicker: () => void
64
- selectThemeColor: (option: ThemeColorOption) => void
65
- openLanguagePicker: () => void
66
- closeLanguagePicker: () => void
67
- selectLanguage: (option: LocaleOption) => void
68
- }
69
-
70
- // useTheme 组合式函数返回类型
71
- export interface UseThemeReturn {
72
- theme: Readonly<ThemeMode>
73
- isDark: import('vue').ComputedRef<boolean>
74
- themeVars: import('vue').ComputedRef<ConfigProviderThemeVars>
75
- }
76
-
77
- // 组合式API函数类型声明
78
- export declare function useLocale(): UseLocaleReturn
79
- export declare function useManualTheme(): UseManualThemeReturn
80
- export declare function useTheme(): UseThemeReturn
81
-
82
- // 导出声明
83
- export { SystemSettings }
84
-
85
- // 导出常量
86
- export declare const themeColorOptions: ThemeColorOption[]
87
- export declare const LocaleOptions: LocaleOption[]
88
-
89
- // 默认导出 install 函数
90
- export default install
1
+ /**
2
+ * 核心组件包类型声明文件
3
+ */
4
+
5
+ import type { App } from 'vue'
6
+ import type { ConfigProviderThemeVars } from '@wot-ui/ui'
7
+
8
+ // 类型声明
9
+ export interface ThemeColorOption {
10
+ name: string
11
+ value: string
12
+ primary: string
13
+ }
14
+
15
+ export interface LocaleOption {
16
+ name: string
17
+ value: string
18
+ }
19
+
20
+ export type ThemeMode = 'light' | 'dark'
21
+
22
+ // SystemSettings 组件类型
23
+ interface Component {
24
+ name: string
25
+ }
26
+
27
+ // 声明 SystemSettings 组件
28
+ declare const SystemSettings: import('vue').DefineComponent<Record<string, any>, Record<string, any>, any> & { name: string }
29
+
30
+ // 组件列表类型
31
+ declare const coms: Component[]
32
+
33
+ /**
34
+ * 批量注册组件
35
+ * @param app Vue 应用实例
36
+ */
37
+ export declare function install(app: App): void
38
+
39
+ // useLocale 组合式函数返回类型
40
+ export interface UseLocaleReturn {
41
+ locale: Readonly<LocaleOption>
42
+ changeSystemLocale: () => void
43
+ }
44
+
45
+ // useManualTheme 组合式函数返回类型
46
+ export interface UseManualThemeReturn {
47
+ theme: Readonly<ThemeMode>
48
+ primary: import('vue').ComputedRef<string>
49
+ isDark: import('vue').ComputedRef<boolean>
50
+ followSystem: import('vue').ComputedRef<boolean>
51
+ hasUserSet: import('vue').ComputedRef<boolean>
52
+ currentThemeColor: import('vue').ComputedRef<ThemeColorOption>
53
+ currentLocale: import('vue').ComputedRef<LocaleOption>
54
+ themeVars: import('vue').ComputedRef<ConfigProviderThemeVars>
55
+ showThemeColorSheet: import('vue').Ref<boolean>
56
+ showLanguageSheet: import('vue').Ref<boolean>
57
+ themeColorOptions: ThemeColorOption[]
58
+ LocaleOptions: LocaleOption[]
59
+ initTheme: () => void
60
+ toggleTheme: (mode?: ThemeMode) => void
61
+ setFollowSystem: (follow: boolean) => void
62
+ openThemeColorPicker: () => void
63
+ closeThemeColorPicker: () => void
64
+ selectThemeColor: (option: ThemeColorOption) => void
65
+ openLanguagePicker: () => void
66
+ closeLanguagePicker: () => void
67
+ selectLanguage: (option: LocaleOption) => void
68
+ }
69
+
70
+ // useTheme 组合式函数返回类型
71
+ export interface UseThemeReturn {
72
+ theme: Readonly<ThemeMode>
73
+ isDark: import('vue').ComputedRef<boolean>
74
+ themeVars: import('vue').ComputedRef<ConfigProviderThemeVars>
75
+ }
76
+
77
+ // 组合式API函数类型声明
78
+ export declare function useLocale(): UseLocaleReturn
79
+ export declare function useManualTheme(): UseManualThemeReturn
80
+ export declare function useTheme(): UseThemeReturn
81
+
82
+ // 导出声明
83
+ export { SystemSettings }
84
+
85
+ // 导出常量
86
+ export declare const themeColorOptions: ThemeColorOption[]
87
+ export declare const LocaleOptions: LocaleOption[]
88
+
89
+ // 默认导出 install 函数
90
+ export default install
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
- {
2
- "name": "wui-components-v2",
3
- "version": "1.1.70",
4
- "description": "wui 组件库",
5
- "author": "wgxshh",
6
- "license": "MIT",
7
- "main": "index.ts",
8
- "typings": "index.d.ts",
9
- "publishConfig": {
10
- "registry": "https://registry.npmjs.org/"
11
- },
12
- "scripts": {
13
- "test": "echo \"Error: no test specified\" && exit 1"
14
- },
15
- "dependencies": {
16
- "@wot-ui/ui": "^2.0.8",
17
- "china-address-parse": "^1.2.1",
18
- "dayjs": "^1.11.20",
19
- "html5-qrcode": "^2.3.8",
20
- "jsencrypt": "^3.3.2",
21
- "sass": "^1.100.0",
22
- "z-paging": "^2.8.5"
23
- }
24
- }
1
+ {
2
+ "name": "wui-components-v2",
3
+ "version": "1.1.72",
4
+ "description": "wui 组件库",
5
+ "author": "wgxshh",
6
+ "license": "MIT",
7
+ "main": "index.ts",
8
+ "typings": "index.d.ts",
9
+ "publishConfig": {
10
+ "registry": "https://registry.npmjs.org/"
11
+ },
12
+ "scripts": {
13
+ "test": "echo \"Error: no test specified\" && exit 1"
14
+ },
15
+ "dependencies": {
16
+ "@wot-ui/ui": "^2.0.8",
17
+ "china-address-parse": "^1.2.1",
18
+ "dayjs": "^1.11.20",
19
+ "html5-qrcode": "^2.3.8",
20
+ "jsencrypt": "^3.3.2",
21
+ "sass": "^1.100.0",
22
+ "z-paging": "^2.8.5"
23
+ }
24
+ }