vue使用event.dataTransfer实现A容器数据拖拽复制到B容器方式
更新时间:2026年02月10日 14:16:05 作者:扶苏1002
这篇文章主要介绍了vue使用event.dataTransfer实现A容器数据拖拽复制到B容器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
A容器代码
- template
<div class="field-list">
<div
v-for="col in columns"
:key="col.columnName"
class="field-item"
draggable="true"
@dragstart="onDragStart($event, col, 'field')"
>
<i class="el-icon-document"></i>
<span class="field-name">{{ col.columnName }}</span>
<span class="field-comment">{{ col.columnComment }}</span>
</div>
</div>
- 方法
function onDragStart(event, item, type) {
event.dataTransfer.setData("type", type);
event.dataTransfer.setData("data", JSON.stringify(item));
}
B容器代码
<div class="condition-drop" @dragover.prevent @drop="onDropCondition">
<div
v-for="(cond, idx) in form.whereConfig.conditions"
:key="idx"
class="condition-row"
>
<el-tag>{{ cond.field }}</el-tag>
</div>
</div>
- 方法
function onDropCondition(event) {
const type = event.dataTransfer.getData("type");
if (type !== "field") return;
const data = JSON.parse(event.dataTransfer.getData("data"));
const exists = form.whereConfig.conditions.find((c) => c.field === data.columnName);
if (!exists) {
form.whereConfig.conditions.push({
field: data.columnName,
});
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
关于Vue中echarts响应式页面变化resize()的用法介绍
Vue项目中开发数据大屏,使用echarts图表根据不同尺寸的屏幕进行适配,resize()可以调用echarts中内置的resize函数进行自适应缩放,本文将给大家详细介绍resize()的用法,需要的朋友可以参考下2023-06-06
vuejs+element-ui+laravel5.4上传文件的示例代码
本篇文章主要介绍了vuejs+element-ui+laravel5.4上传文件的示例代码,具有一定的参考价值,有兴趣的可以了解一下2017-08-08


最新评论