Commit 7bd33cb77225c6c306d93a944ebc9db9c7593470

Authored by ly525
1 parent 9d9f7ec3

refactor: update contextmenu style

front-end/h5/src/components/core/editor/canvas/edit.js
... ... @@ -119,19 +119,6 @@ export default {
119 119 // 优化右击菜单的显示,去除冗余的无效逻辑
120 120 const { x, y } = this.$el.getBoundingClientRect()
121 121 this.contextmenuPos = [e.clientX - x, e.clientY - y]
122   - // console.log(e.target)
123   - // console.log(e.target.classList)
124   - // // e.preventDefault() // 不显示默认的右击菜单
125   - // if (
126   - // e.target.classList.contains('element-on-edit-canvas') ||
127   - // e.target.parentElement.classList.contains('element-on-edit-canvas')
128   - // ) {
129   - // const { x, y } = this.$el.getBoundingClientRect()
130   - // console.log(x, y)
131   - // this.contextmenuPos = [e.clientX - x, e.clientY - y]
132   - // } else {
133   - // this.hideContextMenu()
134   - // }
135 122 },
136 123 hideContextMenu () {
137 124 this.contextmenuPos = []
... ... @@ -289,7 +276,13 @@ export default {
289 276 {
290 277 this.contextmenuPos.length
291 278 ? <ContextMenu
292   - position={this.contextmenuPos}
  279 + style={{
  280 + left: this.contextmenuPos[0] + 'px',
  281 + top: this.contextmenuPos[1] + 'px',
  282 + userSelect: 'none',
  283 + position: 'absolute',
  284 + zIndex: 999
  285 + }}
293 286 onSelect={({ item, key, selectedKeys }) => {
294 287 this.elementManager({ type: key })
295 288 this.hideContextMenu()
... ...
front-end/h5/src/components/core/support/contexmenu.js
1 1  
2 2 /**
  3 + * 右键菜单
  4 + *
  5 + * 效果:
  6 + * - 复制
  7 + * - 删除
  8 + * - 置顶、置底、上移、下移
  9 + *
3 10 * jsx 相关参考链接:
4 11 * onMouseleave: https://github.com/vueComponent/ant-design-vue/blob/master/components/vc-trigger/Trigger.jsx#L205
5 12 *
6 13 */
  14 +
  15 +import './contexmenu.scss'
  16 +
  17 +// 垂直菜单
7 18 const contextmenuOptions = [
8 19 {
9 20 i18nLabel: 'editor.centerPanel.contextMenu.copy',
... ... @@ -17,6 +28,7 @@ const contextmenuOptions = [
17 28 }
18 29 ]
19 30  
  31 +// 水平菜单
20 32 const zindexContextMenu = [
21 33 {
22 34 i18nLabel: 'editor.centerPanel.contextMenu.moveToTop',
... ... @@ -40,13 +52,6 @@ const zindexContextMenu = [
40 52 }
41 53 ]
42 54  
43   -const horizontalMenuStyle = {
44   - height: '35px',
45   - lineHeight: '35px',
46   - border: 'none',
47   - borderTop: '1px solid #eee'
48   -}
49   -
50 55 export default {
51 56 props: {
52 57 position: {
... ... @@ -60,45 +65,36 @@ export default {
60 65 }
61 66 },
62 67 render (h) {
63   - const contextStyle = {
64   - left: this.position[0] + 'px',
65   - top: this.position[1] + 'px',
66   - userSelect: 'none',
67   - position: 'absolute',
68   - zIndex: 999
69   - }
70 68 return (
71 69 <a-card
72 70 bodyStyle={{ padding: '4px' }}
73   - ref="contextmenu"
74   - style={contextStyle}
  71 + class="contextmenu"
75 72 >
76 73 <a-menu
77 74 inlineIndent={4}
78 75 mode="inline"
79 76 onSelect={this.handleSelectMenu}
80   - style={{ border: 'none' }}
  77 + class="contextmenu__vertical-menus"
81 78 >
82 79 { contextmenuOptions.map(option => (
83 80 <a-menu-item
84 81 key={option.value}
85 82 data-command={option.value}
86   - style={{ height: '30px', lineHeight: '30px', margin: 0 }}
  83 + class="contextmenu__vertical-menus__item"
87 84 >{this.$t(option.i18nLabel)}</a-menu-item>
88 85 ))
89 86 }
90 87 </a-menu>
91 88 <a-menu
92 89 mode="horizontal"
93   - ref="contextmenu"
94 90 onSelect={this.handleSelectMenu}
95   - style={horizontalMenuStyle}
  91 + class="contextmenu__horizontal-menus"
96 92 >
97 93 { zindexContextMenu.map(option => (
98 94 <a-menu-item
99 95 key={option.value}
100 96 data-command={option.value}
101   - style={{ height: '35px', lineHeight: '35px', padding: '0 4px 4px' }}
  97 + class="contextmenu__horizontal-menus__item"
102 98 >{this.$t(option.i18nLabel)}</a-menu-item>
103 99 ))
104 100 }
... ...
front-end/h5/src/components/core/support/contexmenu.scss 0 → 100644
  1 +.contextmenu {
  2 + &__horizontal-menus {
  3 + height: 32px;
  4 + line-height: 32px;
  5 + border: none;
  6 + border-top: 1px solid #eee;
  7 +
  8 + &__item {
  9 + padding: 0 4px 4px;
  10 + }
  11 + }
  12 +
  13 + &__vertical-menus {
  14 + border: none;
  15 + &__item {
  16 + height: 22px !important;
  17 + line-height: 22px !important;
  18 + margin: 0;
  19 + }
  20 + }
  21 +}
... ...