36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
/**
|
||||
|
|
* Button 按钮(规范 §22 / Token §2 主色 + 功能色)
|
|||
|
|
*
|
|||
|
|
* 变体 variant:primary(主红)/ secondary(白底红边)/ ghost(无背景)/ danger / text
|
|||
|
|
* 尺寸 size:sm / md(默认)/ lg
|
|||
|
|
* 状态:disabled / loading
|
|||
|
|
* 用法:
|
|||
|
|
* <ui-button variant="primary" size="md" bindtap="onSubmit">提交</ui-button>
|
|||
|
|
* <ui-button variant="danger" block loading>删除</ui-button>
|
|||
|
|
*/
|
|||
|
|
Component({
|
|||
|
|
options: { addGlobalClass: true, multipleSlots: true },
|
|||
|
|
externalClasses: ['custom-class'],
|
|||
|
|
properties: {
|
|||
|
|
variant: { type: String, value: 'primary' }, // primary|secondary|ghost|danger|text
|
|||
|
|
size: { type: String, value: 'md' }, // sm|md|lg
|
|||
|
|
block: { type: Boolean, value: false }, // 是否撑满父容器
|
|||
|
|
disabled: { type: Boolean, value: false },
|
|||
|
|
loading: { type: Boolean, value: false },
|
|||
|
|
openType: { type: String, value: '' }, // 透传原生 open-type(getPhoneNumber 等)
|
|||
|
|
hoverClass: { type: String, value: 'ui-btn--hover' },
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
onTap(e) {
|
|||
|
|
if (this.data.disabled || this.data.loading) return;
|
|||
|
|
this.triggerEvent('tap', e.detail || {});
|
|||
|
|
},
|
|||
|
|
onGetPhoneNumber(e) {
|
|||
|
|
this.triggerEvent('getphonenumber', e.detail || {});
|
|||
|
|
},
|
|||
|
|
onError(e) {
|
|||
|
|
this.triggerEvent('error', e.detail || {});
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
});
|