如果使用Vue要做根据已有的图形填入到指定的单元格中,你会怎么做?

这里写自定义目录标题

  • 如果使用Vue要做根据已有的图形填入到指定的单元格中,你会怎么做?
    • 先看效果图
      • 上代码

如果使用Vue要做根据已有的图形填入到指定的单元格中,你会怎么做?

先看效果图

在这里插入图片描述

上代码

<template><div class="all"><div class="layout top"><!-- 显示 --><draggablev-model="groups":forceFallback="true"animation="1000"group="A":sort="false"@start="onStart"@end="onEnd"><div v-for="item in groups" :key="item" :class="item" :id="item"></div></draggable></div><div class="layout bottom"><div class="empty" v-for="item in emptyGroups" :key="item.name"><!-- 显示 --><draggablev-model="emptyGroups"group="B"filter="#emptySquare,#emptyCircle,#emptyParallelogram":forceFallback="true"animation="1000"><divclass="emptyCenter":class="item.flag ? item.choose : ''":id="item.name"><span> {{ item.ch }}</span></div></draggable></div></div></div>
</template><script>
import draggable from "vuedraggable";
export default {components: {draggable: draggable,},data() {return {groups: ["parallelogram", "square", "circle"],emptyGroups: [{name: "emptySquare",flag: false,ch: "正方形",choose: "",},{name: "emptyCircle",flag: false,ch: "圆形",choose: "",},{name: "emptyParallelogram",flag: false,ch: "平行四边形",choose: "",},],};},methods: {changeName(name) {return name.substring(5, 6).toLowerCase() + name.substring(6);},onStart(val) {console.log("kaishi", val);},onEnd(val) {console.log("jieshu", val);let start = val.item.id;let end = val.originalEvent.target.outerHTML;console.log("起点:", start);console.log("终点:", end);let changeEnd = "";this.emptyGroups.forEach((item) => {if (end.indexOf(item.ch) > -1) {changeEnd = item.name;}});this.emptyGroups.forEach((item) => {if (changeEnd.indexOf(item.name) > -1) {item.flag = true;item.choose = start;}});},},
};
</script><style lang="scss">
.all {display: flex;flex-direction: column;justify-content: space-around;width: 1000px !important;height: 1000px !important;border: 1px solid pink;.top > div,.bottom > div {display: flex;justify-content: space-around;width: 100%;}.layout {display: flex;justify-content: space-around;// 正方形.square {width: 150px;height: 150px;background: #8dc5e3;}// 圆形.circle {width: 150px;height: 150px;background: #8dc5e3;-moz-border-radius: 50px;-webkit-border-radius: 50px;border-radius: 50px;}// 平行四边形.parallelogram {width: 130px;height: 130px;margin-left: 20px;-webkit-transform: skew(20deg);background: #8dc5e3;span{font-style: italic;}}.empty {width: 200px;height: 200px;border: 1px solid pink;display: flex;justify-content: center;align-items: center;.emptyCenter {display: flex;justify-content: center;align-items: center;}}}
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/178552.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代理IP怎么使用

使用代理IP的步骤如下&#xff1a; 获取代理IP地址&#xff1a;从代理IP服务商处获取代理IP地址。打开浏览器&#xff1a;打开浏览器&#xff0c;并进入代理设置页面。设置代理IP&#xff1a;在代理设置页面中&#xff0c;将代理IP地址和端口号填写到对应的文本框中&#xff0…

kubernetes集群编排——prometheus监控

部署prometheus 创建项目仓库并上传镜像 编写配置文件 [rootk8s2 values]# vim prometheus-values.yaml alertmanager:alertmanagerSpec:image:repository: prometheus/alertmanagertag: v0.24.0 grafana:enabled: trueimage:repository: grafana/grafanatag: 9.0.6service:typ…

Oneid方案

一、前文 用户画像的前提是标识出用户&#xff0c;存在以下场景&#xff1a;不同业务系统对同一个人的标识&#xff0c;匿名用户行为的行为归因&#xff1b;本文提供多种解决方案&#xff0c;提供大家思考。 二、方案矩阵 三、其他 相关连接&#xff1a; 如何通过图算法能力获…

Linux权限管理

目录 前言 1. Linux权限的概念 2. Linux权限管理 2.1 修改权限 拓展 2.2 修改拥有者 2.3 修改所属组 3. 文件类型 3.1 file指令 4. 权限掩码 umask指令 5.目录权限 6. 粘滞位 总结 前言 Linux作为一款开源操作系统&#xff0c;其权限管理机制是非常重要的一部分。熟练掌…

新一轮SocialFi浪潮来袭,Atem Network 再次打响注意力争夺战

火爆如潮的 Atem Network 再次从 CyberConnect 以及 Friend.tech 手中接过 SocialFi 赛道的热度大棒&#xff0c;同时这也表明&#xff0c;协议层仍将是 Web3 社交领域的主要叙事。 前不久&#xff0c;Web3社交协议Atem Network 在白皮书中披露了ATEM的代币经济模型&#xff0c…

基础课4——客服中心管理者面临的挑战

客服管理者在当今的数字化时代也面临着许多挑战。以下是一些主要的挑战&#xff1a; 同行业竞争加剧&#xff1a;客服行业面临着来自同行业的竞争压力。为了获得竞争优势&#xff0c;企业需要不断提高自身的产品和服务质量&#xff0c;同时还需要不断降低成本、提高效率。然而…

2023.11.15使用bootstrap做一个简洁的注册页面

2023.11.15使用bootstrap做一个简洁的注册页面 设置密码必须大于等于6位&#xff0c;并且包含大写字母、小写字母、特殊字符或者数字中的三种。 关注&#xff1a;type"button"和type"submit"之间的区别&#xff1a; type"button"用于普通按钮&…

Vue修饰符(Vue事件修饰符、Vue按键修饰符)

目录 前言 Vue事件修饰符 列举较常用的事件修饰符 .stop .prevent .capture .once Vue按键修饰符 四个特殊键 获取某个键的按键修饰符 前言 本文介绍Vue修饰符&#xff0c;包括Vue事件修饰符以及按键修饰符 Vue事件修饰符 列举较常用的事件修饰符 .stop: …

基于Genio 700 (MT8390)芯片的AR智能眼镜方案

AR眼镜是一种具有前所未有发展机遇的设备&#xff0c;无论是显示效果、体积还是功能都有明显的提升。AR技术因其智能、实时、三维、多重交互和开放世界的特点备受关注。 AR眼镜集成了AR技术、语音识别、智能控制等多项高科技功能&#xff0c;可以帮助用户实现更加便捷、高效、个…

【C++面向对象】11. 数据抽象*

文章目录 【 1. 访问标签强制抽象 】【 2. 设计策略 】 数据抽象 是指只向外界提供关键信息&#xff0c;并隐藏其后台的实现细节&#xff0c;即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程&#xff08;设计&#xff09;技术。数据抽象的好处&…

C# Socket通信从入门到精通(9)——如何设置本机Ip地址

前言&#xff1a; 我们开发好Socket通信程序以后&#xff0c;上机调试的时候&#xff0c;首先要做的就是先设置好电脑的IP&#xff0c;这样才能实现不同的电脑之间的通信&#xff0c;并且电脑1的ip地址和电脑2的Ip地址要同处于一个网段&#xff0c;比如电脑1的Ip地址为192.168…

【开发问题解决方法记录】01.dian

一些问题记录 新增角色失败&#xff1a;Error: Ajax 调用为Execute Server-Side Code返回了服务器错误ORA-01722: 无效数字。 【问题原因】&#xff1a;CREATE_BY(NUMBER类型)应该存入USER_ID(NUMBER类型)而非USER_NAME&#xff08;NVARCHAR2类型&#xff09; 【解决方法】将…