创建项目的项目设置bug

This commit is contained in:
X1627315083
2025-11-04 10:44:11 +08:00
parent 2f5c6346f0
commit e9461dce56
7 changed files with 213 additions and 5 deletions

View File

@@ -39,6 +39,10 @@
<img src="@/assets/images/icon/details_elements.png" alt="">
<div class="detailText">{{$t('DesignPrintOperation.Elements')}}</div>
</div>
<!-- <div class="nav_item" :class="{active:currentDetailType == 'accessory'}" @click="setCurrentDetail('accessory')">
<img src="@/assets/images/icon/details_elements.png" alt="">
<div class="detailText">{{$t('DesignPrintOperation.Accessory')}}</div>
</div> -->
<div class="nav_item" v-if="selectObject.type == 'seriesDesign'" :class="{active:currentDetailType == 'models'}" @click="setCurrentDetail('models')">
<img src="@/assets/images/icon/details_model.svg" alt="">
<div class="detailText">{{$t('DesignPrintOperation.Model')}}</div>
@@ -78,6 +82,7 @@
v-show="
currentDetailType !== 'color' &&
(currentDetailType === 'element' ||
currentDetailType === 'accessory' ||
currentDetailType === 'print' ||
(currentDetailType === 'sketch' && selectDetail?.newDetail?.[currentDetailType])||
(currentDetailType === 'sketch' && selectDetail?.sketchString)||
@@ -357,6 +362,7 @@ export default defineComponent({
type:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.level2Type || newData.categoryValue:list[i].type,
sketchString:list[i].sketchString?list[i].sketchString:'',
trims:(newData && detailData.currentDetailType == 'element' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
accessory:(newData && detailData.currentDetailType == 'accessory' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
}
if((detailData.isEditPattern.value && list[i].color?.gradient) || (!detailData.isEditPattern.value && (list[i].newDetail?.color?.gradient || list[i].color?.gradient))){
gradient = list[i].newDetail?.color?.gradient || list[i].color.gradient

View File

@@ -0,0 +1,163 @@
<template>
<div class="element">
<div class="detailText">{{$t('DesignPrintOperation.CurrentAccessory')}}</div>
<div class="select_element">
<img :class="{active:elementList.length == 1}" v-for="item in elementList" @click="addElement(item)" :src="item.path" alt="">
<!-- <img :src="selectDetail.path" alt="">
{{ selectDetail }} -->
<div v-if="elementList.length == 0">
<i class="fi fi-rr-picture centent"></i>
</div>
</div>
<selectList @selectImgItem="selectImgItem" level1Type="DesignElements" type="accessory" :catecoryList="printCatecoryList"></selectList>
</div>
</template>
<script lang="ts">
import { defineComponent,computed,ref,watch,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,
},
setup(props,{emit}) {
const store = useStore();
const detailData = reactive({
selectTitle:'current',
selectDetail:computed(()=>store.state.DesignDetail.selectDetail),
printCatecoryList:computed(()=>{
return store.state.UserHabit.designElementsType
}),
elementList:[],
currentDetailType:computed(()=>store.state.DesignDetail.currentDetailType)
})
watch(()=>detailData?.selectDetail?.trims?.prints,(newVal,oldVal)=>{
if(!newVal)return
detailData.elementList = newVal.reduce((acc:any, curr:any) => {
if (!acc.some((item:any) => item.minIOPath === curr.minIOPath)) {
acc.push(curr);
}
return acc;
}, []);
},{immediate: true})
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 addElement = (data:any)=>{
let value = {
designType:data.designType,
level2Type:data.level2Type,
minIOPath:data.minIOPath,
url:data.path,
}
store.commit('DesignDetail/setCurrentPrintElement',value)
}
const selectImgItem = (data:any)=>{
let value = {
data,
}
if(detailData.currentDetailType != 'print' && detailData.currentDetailType != 'element'){
store.commit('DesignDetail/setNewDetail',value)
}else{
store.commit('DesignDetail/setCurrentPrintElement',null)
store.commit('DesignDetail/setCurrentPrintElement',data)
}
}
return{
...toRefs(detailData),
...toRefs(getDetailListData),
...toRefs(getDetailListDom),
openCurrent,
openUpload,
openLibrary,
selectImgItem,
addElement,
}
},
provide() {
return {
}
},
})
</script>
<style lang="less" scoped>
.element{
// width: 34rem;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
> .detailText{
margin-bottom: 1rem;
}
> .select_element{
width: 100%;
height: 23.5rem;
padding: 1rem;
text-align: center;
border-radius: .5rem;
border: 1px solid #000;
// border: 1px dashed transparent;
border-radius: 1.5rem;
background: linear-gradient(#fff, #fff) padding-box,repeating-linear-gradient(-45deg,#fff 0,#fff 0.3em, #000 0,#000 0.6em);
margin-bottom: 1.4rem;
display: flex;
flex-wrap: wrap;
overflow: hidden;
justify-content: space-between;
overflow-y: auto;
justify-content: flex-start;
> img{
object-fit: contain;
height: 9rem;
width: 9rem;
overflow-y: auto;
margin-bottom: 1rem;
margin: 1rem;
cursor: pointer;
}
> .active{
width: 100%;
height: 100%;
margin: 0;
margin-bottom: 0;
}
> div{
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
> i{
font-size: 10rem;
}
}
}
}
</style>

View File

@@ -4,6 +4,7 @@
<print v-show="currentDetailType == 'print'"></print>
<color v-if="currentDetailType == 'color'"></color>
<element v-show="currentDetailType == 'element'"></element>
<accessory v-show="currentDetailType == 'accessory'"></accessory>
<models v-show="currentDetailType == 'models'"></models>
<addDetails ref="addDetails" @setSloganData="setSloganData"></addDetails>
</div>
@@ -19,12 +20,13 @@ import sketch from './sketch.vue'
import print from './print.vue'
import color from './colorBox/index.vue'
import element from './element.vue'
import accessory from './accessory.vue'
import models from './models.vue'
import addDetails from '@/component/Detail/addDetails.vue'
export default defineComponent({
components:{
sketch,print,color,addDetails,element,models
sketch,print,color,addDetails,element,models,accessory
},
setup(props,{emit}) {
const store = useStore();