From 788149e2526df34be4ec810aa16283cc882bbe22 Mon Sep 17 00:00:00 2001 From: Rain <904416525@qq.com> Date: Sat, 12 Oct 2024 19:17:13 +0800 Subject: [PATCH] =?UTF-8?q?2024-10-12=20=E6=9C=A8=E5=9E=92-=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/staticMenu.ts | 19 +- .../projectOverview/centerToper.vue | 11 + .../projectshow/components/MapBack.vue | 128 +- .../projectshow/components/MapDialog.vue | 47 +- .../projectshow/components/VideoPreview.vue | 18 +- .../projectshow/components/mulei.json | 2417 ++++++++++++++++- .../sevenLargeScreen/projectshow/index.vue | 30 +- 7 files changed, 2588 insertions(+), 82 deletions(-) diff --git a/src/config/staticMenu.ts b/src/config/staticMenu.ts index 2305b05..c838ca3 100644 --- a/src/config/staticMenu.ts +++ b/src/config/staticMenu.ts @@ -1868,13 +1868,18 @@ export const DLJBMenu: Array = [ export const ZMMLMenu: Array = [ { moduleName: "综合管理", - modulePath: "/projectOverview", - menuList: [ - { - menuName: "工程概况", - companyPath: "/projectOverview" - } - ] + modulePath: "/projectOverviewer", + // menuList: [ + // { + // menuName: "工程概况", + // companyPath: "/projectOverviewer" + // }, + // { + // menuName: "工程概况", + // companyPath: "/projectOverview" + // } + + // ] }, { moduleName: "数字工地", diff --git a/src/views/sevenLargeScreen/comprehensiveManage/projectOverview/centerToper.vue b/src/views/sevenLargeScreen/comprehensiveManage/projectOverview/centerToper.vue index f6e29d6..788b93f 100644 --- a/src/views/sevenLargeScreen/comprehensiveManage/projectOverview/centerToper.vue +++ b/src/views/sevenLargeScreen/comprehensiveManage/projectOverview/centerToper.vue @@ -70,6 +70,11 @@ +
+ + + +
@@ -382,6 +387,12 @@ onMounted(async () => { top: 55%; z-index: 10; } +.fullScreen { + position: absolute; + right: 24px; + top: 8px; + cursor: pointer; +} .top-tab { position: absolute; diff --git a/src/views/sevenLargeScreen/projectshow/components/MapBack.vue b/src/views/sevenLargeScreen/projectshow/components/MapBack.vue index ab32525..de1aed2 100644 --- a/src/views/sevenLargeScreen/projectshow/components/MapBack.vue +++ b/src/views/sevenLargeScreen/projectshow/components/MapBack.vue @@ -24,6 +24,9 @@ import "mars3d-cesium/Build/Cesium/Widgets/widgets.css"; let props = defineProps({ parentFunc: { type: Function + }, + parentFuncer: { + type: Function } }); @@ -42,6 +45,7 @@ const store = GlobalStore(); import { arealistmap } from "@/api/modules/projectshow"; import { statBigScreeneq } from "@/api/modules/vehicle"; import { selectEnableVideoItemList } from "@/api/modules/projectshow"; +import resultdata from "./mulei.json"; // 区域数据 const areadata = ref([]); @@ -86,8 +90,9 @@ onMounted(async () => { }, control: { // baseLayerPicker: true // basemaps底图切换按钮 - logo: false, // 移除火星科技图标 + logo: false // 移除火星科技图标 // baseLayerPicker: true + // fullscreenButton: true }, // terrain: { // url: "//data.mars3d.cn/terrain", @@ -108,13 +113,24 @@ onMounted(async () => { // // url: "http://webst0{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}", // // subdomains: ["1", "2", "3", "4"], // // show: true // 设置为默认显示 - // }, + // } { name: "天地图影像", icon: "img/basemaps/tdt_img.png", + // http://mars3d.cn/example/img/basemaps/tdt_img.png type: "tdt", layer: "img_d", - show: true, + show: true + } + ], + // 天地图标注 + layers: [ + { + name: "天地图注记", + type: "tdt", + // layer: "ter_z", // 路线加点位标注 + layer: "vec_z", // 只有标注 + show: true } ] }); @@ -147,22 +163,91 @@ onMounted(async () => { // console.log("123"); // }, 5000); + graphicLayer = new mars3d.layer.GraphicLayer(); + map.addLayer(graphicLayer); + + // 标注信息 + // var locations = [ + // { name: "克热克库都克", position: [90.628882, 44.285162] }, + // { name: "灭克铁普阔拉", position: [90.90433, 44.388033] } + // // { name: "锦鸿电力", position: [90.667185, 44.354859] } + // ]; + + // locations.forEach(location => { + // // 创建一个点标注 + // // const point = new mars3d.graphic.PointPrimitive({ + // // position: location.position, // 位置 + // // style: { + // // color: "#FF0000", // 点的颜色 + // // pixelSize: 10, // 点的大小 + // // outline: true, // 是否显示轮廓 + // // outlineColor: "#FFFFFF", // 轮廓颜色 + // // outlineWidth: 2 // 轮廓宽度 + // // } + // // }); + + // // 创建一个标签标注 + // const label = new mars3d.graphic.LabelPrimitive({ + // position: location.position, // 位置 + // style: { + // text: location.name, // 标签文本 + // font: "16px sans-serif", // 字体 + // fillColor: "#FFFFFF", // 文本颜色 + // outlineColor: "#1f1f1f", // 文本轮廓颜色 + // outlineWidth: 5, // 文本轮廓宽度 + // scale: 1.0, // 缩放比例 + // horizontalOrigin: mars3d.Cesium.HorizontalOrigin.CENTER, // 水平对齐方式 + // verticalOrigin: mars3d.Cesium.VerticalOrigin.BOTTOM // 垂直对齐方式 + // } + // }); + + // // 将点和标签添加到图层中 + // // graphicLayer.addGraphic(point); + // graphicLayer.addGraphic(label); + // }); + + // 渲染json-数据 + // const geojsonLayer = new mars3d.layer.GeoJsonLayer({ + // url: "resultdata", + // style: { + // color: "#ff0000", + // opacity: 0.5, + // outline: true, + // outlineColor: "#0000ff", + // outlineWidth: 2 + // } + // }); + + // map.addLayer(geojsonLayer); + window.addEventListener("keydown", handleKeyDown); }); // 组件销毁前,销毁地图 onBeforeUnmount(() => { // map?.destroy(); - window.removeEventListener("keydown", handleKeyDown); + // window.removeEventListener("keydown", handleKeyDown); }); const handleKeyDown = (event: KeyboardEvent) => { + console.log("=====================", event); + console.log("=====================", event.key); + console.log("=====================", event.repeat); + // 检查是否按下了 Esc 键 if (event.key === "Escape") { console.log("Esc 键被按下==================="); // 在这里添加你想要执行的逻辑 EntityMap.Mapswitch = true; } + + // 检查是否按下了 F11 键 + if (event.key === "F11") { + console.log("F11 键被按下==================="); + + // 在这里添加你想要执行的逻辑 + props.parentFuncer(); + } }; const datatitle = ref(1); @@ -266,13 +351,15 @@ const getareadata = async () => { } // 手动渲染 - const geojsonLayer = JSON.parse(item.regionValue); - console.log("geojsonLayer", geojsonLayer); + if (item.regionValue && item.regionValue.length > 1) { + const geojsonLayer = JSON.parse(item.regionValue); + console.log("geojsonLayer", geojsonLayer); - geojsonLayer.features.forEach(item => { - console.log("每块区域", item); - addDemoGraphic14(item); - }); + geojsonLayer.features.forEach(item => { + console.log("每块区域", item); + addDemoGraphic14(item); + }); + } }); } else { graphicLayer = new mars3d.layer.GraphicLayer(); @@ -354,18 +441,19 @@ function addDemoGraphic2(item) { scale: Number(item.scale) + Number(200) || 200, // scale: item.scale || 200, - clampToGround: false, // 是否贴地 + clampToGround: item.clampToGround == 1 ? true : false, // 是否贴地 heading: item.heading, // 方向角(绕Z轴旋转) pitch: item.pitch, // 俯仰角(绕X轴旋转) - roll: item.roll // 旋转角(绕Y轴旋转) - // label: { - // text: item.name, - // font_size: 10, - // color: "#1f1f1f", - // verticalOrigin: Cesium.VerticalOrigin.TOP, // 标签位置在模型顶部 - // horizontalOrigin: Cesium.HorizontalOrigin.CENTER, // 标签水平居中 - // pixelOffset: new Cesium.Cartesian2(0, -100) // 向上偏移20像素 - // } + roll: item.roll, // 旋转角(绕Y轴旋转) + label: { + text: item.name, + font_size: 12, + color: "#eaeff0", + verticalOrigin: Cesium.VerticalOrigin.TOP, + horizontalOrigin: Cesium.HorizontalOrigin.CENTER + // pixelOffset: new Cesium.Cartesian2(0, -50), + // scaleByDistance: new Cesium.NearFarScalar(1000, 1.0, 1000000, 0.1) + } }, attr: { remark: item.name, id: item.id, name: item.name, code: item.code, treeId: item.qualityRegionId } }); diff --git a/src/views/sevenLargeScreen/projectshow/components/MapDialog.vue b/src/views/sevenLargeScreen/projectshow/components/MapDialog.vue index 1cf888c..c345cc6 100644 --- a/src/views/sevenLargeScreen/projectshow/components/MapDialog.vue +++ b/src/views/sevenLargeScreen/projectshow/components/MapDialog.vue @@ -32,7 +32,7 @@
-
+
@@ -172,7 +172,7 @@ @@ -275,7 +275,7 @@
隐患记录 -
超期整改
+
超期
@@ -688,7 +688,7 @@ const unitdutydata = [ }, { value: "7", - label: "超期未关闭" + label: "已撤回" } ]; @@ -712,7 +712,7 @@ const getvideolist = async item => { }); videoList.value = res.result.list; - if (videoList.value.length > 1) { + if (videoList.value.length > 1 && item.length > 1) { console.log("所有摄像头数据123", videoList.value); // 绑定摄像头数据 @@ -824,7 +824,7 @@ const handleEditxiazia = item => { let data = JSON.parse(item.fileUrl); console.log("data", data); - const url = BASEURL + "/image/" + data.fileUrl; // 替换为你的文件URL + const url = BASEURL + "/image/" + data.filename; // 替换为你的文件URL // const link = document.createElement("a"); // link.href = url; // link.download = item.fileUrl; // 替换为你希望的文件名 @@ -960,11 +960,13 @@ const ondirection = (index, row, item) => { if (EntityMap.Mapswitch) return; potentialswitch.value = item; if (item) { - // videoPreviewRef.value.handleHide(); + videoPreviewRef.value.handleHide(); console.log("查看详情数据", row); safetytableobj.value = row; } else { - // videoPreviewRef.value.handleShow(); + setTimeout(() => { + videoPreviewRef.value.handleShow(); + }, 1000); safetytableobj.value = {}; } }; @@ -985,7 +987,9 @@ const onticket = item => { if (item) { videoPreviewRef.value.handleHide(); } else { - videoPreviewRef.value.handleShow(); + setTimeout(() => { + videoPreviewRef.value.handleShow(); + }, 1000); } }; @@ -994,13 +998,13 @@ const getareasafetyHatFence = async item => { const res: any = await areasaWorker({ projectSn: store.sn, // 区域id - qualityRegionId: item + id: item }); console.log("查询区域人数", res); - console.log("res.result[0].workerNum", res.result[0].workerNum); + console.log("res.result[0].workerNum", res.result); - publicpeoper.value = res.result[0].workerNum; + publicpeoper.value = res.result; }; // 查询企业 @@ -1024,6 +1028,19 @@ const getTeamInfoList = async () => { console.log("查询班组", res); teamdutydata.value = res.result.list; }; + +// 摄像头关闭开启 +const videolistdiaswtich = ref(true); + +const ondialogswtich = () => { + console.log("摄像头中转销毁"); + videoPreviewRef.value.oncloseRequestInterface(); +}; + +defineExpose({ + getvideolist, + ondialogswtich +});