更新记录

1.0.1(2021-03-11)

修复某些情况下,提交失败后按钮状态没重置的问题。

1.0.0(2021-02-04)

发布1.0.0版


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × ×

动效状态按钮(ls-state-button)

带有提交动画效果的按钮,支持 H5 vue app

说明

通常用于表单提交的提交按钮,它带有提交中以及提交成功的状态动画,既可以给用户一个友好的提交等待提示,又可以防止用户重复点击。

用法示例

<ls-state-button ref="button" @submit="handleSubmit" />
import lsStateButton from '@/components/ls-state-button/ls-state-button.vue';
export default {
    components: {
        lsStateButton
    },
    methods: {
        handleSubmit() {
            // 模拟接口请求
            setTimeout(() => {
                // 如果接口调用成功
                this.$refs.button.success(() => {
                    // 这里写提交成功后的代码逻辑
                    console.log('提交成功');
                });

                // 如果接口调用失败
                // this.$refs.button.fail('提交失败');
            }, 1600);
        }
    }
}

组件参数

属性名 类型 默认值 说明
color String #19cc95 按钮主题颜色
font-color String #ffffff 文字颜色
shadow Boolean true 是否显示按钮阴影
text String 提交 按钮文字
plain Boolean false 结果符号是否镂空
submit Function 按钮点击后的回调

组件方法

方法名 说明 方法参数
init() 初始化按钮状态 此方法会将按钮初始化至点击前的状态
success(callback) 提交成功 Function 此方法会将按钮状态置为成功,此方法接收一个回调方法,具体用法请看下方success方法参数说明
fail(toast) 提交失败 String 此方法会将按钮状态置为失败,此方法接收一个String类型的参数,如果不为空,失败时会一并弹出指定的toast提示

success方法参数说明

success方法接收一个回调方法,回调方法中执行你提交成功后的代码逻辑(写在这里的原因是可以保证按钮的成功动画可以充分执行完毕)。 例如如下场景:表单提交后页面跳转到列表页,

错误的使用方法: Bad !

handleSubmit() {
        // 模拟接口请求
        setTimeout(() => {
            this.$refs.button.success();
            // 成功后跳转页面
            // 执行效果: 提交成功动画没有执行完毕,页面就已经跳走了
            uni.navigateTo({
                url: 'list'
            })
        }, 1600);
    }

正确的使用方法:Good !

handleSubmit() {
        // 模拟接口请求
        setTimeout(() => {
            this.$refs.button.success(() => {
                // 成功后跳转页面
                // 执行效果:提交成功动画执行完毕,页面跳转
                uni.navigateTo({
                    url: 'list'
                })
            });
        }, 1600);
    }

鸣谢

组件示例项目中,按钮的4种颜色出自高颜值css组件库ColorUI,感谢ColorUI

谢谢

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问