element+table 可配置导出显示搜索的后管表单组件

1.demo使用

上demo应用实例 包括传参等都有注释说明

<Funtable
      ref="tableref"
      :url="dataTableOpt.url"
      :data-list="dataTableOpt.dataList"
      :page="dataTableOpt.page"
      :showSummary="dataTableOpt.showSummary"
      :showSummaryData="dataTableOpt.showSummaryData"
      :params="dataTableOpt.params"
      :max-height="600"
      :columns="dataTableOpt.columns"
    >

          <el-button type="primary" size="small" slot="left-filter">新增</el-button>

        <template slot="pics-column" slot-scope="scope">
          <div class="pics-list">
            <el-image v-for="(pic,picIndex) of scope.row.pics" :key="picIndex" :preview-src-list="scope.row.pics" class="pic-img" :src="pic" />
          </div>
        </template>


        <template slot="isShow-column" slot-scope="scope">
          <div v-if="scope.row.isShow==1" class="c67C23A">
            显示
          </div>
          <div v-else>
            隐藏
          </div>
        </template>
        <template slot="operate-column" slot-scope="scope">
          <!--            <el-button size="mini" type="default" @click="editItem(scope.row)">编辑</el-button>-->
          <el-button v-if="scope.row.isShow==1" size="mini" type="default" @click="showItem(scope.row)">隐藏</el-button>
          <el-button v-if="scope.row.isShow==0" size="mini" type="default" @click="getItem(scope.row)">显示</el-button>
          <!--            <el-button size="mini" type="danger" @click="delItem(scope.row)">删除</el-button>-->
        </template>
</Funtable>

需要声明的使用数组示例

dataTableOpt: {
          //是否显示搜索按钮  默认显示
          searchBtnShow:true,
        // 请求的路径
        url: '/mall/goods/com/list',
          //是否合计
          showSummary:true,
          //需要合计的字段
          showSummaryData:['id','star'],
        // 请求的额外参数
        params: {},
        // 展示的数据  如果传url 则不用传
        dataList: [],
        // 分页
        page: {
          size: 10,
          total: 0,
          current: 1,
          // 是否分页
          is_paginate: true
        },
        // 展示的列
        columns: [
          {
              //是否可以勾掉列
              isCancel:false,
              //固定是否
              fixed:'left',
            // 后台返回的字段
            prop: 'id',
            // 列表展示的名称
            label: '序号',
            // 文字排列
            align: 'center',
            // 列宽度  不写则自适应
            width: 80,
              //必填展示不展示
              showIf:true,
            // align: "center",
            // sortable: true,
            // 后面这些是filter使用的
            // 搜索
            search: false // 不需要搜索ID,所以都不需要了
          },
          {
              showIf:true,
            prop: 'productName',
            label: '商品',
            value: '',
            width: 300,
            align: 'left',
            field: 'Products_Name',
            // align: "center",
            // sortable: true,
            // 后面这些是filter使用的
            required: true,
            search: false
          },
          {
              showIf:true,
            prop: 'code',
            label: '商品编码',
            width: 160,
            align: 'center',
            serachName: 'code',
            search: {
              type: 'input',
              placeholder: '请输入商品编码'
            }
          },
          {
              showIf:true,
            prop: 'userName',
            label: '用户',
            width: 120,
            align: 'center',
            search: false
          },
          {
              showIf:true,
            prop: 'star',
            label: '评价星级',
            align: 'center',
            width: 120,
            serachName: 'star',
            search: {
              option: [{value: 1, label: 1}, {value: 2, label: 2}, {value: 3, label: 3}, {value: 4, label: 4}, {value: 5, label: 5}],
              type: 'select',
              operate: 'like',
              placeholder: '请选择星级',
              change: true
            }
          },
          {
              showIf:true,
            prop: 'content',
            label: '评价内容',
            align: 'center',
            search: false
          },
          {
              showIf:true,
            prop: 'pics',
            label: '评价图片',
            align: 'center',
            value: '',
            search: false
          },
          {
              showIf:true,
            prop: 'createTime',
            label: '评价时间',
            align: 'center',
            width: 160,
            value: '',
            serachName: 'createTime',
            search: false
          },
          {
              showIf:true,
            prop: 'isShow',
            label: '状态',
            align: 'center',
            width: 400,
            value: '',
            serachName: 'isShow',
            search: false
          },
          {
              //是否可以勾掉列
              isCancel:false,
              fixed:'right',
           showIf:true,
            prop: 'operate',
            label: '操作',
            align: 'center',
            width: 200,
            search: false
          }



        ]
      }

2.组件使用示例图片

  1. 可以配置列是否可以选择配置,还是隐藏 固定等 只需要传入请求的路径 和 引入封装的接口方法
  2. 使用的js-export-excel npm做的导出 选择项 根据配置列本地导出
  3. 顶部的搜索项 可根据配置项的search 的类型type select input time搜索 字段等
    在这里插入图片描述

3.组件下载链接

直达下载链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用 Element UI 组件中的 Table 组件导出数据,你可以按照以下步骤进行操作: 1. 首先,确保已经安装并引入了 Element UI 组件库。 2. 在需要使用 Table 组件的页面中,引入 Table 组件和所需的其他组件,例如 Button 组件。 ```javascript import { Table, Button } from 'element-ui'; ``` 3. 在页面中使用 Table 组件,并配置需要展示的表格数据和表头信息。 ```html <template> <div> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="gender" label="性别"></el-table-column> </el-table> <el-button type="primary" @click="exportData">导出数据</el-button> </div> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 20, gender: '男' }, { name: '李四', age: 25, gender: '女' }, // 其他数据... ] }; }, methods: { exportData() { // 导出数据的逻辑 } } }; </script> ``` 4. 在导出数据的方法中,可以使用第三方库或自定义方法来实现数据导出的功能。例如使用 `xlsx` 库来生成 Excel 文件。 ```javascript import XLSX from 'xlsx'; methods: { exportData() { const ws = XLSX.utils.json_to_sheet(this.tableData); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); XLSX.writeFile(wb, 'data.xlsx'); } } ``` 以上是一个简单的示例,你可以根据实际需求进行调整和扩展。注意,这里使用的是 `xlsx` 库来导出 Excel 文件,你也可以选择其他合适的库或方法来导出数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木贝西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值