Skip to content
On this page

ModelView 右键菜单

自定义修改:

返回值设置为[]可以隐藏右键菜单

vue
<template>
  <dft-model-view
    :get-context-menus="()=>[]"
  />
</template>
vue
<template>
  <dft-model-view
    :get-context-menus="getContextMenus"
    @context-menu-select="handleContextMenuSelect"
  />
</template>

<script setup>
/**
 * 获取右键菜单列表
 * @param defaultContextMenus 默认菜单列表
 * @param { node } 当前选中的node
 */
function getContextMenus(defaultContextMenus, { node }) {
  // 这里可以对默认菜单列表进行修改
  // 例如根据node的类型来添加不同的菜单项
  return [
    ...defaultContextMenus,
    { label: "默认菜单1", value: "default-1" },
    { label: "默认菜单2", value: "default-2" },
    { label: "默认菜单3", value: "default-3" },
  ];
}

/**
 * 处理选中右键菜单
 * @param type 自定义的菜单value值
 * @param node 当前选中的node
 */
function handleContextMenuSelect({ type, node }) {
  // 自定义处理
}
</script>
vue
<template>
  <dft-model-view
    :getContextMenus="menuList"
    @context-menu-selected="handleContextMenuSelect"
  ></dft-model-view>
</template>
<script>
export default {
  methods: {
    /**
     * 获取右键菜单列表
     * @param defaultContextMenus 默认菜单列表
     * @param { node } 当前选中的node
     */
    getContextMenus(defaultContextMenus, { node }) {
      // 这里可以对默认菜单列表进行修改
      // 例如根据node的类型来添加不同的菜单项
      return [
        ...defaultContextMenus,
        { label: "默认菜单1", value: "default-1" },
        { label: "默认菜单2", value: "default-2" },
        { label: "默认菜单3", value: "default-3" },
      ];
    },
    /**
     * 处理选中右键菜单
     * @param type 自定义的菜单value值
     * @param node 当前选中的node
     */
    handleContextMenuSelect({ type, node }) {
      // 自定义处理
    },
  },
};
</script>

使用内置事件

组件库内置了几种默认菜单项,当遇到内置菜单项的 value 时会自动处理,具体如下表格

value事件说明
dft-only-show-current仅显示当前节点
export-view导出视图
focus-to模型居中
dft-hide-current隐藏当前节点
dft-add-mark添加评论