vue2使用v-contextmenu右键菜单组件,小白教程

效果图展示:

1.下载安装:

npm install v-contextmenu --save-dev
npm install --save vue-runtime-helpers

2.在man.js中引入

import contentmenu from 'v-contextmenu'
import 'v-contextmenu/dist/index.css'

Vue.use(contentmenu)  // 全局挂载

3.右键菜单组件封装:

<!-- 右键菜单 -->
<template>
  <div>
    <v-contextmenu ref="contextmenu" class="rightClickMenu">
      <v-contextmenu-item @click="screenBtn">{{ fullscreen ? '退出全屏' : '全屏' }}</v-contextmenu-item>
      <v-contextmenu-submenu icon="el-icon-full-screen" title="剖面视图(z轴侧)">
        <v-contextmenu-item v-for="item in menuBar" :key="item.id" :auto-hide="false"><i class="fa fa-search" />
          <el-form ref="form" :model="form" label-width="80px">
            <el-checkbox-group v-model="form.type">
              <el-checkbox :label="item.name" name="type">{{ item.chineseName }}</el-checkbox>
            </el-checkbox-group>
          </el-form>
        </v-contextmenu-item>
      </v-contextmenu-submenu>
      <v-contextmenu-submenu title="仿真模型视角">
        <el-scrollbar ref="scroll" class="scrollbar-wrapper" wrap-style="overflow-x:hidden;">
          <v-contextmenu-item v-for="item in cameraOption" :key="item.value" :auto-hide="false"><i class="fa fa-search" />
            <el-form ref="form" :model="form" label-width="80px">
              <el-radio-group v-model="form.visualAngle" text-color="#333">
                <el-radio :label="item.value" @change="viewpointSwitching">{{ item.label }}</el-radio>
              </el-radio-group>
            </el-form>
          </v-contextmenu-item>
        </el-scrollbar>
      </v-contextmenu-submenu>
      <v-contextmenu-submenu title="数字仿真">
        <v-contextmenu-item v-for="item in digitalSimulation" :key="item.value" :auto-hide="false"><i class="fa fa-search" />
          <el-form ref="form" :model="form" label-width="80px">
            <el-checkbox-group v-model="form.dataSimulation" class="digitalSimulation">
              <el-checkbox :label="item.label" :checked="item.showAndHide">{{ item.label }}</el-checkbox>
            </el-checkbox-group>
          </el-form>
        </v-contextmenu-item>
      </v-contextmenu-submenu>
    </v-contextmenu>
    <div v-contextmenu:contextmenu>
      <slot />
    </div>
  </div>
</template>

样式自定义

<style lang="scss" scoped>
.scrollbar-wrapper {
  width: 160px;
  height: 300px;
}

.el-scrollbar {
  background-color: #ffffff;
  color: #333;
}

//  右键菜单
.rightClickMenu {
  width: 200px;
  padding: 15px;
  box-sizing: border-box;

  .v-contextmenu-item {
    border-bottom: 1px solid #bebdbd;
    margin-top: 10px;
  }

  .el-radio-group {
    height: 30px;

    .el-radio {
      color: #333;
    }

    /deep/ .el-radio__input.is-checked+.el-radio__label {
      color: #2E2E2E !important;
    }
  }

  .el-form-item__content {
    .el-checkbox-group {
      display: flex;
      margin-left: -70px;
      flex-wrap: wrap;

      .el-checkbox {
        width: 180px;
      }
    }
  }

  .digitalSimulation{
    display: flex;
      flex-wrap: wrap;

      .el-checkbox {
        width: 180px;
      }
  }
}
</style>

4.在其他组件使用

引入右键菜单组件

import RightClickMenu from '../../components/RightClickMenu/index.vue' // 右键菜单

使用插槽

<template>
  <RightClickMenu :value="modelInfoArr" @childEvent="parentMethod" @viewpointSwitching="changeCamera">
    <div id="indDiv">
     .....
    </div>
  </RightClickMenu>
</template>

注意右键组件是最高层级页面,封装使用需要用到插槽!
 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于在Vue 3中使用el-tree组件添加右键菜单,你可以按照以下步骤操作: 1. 首先,在Vue项目中安装并导入element-plus库,因为Vue 3不再支持使用element-ui。你可以使用以下命令安装element-plus: ``` npm install element-plus --save ``` 2. 在你的Vue组件中,导入el-tree组件ContextMenu组件: ```javascript import { ElTree, ElContextMenu } from 'element-plus'; import 'element-plus/lib/theme-chalk/index.css'; ``` 3. 在你的Vue组件中,添加el-tree组件ContextMenu组件到template中,并设置相关的属性和事件监听器: ```html <template> <div> <el-context-menu :context-menu="contextMenu"> <el-tree :data="treeData" @node-contextmenu="handleContextMenu"></el-tree> </el-context-menu> </div> </template> <script> export default { data() { return { treeData: [ // 树节点数据 ], contextMenu: [ // 右键菜单选项 ] }; }, methods: { handleContextMenu(node, event) { // 处理右键菜单点击事件 } } } </script> ``` 4. 在data中定义treeData用于展示树节点数据,contextMenu用于定义右键菜单选项。 5. 在handleContextMenu方法中,可以处理右键菜单点击事件。你可以根据需要执行相关操作。 请注意,上述代码中的treeData和contextMenu需要根据实际需求进行修改和填充。你可以根据element-plus文档中的el-tree和ContextMenu组件配置选项,来调整和自定义右键菜单的样式和功能。 希望以上信息能够帮助到你!如果你有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值