139 lines
3.8 KiB
TypeScript
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,
|
|
};
|
|
};
|