/** * Copyright (c) OpenSpug Organization. https://github.com/openspug/spug * Copyright (c) * Released under the AGPL-3.0 License. */ import React, { useState, useEffect } from 'react'; import { observer } from 'mobx-react'; import { ExclamationCircleOutlined } from '@ant-design/icons'; import { Modal, Form, Input, Select, Button } from 'antd'; import TemplateSelector from '../exec/task/TemplateSelector'; import { LinkButton, ACEditor } from 'components'; import { http, cleanCommand, hasHostPermission } from 'libs'; import store from './store'; import hostStore from '../host/store'; const helpMap = { '1': '返回HTTP状态码200-399则判定为正常,其他为异常。', '4': '脚本执行退出状态码为 0 则判定为正常,其他为异常。' } export default observer(function () { const [loading, setLoading] = useState(false); const [showTmp, setShowTmp] = useState(false); useEffect(() => { const { type, addr } = store.record; if (type === '1' && addr) { store.record.sitePrefix = addr.startsWith('http://') ? 'http://' : 'https://'; store.record.domain = store.record.addr.replace(store.record.sitePrefix, '') } }, []) function handleTest() { setLoading(true) const { type, sitePrefix, domain } = store.record; if (type === '1') store.record.addr = sitePrefix + domain; http.post('/api/monitor/test/', store.record, { timeout: 120000 }) .then(res => { if (res.is_success) { Modal.success({ content: res.message }) } else { Modal.warning({ content: res.message }) } }) .finally(() => setLoading(false)) } function handleChangeType(v) { store.record.type = v; store.record.addr = undefined; store.record.extra = undefined; }; function handleAddGroup() { Modal.confirm({ icon: , title: '添加监控分组', content: (
store.record.group = e.target.value} />
), onOk: () => { if (store.record.group) { store.groups.push(store.record.group); } }, }) } const SiteBefore = ( ) function canNext() { const { type, addr, extra, domain, group } = store.record; if (type === '1') { return name && domain && group } else if (type === '5') { return name && addr && group } else { return name && addr && extra && group } } function toNext() { store.page += 1; const { type, sitePrefix, domain } = store.record; if (type === '1') store.record.addr = sitePrefix + domain; } function getStyle(t) { return t.includes(store.record.type) ? { display: 'flex' } : { display: 'none' } } const { name, desc, type, addr, extra, domain, group } = store.record; return (
store.record.name = e.target.value} placeholder="请输入监控名称" /> store.record.domain = e.target.value} /> store.record.addr = e.target.value} /> store.record.extra = e.target.value} /> store.record.extra = e.target.value} /> setShowTmp(true)}>从模板添加}> store.record.extra = cleanCommand(e)} /> store.record.desc = e.target.value} placeholder="请输入备注信息" /> {showTmp && store.record.extra += v} onCancel={() => setShowTmp(false)} />} ) })