element下拉框选择组件,单个选项传多个值

该段代码展示了在Vue.js中使用ElementUI库创建一个弹出对话框,包含动态选择部门、人员和角色的功能。表单数据绑定到`form`对象,并有相应的验证规则。当人员选择变化时,`pickRole2`方法更新人员名称和ID。提交按钮触发`sureDia`方法,而取消按钮调用`cancelDia`方法关闭弹框。
摘要由CSDN通过智能技术生成

弹框js:

<el-dialog

        :title="states ? '新增角色' : '修改角色'"

        :visible.sync="dialogFormVisible"

        width="600px"

      >

        <el-form :model="form" :rules="rules" ref="form">

          <el-form-item

            label="部门名称"

            :label-width="formLabelWidth"

            prop="department_id"

          >

            <el-select v-model="form.department_id" placeholder="请选择部门">

              <el-option

                v-for="item in options[0]"

                :key="item.id"

                :label="item.name"

                :value="item.id"

              >

              </el-option>

            </el-select>

          </el-form-item>

          <el-form-item

            label="人员名称"

            :label-width="formLabelWidth"

            prop="person_name"

          >

            <el-select

              @change="pickRole2"

              v-model="form.person_name"

              placeholder="请选择人员"

            >

              <el-option

                v-for="item in options[1]"

                :key="item.id"

                :label="item.name"

                :value="item"

              >

              </el-option>

            </el-select>

          </el-form-item>

          <el-form-item

            label="人员角色"

            :label-width="formLabelWidth"

            prop="person_role_id"

          >

            <el-select v-model="form.person_role_id" placeholder="请选择角色">

              <el-option

                v-for="item in options[2]"

                :key="item.id"

                :label="item.name"

                :value="item.id"

              >

              </el-option>

            </el-select>

          </el-form-item>

          <el-form-item

            label="备注"

            :label-width="formLabelWidth"

            prop="desc_msg"

          >

            <el-col :span="18">

              <el-input v-model="form.desc_msg" autocomplete="off"></el-input>

            </el-col>

          </el-form-item>

        </el-form>

        <div slot="footer" class="dialog-footer">

          <el-button type="primary" @click="sureDia('form')">提 交</el-button>

          <el-button @click="cancelDia('form')">取 消</el-button>

        </div>

      </el-dialog>

  data() {

    return {

        states:true,//控制新增/修改弹框

      form: {

        department_id: "",

        person_name: "",

        person_id: "",

        person_role_id: "",

        desc_msg: "",

      },

methods: {

    pickRole2(val) {

      this.form.person_name = val.name;

      this.form.person_id = val.id;

    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要使用 element Autocomplete 远程模糊检索服务器多个字段下拉框,可以参考以下步骤: 1. 在后端开发中,需要编写一个接口,该接口可以接收前端递的关键字,并在数据库中查询匹配的数据。查询的时候可以使用多个字段进行模糊匹配,例如使用 LIKE 或者正则表达式等方式。 2. 在前端开发中,需要使用 element Autocomplete 组件,并设置相关属性,例如:remote、filter-method、value-key、placeholder 等。其中,remote 属性需要设置为 true,表示使用远程的方式进行数据检索。filter-method 属性需要设置为一个函数,该函数用于过滤数据,根据关键字匹配数据。value-key 属性用于指定返回结果中每个对象的哪个属性作为显示在下拉框中的文本。placeholder 属性用于设置输入框的提示信息。 下面是一个示例代码,你可以根据需求进行修改: ```html <el-autocomplete v-model="value" :fetch-suggestions="querySearch" placeholder="请输入关键字" :value-key="'name'" ></el-autocomplete> ``` ```javascript export default { data() { return { value: '', options: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' }, ] }; }, methods: { querySearch(queryString, cb) { const results = queryString ? this.options.filter(this.createFilter(queryString)) : this.options; cb(results); }, createFilter(queryString) { return (item) => { const fields = ['name', 'age', 'gender']; return fields.some(field => { return item[field].toLowerCase().indexOf(queryString.toLowerCase()) > -1; }); }; } } }; ``` 在上面的代码中,querySearch 函数用于从 options 数组中过滤出与关键字匹配的数据,createFilter 函数用于创建过滤函数,该函数根据关键字匹配多个字段。value-key 属性设置为 name,表示下拉框中显示每个对象的 name 属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值