2023-07-26 15:54:34 +08:00
< template >
2023-12-01 15:02:37 +08:00
< div class = "generate" >
2024-09-25 11:07:49 +08:00
< div v-if = "(type_.type2 == 'Printboard' && scene.value == 'Pattern')" class="generate_checkbox" >
2024-08-14 16:02:55 +08:00
< generalMenu :dataList = "printModelList" @setprintModel ="setprintModel" :item = "printModel" :driver__ = "driver__.driver" : driverClass = "{class1: 'Guide_1_2_4'}" > < / generalMenu >
2024-05-28 16:00:26 +08:00
<!-- < generalMenu :dataList = "sceneList" @setprintModel ="setSceneList" :item = "scene" > < / generalMenu > -- >
<!-- < div v-if = "type_.type2 == 'Printboard'" class="printModel" >
2023-12-08 16:27:35 +08:00
< div @click.stop ="PrintModel" class = "Guide_1_2_4" :class = "[driver__.driver?'showEvents':'']" > { { printModel . name } } < / div >
< ul v-show = "printModel.optype" class="Guide_1_2_5" :class="[driver__.driver?'showEvents':'']" >
2023-10-30 17:26:36 +08:00
< li class = "printModel_item" @click ="setprintModel(1)" > {{ $ t ( ' Generate.Model1 ' ) }} < / li >
< li class = "printModel_item" @click ="setprintModel(2)" > {{ $ t ( ' Generate.Model2 ' ) }} < / li >
2023-12-18 14:36:20 +08:00
< li class = "printModel_item" @click ="setprintModel(3)" > {{ $ t ( ' Generate.Model3 ' ) }} < / li >
2023-09-25 10:09:00 +08:00
< / ul >
2024-05-28 16:00:26 +08:00
< / div > -- >
2023-08-21 10:55:39 +08:00
< / div >
2024-05-28 16:00:26 +08:00
< div class = "input_border" >
2024-08-14 16:02:55 +08:00
< div class = "input_box Guide_1_5" : class = "[inputShow?'active':'',type_.type2 =='Sketchboard'?'Guide_1_9_2':'']" >
2024-09-25 11:07:49 +08:00
< div class = "input_box_btnBox" v-if = "scene?.value != 'extract'" >
2024-05-28 16:00:26 +08:00
< div class = "upload_item" >
< div
class = "upload_file_item Guide_1_2_7"
v - for = "(file, index) in sketchboardList"
: key = "file"
2024-06-01 10:02:21 +08:00
: class = "[driver__.driver?'showEvents':'']"
2024-05-28 16:00:26 +08:00
>
< div
class = "upload_file_item_content"
v - show = "file?.status === 'uploading'"
>
2024-06-01 10:02:21 +08:00
< a-spin size = "small" :indicator = "indicator" tip = "Uploading..." / >
2024-05-28 16:00:26 +08:00
< / div >
< div
class = "upload_file_item_content"
v - show = "file?.status === 'done' || file?.base64"
>
< img :src = "file?.imgUrl" class = "upload_img" / >
< div class = "delete_like_file_block" :class = "[driver__.driver?'hideEvents':'']" >
< span class = "icon iconfont icon-shanchu operate_icon" @click.stop ="deleteFile(index)" > < / span >
< / div >
< / div >
< / div >
< / div >
< input
class = "search_input"
@ input = "ifMaximumLength"
2024-07-02 14:15:11 +08:00
: placeholder = "(scene?.value == 'Slogan' && type_.type2 == 'Printboard')?isSloganHint:$t('Generate.inputContent1')"
2024-05-28 16:00:26 +08:00
: maxlength = 'inputShow?0:9999'
v - model = "searchPictureName"
@ keydown . enter = "getgenerate()"
@ click = "inputFocus()"
/ >
2024-08-14 16:02:55 +08:00
< i class = "fi fi-br-upload" : class = "{ Guide_1_2_6:type_.type2 == 'Printboard'}" :title = "$t('Generate.uploadTitle')" v-show = "!isTextarea && upload.level1Type !== 'Moodboard' && scene?.value != 'Slogan' && scene?.value != 'Logo'" >
2024-05-28 16:00:26 +08:00
< a-upload
class = "search_upImg"
: capture = "null"
: action = "uploadUrl + '/api/element/upload'"
list - type = "picture-card"
: data = " {
... upload ,
} "
: maxCount = '1'
: headers = "{ Authorization: token }"
v - model : file - list = "sketchboardList"
: before - upload = "beforeUpload"
accept = ".jpg,.png,.jpeg,.bmp"
@ change = "(file) => fileUploadChange(file)"
>
< / a-upload >
< / i >
2024-07-03 17:32:06 +08:00
< i v-show = "scene?.value == 'Slogan'" :title="$t('Generate.sloganTitle')" @click.stop="setSlogan" class="fi fi-rr-poll-h" > < / i >
2024-05-28 16:00:26 +08:00
< i v-show = "!isTextarea" class="fi fi-br-expand" @click.stop="setTextareaShow" > < / i >
< i v-show = "isTextarea" class="fi fi-bs-compress" @click.stop="setTextareaShow" > < / i >
< / div >
2024-09-25 11:07:49 +08:00
< div class = "input_box_btnBox" v-else >
< div class = "upload_item" >
< div
class = "upload_file_item"
v - for = "(file, index) in sketchboardList"
: key = "file"
: class = "[driver__.driver?'showEvents':'']"
>
< div
class = "upload_file_item_content"
v - show = "file?.status === 'uploading'"
>
< a-spin size = "small" :indicator = "indicator" tip = "Uploading..." / >
< / div >
< div
class = "upload_file_item_content"
v - show = "file?.status === 'done' || file?.base64"
>
< img :src = "file?.imgUrl" class = "upload_img" / >
< div class = "delete_like_file_block" :class = "[driver__.driver?'hideEvents':'']" >
< span class = "icon iconfont icon-shanchu operate_icon" @click.stop ="deleteFile(index)" > < / span >
< / div >
< / div >
< / div >
< / div >
< i class = "fi fi-br-upload" style = "margin-left: 2rem;" v-show = "sketchboardList.length == 0" :title="$t('Generate.uploadproduct')" >
< a-upload
class = "search_upImg"
: capture = "null"
: action = "uploadUrl + '/api/element/upload'"
list - type = "picture-card"
: data = " {
... upload ,
} "
: maxCount = '1'
: headers = "{ Authorization: token }"
v - model : file - list = "sketchboardList"
: before - upload = "beforeUpload"
accept = ".jpg,.png,.jpeg,.bmp"
@ change = "(file) => fileUploadChange(file)"
>
< / a-upload >
< / i >
< div :title = "$t('Generate.style')" >
2024-09-27 16:31:33 +08:00
< generalMenu :dataList = "printModelList" : isCanvas = "type_.type2 == 'Sketchboard'" @setprintModel ="setprintModel" :item = "printModel" > < / generalMenu >
2024-09-25 11:07:49 +08:00
< / div >
< / div >
2024-05-20 13:07:42 +08:00
< textarea
v - show = "isTextarea"
class = "search_textarea "
@ input = "ifMaximumLength"
: maxlength = 'inputShow?0:9999'
@ keydown . enter = "getgenerate()"
2024-06-17 15:15:13 +08:00
@ click . stop = ""
2024-05-20 13:07:42 +08:00
v - model = "searchPictureName"
> < / textarea >
2024-08-14 16:02:55 +08:00
< div v-show = "!isGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" @click.stop="getgenerate" >
2024-04-26 15:27:01 +08:00
{ { $t ( 'Generate.Generate' ) } }
< / div >
2024-08-16 15:40:25 +08:00
< div v-show = "isGenerate && !remGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" @click="getgenerate" >
2024-04-26 15:27:01 +08:00
< i class = "fi fi-br-loading" > < / i >
< / div >
2024-08-16 15:40:25 +08:00
< div v-show = "remGenerate" @click="removeGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" >
2024-04-29 15:12:27 +08:00
{ { $t ( 'Generate.Close' ) } }
< / div >
2024-06-01 10:02:21 +08:00
< span class = "inputShowText" ref = "inputShowText" > < / span >
2024-04-03 17:39:44 +08:00
< / div >
2024-06-20 10:36:45 +08:00
< div class = "search_keyword" v-if = "workspace?.allKeywordsByStyle" v-show="isInputFocus" @click.stop="" >
2024-08-14 16:02:55 +08:00
< div class = "search_keyword_center" >
2024-05-22 10:45:52 +08:00
< div class = "search_keyword_center_left" >
2024-06-20 10:36:45 +08:00
< div v-if = "type_.type2 == 'Printboard'" v-for="item in styleRecommend" @click.stop="cliSetKeyword(item)" class="search_keyword_center_item" > {{ item }} < / div >
< div v-for = "item in workspace?.allKeywordsByStyle?.[type_.type2]" @click.stop="cliSetKeyword(item)" class="search_keyword_center_item" > {{ item }} < / div >
2024-05-22 10:45:52 +08:00
< / div >
< / div >
< / div >
2023-08-21 10:55:39 +08:00
< / div >
2024-08-14 16:02:55 +08:00
< div class = "generage_img Guide_1_6" : class = "{Guide_1_13_2:type_.type2 == 'Sketchboard',Guide_1_2_9:type_.type2 == 'Printboard'}" :style = "[isGenerate?'overflow:hidden':'']" >
2023-08-21 10:55:39 +08:00
< div
class = "generage_img_item"
v - for = "(item, index) in fileList"
: key = "item.imgUrl"
@ click = "generageAdd(item)"
2024-04-26 15:27:01 +08:00
: class = "[item.status != 'Success'?'hideEvents':'',item?.checked?'active':'']"
2023-08-21 10:55:39 +08:00
>
2024-04-29 15:12:27 +08:00
< img v-lazy = "item.imgUrl" @click.stop="generageAdd(item)" >
2024-08-16 15:40:25 +08:00
< sketchCategory v-if = "type_.type2 == 'Sketchboard' || type_.type2 == 'Printboard'" :isSpread="type_.type2 == 'Printboard'" :disignTypeList="sketchCatecoryList" :generateList="fileList" :item="item" :driver__="driver__.driver" :driverClass="{'class1': type_.type2 == 'Sketchboard'?'Guide_1_13':'','class2':type_.type2 == 'Sketchboard'?'Guide_1_13_1':''}" > < / sketchCategory >
2023-09-12 10:11:27 +08:00
< div
2024-04-30 11:45:19 +08:00
class = "delete_like_file_block left1"
2024-05-16 09:41:16 +08:00
: class = "[driver__.driver?'hideEvents':'',]"
2023-09-12 10:11:27 +08:00
>
2023-09-25 10:09:00 +08:00
< i v-if = "!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')" > < / i >
2024-05-16 09:41:16 +08:00
< i v-else class = "fi fi-sr-heart" :adminLike = "!!item.like" @click.stop ="likeFile(item,'noLike')" > < / i >
2023-09-12 10:11:27 +08:00
< / div >
2023-12-08 16:27:35 +08:00
< div class = "delete_like_file_block left" :class = "[driver__.driver?'hideEvents':'']" >
2024-01-02 13:04:57 +08:00
< i class = "fi fi-bs-expand-arrows-alt" @click.stop ="scaleImage(index)" > < / i >
2023-11-08 09:31:40 +08:00
< / div >
2024-04-30 11:45:19 +08:00
< div class = "delete_like_file_block" :title = "t('LibraryPage.Delete')" @click.stop ="deleteGenerate(index)" >
< span class = "icon iconfont icon-shanchu operate_icon" > < / span >
< / div >
2023-08-21 10:55:39 +08:00
< / div >
2024-09-25 11:07:49 +08:00
< div class = "mark_loading" v-show = "loadingShow" >
< a-spin size = "large" / >
< / div >
2023-08-21 10:55:39 +08:00
< / div >
2024-09-26 15:43:27 +08:00
< scaleImage ref = "scaleImage" : isCanvas = "type_.type2 == 'Sketchboard'" :workspace = "workspace" > < / scaleImage >
2024-05-28 16:00:26 +08:00
< createSlogan ref = "createSlogan" @setSloganData ="setSloganData" > < / createSlogan >
2023-07-26 15:54:34 +08:00
< / div >
< / template >
< script lang = "ts" >
2023-08-21 10:55:39 +08:00
import { LoadingOutlined } from "@ant-design/icons-vue" ;
2024-04-30 11:45:19 +08:00
import { message , Upload , Modal } from "ant-design-vue" ;
2024-07-03 17:32:06 +08:00
import { defineComponent , computed , createVNode , h , ref , watch , nextTick , inject } from "vue" ;
2023-07-26 15:54:34 +08:00
import { Https } from "@/tool/https" ;
2023-08-05 12:52:56 +08:00
import { useStore } from "vuex" ;
2023-08-21 10:55:39 +08:00
import GO from "@/tool/GO" ;
import { getCookie } from "@/tool/cookie" ;
import { getUploadUrl } from "@/tool/util" ;
2023-12-15 15:23:34 +08:00
// import { forEach } from "jszip";
2023-11-08 09:31:40 +08:00
import scaleImage from "@/component/HomePage/scaleImage.vue" ;
2024-05-28 16:00:26 +08:00
import generalMenu from "@/component/HomePage/generalMenu.vue" ;
2024-04-30 11:45:19 +08:00
import { ExclamationCircleOutlined } from '@ant-design/icons-vue' ;
2023-11-22 17:05:09 +08:00
import { openGuide , driverObj _ _ , driverIndex _ _ } from "@/tool/guide" ;
2024-05-28 16:00:26 +08:00
import createSlogan from "@/component/HomePage/createSlogan.vue" ;
2023-10-30 17:26:36 +08:00
import { useI18n } from "vue-i18n" ;
2024-06-01 10:02:21 +08:00
import sketchCategory from "@/component/HomePage/sketchCategory.vue" ;
2023-07-26 15:54:34 +08:00
export default defineComponent ( {
2023-11-08 09:31:40 +08:00
components : {
scaleImage ,
2024-05-28 16:00:26 +08:00
generalMenu ,
createSlogan ,
2024-06-01 10:02:21 +08:00
sketchCategory ,
2023-11-08 09:31:40 +08:00
} ,
2024-05-28 16:00:26 +08:00
props : [ "msg" , 'sketchCatecoryList' , 'scene' ] ,
setup ( props ) {
2023-08-21 10:55:39 +08:00
// console.log(prop.msg);
2024-06-01 10:02:21 +08:00
2024-09-25 11:07:49 +08:00
let printModelList : any = ref ( [ ] )
let sketchStyleList : any = ref ( [ ] )
let printModel : any = ref ( {
2024-05-28 16:00:26 +08:00
num : '' ,
optype : false ,
value : 'Painting Style' ,
label : useI18n ( ) . t ( 'Generate.Model1' )
} )
2023-08-21 10:55:39 +08:00
let searchPictureName = ref ( "" ) ;
2024-06-17 09:39:01 +08:00
let searchPictureSeed : any = ref ( 0 ) ;
2023-08-21 10:55:39 +08:00
let store = useStore ( ) ;
let fileList : any = ref ( [
2023-09-25 10:09:00 +08:00
2023-08-21 10:55:39 +08:00
] ) ;
let sketchboardList : any = ref ( [ ] )
let level2Type = ref ( '' )
2024-01-03 10:50:22 +08:00
// let printBoards:any = computed(()=>{return store.state.UploadFilesModule.printboard})
2024-05-28 16:00:26 +08:00
// let moodboarList:any = computed(()=>{return store.state.UploadFilesModule.moodboard})
2023-10-20 17:21:45 +08:00
// let sketchCatecoryList:any = ref([])
2023-10-11 17:34:14 +08:00
let workspace : any = ref ( { } )
2024-04-26 15:27:01 +08:00
let isGenerate = ref ( false ) //判断是否正在进行generate
2024-04-24 13:36:27 +08:00
let inputShow = ref ( false ) //表示是否出现红框
2023-10-20 17:21:45 +08:00
let inputTime = ref ( )
2023-11-23 11:15:10 +08:00
let driver _ _ : any = inject ( 'driver__' )
2023-10-30 17:26:36 +08:00
let { t } = useI18n ( )
2023-11-16 09:44:53 +08:00
let isTest = ref ( )
2024-01-24 10:33:58 +08:00
let userInfo : any = { }
let generateTime : any = ref ( )
2024-09-25 11:07:49 +08:00
let generateProceedList : any = ref ( [ ] )
2024-01-26 13:16:47 +08:00
let remGenerate : any = ref ( false )
let remGenerateTime : any = ref ( )
2024-06-20 10:36:45 +08:00
let styleRecommend : any = inject ( 'styleRecommend' )
2024-06-26 17:26:31 +08:00
let generateLevel2Type = ''
2024-07-02 14:15:11 +08:00
let isSloganHint : any = ref ( ' ' )
2024-09-25 11:07:49 +08:00
let loadingShow = ref ( false )
2023-08-21 10:55:39 +08:00
return {
2023-07-26 15:54:34 +08:00
searchPictureName ,
2024-06-17 09:39:01 +08:00
searchPictureSeed ,
2023-08-21 10:55:39 +08:00
store ,
fileList ,
sketchboardList ,
level2Type ,
2023-09-25 10:09:00 +08:00
printModel ,
2024-05-28 16:00:26 +08:00
printModelList ,
2024-09-25 11:07:49 +08:00
sketchStyleList ,
2024-04-26 15:27:01 +08:00
isGenerate ,
2024-05-28 16:00:26 +08:00
2024-01-03 10:50:22 +08:00
// printBoards,
2024-05-28 16:00:26 +08:00
// moodboarList,
2023-10-20 17:21:45 +08:00
// sketchCatecoryList,
workspace ,
inputShow ,
inputTime ,
2023-11-23 11:15:10 +08:00
driver _ _ ,
2023-10-30 17:26:36 +08:00
t ,
2023-11-16 09:44:53 +08:00
isTest ,
2024-01-24 10:33:58 +08:00
userInfo ,
generateTime ,
2024-04-29 15:12:27 +08:00
generateProceedList ,
2024-01-26 13:16:47 +08:00
remGenerate ,
remGenerateTime ,
2024-06-20 10:36:45 +08:00
styleRecommend ,
2024-06-26 17:26:31 +08:00
generateLevel2Type ,
2024-07-02 14:15:11 +08:00
isSloganHint ,
2024-09-25 11:07:49 +08:00
loadingShow ,
2023-08-21 10:55:39 +08:00
} ;
} ,
data ( prop ) {
return {
indicator : h ( LoadingOutlined , {
style : {
fontSize : "2.4rem" ,
} ,
spin : true ,
} ) ,
upload : {
isPin : 0 ,
2023-12-11 15:12:53 +08:00
gender : '' ,
2023-08-21 10:55:39 +08:00
level1Type : prop . msg ,
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
} ,
token : "" ,
uploadUrl : "" ,
2024-01-03 10:50:22 +08:00
2023-08-21 10:55:39 +08:00
type _ : {
type1 : "generate" ,
type2 : prop . msg ,
} ,
2024-06-01 10:02:21 +08:00
workspaceCom : { } ,
2024-05-22 10:45:52 +08:00
isTextarea : false ,
isInputFocus : false ,
2023-08-21 10:55:39 +08:00
} ;
2023-07-26 15:54:34 +08:00
} ,
2024-01-03 10:50:22 +08:00
2023-08-21 10:55:39 +08:00
mounted ( ) {
// this.fileList.forEach((item,index)=>{
// item.checked = true
// item.type_ = 'generate'
// item.id_ = GO.id++
// })
// this.store.commit("addGenerateFils", this.fileList);
2024-01-24 10:33:58 +08:00
let userInfo : any = getCookie ( "userInfo" )
this . userInfo = JSON . parse ( userInfo ) ;
2023-08-21 10:55:39 +08:00
this . token = getCookie ( "token" ) || "" ;
2023-11-20 09:47:10 +08:00
let isTest : any = getCookie ( 'isTest' )
2024-01-05 16:49:49 +08:00
this . isTest = JSON . parse ( isTest )
2023-08-21 10:55:39 +08:00
this . uploadUrl = getUploadUrl ( ) ;
2024-06-01 10:02:21 +08:00
this . workspaceCom = computed ( ( ) => {
2023-12-18 13:05:51 +08:00
return this . store ? . state ? . Workspace ? . workspace
} )
2024-09-25 11:07:49 +08:00
// if()
if ( this . type _ . type2 == 'Printboard' ) {
this . printModelList = [
{
num : '' ,
optype : false ,
value : 'Painting Style' ,
label : useI18n ( ) . t ( 'Generate.Model1' )
} , {
num : '' ,
optype : false ,
value : 'Illustration Style' ,
label : useI18n ( ) . t ( 'Generate.Model2' )
} , {
num : '' ,
optype : false ,
value : 'Real Style' ,
label : useI18n ( ) . t ( 'Generate.Model3' )
} ,
]
} else if ( this . type _ . type2 == 'Sketchboard' ) {
this . printModelList = JSON . parse ( JSON . stringify ( this . store . state . UserHabit . SketchStyle ) )
this . printModelList . forEach ( ( item : any ) => {
item . img = 'https://www.aida.com.hk/img/aida_logo.5ab4163e.png'
} )
2024-09-27 17:34:19 +08:00
this . printModelList [ 3 ] . img = - 1
2024-09-25 11:07:49 +08:00
}
this . printModel = this . printModelList [ 0 ]
2023-08-21 10:55:39 +08:00
} ,
2023-12-08 16:27:35 +08:00
watch : {
driver _ _ : {
handler ( newVal , oldVal ) {
if ( this . type _ . type2 == 'Printboard' ) {
2023-12-12 11:53:02 +08:00
if ( newVal . index >= 14 && newVal . index < 15 ) {
2023-12-08 16:27:35 +08:00
} else {
}
} else if ( this . type _ . type2 == 'Sketchboard' ) {
}
}
2023-12-18 13:05:51 +08:00
} ,
2024-06-01 10:02:21 +08:00
workspaceCom ( newVal , oldVal ) {
this . workspace = newVal
2024-08-05 16:16:08 +08:00
this . upload . gender = newVal ? . sexEnum ? . value
2023-12-18 13:05:51 +08:00
} ,
2024-07-02 14:15:11 +08:00
scene : {
handler ( newVal , oldVal ) {
if ( this . type _ . type2 == 'Printboard' && newVal . value == 'Slogan' ) {
let sloganType = [ 'Blue and Yellow Starry Night' , 'Green Cthulhu' , 'Red and yellow fire style' , 'Cyberpunk style' , 'City skyline buildings' , 'Red maple leaves' , 'Golden Sunflower' , 'Emerald Jungle Canopy' , 'Pink Sakura Blossom' ]
var randomNumber = Math . floor ( Math . random ( ) * sloganType . length ) ;
this . isSloganHint = sloganType [ randomNumber ]
} else {
this . isSloganHint = ''
}
}
}
2024-05-28 16:00:26 +08:00
// moodboarList(newVal,oldVal){
// if(newVal.length>=1 || this.sketchboardList.length >= 2){
// }else{
// this.printModel = {
// num:'',
// optype:false,
// value:'Painting Style',
// name:this.t('Generate.Model'+1)
// }
// }
// },
2023-12-08 16:27:35 +08:00
} ,
2023-08-21 10:55:39 +08:00
computed : {
getSketchLabel ( value : any ) {
return ( value : any ) => {
let lable = "" ;
for ( let item of this . sketchCatecoryList ) {
if ( item . value === value ) {
lable = item . label ;
break ;
}
2023-07-26 15:54:34 +08:00
}
2023-08-21 10:55:39 +08:00
return lable ;
} ;
} ,
} ,
methods : {
generageAdd ( data : any ) {
data . type _ = this . type _ ;
2024-09-25 11:07:49 +08:00
data . type _ . type1 = data . designType ? data . designType : this . type _ . type1
2023-09-12 10:11:27 +08:00
data . resData = JSON . parse ( JSON . stringify ( data ) )
2023-12-11 11:02:48 +08:00
let maxImg = 8
if ( this . type _ . type2 == 'Sketchboard' ) {
maxImg = 20
}
data . jsContent1 = this . t ( 'uploadFile.jsContent1' , { maxImg : maxImg } )
2023-08-21 10:55:39 +08:00
this . store . commit ( "addGenerateMaterialFils" , data ) ;
2023-11-30 17:02:15 +08:00
// console.log(this.fileList);
2024-01-10 16:13:50 +08:00
let moodboard = this . store . state . UploadFilesModule . moodboardGenerateFiles
2024-08-14 16:02:55 +08:00
let sketch = this . store . state . UploadFilesModule . sketchGenerateFiles
2024-08-16 15:40:25 +08:00
let print = this . store . state . UploadFilesModule . printGenerateFiles
if ( ( moodboard . length >= 2 || print . length >= 2 || sketch . length >= 2 ) && this . driver _ _ . driver ) {
2023-11-23 11:15:10 +08:00
driverObj _ _ . moveNext ( )
}
2023-08-21 10:55:39 +08:00
} ,
beforeUpload ( file : any ) {
const isJpgOrPng =
file . type === "image/jpeg" ||
file . type === "image/png" ||
file . type === "image/jpg" ||
file . type === "image/bmp" ;
if ( ! isJpgOrPng ) {
2023-11-16 17:23:17 +08:00
message . info ( this . t ( 'Generate.jsContent1' ) ) ;
2023-08-21 10:55:39 +08:00
}
2024-06-17 09:39:01 +08:00
const isLt2M = file . size / 1024 / 1024 < 5 ;
2023-08-21 10:55:39 +08:00
if ( ! isLt2M ) {
2023-11-16 17:23:17 +08:00
message . info ( this . t ( 'Generate.jsContent2' ) ) ;
2023-08-21 10:55:39 +08:00
}
return ( isJpgOrPng && isLt2M ) || Upload . LIST _IGNORE ;
} ,
2024-05-28 16:00:26 +08:00
setprintModel ( value : any ) {
this . printModel = value
2023-09-25 10:09:00 +08:00
} ,
2024-09-25 11:07:49 +08:00
imageToSketch ( ) {
if ( ( ! this . printModel ? . id && ! this . printModel ? . value ) || ! this . sketchboardList ? . [ 0 ] ? . id ) return message . info ( this . t ( 'Generate.jsContent4' ) ) ;
this . loadingShow = true
let data = {
"elementId" : this . sketchboardList [ 0 ] . id ,
gender : this . workspace . sexEnum . value ,
"style" : this . printModel . value ,
"styleImageId" : this . printModel . id ? this . printModel . id : ''
}
Https . axiosPost ( Https . httpUrls . imageToSketch , data ) . then ( ( rv ) => {
if ( rv ) {
this . sketchCatecoryList . forEach ( ( itemCategory : any ) => {
if ( itemCategory . value == rv . category ) {
rv . categoryValue = itemCategory ? . value
rv . category = itemCategory ? . name
}
} ) ;
this . fileList . push ( {
imgUrl : rv . url ,
categoryValue : rv . categoryValue ,
category : rv . category ,
id : rv . id ,
status : 'Success' ,
} )
this . loadingShow = false
}
} ) . catch ( ( ) => {
this . loadingShow = false
} )
} ,
2023-09-12 10:11:27 +08:00
getgenerate ( ) {
2024-09-25 11:07:49 +08:00
if ( this . scene ? . value == 'extract' ) {
this . imageToSketch ( )
return
}
2024-06-18 10:45:15 +08:00
this . isTextarea = false
2024-06-20 10:36:45 +08:00
this . isInputFocus = false
2024-06-17 09:39:01 +08:00
if ( this . isGenerate ) return
2024-01-26 13:16:47 +08:00
clearInterval ( this . remGenerateTime )
2023-10-20 17:21:45 +08:00
if ( this . searchPictureName ) {
let arr = this . searchPictureName . split ( /\s+/ ) . length
2024-05-20 10:45:30 +08:00
if ( arr > 250 ) {
2023-11-16 17:23:17 +08:00
message . info (
2023-10-30 17:26:36 +08:00
this . t ( 'Generate.jsContent4' )
2023-10-20 17:21:45 +08:00
) ;
return
}
} else {
2024-06-01 10:02:21 +08:00
if ( this . sketchboardList ? . [ 0 ] ? . imgUrl ) {
2024-05-28 16:00:26 +08:00
} else {
message . info (
this . t ( 'Generate.jsContent5' )
) ;
return
}
2023-10-20 17:21:45 +08:00
}
2024-06-01 10:02:21 +08:00
let level2Type = ''
let collectionElementId = ''
let base64 = ''
if ( this . sketchboardList ? . [ 0 ] ) {
collectionElementId = this . sketchboardList [ 0 ] . id
if ( this . sketchboardList [ 0 ] . base64 ) {
base64 = this . sketchboardList [ 0 ] . imgUrl
}
}
2024-06-20 10:36:45 +08:00
let sloganText = ''
sloganText = this . searchPictureName
2024-06-01 10:02:21 +08:00
if ( this . upload . level1Type == "Sketchboard" ) {
2024-06-20 10:36:45 +08:00
level2Type = this . sketchboardList ? . [ 0 ] ? . categoryValue ? this . sketchboardList [ 0 ] . categoryValue : ''
2024-06-26 17:26:31 +08:00
if ( this . workspace . styleName ) {
sloganText = ` ${ this . workspace . styleName } , ${ sloganText } `
}
2024-06-01 10:02:21 +08:00
} else if ( this . upload . level1Type == "Printboard" ) {
level2Type = this . scene ? . value
2024-06-20 10:36:45 +08:00
if ( level2Type == 'Slogan' && this . searchPictureName == '' ) {
2024-07-02 14:15:11 +08:00
sloganText = this . isSloganHint
2024-06-20 10:36:45 +08:00
} else if ( level2Type == 'Pattern' ) {
sloganText = ` ${ this . printModel . value } , ${ sloganText } `
}
if ( ! base64 && level2Type == 'Slogan' ) {
2024-06-26 17:26:31 +08:00
message . info ( this . t ( 'Generate.jsContent10' ) ) ;
2024-06-20 10:36:45 +08:00
return
}
2024-06-01 10:02:21 +08:00
}
2023-09-12 10:11:27 +08:00
let data = {
2024-06-01 10:02:21 +08:00
generateType : 'text' ,
2024-05-28 16:00:26 +08:00
designType : 'collection' ,
2024-06-01 10:02:21 +08:00
collectionElementId : collectionElementId ,
2023-09-12 10:11:27 +08:00
level1Type : this . upload . level1Type ,
2024-06-01 10:02:21 +08:00
level2Type : level2Type ,
2024-06-20 10:36:45 +08:00
text : sloganText ,
2024-06-17 09:39:01 +08:00
seed : this . searchPictureSeed ,
2024-01-24 10:33:58 +08:00
userId : this ? . userInfo ? . userId ,
2023-09-12 10:11:27 +08:00
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
2023-10-31 10:03:30 +08:00
version : 1 , //为1就是Print
2024-01-30 13:33:08 +08:00
isTestUser : this . driver _ _ . driver ? false : this . isTest ,
2024-06-24 09:47:59 +08:00
gender : this . workspace . sexEnum . value ,
2024-06-17 09:39:01 +08:00
sloganBase64 : base64 ,
2023-09-12 10:11:27 +08:00
}
2024-06-26 17:26:31 +08:00
this . generateLevel2Type = data . level2Type
2024-04-26 15:27:01 +08:00
this . isGenerate = true
2024-06-17 09:39:01 +08:00
this . remGenerateTime = setTimeout ( ( ) => {
this . remGenerate = true
} , 10000 )
2024-01-21 14:47:41 +08:00
Https . axiosPost ( Https . httpUrls . generatePrepare , data ) . then (
2023-09-12 10:11:27 +08:00
( rv ) => {
2024-01-30 13:33:08 +08:00
if ( data . isTestUser ) {
if ( rv . leftUsageCount >= 1 ) {
2024-01-30 14:23:28 +08:00
message . warning ( this . t ( 'Generate.jsContent8' , { num : rv . leftUsageCount , str : this . t ( 'collectionModal.Moodboard' ) } ) ) ;
2024-01-30 13:33:08 +08:00
} else if ( rv . leftUsageCount == 0 ) {
message . warning ( this . t ( 'Generate.jsContent9' , { str : this . t ( 'collectionModal.Moodboard' ) } ) ) ;
2024-04-26 15:27:01 +08:00
this . isGenerate = false
2024-01-30 13:33:08 +08:00
return
}
2023-09-25 10:09:00 +08:00
}
2024-04-29 15:12:27 +08:00
// rv.uniqueId.forEach((item:any) => {
// let arr:any = {}
// arr.taskId = item
// arr.status = 'execution'
// this.fileList.unshift(arr)
// });
this . setGenerate ( rv . uniqueId )
2023-09-12 10:11:27 +08:00
}
) . catch ( res => {
2024-06-26 17:26:31 +08:00
this . generateLevel2Type = ''
2024-04-26 15:27:01 +08:00
this . isGenerate = false
2024-06-17 09:39:01 +08:00
clearInterval ( this . remGenerateTime )
this . remGenerate = false
2023-09-12 10:11:27 +08:00
} ) ;
2024-01-24 10:33:58 +08:00
} ,
2024-04-29 15:12:27 +08:00
setGenerate ( dataList : any ) {
2024-06-17 09:39:01 +08:00
2024-04-29 15:12:27 +08:00
let data = dataList
2024-04-30 13:21:15 +08:00
let dataNum = dataList . length
2024-06-17 09:39:01 +08:00
let state = true
2024-01-24 10:33:58 +08:00
this . generateTime = setInterval ( ( ) => {
2024-06-17 09:39:01 +08:00
if ( ! state ) return
state = false
2024-04-19 10:49:05 +08:00
Https . axiosPost ( Https . httpUrls . generateResult , data ) . then (
2024-01-24 10:33:58 +08:00
( rv ) => {
2024-06-17 09:39:01 +08:00
state = true
2024-04-26 15:27:01 +08:00
if ( this . isGenerate ) { //防止取消后有正在执行的获取状态
2024-04-29 15:12:27 +08:00
this . generateProceedList = rv . filter ( ( item : any ) => item . status != 'Success' && item . status != 'Fail' && item . status != 'Invalid' )
2024-04-19 10:49:05 +08:00
rv . forEach ( ( element : any ) => {
2024-04-29 15:12:27 +08:00
if ( element . status == 'Success' ) {
element . imgUrl = element . url
element . id _ = GO . id ++
this . fileList . unshift ( element )
data = data . filter ( ( item : any ) => item !== element . taskId ) ;
2024-06-17 15:15:13 +08:00
if ( this . type _ . type2 == 'Sketchboard' ) {
this . sketchCatecoryList . forEach ( ( itemCategory : any ) => {
2024-06-24 10:10:33 +08:00
if ( itemCategory . value == element . category ) {
2024-06-24 09:47:59 +08:00
element . categoryValue = itemCategory ? . value
element . category = itemCategory ? . name
2024-06-17 15:15:13 +08:00
}
} ) ;
} else {
2024-06-24 09:47:59 +08:00
element . categoryValue = this . scene ? . value
element . category = this . scene ? . name
2024-06-17 15:15:13 +08:00
}
2024-04-29 15:12:27 +08:00
}
2024-04-19 10:49:05 +08:00
} ) ;
2024-04-30 13:21:15 +08:00
if ( ( data . length == 0 ) || ( rv . filter ( ( item : any ) => item . status == 'Invalid' ) . length == data . length ) ) {
if ( rv . filter ( ( item : any ) => item . status == 'Invalid' ) . length == dataNum ) {
2024-04-30 13:11:58 +08:00
message . info ( this . t ( 'Generate.effectPoor' ) ) ;
2024-08-14 16:02:55 +08:00
} else {
nextTick ( ) . then ( ( ) => {
if ( this . driver _ _ . driver ) {
driverObj _ _ . moveNext ( )
}
} )
2024-04-30 13:11:58 +08:00
}
2024-08-14 16:02:55 +08:00
2024-06-28 11:50:11 +08:00
this . store . dispatch ( 'getCredits' )
2024-04-19 10:49:05 +08:00
clearInterval ( this . generateTime )
clearInterval ( this . remGenerateTime )
this . remGenerate = false
2024-04-30 13:11:58 +08:00
this . isGenerate = false
2024-06-26 17:26:31 +08:00
this . generateLevel2Type = ''
2024-04-19 10:49:05 +08:00
}
2024-01-24 10:33:58 +08:00
}
}
) . catch ( res => {
2024-01-31 17:11:10 +08:00
clearInterval ( this . generateTime )
clearInterval ( this . remGenerateTime )
2024-04-26 15:27:01 +08:00
this . isGenerate = false
2024-04-30 13:11:58 +08:00
this . remGenerate = false
2024-06-26 17:26:31 +08:00
this . generateLevel2Type = ''
2024-01-24 10:33:58 +08:00
} ) ;
2024-04-19 10:49:05 +08:00
} , 1000 )
2024-01-24 10:33:58 +08:00
} ,
removeGenerate ( ) {
2024-04-22 09:46:40 +08:00
//取消操作
2024-04-26 15:27:01 +08:00
this . isGenerate = false
2024-04-29 15:12:27 +08:00
this . remGenerate = false
2024-04-22 09:46:40 +08:00
clearInterval ( this . generateTime )
2024-04-29 15:12:27 +08:00
if ( this . generateProceedList ) {
let str = this . generateProceedList . map ( ( obj : any ) => obj . taskId ) . join ( ',' ) ;
2024-06-26 17:26:31 +08:00
let type = 'Generate'
if ( this . generateLevel2Type == 'Logo' ) {
type = 'Logo'
}
let data = {
uniqueId : str ,
userId : this ? . userInfo ? . userId ,
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
type : type
}
2024-01-24 10:33:58 +08:00
Https . axiosGet ( Https . httpUrls . generateStopWaiting , { params : data } ) . then (
( rv ) => {
2024-04-29 15:12:27 +08:00
this . generateProceedList = [ ]
2024-01-24 10:33:58 +08:00
}
) . catch ( res => {
} ) ;
}
2023-09-12 10:11:27 +08:00
} ,
2024-05-20 13:07:42 +08:00
setTextareaShow ( ) {
this . isTextarea = ! this . isTextarea
2024-06-17 15:15:13 +08:00
if ( this . isTextarea ) {
document . addEventListener ( 'click' , this . setTextareaShow )
} else {
document . removeEventListener ( 'click' , this . setTextareaShow )
}
2024-05-22 10:45:52 +08:00
} ,
2024-05-22 14:58:43 +08:00
cliSetKeyword ( value : any ) {
let str = ''
if ( this . searchPictureName [ this . searchPictureName . length - 1 ] != ',' && this . searchPictureName . length != 0 ) {
str = ','
}
2024-06-20 10:36:45 +08:00
if ( this . upload . level1Type == "Moodboard" ) {
2024-07-03 17:32:06 +08:00
if ( this . workspace ? . allKeywordsByStyle [ 'Printboard' ] . indexOf ( value ) == - 1 ) {
this . styleRecommend . push ( value )
this . styleRecommend = [ ... new Set ( this . styleRecommend ) ]
}
2024-06-20 10:36:45 +08:00
}
2024-05-22 14:58:43 +08:00
this . searchPictureName += str + value
2024-05-20 13:07:42 +08:00
} ,
2024-06-17 09:39:01 +08:00
ifSeedValue ( e : any ) {
if ( this . searchPictureSeed == '' ) {
this . searchPictureSeed = 0
}
} ,
2023-10-27 11:09:32 +08:00
ifMaximumLength ( ) {
2023-10-20 17:21:45 +08:00
clearTimeout ( this . inputTime )
let inputBox = document . getElementsByClassName ( 'generate' ) [ 0 ] . getElementsByClassName ( 'input_box' ) [ 0 ]
let input = inputBox . getElementsByClassName ( 'search_input' ) [ 0 ]
this . inputTime = setTimeout ( ( ) => {
// let num1 = ((input as HTMLInputElement).value.match(/ /g) || []).length
// let num2 = (input as HTMLInputElement).value.split(' ').length
2024-05-22 10:44:48 +08:00
if ( this . searchPictureName ? . split ( /\s+/ ) . length > 250 ) {
2024-04-24 13:36:27 +08:00
( this . $refs . inputShowText as any ) . innerHTML = this . t ( 'Generate.maximumLength' )
2023-10-20 17:21:45 +08:00
this . inputShow = true
} else {
this . inputShow = false
}
} , 500 )
} ,
2024-05-22 10:45:52 +08:00
inputFocus ( ) {
if ( this . isInputFocus ) return
this . isInputFocus = true
let setDomCli = ( ) => {
this . isInputFocus = false
document . removeEventListener ( 'click' , setDomCli )
}
setTimeout ( ( ) => {
document . addEventListener ( 'click' , setDomCli )
} , 200 )
} ,
2023-08-21 10:55:39 +08:00
fileUploadChange ( data : any ) {
let file = data . file ;
2023-12-13 16:09:17 +08:00
let bor = true
2023-08-21 10:55:39 +08:00
if ( file . status === "done" ) {
let res = JSON . parse ( file . xhr . response ) ;
2023-12-13 16:09:17 +08:00
if ( res . errCode == 0 ) {
2024-01-02 13:04:57 +08:00
let category : any = {
value : '' ,
name : '' ,
}
2024-01-02 14:30:23 +08:00
if ( this . sketchCatecoryList && this . type _ . type2 == 'Sketchboard' ) {
this . sketchCatecoryList . forEach ( ( item : any ) => {
if ( item . name == res . data . level2Type ) {
category . value = item ? . value
category . name = item ? . name
}
} ) ;
}
2023-12-13 16:09:17 +08:00
file . id = res . data . id ;
file . imgUrl = res . data . url ;
file . resData = res . data ;
file . type _ = "upload" ;
file . id _ = GO . id ++ ;
2024-01-02 13:04:57 +08:00
file . categoryValue = category ? . value ;
file . category = category ? . name ;
2023-12-13 16:09:17 +08:00
let fileList = this . sketchboardList . filter (
( v : any ) => v . status === "done"
) ;
2024-05-28 16:00:26 +08:00
this . sketchboardList = fileList
2023-12-13 16:09:17 +08:00
nextTick ( ) . then ( ( ) => {
if ( this . driver _ _ . driver ) {
driverObj _ _ . moveNext ( )
}
} )
} else {
bor = false
}
2023-08-21 10:55:39 +08:00
} else if ( file . status === "error" ) {
2023-12-13 16:09:17 +08:00
bor = false
}
if ( ! bor ) {
let index = - 1 ;
let res : any = JSON . parse ( file . xhr . response ) ;
2023-08-21 10:55:39 +08:00
this . sketchboardList . forEach ( ( ele : any , index1 : any ) => {
if ( file . uid === ele . uid ) {
index = index1 ;
}
} ) ;
if ( index > - 1 ) {
this . sketchboardList . splice ( index , 1 ) ;
}
2023-12-13 16:09:17 +08:00
// message.warning(file.name + this.t('SketchboardUpload.jsContent1'));
message . warning ( res . errMsg ) ;
}
2023-08-21 10:55:39 +08:00
} ,
2024-05-28 16:00:26 +08:00
setSlogan ( ) {
let createSlogan : any = this . $refs . createSlogan
createSlogan . init ( )
2023-08-21 10:55:39 +08:00
} ,
2024-05-28 16:00:26 +08:00
setSloganData ( data : any ) {
this . sketchboardList = data
2023-08-21 10:55:39 +08:00
} ,
deleteFile ( item : any ) {
2024-06-26 17:26:31 +08:00
if ( this . scene ? . value == 'Slogan' && this . type _ . type2 == 'Printboard' ) {
let createSlogan : any = this . $refs . createSlogan
createSlogan . isDeleteSlogan = true
}
2023-12-12 14:34:57 +08:00
this . sketchboardList . splice ( item , 1 ) ;
2024-05-28 16:00:26 +08:00
// if((this.sketchboardList.length<2 && this.moodboarList.length == 0) || this.sketchboardList.length == 0){
// this.printModel = {
// num:'',
// optype:false,
// value:'Painting Style',
// label:this.t('Generate.Model'+1)
// }
// }
2023-08-21 10:55:39 +08:00
} ,
2023-09-25 10:09:00 +08:00
likeFile ( item : any , str : string ) {
if ( str == 'like' ) {
2024-06-01 10:02:21 +08:00
let level2Type = ''
if ( this . upload . level1Type == "Sketchboard" ) {
2024-06-24 09:47:59 +08:00
level2Type = item . categoryValue
2024-06-01 10:02:21 +08:00
} else if ( this . upload . level1Type == "Printboard" ) {
level2Type = this . scene ? . value
}
2023-09-25 10:09:00 +08:00
let data = {
generateDetailId : item . id ,
2024-06-01 10:02:21 +08:00
level1Type : this . type _ . type2 ,
level2Type : level2Type ,
2024-06-24 09:47:59 +08:00
gender : this . workspace . sexEnum . value ,
2023-09-25 10:09:00 +08:00
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone
}
Https . axiosPost ( Https . httpUrls . generateLike , data ) . then (
( rv ) => {
item . like = true
}
) . catch ( res => {
} ) ;
} else {
let data = {
generateDetailId : item . id ,
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone
}
Https . axiosGet ( Https . httpUrls . generateDislike , { params : data } ) . then (
( rv ) => {
item . like = false
}
) . catch ( res => {
} ) ;
}
2024-04-30 11:45:19 +08:00
} ,
deleteGenerate ( index : any ) {
2024-06-26 17:26:31 +08:00
// if(this.isGenerate)return
let num = this . fileList . length
2024-04-30 11:45:19 +08:00
let _this = this
Modal . confirm ( {
title : this . t ( 'LibraryPage.jsContent1' ) ,
icon : createVNode ( ExclamationCircleOutlined ) ,
okText : 'Yes' ,
cancelText : 'No' ,
mask : false ,
centered : true ,
onOk ( ) {
2024-06-26 17:26:31 +08:00
let a = _this . fileList . length - num
_this . fileList . splice ( index - a , 1 )
2024-04-30 11:45:19 +08:00
}
} ) ;
2023-09-12 10:11:27 +08:00
} ,
2024-01-02 13:04:57 +08:00
scaleImage ( index : any ) {
2023-11-08 09:31:40 +08:00
let scaleImage : any = this . $refs . scaleImage
2024-01-02 13:04:57 +08:00
scaleImage . init ( this . fileList , index )
2023-11-08 09:31:40 +08:00
} ,
2023-08-21 10:55:39 +08:00
closeModal ( ) {
2023-08-05 12:52:56 +08:00
// this.myMaterialModalShow = false
2023-08-21 10:55:39 +08:00
this . searchPictureName = "" ;
} ,
} ,
} ) ;
2023-07-26 15:54:34 +08:00
< / script >
2024-08-05 16:16:08 +08:00
< style lang = "less" scoped >
2023-08-21 10:55:39 +08:00
. generate {
2023-09-12 10:11:27 +08:00
flex : 1 ;
// height: 30rem;
2023-10-20 17:21:45 +08:00
// overflow-x: hidden;
2024-04-03 17:39:44 +08:00
overflow - x : hidden ;
2023-10-31 16:04:40 +08:00
display : flex ;
flex - direction : column ;
2023-08-21 10:55:39 +08:00
border - right : 1 px solid # e5e5e5 ;
2023-11-02 11:00:38 +08:00
position : relative ;
2024-06-17 15:15:13 +08:00
// padding-top: calc(2.5rem*1.2);
. input _border {
padding - top : calc ( 2.5 rem * 1.2 ) ;
}
2023-11-02 11:00:38 +08:00
. mark _loading {
position : absolute ;
width : 100 % ;
height : 100 % ;
z - index : 99 ;
}
2023-08-21 10:55:39 +08:00
. generate _checkbox ,
. generage _input {
display : flex ;
align - items : center ;
position : sticky ;
top : 0 ;
background : # fff ;
2024-06-17 15:15:13 +08:00
padding - top : calc ( 2 rem * 1.2 ) ;
2024-06-17 09:39:01 +08:00
z - index : 3 ;
2023-08-21 10:55:39 +08:00
}
. generate _checkbox {
}
. generage _input {
}
. generage _img {
display : flex ;
2023-10-31 16:04:40 +08:00
position : relative ;
2023-08-21 10:55:39 +08:00
flex - wrap : wrap ;
2023-10-31 16:04:40 +08:00
align - content : flex - start ;
flex : 1 ;
2024-06-17 15:15:13 +08:00
overflow - y : auto ;
& . generage _img : : - webkit - scrollbar {
display : none ;
}
2023-08-21 10:55:39 +08:00
. generage _img _item {
cursor : pointer ;
2024-01-10 14:09:44 +08:00
margin : 0 calc ( 2 rem * 1.2 ) calc ( 2 rem * 1.2 ) 0 ;
2023-09-12 10:11:27 +08:00
position : relative ;
2023-08-21 10:55:39 +08:00
& . active {
2024-06-01 10:02:21 +08:00
opacity : 0.5 ;
// border: 2px solid;
border - radius : calc ( 1 rem * 1.2 ) ;
img {
transform : scale ( 0.9 ) ;
2023-08-05 12:52:56 +08:00
}
2024-06-01 10:02:21 +08:00
. delete _like _file _block {
pointer - events : none ;
}
. operate _file _block {
pointer - events : none ;
}
}
2023-08-21 10:55:39 +08:00
img {
2024-01-10 14:09:44 +08:00
width : calc ( 10 rem * 1.2 ) ;
height : calc ( 10 rem * 1.2 ) ;
2024-09-25 11:07:49 +08:00
object - fit : contain ;
2023-08-21 10:55:39 +08:00
}
2023-09-12 10:11:27 +08:00
& : hover . delete _like _file _block {
2024-05-16 09:41:16 +08:00
// display: block;
opacity : 1 ;
2023-09-12 10:11:27 +08:00
}
2024-04-26 15:27:01 +08:00
2023-08-21 10:55:39 +08:00
}
. upload _item {
. upload _file _item {
2023-10-20 17:21:45 +08:00
// &.active {
// opacity: 0.5;
// // border: 2px solid;
// border-radius: 1rem;
// transform: scale(0.9);
// .delete_file_block{
// pointer-events:none;
// }
// .operate_file_block{
// pointer-events:none;
// }
// img {
// }
// }
2023-08-21 10:55:39 +08:00
. upload _file _item _content {
display : flex ;
align - items : center ;
justify - content : center ;
height : 100 % ;
position : relative ;
cursor : pointer ;
. upload _img {
display : block ;
max - height : 100 % ;
max - width : 100 % ;
}
. delete _file _block {
display : none ;
2024-01-10 14:09:44 +08:00
width : calc ( 3.2 rem * 1.2 ) ;
height : calc ( 3.2 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
background : rgba ( 0 , 0 , 0 , 0.6 ) ;
2024-01-10 14:09:44 +08:00
border - radius : calc ( 0.4 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
position : absolute ;
2024-01-10 14:09:44 +08:00
top : calc ( 0.9 rem * 1.2 ) ;
right : calc ( 0.9 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
text - align : center ;
2024-01-10 14:09:44 +08:00
line - height : calc ( 3.2 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
left : auto ;
. icon - shanchu {
2024-01-10 14:09:44 +08:00
font - size : calc ( 1.6 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
color : # fff ;
}
}
& : hover . delete _file _block {
display : block ;
}
}
}
}
}
2023-08-05 12:52:56 +08:00
}
2023-07-26 15:54:34 +08:00
< / style >