fix: 重复提交时间2秒内
This commit is contained in:
@@ -21,3 +21,6 @@ export const RESULT_MSG_SERVER_ERROR = 'Server connection error!';
|
|||||||
|
|
||||||
/**响应-请求地址未找到 */
|
/**响应-请求地址未找到 */
|
||||||
export const RESULT_MSG_URL_NOTFOUND = 'Request address not found!';
|
export const RESULT_MSG_URL_NOTFOUND = 'Request address not found!';
|
||||||
|
|
||||||
|
/**响应-数据正在处理,请勿重复提交 */
|
||||||
|
export const RESULT_MSG_URL_RESUBMIT = 'Data is being processed, please do not resubmit!';
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import {
|
|||||||
RESULT_MSG_SUCCESS,
|
RESULT_MSG_SUCCESS,
|
||||||
RESULT_MSG_TIMEOUT,
|
RESULT_MSG_TIMEOUT,
|
||||||
RESULT_MSG_URL_NOTFOUND,
|
RESULT_MSG_URL_NOTFOUND,
|
||||||
|
RESULT_MSG_URL_RESUBMIT,
|
||||||
} from '@/constants/result-constants';
|
} from '@/constants/result-constants';
|
||||||
|
|
||||||
/**响应结果类型 */
|
/**响应结果类型 */
|
||||||
@@ -76,7 +77,7 @@ type OptionsType = {
|
|||||||
/**默认请求参数 */
|
/**默认请求参数 */
|
||||||
const FATCH_OPTIONS: OptionsType = {
|
const FATCH_OPTIONS: OptionsType = {
|
||||||
baseUrl: import.meta.env.VITE_API_BASE_URL,
|
baseUrl: import.meta.env.VITE_API_BASE_URL,
|
||||||
timeout: 30 * 1000,
|
timeout: 10 * 1000,
|
||||||
url: '',
|
url: '',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: {
|
headers: {
|
||||||
@@ -125,15 +126,18 @@ function beforeRequest(options: OptionsType): OptionsType | Promise<any> {
|
|||||||
const sessionObj: RepeatSubmitType = sessionGetJSON(CACHE_SESSION_FATCH);
|
const sessionObj: RepeatSubmitType = sessionGetJSON(CACHE_SESSION_FATCH);
|
||||||
if (sessionObj) {
|
if (sessionObj) {
|
||||||
const { url, data, time } = sessionObj;
|
const { url, data, time } = sessionObj;
|
||||||
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
|
const interval = 2000; // 间隔时间(ms),小于此时间视为重复提交
|
||||||
if (
|
if (
|
||||||
requestObj.url === url &&
|
requestObj.url === url &&
|
||||||
requestObj.data === data &&
|
requestObj.data === data &&
|
||||||
requestObj.time - time < interval
|
requestObj.time - time < interval
|
||||||
) {
|
) {
|
||||||
const message = '数据正在处理,请勿重复提交';
|
const message = RESULT_MSG_URL_RESUBMIT;
|
||||||
console.warn(`[${url}]: ${message}`);
|
console.warn(`[${url}]: ${message}`);
|
||||||
return Promise.reject(message);
|
return Promise.resolve({
|
||||||
|
code: RESULT_CODE_ERROR,
|
||||||
|
msg: message,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
sessionSetJSON(CACHE_SESSION_FATCH, requestObj);
|
sessionSetJSON(CACHE_SESSION_FATCH, requestObj);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user