2023-11-08 09:31:40 +08:00
|
|
|
<template>
|
|
|
|
|
<a-modal
|
2024-05-22 10:45:52 +08:00
|
|
|
class="scaleImage_modal generalModel"
|
2023-11-08 09:31:40 +08:00
|
|
|
v-model:visible="scaleImage"
|
|
|
|
|
:footer="null"
|
2024-01-10 14:09:44 +08:00
|
|
|
width="78%"
|
2023-11-08 09:31:40 +08:00
|
|
|
:maskClosable="false"
|
|
|
|
|
:centered="true"
|
|
|
|
|
:closable="false"
|
2023-12-15 11:10:32 +08:00
|
|
|
:mask="scaleImageMask"
|
2023-11-28 16:21:00 +08:00
|
|
|
:keyboard="false"
|
2023-11-08 09:31:40 +08:00
|
|
|
:destroyOnClose="true"
|
|
|
|
|
>
|
2024-05-22 10:45:52 +08:00
|
|
|
<div class="generalModel_btn">
|
|
|
|
|
<div class="generalModel_closeIcon left" @click.stop="cancelDsign()">
|
2023-11-08 09:31:40 +08:00
|
|
|
<i class="fi fi-rr-cross-small"></i>
|
|
|
|
|
</div>
|
2024-05-22 10:45:52 +08:00
|
|
|
<div class="generalModel_closeIcon" @click.stop="download()">
|
2023-11-08 09:31:40 +08:00
|
|
|
<i class="fi fi-rr-down-to-line"></i>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="scaleImage_content">
|
|
|
|
|
<img :src="scaleImageList[scaleImageIndex]?.imgUrl">
|
2024-04-26 15:27:01 +08:00
|
|
|
<div class="img_operate_block">
|
|
|
|
|
<i v-if="!scaleImageList[scaleImageIndex]?.like" class="fi fi-rr-heart operate_icon" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'like')"></i>
|
2024-05-16 09:41:16 +08:00
|
|
|
<i v-else class="fi fi-sr-heart operate_icon" :adminLike="!!scaleImageList[scaleImageIndex]?.like" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'noLike')"></i>
|
2024-04-26 15:27:01 +08:00
|
|
|
</div>
|
2024-04-30 11:45:19 +08:00
|
|
|
|
|
|
|
|
|
2023-11-08 09:31:40 +08:00
|
|
|
</div>
|
2024-04-30 11:45:19 +08:00
|
|
|
<div class="scaleImage_nav" @keydown="handleKeyDown">
|
2023-11-08 09:31:40 +08:00
|
|
|
<div class="nav_left">
|
|
|
|
|
<i class="fi fi-rr-arrow-small-left" @click="lastStep()"></i>
|
|
|
|
|
</div>
|
2024-01-02 13:04:57 +08:00
|
|
|
<div class="nav_list" v-mousewheel>
|
|
|
|
|
<div class="nav_centent">
|
|
|
|
|
<img v-for="item,index in scaleImageList" @click="setScaleImageIndex(index)" :class="{active:index == scaleImageIndex}" :src="item?.imgUrl" :key="item.id">
|
|
|
|
|
</div>
|
2023-11-08 09:31:40 +08:00
|
|
|
</div>
|
|
|
|
|
<div class="nav_right">
|
|
|
|
|
<i class="fi fi-rr-arrow-small-right" @click.stop="nextStep()"></i>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <div>
|
|
|
|
|
<a-button type="primary" @click="() => setVisible(true)">show image preview</a-button>
|
|
|
|
|
<a-image
|
|
|
|
|
:width="200"
|
|
|
|
|
:style="{ display: 'none' }"
|
|
|
|
|
:preview="{
|
|
|
|
|
visible,
|
|
|
|
|
onVisibleChange: setVisible,
|
|
|
|
|
}"
|
|
|
|
|
src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
|
|
|
|
|
/>
|
|
|
|
|
</div> -->
|
|
|
|
|
</a-modal>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
|
|
|
import { defineComponent, h, ref ,computed,reactive, nextTick} from "vue";
|
2023-12-15 15:23:34 +08:00
|
|
|
// import { Https } from "@/tool/https";
|
|
|
|
|
// import { getCookie } from "@/tool/cookie";
|
|
|
|
|
// import domTurnImg from '@/tool/domTurnImg'
|
2023-11-08 09:31:40 +08:00
|
|
|
import { downloadIamge } from "@/tool/util";
|
|
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
|
setup() {
|
|
|
|
|
let scaleImage: any = ref(false);
|
|
|
|
|
let loadingShow = ref(false)
|
|
|
|
|
const visible = ref<boolean>(false);
|
|
|
|
|
const setVisible = (value:any): void => {
|
|
|
|
|
visible.value = value;
|
|
|
|
|
};
|
|
|
|
|
let scaleImageList:any = ref([
|
|
|
|
|
|
|
|
|
|
])
|
2023-12-15 11:10:32 +08:00
|
|
|
let scaleImageMask:any = ref(false)
|
2023-11-08 09:31:40 +08:00
|
|
|
let scaleImageIndex:any = ref(0)
|
2024-04-26 15:27:01 +08:00
|
|
|
|
|
|
|
|
let robotAssits:any = ref(0)
|
2023-11-08 09:31:40 +08:00
|
|
|
return {
|
|
|
|
|
scaleImage,
|
|
|
|
|
loadingShow,
|
|
|
|
|
visible,
|
|
|
|
|
setVisible,
|
|
|
|
|
scaleImageList,
|
2023-12-15 11:10:32 +08:00
|
|
|
scaleImageMask,
|
2023-11-08 09:31:40 +08:00
|
|
|
scaleImageIndex,
|
2024-04-26 15:27:01 +08:00
|
|
|
|
|
|
|
|
robotAssits,
|
2023-11-08 09:31:40 +08:00
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
// moodTemplateId: "", //模板id
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
},
|
2024-01-02 13:04:57 +08:00
|
|
|
directives:{
|
|
|
|
|
mousewheel:{
|
|
|
|
|
mounted (el) {
|
|
|
|
|
el.addEventListener('wheel',(e:WheelEvent)=>{
|
|
|
|
|
let num = 0
|
|
|
|
|
if(e.deltaY > 0){
|
|
|
|
|
num = 25
|
|
|
|
|
}else{
|
|
|
|
|
num = -25
|
|
|
|
|
}
|
|
|
|
|
el.scrollBy(num, 0);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2023-11-08 09:31:40 +08:00
|
|
|
mounted() {
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2024-04-26 15:27:01 +08:00
|
|
|
init(list:any,index:any,dialogueIndex:any){
|
2023-11-08 09:31:40 +08:00
|
|
|
this.scaleImage = true
|
|
|
|
|
this.scaleImageList = list
|
2024-01-02 13:04:57 +08:00
|
|
|
this.scaleImageIndex = index
|
2024-04-26 15:27:01 +08:00
|
|
|
if(dialogueIndex)this.robotAssits = dialogueIndex
|
2023-11-08 09:31:40 +08:00
|
|
|
// let scaleImageList = this.store.state.UploadFilesModule.moodboard
|
2024-04-30 11:45:19 +08:00
|
|
|
document.addEventListener('keydown',this.setKeydown)
|
2023-11-08 09:31:40 +08:00
|
|
|
},
|
|
|
|
|
cancelDsign(){
|
|
|
|
|
this.scaleImage = false
|
|
|
|
|
this.scaleImageList = []
|
|
|
|
|
this.scaleImageIndex = 0
|
2024-04-30 11:45:19 +08:00
|
|
|
document.removeEventListener('keydown',this.setKeydown)
|
2023-11-08 09:31:40 +08:00
|
|
|
},
|
|
|
|
|
lastStep(){
|
|
|
|
|
|
|
|
|
|
if(this.scaleImageIndex <= 0){
|
|
|
|
|
}else{
|
|
|
|
|
this.scaleImageIndex -= 1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
nextStep(){
|
|
|
|
|
if(this.scaleImageIndex >= this.scaleImageList.length-1){
|
|
|
|
|
}else{
|
|
|
|
|
this.scaleImageIndex += 1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
download(){
|
|
|
|
|
downloadIamge(this.scaleImageList[this.scaleImageIndex].imgUrl)
|
|
|
|
|
},
|
|
|
|
|
setScaleImageIndex(index:any){
|
|
|
|
|
this.scaleImageIndex = index
|
|
|
|
|
},
|
2024-04-26 15:27:01 +08:00
|
|
|
LikeFile(item:any,str:string){
|
|
|
|
|
let parent:any = this.$parent
|
|
|
|
|
if(this.robotAssits){
|
|
|
|
|
parent.likeFile(item,this.scaleImageIndex,this.robotAssits)
|
|
|
|
|
}else{
|
|
|
|
|
parent.likeFile(item,str)
|
|
|
|
|
}
|
2024-04-30 11:45:19 +08:00
|
|
|
},
|
|
|
|
|
setKeydown(event:any){
|
|
|
|
|
if(event.keyCode == 37){
|
|
|
|
|
this.lastStep()
|
|
|
|
|
}else if(event.keyCode == 39){
|
|
|
|
|
this.nextStep()
|
|
|
|
|
}
|
2024-04-26 15:27:01 +08:00
|
|
|
}
|
2023-11-08 09:31:40 +08:00
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less">
|
|
|
|
|
.scaleImage_modal {
|
|
|
|
|
.ant-modal-body {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
|
|
|
|
.scaleImage_content{
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
2023-12-15 11:10:32 +08:00
|
|
|
height: 75%;
|
2024-04-26 15:27:01 +08:00
|
|
|
margin: 0 auto;
|
2024-01-10 14:09:44 +08:00
|
|
|
margin-top: calc(5rem*1.2);
|
2024-04-26 15:27:01 +08:00
|
|
|
position: relative;
|
2024-05-09 13:34:15 +08:00
|
|
|
max-width: 70rem;
|
2023-11-08 09:31:40 +08:00
|
|
|
img{
|
|
|
|
|
width: auto;
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
2024-04-26 15:27:01 +08:00
|
|
|
.img_operate_block{
|
|
|
|
|
width: 3.6rem;
|
|
|
|
|
height: 3.6rem;
|
|
|
|
|
background: rgba(0,0,0,0.6);
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
line-height: 3.6rem;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
margin-bottom: 0.4rem;
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 2rem;
|
|
|
|
|
top: 2rem;
|
|
|
|
|
opacity: 0;
|
2024-05-09 13:34:15 +08:00
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
2024-04-26 15:27:01 +08:00
|
|
|
.operate_icon{
|
|
|
|
|
font-size: 1.8rem;
|
|
|
|
|
color: #fff;
|
|
|
|
|
&.fi-sr-heart{
|
|
|
|
|
color: red;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
i{
|
2024-05-09 13:34:15 +08:00
|
|
|
display: flex;
|
2024-04-26 15:27:01 +08:00
|
|
|
font-size: 1.8rem;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-30 11:45:19 +08:00
|
|
|
|
2024-04-26 15:27:01 +08:00
|
|
|
}
|
|
|
|
|
.scaleImage_content:hover{
|
|
|
|
|
.img_operate_block{
|
|
|
|
|
opacity: 1;
|
|
|
|
|
}
|
2023-11-08 09:31:40 +08:00
|
|
|
}
|
|
|
|
|
.scaleImage_nav{
|
|
|
|
|
flex: 1;
|
2024-01-10 14:09:44 +08:00
|
|
|
margin: calc(2.5rem*1.2) calc(0rem*1.2);
|
2023-11-08 09:31:40 +08:00
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 100%;
|
|
|
|
|
.nav_left,.nav_right{
|
|
|
|
|
cursor: pointer;
|
2024-04-30 11:45:19 +08:00
|
|
|
top: 50%;
|
2023-11-08 09:31:40 +08:00
|
|
|
i{
|
2024-04-30 11:45:19 +08:00
|
|
|
display: flex;
|
|
|
|
|
font-size: 4rem;
|
2023-11-08 09:31:40 +08:00
|
|
|
transition: .3s all;
|
|
|
|
|
color: rgba(0, 0, 0, .5);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-30 11:45:19 +08:00
|
|
|
// .nav_left{
|
|
|
|
|
// left: 0;
|
|
|
|
|
// transform: translate(-200%,-50%);
|
|
|
|
|
// }
|
|
|
|
|
// .nav_right{
|
|
|
|
|
// right: 0;
|
|
|
|
|
// transform: translate(200%,-50%);
|
|
|
|
|
// }
|
2023-11-08 09:31:40 +08:00
|
|
|
.nav_left:hover,.nav_right:hover{
|
|
|
|
|
i{
|
|
|
|
|
color: rgba(0, 0, 0, 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.nav_list{
|
2024-01-10 14:09:44 +08:00
|
|
|
margin: 0 calc(2rem*1.2);
|
|
|
|
|
max-width: calc(60rem*1.2);
|
2024-01-02 13:04:57 +08:00
|
|
|
overflow-y: hidden;
|
|
|
|
|
&.nav_list::-webkit-scrollbar {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
.nav_centent{
|
|
|
|
|
width: auto;
|
|
|
|
|
display: flex;
|
|
|
|
|
}
|
2023-11-08 09:31:40 +08:00
|
|
|
img{
|
2024-01-10 14:09:44 +08:00
|
|
|
max-width: calc(5rem*1.2);
|
|
|
|
|
max-height: calc(5rem*1.2);
|
2023-11-08 09:31:40 +08:00
|
|
|
object-fit: cover;
|
|
|
|
|
object-position: 50%,50%;
|
2024-01-10 14:09:44 +08:00
|
|
|
margin-left: calc(1rem*1.2);
|
|
|
|
|
border-radius: calc(1rem*1.2);
|
2023-11-08 09:31:40 +08:00
|
|
|
overflow: hidden;
|
|
|
|
|
cursor: pointer;
|
2024-01-10 14:09:44 +08:00
|
|
|
padding: calc(.1rem*1.2);
|
2024-01-02 13:04:57 +08:00
|
|
|
flex-shrink: 0;
|
2023-11-08 09:31:40 +08:00
|
|
|
&.active{
|
2024-01-02 13:04:57 +08:00
|
|
|
border: 2px solid #aaaaaa;
|
2023-11-08 09:31:40 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
img:nth-child(1){
|
2024-01-10 14:09:44 +08:00
|
|
|
margin-left: calc(0rem*1.2);
|
2023-11-08 09:31:40 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|