Commit 9c7836199bfdf46d0e490ee2c6d34c4a4bbadd8d

Authored by ly525
1 parent 86a331fa

feat: add page manager

front-end/h5/src/components/core/editor/index.js
@@ -47,6 +47,7 @@ export default { @@ -47,6 +47,7 @@ export default {
47 methods: { 47 methods: {
48 ...mapActions('editor', [ 48 ...mapActions('editor', [
49 'elementManager', 49 'elementManager',
  50 + 'pageManager',
50 'saveWork', 51 'saveWork',
51 'createWork' 52 'createWork'
52 ]), 53 ]),
@@ -70,6 +71,32 @@ export default { @@ -70,6 +71,32 @@ export default {
70 type: 'add', 71 type: 'add',
71 value: { name, zindex, editorConfig } 72 value: { name, zindex, editorConfig }
72 }) 73 })
  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 + }
73 } 100 }
74 }, 101 },
75 render (h) { 102 render (h) {
@@ -101,7 +128,7 @@ export default { @@ -101,7 +128,7 @@ export default {
101 mode="inline" 128 mode="inline"
102 defaultSelectedKeys={['pluginList']} 129 defaultSelectedKeys={['pluginList']}
103 style={{ height: '100%', borderRight: 1 }} 130 style={{ height: '100%', borderRight: 1 }}
104 - onSelect={val => { this.activeMenuKey = val }} 131 + onSelect={({ key }) => { this.activeMenuKey = key }}
105 > 132 >
106 { 133 {
107 sidebarMenus.map(menu => ( 134 sidebarMenus.map(menu => (
@@ -113,8 +140,8 @@ export default { @@ -113,8 +140,8 @@ export default {
113 } 140 }
114 </a-menu> 141 </a-menu>
115 </a-layout-sider> 142 </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() }
118 </a-layout-sider> 145 </a-layout-sider>
119 <a-layout style="padding: 0 24px 24px"> 146 <a-layout style="padding: 0 24px 24px">
120 <a-layout-content style={{ padding: '24px', margin: 0, minHeight: '280px' }}> 147 <a-layout-content style={{ padding: '24px', margin: 0, minHeight: '280px' }}>
front-end/h5/src/store/modules/page.js
@@ -3,10 +3,10 @@ import Page from &#39;../../components/core/models/page&#39; @@ -3,10 +3,10 @@ import Page from &#39;../../components/core/models/page&#39;
3 // actions 3 // actions
4 export const actions = { 4 export const actions = {
5 setEditingPage ({ commit }, payload) { 5 setEditingPage ({ commit }, payload) {
6 - commit('setEditing', payload) 6 + commit('setEditingPage', payload)
7 }, 7 },
8 pageManager ({ commit }, payload) { 8 pageManager ({ commit }, payload) {
9 - commit('manager', payload) 9 + commit('pageManager', payload)
10 } 10 }
11 } 11 }
12 12
@@ -23,13 +23,13 @@ export const mutations = { @@ -23,13 +23,13 @@ export const mutations = {
23 state.work.pages.push(page) 23 state.work.pages.push(page)
24 break 24 break
25 case 'copy': 25 case 'copy':
26 - state.work.pages.push(state.editing.clone()) 26 + state.work.pages.push(state.editingPage.clone())
27 break 27 break
28 case 'delete': 28 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)
31 if (index !== -1) { 31 if (index !== -1) {
32 - let newPages = pagesOfCurrentWork.slice() 32 + let newPages = work.slice()
33 newPages.splice(index, 1) 33 newPages.splice(index, 1)
34 state.work.pages = newPages 34 state.work.pages = newPages
35 } 35 }