171 lines
4.2 KiB
Vue
171 lines
4.2 KiB
Vue
<template>
|
|
<div class="sketch">
|
|
<div class="detailText">Current Model</div>
|
|
<div class="select_sketch">
|
|
<!-- <img :src="selectDetail?.sketchString?selectDetail?.sketchString:selectDetail.path" alt=""> -->
|
|
<img :src="frontBack.body.path || selectDetail.path" alt="">
|
|
</div>
|
|
<selectList @selectImgItem="selectImgItem" :isUpload="false" level1Type="Models" type="models" :catecoryList="sketchCatecoryList"></selectList>
|
|
</div>
|
|
</template>
|
|
<script lang="ts">
|
|
import { defineComponent,computed,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";
|
|
import { useStore } from "vuex";
|
|
import { useI18n } from 'vue-i18n'
|
|
// import sketchCategory from "@/component/HomePage/sketchCategory.vue";
|
|
import selectList from './module/selectList.vue'
|
|
|
|
export default defineComponent({
|
|
components:{
|
|
selectList,
|
|
},
|
|
emit:['addDetail'],
|
|
setup(props,{emit}) {
|
|
const store = useStore();
|
|
const detailData = reactive({
|
|
selectTitle:'current',
|
|
frontBack:computed(()=>store.state.DesignDetailCopy.frontBack),
|
|
designDetail:computed(()=>store.state.DesignDetailCopy.designDetail),
|
|
selectDetail:computed(()=>store.state.DesignDetailCopy.selectDetail),
|
|
sketchCatecoryList:computed(()=>{
|
|
return store.state.UserHabit.sex.value
|
|
}),
|
|
currentDetailType:computed(()=>store.state.DesignDetailCopy.currentDetailType)
|
|
})
|
|
const getDetailListData = reactive({
|
|
total:0,
|
|
pageSize:10,
|
|
currentPage:1,
|
|
})
|
|
const getDetailListDom = reactive({
|
|
libraryList:null as any,
|
|
})
|
|
const openCurrent = ()=>{
|
|
detailData.selectTitle = 'current'
|
|
}
|
|
const openUpload = ()=>{
|
|
detailData.selectTitle = 'upload'
|
|
}
|
|
const openLibrary = ()=>{
|
|
detailData.selectTitle = 'library'
|
|
getDetailListDom.libraryList.init()
|
|
}
|
|
const selectImgItem = (data:any)=>{
|
|
data.url = data.presignedUrl
|
|
let value = {
|
|
data,
|
|
}
|
|
store.commit('DesignDetailCopy/setNewDetail',value)
|
|
}
|
|
const openAddDetail = ()=>{
|
|
emit('addDetail')
|
|
}
|
|
return{
|
|
...toRefs(detailData),
|
|
...toRefs(getDetailListData),
|
|
...toRefs(getDetailListDom),
|
|
|
|
openCurrent,
|
|
openUpload,
|
|
openLibrary,
|
|
selectImgItem,
|
|
openAddDetail,
|
|
}
|
|
},
|
|
|
|
provide() {
|
|
return {
|
|
}
|
|
},
|
|
|
|
})
|
|
</script>
|
|
<style lang="less" scoped>
|
|
.sketch{
|
|
// width: 34rem;
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
> .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;
|
|
position: relative;
|
|
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;
|
|
}
|
|
> i{
|
|
position: absolute;
|
|
left: auto;
|
|
right: 1rem;
|
|
top: 2rem;
|
|
font-size: 2rem;
|
|
cursor: pointer;
|
|
}
|
|
> div{
|
|
height: 100%;
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
> i{
|
|
font-size: 10rem;
|
|
}
|
|
}
|
|
}
|
|
> .switch_type_list{
|
|
display: flex;
|
|
margin-bottom: 2.5rem;
|
|
> .switch_type_item:last-child{
|
|
margin-right: 0;
|
|
}
|
|
> .switch_type_item{
|
|
position: relative;
|
|
cursor: pointer;
|
|
margin-right: 6.5rem;
|
|
}
|
|
> .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%;
|
|
margin-top: 1rem;
|
|
}
|
|
}
|
|
}
|
|
</style> |