import React from 'react'
import { getControl } from 'zorod/components/Zform/controls';
import { ZsearchListHOC } from 'zorod';
import api from '../Api';
import { Card, Form, Input, Button, message, Icon, Checkbox, Select, Cascader, DatePicker, Radio } from 'antd';
require('./assets/TaskSelect.css')

const FormItem=Form.Item;
const TextArea=Input.TextArea;

const formItemLayout = {
    labelCol: { span: 4 },
    wrapperCol: { span: 14 },
  };
  const formTailLayout = {
    labelCol: { span: 4 },
    wrapperCol: { span: 12, offset: 4 },
  };
  const formButtom={
    wrapperCol: { span: 12, offset: 6 }
  }
const residences=["baijing","hunian","guangxi"];

class DataDesenMonitorPop extends React.Component {
	constructor(props) {
		super(props)
		this.state = {
			setMode: this.props.setMode,
			title: this.props.title,
			databaseType: '0',
			data: this.props.data,
			detailMode: this.props.detailMode,
			radioMode: 'select',
			dataSource: [],
			selectInitialValue: '',
			dataSource2: [],
			select2InitialValue: '',
			dataSource3: [],
			select3InitialValue: '',
		}
	}
	
	// 页面加载函数
	componentDidMount() {
		api.system.getTestLists(1, 999, {"DATABASE_TYPE": "0"}).then(res => {
			var dataBaseId = []
			for (let data of res.data.list) {
				dataBaseId.push({name: data.RULE_NAME, id: data.id})
			}
			this.setState({
				dataSource2: dataBaseId,
				select2InitialValue: dataBaseId[0].id
			})
		})
		api.system.getBatchLists(1, 999, {'MODULE_TYPE': 5}).then(res => {
			var dataBaseId = []
			for (let data of res.data.list) {
				dataBaseId.push({name: data.BATCH_NAME, id: data.BATCH_ID})
			}
			this.setState({
				dataSource3: dataBaseId,
				select3InitialValue: dataBaseId[0].id
			})
		})
	}
	close = () => {
		this.props.onPopClose()
	}
	handelsubmit = () => {
		this.props.form.validateFields((err, values)=>{
			// if (values.batchId) {
			// 	for (let data of this.state.dataSource3) {
			// 		if (data.id === values.batchId) {
			// 			values.taskName = data.name
			// 		}
			// 	}
			// }
			if (this.state.setMode === 'add') {
				this.props.onAdd(values)
			} else if (this.state.setMode === 'update') {
				values.id = this.state.data.id
				this.props.onUpdate(values)
			}
		})
	}
	handelConnectTest = () => {
		
	}
	handleSizeChange = e => {
	  this.setState({
			radioMode: e.target.value,
			select3InitialValue: ''
		})
	}
	
	render() {
		const { getFieldDecorator, getFieldsError, getFieldError, isFieldTouched } = this.props.form
		const { data, dataSource, selectInitialValue, dataSource2, select2InitialValue, dataSource3, select3InitialValue, radioMode } = this.state
		return (
			<div>
				<div className='mask'></div>
				<div className='wrap'>
					<div className='topbar'>
						<div className='close' onClick={this.close}>x</div>
					</div>
					<div className='content'>
						<Card title={this.state.title}>
							<Form layout='horizontal'>
								
								<Radio.Group value={radioMode} onChange={this.handleSizeChange} style={{ display: this.state.setMode === '' ? 'none' : 'block' }}>
									<Radio.Button value="select">选择任务组</Radio.Button>
									<Radio.Button value="new">新增任务组</Radio.Button>
								</Radio.Group>
								
								<FormItem
									style={{ display: this.state.radioMode === 'select' ? 'block' : 'none' }}
									label="请选择任务组"
									{...formItemLayout}
									showSearch
									optionFilterProp="children"
									filterOption={(input, option) =>
										option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
									}
								>
									{
										getFieldDecorator('batchId', {
											initialValue: data.batchId ? data.batchId : select3InitialValue,
											rules: [
												{
													required: true,
													message: '请选择批次',
												},
											],
										})
										(<Select>
											{dataSource3.map((data) => (
												<option value={data.id}>{data.name}</option>
											))}
										</Select>)
									}
								</FormItem>
								
								<FormItem
									style={{ display: this.state.radioMode === 'new' ? 'block' : 'none' }}
									label="批次"
									{...formItemLayout}
								>
									{
										getFieldDecorator('batchName', {
											initialValue: data.batchName,
											rules: [
												{
													required: true,
													message: '请输入批次名称',
												},
											],
										})
										(<Input placeholder="请输入批次名称" />)
									}
								</FormItem>

								<FormItem label="任务名称" {...formItemLayout}>
									{
										getFieldDecorator('taskName', {
											initialValue: data.taskName,
											rules: [
												{
													required: false,
													message: '请输入任务名称',
												},
											],
										})
										(<Input placeholder="请输入任务名称" />)
									}
								</FormItem>
								
								<FormItem label="待脱敏表" {...formItemLayout}>
									{
										getFieldDecorator('odsTableId', {
											initialValue: data.odsTable ? data.odsTable.id : select2InitialValue,
											rules: [
												{
													required: false,
													message: 'Please select your habitual residence!'
												},
											],
										})(<Select>
											{this.props.dataSource3.map((data) => (
												<option value={data.id}>{data.TABLE_NAME_CN}</option>
											))}
										</Select>)
									}
								</FormItem>
								
								
								<FormItem label="描述" {...formItemLayout}>
									{
										getFieldDecorator('resultDescribe', {
											initialValue: data.resultDescribe,
											rules: [
												{
													required: false,
													message: '请输入描述',
												},
											],
										})
										(<Input placeholder="请输入描述" />)
									}
								</FormItem>
								
								
								<div style={{ display: !this.state.detailMode ? 'block' : 'none' }}>
									<FormItem label="运行状态" {...formItemLayout}>
										{getFieldDecorator('status', {
											initialValue: data.status ? data.status : '0',
											rules: [
												{
													required: false,
													message: 'Please select your habitual residence!'
												},
											],
										})(<Select>
											<option value="0">未运行</option>
											<option value="1">正运行</option>
											<option value="2">已完成</option>
										</Select>)}
									</FormItem>
								
									<FormItem label="运行结果" {...formItemLayout}>
										{getFieldDecorator('result', {
											initialValue: data.result ? data.result : '0',
											rules: [
												{
													required: false,
													message: 'Please select your habitual residence!'
												},
											],
										})(<Select>
											<option value="0">未有结果</option>
											<option value="1">正常</option>
											<option value="2">不正常</option>
											<option value="3">严重不正常</option>
										</Select>)}
									</FormItem>
								</div>
								
								<FormItem  {...formButtom} style={{ display: this.state.setMode === '' ? 'none' : 'block' }}   >
									<Button type='primary' onClick={this.handelsubmit}>保存</Button>&nbsp;&nbsp;&nbsp;&nbsp;
									<Button type='danger' onClick={this.close}>取消</Button>
								</FormItem>
								
							</Form>
						</Card>
					</div>
				</div>
			</div>
		)
	}
}

export default Form.create({ name: 'DataDesenMonitorPop' })(DataDesenMonitorPop);