import React from 'react'; import { View, Image, ITouchEvent } from '@tarojs/components'; import classNames from 'classnames'; interface ButtonProps { /** 类型 */ type?: | 'primary' // 主色 | 'primary-line' // 主色描边 | 'gold' // 金色 | 'light' // 亮色 | 'grey' // 灰色 | 'grey-line' // 灰色描边 | 'white' // 白色 | 'white-line'; // 白色描边 /** 尺寸 */ size?: | 'long' // 宽度拉长 | 'large' // 大尺寸 | 'middle' // 中尺寸 | 'small' // 小尺寸 | 'mini'; // 迷你尺寸 /** 禁用状态 */ disabled?: boolean; /** 图标 */ icon?: string; /** 点击回调 */ onClick?: (event: ITouchEvent) => void; } /** * 按钮组件 */ const Button: React.FC = ({ type = 'primary', size = 'long', disabled = false, icon = '', onClick = () => {}, children, }) => { let disabledMap = { primary: 'disable-0', 'primary-line': 'disable-1', gold: 'disable-0', light: 'disable-2', grey: 'disable-2', 'grey-line': 'disable-3', white: 'disable-4', 'white-line': 'disable-4', }; const classObject = classNames( 'wm-button', `wm-button-${type}`, `wm-button-${size}`, disabled && `wm-button-${disabledMap[type]}`, ); return ( {icon !== '' && } {children} ); }; export default Button;