37 lines
1023 B
JavaScript
37 lines
1023 B
JavaScript
App({
|
|
globalData: {
|
|
baseUrl: '',
|
|
authToken: '',
|
|
bricks: null
|
|
},
|
|
onLaunch() {
|
|
// 加载 bricks 解析引擎
|
|
const { BricksParser } = require('./utils/parser')
|
|
this.globalData.bricks = new BricksParser()
|
|
},
|
|
// 工具函数: 对应 JS 版 bricks.extend
|
|
extend(target, source) {
|
|
for (let key in source) {
|
|
if (source.hasOwnProperty(key)) {
|
|
if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key])) {
|
|
target[key] = this.extend(target[key] || {}, source[key])
|
|
} else {
|
|
target[key] = source[key]
|
|
}
|
|
}
|
|
}
|
|
return target
|
|
},
|
|
// 模板变量替换: 对应 bricks.obj_fmtstr
|
|
fmt(str, data) {
|
|
return str.replace(/\{\{([^}]+)\}\}/g, (match, key) => {
|
|
return data[key] !== undefined ? data[key] : match
|
|
})
|
|
},
|
|
// entire_url: 拼接 baseUrl
|
|
entireUrl(path) {
|
|
const base = this.globalData.baseUrl || ''
|
|
return base.replace(/\/$/, '') + '/' + path.replace(/^\//, '')
|
|
}
|
|
})
|