下面我就为大家分享一篇iview table render集成switch开关的实例,具有很好的参考价值,希望对大家有所帮助。
今天想要分享的是iview table render集成switch开关修改table表格的值,看文档记得看2.0的,不注意打开就成1.0然后用上了一直没有效果又没有找出原因。给出的只是一种写法思路,具体自己集成。
一、效果如下
即是打开处理switch开关,对应修改为已处理状态,关闭switch开关,修改为未处理状态。
二、template html写法
<span style="font-size:14px;"><table highlight-row border :columns="columns1" :data="data1" ref="table" :height="tableheight"></table></span>
三、data写法,table render函数写法,
columns1: [{
fixed: 'right',
title: 'action',
key: 'action',
width: 250,
align: 'center',
render:(h, params) => {
return h('p', [
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)
})
},
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
nodejs父进程与子进程资源共享原理与实现方法
vue中实现图片和文件上传的示例代码
vue axios 表单提交上传图片的实例
以上就是iview table render集成switch开关的实例的详细内容。