亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

element 表格組件自適應 思路

项目涉及大量表格 很多时候会采用估算和手动调试的方式来设置 column 宽度不太恰当,所以尝试实现自适应。 核心是对数据层进行修改,代码提供参考。

        let column = [
            {label:"用户id",prop:"userId"},
            {label:"用户姓名",prop:"userName"},
            {label:"创建日期",prop:"createData"},
        ]
        let data = [
            {
                userId:1,
                userName:"张三",
                createData:'2020-05-26 12:10:56'
            },
            {
                userId:2,
                userName:"李狗蛋",
                createData:'2020-05-26 12:10:56'
            }
        ]
        let resolveColumn = _cmptWidth(column,data) 
        console.log(resolveColumn)
        // [
        //   {label:"用户id",prop:"userId",width:"120px"},
        //   {label:"用户姓名",prop:"userName",width:"120px"},
        //   {label:"创建日期",prop:"createData",width:"120px"},
        // ]
        _cmptWidth(min=30,column,data){
            // 字段长度容器
            let temp={};

            // 根据第一行数据 初始化 字段长度容器
            Object.keys(data[0]).forEach(key=>{
                temp[key]=[]
            })

            // 将每一行数据的 字段长度 存入 字段长度容器 中文算做2个字符,英文1个
            data.map(i=>{
                Object.keys(i).forEach(key=>{
                    let str = i[key] && i[key].toString();
                    let cn = str && str.match(/[\u4e00-\u9fa5]/g)&&str.match(/[\u4e00-\u9fa5]/g).length||0
                    let en = str && str.match(/[A-Za-z0-9]/g)&&str.match(/[A-Za-z0-9]/g).length||0
                    let len =Math.max( en + cn*2 + ,10) ;
                    temp[key].push(Math.min(len,min))
                })
            })

            // 返回 添加列宽度属性的 column
            return column.map(i=>{
                let width = Math.ceil(temp[i.prop].reduce((a,b)=>a+b)/rows.length)
                return {
                    ...i,
                    width:width*12+'px'
                }
            })
        }
點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消