调整history和3d

This commit is contained in:
X1627315083
2025-04-09 16:10:44 +08:00
parent e1eccba8a1
commit fd2e47e783
7 changed files with 46 additions and 39 deletions

View File

@@ -18,15 +18,15 @@
<div class="heard">
<div class="text">Technical sketch</div>
<div class="switch">
back
<a-switch v-model:checked="isFront" />
front
<a-switch v-model:checked="isFront" />
back
</div>
</div>
<div class="modelBox">
<div v-show="!imgOrThree" class="img">
<img v-show="isFront" :src="selectModel.threeDLayoutList?.[0]?.url" alt="">
<img v-show="!isFront" :src="selectModel.threeDLayoutList?.[1]?.url" alt="">
<img v-show="!isFront" :src="selectModel.threeDLayoutList?.[0]?.url" alt="">
<img v-show="isFront" :src="selectModel.threeDLayoutList?.[1]?.url" alt="">
</div>
<threeBox v-if="imgOrThree" ref="threeBox"></threeBox>
</div>
@@ -81,7 +81,7 @@ export default defineComponent({
const setSelectModel = (item:any)=>{
data.isShowMark = true
const value = {
threeDSimpleId:item.id,
threeDSimpleId:item.threeDSimpleId,
}
Https.axiosPost(Https.httpUrls.getLayoutDetail,{},{params:value}).then((res:any)=>{
data.selectModel = res
@@ -244,8 +244,10 @@ export default defineComponent({
align-items: center;
> .modelBox{
width: 100%;
height: 20rem;
height: 75rem;
// height: 20rem;
// height: 75rem;
flex: 1;
overflow: hidden;
margin: auto;
>.img{
width: 100%;

View File

@@ -229,7 +229,6 @@ export default defineComponent({
metalness: .2, // 金属质感 (0-1)
side: THREE.DoubleSide // 双面渲染
});
console.log(child)
// 6. 替换原有材质
child.material = newMaterial;
@@ -242,7 +241,6 @@ export default defineComponent({
}
data.load.state = false
},(xhr:any) => { // 加载进度回调
console.log(xhr.loaded , xhr.total)
const percent = xhr.total == 0?100:(xhr.loaded / xhr.total * 100).toFixed(2);
data.load.progress = percent
// updateProgressBar(Number(percent));
@@ -274,9 +272,7 @@ export default defineComponent({
data.group.add(scene);
resolve('')
},(xhr:any) => { // 加载进度回调
console.log(xhr.loaded , xhr.total)
const percent = xhr.total == 0?100:(xhr.loaded / xhr.total * 100).toFixed(2);
console.log(`模型加载进度: ${percent}%`);
data.load.progress = percent
// updateProgressBar(Number(percent));
},(error:any) => { // 加载失败回调
@@ -296,7 +292,6 @@ export default defineComponent({
// init()
// }
const getModelUrl = (value:any)=>{
console.log(12314343)
return new Promise((resolve, reject) => {
// Https.axiosGet(Https.httpUrls.getThreeDGlb,{params:{threeDSimpleId:value.id},env:{binary:true}}).then((rv)=>{

View File

@@ -17,14 +17,14 @@
<span v-show="isUnfold">Settings</span>
</div>
<div class="border"></div>
<div class="navList list" :class="{active:selectKey == item.value,exist:navListData.some((navListItem:any) => navListItem.value === item.value)}" v-for="item in projectList.all" :key="item.value" @click="setNav(item.value, $event)">
<div class="navList list" :class="{active:selectKey == item.value,exist:navListData.some((navListItem:any) => navListItem.value === item.value)}" v-for="item in navList" :key="item.value" @click="setNav(item.value, $event)">
<i :class="item.icon"></i>
<span v-show="isUnfold">{{ item.name }}</span>
</div>
</div>
</template>
<script lang="ts">
import { defineComponent,computed,ref,provide,nextTick,createVNode,toRefs, reactive} from 'vue'
import { defineComponent,watch,ref,provide,nextTick,createVNode,toRefs, reactive} from 'vue'
// import setDesignItem from '@/component/Detail/setDesignItem2.vue'
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Https } from "@/tool/https";
@@ -43,7 +43,8 @@ export default defineComponent({
setup(props,{emit}) {
const store = useStore();
const data = reactive({
isUnfold:false
isUnfold:false,
navList:[] as any,
})
const dataDom = reactive({
@@ -58,6 +59,20 @@ export default defineComponent({
emit("setSelectKey", data);
// emit("update:selectKey", str);
}
watch(()=>props.navListData,(newVal:any)=>{
let list:any = projectList.all
const combined = [...newVal, ...list];
const seen = new Set();
data.navList = combined.filter((item:any) => {
if (seen.has(item.value)) {
return false; // 如果value已经出现过跳过当前对象
} else {
seen.add(item.value); // 如果value没有出现过保留当前对象
return true;
}
});
})
const setUnfold = ()=>{
data.isUnfold = !data.isUnfold
emit("unfold");