怎么通过字典,将后端返回的数据value渲染成对应的label?

怎么通过字典,将后端返回的数据value渲染成对应的label?

一个项目会用的很多,所以我直接用全局过滤器,代码可以直接复制用哦

1.首先直接po函数出来,这类数据处理的函数可放在一个专门的文件夹里

//根据字典的value显示label

//第一个参数是传进的label值,第二个参数是所需的字典

export const findByvalue = (value, dic) => {
    let result = '';
    if (validatenull(dic)) return value;
    if (typeof (value) == 'string' || typeof (value) == 'number' || typeof (value) == 'boolean') {
        let index = 0;
        index = findArray(dic, value);
        if (index != -1) {
            result = dic[index].label;
        } else {
            result = value;
        }
    } else if (value instanceof Array) {
        result = [];
        let index = 0;
        value.forEach(ele => {
            index = findArray(dic, ele);
            if (index != -1) {
                result.push(dic[index].label);
            } else {
                result.push(value);
            }
        });
        result = result.toString();
    }
    return result;
};

2.在main.js中注册全局过滤器

import { findByvalue } from '@/util/util'//先引入这个方法

Vue.filter("byValue", findByvalue);//再注册全局过滤器

3.写个字典

export const DIC = {
    // 维权状态
    rightsStatus: [{
        label: '等待维权',
        value: 0
    }, {
        label: '维权中',
        value: 1
    }, {
        label: '维权完成',
        value: 2
    }, {
        label: '维权确认',
        value: 3
    }, {
        label: '不可维权',
        value: 4
    }]
    }

4.把字典引进vue页面再注册,就可以在template上用了!

<template>
<div>
{{status|byValue(DIC.rightsStatus)}}
</div>
</template>

<script>
import { DIC } from "@/const/dic";
export default {
  data() {
    return {
      DIC: DIC,
      status:0
     		 }
    	  },
   methods:{
   //模仿后端数据
    getStatus(){
    	  this.status=2;
     }
   }
   }
</script>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将后端返回数据字典数据匹配并在a-descriptions-item组件显示,你可以按照以下步骤进行操作: 1. 首先,确保你已经引入了eleadminpro框架,并正确配置了后端接口以获取数据。 2. 定义一个包含字典数据的JavaScript对象。例如: ```javascript var dataDict = { item1: '描述1', item2: '描述2', item3: '描述3' }; ``` 3. 在获取到后端返回数据后,遍历数据并将其与字典数据进行匹配。例如,假设后端返回数据是一个包含item键的数组: ```javascript var backendData = [ { item: 'item1', value: '1' }, { item: 'item2', value: '2' }, { item: 'item3', value: '3' } ]; var matchedData = []; backendData.forEach(function(item) { var description = dataDict[item.item]; if (description) { matchedData.push({ item: item.item, description: description, value: item.value }); } }); ``` 这个代码段会遍历后端返回数据,根据每个对象的item键从字典数据获取对应的描述。如果找到匹配的描述,它会将item、description和value添加到matchedData数组。 4. 在a-descriptions-item组件使用v-for指令来循环渲染匹配的数据。例如: ```html <a-descriptions-item v-for="item in matchedData" :label="item.description" :content="item.value" :key="item.item"></a-descriptions-item> ``` 这个代码段会根据matchedData数组的每个对象循环渲染a-descriptions-item组件,其label属性对应描述,content属性对应,key属性对应item键。 这样,你就可以将后端返回数据字典数据进行匹配,并在a-descriptions-item组件显示匹配的结果。记得根据你的具体需求进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值