uview-pro 0.3.14 → 0.3.16
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 +46 -0
- package/components/u-dropdown/types.ts +0 -5
- package/components/u-dropdown/u-dropdown.vue +12 -3
- package/components/u-dropdown-item/types.ts +4 -1
- package/components/u-dropdown-item/u-dropdown-item.vue +3 -2
- package/components/u-form-item/u-form-item.vue +38 -6
- package/components/u-link/types.ts +5 -0
- package/components/u-link/u-link.vue +5 -0
- package/components/u-safe-bottom/props.ts +1 -1
- package/components/u-status-bar/props.ts +1 -1
- package/components/u-sticky/u-sticky.vue +0 -1
- package/components/u-tabs/u-tabs.vue +5 -0
- package/components/u-text/u-text.vue +7 -3
- package/components/u-waterfall/u-waterfall.vue +7 -6
- package/libs/hooks/useRect.ts +6 -4
- package/package.json +1 -1
- package/readme.md +1 -1
- package/types/global.d.ts +1 -0
package/changelog.md
CHANGED
|
@@ -1,3 +1,49 @@
|
|
|
1
|
+
## 0.3.16(2025-11-21)
|
|
2
|
+
|
|
3
|
+
### 📝 Documentation | 文档
|
|
4
|
+
|
|
5
|
+
- 更新贡献者信息 ([a6d52dc](https://github.com/anyup/uView-Pro/commit/a6d52dc6db9d56ccdf5c5ad4230e32c716e36241))
|
|
6
|
+
|
|
7
|
+
### ♻️ Code Refactoring | 代码重构
|
|
8
|
+
|
|
9
|
+
- **u-waterfall:** 优化瀑布流组件性能和代码结构 ([841c465](https://github.com/anyup/uView-Pro/commit/841c465de4f1a1efc43e05248794b566e0051bd8))
|
|
10
|
+
- **pages:** 重构工具和模板页面,优化i18n国际化功能 ([6cfda7f](https://github.com/anyup/uView-Pro/commit/6cfda7f2ecfd6dd60501201d8797fe702b29df4d))
|
|
11
|
+
- **u-dropdown:** 删除无用的测试代码 ([7c06f1f](https://github.com/anyup/uView-Pro/commit/7c06f1f3f0d1dcd5ae2bbd3420a4124c5faec004))
|
|
12
|
+
|
|
13
|
+
### 🐛 Bug Fixes | Bug 修复
|
|
14
|
+
|
|
15
|
+
- **backTop:** 修复回到顶部组件示例无效的问题 ([5a9b736](https://github.com/anyup/uView-Pro/commit/5a9b7366f5916627815488039327669f424dd0ce))
|
|
16
|
+
- **u-text:** 修复 u-text 组件单行省略号显示无效的问题 ([041ee36](https://github.com/anyup/uView-Pro/commit/041ee36fb60d5a082fbdde7e9334ae42b386944c))
|
|
17
|
+
|
|
18
|
+
### ✨ Features | 新功能
|
|
19
|
+
|
|
20
|
+
- **u-link:** 添加自定义点击跳转功能 ([8a521f3](https://github.com/anyup/uView-Pro/commit/8a521f36a9f417aa90263cdcf7978ce48d6ed01e))
|
|
21
|
+
- **u-tabs:** 增强 u-tabs 组件,支持隐藏 tab 项的功能配置 ([9a58964](https://github.com/anyup/uView-Pro/commit/9a58964061a7d18510624fb4c6d009568bd3974c))
|
|
22
|
+
|
|
23
|
+
### 👥 Contributors
|
|
24
|
+
|
|
25
|
+
<a href="https://github.com/anyup"><img src="https://github.com/anyup.png?size=40" width="40" height="40" alt="anyup" title="anyup"/></a>
|
|
26
|
+
|
|
27
|
+
## 0.3.15(2025-11-14)
|
|
28
|
+
|
|
29
|
+
### ✨ Features | 新功能
|
|
30
|
+
|
|
31
|
+
- **u-dropdown:** u-dropdown中的u-dropdown-item中新增控制显示隐藏属性 ([e4ee28f](https://github.com/anyup/uView-Pro/commit/e4ee28fd0a66ceb6bbed07b7969862e936e5e573))
|
|
32
|
+
- **u-form:** 支持嵌套属性验证(a.b.c格式) ([1bbead8](https://github.com/anyup/uView-Pro/commit/1bbead8be764491844a7d3909480a360ff2dc4d4))
|
|
33
|
+
- **form:** 添加表单字段的嵌套校验演示示例 ([73b4abe](https://github.com/anyup/uView-Pro/commit/73b4abe98047ac5193b56b71cdacb05957760e93))
|
|
34
|
+
|
|
35
|
+
### 🚀 Chore | 构建/工程依赖/工具
|
|
36
|
+
|
|
37
|
+
- 更新应用 logo 和图标 ([38d52e4](https://github.com/anyup/uView-Pro/commit/38d52e4a9e8656bcae89892a5f94a5201a1af7b2))
|
|
38
|
+
|
|
39
|
+
### ♻️ Code Refactoring | 代码重构
|
|
40
|
+
|
|
41
|
+
- 更新 logo 图片地址 ([c0fe3d1](https://github.com/anyup/uView-Pro/commit/c0fe3d15d6f4498229feaba860ff78e43a5297e6))
|
|
42
|
+
|
|
43
|
+
### 👥 Contributors
|
|
44
|
+
|
|
45
|
+
<a href="https://github.com/zuo-wentao"><img src="https://github.com/zuo-wentao.png?size=40" width="40" height="40" alt="zuo-wentao" title="zuo-wentao"/></a> <a href="https://github.com/elkelkelkelkelk"><img src="https://github.com/elkelkelkelkelk.png?size=40" width="40" height="40" alt="elkelkelkelkelk" title="elkelkelkelkelk"/></a> <a href="https://github.com/anyup"><img src="https://github.com/anyup.png?size=40" width="40" height="40" alt="anyup" title="anyup"/></a>
|
|
46
|
+
|
|
1
47
|
## 0.3.14(2025-11-14)
|
|
2
48
|
|
|
3
49
|
### ✨ Features | 新功能
|
|
@@ -2,11 +2,6 @@ import type { ExtractPropTypes, PropType } from 'vue';
|
|
|
2
2
|
import { baseProps } from '../common/props';
|
|
3
3
|
import { getColor } from '../../';
|
|
4
4
|
|
|
5
|
-
try {
|
|
6
|
-
console.log(getColor('primary'));
|
|
7
|
-
} catch (e) {
|
|
8
|
-
console.log('get color error');
|
|
9
|
-
}
|
|
10
5
|
/**
|
|
11
6
|
* u-dropdown 下拉菜单 Props
|
|
12
7
|
* @description 该组件一般用于向下展开菜单,同时可切换多个选项卡的场景
|
|
@@ -149,9 +149,14 @@ onMounted(() => {
|
|
|
149
149
|
function init() {
|
|
150
150
|
menuList.value = [];
|
|
151
151
|
children.forEach(child => {
|
|
152
|
+
// 过滤不显示的项
|
|
153
|
+
const show = child?.getExposed()?.props.show !== false;
|
|
154
|
+
if (!show) return;
|
|
155
|
+
|
|
152
156
|
menuList.value.push({
|
|
153
157
|
title: child?.getExposed()?.props.title ?? '',
|
|
154
|
-
disabled: child?.getExposed()?.props.disabled ?? false
|
|
158
|
+
disabled: child?.getExposed()?.props.disabled ?? false,
|
|
159
|
+
childIndex: children.indexOf(child)
|
|
155
160
|
});
|
|
156
161
|
});
|
|
157
162
|
}
|
|
@@ -167,8 +172,11 @@ function menuClick(index: number) {
|
|
|
167
172
|
if (index === current.value && props.closeOnClickSelf) {
|
|
168
173
|
close();
|
|
169
174
|
// 等动画结束后,再移除下拉菜单中的内容,否则直接移除,也就没有下拉菜单收起的效果了
|
|
175
|
+
const childIndex = menuList.value[index]?.childIndex; //避免访问到show为false的项
|
|
170
176
|
setTimeout(() => {
|
|
171
|
-
if (children[
|
|
177
|
+
if (childIndex !== undefined && children[childIndex]) {
|
|
178
|
+
children[childIndex]?.getExposed()?.setActive(false);
|
|
179
|
+
}
|
|
172
180
|
}, Number(props.duration));
|
|
173
181
|
return;
|
|
174
182
|
}
|
|
@@ -191,8 +199,9 @@ function open(index: number) {
|
|
|
191
199
|
current.value = index;
|
|
192
200
|
// 历遍所有的子元素,将索引匹配的项标记为激活状态,因为子元素是通过v-if控制切换的
|
|
193
201
|
// 之所以不是因display: none,是因为nvue没有display这个属性
|
|
202
|
+
const childIndex = menuList.value[index]?.childIndex; //避免访问到show为false的项
|
|
194
203
|
children.forEach((child, idx) => {
|
|
195
|
-
child?.getExposed()?.setActive(
|
|
204
|
+
child?.getExposed()?.setActive(childIndex === idx ? true : false);
|
|
196
205
|
});
|
|
197
206
|
emit('open', current.value);
|
|
198
207
|
}
|
|
@@ -10,6 +10,7 @@ import { baseProps } from '../common/props';
|
|
|
10
10
|
* @property {OptionType[]} options 选项数据,如果传入了默认slot,此参数无效
|
|
11
11
|
* @property {Boolean} disabled 是否禁用此选项卡(默认false)
|
|
12
12
|
* @property {String|Number} height 弹窗下拉内容的高度(内容超出将会滚动)(默认auto)
|
|
13
|
+
* @property {Boolean} show 控制是否显示菜单项(默认true)
|
|
13
14
|
*/
|
|
14
15
|
|
|
15
16
|
export const DropdownItemProps = {
|
|
@@ -23,7 +24,9 @@ export const DropdownItemProps = {
|
|
|
23
24
|
/** 是否禁用此菜单项 */
|
|
24
25
|
disabled: { type: Boolean, default: false },
|
|
25
26
|
/** 下拉弹窗的高度 */
|
|
26
|
-
height: { type: [Number, String] as PropType<number | string>, default: 'auto' }
|
|
27
|
+
height: { type: [Number, String] as PropType<number | string>, default: 'auto' },
|
|
28
|
+
/** 控制是否显示菜单项 */
|
|
29
|
+
show: { type: Boolean, default: true }
|
|
27
30
|
};
|
|
28
31
|
|
|
29
32
|
export type DropdownItemProps = ExtractPropTypes<typeof DropdownItemProps>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view
|
|
3
|
-
v-if="active"
|
|
3
|
+
v-if="show && active"
|
|
4
4
|
class="u-dropdown-item"
|
|
5
5
|
:class="customClass"
|
|
6
6
|
:style="$u.toStyle(customStyle)"
|
|
@@ -62,6 +62,7 @@ import { DropdownItemProps } from './types';
|
|
|
62
62
|
* @property {Boolean} disabled 是否禁用此选项卡(默认false)
|
|
63
63
|
* @property {String | Number} duration 选项卡展开和收起的过渡时间,单位ms(默认300)
|
|
64
64
|
* @property {String | Number} height 弹窗下拉内容的高度(内容超出将会滚动)(默认auto)
|
|
65
|
+
* @property {Boolean} show 控制是否显示菜单项(默认true)
|
|
65
66
|
* @example <u-dropdown-item title="标题"></u-dropdown-item>
|
|
66
67
|
*/
|
|
67
68
|
|
|
@@ -84,7 +85,7 @@ const activeColor = computed(() => parentExposed.value?.props?.activeColor || $u
|
|
|
84
85
|
const inactiveColor = computed(() => parentExposed.value?.props?.inactiveColor || $u.color.contentColor);
|
|
85
86
|
|
|
86
87
|
// 监听props变化,通知父组件重新初始化
|
|
87
|
-
const propsChange = computed(() => `${props.title}-${props.disabled}`);
|
|
88
|
+
const propsChange = computed(() => `${props.title}-${props.disabled}-${props.show}`);
|
|
88
89
|
|
|
89
90
|
// 监听propsChange变化,通知父组件重新init
|
|
90
91
|
watch(propsChange, () => {
|
|
@@ -218,6 +218,31 @@ function broadcastInputError() {
|
|
|
218
218
|
broadcast('onFormItemError', validateState.value === 'error' && showError.value('border'));
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
/**
|
|
222
|
+
* 根据路径获取对象的值(支持嵌套路径,如 'a.b.c')
|
|
223
|
+
* @param obj 对象
|
|
224
|
+
* @param path 路径字符串
|
|
225
|
+
*/
|
|
226
|
+
function getPropByPath(obj: any, path: string) {
|
|
227
|
+
if (!obj || !path) return { o: obj, k: '', v: undefined };
|
|
228
|
+
|
|
229
|
+
const paths = path.split('.');
|
|
230
|
+
let current = obj;
|
|
231
|
+
let key = '';
|
|
232
|
+
|
|
233
|
+
for (let i = 0; i < paths.length; i++) {
|
|
234
|
+
key = paths[i];
|
|
235
|
+
if (!current) break;
|
|
236
|
+
|
|
237
|
+
if (i === paths.length - 1) {
|
|
238
|
+
return { o: current, k: key, v: current[key] };
|
|
239
|
+
}
|
|
240
|
+
current = current[key];
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return { o: current, k: key, v: undefined };
|
|
244
|
+
}
|
|
245
|
+
|
|
221
246
|
/**
|
|
222
247
|
* 获取当前u-form-item的校验规则
|
|
223
248
|
*/
|
|
@@ -268,8 +293,10 @@ function getFilteredRule(triggerType = '') {
|
|
|
268
293
|
* @param callback 校验回调
|
|
269
294
|
*/
|
|
270
295
|
function validation(trigger: string, callback: (msg: string) => void = () => {}) {
|
|
271
|
-
//
|
|
272
|
-
|
|
296
|
+
// 检验之前,先获取需要校验的值(支持嵌套路径)
|
|
297
|
+
const propPath = getPropByPath(parentExposed?.value?.model?.value, props.prop);
|
|
298
|
+
fieldValue.value = propPath.v;
|
|
299
|
+
|
|
273
300
|
// blur和change是否有当前方式的校验规则
|
|
274
301
|
let rules = getFilteredRule(trigger);
|
|
275
302
|
// 判断是否有验证规则,如果没有规则,也调用回调方法,否则父组件u-form会因为
|
|
@@ -282,7 +309,7 @@ function validation(trigger: string, callback: (msg: string) => void = () => {})
|
|
|
282
309
|
validateState.value = 'validating';
|
|
283
310
|
// 调用async-validator的方法
|
|
284
311
|
let validator = new schema({ [props.prop]: rules });
|
|
285
|
-
validator.validate({ [props.prop]: fieldValue.value }, { firstFields: true }, (errors: any
|
|
312
|
+
validator.validate({ [props.prop]: fieldValue.value }, { firstFields: true }, (errors: any) => {
|
|
286
313
|
// 记录状态和报错信息
|
|
287
314
|
validateState.value = !errors ? 'success' : 'error';
|
|
288
315
|
validateMessage.value = errors ? errors[0].message : '';
|
|
@@ -296,7 +323,11 @@ function validation(trigger: string, callback: (msg: string) => void = () => {})
|
|
|
296
323
|
*/
|
|
297
324
|
function resetField() {
|
|
298
325
|
if (parentExposed?.value?.model?.value && props.prop) {
|
|
299
|
-
|
|
326
|
+
// 支持嵌套路径的重置
|
|
327
|
+
const propPath = getPropByPath(parentExposed.value.model.value, props.prop);
|
|
328
|
+
if (propPath.o && propPath.k) {
|
|
329
|
+
propPath.o[propPath.k] = initialValue.value;
|
|
330
|
+
}
|
|
300
331
|
}
|
|
301
332
|
// 设置为`success`状态,只是为了清空错误标记
|
|
302
333
|
// 延时50毫秒,如果立即清空状态,则无法清空错误标记
|
|
@@ -324,8 +355,9 @@ onMounted(() => {
|
|
|
324
355
|
prop: props.prop
|
|
325
356
|
});
|
|
326
357
|
errorType.value = parentExposed?.value?.errorType || errorType.value;
|
|
327
|
-
//
|
|
328
|
-
|
|
358
|
+
// 设置初始值(支持嵌套路径)
|
|
359
|
+
const propPath = getPropByPath(parentExposed?.value?.model?.value, props.prop);
|
|
360
|
+
fieldValue.value = propPath.v;
|
|
329
361
|
// 设置初始值
|
|
330
362
|
initialValue.value = fieldValue.value;
|
|
331
363
|
}
|
|
@@ -43,12 +43,17 @@ import { LinkProps } from './types';
|
|
|
43
43
|
* @example <u-link href="https://uviewpro.cn">蜀道难,难于上青天</u-link>
|
|
44
44
|
*/
|
|
45
45
|
const props = defineProps(LinkProps);
|
|
46
|
+
const emit = defineEmits(['click']);
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
49
|
* 打开链接方法
|
|
49
50
|
* 不同平台有不同表现形式
|
|
50
51
|
*/
|
|
51
52
|
function openLink() {
|
|
53
|
+
if (!props.defaultClick) {
|
|
54
|
+
emit('click', props.href);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
52
57
|
// #ifdef APP-PLUS
|
|
53
58
|
if (typeof plus !== 'undefined' && plus.runtime) {
|
|
54
59
|
plus.runtime.openURL(props.href);
|
|
@@ -119,7 +119,6 @@ function initObserver() {
|
|
|
119
119
|
// #ifndef H5
|
|
120
120
|
stickyTop.value = Number(props.offsetTop) !== 0 ? uni.upx2px(Number(props.offsetTop)) : 0;
|
|
121
121
|
// #endif
|
|
122
|
-
console.log('stickyTop.value', stickyTop.value);
|
|
123
122
|
disconnectObserver('contentObserver');
|
|
124
123
|
$u.getRect('.' + elClass.value, instance).then((res: any) => {
|
|
125
124
|
height.value = res.height;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
<view class="u-scroll-box" :id="id" :class="{ 'u-tabs-scroll-flex': !isScroll }">
|
|
7
7
|
<view
|
|
8
8
|
class="u-tab-item u-line-1"
|
|
9
|
+
:class="[item.hidden ? 'u-tab-item-hidden' : '']"
|
|
9
10
|
:id="'u-tab-item-' + index"
|
|
10
11
|
v-for="(item, index) in list"
|
|
11
12
|
:key="index"
|
|
@@ -290,6 +291,10 @@ scroll-view ::v-deep ::-webkit-scrollbar {
|
|
|
290
291
|
transition-property: background-color, color;
|
|
291
292
|
}
|
|
292
293
|
|
|
294
|
+
.u-tab-item-hidden {
|
|
295
|
+
display: none;
|
|
296
|
+
}
|
|
297
|
+
|
|
293
298
|
.u-tab-bar {
|
|
294
299
|
position: absolute;
|
|
295
300
|
bottom: 0;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
:class="[
|
|
6
6
|
props.bold ? 'u-text--bold' : '',
|
|
7
7
|
props.block ? 'u-text--block' : 'u-text--inline',
|
|
8
|
-
props.lines ? 'u-text--ellipsis' : '',
|
|
8
|
+
props.lines ? 'u-text--ellipsis u-text--block' : '',
|
|
9
9
|
`u-text--align-${props.align}`,
|
|
10
10
|
customClass
|
|
11
11
|
]"
|
|
@@ -206,8 +206,12 @@ const textValueStyle = computed(() => {
|
|
|
206
206
|
: undefined
|
|
207
207
|
};
|
|
208
208
|
if (props.lines) {
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
if (props.lines == 1) {
|
|
210
|
+
style['display'] = 'block';
|
|
211
|
+
} else {
|
|
212
|
+
style['display'] = '-webkit-box';
|
|
213
|
+
style['-webkit-box-orient'] = 'vertical';
|
|
214
|
+
}
|
|
211
215
|
}
|
|
212
216
|
if (!props.type) style.color = props.color;
|
|
213
217
|
if (isNvue.value && props.lines) style.lines = props.lines;
|
|
@@ -23,9 +23,11 @@ export default {
|
|
|
23
23
|
</script>
|
|
24
24
|
|
|
25
25
|
<script setup lang="ts">
|
|
26
|
-
import { ref, computed, watch, onMounted
|
|
27
|
-
import { $u } from '../..';
|
|
26
|
+
import { ref, computed, watch, onMounted } from 'vue';
|
|
28
27
|
import { WaterfallProps } from './types';
|
|
28
|
+
import { useRect, $u } from '../../';
|
|
29
|
+
|
|
30
|
+
const { getRect } = useRect();
|
|
29
31
|
|
|
30
32
|
/**
|
|
31
33
|
* waterfall 瀑布流
|
|
@@ -43,7 +45,6 @@ const props = defineProps(WaterfallProps);
|
|
|
43
45
|
const leftList = ref<any[]>([]);
|
|
44
46
|
const rightList = ref<any[]>([]);
|
|
45
47
|
const tempList = ref<any[]>([]);
|
|
46
|
-
const instance = getCurrentInstance();
|
|
47
48
|
|
|
48
49
|
/**
|
|
49
50
|
* 破坏 flowList 变量的引用,否则 watch 的结果新旧值是一样的
|
|
@@ -67,7 +68,7 @@ onMounted(() => {
|
|
|
67
68
|
* 复制而不是引用对象和数组
|
|
68
69
|
*/
|
|
69
70
|
function cloneData(data: any) {
|
|
70
|
-
return
|
|
71
|
+
return $u.deepClone(data);
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
/**
|
|
@@ -75,8 +76,8 @@ function cloneData(data: any) {
|
|
|
75
76
|
*/
|
|
76
77
|
async function splitData() {
|
|
77
78
|
if (!tempList.value.length) return;
|
|
78
|
-
const leftRect = await
|
|
79
|
-
const rightRect = await
|
|
79
|
+
const leftRect = await getRect('#u-left-column');
|
|
80
|
+
const rightRect = await getRect('#u-right-column');
|
|
80
81
|
// 如果左边小于或等于右边,就添加到左边,否则添加到右边
|
|
81
82
|
const item = tempList.value[0];
|
|
82
83
|
// 解决多次快速上拉后,可能数据会乱的问题,因为经过上面的两个await节点查询阻塞一定时间,加上后面的定时器干扰
|
package/libs/hooks/useRect.ts
CHANGED
|
@@ -6,17 +6,19 @@ import { getCurrentInstance, nextTick, ref } from 'vue';
|
|
|
6
6
|
* @param all 是否获取所有匹配元素
|
|
7
7
|
* @returns rect 响应式的节点信息,refresh 主动刷新方法
|
|
8
8
|
*/
|
|
9
|
-
export function useRect(selector: string, all = false) {
|
|
9
|
+
export function useRect(selector: string = null, all = false) {
|
|
10
10
|
const rect = ref<any>(all ? [] : null);
|
|
11
11
|
const instance = getCurrentInstance();
|
|
12
12
|
|
|
13
|
-
async function
|
|
13
|
+
async function getRect(realSelector: string = null, delay = 0): Promise<any> {
|
|
14
|
+
realSelector = realSelector || selector;
|
|
15
|
+
if (!realSelector) return rect.value;
|
|
14
16
|
await nextTick();
|
|
15
17
|
return new Promise(resolve => {
|
|
16
18
|
setTimeout(() => {
|
|
17
19
|
uni.createSelectorQuery()
|
|
18
20
|
.in(instance?.proxy)
|
|
19
|
-
[all ? 'selectAll' : 'select'](
|
|
21
|
+
[all ? 'selectAll' : 'select'](realSelector)
|
|
20
22
|
.boundingClientRect((res: any) => {
|
|
21
23
|
rect.value = res;
|
|
22
24
|
resolve(res);
|
|
@@ -28,6 +30,6 @@ export function useRect(selector: string, all = false) {
|
|
|
28
30
|
|
|
29
31
|
return {
|
|
30
32
|
rect,
|
|
31
|
-
|
|
33
|
+
getRect
|
|
32
34
|
};
|
|
33
35
|
}
|
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.3.
|
|
5
|
+
"version": "0.3.16",
|
|
6
6
|
"description": "uView Pro,是全面支持Vue3的uni-app生态框架,80+精选组件已使用TypeScript重构,已全面支持uni-app Vue3.0",
|
|
7
7
|
"main": "index.ts",
|
|
8
8
|
"module": "index.ts",
|
package/readme.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img alt="logo" src="https://ik.imagekit.io/anyup/uview-pro/common/logo.png" width="120" height="120" style="margin-bottom: 10px;">
|
|
2
|
+
<img alt="logo" src="https://ik.imagekit.io/anyup/uview-pro/common/logo-new.png" width="120" height="120" style="margin-bottom: 10px;">
|
|
3
3
|
</p>
|
|
4
4
|
<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView Pro</h3>
|
|
5
5
|
<h3 align="center">uni-app Vue3 多平台快速开发的 UI 框架</h3>
|