Skip to content

Commit 9c78361

Browse files
committed
feat: add page manager
1 parent 86a331f commit 9c78361

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

front-end/h5/src/components/core/editor/index.js

+30-3
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export default {
4747
methods: {
4848
...mapActions('editor', [
4949
'elementManager',
50+
'pageManager',
5051
'saveWork',
5152
'createWork'
5253
]),
@@ -70,6 +71,32 @@ export default {
7071
type: 'add',
7172
value: { name, zindex, editorConfig }
7273
})
74+
},
75+
_renderMenuContent () {
76+
switch (this.activeMenuKey) {
77+
case sidebarMenus[0].value:
78+
return <RenderShortcutsPanel groups={this.groups} handleClickShortcut={this.clone} />
79+
case sidebarMenus[1].value:
80+
return (
81+
this.pages.map((page, index) => (
82+
<span style={{ display: 'flex', justifyContent: 'space-between', padding: '12px 0' }}>
83+
<span>{index + 1}</span>
84+
<a-dropdown trigger={['hover']} placement='bottomCenter'>
85+
<a class="ant-dropdown-link" href="#">
86+
<a-icon type="down" />
87+
</a>
88+
<a-menu slot="overlay" onClick={({ key }) => { this.pageManager({ type: key }) }}>
89+
<a-menu-item key="add"><a-icon type="user" />新增页面</a-menu-item>
90+
{/* <a-menu-item key="copy"><a-icon type="user" />复制页面</a-menu-item> */}
91+
{/* <a-menu-item key="delete"><a-icon type="user" />删除页面</a-menu-item> */}
92+
</a-menu>
93+
</a-dropdown>
94+
</span>
95+
))
96+
)
97+
default:
98+
return null
99+
}
73100
}
74101
},
75102
render (h) {
@@ -101,7 +128,7 @@ export default {
101128
mode="inline"
102129
defaultSelectedKeys={['pluginList']}
103130
style={{ height: '100%', borderRight: 1 }}
104-
onSelect={val => { this.activeMenuKey = val }}
131+
onSelect={({ key }) => { this.activeMenuKey = key }}
105132
>
106133
{
107134
sidebarMenus.map(menu => (
@@ -113,8 +140,8 @@ export default {
113140
}
114141
</a-menu>
115142
</a-layout-sider>
116-
<a-layout-sider width="240" theme='light' style={{ background: '#fff', padding: '0 12px' }}>
117-
<RenderShortcutsPanel groups={this.groups} handleClickShortcut={this.clone} />
143+
<a-layout-sider width="240" theme='light' style={{ background: '#fff', padding: '12px' }}>
144+
{ this._renderMenuContent() }
118145
</a-layout-sider>
119146
<a-layout style="padding: 0 24px 24px">
120147
<a-layout-content style={{ padding: '24px', margin: 0, minHeight: '280px' }}>

front-end/h5/src/store/modules/page.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import Page from '../../components/core/models/page'
33
// actions
44
export const actions = {
55
setEditingPage ({ commit }, payload) {
6-
commit('setEditing', payload)
6+
commit('setEditingPage', payload)
77
},
88
pageManager ({ commit }, payload) {
9-
commit('manager', payload)
9+
commit('pageManager', payload)
1010
}
1111
}
1212

@@ -23,13 +23,13 @@ export const mutations = {
2323
state.work.pages.push(page)
2424
break
2525
case 'copy':
26-
state.work.pages.push(state.editing.clone())
26+
state.work.pages.push(state.editingPage.clone())
2727
break
2828
case 'delete':
29-
const { pagesOfCurrentWork, editing } = state
30-
let index = pagesOfCurrentWork.findIndex(e => e.uuid === editing.uuid)
29+
const { work, editingPage } = state
30+
let index = work.pages.findIndex(e => e.uuid === editingPage.uuid)
3131
if (index !== -1) {
32-
let newPages = pagesOfCurrentWork.slice()
32+
let newPages = work.slice()
3333
newPages.splice(index, 1)
3434
state.work.pages = newPages
3535
}

0 commit comments

Comments
 (0)