// import React, { Fragment } from 'react';
// import {
//   Button,
//   Modal,
//   Steps,
//   Upload,
//   Icon,
//   message,
//   Tabs,
//   Table,
// } from 'antd';
// import styles from './ImportUtil.less';
// import ButtonDiy from '@/baseComponent/ButtonDiy';
// import { exportExcel } from 'xlsx-oc'
// import config from '@/config/config';
// import { connect } from 'dva';
// const Step = Steps.Step;
//
//
// const TabPane = Tabs.TabPane;
//
//
// @connect(({ DataObj, loading }) => ({
//   DataObj,
//   loading: loading.models.DataObj,
// }))
// export default class ImportUtil extends React.PureComponent {
//   constructor(props) {
//     super(props);
//
//       const  exportTemplateUrl= encodeURI(`${config.sqlFormsServer}/DataObjApi/importTemplateDownload?objId=${this.props.objId}&name=${props.fileName}`);
//
//     this.state = {
//       ch:false,
//       currentKey:"1",
//       visible: false,
//       current: 0,
//       isShow: true,
//       filekey: '',
//       sucData: [],
//       errData: [],
//       column: [],
//
//       exportTemplateUrl,
//
//       isNextDisabled:false,
//     };
//   }
//
//   showModal = () => {
//
//     this.setState({
//       visible: true,
//     });
//   };
//   handleOk = (e) => {
//     this.setState({
//       visible: false,
//     });
//   };
//   handleCancel = (e) => {
//     this.setState({
//       visible: false,
//     });
//   };
//
//   next() {
//     const current = this.state.current + 1;
//     if (current === 2) {
//       this.setState({
//         current: current,
//         isShow: false,
//       });
//       if (this.state.errData.lenth > 0) {
//         message.error('请检查数据');
//         return;
//       } else {
//         this.import();
//       }
//     }
//     if (current === 3) {
//       this.setState({
//         current: current,
//         isShow: true,
//       });
//       if (this.props.callback) {
//         this.props.callback();
//       }
//     }
//
//   }
//
//   prev() {
//     const current = this.state.current - 1;
//     this.setState({ current });
//   }
//
//   import() {
//     const { dispatch ,importParams } = this.props;
//     dispatch({
//       type: 'DataObj/importExecute',
//       payload: {
//         ...(importParams||{}),
//         cacheKey:this.state.filekey,
//
//         objId: this.props.objId,
//       },
//       callback: (res) => {
//
//         this.next();
//         message.success('导入成功');
//
//         this.setState({
//           current: 3,
//           isShow: true,
//           visible: false,
//
//         });
//         if(this.props.callback){
//           this.props.callback();
//         }
//       }
//     })
//
//
//   }
//
//   getCachKey = (filePath) => {
//     const { dispatch ,importParams } = this.props;
//     dispatch({
//       type: 'DataObj/importAnalyse',
//       payload: {
//         ...(importParams||{}),
//         isLocal:false,
//         filePath,
//         objId: this.props.objId,
//       },
//       callback: (res) => {
//         this.setState({
//           filekey: res.cacheKey,
//
//         });
//         this.queryFile(res.cacheKey);
//
//       }
//     })
//
//
//   };
//   queryFile = (cacheKey) => {
//     const { dispatch ,importParams } = this.props;
//     dispatch({
//       type: 'DataObj/importDataQuery',
//       payload: {
//         ...(importParams||{}),
//         cacheKey,
//         objId: this.props.objId,
//       },
//       callback: (res) => {
//         this.setState({
//           current: 1,
//           isShow: false,
//
//           sucData: res.pass,
//           errData: res.noPass,
//           column: res.column
//         });
//         if(res.noPass&&res.noPass.length==0){
//
//
//           if (res.pass.length==0) {
//             message.error('当前没有验证成功的数据,无法导入。');
//             this.setState({
//               currentKey:"1",
//               ch:!this.state.ch,
//               isNextDisabled: true
//             });
//           } else {
//             message.success('所有数据验证通过,请确认后点击下一步。');
//             this.setState({
//              currentKey:"2",
//              ch:!this.state.ch,
//               isNextDisabled: false
//             });
//           }
//         }else{
//           message.error('当前存在未验证通过的数据,请按错误提示检测更正导入文件');
//         this.setState({
//           currentKey:"1",
//           ch:!this.state.ch,
//           isNextDisabled: true
//         });
//       }
//
//       }
//     })
//   };
//   changePane=(activeKey)=>{
//     this.setState({currentKey:activeKey})
//   }
//   exportError=(column,dataSource)=>{
//
//
//       var _headers = []
//       for(var i=0;i<column.length;i++){
//         _headers.push({k:column[i].dataIndex,v:column[i].title})
//       }
//       for(var j=0;j<dataSource.length;j++){
//         dataSource[j].index=j+1
//       }
//       exportExcel(_headers, dataSource);
//
//
//   }
//   render() {
//
//     const props = {
//       name: 'file',
//       action: config.uploadUrl,
//
//       headers: {
//         authorization: 'authorization-text',
//       },
//       accept:'.xlsx',
//       showUploadList: false,
//       onChange: (info) => {
//         if (info.file.status !== 'uploading') {
//
//         }
//         if (info.file.status === 'done') {
//           message.success(`${info.file.name} 上传成功`);
//           let x = info.file.response;
//
//
//
//           this.getCachKey(x);
//
//         } else if (info.file.status === 'error') {
//           message.error(`${info.file.name} file upload failed.`);
//         }
//       },
//     };
//     const steps = [{
//       title: '上传Excel',
//     }, {
//       title: '验证数据',
//     }, {
//       title: '数据导入',
//     },
//       {
//         title: '导入完成',
//       }];
//
//     const { current } = this.state;
//     const {name, loading} = this.props
//     const column1=this.state.column?[{title:"序号",dataIndex:"index",fixed:"left",width:50, render:(v,r,i)=>i+1},...this.state.column]:[]
//     var column2=this.state.column?[...this.state.column]:[]
//     if(column1.length>1) column1[1].render=(val)=><span style={{color:"red"}}>{val}</span>
//
//     column2.splice(0,1)
//     column2=[{title:"序号",fixed:"left",width:50, render:(v,r,i)=>i+1},...column2]
//
//     return (
//       <span>
//         <ButtonDiy name={name||'批量导入'}
//                    type='default'
//                    className='defaultBlue'
//                    handleClick={this.showModal}/>
//         <Modal
//           visible={this.state.visible}
//           onOk={this.handleOk}
//           maskClosable={false}
//           destroyOnClose
//           onCancel={this.handleCancel}
//           title={null}
//           footer={null}
//           width={"80%"}
//         >
//
//                  <div className={styles.nomal}>
//         <p className={styles.import}>
//           EXCEL导入向导
//         </p>
//         <div style={{ margin: 'auto 23px' }}>
//             <Steps current={current}>
//         {steps.map(item =>
//           <Step key={item.title}
//                 title={item.title}/>)}
//         </Steps>
//         <div className="steps-content">
//           {steps[this.state.current].content}
//         </div>
//         <div className={styles.button}>
//         {
//           (this.state.current < steps.length - 1 && this.state.current !== 0)
//           &&
//           <ButtonDiy name={this.state.current==3?"确认导入":"下一步"} type="primary" disabled={this.state.current!=3 && this.state.isNextDisabled} className='primaryBlue' handleClick={() => this.next()}/>
//
//         }
//
//           {
//             this.state.current > 0
//             &&
//             <ButtonDiy style={{ marginLeft: 8 }} name="上一步"  className='defaultBlue' handleClick={() => this.prev()}/>
//
//           }
//     </div>
//         </div>
//
//         <div className={styles.tip}>
//            <p className={styles.tipContent}>
//                <span>欢迎使用EXCEL导入向导,首先请您上传需要导入的EXCEL文件。</span>
//                <span>点击“选择文件”选择您要导入的EXCEL文件,点击“开始上传”将其上传到服务器上,点击“清空队列”清空当前上传文件队列。</span>
//            </p>
//
//         </div>
//                    {
//                      this.state.isShow ?
//                        <div className={styles.buttonDown}>
//                          <Upload {...props}>
//                            <Button>
//                              <Icon type="upload"/>点击上传
//                            </Button>
//                          </Upload>
//                          <Button href={this.state.exportTemplateUrl }
//                                  target="_blank"
//                                  type="danger">
//                            下载模板
//                          </Button>
//                        </div> :
//                        <Upload {...props}>
//                          <Button>
//                            <Icon type="upload"/>
//                            重新上传
//                          </Button>
//                        </Upload>
//                    }
//
//                    {
//                      this.state.isShow ? <div className={styles.attentionItem}>
//                          <p>导入事项</p>
//                          <p>1. 导入操作一次只能上传 1 个EXCEL文件。</p>
//                          <p>2. 导入文件最大文件大小上传 1 GB。</p>
//                          <p>3. 只能上传EXCEL文件(XLS, XLSX) 默认支持EXCEL 2003和EXCEL 2007。</p>
//                          <p>4. 请将EXCEL文件的所有单元格格式设置为“文本”格式</p>
//                        </div> :
//                        <div className={styles.error} style={{marginTop:20}}>
//
//                          <Tabs activeKey={this.state.currentKey} key={this.state.ch} onChange={this.changePane} type="card">
//                    {this.state.errData&&this.state.errData.length==0?"":<TabPane tab={<span style={{color:"red"}}>验证错误列表</span>} key="1">
//                    <Button style={{marginTop:5,marginBottom:5}} type="danger" onClick={this.exportError.bind(this,column1,this.state.errData)}>导出错误信息</Button>
//
//                     <Table columns={column1} size="small"
//                                     style={{overflow: 'auto'}}
//                                     dataSource={this.state.errData}
//                                     bordered={true}/></TabPane>}
//     <TabPane tab={<span style={{color:"green"}}>验证成功列表</span>} key="2">
//
//     <Button style={{marginTop:5,marginBottom:5}} type="primary" onClick={this.exportError.bind(this,column2,this.state.sucData)}>导出正确信息</Button>
//
//     <Table columns={column2}  size="small"
//                                     style={{overflow: 'auto'}}
//                                     dataSource={this.state.sucData}
//                                     bordered={true}/></TabPane>
//
//   </Tabs>
//
//
//                        </div>
//                    }
//     </div>
//
//       </Modal>
//       </span>
//     );
//   }
// }