UNPKG

wux-weapp

Version:

一套组件化、可复用、易扩展的微信小程序 UI 组件库

109 lines (104 loc) 3.27 kB
import baseComponent from '../helpers/baseComponent' import classNames from '../helpers/libs/classNames' import styleToCssString from '../helpers/libs/styleToCssString' baseComponent({ properties: { prefixCls: { type: String, value: 'wux-card', }, hoverClass: { type: String, value: 'none', }, bordered: { type: Boolean, value: true, }, full: { type: Boolean, value: false, }, title: { type: String, value: '', }, thumb: { type: String, value: '', }, thumbStyle: { type: [String, Object], value: '', observer(newVal) { this.setData({ extStyle: styleToCssString(newVal), }) }, }, extra: { type: String, value: '', }, actions: { type: Array, value: [], }, }, data: { extStyle: '', disabled: false, }, computed: { classes: ['prefixCls, hoverClass, bordered, full, actions', function(prefixCls, hoverClass, bordered, full, _actions) { const wrap = classNames(prefixCls, { [`${prefixCls}--bordered`]: bordered, [`${prefixCls}--full`]: full, [`${prefixCls}--has-actions`]: _actions.length > 0, }) const hd = `${prefixCls}__hd` const content = `${prefixCls}__content` const thumb = `${prefixCls}__thumb` const extra = `${prefixCls}__extra` const bd = `${prefixCls}__bd` const ft = `${prefixCls}__ft` const actions = `${prefixCls}__actions` const action = _actions.map((action) => { const wrap = classNames(`${prefixCls}__action`, { [`${prefixCls}__action--${action.type || 'default'}`]: action.type || 'default', [`${prefixCls}__action--bold`]: action.bold, [`${prefixCls}__action--disabled`]: action.disabled, [`${action.className}`]: action.className, }) const hover = action.hoverClass && action.hoverClass !== 'default' ? action.hoverClass : `${prefixCls}__action--hover` return { wrap, hover, } }) const hover = hoverClass && hoverClass !== 'default' ? hoverClass : `${prefixCls}--hover` return { wrap, hd, content, thumb, extra, bd, ft, actions, action, hover, } }], }, methods: { onAction(e) { const { index } = e.currentTarget.dataset const { actions } = this.data const action = actions[index] if (!action.disabled) { this.triggerEvent('action', { index, action, actions }) } }, }, })