diff --git a/public/image/femaleBG.png b/public/image/femaleBG.png new file mode 100644 index 00000000..a9aed9be Binary files /dev/null and b/public/image/femaleBG.png differ diff --git a/public/image/maleBG.png b/public/image/maleBG.png new file mode 100644 index 00000000..c91dfd52 Binary files /dev/null and b/public/image/maleBG.png differ diff --git a/src/assets/iconfont/iconfont.css b/src/assets/iconfont/iconfont.css index f5b39aeb..c19d766f 100644 --- a/src/assets/iconfont/iconfont.css +++ b/src/assets/iconfont/iconfont.css @@ -7,7 +7,7 @@ .iconfont { font-family: "iconfont" !important; - font-size: 16px; + font-size: 1.8rem; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; diff --git a/src/assets/iconfont2/iconfont.css b/src/assets/iconfont2/iconfont.css index fec3bb25..95123e75 100644 --- a/src/assets/iconfont2/iconfont.css +++ b/src/assets/iconfont2/iconfont.css @@ -1,11 +1,11 @@ @font-face { font-family: "iconfont"; /* Project id */ - src: url('iconfont.ttf?t=1697613542954') format('truetype'); + src: url('iconfont.ttf?t=1698114002056') format('truetype'); } .iconfont { font-family: "iconfont" !important; - font-size: 1.6rem; + font-size: 1.8rem; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; @@ -15,3 +15,11 @@ content: "\e66c"; } +.icon-fanchehui:before { + content: "\e626"; +} + +.icon-chehui:before { + content: "\e609"; +} + diff --git a/src/assets/iconfont2/iconfont.ttf b/src/assets/iconfont2/iconfont.ttf index 5f9def81..f8cc7354 100644 Binary files a/src/assets/iconfont2/iconfont.ttf and b/src/assets/iconfont2/iconfont.ttf differ diff --git a/src/assets/style/style.css b/src/assets/style/style.css index 533dad59..46a6c20e 100644 --- a/src/assets/style/style.css +++ b/src/assets/style/style.css @@ -185,18 +185,18 @@ li { .operate_file_block .select_img_type .category_list .category_item:hover { background: linear-gradient(-137deg, #eeefdb, #e7dbed); } -.ant-modal-root .ant-modal-wrap .ant-modal-confirm-confirm .ant-modal-content .ant-modal-body .ant-modal-confirm-body-wrapper .ant-modal-confirm-btns .ant-btn:hover { - color: #39215b; - border-color: #39215b; +.ant-modal-confirm-btns .ant-btn:hover { + color: #39215b !important; + border-color: #39215b !important; } -.ant-modal-root .ant-modal-wrap .ant-modal-confirm-confirm .ant-modal-content .ant-modal-body .ant-modal-confirm-body-wrapper .ant-modal-confirm-btns .ant-btn-primary { - background: #39215b; - border-color: #39215b; +.ant-modal-confirm-btns .ant-btn-primary { + background: #39215b !important; + border-color: #39215b !important; } -.ant-modal-root .ant-modal-wrap .ant-modal-confirm-confirm .ant-modal-content .ant-modal-body .ant-modal-confirm-body-wrapper .ant-modal-confirm-btns .ant-btn-primary:hover { - color: #fff; - border-color: #543087; - background: #543087; +.ant-modal-confirm-btns .ant-btn-primary:hover { + color: #fff !important; + border-color: #543087 !important; + background: #543087 !important; } .ant-spin-dot-item { background-color: #543087; diff --git a/src/assets/style/style.less b/src/assets/style/style.less index 38e9dc60..80008400 100644 --- a/src/assets/style/style.less +++ b/src/assets/style/style.less @@ -222,27 +222,28 @@ ul,li{ .ant-modal-content{ .ant-modal-body{ .ant-modal-confirm-body-wrapper{ - .ant-modal-confirm-btns{ - .ant-btn:hover{ - color: #39215b; - border-color: #39215b; - } - .ant-btn-primary{ - background: #39215b; - border-color: #39215b; - } - .ant-btn-primary:hover{ - color: #fff; - border-color: #543087; - background: #543087; - } - } + } } } } } } +.ant-modal-confirm-btns{ + .ant-btn:hover{ + color: #39215b !important; + border-color: #39215b !important; + } + .ant-btn-primary{ + background: #39215b !important; + border-color: #39215b !important; + } + .ant-btn-primary:hover{ + color: #fff !important; + border-color: #543087 !important; + background: #543087 !important; + } +} //loding样式 .ant-spin-dot-item{ background-color: #543087; diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue index eb41c359..84340fc6 100644 --- a/src/component/Detail/DesignDetail.vue +++ b/src/component/Detail/DesignDetail.vue @@ -52,6 +52,8 @@ + +
Submit @@ -115,7 +117,7 @@
- +
@@ -174,6 +176,9 @@ export default defineComponent({ let userInfo:any = {} let ifSubmit = ref(false) let designItemDetailUrl = ref({}) + let setRevocationShow = ref(false)//判断是不是第一次进来和切换下一张 + let oppositeRevocationShow:any = ref() + let revocationShow:any = ref() return{ designItemDetail, store, @@ -187,7 +192,10 @@ export default defineComponent({ designOutfitId, userInfo, ifSubmit, - designItemDetailUrl + designItemDetailUrl, + setRevocationShow, + oppositeRevocationShow, + revocationShow } }, data(){ @@ -213,8 +221,6 @@ export default defineComponent({ } await this.setImgSize() this.designItemDetailUrl = designItemDetail.currentFullBodyView?designItemDetail.currentFullBodyView:designItemDetail.designItemUrl - console.log(this.designItemDetailUrl); - } }, currentIndex:{ @@ -222,7 +228,29 @@ export default defineComponent({ } }, }, + provide() { + return { + setRevocation:this.setRevocation + } + }, mounted(){ + let beforeunload = () => { + this.removeRevocation() + window.removeEventListener('beforeunload',beforeunload) + } + window.addEventListener('beforeunload',beforeunload) + let onresizeTime:any + let this_ = this + window.onresize = () => { + return (() => { + clearTimeout(onresizeTime) + onresizeTime = setTimeout(async ()=>{ + await this_.setImgSize() + },500) + + })() + } + let userInfo:any = getCookie("userInfo") this.userInfo = JSON.parse(userInfo); // let url = Https.httpUrls.getDesignDetail + `?designItemId=34242&designPythonOutfitId=34004` @@ -258,7 +286,6 @@ export default defineComponent({ }, methods:{ openCurrent(num: Number) { - let designItemDetail = JSON.parse(JSON.stringify(this.store.state.DesignDetailModule.designItemDetail)) let DesignDetailAlter:any = this.$refs.DesignDetailAlter DesignDetailAlter.init(num) if(num ==2 ){ @@ -271,8 +298,9 @@ export default defineComponent({ this.designOrder = false let DesignDetailAlter:any = this.$refs.DesignDetailAlter DesignDetailAlter.terminate() - this.designItemDetail = {} + // this.designItemDetail = {} this.frontBack = {} + this.removeRevocation() }else{ this.designShowPrview = 1; this.designItemDetailUrl = {} @@ -300,6 +328,7 @@ export default defineComponent({ }) this.store.commit('setDesignItemDetail',rv) + this.setRevocation(rv,'') if(rv.others[0].layersObject.length != 0){ this.body = false }else{ @@ -336,7 +365,7 @@ export default defineComponent({ } }) }else{ - designItemDetail.others.forEach((item:any) => { + designItemDetail?.others?.forEach((item:any) => { if(item.type == 'Body'){ body = item } @@ -369,7 +398,7 @@ export default defineComponent({ } } }) - let bodyImgWH = document.getElementsByClassName("design_compile_content")[0].getElementsByClassName("perview_img")[0] + let bodyImgWH = document.getElementsByClassName("design_compile_content")?.[0]?.getElementsByClassName("perview_img")?.[0] body.style = { width:body.layersObject[0].imageSize?.[0]*ratio+'px', @@ -402,7 +431,57 @@ export default defineComponent({ this.designShowPrview = 1 // this.showDesignDetailModal(data,str) }, - + removeRevocation(){ + sessionStorage.removeItem('oppositeRevocation') + sessionStorage.removeItem('revocation') + this.setRevocationShow = false + }, + setRevocation(designItemDetail:any,data:any){//设置撤销 + let itemDetail = JSON.parse(JSON.stringify(this.store.state.DesignDetailModule.designItemDetail)) + // let data = JSON.parse(JSON.stringify(this.store.state.DesignDetailModule.designPreviewData)) + let revocation = JSON.parse((sessionStorage.getItem("revocation") as any)) + let oppositeRevocation = JSON.parse((sessionStorage.getItem("oppositeRevocation") as any)) + if(revocation?.[0]?.designItemDetail.designItemId != itemDetail.designItemId || sessionStorage.getItem("revocation") == null){ + // sessionStorage.setItem('revocation', JSON.stringify([])); + // sessionStorage.setItem('oppositeRevocation',JSON.stringify([])); + revocation = [] + } + let detail = { + designItemDetail:designItemDetail, + data:data?data:'' + } + revocation.push(detail) + this.revocationShow = revocation?.length + this.oppositeRevocationShow = 0 + sessionStorage.setItem('revocation', JSON.stringify(revocation)); + sessionStorage.setItem('oppositeRevocation',JSON.stringify([])); + }, + revocation(){//撤回 + let oppositeRevocation = JSON.parse((sessionStorage.getItem("oppositeRevocation") as any)) + let revocation = JSON.parse((sessionStorage.getItem("revocation") as any)) + oppositeRevocation.push(revocation[revocation.length-1]) + this.oppositeRevocationShow = oppositeRevocation.length + revocation.splice(revocation.length-1,1) + this.revocationShow = revocation.length + if(this.revocationShow > 1){ + this.store.commit('setDesignPreviewData',revocation[revocation.length-1].data) + } + this.store.commit("setDesignItemDetail", revocation[revocation.length-1].designItemDetail); + sessionStorage.setItem('oppositeRevocation', JSON.stringify(oppositeRevocation)); + sessionStorage.setItem('revocation', JSON.stringify(revocation)); + }, + oppositeRevocation(){//反撤回 + let oppositeRevocation = JSON.parse((sessionStorage.getItem("oppositeRevocation") as any)) + let revocation = JSON.parse((sessionStorage.getItem("revocation") as any)) + this.store.commit('setDesignPreviewData',oppositeRevocation[oppositeRevocation.length-1].data) + this.store.commit("setDesignItemDetail", oppositeRevocation[oppositeRevocation.length-1].designItemDetail); + revocation.push(oppositeRevocation[oppositeRevocation.length-1]) + this.revocationShow = revocation.length + oppositeRevocation.splice(oppositeRevocation.length-1,1) + this.oppositeRevocationShow = oppositeRevocation.length + sessionStorage.setItem('oppositeRevocation', JSON.stringify(oppositeRevocation)); + sessionStorage.setItem('revocation', JSON.stringify(revocation)); + }, setSubmitItem(str:any){ let designItemDetail = JSON.parse(JSON.stringify(this.store.state.DesignDetailModule.designItemDetail)) let clothes:any = [] @@ -478,7 +557,7 @@ export default defineComponent({ //按比设置单件衣服宽高位置 async setPostition(url:any){ let img:any = await loadImage(url) - let modal_body = document.getElementsByClassName('detail_modal_body')[0] + let modal_body = document.getElementsByClassName('detail_modal_model')[0] const num = modal_body?.offsetWidth / img.width; function loadImage(url:any) { return new Promise((resolve, reject) => { @@ -499,6 +578,7 @@ export default defineComponent({ let newDesign = {} let newIndex = 0 this.designOrder = false + this.removeRevocation() let DesignDetailAlter:any = this.$refs.DesignDetailAlter DesignDetailAlter.terminate() if(type === 'last'){ @@ -692,6 +772,7 @@ export default defineComponent({ // padding: 1.5rem 1rem 2.5rem; box-sizing: border-box; .detail_modal_body_img{ + overflow: hidden; // width: 43.3rem; width: 23%; height: 100%; @@ -700,7 +781,6 @@ export default defineComponent({ justify-content: center; align-items: center; position: relative; - flex-direction: column; // height: 50%; .detail_modal_body{ @@ -714,7 +794,8 @@ export default defineComponent({ top: 0; left: 50%; z-index: 999; - transform: translateX(-50%); + transform: translate(-50%,-120%); + transition: all .3s; >div{ width: 4rem; height: 4rem; @@ -747,6 +828,8 @@ export default defineComponent({ .detail_modal_model{ position: relative; z-index: 1; + max-height: 100%; + width: auto; } .detail_modal_item_front,.detail_modal_item_back{ cursor: pointer; @@ -791,17 +874,46 @@ export default defineComponent({ position: absolute; cursor: pointer; zoom: 1.2; + transition: all .3s; &.fi-bs-expand-arrows-alt{ top: 0; left: 0; + transform: translateX(-120%); } &.fi-rr-edit{ left: 0; top: 3rem; + transform: translateX(-120%); } &.fi-rr-copy{ top: 0; right: 0; + transform: translateX(120%); + } + &.icon-fanchehui{ + top: 6rem; + right: 0; + transform: translateX(120%); + } + &.icon-chehui{ + top: 3rem; + right: 0; + transform: translateX(120%); + } + } + i:hover{ + + } + } + &.detail_modal_body_img:hover{ + .detail_modal_body{ + .detail_modal_body_nav{ + transform: translate(-50%,0%); + } + } + div{ + i{ + transform: translateX(0); } } } diff --git a/src/component/Detail/DesignDetailEnd.vue b/src/component/Detail/DesignDetailEnd.vue index 5026c905..f84ea72f 100644 --- a/src/component/Detail/DesignDetailEnd.vue +++ b/src/component/Detail/DesignDetailEnd.vue @@ -58,7 +58,10 @@
- + +
+ +
@@ -109,6 +112,7 @@ export default defineComponent({ const store = useStore(); let type_ = ref(0); let current = inject('current')//父组件传过来的数据 + let setRevocation = inject('setRevocation')//父组件传过来的数据 let sketchImg = ref({}) //印花 let overallSingle = ref(false) @@ -122,6 +126,7 @@ export default defineComponent({ return{ store, current, + setRevocation, sketchImg, type_, overallSingle, @@ -143,6 +148,7 @@ export default defineComponent({ //点击判断 init(num){ // this.current = JSON.parse(JSON.stringify(this.currentItem)) + console.log(this.current); this.type_ = num this.colorList[this.selectIndex] = this.$parent.selectColor this.overallSingle = this.current?.printObject?.ifSingle == null?false:this.current?.printObject?.ifSingle @@ -271,6 +277,7 @@ export default defineComponent({ this.loadingShow = false this.store.commit("setDesignItemDetail", designItemDetail); this.store.commit("setDesignPreviewData", data); + this.setRevocation(designItemDetail,data) } ).catch(res=>{ this.loadingShow = false @@ -324,6 +331,9 @@ export default defineComponent({ transform: scale(.85); transform-origin: center top; cursor: pointer; + img:nth-child(1){ + position: absolute; + } } } } diff --git a/src/component/Detail/DesignPrintOperation.vue b/src/component/Detail/DesignPrintOperation.vue index 140789e9..6e95a13c 100644 --- a/src/component/Detail/DesignPrintOperation.vue +++ b/src/component/Detail/DesignPrintOperation.vue @@ -113,6 +113,7 @@ export default defineComponent({ let designOpenrtion = ref(false); let designOpenrtionList = ref([]) let current = inject('current')//父组件传过来的数据 + let setRevocation = inject('setRevocation')//父组件传过来的数据 let overallSingle = ref(false) let systemDesignerPercentage = ref(0) let printAmount = ref(1)//印花数量 @@ -165,6 +166,7 @@ export default defineComponent({ print, sketch, loadingShow, + setRevocation }; }, data() { @@ -255,6 +257,13 @@ export default defineComponent({ this.designOpenrtionList.forEach((item,index)=>{ this.setTemplate(item,index) this.printAmount = this.printStyleList.length + if (!this.overallSingle) { + this.printAmount = 1 + this.setprintAmount() + } + if(this.current.printObject.ifSingle != this.overallSingle){ + this.refetchTemplate(0) + } }) }else{ @@ -439,6 +448,7 @@ export default defineComponent({ let num = this.printAmount - this.printStyleList.length for (let index = 0; index < num; index++) { this.printStyleList.push(this.printStyleList[this.printStyleList.length-1]) + this.printStyleList[this.printStyleList.length-1].transform.rotateZ = 0 this.refetchTemplate(this.printStyleList.length-1) this.designOpenrtionList.push(this.current.printObject.prints[this.current.printObject.prints.length-1]) } @@ -601,7 +611,6 @@ export default defineComponent({ prints:this.computeZindex(), } data.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone - this.store.commit("setDesignPreviewData", data); this.loadingShow = true Https.axiosPost(Https.httpUrls.designSingle, data).then( (rv) => { @@ -623,6 +632,8 @@ export default defineComponent({ item.layersObject[1].id = this.store.state.DesignDetailModule.designItemDetail.clothes[i].layersObject[1].id }) this.store.commit("setDesignItemDetail", designItemDetail); + this.store.commit("setDesignPreviewData", data); + this.setRevocation(designItemDetail,data) this.loadingShow = false this.designOpenrtion = false // this.closeModal() diff --git a/src/component/Detail/habit.vue b/src/component/Detail/habit.vue index dc0e58aa..2d2a7e7b 100644 --- a/src/component/Detail/habit.vue +++ b/src/component/Detail/habit.vue @@ -632,6 +632,7 @@ export default defineComponent({ border-radius: 1rem; padding: 2rem; // zoom: .75; + font-size: 1.6rem; transform-origin: top right; position: absolute; right: -.3rem; @@ -776,6 +777,9 @@ export default defineComponent({ justify-content: space-between; .model_current{ margin-right: 3rem; + .model_text{ + text-align: center; + } } } .habit_model_list{ @@ -831,6 +835,7 @@ export default defineComponent({ flex-direction: column; .model_text{ display: flex; + justify-content: center; :deep(.ant-switch) { margin: 0 1rem; } @@ -922,6 +927,7 @@ export default defineComponent({ display: flex; align-items: center; justify-content: space-between; + font-size: 1.4rem; } \ No newline at end of file diff --git a/src/tool/moodb.ts b/src/tool/moodb.ts index 9bab2560..c531d254 100644 --- a/src/tool/moodb.ts +++ b/src/tool/moodb.ts @@ -1,7 +1,7 @@ export default { moodb_ : [ [['wh4']], - [['wh4','wh4']], + [['wh4','wh4'],['wh8','wh8']], [['wh4','w1h2','w1h2'],['w1h2','w1h2','wh4'],['w2h1','w2h1','wh4'],['wh4','w2h1','w2h1']], [['wh1','wh1','w1h2','wh4'],['w1h2','wh1','wh1','wh4'],['wh4','wh1','wh1','w1h2'],['w1h2','w1h2','w1h2','w1h2']], [['wh1','wh1','wh1','wh1','wh4'],['wh1','wh1','wh4','wh1','wh1'],['wh4','wh1','wh1','wh1','wh1'],['w1h2','w1h2','w1h2','wh1','wh1'],['wh1','wh1','w1h2','w1h2','w1h2'],['w1h2','w1h2','wh1','wh1','w1h2'],['w1h2','wh1','wh1','w1h2','w1h2']], diff --git a/src/views/HistoryPage.vue b/src/views/HistoryPage.vue index 13717434..e2e5c4ac 100644 --- a/src/views/HistoryPage.vue +++ b/src/views/HistoryPage.vue @@ -217,7 +217,7 @@ export default defineComponent({ }, retrieveHome(record:any){ - this.$router.push({name:'home',params: {id:record.id}}) + // this.$router.push({name:'home',params: {id:record.id}}) } } }) diff --git a/src/views/LibraryPage.vue b/src/views/LibraryPage.vue index c117f1a4..3bb5405d 100644 --- a/src/views/LibraryPage.vue +++ b/src/views/LibraryPage.vue @@ -173,10 +173,17 @@
- +
Generate
The entered content exceeds the maximum length.
+
+
{{ printModel.name }}
+ +
+
v.type)[0].name let generageImg = this.selectGenerateList.filter((v:any)=>v.checked)[0] @@ -844,7 +875,7 @@ export default defineComponent({ level2Type:this.selectCode == 'Sketchboard'?this.designType:'', text:this.captionGeneration, timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone, - version:2,//为1就是Print + version:this.selectCode == 'Printboard'?this.printModel.num:0,//为1就是Print gender:this.selectCode == 'Sketchboard'?this.sex:'', } if(generateType == 'image'||generateType == 'text-image'){ @@ -1198,9 +1229,40 @@ export default defineComponent({ } } .generage_btn{ - margin-left: 3rem; + margin: 0 3rem; } } + .printModel{ + font-size: 1.4rem; + font-weight: 500; + >div{ + width: 7rem; + display: flex; + justify-content: center; + border-radius: 1rem; + margin: 0; + border: 2px solid; + cursor: pointer; + + } + ul{ + position: absolute; + width: 7rem; + text-align: center; + margin-top: .3rem; + border-radius: 1rem; + overflow: hidden; + z-index: 3; + li{ + background: #c5c4c8; + line-height: 2; + cursor: pointer; + &.printModel_item:hover{ + background: rgba(0,0,0,.4); + } + } + } + } .upload_item{ margin-left: 4rem; .upload_file_item{ @@ -1212,6 +1274,7 @@ export default defineComponent({ .upload_component{ margin: 0; } + } }