i-Switch开关参数扩展
# Switch开关参数扩展
我们在做项目时,经常会遇到状态显示、修改状态的需求,而展现形式也有多种,这里仅以 Switch开关组件来展示。一般会先这样做:
<i-Switch @on-change="onSwitch">
<span slot="open">开</span>
<span slot="close">关</span>
</i-Switch>
1
2
3
4
2
3
4
public onSwitch(status) {
// do something
}
1
2
3
2
3
但是,有的时候会遇到在一个列表里面,需要显示和控制状态,那么此时是在一个循环里面,然后还需要绑定数据,显示状态,那么可以按照如下处理了:
<i-table class="diy-table" :columns="columns" :data="data" >
<template slot-scope="{ row, index }" slot="status">
<i-Switch v-model="row._status.value" true-value="2" false-value="3" @on-change="onStatusChange($event, row)">
<span slot="open">开</span>
<span slot="close">关</span>
</i-Switch>
</template>
</i-table>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
public onStatusChange(status: any, row: any) {
let formData = new FormData();
formData.delete("status");
formData.append("status", status);
let res = await this.service.modifyStatus(row.id, formData);
if(!res || res.hasError) return;
this.reset();
this.query();
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9