Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
U
uview-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李晖
uview-ui
Commits
2a95e3be
Commit
2a95e3be
authored
Sep 23, 2020
by
TtTao
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
5de0bd6e
667de30b
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
305 additions
and
69 deletions
+305
-69
README.md
README.md
+3
-3
manifest.json
manifest.json
+1
-1
pages.json
pages.json
+1
-1
index.vue
pages/componentsB/waterfall/index.vue
+1
-13
index.vue
pages/componentsC/test/index.vue
+216
-31
u-back-top.vue
uview-ui/components/u-back-top/u-back-top.vue
+1
-1
u-card.vue
uview-ui/components/u-card/u-card.vue
+1
-1
u-dropdown-item.vue
uview-ui/components/u-dropdown-item/u-dropdown-item.vue
+13
-1
u-dropdown.vue
uview-ui/components/u-dropdown/u-dropdown.vue
+47
-2
u-line-progress.vue
uview-ui/components/u-line-progress/u-line-progress.vue
+1
-1
u-message-input.vue
uview-ui/components/u-message-input/u-message-input.vue
+1
-1
u-modal.vue
uview-ui/components/u-modal/u-modal.vue
+1
-1
u-number-box.vue
uview-ui/components/u-number-box/u-number-box.vue
+5
-5
u-radio-group.vue
uview-ui/components/u-radio-group/u-radio-group.vue
+1
-1
u-radio.vue
uview-ui/components/u-radio/u-radio.vue
+1
-0
u-rate.vue
uview-ui/components/u-rate/u-rate.vue
+5
-0
u-slider.vue
uview-ui/components/u-slider/u-slider.vue
+1
-1
u-tabbar.vue
uview-ui/components/u-tabbar/u-tabbar.vue
+2
-2
config.js
uview-ui/libs/config/config.js
+2
-2
package.json
uview-ui/package.json
+1
-1
No files found.
README.md
View file @
2a95e3be
...
...
@@ -17,7 +17,9 @@
uView UI,是
[
uni-app
](
https://uniapp.dcloud.io/
)
生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
## [点击加群交流反馈:1129077272](https://qm.qq.com/cgi-bin/qm/qr?k=1FfucLpozYbnb7FWo_KsqAdEi1mE3Qrf&jump_from=webapi)
## [官方文档:https://www.uviewui.com](https://www.uviewui.com)
### [点击加群交流反馈:1129077272](https://qm.qq.com/cgi-bin/qm/qr?k=1FfucLpozYbnb7FWo_KsqAdEi1mE3Qrf&jump_from=webapi)
## 特性
...
...
@@ -39,8 +41,6 @@ uView UI,是[uni-app](https://uniapp.dcloud.io/)生态优秀的UI框架,全
## 友情链接
<br>
#### **vue-admin-beautiful** —— [企业级、通用型中后台前端解决方案(基于vue/cli 4 最新版,同时支持电脑,手机,平板)](https://github.com/chuzhixin/vue-admin-beautiful)
#### **vue-admin-beautiful** —— [在线演示](http://beautiful.panm.cn/vue-admin-beautiful/#/index)
...
...
manifest.json
View file @
2a95e3be
...
...
@@ -2,7 +2,7 @@
"name"
:
"uView"
,
"appid"
:
"__UNI__60F4B81"
,
"description"
:
"多平台快速开发的UI框架"
,
"versionName"
:
"1.7.
0
"
,
"versionName"
:
"1.7.
3
"
,
"versionCode"
:
"100"
,
"transformPx"
:
false
,
"app-plus"
:
{
...
...
pages.json
View file @
2a95e3be
...
...
@@ -6,7 +6,7 @@
//
"current"
:
0
,
//当前激活的模式(list
的索引项)
//
"list"
:
[{
//
"name"
:
"test"
,
//模式名称
//
"path"
:
"pages/components
B/dropdown
/index"
,
//启动页面,必选
//
"path"
:
"pages/components
C/test
/index"
,
//启动页面,必选
//
"query"
:
"uuid=c4bba940-f69e-11ea-a419-6bafda9d095e&__id__=1"
//启动参数,在页面的onLoad函数里面得到
//
}]
//
},
...
...
pages/componentsB/waterfall/index.vue
View file @
2a95e3be
...
...
@@ -3,13 +3,8 @@
<u-waterfall
v-model=
"flowList"
ref=
"uWaterfall"
>
<template
v-slot:left=
"
{ leftList }">
<view
class=
"demo-warter"
v-for=
"(item, index) in leftList"
:key=
"index"
>
<!-- 警告:微信小程序不支持嵌入lazyload组件,请自行如下使用image标签 -->
<!-- #ifndef MP-WEIXIN -->
<!-- 微信小程序需要hx2.8.11版本才支持在template中引入其他组件,比如下方的u-lazy-load组件 -->
<u-lazy-load
threshold=
"-450"
border-radius=
"10"
:image=
"item.image"
:index=
"index"
></u-lazy-load>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view
class=
"demo-img-wrap"
><image
class=
"demo-image"
:src=
"item.image"
mode=
"widthFix"
></image></view>
<!-- #endif -->
<view
class=
"demo-title"
>
{{
item
.
title
}}
</view>
<view
class=
"demo-price"
>
{{
item
.
price
}}
元
</view>
<view
class=
"demo-tag"
>
...
...
@@ -17,7 +12,6 @@
<view
class=
"demo-tag-text"
>
放心购
</view>
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<view
class=
"u-close"
>
<u-icon
name=
"close-circle-fill"
color=
"#fa3534"
size=
"34"
@
click=
"remove(item.id)"
></u-icon>
</view>
...
...
@@ -25,12 +19,7 @@
</
template
>
<
template
v-slot:right=
"{ rightList }"
>
<view
class=
"demo-warter"
v-for=
"(item, index) in rightList"
:key=
"index"
>
<!-- #ifndef MP-WEIXIN -->
<u-lazy-load
threshold=
"-450"
border-radius=
"10"
:image=
"item.image"
:index=
"index"
></u-lazy-load>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view
class=
"demo-img-wrap"
><image
class=
"demo-image"
:src=
"item.image"
mode=
"widthFix"
></image></view>
<!-- #endif -->
<view
class=
"demo-title"
>
{{
item
.
title
}}
</view>
<view
class=
"demo-price"
>
{{
item
.
price
}}
元
</view>
<view
class=
"demo-tag"
>
...
...
@@ -38,7 +27,6 @@
<view
class=
"demo-tag-text"
>
放心购
</view>
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<view
class=
"u-close"
>
<u-icon
name=
"close-circle-fill"
color=
"#fa3534"
size=
"34"
@
click=
"remove(item.id)"
></u-icon>
</view>
...
...
pages/componentsC/test/index.vue
View file @
2a95e3be
<
template
>
<view
class=
""
>
<u-checkbox-group
@
change=
"checkboxGroupChange"
>
<u-checkbox
@
change=
"checkboxChange"
v-model=
"item.checked"
v-for=
"(item, index) in list"
:key=
"index"
:name=
"item.name"
>
{{
item
.
name
}}
</u-checkbox>
</u-checkbox-group>
<u-button
@
click=
"checkedAll"
>
全选
</u-button>
<view
class=
"wrap"
>
<u-waterfall
v-model=
"flowList"
ref=
"uWaterfall"
>
<template
v-slot:left=
"
{ leftList }">
<view
class=
"demo-warter"
v-for=
"(item, index) in leftList"
:key=
"index"
>
<view
class=
""
@
tap=
"click1(item)"
>
<!-- 警告:微信小程序不支持嵌入lazyload组件,请自行如下使用image标签 -->
<!-- #ifndef MP-WEIXIN -->
<u-lazy-load
threshold=
"-450"
border-radius=
"10"
:image=
"item.image"
:index=
"index"
></u-lazy-load>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view
class=
"demo-img-wrap"
><image
class=
"demo-image"
:src=
"item.image"
mode=
"widthFix"
></image></view>
<!-- #endif -->
<view
class=
"demo-title"
>
{{
item
.
title
}}
</view>
<view
class=
"demo-price"
>
{{
item
.
price
}}
元
</view>
<view
class=
"demo-tag"
>
<view
class=
"demo-tag-owner"
>
自营
</view>
<view
class=
"demo-tag-text"
>
放心购
</view>
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<view
class=
"u-close"
>
<u-icon
name=
"close-circle-fill"
color=
"#fa3534"
size=
"34"
@
click=
"remove(item.id)"
></u-icon>
</view>
</view>
</view>
</
template
>
<
template
v-slot:right=
"{ rightList }"
>
<view
class=
"demo-warter"
v-for=
"(item, index) in rightList"
:key=
"index"
>
<!-- #ifndef MP-WEIXIN -->
<u-lazy-load
threshold=
"-450"
border-radius=
"10"
:image=
"item.image"
:index=
"index"
></u-lazy-load>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view
class=
"demo-img-wrap"
><image
class=
"demo-image"
:src=
"item.image"
mode=
"widthFix"
></image></view>
<!-- #endif -->
<view
class=
"demo-title"
>
{{
item
.
title
}}
</view>
<view
class=
"demo-price"
>
{{
item
.
price
}}
元
</view>
<view
class=
"demo-tag"
>
<view
class=
"demo-tag-owner"
>
自营
</view>
<view
class=
"demo-tag-text"
>
放心购
</view>
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<view
class=
"u-close"
>
<u-icon
name=
"close-circle-fill"
color=
"#fa3534"
size=
"34"
@
click=
"remove(item.id)"
></u-icon>
</view>
</view>
</
template
>
</u-waterfall>
<u-loadmore
bg-color=
"rgb(240, 240, 240)"
:status=
"loadStatus"
@
loadmore=
"addRandomData"
></u-loadmore>
</view>
</template>
...
...
@@ -16,40 +55,186 @@
export
default
{
data
()
{
return
{
loadStatus
:
'
loadmore
'
,
flowList
:
[],
list
:
[
{
name
:
'
apple
'
,
checked
:
false
,
disabled
:
false
price
:
35
,
title
:
'
北国风光,千里冰封,万里雪飘
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic.sc.chinaz.com/Files/pic/pic9/202002/zzpic23327_s.jpg
'
},
{
name
:
'
banner
'
,
checked
:
false
,
disabled
:
false
price
:
75
,
title
:
'
望长城内外,惟余莽莽
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic.sc.chinaz.com/Files/pic/pic9/202002/zzpic23325_s.jpg
'
},
{
name
:
'
orange
'
,
checked
:
false
,
disabled
:
false
price
:
385
,
title
:
'
大河上下,顿失滔滔
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg
'
},
{
price
:
784
,
title
:
'
欲与天公试比高
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/zzpic23369_s.jpg
'
},
{
price
:
7891
,
title
:
'
须晴日,看红装素裹,分外妖娆
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2130_s.jpg
'
},
{
price
:
2341
,
shop
:
'
李白杜甫白居易旗舰店
'
,
title
:
'
江山如此多娇,引无数英雄竞折腰
'
,
image
:
'
http://pic1.sc.chinaz.com/Files/pic/pic9/202002/zzpic23346_s.jpg
'
},
{
price
:
661
,
shop
:
'
李白杜甫白居易旗舰店
'
,
title
:
'
惜秦皇汉武,略输文采
'
,
image
:
'
http://pic1.sc.chinaz.com/Files/pic/pic9/202002/zzpic23344_s.jpg
'
},
{
price
:
1654
,
title
:
'
唐宗宋祖,稍逊风骚
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic1.sc.chinaz.com/Files/pic/pic9/202002/zzpic23343_s.jpg
'
},
{
price
:
1678
,
title
:
'
一代天骄,成吉思汗
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic1.sc.chinaz.com/Files/pic/pic9/202002/zzpic23343_s.jpg
'
},
{
price
:
924
,
title
:
'
只识弯弓射大雕
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic1.sc.chinaz.com/Files/pic/pic9/202002/zzpic23343_s.jpg
'
},
{
price
:
8243
,
title
:
'
俱往矣,数风流人物,还看今朝
'
,
shop
:
'
李白杜甫白居易旗舰店
'
,
image
:
'
http://pic1.sc.chinaz.com/Files/pic/pic9/202002/zzpic23343_s.jpg
'
}
]
};
},
onLoad
()
{
this
.
addRandomData
();
},
onReachBottom
()
{
this
.
loadStatus
=
'
loading
'
;
// 模拟数据加载
setTimeout
(()
=>
{
this
.
addRandomData
();
this
.
loadStatus
=
'
loadmore
'
;
},
1000
);
},
methods
:
{
// 选中某个复选框时,由checkbox时触发
checkboxChange
(
e
)
{
console
.
log
(
e
);
addRandomData
()
{
for
(
let
i
=
0
;
i
<
10
;
i
++
)
{
let
index
=
this
.
$u
.
random
(
0
,
this
.
list
.
length
-
1
);
// 先转成字符串再转成对象,避免数组对象引用导致数据混乱
let
item
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
list
[
index
]));
item
.
id
=
this
.
$u
.
guid
();
this
.
flowList
.
push
(
item
);
}
},
remove
(
id
)
{
this
.
$refs
.
uWaterfall
.
remove
(
id
);
},
// 选中任一checkbox时,由checkbox-group触发
checkboxGroupChange
(
e
)
{
// console.log(e);
clear
()
{
this
.
$refs
.
uWaterfall
.
clear
();
},
// 全选
checkedAll
()
{
this
.
list
.
map
(
val
=>
{
val
.
checked
=
true
;
})
click1
(
item
){
console
.
log
(
item
);
}
}
};
</
script
>
\ No newline at end of file
</
script
>
<
style
>
/* page不能写带scope的style标签中,否则无效 */
page
{
background-color
:
rgb
(
240
,
240
,
240
);
}
</
style
>
<
style
lang=
"scss"
scoped
>
.demo-warter
{
border-radius
:
8px
;
margin
:
5px
;
background-color
:
#ffffff
;
padding
:
8px
;
position
:
relative
;
}
.u-close
{
position
:
absolute
;
top
:
32rpx
;
right
:
32rpx
;
}
.demo-img-wrap
{
}
.demo-image
{
width
:
100%
;
border-radius
:
4px
;
}
.demo-title
{
font-size
:
30rpx
;
margin-top
:
5px
;
color
:
$u-main-color
;
}
.demo-tag
{
display
:
flex
;
margin-top
:
5px
;
}
.demo-tag-owner
{
background-color
:
$u-type-error
;
color
:
#ffffff
;
display
:
flex
;
align-items
:
center
;
padding
:
4rpx
14rpx
;
border-radius
:
50rpx
;
font-size
:
20rpx
;
line-height
:
1
;
}
.demo-tag-text
{
border
:
1px
solid
$u-type-primary
;
color
:
$u-type-primary
;
margin-left
:
10px
;
border-radius
:
50rpx
;
line-height
:
1
;
padding
:
4rpx
14rpx
;
display
:
flex
;
align-items
:
center
;
border-radius
:
50rpx
;
font-size
:
20rpx
;
}
.demo-price
{
font-size
:
30rpx
;
color
:
$u-type-error
;
margin-top
:
5px
;
}
.demo-shop
{
font-size
:
22rpx
;
color
:
$u-tips-color
;
margin-top
:
5px
;
}
</
style
>
uview-ui/components/u-back-top/u-back-top.vue
View file @
2a95e3be
...
...
@@ -6,7 +6,7 @@
zIndex: uZIndex,
opacity: opacity
}, customStyle]">
<view
class=
"u-back-top__content"
v-if=
"!$slots.default"
>
<view
class=
"u-back-top__content"
v-if=
"!$slots.default
&& !$slots.$default
"
>
<u-icon
@
click=
"backToTop"
:name=
"icon"
:custom-style=
"iconStyle"
></u-icon>
<view
class=
"u-back-top__content__tips"
>
{{
tips
}}
...
...
uview-ui/components/u-card/u-card.vue
View file @
2a95e3be
...
...
@@ -74,7 +74,7 @@
/**
* card 卡片
* @description 卡片组件一般用于多个列表条目,且风格统一的场景
* @tutorial https://www.uviewui.com/components/
line
.html
* @tutorial https://www.uviewui.com/components/
card
.html
* @property {Boolean} full 卡片与屏幕两侧是否留空隙(默认false)
* @property {String} title 头部左边的标题
* @property {String} title-color 标题颜色(默认#303133)
...
...
uview-ui/components/u-dropdown-item/u-dropdown-item.vue
View file @
2a95e3be
<
template
>
<view
class=
"u-dropdown-item"
v-if=
"active"
@
touchmove.stop.prevent=
"() =>
{}" @tap.stop.prevent="() => {}">
<block
v-if=
"!$slots.default"
>
<block
v-if=
"!$slots.default
&& !$slots.$default
"
>
<scroll-view
scroll-y=
"true"
:style=
"
{
height: $u.addUnit(height)
}">
...
...
@@ -21,6 +21,18 @@
</
template
>
<
script
>
/**
* dropdown-item 下拉菜单
* @description 该组件一般用于向下展开菜单,同时可切换多个选项卡的场景
* @tutorial http://uviewui.com/components/dropdown.html
* @property {String | Number} v-model 双向绑定选项卡选择值
* @property {String} title 菜单项标题
* @property {Array[Object]} options 选项数据,如果传入了默认slot,此参数无效
* @property {Boolean} disabled 是否禁用此选项卡(默认false)
* @property {String | Number} duration 选项卡展开和收起的过渡时间,单位ms(默认300)
* @property {String | Number} height 弹窗下拉内容的高度(内容超出将会滚动)(默认auto)
* @example <u-dropdown-item title="标题"></u-dropdown-item>
*/
export
default
{
name
:
'
u-dropdown-item
'
,
props
:
{
...
...
uview-ui/components/u-dropdown/u-dropdown.vue
View file @
2a95e3be
...
...
@@ -21,7 +21,8 @@
</view>
<view
class=
"u-dropdown__content"
:style=
"[contentStyle,
{
transition: `opacity ${duration / 1000}s linear`,
top: $u.addUnit(height)
top: $u.addUnit(height),
height: contentHeight + 'px'
}]"
@tap="maskClick" @touchmove.stop.prevent>
<view
@
tap
.
stop
.
prevent
class=
"u-dropdown__content__popup"
:style=
"[popupStyle]"
>
...
...
@@ -33,6 +34,23 @@
</
template
>
<
script
>
/**
* dropdown 下拉菜单
* @description 该组件一般用于向下展开菜单,同时可切换多个选项卡的场景
* @tutorial http://uviewui.com/components/dropdown.html
* @property {String} active-color 标题和选项卡选中的颜色(默认#2979ff)
* @property {String} inactive-color 标题和选项卡未选中的颜色(默认#606266)
* @property {Boolean} close-on-click-mask 点击遮罩是否关闭菜单(默认true)
* @property {Boolean} close-on-click-self 点击当前激活项标题是否关闭菜单(默认true)
* @property {String | Number} duration 选项卡展开和收起的过渡时间,单位ms(默认300)
* @property {String | Number} height 标题菜单的高度,单位任意(默认80)
* @property {String | Number} border-radius 菜单展开内容下方的圆角值,单位任意(默认0)
* @property {Boolean} border-bottom 标题菜单是否显示下边框(默认false)
* @property {String | Number} title-size 标题的字体大小,单位任意,数值默认为rpx单位(默认28)
* @event {Function} open 下拉菜单被打开时触发
* @event {Function} close 下拉菜单被关闭时触发
* @example <u-dropdown></u-dropdown>
*/
export
default
{
name
:
'
u-dropdown
'
,
props
:
{
...
...
@@ -75,6 +93,11 @@
titleSize
:
{
type
:
[
Number
,
String
],
default
:
28
},
// 下拉出来的内容部分的圆角值
borderRadius
:
{
type
:
[
Number
,
String
],
default
:
0
}
},
data
()
{
...
...
@@ -91,7 +114,8 @@
opacity
:
0
},
// 让某个菜单保持高亮的状态
highlightIndex
:
99999
highlightIndex
:
99999
,
contentHeight
:
0
}
},
computed
:
{
...
...
@@ -101,6 +125,7 @@
// 进行Y轴位移,展开状态时,恢复原位。收齐状态时,往上位移100%,进行隐藏
style
.
transform
=
`translateY(
${
this
.
active
?
0
:
'
-100%
'
}
)`
style
[
'
transition-duration
'
]
=
this
.
duration
/
1000
+
'
s
'
;
style
.
borderRadius
=
`0 0
${
this
.
$u
.
addUnit
(
this
.
borderRadius
)}
${
this
.
$u
.
addUnit
(
this
.
borderRadius
)}
`
;
return
style
;
}
},
...
...
@@ -108,6 +133,9 @@
// 引用所有子组件(u-dropdown-item)的this,不能在data中声明变量,否则在微信小程序会造成循环引用而报错
this
.
children
=
[];
},
mounted
()
{
this
.
getContentHeight
();
},
methods
:
{
init
()
{
// 当某个子组件内容变化时,触发父组件的init,父组件再让每一个子组件重新初始化一遍
...
...
@@ -171,6 +199,20 @@
// 外部手动设置某个菜单高亮
highlight
(
index
=
undefined
)
{
this
.
highlightIndex
=
index
!==
undefined
?
index
:
99999
;
},
// 获取下拉菜单内容的高度
getContentHeight
()
{
// 这里的原理为,因为dropdown组件是相对定位的,它的下拉出来的内容,必须给定一个高度
// 才能让遮罩占满菜单一下,直到屏幕底部的高度
// this.$u.sys()为uView封装的获取设备信息的方法
let
windowHeight
=
this
.
$u
.
sys
().
windowHeight
;
this
.
$uGetRect
(
'
.u-dropdown__menu
'
).
then
(
res
=>
{
// 这里获取的是dropdown的尺寸,在H5上,uniapp获取尺寸是有bug的(以前提出修复过,后来又出现了此bug,目前hx2.8.11版本)
// H5端bug表现为元素尺寸的top值为导航栏底部到到元素的上边沿的距离,但是元素的bottom值确是导航栏顶部到元素底部的距离
// 二者是互相矛盾的,本质原因是H5端导航栏非原生,uni的开发者大意造成
// 这里取菜单栏的botton值合理的,不能用res.top,否则页面会造成滚动
this
.
contentHeight
=
windowHeight
-
res
.
bottom
;
})
}
}
}
...
...
@@ -182,6 +224,7 @@
.u-dropdown
{
flex
:
1
;
width
:
100%
;
position
:
relative
;
&
__menu
{
@include
vue-flex
;
...
...
@@ -220,6 +263,7 @@
left
:
0px
;
bottom
:
0
;
overflow
:
hidden
;
&
__mask
{
position
:
absolute
;
...
...
@@ -236,6 +280,7 @@
z-index
:
10
;
transition
:
all
0
.3s
;
transform
:
translate3D
(
0
,
-100%
,
0
);
overflow
:
hidden
;
}
}
...
...
uview-ui/components/u-line-progress/u-line-progress.vue
View file @
2a95e3be
...
...
@@ -9,7 +9,7 @@
striped ? 'u-striped' : '',
striped
&&
stripedActive ? 'u-striped-active' : ''
]" class="u-active" :style="[progressStyle]">
<slot
v-if=
"$slots.default"
/>
<slot
v-if=
"$slots.default
|| $slots.$default
"
/>
<block
v-else-if=
"showPercent"
>
{{
percent
+
'
%
'
}}
</block>
...
...
uview-ui/components/u-message-input/u-message-input.vue
View file @
2a95e3be
...
...
@@ -100,7 +100,7 @@
// 激活样式
activeColor
:
{
type
:
String
,
default
:
'
red
'
default
:
'
#2979ff
'
},
// 未激活的样式
inactiveColor
:
{
...
...
uview-ui/components/u-modal/u-modal.vue
View file @
2a95e3be
...
...
@@ -5,7 +5,7 @@
<view
class=
"u-model"
>
<view
v-if=
"showTitle"
class=
"u-model__title u-line-1"
:style=
"[titleStyle]"
>
{{
title
}}
</view>
<view
class=
"u-model__content"
>
<view
:style=
"[contentStyle]"
v-if=
"$slots.default"
>
<view
:style=
"[contentStyle]"
v-if=
"$slots.default
|| $slots.$default
"
>
<slot
/>
</view>
<view
v-else
class=
"u-model__content__message"
:style=
"[contentStyle]"
>
{{
content
}}
</view>
...
...
uview-ui/components/u-number-box/u-number-box.vue
View file @
2a95e3be
...
...
@@ -181,7 +181,7 @@
inputVal
:
1
,
// 输入框中的值,不能直接使用props中的value,因为应该改变props的状态
timer
:
null
,
// 用作长按的定时器
changeFromInner
:
false
,
// 值发生变化,是来自内部还是外部
t
imer
:
null
,
// 内部定时器
innerChangeT
imer
:
null
,
// 内部定时器
};
},
created
()
{
...
...
@@ -291,15 +291,15 @@
handleChange
(
value
,
type
)
{
if
(
this
.
disabled
)
return
;
// 清除定时器,避免造成混乱
if
(
this
.
t
imer
)
{
clearTimeout
(
this
.
t
imer
);
this
.
t
imer
=
null
;
if
(
this
.
innerChangeT
imer
)
{
clearTimeout
(
this
.
innerChangeT
imer
);
this
.
innerChangeT
imer
=
null
;
}
// 发出input事件,修改通过v-model绑定的值,达到双向绑定的效果
this
.
changeFromInner
=
true
;
// 一定时间内,清除changeFromInner标记,否则内部值改变后
// 外部通过程序修改value值,将会无效
setTimeout
(()
=>
{
this
.
innerChangeTimer
=
setTimeout
(()
=>
{
this
.
changeFromInner
=
false
;
},
150
);
this
.
$emit
(
'
input
'
,
Number
(
value
));
...
...
uview-ui/components/u-radio-group/u-radio-group.vue
View file @
2a95e3be
...
...
@@ -91,7 +91,7 @@
// 所以需要手动通知子组件,这里返回一个parentData变量,供watch监听,在其中去通知每一个子组件重新从父组件(u-radio-group)
// 拉取父组件新的变化后的参数
parentData
()
{
return
[
this
.
disabled
,
this
.
activeColor
,
this
.
size
,
this
.
labelDisabled
,
this
.
shape
,
this
.
iconSize
,
this
.
width
,
this
.
wrap
];
return
[
this
.
value
,
this
.
disabled
,
this
.
activeColor
,
this
.
size
,
this
.
labelDisabled
,
this
.
shape
,
this
.
iconSize
,
this
.
width
,
this
.
wrap
];
}
},
methods
:
{
...
...
uview-ui/components/u-radio/u-radio.vue
View file @
2a95e3be
...
...
@@ -91,6 +91,7 @@
this
.
parent
=
false
;
// 支付宝小程序不支持provide/inject,所以使用这个方法获取整个父组件,在created定义,避免循环引用
this
.
updateParentData
();
this
.
parent
.
children
.
push
(
this
);
},
computed
:
{
// 是否禁用,如果父组件u-raios-group禁用的话,将会忽略子组件的配置
...
...
uview-ui/components/u-rate/u-rate.vue
View file @
2a95e3be
...
...
@@ -150,6 +150,9 @@ export default {
},
elActiveIcon
()
{
const
len
=
this
.
icons
.
length
// 此处规则类似于下方的elActiveColor参数,都是根据一定的规则,显示不同的图标
// 结果可能如此:icons参数传递了3个图标,当选中两个时,用第一个图标,4个时,用第二个图标
// 第三个时,用第三个图标作为激活的图标
if
(
len
&&
len
<=
this
.
count
)
{
const
step
=
Math
.
round
(
this
.
activeIndex
/
Math
.
round
(
this
.
count
/
len
))
if
(
step
<
1
)
return
this
.
icons
[
0
]
...
...
@@ -160,6 +163,8 @@ export default {
},
elActiveColor
()
{
const
len
=
this
.
colors
.
length
// 如果有设置colors参数(此参数用于将图标分段,比如一共5颗星,colors传3个颜色值,那么根据一定的规则,2颗星可能为第一个颜色
// 4颗星为第二个颜色值,5颗星为第三个颜色值)
if
(
len
&&
len
<=
this
.
count
)
{
const
step
=
Math
.
round
(
this
.
activeIndex
/
Math
.
round
(
this
.
count
/
len
))
if
(
step
<
1
)
return
this
.
colors
[
0
]
...
...
uview-ui/components/u-slider/u-slider.vue
View file @
2a95e3be
...
...
@@ -15,7 +15,7 @@
<view
class=
"u-slider__button-wrap"
@
touchstart=
"onTouchStart"
@
touchmove=
"onTouchMove"
@
touchend=
"onTouchEnd"
@
touchcancel=
"onTouchEnd"
>
<slot
v-if=
"$slots.default"
/>
<slot
v-if=
"$slots.default
|| $slots.$default
"
/>
<view
v-else
class=
"u-slider__button"
:style=
"[blockStyle,
{
height: blockWidth + 'rpx',
width: blockWidth + 'rpx',
...
...
uview-ui/components/u-tabbar/u-tabbar.vue
View file @
2a95e3be
...
...
@@ -120,9 +120,9 @@
},
data
()
{
return
{
// 由于安卓太菜了,通过css居中凸起按钮的外层元素有误差,故通过js计算将其
其
中
// 由于安卓太菜了,通过css居中凸起按钮的外层元素有误差,故通过js计算将其
居
中
midButtonLeft
:
'
50%
'
,
pageUrl
:
''
,
// 当前
pageUrl
:
''
,
// 当前
页面URL
}
},
created
()
{
...
...
uview-ui/libs/config/config.js
View file @
2a95e3be
// 此版本发布于2020-09-
16
let
version
=
'
1.7.
0
'
;
// 此版本发布于2020-09-
22
let
version
=
'
1.7.
3
'
;
export
default
{
v
:
version
,
...
...
uview-ui/package.json
View file @
2a95e3be
{
"name"
:
"uview-ui"
,
"version"
:
"1.7.
0
"
,
"version"
:
"1.7.
3
"
,
"description"
:
"uView UI,是uni-app生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水"
,
"main"
:
"index.js"
,
"keywords"
:
[
"uview"
,
"uView"
,
"uni-app"
,
"uni-app ui"
,
"uniapp"
,
"uviewui"
,
"uview ui"
,
"uviewUI"
,
"uViewui"
,
"uViewUI"
,
"uView UI"
,
"uni ui"
,
"uni UI"
,
"uniapp ui"
,
"ui"
,
"UI框架"
,
"uniapp ui框架"
,
"uniapp UI"
],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment