|  | @ -2,23 +2,23 @@ | 
			
		
	
		
		
			
				
					|  |  | import React, { useState, useEffect } from 'react'; |  |  | import React, { useState, useEffect } from 'react'; | 
			
		
	
		
		
			
				
					|  |  | import { connect } from 'react-redux'; |  |  | import { connect } from 'react-redux'; | 
			
		
	
		
		
			
				
					|  |  | import moment from 'moment'; |  |  | import moment from 'moment'; | 
			
		
	
		
		
			
				
					
					|  |  | import { Modal, Form, Button, Notification,Toast } from '@douyinfe/semi-ui'; |  |  | import { Modal, Form, Button, Notification, Toast } from '@douyinfe/semi-ui'; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | import { IconUpload } from '@douyinfe/semi-icons'; |  |  | import { IconUpload } from '@douyinfe/semi-icons'; | 
			
		
	
		
		
			
				
					|  |  | import XLSX from 'xlsx' |  |  | import XLSX from 'xlsx' | 
			
		
	
		
		
			
				
					|  |  | //下载模板和上传文件读取 |  |  | //下载模板和上传文件读取 | 
			
		
	
		
		
			
				
					|  |  | const ImportPerformanceSummaryModal = props => { |  |  | const ImportPerformanceSummaryModal = props => { | 
			
		
	
		
		
			
				
					
					|  |  |     const { dispatch, actions, onCancel,query } = props; |  |  |     const { dispatch, actions, onCancel, query, user } = props; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |     const { businessManagement } = actions |  |  |     const { businessManagement } = actions | 
			
		
	
		
		
			
				
					|  |  |     const [msg, setMsg] = useState(''); |  |  |     const [msg, setMsg] = useState(''); | 
			
		
	
		
		
			
				
					|  |  |     const [loading, setLoading] = useState(''); |  |  |     const [loading, setLoading] = useState(''); | 
			
		
	
		
		
			
				
					|  |  |     const [postData, setPostData] = useState([]); |  |  |     const [postData, setPostData] = useState([]); | 
			
		
	
		
		
			
				
					|  |  |     let personalTrainRecord = { personalName: '姓名', departmentName: '部门', trainingType: '培训类型', topic: '课程主题', trainer: '培训讲师', trainDate: '培训时间', trainTime: '培训时长', trainMethod: '培训方式', attendanceScore: '考勤分数', appraisalMethod: '考核形式', appraisalScore: '考核分数', totalScore: '总分' } |  |  |     let personalTrainRecord = { personalName: '姓名', departmentName: '部门', trainingType: '培训类型', topic: '课程主题', trainer: '培训讲师', trainDate: '培训时间', trainTime: '培训时长', trainMethod: '培训方式', attendanceScore: '考勤分数', appraisalMethod: '考核形式', appraisalScore: '考核分数', totalScore: '总分' } | 
			
		
	
		
		
			
				
					|  |  |     //初始化 |  |  |     //初始化 | 
			
		
	
		
		
			
				
					
					|  |  |      |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |     const confirm = () => { |  |  |     const confirm = () => { | 
			
		
	
		
		
			
				
					|  |  |         if (postData.length) { |  |  |         if (postData.length) { | 
			
		
	
		
		
			
				
					|  |  |             setLoading(true) |  |  |             setLoading(true) | 
			
		
	
		
		
			
				
					
					|  |  |             const { postAllPersonalTrainRecord,getPersonalTrainRecord } = actions.humanAffairs |  |  |             const { postAllPersonalTrainRecord, getPersonalTrainRecord } = actions.humanAffairs | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |             dispatch(postAllPersonalTrainRecord(postData)).then(res => { |  |  |             dispatch(postAllPersonalTrainRecord(postData)).then(res => { | 
			
		
	
		
		
			
				
					|  |  |                 if (res.success) { |  |  |                 if (res.success) { | 
			
		
	
		
		
			
				
					|  |  |                     onCancel() |  |  |                     onCancel() | 
			
		
	
	
		
		
			
				
					|  | @ -32,7 +32,7 @@ const ImportPerformanceSummaryModal = props => { | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     const download = () => { |  |  |     const download = () => { | 
			
		
	
		
		
			
				
					
					|  |  |         const head = [["姓名", "部门", "培训类型", "课程主题", "培训讲师", "培训时间", "培训时长", "培训方式", "考勤分数","考核形式","考核分数","总分"]]; |  |  |         const head = [["姓名", "部门", "培训类型", "课程主题", "培训讲师", "培训时间", "培训时长", "培训方式", "考勤分数", "考核形式", "考核分数", "总分"]]; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |         let sheetName = '个人培训'; |  |  |         let sheetName = '个人培训'; | 
			
		
	
		
		
			
				
					|  |  |         let workbook = { SheetNames: [sheetName], Sheets: {} }; |  |  |         let workbook = { SheetNames: [sheetName], Sheets: {} }; | 
			
		
	
		
		
			
				
					|  |  |         workbook.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(head);//json转excel    |  |  |         workbook.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(head);//json转excel    | 
			
		
	
	
		
		
			
				
					|  | @ -55,9 +55,9 @@ const ImportPerformanceSummaryModal = props => { | 
			
		
	
		
		
			
				
					|  |  |                     if (request.status == 200) { |  |  |                     if (request.status == 200) { | 
			
		
	
		
		
			
				
					|  |  |                         if (window.FileReader) { |  |  |                         if (window.FileReader) { | 
			
		
	
		
		
			
				
					|  |  |                             let reader = new FileReader(); |  |  |                             let reader = new FileReader(); | 
			
		
	
		
		
			
				
					
					|  |  |                              |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |                             reader.readAsBinaryString(request.response); |  |  |                             reader.readAsBinaryString(request.response); | 
			
		
	
		
		
			
				
					
					|  |  |                              |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |                             reader.onload = event => { |  |  |                             reader.onload = event => { | 
			
		
	
		
		
			
				
					|  |  |                                 try { |  |  |                                 try { | 
			
		
	
		
		
			
				
					|  |  |                                     const { result } = event.target; |  |  |                                     const { result } = event.target; | 
			
		
	
	
		
		
			
				
					|  | @ -149,6 +149,21 @@ const ImportPerformanceSummaryModal = props => { | 
			
		
	
		
		
			
				
					|  |  |                                     Toast.error(`第${i + 2}行,部门为空,请填写`) |  |  |                                     Toast.error(`第${i + 2}行,部门为空,请填写`) | 
			
		
	
		
		
			
				
					|  |  |                                     return |  |  |                                     return | 
			
		
	
		
		
			
				
					|  |  |                                 } |  |  |                                 } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                 if (user.allDepartment && user.allDepartment.departments) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     let dept = user.allDepartment.departments.find(d => !d.delete && d.name === obj.departmentName); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     let personal = dept && dept.departmentUsers.find(e => e.user.name === obj.personalName); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     if (dept) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                         obj.departmentName = dept.name; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     } else if (!dept) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                         Toast.error(`第${i + 2}行【部门】数据有误,请确认后重新填写`) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                         return | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     } else if (personal) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                         obj.personalName = personal.user.name; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     } else if (!personal) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                         Toast.error(`第${i + 2}行【姓名】数据有误,请确认后重新填写`) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                         return | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                     } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                 } | 
			
		
	
		
		
			
				
					|  |  |                                 if (!obj.trainingType) { |  |  |                                 if (!obj.trainingType) { | 
			
		
	
		
		
			
				
					|  |  |                                     Toast.error(`第${i + 2}行,培训类型为空,请填写`) |  |  |                                     Toast.error(`第${i + 2}行,培训类型为空,请填写`) | 
			
		
	
		
		
			
				
					|  |  |                                     return |  |  |                                     return | 
			
		
	
	
		
		
			
				
					|  | 
 |