vue中使用el-dropdown方式

 更新时间:2022年08月15日 09:26:12   作者:吴小花的博客  
这篇文章主要介绍了vue中使用el-dropdown方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue 使用el-dropdown

点击【更多】弹出如下选项

使用el-dropdown

          <el-dropdown
            @command="
              (command) => {
                handleCommand(command, scope.$index, scope.row);
              }
            "
          >
            <el-link type="primary" :underline="false" style="margin-left: 10px"
              >更多</el-link
            >
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item command="f" v-if="scope.row.active_type == 1"
                ><i class="el-icon-download"></i>资料下载</el-dropdown-item
              >
              <el-dropdown-item command="a"
                ><i class="el-icon-document-copy"></i>复制</el-dropdown-item
              >
              <el-dropdown-item command="b" v-if="scope.row.is_top == 0"
                ><i class="el-icon-top"></i>置顶</el-dropdown-item
              >
              <el-dropdown-item command="c" v-if="scope.row.is_top >= 1"
                ><i class="el-icon-top"></i>取消置顶</el-dropdown-item
              >
              <el-dropdown-item command="d"
                ><i class="el-icon-edit"></i>重命名</el-dropdown-item
              >
              <el-dropdown-item
                command="e"
                v-if="scope.row.active_join_num == 0"
                ><i class="el-icon-delete"></i>删除</el-dropdown-item
              >
            </el-dropdown-menu>
          </el-dropdown>
   <!-- 弹出的重命名-->
    <el-dialog title="重命名" :visible.sync="renamePopUp" width="500px">
      <el-form :model="form" label-width="70px">
        <el-form-item label="新名称:">
          <el-input
            placeholder="请输入"
            v-model="form.active_name"
            class="d2-mr-15"
            clearable
          ></el-input>
        </el-form-item>
      </el-form>
      <!-- 编辑框中的确认取消按钮 -->
      <div slot="footer" class="dialog-footer">
        <el-button @click="checkClose" size="medium">取消</el-button>
        <el-button
          type="primary"
          @click="changeData"
          :loading="saveLoading"
          size="medium"
          >确定</el-button
        >
      </div>
    </el-dialog>
   /**
     * 更多
     */
    handleCommand(command, index, row) {
      console.log("command", command, row);
      //复制
      if (command == "a") {
        Ajax(
          {
            method: "put",
            url: "/active/copy",
            params: { active_id: row.active_id },
          },
          (res) => {
            this.saveLoading = false;
            if (res.status_code === 200) {
              this.$message({ message: "复制成功", type: "success" });
              // 复制成功回到第一页
              this.pageInfo.currentPage = 1;
              this.getData();
            }
          },
          (err) => {
            this.saveLoading = false;
          }
        );
      }
      //置顶
      if (command == "b") {
        this.handleTop(row, 1);
      }
      //取消置顶
      if (command == "c") {
        this.handleTop(row, 0);
      }
      // 重命名
      if (command == "d") {
        this.renamePopUp = true;
        this.form = row;
        this.editPostUrl = 3;
      }
      //删除
      if (command == "e") {
        this.handleDelete(index, row);
      }
      //资料下载
      if (command == "f") {
        window.open(row.url_arr[0]);
      }
    },
    /**
     * 置顶
     */
    handleTop(row, is_top) {
      this.loading = true;
      console.log(row.is_top);
      Ajax(
        {
          url: "/active/top", // 路径
          method: "put",
          params: { active_id: row.active_id, is_top: is_top },
        },
        (res) => {
          this.loading = false;
          if (res.status_code === 200) {
            this.$message({ message: "操作成功", type: "success" });
            this.getData();
          }
        },
        (err) => {
          this.loading = false;
        }
      );
    },
    /**
     * 删除
     */
    handleDelete(index, row) {
      this.$confirm("你是否确认删除这个活动?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "error",
      })
        .then(() => {
          this.loading = true;
          //删除
          Ajax(
            {
              method: "delete",
              url: "/active",
              params: { active_id: row.active_id },
            },
            (res) => {
              this.loading = false;
              if (res.status_code === 200) {
                this.$message({ message: "删除活动成功", type: "success" });
                this.getData();
              }
            },
            (err) => {
              this.loading = false;
            }
          );
        })
        .catch(() => {
          this.$message({ type: "info", message: "已取消删除" });
        });
    },

vue el-dropdown点击事件

vue el-dropdown点击事件有个神坑,@click不起效,要在后面加 @click.native才能生效

如下

        <el-dropdown-menu slot="dropdown">
                  <el-dropdown-item v-print="'#printTest'">打印</el-dropdown-item>
                  <el-dropdown-item @click.native="clickGeneratePicture">图片另存为</el-dropdown-item>
                  <el-dropdown-item @click.native="lookFrish">刷新</el-dropdown-item>
                </el-dropdown-menu>
```</el-dropdown>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • 一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)

    一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)

    这篇文章主要介绍了前后端分离及Vue.js入门,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vue3实现数字滚动特效实例详解

    vue3实现数字滚动特效实例详解

    这篇文章主要为大家介绍了vue3实现数字滚动特效实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • vue与iframe之间的交互方式(一看就会)

    vue与iframe之间的交互方式(一看就会)

    这篇文章主要介绍了vue与iframe之间的交互方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue路由相对路径跳转方式

    vue路由相对路径跳转方式

    这篇文章主要介绍了vue路由相对路径跳转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • vue观察模式浅析

    vue观察模式浅析

    这篇文章主要介绍了vue观察模式浅析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue2移动端使用vue-qrcode-reader实现扫一扫功能的步骤

    vue2移动端使用vue-qrcode-reader实现扫一扫功能的步骤

    最近在使用vue开发的h5移动端想要实现一个调用摄像头扫描二维码的功能,所以下面这篇文章主要给大家介绍了关于vue2移动端使用vue-qrcode-reader实现扫一扫功能的相关资料,需要的朋友可以参考下
    2023-06-06
  • Vue概念及常见命令介绍(1)

    Vue概念及常见命令介绍(1)

    这篇文章主要为大家详细介绍了Vue概念及常见命令,介绍了vue.js声明式渲染、双向绑定及常用指令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • electron-vue开发环境内存泄漏问题汇总

    electron-vue开发环境内存泄漏问题汇总

    这篇文章主要介绍了electron-vue开发环境内存泄漏问题汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 从vue-router看前端路由的两种实现

    从vue-router看前端路由的两种实现

    本文由浅入深观摩vue-router源码是如何通过hash与History interface两种方式实现前端路由,介绍了相关原理,并对比了两种方式的优缺点与注意事项。最后分析了如何实现可以直接从文件系统加载而不借助后端服务器的Vue单页应用。
    2021-05-05
  • vue axios封装httpjs,接口公用配置拦截操作

    vue axios封装httpjs,接口公用配置拦截操作

    这篇文章主要介绍了vue axios封装httpjs,接口公用配置拦截操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论