解決 element-ui下Cascader 數據太多顯示不完全的問題


描述問題

先附上我的出問題代碼

<template>
  <div>
    <div class="block">
      <span class="demonstration">hover 觸發子菜單</span>
      <el-cascader
        v-model="value"
        :options="cateList2"
        :props="cateProps"
        size="mini"
        clearable
        @change="handleChange">
      </el-cascader>
    </div>
    <el-button @click="showValue">test</el-button>
  </div>
</template>
<script>
  export default {
    created () {
      this.getCateList2()
    },
    data () {
      return {
        value: [],
        cateList2: [],
        cateProps: {
          expandTrigger: 'hover',
          label: 'cat_name',
          value: 'cat_id',
          children: 'children',
          checkStrictly: true
        }
      }
    },
    methods: {
      async getCateList2 () {
        const { data: res } = await this.$http.get('categories', {
          params: { type: 2 }
        })
        if (res.meta.status !== 200) return this.$message.error('獲取失敗')
        this.cateList2 = res.data
      },
      showValue () {
        console.log(this.cateList2)
      },
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

在上述代碼中,異步請求的數據遠遠超過屏幕所能容納的量,此處給出上述cateList2打印出來的數據,其為:

總共三十組數據,在給出上述代碼在我服務器執行后結果圖片:
{{uploading-image-154422.png(uploading
可以明顯看出此時的數據並沒有羅列完全,並且cascader的高已經沾滿了整個屏幕。

問題解決

1、尋找出問題的元素,調出其元素所在位置,在瀏覽器上直接調試:

查看元素后,發現是el-cascader-panel控制cascader的樣式大小。現在問題已經解決了,只需要修改cascader樣式就可以了。
2、打開自己的文件,給main.js中引入的全局樣式表中添加如下樣式:

.el-cascader-panel {
  height: 300px;
}

3、屬性項目,查看文件,發現問題已經解決。


總結:所有的前端框架出問題,無非就是牽扯到樣式問題,可以直接在瀏覽器中調出其元素,然后看起樣式,最終采用自己的樣式將其覆蓋或者添加屬性即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM