Commit cc831b79 by duxingshan

1、成绩管理新增、编辑、删除、导入、模版下载接口对接。

2、部分细节修改
parent bcd083b0
......@@ -8,3 +8,37 @@ export function performanceList(query) {
params: query,
});
}
//根据身份证号获取学生信息
export function getInfoByIdCard(query) {
return request({
url: `/curricula/studentScore/selectStudent?idCard=${query}`,
method: "get",
});
}
// 新增成绩
export function addPerformance(data) {
return request({
url: "/curricula/studentScore/add",
method: "post",
data,
});
}
// 编辑成绩
export function editPerformance(data) {
return request({
url: "/curricula/studentScore/edit",
method: "put",
data,
});
}
//删除成绩
export function deletePerformance(data) {
return request({
url: `/curricula/studentScore/delete/${data}`,
method: "delete"
});
}
......@@ -23,8 +23,8 @@
</el-form-item>
</el-form>
<div class="flexBlock person">
<div>总人数:45</div>
<div>已选课:<span>40</span></div>
<div>总人数:{{totalPerson}}</div>
<div>已选课:<span>{{choosePerson}}</span></div>
</div>
<el-table v-loading="loading" :data="courseSelectionData" stripe>
<el-table-column label="序号" type="index" width="55" align="center"/>
......@@ -82,9 +82,13 @@ export default {
courseSelectionData:[],
loading:false,
total:0,
totalPerson:0, // 总人数
choosePerson:0 // 已选人数
}
},
mounted() {
this.totalPerson = this.$route.query.total
this.choosePerson = this.$route.query.choose
this.getList()
},
methods:{
......
......@@ -28,7 +28,7 @@
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete"
size="mini" :disabled="!isMultiple" @click="handleDelete">批量删除</el-button>
size="mini" :disabled="!isMultiple" @click="handleDelete(1)">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="achievementData" stripe @selection-change="handleSelectionChange">
......@@ -38,7 +38,11 @@
<el-table-column fixed="left" label="学号" align="center" prop="studentNumber"/>
<el-table-column fixed="left" label="身份证号" align="center" prop="idCard"/>
<el-table-column fixed="left" label="班级" align="center" prop="className"/>
<el-table-column fixed="left" label="考试类型" align="center" prop="examType"/>
<el-table-column fixed="left" label="考试类型" align="center" prop="examType">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.exam_type,row.examType) }}</div>
</template>
</el-table-column>
<el-table-column label="总成绩" align="center" prop="totalScore"/>
<el-table-column label="学校排名" align="center" prop="ranking"/>
<el-table-column label="语文" align="center" prop="language"/>
......@@ -61,7 +65,7 @@
<el-table-column label="学校排名" align="center" prop="swRanking"/>
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small">删除</el-button>
<el-button type="text" size="small" @click="handleDelete(0,row.id)">删除</el-button>
<el-button type="text" size="small" @click="handleOption(1,row)">编辑</el-button>
</template>
</el-table-column>
......@@ -72,6 +76,7 @@
<!-- 导入弹出框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:data="{ 'curriculaId':queryParams.curriculaId }"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
:auto-upload="false" drag>
......@@ -91,39 +96,41 @@
<!-- 新增编辑弹出框 -->
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="achievementForm" label-width="70px" label-position="left">
<el-form :model="achievementForm" :rules="achievementRules" ref="achievementForm"
label-width="80px" label-position="left">
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="学号">
<el-select v-model="achievementForm.id" filterable placeholder="请选择学号" class="selectWidth">
<el-option v-for="(item,index) in studentID"
:key="index" :label="item" :value="item">
</el-option>
</el-select>
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="achievementForm.idCard" placeholder="请输入身份证号"
@change="searchStudentInfo" :disabled="nowType==1?true:false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学生姓名">
<el-input v-model="achievementForm.id" placeholder="请输入学生姓名"></el-input>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="achievementForm.studentName" placeholder="请输入学生姓名"
:disabled="nowType==1?true:false"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="班级">
<el-input v-model="achievementForm.id" placeholder="请输入班级"></el-input>
<el-form-item label="班级" prop="className">
<el-input v-model="achievementForm.className" placeholder="请输入班级"
:disabled="nowType==1?true:false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号">
<el-input v-model="achievementForm.id" placeholder="请输入身份证号"></el-input>
<el-form-item label="学号" prop="studentNumber">
<el-input v-model="achievementForm.studentNumber" placeholder="请输入学号"
:disabled="nowType==1?true:false"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="考试类型">
<el-select v-model="achievementForm.id" filterable placeholder="请选择考试类型" class="selectWidth">
<el-form-item label="考试类型" prop="examType">
<el-select v-model="achievementForm.examType" filterable placeholder="请选择考试类型"
class="selectWidth" :disabled="nowType==1?true:false">
<el-option v-for="(item,index) in dict.type.exam_type" :key="index"
:label="item.label" :value="item.value"></el-option>
</el-select>
......@@ -132,128 +139,63 @@
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="总成绩">
<el-input v-model="achievementForm.id" placeholder="请输入总成绩"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="语文">
<el-input v-model="achievementForm.id" placeholder="请输入语文"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="数学">
<el-input v-model="achievementForm.id" placeholder="请输入数学"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="英语">
<el-input v-model="achievementForm.id" placeholder="请输入英语"></el-input>
<el-form-item label="语文" prop="language">
<el-input v-model="achievementForm.language" placeholder="请输入语文"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
<el-form-item label="数学" prop="math">
<el-input v-model="achievementForm.math" placeholder="请输入数学"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="历史">
<el-input v-model="achievementForm.id" placeholder="请输入历史"></el-input>
<el-form-item label="英语" prop="english">
<el-input v-model="achievementForm.english" placeholder="请输入英语"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
<el-form-item label="历史" prop="history">
<el-input v-model="achievementForm.history" placeholder="请输入历史"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="地理">
<el-input v-model="achievementForm.id" placeholder="请输入地理"></el-input>
<el-form-item label="地理" prop="geography">
<el-input v-model="achievementForm.geography" placeholder="请输入地理"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
<el-form-item label="政治" prop="politics">
<el-input v-model="achievementForm.politics" placeholder="请输入政治"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="政治">
<el-input v-model="achievementForm.id" placeholder="请输入政治"></el-input>
<el-form-item label="生物" prop="biology">
<el-input v-model="achievementForm.biology" placeholder="请输入生物"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
<el-form-item label="物理" prop="physics">
<el-input v-model="achievementForm.physics" placeholder="请输入物理"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="生物">
<el-input v-model="achievementForm.id" placeholder="请输入生物"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="物理">
<el-input v-model="achievementForm.id" placeholder="请输入物理"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="化学">
<el-input v-model="achievementForm.id" placeholder="请输入化学"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学校排名">
<el-input v-model="achievementForm.id" placeholder="请输入学校排名"></el-input>
<el-form-item label="化学" prop="chemistry">
<el-input v-model="achievementForm.chemistry" placeholder="请输入化学"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button>
</span>
</el-dialog>
<!-- 新增编辑弹出框 -->
......@@ -262,7 +204,11 @@
<script>
import { getToken } from "@/utils/auth";
import { performanceList } from "../../../../../api/smartSchool/gradeWork/courseSelection/performance";
import {
addPerformance, deletePerformance, editPerformance,
getInfoByIdCard,
performanceList
} from "../../../../../api/smartSchool/gradeWork/courseSelection/performance";
import { classList } from "../../../../../api/smartSchool/gradeWork/courseSelection/taskPublishing";
export default {
......@@ -295,13 +241,74 @@ export default {
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/",
process.env.VUE_APP_BASE_API + "/curricula/studentScore/importData",
},
achievementForm:{ // 新增、编辑成绩数据
id:'',
studentId:'',
classId:'',
studentName:'',
studentNumber:'',
idCard:'',
className:'',
examType:'',
language:'',
math:'',
english:'',
politics:'',
geography:'',
history:'',
physics:'',
chemistry:'',
biology:'',
},
achievementRules:{
idCard: [
{ required: true, message: '请输入身份证号', trigger: 'blur' }
],
studentName: [
{ required: true, message: '请输入学生姓名', trigger: 'blur' }
],
className: [
{ required: true, message: '请输入学生班级', trigger: 'blur' }
],
studentNumber: [
{ required: true, message: '请输入学生学号', trigger: 'blur' }
],
examType: [
{ required: true, message: '请选择考试类型', trigger: 'change' }
],
language: [
{ required: true, message: '请输入语文成绩', trigger: 'blur' }
],
math: [
{ required: true, message: '请输入数学成绩', trigger: 'blur' }
],
english: [
{ required: true, message: '请输入英语成绩', trigger: 'blur' }
],
politics: [
{ required: true, message: '请输入政治成绩', trigger: 'blur' }
],
geography: [
{ required: true, message: '请输入地理成绩', trigger: 'blur' }
],
history: [
{ required: true, message: '请输入历史成绩', trigger: 'blur' }
],
physics: [
{ required: true, message: '请输入物理成绩', trigger: 'blur' }
],
chemistry: [
{ required: true, message: '请输入化学成绩', trigger: 'blur' }
],
biology: [
{ required: true, message: '请输入生物成绩', trigger: 'blur' }
],
},
studentID:[1,2,3,4,5], // 学号list
classList:[], // 班级list
nowType:0, //当前弹框类型 1编辑 0新增
deleteArr:[] //删除数据ID数组
}
},
mounted() {
......@@ -345,46 +352,151 @@ export default {
this.getList()
},
//新增成绩
//新增、编辑成绩
handleOption(type,item){
this.nowType = type
if(type == 0){
//新增
this.achievementForm = {
studentId:'',
classId:'',
studentName:'',
studentNumber:'',
idCard:'',
className:'',
examType:'',
language:'',
math:'',
english:'',
politics:'',
geography:'',
history:'',
physics:'',
chemistry:'',
biology:'',
}
}else {
//编辑
Object.keys(this.achievementForm).forEach(key => {
item[key] && (this.achievementForm[key] = item[key])
})
}
this.dialogVisible = true
},
//批量删除
handleDelete(){
this.$confirm('此操作将永久删除选中数据, 是否继续?', '提示', {
//表单提交数据
submitForm(){
let data = {}
this.$refs['achievementForm'].validate((valid) => {
if (valid) {
if(this.nowType == 0) {
data = {
studentId:this.achievementForm.studentId,
curriculaId:this.$route.query.id,
classId:this.achievementForm.classId,
examType:this.achievementForm.examType,
language:this.achievementForm.language,
math:this.achievementForm.math,
english:this.achievementForm.english,
politics:this.achievementForm.politics,
geography:this.achievementForm.geography,
history:this.achievementForm.history,
physics:this.achievementForm.physics,
chemistry:this.achievementForm.chemistry,
biology:this.achievementForm.biology,
}
//新增
addPerformance(data).then(res=>{
if(res.code == 200){
this.$message.success("成绩添加成功!");
setTimeout(()=>{
this.dialogVisible = false;
this.getList();
},2000)
}
})
}else {
//编辑
data = {
id:this.achievementForm.id,
studentId:this.achievementForm.studentId,
curriculaId:this.$route.query.id,
classId:this.achievementForm.classId,
examType:this.achievementForm.examType,
language:this.achievementForm.language,
math:this.achievementForm.math,
english:this.achievementForm.english,
politics:this.achievementForm.politics,
geography:this.achievementForm.geography,
history:this.achievementForm.history,
physics:this.achievementForm.physics,
chemistry:this.achievementForm.chemistry,
biology:this.achievementForm.biology,
}
editPerformance(data).then(res=>{
if(res.code == 200){
this.$message.success("成绩编辑成功!");
setTimeout(()=>{
this.dialogVisible = false;
this.getList();
},2000)
}
})
}
}
})
},
//根据身份证号获取学生信息
searchStudentInfo(){
const idCard = this.achievementForm.idCard
getInfoByIdCard(idCard).then(res=>{
if(res.code == 200){
Object.keys(this.achievementForm).forEach(key => {
res.data[key] && (this.achievementForm[key] = res.data[key])
})
}
})
},
//批量删除、删除
handleDelete(type,id){
let infoMessaage = type == 1?'此操作将永久删除选中数据, 是否继续?':'此操作将永久删除该数据, 是否继续?'
this.$confirm(infoMessaage, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$message({
type: 'success',
message: '删除成功!'
});
if(id){
this.deleteArr.push(id)
}
let deleteStr = this.deleteArr.toString()
deletePerformance(deleteStr).then(res=>{
if(res.code == 200){
this.$message.success('删除成功!');
this.getList()
}else {
this.$message.error("删除失败!")
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
this.$message.info('已取消删除!')
});
},
//table点击事件
handleSelectionChange(val) {
console.log("val",val)
this.isMultiple = val.length == 0?false:true
this.deleteArr = val.map(item=>{
return item.id
})
},
//下载模板
downloadTemplate() {
this.download(
"",
{},
"/curricula/studentScore/importTemplate",{},
`成绩管理数据导入_template_${new Date().getTime()}.xlsx`
);
},
......
......@@ -119,7 +119,7 @@ export default {
// 导出
handleExport() {
this.download('/curricula/student/exportCj', {
...this.queryParams
...this.queryForm
}, `学生春季选课信息_${new Date().getTime()}.xlsx`)
}
......
......@@ -45,7 +45,7 @@
<div class="task-buttons">
<el-button size="mini" icon="el-icon-edit" round @click="handleUpdate(task)">修改</el-button>
<el-button type="primary" size="small" round @click="performance(task.id,task.grade)">成绩管理</el-button>
<el-button type="success" size="small" round @click="courseSelectionsituation(task.id)">选课情况</el-button>
<el-button type="success" size="small" round @click="courseSelectionsituation(task.id,task.yxrs,task.zrs)">选课情况</el-button>
<el-button type="warning" size="small" round @click="springView(task.id,task.grade)">春季选课情况</el-button>
<el-button type="danger" size="small" round @click="artisticView()">艺体选课情况</el-button>
<el-button class="purpleBtn" size="small" round @click="summerViewing()">夏季选课情况</el-button>
......@@ -174,12 +174,12 @@ export default {
}
});
},
// 选课情况按钮
courseSelectionsituation(id) {
// 选课情况按钮 total总人数 choose已选人数
courseSelectionsituation(id,total,choose) {
this.$router.push({
path: "/gradeWork/courseSelection/courseSelectionsituation",
query: {
id
id,total,choose
}
});
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment