{"ast":null,"code":"import React,{useState,useEffect}from'react';import{Table,Card,Button,Space,Tag,Input,Select,Modal,Form,message,Popconfirm,Row,Col,DatePicker,Typography}from'antd';import{PlusOutlined,EditOutlined,DeleteOutlined,SearchOutlined,LinkOutlined}from'@ant-design/icons';import{newsAPI}from'../services/api';import{useAuth}from'../contexts/AuthContext';import dayjs from'dayjs';import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";const{Option}=Select;const{Search}=Input;const{TextArea}=Input;const{Title,Paragraph}=Typography;const News=()=>{const[news,setNews]=useState([]);const[loading,setLoading]=useState(false);const[pagination,setPagination]=useState({current:1,pageSize:20,total:0});const[filters,setFilters]=useState({});const{isInvestmentManager}=useAuth();useEffect(()=>{fetchNews();},[pagination.current,pagination.pageSize,filters]);const fetchNews=async()=>{setLoading(true);try{const response=await newsAPI.getAll({page:pagination.current,limit:pagination.pageSize,...filters});setNews(response.data.news);setPagination(prev=>{var _response$data$pagina;return{...prev,total:((_response$data$pagina=response.data.pagination)===null||_response$data$pagina===void 0?void 0:_response$data$pagina.total)||0};});}catch(error){message.error('获取新闻列表失败');}finally{setLoading(false);}};const handleDelete=async id=>{try{await newsAPI.delete(id);message.success('新闻删除成功');fetchNews();}catch(error){message.error('删除失败');}};const columns=[{title:'标题',dataIndex:'title',key:'title',render:(text,record)=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"a\",{href:record.url,target:\"_blank\",rel:\"noopener noreferrer\",style:{fontWeight:500},children:text}),record.summary&&/*#__PURE__*/_jsx(\"div\",{style:{color:'#666',fontSize:12,marginTop:4},children:record.summary})]})},{title:'行业',dataIndex:'industry',key:'industry',render:industry=>/*#__PURE__*/_jsx(Tag,{color:\"purple\",children:industry})},{title:'来源',dataIndex:'source',key:'source'},{title:'发布时间',dataIndex:'published_at',key:'published_at',render:date=>dayjs(date).format('YYYY-MM-DD HH:mm')},{title:'创建时间',dataIndex:'created_at',key:'created_at',render:date=>dayjs(date).format('YYYY-MM-DD')},{title:'操作',key:'actions',render:(_,record)=>/*#__PURE__*/_jsxs(Space,{children:[record.url&&/*#__PURE__*/_jsx(Button,{type:\"link\",size:\"small\",icon:/*#__PURE__*/_jsx(LinkOutlined,{}),href:record.url,target:\"_blank\",children:\"\\u94FE\\u63A5\"}),isInvestmentManager()&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Button,{type:\"link\",size:\"small\",icon:/*#__PURE__*/_jsx(EditOutlined,{}),onClick:()=>openEditModal(record),children:\"\\u7F16\\u8F91\"}),/*#__PURE__*/_jsx(Popconfirm,{title:\"\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u8FD9\\u6761\\u65B0\\u95FB\\u5417?\",onConfirm:()=>handleDelete(record.id),children:/*#__PURE__*/_jsx(Button,{type:\"link\",size:\"small\",danger:true,icon:/*#__PURE__*/_jsx(DeleteOutlined,{}),children:\"\\u5220\\u9664\"})})]})]})}];const[modalVisible,setModalVisible]=useState(false);const[editingNews,setEditingNews]=useState(null);const[form]=Form.useForm();const openCreateModal=()=>{setEditingNews(null);form.resetFields();setModalVisible(true);};const openEditModal=item=>{setEditingNews(item);form.setFieldsValue({...item,publishedAt:item.published_at?dayjs(item.published_at):null});setModalVisible(true);};const handleModalOk=async()=>{try{const values=await form.validateFields();const data={...values,publishedAt:values.publishedAt?values.publishedAt.format('YYYY-MM-DD HH:mm:ss'):null};if(editingNews){await newsAPI.update(editingNews.id,data);message.success('新闻更新成功');}else{await newsAPI.create(data);message.success('新闻创建成功');}setModalVisible(false);fetchNews();}catch(error){var _error$response,_error$response$data;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)||'操作失败');}};return/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{className:\"page-header\",children:/*#__PURE__*/_jsx(\"h1\",{children:\"\\u884C\\u4E1A\\u8206\\u60C5\"})}),/*#__PURE__*/_jsxs(Card,{children:[/*#__PURE__*/_jsx(\"div\",{className:\"filter-bar\",children:/*#__PURE__*/_jsxs(Row,{gutter:16,children:[/*#__PURE__*/_jsx(Col,{span:8,children:/*#__PURE__*/_jsx(Search,{placeholder:\"\\u641C\\u7D22\\u65B0\\u95FB\\u6807\\u9898\\u6216\\u6458\\u8981\",onSearch:value=>setFilters(prev=>({...prev,search:value})),allowClear:true})}),/*#__PURE__*/_jsx(Col,{span:6,children:/*#__PURE__*/_jsxs(Select,{placeholder:\"\\u884C\\u4E1A\",allowClear:true,style:{width:'100%'},onChange:value=>setFilters(prev=>({...prev,industry:value})),children:[/*#__PURE__*/_jsx(Option,{value:\"\\u4EBA\\u5DE5\\u667A\\u80FD\",children:\"\\u4EBA\\u5DE5\\u667A\\u80FD\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u751F\\u7269\\u533B\\u836F\",children:\"\\u751F\\u7269\\u533B\\u836F\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u65B0\\u80FD\\u6E90\",children:\"\\u65B0\\u80FD\\u6E90\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u534A\\u5BFC\\u4F53\",children:\"\\u534A\\u5BFC\\u4F53\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u4F01\\u4E1A\\u670D\\u52A1\",children:\"\\u4F01\\u4E1A\\u670D\\u52A1\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u6D88\\u8D39\\u5347\\u7EA7\",children:\"\\u6D88\\u8D39\\u5347\\u7EA7\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u5176\\u4ED6\",children:\"\\u5176\\u4ED6\"})]})}),/*#__PURE__*/_jsx(Col,{span:10,style:{textAlign:'right'},children:isInvestmentManager()&&/*#__PURE__*/_jsx(Button,{type:\"primary\",icon:/*#__PURE__*/_jsx(PlusOutlined,{}),onClick:openCreateModal,children:\"\\u6DFB\\u52A0\\u65B0\\u95FB\"})})]})}),/*#__PURE__*/_jsx(Table,{columns:columns,dataSource:news,rowKey:\"id\",loading:loading,pagination:{...pagination,showSizeChanger:true,showQuickJumper:true,showTotal:total=>`共 ${total} 条`,onChange:(page,pageSize)=>setPagination(prev=>({...prev,current:page,pageSize}))}})]}),/*#__PURE__*/_jsx(Modal,{title:editingNews?'编辑新闻':'添加新闻',open:modalVisible,onOk:handleModalOk,onCancel:()=>setModalVisible(false),width:700,children:/*#__PURE__*/_jsxs(Form,{form:form,layout:\"vertical\",children:[/*#__PURE__*/_jsx(Form.Item,{name:\"title\",label:\"\\u6807\\u9898\",rules:[{required:true,message:'请输入标题'}],children:/*#__PURE__*/_jsx(Input,{placeholder:\"\\u8BF7\\u8F93\\u5165\\u6807\\u9898\"})}),/*#__PURE__*/_jsxs(Row,{gutter:16,children:[/*#__PURE__*/_jsx(Col,{span:12,children:/*#__PURE__*/_jsx(Form.Item,{name:\"source\",label:\"\\u6765\\u6E90\",children:/*#__PURE__*/_jsx(Input,{placeholder:\"\\u8BF7\\u8F93\\u5165\\u6765\\u6E90\"})})}),/*#__PURE__*/_jsx(Col,{span:12,children:/*#__PURE__*/_jsx(Form.Item,{name:\"industry\",label:\"\\u884C\\u4E1A\",rules:[{required:true,message:'请选择行业'}],children:/*#__PURE__*/_jsxs(Select,{placeholder:\"\\u8BF7\\u9009\\u62E9\\u884C\\u4E1A\",children:[/*#__PURE__*/_jsx(Option,{value:\"\\u4EBA\\u5DE5\\u667A\\u80FD\",children:\"\\u4EBA\\u5DE5\\u667A\\u80FD\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u751F\\u7269\\u533B\\u836F\",children:\"\\u751F\\u7269\\u533B\\u836F\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u65B0\\u80FD\\u6E90\",children:\"\\u65B0\\u80FD\\u6E90\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u534A\\u5BFC\\u4F53\",children:\"\\u534A\\u5BFC\\u4F53\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u4F01\\u4E1A\\u670D\\u52A1\",children:\"\\u4F01\\u4E1A\\u670D\\u52A1\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u6D88\\u8D39\\u5347\\u7EA7\",children:\"\\u6D88\\u8D39\\u5347\\u7EA7\"}),/*#__PURE__*/_jsx(Option,{value:\"\\u5176\\u4ED6\",children:\"\\u5176\\u4ED6\"})]})})})]}),/*#__PURE__*/_jsx(Form.Item,{name:\"url\",label:\"\\u539F\\u6587\\u94FE\\u63A5\",children:/*#__PURE__*/_jsx(Input,{placeholder:\"\\u8BF7\\u8F93\\u5165\\u539F\\u6587\\u94FE\\u63A5\"})}),/*#__PURE__*/_jsx(Form.Item,{name:\"publishedAt\",label:\"\\u53D1\\u5E03\\u65F6\\u95F4\",children:/*#__PURE__*/_jsx(DatePicker,{showTime:true,style:{width:'100%'}})}),/*#__PURE__*/_jsx(Form.Item,{name:\"summary\",label:\"\\u6458\\u8981\",children:/*#__PURE__*/_jsx(TextArea,{rows:3,placeholder:\"\\u8BF7\\u8F93\\u5165\\u6458\\u8981\"})}),/*#__PURE__*/_jsx(Form.Item,{name:\"content\",label:\"\\u5185\\u5BB9\",children:/*#__PURE__*/_jsx(TextArea,{rows:6,placeholder:\"\\u8BF7\\u8F93\\u5165\\u5185\\u5BB9\"})})]})})]});};export default 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","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Option","Search","TextArea","Title","Paragraph","News","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","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"],"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":[]}