当前位置:   article > 正文

Element组件(基础组件和配置组件)

element组件

button


button<el-button>Defalut</el-button>type="primary|success|info|warning|danger"
<el-button plain>Plain</el-button>type="primary|success|info|warning|danger"
<el-button round>Round</el-button>type="primary|success|info|warning|danger"
 <el-button :icon="Search" circle /><script  setup>
import {
  Check,
  Delete,
  Edit,
  Message,
  Search,
  Star,
} from '@element-plus/icons-vue'
</script>
<el-button type="primary" :icon="Edit" circle />
<el-button type="success" :icon="Check" circle />
<el-button type="info" :icon="Message" circle />
<el-button type="warning" :icon="Star" circle />
<el-button type="danger" :icon="Delete" circle />
禁用状态<el-button disabled>Default</el-button>添加disabled
链接按钮<el-button link>button</el-button>添加link

添加样式:

1. type="primary|success|info|warning|danger"

2.渲染

        <template>
            <el-button v-for="button in buttons" :key="button.text" :type="button.type" link >

                {{ button.text }}</el-button>
</template>

<script setup>
        const buttons = [
          { type: '', text: 'plain' },
          { type: 'primary', text: 'primary' },
          { type: 'success', text: 'success' },
          { type: 'info', text: 'info' },
          { type: 'warning', text: 'warning' },
          { type: 'danger', text: 'danger' },
        ]
</script>

文字按钮<el-button text bg>button</el-button>

没有边框(text)和背景色(bg)的按钮

添加样式同上

按钮图标<el-button type="..." :icon="..." />

type="primary|success|info|warning|danger"

:icon="Delete | Edit | Search | Share | Upload | ArrowLeft | ArrowRight"

格式:

       1. <el-button type="..." :icon="..." />

       2.  //在图标后面添加内容

           <el-button type="..." :icon="...">

                text
           </el-button>   

        

       3. //在图标前面添加内容

           <el-button type="...">
              text<el-icon class="el-icon--right"><Delete | Edit | Search | Share | Upload /></el-icon>
           </el-button>

        

 需要添加style

<script setup >
import { ArrowLeft,ArrowRight,Delete, Edit, Search, Share, Upload } from '@element-plus/icons-vue'
</script>    

按钮组<el-button-group>按钮组</el-button-group>通过<el-button-group>将一组按钮包裹起来
加载按钮<el-button type="..." loading>Loading</el-button>添加loading
按钮大小<el-button size="..">Large</el-button>size="large | small"  ,不写默认中等
按钮颜色<el-button color="..." :dark="isDark">Default</el-button>

添加color=" " :dark="isDark"

js中添加

import { isDark } from '~/composables/dark'

         button API

Button属性
size尺寸type类型
plain是否为朴素按钮text是否为文字按钮
bg是否显示文字按钮背景颜色link是否为链接按钮
round是否为圆角按钮circle是否为圆形按钮
loading是否为加载中状态loading-icon自定义加载中状态图标组件
disabled按钮是否为禁用状态icon图标组件
autofocus原生autofocus属性native-type原生 type 属性
auto-insert-space自动在两个中文字符之间插入空格color自定义按钮颜色, 并自动计算hover和active触发后的颜色
darkdark 模式, 意味着自动设置color为 dark 模式的颜色
Button插槽
default自定义默认内容loading自定义加载中组件
icon自定义图标组件
Button对外暴露的方法
ref按钮 html 元素size按钮尺寸
type按钮类型disabled按钮已禁用
shouldAddSpace是否在两个字符之间插入空格

         ButtonGroup API

属性
size用于控制该按钮组内按钮的大小
type用于控制该按钮组内按钮的类型
插槽
default自定义按钮组内容


Radio单选框


         单选框格式  <el-radio>

  1. <template>
  2. <el-radio v-model="radio" label="1">选项</el-radio>
  3. <el-radio v-model="radio" label="2">选项</el-radio>
  4. </template>
  5. <script>
  6. export default {
  7. data(){
  8. //默认选中的按钮
  9. return{
  10. radio:'1'
  11. }
  12. }
  13. }
  14. </script>

        单选框组格式: <el-radio-group>

  1. <template>
  2. <el-radio-group v-model="radio">
  3. <el-radio label="1">选项</el-radio>
  4. <el-radio label="2">选项</el-radio>
  5. </el-radio-group>
  6. </template>
  7. <script>
  8. export default {
  9. data(){
  10. return{
  11. radio:'1'
  12. }
  13. }
  14. }
  15. </script>

        单选按钮格式 <el-radio-button>

  1. <template>
  2. <el-radio-group v-model="radio">
  3. <el-radio-button label="1">选项</el-radio-button>
  4. <el-radio-button label="2">选项</el-radio-button>
  5. </el-radio-group>
  6. </template>
  7. <script>
  8. export default {
  9. data(){
  10. return{
  11. radio:'1'
  12. }
  13. }
  14. }
  15. </script>

        Radio Attributes

labelRadio的valuelabel="number|number|boolean
disabled是否禁用默认false
border是否显示边框默认false
sizeRadio的尺寸,仅当border为true时有效size="medium|small|mini
name原生name属性

         Radio Event

change绑定值变化时触发的事件@change=" "回调参数为选中的Radio label值

        Radio-group Attributes

size按钮组尺寸,仅对按钮形式或带有边框的Radio有效size="medium|small|mini
disabled
text-color按钮形式的Radio激活时的文本颜色text-color=""默认#fff
fill按钮形式的Radio被激活时的填充色和边框色fill=""默认#409EFF

        Radio-group Events

change绑定值变化时触发@change=""返回选中的Radio label值


Checkbox多选框


         格式:<el-checkbox>

  1. <template>
  2. <el-checkbox v-model="checked">选项</el-checkbox>
  3. </template>
  4. <script>
  5. export default{
  6. data(){
  7. return{
  8. checked:true
  9. }
  10. }
  11. }
  12. </script>

        多选框组<el-checkbox-group>

 

  1. <template>
  2. <el-checkbox-group v-model="checkList">
  3. <el-checkbox label="A"></el-checkbox>
  4. <el-checkbox label="B"></el-checkbox>
  5. <el-checkbox label="C"></el-checkbox>
  6. </el-checkbox-group>
  7. </template>
  8. <script>
  9. export default {
  10. data(){
  11. //多选
  12. return{
  13. checkList:["A","C"]
  14. }
  15. }
  16. }
  17. </scrpit>

         多选按钮<el-checkbox-button> 

  1. <template>
  2. <el-checkbox-group v-model="checkList">
  3. <el-checkbox-button label="A"></el-checkbox-button>
  4. <el-checkbox-button label="B"></el-checkbox-button>
  5. <el-checkbox-button label="C"></el-checkbox-button>
  6. </el-checkbox-group>
  7. </template>
  8. <script>
  9. export default {
  10. data(){
  11. //多选
  12. return{
  13. checkList:["A","C"]
  14. }
  15. }
  16. }
  17. </script>

        与单选框Radio不同的Attributes

checkbox | checkbox-button
true-label选中时的值
false-label没有选中的值
checked当前是否勾选默认false
indeterminate设置indeterminate状态,只负责样式控制默认false
label选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)label="string|number|boolean"
checkbox-group
min可被勾选的checkbox最小数量min="number"
max可被勾选的checkbox最大数量max="number

        获取选中的checkbox的label值

        

  1. <template>
  2. <el-checkbox-group v-model="checkedList">
  3. <el-checkbox label="1">A</el-checkbox>
  4. <el-checkbox label="2">B</el-checkbox>
  5. </el-checkbox-group>
  6. <div>你选择{{checkedList}}</div>
  7. </template>
  8. <script>
  9. export default{
  10. data(){
  11. return{
  12. checkedList:[]
  13. }
  14. }
  15. }
  16. </script>


Boder边框 


边框样式
border: 1px solid var(--el-border-color)
border: 1px dashed var(--el-border-color)
圆角
阴影

Container布局容器


        格式:

  1. <el-container> //外层容器
  2. <el-header></el-header> //顶栏容器
  3. <el-aside></el-aside> //侧边栏容器
  4. <el-main></el-main> //主要区域容器
  5. <el-footer></el-footer> //底栏容器
  6. </el-container>

         必须被外层容器包裹,子元素与<el-header>和<el-footer>垂直分布,其他都水平分布

        Container Attributes

direction子元素的排列方向

direction="vertical|horizontal"

子元素中有<el-header>或<el-footer>为vertical,否则为horizontal

        Header Attributes

height顶栏高度height="number px"默认60px

        Aside Attributes

width侧边栏宽度width="number px"默认300px

        Footer Attributes

height底栏高度height="number px默认60px


Icon图标


        1.安装包

npm install @element-plus/icons-vue

        2.注册图标,导入全局变量

        在main.js中添加

  1. // 如果您正在使用CDN引入,请删除下面一行。
  2. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  3. const app = createApp(App)
  4. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  5. app.component(key, component)
  6. }

        浏览器引入

        <script src="//unpkg.com/@element-plus/icons-vue"></script>

        3.用法

<template>

     //不从父级获取属性
    <el-icon> <Edit /> </el-icon>
    //独立使用它
    <Edit />
</template>

与<e-icon>结合,可以在<e-icon>中添加样式color|type|class|style等

直接使用SVG图标
 <Edit style="width: 1em; height: 1em; margin-right: 8px" />SVG图标需要提供图标


Layout布局


        通过24分栏,迅速简便的创建布局

        格式: 

  1. <el-row >
  2.     <el-col :span="">...</el-col>
  3. </el-row>

        Row Attributes

gutter栅格间隔:gutter="number"默认为0
type布局模式,可选flex,可通过justify来定义子元素排版方式type="flex"
justifyflex布局下的水平排列方式justift="start|end|center|space-around|space-between默认start
alignflex布局下的垂直排列方式align="top|midlle|bottom默认top
tag自定义元素标签默认div

        Col Attributes

span栅格占列数:span="number"默认24(最大值)
offset栅格左侧偏移的栏数:offset="number"默认0
push栅格向右移动的格数:push="number"默认0
pull栅格向左移动的格数:pull="number"默认0
xs|sm|md|lg|xl
tag自定义元素标签默认div

 


Link链接


<el-link href="https://element.eleme.io" target="_blank">default</el-link><el-link>..</el-link>
禁用状态添加disabled属性
取消下划线
<el-link :underline="false">..</el-link>添加 :underline="flase"
图标链接
<el-link :icon="Edit">Edit</el-link>

js添加:

import { Edit } from '@element-plus/icons-vue'


滚动条


         Scrollbar

  <el-scrollbar height="400px">{需要添加滚动条的内容}</el-scrollbar>垂直滚动

通过height属性设置滚动条区域显示高度,若不设置则根据父容器高度自适应

只有当滚动的元素高度大于滚动显示高度才会显示垂直滚动

横向滚动当滚动的元素宽度大于滚动显示宽度,就会显示横向滚动
手动滚动使用setScrollTop和setScrollLeft方法实现手动控制滚动条滚动
API

属性:

height(滚动显示高度)

max-height(滚动显示最大高度)

native(是否使用原生滚条样式,默认false)

wrap-style(包裹容器的定义样式)

wrap-class(包裹容器的类名)

view-style(视图的自定义样式)

noresize(不响应容器尺寸变化,默认false)

tag(视图的元素标签,默认div)

alw(滚动条总是显示,默认false)

min-size(滚动条最小尺寸,默认20)

事件:

scroll(当触动滚动事件时,返回滚动的距离)

插槽:

default(自定义默认内容)

对外暴露的方法:

handleScroll(触发滚动事件)

scrollTo(滚动到一组特定坐标)

setScrollTop(设置滚动条到顶部的距离)

setScrollLeft(设置滚动条到左边的距离)

update(手动更新滚动条状态)

wrapRef(滚动条包裹的 ref 对象)

update手动更新滚动条状态
handleScroll触发滚动事件Function
scrollTo滚动到一组特定坐标Function
setScrollTop设置滚动条到顶部的距离Function
setScrollLeft设置滚动条到左边的距离Function
update手动更新滚动条状态Function
wrapRef滚动条包裹的 ref 对象Object

 Space间距


<el-space wrap>{需要统一间距的多个组件}</el-space>
direction<el-space direction="vertical">...</el-space>垂直布局

direction="vertical"

相当于添加wrap换行

(direction="horizontal"   水平分布)

size控制间距大小:size=“samll(8px)| default(12px)| large(16px)| 自定义”
wrap<el-space wrap>...</el-space>自动换行
spacer<el-space spacer="{用来分隔的字符}">... </el-space>字母数字类型分隔符spacer=“{可以是数字、字母、VNode类型字符}”
alignment<el-space alignment=" ">{多个子节点}</el-space>对齐

alignment="flex-start | center | flex_end"(默认center)

(容器中子节点的对齐方式)

fill / fillRatio

//自动填充

<el-space :fill=" ">{多个子节点}</el-space>

//自定义填充的比例

<el-space :fillRatio=" ">{多个子节点}</el-space>

填充容器

:fill="false(默认)| true"

子节点是否自动适配容器的宽度

:fillRatio=" {数字} "

(默认100,代表基于父容器宽度的100%填充)

class类名
prefix-cls给space-items的类名前缀prefix-cls="el-space"
style样式


Config Provider 全局配置


    <el-config-provider>...</el-config-provider>
locale   

<template>
       <div>
            <el-config-provider :locale="zhCn">
                      <el-table mb-1 :data="[]" />
            </el-config-provider>
      </div>
</template>

<script setup>
        import zhCN from 'element-plus/dist/locale/zh-tw.mjs'

</script>

翻译文本对象

1.:locale="{组件中的所有语言}"

2.需要在js中引用所选语言( import zhCN from 'element-plus/dist/locale/{语言名}.mjs')

3.只能翻译组件中存在的内容

button

<template>
       <div>
            <el-config-provider :button="config">
                 <el-button>中文字符</el-button>
           </el-config-provider>
      </div>
</template>

<script lang="ts" setup>
    import { reactive } from 'vue'

    const config = reactive({
          autoInsertSpace: true|false,
    })
</script>

是否自动在按钮中中文字符间插入空格

button属性:

参数:autoInsertSpace(默认值为false)

message

<template>
  <div>
    <el-config-provider :message="config">
      <el-button @click="open">OPEN</el-button>
    </el-config-provider>
  </div>
</template>

<script lang="ts" setup>
import { reactive } from 'vue'
import { ElMessage } from 'element-plus'
const config = reactive({
  max: 3,
})

const open = () => {
  ElMessage('This is a message.')
}
</script>

可以同时显示消息的最大数量

Message属性:

参数max

size全局组件大小
zIndex全局初始化zIndex值number

Form表单组件


         Autodcomplete自动补全输入框

  1. <template>
  2. <el-autocomplete
  3. v-model="state"
  4. :fetch-suggestions="querySearch"
  5. clearable
  6. class="inline-input w-50"
  7. placeholder="Please Input"
  8. @select="handleSelect"
  9. />
  10. </template>
  11. <script lang="ts" setup>
  12. import { onMounted, ref } from 'vue'
  13. interface RestaurantItem {
  14. value: string
  15. link: string
  16. }
  17. const state = ref('')
  18. const restaurants = ref<RestaurantItem[]>([])
  19. const querySearch = (queryString: string, cb: any) => {
  20. const results = queryString
  21. ? restaurants.value.filter(createFilter(queryString))
  22. : restaurants.value
  23. // call callback function to return suggestions
  24. cb(results)
  25. }
  26. const createFilter = (queryString: string) => {
  27. return (restaurant: RestaurantItem) => {
  28. return (
  29. restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0
  30. )
  31. }
  32. }
  33. const loadAll = () => {
  34. return [
  35. { value: 'vue', link: 'https://github.com/vuejs/vue' },
  36. { value: 'element', link: 'https://github.com/ElemeFE/element' },
  37. { value: 'cooking', link: 'https://github.com/ElemeFE/cooking' },
  38. { value: 'mint-ui', link: 'https://github.com/ElemeFE/mint-ui' },
  39. { value: 'vuex', link: 'https://github.com/vuejs/vuex' },
  40. { value: 'vue-router', link: 'https://github.com/vuejs/vue-router' },
  41. { value: 'babel', link: 'https://github.com/babel/babel' },
  42. ]
  43. }
  44. const handleSelect = (item: RestaurantItem) => {
  45. console.log(item)
  46. }
  47. onMounted(() => {
  48. restaurants.value = loadAll()
  49. })
  50. </script>
属性
placeholder placeholder="文本"  占位文本表单中显示的内容
clearable是否可清空默认false
disabled自动补全组件是否被禁用默认false
value-key输入建议对象中用于显示的键名
model-value / v-model选中项绑定值
debounce获取输入建议的防抖延时,单位为毫秒默认300
placement菜单弹出位置默认bottom-start
fetch-suggestions获取输入建议的方法, 仅当你的输入建议数据 resolve 时,通过调用 callback(data:[]) 来返回它
popper-class下拉列表的类名
trigger-on-focus:trigger-on-focus="true|false"点击表单的时候会不会显示输入建议默认true
name等价于原生 input name属性
select-when-unmatched在输入没有任何匹配建议的情况下,按下回车是否触发select事件默认false
label输入框关联的 label 文字
hide-loading是否隐藏远程加载时的加载图标false
popper-append-to-body(deprecated)是否将下拉列表插入至 body 元素。 在下拉列表的定位出现问题时,可将该属性设置为 false默认false
teleported是否将下拉列表元素插入 append-to 指向的元素下默认true
highlight-first-item是否默认高亮远程搜索结果的第一项默认false
highlight-first-item是否默认高亮远程搜索结果的第一项默认false
fit-input-width下拉框的宽度是否与输入框相同默认false
事件
select点击选中建议项时触发
change在 Input 值改变时触发
插槽
default自定义输入建议的内容。 自定义标签,参数为
prefix输入框头部内容
suffix输入框尾部内容
prepend输入框前置内容,在 prefix 之前
append输入框后置内容,在 suffix 之后
对外暴露成员
activated自动补全输入框是否被激活对象
blur使 input 失去焦点
close折叠建议列表
focus使 input 获取焦点
handleSelect手动触发选中建议事件
handleKeyEnter手动触发键盘回车事件
highlightedIndex当前高亮显示选项的索引
highlight在建议中高亮显示一个项目
inputRefel-input 组件实例
loading远程获取提示内容的加载状态指示器
popperRefel-tooltip 组件实例
suggestionssuggestions

        Cascader级联选择器

属性
model-value / v-model选中项绑定值
options可选项数据源,键名可通过Props属性配置
props:props=" "

expandTrigger:'hover|click(默认)'

次级菜单的展开方式(click点击展开,hover鼠标放在上面就展开)

<el-cascader
      v-model="value"

     :options="options" 

     :props="props" 

    @change="handleChange"
    />

<script>

        const props = {
  expandTrigger: 'hover|click',
}

</script>

multiple

是否多选

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/971741
推荐阅读
相关标签
  

闽ICP备14008679号