Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mt-education-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
王旭
mt-education-web
Commits
12e1aa86
Commit
12e1aa86
authored
Jun 17, 2019
by
WangXu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户选择组件 缺数据绑定
parent
3aa0f9c9
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
2248 additions
and
2103 deletions
+2248
-2103
task.js
src/api/task.js
+10
-1
test.js
src/mock/services/test.js
+1997
-2000
index.vue
.../taskDesign/taskFlow/component/role-select-tree/index.vue
+45
-7
index.vue
.../taskDesign/taskFlow/component/user-select-tree/index.vue
+166
-66
index.vue
src/views/testComponents/index.vue
+30
-29
No files found.
src/api/task.js
View file @
12e1aa86
...
@@ -20,7 +20,8 @@ const api = {
...
@@ -20,7 +20,8 @@ const api = {
getTempletById
:
'/task/work-template/queryTemplateByTemplateId'
,
getTempletById
:
'/task/work-template/queryTemplateByTemplateId'
,
copyTemplate
:
'/task/work-template/templateCopy'
,
copyTemplate
:
'/task/work-template/templateCopy'
,
moveTemplate
:
'/task/work-template/templateMove'
,
moveTemplate
:
'/task/work-template/templateMove'
,
roleTree
:
'http://localhost:8080/roleTree'
roleTree
:
'http://localhost:8080/roleTree'
,
userTree
:
'http://localhost:8080/userTree'
,
}
}
export
default
api
export
default
api
...
@@ -187,3 +188,11 @@ export function roleTree(params) {
...
@@ -187,3 +188,11 @@ export function roleTree(params) {
params
:
params
params
:
params
})
})
}
}
export
function
userTree
(
params
)
{
const
url
=
api
.
userTree
return
axios
({
url
,
method
:
'get'
,
params
:
params
})
}
src/mock/services/test.js
View file @
12e1aa86
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/views/taskTemplate/taskDesign/taskFlow/component/role-select-tree/index.vue
View file @
12e1aa86
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
<div><strong>
选择
</strong></div>
<div><strong>
选择
</strong></div>
<a-input-search
style=
"margin-bottom: 8px"
placeholder=
"搜索"
@
change=
"onChange"
/>
<a-input-search
style=
"margin-bottom: 8px"
placeholder=
"搜索"
@
change=
"onChange"
/>
<a-tree
<a-tree
ref=
"roleTree"
@
expand=
"onExpand"
@
expand=
"onExpand"
:expandedKeys=
"expandedKeys"
:expandedKeys=
"expandedKeys"
:autoExpandParent=
"autoExpandParent"
:autoExpandParent=
"autoExpandParent"
...
@@ -15,6 +16,7 @@
...
@@ -15,6 +16,7 @@
:checkable=
"true"
:checkable=
"true"
:checkStrictly=
"true"
:checkStrictly=
"true"
v-model=
"selectedList"
v-model=
"selectedList"
@
check=
"handleCheck"
>
>
<template
slot=
"title"
slot-scope=
"
{title}">
<template
slot=
"title"
slot-scope=
"
{title}">
<span
v-if=
"title.indexOf(searchValue) > -1"
>
<span
v-if=
"title.indexOf(searchValue) > -1"
>
...
@@ -31,14 +33,14 @@
...
@@ -31,14 +33,14 @@
<a-col
class=
"content right"
:span=
"12"
>
<a-col
class=
"content right"
:span=
"12"
>
<div
class=
"ant-card-bordered"
>
<div
class=
"ant-card-bordered"
>
<div><strong>
已选
</strong></div>
<div><strong>
已选
</strong></div>
<
template
v-for=
"(role, index) in selectedList
.checked
"
>
<
template
v-for=
"(role, index) in selectedList
ForTags
"
>
<a-tooltip
v-if=
"role.
name.length > 20"
:key=
"role.id"
:title=
"role.nam
e"
>
<a-tooltip
v-if=
"role.
title.length > 20"
:key=
"role.id"
:title=
"role.titl
e"
>
<a-tag
class=
"role"
:key=
"role.id"
:closable=
"true"
:afterClose=
"() => handleClose(role)"
>
<a-tag
class=
"role"
:key=
"role.id"
:closable=
"true"
:afterClose=
"() => handleClose(role)"
>
{{
`${role.
nam
e.slice(0, 20)
}
...`
}}
{{
`${role.
titl
e.slice(0, 20)
}
...`
}}
<
/a-tag
>
<
/a-tag
>
<
/a-tooltip
>
<
/a-tooltip
>
<
a
-
tag
class
=
"role"
v
-
else
:
key
=
"role.id"
:
closable
=
"true"
:
afterClose
=
"() => handleClose(role)"
>
<
a
-
tag
class
=
"role"
v
-
else
:
key
=
"role.id"
:
closable
=
"true"
:
afterClose
=
"() => handleClose(role)"
>
{{
role
.
nam
e
}}
{{
role
.
titl
e
}}
<
/a-tag
>
<
/a-tag
>
<
/template
>
<
/template
>
<
div
v
-
if
=
"!hasSelectedData"
>
<
div
v
-
if
=
"!hasSelectedData"
>
...
@@ -57,6 +59,7 @@
...
@@ -57,6 +59,7 @@
<
script
>
<
script
>
import
{
Ellipsis
}
from
'@/components'
import
{
Ellipsis
}
from
'@/components'
import
ACol
from
'ant-design-vue/es/grid/Col'
;
import
ACol
from
'ant-design-vue/es/grid/Col'
;
import
roleSelectTree
from
"@/views/taskTemplate/taskDesign/taskFlow/component/role-select-tree"
;
const
getParentKey
=
(
key
,
tree
)
=>
{
const
getParentKey
=
(
key
,
tree
)
=>
{
let
parentKey
let
parentKey
...
@@ -72,6 +75,19 @@
...
@@ -72,6 +75,19 @@
}
}
return
parentKey
return
parentKey
}
}
const
dataList
=
[]
const
generateList
=
(
data
)
=>
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
const
node
=
data
[
i
]
const
key
=
node
.
key
dataList
.
push
({
key
,
title
:
key
}
)
if
(
node
.
children
)
{
generateList
(
node
.
children
,
node
.
key
)
}
}
}
export
default
{
export
default
{
name
:
'RoleSelectTree'
,
name
:
'RoleSelectTree'
,
components
:
{
components
:
{
...
@@ -84,19 +100,20 @@
...
@@ -84,19 +100,20 @@
expandedKeys
:
[],
expandedKeys
:
[],
searchValue
:
''
,
searchValue
:
''
,
autoExpandParent
:
true
,
autoExpandParent
:
true
,
selectedList
:
{
}
selectedList
:
{
}
,
selectedListForTags
:
[]
}
}
}
,
}
,
computed
:
{
computed
:
{
hasSelectedData
()
{
hasSelectedData
()
{
const
flag
=
this
.
selectedList
.
checked
&&
this
.
selectedList
.
checked
.
length
>
0
const
flag
=
this
.
selectedList
ForTags
&&
this
.
selectedListForTags
.
length
>
0
return
flag
return
flag
}
}
}
,
}
,
methods
:
{
methods
:
{
handleClose
(
removedTag
)
{
handleClose
(
removedTag
)
{
const
selectedList
=
this
.
selectedList
&&
this
.
selectedList
.
checked
const
selectedList
=
this
.
selectedList
&&
this
.
selectedList
.
checked
const
tags
=
selectedList
.
filter
(
tag
=>
tag
!==
removedTag
)
const
tags
=
selectedList
.
filter
(
tag
=>
tag
!==
removedTag
.
key
)
console
.
log
(
tags
)
console
.
log
(
tags
)
this
.
selectedList
=
Object
.
assign
({
}
,
this
.
selectedList
,
{
this
.
selectedList
=
Object
.
assign
({
}
,
this
.
selectedList
,
{
checked
:
tags
checked
:
tags
...
@@ -123,7 +140,28 @@
...
@@ -123,7 +140,28 @@
autoExpandParent
:
true
,
autoExpandParent
:
true
,
}
)
}
)
}
,
}
,
handleCheck
(
checkedKeys
,
e
)
{
console
.
log
(
'handleCheck'
,
this
.
$refs
.
roleTree
)
// const checked
const
hasKey
=
this
.
selectedListForTags
.
some
(
item
=>
{
return
item
.
key
===
e
.
node
.
eventKey
}
)
// 取消选中
if
(
!
e
.
checked
&&
hasKey
)
{
this
.
selectedListForTags
=
this
.
selectedListForTags
.
filter
(
item
=>
{
return
item
.
key
!==
e
.
node
.
eventKey
}
)
}
// 选中
if
(
e
.
checked
&&
!
hasKey
)
{
this
.
selectedListForTags
.
push
(
e
.
node
.
dataRef
)
}
}
}
,
}
,
mounted
(){
console
.
log
(
'roleTree'
,
this
.
$refs
.
roleTree
)
generateList
(
this
.
gData
)
}
}
}
<
/script
>
<
/script
>
...
...
src/views/taskTemplate/taskDesign/taskFlow/component/user-select-tree/index.vue
View file @
12e1aa86
This diff is collapsed.
Click to expand it.
src/views/testComponents/index.vue
View file @
12e1aa86
<
template
>
<
template
>
<div>
<div>
<mt-show-input
v-model=
"mtShowInputText"
></mt-show-input>
<mt-show-input
v-model=
"mtShowInputText"
></mt-show-input>
<role-select-tree
:gData=
"roleTree"
></role-select-tree>
<!--
<role-select-tree
:gData=
"roleTree"
></role-select-tree>
-->
<!--
<user-select-tree></user-select-tree>
-->
<!--
<user-select-tree
:gData=
"userTree"
v-if=
"userTree.length>0"
></user-select-tree>
-->
<div
id=
"user-select-tree"
>
<a-button
type=
"primary"
@
click=
"showModal"
>
Open Modal
</a-button>
<a-modal
v-model=
"visible"
:width=
"700"
style=
"top: 20px;"
@
ok=
"handleOk"
>
<div
class=
"title"
slot=
"title"
>
<span>
选择人员
<span
style=
"color: #00000073"
>
(可多选)
</span></span>
</div>
<user-select-tree
:selectedKeys=
"[1042237480110104577, 1042237480391122946]"
></user-select-tree>
</a-modal>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
mtShowInput
from
"@comp/mt-show-input"
;
import
mtShowInput
from
'@comp/mt-show-input'
;
import
roleSelectTree
from
"@/views/taskTemplate/taskDesign/taskFlow/component/role-select-tree"
;
import
roleSelectTree
from
"@/views/taskTemplate/taskDesign/taskFlow/component/role-select-tree"
;
import
userSelectTree
from
"@/views/taskTemplate/taskDesign/taskFlow/component/user-select-tree"
;
import
userSelectTree
from
"@/views/taskTemplate/taskDesign/taskFlow/component/user-select-tree"
;
import
{
roleTree
}
from
'@/api/task'
;
import
{
roleTree
,
userTree
}
from
'@/api/task'
;
const
generateData
=
(
_obj
,
_keys
)
=>
{
const
children
=
[]
for
(
let
i
=
0
;
i
<
_obj
;
i
++
)
{
tns
.
push
({
title
:
key
,
key
,
scopedSlots
:
{
title
:
'title'
}})
if
(
i
<
y
)
{
children
.
push
(
key
)
}
}
if
(
_level
<
0
)
{
return
tns
}
const
level
=
_level
-
1
children
.
forEach
((
key
,
index
)
=>
{
tns
[
index
].
children
=
[]
return
generateData
(
level
,
key
,
tns
[
index
].
children
)
})
}
export
default
{
export
default
{
name
:
'test'
,
name
:
'test'
,
data
()
{
data
()
{
return
{
return
{
visible
:
false
,
mtShowInputText
:
'王旭'
,
mtShowInputText
:
'王旭'
,
roleTree
:
[]
roleTree
:
[]
,
}
}
},
},
components
:
{
components
:
{
...
@@ -47,16 +43,23 @@
...
@@ -47,16 +43,23 @@
userSelectTree
userSelectTree
},
},
methods
:
{
methods
:
{
showModal
()
{
this
.
visible
=
true
},
handleOk
(
e
)
{
console
.
log
(
e
);
this
.
visible
=
false
},
getRoleTreeData
()
{
getRoleTreeData
()
{
roleTree
().
then
(
res
=>
{
roleTree
().
then
(
res
=>
{
const
list
=
res
.
data
||
[]
const
list
=
res
.
data
||
[]
const
treeData
=
list
.
map
(
role
=>
{
const
treeData
=
list
.
map
(
role
=>
{
const
obj
=
Object
.
assign
({},
{
const
obj
=
Object
.
assign
({},
{
key
:
role
,
key
:
role
.
id
,
title
:
role
.
name
,
title
:
role
.
name
,
children
:
role
.
roles
.
map
(
cRole
=>
{
children
:
role
.
roles
.
map
(
cRole
=>
{
const
cObj
=
Object
.
assign
({},
{
const
cObj
=
Object
.
assign
({},
{
key
:
cRole
,
key
:
cRole
.
id
,
title
:
cRole
.
name
title
:
cRole
.
name
})
})
return
cObj
return
cObj
...
@@ -67,11 +70,9 @@
...
@@ -67,11 +70,9 @@
this
.
roleTree
=
treeData
this
.
roleTree
=
treeData
console
.
log
(
'getRoleTreeData'
,
this
.
roleTree
)
console
.
log
(
'getRoleTreeData'
,
this
.
roleTree
)
})
})
},
}
},
},
mounted
()
{
mounted
()
{
this
.
getRoleTreeData
()
}
}
}
}
</
script
>
</
script
>
...
...
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