{"ast":null,"code":"var _jsxFileName = \"/Users/nili/Documents/trae_projects/client/src/pages/Investors.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 } from 'antd';\nimport { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, SearchOutlined } from '@ant-design/icons';\nimport { 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 Investors = () => {\n  _s();\n  const [investors, setInvestors] = 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 {\n    isInvestmentManager\n  } = useAuth();\n  const navigate = useNavigate();\n  useEffect(() => {\n    fetchInvestors();\n  }, [pagination.current, pagination.pageSize, filters]);\n  const fetchInvestors = async () => {\n    setLoading(true);\n    try {\n      const response = await investorsAPI.getAll({\n        page: pagination.current,\n        limit: pagination.pageSize,\n        ...filters\n      });\n      setInvestors(response.data.investors);\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 handleDelete = async id => {\n    try {\n      await investorsAPI.delete(id);\n      message.success('投资者删除成功');\n      fetchInvestors();\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  const getTypeColor = type => {\n    const colors = {\n      individual: 'blue',\n      institutional: 'purple',\n      government: 'orange'\n    };\n    return colors[type] || 'default';\n  };\n  const getTypeText = type => {\n    const texts = {\n      individual: '个人',\n      institutional: '机构',\n      government: '政府'\n    };\n    return texts[type] || type;\n  };\n  const getRiskColor = level => {\n    const colors = {\n      low: 'green',\n      medium: 'orange',\n      high: 'red'\n    };\n    return colors[level] || 'default';\n  };\n  const getRiskText = level => {\n    const texts = {\n      low: '低风险',\n      medium: '中风险',\n      high: '高风险'\n    };\n    return texts[level] || level;\n  };\n  const columns = [{\n    title: '投资者名称',\n    dataIndex: 'name',\n    key: 'name',\n    render: (text, record) => /*#__PURE__*/_jsxDEV(\"a\", {\n      onClick: () => navigate(`/investors/${record.id}`),\n      children: text\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 96,\n      columnNumber: 9\n    }, this)\n  }, {\n    title: '类型',\n    dataIndex: 'type',\n    key: 'type',\n    render: type => /*#__PURE__*/_jsxDEV(Tag, {\n      color: getTypeColor(type),\n      children: getTypeText(type)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 103,\n      columnNumber: 25\n    }, this)\n  }, {\n    title: '公司',\n    dataIndex: 'company',\n    key: 'company'\n  }, {\n    title: '联系人',\n    dataIndex: 'contact_person',\n    key: 'contact_person'\n  }, {\n    title: '邮箱',\n    dataIndex: 'email',\n    key: 'email'\n  }, {\n    title: '电话',\n    dataIndex: 'phone',\n    key: 'phone'\n  }, {\n    title: '累计投资',\n    dataIndex: 'total_investment',\n    key: 'total_investment',\n    render: amount => amount ? `¥${amount.toLocaleString()}` : '-'\n  }, {\n    title: '风险等级',\n    dataIndex: 'risk_level',\n    key: 'risk_level',\n    render: level => /*#__PURE__*/_jsxDEV(Tag, {\n      color: getRiskColor(level),\n      children: getRiskText(level)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 135,\n      columnNumber: 26\n    }, this)\n  }, {\n    title: '创建时间',\n    dataIndex: 'created_at',\n    key: 'created_at',\n    render: 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: 148,\n          columnNumber: 50\n        }, this),\n        onClick: () => navigate(`/investors/${record.id}`),\n        children: \"\\u67E5\\u770B\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 148,\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: 153,\n            columnNumber: 54\n          }, this),\n          onClick: () => openEditModal(record),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 153,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(Popconfirm, {\n          title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u4E2A\\u6295\\u8D44\\u8005\\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: 157,\n              columnNumber: 63\n            }, this),\n            children: \"\\u5220\\u9664\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 157,\n            columnNumber: 17\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 156,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 147,\n      columnNumber: 9\n    }, this)\n  }];\n  const [modalVisible, setModalVisible] = useState(false);\n  const [editingInvestor, setEditingInvestor] = useState(null);\n  const [form] = Form.useForm();\n  const openCreateModal = () => {\n    setEditingInvestor(null);\n    form.resetFields();\n    setModalVisible(true);\n  };\n  const openEditModal = investor => {\n    setEditingInvestor(investor);\n    form.setFieldsValue({\n      ...investor,\n      contactPerson: investor.contact_person,\n      totalInvestment: investor.total_investment,\n      riskLevel: investor.risk_level,\n      tags: investor.tags ? JSON.parse(investor.tags) : []\n    });\n    setModalVisible(true);\n  };\n  const handleModalOk = async () => {\n    try {\n      const values = await form.validateFields();\n      if (editingInvestor) {\n        await investorsAPI.update(editingInvestor.id, values);\n        message.success('投资者更新成功');\n      } else {\n        await investorsAPI.create(values);\n        message.success('投资者创建成功');\n      }\n      setModalVisible(false);\n      fetchInvestors();\n    } catch (error) {\n      var _error$response2, _error$response2$data;\n      message.error(((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$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: \"\\u6295\\u8D44\\u8005\\u7BA1\\u7406\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 210,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 209,\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\\u6295\\u8D44\\u8005\\u540D\\u79F0\\u3001\\u516C\\u53F8\\u6216\\u90AE\\u7BB1\",\n              onSearch: value => setFilters(prev => ({\n                ...prev,\n                search: value\n              })),\n              allowClear: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 217,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 216,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 4,\n            children: /*#__PURE__*/_jsxDEV(Select, {\n              placeholder: \"\\u7C7B\\u578B\",\n              allowClear: true,\n              style: {\n                width: '100%'\n              },\n              onChange: value => setFilters(prev => ({\n                ...prev,\n                type: value\n              })),\n              children: [/*#__PURE__*/_jsxDEV(Option, {\n                value: \"individual\",\n                children: \"\\u4E2A\\u4EBA\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 230,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"institutional\",\n                children: \"\\u673A\\u6784\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 231,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"government\",\n                children: \"\\u653F\\u5E9C\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 232,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 224,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 223,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 4,\n            children: /*#__PURE__*/_jsxDEV(Select, {\n              placeholder: \"\\u98CE\\u9669\\u7B49\\u7EA7\",\n              allowClear: true,\n              style: {\n                width: '100%'\n              },\n              onChange: value => setFilters(prev => ({\n                ...prev,\n                riskLevel: value\n              })),\n              children: [/*#__PURE__*/_jsxDEV(Option, {\n                value: \"low\",\n                children: \"\\u4F4E\\u98CE\\u9669\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 242,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"medium\",\n                children: \"\\u4E2D\\u98CE\\u9669\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 243,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Option, {\n                value: \"high\",\n                children: \"\\u9AD8\\u98CE\\u9669\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 244,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 236,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 235,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 10,\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: 249,\n                columnNumber: 46\n              }, this),\n              onClick: openCreateModal,\n              children: \"\\u65B0\\u5EFA\\u6295\\u8D44\\u8005\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 249,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 247,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 215,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 214,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Table, {\n        columns: columns,\n        dataSource: investors,\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: 257,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 213,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: editingInvestor ? '编辑投资者' : '新建投资者',\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: \"\\u6295\\u8D44\\u8005\\u540D\\u79F0\",\n              rules: [{\n                required: true,\n                message: '请输入投资者名称'\n              }],\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u6295\\u8D44\\u8005\\u540D\\u79F0\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 283,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 282,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 281,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"type\",\n              label: \"\\u7C7B\\u578B\",\n              initialValue: \"individual\",\n              children: /*#__PURE__*/_jsxDEV(Select, {\n                placeholder: \"\\u8BF7\\u9009\\u62E9\\u7C7B\\u578B\",\n                children: [/*#__PURE__*/_jsxDEV(Option, {\n                  value: \"individual\",\n                  children: \"\\u4E2A\\u4EBA\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 289,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"institutional\",\n                  children: \"\\u673A\\u6784\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 290,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"government\",\n                  children: \"\\u653F\\u5E9C\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 291,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 288,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 287,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 286,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 280,\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: \"company\",\n              label: \"\\u516C\\u53F8\\u540D\\u79F0\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u516C\\u53F8\\u540D\\u79F0\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 299,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 298,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 297,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"contactPerson\",\n              label: \"\\u8054\\u7CFB\\u4EBA\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u8054\\u7CFB\\u4EBA\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 304,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 303,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 302,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 296,\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: \"email\",\n              label: \"\\u90AE\\u7BB1\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                type: \"email\",\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u90AE\\u7BB1\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 311,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 310,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 309,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"phone\",\n              label: \"\\u7535\\u8BDD\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u7535\\u8BDD\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 316,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 315,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 314,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 308,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"address\",\n          label: \"\\u5730\\u5740\",\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u5730\\u5740\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 321,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 320,\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: \"totalInvestment\",\n              label: \"\\u7D2F\\u8BA1\\u6295\\u8D44\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                type: \"number\",\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u7D2F\\u8BA1\\u6295\\u8D44\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 326,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 325,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 324,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Form.Item, {\n              name: \"riskLevel\",\n              label: \"\\u98CE\\u9669\\u7B49\\u7EA7\",\n              initialValue: \"medium\",\n              children: /*#__PURE__*/_jsxDEV(Select, {\n                placeholder: \"\\u8BF7\\u9009\\u62E9\\u98CE\\u9669\\u7B49\\u7EA7\",\n                children: [/*#__PURE__*/_jsxDEV(Option, {\n                  value: \"low\",\n                  children: \"\\u4F4E\\u98CE\\u9669\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 332,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"medium\",\n                  children: \"\\u4E2D\\u98CE\\u9669\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 333,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Option, {\n                  value: \"high\",\n                  children: \"\\u9AD8\\u98CE\\u9669\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 334,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 331,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 330,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 329,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 323,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"notes\",\n          label: \"\\u5907\\u6CE8\",\n          children: /*#__PURE__*/_jsxDEV(Input.TextArea, {\n            rows: 4,\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u5907\\u6CE8\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 340,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 339,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 279,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 272,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 208,\n    columnNumber: 5\n  }, this);\n};\n_s(Investors, \"8FQUfCDpTS5XCJvfQC5OOBPyKlo=\", false, function () {\n  return [useAuth, useNavigate, Form.useForm];\n});\n_c = Investors;\nexport default Investors;\nvar _c;\n$RefreshReg$(_c, \"Investors\");","map":{"version":3,"names":["React","useState","useEffect","Table","Card","Button","Space","Tag","Input","Select","Modal","Form","message","Popconfirm","Descriptions","Row","Col","List","PlusOutlined","EditOutlined","DeleteOutlined","EyeOutlined","SearchOutlined","investorsAPI","useNavigate","useParams","useAuth","dayjs","jsxDEV","_jsxDEV","Fragment","_Fragment","Option","Search","Investors","_s","investors","setInvestors","loading","setLoading","pagination","setPagination","current","pageSize","total","filters","setFilters","isInvestmentManager","navigate","fetchInvestors","response","getAll","page","limit","data","prev","_response$data$pagina","error","handleDelete","id","delete","success","_error$response","_error$response$data","getTypeColor","type","colors","individual","institutional","government","getTypeText","texts","getRiskColor","level","low","medium","high","getRiskText","columns","title","dataIndex","key","render","text","record","onClick","children","fileName","_jsxFileName","lineNumber","columnNumber","color","amount","toLocaleString","date","format","_","size","icon","openEditModal","onConfirm","danger","modalVisible","setModalVisible","editingInvestor","setEditingInvestor","form","useForm","openCreateModal","resetFields","investor","setFieldsValue","contactPerson","contact_person","totalInvestment","total_investment","riskLevel","risk_level","tags","JSON","parse","handleModalOk","values","validateFields","update","create","_error$response2","_error$response2$data","className","gutter","span","placeholder","onSearch","value","search","allowClear","style","width","onChange","textAlign","dataSource","rowKey","showSizeChanger","showQuickJumper","showTotal","open","onOk","onCancel","layout","Item","name","label","rules","required","initialValue","TextArea","rows","_c","$RefreshReg$"],"sources":["/Users/nili/Documents/trae_projects/client/src/pages/Investors.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} from 'antd';\nimport { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, SearchOutlined } from '@ant-design/icons';\nimport { 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 Investors = () => {\n  const [investors, setInvestors] = 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 { isInvestmentManager } = useAuth();\n  const navigate = useNavigate();\n\n  useEffect(() => {\n    fetchInvestors();\n  }, [pagination.current, pagination.pageSize, filters]);\n\n  const fetchInvestors = async () => {\n    setLoading(true);\n    try {\n      const response = await investorsAPI.getAll({\n        page: pagination.current,\n        limit: pagination.pageSize,\n        ...filters\n      });\n      setInvestors(response.data.investors);\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 handleDelete = async (id) => {\n    try {\n      await investorsAPI.delete(id);\n      message.success('投资者删除成功');\n      fetchInvestors();\n    } catch (error) {\n      message.error(error.response?.data?.message || '删除失败');\n    }\n  };\n\n  const getTypeColor = (type) => {\n    const colors = { individual: 'blue', institutional: 'purple', government: 'orange' };\n    return colors[type] || 'default';\n  };\n\n  const getTypeText = (type) => {\n    const texts = { individual: '个人', institutional: '机构', government: '政府' };\n    return texts[type] || type;\n  };\n\n  const getRiskColor = (level) => {\n    const colors = { low: 'green', medium: 'orange', high: 'red' };\n    return colors[level] || 'default';\n  };\n\n  const getRiskText = (level) => {\n    const texts = { low: '低风险', medium: '中风险', high: '高风险' };\n    return texts[level] || level;\n  };\n\n  const columns = [\n    {\n      title: '投资者名称',\n      dataIndex: 'name',\n      key: 'name',\n      render: (text, record) => (\n        <a onClick={() => navigate(`/investors/${record.id}`)}>{text}</a>\n      )\n    },\n    {\n      title: '类型',\n      dataIndex: 'type',\n      key: 'type',\n      render: (type) => <Tag color={getTypeColor(type)}>{getTypeText(type)}</Tag>\n    },\n    {\n      title: '公司',\n      dataIndex: 'company',\n      key: 'company'\n    },\n    {\n      title: '联系人',\n      dataIndex: 'contact_person',\n      key: 'contact_person'\n    },\n    {\n      title: '邮箱',\n      dataIndex: 'email',\n      key: 'email'\n    },\n    {\n      title: '电话',\n      dataIndex: 'phone',\n      key: 'phone'\n    },\n    {\n      title: '累计投资',\n      dataIndex: 'total_investment',\n      key: 'total_investment',\n      render: (amount) => amount ? `¥${amount.toLocaleString()}` : '-'\n    },\n    {\n      title: '风险等级',\n      dataIndex: 'risk_level',\n      key: 'risk_level',\n      render: (level) => <Tag color={getRiskColor(level)}>{getRiskText(level)}</Tag>\n    },\n    {\n      title: '创建时间',\n      dataIndex: 'created_at',\n      key: 'created_at',\n      render: (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(`/investors/${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 [editingInvestor, setEditingInvestor] = useState(null);\n  const [form] = Form.useForm();\n\n  const openCreateModal = () => {\n    setEditingInvestor(null);\n    form.resetFields();\n    setModalVisible(true);\n  };\n\n  const openEditModal = (investor) => {\n    setEditingInvestor(investor);\n    form.setFieldsValue({\n      ...investor,\n      contactPerson: investor.contact_person,\n      totalInvestment: investor.total_investment,\n      riskLevel: investor.risk_level,\n      tags: investor.tags ? JSON.parse(investor.tags) : []\n    });\n    setModalVisible(true);\n  };\n\n  const handleModalOk = async () => {\n    try {\n      const values = await form.validateFields();\n      if (editingInvestor) {\n        await investorsAPI.update(editingInvestor.id, values);\n        message.success('投资者更新成功');\n      } else {\n        await investorsAPI.create(values);\n        message.success('投资者创建成功');\n      }\n      setModalVisible(false);\n      fetchInvestors();\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, type: value }))}\n              >\n                <Option value=\"individual\">个人</Option>\n                <Option value=\"institutional\">机构</Option>\n                <Option value=\"government\">政府</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, riskLevel: value }))}\n              >\n                <Option value=\"low\">低风险</Option>\n                <Option value=\"medium\">中风险</Option>\n                <Option value=\"high\">高风险</Option>\n              </Select>\n            </Col>\n            <Col span={10} 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={investors}\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={editingInvestor ? '编辑投资者' : '新建投资者'}\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=\"type\" label=\"类型\" initialValue=\"individual\">\n                <Select placeholder=\"请选择类型\">\n                  <Option value=\"individual\">个人</Option>\n                  <Option value=\"institutional\">机构</Option>\n                  <Option value=\"government\">政府</Option>\n                </Select>\n              </Form.Item>\n            </Col>\n          </Row>\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"company\" label=\"公司名称\">\n                <Input placeholder=\"请输入公司名称\" />\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"contactPerson\" label=\"联系人\">\n                <Input placeholder=\"请输入联系人\" />\n              </Form.Item>\n            </Col>\n          </Row>\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"email\" label=\"邮箱\">\n                <Input type=\"email\" placeholder=\"请输入邮箱\" />\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"phone\" label=\"电话\">\n                <Input placeholder=\"请输入电话\" />\n              </Form.Item>\n            </Col>\n          </Row>\n          <Form.Item name=\"address\" label=\"地址\">\n            <Input placeholder=\"请输入地址\" />\n          </Form.Item>\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"totalInvestment\" label=\"累计投资\">\n                <Input type=\"number\" placeholder=\"请输入累计投资\" />\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"riskLevel\" label=\"风险等级\" initialValue=\"medium\">\n                <Select placeholder=\"请选择风险等级\">\n                  <Option value=\"low\">低风险</Option>\n                  <Option value=\"medium\">中风险</Option>\n                  <Option value=\"high\">高风险</Option>\n                </Select>\n              </Form.Item>\n            </Col>\n          </Row>\n          <Form.Item name=\"notes\" label=\"备注\">\n            <Input.TextArea rows={4} placeholder=\"请输入备注\" />\n          </Form.Item>\n        </Form>\n      </Modal>\n    </div>\n  );\n};\n\nexport default Investors;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}