Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
10f51f22
U
uni-app
项目概览
DCloud
/
uni-app
4 个月 前同步成功
通知
731
Star
38707
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
10f51f22
编写于
7月 30, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' into alpha
上级
13a8971d
d854dc9d
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
475 addition
and
425 deletion
+475
-425
packages/uni-mp-alipay/dist/uni.mp.esm.js
packages/uni-mp-alipay/dist/uni.mp.esm.js
+8
-6
packages/uni-mp-baidu/dist/uni.mp.esm.js
packages/uni-mp-baidu/dist/uni.mp.esm.js
+8
-6
packages/uni-mp-qq/dist/uni.mp.esm.js
packages/uni-mp-qq/dist/uni.mp.esm.js
+8
-6
packages/uni-mp-toutiao/dist/uni.mp.esm.js
packages/uni-mp-toutiao/dist/uni.mp.esm.js
+8
-6
packages/uni-mp-weixin/dist/uni.mp.esm.js
packages/uni-mp-weixin/dist/uni.mp.esm.js
+8
-6
packages/uni-quickapp-webview/dist/uni.mp.esm.js
packages/uni-quickapp-webview/dist/uni.mp.esm.js
+8
-6
packages/uni-template-compiler/__tests__/compiler-mp-alipay.spec.js
...ni-template-compiler/__tests__/compiler-mp-alipay.spec.js
+5
-5
packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
...ni-template-compiler/__tests__/compiler-mp-weixin.spec.js
+12
-0
packages/uni-template-compiler/__tests__/compiler.spec.js
packages/uni-template-compiler/__tests__/compiler.spec.js
+2
-2
packages/uni-template-compiler/lib/script/traverse/data/attrs.js
...s/uni-template-compiler/lib/script/traverse/data/attrs.js
+15
-14
packages/uni-template-compiler/lib/script/traverse/data/event.js
...s/uni-template-compiler/lib/script/traverse/data/event.js
+3
-3
packages/uni-template-compiler/lib/template/generate.js
packages/uni-template-compiler/lib/template/generate.js
+4
-1
packages/uni-template-compiler/lib/template/traverse.js
packages/uni-template-compiler/lib/template/traverse.js
+8
-1
packages/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js
...vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js
+366
-359
src/platforms/app-plus/service/api/plugin/restore-global.js
src/platforms/app-plus/service/api/plugin/restore-global.js
+4
-2
src/platforms/app-plus/service/bridge.js
src/platforms/app-plus/service/bridge.js
+5
-1
src/platforms/mp-alipay/runtime/wrapper/util.js
src/platforms/mp-alipay/runtime/wrapper/util.js
+3
-1
未找到文件。
packages/uni-mp-alipay/dist/uni.mp.esm.js
浏览文件 @
10f51f22
...
...
@@ -174,12 +174,14 @@ function findHooks(vueOptions, hooks = new Set()) {
hooks
.
add
(
name
);
}
});
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
if
(
__VUE_OPTIONS_API__
)
{
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
}
}
}
return
hooks
;
...
...
packages/uni-mp-baidu/dist/uni.mp.esm.js
浏览文件 @
10f51f22
...
...
@@ -165,12 +165,14 @@ function findHooks(vueOptions, hooks = new Set()) {
hooks
.
add
(
name
);
}
});
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
if
(
__VUE_OPTIONS_API__
)
{
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
}
}
}
return
hooks
;
...
...
packages/uni-mp-qq/dist/uni.mp.esm.js
浏览文件 @
10f51f22
...
...
@@ -165,12 +165,14 @@ function findHooks(vueOptions, hooks = new Set()) {
hooks
.
add
(
name
);
}
});
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
if
(
__VUE_OPTIONS_API__
)
{
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
}
}
}
return
hooks
;
...
...
packages/uni-mp-toutiao/dist/uni.mp.esm.js
浏览文件 @
10f51f22
...
...
@@ -165,12 +165,14 @@ function findHooks(vueOptions, hooks = new Set()) {
hooks
.
add
(
name
);
}
});
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
if
(
__VUE_OPTIONS_API__
)
{
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
}
}
}
return
hooks
;
...
...
packages/uni-mp-weixin/dist/uni.mp.esm.js
浏览文件 @
10f51f22
...
...
@@ -165,12 +165,14 @@ function findHooks(vueOptions, hooks = new Set()) {
hooks
.
add
(
name
);
}
});
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
if
(
__VUE_OPTIONS_API__
)
{
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
}
}
}
return
hooks
;
...
...
packages/uni-quickapp-webview/dist/uni.mp.esm.js
浏览文件 @
10f51f22
...
...
@@ -165,12 +165,14 @@ function findHooks(vueOptions, hooks = new Set()) {
hooks
.
add
(
name
);
}
});
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
if
(
__VUE_OPTIONS_API__
)
{
const
{
extends
:
extendsOptions
,
mixins
}
=
vueOptions
;
if
(
mixins
)
{
mixins
.
forEach
(
mixin
=>
findHooks
(
mixin
,
hooks
));
}
if
(
extendsOptions
)
{
findHooks
(
extendsOptions
,
hooks
);
}
}
}
return
hooks
;
...
...
packages/uni-template-compiler/__tests__/compiler-mp-alipay.spec.js
浏览文件 @
10f51f22
...
...
@@ -18,7 +18,7 @@ describe('mp:compiler-mp-alipay', () => {
it
(
'
generate v-for directive
'
,
()
=>
{
assertCodegen
(
'
<view><view v-for="(item,index) in items" :key="index"></view></view>
'
,
'
<view><
block a:for="{{items}}" a:for-item="item" a:for-index="index" a:key="index"><view></view></block
></view>
'
'
<view><
view a:for="{{items}}" a:for-item="item" a:for-index="index" a:key="index"></view
></view>
'
)
})
...
...
@@ -39,11 +39,11 @@ describe('mp:compiler-mp-alipay', () => {
)
assertCodegen
(
'
<component1 v-for="item in items" ref="c3"></component1>
'
,
'
<
block a:for="{{items}}" a:for-item="item" a:for-index="__i0__"><component1 vue-id="{{
\'
551070e6-1-
\'
+__i0__}}" ref="__r" data-ref-in-for="c3" onVueInit="__l"></component1></block
>
'
'
<
component1 vue-id="{{
\'
551070e6-1-
\'
+__i0__}}" ref="__r" data-ref-in-for="c3" a:for="{{items}}" a:for-item="item" a:for-index="__i0__" onVueInit="__l"></component1
>
'
)
assertCodegen
(
'
<component1 v-for="item in items" :ref="c4"></component1>
'
,
'
<
block a:for="{{items}}" a:for-item="item" a:for-index="__i0__"><component1 vue-id="{{
\'
551070e6-1-
\'
+__i0__}}" ref="__r" data-ref-in-for="{{c4}}" onVueInit="__l"></component1></block
>
'
'
<
component1 vue-id="{{
\'
551070e6-1-
\'
+__i0__}}" ref="__r" data-ref-in-for="{{c4}}" a:for="{{items}}" a:for-item="item" a:for-index="__i0__" onVueInit="__l"></component1
>
'
)
})
it
(
'
generate default slot
'
,
()
=>
{
...
...
@@ -126,8 +126,8 @@ describe('mp:compiler-mp-alipay', () => {
it
(
'
generate events with v-on directive
'
,
()
=>
{
assertCodegen
(
'
<uni-list-item title="标题文字" note="描述信息" show-extra-icon="true" :extra-icon="{color:
\'
#4cd964
\'
,size:
\'
22
\'
,type:
\'
spinner
\'
}"></uni-list-item>
'
,
'
<uni-list-item vue-id="551070e6-1" title="标题文字" note="描述信息" show-extra-icon="true" extra-icon="{{
$root.a0
}}" onVueInit="__l"></uni-list-item>
'
,
'
with(this){
var a0={color:"#4cd964",size:"22",type:"spinner"};$mp.data=Object.assign({},{$root:{a0:a0}})
}
'
'
<uni-list-item vue-id="551070e6-1" title="标题文字" note="描述信息" show-extra-icon="true" extra-icon="{{
({color:
\'
#4cd964
\'
,size:
\'
22
\'
,type:
\'
spinner
\'
})
}}" onVueInit="__l"></uni-list-item>
'
,
'
with(this){}
'
)
assertCodegen
(
...
...
packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
浏览文件 @
10f51f22
...
...
@@ -120,4 +120,16 @@ describe('mp:compiler-mp-weixin', () => {
'
<view><slot-comp generic:scoped-slots-test="test-slot-comp-test" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
test
\'
]}}"></slot-comp><slot-comp generic:scoped-slots-test="test-slot-comp-test1" vue-id="551070e6-2" bind:__l="__l" vue-slots="{{[
\'
test
\'
]}}"></slot-comp><slot-comp generic:scoped-slots-test="test-slot-comp-test2" vue-id="551070e6-3" bind:__l="__l" vue-slots="{{[
\'
test
\'
]}}"></slot-comp><slot-comp generic:scoped-slots-test="test-slot-comp-test3" vue-id="551070e6-4" bind:__l="__l" vue-slots="{{[
\'
test
\'
]}}"></slot-comp></view>
'
)
})
it
(
'
generate ObjectExpression
'
,
()
=>
{
assertCodegen
(
'
<view v-for="(item,key) in {x:0}" :key="key">{{item}}</view>
'
,
'
<block wx:for="{{({x:0})}}" wx:for-item="item" wx:for-index="key" wx:key="key"><view>{{item}}</view></block>
'
)
assertCodegen
(
'
<template v-for="(item, key) in { list1, list2 }"></template>
'
,
'
<block wx:for="{{({list1,list2})}}" wx:for-item="item" wx:for-index="key"></block>
'
)
assertCodegen
(
'
<test :obj="{x:0}"></test>
'
,
'
<test vue-id="551070e6-1" obj="{{({x:0})}}" bind:__l="__l"></test>
'
)
})
})
packages/uni-template-compiler/__tests__/compiler.spec.js
浏览文件 @
10f51f22
...
...
@@ -329,8 +329,8 @@ describe('mp:compiler', () => {
// v-for
assertCodegen
(
'
<view v-for="(item,index) in list" :key="index"><view @click="$test.test(item)">test</view></view>
'
,
'
<block wx:for="{{list}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view><view data-event-opts="{{[[
\'
tap
\'
,[[
\'
e0
\'
,[
\'
$event
\'
]]]]]}}" data-event-params="{{
[{item}]
}}" bindtap="__e">test</view></view></block>
'
,
'
with(this){if(!_isMounted){e0=function($event,item){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=
(_temp.eventParams||_temp["event-params"])[0
],item=_temp2.item;var _temp,_temp2;return $test.test(item)}}}
'
'
<block wx:for="{{list}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view><view data-event-opts="{{[[
\'
tap
\'
,[[
\'
e0
\'
,[
\'
$event
\'
]]]]]}}" data-event-params="{{
({item})
}}" bindtap="__e">test</view></view></block>
'
,
'
with(this){if(!_isMounted){e0=function($event,item){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=
_temp.eventParams||_temp["event-params"
],item=_temp2.item;var _temp,_temp2;return $test.test(item)}}}
'
)
// tricky symbols in args
// assertCodegen(
...
...
packages/uni-template-compiler/lib/script/traverse/data/attrs.js
浏览文件 @
10f51f22
const
{
IDENTIFIER_ATTR
}
=
require
(
'
../../../constants
'
)
//
const {
//
IDENTIFIER_ATTR
//
} = require('../../../constants')
const
getMemberExpr
=
require
(
'
../member-expr
'
)
//
const getMemberExpr = require('../member-expr')
module
.
exports
=
function
processAttrs
(
paths
,
path
,
state
,
isComponent
,
tagName
)
{
const
attrsPath
=
paths
.
attrs
if
(
attrsPath
)
{
attrsPath
.
get
(
'
value.properties
'
).
forEach
(
propertyPath
=>
{
const
valuePath
=
propertyPath
.
get
(
'
value
'
)
if
(
valuePath
.
isObjectExpression
())
{
valuePath
.
replaceWith
(
getMemberExpr
(
null
,
IDENTIFIER_ATTR
,
valuePath
.
node
,
state
))
}
})
}
// 不再单独处理ObjectExpression,改为在转换temlplte时用()包裹(微信、QQ)
// const attrsPath = paths.attrs
// if (attrsPath) {
// attrsPath.get('value.properties').forEach(propertyPath => {
// const valuePath = propertyPath.get('value')
// if (valuePath.isObjectExpression()) {
// valuePath.replaceWith(getMemberExpr(null, IDENTIFIER_ATTR, valuePath.node, state))
// }
// })
// }
return
[]
}
}
packages/uni-template-compiler/lib/script/traverse/data/event.js
浏览文件 @
10f51f22
...
...
@@ -347,7 +347,7 @@ function parseEvent (keyPath, valuePath, state, isComponent, isNativeOn = false,
const
datasetUid
=
funcPath
.
scope
.
generateDeclaredUidIdentifier
().
name
const
paramsUid
=
funcPath
.
scope
.
generateDeclaredUidIdentifier
().
name
const
dataset
=
ATTR_DATA_EVENT_PARAMS
.
substring
(
5
)
const
code
=
`var
${
datasetUid
}
=arguments[arguments.length-1].currentTarget.dataset,
${
paramsUid
}
=
(
${
datasetUid
}
.
${
dataset
.
replace
(
/-
([
a-z
])
/
,
(
_
,
str
)
=>
str
.
toUpperCase
())}
||
${
datasetUid
}
['
${
dataset
}
'])[0
],
${
params
.
map
(
item
=>
`
${
item
}
=
${
paramsUid
}
.
${
item
}
`
).
join
(
'
,
'
)}
`
const
code
=
`var
${
datasetUid
}
=arguments[arguments.length-1].currentTarget.dataset,
${
paramsUid
}
=
${
datasetUid
}
.
${
dataset
.
replace
(
/-
([
a-z
])
/
,
(
_
,
str
)
=>
str
.
toUpperCase
())}
||
${
datasetUid
}
['
${
dataset
}
'
],
${
params
.
map
(
item
=>
`
${
item
}
=
${
paramsUid
}
.
${
item
}
`
).
join
(
'
,
'
)}
`
funcPath
.
node
.
body
.
body
.
unshift
(
parser
.
parse
(
code
).
program
.
body
[
0
])
}
methods
.
push
(
addEventExpressionStatement
(
funcPath
,
state
,
isComponent
,
isNativeOn
))
...
...
@@ -478,8 +478,8 @@ module.exports = function processEvent (paths, path, state, isComponent, tagName
ret
.
push
(
t
.
objectProperty
(
t
.
stringLiteral
(
ATTR_DATA_EVENT_PARAMS
),
//
使用数组格式,
直接使用对象格式微信小程序编译会报错
t
.
stringLiteral
(
`{{
[{
${
params
.
join
(
'
,
'
)}
}]
}}`
)
// 直接使用对象格式微信小程序编译会报错
t
.
stringLiteral
(
`{{
({
${
params
.
join
(
'
,
'
)}
})
}}`
)
)
)
}
...
...
packages/uni-template-compiler/lib/template/generate.js
浏览文件 @
10f51f22
...
...
@@ -105,7 +105,10 @@ function genElement (ast, state, isRoot = false) {
if
(
ast
.
attr
[
name
]
===
''
&&
name
!==
'
value
'
)
{
// value属性需要保留=''
return
name
}
return
`
${
name
}
="
${
ast
.
attr
[
name
]}
"`
let
value
=
ast
.
attr
[
name
]
// 微信和QQ小程序解析 {{{}}} 报错,需要使用()包裹
value
=
value
.
replace
(
/
(\{\{)(\{
.+
?\})(\}\})
/
,
'
$1($2)$3
'
)
return
`
${
name
}
="
${
value
}
"`
})
.
join
(
'
'
)
:
''
...
...
packages/uni-template-compiler/lib/template/traverse.js
浏览文件 @
10f51f22
...
...
@@ -399,10 +399,17 @@ function traverseRenderList (callExprNode, state) {
}
}
const
children
=
traverseExpr
(
forReturnStatementArgument
,
state
)
// 支付宝小程序在 block 标签上使用 key 时顺序不能保障
if
(
state
.
options
.
platform
.
name
===
'
mp-alipay
'
&&
t
.
isCallExpression
(
forReturnStatementArgument
)
&&
children
&&
children
.
type
)
{
children
.
attr
=
children
.
attr
||
{}
Object
.
assign
(
children
.
attr
,
attr
)
return
children
}
return
{
type
:
'
block
'
,
attr
,
children
:
normalizeChildren
(
traverseExpr
(
forReturnStatementArgument
,
state
)
)
children
:
normalizeChildren
(
children
)
}
}
...
...
packages/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js
浏览文件 @
10f51f22
...
...
@@ -2228,17 +2228,17 @@ function updateListeners (
/* */
// fixed by xxxxxx (mp properties)
function
extractPropertiesFromVNodeData
(
data
,
Ctor
,
res
,
context
)
{
var
propOptions
=
Ctor
.
options
.
mpOptions
&&
Ctor
.
options
.
mpOptions
.
properties
;
if
(
isUndef
(
propOptions
))
{
return
res
// fixed by xxxxxx (mp properties)
function
extractPropertiesFromVNodeData
(
data
,
Ctor
,
res
,
context
)
{
var
propOptions
=
Ctor
.
options
.
mpOptions
&&
Ctor
.
options
.
mpOptions
.
properties
;
if
(
isUndef
(
propOptions
))
{
return
res
}
var
externalClasses
=
Ctor
.
options
.
mpOptions
.
externalClasses
||
[];
var
externalClasses
=
Ctor
.
options
.
mpOptions
.
externalClasses
||
[];
var
attrs
=
data
.
attrs
;
var
props
=
data
.
props
;
if
(
isDef
(
attrs
)
||
isDef
(
props
))
{
for
(
var
key
in
propOptions
)
{
var
props
=
data
.
props
;
if
(
isDef
(
attrs
)
||
isDef
(
props
))
{
for
(
var
key
in
propOptions
)
{
var
altKey
=
hyphenate
(
key
);
var
result
=
checkProp
(
res
,
props
,
key
,
altKey
,
true
)
||
checkProp
(
res
,
attrs
,
key
,
altKey
,
false
);
...
...
@@ -2251,10 +2251,10 @@ function extractPropertiesFromVNodeData(data, Ctor, res, context) {
)
{
// 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)
res
[
key
]
=
context
[
camelize
(
res
[
key
])];
}
}
}
return
res
}
}
}
return
res
}
function
extractPropsFromVNodeData
(
...
...
@@ -5520,137 +5520,137 @@ function type(obj) {
return
Object
.
prototype
.
toString
.
call
(
obj
)
}
/* */
function
flushCallbacks$1
(
vm
)
{
if
(
vm
.
__next_tick_callbacks
&&
vm
.
__next_tick_callbacks
.
length
)
{
if
(
process
.
env
.
VUE_APP_DEBUG
)
{
var
mpInstance
=
vm
.
$scope
;
console
.
log
(
'
[
'
+
(
+
new
Date
)
+
'
][
'
+
(
mpInstance
.
is
||
mpInstance
.
route
)
+
'
][
'
+
vm
.
_uid
+
'
]:flushCallbacks[
'
+
vm
.
__next_tick_callbacks
.
length
+
'
]
'
);
}
var
copies
=
vm
.
__next_tick_callbacks
.
slice
(
0
);
vm
.
__next_tick_callbacks
.
length
=
0
;
for
(
var
i
=
0
;
i
<
copies
.
length
;
i
++
)
{
copies
[
i
]();
}
}
}
function
hasRenderWatcher
(
vm
)
{
return
queue
.
find
(
function
(
watcher
)
{
return
vm
.
_watcher
===
watcher
;
})
}
function
nextTick$1
(
vm
,
cb
)
{
//1.nextTick 之前 已 setData 且 setData 还未回调完成
//2.nextTick 之前存在 render watcher
/* */
function
flushCallbacks$1
(
vm
)
{
if
(
vm
.
__next_tick_callbacks
&&
vm
.
__next_tick_callbacks
.
length
)
{
if
(
process
.
env
.
VUE_APP_DEBUG
)
{
var
mpInstance
=
vm
.
$scope
;
console
.
log
(
'
[
'
+
(
+
new
Date
)
+
'
][
'
+
(
mpInstance
.
is
||
mpInstance
.
route
)
+
'
][
'
+
vm
.
_uid
+
'
]:flushCallbacks[
'
+
vm
.
__next_tick_callbacks
.
length
+
'
]
'
);
}
var
copies
=
vm
.
__next_tick_callbacks
.
slice
(
0
);
vm
.
__next_tick_callbacks
.
length
=
0
;
for
(
var
i
=
0
;
i
<
copies
.
length
;
i
++
)
{
copies
[
i
]();
}
}
}
function
hasRenderWatcher
(
vm
)
{
return
queue
.
find
(
function
(
watcher
)
{
return
vm
.
_watcher
===
watcher
;
})
}
function
nextTick$1
(
vm
,
cb
)
{
//1.nextTick 之前 已 setData 且 setData 还未回调完成
//2.nextTick 之前存在 render watcher
if
(
!
vm
.
__next_tick_pending
&&
!
hasRenderWatcher
(
vm
))
{
if
(
process
.
env
.
VUE_APP_DEBUG
){
var
mpInstance
=
vm
.
$scope
;
console
.
log
(
'
[
'
+
(
+
new
Date
)
+
'
][
'
+
(
mpInstance
.
is
||
mpInstance
.
route
)
+
'
][
'
+
vm
.
_uid
+
'
]:nextVueTick
'
);
}
return
nextTick
(
cb
,
vm
)
}
return
nextTick
(
cb
,
vm
)
}
else
{
if
(
process
.
env
.
VUE_APP_DEBUG
){
var
mpInstance$1
=
vm
.
$scope
;
console
.
log
(
'
[
'
+
(
+
new
Date
)
+
'
][
'
+
(
mpInstance$1
.
is
||
mpInstance$1
.
route
)
+
'
][
'
+
vm
.
_uid
+
'
]:nextMPTick
'
);
}
}
var
_resolve
;
if
(
!
vm
.
__next_tick_callbacks
)
{
vm
.
__next_tick_callbacks
=
[];
}
vm
.
__next_tick_callbacks
.
push
(
function
()
{
if
(
cb
)
{
try
{
cb
.
call
(
vm
);
}
catch
(
e
)
{
handleError
(
e
,
vm
,
'
nextTick
'
);
}
}
else
if
(
_resolve
)
{
_resolve
(
vm
);
}
});
// $flow-disable-line
if
(
!
cb
&&
typeof
Promise
!==
'
undefined
'
)
{
return
new
Promise
(
function
(
resolve
)
{
_resolve
=
resolve
;
})
}
}
/* */
function
cloneWithData
(
vm
)
{
// 确保当前 vm 所有数据被同步
var
ret
=
Object
.
create
(
null
);
var
dataKeys
=
[].
concat
(
Object
.
keys
(
vm
.
_data
||
{}),
Object
.
keys
(
vm
.
_computedWatchers
||
{}));
dataKeys
.
reduce
(
function
(
ret
,
key
)
{
ret
[
key
]
=
vm
[
key
];
return
ret
},
ret
);
// vue-composition-api
var
rawBindings
=
vm
.
__secret_vfa_state__
&&
vm
.
__secret_vfa_state__
.
rawBindings
;
if
(
rawBindings
)
{
Object
.
keys
(
rawBindings
).
forEach
(
function
(
key
)
{
ret
[
key
]
=
vm
[
key
];
});
}
//TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据
Object
.
assign
(
ret
,
vm
.
$mp
.
data
||
{});
if
(
Array
.
isArray
(
vm
.
$options
.
behaviors
)
&&
vm
.
$options
.
behaviors
.
indexOf
(
'
uni://form-field
'
)
!==
-
1
)
{
//form-field
ret
[
'
name
'
]
=
vm
.
name
;
ret
[
'
value
'
]
=
vm
.
value
;
}
return
JSON
.
parse
(
JSON
.
stringify
(
ret
))
}
}
var
_resolve
;
if
(
!
vm
.
__next_tick_callbacks
)
{
vm
.
__next_tick_callbacks
=
[];
}
vm
.
__next_tick_callbacks
.
push
(
function
()
{
if
(
cb
)
{
try
{
cb
.
call
(
vm
);
}
catch
(
e
)
{
handleError
(
e
,
vm
,
'
nextTick
'
);
}
}
else
if
(
_resolve
)
{
_resolve
(
vm
);
}
});
// $flow-disable-line
if
(
!
cb
&&
typeof
Promise
!==
'
undefined
'
)
{
return
new
Promise
(
function
(
resolve
)
{
_resolve
=
resolve
;
})
}
}
/* */
function
cloneWithData
(
vm
)
{
// 确保当前 vm 所有数据被同步
var
ret
=
Object
.
create
(
null
);
var
dataKeys
=
[].
concat
(
Object
.
keys
(
vm
.
_data
||
{}),
Object
.
keys
(
vm
.
_computedWatchers
||
{}));
dataKeys
.
reduce
(
function
(
ret
,
key
)
{
ret
[
key
]
=
vm
[
key
];
return
ret
},
ret
);
// vue-composition-api
var
rawBindings
=
vm
.
__secret_vfa_state__
&&
vm
.
__secret_vfa_state__
.
rawBindings
;
if
(
rawBindings
)
{
Object
.
keys
(
rawBindings
).
forEach
(
function
(
key
)
{
ret
[
key
]
=
vm
[
key
];
});
}
//TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据
Object
.
assign
(
ret
,
vm
.
$mp
.
data
||
{});
if
(
Array
.
isArray
(
vm
.
$options
.
behaviors
)
&&
vm
.
$options
.
behaviors
.
indexOf
(
'
uni://form-field
'
)
!==
-
1
)
{
//form-field
ret
[
'
name
'
]
=
vm
.
name
;
ret
[
'
value
'
]
=
vm
.
value
;
}
return
JSON
.
parse
(
JSON
.
stringify
(
ret
))
}
var
patch
=
function
(
oldVnode
,
vnode
)
{
var
this
$1
=
this
;
if
(
vnode
===
null
)
{
//destroy
return
}
if
(
this
.
mpType
===
'
page
'
||
this
.
mpType
===
'
component
'
)
{
var
mpInstance
=
this
.
$scope
;
var
data
=
Object
.
create
(
null
);
try
{
data
=
cloneWithData
(
this
);
}
catch
(
err
)
{
console
.
error
(
err
);
}
data
.
__webviewId__
=
mpInstance
.
data
.
__webviewId__
;
var
mpData
=
Object
.
create
(
null
);
Object
.
keys
(
data
).
forEach
(
function
(
key
)
{
//仅同步 data 中有的数据
mpData
[
key
]
=
mpInstance
.
data
[
key
];
});
var
diffData
=
this
.
$shouldDiffData
===
false
?
data
:
diff
(
data
,
mpData
);
if
(
Object
.
keys
(
diffData
).
length
)
{
if
(
process
.
env
.
VUE_APP_DEBUG
)
{
console
.
log
(
'
[
'
+
(
+
new
Date
)
+
'
][
'
+
(
mpInstance
.
is
||
mpInstance
.
route
)
+
'
][
'
+
this
.
_uid
+
'
]差量更新
'
,
JSON
.
stringify
(
diffData
));
}
this
.
__next_tick_pending
=
true
;
mpInstance
.
setData
(
diffData
,
function
()
{
this
$1
.
__next_tick_pending
=
false
;
flushCallbacks$1
(
this
$1
);
});
}
else
{
flushCallbacks$1
(
this
);
}
}
if
(
vnode
===
null
)
{
//destroy
return
}
if
(
this
.
mpType
===
'
page
'
||
this
.
mpType
===
'
component
'
)
{
var
mpInstance
=
this
.
$scope
;
var
data
=
Object
.
create
(
null
);
try
{
data
=
cloneWithData
(
this
);
}
catch
(
err
)
{
console
.
error
(
err
);
}
data
.
__webviewId__
=
mpInstance
.
data
.
__webviewId__
;
var
mpData
=
Object
.
create
(
null
);
Object
.
keys
(
data
).
forEach
(
function
(
key
)
{
//仅同步 data 中有的数据
mpData
[
key
]
=
mpInstance
.
data
[
key
];
});
var
diffData
=
this
.
$shouldDiffData
===
false
?
data
:
diff
(
data
,
mpData
);
if
(
Object
.
keys
(
diffData
).
length
)
{
if
(
process
.
env
.
VUE_APP_DEBUG
)
{
console
.
log
(
'
[
'
+
(
+
new
Date
)
+
'
][
'
+
(
mpInstance
.
is
||
mpInstance
.
route
)
+
'
][
'
+
this
.
_uid
+
'
]差量更新
'
,
JSON
.
stringify
(
diffData
));
}
this
.
__next_tick_pending
=
true
;
mpInstance
.
setData
(
diffData
,
function
()
{
this
$1
.
__next_tick_pending
=
false
;
flushCallbacks$1
(
this
$1
);
});
}
else
{
flushCallbacks$1
(
this
);
}
}
};
/* */
...
...
@@ -5791,242 +5791,249 @@ function normalizeStyleBinding (bindingStyle) {
return
bindingStyle
}
/* */
var
MP_METHODS
=
[
'
createSelectorQuery
'
,
'
createIntersectionObserver
'
,
'
selectAllComponents
'
,
'
selectComponent
'
];
function
getTarget
(
obj
,
path
)
{
var
parts
=
path
.
split
(
'
.
'
);
var
key
=
parts
[
0
];
if
(
key
.
indexOf
(
'
__$n
'
)
===
0
)
{
//number index
key
=
parseInt
(
key
.
replace
(
'
__$n
'
,
''
));
}
if
(
parts
.
length
===
1
)
{
return
obj
[
key
]
}
return
getTarget
(
obj
[
key
],
parts
.
slice
(
1
).
join
(
'
.
'
))
}
function
internalMixin
(
Vue
)
{
Vue
.
config
.
errorHandler
=
function
(
err
,
vm
,
info
)
{
/* */
var
MP_METHODS
=
[
'
createSelectorQuery
'
,
'
createIntersectionObserver
'
,
'
selectAllComponents
'
,
'
selectComponent
'
];
function
getTarget
(
obj
,
path
)
{
var
parts
=
path
.
split
(
'
.
'
);
var
key
=
parts
[
0
];
if
(
key
.
indexOf
(
'
__$n
'
)
===
0
)
{
//number index
key
=
parseInt
(
key
.
replace
(
'
__$n
'
,
''
));
}
if
(
parts
.
length
===
1
)
{
return
obj
[
key
]
}
return
getTarget
(
obj
[
key
],
parts
.
slice
(
1
).
join
(
'
.
'
))
}
function
internalMixin
(
Vue
)
{
Vue
.
config
.
errorHandler
=
function
(
err
,
vm
,
info
)
{
Vue
.
util
.
warn
((
"
Error in
"
+
info
+
"
:
\"
"
+
(
err
.
toString
())
+
"
\"
"
),
vm
);
console
.
error
(
err
);
/* eslint-disable no-undef */
var
app
=
getApp
();
if
(
app
&&
app
.
onError
)
{
app
.
onError
(
err
);
}
};
var
oldEmit
=
Vue
.
prototype
.
$emit
;
Vue
.
prototype
.
$emit
=
function
(
event
)
{
if
(
this
.
$scope
&&
event
)
{
this
.
$scope
[
'
triggerEvent
'
](
event
,
{
__args__
:
toArray
(
arguments
,
1
)
});
}
return
oldEmit
.
apply
(
this
,
arguments
)
};
Vue
.
prototype
.
$nextTick
=
function
(
fn
)
{
return
nextTick$1
(
this
,
fn
)
};
MP_METHODS
.
forEach
(
function
(
method
)
{
Vue
.
prototype
[
method
]
=
function
(
args
)
{
if
(
this
.
$scope
&&
this
.
$scope
[
method
])
{
return
this
.
$scope
[
method
](
args
)
}
// mp-alipay
if
(
typeof
my
===
'
undefined
'
)
{
return
}
if
(
method
===
'
createSelectorQuery
'
)
{
/* eslint-disable no-undef */
return
my
.
createSelectorQuery
(
args
)
}
else
if
(
method
===
'
createIntersectionObserver
'
)
{
/* eslint-disable no-undef */
return
my
.
createIntersectionObserver
(
args
)
}
// TODO mp-alipay 暂不支持 selectAllComponents,selectComponent
};
});
Vue
.
prototype
.
__init_provide
=
initProvide
;
Vue
.
prototype
.
__init_injections
=
initInjections
;
Vue
.
prototype
.
__call_hook
=
function
(
hook
,
args
)
{
var
vm
=
this
;
// #7573 disable dep collection when invoking lifecycle hooks
pushTarget
();
var
handlers
=
vm
.
$options
[
hook
];
var
info
=
hook
+
"
hook
"
;
var
ret
;
if
(
handlers
)
{
for
(
var
i
=
0
,
j
=
handlers
.
length
;
i
<
j
;
i
++
)
{
ret
=
invokeWithErrorHandling
(
handlers
[
i
],
vm
,
args
?
[
args
]
:
null
,
vm
,
info
);
}
}
if
(
vm
.
_hasHookEvent
)
{
vm
.
$emit
(
'
hook:
'
+
hook
,
args
);
}
popTarget
();
return
ret
};
Vue
.
prototype
.
__set_model
=
function
(
target
,
key
,
value
,
modifiers
)
{
if
(
Array
.
isArray
(
modifiers
))
{
if
(
modifiers
.
indexOf
(
'
trim
'
)
!==
-
1
)
{
value
=
value
.
trim
();
}
if
(
modifiers
.
indexOf
(
'
number
'
)
!==
-
1
)
{
value
=
this
.
_n
(
value
);
}
}
if
(
!
target
)
{
target
=
this
;
}
target
[
key
]
=
value
;
};
Vue
.
prototype
.
__set_sync
=
function
(
target
,
key
,
value
)
{
if
(
!
target
)
{
target
=
this
;
}
target
[
key
]
=
value
;
};
Vue
.
prototype
.
__get_orig
=
function
(
item
)
{
if
(
isPlainObject
(
item
))
{
return
item
[
'
$orig
'
]
||
item
}
return
item
};
Vue
.
prototype
.
__get_value
=
function
(
dataPath
,
target
)
{
return
getTarget
(
target
||
this
,
dataPath
)
};
Vue
.
prototype
.
__get_class
=
function
(
dynamicClass
,
staticClass
)
{
return
renderClass
(
staticClass
,
dynamicClass
)
};
Vue
.
prototype
.
__get_style
=
function
(
dynamicStyle
,
staticStyle
)
{
if
(
!
dynamicStyle
&&
!
staticStyle
)
{
return
''
}
var
dynamicStyleObj
=
normalizeStyleBinding
(
dynamicStyle
);
var
styleObj
=
staticStyle
?
extend
(
staticStyle
,
dynamicStyleObj
)
:
dynamicStyleObj
;
return
Object
.
keys
(
styleObj
).
map
(
function
(
name
)
{
return
((
hyphenate
(
name
))
+
"
:
"
+
(
styleObj
[
name
]));
}).
join
(
'
;
'
)
};
Vue
.
prototype
.
__map
=
function
(
val
,
iteratee
)
{
//TODO 暂不考虑 string,number
var
ret
,
i
,
l
,
keys
,
key
;
if
(
Array
.
isArray
(
val
))
{
ret
=
new
Array
(
val
.
length
);
for
(
i
=
0
,
l
=
val
.
length
;
i
<
l
;
i
++
)
{
ret
[
i
]
=
iteratee
(
val
[
i
],
i
);
}
return
ret
}
else
if
(
isObject
(
val
))
{
keys
=
Object
.
keys
(
val
);
ret
=
Object
.
create
(
null
);
for
(
i
=
0
,
l
=
keys
.
length
;
i
<
l
;
i
++
)
{
key
=
keys
[
i
];
ret
[
key
]
=
iteratee
(
val
[
key
],
key
,
i
);
}
return
ret
}
return
[]
};
}
/* */
var
LIFECYCLE_HOOKS$1
=
[
//App
'
onLaunch
'
,
'
onShow
'
,
'
onHide
'
,
console
.
error
(
err
);
/* eslint-disable no-undef */
var
app
=
getApp
();
if
(
app
&&
app
.
onError
)
{
app
.
onError
(
err
);
}
};
var
oldEmit
=
Vue
.
prototype
.
$emit
;
Vue
.
prototype
.
$emit
=
function
(
event
)
{
if
(
this
.
$scope
&&
event
)
{
this
.
$scope
[
'
triggerEvent
'
](
event
,
{
__args__
:
toArray
(
arguments
,
1
)
});
}
return
oldEmit
.
apply
(
this
,
arguments
)
};
Vue
.
prototype
.
$nextTick
=
function
(
fn
)
{
return
nextTick$1
(
this
,
fn
)
};
MP_METHODS
.
forEach
(
function
(
method
)
{
Vue
.
prototype
[
method
]
=
function
(
args
)
{
if
(
this
.
$scope
&&
this
.
$scope
[
method
])
{
return
this
.
$scope
[
method
](
args
)
}
// mp-alipay
if
(
typeof
my
===
'
undefined
'
)
{
return
}
if
(
method
===
'
createSelectorQuery
'
)
{
/* eslint-disable no-undef */
return
my
.
createSelectorQuery
(
args
)
}
else
if
(
method
===
'
createIntersectionObserver
'
)
{
/* eslint-disable no-undef */
return
my
.
createIntersectionObserver
(
args
)
}
// TODO mp-alipay 暂不支持 selectAllComponents,selectComponent
};
});
Vue
.
prototype
.
__init_provide
=
initProvide
;
Vue
.
prototype
.
__init_injections
=
initInjections
;
Vue
.
prototype
.
__call_hook
=
function
(
hook
,
args
)
{
var
vm
=
this
;
// #7573 disable dep collection when invoking lifecycle hooks
pushTarget
();
var
handlers
=
vm
.
$options
[
hook
];
var
info
=
hook
+
"
hook
"
;
var
ret
;
if
(
handlers
)
{
for
(
var
i
=
0
,
j
=
handlers
.
length
;
i
<
j
;
i
++
)
{
ret
=
invokeWithErrorHandling
(
handlers
[
i
],
vm
,
args
?
[
args
]
:
null
,
vm
,
info
);
}
}
if
(
vm
.
_hasHookEvent
)
{
vm
.
$emit
(
'
hook:
'
+
hook
,
args
);
}
popTarget
();
return
ret
};
Vue
.
prototype
.
__set_model
=
function
(
target
,
key
,
value
,
modifiers
)
{
if
(
Array
.
isArray
(
modifiers
))
{
if
(
modifiers
.
indexOf
(
'
trim
'
)
!==
-
1
)
{
value
=
value
.
trim
();
}
if
(
modifiers
.
indexOf
(
'
number
'
)
!==
-
1
)
{
value
=
this
.
_n
(
value
);
}
}
if
(
!
target
)
{
target
=
this
;
}
target
[
key
]
=
value
;
};
Vue
.
prototype
.
__set_sync
=
function
(
target
,
key
,
value
)
{
if
(
!
target
)
{
target
=
this
;
}
target
[
key
]
=
value
;
};
Vue
.
prototype
.
__get_orig
=
function
(
item
)
{
if
(
isPlainObject
(
item
))
{
return
item
[
'
$orig
'
]
||
item
}
return
item
};
Vue
.
prototype
.
__get_value
=
function
(
dataPath
,
target
)
{
return
getTarget
(
target
||
this
,
dataPath
)
};
Vue
.
prototype
.
__get_class
=
function
(
dynamicClass
,
staticClass
)
{
return
renderClass
(
staticClass
,
dynamicClass
)
};
Vue
.
prototype
.
__get_style
=
function
(
dynamicStyle
,
staticStyle
)
{
if
(
!
dynamicStyle
&&
!
staticStyle
)
{
return
''
}
var
dynamicStyleObj
=
normalizeStyleBinding
(
dynamicStyle
);
var
styleObj
=
staticStyle
?
extend
(
staticStyle
,
dynamicStyleObj
)
:
dynamicStyleObj
;
return
Object
.
keys
(
styleObj
).
map
(
function
(
name
)
{
return
((
hyphenate
(
name
))
+
"
:
"
+
(
styleObj
[
name
]));
}).
join
(
'
;
'
)
};
Vue
.
prototype
.
__map
=
function
(
val
,
iteratee
)
{
//TODO 暂不考虑 string
var
ret
,
i
,
l
,
keys
,
key
;
if
(
Array
.
isArray
(
val
))
{
ret
=
new
Array
(
val
.
length
);
for
(
i
=
0
,
l
=
val
.
length
;
i
<
l
;
i
++
)
{
ret
[
i
]
=
iteratee
(
val
[
i
],
i
);
}
return
ret
}
else
if
(
isObject
(
val
))
{
keys
=
Object
.
keys
(
val
);
ret
=
Object
.
create
(
null
);
for
(
i
=
0
,
l
=
keys
.
length
;
i
<
l
;
i
++
)
{
key
=
keys
[
i
];
ret
[
key
]
=
iteratee
(
val
[
key
],
key
,
i
);
}
return
ret
}
else
if
(
typeof
val
===
'
number
'
)
{
ret
=
new
Array
(
val
);
for
(
i
=
0
,
l
=
val
;
i
<
l
;
i
++
)
{
// 第一个参数暂时仍和小程序一致
ret
[
i
]
=
iteratee
(
i
,
i
);
}
return
ret
}
return
[]
};
}
/* */
var
LIFECYCLE_HOOKS$1
=
[
//App
'
onLaunch
'
,
'
onShow
'
,
'
onHide
'
,
'
onUniNViewMessage
'
,
'
onPageNotFound
'
,
'
onThemeChange
'
,
'
onError
'
,
'
onUnhandledRejection
'
,
//Page
'
onLoad
'
,
// 'onShow',
'
onReady
'
,
// 'onHide',
'
onUnload
'
,
'
onPullDownRefresh
'
,
'
onReachBottom
'
,
'
onUnhandledRejection
'
,
//Page
'
onLoad
'
,
// 'onShow',
'
onReady
'
,
// 'onHide',
'
onUnload
'
,
'
onPullDownRefresh
'
,
'
onReachBottom
'
,
'
onTabItemTap
'
,
'
onAddToFavorites
'
,
'
onShareTimeline
'
,
'
onShareTimeline
'
,
'
onShareAppMessage
'
,
'
onResize
'
,
'
onPageScroll
'
,
'
onNavigationBarButtonTap
'
,
'
onBackPress
'
,
'
onNavigationBarSearchInputChanged
'
,
'
onNavigationBarSearchInputConfirmed
'
,
'
onNavigationBarSearchInputClicked
'
,
//Component
// 'onReady', // 兼容旧版本,应该移除该事件
'
onPageShow
'
,
'
onPageHide
'
,
'
onPageResize
'
];
function
lifecycleMixin$1
(
Vue
)
{
//fixed vue-class-component
var
oldExtend
=
Vue
.
extend
;
Vue
.
extend
=
function
(
extendOptions
)
{
extendOptions
=
extendOptions
||
{};
var
methods
=
extendOptions
.
methods
;
if
(
methods
)
{
Object
.
keys
(
methods
).
forEach
(
function
(
methodName
)
{
if
(
LIFECYCLE_HOOKS$1
.
indexOf
(
methodName
)
!==-
1
)
{
extendOptions
[
methodName
]
=
methods
[
methodName
];
delete
methods
[
methodName
];
}
});
}
return
oldExtend
.
call
(
this
,
extendOptions
)
};
var
strategies
=
Vue
.
config
.
optionMergeStrategies
;
var
mergeHook
=
strategies
.
created
;
LIFECYCLE_HOOKS$1
.
forEach
(
function
(
hook
)
{
strategies
[
hook
]
=
mergeHook
;
});
Vue
.
prototype
.
__lifecycle_hooks__
=
LIFECYCLE_HOOKS$1
;
}
/* */
// install platform patch function
Vue
.
prototype
.
__patch__
=
patch
;
// public mount method
Vue
.
prototype
.
$mount
=
function
(
el
,
hydrating
)
{
return
mountComponent$1
(
this
,
el
,
hydrating
)
};
lifecycleMixin$1
(
Vue
);
'
onResize
'
,
'
onPageScroll
'
,
'
onNavigationBarButtonTap
'
,
'
onBackPress
'
,
'
onNavigationBarSearchInputChanged
'
,
'
onNavigationBarSearchInputConfirmed
'
,
'
onNavigationBarSearchInputClicked
'
,
//Component
// 'onReady', // 兼容旧版本,应该移除该事件
'
onPageShow
'
,
'
onPageHide
'
,
'
onPageResize
'
];
function
lifecycleMixin$1
(
Vue
)
{
//fixed vue-class-component
var
oldExtend
=
Vue
.
extend
;
Vue
.
extend
=
function
(
extendOptions
)
{
extendOptions
=
extendOptions
||
{};
var
methods
=
extendOptions
.
methods
;
if
(
methods
)
{
Object
.
keys
(
methods
).
forEach
(
function
(
methodName
)
{
if
(
LIFECYCLE_HOOKS$1
.
indexOf
(
methodName
)
!==-
1
)
{
extendOptions
[
methodName
]
=
methods
[
methodName
];
delete
methods
[
methodName
];
}
});
}
return
oldExtend
.
call
(
this
,
extendOptions
)
};
var
strategies
=
Vue
.
config
.
optionMergeStrategies
;
var
mergeHook
=
strategies
.
created
;
LIFECYCLE_HOOKS$1
.
forEach
(
function
(
hook
)
{
strategies
[
hook
]
=
mergeHook
;
});
Vue
.
prototype
.
__lifecycle_hooks__
=
LIFECYCLE_HOOKS$1
;
}
/* */
// install platform patch function
Vue
.
prototype
.
__patch__
=
patch
;
// public mount method
Vue
.
prototype
.
$mount
=
function
(
el
,
hydrating
)
{
return
mountComponent$1
(
this
,
el
,
hydrating
)
};
lifecycleMixin$1
(
Vue
);
internalMixin
(
Vue
);
/* */
...
...
src/platforms/app-plus/service/api/plugin/restore-global.js
浏览文件 @
10f51f22
import
{
newSetStatusBarStyle
newSetStatusBarStyle
,
restoreOldSetStatusBarStyle
}
from
'
../../bridge
'
export
function
restoreGlobal
(
...
...
@@ -19,7 +20,8 @@ export function restoreGlobal (
console
.
log
(
`[restoreGlobal][
${
Date
.
now
()}
]`
)
}
weex
=
newWeex
plus
=
newPlus
plus
=
newPlus
restoreOldSetStatusBarStyle
(
plus
.
navigator
.
setStatusBarStyle
)
plus
.
navigator
.
setStatusBarStyle
=
newSetStatusBarStyle
/* eslint-disable no-global-assign */
setTimeout
=
newSetTimeout
...
...
src/platforms/app-plus/service/bridge.js
浏览文件 @
10f51f22
...
...
@@ -23,7 +23,11 @@ export function publish (name, ...args) {
export
let
lastStatusBarStyle
const
oldSetStatusBarStyle
=
plus
.
navigator
.
setStatusBarStyle
let
oldSetStatusBarStyle
=
plus
.
navigator
.
setStatusBarStyle
export
function
restoreOldSetStatusBarStyle
(
setStatusBarStyle
)
{
oldSetStatusBarStyle
=
setStatusBarStyle
}
export
function
newSetStatusBarStyle
(
style
)
{
lastStatusBarStyle
=
style
...
...
src/platforms/mp-alipay/runtime/wrapper/util.js
浏览文件 @
10f51f22
...
...
@@ -128,10 +128,12 @@ export function triggerEvent (type, detail, options) {
}
const
eventOpts
=
this
.
props
[
'
data-event-opts
'
]
const
eventParams
=
this
.
props
[
'
data-event-params
'
]
const
target
=
{
dataset
:
{
eventOpts
eventOpts
,
eventParams
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录