|
@@ -65,6 +65,12 @@
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-link :underline="false" size="mini" type="danger" @click="toDelete($index)">删除</el-link>
|
|
<el-link :underline="false" size="mini" type="danger" @click="toDelete($index)">删除</el-link>
|
|
</el-col>
|
|
</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>
|
|
</el-row>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -78,7 +84,6 @@ const _ = require('lodash');
|
|
import { defineComponent } from 'vue';
|
|
import { defineComponent } from 'vue';
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
name: 'column',
|
|
name: 'column',
|
|
- components: {},
|
|
|
|
props: {
|
|
props: {
|
|
value: Array,
|
|
value: Array,
|
|
},
|
|
},
|
|
@@ -113,6 +118,15 @@ export default defineComponent({
|
|
toDelete(index) {
|
|
toDelete(index) {
|
|
this.value.splice(index, 1);
|
|
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>
|
|
</script>
|