You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

332 lines
7.0 KiB

<template>
<!-- 这是测试的页面 -->
<div class="dashboard-container">
<!-- 1 -->
<div class="dashboard-row">
<div class="dashboard-col wide">
<div class="allarea">
<AllArea @year-change="handleYearChange" />
</div>
</div>
<div class="dashboard-col narrow">
<div class="itemhead">
<span>消息通知</span>
</div>
<div class="mainarea">
<Message />
</div>
</div>
</div>
<!-- 2-->
<div class="dashboard-rowtwo">
<div class="dashboard-col wide bgcicon">
<MapArea />
</div>
<div class="dashboard-col narrow">
<div class="itemhead" style="margin: 0.5rem 0 0 0">
<span>功能区</span>
</div>
<div class="relaitem">
<FunctionArea :years="years" />
</div>
<div class="itemhead" style="margin: 0">
<span>投资主体</span>
</div>
<div class="relaitem">
<InvestArea :years="years" />
</div>
</div>
</div>
<!-- 3 -->
<div class="dashboard-row">
<div class="dashboard-col">
<div class="itemhead">
<span>产业数据分析</span>
</div>
<div class="relaitem">
<Cyeshuju />
</div>
</div>
<div class="dashboard-col">
<div class="itemhead">
<span>产业导向目录分析</span>
</div>
<div class="relaitem">
<Cydxml />
</div>
</div>
<div class="dashboard-col" style="height: 11rem">
<div class="itemhead">
<!-- <span>产业导向细分产业分析</span> -->
<span>年度任务完成情况</span>
</div>
<div class="relaitem" style="height: 9rem">
<!-- <Cydxxfgl /> -->
<Ndwcqk />
</div>
</div>
</div>
<!-- 4 -->
<div class="dashboard-row">
<div class="dashboard-col">
<div class="itemhead">
<span>储备项目统计分析</span>
</div>
<div class="relaitem">
<Cbxm />
</div>
</div>
<div class="dashboard-col">
<div class="itemhead">
<span>产业导向细分产业分析</span>
<!-- <span>年度任务完成情况</span> -->
</div>
<div class="relaitem">
<Cydxxfgl />
<!-- <Ndwcqk /> -->
</div>
</div>
</div>
</div>
</template>
<script>
import AllArea from "@/views/components/analysis/all.vue";
import FunctionArea from "@/views/components/analysis/function.vue";
import InvestArea from "@/views/components/analysis/invest.vue";
import Message from "@/views/components/analysis/message.vue";
import ProjectList from "@/views/components/analysis/projectList.vue";
import MapArea from "@/views/components/analysis/map.vue";
import Cyeshuju from "@/views/components/analysis/chanyeshuju.vue";
import Cydxml from "@/views/components/analysis/chanyedxml.vue";
import Cydxxfgl from "@/views/components/analysis/chanyexfgl.vue";
import Cbxm from "@/views/components/analysis/chubeixm.vue";
import Ndwcqk from "@/views/components/analysis/ndwcqk.vue";
import { investall, fungong ,getNewSysLogininfor} from "@/api/ManageApi/index";
import Cookies from "js-cookie";
export default {
components: {
AllArea,
FunctionArea,
InvestArea,
Message,
ProjectList,
MapArea,
Cyeshuju,
Cydxml,
Cydxxfgl,
Cbxm,
Ndwcqk,
},
data() {
return {
years: new Date().getFullYear().toString(),
allnumber: {
touzinumber: 0,
},
functionnumber: {
functionnumber: 0,
},
};
},
mounted() {
getNewSysLogininfor()
.then(res => {
const lastLoginTime = res.data?.loginTime;
if (!lastLoginTime) {
return;
}
if (!res.data) {
if (Cookies.get("newSysLogininfor") != 2) {
this.$confirm(
`您上次登录时间为${lastLoginTime},建议修改密码`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}
)
.then(() => {
Cookies.set("newSysLogininfor", 2);
})
.catch(() => {
Cookies.set("newSysLogininfor", 2);
});
}
}
})
.catch(err => {
console.error('获取登录信息失败:', err);
});
},
methods: {
handleYearChange(years) {
this.years = years;
},
async getData() {
const response = await investall();
if (response && response.data) {
const totalCount = response.data.reduce(
(sum, item) => sum + item.count,
0
);
this.allnumber = {
touzinumber: totalCount,
};
}
},
async getfuncdata() {
const response2 = await fungong();
if (response2 && response2.data) {
const totalCount2 = response2.data.reduce(
(sum, item) => sum + item.count,
0
);
this.functionnumber = {
functionnumber: totalCount2,
};
}
},
},
created() {
this.getData();
this.getfuncdata();
},
};
</script>
<style scoped>
.dashboard-container {
display: flex;
flex-direction: column;
height: 100%;
padding: 0.5rem;
gap: 0.5rem;
box-sizing: border-box;
overflow: auto;
}
.dashboard-row {
display: flex;
flex: 1;
gap: 0.5rem;
}
.dashboard-rowtwo {
display: flex;
height: auto;
gap: 0.5rem;
}
.dashboard-col {
flex: 1;
background-color: #ffffff;
border-radius: 0.5rem;
display: flex;
flex-direction: column;
overflow: hidden;
}
.dashboard-col.wide {
flex: 2;
}
.dashboard-col.narrow {
flex: 1;
}
.itemhead {
width: 100%;
border-left: 0.25rem solid #2b62f1;
margin: 0.5rem 0;
margin: 0.5rem 0;
height: 1.25rem;
display: flex;
align-items: center;
justify-content: space-between;
.top {
width: auto;
display: flex;
margin-bottom: 10px;
font-size: 0.88rem;
color: gray !important;
justify-content: flex-end;
}
}
.relaitem {
flex: 1;
position: relative;
}
.itemsall {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
top: 33%;
left: 23%;
z-index: 1;
}
.itemsall span:nth-child(1) {
font-family: DINbold;
font-weight: 500;
font-size: 1.25rem;
color: #292c33;
text-align: left;
font-style: normal;
text-transform: none;
}
.itemsall span:nth-child(2) {
font-family: alibold;
font-weight: 400;
font-size: 0.68rem;
color: #9e9e9e;
text-align: left;
font-style: normal;
text-transform: none;
}
.itemhead span {
margin-left: 1rem;
font-family: alibold;
font-weight: 600;
font-size: 1rem;
color: #3d424c;
line-height: 1.69rem;
text-align: left;
font-style: normal;
text-transform: none;
}
.mainarea {
flex: 1;
padding: 0 0 0 0.5rem;
overflow: auto;
}
.allarea {
flex: 1;
padding: 0rem 1rem 0 1rem;
display: flex;
flex-direction: column;
}
.bgcicon {
padding: 0 !important;
}
</style>