{"ast":null,"code":"var _jsxFileName = \"/Users/nili/Documents/trae_projects/client/src/pages/News.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { Table, Card, Button, Space, Tag, Input, Select, Modal, Form, message, Popconfirm, Row, Col, DatePicker, Typography } from 'antd';\nimport { PlusOutlined, EditOutlined, DeleteOutlined, SearchOutlined, LinkOutlined } from '@ant-design/icons';\nimport { newsAPI } 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  Search\n} = Input;\nconst {\n  TextArea\n} = Input;\nconst {\n  Title,\n  Paragraph\n} = Typography;\nconst News = () => {\n  _s();\n  const [news, setNews] = 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  useEffect(() => {\n    fetchNews();\n  }, [pagination.current, pagination.pageSize, filters]);\n  const fetchNews = async () => {\n    setLoading(true);\n    try {\n      const response = await newsAPI.getAll({\n        page: pagination.current,\n        limit: pagination.pageSize,\n        ...filters\n      });\n      setNews(response.data.news);\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 newsAPI.delete(id);\n      message.success('新闻删除成功');\n      fetchNews();\n    } catch (error) {\n      message.error('删除失败');\n    }\n  };\n  const columns = [{\n    title: '标题',\n    dataIndex: 'title',\n    key: 'title',\n    render: (text, record) => /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(\"a\", {\n        href: record.url,\n        target: \"_blank\",\n        rel: \"noopener noreferrer\",\n        style: {\n          fontWeight: 500\n        },\n        children: text\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 77,\n        columnNumber: 11\n      }, this), record.summary && /*#__PURE__*/_jsxDEV(\"div\", {\n        style: {\n          color: '#666',\n          fontSize: 12,\n          marginTop: 4\n        },\n        children: record.summary\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 80,\n        columnNumber: 30\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 76,\n      columnNumber: 9\n    }, this)\n  }, {\n    title: '行业',\n    dataIndex: 'industry',\n    key: 'industry',\n    render: industry => /*#__PURE__*/_jsxDEV(Tag, {\n      color: \"purple\",\n      children: industry\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 88,\n      columnNumber: 29\n    }, this)\n  }, {\n    title: '来源',\n    dataIndex: 'source',\n    key: 'source'\n  }, {\n    title: '发布时间',\n    dataIndex: 'published_at',\n    key: 'published_at',\n    render: date => dayjs(date).format('YYYY-MM-DD HH:mm')\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: [record.url && /*#__PURE__*/_jsxDEV(Button, {\n        type: \"link\",\n        size: \"small\",\n        icon: /*#__PURE__*/_jsxDEV(LinkOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 113,\n          columnNumber: 52\n        }, this),\n        href: record.url,\n        target: \"_blank\",\n        children: \"\\u94FE\\u63A5\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 113,\n        columnNumber: 13\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: 119,\n            columnNumber: 54\n          }, this),\n          onClick: () => openEditModal(record),\n          children: \"\\u7F16\\u8F91\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 119,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(Popconfirm, {\n          title: \"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u6761\\u65B0\\u95FB\\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: 123,\n              columnNumber: 63\n            }, this),\n            children: \"\\u5220\\u9664\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 123,\n            columnNumber: 17\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 122,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 111,\n      columnNumber: 9\n    }, this)\n  }];\n  const [modalVisible, setModalVisible] = useState(false);\n  const [editingNews, setEditingNews] = useState(null);\n  const [form] = Form.useForm();\n  const openCreateModal = () => {\n    setEditingNews(null);\n    form.resetFields();\n    setModalVisible(true);\n  };\n  const openEditModal = item => {\n    setEditingNews(item);\n    form.setFieldsValue({\n      ...item,\n      publishedAt: item.published_at ? dayjs(item.published_at) : null\n    });\n    setModalVisible(true);\n  };\n  const handleModalOk = async () => {\n    try {\n      const values = await form.validateFields();\n      const data = {\n        ...values,\n        publishedAt: values.publishedAt ? values.publishedAt.format('YYYY-MM-DD HH:mm:ss') : null\n      };\n      if (editingNews) {\n        await newsAPI.update(editingNews.id, data);\n        message.success('新闻更新成功');\n      } else {\n        await newsAPI.create(data);\n        message.success('新闻创建成功');\n      }\n      setModalVisible(false);\n      fetchNews();\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: \"\\u884C\\u4E1A\\u8206\\u60C5\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 178,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 177,\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: 8,\n            children: /*#__PURE__*/_jsxDEV(Search, {\n              placeholder: \"\\u641C\\u7D22\\u65B0\\u95FB\\u6807\\u9898\\u6216\\u6458\\u8981\",\n              onSearch: value => setFilters(prev => ({\n                ...prev,\n                search: value\n              })),\n              allowClear: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 185,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 184,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 6,\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: 198,\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: 199,\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: 200,\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: 201,\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: 202,\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: 203,\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: 204,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 192,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 191,\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: 209,\n                columnNumber: 46\n              }, this),\n              onClick: openCreateModal,\n              children: \"\\u6DFB\\u52A0\\u65B0\\u95FB\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 209,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 207,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 183,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 182,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Table, {\n        columns: columns,\n        dataSource: news,\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: 217,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 181,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Modal, {\n      title: editingNews ? '编辑新闻' : '添加新闻',\n      open: modalVisible,\n      onOk: handleModalOk,\n      onCancel: () => setModalVisible(false),\n      width: 700,\n      children: /*#__PURE__*/_jsxDEV(Form, {\n        form: form,\n        layout: \"vertical\",\n        children: [/*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"title\",\n          label: \"\\u6807\\u9898\",\n          rules: [{\n            required: true,\n            message: '请输入标题'\n          }],\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u6807\\u9898\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 241,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 240,\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: \"source\",\n              label: \"\\u6765\\u6E90\",\n              children: /*#__PURE__*/_jsxDEV(Input, {\n                placeholder: \"\\u8BF7\\u8F93\\u5165\\u6765\\u6E90\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 246,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 245,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 244,\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              rules: [{\n                required: true,\n                message: '请选择行业'\n              }],\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: 252,\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: 253,\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: 254,\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: 255,\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: 256,\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: 257,\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: 258,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 251,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 250,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 249,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 243,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"url\",\n          label: \"\\u539F\\u6587\\u94FE\\u63A5\",\n          children: /*#__PURE__*/_jsxDEV(Input, {\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u539F\\u6587\\u94FE\\u63A5\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 264,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 263,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"publishedAt\",\n          label: \"\\u53D1\\u5E03\\u65F6\\u95F4\",\n          children: /*#__PURE__*/_jsxDEV(DatePicker, {\n            showTime: true,\n            style: {\n              width: '100%'\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 267,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 266,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"summary\",\n          label: \"\\u6458\\u8981\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 3,\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u6458\\u8981\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 270,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 269,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(Form.Item, {\n          name: \"content\",\n          label: \"\\u5185\\u5BB9\",\n          children: /*#__PURE__*/_jsxDEV(TextArea, {\n            rows: 6,\n            placeholder: \"\\u8BF7\\u8F93\\u5165\\u5185\\u5BB9\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 273,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 272,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 239,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 232,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 176,\n    columnNumber: 5\n  }, this);\n};\n_s(News, \"p3dttvSQZR2CuPzVf6cl7YYv5j0=\", false, function () {\n  return [useAuth, Form.useForm];\n});\n_c = News;\nexport default News;\nvar _c;\n$RefreshReg$(_c, \"News\");","map":{"version":3,"names":["React","useState","useEffect","Table","Card","Button","Space","Tag","Input","Select","Modal","Form","message","Popconfirm","Row","Col","DatePicker","Typography","PlusOutlined","EditOutlined","DeleteOutlined","SearchOutlined","LinkOutlined","newsAPI","useAuth","dayjs","jsxDEV","_jsxDEV","Fragment","_Fragment","Option","Search","TextArea","Title","Paragraph","News","_s","news","setNews","loading","setLoading","pagination","setPagination","current","pageSize","total","filters","setFilters","isInvestmentManager","fetchNews","response","getAll","page","limit","data","prev","_response$data$pagina","error","handleDelete","id","delete","success","columns","title","dataIndex","key","render","text","record","children","href","url","target","rel","style","fontWeight","fileName","_jsxFileName","lineNumber","columnNumber","summary","color","fontSize","marginTop","industry","date","format","_","type","size","icon","onClick","openEditModal","onConfirm","danger","modalVisible","setModalVisible","editingNews","setEditingNews","form","useForm","openCreateModal","resetFields","item","setFieldsValue","publishedAt","published_at","handleModalOk","values","validateFields","update","create","_error$response","_error$response$data","className","gutter","span","placeholder","onSearch","value","search","allowClear","width","onChange","textAlign","dataSource","rowKey","showSizeChanger","showQuickJumper","showTotal","open","onOk","onCancel","layout","Item","name","label","rules","required","showTime","rows","_c","$RefreshReg$"],"sources":["/Users/nili/Documents/trae_projects/client/src/pages/News.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  Row,\n  Col,\n  DatePicker,\n  Typography\n} from 'antd';\nimport { PlusOutlined, EditOutlined, DeleteOutlined, SearchOutlined, LinkOutlined } from '@ant-design/icons';\nimport { newsAPI } from '../services/api';\nimport { useAuth } from '../contexts/AuthContext';\nimport dayjs from 'dayjs';\n\nconst { Option } = Select;\nconst { Search } = Input;\nconst { TextArea } = Input;\nconst { Title, Paragraph } = Typography;\n\nconst News = () => {\n  const [news, setNews] = 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\n  useEffect(() => {\n    fetchNews();\n  }, [pagination.current, pagination.pageSize, filters]);\n\n  const fetchNews = async () => {\n    setLoading(true);\n    try {\n      const response = await newsAPI.getAll({\n        page: pagination.current,\n        limit: pagination.pageSize,\n        ...filters\n      });\n      setNews(response.data.news);\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 newsAPI.delete(id);\n      message.success('新闻删除成功');\n      fetchNews();\n    } catch (error) {\n      message.error('删除失败');\n    }\n  };\n\n  const columns = [\n    {\n      title: '标题',\n      dataIndex: 'title',\n      key: 'title',\n      render: (text, record) => (\n        <div>\n          <a href={record.url} target=\"_blank\" rel=\"noopener noreferrer\" style={{ fontWeight: 500 }}>\n            {text}\n          </a>\n          {record.summary && <div style={{ color: '#666', fontSize: 12, marginTop: 4 }}>{record.summary}</div>}\n        </div>\n      )\n    },\n    {\n      title: '行业',\n      dataIndex: 'industry',\n      key: 'industry',\n      render: (industry) => <Tag color=\"purple\">{industry}</Tag>\n    },\n    {\n      title: '来源',\n      dataIndex: 'source',\n      key: 'source'\n    },\n    {\n      title: '发布时间',\n      dataIndex: 'published_at',\n      key: 'published_at',\n      render: (date) => dayjs(date).format('YYYY-MM-DD HH:mm')\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          {record.url && (\n            <Button type=\"link\" size=\"small\" icon={<LinkOutlined />} href={record.url} target=\"_blank\">\n              链接\n            </Button>\n          )}\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 [editingNews, setEditingNews] = useState(null);\n  const [form] = Form.useForm();\n\n  const openCreateModal = () => {\n    setEditingNews(null);\n    form.resetFields();\n    setModalVisible(true);\n  };\n\n  const openEditModal = (item) => {\n    setEditingNews(item);\n    form.setFieldsValue({\n      ...item,\n      publishedAt: item.published_at ? dayjs(item.published_at) : null\n    });\n    setModalVisible(true);\n  };\n\n  const handleModalOk = async () => {\n    try {\n      const values = await form.validateFields();\n      const data = {\n        ...values,\n        publishedAt: values.publishedAt ? values.publishedAt.format('YYYY-MM-DD HH:mm:ss') : null\n      };\n      \n      if (editingNews) {\n        await newsAPI.update(editingNews.id, data);\n        message.success('新闻更新成功');\n      } else {\n        await newsAPI.create(data);\n        message.success('新闻创建成功');\n      }\n      setModalVisible(false);\n      fetchNews();\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={8}>\n              <Search\n                placeholder=\"搜索新闻标题或摘要\"\n                onSearch={(value) => setFilters(prev => ({ ...prev, search: value }))}\n                allowClear\n              />\n            </Col>\n            <Col span={6}>\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={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={news}\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={editingNews ? '编辑新闻' : '添加新闻'}\n        open={modalVisible}\n        onOk={handleModalOk}\n        onCancel={() => setModalVisible(false)}\n        width={700}\n      >\n        <Form form={form} layout=\"vertical\">\n          <Form.Item name=\"title\" label=\"标题\" rules={[{ required: true, message: '请输入标题' }]}>\n            <Input placeholder=\"请输入标题\" />\n          </Form.Item>\n          <Row gutter={16}>\n            <Col span={12}>\n              <Form.Item name=\"source\" label=\"来源\">\n                <Input placeholder=\"请输入来源\" />\n              </Form.Item>\n            </Col>\n            <Col span={12}>\n              <Form.Item name=\"industry\" label=\"行业\" rules={[{ required: true, message: '请选择行业' }]}>\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          <Form.Item name=\"url\" label=\"原文链接\">\n            <Input placeholder=\"请输入原文链接\" />\n          </Form.Item>\n          <Form.Item name=\"publishedAt\" label=\"发布时间\">\n            <DatePicker showTime style={{ width: '100%' }} />\n          </Form.Item>\n          <Form.Item name=\"summary\" label=\"摘要\">\n            <TextArea rows={3} placeholder=\"请输入摘要\" />\n          </Form.Item>\n          <Form.Item name=\"content\" label=\"内容\">\n            <TextArea rows={6} placeholder=\"请输入内容\" />\n          </Form.Item>\n        </Form>\n      </Modal>\n    </div>\n  );\n};\n\nexport default News;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}