其他分享
首页 > 其他分享> > v-contextmenu table菜单点击

v-contextmenu table菜单点击

作者:互联网

接上一条使用v-contextmenu右键定义菜单的随笔(百度来的同学请看我的主页另外一篇安装v-contextmenu的博客,再看这个,老手请忽略),后面我发现这个插件在处理表格的时候还是需要点动点手脚的,这次还是用的官方API
table表格如下

<template>
  <div class="common-box">
    <el-table
      :data="data"
      style="width: 100%">
      <el-table-column
        prop="text"
        label="标题"
        width="width">
      </el-table-column>
      <el-table-column label="操作" width="100" align="center" header-align="center">
        <template slot-scope="rows">
          <!-- 赋值ID -->
          <div class="menu" v-contextmenu:contextmenu :pid="rows.row.id">
            <p style="cursor: pointer;">操作</p>
          </div>
        </template>
      </el-table-column>
    </el-table>
    <div class="v-contextmenu">
      <!-- 右键时触发写入ID事件 -->
      <v-contextmenu ref="contextmenu" @contextmenu="thisPid">
        <!-- 点击时触发相应的操作 -->
        <v-contextmenu-item @click="menu1">菜单1</v-contextmenu-item>
        <v-contextmenu-item>菜单2</v-contextmenu-item>
        <v-contextmenu-submenu title="菜单3">
          <v-contextmenu-item @click="menu(item)">菜单3-1</v-contextmenu-item>
        </v-contextmenu-submenu>
      </v-contextmenu>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      data: [
        {
          id: 1,
          text: '内容'
        }
      ],
      cid: null
    }
  },
  methods: {
    thisPid (vm) {
      // 绑定到data
      this.cid = vm.data.attrs.pid
      console.log(this.cid)
    },
    menu1 () {
      // 获取绑定的ID值
      console.log('要操作的ID:' + this.cid)
    }
  },
  mounted () {

  }
}
</script>

<style lang='less' scoped>
</style>

一个页面使用多个v-contextmenu的话,在v-contextmenu:contextmenu这里替换成自定义的值,例如v-contextmenu:test,然后在ref中使用test即可。

标签:菜单,cid,contextmenu,vm,table,data
来源: https://www.cnblogs.com/xfstu/p/16449153.html