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>

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

相关文章

  • 如何封装Vue Element的table表格组件

    如何封装Vue Element的table表格组件

    这篇文章主要介绍了如何封装Vue Element的table表格组件,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-02-02
  • Element Card 卡片的具体使用

    Element Card 卡片的具体使用

    这篇文章主要介绍了Element Card 卡片的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • vuex刷新页面丢失登录token信息的解决方案

    vuex刷新页面丢失登录token信息的解决方案

    本文主要介绍了vuex刷新页面丢失登录token信息的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Vant picker 多级联动操作

    Vant picker 多级联动操作

    这篇文章主要介绍了Vant picker 多级联动操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue 项目中的this.$get,this.$post等$的用法案例详解

    vue 项目中的this.$get,this.$post等$的用法案例详解

    vue.js的插件应该暴露一个install方法。这个方法的第一个参数是vue构造器,第二个参数是一个可选的选项对象,首页要安装axios,本文结合案例代码给大家详细讲解vue 中的this.$get,this.$post等$的用法,一起学习下吧
    2022-12-12
  • vue属性props默认类型的写法介绍

    vue属性props默认类型的写法介绍

    这篇文章主要介绍了vue属性props默认类型的写法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue实现移动端左右滑动效果的方法

    Vue实现移动端左右滑动效果的方法

    最近得到一个新需求,需要在Vue项目的移动端页面上加上左右滑动效果,经过一番折腾,最终决定四月vue-touch。下面小编把实现代码分享给大家,感兴趣的朋友一起看看吧
    2018-11-11
  • vue表单中遍历表单操作按钮的显示隐藏示例

    vue表单中遍历表单操作按钮的显示隐藏示例

    今天小编就为大家分享一篇vue表单中遍历表单操作按钮的显示隐藏示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Vue实现当前页面刷新的4种方法举例

    Vue实现当前页面刷新的4种方法举例

    我们在开发vue的页面的时候,有时候会遇到需要刷新当前页面功能,但是vue框架自带的router是不支持刷新当前页面功能,下面这篇文章主要给大家介绍了关于Vue实现当前页面刷新的4种方法,需要的朋友可以参考下
    2023-04-04
  • 关于Vue中axios的封装实例详解

    关于Vue中axios的封装实例详解

    这篇文章主要给大家介绍了关于Vue中axios的封装的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10

最新评论