import React, { useState, useEffect, useRef } from 'react'; import { Modal, Button, Calendar, Popover, Spin, Row, Col } from 'antd'; import AddModal from './AddModal'; import WorkList from './WorkList'; import { connect } from 'dva'; import moment from 'moment'; function List(props) { const { typeList, dispatch, loading, dataList, projectList, currentUser, allType } = props; const [visible, setVisible] = useState(false); const [current, setCurrent] = useState({ date: moment(), list: [], }); const onAuth = (item, workload) => { console.log(workload); Modal.confirm({ title: '提示', content: '是否上报审批?', okText: '确认', cancelText: '取消', onOk() { console.log(item); let params = [ { type_id: Number(item.type_id), // 父级id parent_type_id: allType[item.type_id].parent_id, data: [ { id: item.id, project_id: item.project_id, workload: workload, day: item.time, }, ], }, ]; dispatch({ type: 'workload/addAuthWorkHours', payload: params, callback: list => { let time = current.date.format('YYYY-MM-DD'); setCurrent({ ...current, list: list.filter(item => item.time == time), }); }, }); }, }); }; const MultiAuth = () => { Modal.confirm({ title: '提示', content: '是否上报全部审批?', okText: '确认', cancelText: '取消', onOk() { let params = []; for (let i = 0; i < dataList.length; i++) { const element = dataList[i]; if (element.audit_state != 0) continue; var arr = params.find(arr => arr.type_id == element.type_id); if (arr) { console.log(arr); arr.parent_type_id = allType[element.type_id].parent_id; arr.data.push({ id: element.id, project_id: element.project_id, workload: element.workload, day: element.time, }); } else { let data = []; data.push({ id: element.id, project_id: element.project_id, workload: element.workload, day: element.time, }); params.push({ type_id: Number(element.type_id), // 父级id parent_type_id: allType[element.type_id].parent_id, data: data, }); } } console.log(params); dispatch({ type: 'workload/addAuthWorkHours', payload: params, }); }, }); }; const currentDayAuth = () => { var list = current.list; Modal.confirm({ title: '提示', content: '是否上报本日审批?', okText: '确认', cancelText: '取消', onOk() { let params = []; for (let i = 0; i < list.length; i++) { const element = list[i]; if (element.audit_state != 0) continue; var arr = params.find(arr => arr.type_id == element.type_id); if (arr) { console.log(arr); arr.parent_type_id = allType[element.type_id].parent_id; arr.data.push({ id: element.id, project_id: element.project_id, workload: element.workload, day: element.time, }); } else { let data = []; data.push({ id: element.id, project_id: element.project_id, workload: element.workload, day: element.time, }); params.push({ type_id: Number(element.type_id), // 父级id parent_type_id: allType[element.type_id].parent_id, data: data, }); } } console.log(params); dispatch({ type: 'workload/addAuthWorkHours', payload: params, }); }, }); }; const onSave = (item, workload) => { let params = [ { type_id: Number(item.type_id), comment: '', // 父级id parent_type_id: allType[item.type_id].parent_id, data: [ { id: item.id, project_id: Number(item.project_id), workload: workload, day: item.time, }, ], }, ]; dispatch({ type: 'workload/addWorkHours', payload: params, callback: list => { let time = current.date.format('YYYY-MM-DD'); setCurrent({ ...current, list: list.filter(item => item.time == time), }); }, }); }; const onAddWork = data => { dispatch({ type: 'workload/addWorkHours', payload: data, callback: list => { setVisible(false); let time = current.date.format('YYYY-MM-DD'); setCurrent({ ...current, list: list.filter(item => item.time == time), }); }, }); }; const dateCellRender = value => { let current = value.format('YYYY-MM-DD'); let list = dataList.filter(item => item.time == current); // let total = list.reduce((total, item) => total + item.workload, 0); let waitTotal = 0, successTotal = 0; list.forEach(item => { if (item.audit_state == 2) { successTotal += item.workload; } else { waitTotal += item.workload; } }); if (list.length == 0) return; let content = (