{"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  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    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n  const getStatusText = status => {\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n  const getPriorityColor = priority => {\n    const colors = {\n      high: 'red',\n      medium: 'orange',\n      low: 'blue'\n    };\n    return colors[priority] || 'default';\n  };\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n  const handleRemoveInvestor = async investorId => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n  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: 409,\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: 417,\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: 423,\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: 424,\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: 425,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 422,\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: 428,\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: 430,\n                columnNumber: 50\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 429,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 427,\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: 434,\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: 436,\n                columnNumber: 58\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 435,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 433,\n            columnNumber: 13\n          }, this)]\n        }, \"1\", true, {\n          fileName: _jsxFileName,\n          lineNumber: 421,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 420,\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: 443,\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: 447,\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: 448,\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: 457,\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: 472,\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: 476,\n          columnNumber: 52\n        }, this),\n        onClick: () => handleUpdateTaskStatus(record.id, 'completed')\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 476,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 471,\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: 508,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 507,\n      columnNumber: 9\n    }, this)\n  }];\n  const tabs = [{\n    key: 'overview',\n    label: '概览',\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Card, {\n        title: \"\\u57FA\\u672C\\u4FE1\\u606F\",\n        style: {\n          marginBottom: 16\n        },\n        children: [/*#__PURE__*/_jsxDEV(Descriptions, {\n          column: 2,\n          children: [/*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u540D\\u79F0\",\n            children: project.project.name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 522,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9879\\u76EE\\u4EE3\\u7801\",\n            children: project.project.code || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 523,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u516C\\u53F8\\u540D\\u79F0\",\n            children: project.project.company_name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 524,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u884C\\u4E1A\",\n            children: project.project.industry ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"blue\",\n              children: project.project.industry\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 525,\n              columnNumber: 73\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 525,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u9636\\u6BB5\",\n            children: project.project.stage ? /*#__PURE__*/_jsxDEV(Tag, {\n              color: \"cyan\",\n              children: project.project.stage\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 526,\n              columnNumber: 70\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 526,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u72B6\\u6001\",\n            children: /*#__PURE__*/_jsxDEV(Tag, {\n              color: getStatusColor(project.project.status),\n              children: getStatusText(project.project.status)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 527,\n              columnNumber: 45\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 527,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u6295\\u8D44\\u989D\",\n            children: project.project.investment_amount ? `¥${project.project.investment_amount.toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 528,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u4F30\\u503C\",\n            children: project.project.valuation ? `¥${project.project.valuation.toLocaleString()}` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 529,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u80A1\\u6743\\u6BD4\\u4F8B\",\n            children: project.project.equity_ratio ? `${project.project.equity_ratio}%` : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 530,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u8D1F\\u8D23\\u4EBA\",\n            children: project.project.assigned_to_name || '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 531,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u4EBA\",\n            children: project.project.created_by_name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 532,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Descriptions.Item, {\n            label: \"\\u521B\\u5EFA\\u65F6\\u95F4\",\n            children: dayjs(project.project.created_at).format('YYYY-MM-DD HH:mm')\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 533,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 521,\n          columnNumber: 13\n        }, this), project.project.description && /*#__PURE__*/_jsxDEV(_Fragment, {\n          children: [/*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 537,\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: 538,\n              columnNumber: 22\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 538,\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: 539,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 520,\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: 546,\n                columnNumber: 104\n              }, this),\n              onClick: () => setMilestoneModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 546,\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: 553,\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: 554,\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: 558,\n                  columnNumber: 42\n                }, this)]\n              }, ms.id, true, {\n                fileName: _jsxFileName,\n                lineNumber: 549,\n                columnNumber: 21\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 547,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 546,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 545,\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: 565,\n                columnNumber: 105\n              }, this),\n              onClick: () => setUpdateModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 565,\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: 571,\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: 574,\n                      columnNumber: 29\n                    }, this), update.content]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 573,\n                    columnNumber: 27\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 570,\n                  columnNumber: 23\n                }, this)\n              }, update.id, false, {\n                fileName: _jsxFileName,\n                lineNumber: 569,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 566,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 565,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 564,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 544,\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: 594,\n          columnNumber: 76\n        }, this),\n        onClick: () => setTaskModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 594,\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: 595,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 594,\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: 603,\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: 603,\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: 604,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 603,\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: 623,\n            columnNumber: 25\n          }, this),\n          loading: uploading,\n          children: \"\\u4E0A\\u4F20\\u6587\\u6863\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 621,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 616,\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: 634,\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: 649,\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: 646,\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: 657,\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: 654,\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: 668,\n                  columnNumber: 73\n                }, this),\n                children: \"\\u5220\\u9664\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 668,\n                columnNumber: 27\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 664,\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: 676,\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: 678,\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: 685,\n                  columnNumber: 27\n                }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n                  style: {\n                    marginRight: 16\n                  },\n                  children: [\"\\u5927\\u5C0F\\uFF1A\", (doc.file_size / 1024 / 1024).toFixed(2), \" MB\"]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 688,\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: 691,\n                  columnNumber: 27\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 684,\n                columnNumber: 25\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 675,\n              columnNumber: 21\n            }, this), renderAnalysisResult(doc)]\n          }, doc.id, true, {\n            fileName: _jsxFileName,\n            lineNumber: 643,\n            columnNumber: 19\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 640,\n          columnNumber: 15\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 632,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 612,\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: 714,\n          columnNumber: 44\n        }, this),\n        onClick: handleInitDecisionProcess,\n        children: \"\\u521D\\u59CB\\u5316\\u6D41\\u7A0B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 714,\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: 721,\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: 733,\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: 734,\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: 736,\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: 744,\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: 754,\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: 761,\n                  columnNumber: 29\n                }, this)]\n              }, void 0, true)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 742,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 741,\n            columnNumber: 21\n          }, this)]\n        }, stage.id, true, {\n          fileName: _jsxFileName,\n          lineNumber: 729,\n          columnNumber: 17\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 727,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 710,\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: 788,\n          columnNumber: 44\n        }, this),\n        onClick: () => setPostInvestmentModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u8BB0\\u5F55\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 788,\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: 795,\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: 812,\n                columnNumber: 71\n              }, this),\n              children: \"\\u5220\\u9664\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 812,\n              columnNumber: 25\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 808,\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: 822,\n                columnNumber: 25\n              }, this), record.title]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 821,\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: 830,\n                columnNumber: 25\n              }, this), record.content && /*#__PURE__*/_jsxDEV(\"div\", {\n                children: record.content\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 833,\n                columnNumber: 44\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 829,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 819,\n            columnNumber: 19\n          }, this)\n        }, record.id, false, {\n          fileName: _jsxFileName,\n          lineNumber: 804,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 801,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 784,\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: 852,\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: 852,\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: 859,\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: 876,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 876,\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: 882,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 882,\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: 888,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 888,\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: 894,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 894,\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: 904,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 900,\n            columnNumber: 21\n          }, this)\n        }]\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 865,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 848,\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: 919,\n          columnNumber: 23\n        }, this),\n        onClick: () => navigate('/projects'),\n        children: \"\\u8FD4\\u56DE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 919,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 918,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Card, {\n      title: project.project.name,\n      extra: /*#__PURE__*/_jsxDEV(Space, {\n        children: [/*#__PURE__*/_jsxDEV(Tag, {\n          color: getStatusColor(project.project.status),\n          children: getStatusText(project.project.status)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 926,\n          columnNumber: 13\n        }, this), project.project.industry && /*#__PURE__*/_jsxDEV(Tag, {\n          color: \"blue\",\n          children: project.project.industry\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 927,\n          columnNumber: 42\n        }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n          icon: /*#__PURE__*/_jsxDEV(EditOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 928,\n            columnNumber: 53\n          }, this),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 928,\n          columnNumber: 39\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 925,\n        columnNumber: 11\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Tabs, {\n        items: tabs\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 932,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 922,\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: 938,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 937,\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: 941,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 940,\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: 945,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"medium\",\n              children: \"\\u4E2D\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 946,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"low\",\n              children: \"\\u4F4E\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 947,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 944,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 943,\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: 952,\n              columnNumber: 31\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 951,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 950,\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: 956,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 955,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 936,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 935,\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: 964,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 963,\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: 967,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 966,\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: 970,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 969,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 962,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 961,\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: 978,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 977,\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: 982,\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: 983,\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: 984,\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: 985,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 981,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 980,\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: 989,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 988,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 976,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 975,\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: 998,\n              columnNumber: 35\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 997,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 996,\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: 1002,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1001,\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: 1005,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1004,\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: 1008,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1007,\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: 1011,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1010,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 995,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 994,\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: 1020,\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: 1021,\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: 1022,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"other\",\n              children: \"\\u5176\\u4ED6\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1023,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1019,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1018,\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: 1027,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1026,\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: 1030,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1029,\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: 1033,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1032,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 1017,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 1016,\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: 1043,\n              columnNumber: 17\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1041,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1040,\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: 1048,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1047,\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: 1054,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1053,\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: 1060,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1059,\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: 1066,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1065,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 1039,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 1038,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 917,\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","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    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n\n  const getStatusText = (status) => {\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n\n  const getPriorityColor = (priority) => {\n    const colors = { high: 'red', medium: 'orange', low: 'blue' };\n    return colors[priority] || 'default';\n  };\n\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n\n  const handleRemoveInvestor = async (investorId) => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n\n  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=\"创建时间\">{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 / 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":[]}