iview table render集成switch开关

iview table render集成switch开关
       今天想要分享的是iview table render集成switch开关修改table表格的值,看文档记得看2.0的,不注意打开就成1.0然后用上了一直没有效果又没有找出原因。给出的只是一种写法思路,具体自己集成。
一、效果如下

即是打开处理switch开关,对应修改为已处理状态,关闭switch开关,修改为未处理状态。

二、template html写法
<Table highlight-row border :columns="columns1" :data="data1" ref="table" :height="tableHeight"></Table>

三、data写法,table render函数写法,
columns1: [{
 fixed: 'right',
 title: 'Action',
 key: 'action',
 width: 250,
 align: 'center',
 render:(h, params) => {
            return h('div', [
              h('Button', {
                props: {
                  type: 'primary',
                  size: 'small'
                },
                style: {
                  marginRight: '20px'
                },
                on: {
                  click: () => {
                    this.show(params.index)
                  }
                }
              }, '阅览'),
              h('strong', {
                style: {
                  marginRight: '5px'
                },
              }, '处理'),
              h('i-switch', { //数据库1是已处理,0是未处理
                props: {
                  type: 'primary',
                  value: params.row.treatment === 1  //控制开关的打开或关闭状态,官网文档属性是value
                },
                style: {
                  marginRight: '5px'
                },
                on: {
                  'on-change': (value) => {//触发事件是on-change,用双引号括起来,
                                           //参数value是回调值,并没有使用到
                    this.switch(params.index) //params.index是拿到table的行序列,可以取到对应的表格值
                  }
                }
              }, )
            ]);
          }
}]

四、methods方法
//通过开关状态判断值然后传值进行更新
   switch(index) {
      //打开是true,已经处理1
      if (this.data1[index].treatment == 1) {
        this.data1[index].treatment = 0
        this.updateFeedbackMessage(this.data1[index].id, 'treatment', this.data1[index].treatment)
      } else {
        this.updateFeedbackMessage(this.data1[index].id, 'treatment', 1)
      }
    },


    //更新反馈信息某一字段
    updateFeedbackMessage(id, key, value) {
      var vm = this
      var data = {
        id: id
      }
      data[key] = value
      vm.$http.put('/v1/suggestion', data).then(function (response) {
        if (response.data.code == '000000') {
          vm.$Message.info('更新成功');
          vm.getFeedbackMessages()//获取table数据信息,这里调用是因为修改值之后马上可以更新table值
        }
      }).catch((error) => {
        console.log(error)
      })
    },

 //获取所有反馈信息列表
    getFeedbackMessages() {
      var vm = this
      var url = '/v1/suggestions?'
      url = url + "pageNum=" + this.pageNum + '&pageSize=' + this.pageSize
      if (this.createByValue != '') {
        url = url + '&createBy=' + this.createByValue
      }
      if (this.dealModelValue != '') {
        url = url + '&treatment=' + this.dealModelValue
      }
      this.$http.get(url).then(response => {
        if (response.data.code == '000000') {
          vm.data1 = response.data.data
          vm.pageTotal = parseInt(response.data.message)
        }
      }).catch(error => {
        console.log(error)
      })
    },

注重思路,有问题一起交流

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是一个使用 iView TableSwitch 组件联合使用的示例,同时将 Switch 组件的值加入到 Table 的 selection 中: ```html <template> <Table :data="tableData" :columns="columns" :row-selection="rowSelection"></Table> </template> <script> export default { data () { return { tableData: [ { name: '张三', age: 24, married: false }, { name: '李四', age: 26, married: true }, { name: '王五', age: 27, married: false } ], columns: [ { title: '姓名', key: 'name' }, { title: '年龄', key: 'age' }, { title: '婚姻状况', key: 'married', render: (h, params) => { return h('Switch', { props: { value: params.row.married }, on: { 'on-change': (value) => { params.row.married = value; this.updateSelection(); } } }); } } ], rowSelection: { onChange: (selectedRows) => { this.selectedRows = selectedRows; }, selectedRowKeys: [] } }; }, methods: { updateSelection () { this.rowSelection.selectedRowKeys = this.tableData.filter(item => item.married).map(item => item.key); } } }; </script> ``` 在上面的示例代码中,我们在 Table 的 columns 中使用了 Switch 组件,并监听了其 on-change 事件。当 Switch 组件的选中状态发生改变时,我们将其选中状态的值加入到 Table 的 selection 中。具体来说,我们在 on-change 事件中,更新了当前行数据的 married 属性,并调用了 updateSelection 方法,该方法会根据当前表格数据中 married 为 true 的行,更新 rowSelection 中的 selectedRowKeys 属性。最终,我们可以通过监听 Table 的 onChange 事件,获取到 selection 中的数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值