更换模型背景
parent
a78535f6a7
commit
2a4b42ba0b
|
@ -5,7 +5,7 @@
|
|||
"author": "若依",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"dev": "vite --host=0.0.0.0",
|
||||
"build:prod": "vite build",
|
||||
"build:stage": "vite build --mode staging",
|
||||
"preview": "vite preview"
|
||||
|
|
|
@ -6,13 +6,21 @@ const bimStore = defineStore(
|
|||
activateTree: {},
|
||||
activateDevice: {},
|
||||
activateApplication: {},
|
||||
deviceNum: ''
|
||||
deviceNum: '',
|
||||
activateMenu: {
|
||||
name: '建筑信息',
|
||||
background: '#202a60'
|
||||
}
|
||||
}),
|
||||
actions: {
|
||||
// 菜单
|
||||
setActivateIndex(index) {
|
||||
this.activateIndex = index;
|
||||
},
|
||||
|
||||
setActivateMenu(item) {
|
||||
this.activateMenu = item;
|
||||
},
|
||||
// 建筑树选中
|
||||
setActivateTree(item) {
|
||||
this.activateTree = item;
|
||||
|
|
|
@ -1,21 +1,25 @@
|
|||
<template>
|
||||
<div class="menuDiv">
|
||||
<div v-for="(item, index) of menuList" :key="index" @click="changeMenu(index)"
|
||||
<div v-for="(item, index) of menuList" :key="index" @click="changeMenu(index, item)"
|
||||
:class="{ 'activateTab': index == activateIndex }">{{ item.name }}</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import bimStore from '@/store/modules/bim';
|
||||
import { onMounted } from 'vue';
|
||||
|
||||
const menuList = [
|
||||
{
|
||||
name: '建筑信息'
|
||||
name: '建筑信息',
|
||||
background: '#000000'
|
||||
},
|
||||
{
|
||||
name: '资产信息'
|
||||
name: '资产信息',
|
||||
background: '#2b2f48'
|
||||
},
|
||||
{
|
||||
name: 'BIM应用'
|
||||
name: 'BIM应用',
|
||||
background: '#212b5f'
|
||||
}
|
||||
]
|
||||
|
||||
|
@ -23,11 +27,16 @@ const data = reactive({
|
|||
activateIndex: 0
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
changeMenu(0, menuList[0]);
|
||||
})
|
||||
|
||||
const { activateIndex } = toRefs(data);
|
||||
const emit = defineEmits(['changeMenu'])
|
||||
const changeMenu = (index) => {
|
||||
const changeMenu = (index, item) => {
|
||||
activateIndex.value = index;
|
||||
bimStore().setActivateIndex(index);
|
||||
bimStore().setActivateMenu(item);
|
||||
emit('changeMenu', index)
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { onMounted, ref,watch } from 'vue';
|
||||
import * as THREE from 'three';
|
||||
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
|
||||
import { DRACOLoader} from "three/examples/jsm/loaders/DRACOLoader.js";
|
||||
|
@ -80,9 +80,17 @@ Bus.on('clickApplication', e => {
|
|||
console.log('clickApplication');
|
||||
})
|
||||
|
||||
watch(() => bimStore().activateMenu, value => {
|
||||
console.log(1,scene);
|
||||
// 更换场景颜色
|
||||
scene.background = new THREE.Color(value.background);
|
||||
toHomeView();
|
||||
},{ deep: true });
|
||||
|
||||
const init = () => {
|
||||
// 场景
|
||||
scene = new THREE.Scene();
|
||||
scene.background = new THREE.Color(bimStore().activateMenu.background);
|
||||
// 相机
|
||||
camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 0.1, 1000);
|
||||
// camera.position.z = 5;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 场景模型 -->
|
||||
<ThreeView background="#202a60" light="0xfffafa" :sceneUrl="sceneUrl" v-if="sceneUrl !== ''"></ThreeView>
|
||||
<ThreeView light="0xfffafa" :sceneUrl="sceneUrl" v-if="sceneUrl !== ''"></ThreeView>
|
||||
<!-- <ThreeModel /> -->
|
||||
<!-- 底部菜单 -->
|
||||
<MenuTab @changeMenu="changeMenu"></MenuTab>
|
||||
|
@ -55,7 +55,7 @@ import DeviceDetial from './components/DeviceDetial.vue';
|
|||
import bimStore from '@/store/modules/bim';
|
||||
import { computed } from 'vue';
|
||||
const data = reactive({
|
||||
sceneUrl: '',
|
||||
sceneUrl: '/jz/glb/scene.gltf',
|
||||
equimentInfo: {},
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue