优化代码 if (title) { // 判断是否重复点击 if (!(active.value == title.title)) { switch (title.title) { case "待审核": active.value = title.title; params.examineState = "0"; params.page = examineList.page1; initData(); break; case "已通过": active.value = title.title; params.examineState = "1"; params.page = examineList.page2; initData(); break; case "已驳回": active.value = title.title; params.examineState = "2"; params.page = examineList.page3; initData(); break; default: console.log(title); break; } } else { return } } else { initData(); }
时间: 2024-02-14 08:07:35 浏览: 69
可以优化的地方如下:
1. 可以将重复的代码逻辑提取出来,避免代码冗余。
2. 可以使用对象的方式来存储不同状态下的参数,避免大量的 if else 语句。
3. 可以使用函数式编程的方式来简化代码,让代码更加易读易懂。
根据以上三点,可以对代码进行优化,得到如下的代码:
```javascript
// 存储不同状态下的参数
const statusParams = {
"待审核": { examineState: "0", page: examineList.page1 },
"已通过": { examineState: "1", page: examineList.page2 },
"已驳回": { examineState: "2", page: examineList.page3 },
};
function handleClick(title) {
// 判断是否重复点击
if (!title || active.value === title.title) {
return;
}
active.value = title.title;
const params = statusParams[title.title] || {};
initData(params);
}
```
这样,代码就变得更加简洁易读,也更加易于维护。
相关问题
active-value="0" inactive-value="1"
根据引用\[1\]和引用\[2\]的内容,如果要将动态绑定的数值数据类型设置为number,并且将active-value设置为0,inactive-value设置为1,可以使用以下代码:
```html
<el-switch v-model="value" :active-value="0" :inactive-value="1"></el-switch>
```
请注意,需要在active-value和inactive-value前面加上冒号(:)来进行动态绑定。
#### 引用[.reference_title]
- *1* *2* *3* [Element-UI中元素的注意事项](https://blog.csdn.net/qq_41108396/article/details/107790218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
iview table组件和i-switch使用时,怎么根据i-switch更新table中的值
可以在 i-switch 的 change 事件中获取到当前 i-switch 的值以及所在行的索引,然后通过索引修改 table 的数据源中相应的数据即可。具体操作可以参考以下示例代码:
```html
<template>
<Table :columns="columns" :data="tableData">
<template slot-scope="{ row }" slot="custom">
<i-switch v-model="row.active" @change="handleSwitchChange(row, $event)"></i-switch>
</template>
</Table>
</template>
<script>
export default {
data() {
return {
columns: [
{
title: '名称',
key: 'name'
},
{
title: '状态',
key: 'active',
render: (h, params) => {
return h('span', params.row.active ? '启用' : '禁用');
},
slot: 'custom'
}
],
tableData: [
{
name: '选项1',
active: true
},
{
name: '选项2',
active: false
},
{
name: '选项3',
active: true
}
]
};
},
methods: {
handleSwitchChange(row, value) {
row.active = value;
// 更新 table 的数据源
this.tableData.splice(this.tableData.indexOf(row), 1, row);
}
}
};
</script>
```
在上述示例代码中,通过在 i-switch 的 change 事件中调用 handleSwitchChange 方法来更新 table 的数据源,其中 row 表示所在行的数据,value 表示当前 i-switch 的值。在 handleSwitchChange 方法中,通过修改 row 的 active 属性来更新数据源,并且使用 splice 方法替换原来的数据,从而实现更新 table 中的值。
阅读全文