当前位置: 首页 > news >正文

vue3的mars3d点击右键出现置顶、向下、向上等选项

效果图
在这里插入图片描述

下载插件 @imengyu/vue3-context-menu

npm i @imengyu/vue3-context-menu

在要使用的页面中引入一下代码

import "@imengyu/vue3-context-menu/lib/vue3-context-menu.css";
import ContextMenu from "@imengyu/vue3-context-menu";

如果是使用在的结构里:要使用template去定义数据
在这里插入图片描述
如果是列表
在这里插入图片描述

@contextmenu="onContextMenu($event)"

根据需要,如果只在特定行才能点击右键出现下拉框 需要在onContextMenu方法中做判断

import * as mapWork from "./map.js";
// 存储已经选择的图层-在每选中一个地图的时候都存储到selectLayers,
// 通过改变selectLayers中数据的index,来给图层赋值zIndex的值
let selectLayers = ref([]);
const onContextMenu = (e, node, data) => {
// 我这儿是如果没有连接的行 就不能显示if (!data.url) {return;}e.preventDefault();ContextMenu.showContextMenu({theme: "mac dark",x: e.x,y: e.y,items: [{label: "图层置为顶层",onClick: () => {let topLayer = selectLayers.value.splice(selectLayers.value.indexOf(data.id), 1);selectLayers.value.push(topLayer[0]);// mapWork是我定义的地图方法的总称mapWork.setLayerLocal(selectLayers.value);}},{label: "图层上移一层",onClick: () => {let index = selectLayers.value.indexOf(data.id);[selectLayers.value[index], selectLayers.value[index + 1]] = [selectLayers.value[index + 1], selectLayers.value[index]];mapWork.setLayerLocal(selectLayers.value);}},{label: "图层下移一层",onClick: () => {let index = selectLayers.value.indexOf(data.id);[selectLayers.value[index - 1], selectLayers.value[index]] = [selectLayers.value[index], selectLayers.value[index - 1]];mapWork.setLayerLocal(selectLayers.value);}},{label: "图层置为底层",onClick: () => {let topLayer = selectLayers.value.splice(selectLayers.value.indexOf(data.id), 1);selectLayers.value.unshift(topLayer[0]);mapWork.setLayerLocal(selectLayers.value);}}]});
};
// 改变图层位置   地图对应的方法 layerArr:Array<string>
export async function setLayerLocal(layerArr) {let zIndexNum = 0;for (let i = 0; i < layerArr.length; i++) {// layersArr获取对应的图层let layersArr = map.getLayers().filter(item => item.options.id.toString().indexOf(layerArr[i]) != -1);// 给对应的图层加上zIndex的值layersArr.forEach(item => {let ops = map.getLayerById(item.options.id).options;map.getLayerById(item.options.id).setOptions({...ops,zIndex: ++zIndexNum});});}
}
http://www.lryc.cn/news/330981.html

相关文章:

  • MySQL进阶-----SQL提示与覆盖索引
  • 机器学习模型之K近邻
  • 强化基础-Java-泛型基础
  • c++20协程详解(一)
  • go: go.mod file not found in current directory or any parent directory.如何解决?
  • Go-Gin全局错误处理中间件
  • 图神经网络实战(6)——使用PyTorch构建图神经网络
  • 【Flutter】windows环境配置
  • 毕马威:《智慧之眼:开启汽车感知新时代》
  • 每日三个JAVA经典面试题(三十四)
  • C# 学习第五弹——语句
  • 什么是Java中的JVM(Java虚拟机)?它如何工作?
  • OmniGraffle Pro for mac 出色的图形设计软件
  • 代码随想录阅读笔记-二叉树【合并二叉树】
  • Day35:学习尚上优选项目
  • c模板编程c/c++20240401
  • 【TI毫米波雷达】IWR6843AOP的官方文件资源名称BUG,选择xwr68xx还是xwr64xx,及需要注意的问题
  • 连接Redis不支持集群错误,ERR This instance has cluster support disabled,解决方案
  • 什么是json?json可以存放哪几种数据类型
  • 网络编程套接字应用分享【Linux C/C++ 】【UDP应用 | TCP应用 | TCP线程池小项目】
  • 有关数据开发项目中使用HIVE由于无法update和delete的场景下,如何解决数据增量的思路
  • 两数之和-考察哈希表的运用
  • 视觉检测系统,外观细节无可挑剔
  • C++中string容器的字符串操作
  • Java编程使用CGLIB动态代理介绍与实战演示
  • vue3 渲染一个后端返回的图片字段渲染、table表格内放置图片
  • iOS开发进阶(十三):脚手架创建iOS项目
  • 手机无线投屏到windows11电脑
  • linux 环境安装配置
  • Git常用语句