1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import { DataTypeStringEnum } from '@/consts';
- export const formatValue = (value: string, type: string, operator: string) => {
- let conditionValue: string = ''; //
- switch (type) {
- case DataTypeStringEnum.VarChar:
- conditionValue = `"${value}"`;
- 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':
- 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';
- 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;
- default:
- isLegal = false;
- break;
- }
- return isLegal;
- };
|