|
|
@@ -116,29 +116,9 @@
|
|
|
<div class="title">最受欢迎老师TOP6</div>
|
|
|
<div class="teacher">
|
|
|
<ul>
|
|
|
- <li>
|
|
|
- <span>1</span>
|
|
|
- <span>王老师</span>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <span>2</span>
|
|
|
- <span>刘老师</span>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <span>3</span>
|
|
|
- <span>张老师</span>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <span>4</span>
|
|
|
- <span>温老师</span>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <span>5</span>
|
|
|
- <span>毕老师</span>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <span>6</span>
|
|
|
- <span>赖老师</span>
|
|
|
+ <li v-for="(i, index) in greetTeaData">
|
|
|
+ <span>{{ index + 1 }}</span>
|
|
|
+ <span>{{ i.name }}</span>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
@@ -284,6 +264,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
import { dayjs } from "element-plus";
|
|
|
import lodash from "lodash";
|
|
|
import axios from "axios";
|
|
|
+import eds from "@/utils/eds.js";
|
|
|
import { useStore } from "vuex";
|
|
|
const store = useStore();
|
|
|
const api = ref("");
|
|
|
@@ -300,16 +281,30 @@ const echarts3 = ref();
|
|
|
const echarts4 = ref();
|
|
|
// 班级考勤
|
|
|
const echarts5 = ref();
|
|
|
+// 最受欢迎老师TOP6
|
|
|
+const greetTeaData = ref();
|
|
|
// 资源大数据
|
|
|
const echarts6 = ref();
|
|
|
|
|
|
-const getList = () => {
|
|
|
+const getList = async () => {
|
|
|
cartogram();
|
|
|
cartogram2();
|
|
|
doorForbidClick();
|
|
|
behaviorClick();
|
|
|
classClick();
|
|
|
+ greetTeaClick();
|
|
|
resourceClick();
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/login/queryReduce",
|
|
|
+ headers: {
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ // params: data,
|
|
|
+ });
|
|
|
+ console.log(res, "加密参数测试");
|
|
|
+ console.log(JSON.parse(eds.decryptDes(res.data.data)), "EDS解密");
|
|
|
};
|
|
|
|
|
|
// 用户类别占比(------------------------------)
|
|
|
@@ -762,21 +757,35 @@ const doorForbidClick = () => {
|
|
|
// 6 行为统计
|
|
|
const behaviorClick = async () => {
|
|
|
// 基于准备好的dom,初始化echarts实例
|
|
|
- // 圆环统计图
|
|
|
- // let data = {
|
|
|
- // state: tabIndex1.value,
|
|
|
- // };
|
|
|
- // let res = await axios({
|
|
|
- // method: "get",
|
|
|
- // url: api.value + "/repairRecord/repairAnalysis",
|
|
|
- // headers: {
|
|
|
- // token: sessionStorage.getItem("token"),
|
|
|
- // user_head: sessionStorage.getItem("userhead"),
|
|
|
- // },
|
|
|
- // params: data,
|
|
|
- // });
|
|
|
- // console.log(res, "圆环 报修分析统计");
|
|
|
- // let echartsData1 = [];
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartWarning/behaviour",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ params: data,
|
|
|
+ });
|
|
|
+ console.log(res, "行为统计");
|
|
|
+ let color = [
|
|
|
+ "rgba(67, 181, 244, 1)",
|
|
|
+ "rgba(137, 207, 245, 1)",
|
|
|
+ "rgba(180, 226, 251, 1)",
|
|
|
+ "rgba(212, 237, 251, 1)",
|
|
|
+ "rgba(171, 249, 255, 1)",
|
|
|
+ ];
|
|
|
+ let typeData = [];
|
|
|
+ let typeName = res.data.data.forEach((item, index) => {
|
|
|
+ let arr = {
|
|
|
+ value: item.typeCount,
|
|
|
+ name: item.typeName,
|
|
|
+ itemStyle: {
|
|
|
+ color: color[index],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ typeData.push(arr);
|
|
|
+ });
|
|
|
+ let totalCount = res.data.data[0].totalCount;
|
|
|
echarts4.value = echarts.init(document.getElementById("behavior6"));
|
|
|
echarts4.value.setOption({
|
|
|
// title: {
|
|
|
@@ -798,43 +807,44 @@ const behaviorClick = async () => {
|
|
|
series: [
|
|
|
{
|
|
|
type: "pie",
|
|
|
- data: [
|
|
|
- {
|
|
|
- value: 224,
|
|
|
- name: "区域入侵",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(67, 181, 244, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 304,
|
|
|
- name: "防溺水",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(137, 207, 245, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 484,
|
|
|
- name: "睡觉",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(180, 226, 251, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 300,
|
|
|
- name: "抽烟",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(212, 237, 251, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 180,
|
|
|
- name: "打架",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(171, 249, 255, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
+ // data: [
|
|
|
+ // {
|
|
|
+ // value: 224,
|
|
|
+ // name: "区域入侵",
|
|
|
+ // itemStyle: {
|
|
|
+ // color: "rgba(67, 181, 244, 1)",
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 304,
|
|
|
+ // name: "防溺水",
|
|
|
+ // itemStyle: {
|
|
|
+ // color: "rgba(137, 207, 245, 1)",
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 484,
|
|
|
+ // name: "睡觉",
|
|
|
+ // itemStyle: {
|
|
|
+ // color: "rgba(180, 226, 251, 1)",
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 300,
|
|
|
+ // name: "抽烟",
|
|
|
+ // itemStyle: {
|
|
|
+ // color: "rgba(212, 237, 251, 1)",
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // value: 180,
|
|
|
+ // name: "打架",
|
|
|
+ // itemStyle: {
|
|
|
+ // color: "rgba(171, 249, 255, 1)",
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ data: typeData,
|
|
|
center: ["40%", "48%"],
|
|
|
radius: ["48%", "65%"],
|
|
|
label: {
|
|
|
@@ -860,20 +870,33 @@ const behaviorClick = async () => {
|
|
|
const classClick = async () => {
|
|
|
// 基于准备好的dom,初始化echarts实例
|
|
|
// 圆环统计图
|
|
|
- // let data = {
|
|
|
- // state: tabIndex1.value,
|
|
|
- // };
|
|
|
- // let res = await axios({
|
|
|
- // method: "get",
|
|
|
- // url: api.value + "/repairRecord/repairAnalysis",
|
|
|
- // headers: {
|
|
|
- // token: sessionStorage.getItem("token"),
|
|
|
- // user_head: sessionStorage.getItem("userhead"),
|
|
|
- // },
|
|
|
- // params: data,
|
|
|
- // });
|
|
|
- // console.log(res, "圆环 报修分析统计");
|
|
|
- // let echartsData1 = [];
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartAttendance/queryAttendanceList",
|
|
|
+ headers: {
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ });
|
|
|
+ console.log(res, "圆环 班级考勤");
|
|
|
+ let colorSel = [
|
|
|
+ "rgba(67, 181, 244, 1)",
|
|
|
+ "rgba(137, 207, 245, 1)",
|
|
|
+ "rgba(180, 226, 251, 1)",
|
|
|
+ "rgba(212, 237, 251, 1)",
|
|
|
+ "rgba(171, 249, 255, 1)",
|
|
|
+ ];
|
|
|
+ let data = [];
|
|
|
+ res.data.data.forEach((item, index) => {
|
|
|
+ let aug = {
|
|
|
+ value: item.proportion,
|
|
|
+ name: item.name,
|
|
|
+ itemStyle: {
|
|
|
+ color: colorSel[index],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ data.push(aug);
|
|
|
+ });
|
|
|
echarts5.value = echarts.init(document.getElementById("class"));
|
|
|
echarts5.value.setOption({
|
|
|
// title: {
|
|
|
@@ -895,43 +918,7 @@ const classClick = async () => {
|
|
|
series: [
|
|
|
{
|
|
|
type: "pie",
|
|
|
- data: [
|
|
|
- {
|
|
|
- value: 224,
|
|
|
- name: "早退",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(67, 181, 244, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 304,
|
|
|
- name: "旷课",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(137, 207, 245, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 484,
|
|
|
- name: "迟到",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(180, 226, 251, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 300,
|
|
|
- name: "请假",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(212, 237, 251, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- value: 180,
|
|
|
- name: "全勤",
|
|
|
- itemStyle: {
|
|
|
- color: "rgba(171, 249, 255, 1)",
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
+ data: data,
|
|
|
center: ["40%", "48%"],
|
|
|
radius: ["48%", "65%"],
|
|
|
label: {
|
|
|
@@ -948,6 +935,21 @@ const classClick = async () => {
|
|
|
],
|
|
|
});
|
|
|
};
|
|
|
+// 8 最受欢迎老师TOP6
|
|
|
+const greetTeaClick = async () => {
|
|
|
+ // 基于准备好的dom,初始化echarts实例
|
|
|
+ let res = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartEvaluateTeacher/queryTopSixTeacher",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ params: data,
|
|
|
+ });
|
|
|
+ console.log(res, "最受欢迎老师TOP6");
|
|
|
+ greetTeaData.value = res.data.data;
|
|
|
+};
|
|
|
// 9 资源大数据
|
|
|
const resourceClick = async () => {
|
|
|
// 基于准备好的dom,初始化echarts实例
|