203 lines
5.6 KiB
Vue
203 lines
5.6 KiB
Vue
<!-- 系统风险分析,原市场分析拆分、新增、11.6合并-->
|
||
<template>
|
||
<div>
|
||
<div class="one">
|
||
<!-- 卡片化的标签页 -->
|
||
|
||
|
||
<el-card style='height: 440px;margin-bottom:10px;' :body-style={padding:0}>
|
||
<!-- height:400px -->
|
||
<!-- 1、上标 -->
|
||
<span class="superscript" style="width: 20px; height: 40px;">资本市场系统性风险指数监测
|
||
</span>
|
||
|
||
<!-- 添加折线图 -->
|
||
|
||
<component :is="compName" :zoom="datazoom" @datazoom="changeComp" ></component>
|
||
<!-- <system-risk-component/>-->
|
||
|
||
</el-card>
|
||
|
||
<el-card style="height: 550px;margin-top: 10px" :body-style={padding:0}>
|
||
<span class="superscript" style="width: 20px; height: 20px;">维度时序</span>
|
||
<dimension-component :zoom="datazoom"/>
|
||
|
||
|
||
</el-card>
|
||
<el-card style='height: 600px;margin-top: 10px;' :body-style={padding:0}>
|
||
<!-- height:400px -->
|
||
<!-- 1、上标 -->
|
||
<span class="superscript" style="width: 20px; height: 40px;">系统性影响指标分析</span>
|
||
|
||
<!-- 3、tab -->
|
||
<el-tabs type="border-card" style='margin: 20px 20px 0 20px;' @tab-click="handleClick">
|
||
|
||
<!-- 收益率传染 -->
|
||
<el-tab-pane label="个体风险状态" :lazy='true'>
|
||
<market-risk-component :zoom="datazoom" :title="'个体风险状态'"/>
|
||
</el-tab-pane>
|
||
|
||
<!-- 延迟渲染 lazy true-->
|
||
<!-- 波动传染 -->
|
||
<el-tab-pane label="风险关联与溢出" :lazy='true'>
|
||
<market-risk-component :zoom="datazoom" :title="'风险关联与溢出'"/>
|
||
</el-tab-pane>
|
||
|
||
<el-tab-pane label="市场系统结构" :lazy='true'>
|
||
<market-risk-component :zoom="datazoom" :title="'市场系统结构'"/>
|
||
</el-tab-pane>
|
||
|
||
<el-tab-pane label="市场波动和趋势" :lazy='true'>
|
||
<market-risk-component :zoom="datazoom" :title="'市场波动和趋势'"/>
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
<!-- <div class="warning-component">-->
|
||
<!-- <div class="warning-dates">-->
|
||
<!-- <div class="date-item">前日:<span>{{ prevDayIndex }}</span></div>-->
|
||
<!-- <div class="date-item">昨日:<span>{{ yesterdayIndex }}</span></div>-->
|
||
<!-- <div class="date-item">今日:<span>{{ todayIndex }}</span></div>-->
|
||
<!-- <div class="date-item">明日:<span>{{ tomorrowIndex }}</span></div>-->
|
||
<!-- </div>-->
|
||
<!-- </div>-->
|
||
</el-card>
|
||
|
||
<el-card style="height: 450px;margin-top: 10px" :body-style={padding:0}>
|
||
<span class="superscript" style="width: 20px; height: 20px;">宏观经济指标</span>
|
||
<system-risk-future/>
|
||
|
||
|
||
</el-card>
|
||
|
||
<!-- <market-risk-component/>-->
|
||
<!-- <MarketRisk/>-->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import systemRiskComponent from '@/components/systemRiskComponent';
|
||
import marketRiskComponent from "@/components/riskIndexComponent";
|
||
import dimensionComponent from "@/components/dimensionComponent";
|
||
import systemRiskFuture from "@/components/systemRiskFuture";
|
||
export default {
|
||
name:'systemRisk',
|
||
components:{
|
||
systemRiskFuture,
|
||
dimensionComponent,
|
||
systemRiskComponent,
|
||
marketRiskComponent
|
||
},
|
||
data () {
|
||
return {
|
||
datazoom:[],
|
||
compName:'systemRiskComponent',
|
||
prevDayIndex:'',
|
||
yesterdayIndex:'',
|
||
todayIndex:'',
|
||
tomorrowIndex:'',
|
||
state:'个体风险状态'
|
||
}
|
||
},
|
||
mounted(){
|
||
|
||
},
|
||
methods:{
|
||
changeComp(mesg){
|
||
this.datazoom=mesg
|
||
console.log(mesg)
|
||
},
|
||
// handleClick(tab, event) {
|
||
// this.state=tab.label
|
||
// }
|
||
changeState(){
|
||
let lis=['个体风险状态','风险关联与溢出','市场系统结构','市场波动和趋势']
|
||
this.state=lis.indexOf(this.state)+1>3? '个体风险状态':lis[lis.indexOf(this.state)+1]
|
||
}
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
.button {
|
||
border-radius: 7px;
|
||
width: 160px;
|
||
height: 30px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
gap: 12px;
|
||
cursor: pointer;
|
||
border: 3px solid rgb(94, 255, 209);
|
||
background-color: rgb(94, 255, 209);
|
||
box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.137);
|
||
}
|
||
|
||
.text {
|
||
|
||
width: 70%;
|
||
height: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
//background-color: rgb(255, 255, 255);
|
||
color: black;
|
||
}
|
||
|
||
.arrow path {
|
||
fill: rgb(19, 19, 19);
|
||
}
|
||
|
||
.button:hover .arrow {
|
||
animation: slide-in-left 0.6s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||
}
|
||
|
||
@keyframes slide-in-left {
|
||
0% {
|
||
transform: translateX(-8px);
|
||
opacity: 0;
|
||
}
|
||
|
||
100% {
|
||
transform: translateX(0px);
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
.button:active {
|
||
transform: scale(0.97);
|
||
}
|
||
.warning-component {
|
||
background-color: #ffffff;
|
||
border: 1px solid #ddd;
|
||
border-radius: 8px;
|
||
padding: 10px;
|
||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||
max-width: 100%;
|
||
text-align: center;
|
||
|
||
margin: auto;
|
||
}
|
||
|
||
.warning-dates {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
//margin-bottom: 10px;
|
||
}
|
||
|
||
.date-item {
|
||
margin: 0 10px;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.warning-recent {
|
||
color: #ff4d4f;
|
||
font-weight: bold;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
</style>
|
||
|