el-select接口返回结果应显示文本Name而不是数字Id解决方案

本人在编写页面跳转传递参数时,发现el-select界面显示id而不是我想要的Name。于是尝试了晚上几种方法后却无法解决,研究后发现是返回结果格式问题,便写下这篇避免读者踩坑。

问题

源代码

<el-form-item label="经手人" prop="userIds">
  <el-select
    class="form-item"
    v-model="form.userIds"
    placeholder="请选择">
    <el-option
        v-for="item in userOptions"
        :key="item.userId"
        :label="item.userName"
        :value="item.userId"
    ></el-option>
  </el-select>
</el-form-item>
form: {
        userIds: null
      },

getReceipt(Receipt).then(response => {
  this.form = response.data
})

经手人显示数字而不是名字
1

问题根因

我通过直接给this.form.userIds = 102,却能显示。
经过研究一下response.data的格式,发现response.data返回的是"102"格式,而不是102。
所以,我们要把"102"转为102,怎么转呢?JS的Number即可处理。

问题解决方案

getReceipt(Receipt).then(response => {
  this.form = response.data
  this.form.userIds = Number(response.data.userIds);
})

解决后

经手人正确显示名字
2

posted @ 2024-02-18 22:15  KrityCat  阅读(504)  评论(0)    收藏  举报  来源