题目描述
需求:设置数据库表外键,几个表字段任意推拽,被拖得和被释放的背景变色
题目来源及自己的思路
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
<template>
<div class="set-waijian">
<div class="waijian">
<el-row :gutter="100">
<el-col :span="4" v-for="schema,index in tmpData">
<div class="waijian-box" >
<div class="waijian-tit">
<span>{{schema.name}}</span>
</div>
<div class="waijian-body">
<div>
<template v-if="schema.columns.length == 0">
<span>空</span>
</template>
<template >
<span ref="span" @click="setColor(item,i,index)" :accessKey="i" @dragstart="dragstart($event,schema,item,i,index)"
@drop="drop($event,schema,item,i,index)"
onselectstart="return false;"
@dragover.prevent
draggable="true" v-for="item,i in schema.columns" :class="{color:(index==indexPrevP && i==indexPrev)}">
{{item.name }}<br>
</span>
</template>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
</template>
dragstart(event,data,item,i,index) {
console.log(111)
console.log(event);
// console.log(data);
console.log(item);
this.indexPrevP = index
this.indexPrev = i
},
setColor(data,i,index) {
console.log(data,i,index);
this.indexPrevP = index
this.indexPrev = i
},
drop(event,data,item,i,index) {
console.log(event);
// console.log(data);
console.log(item);
this.indexPrevP = index
this.indexPrev = i
}
不用索引,用名字实现
<template>
<div class="set-waijian">
</div>
</template>
<script>
import Api from "@/libs/api";
import { mapState } from "vuex";
export default {
data () {
},
methods: {
},
created () {
}
}
</script>
<style lang='scss' scopd>
.set-waijian {
overflow: hidden;
.waijian {
}
}
.color {
background-color: pink;
}
</style>