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

View File

@@ -229,7 +229,6 @@ export default defineComponent({
metalness: .2, // 金属质感 (0-1) metalness: .2, // 金属质感 (0-1)
side: THREE.DoubleSide // 双面渲染 side: THREE.DoubleSide // 双面渲染
}); });
console.log(child)
// 6. 替换原有材质 // 6. 替换原有材质
child.material = newMaterial; child.material = newMaterial;
@@ -242,7 +241,6 @@ export default defineComponent({
} }
data.load.state = false data.load.state = false
},(xhr:any) => { // 加载进度回调 },(xhr:any) => { // 加载进度回调
console.log(xhr.loaded , xhr.total)
const percent = xhr.total == 0?100:(xhr.loaded / xhr.total * 100).toFixed(2); const percent = xhr.total == 0?100:(xhr.loaded / xhr.total * 100).toFixed(2);
data.load.progress = percent data.load.progress = percent
// updateProgressBar(Number(percent)); // updateProgressBar(Number(percent));
@@ -274,9 +272,7 @@ export default defineComponent({
data.group.add(scene); data.group.add(scene);
resolve('') resolve('')
},(xhr:any) => { // 加载进度回调 },(xhr:any) => { // 加载进度回调
console.log(xhr.loaded , xhr.total)
const percent = xhr.total == 0?100:(xhr.loaded / xhr.total * 100).toFixed(2); const percent = xhr.total == 0?100:(xhr.loaded / xhr.total * 100).toFixed(2);
console.log(`模型加载进度: ${percent}%`);
data.load.progress = percent data.load.progress = percent
// updateProgressBar(Number(percent)); // updateProgressBar(Number(percent));
},(error:any) => { // 加载失败回调 },(error:any) => { // 加载失败回调
@@ -296,7 +292,6 @@ export default defineComponent({
// init() // init()
// } // }
const getModelUrl = (value:any)=>{ const getModelUrl = (value:any)=>{
console.log(12314343)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// Https.axiosGet(Https.httpUrls.getThreeDGlb,{params:{threeDSimpleId:value.id},env:{binary:true}}).then((rv)=>{ // 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> <span v-show="isUnfold">Settings</span>
</div> </div>
<div class="border"></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> <i :class="item.icon"></i>
<span v-show="isUnfold">{{ item.name }}</span> <span v-show="isUnfold">{{ item.name }}</span>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts"> <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 setDesignItem from '@/component/Detail/setDesignItem2.vue'
import { ExclamationCircleOutlined } from '@ant-design/icons-vue'; import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Https } from "@/tool/https"; import { Https } from "@/tool/https";
@@ -43,7 +43,8 @@ export default defineComponent({
setup(props,{emit}) { setup(props,{emit}) {
const store = useStore(); const store = useStore();
const data = reactive({ const data = reactive({
isUnfold:false isUnfold:false,
navList:[] as any,
}) })
const dataDom = reactive({ const dataDom = reactive({
@@ -58,6 +59,20 @@ export default defineComponent({
emit("setSelectKey", data); emit("setSelectKey", data);
// emit("update:selectKey", str); // 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 = ()=>{ const setUnfold = ()=>{
data.isUnfold = !data.isUnfold data.isUnfold = !data.isUnfold
emit("unfold"); emit("unfold");

View File

@@ -272,7 +272,7 @@ export default {
CollectionsName:'名字', CollectionsName:'名字',
source:'来源', source:'来源',
UptateTime:'修改时间', UptateTime:'修改时间',
SketchCounts:'草图数量', SketchCounts:'项目名字',
Operations:'Operations', Operations:'Operations',
jsContent1:'删除成功', jsContent1:'删除成功',
jsContent2:'您确定要删除这个收藏吗?', jsContent2:'您确定要删除这个收藏吗?',

View File

@@ -272,7 +272,7 @@ export default {
CollectionsName:'Collections Name', CollectionsName:'Collections Name',
source:'Source', source:'Source',
UptateTime:'Uptate Time', UptateTime:'Uptate Time',
SketchCounts:'Sketch Counts', SketchCounts:'Project Name',
Operations:'Operations', Operations:'Operations',
jsContent1:'Deleted successfully', jsContent1:'Deleted successfully',
jsContent2:'Do you really want to delete this collection? ', jsContent2:'Do you really want to delete this collection? ',

View File

@@ -55,11 +55,6 @@ const projectList = {
value:'patternMaking3D', value:'patternMaking3D',
name:'3D Pattern Making', name:'3D Pattern Making',
task:'false', task:'false',
},{
icon:'fi fi-rr-play-alt',
value:'poseTransfer',
name:'Transfer Pose',
task:'false',
},{ },{
icon:'fi fi-rr-pen-swirl', icon:'fi fi-rr-pen-swirl',
value:'canvas', value:'canvas',

View File

@@ -122,28 +122,28 @@ export default defineComponent({
let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss') let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return time return time
}}, }},
{ // {
title: useI18n().t('HistoryPage.source'), // title: useI18n().t('HistoryPage.source'),
align:'center', ellipsis: true, width: 150, // align:'center', ellipsis: true, width: 150,
dataIndex: 'original', key: 'original', // dataIndex: 'original', key: 'original',
customRender:(record:any)=>{ // customRender:(record:any)=>{
let str = '' // let str = ''
if(record.text == 1){ // if(record.text == 1){
str = useI18n().t('newScaleImage.Original') // str = useI18n().t('newScaleImage.Original')
}else{ // }else{
str = `@${record.record.originalAccountName}/${record.record.originalPortfolioName}` // str = `@${record.record.originalAccountName}/${record.record.originalPortfolioName}`
} // }
// let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss') // // let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return str // return str
} // }
}, // },
{ title: useI18n().t('HistoryPage.SketchCounts'), align:'center', ellipsis: true, width: 120, dataIndex: 'sketchCount', key: 'sketchCounts' }, { title: useI18n().t('HistoryPage.SketchCounts'), align:'center', ellipsis: true, width: 120, dataIndex: 'process', key: 'process' },
{ {
title: useI18n().t('HistoryPage.Operations'), title: useI18n().t('HistoryPage.Operations'),
key: 'operation', key: 'operation',
align:'center', align:'center',
fixed: 'right', fixed: 'right',
width: 180, width: 100,
// slots:{customRender:'action'} // slots:{customRender:'action'}
Operations:true, Operations:true,
}, },