library generate增加删除和拖拽移动位置功能 图片放大添加键盘事件调整按钮大小

This commit is contained in:
X1627315083
2024-04-30 11:45:19 +08:00
parent 09c9b13f0a
commit 05fa4318c3
10 changed files with 179 additions and 128 deletions

View File

@@ -256,28 +256,35 @@ li {
} }
.delete_like_file_block { .delete_like_file_block {
display: none; display: none;
width: 2.5rem; width: 3rem;
height: 2.5rem; height: 3rem;
background: rgba(0, 0, 0, 0.6); background: rgba(0, 0, 0, 0.6);
border-radius: 0.4rem; border-radius: calc(0.4rem*1.2);
position: absolute; position: absolute;
top: 0rem; top: calc(0.9rem*1.2);
right: 0rem; right: calc(0.9rem*1.2);
text-align: center; text-align: center;
line-height: 2.5rem; line-height: 3rem;
left: auto; left: auto;
cursor: pointer; }
.delete_like_file_block.left {
left: calc(0.9rem*1.2);
}
.delete_like_file_block.left1 {
left: calc(0.9rem*1.2);
top: 5rem;
}
.delete_like_file_block .icon-shanchu {
font-size: calc(1.6rem*1.2);
color: #fff;
} }
.delete_like_file_block i { .delete_like_file_block i {
font-size: 1.6rem; font-size: calc(1.4rem);
color: #fff; color: #fff;
} }
.delete_like_file_block i.fi-sr-heart { .delete_like_file_block i.fi-sr-heart {
color: red; color: red;
} }
.delete_like_file_block.left {
left: 0rem;
}
.progress_mark .mark_content .ant-progress .ant-progress-text .anticon-check { .progress_mark .mark_content .ant-progress .ant-progress-text .anticon-check {
color: #7a61dc; color: #7a61dc;
} }

View File

@@ -285,19 +285,29 @@ input:focus{
//爱心 //爱心
.delete_like_file_block{ .delete_like_file_block{
display: none; display: none;
width: 2.5rem; width: 3rem;
height: 2.5rem; height: 3rem;
background: rgba(0,0,0,0.6); background: rgba(0,0,0,0.6);
border-radius: 0.4rem; border-radius: calc(0.4rem*1.2);
position: absolute; position: absolute;
top: 0rem; top: calc(0.9rem*1.2);
right: 0rem; right: calc(0.9rem*1.2);
text-align: center; text-align: center;
line-height: 2.5rem; line-height: 3rem;
left: auto; left: auto;
cursor: pointer; &.left{
left: calc(.9rem*1.2);
}
&.left1{
left: calc(.9rem*1.2);
top: 5rem;
}
.icon-shanchu{
font-size: calc(1.6rem*1.2);
color: #fff;
}
i{ i{
font-size: 1.6rem; font-size: calc(1.4rem);
color: #fff; color: #fff;
&.fi-rr-heart{ &.fi-rr-heart{
@@ -306,9 +316,6 @@ input:focus{
color: red; color: red;
} }
} }
&.left{
left: 0rem;
}
} }
//design进度100 //design进度100

View File

@@ -414,6 +414,7 @@ export default defineComponent({
async (rv: any) => { async (rv: any) => {
rv.clothes.forEach((item:any)=>{ rv.clothes.forEach((item:any)=>{
let a let a
item.designType='Library'
if(item.layersObject[0].imageCategory.indexOf("back") == -1){ if(item.layersObject[0].imageCategory.indexOf("back") == -1){
a = item.layersObject[0] a = item.layersObject[0]
item.layersObject[0] = item.layersObject[1] item.layersObject[0] = item.layersObject[1]
@@ -421,6 +422,12 @@ export default defineComponent({
} }
if(item.printObject.prints == null){ if(item.printObject.prints == null){
item.printObject.prints = [{}] item.printObject.prints = [{}]
}else{
item.printObject.prints.forEach((element:any) => {
if(!element.designType){
element.designType = 'Library'
}
});
} }
}) })
this.currentIndex = 0 this.currentIndex = 0
@@ -931,6 +938,8 @@ export default defineComponent({
clothesDetail(clothes:any, index:number){ clothesDetail(clothes:any, index:number){
let designItemDetail = JSON.parse(JSON.stringify(this.store.state.DesignDetailModule.designItemDetail)) let designItemDetail = JSON.parse(JSON.stringify(this.store.state.DesignDetailModule.designItemDetail))
console.log(designItemDetail);
this.designOrder = true this.designOrder = true
this.current = designItemDetail.clothes[index] this.current = designItemDetail.clothes[index]
if(this.current.id && !designItemDetail.clothes[designItemDetail.clothes.length-1].id){ if(this.current.id && !designItemDetail.clothes[designItemDetail.clothes.length-1].id){
@@ -950,7 +959,7 @@ export default defineComponent({
color:`${this.current.color.r} ${this.current.color.g} ${this.current.color.b}`, color:`${this.current.color.r} ${this.current.color.g} ${this.current.color.b}`,
id:this.current.id?this.current.id:'', id:this.current.id?this.current.id:'',
changed:this.current.changed?this.current.changed:false, changed:this.current.changed?this.current.changed:false,
designType:this.current.designType?this.current.designType:'Library',
path:this.current.minIOPath?this.current.minIOPath:'', path:this.current.minIOPath?this.current.minIOPath:'',
offset:this.current.layersObject?.[1]?.offset?this.current.layersObject[1].offset:[0,0], offset:this.current.layersObject?.[1]?.offset?this.current.layersObject[1].offset:[0,0],
priority:this.current.priority, priority:this.current.priority,

View File

@@ -311,7 +311,7 @@ export default defineComponent({
let color = `${this.$parent.selectColor.rgba.r} ${this.$parent.selectColor.rgba.g} ${this.$parent.selectColor.rgba.b}` let color = `${this.$parent.selectColor.rgba.r} ${this.$parent.selectColor.rgba.g} ${this.$parent.selectColor.rgba.b}`
data.designSingleItemDTOList[index].color = color data.designSingleItemDTOList[index].color = color
} }
data.designSingleItemDTOList[index].designType = this.sketchImg.designType?this.sketchImg.designType:"Library" data.designSingleItemDTOList[index].designType = this.sketchImg.designType?this.sketchImg.designType:this.current.designType
data.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone data.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone
this.loadingShow = true this.loadingShow = true
Https.axiosPost(Https.httpUrls.designSingle, data).then( Https.axiosPost(Https.httpUrls.designSingle, data).then(
@@ -321,7 +321,7 @@ export default defineComponent({
if(item.type != 'body'){ if(item.type != 'body'){
if(item.id == designItemDetail.clothes[index].id || item.id == this.sketchImg.id_){ if(item.id == designItemDetail.clothes[index].id || item.id == this.sketchImg.id_){
designItemDetail.clothes[index].color = item.color designItemDetail.clothes[index].color = item.color
designItemDetail.clothes[index].designType = this.sketchImg.designType?this.sketchImg.designType:'Library' designItemDetail.clothes[index].designType = item.designType
designItemDetail.clothes[index].layersObject = item.layersObject designItemDetail.clothes[index].layersObject = item.layersObject
designItemDetail.clothes[index].minIOPath = item.minIOPath designItemDetail.clothes[index].minIOPath = item.minIOPath
designItemDetail.clothes[index].path = item.path designItemDetail.clothes[index].path = item.path

View File

@@ -299,7 +299,7 @@ export default defineComponent({
w = (e.x - this.frontBack.front[this.imgDomIndex].centers.left) w = (e.x - this.frontBack.front[this.imgDomIndex].centers.left)
h = (e.x - this.frontBack.front[this.imgDomIndex].centers.left)*num h = (e.x - this.frontBack.front[this.imgDomIndex].centers.left)*num
width = w+'px' width = w+'px'
height = w*num+'px' // height = w*num+'px'
}else if(this.direction == 'top'){ }else if(this.direction == 'top'){
num = width/height num = width/height
this.frontBack.front[this.imgDomIndex].style.top = 'auto' this.frontBack.front[this.imgDomIndex].style.top = 'auto'
@@ -309,19 +309,19 @@ export default defineComponent({
h = (this.frontBack.front[this.imgDomIndex].centers.top - e.y) h = (this.frontBack.front[this.imgDomIndex].centers.top - e.y)
height = h+'px' height = h+'px'
width = h*num+'px' // width = h*num+'px'
}else if(this.direction == 'bottom'){ }else if(this.direction == 'bottom'){
num = width/height num = width/height
h = (e.y - this.frontBack.front[this.imgDomIndex].centers.top) h = (e.y - this.frontBack.front[this.imgDomIndex].centers.top)
height = h+'px' height = h+'px'
width = h*num+'px' // width = h*num+'px'
}else if(this.direction == 'left'){ }else if(this.direction == 'left'){
this.frontBack.front[this.imgDomIndex].style.left = 'auto' this.frontBack.front[this.imgDomIndex].style.left = 'auto'
this.frontBack.front[this.imgDomIndex].style.right = parentNode.offsetWidth -imgDomWH.width - this.imgDom.offsetLeft+'px' this.frontBack.front[this.imgDomIndex].style.right = parentNode.offsetWidth -imgDomWH.width - this.imgDom.offsetLeft+'px'
w = (this.frontBack.front[this.imgDomIndex].centers.left - e.x) w = (this.frontBack.front[this.imgDomIndex].centers.left - e.x)
width = w+'px' width = w+'px'
height = w*num+'px' // height = w*num+'px'
} }
//判断尺寸是否到边 //判断尺寸是否到边
this.frontBack.front[this.imgDomIndex].style.width = width this.frontBack.front[this.imgDomIndex].style.width = width

View File

@@ -137,7 +137,7 @@
<!-- <img v-show="item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt=""> --> <!-- <img v-show="item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt=""> -->
<img v-lazy="item.imgUrl" @click.stop="generageAdd(item)"> <img v-lazy="item.imgUrl" @click.stop="generageAdd(item)">
<div <div
class="delete_like_file_block" class="delete_like_file_block left1"
:class="[driver__.driver?'hideEvents':'']" :class="[driver__.driver?'hideEvents':'']"
> >
<i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i> <i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i>
@@ -146,7 +146,9 @@
<div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']"> <div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i> <i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
</div> </div>
<div class="delete_like_file_block" :title="t('LibraryPage.Delete')" @click.stop="deleteGenerate(index)">
<span class="icon iconfont icon-shanchu operate_icon"></span>
</div>
</div> </div>
</div> </div>
@@ -160,8 +162,8 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue"; import { LoadingOutlined } from "@ant-design/icons-vue";
import { message, Upload } from "ant-design-vue"; import { message, Upload, Modal } from "ant-design-vue";
import { defineComponent, computed, h, ref, nextTick, inject } from "vue"; import { defineComponent, computed, createVNode, h, ref, nextTick, inject } from "vue";
import { Https } from "@/tool/https"; import { Https } from "@/tool/https";
import { useStore } from "vuex"; import { useStore } from "vuex";
import GO from "@/tool/GO"; import GO from "@/tool/GO";
@@ -169,6 +171,7 @@ import { getCookie } from "@/tool/cookie";
import { getUploadUrl } from "@/tool/util"; import { getUploadUrl } from "@/tool/util";
// import { forEach } from "jszip"; // import { forEach } from "jszip";
import scaleImage from "@/component/HomePage/scaleImage.vue"; import scaleImage from "@/component/HomePage/scaleImage.vue";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { openGuide,driverObj__,driverIndex__ } from "@/tool/guide"; import { openGuide,driverObj__,driverIndex__ } from "@/tool/guide";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
export default defineComponent({ export default defineComponent({
@@ -784,7 +787,21 @@ export default defineComponent({
).catch(res=>{ ).catch(res=>{
}); });
} }
},
deleteGenerate(index:any){
if(this.isGenerate)return
let _this = this
Modal.confirm({
title: this.t('LibraryPage.jsContent1'),
icon: createVNode(ExclamationCircleOutlined),
okText: 'Yes',
cancelText: 'No',
mask:false,
centered:true,
onOk() {
_this.fileList.splice(index,1)
}
});
}, },
scaleImage(index:any){ scaleImage(index:any){
let scaleImage:any = this.$refs.scaleImage let scaleImage:any = this.$refs.scaleImage
@@ -914,24 +931,6 @@ export default defineComponent({
width: calc(10rem*1.2); width: calc(10rem*1.2);
height: calc(10rem*1.2); height: calc(10rem*1.2);
} }
.delete_like_file_block{
top: calc(0.9rem*1.2);
right: calc(0.9rem*1.2);
&.left{
left: calc(.9rem*1.2);
}
i{
font-size: calc(1.6rem*1.2);
color: #fff;
&.fi-rr-heart{
}
&.fi-sr-heart{
color: red;
}
}
}
&:hover .delete_like_file_block{ &:hover .delete_like_file_block{
display: block; display: block;
} }

View File

@@ -132,7 +132,7 @@
<!-- <img v-show="item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt=""> --> <!-- <img v-show="item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt=""> -->
<img v-lazy="item.imgUrl" @click.stop="generageAdd(item)"> <img v-lazy="item.imgUrl" @click.stop="generageAdd(item)">
<div <div
class="delete_like_file_block" class="delete_like_file_block left1"
:class="[driver__.driver?'hideEvents':'']" :class="[driver__.driver?'hideEvents':'']"
> >
<i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i> <i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i>
@@ -141,6 +141,9 @@
<div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']"> <div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i> <i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
</div> </div>
<div class="delete_like_file_block" :title="t('LibraryPage.Delete')" @click.stop="deleteGenerate(index)">
<span class="icon iconfont icon-shanchu operate_icon"></span>
</div>
<div class="pin_block"> <div class="pin_block">
<a-checkbox v-model:checked="item.pin">{{ $t('PrintboardUpload.PIN') }}</a-checkbox> <a-checkbox v-model:checked="item.pin">{{ $t('PrintboardUpload.PIN') }}</a-checkbox>
</div> </div>
@@ -160,13 +163,13 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent,h,ref,computed,inject, nextTick } from 'vue' import { defineComponent,h,ref,computed,inject,createVNode, nextTick } from 'vue'
import { LoadingOutlined } from '@ant-design/icons-vue'; import { LoadingOutlined } from '@ant-design/icons-vue';
import {getCookie} from '@/tool/cookie' import {getCookie} from '@/tool/cookie'
import {getUploadUrl} from '@/tool/util' import {getUploadUrl} from '@/tool/util'
import {useStore} from 'vuex' import {useStore} from 'vuex'
import { Https } from "@/tool/https"; import { Https } from "@/tool/https";
import { message,Upload} from 'ant-design-vue'; import { Modal,message,Upload} from 'ant-design-vue';
import Cropper from '@/component/HomePage/Cropper.vue' import Cropper from '@/component/HomePage/Cropper.vue'
import Material from '@/component/HomePage/Material.vue' import Material from '@/component/HomePage/Material.vue'
import Generate from "@/component/HomePage/Generate.vue"; import Generate from "@/component/HomePage/Generate.vue";
@@ -174,6 +177,7 @@ import GO from "@/tool/GO";
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { openGuide,driverObj__ } from "@/tool/guide"; import { openGuide,driverObj__ } from "@/tool/guide";
import scaleImage from "@/component/HomePage/scaleImage.vue"; import scaleImage from "@/component/HomePage/scaleImage.vue";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import axios from 'axios' import axios from 'axios'
import { overflow } from 'html2canvas/dist/types/css/property-descriptors/overflow'; import { overflow } from 'html2canvas/dist/types/css/property-descriptors/overflow';
@@ -467,7 +471,21 @@ export default defineComponent({
} }
}, },
deleteGenerate(index:any){
if(this.isGenerate)return
let _this = this
Modal.confirm({
title: this.t('LibraryPage.jsContent1'),
icon: createVNode(ExclamationCircleOutlined),
okText: 'Yes',
cancelText: 'No',
mask:false,
centered:true,
onOk() {
_this.generateList.splice(index,1)
}
});
},
customRequest(data:any){ customRequest(data:any){
let new_data = { let new_data = {
@@ -1110,36 +1128,6 @@ export default defineComponent({
} }
} }
} }
.delete_like_file_block{
display: none;
width: calc(3.2rem*1.2);
height: calc(3.2rem*1.2);
background: rgba(0,0,0,0.6);
border-radius: calc(0.4rem*1.2);
position: absolute;
top: calc(0.9rem*1.2);
right: calc(0.9rem*1.2);
text-align: center;
line-height: calc(3.2rem*1.2);
left: auto;
&.left{
left: calc(.9rem*1.2);
}
.icon-shanchu{
font-size: calc(1.6rem*1.2);
color: #fff;
}
i{
font-size: calc(1.6rem*1.2);
color: #fff;
&.fi-rr-heart{
}
&.fi-sr-heart{
color: red;
}
}
}
.modal_right{ .modal_right{
flex: 1; flex: 1;

View File

@@ -163,7 +163,7 @@
<img v-lazy="item.imgUrl" @click.stop="generageAdd(item)"> <img v-lazy="item.imgUrl" @click.stop="generageAdd(item)">
<sketchCategory :disignTypeList="sketchCatecoryList" :generateList="generateList" :item="item" :driver__="driver__.driver" :driverClass="{class1: 'Guide_1_13',class2:'Guide_1_13_1'}"></sketchCategory> <sketchCategory :disignTypeList="sketchCatecoryList" :generateList="generateList" :item="item" :driver__="driver__.driver" :driverClass="{class1: 'Guide_1_13',class2:'Guide_1_13_1'}"></sketchCategory>
<div <div
class="delete_like_file_block" class="delete_like_file_block left1"
> >
<i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i> <i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i>
<i v-else class="fi fi-sr-heart" @click.stop="likeFile(item,'noLike')"></i> <i v-else class="fi fi-sr-heart" @click.stop="likeFile(item,'noLike')"></i>
@@ -171,6 +171,9 @@
<div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']"> <div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i> <i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
</div> </div>
<div class="delete_like_file_block" :title="t('LibraryPage.Delete')" @click.stop="deleteGenerate(index)">
<span class="icon iconfont icon-shanchu operate_icon"></span>
</div>
<div class="pin_block"> <div class="pin_block">
<a-checkbox v-model:checked="item.pin">{{ $t('SketchboardUpload.PIN') }}</a-checkbox> <a-checkbox v-model:checked="item.pin">{{ $t('SketchboardUpload.PIN') }}</a-checkbox>
</div> </div>
@@ -193,19 +196,20 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, h, ref ,computed,inject, nextTick } from "vue"; import { defineComponent, h, ref, createVNode,computed,inject, nextTick } from "vue";
import { LoadingOutlined } from "@ant-design/icons-vue"; import { LoadingOutlined } from "@ant-design/icons-vue";
import { getCookie } from "@/tool/cookie"; import { getCookie } from "@/tool/cookie";
import { getUploadUrl } from "@/tool/util"; import { getUploadUrl } from "@/tool/util";
import GO from "@/tool/GO"; import GO from "@/tool/GO";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { message, Upload } from "ant-design-vue"; import { message, Upload, Modal } from "ant-design-vue";
import Material from "@/component/HomePage/Material.vue"; import Material from "@/component/HomePage/Material.vue";
import Generate from "@/component/HomePage/Generate.vue"; import Generate from "@/component/HomePage/Generate.vue";
import scaleImage from "@/component/HomePage/scaleImage.vue"; import scaleImage from "@/component/HomePage/scaleImage.vue";
import { Https } from "@/tool/https"; import { Https } from "@/tool/https";
import { openGuide,driverObj__ } from "@/tool/guide"; import { openGuide,driverObj__ } from "@/tool/guide";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import sketchCategory from "@/component/HomePage/sketchCategory.vue"; import sketchCategory from "@/component/HomePage/sketchCategory.vue";
export default defineComponent({ export default defineComponent({
@@ -567,6 +571,21 @@ export default defineComponent({
}); });
} }
}, },
deleteGenerate(index:any){
if(this.isGenerate)return
let _this = this
Modal.confirm({
title: this.t('LibraryPage.jsContent1'),
icon: createVNode(ExclamationCircleOutlined),
okText: 'Yes',
cancelText: 'No',
mask:false,
centered:true,
onOk() {
_this.generateList.splice(index,1)
}
});
},
recollection() { recollection() {
this.isUseGenerate = false this.isUseGenerate = false
this.useGenerate = { this.useGenerate = {
@@ -980,37 +999,6 @@ export default defineComponent({
} }
} }
} }
.delete_like_file_block{
display: none;
width: calc(3.2rem*1.2);
height: calc(3.2rem*1.2);
background: rgba(0,0,0,0.6);
border-radius: calc(0.4rem*1.2);
position: absolute;
top: calc(0.9rem*1.2);
right: calc(0.9rem*1.2);
text-align: center;
line-height: calc(3.2rem*1.2);
left: auto;
&.left{
left: calc(.9rem*1.2);
}
.icon-shanchu{
font-size: calc(1.6rem*1.2);
color: #fff;
}
i{
font-size: calc(1.6rem*1.2);
color: #fff;
&.fi-rr-heart{
}
&.fi-sr-heart{
color: red;
}
}
}
.modal_right{ .modal_right{
flex: 1; flex: 1;

View File

@@ -25,8 +25,10 @@
<i v-if="!scaleImageList[scaleImageIndex]?.like" class="fi fi-rr-heart operate_icon" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'like')"></i> <i v-if="!scaleImageList[scaleImageIndex]?.like" class="fi fi-rr-heart operate_icon" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'like')"></i>
<i v-else class="fi fi-sr-heart operate_icon" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'noLike')"></i> <i v-else class="fi fi-sr-heart operate_icon" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'noLike')"></i>
</div> </div>
</div> </div>
<div class="scaleImage_nav"> <div class="scaleImage_nav" @keydown="handleKeyDown">
<div class="nav_left"> <div class="nav_left">
<i class="fi fi-rr-arrow-small-left" @click="lastStep()"></i> <i class="fi fi-rr-arrow-small-left" @click="lastStep()"></i>
</div> </div>
@@ -118,11 +120,13 @@ export default defineComponent({
this.scaleImageIndex = index this.scaleImageIndex = index
if(dialogueIndex)this.robotAssits = dialogueIndex if(dialogueIndex)this.robotAssits = dialogueIndex
// let scaleImageList = this.store.state.UploadFilesModule.moodboard // let scaleImageList = this.store.state.UploadFilesModule.moodboard
document.addEventListener('keydown',this.setKeydown)
}, },
cancelDsign(){ cancelDsign(){
this.scaleImage = false this.scaleImage = false
this.scaleImageList = [] this.scaleImageList = []
this.scaleImageIndex = 0 this.scaleImageIndex = 0
document.removeEventListener('keydown',this.setKeydown)
}, },
lastStep(){ lastStep(){
@@ -150,7 +154,13 @@ export default defineComponent({
}else{ }else{
parent.likeFile(item,str) parent.likeFile(item,str)
} }
},
setKeydown(event:any){
if(event.keyCode == 37){
this.lastStep()
}else if(event.keyCode == 39){
this.nextStep()
}
} }
}, },
}); });
@@ -177,6 +187,9 @@ export default defineComponent({
.ant-modal-btn{ .ant-modal-btn{
} }
.fi-rr-down-to-line,.fi-rr-arrow-small-right,.fi-rr-arrow-small-left{
font-size: 2rem;
}
.scaleImage_btn { .scaleImage_btn {
.collection_closeIcon{ .collection_closeIcon{
position: absolute; position: absolute;
@@ -219,7 +232,6 @@ export default defineComponent({
margin-top: calc(5rem*1.2); margin-top: calc(5rem*1.2);
position: relative; position: relative;
max-width: calc(50rem*1.2); max-width: calc(50rem*1.2);
img{ img{
width: auto; width: auto;
height: 100%; height: 100%;
@@ -249,6 +261,7 @@ export default defineComponent({
color: #fff; color: #fff;
} }
} }
} }
.scaleImage_content:hover{ .scaleImage_content:hover{
.img_operate_block{ .img_operate_block{
@@ -264,11 +277,22 @@ export default defineComponent({
width: 100%; width: 100%;
.nav_left,.nav_right{ .nav_left,.nav_right{
cursor: pointer; cursor: pointer;
top: 50%;
i{ i{
display: flex;
font-size: 4rem;
transition: .3s all; transition: .3s all;
color: rgba(0, 0, 0, .5); color: rgba(0, 0, 0, .5);
} }
} }
// .nav_left{
// left: 0;
// transform: translate(-200%,-50%);
// }
// .nav_right{
// right: 0;
// transform: translate(200%,-50%);
// }
.nav_left:hover,.nav_right:hover{ .nav_left:hover,.nav_right:hover{
i{ i{
color: rgba(0, 0, 0, 1); color: rgba(0, 0, 0, 1);

View File

@@ -287,21 +287,25 @@
</div> </div>
<div class="content_body_table scroll_style"> <div class="content_body_table scroll_style">
<div class="content_img_item" v-for="(img,index) in generateList[selectCode]" :key="img.id" :class="[img.status != 'Success'?'hideEvents':'']" v-show="img.status == 'Success'"> <div class="content_img_item" v-for="(img,index) in generateList[selectCode]" :key="img.id" :class="[img.status != 'Success'?'hideEvents':'']" v-show="img.status == 'Success'"
:draggable="!isGenerate[selectCode]" @dragstart="startDrag($event,index)" @dragover.prevent @drop="drop($event,index)">
<div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']"> <div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']">
<!-- <img v-show="img.status != 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" src="@/assets/images/homePage/loading.gif" alt=""> --> <!-- <img v-show="img.status != 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" src="@/assets/images/homePage/loading.gif" alt=""> -->
<img :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" v-lazy="img.imgUrl"> <img :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" v-lazy="img.imgUrl">
<div class="img_item_hover"> <div class="img_item_hover">
<div class="img_operate_content"> <div class="img_operate_content">
<div class="img_operate_block"> <div class="img_operate_block" :title="t('LibraryPage.Delete')" @click.stop="deleteGenerate(index)">
<i v-if="!img.like" class="fi fi-rr-heart operate_icon" @click.stop="likeFile(img,'like')"></i> <span class="icon iconfont icon-shanchu operate_icon"></span>
<i v-else class="fi fi-sr-heart operate_icon" @click.stop="likeFile(img,'noLike')"></i>
</div> </div>
</div> </div>
<div class="img_operate_content left" :class="[driver__.driver?'hideEvents':'']"> <div class="img_operate_content left" :class="[driver__.driver?'hideEvents':'']">
<div class="img_operate_block"> <div class="img_operate_block">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i> <i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
</div>
<div class="img_operate_block">
<i v-if="!img.like" class="fi fi-rr-heart operate_icon" @click.stop="likeFile(img,'like')"></i>
<i v-else class="fi fi-sr-heart operate_icon" @click.stop="likeFile(img,'noLike')"></i>
</div> </div>
</div> </div>
</div> </div>
@@ -474,6 +478,7 @@ export default defineComponent({
Printboard:'', Printboard:'',
Models:'' Models:''
}) })
let dragIdx:any=ref(0)
let getLibraryListInputTime:any = ref() let getLibraryListInputTime:any = ref()
const options:any = ref([ const options:any = ref([
]); ]);
@@ -522,6 +527,7 @@ export default defineComponent({
isGenerate, isGenerate,
remGenerate, remGenerate,
remGenerateTime, remGenerateTime,
dragIdx,
getLibraryListInputTime, getLibraryListInputTime,
props, props,
options, options,
@@ -785,7 +791,30 @@ export default defineComponent({
} }
}); });
}, },
deleteGenerate(index:any){
if(this.isGenerate[this.selectCode])return
let _this = this
Modal.confirm({
title: this.t('LibraryPage.jsContent1'),
icon: createVNode(ExclamationCircleOutlined),
okText: 'Yes',
cancelText: 'No',
mask:false,
centered:true,
onOk() {
_this.generateList[_this.selectCode].splice(index,1)
}
});
},
startDrag(event:any, index:any) {
this.dragIdx = index
},
drop(event:any, index:any) {
let _teams = this.generateList[this.selectCode] //将hotteams存起来
let _dragitem = _teams[this.dragIdx] //将被拖拽的那条数据存起来
_teams.splice(this.dragIdx, 1) //删除被拖拽的那条数据
_teams.splice(index, 0, _dragitem)
},
//批量删除图片 //批量删除图片
deleteBatchPic(){ deleteBatchPic(){
if(!this.selectImgList.length){ if(!this.selectImgList.length){