0.2.0 • Published 1 year ago

@deardanta/base-components-vue3 v0.2.0

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

@deardanta/base-components-vue3:0.2.0 ⚡

通用组件库,基于vue3,基于elementPlus 版本 >= 2.3.2封装

  • 💡 基于vue3,elementPlus封装
  • ⚡ 动态组件实现,渲染速度更快
  • 🛠️ 扩展性强,除固定属性外支持官网动态属性和插槽渲染
  • 🔑 现在已经支持form, descriptions组件
// 引入element-plus
import ElementPlus from "element-plus"
import 'element-plus/dist/index.css'

// 引入中文语言包
import zhCn from 'element-plus/es/locale/lang/zh-cn'
app.use(ElementPlus, {locale: zhCn})

库使用方式

import install from '@deardanta/base-components-vue3'
app.use(install);

1:baseForm组件使用

// formData 为所有表单双向绑定数据
// formConfig 为表单配置项
// formItems 为表单组件配置
// formDicOptions 为表单下拉或树数据集合
// submitBaseForm 事件为提交触发验证回调
// resetBaseForm 事件为触发重置回调

<baseForm ref='baseFormRef' 
        v-model:formData="formData"
        :form-config='formConfig' 
        :form-items='formItems' 
        :form-dic-options='dicList'
        @submitBaseForm='submitBaseForm'
        @resetBaseForm='resetBaseForm'>
</baseForm>

baseForm配置项例举

所有组件除固定配置外,都动态支持elementPlus组件的所有属性,详细配置见elementPlus官网

现在已经支持的组件:

  • 动态插槽 type: 'slot'
  • input(inputType可配置其他类型)
  • textarea
  • input-number
  • select
  • tree-select
  • cascader
  • date (dateType可配置其他类型)
  • time (timeType可配置其他类型)
  • time-select
  • radio-group
  • checkbox-group
  • switch
  • slider
  • rate
  • color-picker
  • transfer
  • ...
const formData = reactive({
    name: '',
    age: ''
})

const formItems = reactive([
  {
    span: 12,
    type: 'input',
    label: '姓名',
    prop: 'name',
    rules: [validate.required]
  },
  {
    span: 12,
    type: 'input-number',
    label: '年龄',
    prop: 'age',
    min: 0,
    max: 200,
    rules: [validate.required]
  },
  {
    span: 24,
    type: 'slot',
    slotName: 'slot1'
  },
])

2:baseDescriptions 组件使用

// modelValue 为描述列表的数据,详细配置见下
// labelWidth 为标题宽度,默认为 '100px'
// gutter 为列表间距,默认为 20

<baseDescriptions v-model='formData' labelWidth="100px">
</baseDescriptions>
const formData = reactive([
    {
        label: '名称1', // 名称1
        content: '内容1', // 内容
        span: 12, // 24比例值
        labelWidth: '', // 标题长度(可选,默认全局labelWidth)
        line: 2 // 显示行数,超出这个数的行内容会自动省略(可选,默认2)
    }
])
0.2.0

1 year ago

0.1.2

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago