Files
aida_front/src/component/Detail/detailRight/index.vue

122 lines
3.4 KiB
Vue
Raw Normal View History

2025-01-17 17:16:01 +08:00
<template>
2025-02-17 09:34:28 +08:00
<div class="detailRight">
<!-- <div class="detailText">Current Print</div>
2025-01-17 17:16:01 +08:00
<div class="select_sketch">
<img src="https://develop.aida.com.hk/img/aida_logo_centent.b8a50882.jpg" alt="">
2025-02-17 09:34:28 +08:00
</div> -->
<sketchType v-if="currentDetailType === 'sketch'"></sketchType>
2025-02-25 15:32:55 +08:00
<!-- <printType v-if="currentDetailType === 'print'"></printType> -->
<editPrintElement ref="editPrintElement" v-if="currentDetailType === 'print'" type="print" :sketchSize="sketchSize"></editPrintElement>
<editPrintElement ref="editPrintElement" v-if="currentDetailType === 'element'" type="element" :sketchSize="sketchSize"></editPrintElement>
2025-05-28 10:28:07 +08:00
<modelsType ref="modelsType" v-if="currentDetailType === 'models'"></modelsType>
2025-01-17 17:16:01 +08:00
</div>
</template>
<script lang="ts">
import { defineComponent,computed,ref,provide,nextTick,createVNode,toRefs, reactive} from 'vue'
// import setDesignItem from '@/component/Detail/setDesignItem2.vue'
import { useStore } from "vuex";
2025-02-17 09:34:28 +08:00
import sketchType from './sketchType.vue'
import printType from './printType.vue'
2025-02-25 15:32:55 +08:00
import editPrintElement from './editPrintElement.vue'
2025-05-28 10:28:07 +08:00
import modelsType from './modelsType.vue'
2025-01-17 17:16:01 +08:00
export default defineComponent({
components:{
2025-06-30 10:53:25 +08:00
sketchType,printType,editPrintElement,modelsType
2025-01-17 17:16:01 +08:00
},
props:{
sketchSize:{
type:Object,
default:()=>{}
},
},
2025-01-17 17:16:01 +08:00
setup(props,{emit}) {
const store = useStore();
const detailData = reactive({
2025-08-22 10:27:48 +08:00
designDetail:computed(()=>store.state.DesignDetail.designDetail),
2025-03-03 14:52:05 +08:00
editPrintElement:null as any,
2025-08-22 10:27:48 +08:00
selectDetail:computed(()=>store.state.DesignDetail.selectDetail),
currentDetailType:computed(()=>store.state.DesignDetail.currentDetailType),
2025-01-17 17:16:01 +08:00
})
2025-03-03 14:52:05 +08:00
const privewDetail = ()=>{
if(detailData.editPrintElement?.previewDetailPrintData)detailData.editPrintElement.previewDetailPrintData()
}
2025-01-17 17:16:01 +08:00
return{
...toRefs(detailData),
2025-03-03 14:52:05 +08:00
privewDetail,
2025-01-17 17:16:01 +08:00
}
},
provide() {
return {
}
},
})
</script>
<style lang="less" scoped>
2025-02-17 09:34:28 +08:00
.detailRight{
2025-01-17 17:16:01 +08:00
height: 100%;
display: flex;
2025-02-17 09:34:28 +08:00
flex: 1;
overflow: hidden;
2025-06-30 10:53:25 +08:00
flex-direction: column;
2025-01-17 17:16:01 +08:00
> .detailText{
margin-bottom: 1rem;
}
> .select_sketch{
width: 100%;
height: 23.5rem;
padding: 1rem 0;
text-align: center;
border-radius: .5rem;
// border: 1px dashed #202020;
border: 1px dashed transparent;
background: linear-gradient(#fff, #fff) padding-box,repeating-linear-gradient(-45deg,#fff 0,#fff 0.3em, #000 0,#000 0.6em);
margin-bottom: 3rem;
> img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
> .switch_type_list{
display: flex;
margin-bottom: 2.5rem;
> .switch_type_item:nth-child(1){
margin-right: 6.5rem;
}
> .switch_type_item{
position: relative;
cursor: pointer;
}
> .switch_type_item::before {
position: absolute;
content: "";
display: block;
background: #000;
height: calc(.4rem*1.2);
left: 50%;
transform: translateX(-50%);
bottom: -.5rem;
width: 0px;
transition: 0.3s all;
}
> .select_swtich {
color: #000;
font-weight: 600;
}
> .select_swtich::before {
width: 100%;
}
}
> .sketch_content_list{
flex: 1;
overflow: hidden;
> .content_item{
height: 100%;
2025-01-23 09:36:21 +08:00
margin-top: 1rem;
2025-01-17 17:16:01 +08:00
}
}
}
</style>