<template>
|
<view class="body window">
|
<view class="topLine" :style="{ height: topBar + 'px' }"></view>
|
<view class="nav row_align_center" id="nav">
|
<li class="li_6" :class="['iconfont icon-zuojiantou back']" @click="gotoBack()"></li>
|
<text class="title">{{ title ? title : '' }}</text>
|
<li class="iconfont icon-zuojiantou back hidden li_6"></li>
|
</view>
|
<view class="data_body">
|
<scroll-view class="scroll_list" scroll-y :style="{ height: scrollHeight }">
|
<!-- 教学科研情况 -->
|
<view class="view_block">
|
<view class="title">教学科研情况</view>
|
<progress-bar :content="RankData" @updateRanking="updateRanking"></progress-bar>
|
</view>
|
<!-- 学历分布状况 -->
|
<view class="view_block">
|
<view class="title">学历分布状况
|
<text class="font-small" style="color: #ccc;">(教职工)</text>
|
</view>
|
<view class="charts-box" style="height: 300px;">
|
<qiun-data-charts type="rose" :chartData="ProductRateData" canvasId="school_a"
|
:canvas2d="isCanvas2d" :resshow="delayload" />
|
</view>
|
</view>
|
<!-- 学业成绩 -->
|
<view class="view_block">
|
<view class="title">学业成绩分布图
|
<text class="font-small" style="color: #ccc;">(班级)</text>
|
</view>
|
<view class="charts-box" style="height: 300px;">
|
<qiun-data-charts type="radar" :chartData="RadarModel" background="none" canvasId="school_b"
|
:animation="false" :canvas2d="isCanvas2d" :resshow="delayload" />
|
</view>
|
</view>
|
<!-- 图书借阅情况 -->
|
<view class="view_block">
|
<view class="title">图书借阅情况</view>
|
<view class="charts-box" style="height: 300px;">
|
<qiun-data-charts type="line" canvasId="school_c" :canvas2d="isCanvas2d" :resshow="delayload"
|
:ontouch="true"
|
:opts="{ enableScroll: true, xAxis: { scrollShow: true, itemCount: 4, disableGrid: true }, series: { style: 'curve' } }"
|
:chartData="friendTrand" />
|
</view>
|
</view>
|
</scroll-view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import ProgressBar from "../../components/progress-bar/progress-bar.vue"
|
import RankData from '../../static/json/school/1.json';
|
import ProductRateData from '../../static/json/school/2.json';
|
import RadarModel from '../../static/json/school/3.json';
|
import friendTrand from '../../static/json/school/4.json';
|
import Config from '../../static/js/config'
|
import Common from '../../static/js/common'
|
|
export default {
|
components: {
|
ProgressBar
|
},
|
data() {
|
return {
|
info: "大便超人", //用户数据
|
title: "智慧教育报表中心", //标题
|
showDataTime: "today", //选中的时间
|
tabCur: 0, //标签头下标
|
topBar: 17, //导航高
|
top: '180', //下拉栏位置
|
scrollHeight: "1400rpx", //数据展示体高度
|
friendTrand,
|
RankData,
|
ProductRateData,
|
RadarModel,
|
isCanvas2d: Config.ISCANVAS2D,
|
delayload: false, //延时加载图表,否则会出现图表加载完后定位错乱
|
};
|
},
|
computed: {
|
locationArray() {
|
return [{ value: "GDBJ-ENTRY-1", text: "天猫" }, { value: "GDBJ-ENTRY-201", text: "京东" }];
|
}
|
},
|
methods: {
|
async getData() {
|
uni.showLoading();
|
await setTimeout(() => {
|
this.delayload = true;
|
uni.hideLoading();
|
}, 1000)
|
},
|
gotoBack() {
|
Common.navigateBack("/index/index");
|
},
|
//获取设备信息
|
async getTelephoneInfo() {
|
var telephoneInfo = await Common.getTelephoneInfo();
|
let hasHeight = 0;
|
if (telephoneInfo.top >= 40) {
|
this.top = telephoneInfo.statusBarHeight * 2 + 150;
|
this.topBar = telephoneInfo.statusBarHeight;
|
}
|
// 设置滚动高度
|
const query = wx.createSelectorQuery();
|
query.select('#nav').boundingClientRect();
|
query.exec(res => {
|
res.map((item, index) => {
|
hasHeight += item.height;
|
})
|
this.scrollHeight = (telephoneInfo.screenHeight - hasHeight - this.topBar) + 'px';
|
})
|
},
|
updateRanking(nVal) {
|
this.RankData = nVal;
|
},
|
},
|
onLoad() {
|
//#ifndef H5
|
uni.showShareMenu();
|
//#endif
|
this.getData()
|
this.getTelephoneInfo();
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.body {
|
height: 100vh;
|
margin: 0;
|
padding: 0 20rpx;
|
font-family: "montserrat";
|
background-image: linear-gradient(125deg, #CB9FFE, #5894F7, #ABCDFA, #74A3F6, #CB9FFE);
|
background-size: 400%;
|
animation: bganimation 15s infinite;
|
}
|
|
.li_6 {
|
list-style-type: none;
|
}
|
|
page,
|
body {
|
margin: 0;
|
padding: 0;
|
width: 100%;
|
height: 100%;
|
}
|
|
.window {
|
height: 100vh;
|
overflow: hidden;
|
|
.topLine {
|
width: 100%;
|
}
|
|
scroll-view {
|
box-sizing: border-box;
|
}
|
|
.swiper {
|
box-sizing: border-box;
|
}
|
|
.nav {
|
background-size: 100% 100%;
|
|
.back {
|
font-size: 54rpx;
|
padding: 20rpx 14rpx 15rpx 14rpx;
|
color: #fff;
|
}
|
|
.title {
|
color: #fff;
|
font-size: 30rpx;
|
flex: 1;
|
text-align: center;
|
}
|
|
.hidden {
|
visibility: hidden;
|
}
|
}
|
|
.head {
|
padding: 0 16rpx 14rpx 16rpx;
|
color: #fff;
|
background-color: #40A2ED;
|
justify-content: space-between;
|
font-size: 26rpx !important;
|
|
.calendar_drag {
|
width: 340rpx;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
|
.calendar_name {
|
margin-right: 10rpx;
|
}
|
|
.icon-calendar {
|
font-size: 26rpx;
|
margin-top: 4rpx;
|
}
|
}
|
}
|
|
.data_body {
|
overflow: auto;
|
text-align: center;
|
color: #333333;
|
background-repeat: repeat;
|
height: 100%;
|
|
.scroll_list {
|
height: 100%;
|
|
.view_block {
|
background-color: #fff;
|
padding: 16rpx 20rpx 10rpx 20rpx;
|
border-radius: 20rpx;
|
margin-bottom: 40rpx;
|
|
.title {
|
text-align: left;
|
margin-bottom: 30rpx;
|
font-size: 30rpx;
|
}
|
|
.trend_title {
|
text-align: right;
|
font-size: 22rpx;
|
color: #ff9900;
|
margin-top: 50rpx;
|
}
|
}
|
}
|
}
|
}
|
|
@keyframes bganimation {
|
0% {
|
background-position: 0% 50%;
|
}
|
|
50% {
|
background-position: 100% 50%;
|
}
|
|
100% {
|
background-position: 0% 50%;
|
}
|
}
|
</style>
|