Vue中如何只传递一个人员Name同时把人员Id也传递过去

前言:

        根据项目需求,在修改功能中,要求展示一个人员的下拉框,但是又要把人员ID在点击提交时传递过去,一般这种情况有2种解决方法:一是 通过map遍历匹配;二是 在选中人员时将人员ID获取到,通过filter方法

 


大纲:


实例: 

重点代码:

        obj: {
          receiver:''
        },
        objOption: {
          column: [{
              label: 'XX号',
              prop: 'xxNo',
            }, {
              label: 'XX人',
              prop: 'xxman',
            }, {
              label: '报修内容',
              prop: 'content',
              disabled: true
            }, {
              label: '部门',
              prop: 'dept',
              formslot: true,
            }, {
              label: '接单人',
              prop: 'receiverId',
              type: 'select',
              props: {
                label: 'staffName',
                value: 'staffId'
              },
              dicData: [],
              rules: [{
                required: true,
                message: "请选择接单人",
                trigger: "blur"
              }],
            }
          ]
        },

     submit() {
        //map遍历匹配
        this.objOption.column[4].dicData.map(item=>{
          if(item.staffId == this.obj.receiverId){
            this.obj.receiver = item.staffName
          }
          console.log('数据:',this.obj.receiver)
        })
        let params = {
          orderIds: [this.obj.orderId],
          receiverId: this.obj.receiverId,
          receiver: this.obj.receiver,
        };
        console.log('派单params:',params)
        API.workOrder(params).then(res => {
          if (res.data.code === 0) {
            this.$message({
              type: 'success',
              message: res.data.data
            });
            this.onLoad();
          } else {
            this.$message({
              type: 'error',
              message: res.data.data
            });
            this.onLoad();
          }
        });
      },

dicData:[] 在Vue中通常表示一个空的字典数据数组,用于存储键值对(存储字典数据)

所谓字典数据,就是一些键值对的集合,例如:物品分类和分类名称的对应关系等。在开发过程中,我们经常需要使用这些字典数据进行数据展示、筛选和数据绑定等操作。而将字典数据保存在数组中,可以方便进行遍历、查询和修改。

this.objOption.column[4].dicData.map     获取到objOption中下标为4的数据信息进行map遍历匹配

if(item.staffId == this.obj.receiverId){ this.obj.receiver = item.staffName}

如果选中的接单人receiverId等等于staffId,那么就通过item.staffName 获取到接单人的姓名,同时也将接单人Id传递过去;

打印数据展示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue3,你可以通过以下方式同时传递多个参数: 1. 在路由配置定义参数: ``` const routes = [ { path: '/example', name: 'example', component: ExampleComponent, props: { foo: 'foo', bar: 'bar' } } ] ``` 2. 使用动态路由: ``` <router-link :to="{ name: 'example', params: { foo: 'foo', bar: 'bar' } }">Go to Example</router-link> ``` 3. 使用查询参数: ``` <router-link :to="{ name: 'example', query: { foo: 'foo', bar: 'bar' } }">Go to Example</router-link> ``` 无论哪种方式,你都可以在目标组件通过 `props` 或 `$route` 来获取传递的参数。例如: ``` export default { props: ['foo', 'bar'], mounted() { console.log(this.foo, this.bar); console.log(this.$route.params.foo, this.$route.params.bar); console.log(this.$route.query.foo, this.$route.query.bar); } } ``` ### 回答2: 在Vue3,我们可以通过使用路由传参的方式同时传递多个参数。下面是一个简单的示例。 首先,在定义路由时,我们需要设置路由的参数。可以在路由的配置对象使用`props`属性来设置参数。例如: ```javascript const routes = [ { path: '/details', name: 'details', component: DetailsComponent, props: true // 使用props来启用参数传递 } ] ``` 然后,在使用路由跳转时,我们可以通过在`$router.push`方法传递一个对象来传递多个参数。例如: ```javascript this.$router.push({ name: 'details', params: { id: 123, name: 'Product A', price: 9.99 } }) ``` 最后,在接收参数的组件,可以通过`props`属性来声明接收的参数,并直接在组件使用。例如: ```javascript export default { props: { id: { type: Number, required: true }, name: { type: String, required: true }, price: { type: Number, required: true } }, // ... } ``` 这样,我们就可以同时传递多个参数,并在目标组件接收并使用这些参数了。 ### 回答3: 在Vue3,可以使用路由的params参数和query参数来传递多个参数。 1. 使用params参数传递多个参数: ```javascript // 发送路由请求时传递多个参数 this.$router.push({ path: '/example', params: { param1: value1, param2: value2 } }); // 在目标路由组件接收参数 value1 = this.$route.params.param1; value2 = this.$route.params.param2; ``` 2. 使用query参数传递多个参数: ```javascript // 发送路由请求时传递多个参数 this.$router.push({ path: '/example', query: { param1: value1, param2: value2 } }); // 在目标路由组件接收参数 value1 = this.$route.query.param1; value2 = this.$route.query.param2; ``` 注意:params参数传递的参数会显示在URL,例如:`/example/param1/param2`。而query参数传递的参数会在URL之后添加`?`,例如:`/example?param1=value1&param2=value2`。根据具体需求来选择适合的传参方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值