turnSearch() { let search = '' if (this.statistics && this.statistics.length) { this.search.createdStartTime = this.statistics[0]/1000 this.search.createdEndTime = this.statistics[1]/1000 } else { this.search.createdStartTime = '' this.search.createdEndTime = '' } for (let i in this.search) { if (this.search[i] || this.search[i]===null) { // if (i == "createdStartTime") { // search += `hostEndTime>=${this.search[i]};` // } else if (i == "createdEndTime") { // search += `hostEndTime<=${this.search[i]};` // } else if (i == "hostEndTime") { let time_arr = this.search[i]; search += `hostEndTime>=${time_arr[0]/1000};` search += `hostEndTime<=${time_arr[1]/1000};` }else if (i == "startTime") { search += `startTime==${ this.search[i]/1000};` search += `startTime=sort=desc;` }else if (i == "createdTime") { search += `createdTime==${ this.search[i]/1000};` search += `createdTime=sort=desc;` }else if (i == "expiredTime") { search += `expiredTime==${ this.search[i]/1000};` search += `expiredTime=sort=desc;` }else if (i.match('Sort')) { search += `${_.replace(i, 'Sort', '')}=sort=${this.search[i]};` } else if (i == 'statistics' && this.search[i] == 'type') { search += `${i}!=null;` } else { search += `${i}==${this.search[i]};` } console.log(search) } } search = search.substring(0, search.lastIndexOf(';')) return search }什么意思
时间: 2024-03-30 18:33:47 浏览: 14
这是一个 JavaScript 函数,作用是生成一个搜索字符串。函数的具体实现如下:
1. 初始化一个空的搜索字符串 `search`。
2. 判断是否有统计数据,并将统计数据的时间范围加入到搜索参数中。
3. 遍历搜索参数对象 `this.search` 中的每个属性:
- 如果属性值存在或者为 null,则根据属性名和属性值生成一个搜索条件。
- 如果属性名以 "Sort" 结尾,则表示需要按照该属性进行排序。
- 如果属性名为 "statistics",且属性值为 "type",则表示需要过滤掉统计数据类型为空的记录。
4. 将所有搜索条件拼接成一个完整的搜索字符串,并返回。
其中,生成搜索条件的逻辑比较复杂,需要根据不同属性名生成不同的条件。例如,对于 "hostEndTime" 属性,需要将其值转换成秒数,并生成一个 "hostEndTime>=xxx;hostEndTime<=xxx" 的时间范围条件;对于 "startTime"、"createdTime"、"expiredTime" 属性,需要将其值转换成秒数,并添加一个 "sort=desc" 的排序条件。最后,为了避免搜索字符串中出现多余的分号,需要将搜索字符串的最后一个分号去掉。
相关问题
setSidebarRouters() { let key = this.$route.path.split('/')[1]; key = '/' + key; this.routes.map((item) => { if (key == item.url && item.child.length > 0) { this.$store.commit('permission/SET_SIDEBAR_ROUTERS', item.child); } else if (key == item.url && !item.child.length) { this.$store.commit('permission/SET_SIDEBAR_ROUTERS', [item]); } }); },
这段代码是一个 Vue.js 中的方法,用于设置侧边栏的路由。首先,它从 `$route` 对象中获取当前路径,并根据 `/` 进行分割,取出第一个片段作为 `key`。然后,它通过遍历 `this.routes` 数组,找到与 `key` 相对应的路由对象 `item`。如果该路由对象有子路由(即 `item.child.length > 0`),则将子路由通过 Vuex 的 `commit` 方法设置到 `permission/SET_SIDEBAR_ROUTERS` 状态中;否则,直接将该路由对象作为数组项设置到 `permission/SET_SIDEBAR_ROUTERS` 状态中。这样,就可以动态地根据当前路由设置侧边栏的内容。
let bk=this.data.zhuangyenianji
let bk=this.data.zhuangyenianji。
这段代码的含义是将当前页面的data对象中的zhuangyenianji属性的值赋给变量bk。在这里,我假设代码是在小程序或者微信小程序中使用的。
首先,this代表的是当前页面的对象。在小程序中,每个页面都有一个data对象用于存储页面的数据。使用this.data可以获取当前页面的data对象。
data对象是一个键值对,用来存储页面的数据。在这里,zhuangyenianji是一个属性,表示装业年级。该属性的值可以是字符串、数字、对象等不同的数据类型,具体取决于实际应用场景。
而这段代码的作用是将zhuangyenianji的值赋给变量bk。通过这种方式,我们可以在之后的代码中使用变量bk来代替zhuangyenianji的值,方便代码编写和读取数据。
总结起来,这段代码的含义是将当前页面的data对象中的zhuangyenianji属性的值赋给变量bk,以便后续代码使用。