diff --git a/dist.7z b/dist.7z index e42cc748..918b947b 100644 Binary files a/dist.7z and b/dist.7z differ diff --git a/src/component/Administrator/allUserPoerations.vue b/src/component/Administrator/allUserPoerations.vue index 9962e06e..6319b442 100644 --- a/src/component/Administrator/allUserPoerations.vue +++ b/src/component/Administrator/allUserPoerations.vue @@ -184,6 +184,14 @@ export default defineComponent({ label:'trial', value:'3', }, + { + label: "userInEvent", + value: "4", + }, + { + label: "Edu Admin", + value: "7", + }, ]); let init = (funStr,data)=>{ operations.operationsModal = true 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, }) @@ -253,12 +259,13 @@ export default defineComponent({ }else{ resolve(true) isModal = false + isOpen = true } }).then((rv)=>{ }) if(isOpen){ - store.commit('DesignDetail/setDesignColthes',detailData.frontBack.front[index].id) emit('canvasReload') + store.commit('DesignDetail/setDesignColthes',detailData.frontBack.front[index].id) return } @@ -385,6 +392,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..f3c7e6bf 100644 --- a/src/component/LoginPage/googleLogin.vue +++ b/src/component/LoginPage/googleLogin.vue @@ -34,7 +34,7 @@ script:null }) let GOOGLE_CLIENT_ID = '29310152396-nnsd3h533fld665oguu8ovrt1nukmt46.apps.googleusercontent.com' - // let GOOGLE_CLIENT_ID = '399537927614-3sd3rs9p79doocsrff7gm5m1f3chvmn2.apps.googleusercontent.com' + // let GOOGLE_CLIENT_ID = '29310152396-c44dcsoksjirhn7vbo29p8u8n0sg4qps.apps.googleusercontent.com' // 使用谷歌登录的api const createGmailLogin = async ()=>{ var existingScript = document.querySelector(`script[src="${data.scriptSrc}"]`); @@ -77,7 +77,9 @@ window.isAddGmail = false } }) - createGmailLogin() + onMounted(()=>{ + createGmailLogin() + }) return { } }, diff --git a/src/component/LoginPage/login/enterprise.vue b/src/component/LoginPage/login/enterprise.vue index 377f80ea..e6f222b9 100644 --- a/src/component/LoginPage/login/enterprise.vue +++ b/src/component/LoginPage/login/enterprise.vue @@ -299,7 +299,9 @@ export default defineComponent({ loginTime: true, }; }, - + onBeforeUnmount() { + this.clearTimer(); + }, methods: { changeLoginType(type: string) { this.loginType = type; diff --git a/src/component/LoginPage/login/personal.vue b/src/component/LoginPage/login/personal.vue index 26f5fb87..4a31082a 100644 --- a/src/component/LoginPage/login/personal.vue +++ b/src/component/LoginPage/login/personal.vue @@ -299,7 +299,9 @@ export default defineComponent({ loginTime: true, }; }, - + onBeforeUnmount() { + this.clearTimer(); + }, methods: { changeLoginType(type: string) { this.loginType = type; diff --git a/src/component/LoginPage/login/school.vue b/src/component/LoginPage/login/school.vue index df7b0e8e..6199bf08 100644 --- a/src/component/LoginPage/login/school.vue +++ b/src/component/LoginPage/login/school.vue @@ -299,7 +299,9 @@ export default defineComponent({ loginTime: true, }; }, - + onBeforeUnmount() { + this.clearTimer(); + }, methods: { changeLoginType(type: string) { this.loginType = type; 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/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts index c5ba5f60..8306ce01 100644 --- a/src/store/Detail/designDetail.ts +++ b/src/store/Detail/designDetail.ts @@ -139,6 +139,7 @@ const DesignDetail : Module = { } }, setDesignColthes(state,data){ + console.log(data) if(!state.currentDetailType)state.currentDetailType = 'sketch' //切换选择 // state.currentDetailType = '' diff --git a/src/tool/adminRouter.js b/src/tool/adminRouter.js index 6651ec02..658c1259 100644 --- a/src/tool/adminRouter.js +++ b/src/tool/adminRouter.js @@ -177,7 +177,13 @@ const all = (t)=>{ route:'/administrator/organization', key:'sub13', isShow:true, - }] + },{ + name:'Design Frequency', + icon:'usetime', + route:'/administrator/designFrequency', + key:'sub14', + isShow:true, + },] } const schoolOrEnterprise = (t) =>{ return[ @@ -194,6 +200,19 @@ const schoolOrEnterprise = (t) =>{ icon:'usetime', key:'sub2', isShow:true, + },{ + name:'Function Use CHART', + route:'/administrator/recentActiveChart', + icon:'usetime', + key:'sub3', + isShow:true, + }, + { + name:'Design Frequency', + icon:'usetime', + route:'/administrator/designFrequency', + key:'sub4', + isShow:true, }, // { // name:'Credits Detail', @@ -215,7 +234,8 @@ const schoolOrEnterprise = (t) =>{ // route:'/administrator/designFrequency', // key:'sub5', // isShow:true, - // },{ + // }, + // { // name:'Generate Frequency', // icon:'usetime', // route:'/administrator/generateFrequency', 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 @@
-