提交 2d80a746 编写于 作者: Q qiang

Merge branch 'dev' into alpha

......@@ -84,7 +84,7 @@ function resolveI18nLocale (platfrom, locales, locale) {
return locale
}
const defaultLocales = ['zh-Hans', 'zh-Hant']
if (platfrom === 'app' || platfrom === 'h5') {
if (platfrom === 'app-plus' || platfrom === 'h5') {
defaultLocales.unshift('en')
} else {
// 小程序
......@@ -96,4 +96,4 @@ function resolveI18nLocale (platfrom, locales, locale) {
module.exports = {
initLocales,
initI18nOptions
}
}
......@@ -47,8 +47,8 @@ export declare interface I18nOptions {
export declare function initVueI18n(locale?: string, messages?: LocaleMessages, fallbackLocale?: string, watcher?: (locale: string) => void): {
i18n: I18n;
f(message: string, values?: Record<string, unknown> | unknown[] | undefined, delimiters?: [string, string] | undefined): string;
t(key: string, values?: Record<string, unknown> | unknown[] | undefined): string;
f(message: string, values?: Record<string, unknown> | Array<unknown>, delimiters?: [string, string]): string;
t(key: string, values?: Record<string, unknown> | Array<unknown>): string;
add(locale: BuiltInLocale, message: Record<string, string>, override?: boolean): void;
watch(fn: LocaleWatcher): () => void;
getLocale(): string;
......
......@@ -410,13 +410,10 @@ describe('mp:compiler-extra', () => {
`
<view v-for="(value,key,index) in dataObj" :key="index">
<button @click="click1(index)">click1(index)</button>
<button @click="click1(key)">click1(key)</button>
<button @click="click2(value)">click2(value)</button>
<button @click="fnObj.click(value)">fnObj.click(value)</button>
<button @click="click1(index);click2(key);">click1(index);click2(key);</button>
</view>
`,
'<block wx:for="{{$root.l0}}" wx:for-item="value" wx:for-index="key" wx:key="$index"><view><button data-event-opts="{{[[\'tap\',[[\'click1\',[value.$index]]]]]}}" bindtap="__e">click1(index)</button><button data-event-opts="{{[[\'tap\',[[\'click1\',[key]]]]]}}" bindtap="__e">click1(key)</button><button data-event-opts="{{[[\'tap\',[[\'click2\',[value.$orig]]]]]}}" bindtap="__e">click2(value)</button><button data-event-opts="{{[[\'tap\',[[\'e0\',[\'$event\']]]]]}}" data-event-params="{{({value:value.$orig})}}" bindtap="__e">fnObj.click(value)</button><button data-event-opts="{{[[\'tap\',[[\'click1\',[value.$index]],[\'click2\',[key]]]]]}}" bindtap="__e">click1(index);click2(key);</button></view></block>',
'<block wx:for="{{$root.l0}}" wx:for-item="value" wx:for-index="key" wx:key="$index"><view><button data-event-opts="{{[[\'tap\',[[\'click1\',[value.$index]]]]]}}" bindtap="__e">click1(index)</button><button data-event-opts="{{[[\'tap\',[[\'e0\',[\'$event\']]]]]}}" data-event-params="{{({value:value.$orig})}}" bindtap="__e">fnObj.click(value)</button></view></block>',
'with(this){var l0=__map(dataObj,function(value,key,index){var $orig=__get_orig(value);return{$orig:$orig,$index:index}});if(!_isMounted){e0=function($event,value){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=_temp.eventParams||_temp["event-params"],value=_temp2.value;var _temp,_temp2;return fnObj.click(value)}}$mp.data=Object.assign({},{$root:{l0:l0}})}'
)
})
......
......@@ -221,8 +221,8 @@ module.exports = function generateJson (compilation) {
delete jsonObj.insertAppCssToIndependent
delete jsonObj.independent
delete jsonObj.copyWxComponentsOnDemand
if (process.env.UNI_PLATFORM === 'mp-weixin' && process.env.USE_UNI_AD) {
require('./mp-weixin-uniad-app.json')(jsonObj)
if (process.env.UNI_PLATFORM === 'mp-weixin') {
require('./mp-weixin-uniad-app.json')(jsonObj, process.env.USE_UNI_AD)
}
} else { // 删除用于临时记录的属性
delete jsonObj.usingGlobalComponents
......
module.exports = function (appJson) {
const UNI_PLUGINS = [{
name: 'uni-ad',
version: '1.1.1',
provider: 'wxf72d316417b6767f'
},
{
name: 'coral-adv',
version: '1.0.15',
provider: 'wx0e203209e27b1e66'
}
]
module.exports = function (appJson, useAD) {
const plugins = appJson.plugins || {}
for (const key in plugins) {
const provider = plugins[key].provider
if (provider) {
const exists = UNI_PLUGINS.find((item) => item.provider === provider)
if (exists) {
console.error('应用的uni-ad配置不正确,请直接在页面中引入uni-ad广告组件,无需单独引入插件。')
process.exit(-1)
}
}
}
if (!useAD) {
return
}
if (!appJson.plugins) {
appJson.plugins = {}
}
if (!appJson.plugins['uni-ad']) {
appJson.plugins['uni-ad'] = {
version: '1.1.1',
provider: 'wxf72d316417b6767f'
}
}
if (!appJson.plugins['coral-adv']) {
appJson.plugins['coral-adv'] = {
version: '1.0.15',
provider: 'wx0e203209e27b1e66'
for (let i = 0; i < UNI_PLUGINS.length; i++) {
const { name, version, provider } = UNI_PLUGINS[i]
appJson.plugins[name] = {
version,
provider
}
}
......
......@@ -21,7 +21,7 @@ class SocketTask {
this.CONNECTING = 0
this.OPEN = 1
this.readyState = this.CLOSED
}
}
send (args) {
if (this.readyState !== this.OPEN) {
......@@ -34,7 +34,7 @@ class SocketTask {
socketTaskId: this.id
}))
this._callback(args, errMsg.replace('operateSocketTask', 'sendSocketMessage'))
}
}
close (args) {
this.readyState = this.CLOSING
......@@ -45,23 +45,23 @@ class SocketTask {
socketTaskId: this.id
}))
this._callback(args, errMsg.replace('operateSocketTask', 'closeSocket'))
}
}
onOpen (callback) {
this._callbacks.open.push(callback)
}
}
onClose (callback) {
this._callbacks.close.push(callback)
}
}
onError (callback) {
this._callbacks.error.push(callback)
}
}
onMessage (callback) {
this._callbacks.message.push(callback)
}
}
_callback ({
success,
......@@ -93,19 +93,24 @@ onMethod('onSocketTaskStateChange', ({
socketTaskId,
state,
data,
code,
reason,
errMsg
}) => {
const socketTask = socketTasks[socketTaskId]
if (!socketTask) {
return
}
const callbackRes = state === 'message'
? { data }
: state === 'close'
? { code, reason }
: {}
if (state === 'open') {
socketTask.readyState = socketTask.OPEN
}
if (socketTask === socketTasksArray[0] && callbacks[state]) {
invoke(callbacks[state], state === 'message' ? {
data
} : {})
invoke(callbacks[state], callbackRes)
}
if (state === 'error' || state === 'close') {
socketTask.readyState = socketTask.CLOSED
......@@ -114,13 +119,11 @@ onMethod('onSocketTaskStateChange', ({
if (index >= 0) {
socketTasksArray.splice(index, 1)
}
}
socketTask._callbacks[state].forEach(callback => {
if (typeof callback === 'function') {
callback(state === 'message' ? {
data
} : {})
}
}
socketTask._callbacks[state].forEach(callback => {
if (typeof callback === 'function') {
callback(callbackRes)
}
})
})
......@@ -182,4 +185,4 @@ export function onSocketMessage (callbackId) {
export function onSocketClose (callbackId) {
callbacks.close = callbackId
}
}
......@@ -41,10 +41,13 @@ function getSocket () {
})
socket.onclose(function (e) {
const socketTaskId = e.id
const { code, reason } = e
delete socketTasks[socketTaskId]
publishStateChange({
socketTaskId,
state: 'close'
state: 'close',
code,
reason
})
})
return socket
......
......@@ -112,5 +112,9 @@ export function getLocation ({
errMsg: 'getLocation:fail ' + error.message
})
})
}).catch((error) => {
invoke(callbackId, {
errMsg: 'getLocation:fail ' + error.message || JSON.stringify(error)
})
})
}
......@@ -26,9 +26,12 @@ class SocketTask {
eventNames.forEach(name => {
this._callbacks[name] = []
webSocket.addEventListener(name, event => {
const res = name === 'message' ? {
data: event.data
} : {}
const { data, code, reason } = event
const res = name === 'message'
? { data }
: name === 'close'
? { code, reason }
: {}
this._callbacks[name].forEach(callback => {
try {
callback(res)
......
......@@ -146,6 +146,7 @@ export default {
const title = option.title
const position = IS_AMAP ? new maps.LngLat(option.longitude, option.latitude) : new maps.LatLng(option.latitude, option.longitude)
const img = new Image()
let imgHeight = 0
img.onload = () => {
const anchor = option.anchor || {}
let icon
......@@ -160,6 +161,7 @@ export default {
w = img.width / 2
h = img.height / 2
}
imgHeight = h
const top = h - (h - y * h)
if ('MarkerImage' in maps) {
// 腾讯 & google
......@@ -255,14 +257,21 @@ export default {
let callout = marker.callout
let calloutStyle
if (calloutOpt.content || title) {
if (IS_AMAP && calloutOpt.content) {
calloutOpt.content = calloutOpt.content.replaceAll('\n', '<br/>')
}
const boxShadow = '0px 0px 3px 1px rgba(0,0,0,0.5)'
let offsetY = -imgHeight / 2
if (option.width || option.height) {
offsetY += 14 - imgHeight / 2
}
calloutStyle = calloutOpt.content
? {
position,
map,
top,
// handle AMap callout offset
offsetY: -option.height / 2,
offsetY,
content: calloutOpt.content,
color: calloutOpt.color,
fontSize: calloutOpt.fontSize,
......@@ -276,7 +285,7 @@ export default {
position,
map,
top,
offsetY: -option.height / 2,
offsetY,
content: title,
boxShadow: boxShadow
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册