Blame view

src/components/table/table-tr.vue 1.55 KB
e40c5352   Aresn   fixed #1195
1
  <template>
7e8e6ef8   forfire   add dragdrop for tr
2
3
      <tr :class="rowClasses(row._index)" :draggable="drag" v-on:dragstart="onDrag($event,row._index)" v-on:drop="onDrop($event,row._index)" v-on:dragover="allowDrop($event)" v-if="drag" ><slot></slot></tr>
      <tr :class="rowClasses(row._index)" v-else ><slot></slot></tr>
e40c5352   Aresn   fixed #1195
4
5
6
7
8
  </template>
  <script>
      export default {
          props: {
              row: Object,
7e8e6ef8   forfire   add dragdrop for tr
9
10
              prefixCls: String,
              drag:Boolean
e40c5352   Aresn   fixed #1195
11
12
13
14
15
16
17
          },
          computed: {
              objData () {
                  return this.$parent.objData;
              }
          },
          methods: {
7e8e6ef8   forfire   add dragdrop for tr
18
19
20
21
22
23
24
25
26
27
28
29
               onDrag(e,index){
                  e.dataTransfer.setData("index",index);
              },
              onDrop(e,index){
                  var dragIndex = e.dataTransfer.getData("index");
                  this.$parent.$parent.dragAndDrop(dragIndex,index);
                  e.preventDefault();
              },
              allowDrop(e)
              {
                  e.preventDefault();
              },
e40c5352   Aresn   fixed #1195
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
              rowClasses (_index) {
                  return [
                      `${this.prefixCls}-row`,
                      this.rowClsName(_index),
                      {
                          [`${this.prefixCls}-row-highlight`]: this.objData[_index] && this.objData[_index]._isHighlight,
                          [`${this.prefixCls}-row-hover`]: this.objData[_index] && this.objData[_index]._isHover
                      }
                  ];
              },
              rowClsName (_index) {
                  return this.$parent.$parent.rowClassName(this.objData[_index], _index);
              },
          }
      };
  </script>