当前位置:网站首页 > 去中心化金融(DeFi) > 正文

去除param参数中的 null 和 undefined,过滤后给后端进行传参

去除param参数中的 null 和 undefined,过滤后给后端进行传参

效果

在这里插入图片描述

1、封装方法

src/utils/transformDataNull.ts

/ * 去除数据中的 null 和 undefined * @param data */ import deepClone from '@/utils/clone'; export default (data: Object) => { 
    if (data instanceof FormData) { 
    return data; } const transformData = deepClone(data); if (typeof transformData === 'object' && transformData !== null) { 
    for (const [k, v] of Object.entries(transformData)) { 
    if (v === null || v === undefined) { 
    delete transformData[k]; } } } return transformData; }; 
2、axios请求拦截中进行配置

src/axios/index.ts

 import transformDataNull from '@/utils/transformDataNull'; / * 设置请求拦截器 * @param service */ function useRequestInterceptors(service: AxiosInstance) { 
    // 请求拦截器 service.interceptors.request.use( config => { 
    // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了 // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断 if ( !config.headers['Content-Type'] && !(config.data instanceof FormData) ) { 
    config.headers['Content-Type'] = 'application/json'; } if (getToken()) { 
    config.headers.token = getToken(); } // 转化参数:删除 null 和undefined_________________________________ config.params = transformDataNull(config.params); config.data = transformDataNull(config.data); // 全局loading showLoading(config); / 定时任务,15分钟没有掉接口,退出 */ return config; }, error => { 
    return Promise.reject(error); } ); return service; } 
3、页面使用

index.vue

// 定义方法 const funcList = { 
    //查看角色和菜单详情 getRoleMenuListByRoleId() { 
    const params = { 
    roleId: route.query.id, desc: state.auditForm.desc }; //方式一 主要看params传参对象新增参数和赋值的写法_____________ params['remindNo'] = fillFormData.remindNo; if(params.roleId===1){ 
    // 如果 通知频次为天时 截止推送时间默认为null 主要看赋值为null的情况 params['remindTimeEnd'] = null; } Amend_fill_warn(params).then(({ 
     code }) => { 
    if (code === 200) { 
    ElMessage.success('修改成功!'); state.dialogVisible = false; if(state.fillFormData.roleId==1){ 
    state.fillFormData.remindTimeEnd = null; } methods.inquire(); } state.saveBtnDisabled=false }); // 方式二 主要看-传参id的写法方式____________________ RoleMenu.getRoleMenuListByRoleId(route.query.id).then(res => { 
    data.tableData = res.data.roleMenuList; data.auditForm.roleName = res.data.roleName; data.auditForm.roleDesc = res.data.roleDesc; }); }, handleCan() { 
    funcList.goBack(); }, goBack() { 
    router.go(-1); } }; 
到此这篇去除param参数中的 null 和 undefined,过滤后给后端进行传参的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 【金融业务知识】银行通知存款业务2024-11-30 07:45:07
  • 安卓玩机工具推荐----MTK 高通芯片机型 免权限刷机 备份基带 去除锁类工具操作步骤解析2024-11-30 07:45:07
  • 经济危机与金融危机2024-11-30 07:45:07
  • 今年过去了多少天?(switch)2024-11-30 07:45:07
  • 常去的网站{不断更新}2024-11-30 07:45:07
  • nacos配置中心(Nacos配置中心使用)2024-11-30 07:45:07
  • 配置中心是什么(配置中心是什么部门)2024-11-30 07:45:07
  • 静脉药物配置中心在中药领域的重要性(静脉药物配置中心的工作流程)2024-11-30 07:45:07
  • 静脉药物配置中心出科小结(静脉药物配置中心个人述职报告)2024-11-30 07:45:07
  • 城厢区公共资源配置中心官网(城厢区公共资源配置中心官网首页)2024-11-30 07:45:07
  • 全屏图片