Elementui的el-dropdown组件使用与案例

一、使用

  • trigger 属性用于设置下拉菜单的触发方式,可以是 click(点击触发)或 hover(悬停触发)。

  • command 属性用于在 el-dropdown-item 上设置命令值。当用户点击某个菜单项时,会触发 command 事件,并将 command 的值作为参数传递给事件处理函数。

  • 在组件的方法中,你可以定义一个名为 handleCommand 的函数来处理 command 事件。这个函数将接收一个参数(即被选中的菜单项的 command 值),并执行相应的操作。

  • 使用了 slot="dropdown" 属性来指定下拉菜单的内容应该插入到哪个插槽中。

    复制代码
    <template>  
      <div>  
        <el-dropdown @command="handleCommand(command)" trigger="click">  
          <span class="el-dropdown-link">  
            下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>  
          </span>  
          <el-dropdown-menu slot="dropdown">  
            <el-dropdown-item command="1">选项1</el-dropdown-item>  
            <el-dropdown-item command="2">选项2</el-dropdown-item>  
            <el-dropdown-item command="3" disabled>选项3(禁用)</el-dropdown-item>  
            <el-dropdown-item divided>选项4</el-dropdown-item>  
          </el-dropdown-menu>  
        </el-dropdown>  
      </div>  
    </template>  
      
    <script>  
    export default {  
      methods: {  
        handleCommand(command) {  
          this.$message('你选择了 ' + command); 
          //可在这里发送请求与后端交互...
        },  
      },  
    };  
    </script>  
      
    <style scoped>  
    /* 这里可以添加你的样式 */  
    </style>

    二、案例

  • 实现表格中下拉选框选择并改变数据。当在表格中使用原始下拉选框,是不美观的,我们就可以使用el-dropdown组件。部分代码如下:

界面:

复制代码
<el-table-column label="账号属性" prop="fundAccountAttribute">
  <template slot-scope="scope">
    <el-dropdown @command="openAccount2(scope.row, $event)">
      <div>
        <span v-if="scope.row.fundAccountAttribute == '0'">作案身份</span>
        <span v-else-if="scope.row.fundAccountAttribute == '1'">个人生活身份</span>
        <i class="el-icon-edit" id="icon"></i>
      </div>
      <el-dropdown-menu slot="dropdown">
      <el-dropdown-item command="0">作案身份</el-dropdown-item>
      <el-dropdown-item command="1">个人生活身份</el-dropdown-item>
      </el-dropdown-menu>
    </el-dropdown>
  </template>
</el-table-column>

js:

复制代码
openAccount2(row,command){
    console.log("修改资金信息属性",row);
    let data = {
        fundBank: row.fundBank, //归属机构
        fundAccountNumber: row.fundAccountNumber, //支付账号
        fundAccountType: row.fundAccountType, //账号类型
        fundAccountAttribute: command, //账号属性
        suspectId: row.suspectId,
        id:row.id
    };
    detailFund(data).then((res) => {
        console.log("修改资金信息属性", res);
        if (res.data.code == 0) {
          this.getFundInfo();
          this.$message({
            message: "修改属性成功",
            type: "success",
          });
        }
    });
},

//请求
    getFundInfo() {
      getFundInfo({ suspectId: this.row.id }).then((res) => {
        this.fundInfo = res.data.data;
        console.log("资金信息", res.data.data);
      });
    },
//.....
相关推荐
cypking6 分钟前
Vue 3 + Vite + Router + Pinia + Element Plus + Monorepo + qiankun 构建企业级中后台前端框架
前端·javascript·vue.js
雨雨雨雨雨别下啦1 小时前
【从0开始学前端】vue3简介、核心代码、生命周期
前端·vue.js·vue
simon_93491 小时前
受够了压缩和收费?我作为一个码农,手撸了一款无限容量、原图直出的瀑布流相册!
前端
e***87702 小时前
windows配置永久路由
android·前端·后端
Dorcas_FE2 小时前
【tips】动态el-form-item中校验的注意点
前端·javascript·vue.js
小小前端要继续努力2 小时前
前端新人怎么更快的融入工作
前端
四岁爱上了她3 小时前
input输入框焦点的获取和隐藏div,一个自定义的下拉选择
前端·javascript·vue.js
fouryears_234173 小时前
现代 Android 后台应用读取剪贴板最佳实践
android·前端·flutter·dart
boolean的主人3 小时前
mac电脑安装nvm
前端
用户1972959188913 小时前
WKWebView的重定向(objective_c)
前端·ios