import React from 'react'; import {Grid, Form, Segment, Input} from 'semantic-ui-react'; const ops = [ { "code": "0", "name": "等於" }, { "code": "1", "name": "大於" }, { "code": "2", "name": "小於" }, { "code": "3", "name": "大於等於" }, { "code": "4", "name": "小於等於" }, { "code": "5", "name": "不等於" }, { "code": "8", "name": "AND" }, { "code": "9", "name": "OR" } ] const stype = { di: { prefix: 'di', dev: '', op: '', value: '', mode: 'di_status' }, leone: { prefix: 'le', dev: '', op: '', value: '', mode: '' }, unit: { dev: '' }, time: { op: '', dev: 'dt0', mode: 'mode0', year: '-', week: '-', month: '-', day: '-', hour: '-', min: '-' } } class UnitItem extends React.Component { state = { st: '', data:{} } handleDataChange = (tag, value) => { let {data} = this.state; let {updateData} = this.props; if(tag in data) { data[tag] = value; } this.setState({ data }, () => { let {data} = this.state let d = {...this.props.data.data} let {st} = this.props.data; if(st == 'di' || st == 'leone'){ d.id = `${data.prefix}${data.dev},${data.mode}`; d.op = data.op; d.value = data.value; } if(st == 'unit') { d.dev = data.dev; } if(st == 'time') { d.id = `${data.dev},${data.mode}`; d.op = data.op; d.value = `${data.min}|${data.hour}|${data.day}|${data.month}|${data.week}|${data.year}`; } updateData(this.props.unit, d); }); } componentWillReceiveProps(np) { let data = {...this.state.data}; if(np.data.st != this.state.st){ if(np.data.st in stype) { data = {...stype[np.data.st]}; }else { data = {} } } this.setState({ data, st: np.data.st }) } render() { let {unit, data, getList} = this.props; return ( { !data.st ? null : () } ) } } const UnitPanel = ({data, state, dataChange}) => { if (data.st == 'di') { return (
) } if(data.st == 'leone') { return (
{ dataChange('value', d.value); }} />
) } if(data.st == 'unit') { return (
) } if(data.st == 'time') { return (
{ dataChange('year', d.value.length == 0 ? '-' : d.value); }} /> { dataChange('week', d.value.length == 0 ? '-' : d.value); }} /> { dataChange('month', d.value.length == 0 ? '-' : d.value); }} /> { dataChange('day', d.value.length == 0 ? '-' : d.value); }} /> { dataChange('hour', d.value.length == 0 ? '-' : d.value); }} /> { dataChange('min', d.value.length == 0 ? '-' : d.value); }} />
) } return null; } export default UnitItem;