Commit a5977103361a96f4357736dd70ad20845216a769

Authored by ly525
1 parent 51ea07af

feat(element): 支持使用键盘快捷键删除元素; !#en: support delete element with keyboard

front-end/h5/src/components/core/editor/canvas/edit.js
... ... @@ -235,6 +235,7 @@ export default {
235 235 }
236 236 return (
237 237 <Shape
  238 + onDelete={() => this.elementManager({ type: 'delete' }) }
238 239 style={element.getStyle({ position: 'absolute' })}
239 240 defaultPosition={element.commonStyle} // {top, left}
240 241 element={element}
... ...
front-end/h5/src/components/core/support/excel.js
... ... @@ -35,7 +35,7 @@ export default {
35 35 }
36 36 },
37 37 watch: {
38   - value() {
  38 + value () {
39 39 this.refreshSheet({ rows: this.innerItems })
40 40 }
41 41 },
... ... @@ -53,7 +53,7 @@ export default {
53 53 this.sheet.loadData(data)
54 54 this.sheet.reRender()
55 55 },
56   - initSheet() {
  56 + initSheet () {
57 57 const ele = this.$refs.excel
58 58 return this.sheet || new Spreadsheet(ele, {
59 59 showToolbar: false,
... ... @@ -86,5 +86,5 @@ export default {
86 86 mounted () {
87 87 this.sheet = this.initSheet()
88 88 this.refreshSheet({ rows: this.innerItems })
89   - },
  89 + }
90 90 }
... ...
front-end/h5/src/components/core/support/shape.js
... ... @@ -141,11 +141,35 @@ export default {
141 141 this.handleMousedownProp()
142 142 this.mousedownForElement(e, this.element)
143 143 }
  144 + },
  145 + /**
  146 + * !#en: delete element with keyboard
  147 + * !#zh: 键盘快捷键删除元素
  148 + *
  149 + * TODO: 增加 确认删除 拦截操作
  150 + */
  151 + handleDeleteByKeyboard (e) {
  152 + const key = event.keyCode || event.charCode
  153 + if (key === 8 || key === 46) {
  154 + this.$emit('delete')
  155 + }
  156 + },
  157 + /**
  158 + * detect key pressed on keyboard
  159 + * 检测键盘按键 按下行为
  160 + *
  161 + * 支持如下行为:
  162 + * - Backspace/Delete 快速删除元素
  163 + */
  164 + handleKeyPressed (e) {
  165 + this.handleDeleteByKeyboard(e)
144 166 }
145 167 },
146 168 render (h) {
147 169 return (
148 170 <div
  171 + tabIndex="0"
  172 + onKeydown={this.handleKeyPressed}
149 173 onClick={this.handleWrapperClick}
150 174 onMousedown={this.handleMousedown}
151 175 class={{ 'shape__wrapper-active': this.active }}
... ...