Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ant-design-pro-vue
Overview
Overview
Details
Activity
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
tianzhuanghu
ant-design-pro-vue
Commits
c4e48688
Unverified
Commit
c4e48688
authored
Mar 03, 2019
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: table a-swtich checked,record
parent
de613635
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
155 additions
and
156 deletions
+155
-156
index.js
src/components/menu/index.js
+155
-156
TableInnerEditList.vue
src/views/list/TableInnerEditList.vue
+0
-0
No files found.
src/components/menu/index.js
View file @
c4e48688
import
Menu
from
'ant-design-vue/es/menu'
import
Icon
from
'ant-design-vue/es/icon'
const
{
Item
,
SubMenu
}
=
Menu
export
default
{
name
:
'SMenu'
,
props
:
{
menu
:
{
type
:
Array
,
required
:
true
},
theme
:
{
type
:
String
,
required
:
false
,
default
:
'dark'
},
mode
:
{
type
:
String
,
required
:
false
,
default
:
'inline'
},
collapsed
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
}
},
data
()
{
return
{
openKeys
:
[],
selectedKeys
:
[],
cachedOpenKeys
:
[]
}
},
computed
:
{
rootSubmenuKeys
:
vm
=>
{
const
keys
=
[]
vm
.
menu
.
forEach
(
item
=>
keys
.
push
(
item
.
path
))
return
keys
}
},
created
()
{
this
.
updateMenu
()
},
watch
:
{
collapsed
(
val
)
{
if
(
val
)
{
this
.
cachedOpenKeys
=
this
.
openKeys
.
concat
()
this
.
openKeys
=
[]
}
else
{
this
.
openKeys
=
this
.
cachedOpenKeys
}
},
$route
:
function
()
{
this
.
updateMenu
()
}
},
methods
:
{
renderIcon
:
function
(
h
,
icon
)
{
if
(
icon
===
'none'
||
icon
===
undefined
)
{
return
null
}
const
props
=
{}
typeof
(
icon
)
===
'object'
?
props
.
component
=
icon
:
props
.
type
=
icon
return
h
(
Icon
,
{
props
:
{
...
props
}
})
},
renderMenuItem
:
function
(
h
,
menu
,
pIndex
,
index
)
{
const
target
=
menu
.
meta
.
target
||
null
return
h
(
Item
,
{
key
:
menu
.
path
?
menu
.
path
:
'item_'
+
pIndex
+
'_'
+
index
},
[
h
(
'router-link'
,
{
attrs
:
{
to
:
{
name
:
menu
.
name
},
target
:
target
}
},
[
this
.
renderIcon
(
h
,
menu
.
meta
.
icon
),
h
(
'span'
,
[
menu
.
meta
.
title
])
])
])
},
renderSubMenu
:
function
(
h
,
menu
,
pIndex
,
index
)
{
const
this2_
=
this
const
subItem
=
[
h
(
'span'
,
{
slot
:
'title'
},
[
this
.
renderIcon
(
h
,
menu
.
meta
.
icon
),
h
(
'span'
,
[
menu
.
meta
.
title
])])]
const
itemArr
=
[]
const
pIndex_
=
pIndex
+
'_'
+
index
console
.
log
(
'menu'
,
menu
)
if
(
!
menu
.
hideChildrenInMenu
)
{
menu
.
children
.
forEach
(
function
(
item
,
i
)
{
itemArr
.
push
(
this2_
.
renderItem
(
h
,
item
,
pIndex_
,
i
))
})
}
return
h
(
SubMenu
,
{
key
:
menu
.
path
?
menu
.
path
:
'submenu_'
+
pIndex
+
'_'
+
index
},
subItem
.
concat
(
itemArr
))
},
renderItem
:
function
(
h
,
menu
,
pIndex
,
index
)
{
if
(
!
menu
.
hidden
)
{
return
menu
.
children
&&
!
menu
.
hideChildrenInMenu
?
this
.
renderSubMenu
(
h
,
menu
,
pIndex
,
index
)
:
this
.
renderMenuItem
(
h
,
menu
,
pIndex
,
index
)
}
},
renderMenu
:
function
(
h
,
menuTree
)
{
const
this2_
=
this
const
menuArr
=
[]
menuTree
.
forEach
(
function
(
menu
,
i
)
{
if
(
!
menu
.
hidden
)
{
menuArr
.
push
(
this2_
.
renderItem
(
h
,
menu
,
'0'
,
i
))
}
})
return
menuArr
},
onOpenChange
(
openKeys
)
{
const
latestOpenKey
=
openKeys
.
find
(
key
=>
!
this
.
openKeys
.
includes
(
key
))
if
(
!
this
.
rootSubmenuKeys
.
includes
(
latestOpenKey
))
{
this
.
openKeys
=
openKeys
}
else
{
this
.
openKeys
=
latestOpenKey
?
[
latestOpenKey
]
:
[]
}
},
updateMenu
()
{
const
routes
=
this
.
$route
.
matched
.
concat
()
if
(
routes
.
length
>=
4
&&
this
.
$route
.
meta
.
hidden
)
{
routes
.
pop
()
this
.
selectedKeys
=
[
routes
[
2
].
path
]
}
else
{
this
.
selectedKeys
=
[
routes
.
pop
().
path
]
}
const
openKeys
=
[]
if
(
this
.
mode
===
'inline'
)
{
routes
.
forEach
(
item
=>
{
openKeys
.
push
(
item
.
path
)
})
}
this
.
collapsed
?
(
this
.
cachedOpenKeys
=
openKeys
)
:
(
this
.
openKeys
=
openKeys
)
}
},
render
(
h
)
{
return
h
(
Menu
,
{
props
:
{
theme
:
this
.
$props
.
theme
,
mode
:
this
.
$props
.
mode
,
openKeys
:
this
.
openKeys
,
selectedKeys
:
this
.
selectedKeys
},
on
:
{
openChange
:
this
.
onOpenChange
,
select
:
obj
=>
{
this
.
selectedKeys
=
obj
.
selectedKeys
this
.
$emit
(
'select'
,
obj
)
}
}
},
this
.
renderMenu
(
h
,
this
.
menu
)
)
}
}
import
Menu
from
'ant-design-vue/es/menu'
import
Icon
from
'ant-design-vue/es/icon'
const
{
Item
,
SubMenu
}
=
Menu
export
default
{
name
:
'SMenu'
,
props
:
{
menu
:
{
type
:
Array
,
required
:
true
},
theme
:
{
type
:
String
,
required
:
false
,
default
:
'dark'
},
mode
:
{
type
:
String
,
required
:
false
,
default
:
'inline'
},
collapsed
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
}
},
data
()
{
return
{
openKeys
:
[],
selectedKeys
:
[],
cachedOpenKeys
:
[]
}
},
computed
:
{
rootSubmenuKeys
:
vm
=>
{
const
keys
=
[]
vm
.
menu
.
forEach
(
item
=>
keys
.
push
(
item
.
path
))
return
keys
}
},
created
()
{
this
.
updateMenu
()
},
watch
:
{
collapsed
(
val
)
{
if
(
val
)
{
this
.
cachedOpenKeys
=
this
.
openKeys
.
concat
()
this
.
openKeys
=
[]
}
else
{
this
.
openKeys
=
this
.
cachedOpenKeys
}
},
$route
:
function
()
{
this
.
updateMenu
()
}
},
methods
:
{
renderIcon
:
function
(
h
,
icon
)
{
if
(
icon
===
'none'
||
icon
===
undefined
)
{
return
null
}
const
props
=
{}
typeof
(
icon
)
===
'object'
?
props
.
component
=
icon
:
props
.
type
=
icon
return
h
(
Icon
,
{
props
:
{
...
props
}
})
},
renderMenuItem
:
function
(
h
,
menu
,
pIndex
,
index
)
{
const
target
=
menu
.
meta
.
target
||
null
return
h
(
Item
,
{
key
:
menu
.
path
?
menu
.
path
:
'item_'
+
pIndex
+
'_'
+
index
},
[
h
(
'router-link'
,
{
attrs
:
{
to
:
{
name
:
menu
.
name
},
target
:
target
}
},
[
this
.
renderIcon
(
h
,
menu
.
meta
.
icon
),
h
(
'span'
,
[
menu
.
meta
.
title
])
])
])
},
renderSubMenu
:
function
(
h
,
menu
,
pIndex
,
index
)
{
const
this2_
=
this
const
subItem
=
[
h
(
'span'
,
{
slot
:
'title'
},
[
this
.
renderIcon
(
h
,
menu
.
meta
.
icon
),
h
(
'span'
,
[
menu
.
meta
.
title
])])]
const
itemArr
=
[]
const
pIndex_
=
pIndex
+
'_'
+
index
if
(
!
menu
.
hideChildrenInMenu
)
{
menu
.
children
.
forEach
(
function
(
item
,
i
)
{
itemArr
.
push
(
this2_
.
renderItem
(
h
,
item
,
pIndex_
,
i
))
})
}
return
h
(
SubMenu
,
{
key
:
menu
.
path
?
menu
.
path
:
'submenu_'
+
pIndex
+
'_'
+
index
},
subItem
.
concat
(
itemArr
))
},
renderItem
:
function
(
h
,
menu
,
pIndex
,
index
)
{
if
(
!
menu
.
hidden
)
{
return
menu
.
children
&&
!
menu
.
hideChildrenInMenu
?
this
.
renderSubMenu
(
h
,
menu
,
pIndex
,
index
)
:
this
.
renderMenuItem
(
h
,
menu
,
pIndex
,
index
)
}
},
renderMenu
:
function
(
h
,
menuTree
)
{
const
this2_
=
this
const
menuArr
=
[]
menuTree
.
forEach
(
function
(
menu
,
i
)
{
if
(
!
menu
.
hidden
)
{
menuArr
.
push
(
this2_
.
renderItem
(
h
,
menu
,
'0'
,
i
))
}
})
return
menuArr
},
onOpenChange
(
openKeys
)
{
const
latestOpenKey
=
openKeys
.
find
(
key
=>
!
this
.
openKeys
.
includes
(
key
))
if
(
!
this
.
rootSubmenuKeys
.
includes
(
latestOpenKey
))
{
this
.
openKeys
=
openKeys
}
else
{
this
.
openKeys
=
latestOpenKey
?
[
latestOpenKey
]
:
[]
}
},
updateMenu
()
{
const
routes
=
this
.
$route
.
matched
.
concat
()
if
(
routes
.
length
>=
4
&&
this
.
$route
.
meta
.
hidden
)
{
routes
.
pop
()
this
.
selectedKeys
=
[
routes
[
2
].
path
]
}
else
{
this
.
selectedKeys
=
[
routes
.
pop
().
path
]
}
const
openKeys
=
[]
if
(
this
.
mode
===
'inline'
)
{
routes
.
forEach
(
item
=>
{
openKeys
.
push
(
item
.
path
)
})
}
this
.
collapsed
?
(
this
.
cachedOpenKeys
=
openKeys
)
:
(
this
.
openKeys
=
openKeys
)
}
},
render
(
h
)
{
return
h
(
Menu
,
{
props
:
{
theme
:
this
.
$props
.
theme
,
mode
:
this
.
$props
.
mode
,
openKeys
:
this
.
openKeys
,
selectedKeys
:
this
.
selectedKeys
},
on
:
{
openChange
:
this
.
onOpenChange
,
select
:
obj
=>
{
this
.
selectedKeys
=
obj
.
selectedKeys
this
.
$emit
(
'select'
,
obj
)
}
}
},
this
.
renderMenu
(
h
,
this
.
menu
)
)
}
}
src/views/list/TableInnerEditList.vue
View file @
c4e48688
This diff is collapsed.
Click to expand it.
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