当前位置: 首页 > article >正文

基于element UI el-dropdown打造表格操作列的“更多⌵”上下文关联菜单

 

<template>
  <div :class="$options.name">
    <el-table :data="tableData">
      <el-table-column type="index" label="序号" width="60" />

      <!-- 主要列 BEGIN---------------------------------------- -->

      <el-table-column label="姓名">
        <template slot-scope="scope">
          <span>{{ scope.row.name }}</span>
        </template>
      </el-table-column>

      <!-- 主要列 END---------------------------------------- -->

      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="primary"
            @click.stop="edit(scope.row)"
            @dblclick.native.stop
            >修改</el-button
          >
          <el-button
            size="mini"
            type="danger"
            @click.stop="del(scope.row)"
            @dblclick.native.stop
            >删除</el-button
          >
          <!-- 更多操作 -->
          <el-dropdown
            style="margin-left: 10px"
            :show-timeout="0"
            :placement="`bottom-end`"
            @command="(c) => dropdownItems.find((v) => v.label == c).clickEvent(c, scope)"
          >
            <span style="cursor: default">更多<i class="el-icon-arrow-down" /></span>
            <el-dropdown-menu
              slot="dropdown"
              style="
                transition: none;
                overflow-y: auto;
                max-height: 400px;
                margin-top: 5px;
              "
            >
              <el-dropdown-item
                v-for="(d, i) in dropdownItems"
                :command="d.label"
                :key="i"
                :divided="d.divided"
                v-if="typeof d.hide === 'function' ? !d.hide(d, scope) : !d.hide"
                :disabled="
                  typeof d.disabled === 'function' ? d.disabled(d, scope) : d.disabled
                "
                :type="d.type"
              >
                <i :class="d.icon" v-if="d.icon" />{{ d.label }}
              </el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>
<script>
export default {
  name: "moreDropdown",
  data() {
    return {
      dropdownItems: [
        {
          hide: true,
          label: "编辑",
          clickEvent: (c, scope) => {
            // this.edit(scope.row);
          },
        },
        {
          disabled: true,
          label: "重命名",
          icon: `el-icon-edit`,
          clickEvent: (c, scope) => {
            // this.edit_rename(scope.row);
          },
        },
        {
          label: "分享",
          icon: `el-icon-share`,
          clickEvent: (c, scope) => {
            console.log(c, scope.row);
            // this.share(scope.row);
          },
        },
        {
          label: "下载",
          type: "success",
          icon: `el-icon-download`,
          clickEvent: (c, scope) => {
            console.log(c, scope.row);
            // this.download(scope.row);
          },
        },
        {
          divided: true,
          label: "删除",
          icon: `el-icon-delete`,
          type: "danger",
          clickEvent: (c, scope) => {
            // this.del([scope.row]);
          },
        },
      ],

      tableData: [
        { name: "姓名1" },
        { name: "姓名2" },
        { name: "姓名3" },
        { name: "姓名4" },
        { name: "姓名5" },
      ],
    };
  },
};
</script>
<style lang="scss" scoped>
.moreDropDown {
  // 下拉选择菜单----------------------------------------
  .el-dropdown-menu__item {
    &[type="danger"] {
      color: #f56c6c;

      &:hover {
        color: #f56c6c;
        background-color: #f56c6c22;
      }
    }

    &[type="success"] {
      color: #67c23a;

      &:hover {
        color: #67c23a;
        background-color: #67c23a22;
      }
    }

    &[type="warning"] {
      color: #e6a23c;

      &:hover {
        color: #e6a23c;
        background-color: #e6a23c22;
      }
    }

    &[type="info"] {
      color: #909399;

      &:hover {
        color: #909399;
        background-color: #90939922;
      }
    }
  }
}
</style>

【sgs】自定义组件:简洁版搜索栏筛选框组件(点击筛选条件按钮才出现复杂的、可自定义的筛选组合条件;当页面宽度不足以显示所有操作按钮的时候,自动折叠为“更多操作⌵”上下文关联按钮)。_sorttype' => 'all-CSDN博客文章浏览阅读103次。【代码】【sgs】自定义组件:简洁版搜索栏筛选框组件(点击筛选条件按钮才出现复杂的、可自定义的筛选组合条件;当页面宽度不足以显示所有操作按钮的时候,自动折叠为“更多操作…”上下文关联按钮)。_sorttype' => 'allhttps://blog.csdn.net/qq_37860634/article/details/144657057


http://www.kler.cn/a/501717.html

相关文章:

  • 如何将 sqlserver 数据迁移到 mysql
  • LeetCode 热题 100 | 滑动窗口
  • Termora 一个开源的 SSH 跨平台客户端工具
  • 瑞芯微 RK 系列 RK3588 使用 ffmpeg-rockchip 实现 MPP 视频硬件编解码-代码版
  • LeetCode 3270.求出数字答案:每位分别计算 或 for循环
  • http和https有哪些不同
  • Transmon
  • linux网络 | http结尾、理解长连接短链接与cookie
  • 在 WSL 中使用 Jupyter Notebook 的 TensorBoard 启动问题与解决方法
  • GIN模型详解及代码复现
  • 【初体验】【学习】Web Component
  • 晶晨S905L3A/S905L3AB-ADB-ROOT-指示灯-安卓9-当贝桌4.0精简线刷固件包
  • 模拟ic入门——设计一个带隙基准Bandgap(二)性能参数和电路仿真
  • 为AI聊天工具添加一个知识系统 之30 概念整体运营平台:中间架构层的broker service的API模型
  • 0050.ssm+小程序高校订餐系统+论文
  • 计算机网络相关习题整理
  • 前端开发:form中的标签
  • PyCharm 的安装与使用(Window)
  • esp32 mqtt连接阿里云细节配置
  • 服务器的数据上传到阿里云的对象存储(OSS)数据桶
  • Python爬虫基础——selenium模块进阶(显示等待和隐式等待)
  • 深入浅出 OpenResty
  • 策略模式详解
  • Lambda离线实时分治架构深度解析与实战
  • 用于与多个数据库聊天的智能 SQL 代理问答和 RAG 系统(2) —— 从 PDF 文档生成矢量数据库 (VectorDB),然后存储文本的嵌入向量
  • CAPL如何设置TCP/IP传输层动态端口范围