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 DataDesenTablePop 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: '',
			dataSource: [],
		}
	}
	
	// 页面加载函数
	componentDidMount() {
		console.log(this.props.dataSource5 )
		api.system.getTableLists(1, 999, {"DATABASE_TYPE": "5"}).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
			})
		})
		api.system.getDestLists(1, 10,  {'MODULE_TYPE': 5}).then(res => {
			console.log(res)
			const pagination = { ...this.state.pagination }
			pagination.current = 1
			pagination.total = res.data.total
			for (let data of res.data.list) {
				data.desenType = ['替换', '掩码', '截断', '重排', '加密', '自定义'][data.desenType]
				data.runType = ['JAVA任务方式', '调用shell方式', '调用sql方式'][data.runType]
			}
			this.setState({
				dataSource: res.data.list,
				pagination
			})
		})
	}
	close = () => {
		this.props.onPopClose()
	}
	handelsubmit = () => {
		this.props.form.validateFields((err, values)=>{
			
			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
		const {dataSource5} = this.props
	
		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'>
							<FormItem label="待脱敏表" {...formItemLayout}>
									{
										getFieldDecorator('odsTableId', {
											initialValue: data.id ? data.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('odsTableField', {
											initialValue: data.odsTableField,
											rules: [
												{
													required: true,
													message: '请输入待脱敏字段',
												},
											],
										})
										(<Input placeholder="请输入待脱敏字段" />)
									}
								</FormItem>
								
								
								
								<FormItem label="脱敏规则" {...formItemLayout}>
									{getFieldDecorator('desensitizationRuleId', {
										initialValue: data.desensitizationRuleId ? data.desensitizationRuleId : '',
										rules: [
											{
												required: false,
												message: 'Please select your habitual residence!'
											},
										],
									})(<Select>
										{dataSource.map((data) => (
													<option value={data.id}>{data.desenName}</option>
												))}
										
									</Select>)}
								</FormItem>
								<FormItem label="所需参数" {...formItemLayout}>
									{
										getFieldDecorator('transParam', {
											initialValue: data.transParam,
											rules: [
												{
													required: false,
													message: '请输入参数',
												},
											],
										})
										(<Input placeholder="请输入参数" />)
									}
								</FormItem>
								
								
								
								<FormItem label="描述" {...formItemLayout}>
									{
										getFieldDecorator('resultDescribe', {
											initialValue: data.resultDescribe,
											rules: [
												{
													required: false,
													message: '描述',
												},
											],
										})
										(<Input placeholder="描述" />)
									}
								</FormItem>
								<FormItem label="描述" {...formItemLayout} style={{display:'none'}}>
									
									{
										getFieldDecorator('desenTaskId', {
											initialValue: dataSource5,
											rules: [
												{
													required: false,
													message: '描述',
												},
											],
										})
										(<Input placeholder="描述" />)
									}
								</FormItem>
								
								
								
								
							 <div style={{display:this.state.detailMode?'none':'block'}}>
									<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>
									<FormItem label="审批" {...formItemLayout} >
										{getFieldDecorator('verify', {
										initialValue: data.verify ? data.verify : '0',
											rules: [
												{
													required: false,
													message: 'Please select your habitual residence!'
												},
											],
										})(<Input placeholder="审批" />)}
									</FormItem>
								</div>
								
								<FormItem  {...formButtom}>            
									<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: 'DataDesenTablePop' })(DataDesenTablePop);