最近做的一個(gè)項(xiàng)目是基于 vue + AntDesign 的。由于項(xiàng)目要求,需要在 Table 組件的行內(nèi)點(diǎn)右鍵的時(shí)候彈出菜單。在線演示地址及最終效果圖如下:
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),瀘州企業(yè)網(wǎng)站建設(shè),瀘州品牌網(wǎng)站建設(shè),網(wǎng)站定制,瀘州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,瀘州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
在線演示地址>>
首先新建一個(gè)Table組件的實(shí)例:
... const columns = [ { title: "序號(hào)", dataIndex: "INDEX" }, { title: "主題大類", dataIndex: "THEME" }, { title: "中文名稱", dataIndex: "CN_NAME" }, { title: "英文名稱", dataIndex: "EN_NAME" } ]; ... data() { return { columns, tableData: [ { INDEX: 0, THEME: "基礎(chǔ)數(shù)據(jù)", CN_NAME: "地區(qū)", EN_NAME: "Area" }, { INDEX: 1, THEME: "個(gè)人信息", CN_NAME: "姓名", EN_NAME: "Name" } ] }; }
新建一個(gè)Menu菜單組件的實(shí)例及其樣式:
... data() { return { ... menuData: {}, menuVisible: false, menuStyle: { position: "absolute", top: "0", left: "0", border: "1px solid #eee" } }; } {{menuData.THEME}} {{menuData.CN_NAME}} {{menuData.EN_NAME}}
注意這里給Menu加樣式主要是為了實(shí)現(xiàn)點(diǎn)右鍵時(shí)Menu菜單出現(xiàn)在鼠標(biāo)位置,所以我用了position: "absolute"來(lái)定義。
下面就是最重要的,通過Table組件的customRow參數(shù)來(lái)設(shè)置鼠標(biāo)右鍵事件。首先添加Table組件的customRow參數(shù):
然后在data里添加customClick的右鍵方法,以及在methods里添加body的click方法。添加body的click方法是為了在出現(xiàn)右鍵菜單后,點(diǎn)擊左鍵時(shí)關(guān)閉菜單。
data() { return { ... customClick: record => ({ on: { contextmenu: e => { e.preventDefault(); this.menuData = record; this.menuVisible = true; this.menuStyle.top = e.clientY + "px"; this.menuStyle.left = e.clientX + "px"; document.body.addEventListener("click", this.bodyClick); } } }) }; }, methods: { bodyClick() { this.menuVisible = false; document.body.removeEventListener("click", this.bodyClick); } }
至此,Ant Design Vue中Table組件行內(nèi)右鍵菜單就實(shí)現(xiàn)了。完整代碼如下:
{{menuData.THEME}} {{menuData.CN_NAME}} {{menuData.EN_NAME}}
總結(jié)
以上所述是小編給大家介紹的Vue中Table組件行內(nèi)右鍵菜單實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!