import React, { useState, useEffect,useRef } from "react"; import { connect } from "react-redux"; import moment from 'moment'; import { Form, Tooltip, Select, Checkbox, Modal, Input, Button, Switch, DatePicker, Row } from "@douyinfe/semi-ui"; import {IconLineChartStroked} from "@douyinfe/semi-icons" import { TimeAbnValueLineChart } from '../components/TimeAbnValueLineChart'; import PropTypes from 'prop-types'; const TrendModal = (props) => { const { modalData,dispatch,actions,sensorId, closeModal, visible,project } = props const{install}=actions const [currStartTime, setCurrStartTime] = useState(moment().add('days', -1).format('YYYY-MM-DD HH:mm:ss')) const [currEndTime, setcurrEndTime] = useState(moment().format('YYYY-MM-DD HH:mm:ss')) const form = useRef() //初始化 useEffect(() => { }, []) const checkPoint = (rule, value) => { const pattern = /^[1-9]*[1-9][0-9]*$/; if (pattern.test(value) && value != 1) { return true } return false } const checkNumber = (rule, val) => { const strRegex = /^-?\d+(\.\d+)?$/ if (strRegex.test(val)) { return true } return false } const btnFormSubmit = () => { let data = modalData form.current.validate().then(value=>{ let paramJson = { "thr_burr": Number(value.burr),//毛刺阈值 "win_med": Number(value.ws),//滑动中值 "win_avg": Number(value.rc),//滑动均值 "thr_der": Number(value.dv), //导数阈值 "win_grad": Number(value.pn),//渐变点个数 "thr_grad": Number(value.gv),//渐变阈值 "days_Last": Number(value.timeRange),//分析时长 } let pushData = { station: data.sensorId,//测点 factorId: data.factorId, itemId: data.itemIndex, abnType: 3,//异常趋势 enabled: value.checked, params: paramJson }; dispatch(install.editAbnParams(data.id,pushData)).then(res => { if (res.success) { const id=[...sensorId?.map(item=>project+'-'+item), -1].join(',') dispatch(install.getAbnParamList({ sensorId:id})) closeModal() } }) }) } const checkInterger = (rule, val) => { // if(val){ const strRegex = /^[1-9]*[1-9][0-9]*$/ if (strRegex.test(val)) { return true } return false // } }; const timeOnChange = (dates, dateStrings) => { if (dates.length == 0) { setCurrStartTime(null) setCurrEndTime(null) return Notification.warning({ content: `请选择时间`, duration: 3, }) } setCurrStartTime(dates[0].format('YYYY-MM-DD HH:mm:ss')) setCurrEndTime(dates[1].format('YYYY-MM-DD HH:mm:ss')) } //数据对比 // const dataCompare = () => { // this.props.form.validateFields((err, values) => { // if (!err) { // let paramJson = { // "thr_burr": values.burr,//毛刺阈值 // "win_med": values.ws,//滑动中值 // "win_avg": values.rc,//滑动均值 // "thr_der": values.dv, //导数阈值 // "win_grad": values.pn,//渐变点个数 // "thr_grad": values.gv,//渐变阈值 // "days_Last": values.timeRange,//分析时长 // } // let data = { // station: this.props.modalData.stationId, // factorId: this.props.modalData.factorId, // itemId: this.props.modalData.itemId, // abnType: 'trend',//算法类型 // enabled: true, // params: paramJson // }; // let start = this.state.currStartTime; // let end = this.state.currEndTime; // this.props.dispatch(getItemAbnResult_tr(this.props.structId, start, end, data)).then(res => { // }) // } // }); // } // let originalData = ['还没查询'], calcArray = [], key, itemName, start, end; // let stationsData = []; // if (abnItemCompData) { // originalData = abnItemCompData.stationData; // calcArray = abnItemCompData.resultArray; // key = abnItemCompData.itemKey; // itemName = abnItemCompData.itemName; // start = originalData && originalData.length > 0 ? originalData[0].time : ''; // end = originalData && originalData.length > 0 ? originalData[originalData.length - 1].time : ''; // for (let i = 0; i < originalData.length; i++) { // let one = { name: itemName + "(单位:" + abnItemCompData.unit + ")", value: originalData[i][key], time: originalData[i].time }; // stationsData.push(one); // } // if (calcArray) { // let preLineData = calcArray.calcPreprocess; // let abnTrends = calcArray.calcFinal; // for (let j = 0; j < preLineData.length; j++) { // let one = { name: "预处理+滑动均值后数据", value: preLineData[j].value, time: preLineData[j].time }; // stationsData.push(one); // } // for (let t = 0; t < abnTrends.length; t++) { // let name = abnTrends[t].startTime + "至" + abnTrends[t].endTime + abnTrends[t].des + ",渐变差值:" + abnTrends[t].value.toFixed(2) + abnItemCompData.unit; // let start = { name: name, value: abnTrends[t].startValue, time: abnTrends[t].startTime }; // let end = { name: name, value: abnTrends[t].endValue, time: abnTrends[t].endTime }; // stationsData.push(start); // stationsData.push(end); // } // } // } TrendModal.propTypes = { visible: PropTypes.bool.isRequired, closeModal: PropTypes.func.isRequired }; return
]}>
{ form.current = formApi }} labelPosition='left' > 1个月 2个月 3个月 {/* */} {/*
{originalData && originalData[0] == '还没查询' ?
输入参数,点击数据对比展示数据对比图
: originalData && originalData[0] != '还没查询' && originalData.length > 0 ? :
没有查询到任何有效数据!
}
*/}
; } function mapStateToProps(state) { const { abnItemState_tr, global} = state; return { abnItemCompData: abnItemState_tr.items, actions:global.actions } } export default connect(mapStateToProps)(TrendModal)