修复detail添加两件相同的sketch会有问题,优化教育版管理员页面

This commit is contained in:
X1627315083
2025-09-10 16:33:40 +08:00
parent 1d524eeef9
commit 7e6a3b1144
14 changed files with 62 additions and 53 deletions

View File

@@ -138,11 +138,6 @@ export default defineComponent({
default:'' as any,
required:true
},
isSegmentation:{
type:Boolean,
default:false as any,
required:true
},
},
emits:['selectImgItem'],
setup(props,{emit}) {
@@ -154,7 +149,6 @@ export default defineComponent({
designTypeList:computed(()=>props.catecoryList) as any,
designType:'',
searchPictureName:'',
designDetail:computed(()=>store.state.DesignDetail.designDetail),
mannequinData:{
sex:'Female',
style:'',
@@ -188,36 +182,10 @@ export default defineComponent({
detailData.designType = detailData.designTypeList[0]?.value?detailData.designTypeList[0]?.value:''
getLibraryList()
}
const hasDuplicateId = (id:any)=>{
let arr = detailData.designDetail.clothes
for (let i = 0; i < arr.length; i++) {
if (arr[i].id === id) {
return true;
}
}
return false;
}
const selectImgItem = (file:any)=>{
let randomNum = Math.floor(100 + Math.random() * 900);
let type = props.type
// let type = store.state.DesignDetail.currentDetailType
let id = file.id
if(type == 'sketch'){
id = Number(file.id + (randomNum + ''))
if(props.randomId){
if(hasDuplicateId(id)){
selectImgItem(file)
return
}
}
}
let data = JSON.parse(JSON.stringify(file))
data.type = detailData.mannequinData.system == 'system'?'System':'Library'
if(!props.isSegmentation){
data.id = id
}
emit('selectImgItem',data)
// store.commit('DesignDetail/setNewDetail',data)
}
const getLibraryList = ()=>{
if(props.type == 'models'){
@@ -260,7 +228,6 @@ export default defineComponent({
detailData.isShowLoading = true
let level2Type = ''
let workspace = store.state.Workspace.probjects
// let type = store.state.DesignDetail.currentDetailType
let data = {
level1Type:props.level1Type,
// level2Type:'Pattern',

View File

@@ -37,7 +37,7 @@
<uploadSegmentation v-if="isSegmentation" :segmentationType="segmentationType" :deReconstructionList=deReconstructionList @selectImgItem="selectImgItem" :level1Type="level1Type" :catecoryList="catecoryList"></uploadSegmentation>
</div>
<div class="content_item" v-show="selectTitle == 'library'">
<libraryList :isSegmentation="isSegmentation" @selectImgItem="selectImgItem" :randomId="randomId" :level1Type="level1Type" :type="type" ref="libraryList" :catecoryList="catecoryList"></libraryList>
<libraryList @selectImgItem="selectImgItem" :randomId="randomId" :level1Type="level1Type" :type="type" ref="libraryList" :catecoryList="catecoryList"></libraryList>
</div>
</div>
</div>
@@ -121,7 +121,9 @@ export default defineComponent({
detailData.selectTitle = 'library'
getDetailListDom.libraryList.init()
}
const selectImgItem = (data:any)=>{
emit('selectImgItem',data)
}
onMounted(()=>{

View File

@@ -35,6 +35,7 @@ export default defineComponent({
const detailData = reactive({
selectTitle:'current',
selectDetail:computed(()=>store.state.DesignDetail.selectDetail),
designDetail:computed(()=>store.state.DesignDetail.designDetail),
sketchCatecoryList:computed(()=>{
return store.state.Workspace.probjects.positionList
}),
@@ -58,8 +59,24 @@ export default defineComponent({
detailData.selectTitle = 'library'
getDetailListDom.libraryList.init()
}
const hasDuplicateId = (id:any)=>{
let arr = detailData.designDetail.clothes
for (let i = 0; i < arr.length; i++) {
if (arr[i].id === id) {
return true;
}
}
return false;
}
const selectImgItem = (data:any)=>{
console.log(data)
let randomNum = Math.floor(100 + Math.random() * 900);
let id = data.id
id = Number(data.id + (randomNum + ''))
if(hasDuplicateId(id)){
selectImgItem(data)
return
}
data.id = id
if(data?.imgUrl)data.url = data.imgUrl
let value = {
data,