You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
7.0 KiB
TypeScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { putDeviceCategoryUpdateDeviceCategory } from '@/services/device/DeviceCategory';
import { postDeviceGroupGetDeviceGroupFkSelect } from '@/services/device/DeviceGroup';
import { postAlarmRules } from '@/services/alarm/AlarmRules';
import { ModalForm, ProForm, ProFormFieldSet, ProFormSelect, ProFormSwitch, ProFormText } from '@ant-design/pro-components';
import { FormattedMessage, useIntl } from '@umijs/max';
import { Form, message } from 'antd';
import React, { useState } from 'react';
import {
proFormSmallItemStyleProps,
proFormSmallModelWidth,
} from '../../../../../config/defaultForm';
import styles from './updateForm.less'
export type FormValueType = {
target?: string;
template?: string;
type?: string;
time?: string;
frequency?: string;
} & Partial<API.UpdateAlarmRulesForm>;
export type UpdateFormProps = {
updateModalOpen: boolean;
handleModal: () => void;
values: Partial<API.UpdateAlarmRulesForm>;
reload: any;
};
const UpdateForm: React.FC<UpdateFormProps> = (props) => {
const intl = useIntl();
const [form] = Form.useForm<API.UpdateAlarmRulesForm>();
return (
<ModalForm<any>
width={proFormSmallModelWidth}
title={intl.formatMessage({
id: 'alarm_rules.page.form.title',
defaultMessage: `编辑单人徘徊告警`,
})}
open={props.updateModalOpen}
form={form}
autoFocusFirstInput
modalProps={{
destroyOnClose: true,
onCancel: () => props.handleModal(),
okText: intl.formatMessage({ id: 'common.yes', defaultMessage: '确认' }),
cancelText: intl.formatMessage({ id: 'common.no', defaultMessage: '取消' }),
}}
submitTimeout={2000}
onFinish={async (values) => {
values.id = props.values.id
values.is_use = values.is_use ? 1 : 0
// console.log(values);
await postAlarmRules(values)
.then(() => {
message.success(intl.formatMessage({ id: 'common.success', defaultMessage: '成功' }));
props.reload();
})
.catch(() => {
message.error(intl.formatMessage({ id: 'common.failure', defaultMessage: '失败' }));
});
props.handleModal();
return true;
}}
>
<ProForm.Group>
<ProFormSwitch
width={proFormSmallItemStyleProps.column2Width}
name="is_use"
label={
<FormattedMessage
id="alarm_rules.page.form.isEnabled"
defaultMessage="启用告警"
/>
}
checkedChildren="启用"
unCheckedChildren="关闭"
initialValue={props.values.is_use}
disabled={false}
/>
<ProFormText
width={proFormSmallItemStyleProps.width}
name="warning_name"
label={<FormattedMessage id="alarm_rules.page.form.name" defaultMessage="告警名称" />}
placeholder={`${intl.formatMessage({
id: 'common.please_input',
defaultMessage: '请输入',
})}${intl.formatMessage({
id: 'alarm_rules.page.form.name',
defaultMessage: '告警名称',
})}`}
required={true}
initialValue={props.values.warning_name}
disabled={false}
rules={[
{
required: true,
message: (
<FormattedMessage
id="alarm_rules.page.rule.required.name"
defaultMessage="请填写告警名称"
/>
),
},
]}
/>
<div></div>
<div style={{
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'flex-start',
alignItems: 'baseline'
}}>
<span style={{ marginRight: 6 }}></span>
<ProFormText
width={100}
name="time_period"
// label={<FormattedMessage id="alarm_rules.page.form.triggerConditions" defaultMessage="$$$" />}
placeholder={`${intl.formatMessage({
id: 'common.please_input',
defaultMessage: '请输入',
})}${intl.formatMessage({
id: 'alarm_rules.page.form.triggerConditions',
defaultMessage: '触发条件',
})}`}
required={true}
initialValue={props.values.time_period}
disabled={false}
rules={[
{
required: true,
message: (
<FormattedMessage
id="alarm_rules.page.rule.required.time_interval"
defaultMessage="请填写时间"
/>
),
},
]}
/>
<span style={{ margin: '0 6px' }}></span>
<ProFormText
width={100}
name="time_interval"
// label={<FormattedMessage id="alarm_rules.page.form.triggerConditions" defaultMessage="$$$" />}
placeholder={`${intl.formatMessage({
id: 'common.please_input',
defaultMessage: '请输入',
})}${intl.formatMessage({
id: 'alarm_rules.page.form.triggerConditions',
defaultMessage: '触发条件',
})}`}
required={true}
initialValue={props.values.time_interval}
disabled={false}
rules={[
{
required: true,
message: (
<FormattedMessage
id="alarm_rules.page.rule.required.time_interval"
defaultMessage="请填写时间"
/>
),
},
]}
/>
<span style={{ marginRight: 6 }}></span>
<ProFormText
width={100}
name="appear_number"
// label={<FormattedMessage id="alarm_rules.page.form.triggerConditions" defaultMessage="$$$" />}
placeholder={`${intl.formatMessage({
id: 'common.please_input',
defaultMessage: '请输入',
})}${intl.formatMessage({
id: 'alarm_rules.page.form.triggerConditions',
defaultMessage: '触发条件',
})}`}
required={true}
initialValue={props.values.appear_number}
disabled={false}
rules={[
{
required: true,
message: (
<FormattedMessage
id="alarm_rules.page.rule.required.appear_number"
defaultMessage="请填写次数"
/>
),
},
]}
/>
<span style={{ marginLeft: 6 }}></span>
</div>
</ProForm.Group>
</ModalForm>
);
};
export default UpdateForm;