ElementUI--Table

ElementUI--Table,第1张

```

<template>

  <div>

    <el-row :gutter="10">

      <el-col :span="6">

        <el-button type="primary" size="mini"  @click="handleSelection"

          >获取选中的行</el-button

        >

      </el-col>

    </el-row>

     <!-- el-row :gutter:分栏间隔 -->

    <!-- el-col :offset:分栏偏移 -->

    <!-- el-row type="flex"对齐方式 -->

    <el-table

      :data="tableData"

      border

      stripe

      height="300px"

      style="width: 100%"

       @selection-change="handleSelectionChange"

    >

       <!-- 通过:data属性--绑定数据 -->

      <!-- border:竖向边框 -->

      <!-- stripe:斑马线效果,即隔行换色效果 -->

      <!-- height:固定表头,即固定表格table的高度,超出显示滚动条,在内部滚动 -->

      <!-- @selection-change="handleSelectionChange" => 获取到当前选中的行 -->

      <el-table-column

        header-align="center"

        align="center"

        type="selection"

      ></el-table-column>

      <el-table-column

        header-align="center"

        align="center"

        label="序号"

        type="index"

        width="100"

      >

      </el-table-column>

      <el-table-column prop="date" label="日期" width="180"></el-table-column>

       <!-- fixed="left" -->

       <!-- fixed:固定列,需要固定谁就给谁添加,left/right -->

      <!-- prop:用来决定展示哪一个属性的值;label:设置表格头 -->

      <!-- header-align:表头显示方式 -->

      <!-- align:首列显示方式 -->

      <!-- type:序列号index/多选框selection -->

      <el-table-column label="姓名" prop="name"></el-table-column>

      <el-table-column label="地址" prop="address"></el-table-column>

      <el-table-column header-align="center" align="center" label=" *** 作">

        <template  slot-scope="scope" >

          <el-button

            type="primary"

            icon="el-icon-edit"

            size="mini"

             @click="handleEiit(scoperow)"

            >编辑</el-button

          >

          <el-button

            type="danger"

            icon="el-icon-delete"

            size="mini"

             @click="handleDelete(scoperow)"

            >删除</el-button

          >

           <!-- scoperow 获取当前行的数据 -->

        </template>

      </el-table-column>

    </el-table>

  </div>

</template>

<script>

export default {

  name: "Table",

  methods: {

    handleSelectionChange(value) {

      consolelog(value);  //默认会返回,所有选中的行;获取到当前选中的行

      thisselections = value;  //为value赋值

    },

    handleSelection() {

      consolelog(thisselections);  //通过selections事件,不断的去记录当前选中的数据

    },

    handleEiit(row) {

      consolelog(row);

    },

    handleDelete(row) {

      consolelog(row);

    },

  },

  data() {

    return {

      selections: [],  //默认没有选择,保存选中数据

      tableData: [

        { date: "2020-01-01", name: "小不点儿", address: "河北省保定市" },

        { date: "2020-02-02", name: "张三", address: "河北省保定市" },

        { date: "2020-03-03", name: "王五", address: "河北省保定市" },

        { date: "2020-04-01", name: "李四", address: "河北省保定市" },

        { date: "2020-05-01", name: "赵晴", address: "河北省保定市" },

        { date: "2020-06-01", name: "冯峰", address: "河北省保定市" },

        { date: "2020-07-01", name: "小一", address: "河北省保定市" },

        { date: "2020-08-01", name: "大张", address: "河北省保定市" },

        { date: "2020-09-01", name: "吴助", address: "河北省保定市" },

      ],

    };

  },

};

</script>

```

这是数据:

guardianName中还有个数组,如果直接输出,无异于挑战自己的审美。

要在表格中某一行中使用v-for循环输出,但是前提是要先获取这一行的数据 这就要用到scoperow

举个栗子:

这时候scoperow代表的就是表格一行的数据,想要输出stuNamee,就写{{scoperowstuName}}

再举个栗子:

如果我要循环输出guardianName的数组,那就要循环输出的那一列中建立组建template, 设置slot-scope=“scope”,""里面是名字 scope12345都可以

然后在template写个div,span都可以,用来承载v-for语句, 然后在这个例如el-button-group上承载v-for语句

最终展示:

点击时可以获取一整行的信息,目前不知道怎么获取index,但是获取index的目的也是获取点击那一行的信息,所以直接用点击返回的信息也算是一种方法。

-table :data="employees" highlight-current-row border style="width: 100%" @row-click="getEmpDetail" @selection-change="ss"><el-table-column label="员工列表" inline-template><div class="empList"><span class="employeeName">{{ rowemployee_name }}</span><span class="employeeJob">{{ rowtype }}</span></div></el-table-column></el-table>

import ElCheckbox from 'element-ui/packages/checkbox';

import ElTag from 'element-ui/packages/tag';

import Vue from 'vue';

import FilterPanel from '/filter-panelvue';

非常感谢您的提问。如果您想将el-table中的数据转换为JSON格式,可以使用以下步骤:

1 获取el-table中的数据:您可以使用el-table组件提供的API方法,如getTableData()来获取表格中的数据。

2 将数据转换为JSON格式:您可以使用JSONstringify()方法将数据转换为JSON格式的字符串。

3 处理JSON数据:您可以使用JavaScript的JSON对象来处理JSON数据,例如解析JSON数据、访问JSON数据等。

需要注意的是,如果您的el-table中的数据是从后端获取的,那么您需要先将数据转换为JavaScript对象,然后再将其转换为JSON格式。

总之,将el-table中的数据转换为JSON格式并不难,只需要掌握一些基本的JavaScript知识即可。希望我的回答能够对您有所帮助。如果您还有其他问题,欢迎随时向我提问。

效果如图:

表头标题是重复的、为了能看到滚动效果

v-if="lists[0]ispass" 来判断表格列的状态每一列是否显示或隐藏 勾选则展示、取消勾选隐藏、默认勾选

<el-dropdown :hide-on-click="false">

            <i class="iconfont icon-shaixuan" ></i>

            <el-dropdown-menu slot="dropdown" >

              <el-scrollbar style="height: 60vh">//作用是数据过多把表单数据的整体高度固定、多出的区域可以下拉展示

                <el-checkbox-group v-model="check">

                  <el-dropdown-item v-for="(item,index) in checkList" :key="index"><el-checkbox :label="item" :key="item"></el-checkbox>

                  </el-dropdown-item>

                </el-checkbox-group>

              </el-scrollbar>

            </el-dropdown-menu>

</el-dropdown>

<el-table :data="institutionalTypeList" border align="center" v-loading="listLoading" style="width: 100%;" :header-cell-style="tableBg">

        <af-table-column type="index" :index="indexMethod" label="序号" width="90">

        </af-table-column>

        <af-table-column v-if="lists[0]ispass" prop="id" label="编码" >

        </af-table-column>

        <af-table-column v-if="lists[1]ispass" prop="name" label="名称" >

        </af-table-column>

        <af-table-column v-if="lists[2]ispass" prop="updatetime" label="更新时间" >

        </af-table-column>

</el-table>

lists是所有表头标题,check是多选框默认全选,checkList也是所有表头标题、跟多选框绑定的

data() {

      return {

        check:['编码','名称','更新时间'],

        checkList:['编码','名称','更新时间'],

        lists:[

          {label:'编码',ispass:true},

          {label:'名称',ispass:true},

          {label:'更新时间',ispass:true},

        ],

      }

    },

动态监听值选中的选项

watch:{

      check(newVal){

            if (newVal) {

              var arr = thischeckListfilter(i => newValindexOf(i) < 0) //未选中

              thislistsmap(i => {

                if (arrindexOf(ilabel) !== -1) {

                  iispass = false

                } else {

                  iispass = true

                }

              })

            }

      }

    },

以上就是关于ElementUI--Table全部的内容,包括:ElementUI--Table、在el-table的某一行中循环输出 scope.row和v-for、用element的table组件怎么获取每一行的index等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10144605.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存