Files
alert/src/pages/rules/ruleFormSchema/exposureAlert2.tsx
2026-04-24 20:30:52 +08:00

139 lines
3.8 KiB
TypeScript

import { genDigitComAttr } from '@/utils';
import { $t } from '@/utils/i18n';
import type { returnType, SchemaProps } from '../type';
export const exposureAlertSchema = ({
richFormat,
}: SchemaProps): returnType => {
return {
popFormTips: {
title: `📋 ${$t('form.rules.header')}`,
dependencies: ['param1', 'param2', 'param3', 'param4'],
content: ({ param1, param2, param3, param4 }) => {
const isArray = Array.isArray(param1);
const tmp = isArray ? param1 : param1?.split(',');
const assets = `${tmp?.slice(0, 3)?.join(',')}...`;
return richFormat?.('form.rules.header.content5_1', {
assets: param1 ? assets : $t('pages.rules.allAssets'),
upperThreshold: param2 || '---',
lowerThreshold: param4 || '---',
interval: param3 || 0,
});
},
},
leftForm: [
{
title: $t('pages.rules.ruleName'),
dataIndex: 'name',
width: '100%',
formItemProps: {
rules: [{ required: true, message: $t('form.required') }],
},
},
{
title: `${$t('pages.rule5_1.item2')} (USD)`,
dataIndex: 'param2',
valueType: 'digit',
width: '100%',
dependencies: ['param4'],
formItemProps: {
rules: [
{ required: true, message: $t('form.required') },
({ getFieldValue }) => ({
validator(_, value) {
const minValue = getFieldValue('param4');
if (
value !== undefined &&
minValue !== undefined &&
value < minValue
) {
return Promise.reject(
new Error($t('pages.rule5_1.validateError2')),
);
}
return Promise.resolve();
},
}),
],
},
fieldProps: {
...genDigitComAttr(),
},
},
{
title: `${$t('pages.rule5_1.item4')} (USD)`,
dataIndex: 'param4',
valueType: 'digit',
width: '100%',
dependencies: ['param2'],
formItemProps: {
rules: [
{ required: true, message: $t('form.required') },
({ getFieldValue }) => ({
validator(_, value) {
const maxValue = getFieldValue('param2');
if (
value !== undefined &&
maxValue !== undefined &&
value > maxValue
) {
return Promise.reject(
new Error($t('pages.rule5_1.validateError4')),
);
}
return Promise.resolve();
},
}),
],
},
fieldProps: {
...genDigitComAttr(),
min: -Number.MAX_SAFE_INTEGER,
},
},
{
title: `${$t('pages.rules.reportInterval')} (${$t('pages.rules.seconds')})`,
dataIndex: 'param3',
valueType: 'digit',
width: '100%',
formItemProps: {
rules: [{ required: true, message: $t('form.required') }],
},
fieldProps: {
...genDigitComAttr(0),
},
},
{
title: $t('pages.rule5_1.item5'),
dataIndex: 'param5',
width: '100%',
formItemProps: {
rules: [{ required: true, message: $t('form.required') }],
hidden: true,
},
},
{
title: '',
dataIndex: 'id',
formItemProps: {
hidden: true,
},
},
],
transformInitialValue(values) {
if (values.id) return values;
return {
...values,
param2: 10000000,
param4: -10000000,
param3: 10,
param5: 'USD',
};
},
tipsComponent: $t('form.rule5.tips'),
assetFormShow: true,
};
};