zoukankan      html  css  js  c++  java
  • 数据字典的转换

    由于需求的易变性,我们会把一些状态或选项存储到数据库中。其中,中文与数字值的对应便形成了数据字典。

    获取数据字典列表的方法:

    //获取数据字典,参数为数据字典名,如:medicineType
    function getDataDictionary(groupCode,success){
        $.ajaxDirect("/queryAllByCode?groupCode="+groupCode, 'GET', {},
            function (data) {
                if(data.code===200){
                    data = data.data
                    success(data)
                }
            },
            function () {
                $.toast("获取数据字典失败", "text")
            }
        )
    }

    进入页面,获取数据字典存到前端缓存中。

    var DIC_DATA = {
        medicineType:{},
        garage:{}
    }
    getDicData()
    
    function getDicData() {
        //药品种类
        getDataDictionary("medicineType",function(data){
            for(var i = 0;i<data.length;i++){
                DIC_DATA.medicineType[data[i].itemCode] = data[i].itemName;
            }
            sessionStorage.DIC_DATA = pack(DIC_DATA);
        })
        //送货车场
        getDataDictionary("garage",function(data){
            for(var i = 0;i<data.length;i++){
                DIC_DATA.garage[data[i].itemCode] = data[i].itemName;
            }
            sessionStorage.DIC_DATA = pack(DIC_DATA);
        })
    }

    数据字典中key和value的双向转换代码如下:

    //数据字典label与value双向转换(支持逗号分隔的字符串作为入参)
    function getValueByLabel(groupCode,name) {
        var dicData = unpack(sessionStorage.DIC_DATA);
        if(name){
            name = name.toString().split(",")
            var str = "";
            for(var i = 0;i < name.length;i++){
                var object = dicData[groupCode];
                var key = name[i];
                if(findKey(object,name[i])){
                    str +=findKey(object,name[i]) + ",";
                }
                else{
                    str +=object[key] + ",";
                }
            }
            return str.substring(0,str.lastIndexOf(","));
        }
    }

    其中,findKey函数代码如下:

    //返回value值对应的key
    let findKey = (obj,value, compare = (a, b) => a === b) =>{
        return Object.keys(obj).find(k => compare(obj[k], value))
    }

    这是ES6+的语法,要点如下:

    1.函数传入三个参数,obj、value和compare,compare是一个函数,返回a===b的值。

    2.Object.keys(obj)是获取对象的所有key值,find函数即是在所有key值中找到其对应的value值等于value的数据,如有,则返回此key,若无,则返回false。

  • 相关阅读:
    移动端测试小技巧分享
    【转】GT 的性能测试方案解析
    【测试工具】Macaca 自动遍历器 NoSmoke
    接口自动化测试
    【学习资料】 持续集成---测试自动化学习
    pipeline-安全测试
    【转】Appium 优化版
    SpringBoot2(003):简要回顾“HelloWorld” web 工程
    idea创建同名的maven工程时报错:Failed to create a Maven project 'xxx/pom.xml' already exists in VFS
    Maven:Unable to import maven project: See logs for details
  • 原文地址:https://www.cnblogs.com/luoyihao/p/12220662.html
Copyright © 2011-2022 走看看