From ad9ce024d7ad22caf266a9b9174fbc941016bb9f Mon Sep 17 00:00:00 2001 From: wang_yp <357754663@qq.com> Date: Tue, 22 Oct 2024 23:14:45 +0800 Subject: [PATCH] fix(amap):core --- package-lock.json | 206 ++++++++++++++++++++++++++++ package.json | 1 + src/App.tsx | 8 +- src/components/layout/layout.tsx | 8 ++ src/components/map/MapComponent.tsx | 11 +- src/pages/community/index.tsx | 143 +++++++++++++++++++ src/pages/grid/index.tsx | 172 +++++++++++++++++++++++ src/pages/home/homeLeft/turn.tsx | 23 ++-- src/pages/user/user_config.tsx | 135 +++++++++--------- src/router/routers/home_router.tsx | 12 ++ src/store/community.ts | 19 +++ src/store/grid.ts | 19 +++ src/store/index.ts | 6 +- src/util/config.ts | 12 +- src/util/webRtc.ts | 9 +- 15 files changed, 679 insertions(+), 105 deletions(-) create mode 100644 src/pages/community/index.tsx create mode 100644 src/pages/grid/index.tsx create mode 100644 src/store/community.ts create mode 100644 src/store/grid.ts diff --git a/package-lock.json b/package-lock.json index 3baf165..3d201ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", "@babel/core": "^7.16.0", + "@codesmith-99/react-file-preview": "^1.0.33", "@craco/craco": "^6.4.5", "@dabeng/react-orgchart": "^1.0.3", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", @@ -2196,6 +2197,59 @@ "node": ">=0.1.95" } }, + "node_modules/@codesmith-99/react-file-preview": { + "version": "1.0.33", + "resolved": "https://registry.npmmirror.com/@codesmith-99/react-file-preview/-/react-file-preview-1.0.33.tgz", + "integrity": "sha512-xwcKbfz7DiU23xzZiLNJ9JewFEtWfbMbv5pre14NTcnllVCxEyvX0RtDBJLNjjFMqJX62wnQ8GJWR0wQaJIV4w==", + "dependencies": { + "comma-separated-values": "^3.6.4", + "mime": "^3.0.0", + "react": "^18.2.0", + "react-file-icon": "^1.3.0", + "react-virtuoso": "^4.0.3", + "styled-components": "^5.3.6" + } + }, + "node_modules/@codesmith-99/react-file-preview/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@codesmith-99/react-file-preview/node_modules/styled-components": { + "version": "5.3.11", + "resolved": "https://registry.npmmirror.com/styled-components/-/styled-components-5.3.11.tgz", + "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" + } + }, "node_modules/@craco/craco": { "version": "6.4.5", "resolved": "https://registry.npmmirror.com/@craco/craco/-/craco-6.4.5.tgz", @@ -2563,6 +2617,11 @@ "resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.8.1.tgz", "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, "node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz", @@ -6715,6 +6774,21 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, "node_modules/babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmmirror.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -7841,6 +7915,11 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-values": { + "version": "3.6.4", + "resolved": "https://registry.npmmirror.com/comma-separated-values/-/comma-separated-values-3.6.4.tgz", + "integrity": "sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ==" + }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", @@ -11986,6 +12065,19 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz", @@ -20284,6 +20376,19 @@ "resolved": "https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz", "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, + "node_modules/react-file-icon": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/react-file-icon/-/react-file-icon-1.5.0.tgz", + "integrity": "sha512-6K2/nAI69CS838HOS+4S95MLXwf1neWywek1FgqcTFPTYjnM8XT7aBLz4gkjoqQKY9qPhu3A2tu+lvxhmZYY9w==", + "dependencies": { + "colord": "^2.9.3", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^18.0.0 || ^17.0.0 || ^16.2.0", + "react-dom": "^18.0.0 || ^17.0.0 || ^16.2.0" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", @@ -28103,6 +28208,18 @@ "node": ">=6" } }, + "node_modules/react-virtuoso": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/react-virtuoso/-/react-virtuoso-4.12.0.tgz", + "integrity": "sha512-oHrKlU7xHsrnBQ89ecZoMPAK0tHnI9s1hsFW3KKg5ZGeZ5SWvbGhg/QFJFY4XETAzoCUeu+Xaxn1OUb/PGtPlA==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16 || >=17 || >= 18", + "react-dom": ">=16 || >=17 || >= 18" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", @@ -34983,6 +35100,43 @@ "minimist": "^1.2.0" } }, + "@codesmith-99/react-file-preview": { + "version": "1.0.33", + "resolved": "https://registry.npmmirror.com/@codesmith-99/react-file-preview/-/react-file-preview-1.0.33.tgz", + "integrity": "sha512-xwcKbfz7DiU23xzZiLNJ9JewFEtWfbMbv5pre14NTcnllVCxEyvX0RtDBJLNjjFMqJX62wnQ8GJWR0wQaJIV4w==", + "requires": { + "comma-separated-values": "^3.6.4", + "mime": "^3.0.0", + "react": "^18.2.0", + "react-file-icon": "^1.3.0", + "react-virtuoso": "^4.0.3", + "styled-components": "^5.3.6" + }, + "dependencies": { + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + }, + "styled-components": { + "version": "5.3.11", + "resolved": "https://registry.npmmirror.com/styled-components/-/styled-components-5.3.11.tgz", + "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + } + } + }, "@craco/craco": { "version": "6.4.5", "resolved": "https://registry.npmmirror.com/@craco/craco/-/craco-6.4.5.tgz", @@ -35188,6 +35342,11 @@ "resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.8.1.tgz", "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, "@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz", @@ -38322,6 +38481,18 @@ "@babel/helper-define-polyfill-provider": "^0.6.2" } }, + "babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" + } + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmmirror.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -39230,6 +39401,11 @@ "delayed-stream": "~1.0.0" } }, + "comma-separated-values": { + "version": "3.6.4", + "resolved": "https://registry.npmmirror.com/comma-separated-values/-/comma-separated-values-3.6.4.tgz", + "integrity": "sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ==" + }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", @@ -42326,6 +42502,21 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz", @@ -48229,6 +48420,15 @@ "resolved": "https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz", "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, + "react-file-icon": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/react-file-icon/-/react-file-icon-1.5.0.tgz", + "integrity": "sha512-6K2/nAI69CS838HOS+4S95MLXwf1neWywek1FgqcTFPTYjnM8XT7aBLz4gkjoqQKY9qPhu3A2tu+lvxhmZYY9w==", + "requires": { + "colord": "^2.9.3", + "prop-types": "^15.7.2" + } + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", @@ -54310,6 +54510,12 @@ } } }, + "react-virtuoso": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/react-virtuoso/-/react-virtuoso-4.12.0.tgz", + "integrity": "sha512-oHrKlU7xHsrnBQ89ecZoMPAK0tHnI9s1hsFW3KKg5ZGeZ5SWvbGhg/QFJFY4XETAzoCUeu+Xaxn1OUb/PGtPlA==", + "requires": {} + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", diff --git a/package.json b/package.json index e14b8cc..b6df875 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", "@babel/core": "^7.16.0", + "@codesmith-99/react-file-preview": "^1.0.33", "@craco/craco": "^6.4.5", "@dabeng/react-orgchart": "^1.0.3", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", diff --git a/src/App.tsx b/src/App.tsx index d91d599..29c1597 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,8 +1,8 @@ import { Outlet } from "react-router"; import MapUtl from "./components/map/mapUtil"; import { useEffect } from "react"; -import SocketService from "./util/socket"; -const socketService = SocketService.getInstance(); +// import SocketService from "./util/socket"; +// const socketService = SocketService.getInstance(); const onMessage = (e: any) => { let data = JSON.parse(e); if (data.type === "accpt") { @@ -25,12 +25,12 @@ const onMessage = (e: any) => { } }; -socketService.on("message", onMessage); +// socketService.on("message", onMessage); const App = () => { useEffect(() => { return () => { console.log("uninstall"); - socketService.off("message", onMessage); + // socketService.off("message", onMessage); }; }, []); return ( diff --git a/src/components/layout/layout.tsx b/src/components/layout/layout.tsx index 2ef0c7b..bbbd5f9 100644 --- a/src/components/layout/layout.tsx +++ b/src/components/layout/layout.tsx @@ -40,6 +40,14 @@ const LayOut = (props: Store) => { key: "/admin/persMgmt", label: `个人身份管理`, }, + { + key: "/admin/community", + label: `社区管理`, + }, + { + key: "/admin/grid", + label: `网格管理`, + }, ], }, { diff --git a/src/components/map/MapComponent.tsx b/src/components/map/MapComponent.tsx index 1cb347a..750f4bc 100644 --- a/src/components/map/MapComponent.tsx +++ b/src/components/map/MapComponent.tsx @@ -28,19 +28,14 @@ export default function MapContainer() { resizeEnable: true, }); // const bundler = result.districtList[0].boundaries; - const bundler: Array = []; - mapArrs.forEach((item) => { - let db = MapUtl.bdConvertGd(item); - bundler.push(db); - }); const polygon = new Amap.Polygon({ map: amap, - path: bundler, - strokeColor: "#85b0ec", //线颜色 + path: mapArrs, + strokeColor: "red", //线颜色 strokeOpacity: 0.8, //线透明度 strokeWeight: 2, //线宽 fillColor: "#85b0ec", //填充色 - fillOpacity: 0.3, //填充透明度 + fillOpacity: 0, //填充透明度 }); amap.add(polygon); amap.setFitView(); diff --git a/src/pages/community/index.tsx b/src/pages/community/index.tsx new file mode 100644 index 0000000..f17506d --- /dev/null +++ b/src/pages/community/index.tsx @@ -0,0 +1,143 @@ +import { Button, Space, Modal, FormInstance } from "antd"; +import { inject, observer } from "mobx-react"; +import type { ColumnsType } from "antd/es/table"; +import BTable from "@/components/b_table"; +import { useEffect, useState } from "react"; +import { UserDataType } from "@/model/userModel"; +import { Store } from "antd/lib/form/interface"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +// 网格 +const Community = (props: Store) => { + const { communityStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const [projectConfig, setProjectConfig] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [tagId, setId] = useState(null); + const columns: ColumnsType = [ + { title: "社区名称", dataIndex: "name" }, + { title: "社区描述", dataIndex: "desc" }, + { + title: "操作", + dataIndex: "id", + render: (any, record) => ( +
+ + + + +
+ ), + }, + ]; + const edit = (record) => { + let data = { + ...record, + head_img: [{ url: record.head_img }], + }; + setProjectConfig(defaultConfig); + setIsModalOpen(true); + formRef.current?.setFieldsValue(data); + setRecord(data); + setId(record.id); + }; + const onFinish = (values: any) => { + if (!tagId) { + communityStore.add(values); + } else { + communityStore.putItem(tagId, values); + } + setIsModalOpen(false); + }; + useEffect(() => { + communityStore.getlist(); + }, [communityStore]); + const defaultConfig = [ + { + type: "input", + label: "社区名称", + name: "name", + value: "", + rules: [{ required: true, message: "请输入社区名称!" }], + }, + { + type: "input", + label: "社区描述", + name: "desc", + value: "", + rules: [{ required: true, message: "请输入社区描述" }], + }, + ]; + const onFinishFailed = () => {}; + return ( +
+ + + + + + + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + okText="确定" + cancelText="取消" + onCancel={() => { + setId(null); + setIsModalOpen(false); + }} + > + { + formRef.current?.setFieldsValue(record); + }} + formName="card_basic" + colProps={25} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + > + + +
+ ); +}; + +export default inject("communityStore")(observer(Community)); diff --git a/src/pages/grid/index.tsx b/src/pages/grid/index.tsx new file mode 100644 index 0000000..94f60f3 --- /dev/null +++ b/src/pages/grid/index.tsx @@ -0,0 +1,172 @@ +import { Button, Space, Modal, FormInstance, Form, Select } from "antd"; +import { inject, observer } from "mobx-react"; +import type { ColumnsType } from "antd/es/table"; +import BTable from "@/components/b_table"; +import { useEffect, useState } from "react"; +import { UserDataType } from "@/model/userModel"; +import { Store } from "antd/lib/form/interface"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +const { Option } = Select; +// 网格 +const Grid = (props: Store) => { + const { gridStore, communityStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const [projectConfig, setProjectConfig] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [tagId, setId] = useState(null); + const columns: ColumnsType = [ + { title: "网格名称", dataIndex: "grid_name" }, + { title: "常驻人口数", dataIndex: "resident_population" }, + { title: "网格领导", dataIndex: "grid_leader" }, + { title: "所属社区", dataIndex: "community_name" }, + { title: "网格区域", dataIndex: "grid_area" }, + { + title: "操作", + dataIndex: "id", + render: (any, record) => ( +
+ + + + +
+ ), + }, + ]; + const edit = (record) => { + setProjectConfig(defaultConfig); + setIsModalOpen(true); + formRef.current?.setFieldsValue(record); + setRecord(record); + setId(record.id); + }; + const onFinish = (values: any) => { + if (!tagId) { + gridStore.add(values); + } else { + gridStore.putItem(tagId, values); + } + setIsModalOpen(false); + }; + useEffect(() => { + gridStore.getlist(); + communityStore.getlist(); + }, [gridStore,communityStore]); + const defaultConfig = [ + { + type: "input", + label: "网格名称", + name: "grid_name", + value: "", + rules: [{ required: true, message: "请输入网格名称!" }], + }, + { + type: "input", + label: "网格领导名称", + name: "grid_leader", + value: "", + rules: [{ required: true, message: "请输入网格领导名称!" }], + }, + { + type: "input", + label: "常驻人口数", + name: "resident_population", + value: "", + rules: [{ required: true, message: "请输入常驻人口数" }], + }, + { + type: "input", + label: "网格区域", + name: "grid_area", + value: "", + rules: [{ required: true, message: "请输入网格区域" }], + }, + ]; + const onFinishFailed = () => {}; + return ( +
+ + + + + + + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + okText="确定" + cancelText="取消" + onCancel={() => { + setId(null); + setIsModalOpen(false); + }} + > + { + formRef.current?.setFieldsValue(record); + }} + formName="card_basic" + colProps={25} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + > + <> + + + + + + + +
+ ); +}; + +export default inject("gridStore", "communityStore")(observer(Grid)); diff --git a/src/pages/home/homeLeft/turn.tsx b/src/pages/home/homeLeft/turn.tsx index 2def89d..48d6282 100644 --- a/src/pages/home/homeLeft/turn.tsx +++ b/src/pages/home/homeLeft/turn.tsx @@ -5,6 +5,7 @@ import { useEffect, useState } from "react"; import "./left.less"; import { Col, Modal, Row } from "antd"; import { trunEchatConfig } from "./trun_chat_config"; +import FileViewer from "@codesmith-99/react-file-preview"; const Turn = (props: Store) => { const { homeStore, trainingStore, folderStore } = props; const [isModalOpen, setisModalOpen] = useState(false); @@ -14,8 +15,6 @@ const Turn = (props: Store) => { const [taskId, setTaskId] = useState([]); const [folderId, setFolderId] = useState([]); const getFileTypeFromUrl = (url) => { - console.log(url); - if (url === "" || url.length === 0) return; // 解析URL以提取文件名 const filename = url.split("/").pop(); @@ -74,7 +73,6 @@ const Turn = (props: Store) => { switch (fileType) { case "jpeg": return ; - case "jpg": return ; case "png": @@ -92,7 +90,7 @@ const Turn = (props: Store) => { ); case "mp4": return ( -
+