581 lines
24 KiB
Vue
581 lines
24 KiB
Vue
<template>
|
||
<!-- 新增 -->
|
||
<el-dialog :title="addEditStatus=='add' ? t('新增') : t('修改')" align-center :close-on-click-modal="false" v-model="showDialog" :width="formAll.promotionalStyle==1 ?'1900px':'700px'" append-to-body>
|
||
<!-- <el-scrollbar max-height="900px" > -->
|
||
<el-form ref="formRef" :model="formAll" :rules="rules" label-width="130px" class="add-form">
|
||
<el-row :gutter="20">
|
||
<el-col :span="formAll.promotionalStyle==1?12:24">
|
||
|
||
<el-form-item :label="t('版式风格')" prop="iconType">
|
||
<el-radio-group v-model="formAll.iconType" @change="generateImage" style="margin-bottom: 0px">
|
||
<el-radio-button :value="1">{{ t('方形图标') }}</el-radio-button>
|
||
<el-radio-button :value="2">{{ t('竖版图标') }}</el-radio-button>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item :label="t('平台名称')" prop="platformName">
|
||
<el-input v-model="formAll.platformName" disabled />
|
||
</el-form-item>
|
||
<el-form-item :label="t('最低准入')" prop="minAmount">
|
||
<number-input v-model="formAll.minAmount" ></number-input>
|
||
</el-form-item>
|
||
<el-form-item :label="t('平台宣传语')" prop="promotionalText">
|
||
<el-input v-model="formAll.promotionalText" :placeholder="t('请输入平台宣传语')" />
|
||
</el-form-item>
|
||
<el-form-item :label="t('平台跳转方式')" prop="iosJump">
|
||
<div style="width: 100%;display: flex;">
|
||
<div style="width: 80px;text-align: right;margin-right: 10px;">IOS:</div>
|
||
<el-radio-group v-model="formAll.iosJump" style="margin-bottom: 0px">
|
||
<el-radio :value="1">{{ t('内嵌') }}</el-radio>
|
||
<el-radio :value="2">{{ t('外链') }}</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
<div style="width: 100%;display: flex;">
|
||
<div style="width: 80px;text-align: right;margin-right: 10px;">Android:</div>
|
||
<el-radio-group v-model="formAll.androidJump" style="margin-bottom: 0px">
|
||
<el-radio :value="1">{{ t('内嵌') }}</el-radio>
|
||
<el-radio :value="2">{{ t('外链') }}</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
<div style="width: 100%;display: flex;">
|
||
<div style="width: 80px;text-align: right;margin-right: 10px;">H5:</div>
|
||
<el-radio-group v-model="formAll.h5Jump" style="margin-bottom: 0px">
|
||
<el-radio :value="1">{{ t('内嵌') }}</el-radio>
|
||
<el-radio :value="2">{{ t('外链') }}</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item :label="t('宣传图样式')" prop="promotionalStyle">
|
||
<el-radio-group v-model="formAll.promotionalStyle">
|
||
<el-radio :value="1">{{ t('默认') }}</el-radio>
|
||
<el-radio :value="2">{{ t('自定义') }}</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<div v-if="formAll.promotionalStyle == 1">
|
||
<el-form-item :label="t('宣传图图标')" prop="promotionalIcon">
|
||
<banner-icon @clickSelect="handleSelection('three',$event)" :disabled="shouwLoding" :imageUrl="formAll.promotionalIcon" :query="materialIcon" url="/game/material/group/select"></banner-icon>
|
||
</el-form-item>
|
||
</div>
|
||
<div v-if="formAll.promotionalStyle == 2">
|
||
<el-form-item :label="t('宣传图')" prop="customPromotionalImage">
|
||
<div v-if="formAll.iconType == 2" class="upload-box-vioce11">
|
||
<image-upload v-model="formAll.customPromotionalImage" :typeUpImg="3" :limit="1" :isShowTip="false"
|
||
:isdrag="true"></image-upload>
|
||
</div>
|
||
<div v-if="formAll.iconType == 1" class="upload-box-vioce22">
|
||
<image-upload v-model="formAll.customPromotionalImage" :typeUpImg="3" :limit="1" :isShowTip="false"
|
||
:isdrag="true"></image-upload>
|
||
</div>
|
||
<div >{{ t('只能上传png文件,且不超过1MB,图片尺寸为300px * 400px') }}</div>
|
||
</el-form-item>
|
||
<el-form-item :label="t('热门图')" prop="customPopularStyle">
|
||
<div v-if="formAll.iconType == 2" class="upload-box-vioce11">
|
||
<image-upload v-model="formAll.customPopularStyle" :typeUpImg="3" :limit="1" :isShowTip="false"
|
||
:isdrag="true"></image-upload>
|
||
</div>
|
||
<div v-if="formAll.iconType == 1" class="upload-box-vioce22">
|
||
<image-upload v-model="formAll.customPopularStyle" :typeUpImg="3" :limit="1" :isShowTip="false"
|
||
:isdrag="true"></image-upload>
|
||
</div>
|
||
<div >{{ t('只能上传png文件,且不超过1MB,图片尺寸为300px * 400px') }}</div>
|
||
</el-form-item>
|
||
</div>
|
||
</el-col>
|
||
<el-col :span="12" v-if="formAll.promotionalStyle == 1">
|
||
|
||
<div v-if="formAll.promotionalStyle == 1">
|
||
|
||
<el-form-item :label="t('图片背景')" prop="promotionalBackground">
|
||
<BannerColour @clickSelect="handleSelection('two',$event)" :disabled="shouwLoding" :backgroundColor="formAll.promotionalBackground" :query="materialTypess" url="/game/material/group/select"></BannerColour>
|
||
</el-form-item>
|
||
<el-form-item v-if="formAll.promotionalStyle == 1" :label="t('品牌LOGO')" prop="platformLogo">
|
||
<div class="upload-box-vioce" style="border:1px solid #409eff;border-radius: 5px;width: 213px;height:90px !important;text-align: center;display: flex;justify-content: center;align-items: center;">
|
||
<img style="width: 100px;" :src="fileHost+formAll.platformLogo"/>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item v-if="formAll.promotionalStyle == 2" :label="t('品牌LOGO')" prop="customPlatformLogo">
|
||
<div class="upload-box-vioce">
|
||
<image-upload v-model="formAll.customPlatformLogo" :typeUpImg="3" :limit="1" :isShowTip="false"
|
||
:isdrag="true"></image-upload>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item :label="t('宣传图预览')">
|
||
<div style=" position: absolute; top: -9999px; left: -9999px; visibility: hidden; ">
|
||
<div class="" v-if="formAll.iconType == 1" ref="captureArea" :style="`display: flex;align-items: center;justify-content: space-between;width: 400px;height: 150px;background: url(${formAll.popularStyleGb}) no-repeat;background-size: 100% 100%;`">
|
||
<div class="" style="width: 40%;">
|
||
<p style="margin: 0;text-align: center;"><img style="width: 100px;height: auto;" :src="formAll.platformLogoGb"/></p>
|
||
<p style="margin: 0;text-align: center;font-size: 16px;font-weight: 600;"> </p>
|
||
</div>
|
||
<div style="width: 60%;">
|
||
<div style="width: 260px;height: 150px;">
|
||
<img style="width: 100%;height: 100%;" :src="formAll.promotionalImageGb"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div v-if="formAll.iconType == 2" class="" ref="captureArea" :style="`display: flex;align-items: center;justify-content: space-between;width: 210px;height: 280px;background: url(${formAll.popularStyleGb}) no-repeat;background-size: 100% 100%;`">
|
||
<div :style="`width: 210px; height: 280px;display: flex;align-items: center;position: relative;background: url(${formAll.promotionalImageGb});
|
||
background-size: cover;
|
||
background-position: center;
|
||
background-repeat: no-repeat;`">
|
||
<div class="" :style="`position: absolute;bottom: 0;left: 0;width: 100%;`">
|
||
<div style="margin: 0;text-align: center;position: relative;top: 0px;"><img style="width: 58px;height: auto;" crossorigin="anonymous" :src="formAll.platformLogoGb"/></div>
|
||
<div style="margin: 0;text-align: center;font-size: 16px;font-weight: 600;color: #fff;height: 35px;"> </div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<img :src="resolvedImageUrl" style="border-radius: 5px;" alt="Generated Image" />
|
||
</el-form-item>
|
||
<el-form-item :label="t('热门图预览')">
|
||
<div style="position: absolute; top: -8999px; left: -8999px; visibility: hidden;">
|
||
<div class="" v-if="formAll.iconType == 1" ref="captureAreaPop" :style="`display: flex;align-items: center;justify-content: space-between;width: 400px;height: 150px;background: url(${formAll.popularStyleGb}) no-repeat;background-size: 100% 100%;`">
|
||
<div class="" style="width: 40%;">
|
||
<p style="margin: 0;text-align: center;"><img style="width: 100px;height: auto;" :src="formAll.platformLogoGb"/></p>
|
||
<p style="margin: 0;text-align: center;font-size: 16px;font-weight: 600;"> </p>
|
||
</div>
|
||
<div style="width: 60%;">
|
||
<div style="width: 260px;height: 150px;">
|
||
<img style="width: 100%;height: 100%;" :src="formAll.promotionalImageGb"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div v-if="formAll.iconType == 2" class="" ref="captureAreaPop" :style="`display: flex;align-items: center;justify-content: space-between;width: 210px;height: 280px;background: url(${formAll.popularStyleGb}) no-repeat;background-size: 100% 100%;`">
|
||
<div :style="`width: 210px; height: 245px;display: flex;align-items: center;margin-top:35px; position: relative;background: url(${formAll.promotionalImageGb});
|
||
background-size: cover;
|
||
background-position: center;
|
||
background-repeat: no-repeat;`">
|
||
<div class="" :style="`position: absolute;top: -40px;left: 0;width: 100%;`">
|
||
<div style="margin: 0;text-align: center;"><img style="width: 70px;height: auto;" crossorigin="anonymous" :src="formAll.platformLogoGb"/></div>
|
||
</div>
|
||
<div class="" :style="`position: absolute;height:80px;bottom: 0;left: 0;width: 100%;`">
|
||
<div style="margin: 0;text-align: center;font-size: 16px;font-weight: 600;color: #fff;margin-top: 45px;height: 35px;"> </div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<img :src="resolvedPopularStyle" style="border-radius: 5px;" alt="Generated Image" />
|
||
</el-form-item>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
</el-form>
|
||
<!-- </el-scrollbar> -->
|
||
<template #footer>
|
||
<div class="dialog-footer">
|
||
<el-button type="primary" @click="submitForm" :loading="loadingButton">{{ t('确 定') }}</el-button>
|
||
<el-button @click="closeDialog">{{ t('取 消') }}</el-button>
|
||
</div>
|
||
</template>
|
||
|
||
</el-dialog>
|
||
</template>
|
||
<script setup>
|
||
import { formatTime,finalTimestamp } from '@/utils/ruoyi'; // 时间格式化
|
||
import ImageUpload from "@/components/ImageUpload";
|
||
import NumberInput from "@/components/NumberInput";
|
||
import { updatePlatform } from "@/api/game/platform";
|
||
import BannerColour from "@/components/BannerColour"; // Banner图颜色
|
||
import BannerIcon from "@/components/BannerIcon"; // Banner图标
|
||
import { getToken } from '@/utils/auth'
|
||
import { nextTick, onMounted, ref } from "vue"; // 获取当前实例
|
||
import { getLocalStorage } from "@/utils/auth";
|
||
const fileHost = getLocalStorage('fileUrl') || ''; // 文件host
|
||
|
||
import html2canvas from 'html2canvas';
|
||
const uploadUrl = getLocalStorage('uploadUrl');
|
||
const uploadImgUrl = ref(uploadUrl + "/file/upload/localSysFile/3"); // 上传的图片服务器地址
|
||
const loadingButton = ref(false);
|
||
const oldForm = shallowRef({ });
|
||
const langList = getLocalStorage('langList')?.filter(v => v.langType == 1 && v.langStatus).map(item => {
|
||
return {
|
||
label: item.name,
|
||
value: item.id
|
||
};
|
||
}); // 语种选项
|
||
const { proxy } = getCurrentInstance() // 获取当前实例
|
||
const emits = defineEmits(['submit', 'update:show']) // 自定义事件
|
||
const props = defineProps({ // 父组件向子组件传值
|
||
data: {
|
||
type: Object, // 父组件传值
|
||
default: {}
|
||
},
|
||
show: {
|
||
type: Boolean, // 显示
|
||
default: false
|
||
},
|
||
addEditStatus:{ // 添加/修改
|
||
type: String,
|
||
default: 'add'
|
||
},
|
||
modifyDate: { //修改数据
|
||
type: Object,
|
||
default: {}
|
||
}
|
||
})
|
||
const materialIcon = ref({ //图标请求参数
|
||
materialTypes:'2'
|
||
});
|
||
const materialTypess = ref({ //颜色请求参数
|
||
materialTypes:'1'
|
||
});
|
||
const showDialog = computed({ //弹窗显示控制
|
||
get() {
|
||
return props.show
|
||
},
|
||
set(value) {
|
||
emits('update:show', value)
|
||
}
|
||
})
|
||
|
||
const activeNameLang = ref(0);//语言切换选中
|
||
|
||
const langOptionAll = ref([]); // 语言tabs切换的数据
|
||
const formAll = reactive({
|
||
iconType:1, // 平台类型 1:方形图标 2:竖版图标
|
||
})
|
||
const loadImageAsBase64 = async(url)=> {
|
||
const res = await fetch(uploadUrl+url, { mode: 'cors' })
|
||
const blob = await res.blob()
|
||
return await new Promise((resolve) => {
|
||
const reader = new FileReader()
|
||
reader.onloadend = () => resolve(reader.result)
|
||
reader.readAsDataURL(blob)
|
||
})
|
||
}
|
||
|
||
// 修改时数据更新相关内容
|
||
nextTick(async () => {
|
||
if (props.addEditStatus != 'edit') return;
|
||
Object.assign(formAll, props.modifyDate)
|
||
formAll.id = props.modifyDate.id;
|
||
formAll.iconType = props.modifyDate.iconType|| 1;
|
||
formAll.platformName = props.modifyDate.platformName;
|
||
formAll.minAmount = props.modifyDate.minAmount;
|
||
if (props.modifyDate.promotionalStyle == 1){
|
||
formAll.promotionalImage = props.modifyDate.promotionalImage;
|
||
formAll.platformLogoGb = await loadImageAsBase64(props.modifyDate.platformLogo);
|
||
formAll.popularStyleGb = await loadImageAsBase64(props.modifyDate.promotionalBackground);
|
||
formAll.promotionalImageGb = await loadImageAsBase64(props.modifyDate.promotionalIcon);
|
||
formAll.popularStyle = props.modifyDate.popularStyle;
|
||
}
|
||
formAll.promotionalStyle = props.modifyDate.promotionalStyle;
|
||
setTimeout(() => {
|
||
let objForm = { ...formAll }
|
||
oldForm.value = JSON.stringify(objForm);
|
||
}, 500);
|
||
});
|
||
const captureArea = ref(null);
|
||
const captureAreaPop = ref(null);
|
||
// 加入图片加载检测
|
||
const waitForImagesLoaded = async (container) => {
|
||
const imgs = container.querySelectorAll('img');
|
||
await Promise.all([...imgs].map(img => {
|
||
return new Promise(resolve => {
|
||
if (img.complete) return resolve();
|
||
img.onload = img.onerror = () => resolve();
|
||
});
|
||
}));
|
||
};
|
||
const shouwLoding = ref(false);
|
||
const generateImage = async () => {
|
||
shouwLoding.value = true;
|
||
const el = captureArea.value;
|
||
const el2 = captureAreaPop.value;
|
||
if (!el || !el2) return;
|
||
|
||
el.style.visibility = 'visible';
|
||
el2.style.visibility = 'visible';
|
||
|
||
await nextTick();
|
||
await waitForImagesLoaded(el);
|
||
await waitForImagesLoaded(el2);
|
||
await new Promise(resolve => setTimeout(resolve, 100));
|
||
|
||
const canvas = await html2canvas(el, {
|
||
useCORS: true,
|
||
backgroundColor: '#fff'
|
||
});
|
||
formAll.promotionalImage = canvas.toDataURL('image/png');
|
||
|
||
await new Promise(resolve => setTimeout(resolve, 100)); // 控制节奏
|
||
const canvas2 = await html2canvas(el2, {
|
||
useCORS: true,
|
||
backgroundColor: '#fff'
|
||
});
|
||
formAll.popularStyle = canvas2.toDataURL('image/png');
|
||
shouwLoding.value = false;
|
||
el.style.visibility = 'hidden';
|
||
el2.style.visibility = 'hidden';
|
||
};
|
||
|
||
|
||
//表单验证规则
|
||
const rules = reactive({
|
||
promotionalStyle: [
|
||
{ required: true, message: proxy.t('请选择icon图样式'), trigger: 'change' },
|
||
],
|
||
minAmount: [
|
||
{ required: true, message: proxy.t('请输入最小投注金额'), trigger: 'change' },
|
||
]
|
||
})
|
||
// 关闭弹窗
|
||
const closeDialog = () => {
|
||
showDialog.value = false
|
||
}
|
||
const resolvedImageUrl = computed(() => {
|
||
const url = formAll.promotionalImage
|
||
if (!url) return ''
|
||
|
||
if (url.startsWith('data:image/')) {
|
||
return url // base64 图片
|
||
}
|
||
|
||
if (url.startsWith('http://') || url.startsWith('https://')) {
|
||
return url // 完整 URL,不加 fileHost
|
||
}
|
||
|
||
return fileHost + url // 相对路径,加上 fileHost
|
||
})
|
||
const resolvedPopularStyle = computed(() => {
|
||
const url = formAll.popularStyle
|
||
if (!url) return ''
|
||
|
||
if (url.startsWith('data:image/')) {
|
||
return url // base64 图片
|
||
}
|
||
|
||
if (url.startsWith('http://') || url.startsWith('https://')) {
|
||
return url // 完整 URL,不加 fileHost
|
||
}
|
||
|
||
return fileHost + url // 相对路径,加上 fileHost
|
||
})
|
||
|
||
const getColorFromUrl = (url) => {
|
||
// 匹配最后一个斜杠后的颜色字符串,不带扩展名
|
||
const match = url.match(/\/([^\/]+)\.png$/)
|
||
if (match && match[1]) {
|
||
return `#${match[1]}` // 加上 #
|
||
}
|
||
return null
|
||
}
|
||
const colorGb = ref('');
|
||
const isShow = ref(true); // 是否显示
|
||
// 处理选中排版、颜色、图标和图片上传后的数据更新
|
||
const handleSelection = async(type, en) => {
|
||
switch (type) {
|
||
case 'two':
|
||
isShow.value = false;
|
||
const color = getColorFromUrl(en.url);
|
||
colorGb.value = color;
|
||
if (formAll.promotionalBackground == en.url){
|
||
return
|
||
}
|
||
formAll.popularStyleGb = await loadImageAsBase64(en.url);
|
||
formAll.promotionalBackground = en.url;
|
||
nextTick(() => {
|
||
isShow.value = true;
|
||
generateImage();
|
||
});
|
||
break;
|
||
case 'three':
|
||
isShow.value = false;
|
||
if (formAll.promotionalIcon == en.url){
|
||
return
|
||
}
|
||
formAll.promotionalImageGb = await loadImageAsBase64(en.url);
|
||
formAll.promotionalIcon = en.url;
|
||
nextTick(() => {
|
||
isShow.value = true;
|
||
generateImage();
|
||
});
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
};
|
||
function base64ToFile(base64, filename = 'image.png') {
|
||
const arr = base64.split(',')
|
||
const mime = arr[0].match(/:(.*?);/)[1]
|
||
const bstr = atob(arr[1])
|
||
let n = bstr.length
|
||
const u8arr = new Uint8Array(n);
|
||
while (n--) {
|
||
u8arr[n] = bstr.charCodeAt(n)
|
||
}
|
||
return new File([u8arr], filename, { type: mime })
|
||
}
|
||
const uploadBase64Image = async(base64) =>{
|
||
if (!/^data:image\/(png|jpeg|jpg|gif|bmp);base64,/.test(base64)) {
|
||
// 不是 Base64,说明已经是 URL,直接返回
|
||
return { url: base64 };
|
||
}
|
||
const file = base64ToFile(base64, 'upload.png')
|
||
const formData = new FormData()
|
||
formData.append('file', file)
|
||
const res = await fetch(uploadImgUrl.value, {
|
||
method: 'POST',
|
||
headers: {
|
||
Authorization: 'Bearer ' + getToken(),
|
||
},
|
||
body: formData
|
||
})
|
||
|
||
return await res.json()
|
||
}
|
||
// 提交
|
||
const formRef = ref(null)
|
||
|
||
// 提交修改和新增数据表单
|
||
const submitForm = async() => {
|
||
// 验证表单
|
||
formRef.value.validate(async(valid) => {
|
||
if (valid) {
|
||
loadingButton.value = true;
|
||
let promotionalImages = await uploadBase64Image(formAll.promotionalImage)
|
||
let popularStyles = await uploadBase64Image(formAll.popularStyle)
|
||
|
||
// 初始化表单数据
|
||
let formData = {
|
||
...formAll,
|
||
promotionalImage:promotionalImages.url,
|
||
popularStyle:popularStyles.url,
|
||
};
|
||
delete formData.platformLogoGb;
|
||
delete formData.popularStyleGb;
|
||
delete formData.promotionalImageGb;
|
||
if (JSON.stringify(formAll) != oldForm.value) {
|
||
updatePlatform(formData).then(res => {
|
||
loadingButton.value = false;
|
||
proxy.$modal.msgSuccess(proxy.t('修改成功!'));
|
||
emits('submit');
|
||
closeDialog();
|
||
}).catch(error => {
|
||
loadingButton.value = false;
|
||
});
|
||
}else{
|
||
loadingButton.value = false;
|
||
closeDialog();
|
||
}
|
||
}
|
||
});
|
||
};
|
||
|
||
|
||
</script>
|
||
<style scope lang="scss">
|
||
.w100 {
|
||
width: 100%;
|
||
}
|
||
|
||
.upload-box-vioce{
|
||
height: 90px !important;
|
||
overflow: hidden;
|
||
.upload-tips {
|
||
color: #999;
|
||
font-size: 12px;
|
||
line-height: 1.5;
|
||
padding-left: 10px;
|
||
}
|
||
.component-upload-image .el-upload--picture-card {
|
||
width: 180px !important;
|
||
height: 90px !important;
|
||
}
|
||
.el-upload-list--picture-card .el-upload-list__item {
|
||
width: 180px!important;
|
||
height: 90px!important;
|
||
}
|
||
:deep(.el-upload-list) {
|
||
width:180px!important;
|
||
height: 90px!important;
|
||
.el-upload,
|
||
.el-upload-list--picture-card .el-upload-list__item {
|
||
width: 180px!important;
|
||
height: 90px!important;
|
||
}
|
||
|
||
.el-upload-list__item {
|
||
margin: 0;
|
||
border: none;
|
||
width: 180px!important;
|
||
height: 90px!important;
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
.upload-box-vioce11{
|
||
height: 400px !important;
|
||
overflow: hidden;
|
||
.upload-tips {
|
||
color: #999;
|
||
font-size: 12px;
|
||
line-height: 1.5;
|
||
padding-left: 10px;
|
||
}
|
||
.component-upload-image .el-upload--picture-card {
|
||
width: 300px !important;
|
||
height: 400px !important;
|
||
}
|
||
.el-upload-list--picture-card .el-upload-list__item {
|
||
width: 300px!important;
|
||
height: 400px!important;
|
||
}
|
||
:deep(.el-upload-list) {
|
||
width:300px!important;
|
||
height: 400px!important;
|
||
.el-upload,
|
||
.el-upload-list--picture-card .el-upload-list__item {
|
||
width: 300px!important;
|
||
height: 400px!important;
|
||
}
|
||
|
||
.el-upload-list__item {
|
||
margin: 0;
|
||
border: none;
|
||
width: 300px!important;
|
||
height: 400px!important;
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
.upload-box-vioce22{
|
||
height: 200px !important;
|
||
overflow: hidden;
|
||
.upload-tips {
|
||
color: #999;
|
||
font-size: 12px;
|
||
line-height: 1.5;
|
||
padding-left: 10px;
|
||
}
|
||
.component-upload-image .el-upload--picture-card {
|
||
width: 400px !important;
|
||
height: 200px !important;
|
||
}
|
||
.el-upload-list--picture-card .el-upload-list__item {
|
||
width: 400px!important;
|
||
height: 200px!important;
|
||
}
|
||
:deep(.el-upload-list) {
|
||
width:400px!important;
|
||
height: 200px!important;
|
||
.el-upload,
|
||
.el-upload-list--picture-card .el-upload-list__item {
|
||
width: 400px!important;
|
||
height: 200px!important;
|
||
}
|
||
|
||
.el-upload-list__item {
|
||
margin: 0;
|
||
border: none;
|
||
width: 400px!important;
|
||
height: 200px!important;
|
||
}
|
||
|
||
}
|
||
}
|
||
.disable-click {
|
||
pointer-events: none;
|
||
}
|
||
</style> |