diff --git a/components.d.ts b/components.d.ts index e69de29b..1c57248a 100644 --- a/components.d.ts +++ b/components.d.ts @@ -0,0 +1,40 @@ +/* eslint-disable */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +// biome-ignore lint: disable +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + ABadge: typeof import('ant-design-vue/es')['Badge'] + ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb'] + ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] + ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] + ADrawer: typeof import('ant-design-vue/es')['Drawer'] + AImage: typeof import('ant-design-vue/es')['Image'] + AInputNumber: typeof import('ant-design-vue/es')['InputNumber'] + AMenu: typeof import('ant-design-vue/es')['Menu'] + AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] + AModal: typeof import('ant-design-vue/es')['Modal'] + APagination: typeof import('ant-design-vue/es')['Pagination'] + APopover: typeof import('ant-design-vue/es')['Popover'] + ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] + ASelect: typeof import('ant-design-vue/es')['Select'] + ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] + ASlider: typeof import('ant-design-vue/es')['Slider'] + ASpace: typeof import('ant-design-vue/es')['Space'] + ASpin: typeof import('ant-design-vue/es')['Spin'] + ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] + ASwitch: typeof import('ant-design-vue/es')['Switch'] + ATable: typeof import('ant-design-vue/es')['Table'] + ATabPane: typeof import('ant-design-vue/es')['TabPane'] + ATabs: typeof import('ant-design-vue/es')['Tabs'] + ATimeRangePicker: typeof import('ant-design-vue/es')['TimeRangePicker'] + AUpload: typeof import('ant-design-vue/es')['Upload'] + ElCascader: typeof import('element-plus/es')['ElCascader'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + } +} diff --git a/dist.7z b/dist.7z index e42cc748..6aa015ac 100644 Binary files a/dist.7z and b/dist.7z differ diff --git a/src/component/Canvas/CanvasEditor/components/BrushControlPanel.vue b/src/component/Canvas/CanvasEditor/components/BrushControlPanel.vue index 00d558a3..3d08bb67 100644 --- a/src/component/Canvas/CanvasEditor/components/BrushControlPanel.vue +++ b/src/component/Canvas/CanvasEditor/components/BrushControlPanel.vue @@ -453,10 +453,10 @@ watch( display: flex; flex-direction: column; align-items: center; - gap: 15px; + gap: 1.5rem; background: rgba(255, 255, 255, 0.8); border-radius: 5px; - padding: 15px 3px; + padding: 1.5rem 3px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05); @@ -478,8 +478,8 @@ watch( // 笔刷大小预览相关样式 .brush-preview-container { - width: 110px; - height: 110px; + width: 11rem; + height: 11rem; display: flex; justify-content: center; align-items: center; @@ -492,12 +492,14 @@ watch( .brush-size-preview { border-radius: 50%; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); + max-width: 100%; + max-height: 100%; } // 透明度预览相关样式 .opacity-preview { - width: 110px; - height: 110px; + width: 11rem; + height: 11rem; border-radius: 6px; overflow: hidden; position: relative; @@ -550,14 +552,14 @@ watch( } .control-btn { - width: 24px; - height: 24px; + width: 2.4rem; + height: 2.4rem; border: none; border-radius: 4px; background: #f0f0f0; color: #333; cursor: pointer; - font-size: 16px; + font-size: 1.6rem; display: flex; align-items: center; justify-content: center; @@ -602,8 +604,8 @@ watch( } .current-color { - width: 32px; - height: 32px; + width: 3.2rem; + height: 3.2rem; border-radius: 8px; border: 2px solid #fff; box-shadow: @@ -638,7 +640,7 @@ watch( } .tooltip-title { - font-size: 16px; + font-size: 1.6rem; color: #333; font-weight: 600; } @@ -647,12 +649,12 @@ watch( position: absolute; right: 3px; top: 3px; - width: 20px; - height: 20px; + width: 2rem; + height: 2rem; border: none; background: transparent; color: #999; - font-size: 16px; + font-size: 1.6rem; cursor: pointer; display: flex; align-items: center; diff --git a/src/component/Canvas/CanvasEditor/components/VerticalSlider.vue b/src/component/Canvas/CanvasEditor/components/VerticalSlider.vue index 43566c0f..3cb40b04 100644 --- a/src/component/Canvas/CanvasEditor/components/VerticalSlider.vue +++ b/src/component/Canvas/CanvasEditor/components/VerticalSlider.vue @@ -516,8 +516,8 @@ onBeforeUnmount(() => { display: flex; align-items: center; justify-content: center; - gap: 15px; - height: 150px; + gap: 1.5rem; + height: 15rem; position: relative; // margin-top: 8px; // margin-bottom: 0px; @@ -525,7 +525,7 @@ onBeforeUnmount(() => { .slider-track { position: relative; - width: 32px; + width: 3.2rem; height: 100%; background: rgba(0, 0, 0, 0.1); border-radius: 4px; @@ -544,7 +544,7 @@ onBeforeUnmount(() => { .slider-thumb { position: absolute; width: 100%; - height: 16px; + height: 1.6rem; background: #fff; // border: 1px solid #2196f3; border-radius: 3px; @@ -560,13 +560,13 @@ onBeforeUnmount(() => { // 添加iPad和移动设备的专有样式 @media (pointer: coarse) { .slider-thumb { - height: 20px; // 在触摸设备上增加滑块尺寸,更容易点击 - border-radius: 4px; - box-shadow: 0 0px 6px rgba(0, 0, 0, 0.5); // 更明显的阴影 + height: 2rem; // 在触摸设备上增加滑块尺寸,更容易点击 + border-radius: .4rem; + box-shadow: 0 0 .6rem rgba(0, 0, 0, 0.5); // 更明显的阴影 } .slider-track { - width: 40px; // 在触摸设备上增加宽度 + width: 4rem; // 在触摸设备上增加宽度 } .slider-notch { @@ -603,23 +603,23 @@ onBeforeUnmount(() => { .slider-tooltip { position: absolute; - left: calc(100% + 15px); + left: calc(100% + 1.5rem); background: rgba(255, 255, 255, 0.95); border-radius: 10px; - padding: 10px; + padding: 1rem; box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05); - min-width: 120px; + min-width: 12rem; z-index: 10; &::before { content: ""; position: absolute; - left: -8px; + left: -.8rem; top: 50%; transform: translateY(-50%); - border-width: 8px 8px 8px 0; + border-width: .8rem .8rem .8rem 0; border-style: solid; border-color: transparent rgba(255, 255, 255, 0.95) transparent transparent; } diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue index 59c06479..dc00fa93 100644 --- a/src/component/Detail/DesignDetail.vue +++ b/src/component/Detail/DesignDetail.vue @@ -53,7 +53,7 @@ -
+
- +
@@ -17,7 +17,7 @@
-
+
@@ -71,39 +71,45 @@ export default defineComponent({ selectItem.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id) },{immediate: true,}) watch(()=>detailData.frontBack?.body?.path,(newVal)=>{ - - let sacle = 0 - const img = new Image(); - img.onload = () => { - // resolve(img) - sacle = detailData.detailBody.parentNode.offsetWidth / img.width - detailData.frontBack.front.forEach((item:any,index:number) => { - for (const key in item.style) { - if(key == 'zIndex')return - let value = item.style[key] - if(typeof value !== 'number'){ - value = value.replace('px','') - item.style[key] = value - }else{ - item.style[key] = value*sacle+'px' + setPrintSize() + }) + const setPrintSize = ()=>{ + nextTick(()=>{ + let sacle = 0 + const img = new Image(); + let dom = document.querySelector('.molepositon .perview_img') as any + if(!detailData.frontBack?.body?.path || !dom)return + img.onload = () => { + // resolve(img) + sacle = dom.parentNode.offsetWidth / img.width + detailData.frontBack.front.forEach((item:any,index:number) => { + for (const key in item.style) { + if(key == 'zIndex')return + let value = item.style[key] + if(typeof value !== 'number'){ + value = value.replace('px','') + item.style[key] = value + }else{ + item.style[key] = value*sacle+'px' + } + // item.style[key] = value*sacle+'px' } - // item.style[key] = value*sacle+'px' - } - for (const key in detailData.frontBack.back[index].style) { - if(key == 'zIndex')return - let value = detailData.frontBack.back[index].style[key] - if(typeof value !== 'number'){ - value = value.replace('px','') - detailData.frontBack.back[index].style[key] = value - }else{ - detailData.frontBack.back[index].style[key] = value*sacle+'px' + for (const key in detailData.frontBack.back[index].style) { + if(key == 'zIndex')return + let value = detailData.frontBack.back[index].style[key] + if(typeof value !== 'number'){ + value = value.replace('px','') + detailData.frontBack.back[index].style[key] = value + }else{ + detailData.frontBack.back[index].style[key] = value*sacle+'px' + } + // detailData.frontBack.back[index].style[key] = value*sacle+'px' } - // detailData.frontBack.back[index].style[key] = value*sacle+'px' - } - }); - }; - img.src = newVal; - },{immediate: true,}) + }); + }; + img.src = detailData.frontBack?.body?.path; + }) + } const getDetailListDom = reactive({ libraryList:null as any, }) @@ -385,6 +391,7 @@ export default defineComponent({ ...toRefs(selectItem), ...toRefs(getDetailListDom), + setPrintSize, itemSizeMousedown, itemMoveMousedown, deleteNav, diff --git a/src/component/HomePage/Generate.vue b/src/component/HomePage/Generate.vue index b3e5c883..c5ac7ad6 100644 --- a/src/component/HomePage/Generate.vue +++ b/src/component/HomePage/Generate.vue @@ -137,7 +137,7 @@
{{ item.label }}
diff --git a/src/component/LoginPage/googleLogin.vue b/src/component/LoginPage/googleLogin.vue index ed447b28..051ca5f7 100644 --- a/src/component/LoginPage/googleLogin.vue +++ b/src/component/LoginPage/googleLogin.vue @@ -77,7 +77,9 @@ window.isAddGmail = false } }) - createGmailLogin() + onMounted(()=>{ + createGmailLogin() + }) return { } }, diff --git a/src/component/home/design/mannequin/index.vue b/src/component/home/design/mannequin/index.vue index 3fbba7b8..c4380c01 100644 --- a/src/component/home/design/mannequin/index.vue +++ b/src/component/home/design/mannequin/index.vue @@ -9,7 +9,7 @@
store.state.Workspace.probjects),//选择的项目 + selectObjectStyle:'', mannequinStyleList:[] as any, mannequinStyle:computed(()=>store.state.UserHabit.mannequinStyle),//女性衣服位置 }) @@ -108,6 +109,9 @@ export default defineComponent({ watch(()=>data.selectObject.sex,(newVal)=>{ getModel() }) + watch(()=>data.selectObject.style,(newVal)=>{ + data.selectObjectStyle = JSON.parse(JSON.stringify(newVal)) + },{immediate:true}) const dataDom = reactive({ habitSetStyle:null as any, edit:null as any, @@ -115,7 +119,7 @@ export default defineComponent({ const getModel = ()=>{ let value = { sex:data.selectObject.sex, - style:data.selectObject?.style?data.selectObject?.style:'', + style:data.selectObjectStyle, ageGroup:data.selectObject.ageGroup, } Https.axiosGet(Https.httpUrls.getMannequins,{params:value}).then((rv: any) => { @@ -186,9 +190,9 @@ export default defineComponent({ dataDom.habitSetStyle.init(data.selectObject); } const setWorkspaceStyle = (item:any,value:any)=>{ - data.selectObject.styleName = value.name - data.selectObject.style = value.value - data.selectObject.styleId = value.id + // data.selectObject.styleName = value.name + // data.selectObject.style = value.value + // data.selectObject.styleId = value.id getModel() } const openSetData = ()=>{ @@ -246,7 +250,8 @@ export default defineComponent({ const confirmDeletePic = (item:any,index:any,nData:any)=>{ let newData = { libraryIds:[item.id], - deleteModelConfirm:item.deleteModelConfirm?item.deleteModelConfirm : 0, + deleteModelConfirm:1, + // deleteModelConfirm:item.deleteModelConfirm?item.deleteModelConfirm : 0, timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone, } if(nData)newData = nData diff --git a/src/component/home/index.vue b/src/component/home/index.vue index 0807cab4..8dc3fbfe 100644 --- a/src/component/home/index.vue +++ b/src/component/home/index.vue @@ -223,6 +223,7 @@ export default defineComponent({ "id":data.selectObject.id, "moduleList":moduleList, } + data.isShowMark = true Https.axiosPost(Https.httpUrls.getModuleContent,value).then(async (rv)=>{ if(rv.uploadElement){//toproduct、relight、poseTransfer let uploadElementData = { diff --git a/src/component/home/newProject/workspace.vue b/src/component/home/newProject/workspace.vue index 3cc58655..55cad939 100644 --- a/src/component/home/newProject/workspace.vue +++ b/src/component/home/newProject/workspace.vue @@ -201,13 +201,14 @@ export default defineComponent({ message.info(t('PrintboardUpload.jsContent7')) return } + console.log(data.selectObject) let value = { name:data.selectObject.name, process:props.httpWorkflowType, styleId:data.show.style?data.selectObject.styleId:null, id:data.selectObject.id == -1?'':data.selectObject.id, workspace:{ - id:data.workspaceId?.id == -1?'':data.workspaceId?.id, + id:data.selectObject?.workspaceId == -1?'':data.selectObject?.workspaceId, sex:data.selectObject.sex, // sex:data.show.gender?data.selectObject.sex:null, systemDesignerPercentage:data.show.systemDesigner?data.selectObject.systemDesignerPercentage:null, diff --git a/src/component/modules/generalModalCanvas.vue b/src/component/modules/generalModalCanvas.vue index 7acc7a3d..e6ff9a8a 100644 --- a/src/component/modules/generalModalCanvas.vue +++ b/src/component/modules/generalModalCanvas.vue @@ -4,7 +4,6 @@ class="modalCanvas_modal generalModel" v-model:visible="addDetails" :footer="null" - :get-container="() => $refs.modalCanvas" width="75%" :maskClosable="false" :centered="true" @@ -77,6 +76,7 @@ export default defineComponent({ .modalCanvas{ width: 0; height: 0; + position: fixed; } .modalCanvas_modal { .closeIcon { diff --git a/src/views/HomeMain.vue b/src/views/HomeMain.vue index 65b2648d..71ea9c34 100644 --- a/src/views/HomeMain.vue +++ b/src/views/HomeMain.vue @@ -118,7 +118,7 @@
-