zengzhiyao-ui v1.0.3
前端组件化UI组件文档
项目使用
下载方式
npm i zengzhiyao-ui
npm i zengzhiyao-ui@1.0.1
在Vue项目中使用
import Myui from 'zengzhiyao-ui/es/index.mjs';
import 'zengzhiyao-ui/es/style.css';
import { createApp } from 'vue';
const app = createApp(App);
app.use(Myui);
Button 按钮
按钮类型
按钮支持primary
、danger
、secondary
、text
等四种类型按钮类型。默认为secondary
<Button type="primary">主要按钮</Button>
<Button type="secondary">次按钮</Button>
<Button type="danger">危险按钮</Button>
<Button type="text">文字按钮</Button>
线框按钮
通过 plain
属性将按钮设置为线框按钮,线框按钮的文字为按钮颜色,背景为白色。
<Button type="primary" plain>主要按钮</Button>
<Button type="danger" plain>危险按钮</Button>
禁用状态
通过 disabnled
属性来禁用按钮,禁用状态下按钮不可点击。
<Button type="primary" disabled>主要按钮</Button>
<Button type="danger" disabled>危险按钮</Button>
加载状态
通过 loading
属性设置按钮为加载状态,加载状态下默认会隐藏按钮文字,可以通过 loading-tex
t 设置加载状态下的文字,默认为‘加载中...’。
<Button loading loading-text="加载" type="primary">加载按钮</Button>
图标按钮
通过 icon 属性设置按钮图标,支持 vant-Icon
组件里的所有图标。
<Button icon="cart" type="primary">主按钮</Button>
按钮尺寸
支持 sm
、md
、lg
三种尺寸,默认为 md
。
<Button size="sm" type="secondary">小型按钮</Button>
<Button size="md" type="secondary">普通按钮</Button>
<Button size="lg" type="secondary">大按钮</Button>
API
Button Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
type | 类型,可选值为 primary danger secondary text | string | secondary |
size | 尺寸,可选值为 sm md lg | string | md |
icon | 左侧图标名称,等同于 vant-Icon 组件的name属性 | string | - |
plain | 是否为朴素按钮 | boolean | false |
loading | 是否显示为加载状态 | boolean | false |
loading-text | 加载状态提示文字 | string | - |
ButtonGroup 按钮组
用于按钮组合,默认弹性盒子,垂直居中,水平 space-around
;
更多按钮
通过插槽more
传入更多按钮,按钮需要将type
传为option
。
<ButtonGroup>
<Button :loading="loading" type="primary" @click="setiiii">主要按钮</Button>
<Button size="md" type="primary">主按钮</Button>
<Button size="md" type="primary">主按钮</Button>
<template #more>
<Button size="md" type="option">更多按钮1</Button>
<Button size="md" type="option">更多按钮2</Button>
<Button size="md" type="option">更多按钮3</Button>
<Button size="md" type="option">更多按钮4</Button>
</template>
</ButtonGroup>
按钮布局调整
通过对item的flex属性进行调整,来调整整体每个按钮的占比,不包含更多按钮
<ButtonGroup>
<Button class="flex-1 mr-2" size="lg" type="secondary">次按钮</Button>
<Button class="flex-1" size="lg" type="primary">主按钮</Button>
</ButtonGroup>
Slot
名称 | 说明 | 备注 |
---|---|---|
more | 将更多按钮以下方弹窗形式弹出 | 其中的按钮需要将type="option" |
Radio 单选框
基础用法
通过v-model绑定当前选项的 value
,按钮默认水平方向以 justify-content: flex-start
的方式排列。
<RadioGroup v-model="value">
<Radio value="0" label="第一个选项"></Radio>
<Radio value="1" label="第二个选项"></Radio>
<Radio value="2" label="第三个选项"></Radio>
</RadioGroup>
<script>
import { ref} from 'vue';
const value = ref('0');
</script>
按钮类型
垂直排列
在RadioGroup 和Radio上分别加上col
属性,实现垂直排列
<RadioGroup v-model="value" col>
<Radio col value="0" label="第一个选项"></Radio>
<Radio col value="1" label="第二个选项"></Radio>
<Radio col value="2" label="第二个选项"></Radio>
<Radio col value="3" label="第二个选项"></Radio>
</RadioGroup>
<script>
import { ref} from 'vue';
const value = ref('0');
</script>
禁用状态
在Radio 上添加disabled
属性实现单选按钮禁用
<RadioGroup v-model="value" col>
<Radio type="circle" disabled col value="5" label="第一个选项"></Radio>
<Radio type="circle" col value="6" label="第二个选项"></Radio>
<Radio type="circle" col value="7" label="第二个选项"></Radio>
<Radio type="circle" col value="8" label="第二个选项"></Radio>
</RadioGroup>
按钮类型
type 属性可选值为 circle
和 tick
,单选框形状分别对应方形和圆点形,默认为circle
。
<RadioGroup v-model="value" col>
<Radio type="circle" col value="1" label="第一个选项"></Radio>
<Radio type="circle" col value="2" label="第二个选项"></Radio>
<Radio type="circle" col value="3" label="第二个选项"></Radio>
<Radio type="circle" col value="4" label="第二个选项"></Radio>
</RadioGroup>
<RadioGroup v-model="value" col>
<Radio type="tick" col value="5" label="第一个选项"></Radio>
<Radio type="tick" col value="6" label="第二个选项"></Radio>
<Radio type="tick" col value="7" label="第二个选项"></Radio>
<Radio type="tick" col value="8" label="第二个选项"></Radio>
</RadioGroup>
右勾选
在Radio 上添加right
属性实现垂直方向的右勾选。
<RadioGroup v-model="value" col>
<Radio type="tick" right col value="1" label="第13选项"></Radio>
<Radio type="tick" right col value="2" label="第14选项"></Radio>
<Radio type="tick" right col value="3" label="第15选项"></Radio>
<Radio type="tick" right col value="4" label="第16选项"></Radio>
</RadioGroup>
API
Radio props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 标识符,通常为一个唯一的字符串或数字 | string | - |
type | 形状,可选值为 circle、tick | string | circle |
label | 文本内容,通常为选项描述 | string | - |
disabled | 是否为禁用状态 | boolean | false |
col | 是否垂直样式 | boolean | false |
right | 是否有勾选(仅垂直样式有效) | boolean | false |
Radio Group
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
col | 是否垂直样式 | boolean | false |
disabled | 是否为禁用状态 | boolean | false |
RadioGroup Events
事件名 | 说明 | 回调参数 |
---|---|---|
change | 当绑定值变化时触发的事件 | value: string |
Switch滑块
基础用法
通过 v-model
绑定开关的选中状态,true
表示开,false
表示关。
<script setup>
import Switch from '@/components/ui/switch/Switch.vue';
import { ref } from 'vue';
const states = ref(false);
<template>
<Switch v-model="states"></Switch>
</template>
禁用状态
通过 disabled
属性来禁用开关,禁用状态下开关不可点击。
<Switch v-model="states" disabled></Switch>
文字展示
<Switch v-model="states" active-text="启用" inactive-text="禁用"></Switch>
API
Switch props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
active-text | 开关开启时展示文字 | string | - |
inactive-text | 开关关闭时展示文字 | string | - |
disabled | 是否为禁用状态 | boolean | false |
Checkbox 多选框
基础用法
通过 v-model
绑定复选框的勾选状态。
<script setup>
import { ref } from 'vue';
import Checkbox Group from './Checkbox -group.vue';
import Checkbox from './Checkbox .vue';
const checkList= ref(['']);
</script>
<template>
<Checkbox Group v-model="checkList" row direction="horizontal">
<Checkbox class="flex-1" value="1">选项内容</Checkbox >
<Checkbox class="flex-1" value="2">选项内容</Checkbox >
</Checkbox Group >
</template>
禁用状态
通过设置 disabled
属性可以禁用复选框,也可以禁用单个选项。
//单个选项的禁用
<Checkbox class="flex-1" disabled value="1">选项内容</Checkbox >
//多选框组的禁用
<Checkbox Group disabled v-model="checkList1" direction="horizontal">
<Checkbox class="flex-1" value="1">选项内容</Checkbox >
<Checkbox class="flex-1" value="2">选项内容</Checkbox >
</Checkbox Group >
水平排列
将 direction
属性设置为 horizontal后,复选框组会变成水平排列。
//水平排列
<Checkbox Group v-model="checkList" direction="horizontal">
<Checkbox class="flex-1" disabled value="0">选项内容</Checkbox >
<Checkbox class="flex-1" disabled value="1">选项内容</Checkbox >
</Checkbox Group >
右勾选
可以添加right
属性来实现有勾选(仅垂直排列有效)
列表组合-右勾选
<Checkbox Group v-model="checkList7" right>
<Checkbox value="1">内容一</Checkbox >
<Checkbox value="2">内容二</Checkbox >
<Checkbox value="3">内容三</Checkbox >
</Checkbox Group >
限制最大可选数
通过 max
属性可以限制复选框组的最大可选数。(0为无限制)
//限制最大可选数
<Checkbox Group v-model="checkList" max="2">
<Checkbox value="1">内容一</Checkbox >
<Checkbox value="2">内容二</Checkbox >
<Checkbox value="3">内容三</Checkbox >
</Checkbox Group >
自定义形状
通过设置shape
属性为 cycle
将图标设置为圆形图标
<Checkbox Group v-model="checkList" shape="cycle">
<Checkbox value="1">第一个选项</Checkbox >
</Checkbox Group >
API
Checkbox Group Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
v-model | 当前选中列表 | array | - |
shape | 图标形状,可选值 horizontal | string | - |
direction | 排列方向,可选值 cycle | string | - |
disabled | 是否为禁用状态 | boolean | false |
max | 最大可选数(0为无限制) | number | 0 |
right | 右勾选 | boolean | false |
Checkbox Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 选项内容 | string | - |
disabled | 是否为禁用状态 | boolean | false |
Checkbox Group Events
事件名 | 说明 | 回调参数 |
---|---|---|
change | 当绑定值变化时触发的事件 | value: string |
Divider 分割线
基础用法
默认渲染一条水平分割线。
<template>
<Divider></Divider>
</template>
<script setup>
// Your script setup code here
import Dividerfrom './Divider';
</script>
展示文本
通过插槽在可以分割线中间插入内容。
<Divider>文本</Divider>
Layout 布局
基础用法
引入组件Layout
将我们需要的内容插入组件layout中,页面统一展示边距为8px的布局
<script>
import Layout from './Layout.jsx';
</script>
<template>
<Layout>
<Card class={'h-48'}>卡片1</Card>
</Layout>
<template/>
多个卡片
当我们需要多个卡片在一起时候,引入Card
组件,将Card组件放在layout
中,实现整体简洁布局
<script>
import Layout from './layout';
import Card from './card';
</script>
<template>
<Layout>
<Card class={'h-48'}>卡片1</Card>
<Card class={'h-48'}>卡片2</Card>
<Card class={'h-48'}>卡片3</Card>
<Card class={'h-48'}>卡片4</Card>
<Card class={'h-48'}>卡片5</Card>
</Layout>
<template/>
Space 间距
基础用法
引入Space组件,让页面的元素之间有间距
<script>
import Space from './Space';
</script>
<template>
<Space row size="8">
<div class="bg-red-500 h-48 w-48">1</div>
<div class="bg-blue-500 h-48 w-48">2</div>
<div class="bg-green-500 h-48 w-48">3</div>
</Space>
<template/>
间距大小
通过调整size参数,来改变块与块之间的宽度,单位是dp。
<Space size="8">
<div class="bg-red-500 h-48 w-48">1</div>
<div class="bg-blue-500 h-48 w-48">2</div>
<div class="bg-green-500 h-48 w-48">3</div>
</Space>
<Space size="12">
<div class="bg-red-500 h-48 w-48">1</div>
<div class="bg-blue-500 h-48 w-48">2</div>
<div class="bg-green-500 h-48 w-48">3</div>
</Space>
<Space size="24">
<div class="bg-red-500 h-48 w-48">1</div>
<div class="bg-blue-500 h-48 w-48">2</div>
<div class="bg-green-500 h-48 w-48">3</div>
</Space>
方向
调整row
值来改变Space
的方向
<Space row >
<div class="bg-red-500 h-48 w-48">1</div>
<div class="bg-blue-500 h-48 w-48">2</div>
<div class="bg-green-500 h-48 w-48">3</div>
</Space>
API
Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
size | 间距大小,单位dp | string | 8 |
row | 是否水平排列 | boolean | false |
Grid 宫格
基础用法
引入宫格组件,在Grid 中添加GridItem
来实现菜单功能的组合。
<script>
import Grid from './Grid';
import GridItem from './GridItem';
</script>
<template>
<Grid ColumnNum="4">
<GridItem>
{{
icon: () => <img src={caravg}></img>,
default: () => <div>整车零售查询</div>,
}}
</GridItem>
<GridItem>
{{
icon: () => <img src={cartotalavg}></img>,
default: () => <div>整车零售开单</div>,
}}
</GridItem>
</Grid>
<template/>
横排个数
传入ColumnNum
来控制横排的菜单个数
<Grid ColumnNum="3">
<GridItem>
{{
icon: () => <img src={caravg}></img>,
default: () => <div>整车零售查询</div>,
}}
</GridItem>
<GridItem>
{{
icon: () => <img src={cartotalavg}></img>,
default: () => <div>整车零售开单</div>,
}}
</GridItem>
<GridItem>
{{
icon: () => <img src={cartotalavg}></img>,
default: () => <div>整车零售开单</div>,
}}
</GridItem>
<GridItem>
{{
icon: () => <img src={cartotalavg}></img>,
default: () => <div>整车零售开单</div>,
}}
</GridItem>
</Grid>
Api
GridItem Slots
名称 | 说明 | 参数 |
---|---|---|
default | 默认插槽,展示菜单文字信息 | - |
icon | icon插槽,菜单图标信息 | img、svg |
Tag 标签
基础用法
引入标签组件,dom中直接使用。
<script>
import Tag from './Tag';
</script>
<template>
<Tag>Tag</Tag>
<template/>
类型
通过type的传值,控制标签的不同类型,默认为主要类型
<Tag type="plain" class="mr-3" color="#4E5969">
Tag
</Tag>
<Tag color="#EC4040" class="mr-3">
Tag
</Tag>
<Tag type="opaque" class="mr-3" color="#4E5969">
Tag
</Tag>
颜色
通过color的控制,来展示不同的颜色,默认为#FC7124
<Tag color="#EC4040" class="mr-3">
Tag
</Tag>
<Tag class="mr-3" color="#29BA17">
Tag
</Tag>
<Tag class="mr-3" color="#FC7124">
Tag
</Tag>
<Tag color="#F3B800" class="mr-3">
Tag
</Tag>
<Tag class="mr-3" color="#2690DC">
Tag
</Tag>
<Tag class="mr-3" color="#4E5969">
Tag
</Tag>
形状
round参数来控制Tag标签的形状,默认是方形,当round为true是圆形
<Tag round type="plain" color="#EC4040" class="mr-3">
Tag
</Tag>
<Tag round type="plain" class="mr-3" color="#29BA17">
Tag
</Tag>
API
props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
color | 标签颜色 | string | #FC7124 |
type | 标签类型,默认主要标签,可选值plain,opaque | string | -- |
round | 是否圆形 | boolean | false |
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago