Selaa lähdekoodia

添加向上/向下移动

lrf 2 vuotta sitten
vanhempi
commit
261b3417ce
1 muutettua tiedostoa jossa 15 lisäystä ja 1 poistoa
  1. 15 1
      src/views/project/column.vue

+ 15 - 1
src/views/project/column.vue

@@ -65,6 +65,12 @@
             <el-col :span="8">
               <el-link :underline="false" size="mini" type="danger" @click="toDelete($index)">删除</el-link>
             </el-col>
+            <el-col :span="8" v-if="$index > 0">
+              <el-link :underline="false" size="mini" type="primary" @click="toMove('up', $index)"> 向上</el-link>
+            </el-col>
+            <el-col :span="8" v-if="$index < value.length - 1">
+              <el-link :underline="false" size="mini" type="primary" @click="toMove('down', $index)"> 向下</el-link>
+            </el-col>
           </el-row>
         </template>
       </el-table-column>
@@ -78,7 +84,6 @@ const _ = require('lodash');
 import { defineComponent } from 'vue';
 export default defineComponent({
   name: 'column',
-  components: {},
   props: {
     value: Array,
   },
@@ -113,6 +118,15 @@ export default defineComponent({
     toDelete(index) {
       this.value.splice(index, 1);
     },
+    toMove(type, index) {
+      const list = _.cloneDeep(this.value);
+      const source = _.cloneDeep(this.value[index]);
+      const targetIndex = type === 'up' ? index - 1 : index + 1;
+      const target = _.cloneDeep(this.value[targetIndex]);
+      list.splice(targetIndex, 1, source);
+      list.splice(index, 1, target);
+      this.$emit('update:value', list);
+    },
   },
 });
 </script>