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 @@
+
+
{{ 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;
}
+
}
}