vue3组件api调用参数映射关系实现

摘要

今天实现表格时,表格绑定的API入参为fCode,但是表单值需要取到code字段,因此需要为表格设定一个映射属性,处理这种映射。

实现

添加paramsMapping属性,储存需要映射的字段,未出现的字段不需要做映射。
API入参格式为:

let enterParams = [{
    param: 'code',
    paramName: '编码'
}, {
    param: 'code2',
    paramName: '编码2'
}];

因此处理逻辑为:

let paramsMapping = [{
    paramName: 'feeCode', // API入参名称
    formName: 'code', // 表单字段名,未填写按照paramName来取值
    defaultValue: '10000' // 默认值
}];

let enterParams = [{
        param: 'code',
        paramName: 'code'
    },
    {
        param: 'code2',
        paramName: 'code2'
    }
];

let formData = {
    code: '123',
    time: '2021-10-01'
};

let mappedData = {};

// 构建参数映射对象,便于查找
let paramMappingObj = {};
paramsMapping.forEach(mapping => {
    paramMappingObj[mapping.formName] = mapping;
});

enterParams.forEach(paramObj => {
    const mapping = paramMappingObj[paramObj.param];
    if (mapping) {
        const mappedParam = mapping.paramName;
        if (formData[paramObj.param]) {
            mappedData[mappedParam] = formData[paramObj.param];
        } else {
            mappedData[mappedParam] = mapping.defaultValue || '';
        }
    } else {
        // 如果没有映射关系,则直接拷贝参数
        mappedData[paramObj.param] = formData[paramObj.param] || '';
    }
});

console.log(mappedData);

输出结果为

 "映射后的数据:" Object { code: "123", code2: "" }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值