Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
e6960896
Commit
e6960896
authored
Mar 04, 2021
by
Vben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(tree): add clickRowToExpand option close #318
parent
80b47c84
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
36 additions
and
13 deletions
+36
-13
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+6
-0
index.vue
src/components/Tree/src/index.vue
+24
-8
props.ts
src/components/Tree/src/props.ts
+1
-0
types.ts
src/components/Tree/src/types.ts
+3
-4
AccountModal.vue
src/views/demo/system/account/AccountModal.vue
+2
-1
No files found.
CHANGELOG.zh_CN.md
View file @
e6960896
## Wip
### ✨ Features
-
`BasicTree`
新增
`clickRowToExpand`
,用于单击树节点展开
### 🐛 Bug Fixes
-
修复
`Description`
已知问题
-
修复
`BasicForm`
已知问题
-
修复
`BasicTree`
下 ActionItem 的 show 属性逻辑问题
-
修复树组件 demo 示例样式错误
-
修复账号管理新增未清空旧数据
## 2.0.2 (2021-03-04)
...
...
src/components/Tree/src/index.vue
View file @
e6960896
...
...
@@ -121,7 +121,7 @@
return
icon
;
}
async
function
handleRightClick
({
event
,
node
}:
any
)
{
async
function
handleRightClick
({
event
,
node
}:
Recordable
)
{
const
{
rightMenuList
:
menuList
=
[],
beforeRightClick
}
=
props
;
let
rightMenuList
:
ContextMenuItem
[]
=
[];
...
...
@@ -137,14 +137,14 @@
});
}
function
setExpandedKeys
(
keys
:
string
[]
)
{
function
setExpandedKeys
(
keys
:
Keys
)
{
state
.
expandedKeys
=
keys
;
}
function
getExpandedKeys
()
{
return
state
.
expandedKeys
;
}
function
setSelectedKeys
(
keys
:
string
[]
)
{
function
setSelectedKeys
(
keys
:
Keys
)
{
state
.
selectedKeys
=
keys
;
}
...
...
@@ -182,10 +182,23 @@
searchState
.
searchData
=
filter
(
unref
(
treeDataRef
),
(
node
)
=>
{
const
{
title
}
=
node
;
return
title
?.
includes
(
searchValue
)
??
false
;
// || key?.includes(searchValue);
});
}
function
handleClickNode
(
key
:
string
,
children
:
TreeItem
[])
{
if
(
!
props
.
clickRowToExpand
||
!
children
||
children
.
length
===
0
)
return
;
if
(
!
state
.
expandedKeys
.
includes
(
key
))
{
setExpandedKeys
([...
state
.
expandedKeys
,
key
]);
}
else
{
const
keys
=
[...
state
.
expandedKeys
];
const
index
=
keys
.
findIndex
((
item
)
=>
item
===
key
);
if
(
index
!==
-
1
)
{
keys
.
splice
(
index
,
1
);
}
setExpandedKeys
(
keys
);
}
}
watchEffect
(()
=>
{
treeDataRef
.
value
=
props
.
treeData
as
TreeItem
[];
state
.
expandedKeys
=
props
.
expandedKeys
;
...
...
@@ -264,11 +277,15 @@
const
propsData
=
omit
(
item
,
'
title
'
);
const
icon
=
getIcon
({
...
item
,
level
},
item
.
icon
);
const
children
=
get
(
item
,
childrenField
)
||
[];
return
(
<
Tree
.
TreeNode
{...
propsData
}
node
=
{
toRaw
(
item
)}
key
=
{
get
(
item
,
keyField
)}
>
{{
title
:
()
=>
(
<
span
class
=
{
`
${
prefixCls
}
-title pl-2`
}
>
<
span
class
=
{
`
${
prefixCls
}
-title pl-2`
}
onClick
=
{
handleClickNode
.
bind
(
null
,
item
.
key
,
children
)}
>
{
icon
&&
<
TreeIcon
icon
=
{
icon
}
/>
}
<
span
class
=
{
`
${
prefixCls
}
__content`
}
...
...
@@ -279,8 +296,7 @@
<
span
class
=
{
`
${
prefixCls
}
__actions`
}
>
{
renderAction
({
...
item
,
level
})}
<
/span
>
<
/span
>
),
default
:
()
=>
renderTreeNode
({
data
:
get
(
item
,
childrenField
)
||
[],
level
:
level
+
1
}),
default
:
()
=>
renderTreeNode
({
data
:
children
,
level
:
level
+
1
}),
}}
<
/Tree.TreeNode
>
);
...
...
@@ -289,7 +305,7 @@
return
()
=>
{
const
{
title
,
helpMessage
,
toolbar
,
search
}
=
props
;
return
(
<
div
class
=
{[
prefixCls
,
'
h-full bg-white
'
]}
>
<
div
class
=
{[
prefixCls
,
'
h-full bg-white
'
,
attrs
.
class
]}
>
{(
title
||
toolbar
||
search
)
&&
(
<
TreeHeader
checkAll
=
{
checkAll
}
...
...
src/components/Tree/src/props.ts
View file @
e6960896
...
...
@@ -21,6 +21,7 @@ export const basicProps = {
toolbar
:
propTypes
.
bool
,
search
:
propTypes
.
bool
,
checkStrictly
:
propTypes
.
bool
,
clickRowToExpand
:
propTypes
.
bool
.
def
(
true
),
replaceFields
:
{
type
:
Object
as
PropType
<
ReplaceFields
>
,
...
...
src/components/Tree/src/types.ts
View file @
e6960896
...
...
@@ -14,11 +14,10 @@ export interface ReplaceFields {
key
?:
string
;
}
export
type
Keys
=
string
[]
|
number
[];
export
type
Keys
=
(
string
|
number
)
[];
export
type
CheckKeys
=
|
string
[]
|
number
[]
|
{
checked
:
string
[]
|
number
[];
halfChecked
:
string
[]
|
number
[]
};
|
(
string
|
number
)[]
|
{
checked
:
(
string
|
number
)[];
halfChecked
:
(
string
|
number
)[]
};
export
interface
TreeActionType
{
checkAll
:
(
checkAll
:
boolean
)
=>
void
;
...
...
src/views/demo/system/account/AccountModal.vue
View file @
e6960896
...
...
@@ -17,7 +17,7 @@
setup
(
_
,
{
emit
})
{
const
isUpdate
=
ref
(
true
);
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
validate
}]
=
useForm
({
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
schemas
:
accountFormSchema
,
showActionButtonGroup
:
false
,
...
...
@@ -27,6 +27,7 @@
});
const
[
registerModal
,
{
setModalProps
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment