【升级】升级uview框架至2.0.33版本。

This commit is contained in:
大灰灰
2022-07-20 01:31:47 +08:00
parent 30bd8ef291
commit 80049c17ca
26 changed files with 155 additions and 115 deletions

View File

@@ -1,73 +1,56 @@
<p align="center">
<img alt="logo" src="https://uviewui.com/common/logo.png" width="120" height="120" style="margin-bottom: 10px;">
</p>
<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView</h3>
<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView 2.0</h3>
<h3 align="center">多平台快速开发的UI框架</h3>
[![stars](https://img.shields.io/github/stars/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0)
[![forks](https://img.shields.io/github/forks/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0)
[![issues](https://img.shields.io/github/issues/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0/issues)
[![Website](https://img.shields.io/badge/uView-up-blue?style=flat-square)](https://uviewui.com)
[![release](https://img.shields.io/github/v/release/umicro/uView2.0?style=flat-square)](https://gitee.com/umicro/uView2.0/releases)
[![license](https://img.shields.io/github/license/umicro/uView2.0?style=flat-square)](https://en.wikipedia.org/wiki/MIT_License)
## 说明
uView UI是[uni-app](https://uniapp.dcloud.io/)生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
uView UI是[uni-app](https://uniapp.dcloud.io/)全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
## 特性
## [官方文档https://uviewui.com](https://uviewui.com)
- 兼容安卓iOS微信小程序H5QQ小程序百度小程序支付宝小程序头条小程序
- 60+精选组件,功能丰富,多端兼容,让您快速集成,开箱即用
- 众多贴心的JS利器让您飞镖在手召之即来百步穿杨
- 众多的常用页面和布局,让您专注逻辑,事半功倍
- 详尽的文档支持,现代化的演示效果
- 按需引入,精简打包体积
## 预览
您可以通过**微信**扫码,查看最佳的演示效果。
<br>
<br>
<img src="https://uviewui.com/common/weixin_mini_qrcode.png" width="220" height="220" >
## 链接
- [官方文档](https://www.uviewui.com/)
- [更新日志](https://www.uviewui.com/components/changelog.html)
- [升级指南](https://www.uviewui.com/components/changeGuide.html)
- [关于我们](https://www.uviewui.com/cooperation/about.html)
## 交流反馈
欢迎加入我们的QQ群交流反馈[点此跳转](https://www.uviewui.com/components/addQQGroup.html)
## 关于PR
> 我们非常乐意接受各位的优质PR但在此之前我希望您了解uView2.0是一个需要兼容多个平台的小程序、h5、ios app、android app包括nvue页面、vue页面。
> 所以希望在您修复bug并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢
## 安装
```bash
# npm方式安装插件市场导入无需执行此命令
npm i uview-ui
```
#### **uni-app插件市场链接** —— [https://ext.dcloud.net.cn/plugin?id=1593](https://ext.dcloud.net.cn/plugin?id=1593)
请通过[官网安装文档](https://www.uviewui.com/components/install.html)了解更详细的内容
## 快速上手
1. `main.js`引入uView库
```js
// main.js
import uView from 'uview-ui';
Vue.use(uView);
```
2. `App.vue`引入基础样式(注意style标签需声明scss属性支持)
```css
/* App.vue */
<style lang="scss">
@import "uview-ui/index.scss";
</style>
```
3. `uni.scss`引入全局scss变量文件
```css
/* uni.scss */
@import "uview-ui/theme.scss";
```
4. `pages.json`配置easycom规则(按需引入)
```js
// pages.json
{
"easycom": {
// npm安装的方式不需要前面的"@/",下载安装的方式需要"@/"
// npm安装方式
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
// 下载安装方式
// "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
},
// 此为本身已有的内容
"pages": [
// ......
]
}
```
请通过[快速上手](https://www.uviewui.com/components/quickstart.html)了解更详细的内容
请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容
## 使用方法
配置easycom规则后自动按需引入无需`import`组件,直接引用即可。
@@ -78,27 +61,6 @@ Vue.use(uView);
</template>
```
请通过[快速上手](https://www.uviewui.com/components/quickstart.html)了解更详细的内容
## 链接
- [官方文档](https://www.uviewui.com/)
- [更新日志](https://www.www.uviewui.com/components/changelog.html)
- [升级指南](https://www.uviewui.com/components/changelog.html)
- [关于我们](https://www.uviewui.com/cooperation/about.html)
## 预览
您可以通过**微信**扫码,查看最佳的演示效果。
<br>
<br>
<img src="https://uviewui.com/common/weixin_mini_qrcode.png" width="220" height="220" >
## 捐赠uView的研发
uView文档和源码全部开源免费如果您认为uView帮到了您的开发工作您可以捐赠uView的研发工作捐赠无门槛哪怕是一杯可乐也好(相信这比打赏主播更有意义)。
<img src="https://uviewui.com/common/alipay.png" width="220" ><img style="margin-left: 100px;" src="https://uviewui.com/common/wechat.png" width="220" >
## 版权信息
uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议意味着您无需支付任何费用也无需授权即可将uView应用到您的产品中。

View File

@@ -1,3 +1,21 @@
## 2.0.332022-06-17
# uView2.0重磅发布,利剑出鞘,一统江湖
1. 修复`loadmore`组件`lineColor`类型错误问题
2. 修复`u-parse`组件`imgtap``linktap`不生效问题
## 2.0.322022-06-16
# uView2.0重磅发布,利剑出鞘,一统江湖
1. `u-loadmore`新增自定义颜色、虚/实线
2. 修复`u-swiper-action`组件部分平台不能上下滑动的问题
3. 修复`u-list`回弹问题
4. 修复`notice-bar`组件动画在低端安卓机可能会抖动的问题
5. `u-loading-page`添加控制图标大小的属性`iconSize`
6. 修复`u-tooltip`组件`color`参数不生效的问题
7. 修复`u--input`组件使用`blur`事件输出为`undefined`的bug
8. `u-code-input`组件新增键盘弹起时,是否自动上推页面参数`adjustPosition`
9. 修复`image`组件`load`事件无回调对象问题
10. 修复`button`组件`loadingSize`设置无效问题
10. 其他修复
## 2.0.312022-04-19
# uView2.0重磅发布,利剑出鞘,一统江湖

View File

@@ -36,7 +36,7 @@
:customStyle="customStyle"
:formatter="formatter"
@focus="$emit('focus')"
@blur="$emit('blur')"
@blur="e => $emit('blur', e)"
@keyboardheightchange="$emit('keyboardheightchange')"
@change="e => $emit('change', e)"
@input="e => $emit('input', e)"

View File

@@ -28,7 +28,7 @@
<template v-if="loading">
<u-loading-icon
:mode="loadingMode"
:size="textSize * 1.15"
:size="loadingSize * 1.15"
:color="loadingColor"
></u-loading-icon>
<text
@@ -75,7 +75,7 @@
<template v-if="loading">
<u-loading-icon
:mode="loadingMode"
:size="textSize * 1.15"
:size="loadingSize * 1.15"
:color="loadingColor"
></u-loading-icon>
<text

View File

@@ -1,5 +1,10 @@
export default {
props: {
// 键盘弹起时,是否自动上推页面
adjustPosition: {
type: Boolean,
default: uni.$u.props.codeInput.adjustPosition
},
// 最大输入长度
maxlength: {
type: [String, Number],

View File

@@ -33,6 +33,7 @@
:focus="focus"
:value="inputValue"
:maxlength="maxlength"
:adjustPosition="adjustPosition"
class="u-code-input__input"
@input="inputHandler"
:style="{

View File

@@ -161,10 +161,10 @@
this.$emit('error', err)
},
// 图片加载完成标记loading结束
onLoadHandler() {
onLoadHandler(event) {
this.loading = false
this.isError = false
this.$emit('load')
this.$emit('load', event)
this.removeBgColor()
// 如果不需要动画效果,就不执行下方代码,同时移除加载时的背景颜色
// 否则无需fade效果时png图片依然能看到下方的背景色

View File

@@ -24,7 +24,7 @@ export default {
type: [String, Number],
default: uni.$u.props.line.margin
},
// 是否虚线true-线false-线
// 是否虚线true-线false-线
dashed: {
type: Boolean,
default: uni.$u.props.line.dashed

View File

@@ -29,9 +29,7 @@
@scrolltolower="scrolltolower"
@scrolltoupper="scrolltoupper"
>
<view :style="{
paddingTop: `${offset}px`
}">
<view>
<slot />
</view>
</scroll-view>

View File

@@ -35,6 +35,11 @@ export default {
type: [String, Number],
default: uni.$u.props.loadingPage.fontSize
},
// 图标大小
iconSize: {
type: [String, Number],
default: uni.$u.props.loadingPage.fontSize
},
// 加载中图标的颜色只能rgb或者十六进制颜色值
loadingColor: {
type: String,

View File

@@ -19,11 +19,15 @@
:src="image"
class="u-loading-page__warpper__loading-icon__img"
mode="widthFit"
:style="{
width: $u.addUnit(iconSize),
height: $u.addUnit(iconSize)
}"
></image>
<u-loading-icon
v-else
:mode="loadingMode"
size="28"
:size="$u.addUnit(iconSize)"
:color="loadingColor"
></u-loading-icon>
</view>
@@ -55,6 +59,7 @@ import props from "./props.js";
* @property {String} bgColor 背景色 (默认 '#ffffff'
* @property {String} color 文字颜色 (默认 '#C8C8C8'
* @property {String | Number} fontSize 文字大小 (默认 19
* @property {String | Number} iconSize 图标大小 (默认 28
* @property {String} loadingColor 加载中图标的颜色只能rgb或者十六进制颜色值 (默认 '#C8C8C8'
* @property {Object} customStyle 自定义样式
* @example <u-loading mode="circle"></u-loading>

View File

@@ -19,13 +19,17 @@ export default {
fontSize: {
type: [String, Number],
default: uni.$u.props.loadmore.fontSize
},
// 图标大小
iconSize: {
type: [String, Number],
default: uni.$u.props.loadmore.iconSize
},
// 字体颜色
color: {
type: String,
default: uni.$u.props.loadmore.color
},
// 加载中状态的图标spinner-花朵状图标circle-圆圈状semicircle-半圆
loadingIcon: {
type: String,
@@ -75,6 +79,16 @@ export default {
line: {
type: Boolean,
default: uni.$u.props.loadmore.line
},
// 线条颜色
lineColor: {
type: String,
default: uni.$u.props.loadmore.lineColor
},
// 是否虚线true-虚线false-实线
dashed: {
type: Boolean,
default: uni.$u.props.loadmore.dashed
}
}
}

View File

@@ -13,8 +13,9 @@
>
<u-line
length="140rpx"
color="#E6E8EB"
:color="lineColor"
:hairline="false"
:dashed="dashed"
v-if="line"
></u-line>
<!-- 加载中和没有更多的状态才显示两边的横线 -->
@@ -28,7 +29,7 @@
>
<u-loading-icon
:color="iconColor"
size="17"
:size="iconSize"
:mode="loadingIcon"
></u-loading-icon>
</view>
@@ -42,8 +43,9 @@
</view>
<u-line
length="140rpx"
color="#E6E8EB"
:color="lineColor"
:hairline="false"
:dashed="dashed"
v-if="line"
></u-line>
</view>
@@ -60,6 +62,7 @@
* @property {String} bgColor 组件背景颜色,在页面是非白色时会用到(默认 'transparent'
* @property {Boolean} icon 加载中时是否显示图标(默认 true
* @property {String | Number} fontSize 字体大小(默认 14
* @property {String | Number} iconSize 图标大小(默认 17
* @property {String} color 字体颜色(默认 '#606266'
* @property {String} loadingIcon 加载图标(默认 'circle'
* @property {String} loadmoreText 加载前的提示语(默认 '加载更多'
@@ -67,10 +70,12 @@
* @property {String} nomoreText 没有更多的提示语(默认 '没有更多了'
* @property {Boolean} isDot 到上一个相邻元素的距离 (默认 false
* @property {String} iconColor 加载中图标的颜色 (默认 '#b7b7b7'
* @property {String} lineColor 线条颜色(默认 #E6E8EB
* @property {String | Number} marginTop 上边距 (默认 10
* @property {String | Number} marginBottom 下边距 (默认 10
* @property {String | Number} height 高度单位px (默认 'auto'
* @property {Boolean} line 是否显示左边分割线 (默认 false
* @property {Boolean} dashed // 是否虚线true-虚线false-实线 (默认 false
* @event {Function} loadmore status为loadmore时点击组件会发出此事件
* @example <u-loadmore :status="status" icon-type="iconType" load-text="loadText" />
*/

View File

@@ -201,7 +201,7 @@ export default {
// #ifdef H5 || APP-PLUS
node.attrs.src = node.attrs.src || node.attrs['data-src']
// #endif
this.root.$emit('imgtap', node.attrs)
this.root.$emit('imgTap', node.attrs)
// 自动预览图片
if (this.root.previewImg)
uni.previewImage({
@@ -262,7 +262,7 @@ export default {
linkTap(e) {
var attrs = e.currentTarget ? this.childs[e.currentTarget.dataset.i].attrs : e,
href = attrs.href
this.root.$emit('linktap', attrs)
this.root.$emit('linkTap', attrs)
if (href) {
// 跳转锚点
if (href[0] == '#')

View File

@@ -50,11 +50,6 @@ export default {
type: String,
default: uni.$u.props.picker.confirmColor
},
// 选择器只有一列时默认选中项的索引从0开始
singleIndex: {
type: [String, Number],
default: uni.$u.props.picker.singleIndex
},
// 每列中可见选项的数量
visibleItemCount: {
type: [String, Number],

View File

@@ -66,7 +66,6 @@
* @property {String} confirmText 确认按钮的文字(默认 '确定'
* @property {String} cancelColor 取消按钮的颜色(默认 '#909193'
* @property {String} confirmColor 确认按钮的颜色(默认 '#3c9cff'
* @property {Array} singleIndex 选择器只有一列时默认选中项的索引从0开始默认 0
* @property {String | Number} visibleItemCount 每列中可见选项的数量(默认 5
* @property {String} keyName 选项对象中,需要展示的属性键名(默认 'text'
* @property {Boolean} closeOnClickOverlay 是否允许点击遮罩关闭选择器(默认 false
@@ -161,7 +160,7 @@ export default {
this.setIndexs(value)
this.$emit('change', {
// #ifndef MP-WEIXIN
// #ifndef MP-WEIXIN || MP-LARK
// 微信小程序不能传递this会因为循环引用而报错
picker: this,
// #endif

View File

@@ -19,11 +19,17 @@
class="u-notice__content"
ref="u-notice__content"
>
<text
<view
ref="u-notice__content__text"
class="u-notice__content__text"
:style="[animationStyle]"
>
<text
v-for="(item, index) in innerText"
:key="index"
:style="[textStyle]"
>{{text}}</text>
>{{item}}</text>
</view>
</view>
<view
class="u-notice__right-icon"
@@ -118,11 +124,28 @@
textStyle() {
let style = {}
style.color = this.color
style.animationDuration = this.animationDuration
style.animationPlayState = this.animationPlayState
style.fontSize = uni.$u.addUnit(this.fontSize)
return style
},
animationStyle() {
let style = {}
style.animationDuration = this.animationDuration
style.animationPlayState = this.animationPlayState
return style
},
// 内部对用户传入的数据进一步分割放到多个text标签循环否则如果用户传入的字符串很长100个字符以上
// 放在一个text标签中进行滚动在低端安卓机上动画可能会出现抖动现象需要分割到多个text中可解决此问题
innerText() {
let result = [],
// 每组text标签的字符长度
len = 20
const textArr = this.text.split('')
for (let i = 0; i < textArr.length; i += len) {
// 对拆分的后的text进行slice分割得到的为数组再进行join拼接为字符串
result.push(textArr.slice(i, i + len).join(''))
}
return result
}
},
mounted() {
// #ifdef APP-PLUS
@@ -289,6 +312,7 @@
white-space: nowrap;
animation: u-loop-animation 10s linear infinite both;
/* #endif */
@include flex(row);
}
}

View File

@@ -148,7 +148,7 @@
position: relative;
overflow: hidden;
/* #ifndef APP-NVUE || MP-WEIXIN */
touch-action: none;
touch-action: pan-y;
/* #endif */
&__content {

View File

@@ -17,6 +17,7 @@
:selectable="false"
@longpress.stop="longpressHandler"
:style="{
color: color,
backgroundColor: bgColor && showTooltip && tooltipTop !== -10000 ? bgColor : 'transparent'
}"
>{{ text }}</text>
@@ -312,7 +313,6 @@
/* #endif */
&__text {
color: $u-content-color;
font-size: 14px;
}

View File

@@ -1,5 +1,5 @@
// 此版本发布于2022-04-19
const version = '2.0.31'
// 此版本发布于2022-06-17
const version = '2.0.33'
// 开发环境才提示,生产环境不会提示
if (process.env.NODE_ENV === 'development') {

View File

@@ -10,6 +10,7 @@
export default {
// codeInput 组件
codeInput: {
adjustPosition: true,
maxlength: 6,
dot: false,
mode: 'box',

View File

@@ -17,6 +17,7 @@ export default {
bgColor: '#ffffff',
color: '#C8C8C8',
fontSize: 19,
iconSize: 28,
loadingColor: '#C8C8C8'
}
}

View File

@@ -14,6 +14,7 @@ export default {
bgColor: 'transparent',
icon: true,
fontSize: 14,
iconSize: 17,
color: '#606266',
loadingIcon: 'spinner',
loadmoreText: '加载更多',
@@ -24,6 +25,8 @@ export default {
marginTop: 10,
marginBottom: 10,
height: 'auto',
line: false
line: false,
lineColor: '#E6E8EB',
dashed: false,
}
}

View File

@@ -20,7 +20,6 @@ export default {
confirmText: '确定',
cancelColor: '#909193',
confirmColor: '#3c9cff',
singleIndex: 0,
visibleItemCount: 5,
keyName: 'text',
closeOnClickOverlay: false,

View File

@@ -77,7 +77,7 @@ module.exports = {
}
return Object.keys(classes)
// 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效
// #ifdef MP-ALIPAY || MP-TOUTIAO
// #ifdef MP-ALIPAY || MP-TOUTIAO || MP-LARK
.join(' ')
// #endif
}

View File

@@ -2,15 +2,20 @@
"id": "uview-ui",
"name": "uview-ui",
"displayName": "uView2.0重磅发布,利剑出鞘,一统江湖",
"version": "2.0.31",
"version": "2.0.33",
"description": "uView UI已完美兼容nvue全面的组件和便捷的工具会让您信手拈来如鱼得水",
"keywords": [
"uview",
"uview",
"ui",
"uni-app"
"ui",
"uni-app",
"uni-app",
"ui"
],
"repository": "https://github.com/umicro/uView2.0",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"category": [