You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
3 years ago
|
import computedBehavior from './computedBehavior'
|
||
|
import relationsBehavior from './relationsBehavior'
|
||
|
import safeAreaBehavior from './safeAreaBehavior'
|
||
|
import safeSetDataBehavior from './safeSetDataBehavior'
|
||
|
import funcBehavior from './funcBehavior'
|
||
|
import compareVersion from './compareVersion'
|
||
|
|
||
|
const { platform, SDKVersion } = wx.getSystemInfoSync()
|
||
|
const libVersion = '2.6.6'
|
||
|
|
||
|
// check SDKVersion
|
||
|
if (platform === 'devtools' && compareVersion(SDKVersion, libVersion) < 0) {
|
||
|
if (wx && wx.showModal) {
|
||
|
wx.showModal({
|
||
|
title: '提示',
|
||
|
content: `当前基础库版本(${SDKVersion})过低,无法使用 Wux Weapp 组件库,请更新基础库版本 >=${libVersion} 后重试。`,
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const baseComponent = (options = {}) => {
|
||
|
// add default externalClasses
|
||
|
options.externalClasses = [
|
||
|
'wux-class',
|
||
|
'wux-hover-class',
|
||
|
...(options.externalClasses = options.externalClasses || []),
|
||
|
]
|
||
|
|
||
|
// add default behaviors
|
||
|
options.behaviors = [
|
||
|
relationsBehavior,
|
||
|
safeSetDataBehavior,
|
||
|
...(options.behaviors = options.behaviors || []),
|
||
|
computedBehavior, // make sure it's triggered
|
||
|
]
|
||
|
|
||
|
// use safeArea
|
||
|
if (options.useSafeArea) {
|
||
|
options.behaviors = [...options.behaviors, safeAreaBehavior]
|
||
|
delete options.useSafeArea
|
||
|
}
|
||
|
|
||
|
// use func
|
||
|
if (options.useFunc) {
|
||
|
options.behaviors = [...options.behaviors, funcBehavior]
|
||
|
delete options.useFunc
|
||
|
}
|
||
|
|
||
|
// use field
|
||
|
if (options.useField) {
|
||
|
options.behaviors = [...options.behaviors, 'wx://form-field']
|
||
|
delete options.useField
|
||
|
}
|
||
|
|
||
|
// use export
|
||
|
if (options.useExport) {
|
||
|
options.behaviors = [...options.behaviors, 'wx://component-export']
|
||
|
options.methods = {
|
||
|
export () {
|
||
|
return this
|
||
|
},
|
||
|
...options.methods,
|
||
|
}
|
||
|
delete options.useExport
|
||
|
}
|
||
|
|
||
|
// add default options
|
||
|
options.options = {
|
||
|
multipleSlots: true,
|
||
|
addGlobalClass: true,
|
||
|
...options.options,
|
||
|
}
|
||
|
|
||
|
return Component(options)
|
||
|
}
|
||
|
|
||
|
export default baseComponent
|