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

Vue+Element ui動(dòng)態(tài)表格 實(shí)現(xiàn)表頭自適應(yīng)寬度

這篇具有很好參考價(jià)值的文章主要介紹了Vue+Element ui動(dòng)態(tài)表格 實(shí)現(xiàn)表頭自適應(yīng)寬度。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

根據(jù)業(yè)務(wù)需求,工作中會(huì)出現(xiàn)表頭信息不固定,根據(jù)后臺(tái)返回?cái)?shù)據(jù),我們要實(shí)現(xiàn)動(dòng)態(tài)表格的實(shí)現(xiàn)

1. tableData為表格數(shù)據(jù),tableHeader為表頭數(shù)據(jù)。

<el-table :data="tableData" border style="width: 100%" v-loading="loading">
  <el-table-column 
     :render-header="readerColumn" 
      v-for="item in tableHeader" 
      :key="item.id" 
      :prop="item.javasName" 
      :label="item.sourceColMame" 
      align="center" 
      show-overflow-tooltip />
</el-table>

2. 實(shí)現(xiàn)表頭自適應(yīng)寬度(二種方法)

? ? ① 第一種通過動(dòng)態(tài)width來定義,通過表頭數(shù)據(jù)的遍歷,將label的表頭信息傳入方法中

????????el-table-column 添加?:width="columnCount(xxxx)"

const columnCount = (label) => {
  let labelLong = label.length // 獲取標(biāo)題字?jǐn)?shù)的長(zhǎng)度
  if(labelLong < 3) {  //標(biāo)題字?jǐn)?shù)3個(gè)以下的寬度設(shè)為一致,或可依產(chǎn)品再修改
    labelLong = 3
  }
  let size = 28 // 定義一個(gè)標(biāo)尺
  let labelWidth = labelLong * size // 最終寬度
  return labelWidth
}

效果如下:

element動(dòng)態(tài)表格,Vue,vue.js,前端,javascript

????② 第二種通過element-ui的table-column提供的render-header對(duì)標(biāo)題進(jìn)行render渲染。

這個(gè)地方值得注意的是:由于這個(gè)地方要使用h函數(shù),如果你使用的是vue2搭配element ui,可以通過第一個(gè)參數(shù)傳入h函數(shù);如果使用的是vue3搭配elelment-plus,由于該版本去除了h函數(shù)的引入,我們需要從外部進(jìn)行引入使用

element ui

element動(dòng)態(tài)表格,Vue,vue.js,前端,javascript

element plus

element動(dòng)態(tài)表格,Vue,vue.js,前端,javascript

<script lang="ts" setup>
import { yibaoBF } from '@/api/HospitalInformation/yibaobofu'
import { xinxiApi } from '@/api/HospitalInformation/Information';
import { h,ref,onMounted,getCurrentInstance} from 'vue'
import { ElMessage } from 'element-plus'

const { proxy } = getCurrentInstance()

// 定義自定義表頭
const readerColumn = ({ column }) => {
  let labelLong = column.label.length // 表頭label長(zhǎng)度
  if(column.label.length < 3) {
    labelLong = 3
  }
  let size = 30 // 根據(jù)需求定義一個(gè)字體的標(biāo)尺
  column.minWidth = labelLong * size
  //@ts-ignore
  return h('div',{style: { width: '100%!important' }},[column.label])
}

這個(gè)地方我采用的vue3的模式,可以通過引入h函數(shù)渲染。

如果產(chǎn)品又出了一些其他需求,如添加標(biāo)題添加單選框等,都可以通過h函數(shù)渲染實(shí)現(xiàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-617183.html

到了這里,關(guān)于Vue+Element ui動(dòng)態(tài)表格 實(shí)現(xiàn)表頭自適應(yīng)寬度的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包