dc-wiew使用文档

dc-view是仿照iview以及element,使用vue3语法写成的,适用于vue3的组件库。

演示地址: dc-view

使用步骤

npm i dc-view          // 安装
import DcView from "dc-view";   // 导入
import 'dc-view/lib/dc-view.css';    // 导入css样式
createApp(App).use(DcView).mount('#app');   // 使用

源码地址 (源码中有各个组件使用案例)

http://gitee.com/view-group/dc-view

目录

dc-tooltip

dc-ellipsis

dc-form

dc-date-picker

dc-dropdown

dc-button

dc-transition

DcMessage

dc-tabs


<template>
    <dc-menu :active-index="state.activeIndex" @changeIndex="value => state.activeIndex = value" :fold="state.fold">
        <template v-for="item in state.menuList" :key="item.title">
            <dc-sub-menu v-if="item.children" :index="item.title" >
                <template #icon>
                    <i :class="`iconfont icon-riqi-dc`"></i>
                </template>
                <template #title>
                    <div>{{item.title}}</div>
                </template>
                <dc-menu-item v-for="item2 in item.children" :key="item2.title" :index="item2.title">
                    <template #icon>
                        <i :class="`iconfont icon-riqi-dc`"></i>
                    </template>
                    <div>{{item2.title}}</div>
                </dc-menu-item>
            </dc-sub-menu>
            <dc-menu-item v-else :index="item.title">
                <template #icon>
                    <i :class="`iconfont icon-riqi-dc`"></i>
                </template>
                <div>{{item.title}}</div>
            </dc-menu-item>
        </template>
    </dc-menu>
</template>

<script setup>
import { reactive } from "vue";
const state = reactive({
    menuList: [
        {
            title: "菜单1"
        },
        {
            title: "菜单2"
        },
        {
            title: "菜单3"
        },
        {
            title: "菜单4",
            children: [
                {
                    title: "菜单4-1"
                },
                {
                    title: "菜单4-2"
                },
                {
                    title: "菜单4-3"
                }
            ]
        }
    ],
    activeIndex: "",
    fold: false
})
</script>

 dc-menu Props

属性说明类型默认值

active-index

选中的菜单的indexString-
fold是否折叠菜单Booleanfalse

        注意: 选中某个菜单,只能通过改变active-index来实现

dc-menu Event

事件名说明返回值

changeIndex

选中菜单时触发index
属性说明类型默认值
index唯一表示String-

dc-sub-menu Slots

名称说明
title菜单标题
icon菜单图标

dc-menu-item Props

属性说明类型默认值
index唯一表示String-

dc-menu-item Slots

名称说明
icon菜单图标

dc-tooltip

<dc-tooltip 
    content="这是提示文字" 
    :max-width="100" 
    placement="bottom" 
    :disabled="false"
>
    <div>这是一段文字</div>
</dc-tooltip>

dc-tooltip Props

属性说明类型默认值

content

提示的内容String-
disabled是否禁用提示框Booleanfalse
placement提示框出现的位置Stringbottom
max-width

最大宽度,超出最大值后,

文本将自动换行

Number250

dc-tooltip Slots

名称说明

content

提示框的内容,定义此 slot 时,会覆盖 props content。

dc-ellipsis

<template>
    <div style="width: 200px">
        <dc-ellipsis :max-width="300" :text="state.text" placement="right" :line="2" :height="100" :length="10" />
    </div>
</template>

<script setup>
import { reactive } from "vue"
const state = reactive({
    text: "史蒂夫·乔布斯(英语:Steve Jobs),是一名美国企业家、营销家和发明家,苹果公司的联合创始人之一,曾任董事长及首席执行官职位,NeXT创办人及首席执行官,也是皮克斯动画的创办人并曾任首席执行官,2006年为华特迪士尼公司的董事会成员。2017年9月苹果发布会举行的地方,以他命名为 Steve Jobs Theater 。"
})
</script>

dc-ellipsis Props

属性说明类型默认值

text

文本String-

length

按照指定长度截取Number-

height

限制高度截取Number-
line限制行数截取Number1

tooltip

是否使用tooltip显示Booleanfalse

placement

tooltip的placementStringbottom
max-widthtooltip的max-widthNumber250

 说明: tooltip为false是文本省略时,tooltip提示,没有省略时,则不显示提示,

          tooltip为true提示一直存在

dc-form

template>
    <button type="submit" class="mr-10" @click="validate">验证</button>
    <button type="submit" class="mr-10" @click="validateField">验证姓名</button>
    <button type="submit" class="mr-10" @click="resetFields">重置</button>
    <dc-form class="mt-20" ref="form" :inline="state.inline" :label-width="70" :model="state.form" :rules="state.rules" :required="true">
        <dc-form-item label="姓名" prop="name" :required="false">
            <dc-input clearable placeholder="请输入姓名" type="text" v-model="state.form.name" />
        </dc-form-item>
        <dc-form-item label="年龄" required prop="age">
            <dc-input placeholder="请输入年龄" type="text" v-model="state.form.age" />
        </dc-form-item>
        <dc-form-item label-align="flex-start" label="选择框" prop="date">
            <dc-date-picker transfer clearable @on-change="changeDate"></dc-date-picker>
        </dc-form-item>
    </dc-form>
</template>

<script setup>
    import { reactive, ref } from "vue";
    const state = reactive({
        form: {
            name: "",
            age: "",
            date: ""
        },
        rules: {
            name: [
                { required: true, message: "请输入姓名", trigger: "blur"},
            ],
            age: [
                { required: true, message: "请输入性别", trigger: "blur" }
            ],
            date: [
                { required: true, trigger: "change", message: "请选择日期" }
            ],
        },
        inline: false
    })
    const form = ref(null);
    const validate = () => {
        form.value.validate(valid => {
            console.log("整个表单进行验证");
        });
    }
    const validateField = () => {
        form.value.validateField("name").then(valid => {
            console.log("表单某项进行验证");
        });
    }
    const resetFields = () => {
        form.value.resetFields(); // 重置表单
    }
    function changeDate(date) {
        state.form.date = date
    }
</script>

dc-form Props

属性说明类型默认值

model

表单数据对象Object-

rules

表单验证规则

具体配置查看 async-validator

Object-

labelWidth

表单域标签的宽度Number-

inline

是否开启行内表单模式Booleanfalse

autocomplete

原生的 autocomplete 属性Stringoff

dc-form Methods

方法名说明参数

validate

对整个表单进行校验callback

validateField

对部分表单字段进行校验callback

resetFields

对整个表单进行重置-

dc-form-item Props

属性说明类型默认值

label

标签文本String-

prop

对应表单域 model 里的字段String-

label-width

表单域标签的的宽度Number-

required

是否必填,如不设置,则会根据校验规则自动生成Booleanfalse

dc-form-item Slots

名称说明
labellabel的内容

dc-date-picker

dc-date-picker Props

属性说明类型默认值
type显示类型,可选值为 datedaterangeStringdate
modelValue选择器绑定的时间,可以使用v-modelArray[]
clearable是否显示清除按钮Booleanfalse

format

展示日期的格式Array

["YYYY-MM-DD", "YYYY-MM-DD"]

placeholder

占位文本String-
separator开启后,左右面板不联动,仅在 daterange下可用Booleanfalse
placement日期选择器出现的位置String"bottom-start"
transfer是否将弹层放置于 body 内Booleanfalse

dc-dropdown

dc-dropdown Props

属性说明类型默认值

trigger

触发方式,可选值为 hover(悬停)click(点击)String"hover"
placement下拉菜单出现的位置String"bottom"
transfer是否将弹层放置于 body 内Booleanfalse

dc-dropdown Event

事件名说明返回值

on-click

点击菜单项时触发dc-dromdown-item 的 name 值

dc-dropdown Slots

名称说明
list列表内容

dc-dropdown-item Props

属性说明类型默认值
name用来标识这一项String-
disabled禁用这一项Booleanfalse
selected选中这一项Booleanfalse

dc-button

dc-button Props

属性说明类型默认值
type按钮类型String"default"
shape按钮形状,可选"circle"String-
size按钮大小String"default"
ghost幽灵属性,使按钮背景透明Booleanfalse
long开启后,按钮的长度为 100%Booleanfalse
disable禁用按钮Booleanfalse
loading加载中Booleanfalse
html-type设置 button 原生的 typeBoolean"button"

dc-transition

dc-transition Props

属性说明类型默认值
type动画类型Stringopacity
time动画持续时间Number0.3

DcMessage

通过直接调用以下方法来使用组件:

import { DcMessage } from "dc-view";
DcMessage.info();

DcMessage.success();

DcMessage.warning();

DcMessage.error();

DcMessage.loading();

参数 config 可以是字符串或对象,当为字符串时,直接显示内容,当为对象时,具体说明如下:

属性说明类型默认值
content提示内容String-
duration自动关闭的延时,单位秒,不关闭可以写 0Number1.5
onClose关闭时的回调Function-
closable是否显示关闭按钮Booleanfalse
background是否显示背景颜色Booleanfalse

另外提供了全局配置和全局销毁的方法:

DcMessage.config(options);

DcMessage.destroy(); 

属性说明类型默认值
top提示组件距离顶部的距离,单位像素Number24
duration默认自动关闭的延时,单位秒Number1.5
background是否默认显示背景Booleanfalse

dc-tabs

dc-tabs props

属性说明类型默认值

modelValue

当前激活 tab 面板的 name,

可以使用 v-model 双向绑定数据

string-

dc-tabs events

事件名说明返回值
on-clicktab 被点击时触发name

dc-tab-pane props

属性说明类型默认值
name用于标识当前面板String-
label选项卡头显示文字Sting-
disabled禁用当前选项卡Booleanfalse

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值