国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

封裝vue基于element的select多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值

這篇具有很好參考價值的文章主要介紹了封裝vue基于element的select多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

相信很多公司的前端開發(fā)人員都會選擇使用vue+element-ui的形式來開發(fā)公司的管理后臺系統(tǒng),基于element-ui很豐富的組件生態(tài),我們可以很快速的開發(fā)管理后臺系統(tǒng)的頁面(管理后臺系統(tǒng)的頁面也不復雜,大多都是分頁查詢類需求和增刪改查)。但一個前端框架有優(yōu)點,就必然會有一些缺點或bug存在,element-ui框架也不例外,甚至elementui框架的缺點或bug還很多,這里就不一一列舉了,相信使用它的我們都心知肚明。

今天,本篇文章就針對element-ui的一個組件——select選擇器進行一些改進,以達到我們實際的項目開發(fā)中想要實現(xiàn)的一個效果,或者說完善該組件的一些功能。當然了,還是在select選擇器的基礎上改進,不會對它的源代碼做任何修改。

那么,具體做什么改進呢?就是我們文章標題所說的“select選擇器多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值”。如果你沒有做過這樣的需求,或者沒有聽說過這樣的效果,那你聽起來可能會覺得有點繞,不過沒關系,來張效果圖你就知道了:

封裝vue基于element的select多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值
封裝vue基于element的select多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值

這種效果呢,element plus已經(jīng)實現(xiàn)了,但它實現(xiàn)的效果不太好看,而且我們公司用的也不是element plus,而是element2,element2的select選擇器又沒有這樣的實現(xiàn),所以我就參考網(wǎng)上的大神們的資料自己用js寫了一個這樣的效果:

select多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值collapseTagsTooltip.js:

export default {
  // 最多顯示多少個tag
  props: {
    maxTagCount: {
      type: Number,
      default: 1
    },
  },
  data() {
    // 創(chuàng)建數(shù)字展示的tag
    let countDom = document.createElement("span")
    countDom.className = "jy-ui-collapse-tag"

    return {
      domSelectTags: null,
      domSelect: null,
      countDom,
      toolTip: null,
      toolTipArr: []
    };
  },
  watch: {
    '$attrs.value'(v) {
      this.afterChange(v)
    },
  },
  mounted() {
    this.domSelect = this.$refs.select.$el
    this.domSelectTags = this.domSelect.querySelector(".el-select__tags")

    this.domSelectTags && this.domSelect.querySelector(".el-select__tags > span").after(this.countDom)
  },
  methods: {
    querySelectorAll(txt) {
      const selectRefs = this.$refs.select
      if(!selectRefs) return []

      const select = selectRefs.$el

      if (!select) return []
      return select.querySelectorAll(txt)
    },
    // vue 獲取元素距離瀏覽器視口左側的距離
    offsetLeft(elements) {
      let left = elements.offsetLeft
      let parent = elements.offsetParent
      while (parent != null) {
        left += parent.offsetLeft
        parent = parent.offsetParent
      }
 
      return left
    },
    // vue 獲取元素距離瀏覽器視口頂部的距離
    offsetTop(elements) {
      let top = elements.offsetTop
      let parent = elements.offsetParent
      while (parent != null) {
        top += parent.offsetTop
        parent = parent.offsetParent
      }

      return top
    },
    // 獲取當前元素所在的模塊的第一個有滾動條的父元素
    parentScroll(elements){
      let dom = null
      let parent = elements.parentNode
      let flag = true

      while (parent != null && flag) {
        const style = this.isDOM(parent) ? this.getStyle(parent, 'overflow-y') : ''
        if(style === 'auto' || style === 'scroll'){
          dom = parent
          flag = false
        }

        parent = parent.parentNode
      }

      return dom
    },
    // 根據(jù)className類獲取祖先節(jié)點
    getParent(elements, className){
      let dom = null
      let parent = elements.parentNode
      let flag = true

      while (parent != null && flag) {
        const _className = this.isDOM(parent) ? parent.className : ''
        if(_className.indexOf(className) > -1){
          dom = parent
          flag = false
        }

        parent = parent.parentNode
      }

      return dom
    },
    async afterChange(value) {
      if (!this.domSelectTags) return

      await this.$nextTick()

      let awaitUntilNodeEqual = () => {
        let { length } = this.querySelectorAll(".el-tag")

        if (length != value.length) {
          requestAnimationFrame(awaitUntilNodeEqual)
          return;
        }

        if (length == 0) {
          this.countDom.style.display = "none"
          this.countDom.innerHTML = 0
        }

        this.handleInsideTags()
      };

      awaitUntilNodeEqual()
    },
    handleInsideTags() {
      // 處理內部節(jié)點
      let elTags = Array.from(this.querySelectorAll(".el-tag"))
      
      // toolTip的內容
      this.toolTipArr = []

      elTags.forEach((elTag, index) => {
        if (index >= this.maxTagCount) {
          elTag.style.display = "none"
          this.toolTipArr.push(elTag.innerText)
        } else {
          // 這里不用display = "inline-block",是因為display設置了inline-block后會導致用了align-items: center的樣式會失效。
          // display:flex已經(jīng)block化了。
          elTag.style.display = "flex"
        }
      });

      let elCount = elTags.length

      if (elCount > this.maxTagCount) {
        this.countDom.innerHTML = `+${elCount - this.maxTagCount}`
        this.countDom.style.display = "flex"
        this.countDom.style.alignItems = "center"
      } else {
        this.countDom.style.display = "none"
        this.countDom.innerHTML = 0
      }

      // 鼠標移入collapse-tags,即鼠標移入多選的數(shù)字標簽時。
      this.countDom.onmouseenter = self => this.mouseenter(self)
      // 鼠標離開collapse-tags,即鼠標離開多選的數(shù)字標簽時。
      this.countDom.onmouseleave = () => this.mouseleave()
    },
    mouseenter({ target }){
       // 微前端框架里需要被減去的寬度
       let subtractWidth = 0
       let subtractHeight = 0
       let subTop = 0
       if (window.__MICRO_APP_ENVIRONMENT__) { 
        //  let alideNode = document.querySelector('body').querySelector('.d2-theme-container-aside')
         subtractWidth = 0
         subtractHeight = 0
         subTop = 72
       }
      // 創(chuàng)建toolTip元素DOM
      this.toolTip = document.createElement("div")
      this.toolTip.className = "jy-ui-select-tooltip"
      // 創(chuàng)建toolTip中內容的顯示元素DOM
      const toolTipContent = document.createElement("span")
      toolTipContent.className = "jy-ui-select-tooltip-content"
      toolTipContent.innerHTML = this.toolTipArr.join(',')
      // 創(chuàng)建toolTip顯示時所需的三角形元素DOM
      const arrowBottom = document.createElement("span")
      arrowBottom.className = "jy-ui-select-tooltip-arrow"

      const arrowTop = document.createElement("span")
      arrowTop.className = 'jy-ui-select-tooltip-arrow jy-ui-select-tooltip-arrow-top'

      // 將toolTip中內容的顯示元素DOM插入到toolTip元素中
      this.toolTip.appendChild(toolTipContent)
      // 將三角形元素插入到toolTip元素中
      this.toolTip.appendChild(arrowBottom)
      this.toolTip.appendChild(arrowTop)
      // 將toolTip元素插入到body中
      document.querySelector('body').appendChild(this.toolTip)

      // target.offsetLeft - 當前鼠標移入的數(shù)字元素距離瀏覽器視口左側的距離
      const selectOffsetTop = this.offsetTop(this.domSelect)  // 當前select元素距離瀏覽時視口頂部的距離
      const targetOffsetLeft = this.offsetLeft(target)  // 當前鼠標移入的數(shù)字元素距離瀏覽器視口左側的距離
      const slectOffsetHeight = this.domSelect.offsetHeight  // slectOffsetHeight - 當前select元素的高度
      const toolTipOffsetHeight = this.toolTip.offsetHeight  // 當前所要顯示的toolTip的高度
      const toolTipOffsetWidth = this.toolTip.offsetWidth  // toolTipOffsetWidth - 當前所要顯示的toolTip的寬度
      const targetOffsetWidth = target.offsetWidth  // targetOffsetWidth - 當前鼠標移入的數(shù)字元素的寬度

      // toolTip距離瀏覽器視口左側的距離
      let leftPos = targetOffsetLeft + (targetOffsetWidth / 2) - (toolTipOffsetWidth / 2)
      // toolTip距離瀏覽器視口頂部的距離
      let topPos = selectOffsetTop - toolTipOffsetHeight - 5

      // 如果toolTip的上邊被瀏覽器視口遮擋,則將toolTip放置在select的下邊
      if(topPos - subTop <= 0){
        topPos = selectOffsetTop + slectOffsetHeight + 5
        arrowBottom.style.display = 'none'
        arrowTop.style.display = 'block'
      }else{
        arrowBottom.style.display = 'block'
        arrowTop.style.display = 'none'
      }

      // 如果toolTip的左邊被瀏覽器視口遮擋,則將toolTip的left置為2
      if(leftPos <= 0){
        leftPos = 2
        let arrowLeftPos = targetOffsetLeft + (targetOffsetWidth / 2)
        arrowLeftPos = Math.floor(arrowLeftPos) + 'px'
        arrowBottom.style.left = arrowLeftPos
        arrowTop.style.left = arrowLeftPos
      }

      // window.pageYOffset: safari獲取scrollTop的方法
      const bodyTop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset
      const bodyHasScroll = this.getStyle(document.querySelector('body'), 'overflow') === 'hidden'
      const floorBodyTop = Math.floor(bodyTop)

      // 如果是被瀏覽器的滾動條滾到了視口的頂部,則將toolTip放置在select的下邊。其中,bodyTop指的是網(wǎng)頁滾動的距離
      if(!bodyHasScroll && (floorBodyTop + toolTipOffsetHeight + 10 + subTop >= selectOffsetTop)){
        topPos = selectOffsetTop + slectOffsetHeight + 5
        arrowBottom.style.display = 'none'
        arrowTop.style.display = 'block'
      }else{
        arrowBottom.style.display = 'block'
        arrowTop.style.display = 'none'
      }

      const parentScroll = this.parentScroll(this.domSelect)
      const parentScrollTop = parentScroll ? parentScroll.scrollTop : 0
      const floorParentScrollTop = Math.floor(parentScrollTop)

      // 彈框的高度縮小到一定程度時,也會出現(xiàn)滾動條,當這個滾動條滾動時,也會影響tooltip的位置。
      // 用this.getParent(this.domSelect, 'el-dialog__wrapper')來獲取el-dialog__wrapper,是因為彈窗關閉后,
      // 會在body節(jié)點中依舊保留彈窗的節(jié)點dom,如果頁面中打開的彈窗不止一個,此時要再獲取el-dialog__wrapper的scrollTop就不知道要獲取哪個彈窗的了。
      const dialogWrapper = this.getParent(this.domSelect, 'el-dialog__wrapper')
      const dialogWrapperScrollTop = dialogWrapper ? Math.floor(dialogWrapper.scrollTop) : 0

      // 如果當前元素的父元素存在滾動條,且body元素的滾動條不存在,說明select組件有可能是在彈窗中且彈窗內可能會發(fā)生滾動。
      if(parentScroll && bodyHasScroll){
        topPos = topPos - floorParentScrollTop + floorBodyTop - dialogWrapperScrollTop

        if(floorParentScrollTop + toolTipOffsetHeight + 10 + subTop + dialogWrapperScrollTop >= selectOffsetTop){
          topPos = selectOffsetTop + slectOffsetHeight - floorParentScrollTop - dialogWrapperScrollTop + floorBodyTop + 5
          arrowBottom.style.display = 'none'
          arrowTop.style.display = 'block'
        }else{
          arrowBottom.style.display = 'block'
          arrowTop.style.display = 'none'
        }
      }else if(parentScroll && !bodyHasScroll){
        // 如果當前元素的父元素存在滾動條,且body元素的滾動條存在,說明select組件可能只是在頁面中且其所在模塊的某個父元素可能會發(fā)生滾動,
        // 那么這個時候topPos的值其實已經(jīng)包含了瀏覽器滾動條的滾動距離了,所以這里就不再加bodyTop了。
        topPos = topPos - floorParentScrollTop
        // 如果瀏覽器的滾動條和當前元素的某個父元素的滾動條發(fā)生了滾動且tooltip被頂部遮擋,則將toolTip放置在select的下邊
        if(floorBodyTop + floorParentScrollTop + toolTipOffsetHeight + 10 + subTop >= selectOffsetTop){
          topPos = selectOffsetTop + slectOffsetHeight - floorParentScrollTop + 5
          arrowBottom.style.display = 'none'
          arrowTop.style.display = 'block'
        }else{
          arrowBottom.style.display = 'block'
          arrowTop.style.display = 'none'
        }
      }

      this.toolTip.style.display = 'block'
      this.toolTip.style.left = Math.floor(leftPos) - subtractWidth + 'px'
      this.toolTip.style.top = Math.floor(topPos) - subtractHeight + 'px'

      // 如果toolTip的右邊被瀏覽器視口遮擋,則將toolTip的left置為initial,right置為2
      if(Math.floor(leftPos) + toolTipOffsetWidth >= document.body.offsetWidth){
        this.toolTip.style.left = 'initial'
        this.toolTip.style.right = '2px'

        let arrowRightPos = document.body.offsetWidth - targetOffsetLeft - (targetOffsetWidth / 2) - 18
        arrowRightPos = Math.floor(arrowRightPos) + 'px'

        arrowBottom.style.left = 'initial'
        arrowTop.style.left = 'initial'
        arrowBottom.style.right = arrowRightPos
        arrowTop.style.right = arrowRightPos
      }
    },
    mouseleave(){
      // 鼠標離開多選的數(shù)字標簽時,刪除插入到body中國的toolTip。
      document.querySelector('body').removeChild(this.toolTip)
    },
    // 原生js獲取元素的樣式
    getStyle(el, name){
      if(window.getComputedStyle){
        return String(getComputedStyle(el).getPropertyValue(name)).trim()
      }else{
        return el.currentStyle[name]
      }
    },
    // 判斷當前節(jié)點是否是dom節(jié)點,如果不判斷的話,在使用getComputedStyle時,
    // 會報Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.的錯,因為getComputedStyle這個方法只能用在dom節(jié)點上。
    isDOM(el) {
      // 首先判斷是否支持HTMLELement,如果支持,使用HTMLElement,如果不支持,通過判斷DOM的特征,如果擁有這些特征說明就是ODM節(jié)點,特征使用的越多越準確
      return (typeof HTMLElement === 'function')
      ? (el instanceof HTMLElement)
      : (el && (typeof el === 'object') && (el.nodeType === 1) && (typeof el.nodeName === 'string'))
    }
  },
}

使用的時候,可能需要你基于element-ui單獨封裝一個select組件,然后你只需把這個文件引入到你封裝的select組件中然后mixins一下就可以了。比如select.vue:

<template>
  <el-select v-model="select" v-bind="{clearable, ...$attrs, collapseTags: false, 'collapse-tags': false}>
    <el-option value="1" label="選項一" />
    <el-option value="2" label="選項二" />
    <el-option value="3" label="選項三" />
  </el-select>
</template>

<script>
import collapseTagsTooltip from './collapseTagsTooltip'

export default {
  mixins: [collapseTagsTooltip],
  data(){
    return {
      select: []
    }
  }
}
</script>

寫到這里,其實已經(jīng)實現(xiàn)了本文所說的效果,但有幾個地方需要注意:

1、我們在封裝select組件時,要把select組件的 collapse-tags 屬性置為false,且即使用戶在使用select組件時傳入了 collapse-tags 屬性也不讓他傳入的那個屬性起作用,為什么呢?其實,仔細看我們的實現(xiàn)邏輯就會知道,collapse-tags 屬性為false時會把select多選后的所有選項都放在select框內,這個時候我們就可以獲取到除了必須要展示出來的那幾個選項之外的其他所有選項(這些其他選中的選項的value就要用tooltip來展示的),然后再把這些選項置為 display: none,剩下的事情就是如何展示這些其他選項的問題了。試想一下,如果 collapse-tags 屬性為true時會怎么樣?element-ui的select選擇器會把第一項展示在select框內,其余選中的節(jié)點的dom根本就不會出現(xiàn)在頁面的源代碼中,這個時候想獲取除了選中的第一項的其他的選項,就比較麻煩了,也不是不可以實現(xiàn),只是會很麻煩,因為你要用選中的key去循環(huán)匹配select下拉中與key一一對應的value。有人說這不就是一個雙重循環(huán)嘛,是,循環(huán)一把拿到value沒問題,可你有沒有想過如果select的下拉數(shù)據(jù)源是通過遠程搜索請求了接口獲取的到呢?你要把每一次通過接口獲取到的下拉數(shù)據(jù)源都保存到一個變量中,而且還得去重,去重之后再雙重循環(huán)去獲取到對應的value。有這么麻煩的步驟,直接將collapse-tags 屬性置為false去獲取剩下的那些選中的項,它不香嗎?只是這樣其實也有一個問題,比如接口一次性把兩三千條下拉數(shù)據(jù)都吐給了前端,雖然前端可能只取了前100條展示了出來,可如果select組件有搜索的屬性 filterable,那么用戶就可以通過搜索選中一兩千條數(shù)據(jù),此時可能就會造成select組件卡頓,因為什么呢?就是因為把 collapse-tags 屬性置為了false,導致select組件中其實渲染了一兩千個選中的dom節(jié)點。不過一下子選中一兩千條數(shù)據(jù)的場景不多,如果你介意這樣的問題,那你就把 collapse-tags 屬性置為true,然后像之前說的那樣去獲取需要tooltip展示的數(shù)據(jù)。

2、我們這里也實現(xiàn)了select中最多展示幾個選中項后其余的選中項以tooltip的方式展示,在使用時傳入 maxTagCount 屬性即可。

3、我們這里實現(xiàn)的效果并不會像element-ui的tooltip文字提示那樣可以上下左右、左上左下、右上右下等等展示,只會根據(jù)瀏覽器的視口來上下展示。

4、我們這里實現(xiàn)的效果也可以用在彈窗中,比如彈窗中有select的多選效果,tooltip也是可以正常展示的,并且tooltip的top值會隨著彈窗的縱向滾動條的滾動而變化。

5、我們這里實現(xiàn)的效果并不是基于element-ui的tooltip,因為它的tooltip沒法用在我們的實現(xiàn)中,我是自己用js實現(xiàn)了一個tooltip。

6、我們這里實現(xiàn)的效果與element-ui的tooltip還不一樣的地方是element-ui的tooltip在鼠標離開后會把tooltip的dom節(jié)點留在頁面的源代碼中,而我實現(xiàn)的則是鼠標離開后就在頁面的源代碼中銷毀了tooltip的dom節(jié)點。想留下節(jié)點,會很麻煩,所以就沒有實現(xiàn)。

7、我們這里實現(xiàn)的效果是鼠標懸停在折疊文字上才出現(xiàn)tooltip,并不像網(wǎng)上其他人那樣實現(xiàn)的是鼠標懸停在select上就展示tooltip,因為他們是直接在select的外面套了一個element-ui的 el-tooltip。

7、我們這里也實現(xiàn)了select中最多展示幾個選中項后其余的選中項以tooltip的方式展示,在使用時傳入 maxTagCount 屬性即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-458355.html

到了這里,關于封裝vue基于element的select多選時啟用鼠標懸停折疊文字以tooltip顯示具體所選值的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • element-ui 下拉框選擇器selete多選時,單行顯示所選內容

    1.只需重寫 el-select 原生樣式 特別注意:重寫原生樣式時,去掉當前 style 的 scoped 或者可以通過該穿透去實現(xiàn)

    2024年02月12日
    瀏覽(17)
  • vue2+ant-design-vue a-select組件二次封裝(支持單選/多選添加全選/分頁(多選跨頁選中)/自定義label)

    vue2+ant-design-vue a-select組件二次封裝(支持單選/多選添加全選/分頁(多選跨頁選中)/自定義label)

    參數(shù) 說明 類型 默認值 v-model 綁定值 boolean / string / number/Array - mode 設置’multiple’\\\'tags’多選 (顯示全選) String - optionSource 下拉數(shù)據(jù)源 Array - width select寬度(可以設置百分比或px) String 100% customLabel 是否自定義設置下拉label String - valueKey 傳入的 option 數(shù)組中,要作為最終選擇

    2024年02月08日
    瀏覽(30)
  • < element-Ui表格組件:表格多選功能回顯勾選時因分頁問題,導致無法勾選回顯的全部數(shù)據(jù) >

    < element-Ui表格組件:表格多選功能回顯勾選時因分頁問題,導致無法勾選回顯的全部數(shù)據(jù) >

    在 Vue + elementUi 開發(fā)中,elementUI中表格在本身是自帶多選功能的,但是在某些情況下,并不能完全適用,甚至可能產(chǎn)生bug。例如本次案例所遇Bug,情景如下: 本案例場景 :在表單中, 通過表單參數(shù)篩選某個明細表格數(shù)據(jù) ,后端要求新增時可多選明細表格中的內容。但由于明

    2024年02月09日
    瀏覽(24)
  • uniapp select 多選選擇器封裝

    前言:作者想實現(xiàn)的功能類似一個uniapp選擇器,但是可以選擇多個值,同時又可以單選和全選,在uniapp? 的UI框架去找,發(fā)現(xiàn)沒有類似的,最后在uniapp 的插件市場找到了這個multiple-select? ?里面的功能比較全實現(xiàn)了單選全選并同時可以選擇多個值,還可以禁用某一項數(shù)據(jù),自

    2024年02月06日
    瀏覽(18)
  • element ui多選框(Checkbox 多選框、Select多選框)編輯時無法選中的解決辦法

    element ui多選框(Checkbox 多選框、Select多選框)編輯時無法選中的解決辦法

    ?在上面添加變更事件,然后變更事件中添加this.$forceUpdate(); ?強制渲染多選框的樣式即可 注意: 多選框需要傳數(shù)組,字符串無法正常渲染,因此表單初始化綁定的v-model需要初始化為空數(shù)組[],而編輯頁面?zhèn)髦禃r如果是字符串,需要轉數(shù)組: ? ? ? ? 重點就是: this.$forceUpda

    2024年02月05日
    瀏覽(26)
  • Element-UI el-select多選表單校驗問題

    在使用 el-select 多選下拉菜單配置表單校驗時, 如果form表單綁定的form對象對應屬性值為空字符串或者null(其他未嘗試),表單中的多選下拉框會立刻執(zhí)行校驗并彈出校驗信息,代碼如下: 正確方式如下: 將多選下拉框對應的屬性值默認值設置未空數(shù)組即可

    2024年02月16日
    瀏覽(26)
  • 關于Element-UI el-select多選表單校驗問題

    ???在使用 el-select 多選下拉菜單配置表單校驗時, 如果form表單綁定的form對象對應屬性值為空字符串或者null(其他未嘗試),表單中的多選下拉框會立刻執(zhí)行校驗并彈出校驗信息,代碼如下: 正確方式如下: 將多選下拉框對應的屬性值默認值設置未空數(shù)組即可

    2024年02月11日
    瀏覽(31)
  • element ui中select多選框change選擇獲取選項的所有字段信息

    ? ? ? ? 在 Element UI 的 Select 組件中, 多選框 的選擇變化( change )事件可以通過監(jiān)聽 change 事件來獲取選項的所有字段信息。 ? ? ? ? 當多選框選項發(fā)生改變時,會觸發(fā) change 事件,此時可以通過該事件的回調函數(shù)來獲取選中的選項的所有字段信息。 示例: html代碼: dat

    2024年02月06日
    瀏覽(26)
  • Element-UI el-select 多選菜單換行撐開

    Element-UI el-select 多選菜單換行撐開

    問題描述: ??????????Element-UI el-select 多選菜單換行撐開顯示破壞整體樣式 ?問題解決: ????????添加如下樣式: ?????????若出現(xiàn)滾動條樣式不好看,可以更改樣式,和elementui保持一致。 ? ? ? ?

    2024年02月16日
    瀏覽(23)
  • 基于vue+element 分頁的封裝

    基于vue+element 分頁的封裝

    分頁也是我們在實際應用當中非常常見的存在,其實分頁本身在element中做的就挺好的了,但是使用確實非常的多,所以還是有必要封裝一下,主要是為了減少代碼的冗余,以及提升開發(fā)的效率和降低后續(xù)維護的成本。 這是一段普通分頁的示例 效果是這樣的 在這當中用到了我

    2024年02月15日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包