项目周报 - 项目管理系统
"import React, { useEffect, useState } from 'react';\nimport ContentCard from '@/components/ContentCard';\nimport PageContainer from '@/components/PageContainer';\nimport ProCardComponent from '@/components/ProCard';\nimport ProCard from '@ant-design/pro-card';\nimport ProTable, { ProColumns } from '@ant-design/pro-table';\nimport { Button, Typography } from 'antd';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { history, useModel } from 'umi';\nimport TaskModal from './TaskModal';\nimport { getBudgetByProjectId, getWeeklyData } from '@/services/project/kanban';\nimport moment from 'moment';\nconst { Link } = Typography;\nimport './index.less';\nimport { projectList, WeeklyList } from '../../Kanban/WeeklyReports/type';\n\nconst WeeklyReport: React.FC = () => {\n const [depBugModal, setDepBugModal] = useState({ visible: false, projectTask: {} });\n const { current, changeCurrent } = useModel('operation');\n const [budgetKey, setBudgetKey] = useState('');\n const [WeeklyData, setWeeklyData] = useState([]);\n const [loading, setLoading] = useState/project/operation/projectDocuments/reportDetails?weeklyName=${record.weeklyName}&weeklyTime=${record.weeklyTime}&creator=${record.creator},\n );\n }}\n >\n {record.weeklyName}\n \n );\n },\n onCell: (row) => {\n return { rowSpan: row.span };\n },\n },\n {\n title: 'SPM',\n dataIndex: 'spm',\n align: 'center',\n hideInSearch: true,\n width: 30,\n },\n {\n title: '创建时间',\n dataIndex: 'createTime',\n align: 'center',\n hideInSearch: true,\n width: 45,\n render: (value, row) => {\n return {\n children: value,\n props: { rowSpan: row.span },\n };\n },\n },\n {\n title: '创建人',\n dataIndex: 'creator',\n align: 'center',\n hideInSearch: true,\n width: 40,\n render: (value, row) => {\n return {\n children: value,\n props: { rowSpan: row.span },\n };\n },\n },\n {\n title: '任务总数',\n dataIndex: 'task',\n align: 'center',\n hideInSearch: true,\n width: 40,\n render: (, record) => {\n return (\n <span\n onClick={() => setDepBugModal({ visible: true, projectTask: record.task })}\n style={{ cursor: 'pointer', color: '#1890FF' }}\n >\n {record.task?.length || '0'}\n \n );\n },\n onCell: (row) => {\n return { rowSpan: row.span };\n },\n },\n {\n title: '本周完成任务',\n dataIndex: 'finishedTask',\n align: 'center',\n hideInSearch: true,\n width: 45,\n render: (, record) => {\n return (\n <span\n onClick={() => setDepBugModal({ visible: true, projectTask: record.finishedTask })}\n style={{ cursor: 'pointer', color: '#1890FF' }}\n >\n {record.finishedTask?.length || '0'}\n \n );\n },\n onCell: (row) => {\n return { rowSpan: row.span };\n },\n },\n {\n title: '待完成任务',\n dataIndex: 'unFinishedTask',\n align: 'center',\n hideInSearch: true,\n width: 40,\n render: (, record) => {\n return (\n <span\n onClick={() => setDepBugModal({ visible: true, projectTask: record.unFinishedTask })}\n style={{ cursor: 'pointer', color: '#1890FF' }}\n >\n {record.unFinishedTask?.length || '0'}\n \n );\n },\n onCell: (row) => {\n return { rowSpan: row.span };\n },\n },\n {\n title: '周报合并项目(共预算项目)',\n dataIndex: 'projectName',\n align: 'center',\n hideInSearch: true,\n width: 100,\n render: (, record: any) => {\n return (\n <div style={{ textAlign: 'left' }}>\n <Link\n onClick={() => {\n changeCurrent(record.projectId);\n history.push(/project/operation/home?projectId=${record.projectId});\n }}\n >\n {record.projectName}\n \n