wujingjing
2024-09-29 9674db6afd3283fea116a0bb91a339fa096feee7
提示请求优化
已修改2个文件
18 ■■■■ 文件已修改
src/utils/request.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/util.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.ts
@@ -2,7 +2,7 @@
import axios from 'axios';
import { ElLoadingService, ElMessage } from 'element-plus';
import router from '../router';
import { debounce } from './util';
import { debounce, decodeFormData } from './util';
import { AUTH_URL, MAIN_URL, SECONDARY_URL } from '/@/constants';
import { Local, Session } from '/@/utils/storage';
import { Logger } from '../model/logger/Logger';
@@ -116,8 +116,9 @@
                        handleNoAuth();
                        throw '权限验证失败';
                    case ErrorCode.Exception:
                        const param = res.config.data ? `\n    请求参数:${JSON.stringify(decodeFormData(res.config.data))}\n` : '';
                        ElMessage.error('内部错误!');
                        Logger.error('响应失败', serveData?.json_msg && new Error(serveData?.json_msg));
                        Logger.error(`${res.config.url} 响应失败${param}`, serveData?.json_msg && new Error(serveData?.json_msg));
                        return res.data;
                }
                // 非 message error,且 handleFail 为 true
@@ -125,7 +126,8 @@
                if (handleFail && serveData?.err_code !== ErrorCode.Message) {
                    const errorText = serveData?.json_msg;
                    ElMessage.error(errorText);
                    Logger.error('响应失败', errorText && new Error(errorText));
                    const param = res.config.data ? `\n    请求参数:${JSON.stringify(decodeFormData(res.config.data))}\n` : '';
                    Logger.error(`${res.config.url} 响应失败${param}`, errorText && new Error(errorText));
                }
            }
            return res.data;
src/utils/util.ts
@@ -734,3 +734,13 @@
    document.body.removeChild(spanEle);
    return width;
}
export function decodeFormData(formDataString) {
    const params = new URLSearchParams(formDataString);
    const decodedData = {};
    for (const [key, value] of params) {
      decodedData[key] = decodeURIComponent(value);
    }
    return decodedData;
  }