重复校验 每次都会触发,输入快了,前端就不会显示“该值不可用”(加防抖逻辑)

pull/975/head
zhangdaiscott 2023-12-17 11:10:47 +08:00
parent 55a09678cd
commit 26ab89b700
6 changed files with 49 additions and 9 deletions

View File

@ -1,5 +1,5 @@
import { dateUtil } from '/@/utils/dateUtil'; import { dateUtil } from '/@/utils/dateUtil';
import { duplicateCheck } from '/@/views/system/user/user.api'; import { duplicateCheckDelay } from '/@/views/system/user/user.api';
export const rules = { export const rules = {
rule(type, required) { rule(type, required) {
@ -107,7 +107,7 @@ export const rules = {
return Promise.reject(`请输入${schema.label}`); return Promise.reject(`请输入${schema.label}`);
} }
return new Promise<void>((resolve, reject) => { return new Promise<void>((resolve, reject) => {
duplicateCheck({ duplicateCheckDelay({
tableName, tableName,
fieldName, fieldName,
fieldVal: value, fieldVal: value,

View File

@ -1,6 +1,6 @@
import { BasicColumn, FormSchema } from '/@/components/Table'; import { BasicColumn, FormSchema } from '/@/components/Table';
import { render } from '/@/utils/common/renderUtils'; import { render } from '/@/utils/common/renderUtils';
import { duplicateCheck } from '/@/views/system/user/user.api'; import { duplicateCheckDelay } from '/@/views/system/user/user.api';
import { validateCheckRule } from '/@/views/system/checkRule/check.rule.api'; import { validateCheckRule } from '/@/views/system/checkRule/check.rule.api';
import { array } from 'vue-types'; import { array } from 'vue-types';
@ -80,7 +80,7 @@ export const formSchema: FormSchema[] = [
fieldVal: value, fieldVal: value,
dataId: model.id, dataId: model.id,
}; };
duplicateCheck(params) duplicateCheckDelay(params)
.then((res) => { .then((res) => {
res.success ? resolve() : reject('规则编码已存在!'); res.success ? resolve() : reject('规则编码已存在!');
}) })

View File

@ -1,5 +1,5 @@
import { Ref } from 'vue'; import { Ref } from 'vue';
import { duplicateCheck } from '/@/views/system/user/user.api'; import { duplicateCheckDelay } from '/@/views/system/user/user.api';
import { BasicColumn, FormSchema } from '/@/components/Table'; import { BasicColumn, FormSchema } from '/@/components/Table';
import { DescItem } from '/@/components/Description'; import { DescItem } from '/@/components/Description';
import { findTree } from '/@/utils/common/compUtils'; import { findTree } from '/@/utils/common/compUtils';
@ -115,7 +115,7 @@ export const departRoleModalFormSchema: FormSchema[] = [
fieldVal: value, fieldVal: value,
dataId: model.id, dataId: model.id,
}; };
duplicateCheck(params) duplicateCheckDelay(params)
.then((res) => { .then((res) => {
res.success ? resolve() : reject(res.message || '校验失败'); res.success ? resolve() : reject(res.message || '校验失败');
}) })

View File

@ -1,5 +1,5 @@
import { BasicColumn, FormSchema } from '/@/components/Table'; import { BasicColumn, FormSchema } from '/@/components/Table';
import { duplicateCheck } from '/@/views/system/user/user.api'; import { duplicateCheckDelay } from '/@/views/system/user/user.api';
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
{ {
@ -80,7 +80,7 @@ export const formSchema: FormSchema[] = [
fieldVal: value, fieldVal: value,
dataId: model.id, dataId: model.id,
}; };
duplicateCheck(params) duplicateCheckDelay(params)
.then((res) => { .then((res) => {
res.success ? resolve() : reject('规则编码已存在!'); res.success ? resolve() : reject('规则编码已存在!');
}) })

View File

@ -82,7 +82,24 @@ export const saveOrUpdateRole = (params, isUpdate) => {
* *
* @param params * @param params
*/ */
export const isRoleExist = (params) => defHttp.get({ url: Api.isRoleExist, params }, { isTransformResponse: false }); // update-begin--author:liaozhiyang---date:20231215---for【QQYUN-7415】表单调用接口进行校验的添加防抖
let timer;
export const isRoleExist = (params) => {
return new Promise((resolve, rejected) => {
clearTimeout(timer);
timer = setTimeout(() => {
defHttp
.get({ url: Api.isRoleExist, params }, { isTransformResponse: false })
.then((res) => {
resolve(res);
})
.catch((error) => {
rejected(error);
});
}, 500);
});
};
// update-end--author:liaozhiyang---date:20231215---for【QQYUN-7415】表单调用接口进行校验的添加防抖
/** /**
* *
*/ */

View File

@ -96,6 +96,29 @@ export const saveOrUpdateUser = (params, isUpdate) => {
* @param params * @param params
*/ */
export const duplicateCheck = (params) => defHttp.get({ url: Api.duplicateCheck, params }, { isTransformResponse: false }); export const duplicateCheck = (params) => defHttp.get({ url: Api.duplicateCheck, params }, { isTransformResponse: false });
/**
* 20231215
* liaozhiyang
*
* @param params
*/
let timer;
export const duplicateCheckDelay = (params) => {
return new Promise((resove, rejected) => {
clearTimeout(timer);
timer = setTimeout(() => {
defHttp
.get({ url: Api.duplicateCheck, params }, { isTransformResponse: false })
.then((res: any) => {
resove(res as any);
})
.catch((error) => {
rejected(error);
});
}, 500);
});
};
/** /**
* *
* @param params * @param params