element-ui实现动态表头的表格问题汇总

element-ui实现动态表头的表格问题汇总

编程文章jaq1232025-04-30 10:54:019A+A-

demo代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>el-table动态表头</title>
    <link rel="stylesheet" type="text/css" href="./lib/element-ui/theme-chalk/index.css" />
  </head>
  <body>
    <div id="app">
			<el-table
        :data="tableBody"
        :header-cell-style="{ background: '#F3F4F7' }"
        :header-row-style="{ fontWeight: 500, color: '#909399' }"
      >
        <el-table-column align="center" :label="tableHeadItem" v-for="(tableHeadItem, idx) in tableHead" :key="idx">
          <template scope="scope">
            <i class="el-icon-platform-eleme" style="font-size: 16px"></i>
            {{tableBody[scope.$index][idx]}}
          </template>
        </el-table-column>
      </el-table>
    </div>
    <script src="./lib/vue/vue.js"></script>
    <script src="./lib/element-ui/index.js"></script>
    <script type="text/javascript">
      new Vue({
        el: "#app",
        data() {
          return {
            res: [
              {
                NAME: "王二",
                VALUE: 1,
                SEX: 2,
              },
              {
                NAME: "张三",
                VALUE: 1,
                SEX: 1,
              },
              {
                NAME: "李四",
                VALUE: 2,
                SEX: 1,
              },
            ],
            tableBody: [],
            tableHead: [],
          };
        },
        created() {
					this.tableHead = Object.keys(this.res[0]);  // 表头 [ "NAME", "VALUE", "SEX" ]
          this.res.forEach((item) => {
            this.tableBody.push(Object.values(item));  // 表体  [ ["王二", 1, 2], ["张三", 1, 1], ["李四", 2, 1] ]
					});
        },
      });
    </script>
  </body>
</html>

动态表格是生成列,也就是每一个<el-table-column>然后再根据所有列去遍历生成行,这样一个过程,知道这些,要做的就是根据这么一个过程去生成这样一个数据格式就行了。

实现动态表格的延伸:

element-ui官方推荐的CDN引入使用element的任务组件都是没有问题的,但是如果将样式和组件库代码下载下来改为本地引入,icon组件将不能使用!

CDN引入:

<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>

请求资源:

请求的网络资源中多了一个element-icons.woff文件,原因:查看element中index.css中的icon的引入方式。

@font-face {
  font-family: element-icons;
  src: url(fonts/element-icons.woff) format("woff"), url(fonts/element-icons.ttf) format("truetype");
  font-weight: 400;
  font-display: "auto";
  font-style: normal;
}

解决方法:

复制字体图标资源链接下载下来,然后在element的index.css文件夹同级目录中新建fonts文件夹放入下载好的element-icons.woff和element-icons.ttf字体图标文件。

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21