Files
FINI_UI/src/views/dashBoard/index.vue
T

1172 lines
30 KiB
Vue

<template>
<div class="login1">
<el-drawer v-model="drawer" size="80%" direction="ltr" :show-close="false" :before-close="handleDrawer"
style="background-color: #1C3F56;" :with-header="false" >
<Drawer />
</el-drawer>
<div class="wrap w">
<div class="leftbox">
<Item :data="data" />
<Nav />
</div>
<div class="rightbox">
<Header :time="datatime" :openDrawer="openDrawer"/>
<div class="content">
<div class="content-topleft">
<p class="content-title">{{ $t(i18n.global.t('dashboard.Milestones')) }}</p>
<el-calendar ref="calendar" class="calendar">
<template #header="{ date }">
<el-button size="small" @click="selectDate('prev-month')">
<img src="@/assets/1x/source11.png">
</el-button>
<!-- <span class="month">{{ date.split(' ').slice(-1).join() }}</span> -->
<span class="month">{{ showMounth(date) }}</span>
<el-button size="small" @click="selectDate('next-month')">
<img src="@/assets/1x/source12.png">
</el-button>
</template>
</el-calendar>
<div class="topleft-bottom">
<div class="topleft-bottom1">
<p class="yuan3"></p>
<p class="calendar-title">{{ $t(i18n.global.t('dashboard.PublicOfferSubscription')) }}</p>
</div>
<div class="topleft-bottom1">
<p class="yuan6"></p>
<p class="calendar-title">{{ $t(i18n.global.t('dashboard.PublicOfferAllotment')) }}</p>
</div>
<div class="topleft-bottom1">
<p class="yuan7"></p>
<p class="calendar-title">{{ $t(i18n.global.t('dashboard.PublicOfferMoneySettlement')) }}</p>
</div>
<div class="topleft-bottom1">
<p class="yuan5"></p>
<p class="calendar-title">{{ $t(i18n.global.t('dashboard.Listingdate')) }}</p>
</div>
</div>
</div>
<div class="content-topright">
<p class="topright-title">{{ $t(i18n.global.t('dashboard.PublicOffer')) }}</p>
<div ref="main" style="width: 100%; height: 100%"></div>
<div class="topright-p">
<div class="p-1">
<div>
<p>{{ $t(i18n.global.t('dashboard.SubscriptionRatio')) }}</p>
<p class="p-2-2">{{ subscriptionRatio?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}x</p>
</div>
<div>
<p class="p-1-1">{{ $t(i18n.global.t('dashboard.ApplicationQuantity')) }}</p>
<p class="p-2-2">{{ ApplicationQuantity?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
</div>
<div class="p-3">
<p>{{ $t(i18n.global.t('dashboard.InitialShares')) }}</p>
<p>{{ $t(i18n.global.t('dashboard.FinalShares')) }}</p>
</div>
<div class="p-4">
<Box :leftNumber=Number(initialinstituational) :rightNumber=Number(code44)></Box>
</div>
<div class="p-5">
{{ $t(i18n.global.t('dashboard.LastUpadated')) }}: {{ datatime }}
</div>
</div>
</div>
<div class="content-bottomleft">
<p class="bottomleft-title">{{ $t(i18n.global.t('dashboard.InitialAllocation')) }}</p>
<div ref="main1" style="width: 100%; height: 100%"></div>
<div class="bottomleft-bouttom">
<div class="pulic">
<div class="public-left">
<p class="yuan1"></p>
<p class="yuan-title">
<span class="desmidle"> {{ $t(i18n.global.t('dashboard.Public')) }}</span>
<span class="persent">{{ InitialAllocationPublic }}</span>
</p>
</div>
<p class="yuan-title3">{{ initialpublic?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
<div class="pulic1">
<div class="public-left1">
<p class="yuan2"></p>
<p class="yuan-title">
<span class="desmidle">{{ $t(i18n.global.t('dashboard.Institutional')) }}</span>
<span class="persent">{{ InitialAllocationInstitutional }}</span>
</p>
</div>
<p class="yuan-title2">{{ initialinstituational?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
<div class="pulic2">
<div class="public-left2">
<p class="yuan-title">{{ $t(i18n.global.t('dashboard.TotalOfferShares')) }}</p>
</div>
<p class="yuan-title1">{{ code66?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
</div>
</div>
<div class="content-bottomright">
<p class="bottomleft-title">{{ $t(i18n.global.t('dashboard.FinalAllocation')) }}</p>
<div ref="main2" style="width: 100%; height: 100%"></div>
<div class="bottomleft-bouttom">
<div class="pulic">
<div class="public-left">
<p class="yuan8"></p>
<p class="yuan-title">
<span class="desmidle">{{ $t(i18n.global.t('dashboard.Public')) }}</span>
<span class="persent">{{ FinalAllocationPublic }}</span>
</p>
</div>
<p class="yuan-title3-1">{{ finalpublic?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
<div class="pulic1">
<div class="public-left1">
<p class="yuan9"></p>
<p class="yuan-title">
<span class="desmidle">{{ $t(i18n.global.t('dashboard.Institutional')) }}</span>
<span class="persent">{{ FinalAllocationInstitutional }}</span>
</p>
</div>
<p class="yuan-title2-1">{{ finalinstitutional?.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
<div class="pulic2">
<div class="public-left2">
<p class="yuan-title">{{ $t(i18n.global.t('dashboard.TotalOfferShares')) }}</p>
</div>
<p class="yuan-title1">{{ code99?.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
export default {
name: "XdashBoard"
}
</script>
<script lang="ts" setup>
import Item from './Main.vue';
import { ref, onMounted, reactive } from "vue";
import Nav from "./nav/index.vue";
import Header from "./Header/index.vue";
import * as echarts from "echarts";
import { useRoute } from 'vue-router'
import Box from './box/index.vue'
import { getIpo, getHomeIpo } from '@/api/reqIpo/ipo'
import moment from 'moment';
import i18n from '@/locales'
import { ipoStore } from "@/stores/ipo"
import { getCurrentInstance, onUnmounted } from 'vue'
import Drawer from '@/views/login/modelComponents/Drawer.vue'
import { getDataFromId } from "@/api/mock/home";
const drawer = ref(false)
const handleDrawer = (done: () => void) => {
done();
}
const openDrawer = () => {
drawer.value = true;
}
const { proxy } = (getCurrentInstance() as any)
// console.log('getCurrentInstance()中的proxy:', proxy)
const store = ipoStore()
const main = ref() // 使用ref创建虚拟DOM引用,使用时用main.value
const main1 = ref(); // 使用ref创建虚拟DOM引用,使用时用main.value
const main2 = ref();
const route = useRoute()
var daysAndDom = [];
onMounted(
() => {
const obj = JSON.parse(localStorage.getItem('itemData') as string);
// obj.logolinks="https://img10.360buyimg.com/img/jfs/t1/192028/25/33459/5661/63fc2af2F1f6ae1b6/d0e4fdc2f126cbf5.png";
data.value = obj;
getreferencedata()
getdatatime()
},
)
const ApplicationQuantity = ref('')
const subscriptionRatio = ref()
const code33 = ref('')
const initialinstituational = ref('')
const code44 = ref('')
console.log(code44.value);
const finalinstitutional = ref('')
const code66 = ref()
const finalpublic = ref('')
const code99 = ref(11)
const startDate = ref()
const endDate = ref()
const allotmentDate = ref()
const datatime = ref('')
const nowMounth = ref('')
const quantity = ref('')
const ratio = ref('')
const initialpublic = ref('')
interface lineObje {
startDate: number
endDate: number
color: string
}
const LineData = reactive({
nowMounth: "",
lines: [] as lineObje[],
ids: [] as any
})
const PublicOfferX1 = ref<string[]>([])
const PublicOfferY1 = ref<string[]>([])
const PublicOfferZ1 = ref<string[]>([])
const PublicOfferX = ref<string[]>([])
const PublicOfferY = ref<string[]>([])
const InitialAllocationPublic = ref('')
const FinalAllocationPublic = ref('')
const InitialAllocationInstitutional = ref('')
const FinalAllocationInstitutional = ref('')
const setBarRight = async () => {
// const result = await getDataFromId('bar')
// const ipoID = '00314';
// const index = result.findIndex((item: any) => item.ipoID == ipoID);
// const graph = result[index].graph;
// PublicOfferX.value = graph.map((item: any) => {
// return moment(item.dateTime).format('MM-DD')
// })
// PublicOfferY.value = graph.map((item: any) => {
// return item.poApplicationQuantity;
// });
// const amount = Number(initialpublic.value) + Number(initialinstituational.value);
// InitialAllocationPublic.value = Math.round(Number(initialpublic.value) / amount * 10000) / 100 + "%";
// InitialAllocationInstitutional.value = Math.round(Number(initialinstituational.value) / amount * 10000) / 100 + "%";
// init();
}
const setBar = async () => {
const ipoID = localStorage.getItem('ipoID')
const result = await getIpo(ipoID as string)
PublicOfferX1.value = (result as any).data[0].graph.map((item: any) => {
return moment(item.dateTime).format('MM/DD')
})
PublicOfferY1.value = (result as any).data[0].graph.map((item: any) => {
return item.poApplicationQuantity / 1000000;
});
PublicOfferZ1.value = (result as any).data[0].graph.map((item: any) => {
return (item.poApplicationQuantity) / item.poSharesInitial;
});
const amount = Number(initialpublic.value) + Number(initialinstituational.value);
InitialAllocationPublic.value = Math.round(Number(initialpublic.value) / amount * 10000) / 100 + "%";
InitialAllocationInstitutional.value = Math.round(Number(initialinstituational.value) / amount * 10000) / 100 + "%";
init();
}
onMounted(() => {
// setBarRight();//假的bar接口
setBar()//真的接口
})
const getdatatime = async () => {
const res = await getHomeIpo(1)
const time = (res as any).data[0].dateTime
datatime.value = moment(time).format('YYYY-MM-DD HH:mm')
}
const getreferencedata = async () => {
//---mock测试接口
// const result1 = await getDataFromId('bar');
// const res = result1[0];
//---mock测试接口结束
const ipoID = localStorage.getItem('ipoID')
const result = await getIpo(ipoID as string)
const res = (result as any).data[0];
// console.log(res);
const { bookOpenDate, bookCloseDate, allotmentDate, siInputDate, listingDate } = res;
startDate.value = bookOpenDate;
endDate.value = bookCloseDate
// console.log('$$', allotmentDate, allotmentDate)
// console.log('$$', startDate.value, endDate.value)
calendarAddData(allotmentDate, allotmentDate, '#9bc3f1')
calendarAddData(startDate.value, endDate.value, '#65FABF')
calendarAddData(siInputDate, siInputDate, '#bd99dc')
calendarAddData(listingDate, listingDate, '#38b126')
calendarAddLine()
initialpublic.value = res.poSharesInitial
ApplicationQuantity.value = res.poApplicationQuantity
subscriptionRatio.value = res.poApplicationQuantity / res.poSharesInitial
subscriptionRatio.value = subscriptionRatio.value.toFixed(1)
initialinstituational.value = res.ioSharesInitial
// console.log('initialinstituational', (res as any).data[0].poSharesInitial);
code44.value = res.poSharesFinal
finalinstitutional.value = res.ioOfferSharesFinal
code66.value = Number(initialinstituational.value) + Number(initialpublic.value)
finalpublic.value = res.poSharesFinal
code99.value = Number(finalpublic.value) + Number(finalinstitutional.value)
FinalAllocationPublic.value = Math.round(Number(finalpublic.value) / code99.value * 10000) / 100 + "%";
FinalAllocationInstitutional.value = Math.round(Number(finalinstitutional.value) / code99.value * 10000) / 100 + "%";
quantity.value = res.overallIpoShares
init1()
init2()
}
//传入时间
function calendarAddData(startDate: string, endDate: string, color: string) {
function toNumberTime(str: string) {
return new Date(moment(str).format("YYYY-MM-DD")).getTime() as number
}
LineData.lines.push({ startDate: toNumberTime(startDate), endDate: toNumberTime(endDate), color })
}
//添加对应下划线
function calendarAddLine() {
var calendarDom = calendar.value.$el;
var daysDom = calendarDom.querySelectorAll('.el-calendar-day')
var tag = 0;
daysAndDom = [] as { dom: object, day: String }[]
daysDom.forEach((item: any) => {
var day = item.querySelector('span').innerText;
if (day.length < 2) {
day = "0" + day
}
if (day == "01") {
tag++;
}
tag == 1 && daysAndDom.push({ dom: item, day })
})
daysDom.forEach((item: any) => {
item.style.borderBottom = "";
})
if (LineData.ids.length) {
LineData.ids.forEach((item: any) => {
// item.dom.removeChild(item.id)
var id = item.dom.querySelector("#" + item.id)
item.dom.removeChild(id);
})
LineData.ids = [];
}
const Arr = [[], [], [], [], [], [], [], [], [], [], [], []] as any
daysAndDom.forEach((item: any) => {
var str = LineData.nowMounth + item.day;
var time1 = new Date(str).getTime()//time1为在startdate到enddate之间的时间
const arrADD = LineData.lines.map((line, index) => {
if (line.startDate <= time1 && time1 <= line.endDate) {
// item.dom.style.borderBottom = `10px solid ${line.color}`;
var span = document.createElement('div')
span.style.width = '65px'
span.style.height = '10px'
span.setAttribute('id', 't' + time1)
LineData.ids.push({ dom: item.dom, id: 't' + time1 })
span.style.backgroundColor = line.color
item.dom.appendChild(span)
Arr[index].push({ dom: item.dom })
}
return {}
})
})
console.log('Arr', Arr)//传入的时间的dom:div.el-calendar-day
Arr.forEach((item: any) => {
if (item.length) {
console.log(item[0].dom.children[1], item.length)
item[0].dom.children[1].style.marginLeft = "23px"//起始时间添加样式
item[0].dom.children[1].style.width = "42px"
item[0].dom.children[1].style.borderRadius = "10px 0px 0px 10px";
item[item.length - 1].dom.children[1].style.width = "42px"//结束时间添加样式
item[item.length - 1].dom.children[1].style.borderRadius = "0px 20px 20px 0px";
}
if (item.length == 1) {//如果长度为1,单独设置样式
// console.log('item',item)
item[0].dom.children[1].style.marginLeft = "11px"
item[0].dom.children[1].style.width = "42px"
item[0].dom.children[1].style.borderRadius = "10px";
}
})
}
function init() {
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(main.value);
// 指定图表的配置项和数据
var option = {
grid: {
top: 30,
x: 70,
x2: 60,
y2: 200
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
xAxis: {
// data: ['Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun', 'Mon', 'Tue'],
data: PublicOfferX1.value
},
yAxis: [
{
type: 'value',
max: 9,
min: 0,
splitNumber: 9,
boundaryGap: [0.2, 0.2],
name: proxy.$t('dashboard.QuantityMillion'),
lineStyle: {
width: 1,
type: 'solid',
}
},
{
type: 'value',
name: proxy.$t('dashboard.Ratio'),
min: 0,
max: 1.8,
splitNumber: 9,
alignTicks: true,
}
],
series: [
{
name: proxy.$t('dashboard.Ratio'),
type: 'line',
data: PublicOfferZ1.value,
// data:PublicOfferY.value,
// markLine:{
// symbol:['none','none'],
// label:{
// show:false
// },
// itemStyle:{
// normal:{
// lineStyle:{
// type:'solid',
// color:'#ee3238'
// }
// }
// },
// data:[{
// yAxis:9
// }]
// }
},
{
name: proxy.$t('dashboard.QuantityMillion'),
type: 'bar',
data: PublicOfferY1.value,
barWidth: '40%',
itemStyle: {
color: '#f6caae'
},
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
window.onresize = () => {
myChart.resize();
}
}
function init1() {
var myChart1 = echarts.init(main1.value);
const option1 = {
series: [
{
type: "pie", // type设置为饼图
color: ['#333f50', '#ed7d31'],
radius: ['65%'],
center: ['50%', '35%'],
data: [
{
name: "Public",
value: initialpublic.value
},
{
name: "Institution",
value: initialinstituational.value
}
],
itemStyle: {
borderWidth: 5,
borderColor: '#fff'
},
cursor: 'default'
}
]
}
myChart1.setOption(option1);
//屏幕自适应
window.onresize = () => {
myChart1.resize();
}
};
function init2() {
var myChart2 = echarts.init(main2.value);
const option2 = {
series: [
{
type: "pie", // type设置为饼图
color: ['#ffc000', '#2f5597',],
radius: ['65%'],
center: ['50%', '35%'],
data: [
{
name: "Public",
value: finalpublic.value
},
{
name: "Institution",
value: finalinstitutional.value
}
],
itemStyle: {
borderWidth: 5,
borderColor: '#fff'
},
cursor: 'default'
}
]
};
myChart2.setOption(option2);
window.onresize = () => {
myChart2.resize();
}
}
const data = ref({
title: "FINI TESTING COMP",
number: 10000,
HKD: "HKD 148.000",
price: "final offer Price",
time: "2023-03-31 09:00",
trading: "Commencement of trading date"
})
const calendar = ref()
const selectDate = (val: string) => {
calendar.value.selectDate(val)
setTimeout(() => {
// calendarLine(startDate.value, endDate.value, '#65FABF'),
// calendarLine(allotmentDate.value, allotmentDate.value, '#9bc3f1')
calendarAddLine()
})
}
const showMounth = (date: any) => {
function en() {
const month = date.split(" ")[2]
const year = date.split(" ")[0]
var monthObj = {
January: "01",
February: "02",
March: "03",
April: "04",
May: "05",
June: "06",
July: "07",
August: "08",
September: "09",
October: "10",
November: "11",
December: "12"
}
if (isValidKey(month, monthObj)) {
const monunNumber = monthObj[month]
LineData.nowMounth = year + "-" + monunNumber + "-"
}
function isValidKey(
key: string | number | symbol,
object: object
): key is keyof typeof object {
return key in object;
}
}
function chinese() {
let month = date.split(" ")[2]
let year = date.split(" ")[0]
if (month.length < 2) {
month = "0" + month;
}
LineData.nowMounth = year + "-" + month + "-"
}
if (store.$state.locale == 1) {
en()
} else {
chinese()
}
// const arr = date.split(" ")
// if (arr.length == 3) {
// return arr[2]
// } else if (arr.length == 4) {
// return arr[2] + " " + arr[3]
// }
return date
}
</script>
<style lang="scss" scoped>
.login1 {
background-image: url("@/assets/1x/beijingtu.png");
background-repeat: no-repeat;
background-size: cover;
height: 1200px;
font-family: "Calibri";
@media screen and (max-width: 768px) {
height: 2500px;
}
}
.wrap {
display: flex;
padding-top: 30px;
.leftbox {
width: 22%;
height: 100%;
position: relative;
@media screen and (max-width: 768px) {
display: none;
}
}
.rightbox {
width: 78%;
height: 100%;
@media screen and (max-width: 768px) {
width: 100vw;
transform: translateY(-30rem);
}
.content {
width: 100%;
// height: 100vh;
display: flex;
flex-wrap: wrap;
.persent {
color: #9FA0BF;
font-weight: 400;
font-size: 16px;
font-family: 'Calibri';
// margin-left: 14px;
}
.desmidle {
margin: 0 10px 0 10px;
}
@media screen and (max-width: 768px) {
flex-direction: column;
}
.pulic {
display: flex;
// justify-content: space-around;
justify-content: space-between;
margin-left: 55px;
align-items: flex-end;
}
.pulic1 {
display: flex;
// justify-content: space-around;
justify-content: space-between;
align-items: flex-end;
margin-left: 35px;
}
.pulic2 {
display: flex;
// justify-content: space-around;
justify-content: space-between;
align-items: flex-end;
margin-left: 5px;
}
.public-left {
display: flex;
margin-top: 10px;
// width:80px;
min-width: 80px;
justify-content: space-between;
color: #647c8b;
}
.public-left1 {
display: flex;
margin-top: 10px;
min-width: 120px;
justify-content: space-between;
color: #647c8b;
}
.public-left2 {
margin-top: 10px;
color: #647c8b;
}
.institutional {
display: flex;
}
.total {
display: flex;
}
.yuan1 {
width: 15px;
height: 15px;
background-color: #333f50;
border-radius: 50%;
}
.yuan2 {
width: 15px;
height: 15px;
background-color: #ed7d31;
border-radius: 50%;
}
.yuan8 {
width: 15px;
height: 15px;
background-color: #ffc000;
border-radius: 50%;
}
.yuan9 {
width: 15px;
height: 15px;
background-color: #2f5597;
border-radius: 50%;
}
.yuan-title {
font-size: 19px;
font-family: 'Calibri';
color: #8e9eaa;
}
.yuan-title3 {
margin-left: 75px;
color: #5c6063;
font-size: 18px;
font-weight: 400;
display: flex;
flex-direction: row-reverse;
// background-color: #20b109;
}
.yuan-title3-1 {
margin-left: 52px;
color: #5c6063;
font-size: 18px;
font-weight: 400;
}
.yuan-title2 {
margin-left: 31px;
color: #5c6063;
font-size: 18px;
font-weight: 400;
display: flex;
flex-direction: row-reverse;
// background-color: #20b109;
}
.yuan-title2-1 {
margin-left: 53px;
color: #5c6063;
font-size: 18px;
font-weight: 400;
}
.yuan-title1 {
margin-left: 55px;
color: #516c7e;
font-weight: bold;
font-size: 25px;
display: flex;
flex-direction: row-reverse;
// background-color: #20b109;
}
.yuan2 {
width: 15px;
height: 15px;
background-color: #ed7d31;
border-radius: 50%;
}
.yuan3 {
width: 15px;
height: 15px;
background-color: #65fabf;
border-radius: 50%;
margin-top: 7px;
}
.yuan4 {
width: 15px;
height: 15px;
background-color: #ee4040;
border-radius: 50%;
}
.yuan5 {
width: 15px;
height: 15px;
background-color: #20b109;
border-radius: 50%;
margin-top: 7px;
}
.yuan6 {
width: 15px;
height: 15px;
background-color: #98c2f2;
border-radius: 50%;
margin-top: 7px;
}
.yuan7 {
width: 15px;
height: 15px;
background-color: #bf98de;
border-radius: 50%;
margin-top: 7px;
}
.topleft-bottom {
transform: translateY(-40px);
}
.bottomleft-bouttom {
transform: translateY(-150px);
padding-right: 40px;
padding-left: 30px;
}
.topright-p {
transform: translateY(-170%);
}
.p-1 {
display: flex;
margin-left: 50px;
font-size: 20px;
color: #415d6f;
justify-content: space-between;
width: 400px;
@media screen and (max-width: 768px) {
width: 80vw;
transform: translateX(-6vw);
font-size: 15rem;
}
}
.p-2-2 {
width: 28%;
// margin-top: 20px;
transform: translateY(5px);
font-weight: 600;
font-size: 23px;
@media screen and (max-width: 768px) {
font-size: 20rem;
}
// }
}
.p-3 {
margin-top: 15px;
display: flex;
justify-content: space-between;
width: 400px;
margin-left: 50px;
font-size: 20px;
color: #415d6f;
@media screen and (max-width: 768px) {
width: 80vw;
transform: translateX(-6vw);
font-size: 16rem;
}
}
.p-4 {
margin-top: 3px;
margin-left: 50px;
@media screen and (max-width: 768px) {
width: 80vw;
transform: translateX(-6vw);
font-size: 15rem;
}
}
.p-5 {
float: right;
margin-top: 10px;
margin-right: 20px;
color: #7e929f;
font-size: 18px;
@media screen and (max-width: 768px) {
font-size: 14rem;
transform: translateY(-2rem);
margin-right: 4rem;
}
}
.topleft-bottom1 {
display: flex;
margin-left: 10%;
margin-top: 2%;
}
.bottomleft-title {
font-size: 25px;
margin: 5px;
color: #2e4d60;
font-weight: bold;
margin-left: 20px;
margin-top: 15px;
}
.calendar-title {
margin-left: 20px;
font-size: 23px;
color: #2a4a5e;
font-family: 'Calibri';
@media screen and (max-width: 768px) {
font-size: 20rem;
}
}
.content-topleft {
width: 490px;
height: 530px;
background-color: #fff;
@media screen and (max-width: 768px) {
width: 90vw;
margin-left: 5vw;
}
// background-color: red;
.content-title {
font-size: 25px;
margin: 5px;
color: #2e4d60;
font-weight: bold;
margin-left: 20px;
margin-top: 15px;
cursor: default;
@media screen and (max-width: 768px) {
font-size: 21rem;
}
}
}
.content-topright {
width: 490px;
height: 530px;
background-color: #fff;
margin-left: 20px;
@media screen and (max-width: 768px) {
width: 90vw;
height: 60vh;
margin-left: 5vw;
margin-top: 2vh;
}
.topright-title {
font-size: 25px;
margin: 5px;
color: #2e4d60;
font-weight: bold;
margin-left: 20px;
margin-top: 10px;
}
}
.content-bottomleft {
margin-top: 40px;
width: 490px;
height: 432px;
background-color: #fff;
@media screen and (max-width: 768px) {
width: 90vw;
margin-left: 5vw;
margin-top: 2vh;
}
}
.content-bottomright {
margin-top: 40px;
width: 490px;
height: 432px;
background-color: #fff;
margin-left: 20px;
@media screen and (max-width: 768px) {
width: 90vw;
margin-left: 5vw;
margin-top: 2vh;
}
}
// .month {
// font-size: 25px;
// color: #fff;
// font-weight: bold;
// }
// .calendar {
// :deep(.el-calendar-day) {
// border-bottom: 1px solid black;
// }
// }
}
}
.content-bottomleft {
width: 45%;
height: 40%;
background-color: #fff;
}
.content-bottomright {
width: 45%;
height: 40%;
background-color: #fff;
margin-left: 20px;
}
.month {
font-size: 25px;
color: #fff;
font-weight: bold;
@media screen and (max-width: 768px) {
font-size: 20rem;
font-weight: 400;
}
}
}
:deep(.el-calendar) {
--el-calendar-border: none;
cursor: default;
@media screen and (max-width: 768px) {
width: 80vw;
margin-left: 5vw;
}
}
:deep(.el-calendar__header) {
display: flex;
justify-content: space-between;
padding: 12px 20px;
border-bottom: var(--el-calendar-header-border-bottom);
background-color: #1f4055;
width: 410px;
margin-left: 20px;
font-family: "Calibri";
@media screen and (max-width: 768px) {
width: 71vw;
transform: translate(-4vw);
}
}
:deep(.el-calendar-table) {
width: 450px;
background-color: red !important;
padding-left: 10px 75px 27px !important;
cursor: default;
@media screen and (max-width: 768px) {
width: 80vw;
transform: translate(-4vw);
}
}
:deep(.el-calendar .el-calendar-table .el-calendar-day) {
padding: 0px;
text-align: center;
line-height: 33px;
font: 13px 'Poppins-Regular';
background-color: #fff;
height: 33px;
border: none;
cursor: default;
font-family: "Calibri";
}
:deep(.el-calendar-table) {
border: none;
text-align: center;
}
:deep(.el-calendar-table thead) {
margin-top: 20px;
font-size: 13px;
font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
font-weight: bold;
background-color: rgb(255, 255, 255);
font-family: "Calibri"
}
:deep(.el-calendar-table td.is-today) {
color: black
}
</style>