const api = this.ruleForm.id ? alarmProtocolUpdate : alarmProtocolAdd api(this.ruleForm).then((res => { if (res.code !== 200) { return false } this.$message({ message: this.ruleForm.id ? '编辑成功' : '添加成功', type: 'success' }); this.close() this.$emit("ben_can") })) 如何不管this.ruleforem 有没有都执行 第一个
时间: 2024-01-19 09:02:25 浏览: 142
你可以使用逻辑非运算符 `!` 来判断 `this.ruleForm.id` 是否为 `undefined` 或 `null`,如果是,则将其赋值为一个空对象,即 `{}`。这样在后面的三目运算符中,`this.ruleForm.id` 就会被认为是存在的,然后执行 `alarmProtocolAdd` 方法。
修改后的代码如下:
```
const api = (!this.ruleForm.id ? alarmProtocolAdd : this.ruleForm.id ? alarmProtocolUpdate : alarmProtocolAdd)
api(this.ruleForm).then((res => {
if (res.code !== 200) { return false }
this.$message({
message: this.ruleForm.id ? '编辑成功' : '添加成功',
type: 'success'
});
this.close()
this.$emit("ben_can")
}))
```
相关问题
const handlePageChange = (page?: number) => { pagination.page = page || 0; const query = JSON.stringify({...condition}); fetchQueryPost({ query, current: pagination.page, ...pagination, }).then((res) => { if (res.data != null) { dataList.value = dataList.value.concat(res.data.records ?? []); pagination.pageCount = res.data?.pages ?? 0; pagination.total = res.data?.total ?? 0; pagination.page = res.data?.current ?? 0; } }); }; const route = useRoute(); const uuid = route.query.uuid as string; condition.uuid = uuid; onMounted(() => { handlePageChange(); }); const reply = () => { document.getElementById('replyDiv')!.scrollIntoView(); };
这段代码是一个包含多个函数和变量的代码块。让我逐步为您解释每个部分的意义。
1. `handlePageChange` 函数是一个处理页面改变的事件处理函数。它接受一个可选的参数 `page`,表示要切换到的页面。首先,它将 `pagination.page` 设置为传入的 `page` 参数,如果 `page` 参数不存在,则默认设置为 0。然后,它将查询条件转换为 JSON 字符串,并使用 `fetchQueryPost` 函数发送一个 POST 请求,请求中包含查询条件、当前页面以及其他分页信息。最后,它在请求返回后将返回的数据进行处理,将新的数据追加到 `dataList.value` 中,并更新分页信息。
2. `route` 是一个通过 `useRoute` 钩子获取到的当前路由对象,其中包含了当前页面的路由信息。
3. `uuid` 是从路由查询参数中获取到的一个字符串值。
4. `condition.uuid` 是一个对象属性,将上述获取到的 `uuid` 值赋值给它。
5. `onMounted` 是一个 Vue 3 Composition API 中的钩子函数,表示在组件挂载后执行的操作。在这里,它调用了 `handlePageChange` 函数,用于初始化页面数据。
6. `reply` 函数是一个回复操作的事件处理函数。它通过 `document.getElementById('replyDiv')` 获取到一个具有指定 id 的 DOM 元素,并调用其 `scrollIntoView` 方法,将页面滚动到该元素所在位置。
这段代码主要是用于处理页面切换、发送请求、更新数据以及处理回复操作的一些逻辑。
this.data.type = (this.curTop === 1) ? 0 : 1 console.log(this.curTop) getxqqkList(this.data).then((res) => { if (this.data.type === 1) { this.jcqkList = res.data } else { this.zlllList = res.data } // console.log(this.jcqkList); })优化一下
这段代码本身已经比较简洁了,不过可以考虑将一些重复的操作提取出来,使代码更加清晰和易于维护。以下是可能的优化方案:
```
// 根据curTop的值设置type的值
this.data.type = this.curTop === 1 ? 0 : 1;
console.log(this.curTop);
// 调用getxqqkList函数获取数据
getxqqkList(this.data).then(res => {
// 根据type的值给相应的列表赋值
const list = this.data.type === 1 ? this.jcqkList : this.zlllList;
list.splice(0, list.length, ...res.data);
});
```
这里将根据type值给列表赋值的操作提取出来,使用了一个中间变量list,避免了重复的代码。另外,使用了ES6的展开运算符来替代了原来的赋值操作,更加简洁。
阅读全文