feat: remove loading from model and use DvaModel instead of redundant types such as kAModelType (#47)
* feat: use DvaModel instead of redundant types such as kAModelType * feat: set the type for registerServer * feat: remove loading from model
This commit is contained in:
@@ -1,17 +1,24 @@
|
||||
const registerServer = (opt: any, request: any): any => {
|
||||
let server = {};
|
||||
import { RequestMethod } from 'umi-request';
|
||||
|
||||
type Service<T extends string> = Record<T, (params: any) => any>;
|
||||
|
||||
const registerServer = <T extends string>(
|
||||
opt: Record<T, { url: string; method: string }>,
|
||||
request: RequestMethod,
|
||||
) => {
|
||||
const server: Service<T> = {} as Service<T>;
|
||||
for (let key in opt) {
|
||||
server[key] = (params: any) => {
|
||||
server[key] = (params) => {
|
||||
if (opt[key].method === 'post' || opt[key].method === 'POST') {
|
||||
return request(opt[key].url, {
|
||||
method: opt[key].method,
|
||||
data: params
|
||||
data: params,
|
||||
});
|
||||
}
|
||||
|
||||
if (opt[key].method === 'get' || opt[key].method === 'GET') {
|
||||
return request.get(opt[key].url, {
|
||||
params
|
||||
params,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { message, notification } from 'antd';
|
||||
import { extend } from 'umi-request';
|
||||
import { RequestMethod, extend } from 'umi-request';
|
||||
|
||||
import { Authorization } from '@/constants/authorization';
|
||||
import api from '@/utils/api';
|
||||
@@ -9,7 +9,7 @@ const { login } = api;
|
||||
|
||||
const ABORT_REQUEST_ERR_MESSAGE = 'The user aborted a request.'; // 手动中断请求。errorHandler 抛出的error message
|
||||
|
||||
const retcodeMessage = {
|
||||
const RetcodeMessage = {
|
||||
200: '服务器成功返回请求的数据。',
|
||||
201: '新建或修改数据成功。',
|
||||
202: '一个请求已经进入后台排队(异步任务)。',
|
||||
@@ -26,7 +26,7 @@ const retcodeMessage = {
|
||||
503: '服务不可用,服务器暂时过载或维护。',
|
||||
504: '网关超时。',
|
||||
};
|
||||
type retcode =
|
||||
type ResultCode =
|
||||
| 200
|
||||
| 201
|
||||
| 202
|
||||
@@ -45,7 +45,7 @@ type retcode =
|
||||
/**
|
||||
* 异常处理程序
|
||||
*/
|
||||
interface responseType {
|
||||
interface ResponseType {
|
||||
retcode: number;
|
||||
data: any;
|
||||
retmsg: string;
|
||||
@@ -62,7 +62,7 @@ const errorHandler = (error: {
|
||||
} else {
|
||||
if (response && response.status) {
|
||||
const errorText =
|
||||
retcodeMessage[response.status as retcode] || response.statusText;
|
||||
RetcodeMessage[response.status as ResultCode] || response.statusText;
|
||||
const { status, url } = response;
|
||||
notification.error({
|
||||
message: `请求错误 ${status}: ${url}`,
|
||||
@@ -81,7 +81,7 @@ const errorHandler = (error: {
|
||||
/**
|
||||
* 配置request请求时的默认参数
|
||||
*/
|
||||
const request = extend({
|
||||
const request: RequestMethod = extend({
|
||||
errorHandler, // 默认错误处理
|
||||
timeout: 3000000,
|
||||
getResponse: true,
|
||||
@@ -108,7 +108,7 @@ request.interceptors.request.use((url: string, options: any) => {
|
||||
|
||||
request.interceptors.response.use(async (response: any, request) => {
|
||||
console.log(response, request);
|
||||
const data: responseType = await response.clone().json();
|
||||
const data: ResponseType = await response.clone().json();
|
||||
// response 拦截
|
||||
|
||||
if (data.retcode === 401 || data.retcode === 401) {
|
||||
|
||||
9
web/src/utils/stroreUtil.ts
Normal file
9
web/src/utils/stroreUtil.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
export const getOneNamespaceEffectsLoading = (
|
||||
namespace: string,
|
||||
effects: Record<string, boolean>,
|
||||
effectNames: Array<string>,
|
||||
) => {
|
||||
return effectNames.some(
|
||||
(effectName) => effects[`${namespace}/${effectName}`],
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user