组件库开发(四)

目录介绍Checkbox组件Checkbox属性LoginReg组件LoginReg属性介绍本篇主要介绍checkbox组件和login-reg组件Checkbox组件它的参数如下 checked: 初始值 是否选中, theme: checkbox的主题色, disabled:是否禁用, unsure:是否处于<不确定>状态, modelValue:v-model绑定的值 Boolean, si
摘要由CSDN通过智能技术生成

目录

介绍

Checkbox组件

Checkbox属性

LoginReg组件

LoginReg属性


介绍

本篇主要介绍checkbox组件和login-reg组件

Checkbox组件

它的参数如下

  • checked: 初始值 是否选中,

  • theme: checkbox的主题色,

  • disabled:是否禁用,

  • unsure:是否处于<不确定>状态,

  • modelValue:v-model绑定的值 Boolean,

  • size:组件的大小,

  • label:组件的标签

export const checkboxProps = {
    checked: {
        type: Boolean,
        default: false,
        required: false
    },
    theme: {
        type: String,
        default: DefaultColor,
        required: false,
        validator(value:ComponentConstants.StandardColor){
            return ComponentConstants.StandardColorArr.includes(value)
        },
    },
    disabled: {
        type: Boolean,
        default: false,
        required: false
    },
​
    // 是否处于"不确定状态"    
    unsure: {
        type: Boolean,
        default: false,
        required: false
    },
    modelValue: {
        type: Boolean,
        default: false,
        required: false
    },
    size: {
        type: String,
        default: DefaultSize,
        required: false,
        validator(value:ComponentConstants.StandardSize){
            return ComponentConstants.StandardSizeArr.includes(value)
        }
    },
    label: {
        type: String,
        default: "",
        required: false
    }
};

例子:

​​

<script setup lang='ts'>
    const select = ref( false );
​
</script>
<template>
    <div>
        <s-checkbox v-model="select" label="是否堂食" size="large"></s-checkbox>
        <s-checkbox v-model="select" theme="success"  label="是否堂食"></s-checkbox>
        <s-checkbox v-model="select" unsure theme="warning"  label="待确认" size="small"></s-checkbox>
        <s-checkbox disabled label="Disabled"></s-checkbox>
  </div>
</template>

Checkbox属性

属性说明类型可选值默认值
checkedbox的初始值booleanfalsetrue/false
themebox的主题颜色StandardColor"main""main","info","success","warning","error"
disabled是否禁用booleanfalsetrue/false
unsure是否处于不确定状态booleanfalsetrue/false
modelValue(对应v-model)box绑定的值booleanfalsetrue/false
sizebox的大小StandardSize"default""large" ,"default", "small"
labelbox的标签说明string任何一段描述性的string""
<script lang="ts" setup>
const select = ref( false );
</script>

LoginReg组件

它的参数如下

  • onLogin: 登录时触发的事件,

  • onReg: 注册时触发的事件,

  • onLoginSuc:登录成功时的回调,

  • onRegSuc:注册时成功时的回调,

  • onLoginFail:登录失败时的回调,

  • onRegFail:注册失败时的回调,

  • LoginTitle:登录框的标题,

  • LoginSubmitTip: 登录按钮上的提示,

  • RegTitle: 注册框的标题,

  • RegSubmitTip: 注册按钮上的提示

interface SceneLoginRegProps {
    onLogin:( p: { userID: string, pwd: string } ) => Promise< { done: boolean } >
    onReg: ( p: { userID: string, userNick: any, pwd: string } ) => Promise< { done: boolean } >
    onLoginSuc ?: ( userID: string ) => any,
    onRegSuc ?: ( userID: string ) => any,
    onLoginFail ?: ( userID: string ) => any,
    onRegFail ?: ( userID: string ) => any,
​
    LoginTitle ?: string;
    LoginSubmitTip ?: string;
    
    RegTitle ?: string;
    RegSubmitTip ?: string;
}

例子:

​​

<script setup lang='ts'>
    import { SLoginReg } from 'scene-ui';
    // ( p ) => Promise< { done: boolean } >
    const onLogin = ( 
        p: { 
            userID: string, 
            pwd: string 
        }
    ) => fetch( 
        'http://localhost:9000/api/login',
        {
            method: 'POST',
            headers: new Headers({
            'Content-Type': 'application/x-www-form-urlencoded' // 指定提交方式为表单提交
            }),
            body: new URLSearchParams([["userID", p.userID],["pwd", p.pwd]]).toString()
        }
    )
    .then((res) => {
        return res.json()
    })
​
    const onReg = ( 
        p: { 
            userID: string, 
            pwd: string, 
            userNick: string 
        } 
    ) => fetch( 
            'http://localhost:9000/api/reg',
            {
                method: 'POST',
                headers: new Headers({
                'Content-Type': 'application/x-www-form-urlencoded' // 指定提交方式为表单提交
                }),
                body: new URLSearchParams([["userID", p.userID],["pwd", p.pwd], ["userNick", p.userNick]]).toString()
            }
        )
    .then((res) => {
        return res.json()
    })
​
</script>
<template>
    <s-login-reg 
    :onLogin="onLogin"
    :onReg="onReg">
    </s-login-reg>
</template>

LoginReg属性

属性说明类型可选值默认值
onLogin登录时触发的函数( p: { userID: string, pwd: string } ) => Promise< { done: boolean } >--
onReg注册时触发的函数( p: { userID: string, userNick: any, pwd: string } ) => Promise< { done: boolean } >--
onLoginSuc登录成功时触发的函数 userID会被作为回调的参数( userID: string ) => any不管是否传入该值 都会触发一个全局的<成功提示>消息-
onRegSuc注册成功时触发的函数 userID会被作为回调的参数( userID: string ) => any不管是否传入该值 都会触发一个全局的<成功提示>消息-
onLoginFail登录失败时触发的函数 userID会被作为回调的参数( userID: string ) => any不管是否传入该值 都会触发一个全局的<失败提示>消息-
onRegFail注册失败时触发的函数 userID会被作为回调的参数( userID: string ) => any不管是否传入该值 都会触发一个全局的<失败提示>消息-
onLoginFail登录失败时触发的函数 userID会被作为回调的参数( userID: string ) => any不管是否传入该值 都会触发一个全局的<失败提示>消息-
onRegFail注册失败时触发的函数 userID会被作为回调的参数( userID: string ) => any不管是否传入该值 都会触发一个全局的<失败提示>消息-
LoginTitle登录的标题string一个描述登录目的的标题字符串"登录"
LoginSubmitTip登录按钮上的文字string-"LOGIN"
RegTitle注册的标题string一个描述注册目的的标题字符串"注册"
RegSubmitTip注册按钮上的文字string-"点击注册"
<script lang="ts" setup> const onLogin = () => new Promise( r => r( { done: true } ) ); const onReg = () => new Promise( r => r( { done: true } ) ); </script> <style scope> div{ text-align: center; } </style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值