diff --git a/config/proxy.ts b/config/proxy.ts index 2c41112..54b78bb 100644 --- a/config/proxy.ts +++ b/config/proxy.ts @@ -15,8 +15,8 @@ export default { // localhost:8000/api/** -> https://preview.pro.ant.design/api/** '/api/': { // 要代理的地址 - // target: 'http://localhost:9091', // 本地代理 - target: 'http://wykj.cdwsx.com/api',// 后端 + target: 'http://localhost:9091', // 本地代理 + // target: 'http://wykj.cdwsx.com/api',// 后端 // target: 'http://ks.zhaopinzao8dian.com/api/ks', // 配置了这个可以从 http 代理到 https // 依赖 origin 的功能可能需要这个,比如 cookie diff --git a/src/pages/Policy/Mgmt/components/DetailModal.tsx b/src/pages/Policy/Mgmt/components/DetailModal.tsx new file mode 100644 index 0000000..afc27bb --- /dev/null +++ b/src/pages/Policy/Mgmt/components/DetailModal.tsx @@ -0,0 +1,46 @@ +import React from 'react'; +import { Modal, Descriptions, Button } from 'antd'; + +interface DetailModalProps { + open: boolean; + data?: API.PolicyInfo.PolicyInfoItem; + onCancel: () => void; +} + +const DetailModal: React.FC = ({ open, data, onCancel }) => { + return ( + 关闭} + width={800} + > + + {data?.zcmc} + {data?.zclx} + {data?.zcLevel} + {data?.sourceUnit} + {data?.acceptUnit} + {data?.publishTime} + {data?.viewNum} + {data?.zcContent} + {data?.subsidyStandard} + {data?.handleChannel} + {data?.applyCondition} + + {data?.fileUrl && ( + + {data.fileName || '查看文件'} + + )} + + {data?.createTime} + {data?.updateTime} + {data?.remark} + + + ); +}; + +export default DetailModal; diff --git a/src/pages/Policy/Mgmt/components/EditModal.tsx b/src/pages/Policy/Mgmt/components/EditModal.tsx new file mode 100644 index 0000000..f4b3161 --- /dev/null +++ b/src/pages/Policy/Mgmt/components/EditModal.tsx @@ -0,0 +1,171 @@ +import React, { useEffect, useState } from 'react'; +import { Modal, Form, Input, DatePicker, Upload, Button, message } from 'antd'; +import { UploadOutlined, DeleteOutlined } from '@ant-design/icons'; +import type { UploadFile } from 'antd/es/upload/interface'; +import dayjs from 'dayjs'; +import { uploadPolicyFile } from '@/services/cms/policyInfo'; + +const { TextArea } = Input; + +interface EditModalProps { + open: boolean; + values?: API.PolicyInfo.PolicyInfoItem; + onCancel: () => void; + onSubmit: (values: Partial) => void; +} + +const EditModal: React.FC = ({ open, values, onCancel, onSubmit }) => { + const [form] = Form.useForm(); + const [fileList, setFileList] = useState([]); + const [uploading, setUploading] = useState(false); + + useEffect(() => { + if (open) { + if (values) { + form.setFieldsValue({ + ...values, + publishTime: values.publishTime ? dayjs(values.publishTime) : undefined, + }); + // 如果有已上传的文件,显示在列表中 + if (values.fileUrl && values.fileName) { + setFileList([{ + uid: '-1', + name: values.fileName, + status: 'done', + url: values.fileUrl, + }]); + } else { + setFileList([]); + } + } else { + form.resetFields(); + setFileList([]); + } + } + }, [open, values, form]); + + const handleUpload = async (file: File) => { + setUploading(true); + try { + const res = await uploadPolicyFile(file); + if (res.code === 200) { + form.setFieldsValue({ + fileUrl: res.data.fileUrl, + fileName: res.data.fileName, + }); + setFileList([{ + uid: '-1', + name: res.data.fileName, + status: 'done', + url: res.data.fileUrl, + }]); + message.success('文件上传成功'); + } else { + message.error(res.msg || '文件上传失败'); + } + } catch { + message.error('文件上传失败'); + } finally { + setUploading(false); + } + return false; // 阻止默认上传行为 + }; + + const handleRemoveFile = () => { + setFileList([]); + form.setFieldsValue({ + fileUrl: undefined, + fileName: undefined, + }); + }; + + const handleOk = async () => { + const formValues = await form.validateFields(); + onSubmit({ + ...formValues, + id: values?.id, + publishTime: formValues.publishTime?.format('YYYY-MM-DD'), + }); + }; + + return ( + +
+ + + + + + + + + + + + + + + + + + + +