123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import { DataTypeStringEnum } from '@/consts';
- export const formatValue = (value: string, type: string, operator: string) => {
- let conditionValue: string = ''; //
- switch (type) {
- case DataTypeStringEnum.VarChar:
- switch (operator) {
- case 'in':
- case 'not in':
- conditionValue = `${value}`;
- break;
- default:
- conditionValue = `"${value}"`;
- break;
- }
- break;
- case DataTypeStringEnum.JSON:
- switch (operator) {
- case '<':
- case '>':
- case '==':
- case '>=':
- case '<=':
- conditionValue = value;
- break;
- case 'in':
- case 'not in':
- conditionValue = `[${value}]`;
- break;
- case 'JSON_CONTAINS':
- case 'ARRAY_CONTAINS':
- conditionValue = `${value}`;
- break;
- default:
- conditionValue = `"${value}"`;
- break;
- }
- break;
- default:
- conditionValue = value;
- }
- return conditionValue;
- };
- export const checkValue = (data: any): boolean => {
- let isLegal = false;
- const regInt = /^-?\d+$/;
- const regFloat = /^-?\d+\.\d+$/;
- const regIntInterval = /^\[-?\d+(,-?\d+)*\]$/;
- const regFloatInterval = /^\[-?\d+\.\d+(,-?\d+\.\d+)*\]$/;
- const isIn = data.operator === 'in' || data.operator === 'not in';
- switch (data.type) {
- case DataTypeStringEnum.Int8:
- case DataTypeStringEnum.Int16:
- case DataTypeStringEnum.Int32:
- case DataTypeStringEnum.Int64:
- // case DataTypeStringEnum:
- isLegal = isIn
- ? regIntInterval.test(data.value)
- : regInt.test(data.value);
- break;
- case DataTypeStringEnum.Float:
- case DataTypeStringEnum.Double:
- case DataTypeStringEnum.FloatVector:
- isLegal = isIn
- ? regFloatInterval.test(data.value)
- : regFloat.test(data.value);
- break;
- case DataTypeStringEnum.Bool:
- const legalValues = ['false', 'true'];
- isLegal = legalValues.includes(data.value);
- break;
- case DataTypeStringEnum.VarChar:
- isLegal = data.value !== '';
- break;
- case DataTypeStringEnum.JSON:
- let type = DataTypeStringEnum.VarChar;
- switch (data.operator) {
- case '>':
- case '<':
- case '>=':
- case '<=':
- type = DataTypeStringEnum.Int64;
- }
- isLegal = checkValue({
- value: data.value,
- type: type,
- operator: data.operator,
- });
- break;
- case DataTypeStringEnum.Array:
- isLegal = data.value !== '';
- break;
- default:
- isLegal = false;
- break;
- }
- return isLegal;
- };
|