Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
60577d67
提交
60577d67
authored
8月 11, 2021
作者:
无木
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(tree): add searchable function
添加搜索功能相关属性和方法 close: #1057
上级
953bfc6f
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
50 行增加
和
6 行删除
+50
-6
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+4
-0
Tree.vue
src/components/Tree/src/Tree.vue
+22
-1
TreeHeader.vue
src/components/Tree/src/TreeHeader.vue
+21
-5
props.ts
src/components/Tree/src/props.ts
+1
-0
typing.ts
src/components/Tree/src/typing.ts
+2
-0
没有找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
60577d67
### ✨ Features
-
**BasicTree**
添加搜索功能相关属性和方法
### 🐛 Bug Fixes
-
**Cropper**
修复未能及时销毁的问题
...
...
src/components/Tree/src/Tree.vue
浏览文件 @
60577d67
...
...
@@ -42,7 +42,14 @@
name
:
'BasicTree'
,
inheritAttrs
:
false
,
props
:
basicProps
,
emits
:
[
'update:expandedKeys'
,
'update:selectedKeys'
,
'update:value'
,
'change'
,
'check'
],
emits
:
[
'update:expandedKeys'
,
'update:selectedKeys'
,
'update:value'
,
'change'
,
'check'
,
'update:searchValue'
,
],
setup
(
props
,
{
attrs
,
slots
,
emit
,
expose
})
{
const
state
=
reactive
<
State
>
({
checkStrictly
:
props
.
checkStrictly
,
...
...
@@ -192,7 +199,14 @@
state
.
checkStrictly
=
strictly
;
}
const
searchText
=
ref
(
''
);
watchEffect
(()
=>
{
if
(
props
.
searchValue
!==
searchText
.
value
)
searchText
.
value
=
props
.
searchValue
;
});
function
handleSearch
(
searchValue
:
string
)
{
if
(
searchValue
!==
searchText
.
value
)
searchText
.
value
=
searchValue
;
emit
(
'update:searchValue'
,
searchValue
);
if
(
!
searchValue
)
{
searchState
.
startSearch
=
false
;
return
;
...
...
@@ -293,6 +307,12 @@
filterByLevel
:
(
level
:
number
)
=>
{
state
.
expandedKeys
=
filterByLevel
(
level
);
},
setSearchValue
:
(
value
:
string
)
=>
{
handleSearch
(
value
);
},
getSearchValue
:
()
=>
{
return
searchText
.
value
;
},
};
expose
(
instance
);
...
...
@@ -380,6 +400,7 @@
helpMessage
=
{
helpMessage
}
onStrictlyChange
=
{
onStrictlyChange
}
onSearch
=
{
handleSearch
}
searchText
=
{
unref
(
searchText
)}
>
{
extendSlots
(
slots
)}
<
/TreeHeader
>
...
...
src/components/Tree/src/TreeHeader.vue
浏览文件 @
60577d67
...
...
@@ -11,7 +11,7 @@
:placeholder=
"t('common.searchText')"
size=
"small"
allowClear
@
change=
"handleSearch
"
v-model:value=
"searchValue
"
/>
</div>
<Dropdown
@
click
.
prevent
v-if=
"toolbar"
>
...
...
@@ -32,7 +32,7 @@
</template>
<
script
lang=
"ts"
>
import
type
{
PropType
}
from
'vue'
;
import
{
defineComponent
,
computed
}
from
'vue'
;
import
{
defineComponent
,
computed
,
ref
,
watch
}
from
'vue'
;
import
{
Dropdown
,
Menu
,
Input
}
from
'ant-design-vue'
;
import
{
Icon
}
from
'/@/components/Icon'
;
...
...
@@ -77,10 +77,12 @@
search
:
propTypes
.
bool
,
checkAll
:
propTypes
.
func
,
expandAll
:
propTypes
.
func
,
searchText
:
propTypes
.
string
,
},
emits
:
[
'strictly-change'
,
'search'
],
setup
(
props
,
{
emit
})
{
const
{
t
}
=
useI18n
();
const
searchValue
=
ref
(
''
);
const
toolbarList
=
computed
(()
=>
{
const
{
checkable
}
=
props
;
...
...
@@ -137,11 +139,25 @@
}
const
debounceEmitChange
=
useDebounceFn
(
emitChange
,
200
);
function
handleSearch
(
e
:
ChangeEvent
):
void
{
debounceEmitChange
(
e
.
target
.
value
);
watch
(
()
=>
searchValue
.
value
,
(
v
)
=>
{
debounceEmitChange
(
v
);
}
);
watch
(
()
=>
props
.
searchText
,
(
v
)
=>
{
if
(
v
!==
searchValue
.
value
)
{
searchValue
.
value
=
v
;
}
}
);
// function handleSearch(e: ChangeEvent): void {
// debounceEmitChange(e.target.value);
// }
return
{
t
,
toolbarList
,
handleMenuClick
,
handleSearch
};
return
{
t
,
toolbarList
,
handleMenuClick
,
searchValue
};
},
});
</
script
>
...
...
src/components/Tree/src/props.ts
浏览文件 @
60577d67
...
...
@@ -20,6 +20,7 @@ export const basicProps = {
title
:
propTypes
.
string
,
toolbar
:
propTypes
.
bool
,
search
:
propTypes
.
bool
,
searchValue
:
propTypes
.
string
,
checkStrictly
:
propTypes
.
bool
,
clickRowToExpand
:
propTypes
.
bool
.
def
(
true
),
checkable
:
propTypes
.
bool
.
def
(
false
),
...
...
src/components/Tree/src/typing.ts
浏览文件 @
60577d67
...
...
@@ -34,6 +34,8 @@ export interface TreeActionType {
insertNodesByKey
:
(
opt
:
InsertNodeParams
)
=>
void
;
deleteNodeByKey
:
(
key
:
string
)
=>
void
;
updateNodeByKey
:
(
key
:
string
,
node
:
Omit
<
TreeDataItem
,
'key'
>
)
=>
void
;
setSearchValue
:
(
value
:
string
)
=>
void
;
getSearchValue
:
()
=>
string
;
}
export
interface
InsertNodeParams
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论