最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中Table組件行內(nèi)右鍵菜單實現(xiàn)方法(基于 vue + AntDesign)

 更新時間:2019年11月21日 10:42:14   作者:崗伯伯  
這篇文章主要介紹了Vue中Table組件行內(nèi)右鍵菜單實現(xiàn)方法,該項目是基于 vue + AntDesign的,具體實例代碼給大家介紹的非常詳細 ,需要的朋友可以參考下

最近做的一個項目是基于 vue + AntDesign 的。由于項目要求,需要在 Table 組件的行內(nèi)點右鍵的時候彈出菜單。在線演示地址及最終效果圖如下:

在線演示地址>>

 

首先新建一個Table組件的實例:

<a-table
 :columns="columns"
 :rowKey="record => { return record.INDEX;}"
 :dataSource="tableData"
/>
...
 const columns = [
 {
  title: "序號",
  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: "個人信息", CN_NAME: "姓名", EN_NAME: "Name" }
   ]
  };
 }

新建一個Menu菜單組件的實例及其樣式:

<a-menu :style="menuStyle" v-if="menuVisible">
   <a-menu-item>{{menuData.THEME}}</a-menu-item>
   <a-menu-item>{{menuData.CN_NAME}}</a-menu-item>
   <a-menu-item>{{menuData.EN_NAME}}</a-menu-item>
  </a-menu>
...
 data() {
  return {
   ...
   menuData: {},
   menuVisible: false,
   menuStyle: {
    position: "absolute",
    top: "0",
    left: "0",
    border: "1px solid #eee"
   }
  };
 }

注意這里給Menu加樣式主要是為了實現(xiàn)點右鍵時Menu菜單出現(xiàn)在鼠標位置,所以我用了position: "absolute"來定義。

下面就是最重要的,通過Table組件的customRow參數(shù)來設(shè)置鼠標右鍵事件。首先添加Table組件的customRow參數(shù):

<a-table
   ...
   :customRow="customClick"
  />

然后在data里添加customClick的右鍵方法,以及在methods里添加body的click方法。添加body的click方法是為了在出現(xiàn)右鍵菜單后,點擊左鍵時關(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)右鍵菜單就實現(xiàn)了。完整代碼如下:

<template>
 <div>
  <a-table
   :columns="columns"
   :rowKey="record => { return record.INDEX;}"
   :dataSource="tableData"
   :customRow="customClick"
  />
  <a-menu :style="menuStyle" v-if="menuVisible">
   <a-menu-item>{{menuData.THEME}}</a-menu-item>
   <a-menu-item>{{menuData.CN_NAME}}</a-menu-item>
   <a-menu-item>{{menuData.EN_NAME}}</a-menu-item>
  </a-menu>
 </div>
</template>
<script>
const columns = [
 {
  title: "序號",
  dataIndex: "INDEX"
 },
 {
  title: "主題大類",
  dataIndex: "THEME"
 },
 {
  title: "中文名稱",
  dataIndex: "CN_NAME"
 },
 {
  title: "英文名稱",
  dataIndex: "EN_NAME"
 }
];
export default {
 data() {
  return {
   columns,
   tableData: [
    { INDEX: 0, THEME: "基礎(chǔ)數(shù)據(jù)", CN_NAME: "地區(qū)", EN_NAME: "Area" },
    { INDEX: 1, THEME: "個人信息", CN_NAME: "姓名", EN_NAME: "Name" }
   ],
   menuData: {},
   menuVisible: false,
   menuStyle: {
    position: "absolute",
    top: "0",
    left: "0",
    border: "1px solid #eee"
   },
   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);
  }
 }
};
</script>

總結(jié)

以上所述是小編給大家介紹的Vue中Table組件行內(nèi)右鍵菜單實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • VueCli3.0中集成MockApi的方法示例

    VueCli3.0中集成MockApi的方法示例

    這篇文章主要介紹了VueCli3.0中集成MockApi的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • ElementUI表單驗證validate和validateField的使用及區(qū)別

    ElementUI表單驗證validate和validateField的使用及區(qū)別

    Element-UI作為前端框架,最常使用到的就是表單驗證,下面這篇文章主要給大家介紹了關(guān)于ElementUI表單驗證validate和validateField的使用及區(qū)別,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • vue3.x 使用jsplumb實現(xiàn)拖拽連線

    vue3.x 使用jsplumb實現(xiàn)拖拽連線

    這篇文章主要為大家詳細介紹了vue3.x 使用jsplumb實現(xiàn)拖拽連線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue.js每天必學之方法與事件處理器

    Vue.js每天必學之方法與事件處理器

    Vue.js每天必學之方法與事件處理器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼

    vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼

    我們都知道監(jiān)聽器的作用是在每次響應(yīng)式狀態(tài)發(fā)生變化時觸發(fā),在組合式?API?中,我們可以使用?watch()函數(shù)和watchEffect()函數(shù),下面我們來看下vue3如何進行數(shù)據(jù)監(jiān)聽watch/watchEffect,感興趣的朋友一起看看吧
    2023-02-02
  • Vue中在setup下如何使用自定義指令

    Vue中在setup下如何使用自定義指令

    這篇文章主要介紹了Vue中在setup下如何使用自定義指令,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作

    Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作

    這篇文章主要介紹了Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue-ajax小封裝實例

    vue-ajax小封裝實例

    下面小編就為大家?guī)硪黄獀ue-ajax小封裝實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 關(guān)于vue項目proxyTable配置和部署服務(wù)器的問題

    關(guān)于vue項目proxyTable配置和部署服務(wù)器的問題

    這篇文章主要介紹了關(guān)于vue項目proxyTable配置和部署服務(wù)器的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue eslint簡要配置教程詳解

    vue eslint簡要配置教程詳解

    這篇文章主要介紹了vue eslint簡要配置,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07

最新評論

义马市| 鄄城县| 临泽县| 康定县| 南投市| 石林| 西城区| 新乡县| 嘉鱼县| 五华县| 常宁市| 临武县| 南康市| 搜索| 永年县| 大同市| 聂荣县| 新建县| 佛教| 普定县| 如东县| 保山市| 靖江市| 合阳县| 松江区| 织金县| 阜新| 苍梧县| 兴隆县| 溆浦县| 巴青县| 离岛区| 衢州市| 驻马店市| 凤庆县| 四平市| 平顶山市| 中方县| 雅安市| 昭觉县| 璧山县|