2023-01-06 16:00:15 +08:00
< template >
< div class = "sketchboard_upload_modal" >
2023-08-21 10:55:39 +08:00
< div class = "modal_left" >
2023-11-28 16:21:00 +08:00
< div class = "switch_type_list" :class = "[driver__.driver?'showEvents':'']" >
2023-08-21 10:55:39 +08:00
< div
@ click . stop = "open(1)"
class = "switch_type_item"
: class = "[openClick == 1 ? 'select_swtich' : '']"
>
2023-10-30 17:26:36 +08:00
< span > { { $t ( 'SketchboardUpload.Upload' ) } } < / span >
2023-08-21 10:55:39 +08:00
< / div >
< div
@ click . stop = "open(2)"
class = "switch_type_item"
: class = "[openClick == 2 ? 'select_swtich' : '']"
>
2023-10-30 17:26:36 +08:00
< span > { { $t ( 'SketchboardUpload.Library' ) } } < / span >
2023-08-21 10:55:39 +08:00
< / div >
< div
@ click . stop = "open(3)"
2023-12-08 16:27:35 +08:00
class = "switch_type_item Guide_1_9"
: class = "[openClick == 3 ? 'select_swtich' : '', driver__.driver?'showEvents':'']"
2023-08-21 10:55:39 +08:00
>
2023-10-30 17:26:36 +08:00
< span > { { $t ( 'SketchboardUpload.Generate' ) } } < / span >
2023-08-21 10:55:39 +08:00
< / div >
2023-01-06 16:00:15 +08:00
< / div >
2023-08-21 10:55:39 +08:00
< div v-show = "openClick == 1" class="sketchboard_body" >
< div class = "upload_img_body scroll_style" >
< div class = "upload_item" >
2023-11-29 09:56:48 +08:00
< div
2023-08-21 10:55:39 +08:00
class = "upload_file_item"
v - for = "(file, index) in fileList"
: key = "file"
>
< div
class = "upload_file_item_content"
v - show = "file?.status === 'uploading'"
>
< a-spin
: indicator = "indicator"
tip = "Uploading..."
/ >
< / div >
< div
class = "upload_file_item_content"
v - show = "file?.status === 'done'"
>
< img :src = "file?.imgUrl" class = "upload_img" / >
2024-04-25 14:39:28 +08:00
< sketchCategory :disignTypeList = "sketchCatecoryList" :generateList = "fileList" :item = "file" :driver__ = "driver__.driver" > < / sketchCategory >
2023-08-21 10:55:39 +08:00
< div
2023-09-12 10:11:27 +08:00
class = "delete_like_file_block"
@ click . stop = "deleteFile(file)"
2023-08-21 10:55:39 +08:00
>
< span
class = "icon iconfont icon-shanchu"
> < / span >
< / div >
2023-01-06 16:00:15 +08:00
< / div >
2023-08-21 10:55:39 +08:00
< div
class = "pin_block"
v - show = "file?.status === 'done'"
>
< a-checkbox v -model :checked = "file.pin"
2023-10-30 17:26:36 +08:00
> { { $t ( 'SketchboardUpload.PIN' ) } } < / a - c h e c k b o x
2023-08-21 10:55:39 +08:00
>
2023-01-06 16:00:15 +08:00
< / div >
< / div >
2023-08-21 10:55:39 +08:00
< div
2023-12-08 16:27:35 +08:00
class = "upload_file_item upload_component"
2023-12-11 11:02:48 +08:00
v - show = "sketchboardList.length < 20"
2023-08-21 10:55:39 +08:00
>
< a-upload
: action = "uploadUrl + '/api/element/upload'"
2024-01-27 15:20:23 +08:00
: capture = "null"
2023-08-21 10:55:39 +08:00
list - type = "picture-card"
: data = " {
... upload ,
} "
2023-12-07 14:26:21 +08:00
: multiple = "!driver__.driver"
2023-08-21 10:55:39 +08:00
: before - upload = "beforeUpload"
: headers = "{ Authorization: token }"
v - model : file - list = "fileList"
2023-12-11 10:24:04 +08:00
: maxCount = "20 - sketchboardList.length+fileList.length"
2023-08-21 10:55:39 +08:00
accept = ".jpg,.png,.jpeg,.bmp"
@ change = "(file) => fileUploadChange(file)"
2023-01-06 16:00:15 +08:00
>
2023-08-21 10:55:39 +08:00
< div
class = "upload_tip_block"
2023-12-11 10:24:04 +08:00
v - show = "sketchboardList.length < 20"
2023-08-21 10:55:39 +08:00
>
< i class = "fi fi-br-upload" > < / i >
<!-- < img class = "upload_img_icon" src = "@/assets/images/homePage/add_file.png" > -- >
< / div >
< / a-upload >
< / div >
2023-01-06 16:00:15 +08:00
< / div >
< / div >
2023-11-06 15:19:52 +08:00
< div class = "upload_max_tip" >
< span class = "icon iconfont icon-zhuyi" > < / span >
2023-12-11 11:02:48 +08:00
< span > { { $t ( 'SketchboardUpload.Maximum' , { maxImg : 20 } ) } } < / span >
2023-11-06 15:19:52 +08:00
< / div >
2023-01-06 16:00:15 +08:00
< / div >
2023-08-21 10:55:39 +08:00
< Material
v - show = "openClick == 2"
ref = "Material"
msg = "Sketchboard"
@ confirmSelect = "confirmSelect"
2023-10-20 17:21:45 +08:00
: disignTypeList = "sketchCatecoryList"
2024-04-03 17:39:44 +08:00
@ setLibrary = setSetchboardGenerate
2023-08-21 10:55:39 +08:00
> < / Material >
< Generate
v - show = "openClick == 3"
ref = "Generate"
msg = "Sketchboard"
2023-10-20 17:21:45 +08:00
: sketchCatecoryList = "sketchCatecoryList"
2023-08-21 10:55:39 +08:00
@ generateCheckbox = "getgenerateCheckbox"
2024-04-03 17:39:44 +08:00
@ setGenerate = setSetchboardGenerate
2023-08-21 10:55:39 +08:00
> < / Generate >
< / div >
< div class = "modal_right" >
< div class = "modal_layout" >
< div class = "modal_text" >
2023-10-30 17:26:36 +08:00
< div > { { $t ( 'SketchboardUpload.Thumbnail' ) } } < / div >
2023-08-21 10:55:39 +08:00
<!-- < div class = "modal_btn started_btn" @click ="layout()" > layout < / div > - - >
< / div >
2023-12-11 10:24:04 +08:00
< div class = "modal_img modal_img_x" v-mousewheel >
< div class = "mousewheel" >
< div class = "modal_img_item" v-for = "item,index in sketchboardList" :key="item" @click="deleteFile(item)" >
< img v-lazy = "item.imgUrl" >
< div class = "checked" >
< i class = "fi fi-rr-trash" > < / i >
< / div >
2023-08-21 10:55:39 +08:00
< / div >
< / div >
2023-12-11 10:24:04 +08:00
2023-08-21 10:55:39 +08:00
< / div >
< / div >
2024-04-15 16:09:33 +08:00
< div v-show = "openClick == 3" class="modal_accomplish" >
2024-04-03 17:39:44 +08:00
< div class = "input_border" >
< div class = "Guide_1_9_2 input_box" :class = "[inputShow?'active':'',driver__.driver?'showEvents':'']" >
2024-05-28 16:00:26 +08:00
< div class = "input_box_btnBox" >
< input class = "search_input"
@ click = "inputFocus()"
@ input = "ifMaximumLength"
@ keydown . enter = "getgenerate"
: maxlength = 'inputShow?0:9999'
: class = "{forbidden:generateCheckbox}"
: readonly = "generateCheckbox"
: placeholder = "$t('PrintboardUpload.inputContent1')"
v - model = "captionGeneration" >
< i class = "icon iconfont icon-xiala" :class = "{active:isTextarea,forbidden:generateCheckbox}" @click.stop ="setTextareaShow" > < / i >
< / div >
2024-05-20 13:07:42 +08:00
< textarea class = "search_textarea" v-show = "isTextarea && !generateCheckbox" @input="ifMaximumLength" @keydown.enter="getgenerate" :maxlength='inputShow?0:9999' :class="{forbidden:generateCheckbox}" :readonly="generateCheckbox" v-model="captionGeneration" >
< / textarea >
2024-04-29 15:12:27 +08:00
<!-- < div class = "generage_btn started_btn" @click.stop ="getgenerate" > {{ $ t ( ' PrintboardUpload.Generate ' ) }} < / div > - - >
< div v-show = "!isGenerate" class="generage_btn started_btn" @click.stop="getgenerate" >
{ { $t ( 'LibraryPage.Generate' ) } }
< / div >
< div v-show = "isGenerate && !remGenerate" class="generage_btn started_btn" @click.stop="getgenerate" >
< i class = "fi fi-br-loading" > < / i >
< / div >
< div v-show = "remGenerate" @click="removeGenerate" class="generage_btn started_btn" >
{ { $t ( 'Generate.Close' ) } }
< / div >
2024-04-24 13:36:27 +08:00
< span ref = "inputShowText" > < / span >
2024-04-03 17:39:44 +08:00
< / div >
2024-05-28 16:00:26 +08:00
< div class = "search_keyword" v-show = "isInputFocus" @click.stop="" >
< div class = "search_keyword_center" >
< div class = "search_keyword_center_left" >
< div v-for = "item in workspace?.keyWord?.[upload.level1Type]" @click.stop="cliSetKeyword(item.name)" class="search_keyword_center_item" > {{ item.name }} < / div >
< / div >
< / div >
< / div >
2024-04-15 16:09:33 +08:00
<!-- < div >
2024-04-03 17:39:44 +08:00
< div v-show = "!isUseGenerate" @click="setUseGenerate" > Printboard < / div >
< div v-show = "isUseGenerate" @click="setUseGenerate" > Generate < / div >
2024-04-15 16:09:33 +08:00
< / div > -- >
2023-08-21 10:55:39 +08:00
< / div >
2024-04-19 10:49:05 +08:00
< div class = "modal_img" :style = "[loadingShow?'overflow:hidden':'']" >
2024-04-29 15:12:27 +08:00
< div v-for = "item,index in generateList" class="modal_imgItem Guide_1_13_2" :class="[item.status != 'Success'?'hideEvents':'',driver__.driver?'showEvents':'',item?.checked?'active':'']" :key="item" >
<!-- < img v-show = "item.status != 'Success'" src="@/assets/images/homePage/loading.gif" alt="" > - - >
< img v-lazy = "item.imgUrl" @click.stop="generageAdd(item)" >
2024-04-25 15:08:43 +08:00
< sketchCategory :disignTypeList = "sketchCatecoryList" :generateList = "generateList" :item = "item" :driver__ = "driver__.driver" : driverClass = "{class1: 'Guide_1_13',class2:'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"
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-15 11:10:32 +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-12-15 11:10:32 +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-23 17:50:09 +08:00
< div class = "pin_block" >
2023-10-30 17:26:36 +08:00
< a-checkbox v -model :checked = "item.pin" > { { $t ( 'SketchboardUpload.PIN' ) } } < / a-checkbox >
2023-08-23 17:50:09 +08:00
< / div >
2023-08-21 10:55:39 +08:00
< / div >
2024-01-26 13:16:47 +08:00
< / div >
2024-01-26 14:43:20 +08:00
< div class = "mark_loading" v-show = "loadingShow" >
2024-01-24 10:34:05 +08:00
< a-spin size = "large" / >
2024-04-19 10:49:05 +08:00
2024-01-26 13:16:47 +08:00
< div v-show = "remGenerate" class="mark_loading_btn" :class="[driver__.driver?'hideEvents':'']" @click="removeGenerate" > {{ $ t ( ' Generate.Close ' ) }} < / div >
2024-01-24 10:34:05 +08:00
< / div >
2023-08-21 10:55:39 +08:00
< / div >
2024-01-26 14:43:20 +08:00
2023-08-21 10:55:39 +08:00
< / div >
2023-12-15 11:10:32 +08:00
< scaleImage ref = "scaleImage" > < / scaleImage >
2023-10-31 16:04:40 +08:00
2023-08-21 10:55:39 +08:00
<!-- < layout ref = "layout" :moodb_className = "moodb_className" :flex_direction = "flex_direction" @setmoodbClass ="setmoodbClass" > < / layout > - - >
2023-01-06 16:00:15 +08:00
< / div >
< / template >
< script lang = "ts" >
2024-04-30 11:45:19 +08:00
import { defineComponent , h , ref , createVNode , computed , inject , nextTick } from "vue" ;
2023-08-21 10:55:39 +08:00
import { LoadingOutlined } from "@ant-design/icons-vue" ;
import { getCookie } from "@/tool/cookie" ;
import { getUploadUrl } from "@/tool/util" ;
import GO from "@/tool/GO" ;
import { useStore } from "vuex" ;
2024-04-30 11:45:19 +08:00
import { message , Upload , Modal } from "ant-design-vue" ;
2023-08-21 10:55:39 +08:00
import Material from "@/component/HomePage/Material.vue" ;
import Generate from "@/component/HomePage/Generate.vue" ;
2023-12-15 11:10:32 +08:00
import scaleImage from "@/component/HomePage/scaleImage.vue" ;
2023-08-21 10:55:39 +08:00
import { Https } from "@/tool/https" ;
2023-11-23 15:31:40 +08:00
import { openGuide , driverObj _ _ } from "@/tool/guide" ;
2023-10-30 17:26:36 +08:00
import { useI18n } from "vue-i18n" ;
2024-04-30 11:45:19 +08:00
import { ExclamationCircleOutlined } from '@ant-design/icons-vue' ;
2024-04-25 14:39:28 +08:00
import sketchCategory from "@/component/HomePage/sketchCategory.vue" ;
2023-01-06 16:00:15 +08:00
export default defineComponent ( {
2024-04-25 14:39:28 +08:00
components : { Material , Generate , scaleImage , sketchCategory } ,
2023-08-21 10:55:39 +08:00
setup ( ) {
2023-12-15 11:10:32 +08:00
let fileList : any = ref ( [
] ) ;
2023-08-21 10:55:39 +08:00
let openClick : any = ref ( 1 ) ;
let generateList : any = ref ( [
] )
2023-11-23 15:31:40 +08:00
let store : any = useStore ( )
2023-08-21 10:55:39 +08:00
let generateCheckbox : any = ref ( )
2023-09-25 10:09:00 +08:00
let loadingShow = ref ( false )
2024-04-26 15:27:01 +08:00
let isGenerate = ref ( false )
2023-10-11 17:34:14 +08:00
2023-12-11 14:30:16 +08:00
let sketchCatecoryList : any = computed ( ( ) => {
return store . state . Workspace . workspacePosition
} )
2023-10-11 17:34:14 +08:00
let workspace : any = ref ( { } )
2023-10-20 17:21:45 +08:00
let inputShow = ref ( false )
let inputTime = ref ( )
2023-11-23 15:31:40 +08:00
let sketchboardList : any = computed ( ( ) => {
return store . state . UploadFilesModule . sketchboard
} )
2023-10-30 17:26:36 +08:00
let { t } = useI18n ( )
2023-11-23 15:42:36 +08:00
let driver _ _ : any = inject ( 'driver__' )
2023-11-16 09:44:53 +08:00
let isTest = ref ( )
2024-01-24 10:34:05 +08:00
let userInfo : any = { }
let generateTime : any = ref ( )
2024-04-29 15:12:27 +08:00
let generateProceedList = ref ( [ ] )
2024-01-26 13:16:47 +08:00
let remGenerate : any = ref ( false )
let remGenerateTime : any = ref ( )
2024-04-03 17:39:44 +08:00
let isUseGenerate = ref ( false )
let useGenerate : any = ref ( {
imgId : '' ,
imgUrl : 1 ,
checked : false ,
level2Type : '' ,
designType : '' ,
} )
2023-01-06 16:00:15 +08:00
return {
2023-08-21 10:55:39 +08:00
fileList ,
openClick ,
generateList ,
2023-11-23 15:31:40 +08:00
store ,
2023-09-25 10:09:00 +08:00
generateCheckbox ,
2023-10-11 17:34:14 +08:00
loadingShow ,
2024-04-26 15:27:01 +08:00
isGenerate ,
2023-10-11 17:34:14 +08:00
sketchCatecoryList ,
2023-10-20 17:21:45 +08:00
workspace ,
inputShow ,
inputTime ,
2023-11-23 15:31:40 +08:00
sketchboardList ,
2023-10-30 17:26:36 +08:00
t ,
2023-11-23 15:42:36 +08:00
driver _ _ ,
2023-11-16 09:44:53 +08:00
isTest ,
2024-01-24 10:34:05 +08:00
userInfo ,
generateTime ,
2024-01-26 13:16:47 +08:00
remGenerate ,
2024-04-29 15:12:27 +08:00
generateProceedList ,
2024-01-26 13:16:47 +08:00
remGenerateTime ,
2024-04-03 17:39:44 +08:00
useGenerate ,
isUseGenerate ,
2023-08-21 10:55:39 +08:00
} ;
2023-01-06 16:00:15 +08:00
} ,
2023-08-21 10:55:39 +08:00
data ( ) {
return {
swtich _type : "upload" ,
indicator : h ( LoadingOutlined , {
2023-01-06 16:00:15 +08:00
style : {
2023-08-21 10:55:39 +08:00
fontSize : "2.4rem" ,
2023-01-06 16:00:15 +08:00
} ,
spin : true ,
} ) ,
2023-08-21 10:55:39 +08:00
upload : {
isPin : 0 ,
level1Type : "Sketchboard" ,
2023-12-11 14:30:16 +08:00
gender : '' ,
2023-08-21 10:55:39 +08:00
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
2023-01-06 16:00:15 +08:00
} ,
2023-08-21 10:55:39 +08:00
token : "" ,
uploadUrl : "" ,
captionGeneration : '' ,
2024-05-20 13:07:42 +08:00
isTextarea : false ,
2024-05-28 16:00:26 +08:00
isInputFocus : false ,
2023-08-21 10:55:39 +08:00
} ;
2023-01-06 16:00:15 +08:00
} ,
2023-08-21 10:55:39 +08:00
computed : {
getSketchLabel ( value ) {
return ( value : any ) => {
let lable = "" ;
for ( let item of this . sketchCatecoryList ) {
if ( item . value === value ) {
lable = item . label ;
break ;
2023-01-06 16:00:15 +08:00
}
}
2023-08-21 10:55:39 +08:00
return lable ;
} ;
} ,
2023-01-06 16:00:15 +08:00
} ,
2023-12-11 10:24:04 +08:00
directives : {
mousewheel : {
mounted ( el ) {
// let bodyDom:any = document.getElementsByClassName('right_content_block')[0]
let dom : any = document . getElementsByClassName ( 'modal_img_x' )
let mouseover = ( ) => {
// bodyDom.classList.add('active')
}
let mouseleave = ( ) => {
// bodyDom.classList.remove('active')
}
dom . forEach ( ( item : any ) => {
item . addEventListener ( 'mouseover' , mouseover )
item . addEventListener ( 'mouseleave' , mouseleave )
} ) ;
el . addEventListener ( 'wheel' , ( e : WheelEvent ) => {
let num = 0
if ( e . deltaY > 0 ) {
num = 25
} else {
num = - 25
}
el . scrollBy ( num , 0 ) ;
} , true )
}
}
} ,
2023-10-11 17:34:14 +08:00
watch : {
2024-05-28 16:00:26 +08:00
workspace ( newVal , oldVal ) {
2024-01-04 09:40:28 +08:00
this . upload . gender = newVal ? . sexEnum ? . name
2023-10-11 17:34:14 +08:00
} ,
2023-11-23 15:31:40 +08:00
sketchboardList : {
handler ( newVal : any , oldVal : any ) {
2023-11-29 10:11:19 +08:00
if ( newVal . length >= 2 && this . driver _ _ . driver && newVal . length != oldVal . length ) {
2023-12-01 15:02:37 +08:00
if ( this . driver _ _ . driver ) {
2023-12-08 16:27:35 +08:00
// driverObj__.moveTo(22)
2023-12-01 15:02:37 +08:00
}
}
}
} ,
driver _ _ : {
handler ( newVal , oldVal ) {
2023-12-08 17:37:26 +08:00
if ( newVal . index >= 15 && newVal . index <= 16 ) {
2023-12-01 15:02:37 +08:00
if ( this . driver _ _ . driver ) {
// driverObj__.moveTo(15)
}
} else {
2023-11-23 15:31:40 +08:00
}
}
}
2023-10-11 17:34:14 +08:00
} ,
2023-08-21 10:55:39 +08:00
mounted ( ) {
2024-01-24 10:34:05 +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-21 10:22:01 +08:00
let isTest : any = getCookie ( 'isTest' )
this . isTest = JSON . parse ( isTest )
2023-08-21 10:55:39 +08:00
this . uploadUrl = getUploadUrl ( ) ;
2024-05-28 16:00:26 +08:00
this . workspace = computed ( ( ) => {
2023-10-11 17:34:14 +08:00
return this . store ? . state ? . Workspace ? . workspace
} )
2023-12-08 16:27:35 +08:00
if ( this . driver _ _ . driver ) {
2023-12-12 14:34:57 +08:00
this . captionGeneration = 'A detailed sketch of an elegant blouse with a high neck, flowing sleeves, and lace trim, highlighting texture and style.'
2023-12-08 16:27:35 +08:00
} else {
this . captionGeneration = ''
}
2023-01-06 16:00:15 +08:00
} ,
2023-08-21 10:55:39 +08:00
methods : {
2024-04-03 17:39:44 +08:00
setUseGenerate ( ) {
this . isUseGenerate = ! this . isUseGenerate
let sketchMaterialFiles : any = computed ( ( ) => {
return this . store . state . UploadFilesModule . sketchMaterialFiles
} )
let Material : any = this . $refs . Material
Material . setUseGenerate ( sketchMaterialFiles . value )
if ( this . isUseGenerate ) {
let generate : any = this . $refs . Generate
generate . checkbox . forEach ( ( item : any ) => {
if ( item . name == "text-image" ) {
item . type = true
} else {
item . type = false
}
} )
this . generateCheckbox = false
}
} ,
setSetchboardGenerate ( item : any ) {
this . useGenerate . imgId = item . imgId
this . useGenerate . imgUrl = item . imgUrl
this . useGenerate . level2Type = item . level2Type
this . useGenerate . designType = item . designType
let Material : any = this . $refs . Material
let generate : any = this . $refs . Generate
if ( item . designType == 'collection' ) {
Material . setUseGenerate ( [ ] )
} else {
generate . sketchboardList . forEach ( ( item : any ) => {
item . checked = false
} ) ;
}
} ,
2023-08-21 10:55:39 +08:00
open ( num : Number ) {
this . openClick = num ;
if ( num == 2 ) {
let material : any = this . $refs . Material ;
2023-09-12 10:11:27 +08:00
material . init ( "Sketchboard" ) ;
2023-08-21 10:55:39 +08:00
} else if ( num == 3 ) {
// let Generate:any = this.$refs.Generate
// Generate.init('generate')
2023-12-08 16:27:35 +08:00
nextTick ( ) . then ( ( ) => {
if ( this . driver _ _ . driver ) {
driverObj _ _ . moveNext ( )
}
} )
2023-08-21 10:55:39 +08:00
}
2023-01-06 16:00:15 +08:00
} ,
2024-01-02 13:04:57 +08:00
scaleImage ( index : any ) {
2023-12-15 11:10:32 +08:00
let scaleImage : any = this . $refs . scaleImage
2024-01-02 13:04:57 +08:00
scaleImage . init ( this . generateList , index )
2023-12-15 11:10:32 +08:00
} ,
2023-08-21 10:55:39 +08:00
getgenerateCheckbox ( value : any ) {
this . generateCheckbox = value
} ,
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 : '' ,
}
this . sketchCatecoryList . forEach ( ( item : any ) => {
2024-04-25 14:39:28 +08:00
if ( item . value == res . data . level2Type ) {
2024-01-02 13:04:57 +08:00
category . value = item ? . value
category . name = item ? . name
}
} ) ;
2023-12-13 16:09:17 +08:00
file . imgUrl = res . data . url ;
file . resData = res . data ;
// file.pin = false;
//category用来数据处理
2024-04-25 14:39:28 +08:00
file . categoryValue = category ? . name ;
file . category = category ? . value ;
2023-12-13 16:09:17 +08:00
file . categoryShow = false ;
file . id _ = GO . id ++
file . id = res . data . id
file . type _ = {
type1 : 'upload' ,
type2 : 'Sketchboard'
} ;
let fileList = this . fileList . filter (
( v : any ) => v . status === "done"
) ;
this . store . commit ( "setSketchboardFile" , fileList ) ;
} else {
bor = false
}
} else if ( file . status === "error" ) {
bor = false
}
if ( ! bor ) {
let index = - 1 ;
let res : any = JSON . parse ( file . xhr . response ) ;
2023-08-21 10:55:39 +08:00
this . fileList . forEach ( ( ele : any , index1 : any ) => {
if ( file . uid === ele . uid ) {
index = index1 ;
2023-01-06 16:00:15 +08:00
}
} ) ;
2023-08-21 10:55:39 +08:00
if ( index > - 1 ) {
this . fileList . splice ( index , 1 ) ;
2023-01-06 16:00:15 +08:00
}
2023-12-13 16:09:17 +08:00
// message.warning(file.name + this.t('SketchboardUpload.jsContent1'));
message . warning ( res . errMsg ) ;
}
2023-01-06 16:00:15 +08:00
} ,
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" ;
2023-01-06 16:00:15 +08:00
if ( ! isJpgOrPng ) {
2023-11-16 17:23:17 +08:00
message . info ( this . t ( 'SketchboardUpload.jsContent2' ) ) ;
2023-01-06 16:00:15 +08:00
}
const isLt2M = file . size / 1024 / 1024 < 2 ;
if ( ! isLt2M ) {
2023-11-16 17:23:17 +08:00
message . info ( this . t ( 'SketchboardUpload.jsContent3' ) ) ;
2023-01-06 16:00:15 +08:00
}
return ( isJpgOrPng && isLt2M ) || Upload . LIST _IGNORE ;
} ,
2024-05-20 13:07:42 +08:00
setTextareaShow ( ) {
if ( this . generateCheckbox ) return
this . isTextarea = ! this . isTextarea
} ,
2024-05-28 16:00:26 +08:00
cliSetKeyword ( value : any ) {
let str = ''
if ( this . captionGeneration [ this . captionGeneration . length - 1 ] != ',' && this . captionGeneration . length != 0 ) {
str = ','
}
this . captionGeneration += str + value
} ,
2023-10-20 17:21:45 +08:00
ifMaximumLength ( ) {
clearTimeout ( this . inputTime )
let inputBox = document . getElementsByClassName ( 'sketchboard_upload_modal' ) [ 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
2023-11-16 09:44:53 +08:00
2024-05-22 10:44:48 +08:00
if ( this . captionGeneration ? . split ( /\s+/ ) . length > 250 ) {
2024-04-24 13:36:27 +08:00
( this . $refs . inputShowText as any ) . innerHTML = this . t ( 'SketchboardUpload.maximumLength' )
2023-10-20 17:21:45 +08:00
this . inputShow = true
} else {
this . inputShow = false
}
} , 500 )
} ,
2024-05-28 16:00:26 +08:00
inputFocus ( ) {
if ( this . isInputFocus ) return
if ( this . generateCheckbox ) 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
deleteFile ( item : any ) {
2023-12-11 15:12:53 +08:00
if ( item ? . type _ ? . type1 == 'generate' || item ? . type _ ? . type1 == 'material' ) {
2023-12-11 11:02:48 +08:00
item . jsContent1 = this . t ( 'uploadFile.jsContent1' , { maxImg : 20 } )
2023-08-21 10:55:39 +08:00
this . store . commit ( "addGenerateMaterialFils" , item ) ;
} else {
2023-09-12 10:11:27 +08:00
this . fileList = this . store . state . UploadFilesModule . sketchboardFiles
2023-08-21 10:55:39 +08:00
let moodboard
2023-09-12 10:11:27 +08:00
this . store . state . UploadFilesModule . sketchboardFiles . forEach ( ( items : any , index : Number ) => {
2023-08-21 10:55:39 +08:00
if ( items . id _ == item . id _ ) {
moodboard = index
}
} )
this . fileList . splice ( moodboard , 1 )
this . store . commit ( "setSketchboardFile" , this . fileList ) ;
}
2023-01-06 16:00:15 +08:00
} ,
2023-09-25 10:09:00 +08:00
likeFile ( item : any , str : string ) {
if ( str == 'like' ) {
let data = {
generateDetailId : item . id ,
level1Type : "Sketchboard" ,
level2Type : item . category ,
2023-11-16 09:44:53 +08:00
gender : this . workspace . sex ,
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
}
2023-11-03 11:16:42 +08:00
Https . axiosGet ( Https . httpUrls . generateDislike , { params : data } ) . then (
2023-09-25 10:09:00 +08:00
( rv ) => {
item . like = false
}
) . catch ( res => {
} ) ;
2023-09-12 10:11:27 +08:00
}
} ,
2024-04-30 11:45:19 +08:00
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 )
}
} ) ;
} ,
2023-08-21 10:55:39 +08:00
recollection ( ) {
2024-04-03 17:39:44 +08:00
this . isUseGenerate = false
this . useGenerate = {
imgId : '' ,
imgUrl : 1 ,
checked : false ,
level2Type : '' ,
designType : ''
}
2023-08-23 17:50:09 +08:00
let arr = JSON . parse (
2023-08-21 10:55:39 +08:00
JSON . stringify (
this . store . state . UploadFilesModule . allBoardData
2023-08-23 17:50:09 +08:00
. sketchboardFiles
2023-08-21 10:55:39 +08:00
)
) ;
2023-08-23 17:50:09 +08:00
let setboard = {
generate : [ ] as any ,
material : [ ] as any ,
moodboard : [ ] as any ,
}
arr . forEach ( ( v : any ) => {
if ( v . type _ . type1 == 'generate' ) {
setboard . generate . push ( v )
} else if ( v . type _ . type1 == 'material' ) {
setboard . material . push ( v )
} else {
setboard . moodboard . push ( v )
}
} )
this . store . commit ( "setSketchboardGenerateFiles" , setboard . generate ) ;
this . store . commit ( "setSketchboardMaterialFiles" , setboard . material ) ;
this . store . commit ( "setSketchboardFile" , setboard . moodboard ) ;
this . fileList = setboard . moodboard
2023-01-06 16:00:15 +08:00
} ,
2023-08-21 10:55:39 +08:00
confirmSelect ( event : any ) {
for ( let item of event ) {
2023-01-06 16:00:15 +08:00
let data = {
2023-08-21 10:55:39 +08:00
imgUrl : item . url ,
resData : item ,
pin : false ,
status : "done" ,
category : item . level2Type || "Outwear" ,
categoryShow : false ,
} ;
if ( this . fileList . length == 15 ) {
2023-09-25 10:09:00 +08:00
message . warning (
2023-10-30 17:26:36 +08:00
this . t ( 'SketchboardUpload.jsContent4' )
2023-08-21 10:55:39 +08:00
) ;
break ;
2023-01-06 16:00:15 +08:00
}
2023-08-21 10:55:39 +08:00
this . fileList . push ( data ) ;
2023-01-06 16:00:15 +08:00
}
2023-08-21 10:55:39 +08:00
this . store . commit ( "setSketchboardFile" , this . fileList ) ;
} ,
//发送请求生成图片
getgenerate ( ) {
2024-01-26 13:16:47 +08:00
clearInterval ( this . remGenerateTime )
this . remGenerate = false
2024-01-04 14:51:57 +08:00
// this.sketchCatecoryList = this.store.state.Workspace.workspacePosition
let sketchCatecoryList = this . sketchCatecoryList
2024-01-30 13:33:08 +08:00
// if(this.isTest){//试用用户禁止使用
// message.warning(
// this.t('isTest.available')
// );
// return
// }
2024-04-26 15:27:01 +08:00
if ( this . isGenerate ) {
2023-12-29 15:33:05 +08:00
return
}
2023-08-21 10:55:39 +08:00
let generage : any = this . $refs . Generate
let generateType = generage . checkbox . filter ( ( v : any ) => v . type ) [ 0 ] . name
let data = {
generateType : generateType ,
2024-04-24 14:37:46 +08:00
// designType:this.useGenerate.designType,
designType : 'collection' ,
2024-04-03 17:39:44 +08:00
collectionElementId : this . useGenerate . imgId ,
level1Type : this . upload . level1Type ,
level2Type : this . useGenerate . level2Type ,
2023-08-21 10:55:39 +08:00
text : this . captionGeneration ,
timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
2024-01-24 10:34:05 +08:00
userId : this ? . userInfo ? . userId ,
2024-01-30 13:33:08 +08:00
isTestUser : this . driver _ _ . driver ? false : this . isTest ,
2023-10-31 10:03:30 +08:00
version : 1 , //为1就是Print
2023-10-20 17:21:45 +08:00
gender : this . workspace . sex ,
2023-08-21 10:55:39 +08:00
}
2023-12-15 15:23:34 +08:00
if ( generateType == 'image' ) {
2024-04-03 17:39:44 +08:00
if ( this . useGenerate . imgId ) {
2023-12-15 15:23:34 +08:00
data . text = ''
2023-08-21 10:55:39 +08:00
} else {
2023-11-16 17:23:17 +08:00
message . info (
2023-12-15 15:23:34 +08:00
this . t ( 'PrintboardUpload.jsContent4' )
2023-08-21 10:55:39 +08:00
) ;
return
}
} else if ( generateType == 'text' ) {
2023-09-12 10:11:27 +08:00
data . collectionElementId = ''
data . level2Type = ''
2023-12-15 15:23:34 +08:00
// this.beforeUpload(false)
2023-08-21 10:55:39 +08:00
if ( this . captionGeneration ) {
2023-10-20 17:21:45 +08:00
let arr = this . captionGeneration . 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-12-15 15:23:34 +08:00
this . t ( 'PrintboardUpload.jsContent5' )
) ;
return
}
} else {
message . info (
this . t ( 'PrintboardUpload.jsContent6' )
) ;
return
}
} else if ( generateType == 'text-image' ) {
2024-04-03 17:39:44 +08:00
if ( this . useGenerate . imgId ) {
2023-12-15 15:23:34 +08:00
if ( this . captionGeneration ) {
let arr = this . captionGeneration . split ( /\s+/ ) . length
2024-05-20 10:45:30 +08:00
if ( arr > 250 ) {
2023-12-15 15:23:34 +08:00
message . info (
this . t ( 'PrintboardUpload.jsContent5' )
) ;
return
}
} else {
message . info (
this . t ( 'PrintboardUpload.jsContent6' )
2023-10-20 17:21:45 +08:00
) ;
return
}
2023-08-21 10:55:39 +08:00
} else {
2023-11-16 17:23:17 +08:00
message . info (
2023-12-15 15:23:34 +08:00
this . t ( 'PrintboardUpload.jsContent4' )
2023-08-21 10:55:39 +08:00
) ;
return
}
}
2023-12-30 10:02:28 +08:00
2024-04-26 15:27:01 +08:00
this . isGenerate = true
2024-01-24 10:34:05 +08:00
Https . axiosPost ( Https . httpUrls . generatePrepare , data ) . then (
2023-08-21 10:55:39 +08:00
( rv ) => {
2024-01-30 13:33:08 +08:00
if ( data . isTestUser ) {
if ( rv . leftUsageCount >= 1 ) {
2024-04-19 10:49:05 +08:00
message . warning ( this . t ( 'Generate.jsContent8' , { num : rv . leftUsageCount , str : this . t ( 'collectionModal.Printboard' ) } ) ) ;
2024-01-30 13:33:08 +08:00
} else if ( rv . leftUsageCount == 0 ) {
2024-04-19 10:49:05 +08:00
message . warning ( this . t ( 'Generate.jsContent9' , { str : this . t ( 'collectionModal.Printboard' ) } ) ) ;
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.generateList.unshift(arr)
// });
this . setGenerate ( rv . uniqueId )
2023-08-21 10:55:39 +08:00
}
) . catch ( res => {
2024-04-26 15:27:01 +08:00
this . isGenerate = false
2023-08-21 10:55:39 +08:00
} ) ;
} ,
2024-04-29 15:12:27 +08:00
setGenerate ( dataList : any ) {
2024-01-24 10:34:05 +08:00
let generage : any = this . $refs . Generate
let sketchCatecoryList = this . sketchCatecoryList
2024-01-26 13:16:47 +08:00
let categoryValue : any
2024-04-29 15:12:27 +08:00
let data = dataList
2024-04-30 13:21:15 +08:00
let dataNum = dataList . length
2024-04-29 15:12:27 +08:00
this . remGenerateTime = setTimeout ( ( ) => {
this . remGenerate = true
} , 10000 )
2024-01-26 13:16:47 +08:00
generage . sketchboardList . forEach ( ( item : any ) => {
if ( item . checked ) {
categoryValue = item . categoryValue
}
} ) ;
2024-01-24 10:34:05 +08:00
this . generateTime = setInterval ( ( ) => {
2024-04-29 15:12:27 +08:00
// let data = this.generateList.filter((item:any)=>item.status != 'Success').map((obj:any) => obj.taskId);
2024-04-19 10:49:05 +08:00
Https . axiosPost ( Https . httpUrls . generateResult , data ) . then (
2024-01-24 10:34:05 +08:00
( rv ) => {
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 . sketchCatecoryList . forEach ( ( itemCategory : any ) => {
if ( itemCategory . value == element . category ) {
element . categoryValue = itemCategory ? . name
element . category = itemCategory ? . value
}
} ) ;
this . generateList . unshift ( element )
data = data . filter ( ( item : any ) => item !== element . taskId ) ;
}
2024-04-19 10:49:05 +08:00
} ) ;
2024-04-30 13:11:58 +08:00
if ( ( data . length == 0 ) || ( rv . filter ( ( item : any ) => item . status == 'Invalid' ) . length == data . length ) ) {
2024-04-30 13:21:15 +08:00
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-04-19 10:49:05 +08:00
nextTick ( ) . then ( ( ) => {
if ( this . driver _ _ . driver ) {
driverObj _ _ . moveNext ( )
}
} )
clearInterval ( this . generateTime )
clearInterval ( this . remGenerateTime )
this . remGenerate = false
2024-04-30 13:11:58 +08:00
this . isGenerate = false
2024-04-19 10:49:05 +08:00
}
2024-01-24 10:34:05 +08:00
}
}
) . catch ( res => {
2024-01-31 17:11:10 +08:00
clearInterval ( this . generateTime )
clearInterval ( this . remGenerateTime )
2024-04-30 13:11:58 +08:00
this . remGenerate = false
2024-04-26 15:27:01 +08:00
this . isGenerate = false
2024-01-24 10:34:05 +08:00
} ) ;
2024-04-19 10:49:05 +08:00
} , 1000 )
2024-01-24 10:34:05 +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-04-19 10:49:05 +08:00
let data = { uniqueId : str , userId : this ? . userInfo ? . userId , timeZone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone }
2024-01-24 10:34:05 +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:34:05 +08:00
}
) . catch ( res => {
} ) ;
}
} ,
2023-08-21 10:55:39 +08:00
generageAdd ( item : any ) {
item . type _ = {
type1 : "generate" ,
type2 : 'Sketchboard' ,
} ,
2023-09-12 10:11:27 +08:00
item . resData = JSON . parse ( JSON . stringify ( item ) )
2023-12-11 11:02:48 +08:00
item . jsContent1 = this . t ( 'uploadFile.jsContent1' , { maxImg : 20 } )
2023-08-21 10:55:39 +08:00
this . store . commit ( "addGenerateMaterialFils" , item ) ;
2023-12-08 16:27:35 +08:00
nextTick ( ) . then ( ( ) => {
if ( this . driver _ _ . driver ) {
driverObj _ _ . moveNext ( )
}
} )
2023-08-21 10:55:39 +08:00
}
} ,
} ) ;
2023-01-06 16:00:15 +08:00
< / script >
< style lang = "less" scoped >
2023-08-21 10:55:39 +08:00
. sketchboard _upload _modal {
height : 100 % ;
display : flex ;
. modal _left {
2024-01-10 14:09:44 +08:00
padding - top : calc ( 4 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
width : 47 % ;
2023-09-12 10:11:27 +08:00
display : flex ;
flex - direction : column ;
2023-08-21 10:55:39 +08:00
. switch _type _list {
2023-01-06 16:00:15 +08:00
display : flex ;
align - items : center ;
2023-08-21 10:55:39 +08:00
position : relative ;
2023-01-06 16:00:15 +08:00
2023-08-21 10:55:39 +08:00
. switch _type _item {
display : flex ;
align - items : center ;
2024-01-10 14:09:44 +08:00
// padding: 0 2rem*1.2);
height : calc ( 4 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
background : # fff ;
2024-01-10 14:09:44 +08:00
border - radius : calc ( 0.8 rem * 1.2 ) ;
line - height : calc ( 4 rem * 1.2 ) ;
2023-11-27 16:25:32 +08:00
font - size : var ( -- aida - fsize1 - 8 ) ;
2024-01-10 14:09:44 +08:00
// margin-right: 2.2rem*1.2);
margin - right : calc ( 8 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
color : # 000 ;
cursor : pointer ;
position : relative ;
text - align : center ;
transform - origin : left ;
transform : scale ( 1 ) ;
transition : 0.3 s all ;
& . switch _type _item : : before {
position : absolute ;
content : "" ;
display : block ;
background : # 000 ;
2024-01-10 14:09:44 +08:00
height : calc ( .3 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
left : 50 % ;
transform : translateX ( - 50 % ) ;
2024-01-10 14:09:44 +08:00
bottom : calc ( .6 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
width : 0 px ;
transition : 0.3 s all ;
}
& . select _swtich {
color : # 000 ;
// font-weight: 900;
transform : scale ( 1.15 ) ;
}
& . select _swtich : : before {
width : 100 % ;
}
2023-01-06 16:00:15 +08:00
2023-08-21 10:55:39 +08:00
. switch _icon {
2024-01-10 14:09:44 +08:00
font - size : calc ( 1.8 rem * 1.2 ) ;
margin - right : calc ( 0.8 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
}
2023-01-06 16:00:15 +08:00
}
}
2023-08-21 10:55:39 +08:00
. sketchboard _body {
2024-01-10 14:09:44 +08:00
// height: calc(100% - 5rem*1.2));
2023-11-06 15:19:52 +08:00
flex : 1 ;
2024-01-10 14:09:44 +08:00
padding - top : calc ( 2.5 rem * 1.2 ) ;
height : calc ( 30 rem * 1.2 ) ;
2023-11-06 15:19:52 +08:00
overflow - x : hidden ;
border - right : 1 px solid # e5e5e5 ;
display : flex ;
flex - direction : column ;
2023-08-21 10:55:39 +08:00
& . moodboard _body : : - webkit - scrollbar {
display : none ;
}
. upload _img _body {
2024-01-10 14:09:44 +08:00
height : calc ( 100 % - 3 rem * 1.2 ) ;
2023-01-06 16:00:15 +08:00
overflow - y : auto ;
2024-01-10 14:09:44 +08:00
margin - bottom : calc ( 1 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
& . upload _img _body : : - webkit - scrollbar {
display : none ;
}
2023-01-06 16:00:15 +08:00
}
2023-08-21 10:55:39 +08:00
. upload _file _item {
2024-01-10 14:09:44 +08:00
margin : 0 calc ( 2 rem * 1.2 ) calc ( 4 rem * 1.2 ) 0 ;
// margin: 0 2rem*1.2) 2rem*1.2) 0;
2023-08-21 10:55:39 +08:00
display : inline - block ;
2024-01-10 14:09:44 +08:00
width : calc ( 10 rem * 1.2 ) ;
height : calc ( 10 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
border : 1 px solid # f5f5f5 ;
vertical - align : top ;
position : relative ;
img {
width : 100 % ;
height : 100 % ;
}
& . upload _component {
border : none ;
}
: deep ( . ant - upload - picture - card - wrapper ) {
position : absolute ;
top : 50 % ;
left : 50 % ;
transform : translate ( - 50 % , - 50 % ) ;
}
: deep ( . ant - upload - select - picture - card ) {
2024-01-10 14:09:44 +08:00
width : calc ( 6 rem * 1.2 ) ;
height : calc ( 6 rem * 1.2 ) ;
border : calc ( 0.3 rem * 1.2 ) solid # ededed ;
border - radius : calc ( 1 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
margin : 0 ;
}
. checked {
position : absolute ;
top : 0 ;
left : 0 ;
width : 100 % ;
height : 100 % ;
cursor : pointer ;
display : none ;
justify - content : center ;
align - items : center ;
}
& . modal _img _item : hover . checked {
display : flex ;
}
. upload _file _item _content {
2023-01-06 16:00:15 +08:00
display : flex ;
align - items : center ;
justify - content : center ;
height : 100 % ;
position : relative ;
cursor : pointer ;
. upload _img {
display : block ;
max - height : 100 % ;
max - width : 100 % ;
}
2023-09-12 10:11:27 +08:00
& : hover . delete _like _file _block {
2024-05-16 17:46:22 +08:00
// display: block;
opacity : 1 ;
2023-09-12 10:11:27 +08:00
}
2023-01-06 16:00:15 +08:00
2023-08-23 17:50:09 +08:00
2023-01-06 16:00:15 +08:00
}
2023-08-23 17:50:09 +08:00
2023-08-21 10:55:39 +08:00
}
2023-11-06 15:19:52 +08:00
. upload _max _tip {
display : flex ;
align - items : center ;
justify - content : center ;
2024-01-10 14:09:44 +08:00
font - size : calc ( 1.4 rem * 1.2 ) ;
2023-11-06 15:19:52 +08:00
color : # 030303 ;
. icon - zhuyi {
2024-01-10 14:09:44 +08:00
font - size : calc ( 1.6 rem * 1.2 ) ;
margin - right : calc ( 0.7 rem * 1.2 ) ;
2023-11-06 15:19:52 +08:00
}
}
2023-01-06 16:00:15 +08:00
}
2023-08-21 10:55:39 +08:00
}
2023-09-12 10:11:27 +08:00
2023-08-21 10:55:39 +08:00
. modal _right {
flex : 1 ;
2024-01-10 14:09:44 +08:00
margin - left : calc ( 3 rem * 1.2 ) ;
2023-08-23 17:50:09 +08:00
display : flex ;
flex - direction : column ;
2023-08-21 10:55:39 +08:00
. modal _layout , . modal _accomplish {
. modal _text {
2023-11-27 16:25:32 +08:00
font - size : var ( -- aida - fsize1 - 4 ) ;
2023-08-21 10:55:39 +08:00
font - weight : 400 ;
color : rgba ( 0 , 0 , 0 , 0.45 ) ;
display : flex ;
align - items : center ;
justify - content : space - between ;
}
}
. modal _layout {
. modal _img {
2024-01-10 14:09:44 +08:00
width : calc ( 40 rem * 1.2 ) ;
height : calc ( 5 rem * 1.2 ) ;
2023-12-11 10:24:04 +08:00
// overflow-x: hidden;
2023-08-21 10:55:39 +08:00
display : flex ;
flex - direction : row ;
2023-12-11 10:24:04 +08:00
overflow - y : hidden ;
2023-08-21 10:55:39 +08:00
& . modal _img : : - webkit - scrollbar {
display : none ;
}
2023-12-11 10:24:04 +08:00
. mousewheel {
display : flex ;
}
2023-08-21 10:55:39 +08:00
. modal _img _item {
2024-01-10 14:09:44 +08:00
width : calc ( 4 rem * 1.2 ) ;
height : calc ( 4 rem * 1.2 ) ;
margin : 0 calc ( 1 rem * 1.2 ) calc ( 1 rem * 1.2 ) 0 ;
2023-08-21 10:55:39 +08:00
position : relative ;
2023-10-11 17:34:14 +08:00
text - align : center ;
2023-08-21 10:55:39 +08:00
cursor : pointer ;
2023-11-06 15:19:52 +08:00
overflow : hidden ;
2023-12-11 10:24:04 +08:00
flex - shrink : 0 ;
2023-08-21 10:55:39 +08:00
img {
2023-10-11 17:34:14 +08:00
// width: 100%;
width : auto ;
2023-08-21 10:55:39 +08:00
height : 100 % ;
2023-10-11 17:34:14 +08:00
object - fit : contain ;
2023-08-21 10:55:39 +08:00
}
. checked {
position : absolute ;
top : 0 ;
left : 0 ;
width : 100 % ;
height : 100 % ;
cursor : pointer ;
display : none ;
justify - content : center ;
align - items : center ;
}
& . modal _img _item : hover . checked {
display : flex ;
}
}
}
}
. modal _accomplish {
2024-01-10 14:09:44 +08:00
// margin-top: 2rem*1.2);
2024-04-19 10:49:05 +08:00
overflow - x : hidden ;
2024-01-10 14:09:44 +08:00
height : calc ( 30 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
display : flex ;
flex - direction : column ;
2023-08-23 17:50:09 +08:00
flex : 1 ;
2023-11-02 11:00:38 +08:00
position : relative ;
. mark _loading {
position : absolute ;
z - index : 99 ;
}
2023-10-20 17:21:45 +08:00
// overflow-x: hidden;
2023-08-23 17:50:09 +08:00
& . modal _accomplish : : - webkit - scrollbar {
display : none ;
}
2023-08-21 10:55:39 +08:00
. modal _text {
2024-01-10 14:09:44 +08:00
padding - top : calc ( 2 rem * 1.2 ) ;
padding - block : calc ( 2 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
}
. input _box {
2023-08-23 17:50:09 +08:00
z - index : 1 ;
2023-08-21 10:55:39 +08:00
input {
& . forbidden {
cursor : not - allowed ;
}
}
}
. modal _img {
flex : 1 ;
display : flex ;
flex - wrap : wrap ;
justify - content : flex - start ;
2023-10-31 16:04:40 +08:00
align - content : flex - start ;
position : relative ;
2023-08-21 10:55:39 +08:00
. modal _imgItem {
2024-01-10 14:09:44 +08:00
margin : 0 calc ( 2 rem * 1.2 ) calc ( 4 rem * 1.2 ) 0 ;
2023-08-21 10:55:39 +08:00
display : inline - block ;
2024-01-10 14:09:44 +08:00
width : calc ( 10 rem * 1.2 ) ;
height : calc ( 10 rem * 1.2 ) ;
2023-08-21 10:55:39 +08:00
border : 1 px solid # f5f5f5 ;
position : relative ;
cursor : pointer ;
2023-09-12 10:11:27 +08:00
& : hover . delete _like _file _block {
display : block ;
2024-05-23 13:25:19 +08:00
opacity : 1 ;
2023-09-12 10:11:27 +08:00
}
2023-08-21 10:55:39 +08:00
img {
object - fit : cover ;
width : 100 % ;
height : 100 % ;
}
& . active {
opacity : 0.5 ;
// border: 2px solid;
2024-01-10 14:09:44 +08:00
border - radius : calc ( 1 rem * 1.2 ) ;
2023-09-12 10:11:27 +08:00
transform : scale ( 0.9 ) ;
// img {
// }
. operate _file _block {
pointer - events : none
}
. pin _block {
pointer - events : none
}
. delete _like _file _block {
pointer - events : none
2023-08-21 10:55:39 +08:00
}
}
2023-08-23 17:50:09 +08:00
2023-08-21 10:55:39 +08:00
}
}
}
}
2023-01-06 16:00:15 +08:00
}
< / style >