This commit is contained in:
曹辉 2022-08-23 11:12:00 +08:00
parent 6dde8e62e3
commit bf5c229238
6 changed files with 505 additions and 477 deletions

View File

@ -261,7 +261,7 @@
<div slot="header" style="text-align: center">
<img style="width: 40px" src="@/icons/笑脸.png" alt="" />
<div><!-- card title -->学生此批次暂没数据</div>
<div><!-- card title -->幼儿园此批次暂无数据</div>
</div>
<!-- card body -->
</el-card>
@ -344,164 +344,169 @@ export default {
methods: {
analysisinfo() {
analysis(this.analysisqueryParams).then((res) => {
this.analysislist = res.data;
console.log(this.analysislist);
this.options();
var app = {};
if (res.data == [] || !res.data) {
this.itemshow2 = true;
this.itemshow = false;
} else {
this.analysislist = res.data;
console.log(this.analysislist);
this.options();
var app = {};
var myChart = echarts.init(document.getElementById("main"));
var option;
var myChart = echarts.init(document.getElementById("main"));
var option;
const posList = [
"left",
"right",
"top",
"bottom",
"inside",
"insideTop",
"insideLeft",
"insideRight",
"insideBottom",
"insideTopLeft",
"insideTopRight",
"insideBottomLeft",
"insideBottomRight",
];
app.configParameters = {
rotate: {
min: 0,
max: 90,
},
align: {
options: {
left: "left",
center: "center",
right: "right",
const posList = [
"left",
"right",
"top",
"bottom",
"inside",
"insideTop",
"insideLeft",
"insideRight",
"insideBottom",
"insideTopLeft",
"insideTopRight",
"insideBottomLeft",
"insideBottomRight",
];
app.configParameters = {
rotate: {
min: 0,
max: 90,
},
},
verticalAlign: {
options: {
top: "top",
middle: "middle",
bottom: "bottom",
},
},
position: {
options: posList.reduce(function (map, pos) {
map[pos] = pos;
return map;
}, {}),
},
distance: {
min: 0,
max: 100,
},
};
app.config = {
rotate: 0,
align: "center",
verticalAlign: "middle",
position: "top",
distance: 15,
onChange: function () {
const labelOption = {
rotate: app.config.rotate,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
position: app.config.position,
distance: app.config.distance,
};
myChart.setOption({
series: [
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
],
});
},
};
const labelOption = {
show: true,
position: app.config.position,
distance: app.config.distance,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
rotate: app.config.rotate,
formatter: "{c}",
fontSize: 16,
rich: {
name: {},
},
};
option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
legend: {
data: ["男", "女"],
},
xAxis: [
{
type: "category",
axisTick: { show: false },
data: ["3-4岁", "4-5岁", "5-6岁", "6岁以上"],
},
],
yAxis: [
{
type: "value",
},
],
series: [
{
name: "男",
type: "bar",
barGap: 0,
color: "#60C5F1",
label: labelOption,
emphasis: {
focus: "series",
align: {
options: {
left: "left",
center: "center",
right: "right",
},
data: [
this.analysislist.threeAndFourMaleCount,
this.analysislist.fourAndFiveMaleCount,
this.analysislist.fiveAndSixMaleCount,
this.analysislist.sixAndMoreMaleCount,
],
},
{
name: "女",
type: "bar",
color: "#98E0AD",
label: labelOption,
emphasis: {
focus: "series",
verticalAlign: {
options: {
top: "top",
middle: "middle",
bottom: "bottom",
},
data: [
this.analysislist.threeAndFourFeMaleCount,
this.analysislist.fourAndFiveFeMaleCount,
this.analysislist.fiveAndSixFeMaleCount,
this.analysislist.sixAndMoreFeMaleCount,
],
},
],
};
position: {
options: posList.reduce(function (map, pos) {
map[pos] = pos;
return map;
}, {}),
},
distance: {
min: 0,
max: 100,
},
};
app.config = {
rotate: 0,
align: "center",
verticalAlign: "middle",
position: "top",
distance: 15,
onChange: function () {
const labelOption = {
rotate: app.config.rotate,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
position: app.config.position,
distance: app.config.distance,
};
myChart.setOption({
series: [
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
],
});
},
};
const labelOption = {
show: true,
position: app.config.position,
distance: app.config.distance,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
rotate: app.config.rotate,
formatter: "{c}",
fontSize: 16,
rich: {
name: {},
},
};
option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
legend: {
data: ["男", "女"],
},
xAxis: [
{
type: "category",
axisTick: { show: false },
data: ["3-4岁", "4-5岁", "5-6岁", "6岁以上"],
},
],
yAxis: [
{
type: "value",
},
],
series: [
{
name: "男",
type: "bar",
barGap: 0,
color: "#60C5F1",
label: labelOption,
emphasis: {
focus: "series",
},
data: [
this.analysislist.threeAndFourMaleCount,
this.analysislist.fourAndFiveMaleCount,
this.analysislist.fiveAndSixMaleCount,
this.analysislist.sixAndMoreMaleCount,
],
},
{
name: "女",
type: "bar",
color: "#98E0AD",
label: labelOption,
emphasis: {
focus: "series",
},
data: [
this.analysislist.threeAndFourFeMaleCount,
this.analysislist.fourAndFiveFeMaleCount,
this.analysislist.fiveAndSixFeMaleCount,
this.analysislist.sixAndMoreFeMaleCount,
],
},
],
};
option && myChart.setOption(option);
this.itemshow = ture;
this.itemshow2 = false;
option && myChart.setOption(option);
this.itemshow = true;
this.itemshow2 = false;
}
});
},
options() {

View File

@ -552,8 +552,8 @@ export default {
pageSize: 10,
// studentId: "10",
// batchCode: "PC202208030005",
studentId: "",
batchCode: "",
// studentId: "",
// batchCode: "",
},
};
},
@ -658,6 +658,10 @@ export default {
},
//
batchCodeshowclick() {
this.spanArr = [];
this.position = 0; //
this.spanArr2 = [];
this.position2 = 0; //
if (this.queryParams.studentId == "") {
this.$message.error("请先选择学生");
} else {
@ -669,9 +673,9 @@ export default {
batchCodeclick(row) {
this.batchCodeName = row.batchName;
this.batchCodeId = row.id;
this.analysisqueryParams.batchCode = row.batchCode;
this.queryParams.batchCode = row.batchCode;
this.batchCodeshow = false;
// this.listActioninfo();
this.listActioninfo();
},
//
testScore() {
@ -685,7 +689,7 @@ export default {
this.studentname = row.studentName;
this.studentId = row.id;
this.studentshow = false;
this.analysisqueryParams.studentId = row.id;
this.queryParams.studentId = row.id;
},
//
studentlist() {

View File

@ -263,14 +263,19 @@
<el-col :span="24" :offset="0">
<div style="margin: 0 auto">
<div
style="display: flex; text-align: center; justify-content: center"
style="
display: flex;
text-align: center;
justify-content: center;
color: #fff;
"
>
<div
style="
width: 120px;
line-height: 60px;
border: 1px solid #f0f0f0;
background: #f0f0f0;
background: #3c9299;
"
>
年龄
@ -280,7 +285,7 @@
width: 120px;
line-height: 60px;
border: 1px solid #f0f0f0;
background: #f0f0f0;
background: #3c9299;
"
>
平均总分
@ -291,7 +296,7 @@
text-align: center;
line-height: 30px;
border: 1px solid #f0f0f0;
background: #f0f0f0;
background: #3c9299;
"
>
{{ item.parentName }}
@ -301,8 +306,8 @@
display: flex;
line-height: 30px;
border: 1px solid #f0f0f0;
background: #f0f0f0;
font-size: 20px;
background: #3c9299;
font-size: 14px;
"
>
<div
@ -363,7 +368,7 @@
<div slot="header" style="text-align: center">
<img style="width: 40px" src="@/icons/笑脸.png" alt="" />
<div><!-- card title -->学生此批次暂没成绩</div>
<div><!-- card title -->班级此批次暂无成绩</div>
</div>
<!-- card body -->
</el-card>
@ -386,7 +391,7 @@ export default {
name: "classconstitution",
data() {
return {
itemshow: true,
itemshow: false,
itemshow2: false,
total1: 0,
total2: 0,
@ -445,10 +450,13 @@ export default {
testScorelist: [],
//
ClassListlist: {
// batchCode: "",
batchCode: "PC202208030005",
kindergartenId: "18",
classId: "2",
batchCode: "",
kindergartenId: "",
classId: "",
// batchCode: "PC202208030005",
// kindergartenId: "18",
// classId: "2",
pageNum: 1,
pageSize: 10,
},
@ -468,22 +476,21 @@ export default {
created() {
this.getList();
this.class();
this.ClassListinfo();
// this.ClassListinfo();
},
methods: {
ClassListinfo() {
ClassList(this.ClassListlist).then((res) => {
console.log(res);
this.totalAvgFraction = res.data.totalAvgFraction;
this.categoryTableNameList = res.data.categoryTableNameList;
this.categoryAgeFractionList = res.data.categoryAgeFractionList;
this.categoryScoreList = res.data.categoryScoreList;
if (res.data == [] || !res.data) {
this.itemshow2 = true;
this.itemshow = false;
} else {
this.totalAvgFraction = res.data.totalAvgFraction;
this.categoryTableNameList = res.data.categoryTableNameList;
this.categoryAgeFractionList = res.data.categoryAgeFractionList;
this.categoryScoreList = res.data.categoryScoreList;
var list = [];
this.categoryTableNameList.forEach((e) => {
e.childrenTableNameList.forEach((el) => {
@ -683,6 +690,7 @@ export default {
this.batchCodeId = row.id;
this.ClassListlist.batchCode = row.batchCode;
this.batchCodeshow = false;
this.ClassListinfo();
},
//
testScore() {
@ -723,6 +731,7 @@ export default {
},
//
kindergartenNameclick(row) {
this.classqueryParams.kindergartenId = row.id;
this.ClassListlist.kindergartenId = row.id;
this.kindergartenName = row.kindergartenName;
this.kindergartenId = row.id;

View File

@ -593,8 +593,8 @@ export default {
synthesizelist: {
studentId: "",
batchCode: "",
studentId: "10",
batchCode: "PC202208030005",
// studentId: "10",
// batchCode: "PC202208030005",
},
//
testqueryParams: {
@ -607,7 +607,7 @@ export default {
created() {
this.getList();
this.class();
this.synthesizeinfo();
// this.synthesizeinfo();
},
methods: {
//

View File

@ -211,7 +211,7 @@
<div slot="header" style="text-align: center">
<img style="width: 40px" src="@/icons/笑脸.png" alt="" />
<div><!-- card title -->学生此批次暂没数据</div>
<div><!-- card title -->批次暂无数据</div>
</div>
<!-- card body -->
</el-card>
@ -321,237 +321,242 @@ export default {
methods: {
analysisinfo() {
analysis(this.analysisqueryParams).then((res) => {
this.analysislist = res.data;
console.log(this.analysislist);
var yclassname = [];
var grilsheight = [];
var boyheight = [];
var boyweight = [];
var grilsweight = [];
if (!res.data) {
this.itemshow2=true;
this.itemshow=false;
} else {
this.analysislist = res.data;
console.log(this.analysislist);
var yclassname = [];
var grilsheight = [];
var boyheight = [];
var boyweight = [];
var grilsweight = [];
for (var i = 0; i < this.analysislist.length; i++) {
this.analysislist[i].weightAndHeightAvgScoreList.forEach((el) => {
if (el.itemCode == "H001" && el.studentSex == "MALE") {
boyheight.push(el.averageScore);
} else if (el.itemCode == "H001" && el.studentSex == "FEMALE") {
grilsheight.push(el.averageScore);
} else if (el.itemCode == "W001" && el.studentSex == "FEMALE") {
grilsweight.push(el.averageScore);
} else if (el.itemCode == "W001" && el.studentSex == "MALE") {
boyweight.push(el.averageScore);
}
});
if (grilsheight.length == i) {
grilsheight.push(0);
}
if (boyheight.length == i) {
boyheight.push(0);
}
if (boyweight.length == i) {
boyweight.push(0);
}
if (grilsweight.length == i) {
grilsweight.push(0);
}
}
this.analysislist.forEach((e) => {
yclassname.push(e.className);
});
console.log(grilsheight, boyheight);
console.log(grilsweight, boyweight);
var app = {};
var myChart = echarts.init(document.getElementById("main"));
var myChart2 = echarts.init(document.getElementById("main2"));
var option;
var option2;
const posList = [
"left",
"right",
"top",
"bottom",
"inside",
"insideTop",
"insideLeft",
"insideRight",
"insideBottom",
"insideTopLeft",
"insideTopRight",
"insideBottomLeft",
"insideBottomRight",
];
app.configParameters = {
rotate: {
min: 0,
max: 90,
},
align: {
options: {
left: "left",
center: "center",
right: "right",
},
},
verticalAlign: {
options: {
top: "top",
middle: "middle",
bottom: "bottom",
},
},
position: {
options: posList.reduce(function (map, pos) {
map[pos] = pos;
return map;
}, {}),
},
distance: {
min: 0,
max: 100,
},
};
app.config = {
rotate: 0,
align: "center",
verticalAlign: "middle",
position: "top",
distance: 15,
onChange: function () {
const labelOption = {
rotate: app.config.rotate,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
position: app.config.position,
distance: app.config.distance,
};
myChart.setOption({
series: [
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
],
for (var i = 0; i < this.analysislist.length; i++) {
this.analysislist[i].weightAndHeightAvgScoreList.forEach((el) => {
if (el.itemCode == "H001" && el.studentSex == "MALE") {
boyheight.push(el.averageScore);
} else if (el.itemCode == "H001" && el.studentSex == "FEMALE") {
grilsheight.push(el.averageScore);
} else if (el.itemCode == "W001" && el.studentSex == "FEMALE") {
grilsweight.push(el.averageScore);
} else if (el.itemCode == "W001" && el.studentSex == "MALE") {
boyweight.push(el.averageScore);
}
});
},
};
const labelOption = {
show: true,
position: app.config.position,
distance: app.config.distance,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
rotate: app.config.rotate,
formatter: "{c}",
fontSize: 16,
rich: {
name: {},
},
};
option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
if (grilsheight.length == i) {
grilsheight.push(0);
}
if (boyheight.length == i) {
boyheight.push(0);
}
if (boyweight.length == i) {
boyweight.push(0);
}
if (grilsweight.length == i) {
grilsweight.push(0);
}
}
this.analysislist.forEach((e) => {
yclassname.push(e.className);
});
console.log(grilsheight, boyheight);
console.log(grilsweight, boyweight);
var app = {};
var myChart = echarts.init(document.getElementById("main"));
var myChart2 = echarts.init(document.getElementById("main2"));
var option;
var option2;
const posList = [
"left",
"right",
"top",
"bottom",
"inside",
"insideTop",
"insideLeft",
"insideRight",
"insideBottom",
"insideTopLeft",
"insideTopRight",
"insideBottomLeft",
"insideBottomRight",
];
app.configParameters = {
rotate: {
min: 0,
max: 90,
},
},
legend: {
data: ["男", "女"],
},
xAxis: [
{
type: "category",
axisTick: { show: false },
data: yclassname,
},
],
yAxis: [
{
type: "value",
},
],
series: [
{
name: "男",
type: "bar",
barGap: 0,
color: "#00B050",
label: labelOption,
emphasis: {
focus: "series",
align: {
options: {
left: "left",
center: "center",
right: "right",
},
data: boyheight,
},
{
name: "女",
type: "bar",
color: "red",
label: labelOption,
emphasis: {
focus: "series",
verticalAlign: {
options: {
top: "top",
middle: "middle",
bottom: "bottom",
},
data: grilsheight,
},
],
};
option2 = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
position: {
options: posList.reduce(function (map, pos) {
map[pos] = pos;
return map;
}, {}),
},
},
legend: {
data: ["男", "女"],
},
xAxis: [
{
type: "category",
axisTick: { show: false },
data: yclassname,
distance: {
min: 0,
max: 100,
},
],
yAxis: [
{
type: "value",
};
app.config = {
rotate: 0,
align: "center",
verticalAlign: "middle",
position: "top",
distance: 15,
onChange: function () {
const labelOption = {
rotate: app.config.rotate,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
position: app.config.position,
distance: app.config.distance,
};
myChart.setOption({
series: [
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
{
label: labelOption,
},
],
});
},
],
series: [
{
name: "男",
type: "bar",
barGap: 0,
color: "#00B050",
label: labelOption,
emphasis: {
focus: "series",
};
const labelOption = {
show: true,
position: app.config.position,
distance: app.config.distance,
align: app.config.align,
verticalAlign: app.config.verticalAlign,
rotate: app.config.rotate,
formatter: "{c}",
fontSize: 16,
rich: {
name: {},
},
};
option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
data: boyweight,
},
{
name: "女",
type: "bar",
color: "red",
label: labelOption,
emphasis: {
focus: "series",
legend: {
data: ["男", "女"],
},
xAxis: [
{
type: "category",
axisTick: { show: false },
data: yclassname,
},
],
yAxis: [
{
type: "value",
},
],
series: [
{
name: "男",
type: "bar",
barGap: 0,
color: "#00B050",
label: labelOption,
emphasis: {
focus: "series",
},
data: boyheight,
},
{
name: "女",
type: "bar",
color: "red",
label: labelOption,
emphasis: {
focus: "series",
},
data: grilsheight,
},
],
};
option2 = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
data: grilsweight,
},
],
};
option && myChart.setOption(option);
option2 && myChart2.setOption(option2);
this.itemshow = true;
this.itemshow2 = false;
legend: {
data: ["男", "女"],
},
xAxis: [
{
type: "category",
axisTick: { show: false },
data: yclassname,
},
],
yAxis: [
{
type: "value",
},
],
series: [
{
name: "男",
type: "bar",
barGap: 0,
color: "#00B050",
label: labelOption,
emphasis: {
focus: "series",
},
data: boyweight,
},
{
name: "女",
type: "bar",
color: "red",
label: labelOption,
emphasis: {
focus: "series",
},
data: grilsweight,
},
],
};
option && myChart.setOption(option);
option2 && myChart2.setOption(option2);
this.itemshow = true;
this.itemshow2 = false;
}
});
},
//

View File

@ -332,7 +332,7 @@
<div slot="header" style="text-align: center">
<img style="width: 40px" src="@/icons/笑脸.png" alt="" />
<div><!-- card title -->学生此批次暂没数据</div>
<div><!-- card title -->幼儿园此批次暂无数据</div>
</div>
<!-- card body -->
</el-card>
@ -427,99 +427,104 @@ export default {
methods: {
analysisinfo() {
analysis(this.analysisqueryParams).then((res) => {
this.totalAvgFraction = res.data.totalAvgFraction;
this.categoryTableNameList = res.data.categoryTableNameList;
this.categoryAgeFractionList = res.data.categoryAgeFractionList;
this.categoryScoreList = res.data.categoryScoreList;
this.firstCategoryScoreList = res.data.firstCategoryScoreList;
console.log(this.firstCategoryScoreList);
if (res.data == [] || !res.data) {
this.itemshow2 = true;
this.itemshow = false;
} else {
var list = [];
this.categoryTableNameList.forEach((e) => {
e.childrenTableNameList.forEach((el) => {
list.push(el.categoryId);
this.totalAvgFraction = res.data.totalAvgFraction;
this.categoryTableNameList = res.data.categoryTableNameList;
this.categoryAgeFractionList = res.data.categoryAgeFractionList;
this.categoryScoreList = res.data.categoryScoreList;
this.firstCategoryScoreList = res.data.firstCategoryScoreList;
console.log(this.firstCategoryScoreList);
if (res.data == [] || !res.data) {
this.itemshow2 = true;
this.itemshow = false;
} else {
var list = [];
this.categoryTableNameList.forEach((e) => {
e.childrenTableNameList.forEach((el) => {
list.push(el.categoryId);
});
});
});
this.categoryAgeFractionList.forEach((el) => {
var list1 = list.map((e) => {
var num = 0;
var number = el.categoryAvgFractionList.findIndex(
(o) => o.categoryId == e
);
if (number != -1) {
num = el.categoryAvgFractionList[number].avgCategoryFraction;
this.categoryAgeFractionList.forEach((el) => {
var list1 = list.map((e) => {
var num = 0;
var number = el.categoryAvgFractionList.findIndex(
(o) => o.categoryId == e
);
if (number != -1) {
num = el.categoryAvgFractionList[number].avgCategoryFraction;
}
return num;
});
el.list = list1;
});
let seriesData = [];
let yindicator = [];
this.categoryScoreList.forEach((el) => {
console.log(el);
seriesData.push(el.itemFraction);
if (el.avgCategoryName == null) {
el.avgCategoryName = "暂无";
}
return num;
yindicator.push({
name:
el.categoryName + " " + "(" + el.avgCategoryName + "" + ")",
max: el.maxFraction,
});
});
el.list = list1;
});
var myChart = echarts.init(document.getElementById("chart"));
let seriesData = [];
let yindicator = [];
this.categoryScoreList.forEach((el) => {
console.log(el);
seriesData.push(el.itemFraction);
if (el.avgCategoryName == null) {
el.avgCategoryName = "暂无";
}
yindicator.push({
name: el.categoryName + " " + "(" + el.avgCategoryName + "" + ")",
max: el.maxFraction,
});
});
var myChart = echarts.init(document.getElementById("chart"));
let option = {
//
color: "blue",
radar: {
name: {
show: true,
color: "black",
},
center: ["50%", "50%"],
//
indicator: yindicator,
shape: "polygon", //, circle:,polygon:()
},
series: [
{
type: "radar",
label: {
let option = {
//
color: "blue",
radar: {
name: {
show: true,
color: "blue", //
},
areaStyle: {}, //
data: [
{
name: "成绩区域",
value: seriesData,
},
],
areaStyle: {
color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
{
color: "rgba(50, 50, 255, 0.1)",
offset: 0,
},
{
color: "rgba(50, 50, 200, 0.9)",
offset: 1,
},
]),
color: "black",
},
center: ["50%", "50%"],
//
indicator: yindicator,
shape: "polygon", //, circle:,polygon:()
},
],
};
//
myChart.setOption(option);
this.itemshow2 = false;
this.itemshow = true;
series: [
{
type: "radar",
label: {
show: true,
color: "blue", //
},
areaStyle: {}, //
data: [
{
name: "成绩区域",
value: seriesData,
},
],
areaStyle: {
color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
{
color: "rgba(50, 50, 255, 0.1)",
offset: 0,
},
{
color: "rgba(50, 50, 200, 0.9)",
offset: 1,
},
]),
},
},
],
};
//
myChart.setOption(option);
this.itemshow2 = false;
this.itemshow = true;
}
}
});
},