From 0b2cc489a55cf883a4f924306b2578037534a439 Mon Sep 17 00:00:00 2001 From: hzz Date: Mon, 22 May 2023 10:23:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B93D=E5=88=86=E5=B8=83=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/css/newicon/iconfont.css | 15 ++- src/assets/img/Factory/switch.jpg | Bin 0 -> 3874 bytes src/views/FactoryView/index.vue | 2 +- src/views/FactoryView/statusBar.vue | 183 ++++++++++++++++++++++++++++ src/views/FactoryView/threeMap.vue | 59 ++++++--- 5 files changed, 237 insertions(+), 22 deletions(-) create mode 100644 src/assets/img/Factory/switch.jpg create mode 100644 src/views/FactoryView/statusBar.vue diff --git a/src/assets/css/newicon/iconfont.css b/src/assets/css/newicon/iconfont.css index 8c2021b..ffe36ff 100644 --- a/src/assets/css/newicon/iconfont.css +++ b/src/assets/css/newicon/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 4025145 */ - src: url('iconfont.woff2?t=1681876255746') format('woff2'), - url('iconfont.woff?t=1681876255746') format('woff'), - url('iconfont.ttf?t=1681876255746') format('truetype'); + src: url('//at.alicdn.com/t/c/font_4025145_o5efykd2y3.woff2?t=1684721703109') format('woff2'), + url('//at.alicdn.com/t/c/font_4025145_o5efykd2y3.woff?t=1684721703109') format('woff'), + url('//at.alicdn.com/t/c/font_4025145_o5efykd2y3.ttf?t=1684721703109') format('truetype'); } .iconfont { @@ -13,6 +13,14 @@ -moz-osx-font-smoothing: grayscale; } +.icon-WIFI:before { + content: "\e63f"; +} + +.icon-tuoputu_jiaohuanjizu:before { + content: "\e639"; +} + .icon-angle-right:before { content: "\e84e"; } @@ -20,4 +28,3 @@ .icon-angle-left:before { content: "\e84f"; } - diff --git a/src/assets/img/Factory/switch.jpg b/src/assets/img/Factory/switch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10d3e8d15ceb88beda6308df70f33cda8b74c475 GIT binary patch literal 3874 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 literal 0 HcmV?d00001 diff --git a/src/views/FactoryView/index.vue b/src/views/FactoryView/index.vue index f772dff..345ab31 100644 --- a/src/views/FactoryView/index.vue +++ b/src/views/FactoryView/index.vue @@ -14,7 +14,7 @@ import { getSensorInfodata , deviceDistributeInMachineryFactorydata} from "@/htt import { connectWebsocket, closeWebsocket } from "@/utils/websocket"; import { useFactoryStore } from '@/store/module/Factory'; -import statusBar from '@/components/mapStatus/statusBar.vue'; +import statusBar from './statusBar.vue'; const store = useFactoryStore(); let Acontent = ref(); diff --git a/src/views/FactoryView/statusBar.vue b/src/views/FactoryView/statusBar.vue new file mode 100644 index 0000000..b5af292 --- /dev/null +++ b/src/views/FactoryView/statusBar.vue @@ -0,0 +1,183 @@ + + + + + + diff --git a/src/views/FactoryView/threeMap.vue b/src/views/FactoryView/threeMap.vue index 3a366b1..5cc75f3 100644 --- a/src/views/FactoryView/threeMap.vue +++ b/src/views/FactoryView/threeMap.vue @@ -67,6 +67,7 @@ const requires = { 'door': require("@/assets/img/Factory/door.jpg"), 'sky': require("@/assets/img/Factory/sky.jpg"), 'titleFloor': require("@/assets/img/Factory/screen_title.png"), + 'switch': require("@/assets/img/Factory/switch.jpg"), } const workerShopRoute = { @@ -729,29 +730,53 @@ function createWifi(position: positionType) { } //创建交换机 -function createSwitch(position: positionType, scale: number = 0.2) { - const loader = new GLTFLoader(); +// function createSwitch(position: positionType, scale: number = 0.2) { +// const loader = new GLTFLoader(); - loader.load('/models/gltf/scene.gltf', function (gltf) { - const mesh = gltf.scene.children[0]; +// loader.load('/models/gltf/scene.gltf', function (gltf) { +// const mesh = gltf.scene.children[0]; - const s = scale; - mesh.scale.set(s, s, 0.5); - mesh.position.set(position.x-12.75, position.y, position.z+66.22); - mesh.rotation.z = THREE.MathUtils.degToRad(180) - // mesh.rotation.y = THREE.MathUtils.degToRad(90) - // mesh.rotation.x = THREE.MathUtils.degToRad(45) - mesh.castShadow = true; - mesh.receiveShadow = true; - scene.add(mesh); +// const s = scale; +// mesh.scale.set(s, s, 0.5); +// mesh.position.set(position.x-12.75, position.y, position.z+66.22); +// mesh.rotation.z = THREE.MathUtils.degToRad(180) +// // mesh.rotation.y = THREE.MathUtils.degToRad(90) +// // mesh.rotation.x = THREE.MathUtils.degToRad(45) +// mesh.castShadow = true; +// mesh.receiveShadow = true; +// scene.add(mesh); - }, undefined, function (error) { +// }, undefined, function (error) { - console.error(error); +// console.error(error); - }); +// }); +// } + +const createSwitch = ( boxposition: positionType, shadow: boolean = true): object => { + +const wallTexture = new THREE.TextureLoader().load(requires.switch); +const wall = new THREE.BoxGeometry(15, 5, 10); +const wallMaterial = new THREE.MeshPhongMaterial({ + map: wallTexture, + color: 0xe7e7e7, + transparent: true, +}); +//墙体的网格 +const wallMesh = new THREE.Mesh(wall, wallMaterial); +// 物体移动位置 +// wallMesh.position.set((-size.baseWidth / 2 + boxposition.x + 1), size.baseHeght / 2 + boxposition.y, -size.baseLength / 2 + boxposition.z); +wallMesh.position.set(boxposition.x-6, 5 + boxposition.y, boxposition.z+33.73); +// 对象是否渲染到阴影贴图当中 +wallMesh.castShadow = shadow; +// 将立方体添加到场景中 +group.add(wallMesh) +return wallMesh } + + + //创建服务器 function createGlb() { const loader = new GLTFLoader(); @@ -764,8 +789,8 @@ function createGlb() { mesh.position.set(-346, 0, 51); mesh.castShadow = true; mesh.receiveShadow = true; + createLableObj(mesh, '服务器', { x: 0, y: 60, z: 0 }) scene.add(mesh); - }, undefined, function (error) { console.error(error);