{"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      setProject(response.data);\n    } catch (error) {\n      message.error('获取项目详情失败');\n    } finally {\n      setLoading(false);\n    }\n  };\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({\n        limit: 100\n      });\n      setUsers(response.data.users);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n  const fetchInvestors = async () => {\n    try {\n      const response = await investorsAPI.getAll({\n        limit: 100\n      });\n      setInvestors(response.data.investors);\n    } catch (error) {\n      console.error('获取投资者列表失败:', error);\n    }\n  };\n  const getStatusColor = status => {\n    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n  const getStatusText = status => {\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n  const getPriorityColor = priority => {\n    const colors = {\n      high: 'red',\n      medium: 'orange',\n      low: 'blue'\n    };\n    return colors[priority] || 'default';\n  };\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n  const handleRemoveInvestor = async investorId => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n  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: 401,\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: 409,\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: 415,\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: 416,\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: 417,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 414,\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: 420,\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: 422,\n                columnNumber: 50\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 421,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 419,\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: 426,\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: 428,\n                columnNumber: 58\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 427,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 425,\n            columnNumber: 13\n          }, this)]\n        }, \"1\", true, {\n          fileName: _jsxFileName,\n          lineNumber: 413,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 412,\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: 435,\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: 439,\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: 440,\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: 449,\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: 464,\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: 468,\n          columnNumber: 52\n        }, this),\n        onClick: () => handleUpdateTaskStatus(record.id, 'completed')\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 468,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 463,\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: 500,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 499,\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: 514,\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: 515,\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: 516,\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: 517,\n              columnNumber: 73\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 517,\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: 518,\n              columnNumber: 70\n            }, this) : '-'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 518,\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: 519,\n              columnNumber: 45\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 519,\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: 520,\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: 521,\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: 522,\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: 523,\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: 524,\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: 525,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 513,\n          columnNumber: 13\n        }, this), project.project.description && /*#__PURE__*/_jsxDEV(_Fragment, {\n          children: [/*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 529,\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: 530,\n              columnNumber: 22\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 530,\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: 531,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 512,\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: 538,\n                columnNumber: 104\n              }, this),\n              onClick: () => setMilestoneModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 538,\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: 545,\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: 546,\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: 550,\n                  columnNumber: 42\n                }, this)]\n              }, ms.id, true, {\n                fileName: _jsxFileName,\n                lineNumber: 541,\n                columnNumber: 21\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 539,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 538,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 537,\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: 557,\n                columnNumber: 105\n              }, this),\n              onClick: () => setUpdateModalVisible(true),\n              children: \"\\u6DFB\\u52A0\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 557,\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: 563,\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: 566,\n                      columnNumber: 29\n                    }, this), update.content]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 565,\n                    columnNumber: 27\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 562,\n                  columnNumber: 23\n                }, this)\n              }, update.id, false, {\n                fileName: _jsxFileName,\n                lineNumber: 561,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 558,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 557,\n            columnNumber: 15\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 556,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 536,\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: 586,\n          columnNumber: 76\n        }, this),\n        onClick: () => setTaskModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u4EFB\\u52A1\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 586,\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: 587,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 586,\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: 595,\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: 595,\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: 596,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 595,\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: 615,\n            columnNumber: 25\n          }, this),\n          loading: uploading,\n          children: \"\\u4E0A\\u4F20\\u6587\\u6863\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 613,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 608,\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: 626,\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: 641,\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: 638,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              type: \"link\",\n              size: \"small\",\n              icon: /*#__PURE__*/_jsxDEV(AnalyzeOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 649,\n                columnNumber: 31\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: 646,\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: 660,\n                  columnNumber: 73\n                }, this),\n                children: \"\\u5220\\u9664\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 660,\n                columnNumber: 27\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 656,\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: 668,\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: 670,\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: 677,\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: 680,\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: 683,\n                  columnNumber: 27\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 676,\n                columnNumber: 25\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 667,\n              columnNumber: 21\n            }, this), renderAnalysisResult(doc)]\n          }, doc.id, true, {\n            fileName: _jsxFileName,\n            lineNumber: 635,\n            columnNumber: 19\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 632,\n          columnNumber: 15\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 624,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 604,\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: 706,\n          columnNumber: 44\n        }, this),\n        onClick: handleInitDecisionProcess,\n        children: \"\\u521D\\u59CB\\u5316\\u6D41\\u7A0B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 706,\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: 713,\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: 725,\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: 726,\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: 728,\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: 736,\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: 746,\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: 753,\n                  columnNumber: 29\n                }, this)]\n              }, void 0, true)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 734,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 733,\n            columnNumber: 21\n          }, this)]\n        }, stage.id, true, {\n          fileName: _jsxFileName,\n          lineNumber: 721,\n          columnNumber: 17\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 719,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 702,\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: 780,\n          columnNumber: 44\n        }, this),\n        onClick: () => setPostInvestmentModalVisible(true),\n        children: \"\\u6DFB\\u52A0\\u8BB0\\u5F55\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 780,\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: 787,\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: 804,\n                columnNumber: 71\n              }, this),\n              children: \"\\u5220\\u9664\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 804,\n              columnNumber: 25\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 800,\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: 814,\n                columnNumber: 25\n              }, this), record.title]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 813,\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: 822,\n                columnNumber: 25\n              }, this), record.content && /*#__PURE__*/_jsxDEV(\"div\", {\n                children: record.content\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 825,\n                columnNumber: 44\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 821,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 811,\n            columnNumber: 19\n          }, this)\n        }, record.id, false, {\n          fileName: _jsxFileName,\n          lineNumber: 796,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 793,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 776,\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: 844,\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: 844,\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: 851,\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: 868,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 868,\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: 874,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 874,\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: 880,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 880,\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: 886,\n            columnNumber: 38\n          }, this) : /*#__PURE__*/_jsxDEV(CloseOutlined, {\n            style: {\n              color: 'red'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 886,\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: 896,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 892,\n            columnNumber: 21\n          }, this)\n        }]\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 857,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 840,\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: 911,\n          columnNumber: 23\n        }, this),\n        onClick: () => navigate('/projects'),\n        children: \"\\u8FD4\\u56DE\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 911,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 910,\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: 918,\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: 919,\n          columnNumber: 42\n        }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n          icon: /*#__PURE__*/_jsxDEV(EditOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 920,\n            columnNumber: 53\n          }, this),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 920,\n          columnNumber: 39\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 917,\n        columnNumber: 11\n      }, this),\n      children: /*#__PURE__*/_jsxDEV(Tabs, {\n        items: tabs\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 924,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 914,\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: 930,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 929,\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: 933,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 932,\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: 937,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"medium\",\n              children: \"\\u4E2D\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 938,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"low\",\n              children: \"\\u4F4E\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 939,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 936,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 935,\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: 944,\n              columnNumber: 31\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 943,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 942,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"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: 948,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 947,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 928,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 927,\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: 956,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 955,\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: 959,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 958,\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: 962,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 961,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 954,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 953,\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: 970,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 969,\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: 974,\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: 975,\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: 976,\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: 977,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 973,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 972,\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: 981,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 980,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 968,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 967,\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: 990,\n              columnNumber: 35\n            }, this))\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), /*#__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: 994,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 993,\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: 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: \"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: 1000,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 999,\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: 1003,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1002,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 987,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 986,\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: 1012,\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: 1013,\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: 1014,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Option, {\n              value: \"other\",\n              children: \"\\u5176\\u4ED6\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1015,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\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), /*#__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: 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: \"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: 1022,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1021,\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: 1025,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1024,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 1009,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 1008,\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: 1035,\n              columnNumber: 17\n            }, this))\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), /*#__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: 1040,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1039,\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: 1046,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1045,\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: 1052,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1051,\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: 1058,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1057,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 1031,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 1030,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 909,\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","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","milestones","ms","fontWeight","fontSize","planned_date","actual_date","dataSource","updates","renderItem","Meta","content","columns","tasks","rowKey","pagination","beforeUpload","showUploadList","accept","spinning","length","doc","actions","AnalyzeOutlined","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      setProject(response.data);\n    } catch (error) {\n      message.error('获取项目详情失败');\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({ limit: 100 });\n      setUsers(response.data.users);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n\n  const fetchInvestors = async () => {\n    try {\n      const response = await investorsAPI.getAll({ limit: 100 });\n      setInvestors(response.data.investors);\n    } catch (error) {\n      console.error('获取投资者列表失败:', error);\n    }\n  };\n\n  const getStatusColor = (status) => {\n    const colors = {\n      draft: 'default',\n      active: 'green',\n      completed: 'blue',\n      pending: 'orange',\n      paused: 'red'\n    };\n    return colors[status] || 'default';\n  };\n\n  const getStatusText = (status) => {\n    const texts = {\n      draft: '草稿',\n      active: '进行中',\n      completed: '已完成',\n      pending: '待审批',\n      paused: '已暂停'\n    };\n    return texts[status] || status;\n  };\n\n  const getPriorityColor = (priority) => {\n    const colors = { high: 'red', medium: 'orange', low: 'blue' };\n    return colors[priority] || 'default';\n  };\n\n  const [taskModalVisible, setTaskModalVisible] = useState(false);\n  const [milestoneModalVisible, setMilestoneModalVisible] = useState(false);\n  const [updateModalVisible, setUpdateModalVisible] = useState(false);\n  const [investorModalVisible, setInvestorModalVisible] = useState(false);\n  const [taskForm] = Form.useForm();\n  const [milestoneForm] = Form.useForm();\n  const [updateForm] = Form.useForm();\n  const [investorForm] = Form.useForm();\n\n  const handleAddTask = async () => {\n    try {\n      const values = await taskForm.validateFields();\n      await projectsAPI.addTask(id, {\n        ...values,\n        dueDate: values.dueDate ? values.dueDate.format('YYYY-MM-DD') : null\n      });\n      message.success('任务创建成功');\n      setTaskModalVisible(false);\n      taskForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建任务失败');\n    }\n  };\n\n  const handleUpdateTaskStatus = async (taskId, status) => {\n    try {\n      await projectsAPI.updateTask(id, taskId, {\n        status,\n        completedAt: status === 'completed' ? new Date().toISOString() : null\n      });\n      message.success('任务状态更新成功');\n      fetchProject();\n    } catch (error) {\n      message.error('更新任务失败');\n    }\n  };\n\n  const handleAddMilestone = async () => {\n    try {\n      const values = await milestoneForm.validateFields();\n      await projectsAPI.addMilestone(id, {\n        ...values,\n        plannedDate: values.plannedDate ? values.plannedDate.format('YYYY-MM-DD') : null\n      });\n      message.success('里程碑创建成功');\n      setMilestoneModalVisible(false);\n      milestoneForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建里程碑失败');\n    }\n  };\n\n  const handleAddUpdate = async () => {\n    try {\n      const values = await updateForm.validateFields();\n      await projectsAPI.addUpdate(id, values);\n      message.success('项目更新创建成功');\n      setUpdateModalVisible(false);\n      updateForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('创建项目更新失败');\n    }\n  };\n\n  const handleAddInvestor = async () => {\n    try {\n      const values = await investorForm.validateFields();\n      await projectsAPI.addInvestor(id, {\n        ...values,\n        investmentDate: values.investmentDate ? values.investmentDate.format('YYYY-MM-DD') : null\n      });\n      message.success('投资者添加成功');\n      setInvestorModalVisible(false);\n      investorForm.resetFields();\n      fetchProject();\n    } catch (error) {\n      message.error('添加投资者失败');\n    }\n  };\n\n  const handleRemoveInvestor = async (investorId) => {\n    try {\n      await projectsAPI.removeInvestor(id, investorId);\n      message.success('投资者已移除');\n      fetchProject();\n    } catch (error) {\n      message.error('移除投资者失败');\n    }\n  };\n\n  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={<AnalyzeOutlined />}\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":[]}