import React from 'react'; import { connect } from 'dva'; import { Button, Icon, Upload, Form } from 'antd'; import config from "../../../config.js"; import storage from '../../../utils/storage'; import XLSX from 'xlsx'; import { initFilter, extendRule, downLoad, extendInclude, setDataFieldValue, guid, initQueryFilter, showFiles, showApprove, showUserSign, showUsersSign } from "../../../utils/common"; class PT027Import extends React.Component { constructor(props) { super(props); this.state = { data: null, Msg: '', isMsgShow: false, url: props.data.url, fileName: props.data.fileName, isOk: true } } getRequestHeaders = () => { // 请求参数 const addHeader = 'Bearer ' + storage('lacal').getItem('accessToken').val const userId = storage('lacal').getItem('userid').val const user = storage('lacal').getItem('loginUserVerify').val const RootOrgId = storage('lacal').getItem('RootOrgId').val const orgId = storage('lacal').getItem('webOrgId').val const Tenant = storage('lacal').getItem('Tenant').val const headers = { // 'Content-Type': type === 'post' ? 'application/json' : 'application/x-www-form-urlencoded', Authorization: addHeader, userid: userId, username: user ? user.username : '', RootOrgId, orgId, Tenant: Tenant } return headers } fillImportData = (ret) => { if (!ret) { this.setState({ data: [], selectedRowKeys: [], messages: '', }) return; } if (ret.ErrorMessage) { this.setState({ messages: ('错误:' + ret.ErrorMessage) }); } let messages = ''; if (ret.Data && ret.Data.MessageList && ret.Data.MessageList.length) { var tmps = []; ret.Data.MessageList.forEach((n, i) => { tmps.push(n); }); messages = tmps.join('\n'); } const selectedRowKeys = []; if (ret.Data && ret.Data.Data) { ret.Data.Data.forEach((n, i) => { selectedRowKeys.push(n.ID); }); } this.setState({ data: (ret.Data && ret.Data.Data ? ret.Data.Data : []), selectedRowKeys, messages }); } onTableBtnExport() { let json = initFilter(this.props.login.OrgId); this.props.dispatch({ type: 'app/getDataByPost', url: 'PT/PTAssessmentPlanAudit/GetAssessmentData', payload: json, onlyData: false, onComplete: (ret) => { if (!ret || ret.Data.length == 0) { message.warning("没有数据无需导出!"); return; } else{ //excel的表头 const tHeader = ["层级", "被考核部门","被考核岗位","被考核人员","考核人员","安全生产指标考核项目","考核周期","分数","考核认定评分办法"]; // 字段和table表格中对应 const fitlerVal = ["departType", "departName","postName","userName","chargeName","targetItem","type","score","method"]; const res = ret.Data.map((v) => fitlerVal.map((j) => v[j])); const jsonWorkSheet = XLSX.utils.json_to_sheet(res,tHeader); jsonWorkSheet.A1.v='层级'; jsonWorkSheet.B1.v='被考核部门'; jsonWorkSheet.C1.v='被考核岗位'; jsonWorkSheet.D1.v='被考核人员'; jsonWorkSheet.E1.v='考核人员'; jsonWorkSheet.F1.v='安全生产指标考核项目'; jsonWorkSheet.G1.v='考核周期'; jsonWorkSheet.H1.v='分数'; jsonWorkSheet.I1.v='考核认定评分办法'; const sheetName = "目标与指标监测数据库"; const workBook = { SheetNames: [sheetName], Sheets: { [sheetName]: jsonWorkSheet, } }; return XLSX.writeFile(workBook, "目标与指标监测数据库.xlsx"); } } }) } //渲染页面 render() { const { data, Msg, isMsgShow, url, urlDown, isOk, fileName } = this.state; const that = this; const uploadProps = { name: 'file', action: config.serviceHost(url), data: { OrgId: this.props.login.OrgId },//, ImportConfigCode: configCode, delFlag: delFlag fileList: this.state.updateLoadFileList, accept: '.xls,.xlsx', headers: this.getRequestHeaders(), onChange(info) { var Msg = '' var isOk = true if (info.file.status === 'done') { if (info.file.response.IsSuccessful) { Msg = "【" + info.file.name + '】' + info.file.response.Data.Data // message.info(`${info.file.name} 导入并保存成功`); } else { //失败 Msg = info.file.response.ErrorMessage isOk = false // message.error(`${info.file.response.ErrorMessage} `); } } else if (info.file.status === 'error') { isOk = false if (info.file.response && info.file.response.ErrorMessage) { Msg = "【" + info.file.name + '】导入错误,详情:' + info.file.response.ErrorMessage // message.error(`${info.file.name} 导入错误,详情:${info.file.response.ErrorMessage}`); } else { Msg = "【" + info.file.name + '】导入错误' // message.error(`${info.file.name} 导入错误`); } } that.setState({ updateLoadFileList: info.fileList, data: info, Msg: '导入说明:' + Msg, isMsgShow: true, isOk: isOk }); }, }; return
{ isMsgShow ? ( isOk ? : ) : null }
{Msg}
{Msg}
} } export default connect(({ login, app }) => ({ login, app }))(PT027Import)