|
|
@@ -461,485 +461,499 @@ const Easy = (props, ref) => {
|
|
|
};
|
|
|
|
|
|
return (
|
|
|
- <Form
|
|
|
- className={styles.wrapper}
|
|
|
- name="basic"
|
|
|
- autoComplete="off"
|
|
|
- form={form}
|
|
|
- // requiredMark={false}
|
|
|
- labelAlign="left"
|
|
|
- colon={false}
|
|
|
- labelCol={{
|
|
|
- span: 6,
|
|
|
- }}
|
|
|
- onValuesChange={onValuesChange}
|
|
|
- wrapperCol={{
|
|
|
- span: 18,
|
|
|
- }}
|
|
|
- >
|
|
|
- <Form.Item label={TranslateText(["告警类型", "Mode"])} name={"sub_type"}>
|
|
|
- <Radio.Group disabled={alarmId !== -1}>
|
|
|
- <Radio value={14}>限值报警</Radio>
|
|
|
- <Radio value={13}>离散报警</Radio>
|
|
|
- </Radio.Group>
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
- label={TranslateText(["点位名称", "Point name"])}
|
|
|
- name="point_name"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: TranslateText(["请输入点位名称", "Please input"]),
|
|
|
- },
|
|
|
- ]}
|
|
|
- getValueFromEvent={(e) => e.value}
|
|
|
+ <div style={props.style}>
|
|
|
+ <Form
|
|
|
+ className={styles.wrapper}
|
|
|
+ name="basic"
|
|
|
+ autoComplete="off"
|
|
|
+ form={form}
|
|
|
+ // requiredMark={false}
|
|
|
+ labelAlign="left"
|
|
|
+ colon={false}
|
|
|
+ labelCol={{
|
|
|
+ span: 6,
|
|
|
+ }}
|
|
|
+ onValuesChange={onValuesChange}
|
|
|
+ wrapperCol={{
|
|
|
+ span: 18,
|
|
|
+ }}
|
|
|
>
|
|
|
- <Select
|
|
|
- showSearch
|
|
|
- disabled={alarmId !== -1 || props.readonly}
|
|
|
- filterOption={false}
|
|
|
- dropdownMatchSelectWidth={400}
|
|
|
- labelInValue={true}
|
|
|
- onChange={(e) => {
|
|
|
- onChange(e);
|
|
|
- }}
|
|
|
- onSearch={onSearch}
|
|
|
- placeholder={TranslateText(["请输入点位名称", "Please input"])}
|
|
|
- style={{ width: "320px" }}
|
|
|
+ <Form.Item
|
|
|
+ label={TranslateText(["告警类型", "Mode"])}
|
|
|
+ name={"sub_type"}
|
|
|
>
|
|
|
- {pointList.map((item, index) => {
|
|
|
- return (
|
|
|
- <Select.Option
|
|
|
- value={
|
|
|
- item.name +
|
|
|
- "<==>" +
|
|
|
- item.defer_unit +
|
|
|
- "<==>" +
|
|
|
- item.point_id +
|
|
|
- "<==>" +
|
|
|
- item.unit || ""
|
|
|
- }
|
|
|
- key={item.point_id}
|
|
|
- >
|
|
|
- {item.name}({item.point_id})(
|
|
|
- {item.defer_unit === 1 ? "秒级" : "分钟级"})
|
|
|
- </Select.Option>
|
|
|
- );
|
|
|
- })}
|
|
|
- </Select>
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <Form.Item
|
|
|
- label={TranslateText(["点位编号", "Point id"])}
|
|
|
- name="point_id"
|
|
|
- style={{ display: alarmId === -1 && !props.readonly ? "none" : "" }}
|
|
|
- >
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["请输入point_id", "Please input"])}
|
|
|
- disabled={alarmId !== -1 || props.readonly}
|
|
|
- style={{ width: "320px" }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
- label={TranslateText(["告警名称", "Alarm name"])}
|
|
|
- name="name"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: TranslateText(["请输入告警名称", "Please input"]),
|
|
|
- },
|
|
|
- ]}
|
|
|
- >
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["请输入告警名称", "Please input"])}
|
|
|
- style={{ width: "320px" }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- {subType === 13 && (
|
|
|
+ <Radio.Group disabled={alarmId !== -1}>
|
|
|
+ <Radio value={14}>限值报警</Radio>
|
|
|
+ <Radio value={13}>离散报警</Radio>
|
|
|
+ </Radio.Group>
|
|
|
+ </Form.Item>
|
|
|
<Form.Item
|
|
|
- label={TranslateText(["告警值", "Alarm value"])}
|
|
|
- name="alarm_value"
|
|
|
- required={true}
|
|
|
+ label={TranslateText(["点位名称", "Point name"])}
|
|
|
+ name="point_name"
|
|
|
rules={[
|
|
|
{
|
|
|
required: true,
|
|
|
- message: TranslateText(["请输入告警值", "Please input"]),
|
|
|
+ message: TranslateText(["请输入点位名称", "Please input"]),
|
|
|
},
|
|
|
- () => ({
|
|
|
- validator(rule, value) {
|
|
|
- let regPos =
|
|
|
- /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
- let regNeg =
|
|
|
- /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
- if (regPos.test(value) || regNeg.test(value)) {
|
|
|
- //if中是正则表达是,判断是否是6位数字
|
|
|
- return Promise.resolve();
|
|
|
- } else {
|
|
|
- if (!Boolean(value)) return Promise.resolve();
|
|
|
- return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
- }
|
|
|
- },
|
|
|
- }),
|
|
|
]}
|
|
|
+ getValueFromEvent={(e) => e.value}
|
|
|
>
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["请输入告警值", "Please input"])}
|
|
|
- style={{ width: "200px" }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- )}
|
|
|
-
|
|
|
- {subType === 14 && (
|
|
|
- <>
|
|
|
- <Form.Item label="阈值">
|
|
|
- <div>
|
|
|
- <Space size={8}>
|
|
|
- <div className={styles.itemContainer}>
|
|
|
- {ah && <div className={styles.label}>上限</div>}
|
|
|
- <Form.Item
|
|
|
- name="ah_value"
|
|
|
- key={ahEnable}
|
|
|
- noStyle
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: ahEnable,
|
|
|
- message: TranslateText(["请输入上限", "Please input"]),
|
|
|
- },
|
|
|
- () => ({
|
|
|
- validator(rule, value) {
|
|
|
- let regPos =
|
|
|
- /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
- let regNeg =
|
|
|
- /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
- if (regPos.test(value) || regNeg.test(value)) {
|
|
|
- //if中是正则表达是,判断是否是6位数字
|
|
|
- return Promise.resolve();
|
|
|
- } else {
|
|
|
- if (!Boolean(value)) return Promise.resolve();
|
|
|
- return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
- }
|
|
|
- },
|
|
|
- }),
|
|
|
- ]}
|
|
|
- >
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["上限", "Please input"])}
|
|
|
- style={{ width: "128px" }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <Form.Item name="ah_enable" valuePropName="checked" noStyle>
|
|
|
- <Checkbox size={"small"} />
|
|
|
- </Form.Item>
|
|
|
- <div className={styles.itemContainer}>
|
|
|
- {ahh && <div className={styles.label}>上上限</div>}
|
|
|
- <Form.Item
|
|
|
- name="ahh_value"
|
|
|
- key={ahhEnable}
|
|
|
- noStyle
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: ahhEnable,
|
|
|
- message: TranslateText([
|
|
|
- "请输入上上限",
|
|
|
- "Please input",
|
|
|
- ]),
|
|
|
- },
|
|
|
- () => ({
|
|
|
- validator(rule, value) {
|
|
|
- let regPos =
|
|
|
- /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
- let regNeg =
|
|
|
- /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
- if (regPos.test(value) || regNeg.test(value)) {
|
|
|
- //if中是正则表达是,判断是否是6位数字
|
|
|
- return Promise.resolve();
|
|
|
- } else {
|
|
|
- if (!Boolean(value)) return Promise.resolve();
|
|
|
- return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
- }
|
|
|
- },
|
|
|
- }),
|
|
|
- ]}
|
|
|
- >
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["上上限", "Please input"])}
|
|
|
- style={{ width: "128px", marginLeft: 8 }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <Form.Item
|
|
|
- label={""}
|
|
|
- name="ahh_enable"
|
|
|
- valuePropName="checked"
|
|
|
- noStyle
|
|
|
+ <Select
|
|
|
+ showSearch
|
|
|
+ disabled={alarmId !== -1 || props.readonly}
|
|
|
+ filterOption={false}
|
|
|
+ dropdownMatchSelectWidth={400}
|
|
|
+ labelInValue={true}
|
|
|
+ onChange={(e) => {
|
|
|
+ onChange(e);
|
|
|
+ }}
|
|
|
+ onSearch={onSearch}
|
|
|
+ placeholder={TranslateText(["请输入点位名称", "Please input"])}
|
|
|
+ style={{ width: "320px" }}
|
|
|
+ >
|
|
|
+ {pointList.map((item, index) => {
|
|
|
+ return (
|
|
|
+ <Select.Option
|
|
|
+ value={
|
|
|
+ item.name +
|
|
|
+ "<==>" +
|
|
|
+ item.defer_unit +
|
|
|
+ "<==>" +
|
|
|
+ item.point_id +
|
|
|
+ "<==>" +
|
|
|
+ item.unit || ""
|
|
|
+ }
|
|
|
+ key={item.point_id}
|
|
|
>
|
|
|
- <Checkbox size={"small"} />
|
|
|
- </Form.Item>
|
|
|
- </Space>
|
|
|
- </div>
|
|
|
- <div style={{ marginTop: 10 }}>
|
|
|
- <Space size={8}>
|
|
|
- <div className={styles.itemContainer}>
|
|
|
- {al && <div className={styles.label}>下限</div>}
|
|
|
- <Form.Item
|
|
|
- name="al_value"
|
|
|
- key={alEnable}
|
|
|
- noStyle
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: alEnable,
|
|
|
- message: TranslateText(["请输入下限", "Please input"]),
|
|
|
- },
|
|
|
- () => ({
|
|
|
- validator(rule, value) {
|
|
|
- let regPos =
|
|
|
- /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
- let regNeg =
|
|
|
- /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
- if (regPos.test(value) || regNeg.test(value)) {
|
|
|
- //if中是正则表达是,判断是否是6位数字
|
|
|
- return Promise.resolve();
|
|
|
- } else {
|
|
|
- if (!Boolean(value)) return Promise.resolve();
|
|
|
- return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
- }
|
|
|
- },
|
|
|
- }),
|
|
|
- ]}
|
|
|
- >
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["下限", "Please input"])}
|
|
|
- style={{ width: "128px" }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <Form.Item name="al_enable" valuePropName="checked" noStyle>
|
|
|
- <Checkbox size={"small"} />
|
|
|
- </Form.Item>
|
|
|
- <div className={styles.itemContainer}>
|
|
|
- {all && <div className={styles.label}>下下限</div>}
|
|
|
- <Form.Item
|
|
|
- name="all_value"
|
|
|
- key={allEnable}
|
|
|
- noStyle
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: allEnable,
|
|
|
- message: TranslateText([
|
|
|
- "请输入下下限",
|
|
|
- "Please input",
|
|
|
- ]),
|
|
|
- },
|
|
|
- () => ({
|
|
|
- validator(rule, value) {
|
|
|
- let regPos =
|
|
|
- /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
- let regNeg =
|
|
|
- /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
- if (regPos.test(value) || regNeg.test(value)) {
|
|
|
- //if中是正则表达是,判断是否是6位数字
|
|
|
- return Promise.resolve();
|
|
|
- } else {
|
|
|
- if (!Boolean(value)) return Promise.resolve();
|
|
|
- return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
- }
|
|
|
- },
|
|
|
- }),
|
|
|
- ]}
|
|
|
- >
|
|
|
- <Input
|
|
|
- placeholder={TranslateText(["下下限", "Please input"])}
|
|
|
- style={{ width: "128px", marginLeft: 8 }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
+ {item.name}({item.point_id})(
|
|
|
+ {item.defer_unit === 1 ? "秒级" : "分钟级"})
|
|
|
+ </Select.Option>
|
|
|
+ );
|
|
|
+ })}
|
|
|
+ </Select>
|
|
|
+ </Form.Item>
|
|
|
|
|
|
- <Form.Item name="all_enable" valuePropName="checked" noStyle>
|
|
|
- <Checkbox size={"small"} />
|
|
|
- </Form.Item>
|
|
|
- </Space>
|
|
|
- </div>
|
|
|
- </Form.Item>
|
|
|
- </>
|
|
|
- )}
|
|
|
- <Form.Item
|
|
|
- label={TranslateText(["告警级别", "Level"])}
|
|
|
- required={false}
|
|
|
- name="alarm_level"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: TranslateText(["请输入告警级别", "Please input"]),
|
|
|
- },
|
|
|
- ]}
|
|
|
- >
|
|
|
- <Select
|
|
|
- placeholder={TranslateText(["请选择", "Please choose"])}
|
|
|
- style={{ width: "200px" }}
|
|
|
+ <Form.Item
|
|
|
+ label={TranslateText(["点位编号", "Point id"])}
|
|
|
+ name="point_id"
|
|
|
+ // style={{ display: !props.readonly ? "none" : "" }}
|
|
|
>
|
|
|
- <Select.Option value={1}>
|
|
|
- {TranslateText(["低", "Low"])}
|
|
|
- </Select.Option>
|
|
|
- <Select.Option value={2}>
|
|
|
- {TranslateText(["中", "Medium"])}
|
|
|
- </Select.Option>
|
|
|
- <Select.Option value={3}>
|
|
|
- {TranslateText(["高", "High"])}
|
|
|
- </Select.Option>
|
|
|
- </Select>
|
|
|
- </Form.Item>
|
|
|
- <Form.Item label="告警开关" name="status">
|
|
|
- <Switch size={"small"} />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- {!showMore && (
|
|
|
+ <Input
|
|
|
+ placeholder={TranslateText(["请输入point_id", "Please input"])}
|
|
|
+ disabled
|
|
|
+ style={{ width: "320px" }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
<Form.Item
|
|
|
- label={
|
|
|
- <Button
|
|
|
- type="link"
|
|
|
- onClick={() => {
|
|
|
- setShowMore(true);
|
|
|
- }}
|
|
|
- >
|
|
|
- 更多
|
|
|
- <DownOutlined></DownOutlined>
|
|
|
- </Button>
|
|
|
- }
|
|
|
- ></Form.Item>
|
|
|
- )}
|
|
|
+ label={TranslateText(["告警名称", "Alarm name"])}
|
|
|
+ name="name"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: TranslateText(["请输入告警名称", "Please input"]),
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ placeholder={TranslateText(["请输入告警名称", "Please input"])}
|
|
|
+ style={{ width: "320px" }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
|
|
|
- {showMore && (
|
|
|
- <>
|
|
|
+ {subType === 13 && (
|
|
|
<Form.Item
|
|
|
- label={TranslateText(["单位", "Unit"])}
|
|
|
- name="unit"
|
|
|
+ label={TranslateText(["告警值", "Alarm value"])}
|
|
|
+ name="alarm_value"
|
|
|
+ required={true}
|
|
|
rules={[
|
|
|
{
|
|
|
- required: false,
|
|
|
- message: TranslateText(["请输入单位", "Please input"]),
|
|
|
+ required: true,
|
|
|
+ message: TranslateText(["请输入告警值", "Please input"]),
|
|
|
},
|
|
|
+ () => ({
|
|
|
+ validator(rule, value) {
|
|
|
+ let regPos =
|
|
|
+ /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
+ let regNeg =
|
|
|
+ /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
+ if (regPos.test(value) || regNeg.test(value)) {
|
|
|
+ //if中是正则表达是,判断是否是6位数字
|
|
|
+ return Promise.resolve();
|
|
|
+ } else {
|
|
|
+ if (!Boolean(value)) return Promise.resolve();
|
|
|
+ return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }),
|
|
|
]}
|
|
|
>
|
|
|
<Input
|
|
|
- placeholder={TranslateText(["请输入", "Please input"])}
|
|
|
+ placeholder={TranslateText(["请输入告警值", "Please input"])}
|
|
|
style={{ width: "200px" }}
|
|
|
/>
|
|
|
</Form.Item>
|
|
|
+ )}
|
|
|
+
|
|
|
+ {subType === 14 && (
|
|
|
+ <>
|
|
|
+ <Form.Item label="阈值">
|
|
|
+ <div>
|
|
|
+ <Space size={8}>
|
|
|
+ <div className={styles.itemContainer}>
|
|
|
+ {ah && <div className={styles.label}>上限</div>}
|
|
|
+ <Form.Item
|
|
|
+ name="ah_value"
|
|
|
+ key={ahEnable}
|
|
|
+ noStyle
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: ahEnable,
|
|
|
+ message: TranslateText([
|
|
|
+ "请输入上限",
|
|
|
+ "Please input",
|
|
|
+ ]),
|
|
|
+ },
|
|
|
+ () => ({
|
|
|
+ validator(rule, value) {
|
|
|
+ let regPos =
|
|
|
+ /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
+ let regNeg =
|
|
|
+ /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
+ if (regPos.test(value) || regNeg.test(value)) {
|
|
|
+ //if中是正则表达是,判断是否是6位数字
|
|
|
+ return Promise.resolve();
|
|
|
+ } else {
|
|
|
+ if (!Boolean(value)) return Promise.resolve();
|
|
|
+ return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }),
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ disabled={!ahEnable}
|
|
|
+ placeholder={TranslateText(["上限", "Please input"])}
|
|
|
+ style={{ width: "128px" }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+ </div>
|
|
|
+ <Form.Item name="ah_enable" valuePropName="checked" noStyle>
|
|
|
+ <Checkbox size={"small"} />
|
|
|
+ </Form.Item>
|
|
|
+ <div className={styles.itemContainer}>
|
|
|
+ {ahh && <div className={styles.label}>上上限</div>}
|
|
|
+ <Form.Item
|
|
|
+ name="ahh_value"
|
|
|
+ key={ahhEnable}
|
|
|
+ noStyle
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: ahhEnable,
|
|
|
+ message: TranslateText([
|
|
|
+ "请输入上上限",
|
|
|
+ "Please input",
|
|
|
+ ]),
|
|
|
+ },
|
|
|
+ () => ({
|
|
|
+ validator(rule, value) {
|
|
|
+ let regPos =
|
|
|
+ /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
+ let regNeg =
|
|
|
+ /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
+ if (regPos.test(value) || regNeg.test(value)) {
|
|
|
+ //if中是正则表达是,判断是否是6位数字
|
|
|
+ return Promise.resolve();
|
|
|
+ } else {
|
|
|
+ if (!Boolean(value)) return Promise.resolve();
|
|
|
+ return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }),
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ disabled={!ahhEnable}
|
|
|
+ placeholder={TranslateText(["上上限", "Please input"])}
|
|
|
+ style={{ width: "128px", marginLeft: 8 }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+ </div>
|
|
|
|
|
|
- <Form.Item
|
|
|
- label={TranslateText(["告警组", "Group"])}
|
|
|
- name={"group_id"}
|
|
|
+ <Form.Item
|
|
|
+ label={""}
|
|
|
+ name="ahh_enable"
|
|
|
+ valuePropName="checked"
|
|
|
+ noStyle
|
|
|
+ >
|
|
|
+ <Checkbox size={"small"} />
|
|
|
+ </Form.Item>
|
|
|
+ </Space>
|
|
|
+ </div>
|
|
|
+ <div style={{ marginTop: 10 }}>
|
|
|
+ <Space size={8}>
|
|
|
+ <div className={styles.itemContainer}>
|
|
|
+ {al && <div className={styles.label}>下限</div>}
|
|
|
+ <Form.Item
|
|
|
+ name="al_value"
|
|
|
+ key={alEnable}
|
|
|
+ noStyle
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: alEnable,
|
|
|
+ message: TranslateText([
|
|
|
+ "请输入下限",
|
|
|
+ "Please input",
|
|
|
+ ]),
|
|
|
+ },
|
|
|
+ () => ({
|
|
|
+ validator(rule, value) {
|
|
|
+ let regPos =
|
|
|
+ /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
+ let regNeg =
|
|
|
+ /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
+ if (regPos.test(value) || regNeg.test(value)) {
|
|
|
+ //if中是正则表达是,判断是否是6位数字
|
|
|
+ return Promise.resolve();
|
|
|
+ } else {
|
|
|
+ if (!Boolean(value)) return Promise.resolve();
|
|
|
+ return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }),
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ disabled={!alEnable}
|
|
|
+ placeholder={TranslateText(["下限", "Please input"])}
|
|
|
+ style={{ width: "128px" }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <Form.Item name="al_enable" valuePropName="checked" noStyle>
|
|
|
+ <Checkbox size={"small"} />
|
|
|
+ </Form.Item>
|
|
|
+ <div className={styles.itemContainer}>
|
|
|
+ {all && <div className={styles.label}>下下限</div>}
|
|
|
+ <Form.Item
|
|
|
+ name="all_value"
|
|
|
+ key={allEnable}
|
|
|
+ noStyle
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: allEnable,
|
|
|
+ message: TranslateText([
|
|
|
+ "请输入下下限",
|
|
|
+ "Please input",
|
|
|
+ ]),
|
|
|
+ },
|
|
|
+ () => ({
|
|
|
+ validator(rule, value) {
|
|
|
+ let regPos =
|
|
|
+ /^(([^0][0-9]+|0)\.([0-9])$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9])$)|^(([1-9]+)$)/;
|
|
|
+ let regNeg =
|
|
|
+ /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
|
|
|
+ if (regPos.test(value) || regNeg.test(value)) {
|
|
|
+ //if中是正则表达是,判断是否是6位数字
|
|
|
+ return Promise.resolve();
|
|
|
+ } else {
|
|
|
+ if (!Boolean(value)) return Promise.resolve();
|
|
|
+ return Promise.reject("只能输入整数、小数或负数"); //如果违反规则,就会给出提示
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }),
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ disabled={!allEnable}
|
|
|
+ placeholder={TranslateText(["下下限", "Please input"])}
|
|
|
+ style={{ width: "128px", marginLeft: 8 }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <Form.Item name="all_enable" valuePropName="checked" noStyle>
|
|
|
+ <Checkbox size={"small"} />
|
|
|
+ </Form.Item>
|
|
|
+ </Space>
|
|
|
+ </div>
|
|
|
+ </Form.Item>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
+ <Form.Item
|
|
|
+ label={TranslateText(["告警级别", "Level"])}
|
|
|
+ required={false}
|
|
|
+ name="alarm_level"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: TranslateText(["请输入告警级别", "Please input"]),
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Select
|
|
|
+ placeholder={TranslateText(["请选择", "Please choose"])}
|
|
|
+ style={{ width: "200px" }}
|
|
|
>
|
|
|
- <Select
|
|
|
- style={{ width: 200 }}
|
|
|
- options={[
|
|
|
- ...[
|
|
|
- {
|
|
|
- label: "未分组",
|
|
|
- value: 0,
|
|
|
- },
|
|
|
- ],
|
|
|
- ...(groupList?.map((item) => {
|
|
|
- return {
|
|
|
- label: item?.name,
|
|
|
- value: item?.id,
|
|
|
- };
|
|
|
- }) ?? []),
|
|
|
- ]}
|
|
|
- placeholder={TranslateText(["请选择", "Please choose"])}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
+ <Select.Option value={1}>
|
|
|
+ {TranslateText(["低", "Low"])}
|
|
|
+ </Select.Option>
|
|
|
+ <Select.Option value={2}>
|
|
|
+ {TranslateText(["中", "Medium"])}
|
|
|
+ </Select.Option>
|
|
|
+ <Select.Option value={3}>
|
|
|
+ {TranslateText(["高", "High"])}
|
|
|
+ </Select.Option>
|
|
|
+ </Select>
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item label="告警开关" name="status">
|
|
|
+ <Switch size={"small"} />
|
|
|
+ </Form.Item>
|
|
|
|
|
|
+ {!showMore && (
|
|
|
<Form.Item
|
|
|
- name={isDisabled ? "" : "defer_seconds"}
|
|
|
- disabled={isDisabled}
|
|
|
- required={true}
|
|
|
- label={TranslateText(["延时告警", "Delayed alarm"])}
|
|
|
- >
|
|
|
- <div>
|
|
|
- <div
|
|
|
- style={{
|
|
|
- display: "flex",
|
|
|
- gap: 8,
|
|
|
- alignItems: "center",
|
|
|
+ label={
|
|
|
+ <Button
|
|
|
+ type="link"
|
|
|
+ onClick={() => {
|
|
|
+ setShowMore(true);
|
|
|
}}
|
|
|
>
|
|
|
- <Checkbox
|
|
|
- checked={status === 1}
|
|
|
- disabled={isDisabled}
|
|
|
- onChange={(e) => {
|
|
|
- setStatus(e.target.checked ? 1 : 2);
|
|
|
- if (e.target.checked) {
|
|
|
- setDateTime(null);
|
|
|
- } else {
|
|
|
- setDateTime(0);
|
|
|
- }
|
|
|
- }}
|
|
|
- ></Checkbox>
|
|
|
- <span
|
|
|
- style={{
|
|
|
- color: "var(--dt-text-color1)",
|
|
|
- fontWeight: 400,
|
|
|
- fontSize: 14,
|
|
|
- }}
|
|
|
- >
|
|
|
- {TranslateText(["持续", "Alarm after"])}
|
|
|
- </span>
|
|
|
- <Input
|
|
|
- disabled={status !== 1 || isDisabled}
|
|
|
- value={dateTime}
|
|
|
- onChange={(e) => {
|
|
|
- console.log(e.target.value);
|
|
|
- setDateTime(e.target.value?.replace(/\D/g, ""));
|
|
|
- }}
|
|
|
- placeholder={TranslateText(["请输入", "Please input"])}
|
|
|
- style={{ width: 100 }}
|
|
|
- />
|
|
|
- <span
|
|
|
+ 更多
|
|
|
+ <DownOutlined></DownOutlined>
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ ></Form.Item>
|
|
|
+ )}
|
|
|
+
|
|
|
+ {showMore && (
|
|
|
+ <>
|
|
|
+ <Form.Item
|
|
|
+ label={TranslateText(["单位", "Unit"])}
|
|
|
+ name="unit"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: TranslateText(["请输入单位", "Please input"]),
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ placeholder={TranslateText(["请输入", "Please input"])}
|
|
|
+ style={{ width: "200px" }}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+
|
|
|
+ <Form.Item
|
|
|
+ label={TranslateText(["告警组", "Group"])}
|
|
|
+ name={"group_id"}
|
|
|
+ >
|
|
|
+ <Select
|
|
|
+ style={{ width: 200 }}
|
|
|
+ options={[
|
|
|
+ ...[
|
|
|
+ {
|
|
|
+ label: "未分组",
|
|
|
+ value: 0,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ ...(groupList?.map((item) => {
|
|
|
+ return {
|
|
|
+ label: item?.name,
|
|
|
+ value: item?.id,
|
|
|
+ };
|
|
|
+ }) ?? []),
|
|
|
+ ]}
|
|
|
+ placeholder={TranslateText(["请选择", "Please choose"])}
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+
|
|
|
+ <Form.Item
|
|
|
+ name={isDisabled ? "" : "defer_seconds"}
|
|
|
+ disabled={isDisabled}
|
|
|
+ label={TranslateText(["延时告警", "Delayed alarm"])}
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
style={{
|
|
|
- color: "var(--dt-text-color1)",
|
|
|
- fontWeight: 400,
|
|
|
- fontSize: 14,
|
|
|
+ display: "flex",
|
|
|
+ gap: 8,
|
|
|
+ alignItems: "center",
|
|
|
}}
|
|
|
>
|
|
|
- {deferUnit === 1
|
|
|
- ? TranslateText(["秒", "seconds"])
|
|
|
- : TranslateText(["分钟", "minutes"])}{" "}
|
|
|
- {TranslateText(["后报警", "of duration"])}
|
|
|
- </span>
|
|
|
+ <Checkbox
|
|
|
+ checked={status === 1}
|
|
|
+ disabled={isDisabled}
|
|
|
+ onChange={(e) => {
|
|
|
+ setStatus(e.target.checked ? 1 : 2);
|
|
|
+ if (e.target.checked) {
|
|
|
+ setDateTime(null);
|
|
|
+ } else {
|
|
|
+ setDateTime(0);
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ ></Checkbox>
|
|
|
+ <span
|
|
|
+ style={{
|
|
|
+ color: "var(--dt-text-color1)",
|
|
|
+ fontWeight: 400,
|
|
|
+ fontSize: 14,
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {TranslateText(["持续", "Alarm after"])}
|
|
|
+ </span>
|
|
|
+ <Input
|
|
|
+ disabled={status !== 1 || isDisabled}
|
|
|
+ value={dateTime}
|
|
|
+ onChange={(e) => {
|
|
|
+ console.log(e.target.value);
|
|
|
+ setDateTime(e.target.value?.replace(/\D/g, ""));
|
|
|
+ }}
|
|
|
+ placeholder={TranslateText(["请输入", "Please input"])}
|
|
|
+ style={{ width: 100 }}
|
|
|
+ />
|
|
|
+ <span
|
|
|
+ style={{
|
|
|
+ color: "var(--dt-text-color1)",
|
|
|
+ fontWeight: 400,
|
|
|
+ fontSize: 14,
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {deferUnit === 1
|
|
|
+ ? TranslateText(["秒", "seconds"])
|
|
|
+ : TranslateText(["分钟", "minutes"])}{" "}
|
|
|
+ {TranslateText(["后报警", "of duration"])}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ {dateTime !== null &&
|
|
|
+ ["", undefined, null].indexOf(dateTime) !== -1 &&
|
|
|
+ status === 1 &&
|
|
|
+ !isDisabled && (
|
|
|
+ <div style={{ color: "var(--dt-error-color1)" }}>
|
|
|
+ 请输入数字
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
- {dateTime !== null &&
|
|
|
- ["", undefined, null].indexOf(dateTime) !== -1 &&
|
|
|
- status === 1 &&
|
|
|
- !isDisabled && (
|
|
|
- <div style={{ color: "var(--dt-error-color1)" }}>
|
|
|
- 请输入数字
|
|
|
- </div>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- </Form.Item>
|
|
|
- </>
|
|
|
- )}
|
|
|
+ </Form.Item>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
|
|
|
- {showMore && (
|
|
|
- <Form.Item
|
|
|
- label={
|
|
|
- <Button
|
|
|
- type="link"
|
|
|
- onClick={() => {
|
|
|
- setShowMore(false);
|
|
|
- }}
|
|
|
- >
|
|
|
- 收起<UpOutlined></UpOutlined>
|
|
|
- </Button>
|
|
|
- }
|
|
|
- ></Form.Item>
|
|
|
- )}
|
|
|
- </Form>
|
|
|
+ {showMore && (
|
|
|
+ <Form.Item
|
|
|
+ label={
|
|
|
+ <Button
|
|
|
+ type="link"
|
|
|
+ onClick={() => {
|
|
|
+ setShowMore(false);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 收起<UpOutlined></UpOutlined>
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ ></Form.Item>
|
|
|
+ )}
|
|
|
+ </Form>
|
|
|
+ </div>
|
|
|
);
|
|
|
};
|
|
|
|