{"ast":null,"code":"var _jsxFileName = \"/Users/nili/Documents/trae_projects/client/src/pages/Projects.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { Table, Card, Button, Space, Tag, Input, Select, Modal, Form, message, Popconfirm, Descriptions, Row, Col, List, Timeline, Progress } from 'antd';\nimport { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, SearchOutlined } from '@ant-design/icons';\nimport { projectsAPI, usersAPI, investorsAPI } from '../services/api';\nimport { useNavigate, useParams } from 'react-router-dom';\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  Search\n} = Input;\nconst Projects = () => {\n  _s();\n  const [projects, setProjects] = useState([]);\n  const [loading, setLoading] = useState(false);\n  const [pagination, setPagination] = useState({\n    current: 1,\n    pageSize: 20,\n    total: 0\n  });\n  const [filters, setFilters] = useState({});\n  const [users, setUsers] = useState([]);\n  const {\n    isInvestmentManager\n  } = useAuth();\n  const navigate = useNavigate();\n  useEffect(() => {\n    fetchProjects();\n    fetchUsers();\n  }, [pagination.current, pagination.pageSize, filters]);\n  const fetchProjects = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getAll({\n        page: pagination.current,\n        limit: pagination.pageSize,\n        ...filters\n      });\n      setProjects(response.data.projects);\n      setPagination(prev => {\n        var _response$data$pagina;\n        return {\n          ...prev,\n          total: ((_response$data$pagina = response.data.pagination) === null || _response$data$pagina === void 0 ? void 0 : _response$data$pagina.total) || 0\n        };\n      });\n    } catch (error) {\n      message.error('获取项目列表失败');\n    } finally {\n      setLoading(false);\n    }\n  };\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({\n        limit: 100\n      });\n      setUsers(response.data.users);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n  const 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 handleDelete = async id => {\n    try {\n      await projectsAPI.delete(id);\n      message.success('项目删除成功');\n      fetchProjects();\n    } catch (error) {\n      message.error('删除失败');\n    }\n  };\n  const columns = [{\n    title: '项目名称',\n    dataIndex: 'name',\n    key: 'name',\n    render: (text, record) => /*#__PURE__*/_jsxDEV(\"a\", {\n      onClick: () => navigate(`/projects/${record.id}`),\n      children: text\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 111,\n      columnNumber: 9\n    }, this)\n  }, {\n    title: '项目代码',\n    dataIndex: 'code',\n    key: 'code'\n  }, {\n    title: '公司名称',\n    dataIndex: 'company_name',\n    key: 'company_name'\n  }, {\n    title: '行业',\n    dataIndex: 'industry',\n    key: 'industry',\n    render: industry => industry && /*#__PURE__*/_jsxDEV(Tag, {\n      color: \"blue\",\n      children: industry\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 128,\n      columnNumber: 41\n    }, this)\n  }, {\n    title: '阶段',\n    dataIndex: 'stage',\n    key: 'stage',\n    render: stage => stage && /*#__PURE__*/_jsxDEV(Tag, {\n      color: \"cyan\",\n      children: stage\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 134,\n      columnNumber: 35\n    }, this)\n  }, {\n    title: '状态',\n    dataIndex: 'status',\n    key: 'status',\n    render: status => /*#__PURE__*/_jsxDEV(Tag, {\n      color: getStatusColor(status),\n      children: getStatusText(status)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 140,\n      columnNumber: 27\n    }, this)\n  }, {\n    title: '投资额',\n    dataIndex: 'investment_amount',\n    key: 'investment_amount',\n    render: amount => amount ? `¥${amount.toLocaleString()}` : '-'\n  }, {\n    title: '负责人',\n    dataIndex: 'assigned_to_name',\n    key: 'assigned_to_name'\n  }, {\n    title: '创建时间',\n    dataIndex: 'created_at',\n    key: 'created_at',\n    render: date => date ? dayjs(date).format('YYYY-MM-DD') : '-'\n  }, {\n    title: '操作',\n    key: 'actions',\n    render: (_, record) => /*#__PURE__*/_jsxDEV(Space, {\n      children: [/*#__PURE__*/_jsxDEV(Button, {\n        type: \"link\",\n        size: \"small\",\n        icon: /*#__PURE__*/_jsxDEV(EyeOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 164,\n          columnNumber: 50\n        }, this),\n        onClick: () => navigate(`/projects/${record.id}`),\n        children: \"\\u67E5\\u770B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 164,\n        columnNumber: 11\n      }, this), isInvestmentManager() && /*#__PURE__*/_jsxDEV(_Fragment, {\n        children: [/*#__PURE__*/_jsxDEV(Button, {\n          type: \"link\",\n          size: \"small\",\n          icon: /*#__PURE__*/_jsxDEV(EditOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 169,\n            columnNumber: 54\n          }, this),\n          onClick: () => openEditModal(record),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 169,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(Popconfirm, {\n          title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u4E2A\\u9879\\u76EE\\u5417?\",\n          onConfirm: () => handleDelete(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: 173,\n              columnNumber: 63\n            }, this),\n            children: \"\\u5220\\u9664\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 173,\n            columnNumber: 17\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 172,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 163,\n      columnNumber: 9\n    }, this)\n  }];\n  const [modalVisible, setModalVisible] = useState(false);\n  const [editingProject, setEditingProject] = useState(null);\n  const [form] = Form.useForm();\n  const openCreateModal = () => {\n    setEditingProject(null);\n    form.resetFields();\n    setModalVisible(true);\n  };\n  const openEditModal = project => {\n    setEditingProject(project);\n    form.setFieldsValue({\n      ...project,\n      companyName: project.company_name,\n      investmentAmount: project.investment_amount,\n      equityRatio: project.equity_ratio,\n      assignedTo: project.assigned_to,\n      tags: project.tags ? JSON.parse(project.tags) : []\n    });\n    setModalVisible(true);\n  };\n  const handleModalOk = async () => {\n    try {\n      const values = await form.validateFields();\n      if (editingProject) {\n        await projectsAPI.update(editingProject.id, values);\n        message.success('项目更新成功');\n      } else {\n        await projectsAPI.create(values);\n        message.success('项目创建成功');\n      }\n      setModalVisible(false);\n      fetchProjects();\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    }\n  };\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"page-header\",\n      children: /*#__PURE__*/_jsxDEV(\"h1\", {\n        children: \"\\u9879\\u76EE\\u7BA1\\u7406\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 227,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 226,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Card, {\n      children: [/*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"filter-bar\",\n        children: /*#__PURE__*/_jsxDEV(Row, {\n          gutter: 16,\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 6,\n            children: /*#__PURE__*/_jsxDEV(Search, {\n              placeholder: \"\\u641C\\u7D22\\u9879\\u76EE\\u540D\\u79F0\\u3001\\u4EE3\\u7801\\u6216\\u516C\\u53F8\",\n              onSearch: value => setFilters(prev => ({\n                ...prev,\n                search: value\n              })),\n              allowClear: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 234,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 233,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 4,\n            children: /*#__PURE__*/_jsxDEV(Select, {\n              placeholder: \"\\u72B6\\u6001\",\n              allowClear: true,\n              style: {\n                width: '100%'\n              },\n              onChange: value => setFilters(prev => ({\n                ...prev,\n                status: value\n              })),\n              children: [/*#__PURE__*/_jsxDEV(Option, {\n                value: \"draft\",\n                children: \"\\u8349\\u7A3F\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 247,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"active\",\n                children: \"\\u8FDB\\u884C\\u4E2D\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 248,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"completed\",\n                children: \"\\u5DF2\\u5B8C\\u6210\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 249,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"pending\",\n                children: \"\\u5F85\\u5BA1\\u6279\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 250,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"paused\",\n                children: \"\\u5DF2\\u6682\\u505C\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 251,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 241,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 240,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 4,\n            children: /*#__PURE__*/_jsxDEV(Select, {\n              placeholder: \"\\u884C\\u4E1A\",\n              allowClear: true,\n              style: {\n                width: '100%'\n              },\n              onChange: value => setFilters(prev => ({\n                ...prev,\n                industry: value\n              })),\n              children: [/*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u4EBA\\u5DE5\\u667A\\u80FD\",\n                children: \"\\u4EBA\\u5DE5\\u667A\\u80FD\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 261,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u751F\\u7269\\u533B\\u836F\",\n                children: \"\\u751F\\u7269\\u533B\\u836F\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 262,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u65B0\\u80FD\\u6E90\",\n                children: \"\\u65B0\\u80FD\\u6E90\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 263,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u534A\\u5BFC\\u4F53\",\n                children: \"\\u534A\\u5BFC\\u4F53\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 264,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u4F01\\u4E1A\\u670D\\u52A1\",\n                children: \"\\u4F01\\u4E1A\\u670D\\u52A1\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 265,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u6D88\\u8D39\\u5347\\u7EA7\",\n                children: \"\\u6D88\\u8D39\\u5347\\u7EA7\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 266,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"\\u5176\\u4ED6\",\n                children: \"\\u5176\\u4ED6\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 267,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 255,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 254,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 4,\n            children: /*#__PURE__*/_jsxDEV(Select, {\n              placeholder: \"\\u8D1F\\u8D23\\u4EBA\",\n              allowClear: true,\n              style: {\n                width: '100%'\n              },\n              onChange: value => setFilters(prev => ({\n                ...prev,\n                assignedTo: value\n              })),\n              children: users.map(user => /*#__PURE__*/_jsxDEV(Option, {\n                value: user.id,\n                children: user.full_name\n              }, user.id, false, {\n                fileName: _jsxFileName,\n                lineNumber: 278,\n                columnNumber: 19\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 271,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 270,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 6,\n            style: {\n              textAlign: 'right'\n            },\n            children: isInvestmentManager() && /*#__PURE__*/_jsxDEV(Button, {\n              type: \"primary\",\n              icon: /*#__PURE__*/_jsxDEV(PlusOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 284,\n                columnNumber: 46\n              }, this),\n              onClick: openCreateModal,\n              children: \"\\u65B0\\u5EFA\\u9879\\u76EE\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 284,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 282,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 232,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 231,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Table, {\n        columns: columns,\n        dataSource: projects,\n        rowKey: \"id\",\n        loading: loading,\n        pagination: {\n          ...pagination,\n          showSizeChanger: true,\n          showQuickJumper: true,\n          showTotal: total => `共 ${total} 条`,\n          onChange: (page, pageSize) => setPagination(prev => ({\n            ...prev,\n            current: page,\n            pageSize\n          }))\n        }\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 292,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 230,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: editingProject ? '编辑项目' : '新建项目',\n      open: modalVisible,\n      onOk: handleModalOk,\n      onCancel: () => setModalVisible(false),\n      width: 800,\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: form,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Row, {\n          gutter: 16,\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"name\",\n              label: \"\\u9879\\u76EE\\u540D\\u79F0\",\n              rules: [{\n                required: true,\n                message: '请输入项目名称'\n              }],\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u9879\\u76EE\\u540D\\u79F0\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 318,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 317,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 316,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"code\",\n              label: \"\\u9879\\u76EE\\u4EE3\\u7801\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u9879\\u76EE\\u4EE3\\u7801\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 323,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 322,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 321,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 315,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Row, {\n          gutter: 16,\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"companyName\",\n              label: \"\\u516C\\u53F8\\u540D\\u79F0\",\n              rules: [{\n                required: true,\n                message: '请输入公司名称'\n              }],\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u516C\\u53F8\\u540D\\u79F0\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 330,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 329,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 328,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"industry\",\n              label: \"\\u884C\\u4E1A\",\n              children: /*#__PURE__*/_jsxDEV(Select, {\n                placeholder: \"\\u8BF7\\u9009\\u62E9\\u884C\\u4E1A\",\n                children: [/*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u4EBA\\u5DE5\\u667A\\u80FD\",\n                  children: \"\\u4EBA\\u5DE5\\u667A\\u80FD\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 336,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u751F\\u7269\\u533B\\u836F\",\n                  children: \"\\u751F\\u7269\\u533B\\u836F\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 337,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u65B0\\u80FD\\u6E90\",\n                  children: \"\\u65B0\\u80FD\\u6E90\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 338,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u534A\\u5BFC\\u4F53\",\n                  children: \"\\u534A\\u5BFC\\u4F53\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 339,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u4F01\\u4E1A\\u670D\\u52A1\",\n                  children: \"\\u4F01\\u4E1A\\u670D\\u52A1\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 340,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u6D88\\u8D39\\u5347\\u7EA7\",\n                  children: \"\\u6D88\\u8D39\\u5347\\u7EA7\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 341,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u5176\\u4ED6\",\n                  children: \"\\u5176\\u4ED6\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 342,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 335,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 334,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 333,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 327,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Row, {\n          gutter: 16,\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"stage\",\n              label: \"\\u9636\\u6BB5\",\n              children: /*#__PURE__*/_jsxDEV(Select, {\n                placeholder: \"\\u8BF7\\u9009\\u62E9\\u9636\\u6BB5\",\n                children: [/*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u79CD\\u5B50\\u8F6E\",\n                  children: \"\\u79CD\\u5B50\\u8F6E\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 351,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"\\u5929\\u4F7F\\u8F6E\",\n                  children: \"\\u5929\\u4F7F\\u8F6E\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 352,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"A\\u8F6E\",\n                  children: \"A\\u8F6E\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 353,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"B\\u8F6E\",\n                  children: \"B\\u8F6E\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 354,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"C\\u8F6E\\u53CA\\u4EE5\\u540E\",\n                  children: \"C\\u8F6E\\u53CA\\u4EE5\\u540E\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 355,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"Pre-IPO\",\n                  children: \"Pre-IPO\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 356,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 350,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 349,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 348,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"status\",\n              label: \"\\u72B6\\u6001\",\n              children: /*#__PURE__*/_jsxDEV(Select, {\n                placeholder: \"\\u8BF7\\u9009\\u62E9\\u72B6\\u6001\",\n                defaultValue: \"draft\",\n                children: [/*#__PURE__*/_jsxDEV(Option, {\n                  value: \"draft\",\n                  children: \"\\u8349\\u7A3F\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 363,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"pending\",\n                  children: \"\\u5F85\\u5BA1\\u6279\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 364,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"active\",\n                  children: \"\\u8FDB\\u884C\\u4E2D\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 365,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"paused\",\n                  children: \"\\u5DF2\\u6682\\u505C\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 366,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"completed\",\n                  children: \"\\u5DF2\\u5B8C\\u6210\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 367,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 362,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 361,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 360,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 347,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Row, {\n          gutter: 16,\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 8,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"investmentAmount\",\n              label: \"\\u6295\\u8D44\\u989D\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                type: \"number\",\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u6295\\u8D44\\u989D\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 375,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 374,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 373,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 8,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"valuation\",\n              label: \"\\u4F30\\u503C\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                type: \"number\",\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u4F30\\u503C\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 380,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 379,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 378,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 8,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"equityRatio\",\n              label: \"\\u80A1\\u6743\\u6BD4\\u4F8B(%)\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                type: \"number\",\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u80A1\\u6743\\u6BD4\\u4F8B\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 385,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 384,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 383,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 372,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"assignedTo\",\n          label: \"\\u8D1F\\u8D23\\u4EBA\",\n          children: /*#__PURE__*/_jsxDEV(Select, {\n            placeholder: \"\\u8BF7\\u9009\\u62E9\\u8D1F\\u8D23\\u4EBA\",\n            children: users.map(user => /*#__PURE__*/_jsxDEV(Option, {\n              value: user.id,\n              children: user.full_name\n            }, user.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 392,\n              columnNumber: 17\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 390,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 389,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"description\",\n          label: \"\\u9879\\u76EE\\u63CF\\u8FF0\",\n          children: /*#__PURE__*/_jsxDEV(Input.TextArea, {\n            rows: 4,\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u9879\\u76EE\\u63CF\\u8FF0\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 397,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 396,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 314,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 307,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 225,\n    columnNumber: 5\n  }, this);\n};\n_s(Projects, \"mXGNrfjYqvfxoeXYetR2yOGd+OM=\", false, function () {\n  return [useAuth, useNavigate, Form.useForm];\n});\n_c = Projects;\nexport default Projects;\nvar _c;\n$RefreshReg$(_c, \"Projects\");","map":{"version":3,"names":["React","useState","useEffect","Table","Card","Button","Space","Tag","Input","Select","Modal","Form","message","Popconfirm","Descriptions","Row","Col","List","Timeline","Progress","PlusOutlined","EditOutlined","DeleteOutlined","EyeOutlined","SearchOutlined","projectsAPI","usersAPI","investorsAPI","useNavigate","useParams","useAuth","dayjs","jsxDEV","_jsxDEV","Fragment","_Fragment","Option","Search","Projects","_s","projects","setProjects","loading","setLoading","pagination","setPagination","current","pageSize","total","filters","setFilters","users","setUsers","isInvestmentManager","navigate","fetchProjects","fetchUsers","response","getAll","page","limit","data","prev","_response$data$pagina","error","console","getStatusColor","status","colors","draft","active","completed","pending","paused","getStatusText","texts","handleDelete","id","delete","success","columns","title","dataIndex","key","render","text","record","onClick","children","fileName","_jsxFileName","lineNumber","columnNumber","industry","color","stage","amount","toLocaleString","date","format","_","type","size","icon","openEditModal","onConfirm","danger","modalVisible","setModalVisible","editingProject","setEditingProject","form","useForm","openCreateModal","resetFields","project","setFieldsValue","companyName","company_name","investmentAmount","investment_amount","equityRatio","equity_ratio","assignedTo","assigned_to","tags","JSON","parse","handleModalOk","values","validateFields","update","create","_error$response","_error$response$data","className","gutter","span","placeholder","onSearch","value","search","allowClear","style","width","onChange","map","user","full_name","textAlign","dataSource","rowKey","showSizeChanger","showQuickJumper","showTotal","open","onOk","onCancel","layout","Item","name","label","rules","required","defaultValue","TextArea","rows","_c","$RefreshReg$"],"sources":["/Users/nili/Documents/trae_projects/client/src/pages/Projects.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n  Table,\n  Card,\n  Button,\n  Space,\n  Tag,\n  Input,\n  Select,\n  Modal,\n  Form,\n  message,\n  Popconfirm,\n  Descriptions,\n  Row,\n  Col,\n  List,\n  Timeline,\n  Progress\n} from 'antd';\nimport { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, SearchOutlined } from '@ant-design/icons';\nimport { projectsAPI, usersAPI, investorsAPI } from '../services/api';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useAuth } from '../contexts/AuthContext';\nimport dayjs from 'dayjs';\n\nconst { Option } = Select;\nconst { Search } = Input;\n\nconst Projects = () => {\n  const [projects, setProjects] = useState([]);\n  const [loading, setLoading] = useState(false);\n  const [pagination, setPagination] = useState({ current: 1, pageSize: 20, total: 0 });\n  const [filters, setFilters] = useState({});\n  const [users, setUsers] = useState([]);\n  const { isInvestmentManager } = useAuth();\n  const navigate = useNavigate();\n\n  useEffect(() => {\n    fetchProjects();\n    fetchUsers();\n  }, [pagination.current, pagination.pageSize, filters]);\n\n  const fetchProjects = async () => {\n    setLoading(true);\n    try {\n      const response = await projectsAPI.getAll({\n        page: pagination.current,\n        limit: pagination.pageSize,\n        ...filters\n      });\n      setProjects(response.data.projects);\n      setPagination(prev => ({\n        ...prev,\n        total: response.data.pagination?.total || 0\n      }));\n    } catch (error) {\n      message.error('获取项目列表失败');\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  const fetchUsers = async () => {\n    try {\n      const response = await usersAPI.getAll({ limit: 100 });\n      setUsers(response.data.users);\n    } catch (error) {\n      console.error('获取用户列表失败:', error);\n    }\n  };\n\n  const 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 handleDelete = async (id) => {\n    try {\n      await projectsAPI.delete(id);\n      message.success('项目删除成功');\n      fetchProjects();\n    } catch (error) {\n      message.error('删除失败');\n    }\n  };\n\n  const columns = [\n    {\n      title: '项目名称',\n      dataIndex: 'name',\n      key: 'name',\n      render: (text, record) => (\n        <a onClick={() => navigate(`/projects/${record.id}`)}>{text}</a>\n      )\n    },\n    {\n      title: '项目代码',\n      dataIndex: 'code',\n      key: 'code'\n    },\n    {\n      title: '公司名称',\n      dataIndex: 'company_name',\n      key: 'company_name'\n    },\n    {\n      title: '行业',\n      dataIndex: 'industry',\n      key: 'industry',\n      render: (industry) => industry && <Tag color=\"blue\">{industry}</Tag>\n    },\n    {\n      title: '阶段',\n      dataIndex: 'stage',\n      key: 'stage',\n      render: (stage) => stage && <Tag color=\"cyan\">{stage}</Tag>\n    },\n    {\n      title: '状态',\n      dataIndex: 'status',\n      key: 'status',\n      render: (status) => <Tag color={getStatusColor(status)}>{getStatusText(status)}</Tag>\n    },\n    {\n      title: '投资额',\n      dataIndex: 'investment_amount',\n      key: 'investment_amount',\n      render: (amount) => amount ? `¥${amount.toLocaleString()}` : '-'\n    },\n    {\n      title: '负责人',\n      dataIndex: 'assigned_to_name',\n      key: 'assigned_to_name'\n    },\n    {\n      title: '创建时间',\n      dataIndex: 'created_at',\n      key: 'created_at',\n      render: (date) => date ? dayjs(date).format('YYYY-MM-DD') : '-'\n    },\n    {\n      title: '操作',\n      key: 'actions',\n      render: (_, record) => (\n        <Space>\n          <Button type=\"link\" size=\"small\" icon={<EyeOutlined />} onClick={() => navigate(`/projects/${record.id}`)}>\n            查看\n          </Button>\n          {isInvestmentManager() && (\n            <>\n              <Button type=\"link\" size=\"small\" icon={<EditOutlined />} onClick={() => openEditModal(record)}>\n                编辑\n              </Button>\n              <Popconfirm title=\"确定要删除这个项目吗?\" onConfirm={() => handleDelete(record.id)}>\n                <Button type=\"link\" size=\"small\" danger icon={<DeleteOutlined />}>\n                  删除\n                </Button>\n              </Popconfirm>\n            </>\n          )}\n        </Space>\n      )\n    }\n  ];\n\n  const [modalVisible, setModalVisible] = useState(false);\n  const [editingProject, setEditingProject] = useState(null);\n  const [form] = Form.useForm();\n\n  const openCreateModal = () => {\n    setEditingProject(null);\n    form.resetFields();\n    setModalVisible(true);\n  };\n\n  const openEditModal = (project) => {\n    setEditingProject(project);\n    form.setFieldsValue({\n      ...project,\n      companyName: project.company_name,\n      investmentAmount: project.investment_amount,\n      equityRatio: project.equity_ratio,\n      assignedTo: project.assigned_to,\n      tags: project.tags ? JSON.parse(project.tags) : []\n    });\n    setModalVisible(true);\n  };\n\n  const handleModalOk = async () => {\n    try {\n      const values = await form.validateFields();\n      if (editingProject) {\n        await projectsAPI.update(editingProject.id, values);\n        message.success('项目更新成功');\n      } else {\n        await projectsAPI.create(values);\n        message.success('项目创建成功');\n      }\n      setModalVisible(false);\n      fetchProjects();\n    } catch (error) {\n      message.error(error.response?.data?.message || '操作失败');\n    }\n  };\n\n  return (\n    <div>\n      <div className=\"page-header\">\n        <h1>项目管理</h1>\n      </div>\n\n      <Card>\n        <div className=\"filter-bar\">\n          <Row gutter={16}>\n            <Col span={6}>\n              <Search\n                placeholder=\"搜索项目名称、代码或公司\"\n                onSearch={(value) => setFilters(prev => ({ ...prev, search: value }))}\n                allowClear\n              />\n            </Col>\n            <Col span={4}>\n              <Select\n                placeholder=\"状态\"\n                allowClear\n                style={{ width: '100%' }}\n                onChange={(value) => setFilters(prev => ({ ...prev, status: value }))}\n              >\n                <Option value=\"draft\">草稿</Option>\n                <Option value=\"active\">进行中</Option>\n                <Option value=\"completed\">已完成</Option>\n                <Option value=\"pending\">待审批</Option>\n                <Option value=\"paused\">已暂停</Option>\n              </Select>\n            </Col>\n            <Col span={4}>\n              <Select\n                placeholder=\"行业\"\n                allowClear\n                style={{ width: '100%' }}\n                onChange={(value) => setFilters(prev => ({ ...prev, industry: value }))}\n              >\n                <Option value=\"人工智能\">人工智能</Option>\n                <Option value=\"生物医药\">生物医药</Option>\n                <Option value=\"新能源\">新能源</Option>\n                <Option value=\"半导体\">半导体</Option>\n                <Option value=\"企业服务\">企业服务</Option>\n                <Option value=\"消费升级\">消费升级</Option>\n                <Option value=\"其他\">其他</Option>\n              </Select>\n            </Col>\n            <Col span={4}>\n              <Select\n                placeholder=\"负责人\"\n                allowClear\n                style={{ width: '100%' }}\n                onChange={(value) => setFilters(prev => ({ ...prev, assignedTo: value }))}\n              >\n                {users.map(user => (\n                  <Option key={user.id} value={user.id}>{user.full_name}</Option>\n                ))}\n              </Select>\n            </Col>\n            <Col span={6} style={{ textAlign: 'right' }}>\n              {isInvestmentManager() && (\n                <Button type=\"primary\" icon={<PlusOutlined />} onClick={openCreateModal}>\n                  新建项目\n                </Button>\n              )}\n            </Col>\n          </Row>\n        </div>\n\n        <Table\n          columns={columns}\n          dataSource={projects}\n          rowKey=\"id\"\n          loading={loading}\n          pagination={{\n            ...pagination,\n            showSizeChanger: true,\n            showQuickJumper: true,\n            showTotal: (total) => `共 ${total} 条`,\n            onChange: (page, pageSize) => setPagination(prev => ({ ...prev, current: page, pageSize }))\n          }}\n        />\n      </Card>\n\n      <Modal\n        title={editingProject ? '编辑项目' : '新建项目'}\n        open={modalVisible}\n        onOk={handleModalOk}\n        onCancel={() => setModalVisible(false)}\n        width={800}\n      >\n        <Form form={form} layout=\"vertical\">\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"name\" label=\"项目名称\" rules={[{ required: true, message: '请输入项目名称' }]}>\n                <Input placeholder=\"请输入项目名称\" />\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"code\" label=\"项目代码\">\n                <Input placeholder=\"请输入项目代码\" />\n              </Form.Item>\n            </Col>\n          </Row>\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"companyName\" label=\"公司名称\" rules={[{ required: true, message: '请输入公司名称' }]}>\n                <Input placeholder=\"请输入公司名称\" />\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"industry\" label=\"行业\">\n                <Select placeholder=\"请选择行业\">\n                  <Option value=\"人工智能\">人工智能</Option>\n                  <Option value=\"生物医药\">生物医药</Option>\n                  <Option value=\"新能源\">新能源</Option>\n                  <Option value=\"半导体\">半导体</Option>\n                  <Option value=\"企业服务\">企业服务</Option>\n                  <Option value=\"消费升级\">消费升级</Option>\n                  <Option value=\"其他\">其他</Option>\n                </Select>\n              </Form.Item>\n            </Col>\n          </Row>\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"stage\" label=\"阶段\">\n                <Select placeholder=\"请选择阶段\">\n                  <Option value=\"种子轮\">种子轮</Option>\n                  <Option value=\"天使轮\">天使轮</Option>\n                  <Option value=\"A轮\">A轮</Option>\n                  <Option value=\"B轮\">B轮</Option>\n                  <Option value=\"C轮及以后\">C轮及以后</Option>\n                  <Option value=\"Pre-IPO\">Pre-IPO</Option>\n                </Select>\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"status\" label=\"状态\">\n                <Select placeholder=\"请选择状态\" defaultValue=\"draft\">\n                  <Option value=\"draft\">草稿</Option>\n                  <Option value=\"pending\">待审批</Option>\n                  <Option value=\"active\">进行中</Option>\n                  <Option value=\"paused\">已暂停</Option>\n                  <Option value=\"completed\">已完成</Option>\n                </Select>\n              </Form.Item>\n            </Col>\n          </Row>\n          <Row gutter={16}>\n            <Col span={8}>\n              <Form.Item name=\"investmentAmount\" label=\"投资额\">\n                <Input type=\"number\" placeholder=\"请输入投资额\" />\n              </Form.Item>\n            </Col>\n            <Col span={8}>\n              <Form.Item name=\"valuation\" label=\"估值\">\n                <Input type=\"number\" placeholder=\"请输入估值\" />\n              </Form.Item>\n            </Col>\n            <Col span={8}>\n              <Form.Item name=\"equityRatio\" label=\"股权比例(%)\">\n                <Input type=\"number\" placeholder=\"请输入股权比例\" />\n              </Form.Item>\n            </Col>\n          </Row>\n          <Form.Item name=\"assignedTo\" label=\"负责人\">\n            <Select placeholder=\"请选择负责人\">\n              {users.map(user => (\n                <Option key={user.id} value={user.id}>{user.full_name}</Option>\n              ))}\n            </Select>\n          </Form.Item>\n          <Form.Item name=\"description\" label=\"项目描述\">\n            <Input.TextArea rows={4} placeholder=\"请输入项目描述\" />\n          </Form.Item>\n        </Form>\n      </Modal>\n    </div>\n  );\n};\n\nexport default Projects;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}