对应数据转换(前端过滤转换)

背景说明:

从后端获取到一个文件,需要前端对拿到的json数据进行处理。
因为后端不可能把所有数据都详细说明传过来,而其他类似于需要改数据内容等,当数据量初具规模,前端拿到数据再修改是比后端修改方便很多的。
比如,文件权限,后台以“0” 和 “1”的形式标记,分别对应“权限文件”和“普通文件”;检索文件类型并标记,txt – “文本文件”,rar – “压缩文件” …等等。

此处例子(需求):

1.根据文件名后缀,区分文件类型
2.根据文件权限标注(0,1),标注文件权限

先上代码:

data(){ //data中先定义好对应替换的文本
        return{
            fileOption : [ //用于区分文件类型
                {label: "txt", name: "文本文件"},
                {label: "rar", name: "压缩文件"},	
                {label: "doc", name: "word文件"},
                {label: "pdf", name: "pdf文件"},      
                {label: "xls", name: "excel文件"},
                {label: "", name: "未知文件类型"},
            ],
            fileorder:[ //用于标注文件权限
                {label:"0",name:"权限文件"},
                {label:"1",name:"普通文件"}
            ],
        }
    },
methods: { //点击调用函数后开始处理数据
        showfile(){
            this.isshow=!this.isshow //显示,和数据处理没关系
            this.$axios.get('http://sbxbd.cpdd.vip/v1/upload/file') //从后端获取数据
            .then(res=>{
                console.log('查询:',res) //查看数据
                this.tableData=res.data.msg //取出有用的数据
                // console.log('this.tableData',this.tableData)
                this.tableData.map(item=>{  //item是tableData中的每一条元素
                    item.fileType=this.fileOption.find(v=>{  //将需要匹配替换的元素遍历查找
                        if(v.label==item.fileType){
                            return v.name  //返回的其实还是v,一个object对象
                        }
                    })
                    item.fileGrade=this.fileorder.find(v=>{
                        if(v.label==item.fileGrade){
                            return v.name
                        }
                    })
                    item.fileType=item.fileType ? item.fileType.name : ""  //赋正确的值
                    item.fileGrade=item.fileGrade ? item.fileGrade.name : ""

                })

            })
        },

}

思路说明

(能看懂代码就不用看这块了,代码更好懂)
1.从后端获取数据$axios.get()
2.查看后端返回的数据,确定需要修改的数据体,在data中定义转换的对应数据

{label: "txt", name: "文本文件"},

这种。
一一对应,稍后用label查询,对上了就把name返回过去(修改内容)
3.用map函数遍历查找,用find函数在已有的数据中查找对应,若匹配上,则把需要修改的值(name)返回。
这边其实就还是json格式的,简而言之,就是 查找匹配-- 返回确定。
4.这边插一句,我的数据显示是用prop传值的,所以修改后直接返回就行了

   <el-table-column
                prop="fileType"
                label="文件类型"
                width="80"
                align="center"
   >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值