Files
aida_front/src/component/HomePage/MoodboardUpload.vue

740 lines
22 KiB
Vue
Raw Normal View History

2023-01-06 16:00:15 +08:00
<template>
<div class="collection_modal_item">
2023-12-08 16:27:35 +08:00
<div class="modal_left Guide_1_1_2" :class="[driver__.driver?'showEvents':'']">
<div class="switch_type_list" :class="[driver__.driver?'hideEvents':'']">
2023-08-05 12:52:56 +08:00
<div
2023-08-21 10:55:39 +08:00
@click.stop="open(1)"
2023-08-05 12:52:56 +08:00
class="switch_type_item"
:class="[openClick == 1 ? 'select_swtich' : '']"
>
2023-10-30 17:26:36 +08:00
<span>{{ $t('MoodboardUpload.Upload') }}</span>
2023-08-05 12:52:56 +08:00
</div>
<div
2023-08-21 10:55:39 +08:00
@click.stop="open(2)"
2023-08-05 12:52:56 +08:00
class="switch_type_item"
:class="[openClick == 2 ? 'select_swtich' : '']"
>
2023-10-30 17:26:36 +08:00
<span>{{ $t('MoodboardUpload.Library') }}</span>
2023-08-05 12:52:56 +08:00
</div>
<div
2023-08-21 10:55:39 +08:00
@click.stop="open(3)"
2023-11-23 15:31:40 +08:00
class="switch_type_item Guide_1_4"
2023-08-05 12:52:56 +08:00
:class="[openClick == 3 ? 'select_swtich' : '']"
>
2023-10-30 17:26:36 +08:00
<span>{{ $t('MoodboardUpload.Generate') }}</span>
2023-08-05 12:52:56 +08:00
</div>
2023-01-06 16:00:15 +08:00
</div>
2023-08-05 12:52:56 +08:00
<div v-show="openClick == 1" class="moodboard_body">
<div class="upload_img_body scroll_style">
<div class="upload_item">
<div
class="upload_file_item"
v-for="(file, index) in fileList"
:key="file"
>
<div
class="upload_file_item_content"
2023-10-20 17:21:45 +08:00
v-show="file?.status === 'uploading'"
2023-01-06 16:00:15 +08:00
>
2023-08-05 12:52:56 +08:00
<a-spin
:indicator="indicator"
tip="Uploading..."
/>
2023-01-06 16:00:15 +08:00
</div>
2023-08-05 12:52:56 +08:00
<div
class="upload_file_item_content"
v-show="file?.status === 'done'"
>
<img :src="file?.imgUrl" class="upload_img" />
<div
class="delete_file_block"
@click="deleteFile(file)"
>
2023-10-30 17:26:36 +08:00
{{ $t('MoodboardUpload.Delete') }}
2023-08-05 12:52:56 +08:00
</div>
</div>
</div>
<div
class="upload_file_item upload_component"
2023-09-25 10:09:00 +08:00
v-show="moodboarList.length < 8"
2023-08-05 12:52:56 +08:00
>
2023-10-20 17:21:45 +08:00
2023-08-05 12:52:56 +08:00
<a-upload
:action="uploadUrl + '/api/element/upload'"
list-type="picture-card"
:capture="null"
2023-08-05 12:52:56 +08:00
:data="{
...upload,
}"
:headers="{ Authorization: token }"
:before-upload="beforeUpload"
2023-10-20 17:21:45 +08:00
v-model:file-list="fileList"
2023-12-08 16:27:35 +08:00
:multiple="!driver__.driver"
2023-11-06 15:19:52 +08:00
:maxCount="8 - moodboarList.length+fileList.length"
2023-08-05 12:52:56 +08:00
accept=".jpg,.png,.jpeg,.bmp"
@change="(file) => fileUploadChange(file)"
>
2023-11-06 15:19:52 +08:00
2023-08-05 12:52:56 +08:00
<div
class="upload_tip_block"
2023-09-25 10:09:00 +08:00
v-show=" moodboarList.length < 8"
2023-08-05 12:52:56 +08:00
>
<i class="fi fi-br-upload"></i>
<!-- <img class="upload_img_icon" src="@/assets/images/homePage/add_file.png"> -->
</div>
</a-upload>
2023-01-06 16:00:15 +08:00
</div>
</div>
</div>
2023-11-06 15:19:52 +08:00
<div class="upload_max_tip">
<span class="icon iconfont icon-zhuyi"></span>
<span>{{ $t('MoodboardUpload.Maximum') }}</span>
</div>
2023-08-05 12:52:56 +08:00
<!-- <div class="upload_max_tip">
<span class="icon iconfont icon-zhuyi"></span>
<span
>Maximum 10 images can be uploaded, Maximum 2M per
image</span
>
</div> -->
2023-01-06 16:00:15 +08:00
</div>
2023-08-05 12:52:56 +08:00
<Material
v-show="openClick == 2"
ref="Material"
2023-08-21 10:55:39 +08:00
msg="Moodboard"
2023-08-05 12:52:56 +08:00
></Material>
<Generate
v-show="openClick == 3"
ref="Generate"
2023-08-21 10:55:39 +08:00
msg="Moodboard"
2023-08-05 12:52:56 +08:00
></Generate>
</div>
<div v-show="moodboarList.length" class="modal_right">
2023-12-07 14:26:21 +08:00
<div class="modal_layout">
2023-08-05 12:52:56 +08:00
<div class="modal_text">
2023-10-30 17:26:36 +08:00
<div>
{{ $t('MoodboardUpload.Thumbnail') }}
</div>
2023-12-07 14:26:21 +08:00
<div class="modal_btn started_btn Guide_1_7" :class="[driver__.driver?'showEvents':'']" @click="layout()">{{ $t('MoodboardUpload.layout') }}</div>
2023-08-05 12:52:56 +08:00
</div>
2023-11-23 11:15:10 +08:00
<div class="modal_img" :class="[driver__.driver?'hideEvents':'']">
2023-08-05 12:52:56 +08:00
<div class="modal_img_item" v-for="item,index in moodboarList" :key="item" @click="deleteFile(item)">
<img v-lazy="item.imgUrl">
<div class="checked" >
<i class="fi fi-rr-trash"></i>
</div>
</div>
</div>
</div>
2023-11-02 11:00:38 +08:00
<div v-show="moodboarList.length > 1 || edieShow" class="modal_accomplish">
2023-08-05 12:52:56 +08:00
<div class="modal_text">
<div>{{ $t('MoodboardUpload.selected') }}</div>
<div class="modal_btn started_btn" @click.stop="changeTemplateModal()">{{ $t('MoodboardUpload.Edit') }}</div>
2023-08-05 12:52:56 +08:00
</div>
2023-11-02 11:00:38 +08:00
<div class="modal_img_max">
<div v-if="!modalImg[0]?.id" class="modal_img" id="modal_img" :class="{active:flex_direction}">
<div v-for="item,index in layoutList" :class="[moodb_className[index]]" class="modal_imgItem">
<img :src="item.imgUrl" v-modelImg>
</div>
</div>
<div v-else class="modal_img">
<img :src="modalImg[0].imgUrl">
</div>
<div class="mark_loading" v-show="loadingShow">
<a-spin size="large" />
2023-08-05 12:52:56 +08:00
</div>
</div>
2023-11-02 11:00:38 +08:00
2023-08-05 12:52:56 +08:00
</div>
2023-11-02 11:00:38 +08:00
2023-08-05 12:52:56 +08:00
</div>
<layout ref="layout" :moodb_className="moodb_className" :flex_direction="flex_direction" @setmoodbClass="setmoodbClass"></layout>
2023-11-27 11:11:07 +08:00
<layoutMobile ref="layoutMobile" :moodb_className="moodb_className" :flex_direction="flex_direction" @setmoodbClass="setmoodbClass"></layoutMobile>
2023-08-05 12:52:56 +08:00
2023-01-06 16:00:15 +08:00
</div>
</template>
<script lang="ts">
2023-11-23 11:15:10 +08:00
import { defineComponent, h, ref ,computed,nextTick,inject} from "vue";
2023-08-05 12:52:56 +08:00
import { LoadingOutlined } from "@ant-design/icons-vue";
import { getCookie } from "@/tool/cookie";
2023-11-27 11:11:07 +08:00
import { getUploadUrl,isMoible } from "@/tool/util";
2023-08-05 12:52:56 +08:00
import { useStore } from "vuex";
import { message, Upload } from "ant-design-vue";
2023-09-12 10:11:27 +08:00
import { Https } from "@/tool/https";
2023-08-05 12:52:56 +08:00
import Material from "@/component/HomePage/Material.vue";
import Generate from "@/component/HomePage/Generate.vue";
import MoodTemplate from "@/component/HomePage/MoodTemplate.vue";
import layout from "@/component/HomePage/layout.vue";
2023-11-27 11:11:07 +08:00
import layoutMobile from "@/component/HomePage/layoutMobile.vue";
2023-09-12 10:11:27 +08:00
import domTurnImg from '@/tool/domTurnImg'
2023-08-05 12:52:56 +08:00
import GO from "@/tool/GO";
import moodb from "@/tool/moodb";
2023-10-30 17:26:36 +08:00
import { useI18n } from "vue-i18n";
2023-11-23 11:15:10 +08:00
import { openGuide,driverObj__ } from "@/tool/guide";
2023-01-06 16:00:15 +08:00
export default defineComponent({
2023-11-27 11:11:07 +08:00
components: { Material, MoodTemplate, Generate,layout,layoutMobile },
2023-08-05 12:52:56 +08:00
setup() {
2023-09-12 10:11:27 +08:00
const store = useStore()
2023-08-05 12:52:56 +08:00
let lessenList: any = ref([]);
let fileList: any = ref([]);
2023-10-20 17:21:45 +08:00
let showFileList: any = ref([]);
2023-08-05 12:52:56 +08:00
let templateModal: any = ref(false);
let templateFileList: any = ref([]);
let openClick: any = ref(1);
let moodb_className:any = ref([]);
let flex_direction:any = ref(false)//判断第二种格子类型弹性布局方式
let layoutList:any = []//选中后随机生成的list
2023-08-23 17:50:09 +08:00
let layoutOpen = ref(false)
2023-09-12 10:11:27 +08:00
let loadingShow = ref(false)
let modalImg:any= computed(()=>{
return store.state.UploadFilesModule.disposeMoodboard
})
2023-11-23 11:15:10 +08:00
// let driver__:any = computed(()=>{
// return store.state.Guide.guide
// })
let driver__:any = inject('driver__')
2023-10-20 17:21:45 +08:00
let uploading:any = ref([])
2023-11-02 11:00:38 +08:00
let edieShow:any = ref()
2023-10-30 17:26:36 +08:00
let {t} = useI18n()
2023-11-22 15:41:46 +08:00
2023-01-06 16:00:15 +08:00
return {
fileList,
2023-10-20 17:21:45 +08:00
showFileList,
2023-08-05 12:52:56 +08:00
lessenList,
2023-01-06 16:00:15 +08:00
templateModal,
2023-08-05 12:52:56 +08:00
templateFileList,
openClick,
moodb_className,
flex_direction,
layoutList,
2023-09-12 10:11:27 +08:00
layoutOpen,
loadingShow,
2023-10-20 17:21:45 +08:00
modalImg,
2023-11-23 11:15:10 +08:00
driver__,
2023-10-30 17:26:36 +08:00
uploading,
2023-11-02 11:00:38 +08:00
edieShow,
2023-10-30 17:26:36 +08:00
t,
2023-08-05 12:52:56 +08:00
};
2023-01-06 16:00:15 +08:00
},
2023-08-05 12:52:56 +08:00
data() {
return {
indicator: h(LoadingOutlined, {
2023-01-06 16:00:15 +08:00
style: {
2023-08-05 12:52:56 +08:00
fontSize: "2.4rem",
2023-01-06 16:00:15 +08:00
},
spin: true,
}),
2023-08-05 12:52:56 +08:00
upload: {
isPin: 0,
2023-12-11 15:12:53 +08:00
gender:'',
2023-08-05 12:52:56 +08:00
level1Type: "Moodboard",
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
2023-01-06 16:00:15 +08:00
},
2023-08-05 12:52:56 +08:00
token: "",
uploadUrl: "",
moodTemplateId: "", //模板id
store: useStore(),
moodb_:moodb.moodb_,
moodboarList:computed(()=>{
2023-08-21 10:55:39 +08:00
return useStore().state.UploadFilesModule.moodboard
2023-08-05 12:52:56 +08:00
}),
};
2023-01-06 16:00:15 +08:00
},
2023-08-05 12:52:56 +08:00
// watcheffect(){
// let breviaryList = this.store.state.UploadFilesModule.moodboardFiles.filter(
// (v: any) => v.checked == true
// );
// this.store.commit("setMoodboardFile", breviaryList);
// console.log(22);
// },
mounted() {
this.token = getCookie("token") || "";
this.uploadUrl = getUploadUrl();
2023-01-06 16:00:15 +08:00
},
2023-10-13 17:31:21 +08:00
watch:{
2023-12-08 16:27:35 +08:00
driver__:{
handler(newVal,oldVal){
2023-12-08 17:37:26 +08:00
if(newVal.index >= 6 && newVal.index <= 8){
this.open(newVal.index-5)
2023-12-08 16:27:35 +08:00
}else{
}
2023-10-13 17:31:21 +08:00
}
2023-12-08 16:27:35 +08:00
}
2023-10-13 17:31:21 +08:00
},
2023-09-12 10:11:27 +08:00
directives:{
modelImg:{
mounted(el) {
let parentNode = el.parentNode
if(parentNode.offsetHeight > parentNode.offsetWidth){
el.style.height = 100+'%'
el.style.width = 'auto'
}else{
el.style.width = 100+'%'
el.style.height = 'auto'
}
},
updated (el) {
let parentNode = el.parentNode
if(parentNode.offsetHeight > parentNode.offsetWidth){
el.style.height = 100+'%'
el.style.width = 'auto'
}else{
el.style.width = 100+'%'
el.style.height = 'auto'
}
}
}
},
2023-08-05 12:52:56 +08:00
methods: {
open(num: Number) {
this.openClick = num;
if(num ==2 ){
let material:any = this.$refs.Material
material.init('Moodboard')
}else if (num == 3){
2023-11-23 11:15:10 +08:00
// let driver = this.store.state.Guide.guide.driver
2023-12-08 16:27:35 +08:00
// if(this.driver__.driver){
// driverObj__.moveNext()
// }
2023-11-30 10:54:22 +08:00
let Generate:any = this.$refs.Generate
2023-12-08 16:27:35 +08:00
2023-11-30 10:54:22 +08:00
if(this.driver__.driver){
2024-01-29 17:53:07 +08:00
Generate.searchPictureName = 'An image of airy, blush-toned fabrics and pale pink'
2023-11-30 10:54:22 +08:00
}else{
2024-01-24 10:34:05 +08:00
// Generate.searchPictureName = ''
2023-11-30 10:54:22 +08:00
}
2023-08-05 12:52:56 +08:00
}
2023-01-06 16:00:15 +08:00
},
2023-08-05 12:52:56 +08:00
fileUploadChange(data: any) {
let file = data.file;
2023-12-13 16:09:17 +08:00
let bor = true
2023-08-05 12:52:56 +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){
file.imgUrl = res.data.url;
file.resData = res.data;
file.type_ = {
type1:'upload',
type2:'Moodboard'
};
file.id_ = GO.id++
file.id = res.data.id
let fileList = this.fileList.filter(
(v: any) => v.status === "done"
);
let arr = this.store.state.UploadFilesModule.moodboard
if(arr.length >= 8){
message.info(this.t('MoodboardUpload.jsContent1'))
}else{
this.store.commit("setMoodboardFile", fileList);
}
2024-01-10 16:13:50 +08:00
if(fileList.length >=2){
if(this.driver__.driver){
driverObj__.moveNext()
}
}
2023-08-05 12:52:56 +08:00
}else{
2023-12-13 16:09:17 +08:00
bor = false
2023-08-05 12:52:56 +08:00
}
2023-10-20 17:21:45 +08:00
// this.showFileList = this.fileList
2023-08-05 12:52:56 +08:00
} else if (file.status === "error") {
2023-12-13 16:09:17 +08:00
bor = false
}
if(!bor){
let res:any = JSON.parse(file.xhr.response);
let index = -1;
2023-08-05 12:52:56 +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-05 12:52:56 +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('MoodboardUpload.jsContent2'));
message.warning(res.errMsg);
}
2023-01-06 16:00:15 +08:00
},
2023-08-05 12:52:56 +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('MoodboardUpload.jsContent3'));
2023-01-06 16:00:15 +08:00
}
2023-08-05 12:52:56 +08:00
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M) {
2023-11-16 17:23:17 +08:00
message.info(this.t('MoodboardUpload.jsContent4'));
2023-01-06 16:00:15 +08:00
}
2023-08-05 12:52:56 +08:00
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
2023-01-06 16:00:15 +08:00
},
2023-08-05 12:52:56 +08:00
deleteFile(item: any) {
2023-08-21 10:55:39 +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:8})
2023-08-05 12:52:56 +08:00
this.store.commit("addGenerateMaterialFils", item);
}else{
this.fileList = this.store.state.UploadFilesModule.moodboardFiles
let moodboard
this.store.state.UploadFilesModule.moodboardFiles.forEach((items:any,index:Number)=>{
if(items.id_ == item.id_){
moodboard = index
}
})
this.fileList.splice(moodboard,1)
this.store.commit("setMoodboardFile", this.fileList);
}
2023-09-12 10:11:27 +08:00
if(this.store.state.UploadFilesModule.moodboard.length == 0){
2023-09-25 10:09:00 +08:00
this.store.commit("clearMoodTemplateId");
this.layoutList = []
2023-11-02 11:00:38 +08:00
this.edieShow = false
2023-09-12 10:11:27 +08:00
}
2023-08-05 12:52:56 +08:00
},
recollection() {
2023-08-23 17:50:09 +08:00
let arr = JSON.parse(
2023-08-05 12:52:56 +08:00
JSON.stringify(
this.store.state.UploadFilesModule.allBoardData
.moodboardFiles
)
2023-09-12 10:11:27 +08:00
);
let disposeMoodboard = JSON.parse(
JSON.stringify(
this.store.state.UploadFilesModule.allBoardData
.disposeMoodboard
)
2023-08-05 12:52:56 +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("setMoodboardGenerateFiles", setboard.generate);
this.store.commit("setMoodboardMaterialFiles", setboard.material);
this.store.commit("setMoodboardFile", setboard.moodboard);
2023-09-12 10:11:27 +08:00
this.store.commit("setDisposeMoodboard", disposeMoodboard[0]);
2023-08-23 17:50:09 +08:00
this.fileList = setboard.moodboard
2023-01-06 16:00:15 +08:00
},
2023-11-27 16:25:32 +08:00
async changeTemplateModal() {
2023-11-02 11:00:38 +08:00
if(this.modalImg[0]?.id){
2023-11-27 11:11:07 +08:00
let layout:any = isMoible() ? this.$refs.layoutMobile : this.$refs.layout
2023-08-05 12:52:56 +08:00
// layout.init('moodboard')
2023-11-27 16:25:32 +08:00
if(this.layoutList.length <= 0){
await this.layout()
}
// let arr = JSON.parse(JSON.stringify(this.store.state.UploadFilesModule.moodboard))
// this.layoutList = arr
2023-08-05 12:52:56 +08:00
layout.init()
2023-08-23 17:50:09 +08:00
}else{
2023-11-16 17:23:17 +08:00
message.info(this.t('MoodboardUpload.jsContent5'))
2023-08-23 17:50:09 +08:00
}
2023-08-05 12:52:56 +08:00
},
layout(){
2023-09-12 10:11:27 +08:00
this.store.commit("setDisposeMoodboard", []);
let arr = JSON.parse(JSON.stringify(this.store.state.UploadFilesModule.moodboard))
2023-08-05 12:52:56 +08:00
this.layoutList = arr
var random = Math.round(Math.random()*(this.moodb_[arr.length-1].length-1))
let moodb = this.moodb_[arr.length-1][random]
if( moodb.filter((item,index)=> item == 'w2h1').length != 0 && arr.length > 4){
this.flex_direction = true
}else{
this.flex_direction = false
}
2023-11-02 11:00:38 +08:00
if(this.moodb_[arr.length-1].length != 1){
if(JSON.stringify(this.moodb_className) == JSON.stringify(this.moodb_[arr.length-1][random])){
this.layout()
return
}
2023-10-30 17:26:36 +08:00
}
if(this.loadingShow){
return
}
this.loadingShow = true
this.edieShow = true
2023-10-30 17:26:36 +08:00
if(this.moodb_[arr.length-1].length == 2){
this.moodb_className = this.moodb_[arr.length-1][0]
}else{
this.moodb_className = this.moodb_[arr.length-1][random]
}
2023-08-23 17:50:09 +08:00
this.layoutOpen = true
2023-09-12 10:11:27 +08:00
//提交模板
// this.loadingShow = true
this.layoutList.forEach((v:any)=>{
v.setPitch = false
})
nextTick().then(async ()=>{
let layoutCentent = document.getElementById('modal_img')
let file = await domTurnImg(layoutCentent)
let param = new FormData();
param.append('inPin','0')
param.append('level1Type','Moodboard')
2023-12-11 15:41:28 +08:00
param.append('gender','')
2023-09-12 10:11:27 +08:00
param.append('timeZone',Intl.DateTimeFormat().resolvedOptions().timeZone)
param.append('file',file);
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
Https.axiosPost(Https.httpUrls.elementUpload,param,config)
.then((rv: any) => {
let img:any = rv
img.imgUrl = rv.url
img.resData = JSON.parse(JSON.stringify(img))
this.store.commit("setDisposeMoodboard", img);
this.loadingShow = false
}
).catch(rv=>{
this.loadingShow = false
})
2023-11-23 15:42:36 +08:00
if(this.driver__.driver){
driverObj__.moveNext()
}
2023-09-12 10:11:27 +08:00
})
2023-08-05 12:52:56 +08:00
},
setmoodbClass(val:any){
this.moodb_className = val
}
},
});
2023-01-06 16:00:15 +08:00
</script>
<style lang="less" scoped>
2023-08-05 12:52:56 +08:00
.collection_modal_item {
// padding: 1.5rem 2.6rem 4rem;
2023-01-06 16:00:15 +08:00
height: 100%;
2023-08-05 12:52:56 +08:00
display: flex;
.modal_left {
padding-top: calc(4rem*1.2);
2023-08-05 12:52:56 +08:00
width: 47%;
2023-09-12 10:11:27 +08:00
display: flex;
flex-direction: column;
// width: 50rem*1.2);
2023-08-05 12:52:56 +08:00
.switch_type_list {
2023-01-06 16:00:15 +08:00
display: flex;
align-items: center;
2023-08-05 12:52:56 +08:00
position: relative;
2023-01-06 16:00:15 +08:00
2023-08-05 12:52:56 +08:00
.switch_type_item {
2023-01-06 16:00:15 +08:00
display: flex;
align-items: center;
// padding: 0 2rem*1.2);
height: calc(4rem*1.2);
2023-08-05 12:52:56 +08:00
background: #fff;
border-radius: calc(0.8rem*1.2);
line-height: calc(4rem*1.2);
2023-11-27 16:25:32 +08:00
font-size: var(--aida-fsize1-8);
// margin-right: 2.2rem*1.2);
margin-right: calc(8rem*1.2);
2023-08-05 12:52:56 +08:00
color: #000;
cursor: pointer;
2023-01-06 16:00:15 +08:00
position: relative;
2023-08-05 12:52:56 +08:00
text-align: center;
transform-origin: left;
transform: scale(1);
transition: 0.3s all;
&.switch_type_item::before {
position: absolute;
content: "";
2023-01-06 16:00:15 +08:00
display: block;
2023-08-05 12:52:56 +08:00
background: #000;
height: calc(.3rem*1.2);
2023-08-05 12:52:56 +08:00
left: 50%;
transform: translateX(-50%);
bottom: calc(.6rem*1.2);
2023-08-05 12:52:56 +08:00
width: 0px;
transition: 0.3s all;
2023-01-06 16:00:15 +08:00
}
2023-08-05 12:52:56 +08:00
&.select_swtich {
color: #000;
// font-weight: 900;
transform: scale(1.15);
2023-01-06 16:00:15 +08:00
}
2023-08-05 12:52:56 +08:00
&.select_swtich::before {
2023-01-06 16:00:15 +08:00
width: 100%;
}
2023-08-05 12:52:56 +08:00
.switch_icon {
font-size: calc(1.8rem*1.2);
margin-right: calc(0.8rem*1.2);
2023-08-05 12:52:56 +08:00
}
2023-01-06 16:00:15 +08:00
}
}
2023-08-05 12:52:56 +08:00
.moodboard_body {
padding-top: calc(2.5rem*1.2);
2023-09-12 10:11:27 +08:00
flex: 1;
height: calc(30rem*1.2);
2023-08-05 12:52:56 +08:00
overflow-x: hidden;
border-right: 1px solid #e5e5e5;
2023-11-06 15:19:52 +08:00
display: flex;
flex-direction: column;
2023-08-05 12:52:56 +08:00
&.moodboard_body::-webkit-scrollbar {
display: none;
}
.upload_img_body {
2023-09-12 10:11:27 +08:00
height: 100%;
2023-08-05 12:52:56 +08:00
overflow-y: auto;
margin-bottom: calc(1rem*1.2);
2023-01-06 16:00:15 +08:00
}
2023-08-21 10:55:39 +08:00
2023-01-06 16:00:15 +08:00
2023-08-05 12:52:56 +08:00
.upload_max_tip {
display: flex;
align-items: center;
justify-content: center;
font-size: calc(1.4rem*1.2);
2023-08-05 12:52:56 +08:00
color: #030303;
2023-01-06 16:00:15 +08:00
2023-08-05 12:52:56 +08:00
.icon-zhuyi {
font-size: calc(1.6rem*1.2);
margin-right: calc(0.7rem*1.2);
2023-01-06 16:00:15 +08:00
}
}
}
}
2023-08-05 12:52:56 +08:00
.modal_right{
flex: 1;
margin-left: calc(3rem*1.2);
2023-11-02 11:00:38 +08:00
display: flex;
flex-direction: column;
2023-08-05 12:52:56 +08:00
.modal_layout,.modal_accomplish{
.modal_text{
2023-11-27 16:25:32 +08:00
font-size:var(--aida-fsize1-4);
2023-08-05 12:52:56 +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{
width: calc(40rem*1.2);
height: calc(5rem*1.2);
2023-08-05 12:52:56 +08:00
overflow-x: hidden;
display: flex;
&.modal_img::-webkit-scrollbar {
display: none;
}
.modal_img_item{
width: calc(4rem*1.2);
height: calc(4rem*1.2);
2023-10-20 17:21:45 +08:00
text-align: center;
margin: 0 calc(1rem*1.2) calc(1rem*1.2) 0;
2023-08-05 12:52:56 +08:00
position: relative;
cursor: pointer;
2023-11-06 15:19:52 +08:00
overflow: hidden;
2023-08-05 12:52:56 +08:00
img{
2023-10-20 17:21:45 +08:00
width: auto;
2023-08-05 12:52:56 +08:00
height: 100%;
2023-10-20 17:21:45 +08:00
max-width: 100%;
object-fit: cover;
2023-08-05 12:52:56 +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{
// margin-top: 2rem*1.2);
height: calc(30rem*1.2);
2023-08-05 12:52:56 +08:00
display: flex;
2023-11-02 11:00:38 +08:00
flex: 1;
2023-08-05 12:52:56 +08:00
flex-direction: column;
.modal_text{
padding-top: calc(2rem*1.2);
padding-block: calc(2rem*1.2);
2023-08-05 12:52:56 +08:00
}
2023-11-02 11:00:38 +08:00
.modal_img_max{
// flex: 1;
width: calc(57rem*1.2);
height: calc(35rem*1.2);
2023-11-02 11:00:38 +08:00
position: relative;
.mark_loading{
position: absolute;
}
}
2023-08-05 12:52:56 +08:00
.modal_img{
2023-11-02 11:00:38 +08:00
height: 100%;
2023-08-05 12:52:56 +08:00
display: flex;
flex-direction: column;
justify-content: space-between;
flex-wrap: wrap;
align-items: center;
flex-direction: column;
2023-11-02 11:00:38 +08:00
position: relative;
2023-09-12 10:11:27 +08:00
>img{
2023-09-26 15:05:14 +08:00
// height: 100%;
width: 100%;
2023-12-20 17:03:42 +08:00
max-height: 100%;
object-fit: contain;
2023-09-12 10:11:27 +08:00
}
2023-08-05 12:52:56 +08:00
&.active{
flex-direction: row;
}
.modal_imgItem{
position: relative;
2023-09-12 10:11:27 +08:00
overflow: hidden;
2023-08-05 12:52:56 +08:00
img{
position: absolute;
2023-09-12 10:11:27 +08:00
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
float: left;
user-select:none;
-webkit-user-drag: none;
2023-08-05 12:52:56 +08:00
}
}
.wh1{
width: 23%;
height: 48%;
}
.wh4{
width: 48.5%;
height: 100%;
}
.wh8{
width: 100%;
height: 48.5%;
}
2023-08-05 12:52:56 +08:00
.w1h2{
width: 23%;
height: 100%;
}
.w2h1{
width: 48.5%;
height: 48%;
}
}
}
}
2023-01-06 16:00:15 +08:00
}
</style>
2023-08-05 12:52:56 +08:00