From bedf26d9a60d295e782721f426e42cee3881165d Mon Sep 17 00:00:00 2001 From: lishenfeng Date: Mon, 16 Dec 2024 17:46:34 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E8=AE=BE=E5=A4=87=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/zcd.png | Bin 0 -> 2814 bytes src/assets/images/zcdSelect.png | Bin 0 -> 2917 bytes src/components/DashboardLayout/SiderMenu.tsx | 22 +- src/components/DashboardLayout/index.tsx | 76 ------ src/components/fileUpload/index.js | 261 ++++++++++--------- src/service/apiurl.js | 38 ++- src/setupProxy.js | 4 +- src/views/Home/index.js | 239 +++++++++-------- src/views/Home/index.less | 20 +- src/views/Home/zmjk/index.js | 2 +- src/views/Login/img/bg.png | Bin 1802683 -> 1338757 bytes src/views/Login/img/formBg.png | Bin 0 -> 21549 bytes src/views/Login/index.less | 2 + src/views/Login/index1.tsx | 8 +- src/views/Sbwh/Cgtzgl/index.js | 22 +- src/views/Sbwh/Cgtzgl/toolbar.js | 10 +- src/views/Sbwh/Ssgcjl/form.js | 227 +++++++++------- src/views/Sbwh/Ssgcjl/index.js | 17 +- src/views/Sbwh/Ssgcjl/toolbar.js | 8 +- src/views/Sbwh/Whfabz/form.js | 43 ++- src/views/Sbwh/Whfabz/index.js | 12 +- src/views/Sbwh/Whfabz/toolbar.js | 10 +- src/views/Sbwh/Whxmys/form.js | 13 +- src/views/Sbwh/Whxmys/index.js | 17 +- src/views/Sbwh/Whxmys/toolbar.js | 8 +- src/views/WatchData/Jcsj/index.js | 4 +- 26 files changed, 555 insertions(+), 508 deletions(-) create mode 100644 src/assets/images/zcd.png create mode 100644 src/assets/images/zcdSelect.png create mode 100644 src/views/Login/img/formBg.png diff --git a/src/assets/images/zcd.png b/src/assets/images/zcd.png new file mode 100644 index 0000000000000000000000000000000000000000..66e3e9d3380295ea557531da394ac825b7ba66db GIT binary patch literal 2814 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 literal 0 HcmV?d00001 diff --git a/src/components/DashboardLayout/SiderMenu.tsx b/src/components/DashboardLayout/SiderMenu.tsx index f8ed96d..4ec60d4 100644 --- a/src/components/DashboardLayout/SiderMenu.tsx +++ b/src/components/DashboardLayout/SiderMenu.tsx @@ -26,6 +26,7 @@ const SiderMenu: React.FC<{ const [openKeys, setOpenKeys] = useState([`${menuIndexes[1]}`]); console.log('openKeys', openKeys) console.log(subMenu); + const [irSelect,setIr] =useState('') const location = useLocation(); const pathname = location.pathname; @@ -33,11 +34,22 @@ const SiderMenu: React.FC<{ const navigate = useNavigate(); function goto(url: string) { + setIr(url) if (pathname !== url) { navigate(url); } } + const getIcon = (item: any) => { + + const idx = item.children?.findIndex((item:any)=>irSelect == item.path) + if(item.path == irSelect || (idx !== -1&&idx !== undefined)){ + return 'zcdSelect' + }else{ + return 'zcd' + } + } + // useEffect(() => { // if (openKeys?.[0] === 'undefined') { @@ -93,7 +105,7 @@ const SiderMenu: React.FC<{ { subMenu.map((o: any) => ( o.children && o.children.length > 0 ? ( - : } + } title={ {o.title} {renderPop(o.title) && goto(oo.path)} - key={oo.id}>{oo.title} + key={oo.id} + icon={} + >{oo.title} {renderPop(oo.title) &&
: } + icon={} onClick={() => goto(o.path)} key={o.id}>
{o.title} diff --git a/src/components/DashboardLayout/index.tsx b/src/components/DashboardLayout/index.tsx index 81445cb..a1021c6 100644 --- a/src/components/DashboardLayout/index.tsx +++ b/src/components/DashboardLayout/index.tsx @@ -17,55 +17,6 @@ import { httppost2 } from '../../utils/request'; import apiurl from '../../service/apiurl'; const { Header, Content, Sider } = Layout; -const meunObj:any = { - 'home':'基本情况', - 'fxzb':'防汛准备', - 'sxfd':'思想发动', - 'fxkhgzh':'防汛抗旱工作会', - 'fbzrh':'防办主任会', - 'fxpxb':'防汛培训班', - 'fxtj':'防汛图件', - 'zzjg':'组织机构', - 'zq':'政区', - 'gc':'工程', - 'gczx':'工程整修', - 'ytygc':'已投运工程', - 'zjgc':'在建工程', - 'hdqz':'河道清障', - 'yaxb':'预案修编', - 'zqya':'政区预案', - 'ytygcya':'已投运工程预案', - 'zjgcya':'在建工程预案', - 'hsddya':'洪水调度方案', - 'qxdw':'抢险队伍', - 'qxwl':'抢险物料', - 'jczw':'检测站网', - 'yqz':'雨情站', - 'sqz':'水情站', - 'zbb':'值班表', - 'txl':'通讯录', - 'ysgzq':'雨水工灾情', - 'ssyq':'实时雨情', - 'sssq':'实时水情', - 'ssgq':'实时工情', - 'yxqk':'运行情况', - 'gcxq':'工程险情', - 'dbaq':'大坝安全监测数据', - 'sszq':'实时灾情', - 'fxdd':'防汛调度', - 'dqxsfx':'当前形势分析', - 'tqyb':'天气预报', - 'hsyb':'洪水预报', - 'skhs':'水库洪水', - 'hdhs':'河道洪水', - 'ddjc':'调度决策', - 'yjxy':'应急响应', - 'ddzl':'调度指令', - 'videoSurveillance':'视频监控', - 'fxdp':'防汛大屏', -} - - const DashboardLayout: React.FC = () => { @@ -110,34 +61,7 @@ const DashboardLayout: React.FC = () => { setRefresh(true); }; - - // 这个方法是统计菜单点击情况的 - // useEffect(()=>{ - // (async()=>{ - // const list = location.pathname.split('/') - // let menu1:any = meunObj?.[list[2]] - // let menu2:any = meunObj?.[list[3]] - // let menu3:any = meunObj?.[list[4]] - // if(menu1==='基本情况'){ - // menu2 = '基本情况' - // } - // if(menu1==='视频监控'){ - // menu2 = '视频监控' - // } - // if(menu1==='防汛大屏'){ - // menu2 = '防汛大屏' - // } - - // const res = await httppost2(apiurl.setMenu,{ - // createId:localStorage.getItem('userId'), - // loginType:0, - // menu1:menu1, - // menu2:menu2, - // menu3:menu3 - // }) - // })() - // },[location.pathname]) const menuIndexes = useMemo(() => findMenu(menu, pathname), [menu, pathname]); diff --git a/src/components/fileUpload/index.js b/src/components/fileUpload/index.js index 8592b6c..436cf5c 100644 --- a/src/components/fileUpload/index.js +++ b/src/components/fileUpload/index.js @@ -1,68 +1,71 @@ -import React,{useState,useEffect} from 'react' -import { Upload, Row, Col,Image,message,Modal } from "antd" -import { DeleteOutlined, FileWordOutlined, FilePdfOutlined,FileJpgOutlined, FileZipOutlined, FilePptOutlined, FileExcelOutlined } from '@ant-design/icons'; +import React, { useState, useEffect } from 'react' +import { Upload, Row, Col, Image, message, Modal } from "antd" +import { DeleteOutlined, FileWordOutlined, FilePdfOutlined, FileJpgOutlined, FileZipOutlined, FilePptOutlined, FileExcelOutlined } from '@ant-design/icons'; import './index.less' import { httpget, httpGetFile, httppost } from '../../utils/request'; import apiurl from '../../service/apiurl'; const { Dragger } = Upload; -export default function FileUpload({ mode,setFileIds,files }) { - const [fileList, setFileList] = useState([]) //上传文件列表 - const [iframeSrc, setIframeSrc] = useState('') - const [pdfViewOPen, setPdfViewOPen] = useState(false) - const [loading, setLoading] = useState(false) - /** - * @description 删除上传的图片 - * @param {string} id 删除的id - */ - const deleteFile = async(fileId) => { + +export default function FileUpload({ mode, setFileIds, files, downloadUrl, uploadUrl }) { + const url = "http://223.75.53.141:9102/test.by-lyf.tmp" + const [fileList, setFileList] = useState([]) //上传文件列表 + const [iframeSrc, setIframeSrc] = useState('') + const [pdfViewOPen, setPdfViewOPen] = useState(false) + const [loading, setLoading] = useState(false) + /** +* @description 删除上传的图片 +* @param {string} id 删除的id +*/ + const deleteFile = async (fileId) => { let filterFile = fileList.filter(item => item.response?.data?.fileId !== fileId); setFileList(filterFile) - setFileIds(filterFile.map(item => item.response?.data?.fileId)) + setFileIds(filterFile.map(item => ({fileId:item.response?.data?.fileId}))) } - - const fileChange = (info) => { - if (info.file.status === "done") { - setLoading(false); - } - if (info.file.status === "uploading") { - setLoading(true); - } - if (info.file.status === "error") { - message.error("文件上传失败") - setLoading(false); - } - let fileIds = info.fileList.map(file => { - return file.response?.data?.fileId - }) - setFileIds(fileIds) - setFileList(info.fileList) - console.log("info.fileList",info.fileList); - - } - - - /** - * @description 文件下载 - * @param {String} params 文件fileId - */ + const fileChange = (info) => { + if (info.file.status === "done") { + setLoading(false); + } + if (info.file.status === "uploading") { + setLoading(true); + } + if (info.file.status === "error") { + message.error("文件上传失败") + setLoading(false); + } + let fileIds = info.fileList.map(file => { + return { + fileId:file.response?.data?.fileId + } + }) + setFileIds(fileIds) + setFileList(info.fileList) + console.log("info.fileList", info.fileList); + + } + + + + /** +* @description 文件下载 +* @param {String} params 文件fileId +*/ const download = (params) => { let downloadLink = document.createElement("a"); - // downloadLink.href = `http://192.168.66.7:20010/fileAssociations/downloadFile/${params?.fileId}`; - downloadLink.href = `http://223.75.53.141:81/shzh/jcsj/fileAssociations/downloadFile/${params?.fileId}`; - downloadLink.download = `${params.fileName}`; - downloadLink.style.display = "none"; - // 将链接添加到页面中 - document.body.appendChild(downloadLink); + downloadLink.href = `${downloadUrl}/${params?.fileId}`; + downloadLink.download = `${params.fileName}`; + downloadLink.style.display = "none"; + // 将链接添加到页面中 + document.body.appendChild(downloadLink); - // 模拟点击事件,开始下载 - downloadLink.click(); - } - - /** - * @description pdf文件预览 - * @param {String} params 文件预览url - */ + // 模拟点击事件,开始下载 + downloadLink.click(); + } + + /** +* @description pdf文件预览 +* @param {String} params 文件预览url +*/ const viewPdf = (params) => { setIframeSrc(params.fileId) setPdfViewOPen(true) @@ -70,113 +73,113 @@ export default function FileUpload({ mode,setFileIds,files }) { useEffect(() => { if (mode != "save" && files) { - setFileList(files.map(file => ({...file,name:file.fileName,response:{data:{name:file.fileName,fileId:file.fileId}}}))) - setFileIds(files.map(item => item.response?.data?.fileId)) + setFileList(files.map(file => ({ ...file, name: file.fileName, response: { data: { name: file.fileName, fileId: file.fileId,filePath:file.filePath } } }))) + setFileIds(files.map(item => ({fileId:item.response?.data?.fileId}))) } - }, [mode,files]) - + }, [mode, files]) + return ( -
- {mode !== "view" && - { console.log(info.dataTransfer.files); }} - fileList={fileList} - disabled={loading} - showUploadList={false} - // onSuccess={handleSuccess} - > -

点击或拖拽文件到此区域上传

-

- 支持扩展名:.rar .zip .doc .docx .pdf .jpg .png .ppt -

-
- } - - { - loading ? 文件正在上传中,请等待 : - fileList.length > 0 && fileList.map(file => { - return ( - -
-
- {file.name.indexOf('.docx') > -1 ? +
+ {mode !== "view" && + { console.log(info.dataTransfer.files); }} + fileList={fileList} + disabled={loading} + showUploadList={false} + // onSuccess={handleSuccess} + > +

点击或拖拽文件到此区域上传

+

+ 支持扩展名:.rar .zip .doc .docx .pdf .jpg .png .ppt +

+
+ } + + { + loading ? 文件正在上传中,请等待 : + fileList.length > 0 && fileList.map(file => { + return ( + +
+
+ {file.name.indexOf('.docx') > -1 ? +
{ download(file.response?.data) }} + style={{ cursor: 'pointer' }} + > + +
+ : + file.name.indexOf('.pdf') > -1 ? +
{ viewPdf(file.response?.data) }} + style={{ cursor: 'pointer' }} + > + +
+ : + file.name.indexOf('.zip') > -1 ?
{ download(file.response?.data) }} style={{ cursor: 'pointer' }} > - +
- : - file.name.indexOf('.pdf') > -1 ? + : + file.name.indexOf('.ppt') > -1 ?
{ download(file.response?.data) }} style={{ cursor: 'pointer' }} > - -
- : - file.name.indexOf('.zip') > -1 ? + +
: + file.name.indexOf('.xlsx') > -1 ?
{ download(file.response?.data) }} style={{ cursor: 'pointer' }} > - +
: - file.name.indexOf('.ppt') > -1 ? -
{ viewPdf(file.response?.data) }} - style={{ cursor: 'pointer' }} - > - -
: - file.name.indexOf('.xlsx') > -1 ? -
{ download(file.response?.data) }} - style={{ cursor: 'pointer' }} - > - -
- : - - { download(file.response?.data) }} /> - } - {file.name} -
-
deleteFile(file.response?.data?.fileId)}> - -
-
- - ) - }) - } + + + } + {file.name} +
+
deleteFile(file.response?.data?.fileId)}> + +
+
+ + ) + }) + }
- - { setPdfViewOPen(false) }} > -