vue2-client 1.2.71 → 1.2.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Change Log
2
2
  > 所有关于本项目的变化都在该文档里。
3
3
 
4
- **1.2.72 2022-06-16 @张振宇**
4
+ **1.2.71 - 1.2.72 2022-06-16 @张振宇**
5
5
  - 功能修改:
6
6
  - 基础表单bug修改
7
+ - 数据字段可以拖拽了
7
8
 
8
9
  **1.2.71 2022-06-15 @苗艳强**
9
10
  - 功能修改:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.2.71",
3
+ "version": "1.2.72",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -64,7 +64,14 @@
64
64
  </a-form-model-item>
65
65
  <a-form-model-item label="数据字段" prop="column">
66
66
  <a-button type="primary" @click="addColumnItem()">增加</a-button>
67
- <div v-for="(columnItem, index) in form.column" :key="index">
67
+ <div
68
+ v-for="(columnItem, index) in form.column"
69
+ :key="index"
70
+ draggable="true"
71
+ @dragstart="handleDragStart($event, columnItem)"
72
+ @dragover.prevent="handleDragOver($event, columnItem)"
73
+ @dragenter="handleDragEnter($event, columnItem)"
74
+ @dragend="handleDragEnd($event, columnItem)">
68
75
  <a-row :gutter="16">
69
76
  <a-col :span="16">
70
77
  <span style="font-weight: bold">{{ columnItem.title }}({{ columnItem.key }})</span>
@@ -173,6 +180,8 @@ export default {
173
180
  tableName: [{ required: true, message: '请输入查询表名', trigger: 'blur' }],
174
181
  orderBy: [{ required: true, message: '请输入排序方式', trigger: 'blur' }]
175
182
  },
183
+ ending: null,
184
+ dragging: null
176
185
  }
177
186
  },
178
187
  mounted () {
@@ -475,6 +484,37 @@ export default {
475
484
  return false
476
485
  }
477
486
  }
487
+ },
488
+ // 拖拽事件
489
+ handleDragStart (e, item) {
490
+ this.dragging = item
491
+ },
492
+ handleDragEnd (e, item) {
493
+ if (this.ending.key === this.dragging.key) {
494
+ return
495
+ }
496
+ const newItems = [...this.form.column]
497
+ const src = newItems.indexOf(this.dragging)
498
+ const dst = newItems.indexOf(this.ending)
499
+ // newItems.splice(src, 1, ...newItems.splice(dst, 1, newItems[src])) 替换位置
500
+ // 挪移位置
501
+ newItems.splice(src, 1)
502
+ newItems.splice(dst, 0, this.dragging)
503
+ this.form.column = newItems
504
+ this.$nextTick(() => {
505
+ this.dragging = null
506
+ this.ending = null
507
+ })
508
+ },
509
+ handleDragOver (e) {
510
+ // 首先把div变成可以放置的元素,即重写dragenter/dragover
511
+ // e.dataTransfer.dropEffect="move";//在dragenter中针对放置目标来设置!
512
+ e.dataTransfer.dropEffect = 'move'
513
+ },
514
+ handleDragEnter (e, item) {
515
+ // 为需要移动的元素设置dragstart事件
516
+ e.dataTransfer.effectAllowed = 'move'
517
+ this.ending = item
478
518
  }
479
519
  }
480
520
  }