avue.js 表格

1.定义avue-crud

<el-dialog :visible.sync="detailDialog" title="明细" top="100px" width="90%">
      <avue-crud
        ref="detailTable"
        :data="detailData"
        :option="detailOption"
        :page.sync="detailPage"
        :over-hidden="true"
        @size-change="detailTableSizeChange"
        @current-change="detailTableCurrentChange">
        <div slot="footer" class="dialog-footer">
          <el-button @click="detailDialog = false">确 定</el-button>
        </div>
    </avue-crud></el-dialog>

2.属性配置

detailDialog控制显示
:data="detailData"定义表格数据
:option="detailOption"定义表格配置
:page.sync="detailPage"定义页码信息
@size-change="detailTableSizeChange"定义每页数据改变触发事件
@current-change="detailTableCurrentChange"定义页码改变触发事件

data中添加属性

detailDialog: false,
detailData: [],
      detailOption: {
        align: 'center',
        menuAlign: 'center',
        addBtn: false,
        editBtn: false,
        delBtn: false,
        menu: false,
        column: []
      },
      detailPage: {
        currentPage: 1,
        total: 0,
        pageSize: 10
      }

methods中添加方法

getDetailTablePageData() {
      this.detailDialog = true
      const params = {
        currentPage: this.detailPage.currentPage,
        pageSize: this.detailPage.pageSize,
        changeIndexId: obj.changeIndexId
      }
      getDetailTablePageData(params).then(response => {
        if (response.status !== 200) {
          this.$message({
            message: response.errorMessage,
            type: 'error'
          })
        } else {
          const data = response.data
          this.detailData = data.bd
          for (var i = 0; i < data.hd.length; i++) {
            data.hd[i]['overHidden'] = true
          }
          this.detailOption.column = data.hd
          this.detailPage.total = parseInt(data.total)
        }
      })
    },
    detailTableSizeChange(pageSize) {
      this.detailPage.currentPage = 1
      this.detailPage.pageSize = pageSize
      this.getDetailTablePageData()
    },
    detailTableCurrentChange(currentPage) {
      this.detailPage.currentPage = currentPage
      this.getDetailTablePageData()
    }

3.处理表格数据太长的问题

给表头设置overHidden就可以解决这个问题(avue.js设置该属性后,表格内容过长就不会显示了,鼠标移动上去,会显示tooltip展示内容)

代码中,由于我的表头时从后端获取的,所以遍历一遍表头,添加overHidden属性

for (var i = 0; i < data.hd.length; i++) {
	data.hd[i]['overHidden'] = true
}

4.数据格式

{
    "status": 200, 
    "data": {
        "total": 1, 
        "bd": [
            {
                "defect_code": "配电运维班", 
                "site_id": "已消缺", 
                "site_name": "10kV四分场线",
                "device_name": "A2.3"
            }
        ], 
        "hd": [
            {
                "prop": "defect_code", 
                "label": "缺陷编号"
            }, 
            {
                "prop": "site_id", 
                "label": "地点编号"
            }, 
            {
                "prop": "site_name", 
                "label": "地点名称"
            }, 
            {
                "prop": "device_name", 
                "label": "设备名称"
            }
        ], 
        "message": "数据请求成功", 
        "status": false
    }, 
    "isOk": true, 
    "errorMessage": null, 
    "hasErrors": false, 
    "code": "200", 
    "success": true
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值