Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ChenYFan_OHHH
uni-app
提交
7210b660
U
uni-app
项目概览
ChenYFan_OHHH
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7210b660
编写于
10月 24, 2019
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(v3): onPageScroll,onReachBottom
上级
a85a6788
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
422 addition
and
23480 deletion
+422
-23480
packages/uni-app-plus/dist/index.v3.js
packages/uni-app-plus/dist/index.v3.js
+161
-35
packages/uni-app-plus/dist/view.css
packages/uni-app-plus/dist/view.css
+1
-1353
packages/uni-app-plus/dist/view.umd.js
packages/uni-app-plus/dist/view.umd.js
+3
-21962
packages/uni-app-plus/dist/view.umd.min.js
packages/uni-app-plus/dist/view.umd.min.js
+2
-2
packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js
...i-plugin-uni/packages/webpack-uni-app-loader/view/main.js
+19
-12
packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js
.../webpack-uni-pages-loader/lib/platforms/app-plus/index.js
+3
-1
src/core/service/bridge/subscribe.js
src/core/service/bridge/subscribe.js
+6
-2
src/core/view/bridge/subscribe/index.js
src/core/view/bridge/subscribe/index.js
+5
-85
src/platforms/app-plus/service/constants.js
src/platforms/app-plus/service/constants.js
+2
-0
src/platforms/app-plus/service/framework/page.js
src/platforms/app-plus/service/framework/page.js
+0
-15
src/platforms/app-plus/service/framework/plugins/data.js
src/platforms/app-plus/service/framework/plugins/data.js
+0
-4
src/platforms/app-plus/service/framework/plugins/lifecycle.js
...platforms/app-plus/service/framework/plugins/lifecycle.js
+51
-0
src/platforms/app-plus/service/framework/plugins/vdom-sync.js
...platforms/app-plus/service/framework/plugins/vdom-sync.js
+0
-1
src/platforms/app-plus/service/framework/subscribe-handlers/index.js
...ms/app-plus/service/framework/subscribe-handlers/index.js
+16
-1
src/platforms/app-plus/service/framework/subscribe-handlers/on-webview-ready.js
.../service/framework/subscribe-handlers/on-webview-ready.js
+10
-4
src/platforms/app-plus/view/bridge/subscribe/index.js
src/platforms/app-plus/view/bridge/subscribe/index.js
+48
-0
src/platforms/app-plus/view/constants.js
src/platforms/app-plus/view/constants.js
+1
-0
src/platforms/app-plus/view/framework/plugins/data.js
src/platforms/app-plus/view/framework/plugins/data.js
+7
-2
src/platforms/app-plus/view/framework/plugins/vdom-sync.js
src/platforms/app-plus/view/framework/plugins/vdom-sync.js
+0
-1
src/platforms/h5/view/bridge/subscribe/index.js
src/platforms/h5/view/bridge/subscribe/index.js
+87
-0
未找到文件。
packages/uni-app-plus/dist/index.v3.js
浏览文件 @
7210b660
...
...
@@ -3588,6 +3588,8 @@ var serviceContext = (function () {
const
TITLEBAR_HEIGHT
=
44
;
const
ON_REACH_BOTTOM_DISTANCE
=
50
;
const
VIEW_WEBVIEW_PATH
=
'
_www/__uniappview.html
'
;
const
V_FOR
=
'
f
'
;
...
...
@@ -6358,18 +6360,6 @@ var serviceContext = (function () {
},
delay
);
}
const
PAGE_CREATE
=
2
;
const
MOUNTED_DATA
=
4
;
const
UPDATED_DATA
=
6
;
const
PAGE_CREATED
=
10
;
const
UI_EVENT
=
20
;
const
VD_SYNC
=
'
vdSync
'
;
const
WEBVIEW_READY
=
'
webviewReady
'
;
const
VD_SYNC_CALLBACK
=
'
vdSyncCallback
'
;
const
pageFactory
=
Object
.
create
(
null
);
function
definePage
(
name
,
createPageVueComponent
)
{
...
...
@@ -6488,16 +6478,6 @@ var serviceContext = (function () {
{
if
(
!
webview
.
nvue
)
{
const
pageId
=
webview
.
id
;
// 通知页面已开始创建
UniServiceJSBridge
.
publishHandler
(
VD_SYNC
,
{
data
:
[
[
PAGE_CREATE
,
[
pageId
,
route
]]
],
options
:
{
timestamp
:
Date
.
now
()
}
},
[
pageId
]);
try
{
createPage
(
route
,
pageId
,
query
,
pageInstance
).
$mount
();
}
catch
(
e
)
{
...
...
@@ -8728,6 +8708,101 @@ var serviceContext = (function () {
on
(
'
onWebInvokeAppService
'
,
onWebInvokeAppService
);
}
const
callbacks$a
=
{};
function
createCallbacks
(
namespace
)
{
let
scopedCallbacks
=
callbacks$a
[
namespace
];
if
(
!
scopedCallbacks
)
{
scopedCallbacks
=
{
id
:
1
,
callbacks
:
Object
.
create
(
null
)
};
callbacks$a
[
namespace
]
=
scopedCallbacks
;
}
return
{
get
(
id
)
{
return
scopedCallbacks
.
callbacks
[
id
]
},
pop
(
id
)
{
const
callback
=
scopedCallbacks
.
callbacks
[
id
];
if
(
callback
)
{
delete
scopedCallbacks
.
callbacks
[
id
];
}
return
callback
},
push
(
callback
)
{
const
id
=
scopedCallbacks
.
id
++
;
scopedCallbacks
.
callbacks
[
id
]
=
callback
;
return
id
}
}
}
function
initSubscribe
(
subscribe
,
{
getApp
,
getCurrentPages
})
{
function
createPageEvent
(
eventType
)
{
return
function
(
args
,
pageId
)
{
pageId
=
parseInt
(
pageId
);
const
pages
=
getCurrentPages
();
const
page
=
pages
.
find
(
page
=>
page
.
$page
.
id
===
pageId
);
if
(
page
)
{
callPageHook
(
page
,
eventType
,
args
);
}
else
{
console
.
error
(
`Not Found:Page[
${
pageId
}
]`
);
}
}
}
const
requestComponentInfoCallbacks
=
createCallbacks
(
'
requestComponentInfo
'
);
function
onRequestComponentInfo
({
reqId
,
res
})
{
const
callback
=
requestComponentInfoCallbacks
.
pop
(
reqId
);
if
(
callback
)
{
callback
(
res
);
}
}
const
requestComponentObserverCallbacks
=
createCallbacks
(
'
requestComponentObserver
'
);
function
onRequestComponentObserver
({
reqId
,
reqEnd
,
res
})
{
const
callback
=
requestComponentObserverCallbacks
.
get
(
reqId
);
if
(
callback
)
{
if
(
reqEnd
)
{
requestComponentObserverCallbacks
.
pop
(
reqId
);
return
}
callback
(
res
);
}
}
subscribe
(
'
onPageScroll
'
,
createPageEvent
(
'
onPageScroll
'
));
subscribe
(
'
onReachBottom
'
,
createPageEvent
(
'
onReachBottom
'
));
subscribe
(
'
onRequestComponentInfo
'
,
onRequestComponentInfo
);
subscribe
(
'
onRequestComponentObserver
'
,
onRequestComponentObserver
);
}
const
PAGE_CREATE
=
2
;
const
MOUNTED_DATA
=
4
;
const
UPDATED_DATA
=
6
;
const
PAGE_CREATED
=
10
;
const
UI_EVENT
=
20
;
const
VD_SYNC
=
'
vdSync
'
;
const
WEBVIEW_READY
=
'
webviewReady
'
;
const
VD_SYNC_CALLBACK
=
'
vdSyncCallback
'
;
function
perf
(
type
,
startTime
)
{
/* eslint-disable no-undef */
startTime
=
startTime
||
__UniServiceStartTime__
;
...
...
@@ -8735,12 +8810,18 @@ var serviceContext = (function () {
console
.
log
(
`[PERF][
${
endTime
}
]
${
type
}
耗时[
${
Date
.
now
()
-
startTime
}
]`
);
}
function
onWebviewReady
(
data
,
pageId
)
{
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
console
.
log
(
'
[uni-app] onWebviewReady.preloadWebview
'
+
(
preloadWebview
&&
preloadWebview
.
id
));
}
let
isLaunchWebviewReady
=
false
;
// 目前首页双向确定 ready,可能会导致触发两次 onWebviewReady(主要是 Android)
function
onWebviewReady
(
data
,
pageId
)
{
const
isLaunchWebview
=
pageId
===
'
1
'
;
if
(
isLaunchWebview
&&
isLaunchWebviewReady
)
{
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
console
.
log
(
'
[uni-app] onLaunchWebviewReady.prevent
'
);
}
return
}
if
(
isLaunchWebview
)
{
// 首页
isLaunchWebviewReady
=
true
;
setPreloadWebview
(
plus
.
webview
.
getLaunchWebview
());
}
else
if
(
!
preloadWebview
)
{
// preloadWebview 不存在,重新加载一下
setPreloadWebview
(
plus
.
webview
.
getWebviewById
(
pageId
));
...
...
@@ -8802,22 +8883,35 @@ var serviceContext = (function () {
function
initSubscribeHandlers
()
{
const
{
subscribe
,
publishHandler
,
subscribeHandler
}
=
UniServiceJSBridge
;
initSubscribe
(
subscribe
,
{
getApp
,
getCurrentPages
});
registerPlusMessage
(
'
subscribeHandler
'
,
(
data
)
=>
{
subscribeHandler
(
data
.
type
,
data
.
data
,
data
.
pageId
);
});
// TODO 检测目标 preloadWebview 是否已准备好,因为 preloadWebview 准备好时,此处代码还没执行
subscribe
(
WEBVIEW_READY
,
onWebviewReady
);
const
entryPagePath
=
'
/
'
+
__uniConfig
.
entryPagePath
;
const
routeOptions
=
__uniRoutes
.
find
(
route
=>
route
.
path
===
entryPagePath
);
if
(
!
routeOptions
.
meta
.
isNVue
)
{
// 首页是 vue
// 防止首页 webview 初始化过早, service 还未开始监听
publishHandler
(
WEBVIEW_READY
,
Object
.
create
(
null
),
[
1
]);
}
subscribe
(
VD_SYNC
,
onVdSync
);
subscribe
(
VD_SYNC_CALLBACK
,
onVdSyncCallback
);
}
let
appCtx
;
function
getApp
()
{
function
getApp
$1
()
{
return
appCtx
}
...
...
@@ -8913,7 +9007,7 @@ var serviceContext = (function () {
appCtx
.
globalData
=
appVm
.
$options
.
globalData
||
{};
initOn
(
UniServiceJSBridge
.
on
,
{
getApp
,
getApp
:
getApp$1
,
getCurrentPages
:
getCurrentPages$1
});
...
...
@@ -9012,7 +9106,6 @@ var serviceContext = (function () {
[
UI_EVENT
]:
function
onUIEvent
(
vdBatchEvent
,
vd
)
{
vdBatchEvent
.
forEach
(([
cid
,
nid
,
event
])
=>
{
nid
=
String
(
nid
);
console
.
log
(
`[EVENT]`
,
cid
,
nid
,
event
);
event
.
preventDefault
=
noop
;
event
.
stopPropagation
=
noop
;
const
target
=
vd
.
elements
.
find
(
target
=>
target
.
cid
===
cid
&&
target
.
nid
===
nid
);
...
...
@@ -9172,7 +9265,6 @@ var serviceContext = (function () {
}
diff
(
this
.
_$newData
,
this
.
_$data
,
this
.
_$vdMountedData
);
this
.
_$data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
_$newData
));
console
.
log
(
`[
${
this
.
_$id
}
] mounted `
+
Date
.
now
());
if
(
this
.
mpType
===
'
page
'
)
{
// 页面 mounted 之后,第一次同步数据
this
.
_$vd
.
flush
();
...
...
@@ -9189,7 +9281,6 @@ var serviceContext = (function () {
// 子组件 updated 时,可能会增加父组件的 diffData,如 slot 等情况
diff
(
this
.
_$newData
,
this
.
_$data
,
this
.
_$vdUpdatedData
);
this
.
_$data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
_$newData
));
console
.
log
(
`[
${
this
.
_$id
}
] updated `
+
Date
.
now
());
// setTimeout 一下再 nextTick( 直接 nextTick 的话,会紧接着该 updated 做 flush,导致父组件 updated 数据被丢弃)
this
.
_$vd
.
initialized
&&
setTimeout
(()
=>
{
this
.
$nextTick
(
this
.
_$vd
.
flush
.
bind
(
this
.
_$vd
));
...
...
@@ -9218,7 +9309,6 @@ var serviceContext = (function () {
this
.
_$vd
.
addVm
(
this
);
this
.
_$vdMountedData
=
Object
.
create
(
null
);
this
.
_$setData
(
MOUNTED_DATA
,
this
.
_$vdMountedData
);
console
.
log
(
`[
${
this
.
_$id
}
] beforeCreate `
+
Date
.
now
());
this
.
_$data
=
Object
.
create
(
null
);
this
.
_$newData
=
Object
.
create
(
null
);
}
...
...
@@ -9229,7 +9319,6 @@ var serviceContext = (function () {
}
this
.
_$vdUpdatedData
=
Object
.
create
(
null
);
this
.
_$setData
(
UPDATED_DATA
,
this
.
_$vdUpdatedData
);
console
.
log
(
`[
${
this
.
_$id
}
] beforeUpdate `
+
Date
.
now
());
this
.
_$newData
=
Object
.
create
(
null
);
},
beforeDestroy
()
{
...
...
@@ -9291,6 +9380,10 @@ var serviceContext = (function () {
return
((
this
.
_$newData
[
id
]
||
(
this
.
_$newData
[
id
]
=
{}))[
V_ELSE_IF
]
=
!!
value
)
}
function
hasLifecycleHook
(
vueOptions
=
{},
hook
)
{
return
Array
.
isArray
(
vueOptions
[
hook
])
&&
vueOptions
[
hook
].
length
}
/* @flow */
const
LIFECYCLE_HOOKS
=
[
...
...
@@ -9349,6 +9442,27 @@ var serviceContext = (function () {
});
}
function
parsePageCreateOptions
(
vm
,
route
)
{
const
pagePath
=
'
/
'
+
route
;
const
routeOptions
=
__uniRoutes
.
find
(
route
=>
route
.
path
===
pagePath
);
const
windowOptions
=
Object
.
assign
({},
__uniConfig
.
window
,
routeOptions
.
window
);
const
disableScroll
=
windowOptions
.
disableScroll
===
true
?
1
:
0
;
const
onReachBottomDistance
=
hasOwn
(
windowOptions
,
'
onReachBottomDistance
'
)
?
parseInt
(
windowOptions
.
onReachBottomDistance
)
:
ON_REACH_BOTTOM_DISTANCE
;
const
onPageScroll
=
hasLifecycleHook
(
vm
.
$options
,
'
onPageScroll
'
)
?
1
:
0
;
const
onPageReachBottom
=
hasLifecycleHook
(
vm
.
$options
,
'
onReachBottom
'
)
?
1
:
0
;
return
{
disableScroll
,
onPageScroll
,
onPageReachBottom
,
onReachBottomDistance
}
}
function
initLifecycle
(
Vue
)
{
lifecycleMixin
(
Vue
);
...
...
@@ -9358,6 +9472,18 @@ var serviceContext = (function () {
this
.
$scope
=
this
.
$options
.
pageInstance
;
this
.
$scope
.
$vm
=
this
;
delete
this
.
$options
.
pageInstance
;
const
route
=
this
.
$scope
.
route
;
const
pageId
=
this
.
$scope
.
$page
.
id
;
// 通知页面已开始创建
UniServiceJSBridge
.
publishHandler
(
VD_SYNC
,
{
data
:
[
[
PAGE_CREATE
,
[
pageId
,
route
,
parsePageCreateOptions
(
this
,
route
)]]
],
options
:
{
timestamp
:
Date
.
now
()
}
},
[
pageId
]);
}
},
created
()
{
...
...
@@ -9406,7 +9532,7 @@ var serviceContext = (function () {
__registerApp
:
registerApp
,
__registerPage
:
registerPage
,
uni
:
uni$1
,
getApp
,
getApp
:
getApp$1
,
getCurrentPages
:
getCurrentPages$1
};
...
...
packages/uni-app-plus/dist/view.css
浏览文件 @
7210b660
*
{
margin
:
0
;
-webkit-tap-highlight-color
:
transparent
;
}
@font-face
{
font-weight
:
normal
;
font-style
:
normal
;
font-family
:
"uni"
;
src
:
url('data:application/octet-stream;base64,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')
format
(
'truetype'
);
}
@font-face
{
font-weight
:
normal
;
font-style
:
normal
;
font-family
:
"unibtn"
;
src
:
url('data:application/octet-stream;base64,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')
format
(
'truetype'
)
}
html
,
body
{
-webkit-user-select
:
none
;
user-select
:
none
;
width
:
100%
;
}
html
{
height
:
100%
;
}
body
{
overflow-x
:
hidden
;
}
[
class
^=
"uni-icon-"
],
[
class
*=
" uni-icon-"
]
{
display
:
inline-block
;
vertical-align
:
middle
;
font
:
normal
normal
normal
14px
/
1
"uni"
;
font-size
:
inherit
;
text-rendering
:
auto
;
-webkit-font-smoothing
:
antialiased
;
}
[
class
^=
"uni-btn-icon"
],
[
class
*=
" uni-btn-icon"
]
{
display
:
inline-block
;
font
:
normal
normal
normal
14px
/
1
"unibtn"
;
font-size
:
inherit
;
text-rendering
:
auto
;
-webkit-font-smoothing
:
antialiased
;
}
[
class
^=
"uni-btn-icon"
]
:before
,
[
class
*=
" uni-btn-icon"
]
:before
{
margin
:
0
;
box-sizing
:
border-box
;
}
.uni-icon-success-no-circle
:before
{
content
:
"\EA08"
;
}
.uni-loading
,
uni-button
[
loading
]
:before
{
background
:
transparent
url("data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=")
no-repeat
;
}
.uni-loading
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
vertical-align
:
middle
;
-webkit-animation
:
uni-loading
1s
steps
(
12
,
end
)
infinite
;
animation
:
uni-loading
1s
steps
(
12
,
end
)
infinite
;
background-size
:
100%
;
}
@-webkit-keyframes
uni-loading
{
0
%
{
-webkit-transform
:
rotate3d
(
0
,
0
,
1
,
0deg
);
transform
:
rotate3d
(
0
,
0
,
1
,
0deg
);
}
100
%
{
-webkit-transform
:
rotate3d
(
0
,
0
,
1
,
360deg
);
transform
:
rotate3d
(
0
,
0
,
1
,
360deg
);
}
}
@keyframes
uni-loading
{
0
%
{
-webkit-transform
:
rotate3d
(
0
,
0
,
1
,
0deg
);
transform
:
rotate3d
(
0
,
0
,
1
,
0deg
);
}
100
%
{
-webkit-transform
:
rotate3d
(
0
,
0
,
1
,
360deg
);
transform
:
rotate3d
(
0
,
0
,
1
,
360deg
);
}
}
[
nvue
]
uni-view
,
[
nvue
]
uni-swiper-item
,
[
nvue
]
uni-scroll-view
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
flex
;
-webkit-flex-shrink
:
0
;
flex-shrink
:
0
;
-webkit-box-flex
:
0
;
-webkit-flex-grow
:
0
;
flex-grow
:
0
;
-webkit-flex-basis
:
auto
;
flex-basis
:
auto
;
-webkit-box-align
:
stretch
;
-webkit-align-items
:
stretch
;
align-items
:
stretch
;
-webkit-align-content
:
flex-start
;
align-content
:
flex-start
;
}
[
nvue-dir-row
]
uni-view
,
[
nvue-dir-row
]
uni-swiper-item
{
-webkit-box-orient
:
horizontal
;
-webkit-box-direction
:
normal
;
-webkit-flex-direction
:
row
;
flex-direction
:
row
;
}
[
nvue-dir-column
]
uni-view
,
[
nvue-dir-column
]
uni-swiper-item
{
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
normal
;
-webkit-flex-direction
:
column
;
flex-direction
:
column
;
}
[
nvue-dir-row-reverse
]
uni-view
,
[
nvue-dir-row-reverse
]
uni-swiper-item
{
-webkit-box-orient
:
horizontal
;
-webkit-box-direction
:
reverse
;
-webkit-flex-direction
:
row-reverse
;
flex-direction
:
row-reverse
;
}
[
nvue-dir-column-reverse
]
uni-view
,
[
nvue-dir-column-reverse
]
uni-swiper-item
{
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
reverse
;
-webkit-flex-direction
:
column-reverse
;
flex-direction
:
column-reverse
;
}
[
nvue
]
uni-view
,
[
nvue
]
uni-image
,
[
nvue
]
uni-input
,
[
nvue
]
uni-scroll-view
,
[
nvue
]
uni-swiper
,
[
nvue
]
uni-swiper-item
,
[
nvue
]
uni-text
,
[
nvue
]
uni-textarea
,
[
nvue
]
uni-video
{
position
:
relative
;
border
:
0px
solid
#000000
;
box-sizing
:
border-box
;
}
[
nvue
]
uni-swiper-item
{
position
:
absolute
;
}
uni-button
{
position
:
relative
;
display
:
block
;
margin-left
:
auto
;
margin-right
:
auto
;
padding-left
:
14px
;
padding-right
:
14px
;
box-sizing
:
border-box
;
font-size
:
18px
;
text-align
:
center
;
text-decoration
:
none
;
line-height
:
2.55555556
;
border-radius
:
5px
;
-webkit-tap-highlight-color
:
transparent
;
overflow
:
hidden
;
color
:
#000000
;
background-color
:
#F8F8F8
;
}
uni-button
[
hidden
]
{
display
:
none
!important
;
}
uni-button
:after
{
content
:
" "
;
width
:
200%
;
height
:
200%
;
position
:
absolute
;
top
:
0
;
left
:
0
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
);
-webkit-transform
:
scale
(
0.5
);
transform
:
scale
(
0.5
);
-webkit-transform-origin
:
0
0
;
transform-origin
:
0
0
;
box-sizing
:
border-box
;
border-radius
:
10px
;
}
uni-button
[
native
]
{
padding-left
:
0
;
padding-right
:
0
;
}
uni-button
[
native
]
.uni-button-cover-view-wrapper
{
border
:
inherit
;
border-color
:
inherit
;
border-radius
:
inherit
;
background-color
:
inherit
;
}
uni-button
[
native
]
.uni-button-cover-view-inner
{
padding-left
:
14px
;
padding-right
:
14px
;
}
uni-button
uni-cover-view
{
line-height
:
inherit
;
white-space
:
inherit
;
}
uni-button
[
type
=
default
]
{
color
:
#000000
;
background-color
:
#F8F8F8
;
}
uni-button
[
type
=
primary
]
{
color
:
#FFFFFF
;
background-color
:
#007aff
;
}
uni-button
[
type
=
warn
]
{
color
:
#FFFFFF
;
background-color
:
#E64340
;
}
uni-button
[
disabled
]
{
color
:
rgba
(
255
,
255
,
255
,
0.6
);
}
uni-button
[
disabled
][
type
=
default
],
uni-button
[
disabled
]
:not
([
type
])
{
color
:
rgba
(
0
,
0
,
0
,
0.3
);
background-color
:
#F7F7F7
;
}
uni-button
[
disabled
][
type
=
primary
]
{
background-color
:
rgba
(
0
,
122
,
255
,
0.6
);
}
uni-button
[
disabled
][
type
=
warn
]
{
background-color
:
#EC8B89
;
}
uni-button
[
type
=
primary
][
plain
]
{
color
:
#007aff
;
border
:
1px
solid
#007aff
;
background-color
:
transparent
;
}
uni-button
[
type
=
primary
][
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
0.2
);
border-color
:
rgba
(
0
,
0
,
0
,
0.2
);
}
uni-button
[
type
=
primary
][
plain
]
:after
{
border-width
:
0
;
}
uni-button
[
type
=
default
][
plain
]
{
color
:
#353535
;
border
:
1px
solid
#353535
;
background-color
:
transparent
;
}
uni-button
[
type
=
default
][
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
0.2
);
border-color
:
rgba
(
0
,
0
,
0
,
0.2
);
}
uni-button
[
type
=
default
][
plain
]
:after
{
border-width
:
0
;
}
uni-button
[
plain
]
{
color
:
#353535
;
border
:
1px
solid
#353535
;
background-color
:
transparent
;
}
uni-button
[
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
0.2
);
border-color
:
rgba
(
0
,
0
,
0
,
0.2
);
}
uni-button
[
plain
]
:after
{
border-width
:
0
;
}
uni-button
[
plain
][
native
]
.uni-button-cover-view-inner
{
padding
:
0
;
}
uni-button
[
type
=
warn
][
plain
]
{
color
:
#e64340
;
border
:
1px
solid
#e64340
;
background-color
:
transparent
;
}
uni-button
[
type
=
warn
][
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
0.2
);
border-color
:
rgba
(
0
,
0
,
0
,
0.2
);
}
uni-button
[
type
=
warn
][
plain
]
:after
{
border-width
:
0
;
}
uni-button
[
size
=
mini
]
{
display
:
inline-block
;
line-height
:
2.3
;
font-size
:
13px
;
padding
:
0
1.34em
;
}
uni-button
[
size
=
mini
][
native
]
{
padding
:
0
;
}
uni-button
[
size
=
mini
][
native
]
.uni-button-cover-view-inner
{
padding
:
0
1.34em
;
}
uni-button
[
loading
]
:before
{
content
:
" "
;
display
:
inline-block
;
width
:
18px
;
height
:
18px
;
vertical-align
:
middle
;
-webkit-animation
:
uni-loading
1s
steps
(
12
,
end
)
infinite
;
animation
:
uni-loading
1s
steps
(
12
,
end
)
infinite
;
background-size
:
100%
;
}
uni-button
[
loading
][
type
=
primary
]
{
color
:
rgba
(
255
,
255
,
255
,
0.6
);
background-color
:
#0062cc
;
}
uni-button
[
loading
][
type
=
primary
][
plain
]
{
color
:
#007aff
;
background-color
:
transparent
;
}
uni-button
[
loading
][
type
=
default
]
{
color
:
rgba
(
0
,
0
,
0
,
0.6
);
background-color
:
#DEDEDE
;
}
uni-button
[
loading
][
type
=
default
][
plain
]
{
color
:
#353535
;
background-color
:
transparent
;
}
uni-button
[
loading
][
type
=
warn
]
{
color
:
rgba
(
255
,
255
,
255
,
0.6
);
background-color
:
#CE3C39
;
}
uni-button
[
loading
][
type
=
warn
][
plain
]
{
color
:
#e64340
;
background-color
:
transparent
;
}
uni-button
[
loading
][
native
]
:before
{
content
:
none
;
}
.button-hover
{
color
:
rgba
(
0
,
0
,
0
,
0.6
);
background-color
:
#DEDEDE
;
}
.button-hover
[
plain
]
{
color
:
rgba
(
53
,
53
,
53
,
0.6
);
border-color
:
rgba
(
53
,
53
,
53
,
0.6
);
background-color
:
transparent
;
}
.button-hover
[
type
=
primary
]
{
color
:
rgba
(
255
,
255
,
255
,
0.6
);
background-color
:
#0062cc
;
}
.button-hover
[
type
=
primary
][
plain
]
{
color
:
rgba
(
26
,
173
,
25
,
0.6
);
border-color
:
rgba
(
26
,
173
,
25
,
0.6
);
background-color
:
transparent
;
}
.button-hover
[
type
=
default
]
{
color
:
rgba
(
0
,
0
,
0
,
0.6
);
background-color
:
#DEDEDE
;
}
.button-hover
[
type
=
default
][
plain
]
{
color
:
rgba
(
53
,
53
,
53
,
0.6
);
border-color
:
rgba
(
53
,
53
,
53
,
0.6
);
background-color
:
transparent
;
}
.button-hover
[
type
=
warn
]
{
color
:
rgba
(
255
,
255
,
255
,
0.6
);
background-color
:
#CE3C39
;
}
.button-hover
[
type
=
warn
][
plain
]
{
color
:
rgba
(
230
,
67
,
64
,
0.6
);
border-color
:
rgba
(
230
,
67
,
64
,
0.6
);
background-color
:
transparent
;
}
uni-canvas
{
width
:
300px
;
height
:
150px
;
display
:
block
;
position
:
relative
;
}
uni-canvas
>
canvas
{
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
}
uni-checkbox-group
[
hidden
]
{
display
:
none
;
}
uni-checkbox
{
-webkit-tap-highlight-color
:
transparent
;
display
:
inline-block
;
}
uni-checkbox
[
hidden
]
{
display
:
none
;
}
uni-checkbox
.uni-checkbox-wrapper
{
display
:
-webkit-inline-flex
;
display
:
-webkit-inline-box
;
display
:
inline-flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
vertical-align
:
middle
;
}
uni-checkbox
.uni-checkbox-input
{
margin-right
:
5px
;
-webkit-appearance
:
none
;
appearance
:
none
;
outline
:
0
;
border
:
1px
solid
#D1D1D1
;
background-color
:
#FFFFFF
;
border-radius
:
3px
;
width
:
22px
;
height
:
22px
;
position
:
relative
;
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-checked
{
color
:
#007aff
;
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-checked
:before
{
font
:
normal
normal
normal
14px
/
1
"uni"
;
content
:
"\EA08"
;
font-size
:
22px
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-48%
)
scale
(
0.73
);
-webkit-transform
:
translate
(
-50%
,
-48%
)
scale
(
0.73
);
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-disabled
{
background-color
:
#E1E1E1
;
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-disabled
:before
{
color
:
#ADADAD
;
}
uni-checkbox-group
{
display
:
block
;
}
uni-icon
{
display
:
inline-block
;
font-size
:
0
;
box-sizing
:
border-box
;
}
uni-icon
[
hidden
]
{
display
:
none
;
}
uni-icon
>
i
{
font
:
normal
normal
normal
14px
/
1
"weui"
;
}
uni-icon
>
i
:before
{
margin
:
0
;
box-sizing
:
border-box
;
}
@font-face
{
font-weight
:
normal
;
font-style
:
normal
;
font-family
:
"weui"
;
src
:
url("data:application/octet-stream;base64,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")
format
(
"truetype"
);
}
.uni-icon-success
:before
{
content
:
"\EA06"
;
}
.uni-icon-success_circle
:before
{
content
:
"\EA07"
;
}
.uni-icon-success_no_circle
:before
{
content
:
"\EA08"
;
}
.uni-icon-safe_success
:before
{
content
:
"\EA04"
;
}
.uni-icon-safe_warn
:before
{
content
:
"\EA05"
;
}
.uni-icon-info
:before
{
content
:
"\EA03"
;
}
.uni-icon-info_circle
:before
{
content
:
"\EA0C"
;
}
.uni-icon-warn
:before
{
content
:
"\EA0B"
;
}
.uni-icon-waiting
:before
{
content
:
"\EA09"
;
}
.uni-icon-waiting_circle
:before
{
content
:
"\EA0A"
;
}
.uni-icon-circle
:before
{
content
:
"\EA01"
;
}
.uni-icon-cancel
:before
{
content
:
"\EA0D"
;
}
.uni-icon-download
:before
{
content
:
"\EA02"
;
}
.uni-icon-search
:before
{
content
:
"\EA0E"
;
}
.uni-icon-clear
:before
{
content
:
"\EA0F"
;
}
.uni-icon-success
{
color
:
#007aff
;
}
.uni-icon-success_circle
{
color
:
#007aff
;
}
.uni-icon-success_no_circle
{
color
:
#007aff
;
}
.uni-icon-safe_success
{
color
:
#007aff
;
}
.uni-icon-safe_warn
{
color
:
#ffbe00
;
}
.uni-icon-info
{
color
:
#10aeff
;
}
.uni-icon-info_circle
{
color
:
#007aff
;
}
.uni-icon-warn
{
color
:
#f76260
;
}
.uni-icon-waiting
{
color
:
#10aeff
;
}
.uni-icon-waiting_circle
{
color
:
#10aeff
;
}
.uni-icon-circle
{
color
:
#c9c9c9
;
}
.uni-icon-cancel
{
color
:
#f43530
;
}
.uni-icon-download
{
color
:
#007aff
;
}
.uni-icon-search
{
color
:
#b2b2b2
;
}
.uni-icon-clear
{
color
:
#b2b2b2
;
}
uni-image
{
width
:
320px
;
height
:
240px
;
display
:
inline-block
;
overflow
:
hidden
;
position
:
relative
;
}
uni-image
[
hidden
]
{
display
:
none
;
}
uni-image
>
div
{
width
:
100%
;
height
:
100%
;
}
uni-image
>
img
{
-webkit-touch-callout
:
none
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
display
:
block
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
opacity
:
0
;
}
uni-image
>
.uni-image-will-change
{
will-change
:
transform
;
}
uni-input
{
display
:
block
;
font-size
:
16px
;
line-height
:
1.4em
;
height
:
1.4em
;
min-height
:
1.4em
;
overflow
:
hidden
;
}
uni-input
[
hidden
]
{
display
:
none
;
}
.uni-input-wrapper
,
.uni-input-placeholder
,
.uni-input-form
,
.uni-input-input
{
outline
:
none
;
border
:
none
;
padding
:
0
;
margin
:
0
;
text-decoration
:
inherit
;
}
.uni-input-wrapper
,
.uni-input-form
{
display
:
block
;
position
:
relative
;
width
:
100%
;
height
:
100%
;
}
.uni-input-placeholder
,
.uni-input-input
{
width
:
100%
;
}
.uni-input-placeholder
{
position
:
absolute
;
top
:
50%
;
left
:
0
;
-webkit-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
color
:
gray
;
overflow
:
hidden
;
text-overflow
:
clip
;
white-space
:
pre
;
word-break
:
keep-all
;
pointer-events
:
none
;
}
.uni-input-input
{
display
:
block
;
height
:
100%
;
background
:
none
;
color
:
inherit
;
opacity
:
1
;
-webkit-text-fill-color
:
currentcolor
;
font
:
inherit
;
line-height
:
inherit
;
letter-spacing
:
inherit
;
text-align
:
inherit
;
text-indent
:
inherit
;
text-transform
:
inherit
;
text-shadow
:
inherit
;
}
.uni-input-input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
display
:
none
;
}
.uni-input-input
::-webkit-outer-spin-button
,
.uni-input-input
::-webkit-inner-spin-button
{
-webkit-appearance
:
none
;
margin
:
0
;
}
.uni-input-input
[
type
=
"number"
]
{
-moz-appearance
:
textfield
;
}
uni-movable-area
{
display
:
block
;
position
:
relative
;
width
:
10px
;
height
:
10px
;
}
uni-movable-area
[
hidden
]
{
display
:
none
;
}
uni-movable-view
{
display
:
inline-block
;
width
:
10px
;
height
:
10px
;
top
:
0px
;
left
:
0px
;
position
:
absolute
;
}
uni-movable-view
[
hidden
]
{
display
:
none
;
}
.navigator-hover
{
background-color
:
rgba
(
0
,
0
,
0
,
0.1
);
opacity
:
0.7
;
}
uni-navigator
{
height
:
auto
;
width
:
auto
;
display
:
block
;
}
uni-navigator
[
hidden
]
{
display
:
none
;
}
uni-picker-view-column
{
-webkit-flex
:
1
;
-webkit-box-flex
:
1
;
flex
:
1
;
position
:
relative
;
height
:
100%
;
overflow
:
hidden
;
}
uni-picker-view-column
[
hidden
]
{
display
:
none
;
}
.uni-picker-view-group
{
height
:
100%
;
}
.uni-picker-view-mask
{
transform
:
translateZ
(
0
);
-webkit-transform
:
translateZ
(
0
);
}
.uni-picker-view-indicator
,
.uni-picker-view-mask
{
position
:
absolute
;
left
:
0
;
width
:
100%
;
z-index
:
3
;
}
.uni-picker-view-mask
{
top
:
0
;
height
:
100%
;
margin
:
0
auto
;
background
:
-webkit-linear-gradient
(
top
,
hsla
(
0
,
0%
,
100%
,
0.95
),
hsla
(
0
,
0%
,
100%
,
0.6
)
),
-webkit-linear-gradient
(
bottom
,
hsla
(
0
,
0%
,
100%
,
0.95
),
hsla
(
0
,
0%
,
100%
,
0.6
));
background
:
linear-gradient
(
180deg
,
hsla
(
0
,
0%
,
100%
,
0.95
),
hsla
(
0
,
0%
,
100%
,
0.6
)
),
linear-gradient
(
0deg
,
hsla
(
0
,
0%
,
100%
,
0.95
),
hsla
(
0
,
0%
,
100%
,
0.6
));
background-position
:
top
,
bottom
;
background-size
:
100%
102px
;
background-repeat
:
no-repeat
;
}
.uni-picker-view-indicator
{
height
:
34px
;
/* top: 102px; */
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
}
.uni-picker-view-indicator
,
.uni-picker-view-mask
{
position
:
absolute
;
left
:
0
;
width
:
100%
;
z-index
:
3
;
pointer-events
:
none
;
}
.uni-picker-view-content
{
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
will-change
:
transform
;
padding
:
102px
0
;
}
.uni-picker-view-content
>
*
{
height
:
34px
;
overflow
:
hidden
;
}
.uni-picker-view-indicator
:after
,
.uni-picker-view-indicator
:before
{
content
:
" "
;
position
:
absolute
;
left
:
0
;
right
:
0
;
height
:
1px
;
color
:
#e5e5e5
;
}
.uni-picker-view-indicator
:before
{
top
:
0
;
border-top
:
1px
solid
#e5e5e5
;
-webkit-transform-origin
:
0
0
;
transform-origin
:
0
0
;
-webkit-transform
:
scaleY
(
0.5
);
transform
:
scaleY
(
0.5
);
}
.uni-picker-view-indicator
:after
{
bottom
:
0
;
border-bottom
:
1px
solid
#e5e5e5
;
-webkit-transform-origin
:
0
100%
;
transform-origin
:
0
100%
;
-webkit-transform
:
scaleY
(
0.5
);
transform
:
scaleY
(
0.5
);
}
.uni-picker-view-indicator
:after
,
.uni-picker-view-indicator
:before
{
content
:
" "
;
position
:
absolute
;
left
:
0
;
right
:
0
;
height
:
1px
;
color
:
#e5e5e5
;
}
uni-picker-view
{
display
:
block
;
}
uni-picker-view
.uni-picker-view-wrapper
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
flex
;
position
:
relative
;
overflow
:
hidden
;
height
:
100%
;
}
uni-picker-view
[
hidden
]
{
display
:
none
;
}
uni-progress
{
display
:
-webkit-flex
;
display
:
-webkit-box
;
display
:
flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
}
uni-progress
[
hidden
]
{
display
:
none
;
}
.uni-progress-bar
{
-webkit-flex
:
1
;
-webkit-box-flex
:
1
;
flex
:
1
;
}
.uni-progress-inner-bar
{
width
:
0
;
height
:
100%
;
}
.uni-progress-info
{
margin-top
:
0
;
margin-bottom
:
0
;
min-width
:
2em
;
margin-left
:
15px
;
font-size
:
16px
;
}
uni-radio-group
[
hidden
]
{
display
:
none
;
}
uni-radio
{
-webkit-tap-highlight-color
:
transparent
;
display
:
inline-block
;
}
uni-radio
[
hidden
]
{
display
:
none
;
}
uni-radio
.uni-radio-wrapper
{
display
:
-webkit-inline-flex
;
display
:
-webkit-inline-box
;
display
:
inline-flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
vertical-align
:
middle
;
}
uni-radio
.uni-radio-input
{
-webkit-appearance
:
none
;
appearance
:
none
;
margin-right
:
5px
;
outline
:
0
;
border
:
1px
solid
#D1D1D1
;
background-color
:
#ffffff
;
border-radius
:
50%
;
width
:
22px
;
height
:
22px
;
position
:
relative
;
}
uni-radio
.uni-radio-input.uni-radio-input-checked
:before
{
font
:
normal
normal
normal
14px
/
1
"uni"
;
content
:
"\EA08"
;
color
:
#ffffff
;
font-size
:
18px
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-48%
)
scale
(
0.73
);
-webkit-transform
:
translate
(
-50%
,
-48%
)
scale
(
0.73
);
}
uni-radio
.uni-radio-input.uni-radio-input-disabled
{
background-color
:
#E1E1E1
;
border-color
:
#D1D1D1
;
}
uni-radio
.uni-radio-input.uni-radio-input-disabled
:before
{
color
:
#ADADAD
;
}
uni-radio-group
{
display
:
block
;
}
@-webkit-keyframes
once-show
{
from
{
top
:
0
;
}
}
@keyframes
once-show
{
from
{
top
:
0
;
}
}
uni-resize-sensor
,
uni-resize-sensor
>
div
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
overflow
:
hidden
;
}
uni-resize-sensor
{
display
:
block
;
z-index
:
-1
;
visibility
:
hidden
;
-webkit-animation
:
once-show
1ms
;
animation
:
once-show
1ms
;
}
uni-resize-sensor
>
div
>
div
{
position
:
absolute
;
left
:
0
;
top
:
0
;
}
uni-resize-sensor
>
div
:first-child
>
div
{
width
:
100000px
;
height
:
100000px
;
}
uni-resize-sensor
>
div
:last-child
>
div
{
width
:
200%
;
height
:
200%
;
}
uni-scroll-view
{
display
:
block
;
width
:
100%
;
}
uni-scroll-view
[
hidden
]
{
display
:
none
;
}
.uni-scroll-view
{
position
:
relative
;
-webkit-overflow-scrolling
:
touch
;
width
:
100%
;
/* display: flex; 时在安卓下会导致scrollWidth和offsetWidth一样 */
height
:
100%
;
max-height
:
inherit
;
}
uni-slider
{
margin
:
10px
18px
;
padding
:
0
;
display
:
block
;
}
uni-slider
[
hidden
]
{
display
:
none
;
}
uni-slider
.uni-slider-wrapper
{
display
:
-webkit-flex
;
display
:
-webkit-box
;
display
:
flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
min-height
:
16px
;
}
uni-slider
.uni-slider-tap-area
{
-webkit-flex
:
1
;
-webkit-box-flex
:
1
;
flex
:
1
;
padding
:
8px
0
;
}
uni-slider
.uni-slider-handle-wrapper
{
position
:
relative
;
height
:
2px
;
border-radius
:
5px
;
background-color
:
#e9e9e9
;
cursor
:
pointer
;
-webkit-transition
:
background-color
0.3s
ease
;
transition
:
background-color
0.3s
ease
;
-webkit-tap-highlight-color
:
transparent
;
}
uni-slider
.uni-slider-track
{
height
:
100%
;
border-radius
:
6px
;
background-color
:
#007aff
;
-webkit-transition
:
background-color
0.3s
ease
;
transition
:
background-color
0.3s
ease
;
}
uni-slider
.uni-slider-handle
,
uni-slider
.uni-slider-thumb
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
cursor
:
pointer
;
border-radius
:
50%
;
-webkit-transition
:
border-color
0.3s
ease
;
transition
:
border-color
0.3s
ease
;
}
uni-slider
.uni-slider-handle
{
width
:
28px
;
height
:
28px
;
margin-top
:
-14px
;
margin-left
:
-14px
;
background-color
:
transparent
;
z-index
:
3
;
}
uni-slider
.uni-slider-thumb
{
z-index
:
2
;
box-shadow
:
0
0
4px
rgba
(
0
,
0
,
0
,
0.2
);
}
uni-slider
.uni-slider-step
{
position
:
absolute
;
width
:
100%
;
height
:
2px
;
background
:
transparent
;
z-index
:
1
;
}
uni-slider
.uni-slider-value
{
color
:
#888
;
font-size
:
14px
;
margin-left
:
1em
;
}
uni-slider
.uni-slider-disabled
.uni-slider-track
{
background-color
:
#ccc
;
}
uni-slider
.uni-slider-disabled
.uni-slider-thumb
{
background-color
:
#FFF
;
border-color
:
#ccc
;
}
uni-swiper-item
{
display
:
block
;
overflow
:
hidden
;
will-change
:
transform
;
position
:
absolute
;
width
:
100%
;
height
:
100%
;
}
uni-swiper-item
[
hidden
]
{
display
:
none
;
}
uni-swiper
{
display
:
block
;
height
:
150px
;
}
uni-swiper
[
hidden
]
{
display
:
none
;
}
uni-swiper
.uni-swiper-wrapper
{
overflow
:
hidden
;
position
:
relative
;
width
:
100%
;
height
:
100%
;
-webkit-transform
:
translateZ
(
0
);
transform
:
translateZ
(
0
);
}
uni-swiper
.uni-swiper-slides
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
}
uni-swiper
.uni-swiper-slide-frame
{
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
;
will-change
:
transform
;
}
uni-swiper
.uni-swiper-dots
{
position
:
absolute
;
font-size
:
0
;
}
uni-swiper
.uni-swiper-dots-horizontal
{
left
:
50%
;
bottom
:
10px
;
text-align
:
center
;
white-space
:
nowrap
;
-webkit-transform
:
translate
(
-50%
,
0
);
transform
:
translate
(
-50%
,
0
);
}
uni-swiper
.uni-swiper-dots-horizontal
.uni-swiper-dot
{
margin-right
:
8px
;
}
uni-swiper
.uni-swiper-dots-horizontal
.uni-swiper-dot
:last-child
{
margin-right
:
0
;
}
uni-swiper
.uni-swiper-dots-vertical
{
right
:
10px
;
top
:
50%
;
text-align
:
right
;
-webkit-transform
:
translate
(
0
,
-50%
);
transform
:
translate
(
0
,
-50%
);
}
uni-swiper
.uni-swiper-dots-vertical
.uni-swiper-dot
{
display
:
block
;
margin-bottom
:
9px
;
}
uni-swiper
.uni-swiper-dots-vertical
.uni-swiper-dot
:last-child
{
margin-bottom
:
0
;
}
uni-swiper
.uni-swiper-dot
{
display
:
inline-block
;
width
:
8px
;
height
:
8px
;
cursor
:
pointer
;
-webkit-transition-property
:
background-color
;
transition-property
:
background-color
;
-webkit-transition-timing-function
:
ease
;
transition-timing-function
:
ease
;
background
:
rgba
(
0
,
0
,
0
,
0.3
);
border-radius
:
50%
;
}
uni-swiper
.uni-swiper-dot-active
{
background-color
:
#000000
;
}
uni-switch
{
-webkit-tap-highlight-color
:
transparent
;
display
:
inline-block
;
}
uni-switch
[
hidden
]
{
display
:
none
;
}
uni-switch
.uni-switch-wrapper
{
display
:
-webkit-inline-flex
;
display
:
-webkit-inline-box
;
display
:
inline-flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
vertical-align
:
middle
;
}
uni-switch
.uni-switch-input
{
-webkit-appearance
:
none
;
appearance
:
none
;
position
:
relative
;
width
:
52px
;
height
:
32px
;
margin-right
:
5px
;
border
:
1px
solid
#DFDFDF
;
outline
:
0
;
border-radius
:
16px
;
box-sizing
:
border-box
;
background-color
:
#DFDFDF
;
-webkit-transition
:
background-color
0.1s
,
border
0.1s
;
transition
:
background-color
0.1s
,
border
0.1s
;
}
uni-switch
.uni-switch-input
:before
{
content
:
" "
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
50px
;
height
:
30px
;
border-radius
:
15px
;
background-color
:
#FDFDFD
;
transition
:
-webkit-transform
0.3s
;
-webkit-transition
:
-webkit-transform
0.3s
;
transition
:
transform
0.3s
;
transition
:
transform
0.3s
,
-webkit-transform
0.3s
;
}
uni-switch
.uni-switch-input
:after
{
content
:
" "
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
30px
;
height
:
30px
;
border-radius
:
15px
;
background-color
:
#FFFFFF
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0.4
);
transition
:
-webkit-transform
0.3s
;
-webkit-transition
:
-webkit-transform
0.3s
;
transition
:
transform
0.3s
;
transition
:
transform
0.3s
,
-webkit-transform
0.3s
;
}
uni-switch
.uni-switch-input.uni-switch-input-checked
{
border-color
:
#007aff
;
background-color
:
#007aff
;
}
uni-switch
.uni-switch-input.uni-switch-input-checked
:before
{
-webkit-transform
:
scale
(
0
);
transform
:
scale
(
0
);
}
uni-switch
.uni-switch-input.uni-switch-input-checked
:after
{
-webkit-transform
:
translateX
(
20px
);
transform
:
translateX
(
20px
);
}
uni-switch
.uni-checkbox-input
{
margin-right
:
5px
;
-webkit-appearance
:
none
;
appearance
:
none
;
outline
:
0
;
border
:
1px
solid
#D1D1D1
;
background-color
:
#FFFFFF
;
border-radius
:
3px
;
width
:
22px
;
height
:
22px
;
position
:
relative
;
color
:
#007aff
;
}
uni-switch
.uni-checkbox-input.uni-checkbox-input-checked
:before
{
font
:
normal
normal
normal
14px
/
1
"uni"
;
content
:
"\EA08"
;
color
:
inherit
;
font-size
:
22px
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-48%
)
scale
(
0.73
);
-webkit-transform
:
translate
(
-50%
,
-48%
)
scale
(
0.73
);
}
uni-switch
.uni-checkbox-input.uni-checkbox-input-disabled
{
background-color
:
#E1E1E1
;
}
uni-switch
.uni-checkbox-input.uni-checkbox-input-disabled
:before
{
color
:
#ADADAD
;
}
uni-text
[
selectable
]
{
cursor
:
auto
;
user-select
:
text
;
-webkit-user-select
:
text
;
}
uni-textarea
{
width
:
300px
;
height
:
150px
;
display
:
block
;
position
:
relative
;
font-size
:
16px
;
line-height
:
normal
;
}
uni-textarea
[
hidden
]
{
display
:
none
;
}
uni-textarea
[
auto-height
]
.uni-textarea-textarea
{
overflow-y
:
hidden
;
}
.uni-textarea-wrapper
,
.uni-textarea-placeholder
,
.uni-textarea-compute
,
.uni-textarea-textarea
{
outline
:
none
;
border
:
none
;
padding
:
0
;
margin
:
0
;
text-decoration
:
inherit
;
}
.uni-textarea-wrapper
{
display
:
block
;
position
:
relative
;
width
:
100%
;
height
:
100%
;
}
.uni-textarea-placeholder
,
.uni-textarea-compute
,
.uni-textarea-textarea
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
left
:
0
;
top
:
0
;
white-space
:
pre-wrap
;
word-break
:
break-all
;
}
.uni-textarea-placeholder
{
color
:
grey
;
overflow
:
hidden
;
}
.uni-textarea-compute
{
visibility
:
hidden
;
height
:
auto
;
}
.uni-textarea-textarea
{
resize
:
none
;
background
:
none
;
color
:
inherit
;
opacity
:
1
;
-webkit-text-fill-color
:
currentcolor
;
font
:
inherit
;
line-height
:
inherit
;
letter-spacing
:
inherit
;
text-align
:
inherit
;
text-indent
:
inherit
;
text-transform
:
inherit
;
text-shadow
:
inherit
;
}
/* 用于解决 iOS textarea 内部默认边距 */
.uni-textarea-textarea-ios
{
width
:
auto
;
right
:
0
;
margin
:
0
-3px
;
}
uni-view
{
display
:
block
;
}
uni-view
[
hidden
]
{
display
:
none
;
}
*
{
margin
:
0
;
-webkit-tap-highlight-color
:
transparent
}
@font-face
{
font-weight
:
400
;
font-style
:
normal
;
font-family
:
uni
;
src
:
url("data:application/octet-stream;base64,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")
format
(
"truetype"
)}
@font-face
{
font-weight
:
400
;
font-style
:
normal
;
font-family
:
unibtn
;
src
:
url("data:application/octet-stream;base64,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")
format
(
"truetype"
)}
body
,
html
{
-webkit-user-select
:
none
;
user-select
:
none
;
width
:
100%
}
html
{
height
:
100%
}
body
{
overflow-x
:
hidden
}
[
class
*=
" uni-icon-"
],[
class
^=
uni-icon-
]
{
display
:
inline-block
;
vertical-align
:
middle
;
font
:
normal
normal
normal
14px
/
1
uni
;
font-size
:
inherit
;
text-rendering
:
auto
;
-webkit-font-smoothing
:
antialiased
}
[
class
*=
" uni-btn-icon"
],[
class
^=
uni-btn-icon
]
{
display
:
inline-block
;
font
:
normal
normal
normal
14px
/
1
unibtn
;
font-size
:
inherit
;
text-rendering
:
auto
;
-webkit-font-smoothing
:
antialiased
}
[
class
*=
" uni-btn-icon"
]
:before
,[
class
^=
uni-btn-icon
]
:before
{
margin
:
0
;
box-sizing
:
border-box
}
.uni-icon-success-no-circle
:before
{
content
:
"\EA08"
}
.uni-loading
,
uni-button
[
loading
]
:before
{
background
:
rgba
(
0
,
0
,
0
,
0
)
url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=")
no-repeat
}
.uni-loading
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
vertical-align
:
middle
;
-webkit-animation
:
uni-loading
1s
steps
(
12
)
infinite
;
animation
:
uni-loading
1s
steps
(
12
)
infinite
;
background-size
:
100%
}
@-webkit-keyframes
uni-loading
{
0
%
{
-webkit-transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
)}
to
{
-webkit-transform
:
rotate
(
1turn
);
transform
:
rotate
(
1turn
)}}
@keyframes
uni-loading
{
0
%
{
-webkit-transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
)}
to
{
-webkit-transform
:
rotate
(
1turn
);
transform
:
rotate
(
1turn
)}}
[
nvue
]
uni-scroll-view
,[
nvue
]
uni-swiper-item
,[
nvue
]
uni-view
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
flex
;
-webkit-flex-shrink
:
0
;
flex-shrink
:
0
;
-webkit-box-flex
:
0
;
-webkit-flex-grow
:
0
;
flex-grow
:
0
;
-webkit-flex-basis
:
auto
;
flex-basis
:
auto
;
-webkit-box-align
:
stretch
;
-webkit-align-items
:
stretch
;
align-items
:
stretch
;
-webkit-align-content
:
flex-start
;
align-content
:
flex-start
}
[
nvue-dir-row
]
uni-swiper-item
,[
nvue-dir-row
]
uni-view
{
-webkit-box-orient
:
horizontal
;
-webkit-box-direction
:
normal
;
-webkit-flex-direction
:
row
;
flex-direction
:
row
}
[
nvue-dir-column
]
uni-swiper-item
,[
nvue-dir-column
]
uni-view
{
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
normal
;
-webkit-flex-direction
:
column
;
flex-direction
:
column
}
[
nvue-dir-row-reverse
]
uni-swiper-item
,[
nvue-dir-row-reverse
]
uni-view
{
-webkit-box-orient
:
horizontal
;
-webkit-box-direction
:
reverse
;
-webkit-flex-direction
:
row-reverse
;
flex-direction
:
row-reverse
}
[
nvue-dir-column-reverse
]
uni-swiper-item
,[
nvue-dir-column-reverse
]
uni-view
{
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
reverse
;
-webkit-flex-direction
:
column-reverse
;
flex-direction
:
column-reverse
}
[
nvue
]
uni-image
,[
nvue
]
uni-input
,[
nvue
]
uni-scroll-view
,[
nvue
]
uni-swiper
,[
nvue
]
uni-swiper-item
,[
nvue
]
uni-text
,[
nvue
]
uni-textarea
,[
nvue
]
uni-video
,[
nvue
]
uni-view
{
position
:
relative
;
border
:
0
solid
#000
;
box-sizing
:
border-box
}
[
nvue
]
uni-swiper-item
{
position
:
absolute
}
uni-button
{
position
:
relative
;
display
:
block
;
margin-left
:
auto
;
margin-right
:
auto
;
padding-left
:
14px
;
padding-right
:
14px
;
box-sizing
:
border-box
;
font-size
:
18px
;
text-align
:
center
;
text-decoration
:
none
;
line-height
:
2.55555556
;
border-radius
:
5px
;
-webkit-tap-highlight-color
:
transparent
;
overflow
:
hidden
;
color
:
#000
;
background-color
:
#f8f8f8
}
uni-button
[
hidden
]
{
display
:
none
!important
}
uni-button
:after
{
content
:
" "
;
width
:
200%
;
height
:
200%
;
position
:
absolute
;
top
:
0
;
left
:
0
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
.2
);
-webkit-transform
:
scale
(
.5
);
transform
:
scale
(
.5
);
-webkit-transform-origin
:
0
0
;
transform-origin
:
0
0
;
box-sizing
:
border-box
;
border-radius
:
10px
}
uni-button
[
native
]
{
padding-left
:
0
;
padding-right
:
0
}
uni-button
[
native
]
.uni-button-cover-view-wrapper
{
border
:
inherit
;
border-color
:
inherit
;
border-radius
:
inherit
;
background-color
:
inherit
}
uni-button
[
native
]
.uni-button-cover-view-inner
{
padding-left
:
14px
;
padding-right
:
14px
}
uni-button
uni-cover-view
{
line-height
:
inherit
;
white-space
:
inherit
}
uni-button
[
type
=
default
]
{
color
:
#000
;
background-color
:
#f8f8f8
}
uni-button
[
type
=
primary
]
{
color
:
#fff
;
background-color
:
#007aff
}
uni-button
[
type
=
warn
]
{
color
:
#fff
;
background-color
:
#e64340
}
uni-button
[
disabled
]
{
color
:
hsla
(
0
,
0%
,
100%
,
.6
)}
uni-button
[
disabled
]
:not
([
type
]),
uni-button
[
disabled
][
type
=
default
]
{
color
:
rgba
(
0
,
0
,
0
,
.3
);
background-color
:
#f7f7f7
}
uni-button
[
disabled
][
type
=
primary
]
{
background-color
:
rgba
(
0
,
122
,
255
,
.6
)}
uni-button
[
disabled
][
type
=
warn
]
{
background-color
:
#ec8b89
}
uni-button
[
type
=
primary
][
plain
]
{
color
:
#007aff
;
border
:
1px
solid
#007aff
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
type
=
primary
][
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
.2
);
border-color
:
rgba
(
0
,
0
,
0
,
.2
)}
uni-button
[
type
=
primary
][
plain
]
:after
{
border-width
:
0
}
uni-button
[
type
=
default
][
plain
]
{
color
:
#353535
;
border
:
1px
solid
#353535
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
type
=
default
][
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
.2
);
border-color
:
rgba
(
0
,
0
,
0
,
.2
)}
uni-button
[
type
=
default
][
plain
]
:after
{
border-width
:
0
}
uni-button
[
plain
]
{
color
:
#353535
;
border
:
1px
solid
#353535
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
.2
);
border-color
:
rgba
(
0
,
0
,
0
,
.2
)}
uni-button
[
plain
]
:after
{
border-width
:
0
}
uni-button
[
plain
][
native
]
.uni-button-cover-view-inner
{
padding
:
0
}
uni-button
[
type
=
warn
][
plain
]
{
color
:
#e64340
;
border
:
1px
solid
#e64340
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
type
=
warn
][
plain
][
disabled
]
{
color
:
rgba
(
0
,
0
,
0
,
.2
);
border-color
:
rgba
(
0
,
0
,
0
,
.2
)}
uni-button
[
type
=
warn
][
plain
]
:after
{
border-width
:
0
}
uni-button
[
size
=
mini
]
{
display
:
inline-block
;
line-height
:
2.3
;
font-size
:
13px
;
padding
:
0
1.34em
}
uni-button
[
size
=
mini
][
native
]
{
padding
:
0
}
uni-button
[
size
=
mini
][
native
]
.uni-button-cover-view-inner
{
padding
:
0
1.34em
}
uni-button
[
loading
]
:before
{
content
:
" "
;
display
:
inline-block
;
width
:
18px
;
height
:
18px
;
vertical-align
:
middle
;
-webkit-animation
:
uni-loading
1s
steps
(
12
)
infinite
;
animation
:
uni-loading
1s
steps
(
12
)
infinite
;
background-size
:
100%
}
uni-button
[
loading
][
type
=
primary
]
{
color
:
hsla
(
0
,
0%
,
100%
,
.6
);
background-color
:
#0062cc
}
uni-button
[
loading
][
type
=
primary
][
plain
]
{
color
:
#007aff
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
loading
][
type
=
default
]
{
color
:
rgba
(
0
,
0
,
0
,
.6
);
background-color
:
#dedede
}
uni-button
[
loading
][
type
=
default
][
plain
]
{
color
:
#353535
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
loading
][
type
=
warn
]
{
color
:
hsla
(
0
,
0%
,
100%
,
.6
);
background-color
:
#ce3c39
}
uni-button
[
loading
][
type
=
warn
][
plain
]
{
color
:
#e64340
;
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-button
[
loading
][
native
]
:before
{
content
:
none
}
.button-hover
{
color
:
rgba
(
0
,
0
,
0
,
.6
);
background-color
:
#dedede
}
.button-hover
[
plain
]
{
color
:
rgba
(
53
,
53
,
53
,
.6
);
border-color
:
rgba
(
53
,
53
,
53
,
.6
);
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
.button-hover
[
type
=
primary
]
{
color
:
hsla
(
0
,
0%
,
100%
,
.6
);
background-color
:
#0062cc
}
.button-hover
[
type
=
primary
][
plain
]
{
color
:
rgba
(
26
,
173
,
25
,
.6
);
border-color
:
rgba
(
26
,
173
,
25
,
.6
);
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
.button-hover
[
type
=
default
]
{
color
:
rgba
(
0
,
0
,
0
,
.6
);
background-color
:
#dedede
}
.button-hover
[
type
=
default
][
plain
]
{
color
:
rgba
(
53
,
53
,
53
,
.6
);
border-color
:
rgba
(
53
,
53
,
53
,
.6
);
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
.button-hover
[
type
=
warn
]
{
color
:
hsla
(
0
,
0%
,
100%
,
.6
);
background-color
:
#ce3c39
}
.button-hover
[
type
=
warn
][
plain
]
{
color
:
rgba
(
230
,
67
,
64
,
.6
);
border-color
:
rgba
(
230
,
67
,
64
,
.6
);
background-color
:
rgba
(
0
,
0
,
0
,
0
)}
uni-canvas
{
width
:
300px
;
height
:
150px
;
display
:
block
;
position
:
relative
}
uni-canvas
>
canvas
{
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
}
uni-checkbox-group
[
hidden
]
{
display
:
none
}
uni-checkbox
{
-webkit-tap-highlight-color
:
transparent
;
display
:
inline-block
}
uni-checkbox
[
hidden
]
{
display
:
none
}
uni-checkbox
.uni-checkbox-wrapper
{
display
:
-webkit-inline-flex
;
display
:
-webkit-inline-box
;
display
:
inline-flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
vertical-align
:
middle
}
uni-checkbox
.uni-checkbox-input
{
margin-right
:
5px
;
-webkit-appearance
:
none
;
appearance
:
none
;
outline
:
0
;
border
:
1px
solid
#d1d1d1
;
background-color
:
#fff
;
border-radius
:
3px
;
width
:
22px
;
height
:
22px
;
position
:
relative
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-checked
{
color
:
#007aff
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-checked
:before
{
font
:
normal
normal
normal
14px
/
1
uni
;
content
:
"\EA08"
;
font-size
:
22px
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-48%
)
scale
(
.73
);
-webkit-transform
:
translate
(
-50%
,
-48%
)
scale
(
.73
)}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-disabled
{
background-color
:
#e1e1e1
}
uni-checkbox
.uni-checkbox-input.uni-checkbox-input-disabled
:before
{
color
:
#adadad
}
uni-checkbox-group
{
display
:
block
}
uni-icon
{
display
:
inline-block
;
font-size
:
0
;
box-sizing
:
border-box
}
uni-icon
[
hidden
]
{
display
:
none
}
uni-icon
>
i
{
font
:
normal
normal
normal
14px
/
1
weui
}
uni-icon
>
i
:before
{
margin
:
0
;
box-sizing
:
border-box
}
@font-face
{
font-weight
:
400
;
font-style
:
normal
;
font-family
:
weui
;
src
:
url("data:application/octet-stream;base64,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")
format
(
"truetype"
)}
.uni-icon-success
:before
{
content
:
"\EA06"
}
.uni-icon-success_circle
:before
{
content
:
"\EA07"
}
.uni-icon-success_no_circle
:before
{
content
:
"\EA08"
}
.uni-icon-safe_success
:before
{
content
:
"\EA04"
}
.uni-icon-safe_warn
:before
{
content
:
"\EA05"
}
.uni-icon-info
:before
{
content
:
"\EA03"
}
.uni-icon-info_circle
:before
{
content
:
"\EA0C"
}
.uni-icon-warn
:before
{
content
:
"\EA0B"
}
.uni-icon-waiting
:before
{
content
:
"\EA09"
}
.uni-icon-waiting_circle
:before
{
content
:
"\EA0A"
}
.uni-icon-circle
:before
{
content
:
"\EA01"
}
.uni-icon-cancel
:before
{
content
:
"\EA0D"
}
.uni-icon-download
:before
{
content
:
"\EA02"
}
.uni-icon-search
:before
{
content
:
"\EA0E"
}
.uni-icon-clear
:before
{
content
:
"\EA0F"
}
.uni-icon-safe_success
,
.uni-icon-success
,
.uni-icon-success_circle
,
.uni-icon-success_no_circle
{
color
:
#007aff
}
.uni-icon-safe_warn
{
color
:
#ffbe00
}
.uni-icon-info
{
color
:
#10aeff
}
.uni-icon-info_circle
{
color
:
#007aff
}
.uni-icon-warn
{
color
:
#f76260
}
.uni-icon-waiting
,
.uni-icon-waiting_circle
{
color
:
#10aeff
}
.uni-icon-circle
{
color
:
#c9c9c9
}
.uni-icon-cancel
{
color
:
#f43530
}
.uni-icon-download
{
color
:
#007aff
}
.uni-icon-clear
,
.uni-icon-search
{
color
:
#b2b2b2
}
uni-image
{
width
:
320px
;
height
:
240px
;
display
:
inline-block
;
overflow
:
hidden
;
position
:
relative
}
uni-image
[
hidden
]
{
display
:
none
}
uni-image
>
div
,
uni-image
>
img
{
width
:
100%
;
height
:
100%
}
uni-image
>
img
{
-webkit-touch-callout
:
none
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
display
:
block
;
position
:
absolute
;
top
:
0
;
left
:
0
;
opacity
:
0
}
uni-image
>
.uni-image-will-change
{
will-change
:
transform
}
uni-input
{
display
:
block
;
font-size
:
16px
;
line-height
:
1.4em
;
height
:
1.4em
;
min-height
:
1.4em
;
overflow
:
hidden
}
uni-input
[
hidden
]
{
display
:
none
}
.uni-input-form
,
.uni-input-input
,
.uni-input-placeholder
,
.uni-input-wrapper
{
outline
:
none
;
border
:
none
;
padding
:
0
;
margin
:
0
;
text-decoration
:
inherit
}
.uni-input-form
,
.uni-input-wrapper
{
display
:
block
;
position
:
relative
;
width
:
100%
;
height
:
100%
}
.uni-input-input
,
.uni-input-placeholder
{
width
:
100%
}
.uni-input-placeholder
{
position
:
absolute
;
top
:
50%
;
left
:
0
;
-webkit-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
color
:
grey
;
overflow
:
hidden
;
text-overflow
:
clip
;
white-space
:
pre
;
word-break
:
keep-all
;
pointer-events
:
none
}
.uni-input-input
{
display
:
block
;
height
:
100%
;
background
:
none
;
color
:
inherit
;
opacity
:
1
;
-webkit-text-fill-color
:
currentcolor
;
font
:
inherit
;
line-height
:
inherit
;
letter-spacing
:
inherit
;
text-align
:
inherit
;
text-indent
:
inherit
;
text-transform
:
inherit
;
text-shadow
:
inherit
}
.uni-input-input
[
type
=
search
]
::-webkit-search-cancel-button
{
display
:
none
}
.uni-input-input
::-webkit-inner-spin-button
,
.uni-input-input
::-webkit-outer-spin-button
{
-webkit-appearance
:
none
;
margin
:
0
}
.uni-input-input
[
type
=
number
]
{
-moz-appearance
:
textfield
}
uni-movable-area
{
display
:
block
;
position
:
relative
;
width
:
10px
;
height
:
10px
}
uni-movable-area
[
hidden
]
{
display
:
none
}
uni-movable-view
{
display
:
inline-block
;
width
:
10px
;
height
:
10px
;
top
:
0
;
left
:
0
;
position
:
absolute
}
uni-movable-view
[
hidden
]
{
display
:
none
}
.navigator-hover
{
background-color
:
rgba
(
0
,
0
,
0
,
.1
);
opacity
:
.7
}
uni-navigator
{
height
:
auto
;
width
:
auto
;
display
:
block
}
uni-navigator
[
hidden
]
{
display
:
none
}
uni-picker-view-column
{
-webkit-flex
:
1
;
-webkit-box-flex
:
1
;
flex
:
1
;
position
:
relative
;
height
:
100%
;
overflow
:
hidden
}
uni-picker-view-column
[
hidden
]
{
display
:
none
}
.uni-picker-view-group
{
height
:
100%
}
.uni-picker-view-mask
{
transform
:
translateZ
(
0
);
-webkit-transform
:
translateZ
(
0
);
top
:
0
;
height
:
100%
;
margin
:
0
auto
;
background
:
-webkit-linear-gradient
(
top
,
hsla
(
0
,
0%
,
100%
,
.95
),
hsla
(
0
,
0%
,
100%
,
.6
)),
-webkit-linear-gradient
(
bottom
,
hsla
(
0
,
0%
,
100%
,
.95
),
hsla
(
0
,
0%
,
100%
,
.6
));
background
:
linear-gradient
(
180deg
,
hsla
(
0
,
0%
,
100%
,
.95
),
hsla
(
0
,
0%
,
100%
,
.6
)),
linear-gradient
(
0deg
,
hsla
(
0
,
0%
,
100%
,
.95
),
hsla
(
0
,
0%
,
100%
,
.6
));
background-position
:
top
,
bottom
;
background-size
:
100%
102px
;
background-repeat
:
no-repeat
}
.uni-picker-view-indicator
{
height
:
34px
;
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
)}
.uni-picker-view-indicator
,
.uni-picker-view-mask
{
position
:
absolute
;
left
:
0
;
width
:
100%
;
z-index
:
3
;
pointer-events
:
none
}
.uni-picker-view-content
{
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
will-change
:
transform
;
padding
:
102px
0
}
.uni-picker-view-content
>*
{
height
:
34px
;
overflow
:
hidden
}
.uni-picker-view-indicator
:before
{
top
:
0
;
border-top
:
1px
solid
#e5e5e5
;
-webkit-transform-origin
:
0
0
;
transform-origin
:
0
0
;
-webkit-transform
:
scaleY
(
.5
);
transform
:
scaleY
(
.5
)}
.uni-picker-view-indicator
:after
{
bottom
:
0
;
border-bottom
:
1px
solid
#e5e5e5
;
-webkit-transform-origin
:
0
100%
;
transform-origin
:
0
100%
;
-webkit-transform
:
scaleY
(
.5
);
transform
:
scaleY
(
.5
)}
.uni-picker-view-indicator
:after
,
.uni-picker-view-indicator
:before
{
content
:
" "
;
position
:
absolute
;
left
:
0
;
right
:
0
;
height
:
1px
;
color
:
#e5e5e5
}
uni-picker-view
{
display
:
block
}
uni-picker-view
.uni-picker-view-wrapper
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
flex
;
position
:
relative
;
overflow
:
hidden
;
height
:
100%
}
uni-picker-view
[
hidden
]
{
display
:
none
}
uni-progress
{
display
:
-webkit-flex
;
display
:
-webkit-box
;
display
:
flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
}
uni-progress
[
hidden
]
{
display
:
none
}
.uni-progress-bar
{
-webkit-flex
:
1
;
-webkit-box-flex
:
1
;
flex
:
1
}
.uni-progress-inner-bar
{
width
:
0
;
height
:
100%
}
.uni-progress-info
{
margin-top
:
0
;
margin-bottom
:
0
;
min-width
:
2em
;
margin-left
:
15px
;
font-size
:
16px
}
uni-radio-group
[
hidden
]
{
display
:
none
}
uni-radio
{
-webkit-tap-highlight-color
:
transparent
;
display
:
inline-block
}
uni-radio
[
hidden
]
{
display
:
none
}
uni-radio
.uni-radio-wrapper
{
display
:
-webkit-inline-flex
;
display
:
-webkit-inline-box
;
display
:
inline-flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
vertical-align
:
middle
}
uni-radio
.uni-radio-input
{
-webkit-appearance
:
none
;
appearance
:
none
;
margin-right
:
5px
;
outline
:
0
;
border
:
1px
solid
#d1d1d1
;
background-color
:
#fff
;
border-radius
:
50%
;
width
:
22px
;
height
:
22px
;
position
:
relative
}
uni-radio
.uni-radio-input.uni-radio-input-checked
:before
{
font
:
normal
normal
normal
14px
/
1
uni
;
content
:
"\EA08"
;
color
:
#fff
;
font-size
:
18px
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-48%
)
scale
(
.73
);
-webkit-transform
:
translate
(
-50%
,
-48%
)
scale
(
.73
)}
uni-radio
.uni-radio-input.uni-radio-input-disabled
{
background-color
:
#e1e1e1
;
border-color
:
#d1d1d1
}
uni-radio
.uni-radio-input.uni-radio-input-disabled
:before
{
color
:
#adadad
}
uni-radio-group
{
display
:
block
}
@-webkit-keyframes
once-show
{
0
%
{
top
:
0
}}
@keyframes
once-show
{
0
%
{
top
:
0
}}
uni-resize-sensor
,
uni-resize-sensor
>
div
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
overflow
:
hidden
}
uni-resize-sensor
{
display
:
block
;
z-index
:
-1
;
visibility
:
hidden
;
-webkit-animation
:
once-show
1ms
;
animation
:
once-show
1ms
}
uni-resize-sensor
>
div
>
div
{
position
:
absolute
;
left
:
0
;
top
:
0
}
uni-resize-sensor
>
div
:first-child
>
div
{
width
:
100000px
;
height
:
100000px
}
uni-resize-sensor
>
div
:last-child
>
div
{
width
:
200%
;
height
:
200%
}
uni-scroll-view
{
display
:
block
;
width
:
100%
}
uni-scroll-view
[
hidden
]
{
display
:
none
}
.uni-scroll-view
{
position
:
relative
;
-webkit-overflow-scrolling
:
touch
;
width
:
100%
;
height
:
100%
;
max-height
:
inherit
}
uni-slider
{
margin
:
10px
18px
;
padding
:
0
;
display
:
block
}
uni-slider
[
hidden
]
{
display
:
none
}
uni-slider
.uni-slider-wrapper
{
display
:
-webkit-flex
;
display
:
-webkit-box
;
display
:
flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
min-height
:
16px
}
uni-slider
.uni-slider-tap-area
{
-webkit-flex
:
1
;
-webkit-box-flex
:
1
;
flex
:
1
;
padding
:
8px
0
}
uni-slider
.uni-slider-handle-wrapper
{
position
:
relative
;
height
:
2px
;
border-radius
:
5px
;
background-color
:
#e9e9e9
;
cursor
:
pointer
;
-webkit-tap-highlight-color
:
transparent
}
uni-slider
.uni-slider-handle-wrapper
,
uni-slider
.uni-slider-track
{
-webkit-transition
:
background-color
.3s
ease
;
transition
:
background-color
.3s
ease
}
uni-slider
.uni-slider-track
{
height
:
100%
;
border-radius
:
6px
;
background-color
:
#007aff
}
uni-slider
.uni-slider-handle
,
uni-slider
.uni-slider-thumb
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
cursor
:
pointer
;
border-radius
:
50%
;
-webkit-transition
:
border-color
.3s
ease
;
transition
:
border-color
.3s
ease
}
uni-slider
.uni-slider-handle
{
width
:
28px
;
height
:
28px
;
margin-top
:
-14px
;
margin-left
:
-14px
;
background-color
:
rgba
(
0
,
0
,
0
,
0
);
z-index
:
3
}
uni-slider
.uni-slider-thumb
{
z-index
:
2
;
box-shadow
:
0
0
4px
rgba
(
0
,
0
,
0
,
.2
)}
uni-slider
.uni-slider-step
{
position
:
absolute
;
width
:
100%
;
height
:
2px
;
background
:
rgba
(
0
,
0
,
0
,
0
);
z-index
:
1
}
uni-slider
.uni-slider-value
{
color
:
#888
;
font-size
:
14px
;
margin-left
:
1em
}
uni-slider
.uni-slider-disabled
.uni-slider-track
{
background-color
:
#ccc
}
uni-slider
.uni-slider-disabled
.uni-slider-thumb
{
background-color
:
#fff
;
border-color
:
#ccc
}
uni-swiper-item
{
display
:
block
;
overflow
:
hidden
;
will-change
:
transform
;
position
:
absolute
;
width
:
100%
;
height
:
100%
}
uni-swiper-item
[
hidden
]
{
display
:
none
}
uni-swiper
{
display
:
block
;
height
:
150px
}
uni-swiper
[
hidden
]
{
display
:
none
}
uni-swiper
.uni-swiper-wrapper
{
overflow
:
hidden
;
position
:
relative
;
width
:
100%
;
height
:
100%
;
-webkit-transform
:
translateZ
(
0
);
transform
:
translateZ
(
0
)}
uni-swiper
.uni-swiper-slides
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
}
uni-swiper
.uni-swiper-slide-frame
{
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
;
will-change
:
transform
}
uni-swiper
.uni-swiper-dots
{
position
:
absolute
;
font-size
:
0
}
uni-swiper
.uni-swiper-dots-horizontal
{
left
:
50%
;
bottom
:
10px
;
text-align
:
center
;
white-space
:
nowrap
;
-webkit-transform
:
translate
(
-50%
);
transform
:
translate
(
-50%
)}
uni-swiper
.uni-swiper-dots-horizontal
.uni-swiper-dot
{
margin-right
:
8px
}
uni-swiper
.uni-swiper-dots-horizontal
.uni-swiper-dot
:last-child
{
margin-right
:
0
}
uni-swiper
.uni-swiper-dots-vertical
{
right
:
10px
;
top
:
50%
;
text-align
:
right
;
-webkit-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
)}
uni-swiper
.uni-swiper-dots-vertical
.uni-swiper-dot
{
display
:
block
;
margin-bottom
:
9px
}
uni-swiper
.uni-swiper-dots-vertical
.uni-swiper-dot
:last-child
{
margin-bottom
:
0
}
uni-swiper
.uni-swiper-dot
{
display
:
inline-block
;
width
:
8px
;
height
:
8px
;
cursor
:
pointer
;
-webkit-transition-property
:
background-color
;
transition-property
:
background-color
;
-webkit-transition-timing-function
:
ease
;
transition-timing-function
:
ease
;
background
:
rgba
(
0
,
0
,
0
,
.3
);
border-radius
:
50%
}
uni-swiper
.uni-swiper-dot-active
{
background-color
:
#000
}
uni-switch
{
-webkit-tap-highlight-color
:
transparent
;
display
:
inline-block
}
uni-switch
[
hidden
]
{
display
:
none
}
uni-switch
.uni-switch-wrapper
{
display
:
-webkit-inline-flex
;
display
:
-webkit-inline-box
;
display
:
inline-flex
;
-webkit-align-items
:
center
;
-webkit-box-align
:
center
;
align-items
:
center
;
vertical-align
:
middle
}
uni-switch
.uni-switch-input
{
-webkit-appearance
:
none
;
appearance
:
none
;
position
:
relative
;
width
:
52px
;
height
:
32px
;
margin-right
:
5px
;
border
:
1px
solid
#dfdfdf
;
outline
:
0
;
border-radius
:
16px
;
box-sizing
:
border-box
;
background-color
:
#dfdfdf
;
-webkit-transition
:
background-color
.1s
,
border
.1s
;
transition
:
background-color
.1s
,
border
.1s
}
uni-switch
.uni-switch-input
:before
{
width
:
50px
;
background-color
:
#fdfdfd
}
uni-switch
.uni-switch-input
:after
,
uni-switch
.uni-switch-input
:before
{
content
:
" "
;
position
:
absolute
;
top
:
0
;
left
:
0
;
height
:
30px
;
border-radius
:
15px
;
transition
:
-webkit-transform
.3s
;
-webkit-transition
:
-webkit-transform
.3s
;
transition
:
transform
.3s
;
transition
:
transform
.3s
,
-webkit-transform
.3s
}
uni-switch
.uni-switch-input
:after
{
width
:
30px
;
background-color
:
#fff
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
.4
)}
uni-switch
.uni-switch-input.uni-switch-input-checked
{
border-color
:
#007aff
;
background-color
:
#007aff
}
uni-switch
.uni-switch-input.uni-switch-input-checked
:before
{
-webkit-transform
:
scale
(
0
);
transform
:
scale
(
0
)}
uni-switch
.uni-switch-input.uni-switch-input-checked
:after
{
-webkit-transform
:
translateX
(
20px
);
transform
:
translateX
(
20px
)}
uni-switch
.uni-checkbox-input
{
margin-right
:
5px
;
-webkit-appearance
:
none
;
appearance
:
none
;
outline
:
0
;
border
:
1px
solid
#d1d1d1
;
background-color
:
#fff
;
border-radius
:
3px
;
width
:
22px
;
height
:
22px
;
position
:
relative
;
color
:
#007aff
}
uni-switch
.uni-checkbox-input.uni-checkbox-input-checked
:before
{
font
:
normal
normal
normal
14px
/
1
uni
;
content
:
"\EA08"
;
color
:
inherit
;
font-size
:
22px
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-48%
)
scale
(
.73
);
-webkit-transform
:
translate
(
-50%
,
-48%
)
scale
(
.73
)}
uni-switch
.uni-checkbox-input.uni-checkbox-input-disabled
{
background-color
:
#e1e1e1
}
uni-switch
.uni-checkbox-input.uni-checkbox-input-disabled
:before
{
color
:
#adadad
}
uni-text
[
selectable
]
{
cursor
:
auto
;
user-select
:
text
;
-webkit-user-select
:
text
}
uni-textarea
{
width
:
300px
;
height
:
150px
;
display
:
block
;
position
:
relative
;
font-size
:
16px
;
line-height
:
normal
}
uni-textarea
[
hidden
]
{
display
:
none
}
uni-textarea
[
auto-height
]
.uni-textarea-textarea
{
overflow-y
:
hidden
}
.uni-textarea-compute
,
.uni-textarea-placeholder
,
.uni-textarea-textarea
,
.uni-textarea-wrapper
{
outline
:
none
;
border
:
none
;
padding
:
0
;
margin
:
0
;
text-decoration
:
inherit
}
.uni-textarea-wrapper
{
display
:
block
;
position
:
relative
;
width
:
100%
;
height
:
100%
}
.uni-textarea-compute
,
.uni-textarea-placeholder
,
.uni-textarea-textarea
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
left
:
0
;
top
:
0
;
white-space
:
pre-wrap
;
word-break
:
break-all
}
.uni-textarea-placeholder
{
color
:
grey
;
overflow
:
hidden
}
.uni-textarea-compute
{
visibility
:
hidden
;
height
:
auto
}
.uni-textarea-textarea
{
resize
:
none
;
background
:
none
;
color
:
inherit
;
opacity
:
1
;
-webkit-text-fill-color
:
currentcolor
;
font
:
inherit
;
line-height
:
inherit
;
letter-spacing
:
inherit
;
text-align
:
inherit
;
text-indent
:
inherit
;
text-transform
:
inherit
;
text-shadow
:
inherit
}
.uni-textarea-textarea-ios
{
width
:
auto
;
right
:
0
;
margin
:
0
-3px
}
uni-view
{
display
:
block
}
uni-view
[
hidden
]
{
display
:
none
}
\ No newline at end of file
packages/uni-app-plus/dist/view.umd.js
浏览文件 @
7210b660
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
packages/uni-app-plus/dist/view.umd.min.js
浏览文件 @
7210b660
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js
浏览文件 @
7210b660
...
...
@@ -17,7 +17,7 @@ const {
parseComponents
}
=
require
(
'
./util
'
)
function
getDefineComponents
(
components
)
{
function
getDefineComponents
(
components
)
{
return
components
.
map
(({
name
,
source
...
...
@@ -26,7 +26,7 @@ function getDefineComponents (components) {
const
appVueFilePath
=
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
app.vue
'
)
function
getStylesCode
(
loaderContext
)
{
function
getStylesCode
(
loaderContext
)
{
if
(
!
fs
.
existsSync
(
appVueFilePath
))
{
return
}
...
...
@@ -71,9 +71,9 @@ function getStylesCode (loaderContext) {
const
needsHotReload
=
false
const
id
=
hash
(
isProduction
?
(
shortFilePath
+
'
\n
'
+
source
)
:
shortFilePath
isProduction
?
(
shortFilePath
+
'
\n
'
+
source
)
:
shortFilePath
)
stylesCode
=
genStylesCode
(
...
...
@@ -83,17 +83,24 @@ function getStylesCode (loaderContext) {
resourcePath
,
stringifyRequest
,
needsHotReload
,
isServer
||
isShadow
// needs explicit injection?
true
// needs explicit injection?
)
}
return
stylesCode
.
replace
(
/main
\.
js/g
,
'
App.vue
'
)
}
module
.
exports
=
function
(
source
,
map
)
{
// 解析自定义组件,及 App 样式
return
`import 'uni-pages'
${
getStylesCode
(
this
)}
${
getDefineComponents
(
parseComponents
(
source
,
traverse
)).
join
(
'
\n
'
)}
UniViewJSBridge.publishHandler('webviewReady')
module
.
exports
=
function
(
source
,
map
)
{
return
`
import 'uni-pages'
function initView(){
${
getStylesCode
(
this
)}
${
getDefineComponents
(
parseComponents
(
source
,
traverse
)).
join
(
'
\n
'
)}
UniViewJSBridge.publishHandler('webviewReady')
}
if(typeof plus !== 'undefined'){
initView()
} else {
document.addEventListener('plusready',initView)
}
`
}
packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js
浏览文件 @
7210b660
...
...
@@ -485,7 +485,9 @@ module.exports = function (pagesJson, userManifestJson) {
'
description
'
:
'
UniNView原生渲染
'
}
// TODO 需要考虑 condition
manifestJson
.
plus
.
launchwebview
.
id
=
'
1
'
// 首页 id 固定 为 1
manifestJson
.
plus
.
launchwebview
.
id
=
'
1
'
// 首页 id 固定 为 1
// 删除首页 style 中的 uni-app 配置(不注入 app-view.js)
delete
manifestJson
.
plus
.
launchwebview
[
'
uni-app
'
]
if
(
appJson
.
page
[
appJson
.
entryPagePath
].
nvue
)
{
// 首页是 nvue
manifestJson
.
launch_path
=
''
// 首页地址为空
...
...
src/core/service/bridge/subscribe.js
浏览文件 @
7210b660
...
...
@@ -9,7 +9,8 @@ export default function initSubscribe (subscribe, {
getCurrentPages
})
{
function
createPageEvent
(
eventType
)
{
return
function
(
args
,
pageId
)
{
return
function
(
args
,
pageId
)
{
pageId
=
parseInt
(
pageId
)
const
pages
=
getCurrentPages
()
const
page
=
pages
.
find
(
page
=>
page
.
$page
.
id
===
pageId
)
if
(
page
)
{
...
...
@@ -47,9 +48,12 @@ export default function initSubscribe (subscribe, {
}
callback
(
res
)
}
}
if
(
__PLATFORM__
===
'
h5
'
)
{
subscribe
(
'
onPageReady
'
,
createPageEvent
(
'
onReady
'
))
}
subscribe
(
'
onPageReady
'
,
createPageEvent
(
'
onReady
'
))
subscribe
(
'
onPageScroll
'
,
createPageEvent
(
'
onPageScroll
'
))
subscribe
(
'
onReachBottom
'
,
createPageEvent
(
'
onReachBottom
'
))
...
...
src/core/view/bridge/subscribe/index.js
浏览文件 @
7210b660
import
{
isPlainObject
,
supportsPassive
}
from
'
uni-shared
'
import
{
hasLifecycleHook
}
from
'
uni-helpers/index
'
import
{
NAVBAR_HEIGHT
,
TABBAR_HEIGHT
}
from
'
uni-helpers/constants
'
import
subscribeApis
from
'
uni-api-subscribe
'
import
{
pageScrollTo
,
disableScroll
,
createScrollListener
pageScrollTo
}
from
'
./scroll
'
import
subscribeApis
from
'
uni-api-subscribe
'
const
passiveOptions
=
supportsPassive
?
{
passive
:
false
}
:
false
function
updateCssVar
(
vm
)
{
if
(
uni
.
canIUse
(
'
css.var
'
))
{
const
pageVm
=
vm
.
$parent
.
$parent
const
windowTop
=
pageVm
.
showNavigationBar
&&
pageVm
.
navigationBar
.
type
!==
'
transparent
'
&&
pageVm
.
navigationBar
.
type
!==
'
float
'
?
(
NAVBAR_HEIGHT
+
'
px
'
)
:
'
0px
'
const
windowBottom
=
getApp
().
$children
[
0
].
showTabBar
?
(
TABBAR_HEIGHT
+
'
px
'
)
:
'
0px
'
const
style
=
document
.
documentElement
.
style
style
.
setProperty
(
'
--window-top
'
,
windowTop
)
style
.
setProperty
(
'
--window-bottom
'
,
windowBottom
)
console
.
debug
(
`
${
vm
.
$page
.
route
}
[
${
vm
.
$page
.
id
}
]:--window-top=
${
windowTop
}
`
)
console
.
debug
(
`
${
vm
.
$page
.
route
}
[
${
vm
.
$page
.
id
}
]:--window-bottom=
${
windowBottom
}
`
)
}
}
import
initPlatformSubscribe
from
'
uni-platform/view/bridge/subscribe
'
export
default
function
initSubscribe
(
subscribe
)
{
Object
.
keys
(
subscribeApis
).
forEach
(
name
=>
{
...
...
@@ -46,52 +13,5 @@ export default function initSubscribe (subscribe) {
subscribe
(
'
pageScrollTo
'
,
pageScrollTo
)
if
(
__PLATFORM__
===
'
h5
'
)
{
let
scrollListener
=
false
let
disableScrollListener
=
false
subscribe
(
'
onPageLoad
'
,
vm
=>
{
// 用户 onLoad 之前 update
updateCssVar
(
vm
)
})
subscribe
(
'
onPageShow
'
,
vm
=>
{
const
pageVm
=
vm
.
$parent
.
$parent
if
(
vm
.
_isMounted
)
{
// 非首次 show 才 update(首次 show 的时候在 onPageLoad 中触发了)
updateCssVar
(
vm
)
}
if
(
disableScrollListener
)
{
document
.
removeEventListener
(
'
touchmove
'
,
disableScrollListener
,
passiveOptions
)
}
if
(
pageVm
.
disableScroll
)
{
disableScrollListener
=
disableScroll
document
.
addEventListener
(
'
touchmove
'
,
disableScrollListener
,
passiveOptions
)
}
const
enablePageScroll
=
hasLifecycleHook
(
vm
.
$options
,
'
onPageScroll
'
)
const
enablePageReachBottom
=
hasLifecycleHook
(
vm
.
$options
,
'
onReachBottom
'
)
const
onReachBottomDistance
=
pageVm
.
onReachBottomDistance
const
enableTransparentTitleNView
=
(
isPlainObject
(
pageVm
.
titleNView
)
&&
pageVm
.
titleNView
.
type
===
'
transparent
'
)
||
(
isPlainObject
(
pageVm
.
navigationBar
)
&&
pageVm
.
navigationBar
.
type
===
'
transparent
'
)
if
(
scrollListener
)
{
document
.
removeEventListener
(
'
scroll
'
,
scrollListener
)
}
if
(
enableTransparentTitleNView
||
enablePageScroll
||
enablePageReachBottom
)
{
// 初始化 scroll 监听
scrollListener
=
createScrollListener
(
vm
.
$page
.
id
,
{
enablePageScroll
,
enablePageReachBottom
,
onReachBottomDistance
,
enableTransparentTitleNView
})
requestAnimationFrame
(
function
()
{
// 避免监听太早,直接触发了 scroll
document
.
addEventListener
(
'
scroll
'
,
scrollListener
)
})
}
})
}
}
initPlatformSubscribe
(
subscribe
)
}
src/platforms/app-plus/service/constants.js
浏览文件 @
7210b660
...
...
@@ -7,6 +7,8 @@ export const ANI_CLOSE = downgrade ? 'slide-out-right' : 'pop-out'
export
const
TITLEBAR_HEIGHT
=
44
export
const
ON_REACH_BOTTOM_DISTANCE
=
50
export
const
VIEW_WEBVIEW_PATH
=
'
_www/__uniappview.html
'
export
const
V_FOR
=
'
f
'
...
...
src/platforms/app-plus/service/framework/page.js
浏览文件 @
7210b660
...
...
@@ -7,11 +7,6 @@ import {
navigateFinish
}
from
'
./navigator
'
import
{
VD_SYNC
,
PAGE_CREATE
}
from
'
../../constants
'
import
tabBar
from
'
../framework/tab-bar
'
import
{
...
...
@@ -108,16 +103,6 @@ export function registerPage ({
if
(
__PLATFORM__
===
'
app-plus
'
)
{
if
(
!
webview
.
nvue
)
{
const
pageId
=
webview
.
id
// 通知页面已开始创建
UniServiceJSBridge
.
publishHandler
(
VD_SYNC
,
{
data
:
[
[
PAGE_CREATE
,
[
pageId
,
route
]]
],
options
:
{
timestamp
:
Date
.
now
()
}
},
[
pageId
])
try
{
createPage
(
route
,
pageId
,
query
,
pageInstance
).
$mount
()
}
catch
(
e
)
{
...
...
src/platforms/app-plus/service/framework/plugins/data.js
浏览文件 @
7210b660
...
...
@@ -41,7 +41,6 @@ export function initData (Vue) {
}
diff
(
this
.
_$newData
,
this
.
_$data
,
this
.
_$vdMountedData
)
this
.
_$data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
_$newData
))
console
.
log
(
`[
${
this
.
_$id
}
] mounted `
+
Date
.
now
())
if
(
this
.
mpType
===
'
page
'
)
{
// 页面 mounted 之后,第一次同步数据
this
.
_$vd
.
flush
()
...
...
@@ -58,7 +57,6 @@ export function initData (Vue) {
// 子组件 updated 时,可能会增加父组件的 diffData,如 slot 等情况
diff
(
this
.
_$newData
,
this
.
_$data
,
this
.
_$vdUpdatedData
)
this
.
_$data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
_$newData
))
console
.
log
(
`[
${
this
.
_$id
}
] updated `
+
Date
.
now
())
// setTimeout 一下再 nextTick( 直接 nextTick 的话,会紧接着该 updated 做 flush,导致父组件 updated 数据被丢弃)
this
.
_$vd
.
initialized
&&
setTimeout
(()
=>
{
this
.
$nextTick
(
this
.
_$vd
.
flush
.
bind
(
this
.
_$vd
))
...
...
@@ -87,7 +85,6 @@ export function initData (Vue) {
this
.
_$vd
.
addVm
(
this
)
this
.
_$vdMountedData
=
Object
.
create
(
null
)
this
.
_$setData
(
MOUNTED_DATA
,
this
.
_$vdMountedData
)
console
.
log
(
`[
${
this
.
_$id
}
] beforeCreate `
+
Date
.
now
())
this
.
_$data
=
Object
.
create
(
null
)
this
.
_$newData
=
Object
.
create
(
null
)
}
...
...
@@ -98,7 +95,6 @@ export function initData (Vue) {
}
this
.
_$vdUpdatedData
=
Object
.
create
(
null
)
this
.
_$setData
(
UPDATED_DATA
,
this
.
_$vdUpdatedData
)
console
.
log
(
`[
${
this
.
_$id
}
] beforeUpdate `
+
Date
.
now
())
this
.
_$newData
=
Object
.
create
(
null
)
},
beforeDestroy
()
{
...
...
src/platforms/app-plus/service/framework/plugins/lifecycle.js
浏览文件 @
7210b660
import
{
hasOwn
}
from
'
uni-shared
'
import
{
hasLifecycleHook
}
from
'
uni-helpers/index
'
import
{
callPageHook
}
from
'
uni-core/service/plugins/util
'
...
...
@@ -7,6 +15,37 @@ import {
}
from
'
uni-core/service/plugins/lifecycle
'
import
{
VD_SYNC
,
PAGE_CREATE
}
from
'
../../../constants
'
import
{
ON_REACH_BOTTOM_DISTANCE
}
from
'
../../constants
'
function
parsePageCreateOptions
(
vm
,
route
)
{
const
pagePath
=
'
/
'
+
route
const
routeOptions
=
__uniRoutes
.
find
(
route
=>
route
.
path
===
pagePath
)
const
windowOptions
=
Object
.
assign
({},
__uniConfig
.
window
,
routeOptions
.
window
)
const
disableScroll
=
windowOptions
.
disableScroll
===
true
?
1
:
0
const
onReachBottomDistance
=
hasOwn
(
windowOptions
,
'
onReachBottomDistance
'
)
?
parseInt
(
windowOptions
.
onReachBottomDistance
)
:
ON_REACH_BOTTOM_DISTANCE
const
onPageScroll
=
hasLifecycleHook
(
vm
.
$options
,
'
onPageScroll
'
)
?
1
:
0
const
onPageReachBottom
=
hasLifecycleHook
(
vm
.
$options
,
'
onReachBottom
'
)
?
1
:
0
return
{
disableScroll
,
onPageScroll
,
onPageReachBottom
,
onReachBottomDistance
}
}
export
function
initLifecycle
(
Vue
)
{
lifecycleMixin
(
Vue
)
...
...
@@ -16,6 +55,18 @@ export function initLifecycle (Vue) {
this
.
$scope
=
this
.
$options
.
pageInstance
this
.
$scope
.
$vm
=
this
delete
this
.
$options
.
pageInstance
const
route
=
this
.
$scope
.
route
const
pageId
=
this
.
$scope
.
$page
.
id
// 通知页面已开始创建
UniServiceJSBridge
.
publishHandler
(
VD_SYNC
,
{
data
:
[
[
PAGE_CREATE
,
[
pageId
,
route
,
parsePageCreateOptions
(
this
,
route
)]]
],
options
:
{
timestamp
:
Date
.
now
()
}
},
[
pageId
])
}
},
created
()
{
...
...
src/platforms/app-plus/service/framework/plugins/vdom-sync.js
浏览文件 @
7210b660
...
...
@@ -22,7 +22,6 @@ const handleVdData = {
[
UI_EVENT
]:
function
onUIEvent
(
vdBatchEvent
,
vd
)
{
vdBatchEvent
.
forEach
(([
cid
,
nid
,
event
])
=>
{
nid
=
String
(
nid
)
console
.
log
(
`[EVENT]`
,
cid
,
nid
,
event
)
event
.
preventDefault
=
noop
event
.
stopPropagation
=
noop
const
target
=
vd
.
elements
.
find
(
target
=>
target
.
cid
===
cid
&&
target
.
nid
===
nid
)
...
...
src/platforms/app-plus/service/framework/subscribe-handlers/index.js
浏览文件 @
7210b660
import
initSubscribe
from
'
uni-core/service/bridge/subscribe
'
import
{
VD_SYNC
,
VD_SYNC_CALLBACK
,
...
...
@@ -16,15 +18,28 @@ import onVdSyncCallback from './on-vd-sync-callback'
export
function
initSubscribeHandlers
()
{
const
{
subscribe
,
publishHandler
,
subscribeHandler
}
=
UniServiceJSBridge
initSubscribe
(
subscribe
,
{
getApp
,
getCurrentPages
})
registerPlusMessage
(
'
subscribeHandler
'
,
(
data
)
=>
{
subscribeHandler
(
data
.
type
,
data
.
data
,
data
.
pageId
)
})
// TODO 检测目标 preloadWebview 是否已准备好,因为 preloadWebview 准备好时,此处代码还没执行
subscribe
(
WEBVIEW_READY
,
onWebviewReady
)
const
entryPagePath
=
'
/
'
+
__uniConfig
.
entryPagePath
const
routeOptions
=
__uniRoutes
.
find
(
route
=>
route
.
path
===
entryPagePath
)
if
(
!
routeOptions
.
meta
.
isNVue
)
{
// 首页是 vue
// 防止首页 webview 初始化过早, service 还未开始监听
publishHandler
(
WEBVIEW_READY
,
Object
.
create
(
null
),
[
1
])
}
subscribe
(
VD_SYNC
,
onVdSync
)
subscribe
(
VD_SYNC_CALLBACK
,
onVdSyncCallback
)
}
src/platforms/app-plus/service/framework/subscribe-handlers/on-webview-ready.js
浏览文件 @
7210b660
...
...
@@ -8,12 +8,18 @@ import {
perf
}
from
'
../perf
'
export
default
function
onWebviewReady
(
data
,
pageId
)
{
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
console
.
log
(
'
[uni-app] onWebviewReady.preloadWebview
'
+
(
preloadWebview
&&
preloadWebview
.
id
))
}
let
isLaunchWebviewReady
=
false
// 目前首页双向确定 ready,可能会导致触发两次 onWebviewReady(主要是 Android)
export
default
function
onWebviewReady
(
data
,
pageId
)
{
const
isLaunchWebview
=
pageId
===
'
1
'
if
(
isLaunchWebview
&&
isLaunchWebviewReady
)
{
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
console
.
log
(
'
[uni-app] onLaunchWebviewReady.prevent
'
)
}
return
}
if
(
isLaunchWebview
)
{
// 首页
isLaunchWebviewReady
=
true
setPreloadWebview
(
plus
.
webview
.
getLaunchWebview
())
}
else
if
(
!
preloadWebview
)
{
// preloadWebview 不存在,重新加载一下
setPreloadWebview
(
plus
.
webview
.
getWebviewById
(
pageId
))
...
...
src/platforms/app-plus/view/bridge/subscribe/index.js
0 → 100644
浏览文件 @
7210b660
import
{
supportsPassive
}
from
'
uni-shared
'
import
{
disableScroll
as
disableScrollListener
,
createScrollListener
}
from
'
uni-core/view/bridge/subscribe/scroll
'
import
{
ON_PAGE_CREATE
}
from
'
../../constants
'
import
{
WEBVIEW_READY
}
from
'
../../../constants
'
const
passiveOptions
=
supportsPassive
?
{
passive
:
false
}
:
false
function
onPageCreate
({
disableScroll
,
onPageScroll
,
onPageReachBottom
,
onReachBottomDistance
},
pageId
)
{
if
(
disableScroll
)
{
document
.
addEventListener
(
'
touchmove
'
,
disableScrollListener
,
passiveOptions
)
}
else
if
(
onPageScroll
||
onPageReachBottom
)
{
requestAnimationFrame
(
function
()
{
// 避免监听太早,直接触发了 scroll
document
.
addEventListener
(
'
scroll
'
,
createScrollListener
(
pageId
,
{
enablePageScroll
:
onPageScroll
,
enablePageReachBottom
:
onPageReachBottom
,
onReachBottomDistance
}))
})
}
}
function
onWebviewReady
()
{
// service 主动发起检测
UniViewJSBridge
.
publishHandler
(
'
webviewReady
'
)
}
export
default
function
initSubscribe
(
subscribe
)
{
subscribe
(
WEBVIEW_READY
,
onWebviewReady
)
subscribe
(
ON_PAGE_CREATE
,
onPageCreate
)
}
src/platforms/app-plus/view/constants.js
0 → 100644
浏览文件 @
7210b660
export
const
ON_PAGE_CREATE
=
'
onPageCreate
'
src/platforms/app-plus/view/framework/plugins/data.js
浏览文件 @
7210b660
...
...
@@ -9,6 +9,10 @@ import {
VD_SYNC_CALLBACK
}
from
'
../../../constants
'
import
{
ON_PAGE_CREATE
}
from
'
../../constants
'
import
{
VDomSync
}
from
'
./vdom-sync
'
...
...
@@ -27,7 +31,7 @@ let PageVueComponent
const
handleData
=
{
[
PAGE_CREATE
]:
function
onPageCreate
(
data
)
{
const
[
pageId
,
pagePath
]
=
data
const
[
pageId
,
pagePath
,
pageOptions
]
=
data
document
.
title
=
`
${
pagePath
}
[
${
pageId
}
]`
// 设置当前页面伪对象,方便其他地方使用 getCurrentPages 获取当前页面 id,route
setCurrentPage
(
pageId
,
pagePath
)
...
...
@@ -35,6 +39,8 @@ const handleData = {
PageVueComponent
=
getPageVueComponent
(
pagePath
)
// 生成当前页面 vd
vd
=
new
VDomSync
(
pageId
)
// 通知页面创建,根据当前页面配置信息,初始化部分事件
UniViewJSBridge
.
subscribeHandler
(
ON_PAGE_CREATE
,
pageOptions
,
pageId
)
},
[
MOUNTED_DATA
]:
function
onMounted
(
data
)
{
vd
.
addVData
.
apply
(
vd
,
data
)
...
...
@@ -95,7 +101,6 @@ export function initData (Vue) {
}
if
(
this
.
_$vd
)
{
this
.
_$vd
.
initVm
(
this
)
console
.
log
(
`[
${
this
.
_$id
}
] beforeCreate `
+
Date
.
now
())
}
}
})
...
...
src/platforms/app-plus/view/framework/plugins/vdom-sync.js
浏览文件 @
7210b660
...
...
@@ -56,7 +56,6 @@ export class VDomSync {
}
flush
()
{
console
.
log
(
'
update....
'
,
this
.
addBatchVData
,
this
.
updateBatchVData
)
this
.
updateBatchVData
.
forEach
(([
cid
,
data
])
=>
{
const
vm
=
this
.
vms
[
cid
]
if
(
!
vm
)
{
...
...
src/platforms/h5/view/bridge/subscribe/index.js
0 → 100644
浏览文件 @
7210b660
import
{
isPlainObject
,
supportsPassive
}
from
'
uni-shared
'
import
{
hasLifecycleHook
}
from
'
uni-helpers/index
'
import
{
NAVBAR_HEIGHT
,
TABBAR_HEIGHT
}
from
'
uni-helpers/constants
'
import
{
disableScroll
,
createScrollListener
}
from
'
uni-core/view/bridge/subscribe/scroll
'
const
passiveOptions
=
supportsPassive
?
{
passive
:
false
}
:
false
function
updateCssVar
(
vm
)
{
if
(
uni
.
canIUse
(
'
css.var
'
))
{
const
pageVm
=
vm
.
$parent
.
$parent
const
windowTop
=
pageVm
.
showNavigationBar
&&
pageVm
.
navigationBar
.
type
!==
'
transparent
'
&&
pageVm
.
navigationBar
.
type
!==
'
float
'
?
(
NAVBAR_HEIGHT
+
'
px
'
)
:
'
0px
'
const
windowBottom
=
getApp
().
$children
[
0
].
showTabBar
?
(
TABBAR_HEIGHT
+
'
px
'
)
:
'
0px
'
const
style
=
document
.
documentElement
.
style
style
.
setProperty
(
'
--window-top
'
,
windowTop
)
style
.
setProperty
(
'
--window-bottom
'
,
windowBottom
)
console
.
debug
(
`
${
vm
.
$page
.
route
}
[
${
vm
.
$page
.
id
}
]:--window-top=
${
windowTop
}
`
)
console
.
debug
(
`
${
vm
.
$page
.
route
}
[
${
vm
.
$page
.
id
}
]:--window-bottom=
${
windowBottom
}
`
)
}
}
export
default
function
initSubscribe
(
subscribe
)
{
let
scrollListener
=
false
let
disableScrollListener
=
false
subscribe
(
'
onPageLoad
'
,
vm
=>
{
// 用户 onLoad 之前 update
updateCssVar
(
vm
)
})
subscribe
(
'
onPageShow
'
,
vm
=>
{
const
pageVm
=
vm
.
$parent
.
$parent
if
(
vm
.
_isMounted
)
{
// 非首次 show 才 update(首次 show 的时候在 onPageLoad 中触发了)
updateCssVar
(
vm
)
}
if
(
disableScrollListener
)
{
document
.
removeEventListener
(
'
touchmove
'
,
disableScrollListener
,
passiveOptions
)
}
if
(
pageVm
.
disableScroll
)
{
disableScrollListener
=
disableScroll
document
.
addEventListener
(
'
touchmove
'
,
disableScrollListener
,
passiveOptions
)
}
const
enablePageScroll
=
hasLifecycleHook
(
vm
.
$options
,
'
onPageScroll
'
)
const
enablePageReachBottom
=
hasLifecycleHook
(
vm
.
$options
,
'
onReachBottom
'
)
const
onReachBottomDistance
=
pageVm
.
onReachBottomDistance
const
enableTransparentTitleNView
=
(
isPlainObject
(
pageVm
.
titleNView
)
&&
pageVm
.
titleNView
.
type
===
'
transparent
'
)
||
(
isPlainObject
(
pageVm
.
navigationBar
)
&&
pageVm
.
navigationBar
.
type
===
'
transparent
'
)
if
(
scrollListener
)
{
document
.
removeEventListener
(
'
scroll
'
,
scrollListener
)
}
if
(
enableTransparentTitleNView
||
enablePageScroll
||
enablePageReachBottom
)
{
// 初始化 scroll 监听
scrollListener
=
createScrollListener
(
vm
.
$page
.
id
,
{
enablePageScroll
,
enablePageReachBottom
,
onReachBottomDistance
,
enableTransparentTitleNView
})
requestAnimationFrame
(
function
()
{
// 避免监听太早,直接触发了 scroll
document
.
addEventListener
(
'
scroll
'
,
scrollListener
)
})
}
})
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录