{"ast":null,"code":"var _jsxFileName = \"/Users/nili/Documents/trae_projects/client/src/pages/ProjectDetail.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { Card, Descriptions, Tag, Button, Space, Modal, Form, Input, Select, DatePicker, message, Tabs, List, Timeline, Table, Popconfirm, Progress, Row, Col, Upload, Spin, Alert, Collapse } from 'antd';\nimport { ArrowLeftOutlined, EditOutlined, PlusOutlined, CheckOutlined, CloseOutlined, UploadOutlined, FileTextOutlined, DeleteOutlined, DownloadOutlined, AnalyzeOutlined, ReloadOutlined } from '@ant-design/icons';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { projectsAPI, usersAPI, investorsAPI } from '../services/api';\nimport { useAuth } from '../contexts/AuthContext';\nimport dayjs from 'dayjs';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst {\n  Option\n} = Select;\nconst {\n  TextArea\n} = Input;\nconst ProjectDetail = () => {\n  _s();\n  const {\n    id\n  } = useParams();\n  const navigate = useNavigate();\n  const {\n    isInvestmentManager\n  } = useAuth();\n  const [project, setProject] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [users, setUsers] = useState([]);\n  const [investors, setInvestors] = useState([]);\n  const [documents, setDocuments] = useState([]);\n  const [documentsLoading, setDocumentsLoading] = useState(false);\n  const [uploading, setUploading] = useState(false);\n  useEffect(() => {\n    fetchProject();\n    fetchUsers();\n    fetchInvestors();\n  }, [id]);\n  const fetchProject = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getOne(id);\n      setProject(response.data);\n    } catch (error) {\n      message.error('获取项目详情失败');\n    } finally {\n      setLoading(false);\n    }\n  };\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({\n        limit: 100\n      });\n      setUsers(response.data.users);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n  const fetchInvestors = async () => {\n    try {\n      const response = await investorsAPI.getAll({\n        limit: 100\n      });\n      setInvestors(response.data.investors);\n    } catch (error) {\n      console.error('获取投资者列表失败:', error);\n    }\n  };\n  const getStatusColor = status => {\n    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n  const getStatusText = status => {\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n  const getPriorityColor = priority => {\n    const colors = {\n      high: 'red',\n      medium: 'orange',\n      low: 'blue'\n    };\n    return colors[priority] || 'default';\n  };\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n  const handleRemoveInvestor = async investorId => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n  if (loading) return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: \"\\u52A0\\u8F7D\\u4E2D...\"\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 216,\n    columnNumber: 23\n  }, this);\n  if (!project) return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: \"\\u9879\\u76EE\\u4E0D\\u5B58\\u5728\"\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 217,\n    columnNumber: 24\n  }, this);\n  const taskColumns = [{\n    title: '任务标题',\n    dataIndex: 'title',\n    key: 'title'\n  }, {\n    title: '描述',\n    dataIndex: 'description',\n    key: 'description'\n  }, {\n    title: '优先级',\n    dataIndex: 'priority',\n    key: 'priority',\n    render: p => /*#__PURE__*/_jsxDEV(Tag, {\n      color: getPriorityColor(p),\n      children: p === 'high' ? '高' : p === 'medium' ? '中' : '低'\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 226,\n      columnNumber: 22\n    }, this)\n  }, {\n    title: '负责人',\n    dataIndex: 'assigned_to_name',\n    key: 'assigned_to_name'\n  }, {\n    title: '截止日期',\n    dataIndex: 'due_date',\n    key: 'due_date',\n    render: d => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n  }, {\n    title: '状态',\n    dataIndex: 'status',\n    key: 'status',\n    render: (status, record) => /*#__PURE__*/_jsxDEV(Space, {\n      children: [/*#__PURE__*/_jsxDEV(Tag, {\n        color: status === 'completed' ? 'green' : status === 'in_progress' ? 'blue' : 'default',\n        children: status === 'completed' ? '已完成' : status === 'in_progress' ? '进行中' : '待处理'\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 241,\n        columnNumber: 11\n      }, this), isInvestmentManager() && status !== 'completed' && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"text\",\n        size: \"small\",\n        icon: /*#__PURE__*/_jsxDEV(CheckOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 245,\n          columnNumber: 52\n        }, this),\n        onClick: () => handleUpdateTaskStatus(record.id, 'completed')\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 245,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 240,\n      columnNumber: 9\n    }, this)\n  }];\n  const investorColumns = [{\n    title: '投资者',\n    dataIndex: 'investor_name',\n    key: 'investor_name'\n  }, {\n    title: '投资金额',\n    dataIndex: 'investment_amount',\n    key: 'investment_amount',\n    render: a => a ? `¥${a.toLocaleString()}` : '-'\n  }, {\n    title: '股权比例',\n    dataIndex: 'equity_ratio',\n    key: 'equity_ratio',\n    render: r => r ? `${r}%` : '-'\n  }, {\n    title: '投资日期',\n    dataIndex: 'investment_date',\n    key: 'investment_date',\n    render: d => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n  }, {\n    title: '操作',\n    key: 'actions',\n    render: (_, record) => isInvestmentManager() && /*#__PURE__*/_jsxDEV(Popconfirm, {\n      title: \"\\u786E\\u5B9A\\u79FB\\u9664\\u8BE5\\u6295\\u8D44\\u8005?\",\n      onConfirm: () => handleRemoveInvestor(record.investor_id),\n      children: /*#__PURE__*/_jsxDEV(Button, {\n        type: \"text\",\n        danger: true,\n        size: \"small\",\n        children: \"\\u79FB\\u9664\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 277,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 276,\n      columnNumber: 9\n    }, this)\n  }];\n  const tabs = [{\n    key: 'overview',\n    label: '概览',\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Card, {\n        title: \"\\u57FA\\u672C\\u4FE1\\u606F\",\n        style: {\n          marginBottom: 16\n        },\n        children: [/*#__PURE__*/_jsxDEV(Descriptions, {\n          column: 2,\n          children: [/*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u540D\\u79F0\",\n            children: project.project.name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 291,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u4EE3\\u7801\",\n            children: project.project.code || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 292,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u516C\\u53F8\\u540D\\u79F0\",\n            children: project.project.company_name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 293,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u884C\\u4E1A\",\n            children: project.project.industry ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"blue\",\n              children: project.project.industry\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 294,\n              columnNumber: 73\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 294,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9636\\u6BB5\",\n            children: project.project.stage ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"cyan\",\n              children: project.project.stage\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 295,\n              columnNumber: 70\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 295,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u72B6\\u6001\",\n            children: /*#__PURE__*/_jsxDEV(Tag, {\n              color: getStatusColor(project.project.status),\n              children: getStatusText(project.project.status)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 296,\n              columnNumber: 45\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 296,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u6295\\u8D44\\u989D\",\n            children: project.project.investment_amount ? `¥${project.project.investment_amount.toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 297,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u4F30\\u503C\",\n            children: project.project.valuation ? `¥${project.project.valuation.toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 298,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u80A1\\u6743\\u6BD4\\u4F8B\",\n            children: project.project.equity_ratio ? `${project.project.equity_ratio}%` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 299,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u8D1F\\u8D23\\u4EBA\",\n            children: project.project.assigned_to_name || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 300,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u4EBA\",\n            children: project.project.created_by_name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 301,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u65F6\\u95F4\",\n            children: dayjs(project.project.created_at).format('YYYY-MM-DD HH:mm')\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 302,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 290,\n          columnNumber: 13\n        }, this), project.project.description && /*#__PURE__*/_jsxDEV(_Fragment, {\n          children: [/*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 306,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            children: /*#__PURE__*/_jsxDEV(\"strong\", {\n              children: \"\\u9879\\u76EE\\u63CF\\u8FF0:\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 307,\n              columnNumber: 22\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 307,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 8,\n              color: '#666'\n            },\n            children: project.project.description\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 308,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 289,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Row, {\n        gutter: 16,\n        children: [/*#__PURE__*/_jsxDEV(Col, {\n          span: 12,\n          children: /*#__PURE__*/_jsxDEV(Card, {\n            title: \"\\u91CC\\u7A0B\\u7891\",\n            extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 315,\n                columnNumber: 104\n              }, this),\n              onClick: () => setMilestoneModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 315,\n              columnNumber: 65\n            }, this),\n            children: /*#__PURE__*/_jsxDEV(Timeline, {\n              children: project.milestones.map(ms => /*#__PURE__*/_jsxDEV(Timeline.Item, {\n                color: ms.status === 'completed' ? 'green' : ms.status === 'in_progress' ? 'blue' : 'gray',\n                children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    fontWeight: 'bold'\n                  },\n                  children: ms.name\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 322,\n                  columnNumber: 23\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    fontSize: 12,\n                    color: '#666'\n                  },\n                  children: [\"\\u8BA1\\u5212: \", ms.planned_date ? dayjs(ms.planned_date).format('YYYY-MM-DD') : '-', ms.actual_date && ` | 实际: ${dayjs(ms.actual_date).format('YYYY-MM-DD')}`]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 323,\n                  columnNumber: 23\n                }, this), ms.description && /*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    fontSize: 13,\n                    marginTop: 4\n                  },\n                  children: ms.description\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 327,\n                  columnNumber: 42\n                }, this)]\n              }, ms.id, true, {\n                fileName: _jsxFileName,\n                lineNumber: 318,\n                columnNumber: 21\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 316,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 315,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 314,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Col, {\n          span: 12,\n          children: /*#__PURE__*/_jsxDEV(Card, {\n            title: \"\\u9879\\u76EE\\u52A8\\u6001\",\n            extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 334,\n                columnNumber: 105\n              }, this),\n              onClick: () => setUpdateModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 334,\n              columnNumber: 66\n            }, this),\n            children: /*#__PURE__*/_jsxDEV(List, {\n              dataSource: project.updates,\n              renderItem: update => /*#__PURE__*/_jsxDEV(List.Item, {\n                children: /*#__PURE__*/_jsxDEV(List.Item.Meta, {\n                  title: /*#__PURE__*/_jsxDEV(\"span\", {\n                    style: {\n                      fontWeight: 500\n                    },\n                    children: update.title\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 340,\n                    columnNumber: 32\n                  }, this),\n                  description: /*#__PURE__*/_jsxDEV(\"div\", {\n                    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                      style: {\n                        fontSize: 12,\n                        color: '#999',\n                        marginBottom: 4\n                      },\n                      children: [update.created_by_name, \" \\xB7 \", dayjs(update.created_at).format('YYYY-MM-DD HH:mm')]\n                    }, void 0, true, {\n                      fileName: _jsxFileName,\n                      lineNumber: 343,\n                      columnNumber: 29\n                    }, this), update.content]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 342,\n                    columnNumber: 27\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 339,\n                  columnNumber: 23\n                }, this)\n              }, update.id, false, {\n                fileName: _jsxFileName,\n                lineNumber: 338,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 335,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 334,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 333,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 313,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: 'tasks',\n    label: '任务',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 363,\n          columnNumber: 76\n        }, this),\n        onClick: () => setTaskModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 363,\n        columnNumber: 47\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Table, {\n        columns: taskColumns,\n        dataSource: project.tasks,\n        rowKey: \"id\",\n        pagination: false\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 364,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 363,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'investors',\n    label: '投资者',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 372,\n          columnNumber: 76\n        }, this),\n        onClick: () => setInvestorModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u6295\\u8D44\\u8005\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 372,\n        columnNumber: 47\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Table, {\n        columns: investorColumns,\n        dataSource: project.investors,\n        rowKey: \"id\",\n        pagination: false\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 373,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 372,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'documents',\n    label: '文档',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      children: \"\\u6682\\u65E0\\u6587\\u6863\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 380,\n      columnNumber: 17\n    }, this)\n  }];\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        marginBottom: 16\n      },\n      children: /*#__PURE__*/_jsxDEV(Button, {\n        icon: /*#__PURE__*/_jsxDEV(ArrowLeftOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 387,\n          columnNumber: 23\n        }, this),\n        onClick: () => navigate('/projects'),\n        children: \"\\u8FD4\\u56DE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 387,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 386,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Card, {\n      title: project.project.name,\n      extra: /*#__PURE__*/_jsxDEV(Space, {\n        children: [/*#__PURE__*/_jsxDEV(Tag, {\n          color: getStatusColor(project.project.status),\n          children: getStatusText(project.project.status)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 394,\n          columnNumber: 13\n        }, this), project.project.industry && /*#__PURE__*/_jsxDEV(Tag, {\n          color: \"blue\",\n          children: project.project.industry\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 395,\n          columnNumber: 42\n        }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n          icon: /*#__PURE__*/_jsxDEV(EditOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 396,\n            columnNumber: 53\n          }, this),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 396,\n          columnNumber: 39\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 393,\n        columnNumber: 11\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Tabs, {\n        items: tabs\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 400,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 390,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\",\n      open: taskModalVisible,\n      onOk: handleAddTask,\n      onCancel: () => setTaskModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: taskForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"title\",\n          label: \"\\u4EFB\\u52A1\\u6807\\u9898\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 406,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 405,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"description\",\n          label: \"\\u63CF\\u8FF0\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 409,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 408,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"priority\",\n          label: \"\\u4F18\\u5148\\u7EA7\",\n          initialValue: \"medium\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: \"high\",\n              children: \"\\u9AD8\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 413,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"medium\",\n              children: \"\\u4E2D\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 414,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"low\",\n              children: \"\\u4F4E\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 415,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 412,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 411,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"assignedTo\",\n          label: \"\\u8D1F\\u8D23\\u4EBA\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: users.map(u => /*#__PURE__*/_jsxDEV(Option, {\n              value: u.id,\n              children: u.full_name\n            }, u.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 420,\n              columnNumber: 31\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 419,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 418,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"dueDate\",\n          label: \"\\u622A\\u6B62\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 424,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 423,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 404,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 403,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u91CC\\u7A0B\\u7891\",\n      open: milestoneModalVisible,\n      onOk: handleAddMilestone,\n      onCancel: () => setMilestoneModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: milestoneForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"name\",\n          label: \"\\u91CC\\u7A0B\\u7891\\u540D\\u79F0\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 432,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 431,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"description\",\n          label: \"\\u63CF\\u8FF0\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 435,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 434,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"plannedDate\",\n          label: \"\\u8BA1\\u5212\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 438,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 437,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 430,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 429,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u9879\\u76EE\\u66F4\\u65B0\",\n      open: updateModalVisible,\n      onOk: handleAddUpdate,\n      onCancel: () => setUpdateModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: updateForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"title\",\n          label: \"\\u6807\\u9898\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 446,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 445,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"updateType\",\n          label: \"\\u7C7B\\u578B\",\n          initialValue: \"general\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: \"general\",\n              children: \"\\u666E\\u901A\\u66F4\\u65B0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 450,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"progress\",\n              children: \"\\u8FDB\\u5EA6\\u66F4\\u65B0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 451,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"risk\",\n              children: \"\\u98CE\\u9669\\u63D0\\u793A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 452,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"milestone\",\n              children: \"\\u91CC\\u7A0B\\u7891\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 453,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 449,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 448,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"content\",\n          label: \"\\u5185\\u5BB9\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 457,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 456,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 444,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 443,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u6295\\u8D44\\u8005\",\n      open: investorModalVisible,\n      onOk: handleAddInvestor,\n      onCancel: () => setInvestorModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: investorForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"investorId\",\n          label: \"\\u6295\\u8D44\\u8005\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: investors.map(i => /*#__PURE__*/_jsxDEV(Option, {\n              value: i.id,\n              children: i.name\n            }, i.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 466,\n              columnNumber: 35\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 465,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 464,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"investmentAmount\",\n          label: \"\\u6295\\u8D44\\u91D1\\u989D\",\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            type: \"number\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 470,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 469,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"equityRatio\",\n          label: \"\\u80A1\\u6743\\u6BD4\\u4F8B(%)\",\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            type: \"number\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 473,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 472,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"investmentDate\",\n          label: \"\\u6295\\u8D44\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 476,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 475,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"notes\",\n          label: \"\\u5907\\u6CE8\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 479,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 478,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 463,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 462,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 385,\n    columnNumber: 5\n  }, this);\n};\n_s(ProjectDetail, \"2y/+IZaZK3Gnk+M4GG+QRALdi9s=\", false, function () {\n  return [useParams, useNavigate, useAuth, Form.useForm, Form.useForm, Form.useForm, Form.useForm];\n});\n_c = ProjectDetail;\nexport default ProjectDetail;\nvar _c;\n$RefreshReg$(_c, \"ProjectDetail\");","map":{"version":3,"names":["React","useState","useEffect","Card","Descriptions","Tag","Button","Space","Modal","Form","Input","Select","DatePicker","message","Tabs","List","Timeline","Table","Popconfirm","Progress","Row","Col","Upload","Spin","Alert","Collapse","ArrowLeftOutlined","EditOutlined","PlusOutlined","CheckOutlined","CloseOutlined","UploadOutlined","FileTextOutlined","DeleteOutlined","DownloadOutlined","AnalyzeOutlined","ReloadOutlined","useParams","useNavigate","projectsAPI","usersAPI","investorsAPI","useAuth","dayjs","jsxDEV","_jsxDEV","Fragment","_Fragment","Option","TextArea","ProjectDetail","_s","id","navigate","isInvestmentManager","project","setProject","loading","setLoading","users","setUsers","investors","setInvestors","documents","setDocuments","documentsLoading","setDocumentsLoading","uploading","setUploading","fetchProject","fetchUsers","fetchInvestors","response","getOne","data","error","getAll","limit","console","getStatusColor","status","colors","draft","active","completed","pending","paused","getStatusText","texts","getPriorityColor","priority","high","medium","low","taskModalVisible","setTaskModalVisible","milestoneModalVisible","setMilestoneModalVisible","updateModalVisible","setUpdateModalVisible","investorModalVisible","setInvestorModalVisible","taskForm","useForm","milestoneForm","updateForm","investorForm","handleAddTask","values","validateFields","addTask","dueDate","format","success","resetFields","handleUpdateTaskStatus","taskId","updateTask","completedAt","Date","toISOString","handleAddMilestone","addMilestone","plannedDate","handleAddUpdate","addUpdate","handleAddInvestor","addInvestor","investmentDate","handleRemoveInvestor","investorId","removeInvestor","children","fileName","_jsxFileName","lineNumber","columnNumber","taskColumns","title","dataIndex","key","render","p","color","d","record","type","size","icon","onClick","investorColumns","a","toLocaleString","r","_","onConfirm","investor_id","danger","tabs","label","style","marginBottom","column","Item","name","code","company_name","industry","stage","investment_amount","valuation","equity_ratio","assigned_to_name","created_by_name","created_at","description","marginTop","gutter","span","extra","milestones","map","ms","fontWeight","fontSize","planned_date","actual_date","dataSource","updates","renderItem","update","Meta","content","columns","tasks","rowKey","pagination","items","open","onOk","onCancel","form","layout","rules","required","rows","initialValue","value","u","full_name","width","i","_c","$RefreshReg$"],"sources":["/Users/nili/Documents/trae_projects/client/src/pages/ProjectDetail.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n  Card,\n  Descriptions,\n  Tag,\n  Button,\n  Space,\n  Modal,\n  Form,\n  Input,\n  Select,\n  DatePicker,\n  message,\n  Tabs,\n  List,\n  Timeline,\n  Table,\n  Popconfirm,\n  Progress,\n  Row,\n  Col,\n  Upload,\n  Spin,\n  Alert,\n  Collapse\n} from 'antd';\nimport {\n  ArrowLeftOutlined,\n  EditOutlined,\n  PlusOutlined,\n  CheckOutlined,\n  CloseOutlined,\n  UploadOutlined,\n  FileTextOutlined,\n  DeleteOutlined,\n  DownloadOutlined,\n  AnalyzeOutlined,\n  ReloadOutlined\n} from '@ant-design/icons';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { projectsAPI, usersAPI, investorsAPI } from '../services/api';\nimport { useAuth } from '../contexts/AuthContext';\nimport dayjs from 'dayjs';\n\nconst { Option } = Select;\nconst { TextArea } = Input;\n\nconst ProjectDetail = () => {\n  const { id } = useParams();\n  const navigate = useNavigate();\n  const { isInvestmentManager } = useAuth();\n  const [project, setProject] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [users, setUsers] = useState([]);\n  const [investors, setInvestors] = useState([]);\n  const [documents, setDocuments] = useState([]);\n  const [documentsLoading, setDocumentsLoading] = useState(false);\n  const [uploading, setUploading] = useState(false);\n\n  useEffect(() => {\n    fetchProject();\n    fetchUsers();\n    fetchInvestors();\n  }, [id]);\n\n  const fetchProject = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getOne(id);\n      setProject(response.data);\n    } catch (error) {\n      message.error('获取项目详情失败');\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({ limit: 100 });\n      setUsers(response.data.users);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n\n  const fetchInvestors = async () => {\n    try {\n      const response = await investorsAPI.getAll({ limit: 100 });\n      setInvestors(response.data.investors);\n    } catch (error) {\n      console.error('获取投资者列表失败:', error);\n    }\n  };\n\n  const getStatusColor = (status) => {\n    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n\n  const getStatusText = (status) => {\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n\n  const getPriorityColor = (priority) => {\n    const colors = { high: 'red', medium: 'orange', low: 'blue' };\n    return colors[priority] || 'default';\n  };\n\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n\n  const handleRemoveInvestor = async (investorId) => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n\n  if (loading) return <div>加载中...</div>;\n  if (!project) return <div>项目不存在</div>;\n\n  const taskColumns = [\n    { title: '任务标题', dataIndex: 'title', key: 'title' },\n    { title: '描述', dataIndex: 'description', key: 'description' },\n    {\n      title: '优先级',\n      dataIndex: 'priority',\n      key: 'priority',\n      render: (p) => <Tag color={getPriorityColor(p)}>{p === 'high' ? '高' : p === 'medium' ? '中' : '低'}</Tag>\n    },\n    { title: '负责人', dataIndex: 'assigned_to_name', key: 'assigned_to_name' },\n    {\n      title: '截止日期',\n      dataIndex: 'due_date',\n      key: 'due_date',\n      render: (d) => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n    },\n    {\n      title: '状态',\n      dataIndex: 'status',\n      key: 'status',\n      render: (status, record) => (\n        <Space>\n          <Tag color={status === 'completed' ? 'green' : status === 'in_progress' ? 'blue' : 'default'}>\n            {status === 'completed' ? '已完成' : status === 'in_progress' ? '进行中' : '待处理'}\n          </Tag>\n          {isInvestmentManager() && status !== 'completed' && (\n            <Button type=\"text\" size=\"small\" icon={<CheckOutlined />} onClick={() => handleUpdateTaskStatus(record.id, 'completed')} />\n          )}\n        </Space>\n      )\n    }\n  ];\n\n  const investorColumns = [\n    { title: '投资者', dataIndex: 'investor_name', key: 'investor_name' },\n    {\n      title: '投资金额',\n      dataIndex: 'investment_amount',\n      key: 'investment_amount',\n      render: (a) => a ? `¥${a.toLocaleString()}` : '-'\n    },\n    {\n      title: '股权比例',\n      dataIndex: 'equity_ratio',\n      key: 'equity_ratio',\n      render: (r) => r ? `${r}%` : '-'\n    },\n    {\n      title: '投资日期',\n      dataIndex: 'investment_date',\n      key: 'investment_date',\n      render: (d) => d ? dayjs(d).format('YYYY-MM-DD') : '-'\n    },\n    {\n      title: '操作',\n      key: 'actions',\n      render: (_, record) => isInvestmentManager() && (\n        <Popconfirm title=\"确定移除该投资者?\" onConfirm={() => handleRemoveInvestor(record.investor_id)}>\n          <Button type=\"text\" danger size=\"small\">移除</Button>\n        </Popconfirm>\n      )\n    }\n  ];\n\n  const tabs = [\n    {\n      key: 'overview',\n      label: '概览',\n      children: (\n        <>\n          <Card title=\"基本信息\" style={{ marginBottom: 16 }}>\n            <Descriptions column={2}>\n              <Descriptions.Item label=\"项目名称\">{project.project.name}</Descriptions.Item>\n              <Descriptions.Item label=\"项目代码\">{project.project.code || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"公司名称\">{project.project.company_name}</Descriptions.Item>\n              <Descriptions.Item label=\"行业\">{project.project.industry ? <Tag color=\"blue\">{project.project.industry}</Tag> : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"阶段\">{project.project.stage ? <Tag color=\"cyan\">{project.project.stage}</Tag> : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"状态\"><Tag color={getStatusColor(project.project.status)}>{getStatusText(project.project.status)}</Tag></Descriptions.Item>\n              <Descriptions.Item label=\"投资额\">{project.project.investment_amount ? `¥${project.project.investment_amount.toLocaleString()}` : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"估值\">{project.project.valuation ? `¥${project.project.valuation.toLocaleString()}` : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"股权比例\">{project.project.equity_ratio ? `${project.project.equity_ratio}%` : '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"负责人\">{project.project.assigned_to_name || '-'}</Descriptions.Item>\n              <Descriptions.Item label=\"创建人\">{project.project.created_by_name}</Descriptions.Item>\n              <Descriptions.Item label=\"创建时间\">{dayjs(project.project.created_at).format('YYYY-MM-DD HH:mm')}</Descriptions.Item>\n            </Descriptions>\n            {project.project.description && (\n              <>\n                <br />\n                <div><strong>项目描述:</strong></div>\n                <div style={{ marginTop: 8, color: '#666' }}>{project.project.description}</div>\n              </>\n            )}\n          </Card>\n\n          <Row gutter={16}>\n            <Col span={12}>\n              <Card title=\"里程碑\" extra={isInvestmentManager() && <Button type=\"link\" size=\"small\" icon={<PlusOutlined />} onClick={() => setMilestoneModalVisible(true)}>添加</Button>}>\n                <Timeline>\n                  {project.milestones.map(ms => (\n                    <Timeline.Item\n                      key={ms.id}\n                      color={ms.status === 'completed' ? 'green' : ms.status === 'in_progress' ? 'blue' : 'gray'}\n                    >\n                      <div style={{ fontWeight: 'bold' }}>{ms.name}</div>\n                      <div style={{ fontSize: 12, color: '#666' }}>\n                        计划: {ms.planned_date ? dayjs(ms.planned_date).format('YYYY-MM-DD') : '-'}\n                        {ms.actual_date && ` | 实际: ${dayjs(ms.actual_date).format('YYYY-MM-DD')}`}\n                      </div>\n                      {ms.description && <div style={{ fontSize: 13, marginTop: 4 }}>{ms.description}</div>}\n                    </Timeline.Item>\n                  ))}\n                </Timeline>\n              </Card>\n            </Col>\n            <Col span={12}>\n              <Card title=\"项目动态\" extra={isInvestmentManager() && <Button type=\"link\" size=\"small\" icon={<PlusOutlined />} onClick={() => setUpdateModalVisible(true)}>添加</Button>}>\n                <List\n                  dataSource={project.updates}\n                  renderItem={update => (\n                    <List.Item key={update.id}>\n                      <List.Item.Meta\n                        title={<span style={{ fontWeight: 500 }}>{update.title}</span>}\n                        description={\n                          <div>\n                            <div style={{ fontSize: 12, color: '#999', marginBottom: 4 }}>\n                              {update.created_by_name} · {dayjs(update.created_at).format('YYYY-MM-DD HH:mm')}\n                            </div>\n                            {update.content}\n                          </div>\n                        }\n                      />\n                    </List.Item>\n                  )}\n                />\n              </Card>\n            </Col>\n          </Row>\n        </>\n      )\n    },\n    {\n      key: 'tasks',\n      label: '任务',\n      children: (\n        <Card extra={isInvestmentManager() && <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setTaskModalVisible(true)}>添加任务</Button>}>\n          <Table columns={taskColumns} dataSource={project.tasks} rowKey=\"id\" pagination={false} />\n        </Card>\n      )\n    },\n    {\n      key: 'investors',\n      label: '投资者',\n      children: (\n        <Card extra={isInvestmentManager() && <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setInvestorModalVisible(true)}>添加投资者</Button>}>\n          <Table columns={investorColumns} dataSource={project.investors} rowKey=\"id\" pagination={false} />\n        </Card>\n      )\n    },\n    {\n      key: 'documents',\n      label: '文档',\n      children: <Card>暂无文档</Card>\n    }\n  ];\n\n  return (\n    <div>\n      <div style={{ marginBottom: 16 }}>\n        <Button icon={<ArrowLeftOutlined />} onClick={() => navigate('/projects')}>返回</Button>\n      </div>\n\n      <Card\n        title={project.project.name}\n        extra={\n          <Space>\n            <Tag color={getStatusColor(project.project.status)}>{getStatusText(project.project.status)}</Tag>\n            {project.project.industry && <Tag color=\"blue\">{project.project.industry}</Tag>}\n            {isInvestmentManager() && <Button icon={<EditOutlined />}>编辑</Button>}\n          </Space>\n        }\n      >\n        <Tabs items={tabs} />\n      </Card>\n\n      <Modal title=\"添加任务\" open={taskModalVisible} onOk={handleAddTask} onCancel={() => setTaskModalVisible(false)}>\n        <Form form={taskForm} layout=\"vertical\">\n          <Form.Item name=\"title\" label=\"任务标题\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"description\" label=\"描述\">\n            <TextArea rows={3} />\n          </Form.Item>\n          <Form.Item name=\"priority\" label=\"优先级\" initialValue=\"medium\">\n            <Select>\n              <Option value=\"high\">高</Option>\n              <Option value=\"medium\">中</Option>\n              <Option value=\"low\">低</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"assignedTo\" label=\"负责人\">\n            <Select>\n              {users.map(u => <Option key={u.id} value={u.id}>{u.full_name}</Option>)}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"dueDate\" label=\"截止日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      <Modal title=\"添加里程碑\" open={milestoneModalVisible} onOk={handleAddMilestone} onCancel={() => setMilestoneModalVisible(false)}>\n        <Form form={milestoneForm} layout=\"vertical\">\n          <Form.Item name=\"name\" label=\"里程碑名称\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"description\" label=\"描述\">\n            <TextArea rows={3} />\n          </Form.Item>\n          <Form.Item name=\"plannedDate\" label=\"计划日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      <Modal title=\"添加项目更新\" open={updateModalVisible} onOk={handleAddUpdate} onCancel={() => setUpdateModalVisible(false)}>\n        <Form form={updateForm} layout=\"vertical\">\n          <Form.Item name=\"title\" label=\"标题\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"updateType\" label=\"类型\" initialValue=\"general\">\n            <Select>\n              <Option value=\"general\">普通更新</Option>\n              <Option value=\"progress\">进度更新</Option>\n              <Option value=\"risk\">风险提示</Option>\n              <Option value=\"milestone\">里程碑</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"content\" label=\"内容\">\n            <TextArea rows={5} />\n          </Form.Item>\n        </Form>\n      </Modal>\n\n      <Modal title=\"添加投资者\" open={investorModalVisible} onOk={handleAddInvestor} onCancel={() => setInvestorModalVisible(false)}>\n        <Form form={investorForm} layout=\"vertical\">\n          <Form.Item name=\"investorId\" label=\"投资者\" rules={[{ required: true }]}>\n            <Select>\n              {investors.map(i => <Option key={i.id} value={i.id}>{i.name}</Option>)}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"investmentAmount\" label=\"投资金额\">\n            <Input type=\"number\" />\n          </Form.Item>\n          <Form.Item name=\"equityRatio\" label=\"股权比例(%)\">\n            <Input type=\"number\" />\n          </Form.Item>\n          <Form.Item name=\"investmentDate\" label=\"投资日期\">\n            <DatePicker style={{ width: '100%' }} />\n          </Form.Item>\n          <Form.Item name=\"notes\" label=\"备注\">\n            <TextArea rows={3} />\n          </Form.Item>\n        </Form>\n      </Modal>\n    </div>\n  );\n};\n\nexport default ProjectDetail;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}