2023-11-28-用户指引功能
This commit is contained in:
@@ -2,11 +2,13 @@
|
||||
<div>
|
||||
<!-- designDetailShow -->
|
||||
<a-modal class="design_detail_modal_component Guide_1_18"
|
||||
:class="[driver__.driver?'hideEvents':'']"
|
||||
v-model:visible="designDetailShow"
|
||||
:footer="null"
|
||||
width="65%"
|
||||
:maskClosable="false"
|
||||
:centered="true"
|
||||
:keyboard="false"
|
||||
:closable="false"
|
||||
>
|
||||
<div class="design_title_text">
|
||||
@@ -58,11 +60,11 @@
|
||||
<i v-show="revocationShow>1" class="icon iconfont icon-chehui" @click="revocation"></i>
|
||||
<i v-show="oppositeRevocationShow>=1" class="icon iconfont icon-fanchehui" @click="oppositeRevocation"></i>
|
||||
</div>
|
||||
<div v-show="ifSubmit" class="subitOkPreviewBtn" @click="submit">
|
||||
<div v-show="ifSubmit" class="subitOkPreviewBtn Guide_1_26" @click="submit">
|
||||
{{ $t('DesignDetail.Submit') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail_modal_body_category Guide_1_20" :class="[driver__.driver?'hideEvents':'']">
|
||||
<div class="detail_modal_body_category">
|
||||
<div v-show="designOrder" class="detail_modal_right_top scroll_style">
|
||||
<div class="clothes_detail_item clothes_detail_item_apparel">
|
||||
<div class="clothes_item_header">
|
||||
@@ -72,7 +74,7 @@
|
||||
</div>
|
||||
<img :src="designItemDetail?.clothes?.[currentIndex]?.path" alt="" class="centent" @click="openCurrent(1)">
|
||||
</div>
|
||||
<div class="clothes_detail_item clothes_detail_item_print">
|
||||
<div class="clothes_detail_item clothes_detail_item_print Guide_1_20" :class="[driver__.driver?'showEvents':'']">
|
||||
<div class="clothes_item_header">
|
||||
<i class="fi fi-rs-comments"></i>
|
||||
<div>{{ $t('DesignDetail.CurrentPrint') }}</div>
|
||||
@@ -294,6 +296,11 @@ export default defineComponent({
|
||||
let DesignDetailAlter:any = this.$refs.DesignDetailAlter
|
||||
DesignDetailAlter.init(num)
|
||||
if(num ==2 ){
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -569,7 +576,11 @@ export default defineComponent({
|
||||
this.closeModal()
|
||||
this.store.commit('setDesignCollectionList',designCollectionList)
|
||||
this.store.commit('setLikeDesignCollectionList',likeDesignCollectionList)
|
||||
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}
|
||||
).catch(res=>{
|
||||
this.loadingShow = false
|
||||
@@ -651,6 +662,7 @@ export default defineComponent({
|
||||
},
|
||||
clothesOpen(index:any){
|
||||
this.clothesDetail('',index)
|
||||
|
||||
},
|
||||
clothesOpenActive(index:any){
|
||||
this.designItemDetail.clothes.forEach((item:any)=>{
|
||||
@@ -688,6 +700,11 @@ export default defineComponent({
|
||||
this.store.commit('setDesignPreviewData',data)
|
||||
let DesignDetailAlter:any = this.$refs.DesignDetailAlter
|
||||
DesignDetailAlter.changePlace()
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
},
|
||||
//重新设计
|
||||
redesignItem(){
|
||||
@@ -852,6 +869,7 @@ export default defineComponent({
|
||||
position: relative;
|
||||
height: 80%;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
.detail_modal_model{
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
</div>
|
||||
<div
|
||||
@click.stop="open(2)"
|
||||
class="switch_type_item"
|
||||
:class="[openClick == 2 ? 'select_swtich' : '']"
|
||||
class="switch_type_item Guide_1_21"
|
||||
:class="[openClick == 2 ? 'select_swtich' : '',driver__.driver?'showEvents':'']"
|
||||
>
|
||||
<span>{{ $t('DesignDetailAlter.Library') }}</span>
|
||||
</div>
|
||||
@@ -96,7 +96,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="openClick == 2" class="detail_Library_item">
|
||||
<div v-show="openClick == 2" class="detail_Library_item Guide_1_22" :class="[driver__.driver?'showEvents':'']">
|
||||
<div class="material_content_body scroll_style">
|
||||
<div class="content_img_item" v-for="(file) in clothesList" :key="file.id" :class="{active:selectCode !== 'Moodboard'}">
|
||||
<div class="content_img_item_block" :class="{active:file?.checked}">
|
||||
@@ -267,6 +267,7 @@ import { Sketch, Chrome} from '@ans1998/vue3-color'
|
||||
import {getUploadUrl,rgbToHsv} from '@/tool/util'
|
||||
import DesignDetailEnd from './DesignDetailEnd.vue';
|
||||
import { getCookie } from "@/tool/cookie";
|
||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||
import { useI18n } from 'vue-i18n';
|
||||
export default defineComponent({
|
||||
props: ["msg"],
|
||||
@@ -278,6 +279,7 @@ export default defineComponent({
|
||||
let type_ = ref(1);
|
||||
let select = ref(false);
|
||||
let current = inject('current')//父组件传过来的数据
|
||||
let driver__ = inject('driver__')//父组件传过来的数据
|
||||
let openClick = ref(1);
|
||||
let searchPictureName = ref('')
|
||||
//模型印花
|
||||
@@ -324,6 +326,7 @@ export default defineComponent({
|
||||
selectColor,
|
||||
selectColorList,
|
||||
workspace,
|
||||
driver__,
|
||||
t,
|
||||
}
|
||||
},
|
||||
@@ -638,6 +641,11 @@ export default defineComponent({
|
||||
minIOPath:imgData.minIOPath,
|
||||
path:imgData?.url
|
||||
}]
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
|
||||
// console.log(this.current.printObject,imgData);
|
||||
}
|
||||
@@ -672,6 +680,11 @@ export default defineComponent({
|
||||
this.openClick = num;
|
||||
if(num ==2 ){
|
||||
this.getLibraryList()
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1417,7 +1430,11 @@ export default defineComponent({
|
||||
flex-direction: row-reverse;
|
||||
.vc-chrome-color-wrap{
|
||||
// width: 3.6rem;
|
||||
margin-left: 2rem;
|
||||
width: auto;
|
||||
.vc-chrome-active-color{
|
||||
border-radius: 50%;
|
||||
}
|
||||
.vc-chrome-active-color,.vc-checkerboard{
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="type_ == 1 || type_ == 3" @click.stop="setPreview" class="subitOkPreviewBtn">{{ $t('DesignDetailEnd.preview') }}</div>
|
||||
<div v-if="type_ == 2 && current?.printObject?.prints?.[0]?.path != null" @click.stop="setPrint" class="subitOkPreviewBtn">{{ $t('DesignDetailEnd.Layout') }}</div>
|
||||
<div v-if="type_ == 2 && current?.printObject?.prints?.[0]?.path != null" @click.stop="setPrint" class="subitOkPreviewBtn Guide_1_23">{{ $t('DesignDetailEnd.Layout') }}</div>
|
||||
<div v-else-if="type_ == 2 && current?.printObject?.prints?.[0]?.path == null" @click.stop="setPreview" class="subitOkPreviewBtn">{{ $t('DesignDetailEnd.preview') }}</div>
|
||||
|
||||
<DesignPrintOperation ref="DesignPrintOperation"></DesignPrintOperation>
|
||||
@@ -96,7 +96,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { defineComponent,computed,ref, h ,inject} from 'vue'
|
||||
import { defineComponent,computed,ref, nextTick,h ,inject} from 'vue'
|
||||
import Draggable from 'vuedraggable'
|
||||
import { Https } from "@/tool/https";
|
||||
import { useStore } from "vuex";
|
||||
@@ -104,6 +104,7 @@ import { Sketch} from '@ans1998/vue3-color'
|
||||
import DesignPrintOperation from './DesignPrintOperation.vue';
|
||||
import DesignPrintOperationMobile from './DesignPrintOperationMobile.vue';
|
||||
import { message,Upload} from 'ant-design-vue';
|
||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||
import {isMoible} from '@/tool/util'
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -118,6 +119,8 @@ export default defineComponent({
|
||||
let current = inject('current')//父组件传过来的数据
|
||||
let setRevocation = inject('setRevocation')//父组件传过来的数据
|
||||
let sketchImg = ref({})
|
||||
let driver__ = inject('driver__')//父组件传过来的数据
|
||||
|
||||
//印花
|
||||
let overallSingle = ref(false)
|
||||
let systemDesignerPercentage = ref(30)
|
||||
@@ -134,6 +137,7 @@ export default defineComponent({
|
||||
current,
|
||||
setRevocation,
|
||||
sketchImg,
|
||||
driver__,
|
||||
type_,
|
||||
overallSingle,
|
||||
systemDesignerPercentage,
|
||||
@@ -180,6 +184,11 @@ export default defineComponent({
|
||||
if(this.current?.printObject?.prints?.[0]?.path){
|
||||
let DesignPrintOperation = isMoible() ? this.$refs.DesignPrintOperationMobile : this.$refs.DesignPrintOperation
|
||||
DesignPrintOperation.init()
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}else{
|
||||
message.info(this.t('DesignDetailEnd.jsContent1'));
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-modal
|
||||
class="designOpenrtion_modal"
|
||||
class="designOpenrtion_modal Guide_1_24"
|
||||
:class="[driver__.driver?'hideEvents':'']"
|
||||
v-model:visible="designOpenrtion"
|
||||
:footer="null"
|
||||
width="65%"
|
||||
:maskClosable="false"
|
||||
:centered="true"
|
||||
:closable="false"
|
||||
:keyboard="false"
|
||||
:mask="true"
|
||||
>
|
||||
<div class="designOpenrtion_content">
|
||||
@@ -56,7 +58,7 @@
|
||||
<img :src="designOpenrtionList[0].path">
|
||||
</div>
|
||||
</div>
|
||||
<div class="subitOkPreviewBtn" @click.stop="setPreview">{{ $t('DesignPrintOperation.preview') }}</div>
|
||||
<div class="subitOkPreviewBtn Guide_1_25" @click.stop="setPreview">{{ $t('DesignPrintOperation.preview') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="designOpenrtion_centent" id="designOpenrtionCentent">
|
||||
@@ -104,6 +106,7 @@
|
||||
import { defineComponent, h,createVNode, ref ,computed, inject,nextTick} from "vue";
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { useStore } from "vuex";
|
||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||
import { Https } from "@/tool/https";
|
||||
import { Modal,message } from 'ant-design-vue';
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
@@ -114,6 +117,7 @@ export default defineComponent({
|
||||
let designOpenrtion = ref(false);
|
||||
let designOpenrtionList = ref([])
|
||||
let current = inject('current')//父组件传过来的数据
|
||||
let driver__ = inject('driver__')
|
||||
let setRevocation = inject('setRevocation')//父组件传过来的数据
|
||||
let overallSingle = ref(false)
|
||||
let systemDesignerPercentage = ref(0)
|
||||
@@ -160,6 +164,7 @@ export default defineComponent({
|
||||
overallSingle,
|
||||
systemDesignerPercentage,
|
||||
current,
|
||||
driver__,
|
||||
printAmount,
|
||||
printZIndex,
|
||||
printStyleList,
|
||||
@@ -652,6 +657,11 @@ export default defineComponent({
|
||||
this.loadingShow = false
|
||||
this.designOpenrtion = false
|
||||
// this.closeModal()
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}
|
||||
).catch(res=>{
|
||||
this.loadingShow = false
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
:maskClosable="false"
|
||||
:centered="true"
|
||||
:closable="false"
|
||||
:keyboard="false"
|
||||
:mask="true"
|
||||
>
|
||||
<div class="designOpenrtion_content">
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
:title="collectionName"
|
||||
width="80%"
|
||||
:maskClosable="false"
|
||||
:keyboard="false"
|
||||
:centered="true"
|
||||
>
|
||||
<template #closeIcon>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="habit">
|
||||
<div v-show="openType.habit" class="habit_mask"></div>
|
||||
<div class="habit_button" @click.stop="setOpenType('habit')" >
|
||||
<div class="habit_button Guide_1_27" @click.stop="setOpenType('habit')" >
|
||||
{{ $t('Habit.Workspace') }}
|
||||
<i class="fi fi-bs-angle-down"></i>
|
||||
</div>
|
||||
@@ -95,7 +95,7 @@
|
||||
<div class="habit_System_Designer_text">{{ $t('Habit.Designer') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="habit_model">
|
||||
<div class="habit_model Guide_1_28">
|
||||
<a-dropdown placement="bottomRight"
|
||||
trigger="['click']"
|
||||
@click.stop="setOpenType('model')"
|
||||
@@ -107,7 +107,7 @@
|
||||
</a-button>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
<div id="modelShow" class="habit_model_show" v-fade="openType.model">
|
||||
<div id="modelShow" class="habit_model_show Guide_1_29" :class="[driver__.driver?'showEvents':'']" v-fade="openType.model">
|
||||
<div class="habit_btn">
|
||||
<div class="model_current">
|
||||
<div class="model_text">{{ $t('Habit.Current') }}</div>
|
||||
@@ -153,12 +153,13 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { useStore } from "vuex";
|
||||
import { defineComponent, createVNode, ref,Ref} from "vue";
|
||||
import { defineComponent, createVNode,nextTick, computed,ref,Ref} from "vue";
|
||||
import { UserOutlined, DownOutlined } from "@ant-design/icons-vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import type { MenuProps } from "ant-design-vue";
|
||||
import { Modal,message,Upload} from 'ant-design-vue';
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||
import { useI18n } from "vue-i18n";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
@@ -166,8 +167,9 @@ export default defineComponent({
|
||||
UserOutlined,
|
||||
},
|
||||
setup(){
|
||||
const store = useStore();
|
||||
let workspaceItem:any = ref({
|
||||
id:1,
|
||||
id:'',
|
||||
id_:1,
|
||||
workSpaceName:"工作台1",
|
||||
putName:false,
|
||||
@@ -189,6 +191,9 @@ export default defineComponent({
|
||||
addWorkspace:false,
|
||||
sex:false
|
||||
})
|
||||
let driver__:any = computed(()=>{
|
||||
return store.state.Guide.guide
|
||||
})
|
||||
let workspace:any = ref({
|
||||
|
||||
});
|
||||
@@ -200,11 +205,11 @@ export default defineComponent({
|
||||
|
||||
])
|
||||
const {t} = useI18n()
|
||||
|
||||
return{
|
||||
systemSeleves,
|
||||
mannequins,
|
||||
openType,
|
||||
driver__,
|
||||
workspace,
|
||||
workspaceItem,
|
||||
workspaceItemName,
|
||||
@@ -224,13 +229,13 @@ export default defineComponent({
|
||||
let data = this.workspaceItem
|
||||
delete data.isLastIndex
|
||||
this.putWorkspace(data,'')
|
||||
// this.getDetail(this.workspaceItem.id)
|
||||
this.store.commit("setWorkspace", this.workspaceItem);
|
||||
}
|
||||
}
|
||||
},
|
||||
'workspaceItem.id_':{
|
||||
handler(newVal:any,oldVal:any){
|
||||
|
||||
this.workspace.workspaceList.forEach((v:any)=>{
|
||||
if(v.id == this.workspaceItem.id_){
|
||||
this.workspaceItem = v
|
||||
@@ -239,7 +244,7 @@ export default defineComponent({
|
||||
if(v.id == oldVal){
|
||||
delete v.isLastIndex
|
||||
this.putWorkspace(v,newVal)
|
||||
// this.getDetail(newVal)
|
||||
this.getDetail(newVal)
|
||||
}
|
||||
})
|
||||
this.getMannequins()
|
||||
@@ -264,21 +269,12 @@ export default defineComponent({
|
||||
// })
|
||||
}
|
||||
},
|
||||
// 'workspa,ceItem.sex':{
|
||||
// handler(newVal:any,oldVal:any){
|
||||
// console.log(oldVal);
|
||||
'workspaceItem.sex':{
|
||||
handler(newVal:any,oldVal:any){
|
||||
// console.log(this.workspaceItem);
|
||||
|
||||
// if(oldVal){
|
||||
// console.log(oldVal);
|
||||
|
||||
// if(newVal != oldVal){
|
||||
// console.log(this.workspaceItem.position);
|
||||
|
||||
// this.workspaceItem.position = this.singleTypeList[0].label
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
}
|
||||
},
|
||||
workspaceItem:{
|
||||
handler(newVal:any,oldVal:any){
|
||||
this.store.commit("setWorkspace", this.workspaceItem);
|
||||
@@ -292,6 +288,7 @@ export default defineComponent({
|
||||
},
|
||||
mounted() {
|
||||
this.getworkspace()
|
||||
this.getSex()
|
||||
},
|
||||
directives:{
|
||||
fade:{
|
||||
@@ -336,7 +333,6 @@ export default defineComponent({
|
||||
this.sex = rv
|
||||
}
|
||||
})
|
||||
this.getPosition('')
|
||||
},
|
||||
async getPosition(str:any){
|
||||
let params
|
||||
@@ -379,23 +375,21 @@ export default defineComponent({
|
||||
v.overallSingle = true
|
||||
}
|
||||
v.putName = false
|
||||
if(v.id == rv.id){
|
||||
if(v.id == (this.workspaceItem.id?this.workspaceItem.id:rv.id)){
|
||||
this.workspaceItem = v
|
||||
console.log(this.workspaceItem);
|
||||
this.setMannequinsSex()
|
||||
this.getPosition('')
|
||||
}
|
||||
});
|
||||
this.workspace.id = rv.id
|
||||
this.workspace.workspaceList = rv.page.content
|
||||
this.getSex()
|
||||
}
|
||||
})
|
||||
},
|
||||
getDetail(id:any){//
|
||||
Https.axiosGet(Https.httpUrls.workspaceDetail,{params:{id:id}}).then((rv: any) => {
|
||||
if (rv) {
|
||||
this.getworkspace()
|
||||
|
||||
// this.getworkspace()
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -422,7 +416,7 @@ export default defineComponent({
|
||||
Https.axiosPost(Https.httpUrls.workspacesaveOrUpdate,data).then((rv: any) => {
|
||||
if (rv) {
|
||||
if(index){
|
||||
this.getDetail(index)
|
||||
// this.getDetail(index)
|
||||
}else{
|
||||
this.getworkspace()
|
||||
}
|
||||
@@ -558,15 +552,28 @@ export default defineComponent({
|
||||
// this.workspaceItem.mannequinId = item.id
|
||||
// this.workspaceItem.mannequinType = str
|
||||
// this.workspaceItem.mannequinUrl = item.presignedUrl
|
||||
let id
|
||||
console.log(id , item.id);
|
||||
|
||||
if(this.workspaceItem.sexEnum.name == 'Female'){
|
||||
id = this.workspaceItem.mannequinFemaleId
|
||||
this.workspaceItem.femalePresignedUrl = item.presignedUrl
|
||||
this.workspaceItem.mannequinFemaleType = str
|
||||
this.workspaceItem.mannequinFemaleId = item.id
|
||||
}else if(this.workspaceItem.sexEnum.name == 'Male'){
|
||||
id = this.workspaceItem.mannequinMaleId
|
||||
this.workspaceItem.malePresignedUrl = item.presignedUrl
|
||||
this.workspaceItem.mannequinMaleType = str
|
||||
this.workspaceItem.mannequinMaleId = item.id
|
||||
}
|
||||
if(id != item.id){
|
||||
if(this.driver__.driver){
|
||||
this.openType.habit = false
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}
|
||||
this.workspaceItem.mannequinUrl = item.presignedUrl
|
||||
this.workspaceItem.mannequinType = str
|
||||
this.workspaceItem.mannequinId = item.id
|
||||
@@ -586,6 +593,13 @@ export default defineComponent({
|
||||
setOpenType(v:string){
|
||||
if(v == 'habit'){
|
||||
this.openType.habit = !this.openType.habit
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
// driverObj__.moveNext();
|
||||
driverObj__.moveTo(28);
|
||||
|
||||
})
|
||||
}
|
||||
}else if(v == 'workspace'){
|
||||
this.openType.singleton = false
|
||||
this.openType.sex = false
|
||||
@@ -599,6 +613,11 @@ export default defineComponent({
|
||||
this.openType.sex = false
|
||||
this.openType.model = !this.openType.model
|
||||
this.getMannequins()
|
||||
if(this.driver__.driver){
|
||||
nextTick().then(()=>{
|
||||
driverObj__.moveNext();
|
||||
})
|
||||
}
|
||||
}else if(v == 'singleton'){
|
||||
this.openType.singleton = !this.openType.singleton
|
||||
this.openType.workspace = false
|
||||
@@ -607,6 +626,7 @@ export default defineComponent({
|
||||
this.openType.sex = !this.openType.sex
|
||||
this.openType.workspace = false
|
||||
this.openType.singleton = false
|
||||
|
||||
}
|
||||
let mask = document.getElementsByClassName("habit_mask")[0]
|
||||
mask.addEventListener("click", this.documentClick,true);
|
||||
@@ -682,6 +702,7 @@ export default defineComponent({
|
||||
transition: all .3s;
|
||||
transform: scale(0.75)translateY(10%);
|
||||
display: none;
|
||||
overflow: inherit !important;
|
||||
&.active{
|
||||
opacity: 1;
|
||||
transform: scale(0.75)translateY(0%);
|
||||
|
||||
Reference in New Issue
Block a user