wux-weapp
Version:
一套组件化、可复用、易扩展的微信小程序 UI 组件库
74 lines (67 loc) • 2.46 kB
JavaScript
import baseComponent from '../helpers/baseComponent'
import classNames from '../helpers/libs/classNames'
import { props } from './props'
baseComponent({
properties: props,
computed: {
classes: ['prefixCls, buttons', function(prefixCls, btns) {
const wrap = classNames(prefixCls)
const button = btns.map((button) => {
const wrap = classNames(`${prefixCls}__button`, {
[`${prefixCls}__button--disabled`]: button.disabled,
[`${button.className}`]: button.className,
})
const hover = button.hoverClass && button.hoverClass !== 'default' ? button.hoverClass : `${prefixCls}__button--hover`
return {
wrap,
hover,
}
})
const bd = `${prefixCls}__bd`
const icon = `${prefixCls}__icon`
const title = `${prefixCls}__title`
const buttons = `${prefixCls}__buttons`
return {
wrap,
button,
bd,
icon,
title,
buttons,
}
}],
},
methods: {
/**
* 点击按钮触发事件
*/
onTap(e) {
const { buttons } = this.data
const { index } = e.currentTarget.dataset
const value = this.data.buttons[index]
if (value.disabled) return
this.triggerEvent('click', { index, value, buttons })
},
bindgetuserinfo(e) {
this.triggerEvent('getuserinfo', {...e.detail, ...e.currentTarget.dataset })
},
bindcontact(e) {
this.triggerEvent('contact', {...e.detail, ...e.currentTarget.dataset })
},
bindgetphonenumber(e) {
this.triggerEvent('getphonenumber', {...e.detail, ...e.currentTarget.dataset })
},
bindopensetting(e) {
this.triggerEvent('opensetting', {...e.detail, ...e.currentTarget.dataset })
},
bindlaunchapp(e) {
this.triggerEvent('launchapp', {...e.detail, ...e.currentTarget.dataset })
},
bindchooseavatar(e) {
this.triggerEvent('chooseavatar', {...e.detail, ...e.currentTarget.dataset })
},
onError(e) {
this.triggerEvent('error', {...e.detail, ...e.currentTarget.dataset })
},
},
})