{"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, FileSearchOutlined } from '@ant-design/icons';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { projectsAPI, usersAPI, investorsAPI, decisionProcessAPI, postInvestmentAPI, projectPermissionsAPI } 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  var _project$project, _project$project2, _project$project3, _project$project4, _project$project5, _project$project6, _project$project7, _project$project8, _project$project9, _project$project0, _project$project1, _project$project10, _project$project11, _project$project12, _project$project13, _project$project14, _project$project15, _project$project16;\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  const [decisionProcess, setDecisionProcess] = useState([]);\n  const [postInvestments, setPostInvestments] = useState([]);\n  const [projectPermissions, setProjectPermissions] = useState([]);\n  const [postInvestmentModalVisible, setPostInvestmentModalVisible] = useState(false);\n  const [permissionModalVisible, setPermissionModalVisible] = useState(false);\n  const [postInvestmentForm] = Form.useForm();\n  const [permissionForm] = Form.useForm();\n  useEffect(() => {\n    fetchProject();\n    fetchUsers();\n    fetchInvestors();\n    fetchDocuments();\n    fetchDecisionProcess();\n    fetchPostInvestments();\n    fetchProjectPermissions();\n  }, [id]);\n  const fetchProject = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getOne(id);\n      const data = response.data;\n      setProject({\n        project: data.project,\n        investors: data.investors || [],\n        tasks: data.tasks || [],\n        milestones: data.milestones || [],\n        updates: data.updates || [],\n        documents: data.documents || []\n      });\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    if (!status) return 'default';\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    if (!status) return '-';\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  const fetchDocuments = async () => {\n    setDocumentsLoading(true);\n    try {\n      const response = await projectsAPI.getDocuments(id);\n      setDocuments(response.data.documents || []);\n    } catch (error) {\n      console.error('获取文档列表失败:', error);\n    } finally {\n      setDocumentsLoading(false);\n    }\n  };\n  const handleUpload = async file => {\n    setUploading(true);\n    try {\n      const response = await projectsAPI.uploadDocument(id, file);\n      message.success('文件上传成功');\n      fetchDocuments();\n      setTimeout(fetchDocuments, 2000);\n    } catch (error) {\n      var _error$response, _error$response$data;\n      message.error(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.message) || '文件上传失败');\n    } finally {\n      setUploading(false);\n    }\n    return false;\n  };\n  const handleDownload = async (docId, fileName) => {\n    try {\n      const response = await projectsAPI.downloadDocument(id, docId);\n      const url = window.URL.createObjectURL(new Blob([response.data]));\n      const link = document.createElement('a');\n      link.href = url;\n      link.setAttribute('download', fileName);\n      document.body.appendChild(link);\n      link.click();\n      link.remove();\n    } catch (error) {\n      message.error('文件下载失败');\n    }\n  };\n  const handleAnalyze = async docId => {\n    try {\n      await projectsAPI.analyzeDocument(id, docId);\n      message.success('文件分析已启动');\n      fetchDocuments();\n      setTimeout(fetchDocuments, 2000);\n    } catch (error) {\n      message.error('文件分析失败');\n    }\n  };\n  const handleDeleteDocument = async docId => {\n    try {\n      await projectsAPI.deleteDocument(id, docId);\n      message.success('文档删除成功');\n      fetchDocuments();\n    } catch (error) {\n      message.error('文档删除失败');\n    }\n  };\n  const fetchDecisionProcess = async () => {\n    try {\n      const response = await decisionProcessAPI.getByProject(id);\n      setDecisionProcess(response.data.decision_process || []);\n    } catch (error) {\n      console.error('获取投资决策流程失败:', error);\n    }\n  };\n  const handleInitDecisionProcess = async () => {\n    try {\n      await decisionProcessAPI.init(id);\n      message.success('投资决策流程已初始化');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('初始化投资决策流程失败');\n    }\n  };\n  const handleUpdateDecisionStage = async (stageId, status, notes = '') => {\n    try {\n      await decisionProcessAPI.update(stageId, {\n        status,\n        notes\n      });\n      message.success('阶段更新成功');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('更新阶段失败');\n    }\n  };\n  const fetchPostInvestments = async () => {\n    try {\n      const response = await postInvestmentAPI.getByProject(id);\n      setPostInvestments(response.data.post_investment || []);\n    } catch (error) {\n      console.error('获取投后管理记录失败:', error);\n    }\n  };\n  const handleAddPostInvestment = async () => {\n    try {\n      const values = await postInvestmentForm.validateFields();\n      await postInvestmentAPI.create({\n        ...values,\n        projectId: id,\n        date: values.date ? values.date.format('YYYY-MM-DD') : null\n      });\n      message.success('投后记录创建成功');\n      setPostInvestmentModalVisible(false);\n      postInvestmentForm.resetFields();\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('创建投后记录失败');\n    }\n  };\n  const handleDeletePostInvestment = async recordId => {\n    try {\n      await postInvestmentAPI.delete(recordId);\n      message.success('投后记录删除成功');\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('删除投后记录失败');\n    }\n  };\n  const fetchProjectPermissions = async () => {\n    try {\n      const response = await projectPermissionsAPI.getByProject(id);\n      setProjectPermissions(response.data.project_permissions || []);\n    } catch (error) {\n      console.error('获取项目权限失败:', error);\n    }\n  };\n  const handleAddPermission = async () => {\n    try {\n      const values = await permissionForm.validateFields();\n      await projectPermissionsAPI.create({\n        projectId: id,\n        ...values,\n        canRead: values.canRead !== false,\n        canEdit: values.canEdit || false,\n        canCreate: values.canCreate || false,\n        canDelete: values.canDelete || false\n      });\n      message.success('权限创建成功');\n      setPermissionModalVisible(false);\n      permissionForm.resetFields();\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('创建权限失败');\n    }\n  };\n  const handleDeletePermission = async userId => {\n    try {\n      await projectPermissionsAPI.delete(id, userId);\n      message.success('权限删除成功');\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('删除权限失败');\n    }\n  };\n  const getAnalysisStatusTag = status => {\n    const statusMap = {\n      pending: {\n        color: 'default',\n        text: '待分析'\n      },\n      analyzing: {\n        color: 'blue',\n        text: '分析中'\n      },\n      completed: {\n        color: 'green',\n        text: '分析完成'\n      },\n      error: {\n        color: 'red',\n        text: '分析失败'\n      }\n    };\n    const info = statusMap[status] || {\n      color: 'default',\n      text: status\n    };\n    return /*#__PURE__*/_jsxDEV(Tag, {\n      color: info.color,\n      children: info.text\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 411,\n      columnNumber: 12\n    }, this);\n  };\n  const renderAnalysisResult = document => {\n    if (!document.analysis_result) return null;\n    try {\n      var _result$keywords, _result$recommendatio;\n      const result = JSON.parse(document.analysis_result);\n      if (result.error) {\n        return /*#__PURE__*/_jsxDEV(Alert, {\n          type: \"error\",\n          message: \"\\u5206\\u6790\\u5931\\u8D25\",\n          description: result.message\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 419,\n          columnNumber: 16\n        }, this);\n      }\n      return /*#__PURE__*/_jsxDEV(Collapse, {\n        ghost: true,\n        children: /*#__PURE__*/_jsxDEV(Collapse.Panel, {\n          header: \"\\u6587\\u4EF6\\u5206\\u6790\\u62A5\\u544A\",\n          children: [/*#__PURE__*/_jsxDEV(Descriptions, {\n            column: 1,\n            size: \"small\",\n            children: [/*#__PURE__*/_jsxDEV(Descriptions.Item, {\n              label: \"\\u6587\\u4EF6\\u7C7B\\u578B\",\n              children: result.fileType\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 425,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n              label: \"\\u6587\\u4EF6\\u5927\\u5C0F\",\n              children: result.fileSizeFormatted\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 426,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n              label: \"\\u5206\\u6790\\u6458\\u8981\",\n              children: result.summary\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 427,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 424,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 12\n            },\n            children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n              children: \"\\u5173\\u952E\\u8BCD\\uFF1A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 430,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Space, {\n              style: {\n                marginLeft: 8\n              },\n              children: (_result$keywords = result.keywords) === null || _result$keywords === void 0 ? void 0 : _result$keywords.map((kw, i) => /*#__PURE__*/_jsxDEV(Tag, {\n                color: \"blue\",\n                children: kw\n              }, i, false, {\n                fileName: _jsxFileName,\n                lineNumber: 432,\n                columnNumber: 50\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 431,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 429,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 12\n            },\n            children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n              children: \"\\u5EFA\\u8BAE\\uFF1A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 436,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n              style: {\n                marginTop: 8,\n                paddingLeft: 20\n              },\n              children: (_result$recommendatio = result.recommendations) === null || _result$recommendatio === void 0 ? void 0 : _result$recommendatio.map((rec, i) => /*#__PURE__*/_jsxDEV(\"li\", {\n                children: rec\n              }, i, false, {\n                fileName: _jsxFileName,\n                lineNumber: 438,\n                columnNumber: 58\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 437,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 435,\n            columnNumber: 13\n          }, this)]\n        }, \"1\", true, {\n          fileName: _jsxFileName,\n          lineNumber: 423,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 422,\n        columnNumber: 9\n      }, this);\n    } catch (e) {\n      return /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"warning\",\n        message: \"\\u65E0\\u6CD5\\u89E3\\u6790\\u5206\\u6790\\u7ED3\\u679C\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 445,\n        columnNumber: 14\n      }, this);\n    }\n  };\n  if (loading) return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: \"\\u52A0\\u8F7D\\u4E2D...\"\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 449,\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: 450,\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: 459,\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: 474,\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: 478,\n          columnNumber: 52\n        }, this),\n        onClick: () => handleUpdateTaskStatus(record.id, 'completed')\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 478,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 473,\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: 510,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 509,\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 = project.project) === null || _project$project === void 0 ? void 0 : _project$project.name) || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 524,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u4EE3\\u7801\",\n            children: ((_project$project2 = project.project) === null || _project$project2 === void 0 ? void 0 : _project$project2.code) || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 525,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u516C\\u53F8\\u540D\\u79F0\",\n            children: ((_project$project3 = project.project) === null || _project$project3 === void 0 ? void 0 : _project$project3.company_name) || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 526,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u884C\\u4E1A\",\n            children: (_project$project4 = project.project) !== null && _project$project4 !== void 0 && _project$project4.industry ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"blue\",\n              children: project.project.industry\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 527,\n              columnNumber: 74\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 527,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9636\\u6BB5\",\n            children: (_project$project5 = project.project) !== null && _project$project5 !== void 0 && _project$project5.stage ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"cyan\",\n              children: project.project.stage\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 528,\n              columnNumber: 71\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 528,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u72B6\\u6001\",\n            children: /*#__PURE__*/_jsxDEV(Tag, {\n              color: getStatusColor((_project$project6 = project.project) === null || _project$project6 === void 0 ? void 0 : _project$project6.status),\n              children: getStatusText((_project$project7 = project.project) === null || _project$project7 === void 0 ? void 0 : _project$project7.status)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 529,\n              columnNumber: 45\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 529,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u6295\\u8D44\\u989D\",\n            children: (_project$project8 = project.project) !== null && _project$project8 !== void 0 && _project$project8.investment_amount ? `¥${project.project.investment_amount.toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 530,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u4F30\\u503C\",\n            children: (_project$project9 = project.project) !== null && _project$project9 !== void 0 && _project$project9.valuation ? `¥${project.project.valuation.toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 531,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u80A1\\u6743\\u6BD4\\u4F8B\",\n            children: (_project$project0 = project.project) !== null && _project$project0 !== void 0 && _project$project0.equity_ratio ? `${project.project.equity_ratio}%` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 532,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u8D1F\\u8D23\\u4EBA\",\n            children: ((_project$project1 = project.project) === null || _project$project1 === void 0 ? void 0 : _project$project1.assigned_to_name) || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 533,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u4EBA\",\n            children: ((_project$project10 = project.project) === null || _project$project10 === void 0 ? void 0 : _project$project10.created_by_name) || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 534,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u65F6\\u95F4\",\n            children: (_project$project11 = project.project) !== null && _project$project11 !== void 0 && _project$project11.created_at ? dayjs(project.project.created_at).format('YYYY-MM-DD HH:mm') : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 535,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 523,\n          columnNumber: 13\n        }, this), ((_project$project12 = project.project) === null || _project$project12 === void 0 ? void 0 : _project$project12.description) && /*#__PURE__*/_jsxDEV(_Fragment, {\n          children: [/*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 539,\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: 540,\n              columnNumber: 22\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 540,\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: 541,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 522,\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: 548,\n                columnNumber: 104\n              }, this),\n              onClick: () => setMilestoneModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 548,\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: 555,\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: 556,\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: 560,\n                  columnNumber: 42\n                }, this)]\n              }, ms.id, true, {\n                fileName: _jsxFileName,\n                lineNumber: 551,\n                columnNumber: 21\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 549,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 548,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 547,\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: 567,\n                columnNumber: 105\n              }, this),\n              onClick: () => setUpdateModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 567,\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: 573,\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: 576,\n                      columnNumber: 29\n                    }, this), update.content]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 575,\n                    columnNumber: 27\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 572,\n                  columnNumber: 23\n                }, this)\n              }, update.id, false, {\n                fileName: _jsxFileName,\n                lineNumber: 571,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 568,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 567,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 566,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 546,\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: 596,\n          columnNumber: 76\n        }, this),\n        onClick: () => setTaskModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 596,\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: 597,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 596,\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: 605,\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: 605,\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: 606,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 605,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'documents',\n    label: '文档',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u9879\\u76EE\\u6587\\u6863\",\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Upload, {\n        beforeUpload: handleUpload,\n        showUploadList: false,\n        accept: \".pdf,.ppt,.pptx,.doc,.docx,.txt\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          type: \"primary\",\n          icon: /*#__PURE__*/_jsxDEV(UploadOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 625,\n            columnNumber: 25\n          }, this),\n          loading: uploading,\n          children: \"\\u4E0A\\u4F20\\u6587\\u6863\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 623,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 618,\n        columnNumber: 15\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Spin, {\n        spinning: documentsLoading,\n        children: documents.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n          type: \"info\",\n          message: \"\\u6682\\u65E0\\u6587\\u6863\",\n          description: \"\\u60A8\\u53EF\\u4EE5\\u4E0A\\u4F20PDF\\u3001PPT\\u3001Word\\u3001TXT\\u7B49\\u683C\\u5F0F\\u7684\\u9879\\u76EE\\u4ECB\\u7ECD\\u6587\\u6863\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 636,\n          columnNumber: 15\n        }, this) : /*#__PURE__*/_jsxDEV(List, {\n          dataSource: documents,\n          renderItem: doc => /*#__PURE__*/_jsxDEV(List.Item, {\n            actions: [/*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(DownloadOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 651,\n                columnNumber: 31\n              }, this),\n              onClick: () => handleDownload(doc.id, doc.name),\n              children: \"\\u4E0B\\u8F7D\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 648,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(FileSearchOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 659,\n                columnNumber: 33\n              }, this),\n              onClick: () => handleAnalyze(doc.id),\n              disabled: doc.analysis_status === 'analyzing',\n              children: doc.analysis_status === 'pending' ? '分析' : '重新分析'\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 656,\n              columnNumber: 23\n            }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Popconfirm, {\n              title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u4E2A\\u6587\\u6863\\u5417?\",\n              onConfirm: () => handleDeleteDocument(doc.id),\n              children: /*#__PURE__*/_jsxDEV(Button, {\n                type: \"link\",\n                size: \"small\",\n                danger: true,\n                icon: /*#__PURE__*/_jsxDEV(DeleteOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 670,\n                  columnNumber: 73\n                }, this),\n                children: \"\\u5220\\u9664\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 670,\n                columnNumber: 27\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 666,\n              columnNumber: 25\n            }, this)].filter(Boolean),\n            children: [/*#__PURE__*/_jsxDEV(List.Item.Meta, {\n              avatar: /*#__PURE__*/_jsxDEV(FileTextOutlined, {\n                style: {\n                  fontSize: 32,\n                  color: '#1890ff'\n                }\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 678,\n                columnNumber: 31\n              }, this),\n              title: /*#__PURE__*/_jsxDEV(Space, {\n                children: [doc.name, getAnalysisStatusTag(doc.analysis_status)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 680,\n                columnNumber: 25\n              }, this),\n              description: /*#__PURE__*/_jsxDEV(\"div\", {\n                children: [/*#__PURE__*/_jsxDEV(\"span\", {\n                  style: {\n                    marginRight: 16\n                  },\n                  children: [\"\\u4E0A\\u4F20\\u8005\\uFF1A\", doc.uploaded_by_name || '未知']\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 687,\n                  columnNumber: 27\n                }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n                  style: {\n                    marginRight: 16\n                  },\n                  children: [\"\\u5927\\u5C0F\\uFF1A\", ((doc.file_size || 0) / 1024 / 1024).toFixed(2), \" MB\"]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 690,\n                  columnNumber: 27\n                }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n                  children: [\"\\u4E0A\\u4F20\\u65F6\\u95F4\\uFF1A\", dayjs(doc.created_at).format('YYYY-MM-DD HH:mm')]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 693,\n                  columnNumber: 27\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 686,\n                columnNumber: 25\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 677,\n              columnNumber: 21\n            }, this), renderAnalysisResult(doc)]\n          }, doc.id, true, {\n            fileName: _jsxFileName,\n            lineNumber: 645,\n            columnNumber: 19\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 642,\n          columnNumber: 15\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 634,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 614,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'decision-process',\n    label: '投资决策流程',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u6295\\u8D44\\u51B3\\u7B56\\u6D41\\u7A0B\",\n      extra: isInvestmentManager() && decisionProcess.length === 0 && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 716,\n          columnNumber: 44\n        }, this),\n        onClick: handleInitDecisionProcess,\n        children: \"\\u521D\\u59CB\\u5316\\u6D41\\u7A0B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 716,\n        columnNumber: 15\n      }, this),\n      children: decisionProcess.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"info\",\n        message: \"\\u6682\\u65E0\\u51B3\\u7B56\\u6D41\\u7A0B\",\n        description: \"\\u70B9\\u51FB\\u4E0A\\u65B9\\u6309\\u94AE\\u521D\\u59CB\\u5316\\u6807\\u51C6\\u6295\\u8D44\\u51B3\\u7B56\\u6D41\\u7A0B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 723,\n        columnNumber: 13\n      }, this) : /*#__PURE__*/_jsxDEV(Timeline, {\n        children: decisionProcess.map(stage => /*#__PURE__*/_jsxDEV(Timeline.Item, {\n          color: stage.status === 'completed' ? 'green' : stage.status === 'in_progress' ? 'blue' : stage.status === 'rejected' ? 'red' : 'gray',\n          children: [/*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              fontWeight: 'bold',\n              marginBottom: 8\n            },\n            children: stage.stage\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 735,\n            columnNumber: 19\n          }, this), stage.notes && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginBottom: 8,\n              color: '#666'\n            },\n            children: stage.notes\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 736,\n            columnNumber: 35\n          }, this), stage.decided_by_name && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              fontSize: 12,\n              color: '#999'\n            },\n            children: [stage.decided_by_name, \" \\xB7 \", dayjs(stage.decided_at).format('YYYY-MM-DD HH:mm')]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 738,\n            columnNumber: 21\n          }, this), isInvestmentManager() && stage.status !== 'completed' && stage.status !== 'rejected' && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              marginTop: 12\n            },\n            children: /*#__PURE__*/_jsxDEV(Space, {\n              children: [stage.status !== 'in_progress' && /*#__PURE__*/_jsxDEV(Button, {\n                type: \"primary\",\n                size: \"small\",\n                onClick: () => handleUpdateDecisionStage(stage.id, 'in_progress'),\n                children: \"\\u5F00\\u59CB\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 746,\n                columnNumber: 27\n              }, this), stage.status === 'in_progress' && /*#__PURE__*/_jsxDEV(_Fragment, {\n                children: [/*#__PURE__*/_jsxDEV(Button, {\n                  type: \"primary\",\n                  size: \"small\",\n                  onClick: () => handleUpdateDecisionStage(stage.id, 'completed'),\n                  children: \"\\u901A\\u8FC7\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 756,\n                  columnNumber: 29\n                }, this), /*#__PURE__*/_jsxDEV(Button, {\n                  danger: true,\n                  size: \"small\",\n                  onClick: () => handleUpdateDecisionStage(stage.id, 'rejected'),\n                  children: \"\\u62D2\\u7EDD\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 763,\n                  columnNumber: 29\n                }, this)]\n              }, void 0, true)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 744,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 743,\n            columnNumber: 21\n          }, this)]\n        }, stage.id, true, {\n          fileName: _jsxFileName,\n          lineNumber: 731,\n          columnNumber: 17\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 729,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 712,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'post-investment',\n    label: '投后管理',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u6295\\u540E\\u7BA1\\u7406\\u8BB0\\u5F55\",\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 790,\n          columnNumber: 44\n        }, this),\n        onClick: () => setPostInvestmentModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u8BB0\\u5F55\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 790,\n        columnNumber: 15\n      }, this),\n      children: postInvestments.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"info\",\n        message: \"\\u6682\\u65E0\\u6295\\u540E\\u8BB0\\u5F55\",\n        description: \"\\u6DFB\\u52A0\\u6295\\u540E\\u7BA1\\u7406\\u8BB0\\u5F55\\uFF0C\\u8DDF\\u8E2A\\u9879\\u76EE\\u8FDB\\u5C55\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 797,\n        columnNumber: 13\n      }, this) : /*#__PURE__*/_jsxDEV(List, {\n        dataSource: postInvestments,\n        renderItem: record => /*#__PURE__*/_jsxDEV(List.Item, {\n          actions: isInvestmentManager() ? [/*#__PURE__*/_jsxDEV(Popconfirm, {\n            title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u6761\\u8BB0\\u5F55\\u5417?\",\n            onConfirm: () => handleDeletePostInvestment(record.id),\n            children: /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              danger: true,\n              icon: /*#__PURE__*/_jsxDEV(DeleteOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 814,\n                columnNumber: 71\n              }, this),\n              children: \"\\u5220\\u9664\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 814,\n              columnNumber: 25\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 810,\n            columnNumber: 23\n          }, this)] : [],\n          children: /*#__PURE__*/_jsxDEV(List.Item.Meta, {\n            title: /*#__PURE__*/_jsxDEV(Space, {\n              children: [/*#__PURE__*/_jsxDEV(Tag, {\n                color: record.type === 'meeting' ? 'blue' : record.type === 'financial' ? 'green' : record.type === 'operation' ? 'orange' : 'default',\n                children: record.type === 'meeting' ? '会议纪要' : record.type === 'financial' ? '财务报告' : record.type === 'operation' ? '运营报告' : record.type\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 824,\n                columnNumber: 25\n              }, this), record.title]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 823,\n              columnNumber: 23\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: [record.created_by_name, \" \\xB7 \", dayjs(record.date || record.created_at).format('YYYY-MM-DD')]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 832,\n                columnNumber: 25\n              }, this), record.content && /*#__PURE__*/_jsxDEV(\"div\", {\n                children: record.content\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 835,\n                columnNumber: 44\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 831,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 821,\n            columnNumber: 19\n          }, this)\n        }, record.id, false, {\n          fileName: _jsxFileName,\n          lineNumber: 806,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 803,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 786,\n      columnNumber: 9\n    }, this)\n  }, {\n    key: 'permissions',\n    label: '权限管理',\n    children: /*#__PURE__*/_jsxDEV(Card, {\n      title: \"\\u9879\\u76EE\\u6743\\u9650\",\n      extra: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 854,\n          columnNumber: 44\n        }, this),\n        onClick: () => setPermissionModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u7528\\u6237\\u6743\\u9650\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 854,\n        columnNumber: 15\n      }, this),\n      children: projectPermissions.length === 0 ? /*#__PURE__*/_jsxDEV(Alert, {\n        type: \"info\",\n        message: \"\\u6682\\u65E0\\u81EA\\u5B9A\\u4E49\\u6743\\u9650\",\n        description: \"\\u6DFB\\u52A0\\u7528\\u6237\\u6743\\u9650\\u4EE5\\u63A7\\u5236\\u9879\\u76EE\\u8BBF\\u95EE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 861,\n        columnNumber: 13\n      }, this) : /*#__PURE__*/_jsxDEV(Table, {\n        dataSource: projectPermissions,\n        rowKey: \"id\",\n        pagination: false,\n        columns: [{\n          title: '用户',\n          dataIndex: 'full_name',\n          key: 'full_name'\n        }, {\n          title: '用户名',\n          dataIndex: 'username',\n          key: 'username'\n        }, {\n          title: '可读',\n          dataIndex: 'can_read',\n          key: 'can_read',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 878,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 878,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '可编辑',\n          dataIndex: 'can_edit',\n          key: 'can_edit',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 884,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 884,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '可创建',\n          dataIndex: 'can_create',\n          key: 'can_create',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 890,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 890,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '可删除',\n          dataIndex: 'can_delete',\n          key: 'can_delete',\n          render: v => v ? /*#__PURE__*/_jsxDEV(CheckOutlined, {\n            style: {\n              color: 'green'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 896,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 896,\n            columnNumber: 85\n          }, this)\n        }, {\n          title: '操作',\n          key: 'actions',\n          render: (_, record) => isInvestmentManager() && /*#__PURE__*/_jsxDEV(Popconfirm, {\n            title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8BE5\\u7528\\u6237\\u7684\\u6743\\u9650\\u5417?\",\n            onConfirm: () => handleDeletePermission(record.user_id),\n            children: /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              danger: true,\n              size: \"small\",\n              children: \"\\u5220\\u9664\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 906,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 902,\n            columnNumber: 21\n          }, this)\n        }]\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 867,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 850,\n      columnNumber: 9\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: 921,\n          columnNumber: 23\n        }, this),\n        onClick: () => navigate('/projects'),\n        children: \"\\u8FD4\\u56DE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 921,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 920,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Card, {\n      title: ((_project$project13 = project.project) === null || _project$project13 === void 0 ? void 0 : _project$project13.name) || '项目详情',\n      extra: /*#__PURE__*/_jsxDEV(Space, {\n        children: [/*#__PURE__*/_jsxDEV(Tag, {\n          color: getStatusColor((_project$project14 = project.project) === null || _project$project14 === void 0 ? void 0 : _project$project14.status),\n          children: getStatusText((_project$project15 = project.project) === null || _project$project15 === void 0 ? void 0 : _project$project15.status)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 928,\n          columnNumber: 13\n        }, this), ((_project$project16 = project.project) === null || _project$project16 === void 0 ? void 0 : _project$project16.industry) && /*#__PURE__*/_jsxDEV(Tag, {\n          color: \"blue\",\n          children: project.project.industry\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 929,\n          columnNumber: 43\n        }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n          icon: /*#__PURE__*/_jsxDEV(EditOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 930,\n            columnNumber: 53\n          }, this),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 930,\n          columnNumber: 39\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 927,\n        columnNumber: 11\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Tabs, {\n        items: tabs\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 934,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 924,\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: 940,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 939,\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: 943,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 942,\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: 947,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"medium\",\n              children: \"\\u4E2D\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 948,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"low\",\n              children: \"\\u4F4E\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 949,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 946,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 945,\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: 954,\n              columnNumber: 31\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 953,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 952,\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: 958,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 957,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 938,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 937,\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: 966,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 965,\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: 969,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 968,\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: 972,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 971,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 964,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 963,\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: 980,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 979,\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: 984,\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: 985,\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: 986,\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: 987,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 983,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 982,\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: 991,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 990,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 978,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 977,\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: 1000,\n              columnNumber: 35\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 999,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 998,\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: 1004,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1003,\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: 1007,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1006,\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: 1010,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1009,\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: 1013,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1012,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 997,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 996,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u6295\\u540E\\u8BB0\\u5F55\",\n      open: postInvestmentModalVisible,\n      onOk: handleAddPostInvestment,\n      onCancel: () => setPostInvestmentModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: postInvestmentForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"type\",\n          label: \"\\u7C7B\\u578B\",\n          rules: [{\n            required: true\n          }],\n          initialValue: \"meeting\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: [/*#__PURE__*/_jsxDEV(Option, {\n              value: \"meeting\",\n              children: \"\\u4F1A\\u8BAE\\u7EAA\\u8981\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1022,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"financial\",\n              children: \"\\u8D22\\u52A1\\u62A5\\u544A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1023,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"operation\",\n              children: \"\\u8FD0\\u8425\\u62A5\\u544A\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1024,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"other\",\n              children: \"\\u5176\\u4ED6\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1025,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1021,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1020,\n          columnNumber: 11\n        }, this), /*#__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: 1029,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1028,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"date\",\n          label: \"\\u65E5\\u671F\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1032,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1031,\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: 1035,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1034,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 1019,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 1018,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: \"\\u6DFB\\u52A0\\u7528\\u6237\\u6743\\u9650\",\n      open: permissionModalVisible,\n      onOk: handleAddPermission,\n      onCancel: () => setPermissionModalVisible(false),\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: permissionForm,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"userId\",\n          label: \"\\u7528\\u6237\",\n          rules: [{\n            required: true\n          }],\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            children: users.filter(u => !projectPermissions.find(p => p.user_id === u.id)).map(u => /*#__PURE__*/_jsxDEV(Option, {\n              value: u.id,\n              children: [u.full_name, \" (\", u.username, \")\"]\n            }, u.id, true, {\n              fileName: _jsxFileName,\n              lineNumber: 1045,\n              columnNumber: 17\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1043,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1042,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canRead\",\n          label: \"\\u53EF\\u8BFB\",\n          valuePropName: \"checked\",\n          initialValue: true,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            options: [{\n              label: '是',\n              value: true\n            }, {\n              label: '否',\n              value: false\n            }]\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1050,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1049,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canEdit\",\n          label: \"\\u53EF\\u7F16\\u8F91\",\n          valuePropName: \"checked\",\n          initialValue: false,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            options: [{\n              label: '是',\n              value: true\n            }, {\n              label: '否',\n              value: false\n            }]\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1056,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1055,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canCreate\",\n          label: \"\\u53EF\\u521B\\u5EFA\",\n          valuePropName: \"checked\",\n          initialValue: false,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            options: [{\n              label: '是',\n              value: true\n            }, {\n              label: '否',\n              value: false\n            }]\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1062,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1061,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"canDelete\",\n          label: \"\\u53EF\\u5220\\u9664\",\n          valuePropName: \"checked\",\n          initialValue: false,\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            options: [{\n              label: '是',\n              value: true\n            }, {\n              label: '否',\n              value: false\n            }]\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1068,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1067,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 1041,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 1040,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 919,\n    columnNumber: 5\n  }, this);\n};\n_s(ProjectDetail, \"bA/85nACG1jADw98cHT8yiCMG+E=\", false, function () {\n  return [useParams, useNavigate, useAuth, Form.useForm, Form.useForm, 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","FileSearchOutlined","useParams","useNavigate","projectsAPI","usersAPI","investorsAPI","decisionProcessAPI","postInvestmentAPI","projectPermissionsAPI","useAuth","dayjs","jsxDEV","_jsxDEV","Fragment","_Fragment","Option","TextArea","ProjectDetail","_s","_project$project","_project$project2","_project$project3","_project$project4","_project$project5","_project$project6","_project$project7","_project$project8","_project$project9","_project$project0","_project$project1","_project$project10","_project$project11","_project$project12","_project$project13","_project$project14","_project$project15","_project$project16","id","navigate","isInvestmentManager","project","setProject","loading","setLoading","users","setUsers","investors","setInvestors","documents","setDocuments","documentsLoading","setDocumentsLoading","uploading","setUploading","decisionProcess","setDecisionProcess","postInvestments","setPostInvestments","projectPermissions","setProjectPermissions","postInvestmentModalVisible","setPostInvestmentModalVisible","permissionModalVisible","setPermissionModalVisible","postInvestmentForm","useForm","permissionForm","fetchProject","fetchUsers","fetchInvestors","fetchDocuments","fetchDecisionProcess","fetchPostInvestments","fetchProjectPermissions","response","getOne","data","tasks","milestones","updates","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","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","getDocuments","handleUpload","file","uploadDocument","setTimeout","_error$response","_error$response$data","handleDownload","docId","fileName","downloadDocument","url","window","URL","createObjectURL","Blob","link","document","createElement","href","setAttribute","body","appendChild","click","remove","handleAnalyze","analyzeDocument","handleDeleteDocument","deleteDocument","getByProject","decision_process","handleInitDecisionProcess","init","handleUpdateDecisionStage","stageId","notes","update","post_investment","handleAddPostInvestment","create","projectId","date","handleDeletePostInvestment","recordId","delete","project_permissions","handleAddPermission","canRead","canEdit","canCreate","canDelete","handleDeletePermission","userId","getAnalysisStatusTag","statusMap","color","text","analyzing","info","children","_jsxFileName","lineNumber","columnNumber","renderAnalysisResult","analysis_result","_result$keywords","_result$recommendatio","result","JSON","parse","type","description","ghost","Panel","header","column","size","Item","label","fileType","fileSizeFormatted","summary","style","marginTop","marginLeft","keywords","map","kw","i","paddingLeft","recommendations","rec","e","taskColumns","title","dataIndex","key","render","p","d","record","icon","onClick","investorColumns","a","toLocaleString","r","_","onConfirm","investor_id","danger","tabs","marginBottom","name","code","company_name","industry","stage","investment_amount","valuation","equity_ratio","assigned_to_name","created_by_name","created_at","gutter","span","extra","ms","fontWeight","fontSize","planned_date","actual_date","dataSource","renderItem","Meta","content","columns","rowKey","pagination","beforeUpload","showUploadList","accept","spinning","length","doc","actions","disabled","analysis_status","filter","Boolean","avatar","marginRight","uploaded_by_name","file_size","toFixed","decided_by_name","decided_at","v","user_id","items","open","onOk","onCancel","form","layout","rules","required","rows","initialValue","value","u","full_name","width","find","username","valuePropName","options","_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  FileSearchOutlined\n} from '@ant-design/icons';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { projectsAPI, usersAPI, investorsAPI, decisionProcessAPI, postInvestmentAPI, projectPermissionsAPI } 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  const [decisionProcess, setDecisionProcess] = useState([]);\n  const [postInvestments, setPostInvestments] = useState([]);\n  const [projectPermissions, setProjectPermissions] = useState([]);\n  const [postInvestmentModalVisible, setPostInvestmentModalVisible] = useState(false);\n  const [permissionModalVisible, setPermissionModalVisible] = useState(false);\n  const [postInvestmentForm] = Form.useForm();\n  const [permissionForm] = Form.useForm();\n\n  useEffect(() => {\n    fetchProject();\n    fetchUsers();\n    fetchInvestors();\n    fetchDocuments();\n    fetchDecisionProcess();\n    fetchPostInvestments();\n    fetchProjectPermissions();\n  }, [id]);\n\n  const fetchProject = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getOne(id);\n      const data = response.data;\n      setProject({\n        project: data.project,\n        investors: data.investors || [],\n        tasks: data.tasks || [],\n        milestones: data.milestones || [],\n        updates: data.updates || [],\n        documents: data.documents || []\n      });\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    if (!status) return 'default';\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    if (!status) return '-';\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  const fetchDocuments = async () => {\n    setDocumentsLoading(true);\n    try {\n      const response = await projectsAPI.getDocuments(id);\n      setDocuments(response.data.documents || []);\n    } catch (error) {\n      console.error('获取文档列表失败:', error);\n    } finally {\n      setDocumentsLoading(false);\n    }\n  };\n\n  const handleUpload = async (file) => {\n    setUploading(true);\n    try {\n      const response = await projectsAPI.uploadDocument(id, file);\n      message.success('文件上传成功');\n      fetchDocuments();\n      setTimeout(fetchDocuments, 2000);\n    } catch (error) {\n      message.error(error.response?.data?.message || '文件上传失败');\n    } finally {\n      setUploading(false);\n    }\n    return false;\n  };\n\n  const handleDownload = async (docId, fileName) => {\n    try {\n      const response = await projectsAPI.downloadDocument(id, docId);\n      const url = window.URL.createObjectURL(new Blob([response.data]));\n      const link = document.createElement('a');\n      link.href = url;\n      link.setAttribute('download', fileName);\n      document.body.appendChild(link);\n      link.click();\n      link.remove();\n    } catch (error) {\n      message.error('文件下载失败');\n    }\n  };\n\n  const handleAnalyze = async (docId) => {\n    try {\n      await projectsAPI.analyzeDocument(id, docId);\n      message.success('文件分析已启动');\n      fetchDocuments();\n      setTimeout(fetchDocuments, 2000);\n    } catch (error) {\n      message.error('文件分析失败');\n    }\n  };\n\n  const handleDeleteDocument = async (docId) => {\n    try {\n      await projectsAPI.deleteDocument(id, docId);\n      message.success('文档删除成功');\n      fetchDocuments();\n    } catch (error) {\n      message.error('文档删除失败');\n    }\n  };\n\n  const fetchDecisionProcess = async () => {\n    try {\n      const response = await decisionProcessAPI.getByProject(id);\n      setDecisionProcess(response.data.decision_process || []);\n    } catch (error) {\n      console.error('获取投资决策流程失败:', error);\n    }\n  };\n\n  const handleInitDecisionProcess = async () => {\n    try {\n      await decisionProcessAPI.init(id);\n      message.success('投资决策流程已初始化');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('初始化投资决策流程失败');\n    }\n  };\n\n  const handleUpdateDecisionStage = async (stageId, status, notes = '') => {\n    try {\n      await decisionProcessAPI.update(stageId, { status, notes });\n      message.success('阶段更新成功');\n      fetchDecisionProcess();\n    } catch (error) {\n      message.error('更新阶段失败');\n    }\n  };\n\n  const fetchPostInvestments = async () => {\n    try {\n      const response = await postInvestmentAPI.getByProject(id);\n      setPostInvestments(response.data.post_investment || []);\n    } catch (error) {\n      console.error('获取投后管理记录失败:', error);\n    }\n  };\n\n  const handleAddPostInvestment = async () => {\n    try {\n      const values = await postInvestmentForm.validateFields();\n      await postInvestmentAPI.create({\n        ...values,\n        projectId: id,\n        date: values.date ? values.date.format('YYYY-MM-DD') : null\n      });\n      message.success('投后记录创建成功');\n      setPostInvestmentModalVisible(false);\n      postInvestmentForm.resetFields();\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('创建投后记录失败');\n    }\n  };\n\n  const handleDeletePostInvestment = async (recordId) => {\n    try {\n      await postInvestmentAPI.delete(recordId);\n      message.success('投后记录删除成功');\n      fetchPostInvestments();\n    } catch (error) {\n      message.error('删除投后记录失败');\n    }\n  };\n\n  const fetchProjectPermissions = async () => {\n    try {\n      const response = await projectPermissionsAPI.getByProject(id);\n      setProjectPermissions(response.data.project_permissions || []);\n    } catch (error) {\n      console.error('获取项目权限失败:', error);\n    }\n  };\n\n  const handleAddPermission = async () => {\n    try {\n      const values = await permissionForm.validateFields();\n      await projectPermissionsAPI.create({\n        projectId: id,\n        ...values,\n        canRead: values.canRead !== false,\n        canEdit: values.canEdit || false,\n        canCreate: values.canCreate || false,\n        canDelete: values.canDelete || false\n      });\n      message.success('权限创建成功');\n      setPermissionModalVisible(false);\n      permissionForm.resetFields();\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('创建权限失败');\n    }\n  };\n\n  const handleDeletePermission = async (userId) => {\n    try {\n      await projectPermissionsAPI.delete(id, userId);\n      message.success('权限删除成功');\n      fetchProjectPermissions();\n    } catch (error) {\n      message.error('删除权限失败');\n    }\n  };\n\n  const getAnalysisStatusTag = (status) => {\n    const statusMap = {\n      pending: { color: 'default', text: '待分析' },\n      analyzing: { color: 'blue', text: '分析中' },\n      completed: { color: 'green', text: '分析完成' },\n      error: { color: 'red', text: '分析失败' }\n    };\n    const info = statusMap[status] || { color: 'default', text: status };\n    return <Tag color={info.color}>{info.text}</Tag>;\n  };\n\n  const renderAnalysisResult = (document) => {\n    if (!document.analysis_result) return null;\n    try {\n      const result = JSON.parse(document.analysis_result);\n      if (result.error) {\n        return <Alert type=\"error\" message=\"分析失败\" description={result.message} />;\n      }\n      return (\n        <Collapse ghost>\n          <Collapse.Panel header=\"文件分析报告\" key=\"1\">\n            <Descriptions column={1} size=\"small\">\n              <Descriptions.Item label=\"文件类型\">{result.fileType}</Descriptions.Item>\n              <Descriptions.Item label=\"文件大小\">{result.fileSizeFormatted}</Descriptions.Item>\n              <Descriptions.Item label=\"分析摘要\">{result.summary}</Descriptions.Item>\n            </Descriptions>\n            <div style={{ marginTop: 12 }}>\n              <strong>关键词：</strong>\n              <Space style={{ marginLeft: 8 }}>\n                {result.keywords?.map((kw, i) => <Tag key={i} color=\"blue\">{kw}</Tag>)}\n              </Space>\n            </div>\n            <div style={{ marginTop: 12 }}>\n              <strong>建议：</strong>\n              <ul style={{ marginTop: 8, paddingLeft: 20 }}>\n                {result.recommendations?.map((rec, i) => <li key={i}>{rec}</li>)}\n              </ul>\n            </div>\n          </Collapse.Panel>\n        </Collapse>\n      );\n    } catch (e) {\n      return <Alert type=\"warning\" message=\"无法解析分析结果\" />;\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=\"创建时间\">{project.project?.created_at ? 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: (\n        <Card\n          title=\"项目文档\"\n          extra={\n            isInvestmentManager() && (\n              <Upload\n                beforeUpload={handleUpload}\n                showUploadList={false}\n                accept=\".pdf,.ppt,.pptx,.doc,.docx,.txt\"\n              >\n                <Button\n                  type=\"primary\"\n                  icon={<UploadOutlined />}\n                  loading={uploading}\n                >\n                  上传文档\n                </Button>\n              </Upload>\n            )\n          }\n        >\n          <Spin spinning={documentsLoading}>\n            {documents.length === 0 ? (\n              <Alert\n                type=\"info\"\n                message=\"暂无文档\"\n                description=\"您可以上传PDF、PPT、Word、TXT等格式的项目介绍文档\"\n              />\n            ) : (\n              <List\n                dataSource={documents}\n                renderItem={(doc) => (\n                  <List.Item\n                    key={doc.id}\n                    actions={[\n                      <Button\n                        type=\"link\"\n                        size=\"small\"\n                        icon={<DownloadOutlined />}\n                        onClick={() => handleDownload(doc.id, doc.name)}\n                      >\n                        下载\n                      </Button>,\n                      <Button\n                          type=\"link\"\n                          size=\"small\"\n                          icon={<FileSearchOutlined />}\n                          onClick={() => handleAnalyze(doc.id)}\n                          disabled={doc.analysis_status === 'analyzing'}\n                        >\n                          {doc.analysis_status === 'pending' ? '分析' : '重新分析'}\n                        </Button>,\n                      isInvestmentManager() && (\n                        <Popconfirm\n                          title=\"确定要删除这个文档吗?\"\n                          onConfirm={() => handleDeleteDocument(doc.id)}\n                        >\n                          <Button type=\"link\" size=\"small\" danger icon={<DeleteOutlined />}>\n                            删除\n                          </Button>\n                        </Popconfirm>\n                      )\n                    ].filter(Boolean)}\n                  >\n                    <List.Item.Meta\n                      avatar={<FileTextOutlined style={{ fontSize: 32, color: '#1890ff' }} />}\n                      title={\n                        <Space>\n                          {doc.name}\n                          {getAnalysisStatusTag(doc.analysis_status)}\n                        </Space>\n                      }\n                      description={\n                        <div>\n                          <span style={{ marginRight: 16 }}>\n                            上传者：{doc.uploaded_by_name || '未知'}\n                          </span>\n                          <span style={{ marginRight: 16 }}>\n                            大小：{((doc.file_size || 0) / 1024 / 1024).toFixed(2)} MB\n                          </span>\n                          <span>\n                            上传时间：{dayjs(doc.created_at).format('YYYY-MM-DD HH:mm')}\n                          </span>\n                        </div>\n                      }\n                    />\n                    {renderAnalysisResult(doc)}\n                  </List.Item>\n                )}\n              />\n            )}\n          </Spin>\n        </Card>\n      )\n    },\n    {\n      key: 'decision-process',\n      label: '投资决策流程',\n      children: (\n        <Card\n          title=\"投资决策流程\"\n          extra={\n            isInvestmentManager() && decisionProcess.length === 0 && (\n              <Button type=\"primary\" icon={<PlusOutlined />} onClick={handleInitDecisionProcess}>\n                初始化流程\n              </Button>\n            )\n          }\n        >\n          {decisionProcess.length === 0 ? (\n            <Alert\n              type=\"info\"\n              message=\"暂无决策流程\"\n              description=\"点击上方按钮初始化标准投资决策流程\"\n            />\n          ) : (\n            <Timeline>\n              {decisionProcess.map((stage) => (\n                <Timeline.Item\n                  key={stage.id}\n                  color={stage.status === 'completed' ? 'green' : stage.status === 'in_progress' ? 'blue' : stage.status === 'rejected' ? 'red' : 'gray'}\n                >\n                  <div style={{ fontWeight: 'bold', marginBottom: 8 }}>{stage.stage}</div>\n                  {stage.notes && <div style={{ marginBottom: 8, color: '#666' }}>{stage.notes}</div>}\n                  {stage.decided_by_name && (\n                    <div style={{ fontSize: 12, color: '#999' }}>\n                      {stage.decided_by_name} · {dayjs(stage.decided_at).format('YYYY-MM-DD HH:mm')}\n                    </div>\n                  )}\n                  {isInvestmentManager() && stage.status !== 'completed' && stage.status !== 'rejected' && (\n                    <div style={{ marginTop: 12 }}>\n                      <Space>\n                        {stage.status !== 'in_progress' && (\n                          <Button\n                            type=\"primary\"\n                            size=\"small\"\n                            onClick={() => handleUpdateDecisionStage(stage.id, 'in_progress')}\n                          >\n                            开始\n                          </Button>\n                        )}\n                        {stage.status === 'in_progress' && (\n                          <>\n                            <Button\n                              type=\"primary\"\n                              size=\"small\"\n                              onClick={() => handleUpdateDecisionStage(stage.id, 'completed')}\n                            >\n                              通过\n                            </Button>\n                            <Button\n                              danger\n                              size=\"small\"\n                              onClick={() => handleUpdateDecisionStage(stage.id, 'rejected')}\n                            >\n                              拒绝\n                            </Button>\n                          </>\n                        )}\n                      </Space>\n                    </div>\n                  )}\n                </Timeline.Item>\n              ))}\n            </Timeline>\n          )}\n        </Card>\n      )\n    },\n    {\n      key: 'post-investment',\n      label: '投后管理',\n      children: (\n        <Card\n          title=\"投后管理记录\"\n          extra={\n            isInvestmentManager() && (\n              <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setPostInvestmentModalVisible(true)}>\n                添加记录\n              </Button>\n            )\n          }\n        >\n          {postInvestments.length === 0 ? (\n            <Alert\n              type=\"info\"\n              message=\"暂无投后记录\"\n              description=\"添加投后管理记录，跟踪项目进展\"\n            />\n          ) : (\n            <List\n              dataSource={postInvestments}\n              renderItem={(record) => (\n                <List.Item\n                  key={record.id}\n                  actions={\n                    isInvestmentManager() ? [\n                      <Popconfirm\n                        title=\"确定要删除这条记录吗?\"\n                        onConfirm={() => handleDeletePostInvestment(record.id)}\n                      >\n                        <Button type=\"link\" size=\"small\" danger icon={<DeleteOutlined />}>\n                          删除\n                        </Button>\n                      </Popconfirm>\n                    ] : []\n                  }\n                >\n                  <List.Item.Meta\n                    title={\n                      <Space>\n                        <Tag color={record.type === 'meeting' ? 'blue' : record.type === 'financial' ? 'green' : record.type === 'operation' ? 'orange' : 'default'}>\n                          {record.type === 'meeting' ? '会议纪要' : record.type === 'financial' ? '财务报告' : record.type === 'operation' ? '运营报告' : record.type}\n                        </Tag>\n                        {record.title}\n                      </Space>\n                    }\n                    description={\n                      <div>\n                        <div style={{ fontSize: 12, color: '#999', marginBottom: 4 }}>\n                          {record.created_by_name} · {dayjs(record.date || record.created_at).format('YYYY-MM-DD')}\n                        </div>\n                        {record.content && <div>{record.content}</div>}\n                      </div>\n                    }\n                  />\n                </List.Item>\n              )}\n            />\n          )}\n        </Card>\n      )\n    },\n    {\n      key: 'permissions',\n      label: '权限管理',\n      children: (\n        <Card\n          title=\"项目权限\"\n          extra={\n            isInvestmentManager() && (\n              <Button type=\"primary\" icon={<PlusOutlined />} onClick={() => setPermissionModalVisible(true)}>\n                添加用户权限\n              </Button>\n            )\n          }\n        >\n          {projectPermissions.length === 0 ? (\n            <Alert\n              type=\"info\"\n              message=\"暂无自定义权限\"\n              description=\"添加用户权限以控制项目访问\"\n            />\n          ) : (\n            <Table\n              dataSource={projectPermissions}\n              rowKey=\"id\"\n              pagination={false}\n              columns={[\n                { title: '用户', dataIndex: 'full_name', key: 'full_name' },\n                { title: '用户名', dataIndex: 'username', key: 'username' },\n                {\n                  title: '可读',\n                  dataIndex: 'can_read',\n                  key: 'can_read',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '可编辑',\n                  dataIndex: 'can_edit',\n                  key: 'can_edit',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '可创建',\n                  dataIndex: 'can_create',\n                  key: 'can_create',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '可删除',\n                  dataIndex: 'can_delete',\n                  key: 'can_delete',\n                  render: (v) => v ? <CheckOutlined style={{ color: 'green' }} /> : <CloseOutlined style={{ color: 'red' }} />\n                },\n                {\n                  title: '操作',\n                  key: 'actions',\n                  render: (_, record) => isInvestmentManager() && (\n                    <Popconfirm\n                      title=\"确定要删除该用户的权限吗?\"\n                      onConfirm={() => handleDeletePermission(record.user_id)}\n                    >\n                      <Button type=\"link\" danger size=\"small\">删除</Button>\n                    </Popconfirm>\n                  )\n                }\n              ]}\n            />\n          )}\n        </Card>\n      )\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\n      <Modal title=\"添加投后记录\" open={postInvestmentModalVisible} onOk={handleAddPostInvestment} onCancel={() => setPostInvestmentModalVisible(false)}>\n        <Form form={postInvestmentForm} layout=\"vertical\">\n          <Form.Item name=\"type\" label=\"类型\" rules={[{ required: true }]} initialValue=\"meeting\">\n            <Select>\n              <Option value=\"meeting\">会议纪要</Option>\n              <Option value=\"financial\">财务报告</Option>\n              <Option value=\"operation\">运营报告</Option>\n              <Option value=\"other\">其他</Option>\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"title\" label=\"标题\" rules={[{ required: true }]}>\n            <Input />\n          </Form.Item>\n          <Form.Item name=\"date\" label=\"日期\">\n            <DatePicker style={{ width: '100%' }} />\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={permissionModalVisible} onOk={handleAddPermission} onCancel={() => setPermissionModalVisible(false)}>\n        <Form form={permissionForm} layout=\"vertical\">\n          <Form.Item name=\"userId\" label=\"用户\" rules={[{ required: true }]}>\n            <Select>\n              {users.filter(u => !projectPermissions.find(p => p.user_id === u.id)).map(u => (\n                <Option key={u.id} value={u.id}>{u.full_name} ({u.username})</Option>\n              ))}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"canRead\" label=\"可读\" valuePropName=\"checked\" initialValue={true}>\n            <Select options={[\n              { label: '是', value: true },\n              { label: '否', value: false }\n            ]} />\n          </Form.Item>\n          <Form.Item name=\"canEdit\" label=\"可编辑\" valuePropName=\"checked\" initialValue={false}>\n            <Select options={[\n              { label: '是', value: true },\n              { label: '否', value: false }\n            ]} />\n          </Form.Item>\n          <Form.Item name=\"canCreate\" label=\"可创建\" valuePropName=\"checked\" initialValue={false}>\n            <Select options={[\n              { label: '是', value: true },\n              { label: '否', value: false }\n            ]} />\n          </Form.Item>\n          <Form.Item name=\"canDelete\" label=\"可删除\" valuePropName=\"checked\" initialValue={false}>\n            <Select options={[\n              { label: '是', value: true },\n              { label: '否', value: false }\n            ]} />\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":[]}