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
bb453ec0
Commit
bb453ec0
authored
Jul 28, 2020
by
wlxuqu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'yiruiwen' into dev
parents
4f8c388d
7d463c81
Changes
39
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
801 additions
and
431 deletions
+801
-431
manifest.json
manifest.json
+1
-1
pages.json
pages.json
+20
-20
index.vue
pages/componentsA/avatar/index.vue
+33
-8
index.vue
pages/componentsB/sticky/index.vue
+7
-1
index.vue
pages/componentsB/waterfall/index.vue
+6
-2
index.vue
pages/componentsC/actionSheet/index.vue
+2
-1
index.vue
pages/componentsC/test/index.vue
+11
-20
components.config.js
pages/example/components.config.js
+0
-2
components.vue
pages/example/components.vue
+1
-0
js.vue
pages/example/js.vue
+1
-0
template.vue
pages/example/template.vue
+1
-0
js.png
static/uview/example/js.png
+0
-0
js_bak.png
static/uview/example/js_bak.png
+0
-0
js_select.png
static/uview/example/js_select.png
+0
-0
js_select_bak.png
static/uview/example/js_select_bak.png
+0
-0
index.js
store/index.js
+21
-0
u-action-sheet.vue
uview-ui/components/u-action-sheet/u-action-sheet.vue
+16
-6
u-avatar.vue
uview-ui/components/u-avatar/u-avatar.vue
+113
-11
u-button.vue
uview-ui/components/u-button/u-button.vue
+2
-1
u-col.vue
uview-ui/components/u-col/u-col.vue
+1
-1
u-icon.vue
uview-ui/components/u-icon/u-icon.vue
+26
-3
u-image.vue
uview-ui/components/u-image/u-image.vue
+5
-2
u-input.vue
uview-ui/components/u-input/u-input.vue
+24
-0
u-keyboard.vue
uview-ui/components/u-keyboard/u-keyboard.vue
+14
-2
u-modal.vue
uview-ui/components/u-modal/u-modal.vue
+235
-250
u-number-box.vue
uview-ui/components/u-number-box/u-number-box.vue
+35
-6
u-picker.vue
uview-ui/components/u-picker/u-picker.vue
+19
-2
u-popup.vue
uview-ui/components/u-popup/u-popup.vue
+10
-4
u-section.vue
uview-ui/components/u-section/u-section.vue
+2
-2
u-select.vue
uview-ui/components/u-select/u-select.vue
+14
-2
u-slider.vue
uview-ui/components/u-slider/u-slider.vue
+2
-1
u-sticky.vue
uview-ui/components/u-sticky/u-sticky.vue
+3
-1
u-tabbar.vue
uview-ui/components/u-tabbar/u-tabbar.vue
+82
-11
u-tabs.vue
uview-ui/components/u-tabs/u-tabs.vue
+9
-2
u-upload.vue
uview-ui/components/u-upload/u-upload.vue
+1
-1
iconfont.css
uview-ui/iconfont.css
+75
-63
config.js
uview-ui/libs/config/config.js
+2
-2
index.js
uview-ui/libs/request/index.js
+6
-2
package.json
uview-ui/package.json
+1
-1
No files found.
manifest.json
View file @
bb453ec0
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"name"
:
"uView"
,
"name"
:
"uView"
,
"appid"
:
"__UNI__60F4B81"
,
"appid"
:
"__UNI__60F4B81"
,
"description"
:
"多平台快速开发的UI框架"
,
"description"
:
"多平台快速开发的UI框架"
,
"versionName"
:
"1.5.
5
"
,
"versionName"
:
"1.5.
6
"
,
"versionCode"
:
"100"
,
"versionCode"
:
"100"
,
"transformPx"
:
false
,
"transformPx"
:
false
,
"app-plus"
:
{
"app-plus"
:
{
...
...
pages.json
View file @
bb453ec0
...
@@ -2,14 +2,14 @@
...
@@ -2,14 +2,14 @@
"easycom"
:
{
"easycom"
:
{
"^u-(.*)"
:
"@/uview-ui/components/u-$1/u-$1.vue"
"^u-(.*)"
:
"@/uview-ui/components/u-$1/u-$1.vue"
},
},
//
"condition"
:
{
//模式配置,仅开发期间生效
"condition"
:
{
//模式配置,仅开发期间生效
//
"current"
:
0
,
//当前激活的模式(list
的索引项)
"current"
:
0
,
//当前激活的模式(list
的索引项)
//
"list"
:
[{
"list"
:
[{
//
"name"
:
"test"
,
//模式名称
"name"
:
"test"
,
//模式名称
//
"path"
:
"pages/componentsB/table
/index"
,
//启动页面,必选
"path"
:
"pages/componentsA/avatar
/index"
,
//启动页面,必选
//
"query"
:
"id=1&name=2"
//启动参数,在页面的onLoad函数里面得到
"query"
:
"id=1&name=2"
//启动参数,在页面的onLoad函数里面得到
//
}]
}]
//
},
},
"pages"
:
[
"pages"
:
[
//
演示-组件
//
演示-组件
{
{
...
@@ -828,22 +828,22 @@
...
@@ -828,22 +828,22 @@
"backgroundColor"
:
"#FFFFFF"
,
"backgroundColor"
:
"#FFFFFF"
,
"borderStyle"
:
"black"
,
"borderStyle"
:
"black"
,
"list"
:
[{
"list"
:
[{
"pagePath"
:
"pages/example/components"
,
"pagePath"
:
"pages/example/components"
"iconPath"
:
"static/uview/example/component.png"
,
//
"iconPath"
:
"static/uview/example/component.png"
,
"selectedIconPath"
:
"static/uview/example/component_select.png"
,
//
"selectedIconPath"
:
"static/uview/example/component_select.png"
,
"text"
:
"组件"
//
"text"
:
"组件"
},
},
{
{
"pagePath"
:
"pages/example/js"
,
"pagePath"
:
"pages/example/js"
"iconPath"
:
"static/uview/example/js.png"
,
//
"iconPath"
:
"static/uview/example/js.png"
,
"selectedIconPath"
:
"static/uview/example/js_select.png"
,
//
"selectedIconPath"
:
"static/uview/example/js_select.png"
,
"text"
:
"工具"
//
"text"
:
"工具"
},
},
{
{
"pagePath"
:
"pages/example/template"
,
"pagePath"
:
"pages/example/template"
"iconPath"
:
"static/uview/example/template.png"
,
//
"iconPath"
:
"static/uview/example/template.png"
,
"selectedIconPath"
:
"static/uview/example/template_select.png"
,
//
"selectedIconPath"
:
"static/uview/example/template_select.png"
,
"text"
:
"模板"
//
"text"
:
"模板"
}
}
]
]
}
}
...
...
pages/componentsA/avatar/index.vue
View file @
bb453ec0
...
@@ -3,8 +3,16 @@
...
@@ -3,8 +3,16 @@
<view
class=
"u-demo-wrap"
>
<view
class=
"u-demo-wrap"
>
<view
class=
"u-demo-title"
>
演示效果
</view>
<view
class=
"u-demo-title"
>
演示效果
</view>
<view
class=
"u-demo-area"
>
<view
class=
"u-demo-area"
>
<u-avatar
:mode=
"mode"
:size=
"size"
:src=
"src"
:text=
"text"
>
<u-avatar
</u-avatar>
:mode=
"mode"
:size=
"size"
:src=
"src"
:text=
"text"
:showLevel=
"showLevel"
:showSex=
"showSex"
:sexIcon=
"sexIcon"
:bgColor=
'bgColor'
></u-avatar>
</view>
</view>
</view>
</view>
<view
class=
"u-config-wrap"
>
<view
class=
"u-config-wrap"
>
...
@@ -15,9 +23,17 @@
...
@@ -15,9 +23,17 @@
<view
class=
"u-item-title"
>
模式选择
</view>
<view
class=
"u-item-title"
>
模式选择
</view>
<u-subsection
vibrateShort
:list=
"['圆形', '圆角方形']"
@
change=
"modeChange"
></u-subsection>
<u-subsection
vibrateShort
:list=
"['圆形', '圆角方形']"
@
change=
"modeChange"
></u-subsection>
</view>
</view>
<view
class=
"u-config-item"
>
<view
class=
"u-item-title"
>
性别选择
</view>
<u-subsection
vibrateShort
:list=
"['男', '女', '不显示']"
@
change=
"sexChange"
></u-subsection>
</view>
<view
class=
"u-config-item"
>
<view
class=
"u-item-title"
>
等级
</view>
<u-subsection
vibrateShort
:list=
"['显示', '不显示']"
@
change=
"levelChange"
></u-subsection>
</view>
<view
class=
"u-config-item"
>
<view
class=
"u-config-item"
>
<view
class=
"u-item-title"
>
自定义内容
</view>
<view
class=
"u-item-title"
>
自定义内容
</view>
<u-subsection
vibrateShort
current=
"
1"
:list=
"['默认',
'图片', '文字']"
@
change=
"styleChange"
></u-subsection>
<u-subsection
vibrateShort
current=
"
0"
:list=
"[
'图片', '文字']"
@
change=
"styleChange"
></u-subsection>
</view>
</view>
<view
class=
"u-config-item"
>
<view
class=
"u-config-item"
>
<view
class=
"u-item-title"
>
尺寸
</view>
<view
class=
"u-item-title"
>
尺寸
</view>
...
@@ -34,7 +50,11 @@
...
@@ -34,7 +50,11 @@
mode
:
'
circle
'
,
mode
:
'
circle
'
,
src
:
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg
'
,
src
:
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg
'
,
text
:
''
,
// 优先级比src高
text
:
''
,
// 优先级比src高
size
:
'
90
'
size
:
'
90
'
,
showLevel
:
true
,
showSex
:
true
,
sexIcon
:
'
man
'
,
bgColor
:
'
#fcbd71
'
}
}
},
},
methods
:
{
methods
:
{
...
@@ -43,9 +63,6 @@
...
@@ -43,9 +63,6 @@
},
},
styleChange
(
index
)
{
styleChange
(
index
)
{
if
(
index
==
0
)
{
if
(
index
==
0
)
{
this
.
src
=
''
;
this
.
text
=
''
;
}
else
if
(
index
==
1
)
{
this
.
text
=
''
;
this
.
text
=
''
;
this
.
src
=
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg
'
;
this
.
src
=
'
http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg
'
;
}
else
{
}
else
{
...
@@ -54,8 +71,16 @@
...
@@ -54,8 +71,16 @@
},
},
sizeChange
(
index
)
{
sizeChange
(
index
)
{
this
.
size
=
index
==
0
?
'
large
'
:
index
==
1
?
'
default
'
:
index
==
2
?
'
mini
'
:
160
;
this
.
size
=
index
==
0
?
'
large
'
:
index
==
1
?
'
default
'
:
index
==
2
?
'
mini
'
:
160
;
},
sexChange
(
index
)
{
this
.
showSex
=
true
;
if
(
index
==
0
)
this
.
sexIcon
=
'
man
'
;
if
(
index
==
1
)
this
.
sexIcon
=
'
woman
'
;
if
(
index
==
2
)
this
.
showSex
=
false
;
},
levelChange
(
index
)
{
this
.
showLevel
=
!
index
;
}
}
}
}
}
}
</
script
>
</
script
>
...
...
pages/componentsB/sticky/index.vue
View file @
bb453ec0
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<view
class=
"u-demo-title"
>
演示效果
</view>
<view
class=
"u-demo-title"
>
演示效果
</view>
<view
class=
"u-demo-area"
>
<view
class=
"u-demo-area"
>
<u-toast
ref=
"uToast"
></u-toast>
<u-toast
ref=
"uToast"
></u-toast>
<u-sticky
:offset-top=
"offsetTop"
:enable=
"enable"
@
fixed=
"fixed"
>
<u-sticky
:offset-top=
"offsetTop"
:enable=
"enable"
@
fixed=
"fixed"
@
unfixed=
"unfixed"
>
<view
class=
"sticky"
>
<view
class=
"sticky"
>
宝剑锋从磨砺出,梅花香自苦寒来
宝剑锋从磨砺出,梅花香自苦寒来
</view>
</view>
...
@@ -51,6 +51,12 @@
...
@@ -51,6 +51,12 @@
type
:
'
warning
'
,
type
:
'
warning
'
,
title
:
'
触发吸顶
'
title
:
'
触发吸顶
'
})
})
},
unfixed
()
{
this
.
$refs
.
uToast
.
show
({
type
:
'
success
'
,
title
:
'
取消吸顶
'
})
}
}
}
}
}
}
...
...
pages/componentsB/waterfall/index.vue
View file @
bb453ec0
...
@@ -18,7 +18,9 @@
...
@@ -18,7 +18,9 @@
</view>
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<u-icon
name=
"close-circle-fill"
color=
"#fa3534"
size=
"34"
class=
"u-close"
@
click=
"remove(item.id)"
></u-icon>
<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
>
<
template
v-slot:right=
"{ rightList }"
>
<
template
v-slot:right=
"{ rightList }"
>
...
@@ -37,7 +39,9 @@
...
@@ -37,7 +39,9 @@
</view>
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<view
class=
"demo-shop"
>
{{
item
.
shop
}}
</view>
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<!-- 微信小程序无效,因为它不支持在template中引入组件 -->
<u-icon
name=
"close-circle-fill"
color=
"#fa3534"
size=
"34"
class=
"u-close"
@
click=
"remove(item.id)"
></u-icon>
<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
>
</u-waterfall>
</u-waterfall>
...
...
pages/componentsC/actionSheet/index.vue
View file @
bb453ec0
...
@@ -32,7 +32,8 @@
...
@@ -32,7 +32,8 @@
list
:
[{
list
:
[{
text
:
'
最是人间留不住
'
,
text
:
'
最是人间留不住
'
,
},
{
},
{
text
:
'
朱颜辞镜花辞树
'
text
:
'
朱颜辞镜花辞树
'
,
disabled
:
true
},
{
},
{
text
:
'
正是江南好风景
'
text
:
'
正是江南好风景
'
},
{
},
{
...
...
pages/componentsC/test/index.vue
View file @
bb453ec0
<
template
>
<
template
>
<view
class=
"u-content"
>
<view>
<u-dropdown-list></u-dropdown-list>
<u-popup
v-model=
"show"
@
close=
"close"
>
<view>
出淤泥而不染,濯清涟而不妖
</view>
</u-popup>
<u-button
@
click=
"show = true"
>
打开
</u-button>
</view>
</view>
</
template
>
</
template
>
...
@@ -8,25 +11,13 @@
...
@@ -8,25 +11,13 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
content
:
`
show
:
false
<p>露从今夜白,月是故乡明</p>
<img src="https://cdn.uviewui.com/uview/swiper/2.jpg" />
`
}
}
},
},
}
methods
:
{
</
script
>
close
()
{
console
.
log
(
'
close
'
);
<
style
lang=
"scss"
scoped
>
}
.u-content
{
margin-top
:
100rpx
;
color
:
$u-content-color
;
font-size
:
32rpx
;
line-height
:
1
.8
;
// 标签形式无效
p
{
color
:
$u-tips-color
;
}
}
}
}
</
s
tyle
>
</
s
cript
>
\ No newline at end of file
pages/example/components.config.js
View file @
bb453ec0
...
@@ -198,13 +198,11 @@ export default [{
...
@@ -198,13 +198,11 @@ export default [{
icon
:
'
sticky
'
,
icon
:
'
sticky
'
,
title
:
'
Sticky 吸顶
'
,
title
:
'
Sticky 吸顶
'
,
},
},
// #ifndef MP-ALIPAY
{
{
path
:
'
/pages/componentsB/waterfall/index
'
,
path
:
'
/pages/componentsB/waterfall/index
'
,
icon
:
'
waterfall
'
,
icon
:
'
waterfall
'
,
title
:
'
Waterfall 瀑布流
'
,
title
:
'
Waterfall 瀑布流
'
,
},
},
// #endif
{
{
path
:
'
/pages/componentsB/divider/index
'
,
path
:
'
/pages/componentsB/divider/index
'
,
icon
:
'
divider
'
,
icon
:
'
divider
'
,
...
...
pages/example/components.vue
View file @
bb453ec0
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
</u-cell-group>
</u-cell-group>
</view>
</view>
<u-gap
height=
"70"
></u-gap>
<u-gap
height=
"70"
></u-gap>
<u-tabbar
:list=
"vuex_tabbar"
:mid-button=
"true"
></u-tabbar>
</view>
</view>
</
template
>
</
template
>
...
...
pages/example/js.vue
View file @
bb453ec0
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
</u-cell-group>
</u-cell-group>
</view>
</view>
<u-gap
height=
"70"
></u-gap>
<u-gap
height=
"70"
></u-gap>
<u-tabbar
:list=
"vuex_tabbar"
:mid-button=
"true"
></u-tabbar>
</view>
</view>
</
template
>
</
template
>
...
...
pages/example/template.vue
View file @
bb453ec0
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
</u-cell-group>
</u-cell-group>
</view>
</view>
<u-gap
height=
"70"
></u-gap>
<u-gap
height=
"70"
></u-gap>
<u-tabbar
:list=
"vuex_tabbar"
:mid-button=
"true"
></u-tabbar>
</view>
</view>
</
template
>
</
template
>
...
...
static/uview/example/js.png
View replaced file @
4f8c388d
View file @
bb453ec0
3.14 KB
|
W:
|
H:
4.14 KB
|
W:
|
H:
2-up
Swipe
Onion skin
static/uview/example/js_bak.png
0 → 100644
View file @
bb453ec0
3.14 KB
static/uview/example/js_select.png
View replaced file @
4f8c388d
View file @
bb453ec0
2.2 KB
|
W:
|
H:
4.18 KB
|
W:
|
H:
2-up
Swipe
Onion skin
static/uview/example/js_select_bak.png
0 → 100644
View file @
bb453ec0
2.2 KB
store/index.js
View file @
bb453ec0
...
@@ -36,6 +36,27 @@ const store = new Vuex.Store({
...
@@ -36,6 +36,27 @@ const store = new Vuex.Store({
// 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式
// 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式
vuex_version
:
'
1.0.1
'
,
vuex_version
:
'
1.0.1
'
,
vuex_demo
:
'
绛紫
'
,
vuex_demo
:
'
绛紫
'
,
// 自定义tabbar数据
vuex_tabbar
:
[{
iconPath
:
"
/static/uview/example/component.png
"
,
selectedIconPath
:
"
/static/uview/example/component_select.png
"
,
text
:
'
组件
'
,
pagePath
:
'
/pages/example/components
'
},
{
iconPath
:
"
/static/uview/example/js.png
"
,
selectedIconPath
:
"
/static/uview/example/js_select.png
"
,
text
:
'
工具
'
,
midButton
:
true
,
pagePath
:
'
/pages/example/js
'
},
{
iconPath
:
"
/static/uview/example/template.png
"
,
selectedIconPath
:
"
/static/uview/example/template_select.png
"
,
text
:
'
模板
'
,
pagePath
:
'
/pages/example/template
'
}
]
},
},
mutations
:
{
mutations
:
{
$uStore
(
state
,
payload
)
{
$uStore
(
state
,
payload
)
{
...
...
uview-ui/components/u-action-sheet/u-action-sheet.vue
View file @
bb453ec0
<
template
>
<
template
>
<u-popup
mode=
"bottom"
:border-radius=
"borderRadius"
:popup=
"false"
v-model=
"value"
:maskCloseAble=
"maskCloseAble"
<u-popup
mode=
"bottom"
:border-radius=
"borderRadius"
:popup=
"false"
v-model=
"value"
:maskCloseAble=
"maskCloseAble"
length=
"auto"
:safeAreaInsetBottom=
"safeAreaInsetBottom"
@
close=
"popupClose"
:z-index=
"uZIndex"
>
length=
"auto"
:safeAreaInsetBottom=
"safeAreaInsetBottom"
@
close=
"popupClose"
:z-index=
"uZIndex"
>
<view
class=
"u-tips u-border-bottom"
v-if=
"tips.text"
:style=
"[tipsStyle]"
>
<view
class=
"u-tips u-border-bottom"
v-if=
"tips.text"
:style=
"[tipsStyle]"
>
{{
tips
.
text
}}
{{
tips
.
text
}}
</view>
</view>
<block
v-for=
"(item, index) in list"
:key=
"index"
>
<block
v-for=
"(item, index) in list"
:key=
"index"
>
<view
@
touchmove
.
stop
.
prevent
@
tap=
"itemClick(index)"
:style=
"[itemStyle(index)]"
class=
"u-action-sheet-item"
:class=
"[index
<
list
.
length
-
1
?
'
u-border-bottom
'
:
'']"
<view
hover-class=
"u-hover-class"
:hover-stay-time=
"150"
>
@
touchmove
.
stop
.
prevent
@
tap=
"itemClick(index)"
:style=
"[itemStyle(index)]"
class=
"u-action-sheet-item"
:class=
"[index
<
list
.
length
-
1
?
'
u-border-bottom
'
:
'']"
:hover-stay-time=
"150"
>
{{
item
.
text
}}
{{
item
.
text
}}
</view>
</view>
</block>
</block>
<view
class=
"u-gab"
v-if=
"cancelBtn"
>
<view
class=
"u-gab"
v-if=
"cancelBtn"
>
</view>
</view>
<view
@
touchmove
.
stop
.
prevent
class=
"u-actionsheet-cancel u-action-sheet-item"
hover-class=
"u-hover-class"
<view
@
touchmove
.
stop
.
prevent
class=
"u-actionsheet-cancel u-action-sheet-item"
hover-class=
"u-hover-class"
:hover-stay-time=
"150"
v-if=
"cancelBtn"
@
tap=
"close"
>
{{
cancelText
}}
</view>
:hover-stay-time=
"150"
v-if=
"cancelBtn"
@
tap=
"close"
>
{{
cancelText
}}
</view>
</u-popup>
</u-popup>
</
template
>
</
template
>
...
@@ -112,6 +118,8 @@
...
@@ -112,6 +118,8 @@
let
style
=
{};
let
style
=
{};
if
(
this
.
list
[
index
].
color
)
style
.
color
=
this
.
list
[
index
].
color
;
if
(
this
.
list
[
index
].
color
)
style
.
color
=
this
.
list
[
index
].
color
;
if
(
this
.
list
[
index
].
fontSize
)
style
.
fontSize
=
this
.
list
[
index
].
fontSize
+
'
rpx
'
;
if
(
this
.
list
[
index
].
fontSize
)
style
.
fontSize
=
this
.
list
[
index
].
fontSize
+
'
rpx
'
;
// 选项被禁用的样式
if
(
this
.
list
[
index
].
disabled
)
style
.
color
=
'
#c0c4cc
'
;
return
style
;
return
style
;
}
}
},
},
...
@@ -132,8 +140,10 @@
...
@@ -132,8 +140,10 @@
popupClose
()
{
popupClose
()
{
this
.
$emit
(
'
input
'
,
false
);
this
.
$emit
(
'
input
'
,
false
);
},
},
// 点击某一个item
if (!this.show) return;
// 点击某一个item
itemClick
(
index
)
{
itemClick
(
index
)
{
// disabled的项禁止点击
if
(
this
.
list
[
index
].
disabled
)
return
;
this
.
$emit
(
'
click
'
,
index
);
this
.
$emit
(
'
click
'
,
index
);
this
.
$emit
(
'
input
'
,
false
);
this
.
$emit
(
'
input
'
,
false
);
}
}
...
@@ -143,7 +153,7 @@
...
@@ -143,7 +153,7 @@
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
@import
"../../libs/css/style.components.scss"
;
@import
"../../libs/css/style.components.scss"
;
.u-tips
{
.u-tips
{
font-size
:
26rpx
;
font-size
:
26rpx
;
text-align
:
center
;
text-align
:
center
;
...
...
uview-ui/components/u-avatar/u-avatar.vue
View file @
bb453ec0
...
@@ -3,13 +3,21 @@
...
@@ -3,13 +3,21 @@
<image
<image
@
error=
"loadError"
@
error=
"loadError"
:style=
"[imgStyle]"
:style=
"[imgStyle]"
class=
"u-avatar
-
img"
class=
"u-avatar
__
img"
v-if=
"!
t
ext && avatar"
v-if=
"!
uT
ext && avatar"
:src=
"avatar"
:src=
"avatar"
:mode=
"mode"
:mode=
"mode"
></image>
></image>
<text
class=
"u-line-1"
v-else-if=
"text"
>
{{
text
}}
</text>
<text
class=
"u-line-1"
v-else-if=
"uText"
:style=
"
{
fontSize: '38rpx'
}">
{{
uText
}}
</text>
<slot
v-else
></slot>
<slot
v-else
></slot>
<view
class=
"u-avatar__sex"
v-if=
"showSex"
:class=
"['u-avatar__sex--' + sexIcon]"
:style=
"[uSexStyle]"
>
<u-icon
:name=
"sexIcon"
size=
"20"
></u-icon>
</view>
<view
class=
"u-avatar__level"
v-if=
"showLevel"
:style=
"[uLevelStyle]"
>
<u-icon
:name=
"levelIcon"
size=
"20"
></u-icon>
</view>
</view>
</view>
</
template
>
</
template
>
...
@@ -23,7 +31,12 @@
...
@@ -23,7 +31,12 @@
* @property {String} src 头像路径,如加载失败,将会显示默认头像
* @property {String} src 头像路径,如加载失败,将会显示默认头像
* @property {String Number} size 头像尺寸,可以为指定字符串(large, default, mini),或者数值,单位rpx(默认default)
* @property {String Number} size 头像尺寸,可以为指定字符串(large, default, mini),或者数值,单位rpx(默认default)
* @property {String} mode 显示类型,见上方说明(默认circle)
* @property {String} mode 显示类型,见上方说明(默认circle)
* @property {String} text 用文字替代图片,级别优先于src
* @property {String} sex-icon 性别图标,man-男,woman-女(默认man)
* @property {String} level-icon 等级图标(默认level)
* @property {String} sex-bg-color 性别图标背景颜色
* @property {String} level-bg-color 等级图标背景颜色
* @property {String} show-sex 是否显示性别图标(默认false)
* @property {String} show-level 是否显示等级图标(默认false)
* @property {String} img-mode 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值(默认aspectFill)
* @property {String} img-mode 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值(默认aspectFill)
* @property {String} index 用户传递的标识符值,如果是列表循环,可穿v-for的index值
* @property {String} index 用户传递的标识符值,如果是列表循环,可穿v-for的index值
* @event {Function} click 头像被点击
* @event {Function} click 头像被点击
...
@@ -67,6 +80,36 @@
...
@@ -67,6 +80,36 @@
index
:
{
index
:
{
type
:
[
String
,
Number
],
type
:
[
String
,
Number
],
default
:
''
default
:
''
},
// 右上角性别角标,man-男,woman-女
sexIcon
:
{
type
:
String
,
default
:
'
man
'
},
// 右下角的等级图标
levelIcon
:
{
type
:
String
,
default
:
'
level
'
},
// 右下角等级图标背景颜色
levelBgColor
:
{
type
:
String
,
default
:
''
},
// 右上角性别图标的背景颜色
sexBgColor
:
{
type
:
String
,
default
:
''
},
// 是否显示性别图标
showSex
:
{
type
:
Boolean
,
default
:
false
},
// 是否显示等级图标
showLevel
:
{
type
:
Boolean
,
default
:
false
}
}
},
},
data
()
{
data
()
{
...
@@ -99,6 +142,22 @@
...
@@ -99,6 +142,22 @@
style
.
borderRadius
=
this
.
mode
==
'
circle
'
?
'
500px
'
:
'
5px
'
;
style
.
borderRadius
=
this
.
mode
==
'
circle
'
?
'
500px
'
:
'
5px
'
;
return
style
;
return
style
;
},
},
// 取字符串的第一个字符
uText
()
{
return
String
(
this
.
text
)[
0
];
},
// 性别图标的自定义样式
uSexStyle
()
{
let
style
=
{};
if
(
this
.
sexBgColor
)
style
.
backgroundColor
=
this
.
sexBgColor
;
return
style
;
},
// 等级图标的自定义样式
uLevelStyle
()
{
let
style
=
{};
if
(
this
.
levelBgColor
)
style
.
backgroundColor
=
this
.
levelBgColor
;
return
style
;
}
},
},
methods
:
{
methods
:
{
// 图片加载错误时,显示默认头像
// 图片加载错误时,显示默认头像
...
@@ -123,11 +182,54 @@
...
@@ -123,11 +182,54 @@
font-size
:
28rpx
;
font-size
:
28rpx
;
color
:
$u-content-color
;
color
:
$u-content-color
;
border-radius
:
10px
;
border-radius
:
10px
;
overflow
:
hidden
;
position
:
relative
;
}
&
__img
{
.u-avatar-img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
&
__sex
{
position
:
absolute
;
width
:
32rpx
;
color
:
#ffffff
;
height
:
32rpx
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
border-radius
:
100rpx
;
top
:
5%
;
z-index
:
1
;
right
:
-7%
;
border
:
1px
#ffffff
solid
;
&
--man
{
background-color
:
$u-type-primary
;
}
&
--woman
{
background-color
:
$u-type-error
;
}
&
--none
{
background-color
:
$u-type-warning
;
}
}
&
__level
{
position
:
absolute
;
width
:
32rpx
;
color
:
#ffffff
;
height
:
32rpx
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
border-radius
:
100rpx
;
bottom
:
5%
;
z-index
:
1
;
right
:
-7%
;
border
:
1px
#ffffff
solid
;
background-color
:
$u-type-warning
;
}
}
}
</
style
>
</
style
>
uview-ui/components/u-button/u-button.vue
View file @
bb453ec0
...
@@ -66,6 +66,7 @@
...
@@ -66,6 +66,7 @@
* @property {Boolean} loading 按钮名称前是否带 loading 图标(App-nvue 平台,在 ios 上为雪花,Android上为圆圈)
* @property {Boolean} loading 按钮名称前是否带 loading 图标(App-nvue 平台,在 ios 上为雪花,Android上为圆圈)
* @property {String} form-type 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
* @property {String} form-type 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
* @property {String} open-type 开放能力
* @property {String} open-type 开放能力
* @property {String} data-name 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取
* @property {String} hover-class 指定按钮按下去的样式类。当 hover-class="none" 时,没有点击态效果(App-nvue 平台暂不支持)
* @property {String} hover-class 指定按钮按下去的样式类。当 hover-class="none" 时,没有点击态效果(App-nvue 平台暂不支持)
* @property {Number} hover-start-time 按住后多久出现点击态,单位毫秒
* @property {Number} hover-start-time 按住后多久出现点击态,单位毫秒
* @property {Number} hover-stay-time 手指松开后点击态保留时间,单位毫秒
* @property {Number} hover-stay-time 手指松开后点击态保留时间,单位毫秒
...
@@ -245,7 +246,7 @@ export default {
...
@@ -245,7 +246,7 @@ export default {
this
.
getWaveQuery
(
e
);
this
.
getWaveQuery
(
e
);
});
});
}
}
this
.
$emit
(
'
click
'
);
this
.
$emit
(
'
click
'
,
e
);
},
},
// 查询按钮的节点信息
// 查询按钮的节点信息
getWaveQuery
(
e
)
{
getWaveQuery
(
e
)
{
...
...
uview-ui/components/u-col/u-col.vue
View file @
bb453ec0
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
flex: `0 0 ${100 / 12 * span}%`,
flex: `0 0 ${100 / 12 * span}%`,
alignItems: uAlignItem,
alignItems: uAlignItem,
justifyContent: uJustify,
justifyContent: uJustify,
textAlign: t
his.t
extAlign
textAlign: textAlign
}" @tap.stop.prevent="click">
}" @tap.stop.prevent="click">
<slot></slot>
<slot></slot>
</view>
</view>
...
...
uview-ui/components/u-icon/u-icon.vue
View file @
bb453ec0
...
@@ -34,6 +34,9 @@
...
@@ -34,6 +34,9 @@
* @property {String} label-pos label相对于图标的位置,只能right或bottom(默认right)
* @property {String} label-pos label相对于图标的位置,只能right或bottom(默认right)
* @property {String} index 一个用于区分多个图标的值,点击图标时通过click事件传出
* @property {String} index 一个用于区分多个图标的值,点击图标时通过click事件传出
* @property {String} hover-class 图标按下去的样式类,用法同uni的view组件的hover-class参数,详情见官网
* @property {String} hover-class 图标按下去的样式类,用法同uni的view组件的hover-class参数,详情见官网
* @property {String} width 显示图片小图标时的宽度
* @property {String} height 显示图片小图标时的高度
* @property {String} top 图标在垂直方向上的定位
* @event {Function} click 点击图标时触发
* @event {Function} click 点击图标时触发
* @example <u-icon name="photo" color="#2979ff" size="28"></u-icon>
* @example <u-icon name="photo" color="#2979ff" size="28"></u-icon>
*/
*/
...
@@ -127,6 +130,21 @@ export default {
...
@@ -127,6 +130,21 @@ export default {
return
{}
return
{}
}
}
},
},
// 用于显示图片小图标时,图片的宽度
width
:
{
type
:
[
String
,
Number
],
default
:
''
},
// 用于显示图片小图标时,图片的高度
height
:
{
type
:
[
String
,
Number
],
default
:
''
},
// 用于解决某些情况下,让图标垂直居中的用途
top
:
{
type
:
[
String
,
Number
],
default
:
''
}
},
},
computed
:
{
computed
:
{
customClass
()
{
customClass
()
{
...
@@ -148,7 +166,9 @@ export default {
...
@@ -148,7 +166,9 @@ export default {
let
style
=
{};
let
style
=
{};
style
=
{
style
=
{
fontSize
:
this
.
size
==
'
inherit
'
?
'
inherit
'
:
this
.
$u
.
addUnit
(
this
.
size
),
fontSize
:
this
.
size
==
'
inherit
'
?
'
inherit
'
:
this
.
$u
.
addUnit
(
this
.
size
),
fontWeight
:
this
.
bold
?
'
bold
'
:
'
normal
'
fontWeight
:
this
.
bold
?
'
bold
'
:
'
normal
'
,
// 安卓和iOS各需要设置一个到顶部的距离,才能更好的垂直居中
top
:
this
.
top
===
''
?
(
this
.
$u
.
os
==
'
ios
'
?
'
2rpx
'
:
'
4rpx
'
)
:
0
};
};
// 非主题色值时,才当作颜色值
// 非主题色值时,才当作颜色值
if
(
this
.
color
&&
!
this
.
$u
.
config
.
type
.
includes
(
this
.
color
))
style
.
color
=
this
.
color
;
if
(
this
.
color
&&
!
this
.
$u
.
config
.
type
.
includes
(
this
.
color
))
style
.
color
=
this
.
color
;
...
@@ -160,8 +180,9 @@ export default {
...
@@ -160,8 +180,9 @@ export default {
},
},
imgStyle
()
{
imgStyle
()
{
let
style
=
{};
let
style
=
{};
style
.
width
=
this
.
$u
.
addUnit
(
this
.
size
);
// 如果设置width和height属性,则优先使用,否则使用size属性
style
.
height
=
this
.
$u
.
addUnit
(
this
.
size
);
style
.
width
=
this
.
width
?
this
.
$u
.
addUnit
(
this
.
width
)
:
this
.
$u
.
addUnit
(
this
.
size
);
style
.
height
=
this
.
height
?
this
.
$u
.
addUnit
(
this
.
height
)
:
this
.
$u
.
addUnit
(
this
.
size
);
return
style
;
return
style
;
}
}
},
},
...
@@ -205,6 +226,8 @@ export default {
...
@@ -205,6 +226,8 @@ export default {
}
}
&
__icon
{
&
__icon
{
position
:
relative
;
&
--primary
{
&
--primary
{
color
:
$u-type-primary
;
color
:
$u-type-primary
;
}
}
...
...
uview-ui/components/u-image/u-image.vue
View file @
bb453ec0
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
}"
}"
>
>
<slot
v-if=
"$slots.loading"
name=
"loading"
/>
<slot
v-if=
"$slots.loading"
name=
"loading"
/>
<u-icon
v-else
:name=
"loadingIcon"
></u-icon>
<u-icon
v-else
:name=
"loadingIcon"
:width=
"width"
:height=
"height"
></u-icon>
</view>
</view>
<view
<view
v-if=
"showError && isError && !loading"
v-if=
"showError && isError && !loading"
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
}"
}"
>
>
<slot
v-if=
"$slots.error"
name=
"error"
/>
<slot
v-if=
"$slots.error"
name=
"error"
/>
<u-icon
v-else
:name=
"errorIcon"
></u-icon>
<u-icon
v-else
:name=
"errorIcon"
:width=
"width"
:height=
"height"
></u-icon>
</view>
</view>
</view>
</view>
</
template
>
</
template
>
...
@@ -54,6 +54,8 @@
...
@@ -54,6 +54,8 @@
* @property {Boolean} show-loading 是否显示加载中的图标或者自定义的slot(默认 true)
* @property {Boolean} show-loading 是否显示加载中的图标或者自定义的slot(默认 true)
* @property {Boolean} show-error 是否显示加载错误的图标或者自定义的slot(默认 true)
* @property {Boolean} show-error 是否显示加载错误的图标或者自定义的slot(默认 true)
* @property {Boolean} fade 是否需要淡入效果(默认 true)
* @property {Boolean} fade 是否需要淡入效果(默认 true)
* @property {String Number} width 传入图片路径时图片的宽度
* @property {String Number} height 传入图片路径时图片的高度
* @property {Boolean} webp 只支持网络资源,只对微信小程序有效(默认 false)
* @property {Boolean} webp 只支持网络资源,只对微信小程序有效(默认 false)
* @property {String | Number} duration 搭配fade参数的过渡时间,单位ms(默认 500)
* @property {String | Number} duration 搭配fade参数的过渡时间,单位ms(默认 500)
* @event {Function} click 点击图片时触发
* @event {Function} click 点击图片时触发
...
@@ -62,6 +64,7 @@
...
@@ -62,6 +64,7 @@
* @example <u-image width="100%" height="300rpx" :src="src"></u-image>
* @example <u-image width="100%" height="300rpx" :src="src"></u-image>
*/
*/
export
default
{
export
default
{
name
:
'
u-image
'
,
props
:
{
props
:
{
// 图片地址
// 图片地址
src
:
{
src
:
{
...
...
uview-ui/components/u-input/u-input.vue
View file @
bb453ec0
...
@@ -24,6 +24,8 @@
...
@@ -24,6 +24,8 @@
:fixed=
"fixed"
:fixed=
"fixed"
:focus=
"focus"
:focus=
"focus"
:autoHeight=
"autoHeight"
:autoHeight=
"autoHeight"
:selection-end=
"uSelectionEnd"
:selection-start=
"uSelectionStart"
@
input=
"handleInput"
@
input=
"handleInput"
@
blur=
"handleBlur"
@
blur=
"handleBlur"
@
focus=
"onFocus"
@
focus=
"onFocus"
...
@@ -43,6 +45,8 @@
...
@@ -43,6 +45,8 @@
:focus=
"focus"
:focus=
"focus"
:confirmType=
"confirmType"
:confirmType=
"confirmType"
:cursor-spacing=
"getCursorSpacing"
:cursor-spacing=
"getCursorSpacing"
:selection-end=
"uSelectionEnd"
:selection-start=
"uSelectionStart"
@
focus=
"onFocus"
@
focus=
"onFocus"
@
blur=
"handleBlur"
@
blur=
"handleBlur"
@
input=
"handleInput"
@
input=
"handleInput"
...
@@ -78,6 +82,8 @@ import Emitter from '../../libs/util/emitter.js';
...
@@ -78,6 +82,8 @@ import Emitter from '../../libs/util/emitter.js';
* @property {String} placeholder placeholder显示值(默认 '请输入内容')
* @property {String} placeholder placeholder显示值(默认 '请输入内容')
* @property {Boolean} disabled 是否禁用输入框(默认false)
* @property {Boolean} disabled 是否禁用输入框(默认false)
* @property {String Number} maxlength 输入框的最大可输入长度(默认140)
* @property {String Number} maxlength 输入框的最大可输入长度(默认140)
* @property {String Number} selection-start 光标起始位置,自动聚焦时有效,需与selection-end搭配使用(默认-1)
* @property {String Number} maxlength 光标结束位置,自动聚焦时有效,需与selection-start搭配使用(默认-1)
* @property {String Number} cursor-spacing 指定光标与键盘的距离,单位px(默认0)
* @property {String Number} cursor-spacing 指定光标与键盘的距离,单位px(默认0)
* @property {String} placeholderStyle placeholder的样式,字符串形式,如"color: red;"(默认 "color: #c0c4cc;")
* @property {String} placeholderStyle placeholder的样式,字符串形式,如"color: red;"(默认 "color: #c0c4cc;")
* @property {String} confirm-type 设置键盘右下角按钮的文字,仅在type为text时生效(默认done)
* @property {String} confirm-type 设置键盘右下角按钮的文字,仅在type为text时生效(默认done)
...
@@ -184,6 +190,16 @@ export default {
...
@@ -184,6 +190,16 @@ export default {
cursorSpacing
:
{
cursorSpacing
:
{
type
:
[
Number
,
String
],
type
:
[
Number
,
String
],
default
:
0
default
:
0
},
// 光标起始位置,自动聚焦时有效,需与selection-end搭配使用
selectionStart
:
{
type
:
[
Number
,
String
],
default
:
-
1
},
// 光标结束位置,自动聚焦时有效,需与selection-start搭配使用
selectionEnd
:
{
type
:
[
Number
,
String
],
default
:
-
1
}
}
},
},
data
()
{
data
()
{
...
@@ -223,6 +239,14 @@ export default {
...
@@ -223,6 +239,14 @@ export default {
//
//
getCursorSpacing
()
{
getCursorSpacing
()
{
return
Number
(
this
.
cursorSpacing
);
return
Number
(
this
.
cursorSpacing
);
},
// 光标起始位置
uSelectionStart
()
{
return
String
(
this
.
selectionStart
);
},
// 光标结束位置
uSelectionEnd
()
{
return
String
(
this
.
selectionEnd
);
}
}
},
},
created
()
{
created
()
{
...
...
uview-ui/components/u-keyboard/u-keyboard.vue
View file @
bb453ec0
...
@@ -4,13 +4,13 @@
...
@@ -4,13 +4,13 @@
<slot
/>
<slot
/>
<view
class=
"u-tooltip"
v-if=
"tooltip"
>
<view
class=
"u-tooltip"
v-if=
"tooltip"
>
<view
class=
"u-tooltip-item u-tooltip-cancel"
hover-class=
"u-tooltip-cancel-hover"
@
tap=
"onCancel"
>
<view
class=
"u-tooltip-item u-tooltip-cancel"
hover-class=
"u-tooltip-cancel-hover"
@
tap=
"onCancel"
>
{{
cancelBtn
?
'
取消
'
:
''
}}
{{
cancelBtn
?
cancelText
:
''
}}
</view>
</view>
<view
v-if=
"showTips"
class=
"u-tooltip-item u-tooltip-tips"
>
<view
v-if=
"showTips"
class=
"u-tooltip-item u-tooltip-tips"
>
{{
tips
?
tips
:
mode
==
'
number
'
?
'
数字键盘
'
:
mode
==
'
card
'
?
'
身份证键盘
'
:
'
车牌号键盘
'
}}
{{
tips
?
tips
:
mode
==
'
number
'
?
'
数字键盘
'
:
mode
==
'
card
'
?
'
身份证键盘
'
:
'
车牌号键盘
'
}}
</view>
</view>
<view
v-if=
"confirmBtn"
@
tap=
"onConfirm"
class=
"u-tooltip-item u-tooltips-submit"
hover-class=
"u-tooltips-submit-hover"
>
<view
v-if=
"confirmBtn"
@
tap=
"onConfirm"
class=
"u-tooltip-item u-tooltips-submit"
hover-class=
"u-tooltips-submit-hover"
>
{{
confirmBtn
?
'
完成
'
:
''
}}
{{
confirmBtn
?
confirmText
:
''
}}
</view>
</view>
</view>
</view>
<block
v-if=
"mode == 'number' || mode == 'card'"
>
<block
v-if=
"mode == 'number' || mode == 'card'"
>
...
@@ -34,6 +34,8 @@
...
@@ -34,6 +34,8 @@
* @property {Boolean} cancel-btn 是否显示工具条左边的"取消"按钮(默认true)
* @property {Boolean} cancel-btn 是否显示工具条左边的"取消"按钮(默认true)
* @property {Boolean} confirm-btn 是否显示工具条右边的"完成"按钮(默认true)
* @property {Boolean} confirm-btn 是否显示工具条右边的"完成"按钮(默认true)
* @property {Boolean} mask 是否显示遮罩(默认true)
* @property {Boolean} mask 是否显示遮罩(默认true)
* @property {String} confirm-text 确认按钮的文字
* @property {String} cancel-text 取消按钮的文字
* @property {Number String} z-index 弹出键盘的z-index值(默认1075)
* @property {Number String} z-index 弹出键盘的z-index值(默认1075)
* @property {Boolean} random 是否打乱键盘按键的顺序(默认false)
* @property {Boolean} random 是否打乱键盘按键的顺序(默认false)
* @property {Boolean} safe-area-inset-bottom 是否开启底部安全区适配(默认false)
* @property {Boolean} safe-area-inset-bottom 是否开启底部安全区适配(默认false)
...
@@ -111,6 +113,16 @@
...
@@ -111,6 +113,16 @@
zIndex
:
{
zIndex
:
{
type
:
[
Number
,
String
],
type
:
[
Number
,
String
],
default
:
''
default
:
''
},
// 取消按钮的文字
cancelText
:
{
type
:
String
,
default
:
'
取消
'
},
// 确认按钮的文字
confirmText
:
{
type
:
String
,
default
:
'
确认
'
}
}
},
},
data
()
{
data
()
{
...
...
uview-ui/components/u-modal/u-modal.vue
View file @
bb453ec0
<
template
>
<
template
>
<view>
<view>
<u-popup
:zoom=
"zoom"
<u-popup
:zoom=
"zoom"
mode=
"center"
:popup=
"false"
:z-index=
"uZIndex"
v-model=
"value"
:length=
"width"
mode=
"center"
:popup=
"false"
:mask-close-able=
"maskCloseAble"
:border-radius=
"borderRadius"
@
close=
"popupClose"
:negative-top=
"negativeTop"
>
:z-index=
"uZIndex"
v-model=
"value"
:length=
"width"
:mask-close-able=
"maskCloseAble"
:border-radius=
"borderRadius"
@
close=
"popupClose"
:negative-top=
"negativeTop"
>
<view
class=
"u-model"
>
<view
class=
"u-model"
>
<view
v-if=
"showTitle"
class=
"u-model
-
title u-line-1"
:style=
"[titleStyle]"
>
{{
title
}}
</view>
<view
v-if=
"showTitle"
class=
"u-model
__
title u-line-1"
:style=
"[titleStyle]"
>
{{
title
}}
</view>
<view
class=
"u-model
-
content"
>
<view
class=
"u-model
__
content"
>
<view
:style=
"[contentStyle]"
v-if=
"$slots.default"
>
<view
:style=
"[contentStyle]"
v-if=
"$slots.default"
>
<slot
/>
<slot
/>
</view>
</view>
<view
v-else
class=
"u-model
-content-
message"
:style=
"[contentStyle]"
>
{{
content
}}
</view>
<view
v-else
class=
"u-model
__content__
message"
:style=
"[contentStyle]"
>
{{
content
}}
</view>
</view>
</view>
<view
class=
"u-model-footer u-border-top"
v-if=
"showCancelButton || showConfirmButton"
>
<view
class=
"u-model__footer u-border-top"
v-if=
"showCancelButton || showConfirmButton"
>
<view
<view
v-if=
"showCancelButton"
:hover-stay-time=
"100"
hover-class=
"u-model__btn--hover"
class=
"u-model__footer__button"
v-if=
"showCancelButton"
:style=
"[cancelBtnStyle]"
@
tap=
"cancel"
>
:hover-stay-time=
"100"
hover-class=
"btn-hover"
class=
"u-model-footer-button"
type=
"default"
:style=
"[cancelBtnStyle]"
@
tap=
"cancel"
>
{{
cancelText
}}
{{
cancelText
}}
</view>
</view>
<view
<view
v-if=
"showConfirmButton"
:hover-stay-time=
"100"
:hover-class=
"asyncClose ? 'none' : 'u-model__btn--hover'"
v-if=
"showConfirmButton"
class=
"u-model__footer__button hairline-left"
:style=
"[confirmBtnStyle]"
@
tap=
"confirm"
>
:hover-stay-time=
"100"
:hover-class=
"asyncClose ? 'none' : 'btn-hover'"
class=
"u-model-footer-button hairline-left"
:style=
"[confirmBtnStyle]"
@
tap=
"confirm"
>
<u-loading
mode=
"circle"
:color=
"confirmColor"
v-if=
"loading"
></u-loading>
<u-loading
mode=
"circle"
:color=
"confirmColor"
v-if=
"loading"
></u-loading>
<block
v-else
>
<block
v-else
>
{{
confirmText
}}
{{
confirmText
}}
...
@@ -48,248 +29,252 @@
...
@@ -48,248 +29,252 @@
</
template
>
</
template
>
<
script
>
<
script
>
/**
/**
* modal 模态框
* modal 模态框
* @description 弹出模态框,常用于消息提示、消息确认、在当前页面内完成特定的交互操作
* @description 弹出模态框,常用于消息提示、消息确认、在当前页面内完成特定的交互操作
* @tutorial https://www.uviewui.com/components/modal.html
* @tutorial https://www.uviewui.com/components/modal.html
* @property {Boolean} value 是否显示模态框
* @property {Boolean} value 是否显示模态框
* @property {String | Number} z-index 层级
* @property {String | Number} z-index 层级
* @property {String} title 模态框标题(默认"提示")
* @property {String} title 模态框标题(默认"提示")
* @property {String | Number} width 模态框宽度(默认600)
* @property {String | Number} width 模态框宽度(默认600)
* @property {String} content 模态框内容(默认"内容")
* @property {String} content 模态框内容(默认"内容")
* @property {Boolean} show-title 是否显示标题(默认true)
* @property {Boolean} show-title 是否显示标题(默认true)
* @property {Boolean} async-close 是否异步关闭,只对确定按钮有效(默认false)
* @property {Boolean} async-close 是否异步关闭,只对确定按钮有效(默认false)
* @property {Boolean} show-confirm-button 是否显示确认按钮(默认true)
* @property {Boolean} show-confirm-button 是否显示确认按钮(默认true)
* @property {Stringr | Number} negative-top modal往上偏移的值
* @property {Stringr | Number} negative-top modal往上偏移的值
* @property {Boolean} show-cancel-button 是否显示取消按钮(默认false)
* @property {Boolean} show-cancel-button 是否显示取消按钮(默认false)
* @property {Boolean} mask-close-able 是否允许点击遮罩关闭modal(默认false)
* @property {Boolean} mask-close-able 是否允许点击遮罩关闭modal(默认false)
* @property {String} confirm-text 确认按钮的文字内容(默认"确认")
* @property {String} confirm-text 确认按钮的文字内容(默认"确认")
* @property {String} cancel-text 取消按钮的文字内容(默认"取消")
* @property {String} cancel-text 取消按钮的文字内容(默认"取消")
* @property {String} cancel-color 取消按钮的颜色(默认"#606266")
* @property {String} cancel-color 取消按钮的颜色(默认"#606266")
* @property {String} confirm-color 确认按钮的文字内容(默认"#2979ff")
* @property {String} confirm-color 确认按钮的文字内容(默认"#2979ff")
* @property {String | Number} border-radius 模态框圆角值,单位rpx(默认16)
* @property {String | Number} border-radius 模态框圆角值,单位rpx(默认16)
* @property {Object} title-style 自定义标题样式,对象形式
* @property {Object} title-style 自定义标题样式,对象形式
* @property {Object} content-style 自定义内容样式,对象形式
* @property {Object} content-style 自定义内容样式,对象形式
* @property {Object} cancel-style 自定义取消按钮样式,对象形式
* @property {Object} cancel-style 自定义取消按钮样式,对象形式
* @property {Object} confirm-style 自定义确认按钮样式,对象形式
* @property {Object} confirm-style 自定义确认按钮样式,对象形式
* @property {Boolean} zoom 是否开启缩放模式(默认true)
* @property {Boolean} zoom 是否开启缩放模式(默认true)
* @event {Function} confirm 确认按钮被点击
* @event {Function} confirm 确认按钮被点击
* @event {Function} cancel 取消按钮被点击
* @event {Function} cancel 取消按钮被点击
* @example <u-modal :src="title" :content="content"></u-modal>
* @example <u-modal :src="title" :content="content"></u-modal>
*/
*/
export
default
{
export
default
{
name
:
'
u-modal
'
,
name
:
'
u-modal
'
,
props
:
{
props
:
{
// 是否显示Modal
// 是否显示Modal
value
:
{
value
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
false
default
:
false
},
},
// 层级z-index
// 层级z-index
zIndex
:
{
zIndex
:
{
type
:
[
Number
,
String
],
type
:
[
Number
,
String
],
default
:
''
default
:
''
},
},
// 标题
// 标题
title
:
{
title
:
{
type
:
[
String
],
type
:
[
String
],
default
:
'
提示
'
default
:
'
提示
'
},
},
// 弹窗宽度,可以是数值(rpx),百分比,auto等
// 弹窗宽度,可以是数值(rpx),百分比,auto等
width
:
{
width
:
{
type
:
[
Number
,
String
],
type
:
[
Number
,
String
],
default
:
600
default
:
600
},
},
// 弹窗内容
// 弹窗内容
content
:
{
content
:
{
type
:
String
,
type
:
String
,
default
:
'
内容
'
default
:
'
内容
'
},
},
// 是否显示标题
// 是否显示标题
showTitle
:
{
showTitle
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
// 是否显示确认按钮
// 是否显示确认按钮
showConfirmButton
:
{
showConfirmButton
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
// 是否显示取消按钮
// 是否显示取消按钮
showCancelButton
:
{
showCancelButton
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
false
default
:
false
},
},
// 确认文案
// 确认文案
confirmText
:
{
confirmText
:
{
type
:
String
,
type
:
String
,
default
:
'
确认
'
default
:
'
确认
'
},
},
// 取消文案
// 取消文案
cancelText
:
{
cancelText
:
{
type
:
String
,
type
:
String
,
default
:
'
取消
'
default
:
'
取消
'
},
},
// 确认按钮颜色
// 确认按钮颜色
confirmColor
:
{
confirmColor
:
{
type
:
String
,
type
:
String
,
default
:
'
#2979ff
'
default
:
'
#2979ff
'
},
},
// 取消文字颜色
// 取消文字颜色
cancelColor
:
{
cancelColor
:
{
type
:
String
,
type
:
String
,
default
:
'
#606266
'
default
:
'
#606266
'
},
},
// 圆角值
// 圆角值
borderRadius
:
{
borderRadius
:
{
type
:
[
Number
,
String
],
type
:
[
Number
,
String
],
default
:
16
default
:
16
},
},
// 标题的样式
// 标题的样式
titleStyle
:
{
titleStyle
:
{
type
:
Object
,
type
:
Object
,
default
()
{
default
()
{
return
{}
return
{}
}
},
// 内容的样式
contentStyle
:
{
type
:
Object
,
default
()
{
return
{}
}
},
// 取消按钮的样式
cancelStyle
:
{
type
:
Object
,
default
()
{
return
{}
}
},
// 确定按钮的样式
confirmStyle
:
{
type
:
Object
,
default
()
{
return
{}
}
},
// 是否开启缩放效果
zoom
:
{
type
:
Boolean
,
default
:
true
},
// 是否异步关闭,只对确定按钮有效
asyncClose
:
{
type
:
Boolean
,
default
:
false
},
// 是否允许点击遮罩关闭modal
maskCloseAble
:
{
type
:
Boolean
,
default
:
false
},
// 给一个负的margin-top,往上偏移,避免和键盘重合的情况
negativeTop
:
{
type
:
[
String
,
Number
],
default
:
0
}
}
},
},
// 内容的样式
data
()
{
contentStyle
:
{
return
{
type
:
Object
,
loading
:
false
,
// 确认按钮是否正在加载中
default
()
{
return
{}
}
}
},
},
// 取消按钮的样式
computed
:
{
cancelStyle
:
{
cancelBtnStyle
()
{
type
:
Object
,
return
Object
.
assign
({
default
()
{
color
:
this
.
cancelColor
return
{}
},
this
.
cancelStyle
);
},
confirmBtnStyle
()
{
return
Object
.
assign
({
color
:
this
.
confirmColor
},
this
.
confirmStyle
);
},
uZIndex
()
{
return
this
.
zIndex
?
this
.
zIndex
:
this
.
$u
.
zIndex
.
popup
;
}
}
},
},
// 确定按钮的样式
watch
:
{
confirmStyle
:
{
// 如果是异步关闭时,外部修改v-model的值为false时,重置内部的loading状态
type
:
Object
,
// 避免下次打开的时候,状态混乱
default
(
)
{
value
(
n
)
{
return
{}
if
(
n
===
true
)
this
.
loading
=
false
;
}
}
},
},
// 是否开启缩放效果
methods
:
{
zoom
:
{
confirm
()
{
type
:
Boolean
,
// 异步关闭
default
:
true
if
(
this
.
asyncClose
)
{
},
this
.
loading
=
true
;
// 是否异步关闭,只对确定按钮有效
}
else
{
asyncClose
:
{
this
.
$emit
(
'
input
'
,
false
);
type
:
Boolean
,
}
default
:
false
this
.
$emit
(
'
confirm
'
);
},
},
// 是否允许点击遮罩关闭modal
cancel
()
{
maskCloseAble
:
{
this
.
$emit
(
'
cancel
'
);
type
:
Boolean
,
default
:
false
},
// 给一个负的margin-top,往上偏移,避免和键盘重合的情况
negativeTop
:
{
type
:
[
String
,
Number
],
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
// 确认按钮是否正在加载中
}
},
computed
:
{
cancelBtnStyle
()
{
return
Object
.
assign
({
color
:
this
.
cancelColor
},
this
.
cancelStyle
);
},
confirmBtnStyle
()
{
return
Object
.
assign
({
color
:
this
.
confirmColor
},
this
.
confirmStyle
);
},
uZIndex
()
{
return
this
.
zIndex
?
this
.
zIndex
:
this
.
$u
.
zIndex
.
popup
;
}
},
watch
:
{
// 如果是异步关闭时,外部修改v-model的值为false时,重置内部的loading状态
// 避免下次打开的时候,状态混乱
value
(
n
)
{
if
(
n
===
true
)
this
.
loading
=
false
;
}
},
methods
:
{
confirm
()
{
// 异步关闭
if
(
this
.
asyncClose
)
{
this
.
loading
=
true
;
}
else
{
this
.
$emit
(
'
input
'
,
false
);
this
.
$emit
(
'
input
'
,
false
);
}
// 目前popup弹窗关闭有一个延时操作,此处做一个延时
this
.
$emit
(
'
confirm
'
);
// 避免确认按钮文字变成了"确定"字样,modal还没消失,造成视觉不好的效果
},
setTimeout
(()
=>
{
cancel
()
{
this
.
loading
=
false
;
this
.
$emit
(
'
cancel
'
);
},
300
);
this
.
$emit
(
'
input
'
,
false
);
},
// 目前popup弹窗关闭有一个延时操作,此处做一个延时
// 点击遮罩关闭modal,设置v-model的值为false,否则无法第二次弹起modal
// 避免确认按钮文字变成了"确定"字样,modal还没消失,造成视觉不好的效果
popupClose
()
{
setTimeout
(()
=>
{
this
.
$emit
(
'
input
'
,
false
);
},
// 清除加载中的状态
clearLoading
()
{
this
.
loading
=
false
;
this
.
loading
=
false
;
},
300
);
}
},
// 点击遮罩关闭modal,设置v-model的值为false,否则无法第二次弹起modal
popupClose
()
{
this
.
$emit
(
'
input
'
,
false
);
},
// 清除加载中的状态
clearLoading
()
{
this
.
loading
=
false
;
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
@import
"../../libs/css/style.components.scss"
;
@import
"../../libs/css/style.components.scss"
;
.btn-hover
{
.u-model
{
background-color
:
rgb
(
230
,
230
,
230
);
height
:
auto
;
}
overflow
:
hidden
;
font-size
:
32rpx
;
background-color
:
#fff
;
.u-model
{
&
__btn--hover
{
height
:
auto
;
background-color
:
rgb
(
230
,
230
,
230
);
overflow
:
hidden
;
}
font-size
:
32rpx
;
background-color
:
#fff
;
&
-title
{
padding-top
:
48rpx
;
font-weight
:
500
;
text-align
:
center
;
color
:
$u-main-color
;
}
&
-content
{
&
__title
{
&
-message
{
padding-top
:
48rpx
;
padding
:
48rpx
;
font-weight
:
500
;
font-size
:
30rpx
;
text-align
:
center
;
text-align
:
center
;
color
:
$u-
content
-color
;
color
:
$u-
main
-color
;
}
}
}
&
-footer
{
&
__content
{
display
:
flex
;
&
__message
{
padding
:
48rpx
;
font-size
:
30rpx
;
text-align
:
center
;
color
:
$u-content-color
;
}
}
&
-button
{
&
__footer
{
flex
:
1
;
display
:
flex
;
height
:
100rpx
;
line-height
:
100rpx
;
&
__button
{
font-size
:
32rpx
;
flex
:
1
;
box-sizing
:
border-box
;
height
:
100rpx
;
cursor
:
pointer
;
line-height
:
100rpx
;
text-align
:
center
;
font-size
:
32rpx
;
border-radius
:
4rpx
;
box-sizing
:
border-box
;
cursor
:
pointer
;
text-align
:
center
;
border-radius
:
4rpx
;
}
}
}
}
}
}
</
style
>
</
style
>
uview-ui/components/u-number-box/u-number-box.vue
View file @
bb453ec0
<
template
>
<
template
>
<view
class=
"u-numberbox"
>
<view
class=
"u-numberbox"
>
<view
class=
"u-icon-minus"
@
touchstart.stop=
"btnTouchStart('minus')"
@
touchend.stop=
"clearTimer"
:class=
"
{ 'u-icon-disabled': disabled || inputVal
<
=
min
}"
:style=
"
{
<view
class=
"u-icon-minus"
@
touchstart.stop=
"btnTouchStart('minus')"
@
touchend.stop=
"clearTimer"
:class=
"
{ 'u-icon-disabled': disabled || inputVal
<
=
min
}"
:style=
"
{
background: bgColor,
background: bgColor,
height: inputHeight + 'rpx',
height: inputHeight + 'rpx',
color: color
color: color
}">
}">
<u-icon
name=
"minus"
:size=
"size"
></u-icon>
<u-icon
name=
"minus"
:size=
"size"
></u-icon>
</view>
</view>
<input
:disabled=
"disabledInput || disabled"
:cursor-spacing=
"getCursorSpacing"
:class=
"
{ 'u-input-disabled': disabled }" v-model="inputVal" class="u-number-input" @blur="onBlur"
<input
:disabled=
"disabledInput || disabled"
:cursor-spacing=
"getCursorSpacing"
:class=
"
{ 'u-input-disabled': disabled }"
type="number" :style="{
v-model="inputVal" class="u-number-input" @blur="onBlur"
type="number" :style="{
color: color,
color: color,
fontSize: size + 'rpx',
fontSize: size + 'rpx',
background: bgColor,
background: bgColor,
height: inputHeight + 'rpx',
height: inputHeight + 'rpx',
width: inputWidth + 'rpx'
width: inputWidth + 'rpx'
}" />
}" />
<view
class=
"u-icon-plus"
@
touchstart.stop=
"btnTouchStart('plus')"
@
touchend.stop=
"clearTimer"
:class=
"
{ 'u-icon-disabled': disabled || inputVal >= max }" :style="{
<view
class=
"u-icon-plus"
@
touchstart.stop=
"btnTouchStart('plus')"
@
touchend.stop=
"clearTimer"
:class=
"
{ 'u-icon-disabled': disabled || inputVal >= max }"
:style="{
background: bgColor,
background: bgColor,
height: inputHeight + 'rpx',
height: inputHeight + 'rpx',
color: color
color: color
...
@@ -37,6 +40,7 @@
...
@@ -37,6 +40,7 @@
* @property {Number} step 步长,每次加或减的值(默认1)
* @property {Number} step 步长,每次加或减的值(默认1)
* @property {Boolean} disabled 是否禁用操作,禁用后无法加减或手动修改输入框的值(默认false)
* @property {Boolean} disabled 是否禁用操作,禁用后无法加减或手动修改输入框的值(默认false)
* @property {Boolean} disabled-input 是否禁止输入框手动输入值(默认false)
* @property {Boolean} disabled-input 是否禁止输入框手动输入值(默认false)
* @property {Boolean} positive-integer 是否只能输入正整数(默认true)
* @property {String | Number} size 输入框文字和按钮字体大小,单位rpx(默认26)
* @property {String | Number} size 输入框文字和按钮字体大小,单位rpx(默认26)
* @property {String} color 输入框文字和加减按钮图标的颜色(默认#323233)
* @property {String} color 输入框文字和加减按钮图标的颜色(默认#323233)
* @property {String | Number} input-width 输入框宽度,单位rpx(默认80)
* @property {String | Number} input-width 输入框宽度,单位rpx(默认80)
...
@@ -129,9 +133,21 @@
...
@@ -129,9 +133,21 @@
pressTime
:
{
pressTime
:
{
type
:
[
Number
,
String
],
type
:
[
Number
,
String
],
default
:
250
default
:
250
},
// 是否只能输入大于或等于0的整数(正整数)
positiveInteger
:
{
type
:
Boolean
,
default
:
true
}
}
},
},
watch
:
{
watch
:
{
value
(
v1
,
v2
)
{
// 只有value的改变是来自外部的时候,才去同步inputVal的值,否则会造成循环错误
if
(
!
this
.
changeFromInner
)
{
this
.
inputVal
=
v1
;
}
this
.
changeFromInner
=
false
;
},
inputVal
(
v1
,
v2
)
{
inputVal
(
v1
,
v2
)
{
// 为了让用户能够删除所有输入值,重新输入内容,删除所有值后,内容为空字符串
// 为了让用户能够删除所有输入值,重新输入内容,删除所有值后,内容为空字符串
if
(
v1
==
''
)
return
;
if
(
v1
==
''
)
return
;
...
@@ -140,14 +156,26 @@
...
@@ -140,14 +156,26 @@
let
tmp
=
this
.
$u
.
test
.
number
(
v1
);
let
tmp
=
this
.
$u
.
test
.
number
(
v1
);
if
(
tmp
&&
v1
>=
this
.
min
&&
v1
<=
this
.
max
)
value
=
v1
;
if
(
tmp
&&
v1
>=
this
.
min
&&
v1
<=
this
.
max
)
value
=
v1
;
else
value
=
v2
;
else
value
=
v2
;
// 判断是否只能输入大于等于0的整数
if
(
this
.
positiveInteger
)
{
// 小于0,或者带有小数点,
if
(
v1
<
0
||
String
(
v1
).
indexOf
(
'
.
'
)
!==
-
1
)
{
value
=
v2
;
// 双向绑定input的值,必须要使用$nextTick修改显示的值
this
.
$nextTick
(()
=>
{
this
.
inputVal
=
v2
;
})
}
}
// 发出change事件
// 发出change事件
this
.
handleChange
(
value
,
'
change
'
);
this
.
handleChange
(
value
,
'
change
'
);
}
}
},
},
data
()
{
data
()
{
return
{
return
{
inputVal
:
1
,
// 输入框中的值,不能直接使用props中的value,因为应该改变props的状态
inputVal
:
1
,
// 输入框中的值,不能直接使用props中的value,因为应该改变props的状态
timer
:
null
,
// 用作长按的定时器
timer
:
null
,
// 用作长按的定时器
changeFromInner
:
false
,
// 值发生变化,是来自内部还是外部
};
};
},
},
created
()
{
created
()
{
...
@@ -165,7 +193,7 @@
...
@@ -165,7 +193,7 @@
// 先执行一遍方法,否则会造成松开手时,就执行了clearTimer,导致无法实现功能
// 先执行一遍方法,否则会造成松开手时,就执行了clearTimer,导致无法实现功能
this
[
callback
]();
this
[
callback
]();
// 如果没开启长按功能,直接返回
// 如果没开启长按功能,直接返回
if
(
!
this
.
longPress
)
return
;
if
(
!
this
.
longPress
)
return
;
clearInterval
(
this
.
timer
);
//再次清空定时器,防止重复注册定时器
clearInterval
(
this
.
timer
);
//再次清空定时器,防止重复注册定时器
this
.
timer
=
null
;
this
.
timer
=
null
;
this
.
timer
=
setInterval
(()
=>
{
this
.
timer
=
setInterval
(()
=>
{
...
@@ -256,6 +284,7 @@
...
@@ -256,6 +284,7 @@
handleChange
(
value
,
type
)
{
handleChange
(
value
,
type
)
{
if
(
this
.
disabled
)
return
;
if
(
this
.
disabled
)
return
;
// 发出input事件,修改通过v-model绑定的值,达到双向绑定的效果
// 发出input事件,修改通过v-model绑定的值,达到双向绑定的效果
this
.
changeFromInner
=
true
;
this
.
$emit
(
'
input
'
,
Number
(
value
));
this
.
$emit
(
'
input
'
,
Number
(
value
));
this
.
$emit
(
type
,
{
this
.
$emit
(
type
,
{
// 转为Number类型
// 转为Number类型
...
...
uview-ui/components/u-picker/u-picker.vue
View file @
bb453ec0
...
@@ -2,7 +2,12 @@
...
@@ -2,7 +2,12 @@
<u-popup
:maskCloseAble=
"maskCloseAble"
mode=
"bottom"
:popup=
"false"
v-model=
"value"
length=
"auto"
:safeAreaInsetBottom=
"safeAreaInsetBottom"
@
close=
"close"
:z-index=
"uZIndex"
>
<u-popup
:maskCloseAble=
"maskCloseAble"
mode=
"bottom"
:popup=
"false"
v-model=
"value"
length=
"auto"
:safeAreaInsetBottom=
"safeAreaInsetBottom"
@
close=
"close"
:z-index=
"uZIndex"
>
<view
class=
"u-datetime-picker"
>
<view
class=
"u-datetime-picker"
>
<view
class=
"u-picker-header"
@
touchmove.stop.prevent=
""
>
<view
class=
"u-picker-header"
@
touchmove.stop.prevent=
""
>
<view
class=
"u-btn-picker u-btn-picker--tips"
:style=
"
{ color: cancelColor }" hover-class="u-opacity" :hover-stay-time="150" @tap="getResult('cancel')">取消
</view>
<view
class=
"u-btn-picker u-btn-picker--tips"
:style=
"
{ color: cancelColor }"
hover-class="u-opacity"
:hover-stay-time="150"
@tap="getResult('cancel')"
>
{{
cancelText
}}
</view>
<view
class=
"u-picker__title"
>
{{
title
}}
</view>
<view
class=
"u-picker__title"
>
{{
title
}}
</view>
<view
<view
class=
"u-btn-picker u-btn-picker--primary"
class=
"u-btn-picker u-btn-picker--primary"
...
@@ -12,7 +17,7 @@
...
@@ -12,7 +17,7 @@
@touchmove.stop=""
@touchmove.stop=""
@tap.stop="getResult('confirm')"
@tap.stop="getResult('confirm')"
>
>
确定
{{
confirmText
}}
</view>
</view>
</view>
</view>
<view
class=
"u-picker-body"
>
<view
class=
"u-picker-body"
>
...
@@ -108,6 +113,8 @@ import areas from '../../libs/util/area.js';
...
@@ -108,6 +113,8 @@ import areas from '../../libs/util/area.js';
* @property {String} cancel-color 取消按钮的颜色(默认#606266)
* @property {String} cancel-color 取消按钮的颜色(默认#606266)
* @property {String} confirm-color 确认按钮的颜色(默认#2979ff)
* @property {String} confirm-color 确认按钮的颜色(默认#2979ff)
* @property {String} default-time 默认选中的时间,mode=time时有效
* @property {String} default-time 默认选中的时间,mode=time时有效
* @property {String} confirm-text 确认按钮的文字
* @property {String} cancel-text 取消按钮的文字
* @property {String} default-region 默认选中的地区,中文形式,mode=region时有效
* @property {String} default-region 默认选中的地区,中文形式,mode=region时有效
* @property {String} default-code 默认选中的地区,编号形式,mode=region时有效
* @property {String} default-code 默认选中的地区,编号形式,mode=region时有效
* @property {Boolean} mask-close-able 是否允许通过点击遮罩关闭Picker(默认true)
* @property {Boolean} mask-close-able 是否允许通过点击遮罩关闭Picker(默认true)
...
@@ -231,6 +238,16 @@ export default {
...
@@ -231,6 +238,16 @@ export default {
title
:
{
title
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
// 取消按钮的文字
cancelText
:
{
type
:
String
,
default
:
'
取消
'
},
// 确认按钮的文字
confirmText
:
{
type
:
String
,
default
:
'
确认
'
}
}
},
},
data
()
{
data
()
{
...
...
uview-ui/components/u-popup/u-popup.vue
View file @
bb453ec0
...
@@ -33,10 +33,9 @@
...
@@ -33,10 +33,9 @@
<scroll-view
class=
"u-drawer__scroll-view"
scroll-y=
"true"
v-else
>
<scroll-view
class=
"u-drawer__scroll-view"
scroll-y=
"true"
v-else
>
<slot
/>
<slot
/>
</scroll-view>
</scroll-view>
<view
class=
"u-close"
:class=
"['u-close--' + closeIconPos]"
>
<view
@
tap=
"close"
class=
"u-close"
:class=
"['u-close--' + closeIconPos]"
>
<u-icon
<u-icon
v-if=
"mode != 'center' && closeable"
v-if=
"mode != 'center' && closeable"
@
click=
"close"
:name=
"closeIcon"
:name=
"closeIcon"
:color=
"closeIconColor"
:color=
"closeIconColor"
:size=
"closeIconSize"
:size=
"closeIconSize"
...
@@ -196,6 +195,7 @@ export default {
...
@@ -196,6 +195,7 @@ export default {
visibleSync
:
false
,
visibleSync
:
false
,
showDrawer
:
false
,
showDrawer
:
false
,
timer
:
null
,
timer
:
null
,
closeFromInner
:
false
,
// value的值改变,是发生在内部还是外部
};
};
},
},
computed
:
{
computed
:
{
...
@@ -263,9 +263,10 @@ export default {
...
@@ -263,9 +263,10 @@ export default {
value
(
val
)
{
value
(
val
)
{
if
(
val
)
{
if
(
val
)
{
this
.
open
();
this
.
open
();
}
else
{
}
else
if
(
!
this
.
closeFromInner
)
{
this
.
close
();
this
.
close
();
}
}
this
.
closeFromInner
=
false
;
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -298,7 +299,12 @@ export default {
...
@@ -298,7 +299,12 @@ export default {
// 打开时,先渲染组件,延时一定时间再让遮罩和弹窗的动画起作用
// 打开时,先渲染组件,延时一定时间再让遮罩和弹窗的动画起作用
change
(
param1
,
param2
,
status
)
{
change
(
param1
,
param2
,
status
)
{
// 如果this.popup为false,意味着为picker,actionsheet等组件调用了popup组件
// 如果this.popup为false,意味着为picker,actionsheet等组件调用了popup组件
if
(
this
.
popup
==
true
)
this
.
$emit
(
'
input
'
,
status
);
if
(
this
.
popup
==
true
)
{
// 标记关闭是内部发生的,否则修改了value值,导致watch中对value检测,导致再执行一遍close
// 造成@close事件触发两次
this
.
closeFromInner
=
true
;
this
.
$emit
(
'
input
'
,
status
);
}
this
[
param1
]
=
status
;
this
[
param1
]
=
status
;
if
(
status
)
{
if
(
status
)
{
// #ifdef H5 || MP
// #ifdef H5 || MP
...
...
uview-ui/components/u-section/u-section.vue
View file @
bb453ec0
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
'u-section--line': showLine
'u-section--line': showLine
}">
}">
<view
class=
"u-section__title__icon-wrap u-flex"
:style=
"[lineStyle]"
>
<view
class=
"u-section__title__icon-wrap u-flex"
:style=
"[lineStyle]"
>
<u-icon
name=
"column-line"
:size=
"fontSize * 1.25"
bold
:color=
"lineColor ? lineColor : color"
></u-icon>
<u-icon
top=
"0"
name=
"column-line"
:size=
"fontSize * 1.25"
bold
:color=
"lineColor ? lineColor : color"
></u-icon>
</view>
</view>
<text
class=
"u-flex u-section__title__text"
>
{{
title
}}
</text>
<text
class=
"u-flex u-section__title__text"
>
{{
title
}}
</text>
</view>
</view>
...
@@ -94,7 +94,7 @@
...
@@ -94,7 +94,7 @@
return
{
return
{
// 由于竖线为字体图标,具有比实际线宽更宽的宽度,所以也需要根据字体打下动态调整
// 由于竖线为字体图标,具有比实际线宽更宽的宽度,所以也需要根据字体打下动态调整
left
:
-
(
Number
(
this
.
fontSize
)
*
0.9
)
+
'
rpx
'
,
left
:
-
(
Number
(
this
.
fontSize
)
*
0.9
)
+
'
rpx
'
,
top
:
-
(
Number
(
this
.
fontSize
)
*
(
this
.
$u
.
os
==
'
ios
'
?
0.1
3
:
0.15
))
+
'
rpx
'
,
top
:
-
(
Number
(
this
.
fontSize
)
*
(
this
.
$u
.
os
==
'
ios
'
?
0.1
4
:
0.15
))
+
'
rpx
'
,
}
}
}
}
},
},
...
...
uview-ui/components/u-select/u-select.vue
View file @
bb453ec0
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
:hover-stay-time="150"
:hover-stay-time="150"
@tap="getResult('cancel')"
@tap="getResult('cancel')"
>
>
取消
{{
cancelText
}}
</view>
</view>
<view
class=
"u-select__header__title"
>
<view
class=
"u-select__header__title"
>
{{
title
}}
{{
title
}}
...
@@ -32,7 +32,7 @@
...
@@ -32,7 +32,7 @@
@touchmove.stop=""
@touchmove.stop=""
@tap.stop="getResult('confirm')"
@tap.stop="getResult('confirm')"
>
>
确定
{{
confirmText
}}
</view>
</view>
</view>
</view>
<view
class=
"u-select__body"
>
<view
class=
"u-select__body"
>
...
@@ -60,6 +60,8 @@
...
@@ -60,6 +60,8 @@
* @property {Boolean} safe-area-inset-bottom 是否开启底部安全区适配(默认false)
* @property {Boolean} safe-area-inset-bottom 是否开启底部安全区适配(默认false)
* @property {String} cancel-color 取消按钮的颜色(默认#606266)
* @property {String} cancel-color 取消按钮的颜色(默认#606266)
* @property {String} confirm-color 确认按钮的颜色(默认#2979ff)
* @property {String} confirm-color 确认按钮的颜色(默认#2979ff)
* @property {String} confirm-text 确认按钮的文字
* @property {String} cancel-text 取消按钮的文字
* @property {String} default-value 提供的默认选中的下标,见官网说明
* @property {String} default-value 提供的默认选中的下标,见官网说明
* @property {Boolean} mask-close-able 是否允许通过点击遮罩关闭Picker(默认true)
* @property {Boolean} mask-close-able 是否允许通过点击遮罩关闭Picker(默认true)
* @property {String Number} z-index 弹出时的z-index值(默认10075)
* @property {String Number} z-index 弹出时的z-index值(默认10075)
...
@@ -144,6 +146,16 @@ export default {
...
@@ -144,6 +146,16 @@ export default {
title
:
{
title
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
// 取消按钮的文字
cancelText
:
{
type
:
String
,
default
:
'
取消
'
},
// 确认按钮的文字
confirmText
:
{
type
:
String
,
default
:
'
确认
'
}
}
},
},
data
()
{
data
()
{
...
...
uview-ui/components/u-slider/u-slider.vue
View file @
bb453ec0
...
@@ -18,7 +18,8 @@
...
@@ -18,7 +18,8 @@
<slot
v-if=
"$slots.default"
/>
<slot
v-if=
"$slots.default"
/>
<view
v-else
class=
"u-slider__button"
:style=
"[blockStyle,
{
<view
v-else
class=
"u-slider__button"
:style=
"[blockStyle,
{
height: blockWidth + 'rpx',
height: blockWidth + 'rpx',
width: blockWidth + 'rpx'
width: blockWidth + 'rpx',
backgroundColor: blockColor
}]">
</view>
}]">
</view>
</view>
</view>
</view>
</view>
...
...
uview-ui/components/u-sticky/u-sticky.vue
View file @
bb453ec0
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
* @property {String Number} z-index 吸顶时的z-index值(默认970)
* @property {String Number} z-index 吸顶时的z-index值(默认970)
* @property {String Number} h5-nav-height 导航栏高度,自定义导航栏时(无导航栏时需设置为0),需要传入此值,单位px(默认44)
* @property {String Number} h5-nav-height 导航栏高度,自定义导航栏时(无导航栏时需设置为0),需要传入此值,单位px(默认44)
* @event {Function} fixed 组件吸顶时触发
* @event {Function} fixed 组件吸顶时触发
* @event {Function} unfixed 组件取消吸顶时触发
* @example <u-sticky offset-top="200"><view>塞下秋来风景异,衡阳雁去无留意</view></u-sticky>
* @example <u-sticky offset-top="200"><view>塞下秋来风景异,衡阳雁去无留意</view></u-sticky>
*/
*/
export
default
{
export
default
{
...
@@ -132,8 +133,9 @@
...
@@ -132,8 +133,9 @@
},
},
setFixed
(
top
)
{
setFixed
(
top
)
{
const
fixed
=
top
<
this
.
stickyTop
;
const
fixed
=
top
<
this
.
stickyTop
;
this
.
fixed
=
fixed
;
if
(
fixed
)
this
.
$emit
(
'
fixed
'
,
this
.
index
);
if
(
fixed
)
this
.
$emit
(
'
fixed
'
,
this
.
index
);
else
if
(
this
.
fixed
)
this
.
$emit
(
'
unfixed
'
,
this
.
index
);
this
.
fixed
=
fixed
;
},
},
disconnectObserver
(
observerName
)
{
disconnectObserver
(
observerName
)
{
const
observer
=
this
[
observerName
];
const
observer
=
this
[
observerName
];
...
...
uview-ui/components/u-tabbar/u-tabbar.vue
View file @
bb453ec0
...
@@ -14,10 +14,11 @@
...
@@ -14,10 +14,11 @@
<view
:class=
"[
<view
:class=
"[
midButton && item.midButton ? 'u-tabbar__content__circle__button' : 'u-tabbar__content__item__button'
midButton && item.midButton ? 'u-tabbar__content__circle__button' : 'u-tabbar__content__item__button'
]"
>
]"
>
<u-icon
<u-icon
:size=
"midButton && item.midButton ? midButtonSize : iconSize"
:size=
"midButton && item.midButton ? midButtonSize : iconSize"
:name=
"index == value ? item.selectedIconPath : item.iconPath"
:name=
"elIconPath(index)"
:color=
"index == value ? activeColor : inactiveColor"
img-mode=
"scaleToFill"
:color=
"elColor(index)"
:custom-prefix=
"item.customIcon ? 'custom-icon' : 'uicon'"
:custom-prefix=
"item.customIcon ? 'custom-icon' : 'uicon'"
></u-icon>
></u-icon>
<u-badge
:count=
"item.count"
:is-dot=
"item.isDot"
<u-badge
:count=
"item.count"
:is-dot=
"item.isDot"
...
@@ -26,7 +27,7 @@
...
@@ -26,7 +27,7 @@
></u-badge>
></u-badge>
</view>
</view>
<view
class=
"u-tabbar__content__item__text"
:style=
"
{
<view
class=
"u-tabbar__content__item__text"
:style=
"
{
color:
index == value ? activeColor : inactiveColor
color:
elColor(index)
}">
}">
<text
class=
"u-line-1"
>
{{
item
.
text
}}
</text>
<text
class=
"u-line-1"
>
{{
item
.
text
}}
</text>
</view>
</view>
...
@@ -34,7 +35,8 @@
...
@@ -34,7 +35,8 @@
<view
v-if=
"midButton"
class=
"u-tabbar__content__circle__border"
:class=
"
{
<view
v-if=
"midButton"
class=
"u-tabbar__content__circle__border"
:class=
"
{
'u-border': borderTop,
'u-border': borderTop,
}" :style="{
}" :style="{
backgroundColor: bgColor
backgroundColor: bgColor,
left: midButtonLeft
}">
}">
</view>
</view>
</view>
</view>
...
@@ -110,12 +112,64 @@
...
@@ -110,12 +112,64 @@
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
// 是否隐藏原生tabbar
hideTabBar
:
{
type
:
Boolean
,
default
:
true
},
},
},
data
()
{
data
()
{
return
{
return
{
// 由于安卓太菜了,通过css居中凸起按钮的外层元素有误差,故通过js计算将其其中
midButtonLeft
:
'
50%
'
,
pageUrl
:
''
,
// 当前
}
},
created
()
{
// 是否隐藏原生tabbar
if
(
this
.
borderTop
)
uni
.
hideTabBar
();
// 获取引入了u-tabbar页面的路由地址,该地址没有路径前面的"/"
let
pages
=
getCurrentPages
();
// 页面栈中的最后一个即为项为当前页面,route属性为页面路径
this
.
pageUrl
=
pages
[
pages
.
length
-
1
].
route
;
},
computed
:
{
elIconPath
()
{
return
(
index
)
=>
{
// 历遍u-tabbar的每一项item时,判断是否传入了pagePath参数,如果传入了
// 和data中的pageUrl参数对比,如果相等,即可判断当前的item对应当前的tabbar页面,设置高亮图标
// 采用这个方法,可以无需使用v-model绑定的value值
let
pagePath
=
this
.
list
[
index
].
pagePath
;
// 如果定义了pagePath属性,意味着使用系统自带tabbar方案,否则使用一个页面用几个组件模拟tabbar页面的方案
// 这两个方案对处理tabbar item的激活与否方式不一样
if
(
pagePath
)
{
if
(
pagePath
==
this
.
pageUrl
||
pagePath
==
'
/
'
+
this
.
pageUrl
)
{
return
this
.
list
[
index
].
selectedIconPath
;
}
else
{
return
this
.
list
[
index
].
iconPath
;
}
}
else
{
// 普通方案中,索引等于v-model值时,即为激活项
return
index
==
this
.
value
?
this
.
list
[
index
].
selectedIconPath
:
this
.
list
[
index
].
iconPath
}
}
},
elColor
()
{
return
(
index
)
=>
{
// 判断方法同理于elIconPath
let
pagePath
=
this
.
list
[
index
].
pagePath
;
if
(
pagePath
)
{
if
(
pagePath
==
this
.
pageUrl
||
pagePath
==
'
/
'
+
this
.
pageUrl
)
return
this
.
activeColor
;
else
return
this
.
inactiveColor
;
}
else
{
return
index
==
this
.
value
?
this
.
activeColor
:
this
.
inactiveColor
;
}
}
}
}
},
},
mounted
()
{
this
.
midButton
&&
this
.
getMidButtonLeft
();
},
methods
:
{
methods
:
{
async
clickHandler
(
index
)
{
async
clickHandler
(
index
)
{
if
(
this
.
beforeSwitch
&&
typeof
(
this
.
beforeSwitch
)
===
'
function
'
)
{
if
(
this
.
beforeSwitch
&&
typeof
(
this
.
beforeSwitch
)
===
'
function
'
)
{
...
@@ -141,7 +195,16 @@
...
@@ -141,7 +195,16 @@
switchTab
(
index
)
{
switchTab
(
index
)
{
// 发出事件和修改v-model绑定的值
// 发出事件和修改v-model绑定的值
this
.
$emit
(
'
change
'
,
index
);
this
.
$emit
(
'
change
'
,
index
);
this
.
$emit
(
'
input
'
,
index
);
// 如果有配置pagePath属性,使用uni.switchTab进行跳转
if
(
this
.
list
[
index
].
pagePath
)
{
uni
.
switchTab
({
url
:
this
.
list
[
index
].
pagePath
})
}
else
{
// 如果配置了papgePath属性,将不会双向绑定v-model传入的value值
// 因为这个模式下,不再需要v-model绑定的value值了,而是通过getCurrentPages()适配
this
.
$emit
(
'
input
'
,
index
);
}
},
},
// 计算角标的right值
// 计算角标的right值
getOffsetRight
(
count
,
isDot
)
{
getOffsetRight
(
count
,
isDot
)
{
...
@@ -153,6 +216,12 @@
...
@@ -153,6 +216,12 @@
}
else
{
}
else
{
return
-
30
;
return
-
30
;
}
}
},
// 获取凸起按钮外层元素的left值,让其水平居中
getMidButtonLeft
()
{
let
windowWidth
=
this
.
$u
.
sys
.
windowWidth
;
// 由于安卓中css计算left: 50%的结果不准确,故用js计算
this
.
midButtonLeft
=
(
windowWidth
/
2
)
+
'
px
'
;
}
}
}
}
}
}
...
@@ -181,12 +250,14 @@
...
@@ -181,12 +250,14 @@
width
:
110rpx
;
width
:
110rpx
;
height
:
110rpx
;
height
:
110rpx
;
top
:
-48rpx
;
top
:
-48rpx
;
left
:
50%
;
transform
:
translateX
(
-50%
);
position
:
absolute
;
position
:
absolute
;
z-index
:
4
;
z-index
:
4
;
background-color
:
#ffffff
;
background-color
:
#ffffff
;
// 由于安卓的无能,导致只有3个tabbar item时,此css计算方式有误差
// 故使用js计算的形式来定位,此处不注释,是因为js计算有延后,避免出现位置闪动
left
:
50%
;
transform
:
translateX
(
-50%
);
&
:after
{
&
:after
{
border-radius
:
100px
;
border-radius
:
100px
;
}
}
...
...
uview-ui/components/u-tabs/u-tabs.vue
View file @
bb453ec0
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<view
:id=
"id"
>
<view
:id=
"id"
>
<scroll-view
scroll-x
class=
"u-scroll-view"
:scroll-left=
"scrollLeft"
scroll-with-animation
>
<scroll-view
scroll-x
class=
"u-scroll-view"
:scroll-left=
"scrollLeft"
scroll-with-animation
>
<view
class=
"u-scroll-box"
:class=
"
{'u-tabs-scorll-flex': !isScroll}">
<view
class=
"u-scroll-box"
:class=
"
{'u-tabs-scorll-flex': !isScroll}">
<view
class=
"u-tab-item"
:id=
"'u-tab-item-' + index"
v-for=
"(item, index) in list"
:key=
"index"
@
tap=
"clickTab(index)"
<view
class=
"u-tab-item
u-line-1
"
:id=
"'u-tab-item-' + index"
v-for=
"(item, index) in list"
:key=
"index"
@
tap=
"clickTab(index)"
:style=
"[tabItemStyle(index)]"
>
:style=
"[tabItemStyle(index)]"
>
{{
item
[
name
]
||
item
[
'
name
'
]
}}
{{
item
[
name
]
||
item
[
'
name
'
]
}}
</view>
</view>
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
* @property {Object} bar-style 底部滑块的样式,对象形式
* @property {Object} bar-style 底部滑块的样式,对象形式
* @property {Boolean} show-bar 是否显示底部的滑块(默认true)
* @property {Boolean} show-bar 是否显示底部的滑块(默认true)
* @property {String Number} bar-height 滑块高度,单位rpx(默认6)
* @property {String Number} bar-height 滑块高度,单位rpx(默认6)
* @property {String Number} item-width 标签的宽度(默认auto)
* @property {String Number} gutter 单个tab标签的左右内边距之和,单位rpx(默认40)
* @property {String Number} gutter 单个tab标签的左右内边距之和,单位rpx(默认40)
* @property {String} bg-color tabs导航栏的背景颜色(默认#ffffff)
* @property {String} bg-color tabs导航栏的背景颜色(默认#ffffff)
* @property {String} name 组件内部读取的list参数中的属性名,见官网说明(默认name)
* @property {String} name 组件内部读取的list参数中的属性名,见官网说明(默认name)
...
@@ -135,6 +136,11 @@
...
@@ -135,6 +136,11 @@
default
()
{
default
()
{
return
{}
return
{}
}
}
},
// 标签的宽度
itemWidth
:
{
type
:
[
Number
,
String
],
default
:
'
auto
'
}
}
},
},
data
()
{
data
()
{
...
@@ -196,7 +202,8 @@
...
@@ -196,7 +202,8 @@
'
font-size
'
:
this
.
fontSize
+
'
rpx
'
,
'
font-size
'
:
this
.
fontSize
+
'
rpx
'
,
'
transition-duration
'
:
`
${
this
.
duration
}
s`
,
'
transition-duration
'
:
`
${
this
.
duration
}
s`
,
padding
:
this
.
isScroll
?
`0
${
this
.
gutter
}
rpx`
:
''
,
padding
:
this
.
isScroll
?
`0
${
this
.
gutter
}
rpx`
:
''
,
flex
:
this
.
isScroll
?
'
auto
'
:
'
1
'
flex
:
this
.
isScroll
?
'
auto
'
:
'
1
'
,
width
:
this
.
$u
.
addUnit
(
this
.
itemWidth
)
};
};
// 字体加粗
// 字体加粗
if
(
index
==
this
.
currentIndex
&&
this
.
bold
)
style
.
fontWeight
=
'
bold
'
;
if
(
index
==
this
.
currentIndex
&&
this
.
bold
)
style
.
fontWeight
=
'
bold
'
;
...
...
uview-ui/components/u-upload/u-upload.vue
View file @
bb453ec0
...
@@ -235,7 +235,7 @@ export default {
...
@@ -235,7 +235,7 @@ export default {
limitType
:{
limitType
:{
type
:
Array
,
type
:
Array
,
default
()
{
default
()
{
return
[
'
png
'
,
'
jpg
'
,
'
jpeg
'
,
'
webp
'
];
return
[
'
png
'
,
'
jpg
'
,
'
jpeg
'
,
'
webp
'
,
'
gif
'
];
}
}
},
},
},
},
...
...
uview-ui/iconfont.css
View file @
bb453ec0
/* #ifndef MP-ALIPAY || MP-BAIDU || MP-TOUTIAO
|| H5 || MP-QQ
*/
/* #ifndef MP-ALIPAY || MP-BAIDU || MP-TOUTIAO */
@font-face
{
@font-face
{
font-family
:
"uicon-iconfont"
;
font-family
:
"uicon-iconfont"
;
font-weight
:
normal
;
font-weight
:
normal
;
font-style
:
normal
;
font-style
:
normal
;
font-display
:
auto
;
font-display
:
auto
;
src
:
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAG
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
')
format
(
'woff2'
);
src
:
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAG
LsAAsAAAAAwSAAAGKbAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCcbAqCu1iB+ioBNgIkA4ZgC4MyAAQgBYRtB5cDG/edhw4QCrrjgOiVRnU0EhFsHILAHvNIhLBxEASBh9n//ylJ44htsB2CLxUkQYYsJcIwGpncg/por9nRmkSWaVHAmxfvAUHkVdzlfJLa1T5vIT4UkWzKDg7R5VtmVtvEQ3R0UwdywpATvq7u+XZc/tV8V6bz/yU3Jq0iu5IzwF2cTDvyAK3x6+3O8lFNZpJEJdHwxTyqSINTA2+X5wd+br2/TGrk2KgeUcoSRg/YRikMhIESDlAGgjJCARM8A7BQMQDvxChAxTpRUZHT01PwsArRuzYWAPxDyIG+kDUm8HYiUkUF8LASpYbtQ5UnfAAkAhRIZ2+vgJX+qFtP13YtYl6BEy+cSfKCnZh2gRXmv6zqk0oFLVs4Gx958SKG6/vmrKckBdlfrjnQpOkA0W0W+XJc33daLd5rgAagaXB5pde4In/FWhc5tjJ5mW0t/998tbJp1385cj2kEpQpJk6ALgPj1tgXJEA3EEltVcfYP19u1VeR5lKVwAqyYvLFZLonVWlZAV91Lsm1ci0J0M0YBJtxZMQk8t4//h912kur1G6SnuGODcXpPsGy2EmB0hxx7qMXebXXAB/ZTmIXPqUp0Gf6/3OzT87Misz3CIw4tP3isoP2i8lyLNmWbQS8EshLglrVgd733py/ErP6vS6x8c1mYgOoUsv797CgFNgUaRGqtC3UMjgv5BEHEQEFEDD/qmorKMopVUrtStn6Xt9+bbvpxhu2XwCJH4UkAEkWSEk2RNkn0I0gZT+CciEdJSaVJvnS61QrQLoQlJMjKNtHylfAVDPdzvWptLaVNt6w9PHW5ZIp9I9/T8Y3X7zS0ghslm1fjtxkBasF4cZrUNYaeP2+pdMLXUjkSbqwWLlvbrNk8hla+yxVRsFJWrtLhImQFCNP0rVDxVQjROvV9k7g8tjJz5jre9C423VKZEhKLp5IRuqZN2b9vyNwjM3efUTpUkQbTOJAQjdOAhRjq7Gkd984JRBgzNeVAMm82QU5QJBkmIQlEwQInGKDGRppGxYhbW1sbOVf++TzWg4oApDCBpgXHTRDlgfC/+DjujH8881LajSegqkVCEBjZA98f2Uw9AQOSGPOkVT1+42YYIYRhLDMamcr29lNP0cZZJhfeHizXn2vfnGOdwRJSkvu5+S6VVuqznJrrHelza72Jy/7VV5VC7qky7qm6/7oP/jvB7ropocBTmPe5rHTpbqW3bd+5LWi1X9t/n1CnVQlhmu6VbfpOm774rbzcfe15+q53/926H66gf85nsE4++ww5w4eggtwEcSLj4L81V27X5n8wsPHwMNzw6anNh+HhSdgcMuircte+h66Vl+B5b3lzTt+gEXPDlWwculF1+A6LPkZxoDgJkT9Btu2rVvyOyy+6+J9I8Td+QfcgQkYeuNvKFuw77lL4u+9/qZ/4B78CrJbl/8P89c/f8Pjo2hXPfrYA9fl7pgyddrO6TMmzZw1++Y5c+edQ2Fna1H19hgcGh4dg7ns3YlsEwxzM1PE0vfeH2TFhwMZPv7k088+P5NkVSHNVta1rl6zVsPJ3l3hutjM1VwLLbUy0cHevnn6D/340+GBI0ePHT9x8tRc3dTQRluIDAoOCQ1zdnF1c4cBBfB1NGBkbfr5P0Dg4WwIwX6hMAyExgFhcFBYHAIIh8MA4XEEIAJuFBGLRcJRgMi4XRS8Kip2iYbdouMVMTBZTLwgFh4WG8cAMsFlkCkuh8ywUObYJAs8JQ42yxLHAbLC07LGCYBssEe22CI7LBIXW2WPZeLhJfHxPUAOWCNHrJYTroCcMQTkgishV6yQG96UO+6QB34AyBPPyAvPyhtDQT54Ur5YKT8slQAXQf74EaAA/ARQIF5TEH4GKBi/ABSC4aBQ/ApQGG5TOH4DaA7Wai62KQLrJMQSifA7QGK8KAnukhQXQzJsVyRGgKJwt+S4U9H4A6AY/AlQLP4CKA57FY83lIC/AUrEy1JggZKwT8l4Tim4BFI+Zb9SPb1S43ql4ial4R+A0vEvQBn4D6BM3KJ5uFXzsVxZ+B+g7CMpDdYrB88rFzdoAR5XHkaB8t89IaxSwVGkwgNaiAe0CNdBRYe5irFDJZiiUkzVYkyTDjtVhukqxwxVYJKWYKaWYpYqMVt63KwqzFE15moZ5qkG50C1GA1ajvOgFTgXqsPpkOEwUf0BNWAMqBFnQE0YC1qJC6FVGAdqxnioBROgVryj1XhXazARWouToHU4GVqPwaANOA1qw6lQO06BfsAA0Ca8rs14T1vwvrZiEKgLH2gbPtR2DAR14yPtxsfqwSfah0+1H5/pAD7XQZwJ9WIkqA9fqB9fagBnQUfwlY7ia53GNzqDbzWI7zSMh/QLLoWeY4PyeIt98B6NzrzHoAvvidgM701RnfdOaM57Z7TgvTda8l5w8JJmYi1zvPtzot/nZM8wDnxImlOp5nTqOVPpnE035yqf8y2bC9XMxernUivncs1zpda52uq51k/TtcvTrf9Rg4/yaZNq2pY37cqf9mmnQwXTsYrp1JKpV/XUb9k0aM00bN1PNAI/AJLzg/SfaXEf6N4T9Ob561+wgrfkDxJSYKs9wtR0Jwb6T7WYbSVIdkoRHhJAyVoLIVqkrFtrM1HVb8vUNklwzGosnvXUI5gUFqWAwNgCUhjlBTtCBkkSRJH1biIVIWBTUIFY02ArXmRJXmqLLLVbioEdm0WydeGSbFtyhIZ7DEVZTgw1jlMzAZ9XWNAhUx/qYtTewp6n5gToj+cY1pZIziSmbhgSRjqh2WYwqqBlHI/O5xliflTZ0+GKp2tIgJQRQIcjJVG57aF1lEWZWElVBaligDHq/koe1DGKOWx8cDAmemLYMVhikS7hlntibe9zUoBrNUs2o63ZVm5KsNzZBmCuBC4BE6xajr7yq+whJ9rIZo7Bb+3G7duKb1mNFQErn+UA7A/75Eu5wZha8bsnGDxapXatKGXtXjmzudn20xiI22jNQgTGl0Xml/C2Ijvl0rjuFAl2y/JBvy7HMiU7t9vd3XHbefv9/jEhVhNPJQ71DvV4o+iDKs3UWx2aEhOCknt6GAPDvm9K00w3m00Yt1XxBL6KmCSvJTjDiIZmtJcbVLozBkkiPVP6DE13x6QOeHoa0NRgVhqrmAXD/1kgsP9+iTtm1DU1rZmdUp/doX6eYZ48zggLr2AR++ej4TU7E1+X9odIlvFamJDs3JqAR5gNYhgg1wCTh8UaHYqeelY11HjEVx3ioe4CcxNEQlOPZf05x3jTWeDQH1rYfqcDMf/D/tZ0hhWgtXkBtmZT7MawgOEDmsfL5rqLoWsXnWugB2dP2lZ71LeG0iHGdLpUcda7zGCUnmPDHJQ3TeKF2VTwcwfvOi6ffboB2Co7uPct9EF07oGG1Jguk9/1+spa+0SbdQJynYafIhibRIIAKCQGKEByQDGQdphhiF3XT69vhfEQNhxJdhxBGaoPODGPEzoHvDI4JGWZ3OapTcBy2Pd2gtImY6cW3amDX+jmnbBh83gBCWZ7LzjWHAklsWTbC+GRxxDSRFaq6+jJlmum+7Zi2KIzT1Ksd2ahOacYsaBD6VxHvGqoSoJTTSQsipZS0oCZVEZhtQjPrYJFhLqUaEA0G7oecFi9i1B2F6cyqmcKhbPklkPRcLksJECoTOoLNqOZqKsgpvs13Kgmy3ldtIIhuPk9wMHesEJSF4irDIpoqr+9OBTqZTsah72W30yCqF6ylJ6Umekho/C/eKQj7iYsVxsV6Nf5xjsbe3zRNfyqKDFHg+X5QaXYpl03sZAZkqIjWUgqgIXAJ6IzWTjZmclR9foIYve4mhROqXhaZyigTfeFxSU06TsWNga8cYhrpnwHkDk46bg2/vXeS7njt7hnozQ5lJVvu6vsjQ487PFRBe+g5alfCMLXlB8blt490ZkqK66gFuG+l4R+SKRlFIFYMAHumA2Gjh6UEVs7i5p2htL9e4zAFlpWWqPMggtjs9M0gFL7IPVWjZ+jMwAwcfU40fX+uBs6hlWlZ5l/yEBR57LEyt+xplUY2abpqurcmvKZWhvPj77//uBEZ7g+e9iEjQLbKb/UKSOmNeXa9le56jt+Fg5k31k1xigjpgsZw0knDsqgBpBJVWR4FoM3E6S6NCe8BF/gSd709yTDD7xLkJyvD78v5H4g6ADoUm9oQ8R8LCn7VN5ZciJkxs0izwrZPERdqaxAZcm1c8IRkc41h12VAQTovM5Utt5vL7ukTvQ1A440tmwzmk2fnh+6ofNrNPq1jUjqYDfa2MAd6jYaGLR7r6Rm8+cg7i/4xxaCWxZex0+2F2xXwD9+dbxTLOLp3FmAgt7zIwfOSIuK0IlpqAghU9wEDgiNpl0DlxCgjxY9FIJAs7QUQ8Qo1E3xN9MUuvqsGU9fv/6QQaWnylbWS0UqTa/XVkHCzY8SkYOpBcO1G3WW0f2Olku2i3b+cy4CqXUKzEBpYpVJRMJGw7HIeTnmAHRc0CPwamfLbWVI7krLXr2mb8/DsxVLwNbCGsAL1rQS8TtbT7PR3iaf0Yw6ezmqmj1ifJC6NdZFKJU4C8K+pTDY7WV1zfAApbSWY32Wy50Obf7IBc9cozR9KBHMZU5OZW6iTeZzx5/PNRAcT4I+jlBbwPFlc5Fsu7bRs9WFlO88mOYKSuII+0nfF4n4SJQi5wGVU8CSYqUIBLFrVMkXCvFsL2ZUIwSsJEuJkoWhjwQPF4gITTGOTjevsxQ3VLzp6HyfEm8+QNxqsJuTmyYUYTvTL/pb1ociyr7iZtqEb5W1dD2QOcdRJCxQKbGK3RCyZoQOUt5qxzwyiAHGOX/FDC7ejtymcD8nrKy5Zv2EAYKnqFC9YWLtbYIVCHg7Ggmk6WzzbUlZwGCMlXzNYhPTAGOIIlJs4ZYL9jsPFn5d/tCvKRUu8+rQ77qtplhda6fm3/37+7zcj7VRazV22+rKspc0Bde/o66Uxztev058ycSSLA3k4ZOlpwMnsCOsUCqWoXQGtrggxeBZbYovi1Jp87RycSS13a8p108JkhrNCdXA8qSfY/DNiEA6ng38PnVevmQRlxe2wggJKzL8pkDwt2NpfFyajI/+ispsBjb3IR6RFW4BVFbrjcvdKpmWuF9VVlGJq85Ln6O3IcokjocOHDYkNUHgUGIpCkx1srPwLtgDKe0eUkmHrAg5xUJdZKXA0XhaprBtG67t8nFwFWCIUKeXkoiYolgMSjSNz947H1+rH57Oe+RL1TVFVPmKb/atytS0auY5k9vm3f14m9iaVCrupfcGk1MfjFbEu6dLxyzbbHGxhSbnmMjjSkbr0XyKbcdqIxKvj3eYGkI6he641tZx6b6Lk61OCXm/RaMVCYdATn2IRNrh45vFI5/CS/KqrTIE9iB+xPz+Fkkda0ZiFW2h3TS/2H8ET/1W1jyEnSvYgVIRCV4XKaDZlgmOc7+LULcm6LDluAllh2uEBbwviPsxHY1aSmfm5crZMSpVTi7CY2wnK1L3axLX7/6UUWDz/kl4JA9XtwI62rd4CKpf0HdwFqNt7crUaJuGDYx6KEg1ZSilfI69x7CM1Jovd2PuVTxfOJ/szI9HYWvPni/V21FzYFRq/uShVKsVTz4K7Xq1Fz7xtW9ltl/nu+SZvuUopq4Un034tbZ5jd6tMMkTg23ujgiK+hcLiPG7HptiiJxL/LDzPmU9EVey3oVK/NfDYnAxFqQZj8lW6Fk8kZifD/iN+GPRbEpAugaI5sSSiJmLH8odWM66HbndnpJozoUnutaaL62f9Ca1zukoorJzx57w7JDJg8HRnvDkDwIZw/Yp55IORSePhSYB/HUgYQ+YQQ8DviIAUHeyNkj56ItgHH4N/yqBfg31gyRSWp0Iz8JGrgZQwNhl2DjwInjJ+bAgNekbjsYUv+h1a3xw/OLkGlelriSgCNcsTkT4+2HCfEUIjRRDTU06w4atBmKVhcNNM/32q1hLf+QUR8NBp71L2LzHIcnivx7cRbHPWSkfPo0jHQEDEzWiY+9XugYRIIgiivHRlm32B3X3+K/aZLJrhLSCFG7Tutve3EQsC3KvRKe4feAhDfBNWSLH5Kr4hUzpls7mMXSkNWVR43D2Vzu7pF1EVdG7HNuKjirny5q+DIywKaUUk2v86bX2BNbQGk5QntL0eUsZ/OfiREHDnUNsfpmbRL/K/m3Hm9K5FLsn1mJbk2H5TCFhrEGdNdIKFVS6eGbZC6IEbvyWX8m/+k2flX/9KwX/wN/+WjSHPnKprg2dohgwN6ctTZHnsmmb9duavIrBUySxAbvSi88LDgfEoYfPaPo6Zn9jjasYOurBNN4eTp9++faY/han349SL09+fDY2TD47/O75R8cqVRG7PEmstZBGm3+KeyTJRQHBqEhc1imy+4iCFGgV16UZmqPxkDJ/mAEwUiW5g5DIwLPKEPtZqPT56EDq2aAxN7IoLHhQ6ddlThoLybvRkawk65flg05jaHBtBTuodI4eYGOcrvagw8pL3bKYgXwHa5hMVNU0pyolYYJSQnVY/qgqfAmkOQ7RJ7GOaG2pbjVZqwxKKCUU5nhIexCESCrWnMpUTV6CORKYrieFFEUOk4GYOF3QtpA+LiKITihF9Tmg4/d7zCcUFKsgee9cz5v0q22Z1GehAeTFLznF6XqUc+WUlp7I8m+62soagNFQpFKEqNUpfqClIKCb6acnq0MOuqLKMOtVajIGFjUt00LjRKjMoq39YOKuBUVe12edTQZXgsp0+tlEJV1Qko6AIh5JL8QUB0zX5uOPpC7DULlAPcHdChxoykVBV8qxdBSRElwYOaFAcuCqpWnlhsrOlcyJt5303VYbZo+CZ7JoYLZhCYLlgZ1lYQvtP0E7IsjeO1l0AHspOFhkuWlkWh14gfKaAnYteLa/ER/T+HyFgs7ygey6e9h2w4H68X9c3bZNo6+WUDpXUk1gwi5bFaKhzvDkC01tHAPNQ2Ft2WvDFNYTXUEojYFN9AZDiPpMa/VI21FajpeOxpGhg6GM4su635Ei1HO3VK6NqUwfDPmKBV4Shglm4l5XGEDJNgkCtAsVwNXfYWUzSDCcI/cYgMFKFi4aFPcK8aynz8DYGbzz2z0OoGkQPZP4E4fYOxhXQZZK7YDGvcx+nYH39DDusjP2kwD0eT/67fVSXIKS9M2A5jhXK0RpEsWyxYg07GpoLOpTfWM1rTDwmjnauv0wKGpx6EcMMSCwKGiZc9k8VFK/vtlmOcJqrD21PTKFAAnNy5Be06/EKNoq0aEhNJRvC2iSsRvgZ5jnFWaiv14yARWd9WfEA1h5gF0crllRcBaU4m2A2CLo7ELDZXZeDY0sU5sODEdlJApEqcAvVfhk6kMdtSWH1fZ5KEgxgOaULi5lm+Gwhi4jZrjB8J1vWHiCO/Hgux/Umj+PC3UYKRcf0iBxme/DGMeZTj7bT7ZKkfkjIbPBHomzit1AwASpKWueX1riPNt+X8GORHG8u9QPiOKmnWTzsWVF4Pd+vfRNkTKp3mR7PQEMttFHKFNGEl2pMaT+oN4PMMEZC2UkyW4YDcAYueQ3djdQKvNznXuyxsqUCUlcbmfCebVs8n+jukXXBqWVOfAw0S9gzSmOCx0Zyh5iIw6NseD8EJA/ihC3szjpB3h3bzfscGsj81yiaIXZw4dJy2hUPIKLIqWA/GyiMthcWqh/rPazFXHj5AgtTrFzYR24yZfV5LcIOs5ZF/1bQ9/Bs8CLSPpybnI7OdCzBOMcc4+4FG67H6SaeA/phIfWkX0su2j6W4NXGq0HujmEfiP6tfQ4VwA/YllpxLMfaoSYruGvRkyoH8NvscBnzMfjxSHnjvRhSH5iNadwlVpVs2h0eygVtcOkwCDVhY0lPpvoM/V8wga2VNL4JFltHIZCJQNyB4NDZQHwKtnqsSzE+QqgV5YbNXpkP33hWTIsct1PWGC2TL3Tr4w/eon0iMxjrUcvzMmp4bIPkQJs1QsbA5igW4c/itYqEMpDOhXw3RHsWwZNT1/yaoA15HvYXAJZUxP4h2yN/tRI8fJwrnTGYCnFee7hbWc9b60/Mudc/48t8jETqcmzSRMsKmOtHpQtZYUxJ0VhA1JMItrwx6MEQlsjFvWPU9O7aJKh17QU1tlbQ9NAOQjOW8z6OmNi2jjnEcS2qZDWITIY5TwTUGufm+06DKwx0wM7VhLrM77jBPWPqWsL6Yokw1jzp6NDSmfhCOZuAgOeUJt2w+npAwmwpv6ZdsGxvSeBWr3seXEtuDB5ZVZJARCKBLlHrzg9xGO9ujnFyWymkeoipgp1SwVbfZCgkRgdkUnxA+w1PUF8R0xasYhpxpLKiFWgSRLJM4iouOET4XfZXKERgQCzPDkYgfS2Fn5ltZrittajXhDpyCHE/VBWF793kVKjeGSRkOq9/t1INAsSgYaQwp8efDTRrCNPfJzRcEAkPDn4ZBGdb5j53y0t0snmMbiQ1vEnR6hjV6QyoLNafwNlMj8YHpWa2TT6HRknSDrwts51kVQGx0BiCSe46lHp0X1U7mPxzRlCIbugtrELOv16SR1tDDqHrWG7v/q744Ei3+Xr4Yp9d+96lExWrusABQOWsKdrAERINIjh0TR0GiW2gGALA3XaDQdj9TG4iqKCjIMTZf9QJwLKE4dO8ViJkgFGYVMmNR1KZfno5wES2vlQBeDR419QocQHH2esFUUYyolYhItX9eP//9WKqcnN8J6PNL3cfCMk3hOHvp/0fCKK3uKKc4TCX3z1jUnv85AVCVqu/SzFOrdEoXUHSAmVQmd5Ji0tOnkMEtcGXXcZ61jtfMOTKRi2ggDhiuBHV2JeN+roCI9EScoBrlPq2olz7uGRD2C+B2rveYnNPfoYu9tdh6ssJV/WDB8qg0JX4+8LdV2V4gKLUJ+L7FGzaZ/cxYYuR/pwvPD6dG7yfcHs7u9JhIEwA7PlcS/5CD1jyn8WdukMOMj+1GcWOUY5ab0aipoYohEva4oXrQxCsYCUs5o0cEXA79K0JtReCfbyzw4tv5Dr5eVGsOVvO7L6ujunCnnagOXNvcQk15W2yLd92w/NL47v2EMHd+F75Rwr6K3q69M8E1CPbWsR7iyM6/hJ5c06FNbwrrk4py0iTKCJV89Z14QZONZxVRKIMLATWA44pFlQXTUKTGKtoFlByNT5AztGDPFKRAJo0ESBZLVZKHFm/ZOKLQMU5BDsoATSEMTQoYzbU7ph5aC6fYVgxJaI+lBjG6O/6NbvscF1C/sj0sRG77rVpeEeDrcJSEBsnJb/Mns5kllRHNJY+PH0odBmKeYUtcO0scZvgS9Rir0QG/J4Nqt81Lw/WplJSoo3+7ol+QhsOOwKnP9ZUA3zT39GskIAtpoIkRMryjhAi1YxHSuL5i2rzSkhKzS/EiFPV71S1BsTwnAsazosVdz0oSyQ47QflC0NyBM/iLYEJbvlzIOYB81OSIqj23OWzfBD3MMezkERIt0Jzg9GM7THWet/DpGasDZOCSb/rhKZkOVIYFWDjxMWAyBaD0+4FhKbtRgZtzJKolvkjrb+aDB8+yY327ahr5KOax8+7SEhZ8+3iwCdN7oXwtoGBdNK59WN6cW9EBTd6W1vdVtoh0bYacdfG+V0rButYRv6JLd7OZTvHIeO2KvtOMM7me0unksdDtw92hppwpaZqeOAbpIeZj+4nWwECjDFOOyf1gi0TfbAHI9JHJBH4x7AAwSNtgP7hkGVGTTYpWV7Zu08Envx2CXnjytebUeX0A0773O1Oi50lcoNKE10KJe+kmkoVcYFYdSqY0VuYMfiFvfHjoqkwi240h0b3sk13ps7G6AOVayZRNWmpgRPGdWk6kJuJs1CyTdVQbZsXMZaCjCAdxsmsX3bCYY7QZgRXeenS8vDlzpODiHD+fvuM7076YlnXlRuBu1UatHGxrkNQOulw+8CQbxJes3e3oInNGdZU9CPOVIMa910iGu+wVv/KaVuI+1qnQt5zCP1RiWmf4bjoTbE+eee+40qwqtK4ibzELPFZ/zAmKb3nCEFAnMeW1WDl5qw0rfgkZ+iEsumTb+V9UIi3pOs9yMCYe9gV0QJ4og2817OoYqm2wVC/3ioAdZyIZDp0R+71AQdUrl9IgyLqJapyV/J3x4ZAEQyQ3nIEy56BQ+uaxnwmV+MV+zdi4PRf5ygFMlwb0xWYPni0j4Q1YyIEAA1fZFgJ5Pj4uxxEFLqelhgX4lH4fLhrxHH/wTeODZbOlwOaZZ0Jqbx2Wdf+qmjsgErAO23C2RyN75/N0sSG8XoX89Lt1L473LZ1UlTPneHmTK27LPuBwpl6EDL7LCGZVqHiaVIlJ6rFWwf/+T1/0welFfhdQDXGroIkN/+j1yhXOueMq3eGuNKHTY20LLLYX7jwCOGn9LfCBN6w2sHWUAJ0F/bBxwCg82nPPMgtv66gmdkxh8/fnzm//mPx0WRyuo0he/zHKNHMf2/XIpB3etBQmC8LMN5bHJea9uw2d0J9+/4pR+QRIhuzmNjosUnAuo8dVyqLKHTCGxAPjQRUlgQOCMoQOyyCPx3CXtf4VaBoB0XLKxmhK6oXQIK2q9xq/enH5OwgbpTqHgbLDsBce31Oc23qZuo2XP0ZwcurC1gYuHkW8h8A2n40/9iDSXwO/xdXHa4RONeJM0Eo15C8VpfVeFEVW/P6siJA1anKfJQuQwPts9saXIvgYpXoqiYg92oStC/HkkxvIbvNt013ZXDhM5wJPejueAFde/DizidhE+llh46wxHpE18FrzjdTmu5lmOhGXFbbfdgNBxBXqWxf1HEU84CUXVRnhV1m488G3sDlWwAl+midoffvwsiJq/t7Itcq/NVn2W8lsHeNWvYbECCy5wIA/J7aEdXkIRmYzSI3Ijo/8X8r4FKnWUmJLbDuwzRRC0iFSKZgyBIldnWSdHqx+5wHMV57dLhT2ChQyaMJI/CSHAewyUPMHmis0cx+J8kNIHY7T7trnm91ybzGsSlzeMz0KHypOFDIrAxtogFCy277zjR9P76mPIujt7ibGXQCvanjpMr5uBUxdmAu1J9D/mnFSoDUNXoEPPujtkZ2dTUylGQrYrzUlQ6BC4PULwi5g+iBV7fRXP6avorg8z36T1k24Mwy/w0Dfr9JLlPYtGB58CzLxaYxTpOXG25ZtHtSGTN6hG+rNZrJYKaKedlm5ESLB/Duq5pFNAVjkPPUdki2tVfNJQatpOayDTqfTGh4bb7UF6tkPXiBtqOHv0jtZ76YX+ZWn/012AM3XlgISUjQmrpzlcb7Siy1d7pAr3bAH2MGyMQVukRrBSeeoqEr/yWIR1ekUmBil43yhQCcHrmIsNEpqdRxc6zbFLZ6Lc5afpgbmEq/YqhJdTlJNu0dLfr4iZ586JWGV7arIxiccEjDj/J7Vhfzeoo0xncnNICtHP0cuXWjzIBv59lHHZt/rbtOz/QEe+qr3e8fShM+vtvpd8pnYxbZWTc5JaKwscJFX+T8BMHH7V+2frlwPnZoTAnbz19aKkK9sNMCD2P7fep+nCwrK2XtZppEvXrjRwXwnOi3AJLyhB/Ko7+gMiQ1KsNfnAZYq3sqTv6ih35qLnF0nVvkp8dxhOLJGmiBPEKEafWllavjQpky/jwFpt+L/0dt8i8eey/tec34+7YikPbv/Cz+zzzruhiGX2kMmsVJFM4hEW/k2VC18auVMxAx83UhxMP+j6pZGE+3OWQlRcXgjYTvH+Js+kq8R+Sz+yF0Yud1y8rt1+5coBOXOm+dmla+P7FNX5ZEluO7iEqs0RnJjORrwe6yKk0XH0jzS+5Y1nRYXVPlkGwEAo6NjQfwwvIffXrfXk/0ehqxPJSjILBKGqQ79v1XFiEND4twvCsgjHOZ4YOsM7XfjukmJxjcg8tt+ZF9IOHjevNmQ4nHWeOl1gS4dJB5B9e2WGWdz+xyB0F32HlUQBAQJBhetsh8t78p2qUBMm+ugwuAJaRyPak3/yraHWprWibVVzkooOczDLz+Ot0JaMUpVsn5sUpKk2WuZkyPMoXPVndVHwF2XA/KzJgHXuNCI3jafh1j+a3aV2ZJcKC/J2cV7G1AiVZVx6UwtW0G+oo52/DhXV7tagSnIZuVZcu3Lm1vrSFUpFQBHTGE0fYvR2nkkNYvN0ACr4gvYPchJwKtJ1pqdU+ZdyBQQbLaZ1HWXTJAR9wfmp2aB/GcypOMR87H6l2xrYJRAbgnNJtRg71VP2xeYto+RzUjDwfrJ7sKSOtQPXifjJ9uWrwnFGg6yziAgaytTpwJDRcC2+5IxJxXuhQ8xwbL3RfUpQX2HGrhIGGeYQkeMB9RdfdGpsOoiqNW87KlvxVPSTBAejueijQVFT7HtpfOcvYOKbXTii7MJhjHhl3hisByeGhhQWvMKTHhp64OGoe99gtYbvUYQN3njhyBkHcZHJYZ4GajD3NekNerffX3k1NVLo/SME1txS9Pm7udZTKikjaUFPC36gIw/j/bLNvr5nsPQsPnbAVqX1RC++Z7nllTRRj62rGHV73M3ggAhy+cWLJR+qK9EVO0zhlndf2t1Y/EC6N+xopa8FXCi94LnMuoAzz96V+WlukZFxMm15yb6TXe5miFDE489RGgS7fTagkVYUEr9UwzKTJptYs59c2OmY12xvJ1/vpAgv4M3q91po9+T5abco5iKZHmKlVuuv3Z6fr/bBZHU5PDN4TdbAW5I9VkvSa211Ry/kXgYwu4foOfoeKoQO7vLahE433WRUz+YQrkHccnRSYisYDcoW5ECDjbNKcV8paF7FnSHml7Em4EQeR3+kuSYS0pFcxnPFnzb/MLgQF6tNBs98eav+rz11hpslgt+plEqlNmDS8LYy30mDJzpBDs77Dllk4YeeP9qjhdk+2sZaWsO7JU6BbMpTSr4y1dO/MYkpRdt4zfK6cPoEdnL4cFRyBGDghv8/5Uo9QRoF8dWlNKJ0NvbeiFStpOewUV1meKy9tkj7c5pswX9wMR3M3ocBCczQDbKToi6tOZZHU0/QMBt7jFy1NYUZCmHeZg5rDlSC7KUQ+LQ/re0IBsFd2rsnHfTfdFRIecj0GCj1nx12Z6r16voeF/CpyHp4i4VLzOxf30BVMgbl33Oo3K7fW6CA4H1nqehj5p9G4Yx0/bYJFnLN9yVQ45Lp9ll53hP8YROzfbTZCBEEemK7Spneon6q3aTUZY5Gh5FZqgQcXR3sgGZcds4E94Moadh8WlhbPaGgRWus6JCiq0LQ0+w1+DCNNLjXLNh+bpGwvxRatY1vp0jjqEuMv5IXXpwnf1NHruNX89kq1RLO7alaffkcw44wHvKs9a2owXLh3/5f7v94KK39uYkI4yFz+NmkLSmorPeM4gLnEqWjAcehmq3ct6KpfkK8l2MovPzc1gWM3mrNymLXtSD6qfOvW8vChOkAQyb99BTnMrGZ2p1Mnu3kZu6wAic3Pj20+pI9DYkVVEPL5CS3gyW90Rq5d4OwqYnf3qVJ3YSvq1Cn0aoIGVm41rcbfdv6BrVsI1fTAWTRdTKf/DkBje8ikGU4FBqrHKVOLDolyLMMLINzvARaD7ECwWFpLRAutwZtWDJb+tOA33s9QMQRU6bTptJSay10zMJRcJeMo9HFruH1wld43WzPbR9fSZenqF7NSrozxgqHiKukDTZCFrFRl5vEJfXYqu76EOV51xydEYIDhlQefO+rRRSP9FIq1T7hi0rzKfMrsM6OAaVLA+DwwRKmiDA3MsaSMIxMT3+DH6dmzO7b5WNvgpswW0ZyOkmfMZsgsVLdjzkTpntMNcbfnIDEL8pwHEERitF3UHCGjGEd6RowUIM9Se6izZKuh0KXgS6G/OWx7+I3da1Lba5mP20vOTsEbjtsr6fukMb4b3aRy/QJ3tyzU5fa4T7p9wUTMUPyrZEvuQyCNscfaHiLMlT74UYfk7A5L+ptdGGXues08OEcV0GbSltBGRLMjVH5t7LaYTYc6sGaOOmCydGIbCdDsuSpflSnmckP68nh8C7UFX56xeATLz6yVL19StGZNkaaFBEH1uAacvy77ZS99hN77Mlvnj0vEC3RDnQFxoC1A4tz58v6HwNQyE5n5EPvfFv4If8t/sZDPzLtuH49otUg88T3R/dueP108OTnHubhoeQ7j3Kuh7z88FLrUBVIemz2mBO47kdQe8ppXYD7jcwBoLCvmOIwzrVjV6I1Rjsx2Iq2TKXGyS3GUmUE7GB/hXbgDIFp1Nxwr9Mj166p/67CrQUqrJ6C6AraiOuCKvwlhTyS9/rD/w/ZBrZ8nRvhL+Kp42pqr3EHPxbDMq3RQk/av+QaXICy7FB+6areM9jVxRXL4BpuNWsERI4NblSs4gdtWSljqE+/hEM9KlIRl0NO4AjHRMjVO/Mj2S/buTVUL/iUh9WBUKwIOLRyQeieshiTMxseXDqAVJFjhbOjigRUbUWGDXg6xCbViFyivkFV5RKj9gOBN56cWDroNwdUMPoRgGxDCoOsrwjM1n0vcghaqO68gWg1WOfL4Mde3rnyF9tbYsXU+/0k+NaI7sNLDT5eyDWGjP7W/blqan/Sg1RsnONZn29aLl5f/HW3hXIhqXY3SogpWry6IFlRrq1NXi+iSS87xSGEBJEB8YWE8koAUFCJLxwUFkNlYU7mKw7fqqClvtWrd395J6Ni9hYKj2x1WfM6qkvmofhLTmknFHqSyaEeEb/pQqH5ZHbchpHgTmUH5RkJD9Cza8huZKa6VhzS2E4P7pWj0OxST+9YH0C/RZxwqQpraIslAfksxUq4R3kcHZNtb5z0RQsaniUfR37k9PjPoo8TZXlHvLHEXesbH6ULNkXFCPWbysPUE0+ewLfc7eheRO0TvpR1tzPIUpXiISnWUWUoPBSi6Uo/r1kayEXgN2BdKGyUVLIGqdKUCB6iuKgpwEIrKhptbAkUQJa+yQDj6eVk0NFswLVqi5IKt28anrOpGmAjmYknvXHuT/BDpz+U9KvCTOBnmBhMuUZH6uVbYS63X+VSGy7MLCr5hrgv+OuFZgy5KWoJs3IgqQZVubC9ZgqlspBQp2bixZG5Amp9/ZoF/RpogIBkpKUHCl4QTVcwZsadCTq61tT21geHiVUNljkjH3arQGqhRdaTeQAvJ4w1bZWk9eGXFAbvIJzoiVxKa4LqF/N38OzldCIwj5UXO5cKoIpBY/b2jvtycWjWd6cZNW8FZGH2ATqCd6mUv5+y9NM2oYgXxbFXjSGiuKubf+W5uiHv4/t2qCMlFxm3V9kFIIaPiE5sfhRcHlBccaPEsKfG6HdCXBRDEUUWmO2FRYURywdw03jp0IAhY4d5r8VLdPZ0/vg3vr8vlxfbjBaeRNnSnzz2fTvR5jIrn2CHFG+M980VXCS02LiAp8k9CBamtmxS7dkKswGrbY7vNuiN4EfiiInyEfQQdisWqsRVe/npikFWydbKTDqm3oJcT97S5EcXmUid6YBQniF3JG4n0couFrXrSlMkUqVM3gwR9zz9pOtmmH/n5KqVS3zYZ6w716s/grvvP7T+w5LnyLOF/NxJY2bvxSIKOQdvtyX1DT1d6H8L/mf5PP9KqpQSUOFEfx/wHOXWkd5j3cOdelELOwvgLHxcwgtZDTYDvEj+1Ahmkq8cHIT4q19U3YKmFELmzaKXEydc90mEfDI6raX8XimINad1zhCHQR4/kdoBVlZ8Ic98xNtKyDBm8k2rTBxqxDfj94ZQh4myzrexTU21mRGh2FUuAZFQvy0Tc7mPNGak/in5sMs1EVVcjmVMAkEWQDCSzujpzjqvU2SUq0UDFun5SKe0QYcy+hfmY1hoL7/6yuTTNjj3nfJ4Ug25jdE9GbJtx+dvlSVid9h+XO2Fzjj1hx9x2uk2MRVsx2ia9tkNQzl58zJ3L4XF33mXZoul46nuTNhQ79pbzloynl+fFTcy4/ON8J5z2xcegeBZvA/pPNDc34sg4WUPI1wkNKoKGMr07MyK6WhISFiKjMqlCqj3NCW0Xb/U7zd6KSZum2o8IW/vsaRrTCmVN41Wv54wwrZhU/9joDkueoTNOPowdHD9Ca3S0gHYzOC7kCjkcw8cDAE5bTMgFX4aYx5VIWGlF+nALprG2hnNnPdMYU6Z/T6eZCozGfZ+qDQcmv/pERrVcDdBrk1Lwmd33TR91Z4Awu+0jemIg245mY42QuFndd8y/M1Jhnw40xoiVgcDvU/BAECd8wM4wRcgkTBkc237kdeB47t7O2dod2R4gR6r9zxvSQwZDq/2C5VcTLzJrXGoYF7jMVnOJLp39QSiVCH9gSKGPFgrPSu1gIpy6Ng/Kqdh5/0GXlb9VL5NZaheT2Xvj67qSnU+CRhacxFP8LDsVc5NOSz9OR0FBq2VrbLUO2NI+sZ/8BFWxYUnEv3wDJkL1bq795NJmKXjuPcQ2veGTKhxyGzv4x4Tfnd6/EQj/vOQHi5rIGinPysfgYvCB5qcUjy2RVbMfh7gFdodqdv80s38aOmSntxtCVVWRq8JfEHttgwLx4TEgCSXOdZLb9pbJ5bgkvNZZ5HvMgRSAC0N0vYobZkmYYbNezmcQFrMInfReRi+90+36MOb/L5izmOEvX4bB998OAWCTd1ApMGIywKDeoDIGTEaA0uOOP6iJLFMYyuLKqIwR9kjwe8jP0IKPbYkdXnBzKEhS7iaWRnwV03iPAsRSD2ljiGSsBIUys3yJ4alAAM9D9xH/O/6jj9HidwvjEOg45xOdVARb2C0sv1q80duIr02tVZVT68doRm1pmvAUB56SecvQgbqnaSY7FegprpZlRH+OjiGzxIHvFqRmpGsQEHMvAf4SWkuDyTb0bQUqoCA+oZnuZvrQDJt7xKxAlv1BFsmVmFICZFX/80EKmZmIFD/lPYUPdMmNi8tx0bQVulfLeNlgxg7F8h+jbqMec7HcGT5+xk52wr/Nn4G5dQrFJw/woCclCUV2K3FWNPfN4oSedKEoKYle/Sz8zzj0x+aIQ++076rMNrlT2Od8RDux520O19KwgcU2Nm6KHeRmsGmnn0jXIokEafXvytBQ1JFRppbJItqo8fB+Cn+uDOYJsWNrt1B/vPgjdcuNNfDo9yGunjtUV9fP0/IGt453eomQLm+hmVJX0dmtLsDPYDff8q4EkUbhSWkDrr431mi4cUNiYgZ6UgFDkpgI3edjskzynlDFliFDJxj3zOqFC71dzqye/oIeILa1wCMkQ5XpV5Qfw+ggZJCX2we5cdU+bkFcygqssqF1szrM2dGtU2/Ni3flgy/z0dVMJE6rjVP0yjM2LhNV0dlZAR9KAYyZGh6u2EnqxPNOWozjTc5hd7LnpWSadHDncTtM8o469Rgf9F5NMWNu7vtsKOYVM36mnAZ3Na6FCAbGCc95nl6ZnqyEZ6YXhJdvcpQqHiikjgXIA882+I+R/FBtqJqgHztMHCMqRp8MnSBr3J8qLBQlpJoVNhwsNC8cQQLwEHhx9kFZDDc4RhFvmi68Rkl0rf5AoWmBOKHArGDN0TTTMdL7B/Y7TXMWF0zp/zY1tVEDF22biixZgoQvtUNIEybow8ibJejUgvACgMUM6jw0b5VEpbpPDYCe432qUcSolEO2BolC5NnZcoQgoX9VUdmabAt/7zOoDA+jy25ilNd6l1JL9i/Zr2BJqpmdj6qtQeZTrK0lPqRjUXnNfLUBfS1p/pw9c+aPJtX/ab57lmMOIhF4Dsw5s7shBLGrmq6CfGYbU/v8ScChdDqF87bb1/ME2M/YKxnzazxiPKlHkuaPM2ArOSY1q8Y91oO6m6nNUVfmGtOB3/xlv6TI+bNny1P+UpwrYyuBTS9Z4OuwDhebu2OY9CLfWiFUwOLbRmjoAGp3znGNniN33W0mFHwB85CjGYLHrlMu3+0FH1wX12f4vI8uH1xmfPnfDY9dPtqtDM+O8Cw10ymVOtNSj4jscCS5uHjpK2EfBr3h/PkNKIIEa/WYPiEsDmY2kluqreup1rUeInMhJ3wpTeLFmpTJJlleAk7vVEKOyLzWw5pqXV/d0khmGp8944msZMQxEpWotcAXZEVevHafKsSDcFWX78xRvrsR5fPxqMDKiN+mJVJJY0SZlYjX16/RwLPV2L3pR7LIqzxS8OOuokjfOlSrEqIEDQsK6oOiwHrv7obgpc5XDTz2XlL1LyjZxbBG55Clzll5YsfY+vhY4hTR3HCDmIBosrtn0Wao25qcIw52bgxdkOUSEColTt1pieZ6R35eENPkn/oqIfyXRnzwUpe6IhfCdaI5cYhAv33pYw510VEH/O3h01tDMUEp6BRlsS4Fk4AsysfFEycz1P0G0SFaLBSLozGZ8eoqOUd32kyFRlMhLKmy2uSGz0WfIRMycYr0mTRFJJsO+lzcm2bVNkppTMwHdij7Q9lKlYC/Oyf8Fkq+kW8yZOLgDfE3ylG3rl0Omq2iTfU+J59zxZuTuvu6SeZSn88NEx068GXltZj3asGzdyMea97C7WjcVMmrbezgbjlof8Wmqh95GQdailsyXGnmnsWe2G89KzWpRXV2+BnCEHv+85RGmnn4nsxpYLzfr+qnsSpU8Ya2YoQgrVDFKh8jWs1n8sGDfD28PlCDUuWmdntIgrYXDIbKXhXuMmX2MqcUyb7oVAxqeomZxKxpHI1JDZHu62zFVl1byAX79KrrJtUQNIGquEQzAcNEss/kpFDic3L5bvY4ejvEBEn2nWFaS2yYvdnHi1j4Yaj793UiB0w29r12RB8nFGHSSHUjTMoWpkjEWMQIG+YWCnOE2xXROUtlUjcrJOYiIJuljZ3tjOhaFI2Eyt9VY2cUixQz2Op3ofK82T5mi8xuJQiSv2H4ueaucLwP7LgCtQ8sNIXA3Q8SBEuMyib/tRZUGrfyE9z7nOWISMxgiMWInPAoM9E1Tdqy0L0SjWoRuKUJMx8R5I6FHyKaH3UsMbQ1OivmjreEt4zPZdzcbhggVZyOmG8b+85V7tzX3YvudO5Ey1HsiqimqJAVoBpYesZ+ht6hEiKVvj9cXr+QBy2M+F6W3qEAuUL/Pj2fpUd6LYwWvVDpoIcrn77TryAFNlt7dUbzXiSF/ewVpt5B/5DE0rN6cUbdQdZ9mHV5Nl0s+CN+plcQbYCQ85LRpVM8ZLykCvfzekxpVTTTfQi9R/h68MviH3wst1/EXvm8M29tTrX9xQ8vhJf5l7fXAKd3kOmUFQF5A0aNJn+n5NVQ6Bw6tSaPIgOPG8gT1A3MBC5QWnPzqnCgaY6Li41rtmBYtGg0rQNGDDYdRX/4gDmGOZq+o0EwAsB3DLZgrBdG9AmO8lcv5qcErS/+cYsva0MQuXjuWrcC118SVKnGHUXndmYmb9Vohgz4wejYuLhmDeCqcnJazCLTpesC8ikfyRgynZxfQwEOkO0zkDBkIyXPf0UAYRLw+7REM82jJdN4dA2N67NzPuBb8TRP/SC0xbE6+XzAd+J9vQ8cK/+CUwSKFDhSRU1YPYQa1iywTMQFiXAKcu6xAzmDzdQm7qVzgCo/1iEICqLyKeUDQd+VSchSt69+34MGyilLg8C//KRBztZfaTr1UnyHhpajLMmOrqVrWvDg116sHLenxeqyV9JY1Fgq0ywD34G3x7fg3TIQ++zlunKer/i06QsuIUCYgCMtWB2yInTFsgWk3TpQiEv40vOp9Nk4j9pkB9mSO9pEZb1dB7UFLf1a3h34TZoL5W7v3CBZ+S1wIJeSHwQC3fzjU2KPTBYYIPaGpg2TgpGin6mj3ueeTjw95z1KvVJsuY+1DdW1H/xRzUULX3w6HC5etBXyeVrmT7Mz9J+Y+bx85ghTK3+xTNBmPgk/zdCE9JnZCaaap4IJGpMmpDLHheNMKpAl9EmHQYfHRuMGWl5sbD7tH6NxzKnPcWoNbkRrg46MxO3aiDmz77WbZL9YGCf3n5dukZH89OUolRyLRFpHRaZv+Ff59u0N/DRqFRWVrknp7JW79KQ0Il4ekJmBB2ODkCwIFAR5L8d1u8KWCyO2+X35dlRrpVIsjJL6qtLN0yPu3h+mkCMRkaWjeaX+IvWJMoVGtd68RS7126YJHz06jx+7xSFIK8vLx3idvOHsnBh5UODV0Rv8Fj5w0R7HMbMfMScwx2dnj6PZkNlZzHFQRXRVVXUJVcZCOKhz0TjnOF+Jjo2R/+yc45TtqjsAC1FtI+cZX1hVCCB6Bz2bUMUKQZ28p567xZyY/Xgcoz/+Sxt6ZATVlltsQwvqfM0yvxqNptbP34y2WacxszPNCfqVPpC8bb00XHK++7G+FIl4FUaAIAsjuoiOxhAbbzSGhuAtQ1/KS2ISlqvo/W0bxNaMe845plzTHN2W78eyJeFgXmF90lGKPYkVKE5qBE4nnf0m6SeH9VXGSY2f80kngeakQpAQkj5kKE584qTCD3cSIxWuTuqYbSdnv3ihFHMS5/cIzCA0Ukj1cRPiG/BhGrE3jRTXJMxpCm/KrVIKpuX/mWWuMBBtxVQ0iYgvBwtj00h7I7KWTdsyWuqTCca77u4svUMzyx3cWc0OetYxRiGPwgE2WpIgqQULuNUHpKSAB8WFPnUfUsVUAkuPgBoQ/XCvG3lvqHnoXvM9YeZhe+ps+wGzkf5Cxasg5NNR/G+NP4+tuW696q/rFYtZzZDVccuhmnSO089nZ6usbqxeaOH0K/63r2hX1D9I53+39l7zh0PwnsNjP5dvBco3XPm+1uB9J4uFetSrTpz0IN9xqxuvPv53679rOzpYrSDg+4x02DL7ijzckonl9ExMBmYe/QPP31Dk0cu0fcbZEuoNWnPApcBUG/A7ZpeTQnQr8uhiUfVz9NQxqJTVVeRh8Od98K7BZmBr8g+l2aSZw2mP3POSdMG6JK1ymV1Cst0HiHTlfbCtPUQxtbblyZpgip3KFC+UAcyeBVzU6fEXifmGi20q4kWCeggutqkJF4mqtouGfOJFvJ76fCXoYlEiTie05Ssbgj+PfBDiNmEftFGm+j/83cN5TTH1MKWU6b8ulsv6pyht2AevXVfbbR8oE5QPEHahlfN6kxD3QYZKRPKteWw9Yf14zTJL19capA/bgL6uHkJZJAvzPtvBkydFphF6l+DrjOGbN//80x8bSugiHMNLf9y8eWuQzjr71Xk9QX7qVJ/t1/39gemvdn1ta88s+OjHQBYcO/bbb/DVk7zpVTW33on67GZrD+PgiZbUKu8LaMeyN5nzLOdlVrxGOV7wKUhtHTzhYfTYqqE87t7cn8E9H0RvXnnOSrlJ1SvBngUKTuuBQLvhvoy98NVLG7XqdHDU68z5lvMph70KU1soz+qBixa3oG92OzaY8SMJIJanCYEmoH2mThx1mr+7NB+lIL9QnOdfnKB+pgno3XtTeTE7Qy80qrFo4a1kpOxwFHbnCJI8JRvYf7zz7zWuzrkBf9tLzQn8SDN+0609ELQ7gYOk+m3gfxJzFqvnTk+nzs2WcD7xfTeAmjv2ukg5HOhhwSnaWVcOFSD/6G1RhLZL/v2HEsvCuTYhsZXRcYQRa3a7ZTubtSIUe+T1R32qlao1VwPIctTW7Ug93VqWvFBAiI8aLbyedzXR9hdAQDBrsoLb4dzJXsHudO5oy8QOM/7I7+xcjcg6a2u3iuFEZ6c6gjVsOjP5oramJiOtujosxPjt02Xfv7eQc+rBKPRCdTpltHfq8LjtqeB+n3Lod5jctGjTJHdp6ruC6/EsBbZGbJ/CXBfefLzUt7HS99Ykd6SkM6Tz0FZhnveFo7N2orO8Luaj/R19Nxpz7MfgvSLCNJVqcWlnx5TDkMPU4wMHImV9fTed+pwmPTHp6qeZywtzuNHRrfakKG3OmOM2tGAgKpqONHXvdLMXY9zx+b3Rrf2bhSmAX7RIzqmN+ZJaiUizucn+SuZVZGG3lZc7TkHdXTjiSCw4+oSZKkOoyTCVR59eGccY7maLP+DMDGa4D4vNxsdVjTCMXUvqVOMO1I38ccMkwUCYNLxe5SeU8tZunr4D8N8TM3z3JlulWDyDMy1S4C3z7qCBoXfQM9h45vdSP06b3jto+qpdfWAsziFok7Up+cn5x1zp6aIKQMgFWbCB4ccwkFsAXLT7s8uc4/+3oZ7kyIiPRUjqV0vCYXVgA2bwZfm3czIwCDvmMYYNCjSb9Jgyk66PKY9J7bJK9QwICpeSKY0SbYL/uE2jTTNq5G9X8Pn9CisTlchq1EqkMrESs0My7O5TzLJv4bHsYcWX07anQxlmd2b2vD5ALbS+urOavRNbbXrVWqg2scxwvrHPYh8aCi/czPBlZXgzJKW0NAVh/PW8MDLEKJtlu0rsZAsXyriOe3zpSmNI/tKERAYqeXGx7bfpGRr2k1j8Cbv6ZZZ2xePk5K3OIuddOx2LD3y7ucjjCtp5fxAO1tYZDNF+RM/ov3QHwpL2jh+scPhFjBdMoEetb3aRTNXy4DQkNoCjfMd7a6GMDkwzsJf4n8TtZJ/EprtXtExfLTibAi3sny0pHv1r9EQz9WXnJkF0bxbNdasQbSKPhWMmbNfOubzUAiyWXl6qvGK3poNzi9Oxxi6Kj1qlu6Vb5UAO1M4J+AEN6B8CJCmQvOwGXUDf5ZwtS6At9DUddPteuXYQdotLnPNwOP+fbtre4nJvWR++5Y/HLRlMpfKsebQ3NNBR7RcIh9wXZbiNQajOtqen3LVKjO559LAHLeLDh35Lz8NH5YmrXJ17eqZcxlx82nejlvX0LEPVoBpBTQBIDQBsBVBPuvCYeKVXFnIvJ67MrMWNWXzOMc9RUibuN99kD0EKcxvnQ918b9Qx9MePmOOYY0KOAcAB6GPo4066JoO7c/Nn8rI/3Z2TUq77Kvvq473ptw6jQ3HWLjxPoqRms+1R5EIxUQlB0VR/4OU9yxtsOiD2FKnpVW+kYTn/WC32zLYgikR+52h2FCHMLhSyGYsi54SKRjK4882qAxfsP+IY7NHlyPAv9MfWRRbmCKJKTNZo6DsMQuTPjSMr/WLSU2TxqVnc6AcSUanGTyRKX2eBNUrDmu/nzCOpOEnzXZMhHl9tnkJBtg7QvRNt1f5pc3obkq/g+Af9BDXc+Hj/W1b1EiJzl3+DWzz4b/e/PYzziN27h5fIcebFyCEKb1IAXimeLQqP5445W9hbG1buWNnY0ajTLCpMiwMueu5Z9JcvVqiz0A9ghEvoirPRlHyKZJ4kyOKxEGLme3GOIlQlMRPmHHn7g5WVSbIOc+SIb0fJJpZWe1f8OvxOHGpWa/vPBiLp7/anZbxBZgy3gZyJpEhQUSjmDZdX/lFYDUr4RwtBhcSjKhlc1kV/k7IYpAF83ElW7+8NrYeKvB1kwB5pVZVsbwbUVl5dEE4ptx2ZDzulk0kpEc9sq1zbXx7djmJXc3wqFvqnAiCumP1RAVaHl/mIGCrcLkrjOlwjGwP/FZXE4qtYraabF7AXY7F4AkZgtqSiIWFz6gkh08QMbbW9vMA+8CseJSF3b2RGGG7j7QMCHFxZIGrcw26qgiY5i/n61QXyua/uoL5S517Nr18VF7+dPN3VSl3RuNK0rGnjEzqX8Oe53xMS0tK/rc1e3dc68qpplbAUVoxzD9jS0Trh8Pf4xNSM8fnrc5RaZVZm+NZj/4TOJ/x5/mP87IRrstb0tYzff5UXL4dxS6m58/C3+MS0jBGBLcMBNnnMdWVlYeu4MePL6ccS/dVZNrHvQ1znZrHqsDF2y+8co/snZqljbULeZ3k/djF39uMuH0cvv9RzmG/fauI7l9DvEM+2Z1Se5shmElZARrsqGBgFWYFhKFzRZAGWtHlAs+BEwJ3BPcfwpjtRZBk6Upn5oZ1rKZlomRMBvdMUd3zP4MUAWDu3Gpvm9nOm+/eSM3Ymdslu04ZE3hrWtuaCbjrFjW5Cv1byPSz2ZzdsWrX7tSAS6l8MoxhT0bq1CqVH9e0FW1HMwPyLIgVdgyfr2lvCtEkrFoHMmrHAe3cAVOwXpqqNMkMYVje9fCOcwT7chaSzRGHJweXE3UpiDCZ2fXkZpZywO4Vuk+vK06PG9Q5jMPFyXunEaSUnIpKhvg5zTp9eOwfczZetskvdfe/opTSPizAxGjVvDoT16GNC1w3pfynO99igcUrLbSv2bJR4ppZsHCj2rk+aN7c+5iRtMbz2d7pWC92mcOXMv2ldo/8VXAXhHoeYzaK96a7ezGH0//9jhgkS+n6M+GL54zJS1JOJSSb5ZT0Wzq32ujYUVOWGIP4JWALBJT/n/hdTRLRrSakaXANmI/mvfXfWp2z/vCbP5ZXpCoMduFrI6t12nn/67OVukn93+7VUS6Gcmf5oPQ6SiYUpgdrKOSm4FEJBSlDwLoJ8GEwT7ftLrIW8qBi7qjV20GGy8e+GfFYvRCOJIbmbHOMnw5bJk2B4Zk1ITI/GhTMvyL87uzrACwyEpOC/J+ouijDJLKqImhP5o0/6X3ECj9k0co1JLGfKIvmJqWBH/o4AbuAqNZ/wxiixUrNF43W9T3yrlh6dhw9wQi3fxzAUHg84nj/3w9no0NdjusNJh0sur34x8rsR9fOPFplvvKJRzm8X27gEb4zJTDGrZ+YgMmbt8r/AOxn37frtH+ft/c78Lfm0zZnk3+z9cbxmM5p8hgHQVt9x1k3o3rm/8/ni/iXSY02QS5rKPyUt1ffcNEbo4uh6Vc0LvJhlXnQSOXVo4VyK0H8yYhFjkaPEoq99wFvjo7HQaNj/n2zwdtX+dtAngxsDsViCTu4cy2JkpDkTAVDFVRZVPmy/mzMUFtJj7mymzzroUYhNMI2OaXsaWJ6zhkFphnDeVtPKkU27st9vk9roznaqG5KAFVTgLuZJla0CH/fE9DtKFCJJyv2Wz2GhnDNlF14scRGZJf26foD+ejASyWIYsVCDUVa3N2mot8g2g8z0RzTHRZbxvtit/buaoGsoHxyoBvcoT3FNgoqgxuQ5oFEqgR2DK7QQwkVk1l7kbHZPh7Dts5J92hG4DaletAjLCKuPlh/bQ6hGS0LpEpjKy3uzWfuYqiWJzmbSn7zjvRGloUSDqGBFOiOym5yMFGuReI62TaYgPuEwUpDi+UgUElmclYIkIIuzUJE4d4n6BPEm6yaR+o31bTVxijW1bp0PrA/Q78L4ZJ53YnkN0oKc3oauBLGk5CE3tyzk3kIbxnQbH1XS1RaUyVA6qZyuON29o2CneNmJ6vsw6AW7VuoGhTp1rUQtQOV1NelROsKqNB9zhcnc7JJsKp/DG2Ekc1J2UwQcvwEu3U5A/JefyC/uk6JiHEGReLd/b+Na3XxcVxY6I9eRzdZiqkyYtvWRx22Ph+BOsCk+0Wdsz0T+gCCxO1fzpMf9fpRUmjoqIXeAx4N9x8D/LqYCzhfMSR/eEHQpIjDReto+Oa50CZVjvllutzIanQlrvbwznVeif0tB8VE1lTVv+W9TrvI3Y9gCGjeB/yjxiPXtRl3ppZztdvc0UvWqehGvXbYnbqDsWsT/rPLGcfSRBbSGP0vthjwjndpgoeKEHQrZ4WGNytiMVh/Do9kp3wVx1uYxJgkl+yz2RqbdS0LKETnhgO0d1Pk0duq7kNCMRBGXVL471vHEeyvZie0nmNdbljTUkkS/aSvEljHlMW0VEq/YeXNKzN/8CgtGea6cJRxKqvQw5s1f6DMEOeEwRnzGKcYB8ahXzI2JygFlQd4r3feVFzCME3/u1+12KkTVdGRQiSDyLP35+B3MxzOHHm6wrz+MWp/jjUpGV6uQRtREV8LDt/zCcxAz4EXz8sZ4A/lj0uuF9YKcFyFLqCn3pf5czCn+2fIK9FzxMf4lXCnhlFyxBAxIxVkmL3XBzCvOywvnRbk/JsQTRE8cIib05hcolLrNNqSJ/iPF5exOqzATrTHFl/Jlp3ml4vX24rjKL8p3s2wSsaC9RHNj6rkphTXzSPzW0fSuYy5vndh+0QF7WWmD09Bm6c7uHHLcfyrR17R87OHIboZi+qcd3RgBYWgwLqoH9ysxMVdKkWZI/drZOzRSvsLeJLoofj0vVSyxDDicTY41i6suKU+KceQuNP3B93lmLOUf9q9cEY6K02OLcQU4kou95L7SQkGp5SazeaVm0cmx+6eVShrN2Wk+0lbVp7K52y0IXLgDgSP/xMWdh8Utu0tZ95fws5J8F1NH4+IeV/3jZLqBjpFqUqUgIP+ChZHSN5g6/VPlUBnxD4L8E0HvW6hktaBGPfjxotAkzol4qqYcEkdQVTx9X1LQ5NlW4F611C0HVeK4IDUhqT/SSuMaYzfWj9peokiCdt9fEAGiMQ0MfvBHgfeOwKBqc79xcoEi6QJa+T0ZZZWYuNpCjIq2ER7sl9loeKOVicmTjn0OtxKTpPOdIIyVd3yVLoqjTSxjZnLPLH/uQmonEusZXdS4zE1um6yfuGXEMLysSVKKOlQbmh+qIlpL2bafHT7bOpK03IdE1DPmvcfyiYiJSx2yyiTmjQfVhCputOXr+fx+O+eDplNJB50/DR6UKnH1NzMxvjoGI0Lo95DLvXpVhhhL9hP+Y4X203bb2jT8svBJQZYZjpkp7jnsMDlC13ZvLYatC4sXLpO03XROXFx7u+5EJG4oZHQ8qzda0NP1goZqDSsK7dL58gDmeGkn2aQ0ZXcCFx01ggHAjFAE8NOEPMH+2Cbq1GX5NuAznCAqM39u6kz/1k/ps3MILc4dJrTE1PvPsyNv/hieryOZwvbqQo+NobsIGvSxqDA6sEmrbQqU13K3jlVzTTqcWwg52fqzOzhdGbCk9QS0z9HUbFPHhP/xARIsYUa054IPTQg7XGhFjd30dSaG/W6iO5UTXuicxFlDgsdKdifquW7IVoG9v2r40vufRmffEtyXnCtZN+5x5zbjvOSl/y1NCS9vOt3s6/tEDFRo0qlPwp+JIYB4ttI1ML0l0OBf70/IycvLIax0hsDN08ia2l8QI2pLo7ZgnNz+s7zc0hqvNr3uxycYkZyZ/086KT1jPCPAsnBsc1V41UMSGOvUSEUF0obUFeVqFEFiYVahLqjgaCn5Bf4FasbRgrIOicrSRCLqRlY2Is9hKGmO8xmBSAbI6I7ZNCVj02P4OD39EUiR/GA/m7krOO0HqEGipmikRq6wz2732hjUFOpX4+VUGo45CNNNH57GHBQRhc7os1BugCHw+O77O+iKwhFNoX3Y20KrkF3o8ePoVQDZuQsttiArJN7cZUBUaefR4t4QXB7qXUHmawmYnbN3vrgK3cHshJEPY3r3nxQULZLS4j2WgfT7O6zX3afjpjynHpsF/M1bZ73jvm00GYy4fejJSfQ+AoV+mrgAkq4x8nVn39X70uW1KhoZsA62qDDwkNE85Ecuwrve2P7AhALGmBy8sbV35IZtIDLSYjG745HZMc7suG922mIVA24nft9x3Vw5s/508FXuEuYxxlL21ad9OiwTx8TqBO+nInvORe59XKWas2G/HF+tUGjdtZWTaPUzvORsXtIMu3zA2Cy6SYXBvoueUnYlZ/rocBOof7z6CU7DT6+eNd+nb9PRLdQWdN02+v0ttGEv3QqvsqFmDZi3+DtmFqqpf4sZYl6/WCKV/3RZQCU3m4O5fiyi6xDEMb1wFYInDteERveq8uEo+t17zBH00ffvj2JakTtbvJbhkhtznLJ2ZGX99v/a/69lr7MPrz28Q8k1qarfPn4YOefHEf7k5qPEwHFsIwSVt7fba0LIZLlVHWKvaRcaMS/RRuGM0Ih+iTFaheIJMwT8S7zuqmslRe5wVYevCz25C5880n7SV5W07k4SuaO7u4NM6oSw3CWi+FitW0giSF3+e/jwv6wuEUK0bvGx7vkhgal24J+QnhwnW5qSvGupydJdyUt1cbL0ZP8EsEsNDBlDVcWamfciKWWlSqR7fsiuXd7TrUROD0Ekxbw31kyzBkFo9vTXyJFpGpNGY6nMs/vxeJ3pfHAanQaXFGCoaXq8swdwmo6OHh8NrgByfaQ4CGURLCy+G9rllLgl5Lrd8W79+Yc/LuR96Y5plJP9tu4+u+vGb3uxR7ORPe3goJbUmtaa2pLWAsZPz8bUY6ney6h+dCk0KPRSvsgF4UQRES26IdZyD4+WSBhrR8VQo6no+jELWiJrY5xlA1vNJFlEIi6+S+/GBEbfTW9jEclB1CYNcZYbedREi1FsZGwkqn3M4mDB2xNr2WCiRoicq2RRq5sMmTcPZAQ5S4ZEinIhVHR7W++7Kg+x84FUUEP9AquEn1Ovxttqfa4a0YBMWLu8aWNYWj2MNQQWeabf80wLLB6rr0fS2oNyHoj3wgIvCJnw/mymdoL8Ue+jiVtws8PO23cvXXgjWlTb7Z16z6cNhNj6y+RaUc98wuwquLvaa/mkcik6grJGvdasyfeOqUXk/Iq/6mUb0r02YmKLsmIhBoqzMLGuyltSC557nocNXdIVWqiB/7VQtCAsKHExXpHjlFuusq9XQ0sDujHB6meBko5E4/xEtp8uuhtl0YSSHq9MP/tlRXEacjxXLHdcs8MqyiVHxoeFdXYpKZ8+iWDH3xq+2f9RPNFb3SSjgme11rvbUgs89qTvj+I71IAY3Xv74x6rsscJlJVRlytLWadS57cnlFmH5MLRFGFiyx3L6PpE4KL9z33c91mObOp50uT9h5CQkIPzTeD+tbT6Z39F5iVZY0chO6sc4mP/vUkVB47IXWQ2dTYdUn5bIFV4kxAL8dnlhWzmHKsyXEhbs/f+J8hmzLkvX+DEAu68fzxXRmQ1MfBjNyffTGW8sYJiW4l4FY2LW8/zElZzZEtiY7odlkn4xThUJNoy8esuaVqTnTCkyETdpE1G5biVcPCmt8vtKdEvatuOccZdj2Gu+y5O8I10cpi7AxdAqL2Y2ZJ3Cls/OZTL39dX1b+vMuTgm2z/TSbLCwJ50LtKn8p3YrcAt2hnU/arYMtgxwwwtvxky7Mbcv1cUvQX7HWFhYIW4W8hE1Z5W0GblbWJVc6467ijBvUsO+EzLuxb2CHRx5EvCIpvQJ8/i9nAPEXyHrhue32E6L0VxWw4f3bD+5en3hFqUMUbNhSHD9UB4gjLTr2fSztZw0d38oSPoNuqetU2d61O9gBNB8Hl7V5er+jytqK8PE1anVt8PD3RL+IkT69vCt3BPw1OD3MrMFmYkLjQpMAtLB2PxGu180d9WlHoVUePNaNWoY4di7LYnVwILhvi8wc/HXROmjJ1PmjXfxD10tOY3KsWP7SY0WsUbkmL9R/8A/0h2PfUhquzT0Pjj02zY/lstDjEJAQlYfPx7aPauF9o4Xeuzm4w/+j1EWrlWSRn3vh8osZJQTkB05dsZq+eyvju9d18w+xVr713w2ix7NeBga/TghYO6UFmthGCP/ZrZYo/JfUqjHfVHY87oVVrhiCobZc5zd3VJvr/K/ap8rL1sK0K8RGjnaD7yu97vz0Z0mJvetzEahczauOR4G+BqAdOTg/0lfwaCp853E42rgtz76xQeAwxTbz5whTbRTkeZ7EPtWF2477/vlD23VuKicMXoI+j0VF4TMxF/T4IZ9afhbNomP7bg8dn6ExlmP7wwa0Mi+GPP2BO73tt81NXC/HC3PPHbRurJEh6OohBorIEEa0SEMtPhC+3q1FoTG20EMyKZzx2HHOaojM+OA07PWYwbjkN/R1oh3xQzPy2/ODtt8hEmz+OruHH8xJ4ECt1LJpJ6FWvA2PZKE1dnQYhSAWlYW/AA3zZHzvWPmj0JeL94qQORdcQaxGiMdRla+edOxBAYVTjvSj3UwOGgVPuUfe+7Cvlfs/S0/+pZZ/lU39Py3vu0Z+zL6Owp4kG4mlsVJ/SjdXM6GM0s+7B92WTLKPGb5Wzmqqf0xC9Re/3Y9yvbLPAOOHuxtY7NLPdwI3d7KBnu7mf2NKtgJNdJpt2ocZ3yO2XtN6lspol8LUaPnWlgL7ku7of0bPc3c6AgcUxABCW3tFV5ecnEnHReNv1dkHjT75X2D/K0rrvLozKtV7puDC9IpwcPndKvVFQcGMZP1xZOczr5EkQAEaZRySO24m+CoS7KRsM907a5Arj//QjgVY/c+/Z0cnVvVfEv+/T+gHWqICaSJ+DPj7gyxJ8wSfHNycEZgieA3AJAW7WzPtMH73QQlZptKR9FT01ZKVB/fVC2zW6RtiHacL0ubHF0cNgrBOSPj+weYYVPpo8jz9MH7s+mG52ApnnARmQqL7V9u363GFSWF8JjqO2iakvn2XJpo6/OC9u8wLOHqqwUJgvwe3bj+dWT3bU9NXVDf4kxxQK7D8yFEr2V6PU1EVu22wjd8luQBY2dRQylIpQKB9mT7frBaPJC4qce68uMJUrDjpoCMnQ6zPCh3QEcMMSVbZ2z2JmegZdRSd6AokHM9IfwOMo39N1b9S/nYKs2zPju89ZYHx7ft0lmutw5GbvDMw8bYBuodmqJ4PABt2oxKXCtcq1wkUyWrPCLqctrJhHLNq4Egnq9M5uE6Ni7AFiFfEAVtINp3xVZ5G24f6JRo/t+9Bp9Y5UnvKJdLvn4jkQI2w8d2Yi2Pr6L375jyP8SG2uwqX7dLsEBQwpA+Vpwx97tgxwfZLBftBWa/v3SEb0cqXcLniHR3qGUc1ooUmjJZl19uYmzDEtQQ7H8z7r9ZIzRraeEzZCjIF793W5q+un/cM6q4ZULPjaYywnmIrNNootdqn4eIGFkq9KcM1gBkvJ86+XZBe8yRvEv3zfjQrGZa/cGVNKXyq6qvwTLIvzJm+pcL3nE31oaDGIC7tYEDsu4RHLzhMQq/KDM7FiHzYxaJg30SsnSEC8WIuCwfXKR4r8p2Bey34ePPyKUxK3xkS4ZQM9euglU++qeV8r4WhrI/w8KgOzIt7Vg1B72dy6reYj791HnLd3pReq8K/9RK3+6tLExpvhNQqGUBOCaDbNJWK1ssOAtcf6WxgxbzdfVwgz/KQfJqaLDgFCGEhZ9B2HkiCHaYTnfcSnOnEXO7nnux6QcTFmUKhOsBeMMMrEHUB2oUfLweSY2+bw6W7d6JcFLzNOCKLJIcKGAKxT11XXRUo2ZBrhVP8Xvy/2nWnKrGM/VxZU2KRtueyicj148v4iZihNto/asLrK4jXsU9AAsUYli9bBeQ02XNW5c6nLpjonZUgC0SaqCeqrDNwh3O/AiA86q6pbFvyJJfrgR/sjPfoj6tNOCIDwotuu43QbknDIJIuuZdEClyL0utyFDkJ2NGUpkuYY7n1zhjWWALXNDZcWCFfuNu394Ybq9HJiF3v5LpJ3CfsAeK2yH5OqP2ZtTpCbbPBawqO+LHrfQpuZcrIrZiW9HLOmVnbs9LKPLgfwfATRbpKsjrxlLscI9cA5mT4XsXbbNmIUCC/7S5XOCnF9aTxLbgNmmgwXi+46XeIFwneoQ4HneQkg/AXb9S/34BPjdvWpniv18JNYcbSuHq3GpHlgSVdTcWbEBZFwoHsI4MwJFyeH0S4fqHN1i1Y5CWQED12uM+zQpKYkgesRjN43yn8XdRZIbEqjXJoO3yi29VH+w82+qWM+10ZPFOw+zTaMuuHQEKjvJGCLcgO3rtt36IOo9EA+iBGVIdyVuN/3mTJCpElLQn6GcDuJqbUeNH3sotE10VX8GjSlbw5002NlH9+Nd99EgXCztKZCyVCfZiR9mc/rk3EUK2J2qlOWGIaIB3Z5HmqI7q3EJWv1c8weYl6uuIcero51aO+1YULa0y8cDyB1Iv8HMP8KVQ426jI9/H9FxgDgZ9mQTyL0zSgAikCBzOG/e7lWSAXIvs3ifP0HzLVt55EnTOEX5YAi6YAsWSXF/jsmF+UduCCJnKH6H7tkEywlAX6Aq/8Li04KFFuMA/99zqxyfuuTQsXMGgmCRE/bUng2bQGBgyeb4dFWCJl/WwGCiLZi3PV7+uLY5kNDMiKAhlaP2hAM59pQaM63oTG88WBm/NqGZeZrGw5jQGgjUSfsMsmcBmSpRiIgR5jmY1K2Ktbtz6slf2PZMvVwOz/iP/rQudPVy2dz4TsqOobNuC83d5mkW5neRpuGnG1q3b7Aforu7eXsrVXVcGIrT8+SDnKEaT7YKZWtylX7c+Sr/xvLlqknrPTmlP/Rh9776Xq6ZPC8czXTSm0xjvtyc6LJJFPFSiC80ULI2aamLvQF9lMsoLWX82IsycqdzAvlKYEDtL5znE/eUCIKE5phud+ejv6ov+3Hjz+ACJOvXshvD9pepdLGOh+EUZykWV6UVd20XT+M07ys236c1/283y8SS6Qfn8PP9qXoXyomxf1yJqtERVJyyp/uSlGnpqX/Opj4efOzPiP6IsrJXZCXry0oXLioqLikdLGurLxiydJKfVX1spra5SvqJM6BIDAECoMjkCg0BovDE4gkMoX61yw0BvM3VzeGw+XxBUKRWCKVyRVKlVqj1ekNRpPZYj3xq7EOp8vt8fr8gcGh4ZHRsfGJyanpmdm5+YXFpeWV1b9T2cHGJmRIxhvzsNsO1Hmbadly28lnJTQoR/35Ruv6mEAV9CCT2PEw6wFlmi1OIQiWMiOFwpzNbrEBkGXLsUDozRK7GFs7mK5OFbVUlt8lrkH2VPoyY3xOxaesD901JpJzxFypC3+wJsTqg7Vnxltkbtd1m3xZpiP4RssL65kkeNGchzro5kpvPys4n9OvwuYTR1xeT/76QjLRqPLWCvFnEgn2oRmrU5Oid1K8Uw3CKXhWWTLe+V0U3VWq1g1LTUxDo1Zw4MwF9d39BHULJrA3ib3WyAO6sFyy2TbfGhIicHoD0aY+wbTIla+44Xq4I164UR3Xdi1KrfgGPqy5ikvLG8KY9W7OHtv+3KksI/PTmqm9X92v+dYghckHZKyaNqrjrVpRWlEOSVR1tF3J9sFk92hN1gyl+Eg5XgV0NKB3k0z5jsZVIPuVxJ9aDm+XtIWOEmLz6DukfjBQ18vz7GUcgCwjx/WLxqp9rIxOs/GreWknFHjEBhThjKMBlvW21ZwIR5lzh4xBWWBbhp/Iuca2O7gjAUNCv/QUjAK3T06vNyojVsWUkQKI6/gkCkmCvUW3a72NlA4vJh+QC27exO0W0cCMRHfPNBM0oJJpm9J1Ysi5lkg7IH/bynYk6oeDaB/HDbMD8kYxw6QWIoWQqj9c7SsMcf2uMSn/Y3mTqEUzese3zgHt+uHFBH0wiRtaKudYe1Ohjspav30/ZySkt+Z0kjigQMqGdfSJMKEBeoPlTrZYxySKd23ZcSehRKvjOIY/DWD3eJ0phaYfR6JKaMHO43+sMpMT1gcTXlmGavi92I5Uq7srZmGMXmle13RkDGM9CTvSk68sA5Y6OfET+LbMLLSM76lWlDvPUN/TbUf6JtqcYdH9vXo8YooNy69iyLAKb+3KMrt2NGupykeHMt84UGuitZ8xOEJC22pJXmHZphH5OLapnkk6doZEa1qX01qGEUHwMVxmlDTWOYZzgyQT4i5HbvyIZhLwEMvAXKs11mrOVII/ft2AQpglXNvwTCsl3WqO5gjVQgFn2yxTVrqgd5A+hvN2SW9OqSMzhBPTjgJDBEg1LOMI/SFjbSDpG4J7RNINRWPQsYyTaRPrXozXjP8UhtpxqD8MR+Ed7/G2aN3a8HgV8+drIkbJgCzzpMesC2XE2hU6XCHn0cMMajZaX1qGO35AwvnJGclZMxa6yrbb/OrZ1u9WKNGvjtTRDgcac/STjjCWfU+DdyjbtRvQR5j2oyuGMf+3DXr/Z3QPDDMNP8cGdHpWWbp4ZggKx6PMUHTxJrHj2ZduRXefvkLH8yiqFl5nnZ/haQd1PPczx1V/bG7pDw==
')
format
(
'woff2'
);
}
}
/* #endif */
/* #endif */
/* 支付宝,百度,头条小程序目前读取大的本地字体文件,导致无法显示图标,故用在线加载的方式-2020-05-12 */
/* 支付宝,百度,头条,QQ小程序,以及H5在部分浏览器目前读取大的本地字体文件,导致无法显示图标,故用在线加载的方式-2020-06-24 */
/* #ifdef MP-ALIPAY || MP-BAIDU || MP-TOUTIAO */
/* #ifdef MP-ALIPAY || MP-BAIDU || MP-TOUTIAO || H5 || MP-QQ */
@font-face
{
@font-face
{
font-family
:
"uicon-iconfont"
;
font-family
:
"uicon-iconfont"
;
src
:
url('//at.alicdn.com/t/font_1529455_
jv0ekafolib.eot
')
;
src
:
url('//at.alicdn.com/t/font_1529455_
a1l807px8qd
')
;
src
:
url('//at.alicdn.com/t/font_1529455_
jv0ekafolib
.eot?#iefix')
format
(
'embedded-opentype'
),
src
:
url('//at.alicdn.com/t/font_1529455_
a1l807px8qd
.eot?#iefix')
format
(
'embedded-opentype'
),
url('
//at.alicdn.com/t/font_1529455_jv0ekafolib.woff2
')
format
(
'woff2'
),
url('
data:application/x-font-woff2;charset=utf-8;base64,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
')
format
(
'woff2'
),
url('//at.alicdn.com/t/font_1529455_
jv0ekafolib
.woff')
format
(
'woff'
),
url('//at.alicdn.com/t/font_1529455_
a1l807px8qd
.woff')
format
(
'woff'
),
url('//at.alicdn.com/t/font_1529455_
jv0ekafolib.ttf
')
format
(
'truetype'
),
url('//at.alicdn.com/t/font_1529455_
a1l807px8qd
')
format
(
'truetype'
),
url('//at.alicdn.com/t/font_1529455_
jv0ekafolib.svg#iconfont')
format
(
'svg'
);
url('//at.alicdn.com/t/font_1529455_
a1l807px8qd#iconfont')
format
(
'svg'
)
}
}
/* #endif */
/* #endif */
.u-iconfont
::before
{
display
:
inline-block
;
}
.u-iconfont
{
.u-iconfont
{
position
:
relative
;
position
:
relative
;
display
:
inline-block
;
display
:
flex
;
font
:
normal
normal
normal
14px
/
1
"uicon-iconfont"
;
font
:
normal
normal
normal
14px
/
1
"uicon-iconfont"
;
font-size
:
inherit
;
font-size
:
inherit
;
text-rendering
:
auto
;
text-rendering
:
auto
;
...
@@ -38,104 +33,121 @@
...
@@ -38,104 +33,121 @@
-moz-osx-font-smoothing
:
grayscale
;
-moz-osx-font-smoothing
:
grayscale
;
}
}
.u-iconfont
::before
{
display
:
flex
;
align-items
:
center
;
}
.uicon-column-line
:before
{
.uicon-column-line
:before
{
content
:
"\e68e"
;
content
:
"\e68e"
;
}
}
.uicon-
empty-page
:before
{
.uicon-
level
:before
{
content
:
"\e6
27"
;
content
:
"\e6
93"
;
}
}
.uicon-
empty-data
:before
{
.uicon-
woman
:before
{
content
:
"\e6
2f"
;
content
:
"\e6
9c"
;
}
}
.uicon-
empty-car
:before
{
.uicon-
man
:before
{
content
:
"\e6
02
"
;
content
:
"\e6
97
"
;
}
}
.uicon-
empty-order
:before
{
.uicon-
arrow-left-double
:before
{
content
:
"\e6
39
"
;
content
:
"\e6
8c
"
;
}
}
.uicon-
empty-address
:before
{
.uicon-
arrow-right-double
:before
{
content
:
"\e6
46
"
;
content
:
"\e6
8d
"
;
}
}
.uicon-
empty-message
:before
{
.uicon-
youjiantou
:before
{
content
:
"\e6
a9
"
;
content
:
"\e6
02
"
;
}
}
.uicon-
empty-search
:before
{
.uicon-
red-packet
:before
{
content
:
"\e6
64
"
;
content
:
"\e6
91
"
;
}
}
.uicon-
empty-favor
:before
{
.uicon-
red-packet-fill
:before
{
content
:
"\e6
7c
"
;
content
:
"\e6
90
"
;
}
}
.uicon-
empty-coupon
:before
{
.uicon-
order
:before
{
content
:
"\e68
2
"
;
content
:
"\e68
f
"
;
}
}
.uicon-
empty-history
:before
{
.uicon-
checkbox-mark
:before
{
content
:
"\e6
84
"
;
content
:
"\e6
a8
"
;
}
}
.uicon-
empty-permission
:before
{
.uicon-
arrow-up-fill
:before
{
content
:
"\e6
86
"
;
content
:
"\e6
b0
"
;
}
}
.uicon-empty-news
:before
{
.uicon-arrow-down-fill
:before
{
content
:
"\e687"
;
content
:
"\e600"
;
}
.uicon-zanwushouhuodizhisvg_huaban
:before
{
content
:
"\e6d5"
;
}
}
.uicon-empty-wifi
:before
{
.uicon-empty-wifi
:before
{
content
:
"\e6
88
"
;
content
:
"\e6
39
"
;
}
}
.uicon-empty-
list
:before
{
.uicon-empty-
history
:before
{
content
:
"\e68b"
;
content
:
"\e68b"
;
}
}
.uicon-
arrow-left-doubl
e
:before
{
.uicon-
empty-messag
e
:before
{
content
:
"\e68
c
"
;
content
:
"\e68
7
"
;
}
}
.uicon-
arrow-right-double
:before
{
.uicon-
empty-permission
:before
{
content
:
"\e68
d
"
;
content
:
"\e68
6
"
;
}
}
.uicon-
red-packet
:before
{
.uicon-
empty-search
:before
{
content
:
"\e6
91
"
;
content
:
"\e6
27
"
;
}
}
.uicon-
red-packet-fill
:before
{
.uicon-
empty-page
:before
{
content
:
"\e6
90
"
;
content
:
"\e6
2f
"
;
}
}
.uicon-
order
:before
{
.uicon-
empty-address
:before
{
content
:
"\e6
8f
"
;
content
:
"\e6
46
"
;
}
}
.uicon-
nav-back-arrow
:before
{
.uicon-
empty-favor
:before
{
content
:
"\e6
7f
"
;
content
:
"\e6
64
"
;
}
}
.uicon-
nav-back
:before
{
.uicon-
empty-coupon
:before
{
content
:
"\e6
83
"
;
content
:
"\e6
af
"
;
}
}
.uicon-
checkbox-mark
:before
{
.uicon-
empty-data
:before
{
content
:
"\e6
a8
"
;
content
:
"\e6
7c
"
;
}
}
.uicon-
arrow-up-fill
:before
{
.uicon-
mepty-order
:before
{
content
:
"\e
6b0
"
;
content
:
"\e
7c8
"
;
}
}
.uicon-arrow-down-fill
:before
{
.uicon-empty-car
:before
{
content
:
"\e600"
;
content
:
"\e682"
;
}
.uicon-empty-list
:before
{
content
:
"\e684"
;
}
.uicon-empty-news
:before
{
content
:
"\e6e8"
;
}
}
.uicon-backspace
:before
{
.uicon-backspace
:before
{
...
...
uview-ui/libs/config/config.js
View file @
bb453ec0
// 此版本发布于2020-07-2
3
// 此版本发布于2020-07-2
8
let
version
=
'
1.5.
5
'
;
let
version
=
'
1.5.
6
'
;
export
default
{
export
default
{
v
:
version
,
v
:
version
,
...
...
uview-ui/libs/request/index.js
View file @
bb453ec0
...
@@ -14,11 +14,11 @@ class Request {
...
@@ -14,11 +14,11 @@ class Request {
let
tmpConfig
=
{};
let
tmpConfig
=
{};
let
interceptorReuest
=
this
.
interceptor
.
request
(
options
);
let
interceptorReuest
=
this
.
interceptor
.
request
(
options
);
if
(
interceptorReuest
===
false
)
{
if
(
interceptorReuest
===
false
)
{
return
false
;
// 返回一个处于pending状态中的Promise,来取消原promise
return
new
Promise
(()
=>
{});
}
}
this
.
options
=
interceptorReuest
;
this
.
options
=
interceptorReuest
;
}
}
options
.
dataType
=
options
.
dataType
||
this
.
config
.
dataType
;
options
.
dataType
=
options
.
dataType
||
this
.
config
.
dataType
;
options
.
responseType
=
options
.
responseType
||
this
.
config
.
responseType
;
options
.
responseType
=
options
.
responseType
||
this
.
config
.
responseType
;
options
.
url
=
options
.
url
||
''
;
options
.
url
=
options
.
url
||
''
;
...
@@ -91,6 +91,10 @@ class Request {
...
@@ -91,6 +91,10 @@ class Request {
},
this
.
config
.
loadingTime
);
},
this
.
config
.
loadingTime
);
}
}
uni
.
request
(
options
);
uni
.
request
(
options
);
}).
catch
(
res
=>
{
// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
return
new
Promise
(()
=>
{});
})
})
}
}
...
...
uview-ui/package.json
View file @
bb453ec0
{
{
"name"
:
"uview-ui"
,
"name"
:
"uview-ui"
,
"version"
:
"1.5.
5
"
,
"version"
:
"1.5.
6
"
,
"description"
:
"uView UI,是uni-app生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水"
,
"description"
:
"uView UI,是uni-app生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水"
,
"main"
:
"index.js"
,
"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"
],
"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