This commit is contained in:
Jay
2017-04-14 18:20:30 +08:00
parent 12ff3a4020
commit eb6b8d9ad5
2 changed files with 156 additions and 8 deletions
@@ -4,18 +4,90 @@ import {getRequest} from '../../../../../actions';
class UnitTime extends React.Component {
state = {
list: []
list: [],
data: {
op: '',
id: 'dt0,mode0',
year: '-',
week: '-',
month: '-',
day: '-',
hour: '-',
min: '-'
}
}
componentDidMount(){
componentWillReceiveProps(np) {
let data = {...this.state.data};
if(np.data.op != data.op) data.op = np.data.op;
let year = np.data.split('|')[5] || '-';
let week = np.data.split('|')[4] || '-';
let month = np.data.split('|')[3] || '-';
let day = np.data.split('|')[2] || '-';
let hour = np.data.split('|')[1] || '-';
let min = np.data.split('|')[0] || '-';
if(year != data.year) data.year = year;
if(week != data.week) data.week = week;
if(month != data.month) data.month = month;
if(day != data.day) data.day = day;
if(hour != data.hour) data.hour = hour;
if(min != data.min) data.min = min;
this.setState({
data: {...data}
})
}
changeState = (key, value) => {
let data = {
...this.state.data
}
if(key == 'op'){
data.op = value;
}
if(key == 'year') {
data.year = value == '' ? '-' : value;
}
if(key == 'week') {
data.week = value == '' ? '-' : value;
}
if(key == 'month') {
data.month = value == '' ? '-' : value;
}
if(key == 'day') {
data.day = value == '' ? '-' : value;
}
if(key == 'hour') {
data.hour = value == '' ? '-' : value;
}
if(key == 'min') {
data.min = value == '' ? '-' : value;
}
this.setState({
data: {...data}
}, ()=>{ this.sendUpdate() });
}
sendUpdate = () => {
let data = {...this.state.data};
data.value = `${data.min}|${data.hour}|${data.day}|${data.month}|${data.week}|${data.year}`;
delete data.year;
delete data.week;
delete data.month;
delete data.day;
delete data.hour;
delete data.min;
this.props.updateData({...this.props.data, ...data});
}
render() {
let {ops} = this.props;
return (
<div>
<select>
<select value={this.state.data.op} onChange={e=>{this.changeState('op', e.target.value)}}>
<option value="">選擇條件</option>
{
ops.map((t,idx) => {