Merge remote-tracking branch 'origin/dev'
This commit is contained in:
commit
642fde5cbb
@ -40,7 +40,8 @@
|
||||
"axios": "0.24.0",
|
||||
"clipboard": "2.0.8",
|
||||
"core-js": "3.19.1",
|
||||
"echarts": "4.9.0",
|
||||
"cs-ruler": "^2.1.5",
|
||||
"echarts": "^4.9.0",
|
||||
"element-ui": "2.15.8",
|
||||
"file-saver": "2.0.5",
|
||||
"fuse.js": "6.4.3",
|
||||
|
||||
10
src/api/system/comprehensive.js
Normal file
10
src/api/system/comprehensive.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 体制分析
|
||||
export function synthesize(query) {
|
||||
return request({
|
||||
url: '/physique/analysis/synthesize',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
27
src/api/system/quality.js
Normal file
27
src/api/system/quality.js
Normal file
@ -0,0 +1,27 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
//查询用户权限
|
||||
export function getRoleInfo() {
|
||||
return request({
|
||||
url: 'common/getRoleInfo',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// 查询身体素质
|
||||
export function testBodyScoreInfo(query) {
|
||||
return request({
|
||||
url: 'system/testBodyScoreInfo/listBody',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//批次编号
|
||||
export function testScoreBatch(query) {
|
||||
return request({
|
||||
url: '/system/testScoreBatch/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
10
src/api/system/shape.js
Normal file
10
src/api/system/shape.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
//查询用户身体形态
|
||||
export function analysis(query) {
|
||||
return request({
|
||||
url: '/body/shape/analysis',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
BIN
src/icons/笑脸.png
Normal file
BIN
src/icons/笑脸.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
BIN
src/icons/金牌.png
Normal file
BIN
src/icons/金牌.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.0 KiB |
BIN
src/icons/金牌2.png
Normal file
BIN
src/icons/金牌2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
12
src/main.js
12
src/main.js
@ -73,14 +73,14 @@ DictData.install()
|
||||
*/
|
||||
|
||||
Vue.use(Element, {
|
||||
size: Cookies.get('size') || 'medium' // set element-ui default size
|
||||
size: Cookies.get('size') || 'medium' // set element-ui default size
|
||||
})
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
router,
|
||||
store,
|
||||
render: h => h(App)
|
||||
})
|
||||
el: '#app',
|
||||
router,
|
||||
store,
|
||||
render: h => h(App)
|
||||
})
|
||||
897
src/views/system/comprehensive/index.vue
Normal file
897
src/views/system/comprehensive/index.vue
Normal file
@ -0,0 +1,897 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="90px"
|
||||
>
|
||||
<el-form-item label="所属幼儿园" prop="categoryName">
|
||||
<el-button
|
||||
@click="kindergartenshow = true"
|
||||
v-if="kindergartenName == '请选择幼儿园'"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
>{{ kindergartenName }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="kindergartenshow = true"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ kindergartenName }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="所属班级" prop="categoryName" label-width="70px">
|
||||
<el-button
|
||||
@click="classshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
v-if="className == '请选择班级'"
|
||||
>{{ className }}</el-button
|
||||
>
|
||||
|
||||
<el-button
|
||||
@click="classshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ className }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="学生" prop="categoryName" label-width="45px">
|
||||
<el-button
|
||||
@click="studentshowclick"
|
||||
v-if="studentname == '请选择学生'"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
>{{ studentname }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="studentshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ studentname }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="批次成绩" prop="categoryName" label-width="70px">
|
||||
<el-button
|
||||
@click="batchCodeshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
v-if="batchCodeName == '请选择批次'"
|
||||
>{{ batchCodeName }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="batchCodeshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ batchCodeName }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<!-- //批次 -->
|
||||
<el-dialog
|
||||
width="500px"
|
||||
title="选择批次"
|
||||
:visible.sync="batchCodeshow"
|
||||
append-to-body
|
||||
style="margin-top: 20px"
|
||||
:before-close="batchCodecancel"
|
||||
>
|
||||
<el-table :data="testScorelist" align="center" style="margin-top: 0px">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 20px; height: 20px"
|
||||
v-if="batchCodeId == scope.row.id"
|
||||
circle
|
||||
@click="batchCodeclick(scope.row)"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="batchCodeclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="batchCode"
|
||||
label="批次编号"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="batchName"
|
||||
label="批次名称"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total4 > 0"
|
||||
:total="total4"
|
||||
:page.sync="testqueryParams.pageNum"
|
||||
:limit.sync="testqueryParams.pageSize"
|
||||
@pagination="testScore"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!-- //学生 -->
|
||||
<el-dialog
|
||||
width="850px"
|
||||
title="选择学生"
|
||||
:visible.sync="studentshow"
|
||||
append-to-body
|
||||
style="margin-top: 70px"
|
||||
:before-close="studentcancel"
|
||||
>
|
||||
<el-table :data="studentInfoList" align="center" style="margin-top: 10px">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 20px; height: 20px"
|
||||
circle
|
||||
v-if="studentId == scope.row.id"
|
||||
@click="studentclick(scope.row)"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="studentclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="className"
|
||||
label="班级名称"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="studentName"
|
||||
label="学生姓名"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="studentName"
|
||||
label="性别"
|
||||
width="190"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.studentSex == "MALE" ? "男" : "女" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="homeAddress"
|
||||
label="住址"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total3 > 0"
|
||||
:total="total3"
|
||||
:page.sync="studentqueryParams.pageNum"
|
||||
:limit.sync="studentqueryParams.pageSize"
|
||||
@pagination="studentlist"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!-- //幼儿园 -->
|
||||
<el-dialog
|
||||
width="850px"
|
||||
title="选择所属幼儿园"
|
||||
:visible.sync="kindergartenshow"
|
||||
append-to-body
|
||||
:before-close="kindergartencancel"
|
||||
>
|
||||
<el-table :data="kindergartenList">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="kindergartenNameclick(scope.row)"
|
||||
v-if="kindergartenId == scope.row.id"
|
||||
></el-button>
|
||||
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="kindergartenNameclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
property="kindergartenName"
|
||||
label="幼儿园名字"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="kindergartenAddress"
|
||||
label="幼儿园地址"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="幼儿园所在组织"
|
||||
align="center"
|
||||
prop="organizeName"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="contacts"
|
||||
label="联系人"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="phone"
|
||||
label="联系电话"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total1 > 0"
|
||||
:total="total1"
|
||||
:page.sync="kqueryParams.pageNum"
|
||||
:limit.sync="kqueryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!-- //班级 -->
|
||||
<el-dialog
|
||||
width="1000px"
|
||||
title="选择所属班级"
|
||||
:visible.sync="classshow"
|
||||
append-to-body
|
||||
:before-close="classcancel"
|
||||
>
|
||||
<el-table :data="classinfoList" align="center" style="margin-top: 10px">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 20px; height: 20px"
|
||||
circle
|
||||
@click="classclick(scope.row)"
|
||||
v-if="classId == scope.row.id"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="classclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="kindergartenName"
|
||||
label="幼儿园名称"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="className"
|
||||
label="班级名称"
|
||||
width="180"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="classType"
|
||||
label="班级类型"
|
||||
width="160"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.classType == dictValue1 ? "大班" : "" }}
|
||||
{{ scope.row.classType == dictValue2 ? "中班" : "" }}
|
||||
{{ scope.row.classType == dictValue3 ? "小班" : "" }}
|
||||
{{ scope.row.classType == dictValue4 ? "毕业" : "" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
property="classTeacher"
|
||||
label="班主任姓名"
|
||||
width="180"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="phone"
|
||||
label="联系电话"
|
||||
width="190"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total2 > 0"
|
||||
:total="total2"
|
||||
:page.sync="classqueryParams.pageNum"
|
||||
:limit.sync="classqueryParams.pageSize"
|
||||
@pagination="classinfo"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<el-row v-show="itemshow">
|
||||
<el-col :span="24" class="card-box">
|
||||
<el-card>
|
||||
<div slot="header" style="text-align: center; margin-bottom: 10px">
|
||||
<span>学生基本信息</span>
|
||||
</div>
|
||||
<div
|
||||
class="el-table--enable-row-hover el-table--medium"
|
||||
style="
|
||||
margin-top: 10px;
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
"
|
||||
>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
text-align: center;
|
||||
"
|
||||
>
|
||||
<div class="cell" style="width: 20%">
|
||||
姓名:{{ sythesizestudent.studentName }}
|
||||
</div>
|
||||
<div class="cell" style="width: 20%">
|
||||
性别:{{ sythesizestudent.studentSex == "MALE" ? "男" : "女" }}
|
||||
</div>
|
||||
<div class="cell" style="width: 20%">
|
||||
年龄:{{ sythesizestudent.studentAge }}
|
||||
</div>
|
||||
<div class="cell" style="width: 20%">
|
||||
民族:{{ sythesizestudent.nationName }}
|
||||
</div>
|
||||
<div class="cell" style="width: 20%">
|
||||
ID:{{ sythesizestudent.studentNumber }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: flex; margin-top: 20px">
|
||||
<div class="cell" style="width: 60%; margin-left: 7.7%">
|
||||
所属幼儿园:{{ sythesizestudent.kindergartenName }}
|
||||
</div>
|
||||
<div class="cell">班级:{{ sythesizestudent.className }}</div>
|
||||
</div>
|
||||
<div style="margin-top: 20px; margin-left: 7.7%">
|
||||
<div class="cell">
|
||||
地址:{{ sythesizestudent.kindergartenAddress }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="24" class="card-box">
|
||||
<el-card style="margin-top: 40px">
|
||||
<div
|
||||
class="el-table--enable-row-hover el-table--medium"
|
||||
style="margin: 20px auto; height: 40px; text-align: center"
|
||||
>
|
||||
<div style="display: inline-block">
|
||||
<span
|
||||
style="
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 80px;
|
||||
text-align: center;
|
||||
"
|
||||
v-for="(item, index) in sythesizestudent.firstItemCategoryList"
|
||||
:key="index"
|
||||
>
|
||||
<span :style="index == 0 ? '' : 'margin-right:20px'">{{
|
||||
index == 0 ? null : "+"
|
||||
}}</span>
|
||||
<span>
|
||||
{{ item.categoryScore }}
|
||||
</span>
|
||||
<span
|
||||
:style="index != 0 ? 'left:18px' : ''"
|
||||
style="position: absolute; left: 0px; top: 20px; width: 80px"
|
||||
>{{ item.categoryName }}</span
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
<div style="display: inline-block; position: relative">
|
||||
<span style="margin: 0 20px">= </span>
|
||||
<span>{{ sythesizestudent.totalCategoryScore }}</span>
|
||||
|
||||
<span
|
||||
style="
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
width: 80px;
|
||||
left: 29px;
|
||||
"
|
||||
>(综合得分)</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center; font-size: 25px; margin-top: 30px">
|
||||
获取徽章
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
text-align: center;
|
||||
justify-content: space-around;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<span
|
||||
v-for="(item, index) in sythesizestudent.categoryNameList"
|
||||
:key="index"
|
||||
>
|
||||
<img
|
||||
style="width: 80px; height: 80px"
|
||||
src="@/icons/金牌2.png"
|
||||
alt=""
|
||||
/>
|
||||
<div style="margin-top: 10px">{{ item }}</div>
|
||||
</span>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" class="card-box" style="margin-top: 40px">
|
||||
<el-card>
|
||||
<div slot="header" style="text-align: center">
|
||||
<span>综合体质分析图</span>
|
||||
</div>
|
||||
<div class="el-table el-table--enable-row-hover el-table--medium">
|
||||
<div
|
||||
ref="chart"
|
||||
id="chart"
|
||||
style="width: 1000px; height: 600px; margin: 0 auto"
|
||||
></div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20" v-if="itemshow2">
|
||||
<el-col :span="24" :offset="0">
|
||||
<el-card>
|
||||
<div slot="header" style="text-align: center">
|
||||
<img style="width: 40px" src="@/icons/笑脸.png" alt="" />
|
||||
|
||||
<div><!-- card title -->该学生此批次暂没成绩</div>
|
||||
</div>
|
||||
<!-- card body -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as echarts from "echarts";
|
||||
|
||||
import {
|
||||
listKindergartenInfo,
|
||||
tKindergartenInfo,
|
||||
} from "@/api/system/kindergartenInfo";
|
||||
import { listStudentInfo } from "@/api/system/studentInfo";
|
||||
import { listClassinfo } from "@/api/system/classinfo";
|
||||
import { getRoleInfo, testScoreBatch } from "@/api/system/quality";
|
||||
import { synthesize } from "@/api/system/comprehensive";
|
||||
export default {
|
||||
name: "comprehensive",
|
||||
data() {
|
||||
return {
|
||||
itemshow: false,
|
||||
itemshow2: false,
|
||||
total1: 0,
|
||||
total2: 0,
|
||||
total3: 0,
|
||||
total4: 0,
|
||||
//遮罩层
|
||||
kindergartenshow: false,
|
||||
classshow: false,
|
||||
studentshow: false,
|
||||
batchCodeshow: false,
|
||||
//班级类型
|
||||
dictValue1: "",
|
||||
dictValue2: "",
|
||||
dictValue3: "",
|
||||
dictValue4: "",
|
||||
ClassType: "class_type",
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 表单参数
|
||||
form: {},
|
||||
//学生查询
|
||||
studentqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
classId: "",
|
||||
nationDictId: null,
|
||||
studentName: null,
|
||||
studentSex: null,
|
||||
studentNumber: null,
|
||||
birthDate: null,
|
||||
cardNumber: null,
|
||||
onceName: null,
|
||||
homeAddress: null,
|
||||
},
|
||||
//班级查询
|
||||
classqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
kindergartenId: "",
|
||||
className: null,
|
||||
classType: null,
|
||||
},
|
||||
//幼儿园查询参数
|
||||
kqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
organizeId: null,
|
||||
kindergartenName: null,
|
||||
kindergartenAddress: null,
|
||||
kindergartenType: null,
|
||||
phone: null,
|
||||
contacts: null,
|
||||
},
|
||||
//幼儿园list
|
||||
kindergartenList: [],
|
||||
//幼儿园名字
|
||||
kindergartenName: "请选择幼儿园",
|
||||
//幼儿园ID
|
||||
kindergartenId: "",
|
||||
//班级list
|
||||
classinfoList: [],
|
||||
//班级名字
|
||||
className: "请选择班级",
|
||||
//班级ID
|
||||
classId: "",
|
||||
//学生list
|
||||
studentInfoList: [],
|
||||
//学生名字
|
||||
studentname: "请选择学生",
|
||||
//学生ID
|
||||
studentId: "",
|
||||
//批次名称
|
||||
batchCodeName: "请选择批次",
|
||||
//批次ID
|
||||
batchCodeId: "",
|
||||
//批次list
|
||||
testScorelist: [],
|
||||
//学生基本信息
|
||||
sythesizestudent: [],
|
||||
// 综合体质分析查询参数
|
||||
synthesizelist: {
|
||||
studentId: "",
|
||||
batchCode: "",
|
||||
// studentId: "10",
|
||||
// batchCode: "PC202208030005",
|
||||
},
|
||||
//批次编号
|
||||
testqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
created() {
|
||||
this.getList();
|
||||
this.class();
|
||||
// this.synthesizeinfo();
|
||||
},
|
||||
methods: {
|
||||
//综合体质分析素质
|
||||
synthesizeinfo() {
|
||||
synthesize(this.synthesizelist).then((res) => {
|
||||
if (res.data == [] || !res.data) {
|
||||
this.itemshow2 = true;
|
||||
this.itemshow = false;
|
||||
} else {
|
||||
this.sythesizestudent = res.data;
|
||||
console.log(this.sythesizestudent);
|
||||
let seriesData = [];
|
||||
let yindicator = [];
|
||||
res.data.physiqueCategoryList.forEach((el) => {
|
||||
// console.log(el.categoryScore);
|
||||
seriesData.push(el.categoryScore);
|
||||
yindicator.push({
|
||||
name: el.categoryName + " " + "(" + el.levelName + "" + ")",
|
||||
max: el.maxScore,
|
||||
});
|
||||
});
|
||||
console.log(seriesData, yindicator);
|
||||
|
||||
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: {
|
||||
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;
|
||||
}
|
||||
|
||||
// var myChart = echarts.init(document.getElementById("chart"));
|
||||
// var option;
|
||||
|
||||
// option = {
|
||||
// color: ["#f6da22", "#bbe2e8", "#6cacde"],
|
||||
// legend: {
|
||||
// data: ["Allocated Budget", "Actual Spending"],
|
||||
// },
|
||||
// radar: {
|
||||
// indicator: yindicator,
|
||||
// color: "#fff",
|
||||
// },
|
||||
// series: [
|
||||
// {
|
||||
// name: "Budget vs spending",
|
||||
// type: "radar",
|
||||
// data: [
|
||||
// {
|
||||
// value: seriesData,
|
||||
// name: "综合体质分析图",
|
||||
// areaStyle: {
|
||||
// color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
|
||||
// {
|
||||
// color: "rgba(255, 145, 124, 0.1)",
|
||||
// offset: 0,
|
||||
// },
|
||||
// {
|
||||
// color: "rgba(255, 145, 124, 0.9)",
|
||||
// offset: 1,
|
||||
// },
|
||||
// ]),
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
// };
|
||||
|
||||
// option && myChart.setOption(option);
|
||||
|
||||
// option = {
|
||||
// legend: {
|
||||
// top: "bottom",
|
||||
// },
|
||||
// toolbox: {
|
||||
// show: true,
|
||||
// feature: {
|
||||
// mark: { show: true },
|
||||
// dataView: { show: true, readOnly: false },
|
||||
// restore: { show: true },
|
||||
// saveAsImage: { show: true },
|
||||
// },
|
||||
// },
|
||||
// series: [
|
||||
// {
|
||||
// name: "Nightingale Chart",
|
||||
// type: "pie",
|
||||
// radius: '50%',
|
||||
// center: ["50%", "50%"],
|
||||
// roseType: "area",
|
||||
// itemStyle: {
|
||||
// normal: {
|
||||
// color: function (colors) {
|
||||
// var colorList = [
|
||||
// "#91cd77",
|
||||
// "#5470c6",
|
||||
// "#fc8251",
|
||||
// "#ef6567",
|
||||
// "#f9c956",
|
||||
// "#75bedc",
|
||||
// "#FCEF03",
|
||||
// "#E12BE4",
|
||||
// "#0070C0",
|
||||
// ];
|
||||
// return colorList[colors.dataIndex];
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// data: seriesData,
|
||||
// },
|
||||
// ],
|
||||
// };
|
||||
|
||||
// option && myChart.setOption(option);
|
||||
});
|
||||
},
|
||||
// 点击学生按钮
|
||||
studentshowclick() {
|
||||
if (this.studentqueryParams.classId == "") {
|
||||
this.$message.error("请先选择班级");
|
||||
} else {
|
||||
this.studentshow = true;
|
||||
this.studentlist();
|
||||
}
|
||||
},
|
||||
//点击批次
|
||||
batchCodeshowclick() {
|
||||
if (this.synthesizelist.studentId == "") {
|
||||
this.$message.error("请先选择学生");
|
||||
} else {
|
||||
this.testScore();
|
||||
this.batchCodeshow = true;
|
||||
}
|
||||
},
|
||||
//点击批次左边
|
||||
batchCodeclick(row) {
|
||||
this.batchCodeName = row.batchName;
|
||||
this.batchCodeId = row.id;
|
||||
this.synthesizelist.batchCode = row.batchCode;
|
||||
this.batchCodeshow = false;
|
||||
this.synthesizeinfo();
|
||||
},
|
||||
//批次
|
||||
testScore() {
|
||||
testScoreBatch(this.testqueryParams).then((res) => {
|
||||
this.testScorelist = res.rows;
|
||||
this.total4 = res.total;
|
||||
});
|
||||
},
|
||||
//学生左侧按钮
|
||||
studentclick(row) {
|
||||
this.studentname = row.studentName;
|
||||
this.studentId = row.id;
|
||||
this.studentshow = false;
|
||||
this.synthesizelist.studentId = row.id;
|
||||
},
|
||||
//获取学生
|
||||
studentlist() {
|
||||
listStudentInfo(this.studentqueryParams).then((res) => {
|
||||
this.studentInfoList = res.rows;
|
||||
this.total3 = res.total;
|
||||
// console.log(this.studentInfoList);
|
||||
});
|
||||
},
|
||||
//点击所属班级
|
||||
classshowclick() {
|
||||
if (this.classqueryParams.kindergartenId == "") {
|
||||
this.$message.error("请先选择幼儿园");
|
||||
} else {
|
||||
this.classshow = true;
|
||||
this.classinfo();
|
||||
}
|
||||
// console.log(this.classqueryParams);
|
||||
},
|
||||
//批次关闭
|
||||
batchCodecancel() {
|
||||
this.batchCodeshow = false;
|
||||
},
|
||||
//学生关闭
|
||||
studentcancel() {
|
||||
this.studentshow = false;
|
||||
},
|
||||
//幼儿园关闭
|
||||
kindergartencancel() {
|
||||
this.kindergartenshow = false;
|
||||
},
|
||||
//班级关闭
|
||||
classcancel() {
|
||||
this.classshow = false;
|
||||
},
|
||||
//班级左侧点击
|
||||
classclick(row) {
|
||||
// console.log(row);
|
||||
this.className = row.className;
|
||||
this.classId = row.id;
|
||||
this.studentqueryParams.classId = row.id;
|
||||
this.classshow = false;
|
||||
},
|
||||
//幼儿园左侧点击
|
||||
kindergartenNameclick(row) {
|
||||
this.classqueryParams.kindergartenId = row.id;
|
||||
this.kindergartenName = row.kindergartenName;
|
||||
this.kindergartenId = row.id;
|
||||
this.kindergartenshow = false;
|
||||
// this.synthesizeinfo();
|
||||
},
|
||||
//班级类型
|
||||
class() {
|
||||
tKindergartenInfo(this.ClassType).then((res) => {
|
||||
this.dictValue1 = res.data[0].dictValue;
|
||||
this.dictValue2 = res.data[1].dictValue;
|
||||
this.dictValue3 = res.data[2].dictValue;
|
||||
this.dictValue4 = res.data[3].dictValue;
|
||||
});
|
||||
},
|
||||
//班级list
|
||||
classinfo() {
|
||||
listClassinfo(this.classqueryParams).then((response) => {
|
||||
this.classinfoList = response.rows;
|
||||
this.total2 = response.total;
|
||||
// console.log(this.classinfoList);
|
||||
});
|
||||
},
|
||||
|
||||
getList() {
|
||||
//用户权限
|
||||
getRoleInfo().then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
//获取幼儿园list
|
||||
listKindergartenInfo(this.kqueryParams).then((response) => {
|
||||
this.kindergartenList = response.rows;
|
||||
this.total1 = response.total;
|
||||
// console.log(this.kindergartenList);
|
||||
});
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {};
|
||||
this.resetForm("form");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@ -298,34 +298,30 @@ export default {
|
||||
components: { Treeselect },
|
||||
data() {
|
||||
let testItemLevelList = (rule, value, callback) => {
|
||||
console.log(value);
|
||||
let min = value.map((e) => {
|
||||
return e.levelMinScore;
|
||||
}).toString();
|
||||
let max = value.map((e) => {
|
||||
return e.levelMaxScore;
|
||||
}).toString();
|
||||
console.log(min, max);
|
||||
|
||||
if (Number(max) < Number(min)) {
|
||||
console.log(min,max);
|
||||
callback(new Error("最高分必须大于最低分,请重新填写!"));
|
||||
|
||||
}
|
||||
|
||||
if (
|
||||
value.map((e) => {
|
||||
return e.levelName;
|
||||
}) == ""
|
||||
) {
|
||||
callback();
|
||||
} else if (
|
||||
value.map((e) => {
|
||||
return e.levelMinScore;
|
||||
}) == ""
|
||||
) {
|
||||
} else if (min == "") {
|
||||
callback();
|
||||
} else if (
|
||||
value.map((e) => {
|
||||
return e.levelMaxScore;
|
||||
}) == ""
|
||||
) {
|
||||
} else if (max == "") {
|
||||
callback();
|
||||
} else if (
|
||||
value.map((e) => {
|
||||
return e.levelMaxScore;
|
||||
}) <=
|
||||
value.map((e) => {
|
||||
return e.levelMinScore;
|
||||
})
|
||||
) {
|
||||
callback(new Error("级别最高分必须大于最低分,请重新填写!"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
|
||||
924
src/views/system/quality/index.vue
Normal file
924
src/views/system/quality/index.vue
Normal file
@ -0,0 +1,924 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="90px"
|
||||
>
|
||||
<el-form-item label="所属幼儿园" prop="categoryName">
|
||||
<el-button
|
||||
@click="kindergartenshow = true"
|
||||
v-if="kindergartenName == '请选择幼儿园'"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
>{{ kindergartenName }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="kindergartenshow = true"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ kindergartenName }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="所属班级" prop="categoryName" label-width="70px">
|
||||
<el-button
|
||||
@click="classshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
v-if="className == '请选择班级'"
|
||||
>{{ className }}</el-button
|
||||
>
|
||||
|
||||
<el-button
|
||||
@click="classshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ className }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="学生" prop="categoryName" label-width="45px">
|
||||
<el-button
|
||||
@click="studentshowclick"
|
||||
v-if="studentname == '请选择学生'"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
>{{ studentname }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="studentshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ studentname }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="批次成绩" prop="categoryName" label-width="70px">
|
||||
<el-button
|
||||
@click="batchCodeshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px; color: #c0c4cc"
|
||||
v-if="batchCodeName == '请选择批次'"
|
||||
>{{ batchCodeName }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="batchCodeshowclick"
|
||||
style="width: 250px; text-align: left; height: 32px"
|
||||
v-else
|
||||
>{{ batchCodeName }}</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<!-- //批次 -->
|
||||
<el-dialog
|
||||
width="500px"
|
||||
title="选择批次"
|
||||
:visible.sync="batchCodeshow"
|
||||
append-to-body
|
||||
style="margin-top: 20px"
|
||||
:before-close="batchCodecancel"
|
||||
>
|
||||
<el-table :data="testScorelist" align="center" style="margin-top: 0px">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 20px; height: 20px"
|
||||
v-if="batchCodeId == scope.row.id"
|
||||
circle
|
||||
@click="batchCodeclick(scope.row)"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="batchCodeclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="batchCode"
|
||||
label="批次编号"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="batchName"
|
||||
label="批次名称"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total4 > 0"
|
||||
:total="total4"
|
||||
:page.sync="testqueryParams.pageNum"
|
||||
:limit.sync="testqueryParams.pageSize"
|
||||
@pagination="testScore"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!-- //学生 -->
|
||||
<el-dialog
|
||||
width="850px"
|
||||
title="选择学生"
|
||||
:visible.sync="studentshow"
|
||||
append-to-body
|
||||
style="margin-top: 70px"
|
||||
:before-close="studentcancel"
|
||||
>
|
||||
<el-table :data="studentInfoList" align="center" style="margin-top: 10px">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 20px; height: 20px"
|
||||
circle
|
||||
v-if="studentId == scope.row.id"
|
||||
@click="studentclick(scope.row)"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="studentclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="className"
|
||||
label="班级名称"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="studentName"
|
||||
label="学生姓名"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="studentName"
|
||||
label="性别"
|
||||
width="190"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.studentSex == "MALE" ? "男" : "女" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="homeAddress"
|
||||
label="住址"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total3 > 0"
|
||||
:total="total3"
|
||||
:page.sync="studentqueryParams.pageNum"
|
||||
:limit.sync="studentqueryParams.pageSize"
|
||||
@pagination="studentlist"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!-- //幼儿园 -->
|
||||
<el-dialog
|
||||
width="850px"
|
||||
title="选择所属幼儿园"
|
||||
:visible.sync="kindergartenshow"
|
||||
append-to-body
|
||||
:before-close="kindergartencancel"
|
||||
>
|
||||
<el-table :data="kindergartenList">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="kindergartenNameclick(scope.row)"
|
||||
v-if="kindergartenId == scope.row.id"
|
||||
></el-button>
|
||||
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="kindergartenNameclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
property="kindergartenName"
|
||||
label="幼儿园名字"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="kindergartenAddress"
|
||||
label="幼儿园地址"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="幼儿园所在组织"
|
||||
align="center"
|
||||
prop="organizeName"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="contacts"
|
||||
label="联系人"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="phone"
|
||||
label="联系电话"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total1 > 0"
|
||||
:total="total1"
|
||||
:page.sync="kqueryParams.pageNum"
|
||||
:limit.sync="kqueryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!-- //班级 -->
|
||||
<el-dialog
|
||||
width="1000px"
|
||||
title="选择所属班级"
|
||||
:visible.sync="classshow"
|
||||
append-to-body
|
||||
:before-close="classcancel"
|
||||
>
|
||||
<el-table :data="classinfoList" align="center" style="margin-top: 10px">
|
||||
<el-table-column label="请选择" width="70" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 20px; height: 20px"
|
||||
circle
|
||||
@click="classclick(scope.row)"
|
||||
v-if="classId == scope.row.id"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="classclick(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="kindergartenName"
|
||||
label="幼儿园名称"
|
||||
width="190"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
property="className"
|
||||
label="班级名称"
|
||||
width="180"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="classType"
|
||||
label="班级类型"
|
||||
width="160"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.classType == dictValue1 ? "大班" : "" }}
|
||||
{{ scope.row.classType == dictValue2 ? "中班" : "" }}
|
||||
{{ scope.row.classType == dictValue3 ? "小班" : "" }}
|
||||
{{ scope.row.classType == dictValue4 ? "毕业" : "" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
property="classTeacher"
|
||||
label="班主任姓名"
|
||||
width="180"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="phone"
|
||||
label="联系电话"
|
||||
width="190"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total2 > 0"
|
||||
:total="total2"
|
||||
:page.sync="classqueryParams.pageNum"
|
||||
:limit.sync="classqueryParams.pageSize"
|
||||
@pagination="classinfo"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<el-card
|
||||
v-show="itemshow"
|
||||
class="box-card"
|
||||
style="width: 95%; margin: 0 auto"
|
||||
>
|
||||
<div slot="header" style="text-align: center; margin-bottom: 30px">
|
||||
身体素质测试
|
||||
</div>
|
||||
<el-row style="text-align: center">
|
||||
<el-col
|
||||
:span="5"
|
||||
style="
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>身体素质测试</el-col
|
||||
>
|
||||
<el-col
|
||||
:span="5"
|
||||
style="
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>测量值</el-col
|
||||
>
|
||||
<el-col
|
||||
:span="9"
|
||||
style="
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>成绩</el-col
|
||||
>
|
||||
<el-col
|
||||
:span="5"
|
||||
style="
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>综合评价</el-col
|
||||
>
|
||||
</el-row>
|
||||
<el-row
|
||||
style="text-align: center"
|
||||
v-for="(item, index) in studentscorelist"
|
||||
:key="index"
|
||||
>
|
||||
<el-col
|
||||
:span="5"
|
||||
style="
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>
|
||||
{{ item.itemName }}
|
||||
</el-col>
|
||||
<el-col
|
||||
:span="5"
|
||||
style="
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>
|
||||
{{ item.itemScore ? item.itemScore : "" }}
|
||||
{{ item.scoreDictValue ? item.scoreDictValue : "" }}
|
||||
{{ item.measureUnit }}
|
||||
</el-col>
|
||||
|
||||
<el-col
|
||||
v-if="item.itemScore"
|
||||
:span="9"
|
||||
style="
|
||||
height: 100px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
position: relative;
|
||||
"
|
||||
>
|
||||
<span style="position: absolute; left: 5%; top: 10px"
|
||||
>{{
|
||||
item.measureUnit == "s" || item.measureUnit == "h" ? "时间" : ""
|
||||
}}{{
|
||||
item.measureUnit == "cm" || item.measureUnit == "m" ? "距离" : ""
|
||||
}}({{ item.measureUnit }})</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
margin-top: 20px;
|
||||
float: left;
|
||||
margin-left: 6%;
|
||||
margin-top: 14%;
|
||||
"
|
||||
>评价</span
|
||||
>
|
||||
<div
|
||||
style="
|
||||
width: 70%;
|
||||
margin: 0 auto;
|
||||
margin-top: 10px;
|
||||
margin-left: 20%;
|
||||
position: relative;
|
||||
"
|
||||
>
|
||||
<div
|
||||
style="position: absolute; top: 1px; left: 79%; line-height: 20px"
|
||||
>
|
||||
{{
|
||||
((((item.maxScore - item.minScore) / item.minScore) *
|
||||
item.minScore) /
|
||||
5) *
|
||||
4 +
|
||||
item.minScore
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 80%;
|
||||
width: 1px;
|
||||
height: 15px;
|
||||
background: #a2a4a1;
|
||||
"
|
||||
></div>
|
||||
<div
|
||||
style="position: absolute; top: 1px; left: 59%; line-height: 20px"
|
||||
>
|
||||
{{
|
||||
((((item.maxScore - item.minScore) / item.minScore) *
|
||||
item.minScore) /
|
||||
5) *
|
||||
3 +
|
||||
item.minScore
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 60%;
|
||||
width: 1px;
|
||||
height: 15px;
|
||||
background: #a2a4a1;
|
||||
"
|
||||
></div>
|
||||
<div
|
||||
style="position: absolute; top: 1px; left: 39%; line-height: 20px"
|
||||
>
|
||||
{{
|
||||
((((item.maxScore - item.minScore) / item.minScore) *
|
||||
item.minScore) /
|
||||
5) *
|
||||
2 +
|
||||
item.minScore
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 40%;
|
||||
width: 1px;
|
||||
height: 15px;
|
||||
background: #a2a4a1;
|
||||
"
|
||||
></div>
|
||||
|
||||
<div
|
||||
style="position: absolute; top: 1px; left: 19%; line-height: 20px"
|
||||
>
|
||||
{{
|
||||
((((item.maxScore - item.minScore) / item.minScore) *
|
||||
item.minScore) /
|
||||
5) *
|
||||
1 +
|
||||
item.minScore
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 20%;
|
||||
width: 1px;
|
||||
height: 15px;
|
||||
background: #a2a4a1;
|
||||
"
|
||||
></div>
|
||||
<div
|
||||
style="position: absolute; top: 1px; left: -1%; line-height: 20px"
|
||||
>
|
||||
{{ item.minScore == null ? 0 : item.minScore }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 0%;
|
||||
width: 1px;
|
||||
height: 15px;
|
||||
background: #a2a4a1;
|
||||
"
|
||||
></div>
|
||||
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
right: -1%;
|
||||
line-height: 20px;
|
||||
"
|
||||
>
|
||||
{{ item.maxScore == null ? 100 : item.maxScore }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 0%;
|
||||
width: 2px;
|
||||
height: 15px;
|
||||
background: #a2a4a1;
|
||||
"
|
||||
></div>
|
||||
|
||||
<div
|
||||
class="cz2"
|
||||
:style="{
|
||||
width:
|
||||
((item.itemScore - item.minScore) /
|
||||
(item.maxScore - item.minScore)) *
|
||||
100 +
|
||||
'%',
|
||||
}"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div style="position: absolute; left: 30%; top: 72%">
|
||||
{{ item.leveName }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col
|
||||
v-else
|
||||
:span="9"
|
||||
style="
|
||||
height: 100px;
|
||||
border-right: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
position: relative;
|
||||
"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
margin-top: 20px;
|
||||
float: left;
|
||||
margin-left: 10%;
|
||||
margin-top: 7%;
|
||||
"
|
||||
>成绩评价</span
|
||||
>
|
||||
<div style="position: absolute; left: 48%; top: 40%">
|
||||
{{ item.leveName }}
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col
|
||||
:span="5"
|
||||
style="
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
border-bottom: 1px solid #ededed;
|
||||
"
|
||||
>{{ item.syntheticalAssess }}</el-col
|
||||
>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-row :gutter="20" v-if="itemshow2">
|
||||
<el-col :span="24" :offset="0">
|
||||
<el-card>
|
||||
<div slot="header" style="text-align: center">
|
||||
<img style="width: 40px" src="@/icons/笑脸.png" alt="" />
|
||||
|
||||
<div><!-- card title -->该学生此批次暂没数据</div>
|
||||
</div>
|
||||
<!-- card body -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
listKindergartenInfo,
|
||||
tKindergartenInfo,
|
||||
} from "@/api/system/kindergartenInfo";
|
||||
import { listStudentInfo } from "@/api/system/studentInfo";
|
||||
import { listClassinfo } from "@/api/system/classinfo";
|
||||
import {
|
||||
getRoleInfo,
|
||||
testBodyScoreInfo,
|
||||
testScoreBatch,
|
||||
} from "@/api/system/quality";
|
||||
|
||||
export default {
|
||||
name: "quality",
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
itemshow: false,
|
||||
itemshow2: false,
|
||||
total1: 0,
|
||||
total2: 0,
|
||||
total3: 0,
|
||||
total4: 0,
|
||||
//遮罩层
|
||||
kindergartenshow: false,
|
||||
classshow: false,
|
||||
studentshow: false,
|
||||
batchCodeshow: false,
|
||||
//班级类型
|
||||
dictValue1: "",
|
||||
dictValue2: "",
|
||||
dictValue3: "",
|
||||
dictValue4: "",
|
||||
ClassType: "class_type",
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 表单参数
|
||||
form: {},
|
||||
//学生查询
|
||||
studentqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
classId: "",
|
||||
nationDictId: null,
|
||||
studentName: null,
|
||||
studentSex: null,
|
||||
studentNumber: null,
|
||||
birthDate: null,
|
||||
cardNumber: null,
|
||||
onceName: null,
|
||||
homeAddress: null,
|
||||
},
|
||||
//班级查询
|
||||
classqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
kindergartenId: "",
|
||||
className: null,
|
||||
classType: null,
|
||||
},
|
||||
//幼儿园查询参数
|
||||
kqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
organizeId: null,
|
||||
kindergartenName: null,
|
||||
kindergartenAddress: null,
|
||||
kindergartenType: null,
|
||||
phone: null,
|
||||
contacts: null,
|
||||
},
|
||||
//幼儿园list
|
||||
kindergartenList: [],
|
||||
//幼儿园名字
|
||||
kindergartenName: "请选择幼儿园",
|
||||
//幼儿园ID
|
||||
kindergartenId: "",
|
||||
//班级list
|
||||
classinfoList: [],
|
||||
//班级名字
|
||||
className: "请选择班级",
|
||||
//班级ID
|
||||
classId: "",
|
||||
//学生list
|
||||
studentInfoList: [],
|
||||
//学生名字
|
||||
studentname: "请选择学生",
|
||||
//学生ID
|
||||
studentId: "",
|
||||
//批次名称
|
||||
batchCodeName: "请选择批次",
|
||||
//批次ID
|
||||
batchCodeId: "",
|
||||
//批次list
|
||||
testScorelist: [],
|
||||
//学生成绩
|
||||
studentscorelist: [],
|
||||
// 成绩查询参数
|
||||
studentscore: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
studentId: "",
|
||||
batchCode: "",
|
||||
// studentId: "14",
|
||||
// batchCode: "PC202208030005",
|
||||
// studentId: "9",
|
||||
// batchCode: "PC202208030004",
|
||||
},
|
||||
//批次编号
|
||||
testqueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
created() {
|
||||
this.getList();
|
||||
this.class();
|
||||
// this.studenttext();
|
||||
},
|
||||
methods: {
|
||||
//学生身体素质
|
||||
studenttext() {
|
||||
testBodyScoreInfo(this.studentscore).then((res) => {
|
||||
// res.rows[3].levelMaxScore = 19.5;
|
||||
// res.rows[3].levelMinScore = 4.5;
|
||||
// res.rows[3].itemScore = 7.5;
|
||||
if (!res.rows || res.rows == "" || res.rows == []) {
|
||||
this.itemshow2 = true;
|
||||
this.itemshow = false;
|
||||
} else {
|
||||
this.studentscorelist = res.rows;
|
||||
console.log(this.studentscorelist);
|
||||
}
|
||||
});
|
||||
},
|
||||
// 点击学生按钮
|
||||
studentshowclick() {
|
||||
if (this.studentqueryParams.classId == "") {
|
||||
this.$message.error("请先选择班级");
|
||||
} else {
|
||||
this.studentshow = true;
|
||||
this.studentlist();
|
||||
}
|
||||
},
|
||||
//点击批次
|
||||
batchCodeshowclick() {
|
||||
if (this.studentscore.studentId == "") {
|
||||
this.$message.error("请先选择学生");
|
||||
} else {
|
||||
this.testScore();
|
||||
this.batchCodeshow = true;
|
||||
}
|
||||
},
|
||||
//点击批次左边
|
||||
batchCodeclick(row) {
|
||||
this.batchCodeName = row.batchName;
|
||||
this.batchCodeId = row.id;
|
||||
this.studentscore.batchCode = row.batchCode;
|
||||
this.batchCodeshow = false;
|
||||
this.studenttext();
|
||||
},
|
||||
//批次
|
||||
testScore() {
|
||||
testScoreBatch(this.testqueryParams).then((res) => {
|
||||
this.testScorelist = res.rows;
|
||||
this.total4 = res.total;
|
||||
});
|
||||
},
|
||||
//学生左侧按钮
|
||||
studentclick(row) {
|
||||
this.studentname = row.studentName;
|
||||
this.studentId = row.id;
|
||||
this.studentshow = false;
|
||||
this.studentscore.studentId = row.id;
|
||||
},
|
||||
|
||||
//获取学生
|
||||
studentlist() {
|
||||
listStudentInfo(this.studentqueryParams).then((res) => {
|
||||
this.studentInfoList = res.rows;
|
||||
this.total3 = res.total;
|
||||
|
||||
// console.log(this.studentInfoList);
|
||||
});
|
||||
},
|
||||
//点击所属班级
|
||||
classshowclick() {
|
||||
if (this.classqueryParams.kindergartenId == "") {
|
||||
this.$message.error("请先选择幼儿园");
|
||||
} else {
|
||||
this.classshow = true;
|
||||
this.classinfo();
|
||||
}
|
||||
// console.log(this.classqueryParams);
|
||||
},
|
||||
//批次关闭
|
||||
batchCodecancel() {
|
||||
this.batchCodeshow = false;
|
||||
},
|
||||
//学生关闭
|
||||
studentcancel() {
|
||||
this.studentshow = false;
|
||||
},
|
||||
//幼儿园关闭
|
||||
kindergartencancel() {
|
||||
this.kindergartenshow = false;
|
||||
},
|
||||
//班级关闭
|
||||
classcancel() {
|
||||
this.classshow = false;
|
||||
},
|
||||
//班级左侧点击
|
||||
classclick(row) {
|
||||
// console.log(row);
|
||||
this.className = row.className;
|
||||
this.classId = row.id;
|
||||
this.studentqueryParams.classId = row.id;
|
||||
this.classshow = false;
|
||||
},
|
||||
//幼儿园左侧点击
|
||||
kindergartenNameclick(row) {
|
||||
this.classqueryParams.kindergartenId = row.id;
|
||||
this.kindergartenName = row.kindergartenName;
|
||||
this.kindergartenId = row.id;
|
||||
this.kindergartenshow = false;
|
||||
},
|
||||
//班级类型
|
||||
class() {
|
||||
tKindergartenInfo(this.ClassType).then((res) => {
|
||||
this.dictValue1 = res.data[0].dictValue;
|
||||
this.dictValue2 = res.data[1].dictValue;
|
||||
this.dictValue3 = res.data[2].dictValue;
|
||||
this.dictValue4 = res.data[3].dictValue;
|
||||
});
|
||||
},
|
||||
//班级list
|
||||
classinfo() {
|
||||
listClassinfo(this.classqueryParams).then((response) => {
|
||||
this.classinfoList = response.rows;
|
||||
this.total2 = response.total;
|
||||
|
||||
// console.log(this.classinfoList);
|
||||
});
|
||||
},
|
||||
|
||||
getList() {
|
||||
//用户权限
|
||||
getRoleInfo().then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
//获取幼儿园list
|
||||
listKindergartenInfo(this.kqueryParams).then((response) => {
|
||||
this.kindergartenList = response.rows;
|
||||
this.total1 = response.total;
|
||||
|
||||
// console.log(this.kindergartenList);
|
||||
});
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {};
|
||||
this.resetForm("form");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped='scss'>
|
||||
::v-deep .el-card__header {
|
||||
border: none;
|
||||
}
|
||||
.cz2 {
|
||||
background: #db6b6f;
|
||||
height: 5px;
|
||||
align-items: center;
|
||||
line-height: 30px;
|
||||
position: absolute;
|
||||
top: 40px;
|
||||
}
|
||||
</style>
|
||||
1269
src/views/system/shape/index.vue
Normal file
1269
src/views/system/shape/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -123,7 +123,6 @@
|
||||
label="所属批次编号"
|
||||
align="center"
|
||||
prop="batchCode"
|
||||
|
||||
/>
|
||||
<el-table-column label="测试成绩" align="center" prop="itemScore">
|
||||
<template slot-scope="scope">
|
||||
@ -1225,8 +1224,6 @@ export default {
|
||||
{ required: true, message: "请输入测试成绩", trigger: "blur" },
|
||||
],
|
||||
|
||||
|
||||
|
||||
// itemScores: [
|
||||
// { required: true, message: "测试成绩不能为空", trigger: "blur" },
|
||||
// ],
|
||||
@ -1235,7 +1232,6 @@ export default {
|
||||
{ required: true, message: "综合评价不能为空", trigger: "blur" },
|
||||
]
|
||||
},
|
||||
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -1504,10 +1500,13 @@ export default {
|
||||
// this.stname = row.studentName;
|
||||
// this.testname=row.itemName;
|
||||
// this.itemNumbername = row.batchCode;
|
||||
if(response.data.itemScore==''||response.data.itemScore==null){
|
||||
response.data.dictvalue='text';
|
||||
}else if(response.data.scoreDictValue==''||response.data.scoreDictValue==null){
|
||||
response.data.dictvalue='number';
|
||||
if (response.data.itemScore == "" || response.data.itemScore == null) {
|
||||
response.data.dictvalue = "text";
|
||||
} else if (
|
||||
response.data.scoreDictValue == "" ||
|
||||
response.data.scoreDictValue == null
|
||||
) {
|
||||
response.data.dictvalue = "number";
|
||||
}
|
||||
this.form = response.data;
|
||||
// this.form = response.className;
|
||||
@ -1519,7 +1518,6 @@ export default {
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
console.log("wwwwww")
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
@ -1533,6 +1531,14 @@ export default {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
this.xmname = "请选择所属班级";
|
||||
this.stname = "请选择学生姓名";
|
||||
this.testname = "请选择测试项目名称";
|
||||
this.itemNumbername = "请选择批次编号";
|
||||
this.itemId2 = "";
|
||||
this.itemId3 = "";
|
||||
this.itemId4 = "";
|
||||
this.itemId5 = "";
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -1542,7 +1548,7 @@ export default {
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal
|
||||
.confirm('是否确认删除个人成绩录入管理编号为"' + ids + '"的数据项?')
|
||||
.confirm("是否确认删除个人成绩的数据项?")
|
||||
.then(function () {
|
||||
return delTestItemScore(ids);
|
||||
})
|
||||
|
||||
@ -356,7 +356,7 @@
|
||||
placeholder="请输入级别描述"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目概述" prop="remark">
|
||||
<el-form-item label="测试目的" prop="remark">
|
||||
<el-input
|
||||
v-model="form.remark"
|
||||
placeholder="请输入项目概述"
|
||||
@ -436,6 +436,23 @@ export default {
|
||||
name: "TestItems",
|
||||
data() {
|
||||
let itemLevelList = (rule, value, callback) => {
|
||||
let min = value
|
||||
.map((e) => {
|
||||
return e.levelMinScore;
|
||||
})
|
||||
.toString();
|
||||
let max = value
|
||||
.map((e) => {
|
||||
return e.levelMaxScore;
|
||||
})
|
||||
.toString();
|
||||
console.log(min, max);
|
||||
|
||||
if (Number(max) < Number(min)) {
|
||||
console.log(min, max);
|
||||
callback(new Error("最高分必须大于最低分,请重新填写!"));
|
||||
}
|
||||
|
||||
if (
|
||||
value.map((e) => {
|
||||
return e.levelName;
|
||||
@ -454,15 +471,6 @@ export default {
|
||||
}) == ""
|
||||
) {
|
||||
callback();
|
||||
} else if (
|
||||
value.map((e) => {
|
||||
return e.levelMaxScore;
|
||||
}) <=
|
||||
value.map((e) => {
|
||||
return e.levelMinScore;
|
||||
})
|
||||
) {
|
||||
callback(new Error("级别最高分必须大于最低分,请重新填写!"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
@ -486,6 +494,24 @@ export default {
|
||||
}
|
||||
};
|
||||
|
||||
const validateVin = (rule, value, callback) => {
|
||||
const containAlpha = /[a-zA-Z]/; //含有字母
|
||||
|
||||
const containLowerCase = /[a-z]/; //匹配小写字母
|
||||
value = value.slice(0, 1);
|
||||
console.log(value);
|
||||
|
||||
if (!value) {
|
||||
callback(new Error("不能为空"));
|
||||
} else if (!containAlpha.test(value)) {
|
||||
callback(new Error("第一个必须为字母"));
|
||||
} else if (containLowerCase.test(value)) {
|
||||
callback(new Error("英文必须大写"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
//项目测试类型
|
||||
itemResultType: "item_result_type",
|
||||
@ -599,6 +625,11 @@ export default {
|
||||
],
|
||||
itemCode: [
|
||||
{ required: true, message: "项目编号不能为空", trigger: "blur" },
|
||||
{
|
||||
required: true,
|
||||
validator: validateVin,
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
itemName: [
|
||||
{ required: true, message: "项目名称不能为空", trigger: "blur" },
|
||||
@ -763,7 +794,7 @@ export default {
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal
|
||||
.confirm('是否确认该测试项目信息吗?')
|
||||
.confirm("是否确认该测试项目信息吗?")
|
||||
.then(function () {
|
||||
return delTestItems(ids);
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user