uview-pro 0.4.7 → 0.4.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.
package/changelog.md CHANGED
@@ -1,22 +1,62 @@
1
- ## 0.4.7(2025-12-19
1
+ ## 0.4.9(2025-12-24
2
2
 
3
- ### 🚀 Chore | 构建/工程依赖/工具
3
+ ### 📝 Documentation | 文档
4
4
 
5
- - 忽略部分文件 ([a8a747f](https://github.com/anyup/uView-Pro/commit/a8a747f97e93ed278a305cd1b2671d2ede5c0fde))
5
+ - **readme:** 修复捐赠页面链接 ([93323ab](https://github.com/anyup/uView-Pro/commit/93323ab414ddc5a4542604928f221a050cbe55c5))
6
6
 
7
7
  ### ✨ Features | 新功能
8
8
 
9
- - **u-tabbar:** u-tabbar 组件支持 custom-icon 直接配置图标 custom-prefix ([e577c2d](https://github.com/anyup/uView-Pro/commit/e577c2d083cf46db7124b0df46b2848ef9bdbe80))
9
+ - **request:** 增强http请求工具,添加请求超时配置和全局配置合并功能 ([54d4a44](https://github.com/anyup/uView-Pro/commit/54d4a448a82d76889524cc2ad0f8f08b758b73fb))
10
+ - **http:** 修改http请求实例和响应拦截器 ([d566496](https://github.com/anyup/uView-Pro/commit/d56649673103b519492033504aa387cd6d037721))
11
+ - **source:** 添加静态资源文件 ([346bce6](https://github.com/anyup/uView-Pro/commit/346bce63126c4cb2c9db1f1665568eb11e26be07))
12
+ - **pages:** 优化多个页面演示样式,统一布局和暗黑模式 ([da68f17](https://github.com/anyup/uView-Pro/commit/da68f17ddf3018f7f5d53a7eebfb3dc1bad550ab))
13
+ - **i18n:** 完善国际化支持文案 ([68accbd](https://github.com/anyup/uView-Pro/commit/68accbd1d864f190e510de380d4ed8d603f8676b))
14
+ - **pages:** 更新iconfont图标 ([bafd4af](https://github.com/anyup/uView-Pro/commit/bafd4af26f6d2ca4dbe6e818b31be84f57c787b0))
15
+ - **demo-page:** 调整演示页面样式并添加tabbar支持 ([f4c5cfc](https://github.com/anyup/uView-Pro/commit/f4c5cfc70920b50602f226220ded4690279cb331))
10
16
 
11
- ### 🐛 Bug Fixes | Bug 修复
17
+ ### 🚀 Chore | 构建/工程依赖/工具
12
18
 
13
- - **u-icon:** 修复图标组件样式和事件处理问题 ([1cadf27](https://github.com/anyup/uView-Pro/commit/1cadf27f8bd2aec3a11fb1befb9255256a2e3b3a))
14
- - **u-pagination:** 修复分页切换时传递不正确的当前页码值 ([4befe02](https://github.com/anyup/uView-Pro/commit/4befe02c5cbb4e7db6fbf49f04ca68fac0f69a37))
19
+ - **harmony:** 添加调试配置并调整harmony兼容版本 ([bd18fd2](https://github.com/anyup/uView-Pro/commit/bd18fd234bf0aec9671663f5b26294b4622bae81))
15
20
 
16
21
  ### 👥 Contributors
17
22
 
18
23
  <a href="https://github.com/anyup"><img src="https://github.com/anyup.png?size=40" width="40" height="40" alt="anyup" title="anyup"/></a>
19
24
 
25
+ ## 0.4.8(2025-12-23)
26
+
27
+ ### 🐛 Bug Fixes | Bug 修复
28
+
29
+ - **u-avatar:** 修复 ios 微信小程序默认头像不显示问题 ([9e3420f](https://github.com/anyup/uView-Pro/commit/9e3420fb8d0db533ce7fb3a8e83543b43ac0c7a7))
30
+ - 修复 u-cell 组件中使用 u-icon 样式在微信小程序不生效问题,修复 u-upload 图片上传失败重试是否显示提示配置不生效问题 ([e591d62](https://github.com/anyup/uView-Pro/commit/e591d62befce95c207ca47158549e6fd97f1e58d))
31
+ - **u-cell-item:** 修复图标样式问题并优化组件结构 ([294bf4b](https://github.com/anyup/uView-Pro/commit/294bf4be88fb53a2ccd72fcc8702b09f6d736a30))
32
+
33
+ ### ♻️ Code Refactoring | 代码重构
34
+
35
+ - **theme:** 修改主题默认为官方内置主题,暗黑模式默认为亮色 ([176b482](https://github.com/anyup/uView-Pro/commit/176b48210209ae362fe30e459e73dff6fc81b53e))
36
+
37
+ ### 👥 Contributors
38
+
39
+ <a href="https://github.com/anyup"><img src="https://github.com/anyup.png?size=40" width="40" height="40" alt="anyup" title="anyup"/></a> <a href="https://github.com/lime"><img src="https://github.com/lime.png?size=40" width="40" height="40" alt="lime" title="lime"/></a>
40
+
41
+ ## 0.4.7(2025-12-19)
42
+
43
+ ### 🚀 Chore | 构建/工程依赖/工具
44
+
45
+ - 忽略部分文件 ([a8a747f](https://github.com/anyup/uView-Pro/commit/a8a747f97e93ed278a305cd1b2671d2ede5c0fde))
46
+
47
+ ### ✨ Features | 新功能
48
+
49
+ - **u-tabbar:** u-tabbar 组件支持 custom-icon 直接配置图标 custom-prefix ([e577c2d](https://github.com/anyup/uView-Pro/commit/e577c2d083cf46db7124b0df46b2848ef9bdbe80))
50
+
51
+ ### 🐛 Bug Fixes | Bug 修复
52
+
53
+ - **u-icon:** 修复图标组件样式和事件处理问题 ([1cadf27](https://github.com/anyup/uView-Pro/commit/1cadf27f8bd2aec3a11fb1befb9255256a2e3b3a))
54
+ - **u-pagination:** 修复分页切换时传递不正确的当前页码值 ([4befe02](https://github.com/anyup/uView-Pro/commit/4befe02c5cbb4e7db6fbf49f04ca68fac0f69a37))
55
+
56
+ ### 👥 Contributors
57
+
58
+ <a href="https://github.com/anyup"><img src="https://github.com/anyup.png?size=40" width="40" height="40" alt="anyup" title="anyup"/></a>
59
+
20
60
  ## 0.4.6(2025-12-17)
21
61
 
22
62
  ### 📝 Documentation | 文档
@@ -37,8 +37,8 @@ import { ref, computed, watch } from 'vue';
37
37
  import { AvatarProps } from './types';
38
38
  import { $u } from '../..';
39
39
 
40
- let base64Avatar =
41
- 'data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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';
40
+ const base64Avatar =
41
+ 'data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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';
42
42
 
43
43
  /**
44
44
  * avatar 头像
@@ -15,13 +15,10 @@
15
15
  :hover-class="hoverClass"
16
16
  :style="$u.toStyle({ backgroundColor: bgColor }, customStyle)"
17
17
  >
18
- <u-icon
19
- :size="iconSize"
20
- :name="icon"
21
- v-if="icon"
22
- :custom-style="iconStyle"
23
- class="u-cell__left-icon-wrap"
24
- ></u-icon>
18
+ <view v-if="icon" class="u-cell__left-icon-wrap">
19
+ <u-icon :size="iconSize" :name="icon" :custom-style="iconStyle"></u-icon>
20
+ </view>
21
+
25
22
  <view class="u-flex" v-else>
26
23
  <slot name="icon"></slot>
27
24
  </view>
@@ -40,12 +37,9 @@
40
37
  <view class="u-flex u-cell_right" v-if="$slots['right-icon']">
41
38
  <slot name="right-icon"></slot>
42
39
  </view>
43
- <u-icon
44
- v-if="arrow"
45
- name="arrow-right"
46
- :style="[arrowStyle]"
47
- class="u-icon-wrap u-cell__right-icon-wrap"
48
- ></u-icon>
40
+ <view v-if="arrow" class="u-icon-wrap u-cell__right-icon-wrap">
41
+ <u-icon name="arrow-right" :style="[arrowStyle]"></u-icon>
42
+ </view>
49
43
  </view>
50
44
  </template>
51
45
 
@@ -1,26 +1,26 @@
1
1
  import type { ExtractPropTypes, PropType } from 'vue';
2
2
  import { baseProps } from '../common/props';
3
- import { configProvider } from '../../libs';
3
+ import { config, configProvider } from '../../libs';
4
4
  import type { Theme } from '../../types/global';
5
5
 
6
6
  export const ConfigProviderProps = {
7
7
  ...baseProps,
8
8
  /**
9
9
  * 主题风格,可选值:
10
- * - 'light': 强制亮色模式
10
+ * - 'light': 强制亮色模式(默认)
11
11
  * - 'dark': 强制暗黑模式
12
- * - 'auto': 自动跟随系统设置(默认)
12
+ * - 'auto': 自动跟随系统设置
13
13
  */
14
14
  darkMode: {
15
15
  type: String as PropType<'light' | 'dark' | 'auto'>,
16
- default: 'auto'
16
+ default: () => config.defaultDarkMode
17
17
  },
18
18
  /**
19
19
  * 当前主题名称(用于多主题切换)
20
20
  */
21
21
  currentTheme: {
22
22
  type: String,
23
- default: () => configProvider.getCurrentTheme()?.name ?? 'uviewpro'
23
+ default: () => configProvider.getCurrentTheme()?.name ?? config.defaultTheme
24
24
  },
25
25
  /**
26
26
  * 自定义主题列表
@@ -146,7 +146,7 @@ watch(
146
146
  // 数组的some方法意思是,只要数组元素有任意一个元素条件符合,就返回true,而另一个数组的every方法的意思是数组所有元素都符合条件才返回true
147
147
  let tmp = lists.value.some(val2 => val2.url == value.url);
148
148
  // 如果内部没有这个图片(tmp为false),则添加到内部
149
- !tmp && lists.value.push({ url: value.url, error: false, progress: 100 });
149
+ !tmp && lists.value.push({ ...value, url: value.url, error: false, progress: 100 });
150
150
  });
151
151
  },
152
152
  { immediate: true, deep: true }
@@ -244,7 +244,9 @@ function retry(index: number) {
244
244
  lists.value[index].progress = 0;
245
245
  lists.value[index].error = false;
246
246
  lists.value[index].response = null;
247
- uni.showLoading({ title: '重新上传' });
247
+ if (props.showTips) {
248
+ uni.showLoading({ title: '重新上传' });
249
+ }
248
250
  uploadFile(index);
249
251
  }
250
252
 
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import { version } from '../../package.json';
7
+ import type { DarkMode } from '../../types/global';
7
8
 
8
9
  export interface AppConfig {
9
10
  /** 版本号 */
@@ -12,6 +13,10 @@ export interface AppConfig {
12
13
  version: string;
13
14
  /** 主题名称列表 */
14
15
  type: string[];
16
+ /** 默认主题名称 */
17
+ defaultTheme: string;
18
+ /** 默认暗黑主题 */
19
+ defaultDarkMode: DarkMode;
15
20
  }
16
21
 
17
22
  // const version: string = '1.8.8';
@@ -20,7 +25,11 @@ const config: AppConfig = {
20
25
  v: version,
21
26
  version: version,
22
27
  // 主题名称
23
- type: ['primary', 'success', 'info', 'error', 'warning']
28
+ type: ['primary', 'success', 'info', 'error', 'warning'],
29
+ // 默认为官方主题名称
30
+ defaultTheme: 'uviewpro',
31
+ // 默认为亮色模式
32
+ defaultDarkMode: 'light'
24
33
  };
25
34
 
26
35
  export default config;
@@ -1,4 +1,5 @@
1
1
  import type { Theme, ThemeColor } from '../../types/global';
2
+ import config from './config';
2
3
 
3
4
  const lightPalette: ThemeColor = {
4
5
  primary: '#2979ff',
@@ -90,7 +91,7 @@ const darkCss: Record<string, string> = {
90
91
 
91
92
  export const defaultThemes: Theme[] = [
92
93
  {
93
- name: 'uviewpro',
94
+ name: config.defaultTheme,
94
95
  label: '默认蓝',
95
96
  description: 'uView Pro 默认主题,支持亮色与暗黑模式',
96
97
  color: lightPalette,
@@ -19,9 +19,16 @@ export interface RequestConfig {
19
19
  method?: string;
20
20
  dataType?: string;
21
21
  responseType?: string;
22
+ timeout?: number;
22
23
  meta?: RequestMeta;
24
+ [key: string]: any;
23
25
  }
24
26
 
27
+ /**
28
+ * 忽略的请求参数类型定义
29
+ */
30
+ const IGNORE_REQUEST_KEYS = ['baseUrl', 'meta'];
31
+
25
32
  /**
26
33
  * 请求拦截器类型定义
27
34
  */
@@ -43,6 +50,7 @@ export interface RequestOptions {
43
50
  params?: Record<string, any>;
44
51
  complete?: (response: any) => void;
45
52
  meta?: RequestMeta;
53
+ [key: string]: any;
46
54
  }
47
55
 
48
56
  export class Request {
@@ -57,6 +65,7 @@ export class Request {
57
65
  method: 'POST', // 请求方式
58
66
  dataType: 'json', // 设置为json,返回后uni.request会对数据进行一次JSON.parse
59
67
  responseType: 'text', // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
68
+ timeout: 60000,
60
69
  meta: {
61
70
  originalData: true, // 是否在拦截器中返回服务端的原始数据,见文档说明
62
71
  toast: false, // 是否在请求出错时,弹出toast
@@ -68,6 +77,65 @@ export class Request {
68
77
  response: null
69
78
  };
70
79
  }
80
+ /**
81
+ * 将全局配置合并到本次请求的 options 中
82
+ * - 忽略 IGNORE_REQUEST_KEYS 中的字段(如 meta)
83
+ * - 对 header 使用深合并(全局 header 为默认,options.header 优先)
84
+ * - 对对象类型的字段尝试深合并,基础类型以 options 值优先
85
+ * - 处理 baseUrl:若存在全局 baseUrl 且 options.url 非完整 url(非 http 开头),则合并成完整 URL
86
+ */
87
+ private mergeGlobalConfigToOptions(options: RequestOptions): RequestOptions {
88
+ const mergedOptions: RequestOptions = { ...options };
89
+ for (const key of Object.keys(this.config)) {
90
+ if (IGNORE_REQUEST_KEYS.includes(key)) {
91
+ continue;
92
+ }
93
+ const cfgVal = this.config[key];
94
+ const optVal = options[key];
95
+
96
+ // 跳过未设置的全局配置
97
+ if (cfgVal === undefined) continue;
98
+
99
+ // header 需要做深合并,且以 options.header 为准覆盖同名属性
100
+ if (key === 'header') {
101
+ mergedOptions.header = deepMerge(cfgVal || {}, optVal || {});
102
+ continue;
103
+ }
104
+
105
+ // 针对 method 等枚举字符串,优先使用 options 中的值,否则使用全局配置
106
+ if (typeof cfgVal === 'string' || typeof cfgVal === 'number' || typeof cfgVal === 'boolean') {
107
+ mergedOptions[key] = optVal !== undefined ? optVal : cfgVal;
108
+ continue;
109
+ }
110
+
111
+ // 对对象类型的配置(如自定义扩展)尝试做深合并
112
+ if (typeof cfgVal === 'object' && !Array.isArray(cfgVal)) {
113
+ mergedOptions[key] = deepMerge(cfgVal || {}, optVal || {});
114
+ continue;
115
+ }
116
+
117
+ // 其他类型,若 options 未传入则使用全局配置
118
+ if (optVal === undefined) {
119
+ mergedOptions[key] = cfgVal;
120
+ }
121
+ }
122
+ // 如果存在 baseUrl,并且 options.url 为相对地址,则拼接成完整 url
123
+ const baseUrl = this.config.baseUrl;
124
+ if (
125
+ baseUrl &&
126
+ mergedOptions.url &&
127
+ typeof mergedOptions.url === 'string' &&
128
+ mergedOptions.url.indexOf('http') !== 0
129
+ ) {
130
+ mergedOptions.url =
131
+ baseUrl + (mergedOptions.url.indexOf('/') === 0 ? mergedOptions.url : `/${mergedOptions.url}`);
132
+ }
133
+ // 确保 url 存在,且为 string
134
+ if (!mergedOptions.url) {
135
+ mergedOptions.url = '';
136
+ }
137
+ return mergedOptions;
138
+ }
71
139
  /**
72
140
  * 设置全局默认配置
73
141
  * @param customConfig 自定义配置
@@ -88,14 +156,10 @@ export class Request {
88
156
  };
89
157
  // 让 options.meta 传递到拦截器
90
158
  options.meta = mergedMeta;
91
- options.dataType = options.dataType || this.config.dataType;
92
- options.responseType = options.responseType || this.config.responseType;
93
159
  options.url = options.url || '';
94
160
  options.params = options.params || {};
95
- options.header = Object.assign({}, this.config.header || {}, options.header || {});
96
- options.method = (options.method || this.config.method) as RequestOptions['method'];
97
- // 保证 url 一定为 string
98
- if (!options.url) options.url = '';
161
+ // 将全局配置合并到本次请求 options 中(注意忽略一些特殊字段如 baseUrl/meta)
162
+ options = this.mergeGlobalConfigToOptions(options);
99
163
 
100
164
  if (this.interceptor.request && typeof this.interceptor.request === 'function') {
101
165
  const interceptorRequest = this.interceptor.request(options);
@@ -146,11 +210,6 @@ export class Request {
146
210
  }
147
211
  }
148
212
  };
149
- // 判断用户传递的URL是否http开头
150
- options.url =
151
- options.url && options.url.indexOf('http') !== 0
152
- ? this.config.baseUrl + (options.url.indexOf('/') === 0 ? options.url : `/${options.url}`)
153
- : options.url;
154
213
  uni.request(options);
155
214
  });
156
215
  }
@@ -44,7 +44,7 @@ export class ConfigProvider {
44
44
  // 响应式状态,供外部直接引用
45
45
  public themesRef = ref<Theme[]>([]);
46
46
  public currentThemeRef = ref<Theme | null>(null);
47
- public darkModeRef = ref<DarkMode>('auto');
47
+ public darkModeRef = ref<DarkMode>(config.defaultDarkMode);
48
48
  public cssVarsRef = ref<Record<string, string>>({});
49
49
  private baseColorTokens: Partial<ThemeColor> = DEFAULT_LIGHT_TOKENS;
50
50
  private baseDarkColorTokens: Partial<ThemeColor> = DEFAULT_DARK_TOKENS;
@@ -162,7 +162,7 @@ export class ConfigProvider {
162
162
 
163
163
  // 尝试从 Storage 读取暗黑模式设置
164
164
  const savedDarkMode = this.readStorage<DarkMode>(DARK_MODE_STORAGE_KEY);
165
- this.darkModeRef.value = savedDarkMode || 'auto';
165
+ this.darkModeRef.value = savedDarkMode || config.defaultDarkMode;
166
166
 
167
167
  // 应用主题
168
168
  this.applyTheme(found);
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "id": "uview-pro",
3
3
  "name": "uview-pro",
4
4
  "displayName": "【支持鸿蒙】uView Pro|基于Vue3+TS的80+精选UI组件库,支持多主题,暗黑模式",
5
- "version": "0.4.7",
5
+ "version": "0.4.9",
6
6
  "description": "uView Pro,是全面支持Vue3+TS的uni-app生态框架,80+精选组件,支持安卓,iOS,鸿蒙,各小程序平台,支持多主题,一键暗黑模式",
7
7
  "main": "index.ts",
8
8
  "module": "index.ts",
package/readme.md CHANGED
@@ -90,7 +90,7 @@ pnpm dev
90
90
 
91
91
  开源不易,如果您认为 `uView Pro` 帮到了您的开发工作,您可以捐赠 `uView Pro`:
92
92
 
93
- [欢迎捐赠留名](https://uviewpro.cn/zh/resource/donation.html)
93
+ [欢迎捐赠留名](https://uviewpro.cn/zh/reward/donation.html)
94
94
 
95
95
  ## 关于 PR
96
96