ElementUI是一款基於Vue.js 2.0的UI組件庫,它提供了豐富的UI組件,其中包括右鍵菜單組件。本文將從多個方面對ElementUI右鍵菜單進行詳細闡述。包括:elementui右鍵菜單欄拓展, elementui菜單導航, elementui tree右鍵菜單, elementui菜單權限, elementui單選選項卡, elementui動態菜單, elementui單選按鈕, elementui路由菜單, elementui表格右鍵菜單。
一、elementui右鍵菜單欄拓展
ElementUI右鍵菜單欄拓展組件為基本右鍵菜單,可以在頁面元素中添加右鍵菜單,例如在圖片上右鍵彈出保存圖片的選項。下面是一個簡單的示例:
<template> <div class="demo"> <p on-contextmenu="handleContextmenu">右鍵點擊我</p> <el-context-menu :model="menu" :ref="menuRef"> <el-menu-item>編輯</el-menu-item> <el-menu-item divided>刪除</el-menu-item> <el-menu-item divided disabled>停用</el-menu-item> </el-context-menu> </div> </template> <script> export default { data() { return { menu: [ { label: '編輯', command: () => { console.log('點擊了編輯') } }, { label: '刪除', command: () => { console.log('點擊了刪除') } }, { label: '停用', disabled: true } ], menuRef: 'menu' } }, methods: { handleContextmenu(e) { e.preventDefault() this.$refs.menu.show(e.clientX, e.clientY) } } } </script>
上述代碼中,使用了el-context-menu
組件,該組件被賦予了一個model
屬性,可以根據model屬性渲染菜單內容。同時,代碼還設置了command
,當點擊菜單項時會觸發該事件。
二、elementui菜單導航
ElementUI菜單導航組件可用於創建側邊欄導航菜單,可以實現菜單的展開和摺疊。下面是一個簡單的示例:
<template> <el-menu :default-active="activeIndex" mode="vertical" @select="handleSelect"> <el-submenu index="1"> <template slot="title"> <i class="el-icon-location"></i> <span>導航一</span> </template> <el-menu-item-group title="分組一"> <el-menu-item index="1-1">選項一</el-menu-item> <el-menu-item index="1-2">選項二</el-menu-item> </el-menu-item-group> <el-menu-item-group title="分組二"> <el-menu-item index="1-3">選項三</el-menu-item> </el-menu-item-group> <el-submenu index="1-4"> <template slot="title">選項四</template> <el-menu-item index="1-4-1">選項五</el-menu-item> <el-menu-item index="1-4-2">選項六</el-menu-item> </el-submenu> </el-submenu> <el-menu-item index="2"> <i class="el-icon-menu"></i> <span slot="title">導航二</span> </el-menu-item> <el-menu-item index="3"> <i class="el-icon-setting"></i> <span slot="title">導航三</span> </el-menu-item> </el-menu> </template> <script> export default { data() { return { activeIndex: '1-1' } }, methods: { handleSelect(index) { this.activeIndex = index } } } </script>
上述代碼中,使用了el-menu
以及相關的子組件el-menu-item
和el-submenu
。同時,也設置了default-active
屬性來指定默認選中的菜單項,以及@select
事件回調函數來處理菜單選項的選擇事件。
三、elementui tree右鍵菜單
Tree組件是ElementUI中展示樹狀結構的組件,而Tree右鍵菜單組件則可以為Tree組件添加右鍵菜單功能。下面是一個簡單的示例:
<template> <el-tree :data="data" :expand-on-click-node="false" @node-contextmenu="handleContextmenu"> <span class="custom-tree-node" slot-scope="{ node, data }">{{ node.label }} <el-context-menu :model="menu" :ref="menuRef"></el-context-menu> </el-tree> </template> <script> export default { data() { return { data: [{ label: '一級 1', children: [{ label: '二級 1-1', children: [{ label: '三級 1-1-1' }] }] }], menu: [ { label: '新增節點', command: () => { console.log('點擊了新增節點') } }, { label: '刪除節點', command: () => { console.log('點擊了刪除節點') } } ], menuRef: 'menu' } }, methods: { handleContextmenu(e, { node, data }) { e.preventDefault() this.$refs.menu.show(e.clientX, e.clientY) } } } </script>
上述代碼中,使用了el-tree
組件以及相關的子組件el-context-menu
。在el-tree
組件上方設置了自定義的右鍵菜單組件,並且在@node-contextmenu
事件回調函數中顯示了該菜單組件。此外,代碼中還設置了command
屬性,當點擊菜單項時觸發該事件。
四、elementui菜單權限
ElementUI菜單權限使得菜單可以動態地展現和隱藏,根據用戶的權限動態控制菜單顯示。下面是一個簡單的示例:
<template> <el-menu :default-active="activeIndex" mode="horizontal"> <el-menu-item index="home">首頁</el-menu-item> <el-submenu index="customer"> <template slot="title"> <i class="el-icon-menu" /> <span>客戶管理</span> </template> <el-menu-item index="customer_list">客戶列表</el-menu-item> <el-menu-item index="customer_add">新增客戶</el-menu-item> </el-submenu> <el-submenu index="product"> <template slot="title"> <i class="el-icon-menu" /> <span>產品管理</span> </template> <el-menu-item index="product_list">產品列表</el-menu-item> <el-menu-item index="product_add">新增產品</el-menu-item> </el-submenu> </el-menu> </template> <script> export default { data() { return { activeIndex: 'home', menus: ['home', 'customer', 'customer_list'] // 模擬用戶權限 } }, computed: { getMenuList() { return this.menus.map(menu => `/${menu}`) } }, watch: { getMenuList() { this.$nextTick(() => { this.$forceUpdate() }) } } } </script>
上述代碼中,定義了一個menus
數組來模擬用戶的菜單權限,當用戶沒有某個菜單的權限時,代碼會在getMenuList
計算屬性中排除該菜單的index
編號,從而動態地控制菜單的顯隱性。使用計算屬性的好處是,如果菜單權限發生改變,那麼與之相關的組件會重新渲染。
五、elementui單選選項卡
ElementUI單選選項卡組件可以實現多個選項卡之間的切換。下面是一個簡單的示例:
<template> <el-tabs v-model="activeIndex"> <el-tab-pane label="選項卡一">選項卡一的內容</el-tab-pane> <el-tab-pane label="選項卡二">選項卡二的內容</el-tab-pane> <el-tab-pane label="選項卡三">選項卡三的內容</el-tab-pane> </el-tabs> </template> <script> export default { data() { return { activeIndex: '選項卡一' } } } </script>
上述代碼中,使用了el-tabs
組件以及el-tab-pane
組件。在el-tabs
組件中設置了v-model
來綁定選中的選項卡的label
。
六、elementui動態菜單
ElementUI動態菜單可以根據數據動態生成菜單。下面是一個簡單的示例:
<template>
<div class="demo">
<div v-for="(item, index) in menus" :key="index">
<el-submenu :index="item.id">
<template slot="title">
<i class="el-icon-location"></i>{{ item.label }}
</template>
<el-menu-item-group v-for="(subItem, subIndex) in item.children" :key="subIndex" :title="subItem.label">
<el-menu-item v-for="(childItem, childIndex) in subItem.children" :key="childIndex" :index="childItem.id">
{{ childItem.label }}
</el-menu-item>
</el-menu-item-group>
</el-submenu>
</div>
</div>
</template><script>
export default {
data() {
return {
menus: [
{
id: '1',
label: '菜單一',
children: [
{
label: '分組一',
children: [
{ id: '1-1', label: '選項一' },原創文章,作者:RWEL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147877.html