Skip to content

Commit d357ae7

Browse files
committed
增加回调: 搜索前和搜索后, 防抖时间改成默认300毫秒
1 parent d4cac1d commit d357ae7

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Vue.use(SearchTree)
5151
| search | 模糊搜索的关键词 | String | ''
5252
| hide-misses | 是否隐藏模糊搜索不匹配的节点 | Boolean | true
5353
| expand-misses | 是否展开模糊搜索不匹配的节点 | Boolean | false
54-
| search-debounce | 模糊搜索防抖 (毫秒) | Number | 500
54+
| search-debounce | 模糊搜索防抖 (毫秒) | Number | 300
5555
| empty-text | 内容为空时展示的文本 | String | ''
5656
| show-checkbox | 是否显示checkbox | Boolean | false
5757
| default-expand-all | 是否默认展开所有节点 | Boolean | false

src/search-tree.vue

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ export default {
3737
},
3838
searchDebounce: { // 输入关键词防抖
3939
type: Number,
40-
default: 500
40+
default: 300
41+
},
42+
clearRecovery: { // 清空搜索关键词时复原排序
43+
type: Boolean,
44+
default: true
4145
},
4246
emptyText: { // 内容为空时展示的文本
4347
type: String,
@@ -103,10 +107,16 @@ export default {
103107
_search (val) {
104108
clearTimeout(this.timer)
105109
this.timer = setTimeout(_ => {
106-
if (val) return this.deepData = this._getLdqTree(this.deepData)
110+
this.$emit('search-start')
111+
if (val || !this.clearRecovery) {
112+
this.deepData = this._getLdqTree(this.deepData)
113+
setTimeout(_ => this.$emit('search-end'))
114+
return false
115+
}
107116
const keys = this.showCheckbox ? this.getCheckedKeys() : []
108117
this.deepData = deepCopy(this.sourceData)
109118
this.setCheckedByKeys(keys, true)
119+
setTimeout(_ => this.$emit('search-end'))
110120
}, this.searchDebounce)
111121
}
112122
},
@@ -183,7 +193,7 @@ export default {
183193
this.$set(node, 'level', parent ? ~~parent.level + 1 : 1)
184194
this.$set(node, 'checked', Reflect.has(node, 'checked') ? node.checked : (parent && parent.checked) || this.defaultCheckedKeys.includes(key))
185195
this.$set(node, 'indeterminate', false)
186-
this.$set(node, 'expand', Reflect.has(node, 'expand') ? node.expand : this.defaultExpandAll || this.defaultExpandedKeys.includes(key))
196+
this.$set(node, 'expand', this.defaultExpandAll || this.defaultExpandedKeys.includes(key))
187197
this.$set(node, '$keys', [])
188198
this.$set(node, '$sort', 0)
189199
},
@@ -227,7 +237,7 @@ export default {
227237
item.$keys = []
228238
item.$sort = 0
229239
item.visible = true
230-
item.expand = this.defaultExpandAll || this.defaultExpandedKeys.indexOf(item[this.nodeKey]) > -1
240+
item.expand = this.defaultExpandAll || this.defaultExpandedKeys.includes(item[this.nodeKey])
231241
if (item[children].length) item[children] = this._getLdqTree(item[children])
232242
}
233243
}

src/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// 计算匹配优先值
22
export const computSortNum = keys => {
3-
keys = keys.slice(0)
3+
keys = keys.slice()
44
let lev = 0, curr = keys.shift()
55
return keys.length < 1 ? +!!(curr + 1) : keys.reduce((s, next, i) => {
66
if (next - curr === 1) lev += 1

0 commit comments

Comments
 (0)