|
@@ -1,428 +0,0 @@
|
|
|
-<template>
|
|
|
- <!-- 创业公司登记 -->
|
|
|
- <div class="firm">
|
|
|
- <div class="pAHeader">
|
|
|
- <div class="pAHeader1">数据监测</div>
|
|
|
- </div>
|
|
|
- <hr />
|
|
|
- <!-- 顶部展示信息区开始 -->
|
|
|
- <div class="topDataBlock">
|
|
|
- <div class="topData">
|
|
|
- <div class="DataTitle">创客项目人数</div>
|
|
|
- <div class="topData_value">
|
|
|
- <span>{{HeaderData.people}}</span>
|
|
|
- <span><img src="@/assets/img/upIcon.png"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="topData">
|
|
|
- <div class="DataTitle">目前积累创客项目数量</div>
|
|
|
- <div class="topData_value">
|
|
|
- <span>{{ HeaderData.project }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="topData">
|
|
|
- <div class="DataTitle">创客活动数量</div>
|
|
|
- <div class="topData_value">
|
|
|
- <span>{{ HeaderData.activity }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="topData">
|
|
|
- <div class="DataTitle">学院目前资金总预算</div>
|
|
|
- <div class="topData_value">
|
|
|
- <span>{{ HeaderData.budget }}</span>
|
|
|
- <span>(千万)</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="topData">
|
|
|
- <div class="DataTitle">已支出预算</div>
|
|
|
- <div class="topData_value">
|
|
|
- <span>{{ HeaderData.isPay }}</span>
|
|
|
- <span>(千万)</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
- <!-- 顶部展示信息区结束 -->
|
|
|
-
|
|
|
- <!-- 中部大饼区开始 -->
|
|
|
- <div class="midBlock">
|
|
|
- <div ref="Circular" class="mid"></div>
|
|
|
- <div ref="Horizontal" class="mid"></div>
|
|
|
- </div>
|
|
|
- <!-- 中部大饼区结束 -->
|
|
|
-
|
|
|
- <!-- 柱状图区域开始 -->
|
|
|
- <div ref="Columnar" class="histogram"></div>
|
|
|
- <!-- 柱状图区域结束 -->
|
|
|
-
|
|
|
- <!-- 底部表格区域开始 -->
|
|
|
- <div class="tabTit">
|
|
|
- <div>
|
|
|
- <p>项目排名</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="projectBlock" style="padding-bottom: 60px;">
|
|
|
- <el-table
|
|
|
- :data="tableData"
|
|
|
- tooltip-effect="dark"
|
|
|
- stripe
|
|
|
- class="fontSize"
|
|
|
- :header-cell-style="{ background: '#3867d6',color:'#fff' }"
|
|
|
- >
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- type="index"
|
|
|
- label="排名"
|
|
|
- align="center"
|
|
|
- width="100">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- prop="title"
|
|
|
- label="项目名称"
|
|
|
- align="center">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- prop="pro_leader"
|
|
|
- label="项目负责人"
|
|
|
- align="center">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- prop="TypeName"
|
|
|
- label="创客类型"
|
|
|
- align="center">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- prop="Activity"
|
|
|
- label="活跃度"
|
|
|
- align="center">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- prop="ClassName"
|
|
|
- label="所属学院"
|
|
|
- align="center">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
-<!-- 通知表格结束-->
|
|
|
- <!-- 底部表格区域结束 -->
|
|
|
-
|
|
|
-
|
|
|
- </div>
|
|
|
- </template>
|
|
|
-
|
|
|
- <script>
|
|
|
- import * as echarts from 'echarts';
|
|
|
- export default {
|
|
|
-
|
|
|
- data() {
|
|
|
- return {
|
|
|
- //头部区域数据
|
|
|
- HeaderData:{
|
|
|
- people:329,
|
|
|
- project:40,
|
|
|
- activity:25,
|
|
|
- budget:100,
|
|
|
- isPay:25
|
|
|
- },
|
|
|
- //圆形
|
|
|
- CircularData:[
|
|
|
- {value:30,name:"个人创客"},
|
|
|
- {value:70,name:"创客活动"}
|
|
|
- ],
|
|
|
- //横行的柱状
|
|
|
- HorizontalData:[
|
|
|
- [ '物联网激光切割器',0],
|
|
|
- [ '人工智能领跑马拉松',1000, ],
|
|
|
- [ '3D演奏智能工具', 2000],
|
|
|
- [ '人工智能分链机器',3000],
|
|
|
- ],
|
|
|
- // 柱状
|
|
|
- ColumnarData:[
|
|
|
- ['3D智能分链机器', 2000],
|
|
|
- ['3D智能分链机器1',3000],
|
|
|
- ['3D智能分链机器2', 2500],
|
|
|
- ['3D智能分链机器3', 1000],
|
|
|
- ['3D智能分链机器4', 2000],
|
|
|
- ['3D智能分链机器5',3000],
|
|
|
- ['3D智能分链机器6', 2500],
|
|
|
- ['3D智能分链机器7', 1000],
|
|
|
- ['3D智能分链机器8', 2000],
|
|
|
- ['3D智能分链机器9',3000],
|
|
|
- ['3D智能分链机器10', 2500],
|
|
|
- ['3D智能分链机器11', 1000],
|
|
|
- ['3D智能分链机器12', 2000],
|
|
|
- ['3D智能分链机器13',3000],
|
|
|
- ['3D智能分链机器14', 2500],
|
|
|
- ['3D智能分链机器15', 1000],
|
|
|
- ],
|
|
|
- tableData: [
|
|
|
- {title:"人工智能分链机器",pro_leader:"覃罡彤",TypeName:"个人创客",Activity:"286",ClassName:"信息与通讯学院"},
|
|
|
- {title:"3D演奏智能工具",pro_leader:"袁一鸣",TypeName:"个人创客",Activity:"225",ClassName:"信息与通讯学院"},
|
|
|
- {title:"物联网切割机器",pro_leader:"张晓分",TypeName:"个人创客",Activity:"169",ClassName:"中德制造"},
|
|
|
- {title:"人工智能领航AI马拉松",pro_leader:"林子夏",TypeName:"创客活动",Activity:"121",ClassName:"中德制造"},
|
|
|
- ]
|
|
|
- };
|
|
|
- },
|
|
|
- methods: {
|
|
|
- //圆形饼图
|
|
|
- setCircularData(){
|
|
|
- const Circular = echarts.init(this.$refs['Circular']);
|
|
|
- let option = {
|
|
|
- title:{
|
|
|
- text:"创新创业项目类型"
|
|
|
- },
|
|
|
- legend: {
|
|
|
- orient: 'vertical',
|
|
|
- top:"10%",
|
|
|
- left:"left"
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- type: 'pie',
|
|
|
- label: {
|
|
|
- show:true,
|
|
|
- position:"inner",
|
|
|
- formatter:'{d}%'
|
|
|
- },
|
|
|
- data: this.CircularData
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- Circular.setOption(option)
|
|
|
- },
|
|
|
- //横向柱状图
|
|
|
- setHorizontalData(){
|
|
|
- const Horizontal = echarts.init(this.$refs['Horizontal']);
|
|
|
- let option = {
|
|
|
- grid: {
|
|
|
- top: 80, // 设置网格顶部的边距为 50px
|
|
|
- left:10,
|
|
|
- bottom:0,
|
|
|
- right:"100px"
|
|
|
- // left:'-10px'
|
|
|
- },
|
|
|
- title:{
|
|
|
- text:"创客活动资金"
|
|
|
- },
|
|
|
- dataset: {
|
|
|
- source: [
|
|
|
- [ 'product', 'amount'],
|
|
|
- ...this.HorizontalData
|
|
|
- ],
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- position:"top",
|
|
|
- name:"单位:万元",
|
|
|
- nameTextStyle:{
|
|
|
- fontSize:14,
|
|
|
- align:"left",
|
|
|
- verticalAlign:"bottom",
|
|
|
- padding:[0,0,7,10],
|
|
|
- }
|
|
|
- },
|
|
|
- yAxis: {
|
|
|
- type: 'category',
|
|
|
- zlevel:1,
|
|
|
- axisLabel:{
|
|
|
- inside:true,
|
|
|
- margin:4,
|
|
|
- formatter: function (value) {
|
|
|
- const vl = Math.floor(value.length/2);
|
|
|
- let newText = value.slice(0,vl)+'\n'+value.slice(vl)
|
|
|
- return newText;
|
|
|
- },
|
|
|
- color:function(value,index){
|
|
|
- console.log(option)
|
|
|
- const textWidth = option['dataset']['source'][option['dataset']['source'].length-1][1]/6/2;
|
|
|
- const vl = option['dataset']['source'][index+1][1]
|
|
|
- return vl >= textWidth ? 'white' : '#3c4654';
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- type: 'bar',
|
|
|
- barWidth:55,
|
|
|
- label:{
|
|
|
- show:true,
|
|
|
- position:"right"
|
|
|
- },
|
|
|
- encode: {
|
|
|
- x: 'amount',
|
|
|
- y: 'product'
|
|
|
- },
|
|
|
- itemStyle:{
|
|
|
- color:"#3eb370"
|
|
|
- }
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- Horizontal.setOption(option)
|
|
|
- },
|
|
|
- setColumnarData(){
|
|
|
- const Columnar = echarts.init(this.$refs['Columnar']);
|
|
|
- let option ={
|
|
|
- grid: {
|
|
|
- top: 80,
|
|
|
- },
|
|
|
- title:{
|
|
|
- text:"个人创客资金",
|
|
|
- top:0
|
|
|
- },
|
|
|
- dataset: {
|
|
|
- // 提供一份数据。
|
|
|
- source:this.ColumnarData
|
|
|
- },
|
|
|
- // 声明一个 X 轴,类目轴(category)。默认情况下,类目轴对应到 dataset 第一列。
|
|
|
- xAxis: {
|
|
|
- type: 'category',
|
|
|
- axisLabel: {
|
|
|
- formatter: function (value) {
|
|
|
- // 设置每行显示的最大字符数
|
|
|
- var maxLength = 4;
|
|
|
- // 计算文本需要换行的行数
|
|
|
- var rowNumber = Math.ceil(value.length / maxLength);
|
|
|
- // 拼接换行后的文本
|
|
|
- var newText = '';
|
|
|
- for (var i = 0; i < rowNumber; i++) {
|
|
|
- var start = i * maxLength;
|
|
|
- var end = start + maxLength;
|
|
|
- newText += value.slice(start, end) + '\n';
|
|
|
- }
|
|
|
- return newText;
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- // 声明一个 Y 轴,数值轴。
|
|
|
- yAxis: {
|
|
|
- name:"单位:万元",
|
|
|
- nameTextStyle:{
|
|
|
- fontSize:14,
|
|
|
- align:"center",
|
|
|
- }
|
|
|
- },
|
|
|
- // 声明多个 bar 系列,默认情况下,每个系列会自动对应到 dataset 的每一列。
|
|
|
- series: [{ type: 'bar' ,itemStyle:{color:"#5aaef3"}}]
|
|
|
- }
|
|
|
- Columnar.setOption(option)
|
|
|
- }
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- this.setCircularData();
|
|
|
- this.setHorizontalData();
|
|
|
- this.setColumnarData();
|
|
|
- },
|
|
|
- };
|
|
|
- </script>
|
|
|
-
|
|
|
-<style lang="less">
|
|
|
- .topDataBlock{
|
|
|
- margin-top: 20px;
|
|
|
- width: 100%;
|
|
|
- height: 130px;
|
|
|
- // background: #b65f5f;
|
|
|
- display: flex;
|
|
|
- justify-content:space-between;
|
|
|
- align-items: center;
|
|
|
- .topData{
|
|
|
- width: 19%;
|
|
|
- height: 94%;
|
|
|
- border-radius: 5px;
|
|
|
- box-sizing: border-box;
|
|
|
- // padding: 15px 10px 10px 35px;
|
|
|
- .DataTitle{
|
|
|
- margin: 15px 10px 10px 35px;
|
|
|
- color: white;
|
|
|
- font-size: 18px;
|
|
|
- position: relative;
|
|
|
- &::after{
|
|
|
- content: '';
|
|
|
- display: block;
|
|
|
- position: absolute;
|
|
|
- width: 7px;
|
|
|
- height: 86%;
|
|
|
- top: 7%;
|
|
|
- left: -15px;
|
|
|
- background-color: white;
|
|
|
- }
|
|
|
- }
|
|
|
- .topData_value{
|
|
|
- width: auto;
|
|
|
- height: 40%;
|
|
|
- margin: 15px 20px 10px 20px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- color: white;
|
|
|
- span{
|
|
|
- height: 100%;
|
|
|
- display: flex;
|
|
|
- // align-items: flex-end;
|
|
|
- }
|
|
|
- span:nth-of-type(1){
|
|
|
- font-size: 2.8em;
|
|
|
- }
|
|
|
- span:nth-of-type(2){
|
|
|
- align-items: flex-end;
|
|
|
- img{
|
|
|
- height: 32px;
|
|
|
- margin-left: 5px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .topData:nth-child(1){
|
|
|
- background-image: linear-gradient(100deg, #3caef5 60%,#497df5);
|
|
|
- }
|
|
|
- .topData:nth-child(2){
|
|
|
- background-image: linear-gradient(100deg, #fcb871 60%,#f77c5f);
|
|
|
- }
|
|
|
- .topData:nth-child(3){
|
|
|
- background-image: linear-gradient(100deg, #3ce0ea 60%,#29bfa3);
|
|
|
- }
|
|
|
- .topData:nth-child(4){
|
|
|
- background-image: linear-gradient(100deg, #3caef5 60%,#497df5);
|
|
|
- }
|
|
|
- .topData:nth-child(5){
|
|
|
- background-image: linear-gradient(100deg, #fcb871 60%,#f77c5f);
|
|
|
- }
|
|
|
- }
|
|
|
- .midBlock{ //中部大饼
|
|
|
- width: 100%;
|
|
|
- height: 400px;
|
|
|
- margin-top: 20px;
|
|
|
- // background: #ce7070;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- .mid{
|
|
|
- height: 95%;
|
|
|
- width: 49%;
|
|
|
- padding: 20px;
|
|
|
- box-sizing: border-box;
|
|
|
- background: #f3f6f7;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .histogram{ //柱状图
|
|
|
- margin-top: 20px;
|
|
|
- box-sizing: border-box;
|
|
|
- padding: 20px;
|
|
|
- width: 100%;
|
|
|
- height: 400px;
|
|
|
- background: #f3f6f7;
|
|
|
- }
|
|
|
-
|
|
|
- .el-table__header{
|
|
|
- height:60px;
|
|
|
- }
|
|
|
- .el-table__row{
|
|
|
- height: 60px;
|
|
|
- }
|
|
|
-</style>
|