Commit 252c0441 by zhaopanyu

zpy 8.9

parent 2169d008
import request from "@/utils/request";
// 查看选课情况列表(班主任)
export function getStudentsList(query) {
return request({
url: "/curricula/student/listBzr",
method: "get",
params: query,
});
}
// 获取选课任务下拉框
export function getDetailInfo() {
return request({
url: "/curricula/variable/getGrade",
method: "get",
});
}
//获取班级下拉框
export function classList(data) {
return request({
url: `/curricula/variable/selectClass?grade=${data}`,
method: "get",
});
}
......@@ -27,6 +27,23 @@ export function courseSelectionSummerList(query) {
params: query,
});
}
// 夏季分班规则 获取每种课程选择人数
export function getsDivision(query) {
return request({
url: "/schoolDivision/getNumber",
method: "get",
params: query,
});
}
//分班规则
export function addDivision(data) {
return request({
url: "/schoolDivision/add",
method: "post",
data,
});
}
/** 艺体选课情况API **/
// 获取艺体选课列表
export function courseSelectionArtList(query) {
......@@ -36,3 +53,21 @@ export function courseSelectionArtList(query) {
params: query,
});
}
/** 夏季二次选课情况API **/
// 获取夏季二次选课列表
export function courseSelectionSummerListec(query) {
return request({
url: "/curricula/student/listXjEc",
method: "get",
params: query,
});
}
//二次分班规则
export function addDivisionec(data) {
return request({
url: "/schoolDivision/addEc",
method: "post",
data,
});
}
......@@ -2,30 +2,32 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="任务名称" prop="userName">
<el-select v-model="queryParams.taskName" placeholder="请选择任务名称">
<el-option v-for="(item, index) in taskNameList" :key="index" :label="item" :value="item"></el-option>
<el-form-item label="任务名称" prop="curriculaName">
<el-select v-model="queryParams.curriculaName" placeholder="请选择任务名称" @change="updateClassList">
<el-option v-for="(item, index) in taskNameList" :key="index" :label="item.curriculaName"
:value="item.curriculaId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="userName">
<el-select v-model="queryParams.class" placeholder="请选择班级">
<el-option v-for="(item, index) in classList" :key="index" :label="item" :value="item"></el-option>
<el-form-item label="班级" prop="classId">
<el-select v-model="queryParams.classId" placeholder="请选择学生班级" clearable>
<el-option v-for="(item, index) in classList" :key="index" :label="item.className"
:value="item.classId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="课程类型" prop="userName">
<el-select v-model="queryParams.courseType" placeholder="请选择课程类型">
<el-option v-for="(item, index) in courseTypeList" :key="index" :label="item" :value="item"></el-option>
<el-form-item label="课程类型" prop="courseType">
<el-select v-model="queryParams.courseType" placeholder="请选择课程类型" clearable>
<el-option v-for="(item, index) in dict.type.course_type" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="选课状态" prop="userName">
<el-select v-model="queryParams.selectionStatus" placeholder="请选择选课状态">
<el-option v-for="(item, index) in selectionStatusList" :key="index" :label="item"
:value="item"></el-option>
<el-form-item label="选课状态" prop="curriculaState">
<el-select v-model="queryParams.curriculaState" placeholder="请选择选课状态" clearable>
<el-option v-for="(item, index) in dict.type.curricula_state" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="学生姓名" prop="userName">
<el-input v-model="queryParams.student" placeholder="请输入学生姓名" clearable />
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
......@@ -34,18 +36,42 @@
</el-form-item>
</el-form>
<div class="flexBlock person">
<div>总人数:45 人</div>
<div>已选课:<span>40</span></div>
<div>总人数:{{ taskStats.total }}</div>
<div>已选课:<span>{{ taskStats.selected }}</span></div>
</div>
<el-table v-loading="loading" :data="courseSelectionData" stripe>
<el-table :data="courseSelectionData" stripe>
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="学生姓名" align="center" prop="deviceNum" />
<el-table-column label="身份证号" align="center" prop="teacherCode" />
<el-table-column label="学号" align="center" prop="userName" />
<el-table-column label="课程类型" align="center" prop="orgname" />
<el-table-column label="选课时间" align="center" prop="orgname" />
<el-table-column label="选课状态" align="center" prop="orgname" />
<el-table-column label="已选专业/课程" align="center" prop="orgname" />
<el-table-column label="学生姓名" align="center" prop="studentName" />
<el-table-column label="身份证号" align="center" prop="idCard" />
<el-table-column label="学号" align="center" prop="studentNumber" />
<el-table-column label="课程类型" align="center" prop="courseType">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.course_type, row.courseType) }}</div>
</template>
</el-table-column>
<el-table-column label="选课时间" align="center" prop="curriculaTime" />
<el-table-column label="选课状态" align="center" prop="curriculaState">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.curricula_state, row.curriculaState) }}</div>
</template>
</el-table-column>
<el-table-column label="已选专业/课程" align="center" prop="orgname">
<template slot-scope="{ row }">
<div v-if="row.courseType == 1">{{ selectDictLabels(dict.type.specialty, row.selectedMajor) }}</div>
<div v-else-if="row.courseType == 2">{{ selectDictLabel(dict.type.section_type, row.selectedCourse) }}
</div>
<div v-else-if="row.courseType == 3">
{{ selectDictLabel(dict.type.art_subject, row.selectedSubject) }}
{{ selectDictLabel(dict.type.section_type, row.selectedCourse) }}
</div>
</template>
</el-table-column>
<el-table-column label="所选科目" align="center" prop="selectedSubject">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.art_subject, row.selectedSubject) }}</div>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
......@@ -53,34 +79,147 @@
</template>
<script>
import { getStudentsList, getDetailInfo, classList } from "@/api/smartSchool/classAdviser/courseView";
export default {
dicts: ['curricula_state', 'course_type', 'specialty', 'section_type', 'art_subject'],
data() {
return {
taskStats: {},
grades: [],
queryParams: {
student: '',
courseType: '',
selectionStatus: '',
pageNum: 1,
pageSize: 10,
curriculaId: "",
curriculaName: "",
classId: '',
courseType: "",
curriculaState: "",
studentName: "",
},
courseTypeList: [1, 2, 3], //课程类型
selectionStatusList: [1, 2, 3], //选课状态
courseTypeList: [], //课程类型
selectionStatusList: [], //选课状态
courseSelectionData: [],
taskNameList: [1, 2, 3], //任务名称
classList: [1, 2, 3], //班级
taskNameList: [], //任务名称
classList: [], //班级
loading: false,
total: 0,
totalPerson: 0, // 总人数
choosePerson: 0 // 已选人数
}
},
mounted() {
this.getTaskNameList();
},
methods: {
//获取数据信息
getList() {
this.loading = true
let data = {
curriculaId: this.queryParams.curriculaName,
classId: this.queryParams.classId,
courseType: this.queryParams.courseType,
curriculaState: this.queryParams.curriculaState,
studentName: this.queryParams.studentName,
}
console.log('data', data);
getStudentsList(data).then(res => {
// console.log('this.grades', this.grades);
if (res.code == 200) {
this.courseSelectionData = res.rows;
console.log('res.rows', res.rows);
this.total = res.total
this.loading = false
}
})
},
//任务名称下拉框
getTaskNameList() {
getDetailInfo({ ...this.queryParams }).then(res => {
if (res.code == 200) {
this.taskNameList = res.data;
console.log('this.taskNameList', this.taskNameList);
this.taskNameList.zrs = res.data.zrs;
this.taskNameList.yxrs = res.data.yxrs;
console.log(this.taskNameList.zrs, this.taskNameList.xkrs);
// 获取最新一次的任务名称
const latestTask = this.taskNameList[0]; // 假设任务名称列表按照时间降序排列
// 设置默认选中的任务名称
this.queryParams.curriculaName = latestTask.curriculaId;
console.log("latestTask.curriculaId", latestTask.curriculaId);
this.getList(latestTask.curriculaId);
this.getClassList(latestTask.grade);
//人数总人数
this.calculateStats();
// console.log('this.taskNameList', this.taskNameList);
this.grades = res.data.map(item => {
return {
curriculaId: item.curriculaId,
grade: item.grade,
}
});
}
})
},
//下拉框数据联动
updateClassList() {
const selectedCurriculaId = this.queryParams.curriculaName;
const selectedTask = this.taskNameList.find(item => item.curriculaId === selectedCurriculaId);
const selectedGrade = selectedTask.grade;
this.getClassList(selectedGrade);
this.calculateStats();
},
//任务名称和人数数据联动
calculateStats() {
const selectedTask = this.taskNameList.find(item => item.curriculaId === this.queryParams.curriculaName);
this.taskStats.total = selectedTask.zrs;
this.taskStats.selected = selectedTask.yxrs;
},
//班级下拉框
getClassList(grades) {
classList(grades).then(res => {
if (res.code === 200) {
// console.log(this.grades);
this.classList = res.data;
}
});
},
//重置
resetQuery() { },
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10
};
this.taskStats.total = 0;
this.taskStats.selected = 0;
this.resetForm("queryForm");
this.getList();
},
//导出
exportRecord() { }
exportRecord() {
console.log('this.queryParams.curriculaName', this.queryParams.curriculaName);
let data = {
curriculaId: this.queryParams.curriculaName,
classId: this.queryParams.classId,
courseType: this.queryParams.courseType,
curriculaState: this.queryParams.curriculaState,
studentName: this.queryParams.studentName,
}
console.log('data', data);
this.download(
"curricula/student/exportBzr",
{ ...data },
`学生选课信息_${new Date().getTime()}.xlsx`
);
},
}
}
......
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="70px">
<el-form-item prop="studentsName" label="学生姓名">
<el-input clearable v-model="queryForm.studentsName" placeholder="学生姓名"
@keyup.enter.native="handleQuery"></el-input>
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item prop="studentName" label="学生姓名">
<el-input clearable v-model="queryForm.studentName" placeholder="学生姓名"></el-input>
</el-form-item>
<el-form-item prop="classId" label="班级">
<el-select v-model="queryForm.classId" placeholder="班级" clearable>
<el-option v-for="item in classList" :key="item.id" :label="item.className" :value="item.id">
</el-option>
<el-option v-for="(item, index) in classList" :key="index" :label="item.className"
:value="item.classId"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="majorId" label="已选课程">
<el-select v-model="queryForm.majorId" placeholder="已选课程" clearable>
<el-option v-for="item in majorList" :key="item.id" :label="item.majorName" :value="item.id">
<el-form-item prop="selectedCourse" label="已选课程">
<el-select v-model="queryForm.selectedCourse" placeholder="请选择学生已选专业" clearable>
<el-option v-for="(item, index) in dict.type.section_type" :key="index" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button icon="el-icon-user" size="mini" @click="shiftRules">分班规则</el-button>
<el-button icon="el-icon-user" size="mini" :disabled="hasclassName" @click="shiftRules">分班规则</el-button>
<el-button type="warning" icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-form-item>
</el-form>
<!-- 表单信息 -->
<el-table border v-loading="loading" :row-style="{ height: '35px' }" :cell-style="{ padding: '0' }"
:data="studentsList" style="font-size: 14px" stripe>
<el-table-column label="学生姓名" prop="xsxm" align="center" width="150px" />
<el-table-column label="学号" prop="xh" align="center" />
<el-table-column label="身份证号" prop="sfzh" width="300px" align="center" />
<el-table-column label="成绩" prop="cj" align="center" />
<el-table-column label="已选课程" prop="yxkc" align="center" />
<el-table-column label="所分班级" prop="sfbj" align="center" />
<el-table-column label="班级" prop="className" align="center" width="150px" />
<el-table-column label="学生姓名" prop="studentName" align="center" width="150px" />
<el-table-column label="学号" prop="studentNumber" align="center" />
<el-table-column label="身份证号" prop="idCard" width="300px" align="center" />
<el-table-column label="成绩" prop="courseScore" align="center" />
<el-table-column label="已选课程" prop="selectedCourse" align="center">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.section_type, row.selectedCourse) }}</div>
</template>
</el-table-column>
<el-table-column label="所分班级" prop="divisionClassesName" align="center" />
</el-table>
<!-- 分班规则弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<div>
<el-row>
<el-col :span="12">
<el-form-item label="分班规则" prop="fbgz">
<el-radio-group v-model="postForm.fbgz">
<el-col :span="24">
<el-form-item label="分班规则" prop="divisionClassesRule">
<el-radio-group v-model="form.divisionClassesRule">
<el-radio label='1'>平行分班</el-radio>
<el-radio label='0'>分层分班</el-radio>
<el-radio label='2'>分层分班</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- :label="` ${postForm.yxkc}`" -->
<el-col :span="8">
<el-form-item prop="yxkc" label="史政地" :style="{ width: '100%' }">
<el-input v-model="postForm.classCount" placeholder="班级数量"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-input v-model="postForm.studentCount" placeholder="每班人数"></el-input>
</el-col>
</el-row>
<el-row>
<!-- :label="` ${postForm.yxkc}`" -->
<el-col :span="8">
<el-form-item prop="yxkc" label="物理化" :style="{ width: '100%' }">
<el-input v-model="postForm.classCount" placeholder="班级数量"></el-input>
<el-form-item v-for="course in selectedCourse" :key="course.id"
:label="`${course.courseName} (${course.coursePeopleNumber})`">
<div class="input-wrapper">
<el-input v-model="course.classesNumber" placeholder="班级数量"></el-input>
<el-input v-model="course.peopleNumber" placeholder="每班人数"></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span="5">
<el-input v-model="postForm.studentCount" placeholder="每班人数"></el-input>
</el-col>
</el-row>
</div>
</el-form>
......@@ -88,83 +80,49 @@
</template>
<script>
import {
getksBudgetList,//查询科室预算填报项目明细列表
depBudget//查看详情
} from '@/api/smartSchool/logisticsManage/departmentBudgetview'
import { classList } from "../../../../../api/smartSchool/gradeWork/courseSelection/taskPublishing";
import { courseSelectionSummerListec, addDivisionec, getsDivision } from "../../../../../api/smartSchool/gradeWork/courseSelection/courseSelection";
export default {
name: "springView",
dicts: ['section_type'],
data() {
return {
// 已选课程
yxkc: "",
//人数
rs: '',
majorList: [],
selectedCourse: [],
classList: [],
// 查询表单
queryForm: {
divisionClassesRule: '',
curriculaId: '',
studentsName: '',
classId: '',
majorId: '',
selectedCourse: '',
pageNum: 1,
pageSize: 10
},
form: {
rwfb: '',
sj: '',
jb: ''
curriculaId: "",
course: "",
courseName: "",
coursePeopleNumber: "",
classesNumber: "",
peopleNumber: "",
divisionClassesRule: "",
divisionClassesFrequency: '1',
},
// 遮罩层
loading: false,
total: 0,
// 信息列表
studentsList: [
{
id: 1,
bj: '一班',
xsxm: '张三',
xh: '2018001',
sfzh: '123456789012345678',
cj: '500',
yxkc: '物理化',
sfbj: '物理化一班'
},
{
id: 2,
bj: '一班',
xsxm: '张三',
xh: '2018001',
sfzh: '123456789012345678',
cj: '500',
yxkc: '物理化',
sfbj: '物理化一班'
},
{
id: 3,
bj: '一班',
xsxm: '张三',
xh: '2018001',
sfzh: '123456789012345678',
cj: '500',
yxkc: '物理化',
sfbj: '物理化一班'
}
],
studentsList: [],
// 新增/编辑表单
postForm: {
},
fbgz: '',
// 查看表格
lookTable: [],
options: [],
// 是否显示弹出层
open: false,
// 查看弹窗
openLook: false,
// 校验规则
rules: {
......@@ -173,63 +131,89 @@ export default {
title: '',
// 是否禁用删除按钮--项目明细
multiple: false,
// 选中数据的值数组
selectItems: [],
// 科室列表
deptOptions: [],
}
},
computed: {
hasclassName() {
return this.studentsList.find(item => item.divisionClassesName !== null) !== undefined;
}
},
created() {
// this.getList();
this.getList();
this.getClassList();
},
methods: {
// 获取列表
getList() {
getksBudgetList(this.queryForm).then(response => {
this.loading = false;
this.studentsList = response.rows;
console.log(111, response.rows);
this.total = response.total;
}).catch(err => {
this.queryForm.curriculaId = this.$route.query.id;
courseSelectionSummerListec(this.queryForm).then(res => {
if (res.code == 200) {
this.studentsList = res.rows;
console.log('this.studentsList', this.studentsList);
this.total = res.total;
this.loading = false;
}
})
},
//获取班级下拉框数据
getClassList() {
let grade = this.$route.query.grade;
classList(grade).then(res => {
if (res.code == 200) {
this.classList = res.data;
}
})
},
// 分班规则
shiftRules() {
this.reset();
this.open = true;
this.getCourseSelection();
this.title = "分班规则";
},
// 搜索按钮
handleQuery() {
this.getList();
//获取每种课程选择人数
getCourseSelection() {
getsDivision({ curriculaId: this.queryForm.curriculaId }).then(res => {
if (res.code == 200) {
this.selectedCourse = res.data.map(item => {
return {
curriculaId: this.queryForm.curriculaId,
course: item.selectedCourse,
courseName: item.selectedCourseName,
coursePeopleNumber: item.peopleNumber,
classesNumber: '',
peopleNumber: '',
divisionClassesRule: '',
divisionClassesFrequency: '2'
}
});
// console.log('this.selectedCourse', this.selectedCourse);
}
})
},
// 重置按钮
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10
};
this.resetForm("queryForm");
this.handleQuery();
this.getList();
},
// 重置
reset() {
this.postForm = {
curriculaId: '',
}
this.resetForm('postForm');
},
......@@ -237,34 +221,55 @@ export default {
// 取消按钮
cancel() {
this.open = false;
this.openLook = false;
this.reset();
this.resetForm('postForm');
},
// 导出
handleExport() {
this.download('/departmentBudgetProjectmx/export', {
...this.queryParams
}, `科室预算查看_${Date.now()}.xlsx`)
this.download('/curricula/student/exportXjEc', {
...this.queryForm,
}, `学生夏季选课查看_${Date.now()}.xlsx`)
},
// 分班按钮
submitForm() {
this.$refs.form.validate((valid) => {
if (valid) {
submitRepairs(this.form)
.then((response) => {
this.$modal.msgSuccess("反馈成功");
this.openfk = false;
this.formfk.maintainResult = '';
this.$confirm('确定要分班吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let that = this;
for (let i = 0; i < this.selectedCourse.length; i++) {
that.selectedCourse[i].divisionClassesRule = that.form.divisionClassesRule;
const course = this.selectedCourse[i];
console.log('course.divisionClassesRule:', course.divisionClassesRule);
console.log('course.classesNumber:', course.classesNumber);
console.log('course.peopleNumber:', course.peopleNumber);
if (course.divisionClassesRule === '' || course.classesNumber === '' || course.peopleNumber === '') {
this.$message.error("分班规则、班级数量和每班人数不能为空");
return;
}
let totalPeopleNumber = course.classesNumber * course.peopleNumber;
if (totalPeopleNumber > this.selectedCourse.length) {
this.$message.error("班级数量和每班人数相乘不能超过总人数");
return;
}
}
console.log('this.selectedCourse', this.selectedCourse);
addDivisionec(this.selectedCourse).then((response) => {
console.log('this.selectedCourse', this.selectedCourse);
this.$modal.msgSuccess("分班成功");
this.open = false;
this.getList();
}).catch(error => {
})
.catch((error) => {
// 处理错误
});
} else {
return false;
}
});
})
},
......@@ -289,8 +294,16 @@ export default {
text-align: center;
}
.el-col {
margin-right: 10px;
}
.input-wrapper {
display: flex;
}
.input-wrapper el-input {
margin-right: 10px;
/* 可调整元素之间的间距 */
}
</style>
......@@ -20,7 +20,7 @@
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button icon="el-icon-user" size="mini" @click="shiftRules">分班规则</el-button>
<el-button icon="el-icon-user" size="mini" :disabled="hasclassName" @click="shiftRules">分班规则</el-button>
<el-button type="warning" icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-form-item>
</el-form>
......@@ -42,43 +42,27 @@
</el-table>
<!-- 分班规则弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<div>
<el-row>
<el-col :span="12">
<el-form-item label="分班规则" prop="fbgz">
<el-radio-group v-model="postForm.fbgz">
<el-col :span="24">
<el-form-item label="分班规则" prop="divisionClassesRule">
<el-radio-group v-model="form.divisionClassesRule">
<el-radio label='1'>平行分班</el-radio>
<el-radio label='0'>分层分班</el-radio>
<el-radio label='2'>分层分班</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>
<el-col :span="8" v-for="course in selectedCourse" :key="course">
<el-form-item :prop="`yxkc${course}`" :label="`selectedCourse ${course}`"
:style="{ width: '100%' }">
<el-input v-model="postForm[`classCount${course}`]" placeholder="班级数量"></el-input>
</el-form-item>
</el-col>
<el-col :span="5" v-for="course in selectedCourse" :key="course">
<el-input v-model="postForm[`studentCount${course}`]" placeholder="每班人数"></el-input>
</el-col>
</el-row> -->
<!-- <div> -->
<!-- <el-col :span="8" v-for="course in selectedCourse" :key="course.id"> -->
<!-- 标签文本 -->
<!-- <el-form-item :prop="course.id" :label="course.name" :style="{ width: '100%' }"> -->
<!-- 第一个输入框 -->
<!-- <el-input v-model="postForm[course.id].classCount" placeholder="班级数量"></el-input> -->
<!-- </el-form-item> -->
<!-- 第二个输入框 -->
<!-- <el-input v-model="postForm[course.id].studentCount" placeholder="每班人数"></el-input> -->
<!-- </el-col> -->
<!-- </div> -->
<el-form-item v-for="course in selectedCourse" :key="course.id"
:label="`${course.courseName} (${course.coursePeopleNumber})`">
<div class="input-wrapper">
<el-input v-model="course.classesNumber" placeholder="班级数量"></el-input>
<el-input v-model="course.peopleNumber" placeholder="每班人数"></el-input>
</div>
</el-form-item>
</div>
</el-form>
......@@ -97,36 +81,18 @@
<script>
import { classList } from "../../../../../api/smartSchool/gradeWork/courseSelection/taskPublishing";
import { courseSelectionSummerList } from "../../../../../api/smartSchool/gradeWork/courseSelection/courseSelection";
import { courseSelectionSummerList, addDivision, getsDivision } from "../../../../../api/smartSchool/gradeWork/courseSelection/courseSelection";
export default {
name: "springView",
dicts: ['section_type'],
data() {
return {
// selectedCourse: [
// {
// course: {
// id: 1,
// name: '语文',
// classCount: '22',
// studentCount: '12'
// },
// course: {
// id: 2,
// name: '语文'
// },
// course: {
// id: 3,
// name: '语文'
// },
// }
// ],
selectedCourse: [],
classList: [],
// 查询表单
queryForm: {
divisionClassesRule: '',
curriculaId: '',
studentsName: '',
classId: '',
......@@ -135,7 +101,14 @@ export default {
pageSize: 10
},
form: {
curriculaId: "",
course: "",
courseName: "",
coursePeopleNumber: "",
classesNumber: "",
peopleNumber: "",
divisionClassesRule: "",
divisionClassesFrequency: '1',
},
// 遮罩层
loading: false,
......@@ -161,18 +134,25 @@ export default {
}
},
computed: {
hasclassName() {
return this.studentsList.find(item => item.divisionClassesName !== null) !== undefined;
}
},
created() {
this.getList();
this.getClassList();
},
methods: {
// 获取列表
getList() {
this.queryForm.curriculaId = this.$route.query.id;
courseSelectionSummerList(this.queryForm).then(res => {
if (res.code == 200) {
this.studentsList = res.rows;
console.log('this.studentsList', this.studentsList);
this.total = res.total;
this.loading = false;
}
......@@ -193,9 +173,31 @@ export default {
shiftRules() {
this.reset();
this.open = true;
this.getCourseSelection();
this.title = "分班规则";
},
//获取每种课程选择人数
getCourseSelection() {
getsDivision({ curriculaId: this.queryForm.curriculaId }).then(res => {
if (res.code == 200) {
this.selectedCourse = res.data.map(item => {
return {
curriculaId: this.queryForm.curriculaId,
course: item.selectedCourse,
courseName: item.selectedCourseName,
coursePeopleNumber: item.peopleNumber,
classesNumber: '',
peopleNumber: '',
divisionClassesRule: '',
divisionClassesFrequency: '1'
}
});
// console.log('this.selectedCourse', this.selectedCourse);
}
})
},
// 重置按钮
resetQuery() {
......@@ -229,22 +231,43 @@ export default {
},
// 分班按钮
submitForm() {
this.$refs.form.validate((valid) => {
if (valid) {
submitRepairs(this.form)
.then((response) => {
this.$confirm('确定要分班吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let that = this;
for (let i = 0; i < this.selectedCourse.length; i++) {
that.selectedCourse[i].divisionClassesRule = that.form.divisionClassesRule;
const course = this.selectedCourse[i];
console.log('course.divisionClassesRule:', course.divisionClassesRule);
console.log('course.classesNumber:', course.classesNumber);
console.log('course.peopleNumber:', course.peopleNumber);
if (course.divisionClassesRule === '' || course.classesNumber === '' || course.peopleNumber === '') {
this.$message.error("分班规则、班级数量和每班人数不能为空");
return;
}
let totalPeopleNumber = course.classesNumber * course.peopleNumber;
if (totalPeopleNumber > this.selectedCourse.length) {
this.$message.error("班级数量和每班人数相乘不能超过总人数");
return;
}
}
console.log('this.selectedCourse', this.selectedCourse);
addDivision(this.selectedCourse).then((response) => {
console.log('this.selectedCourse', this.selectedCourse);
this.$modal.msgSuccess("分班成功");
this.openfk = false;
this.formfk.maintainResult = '';
this.open = false;
this.getList();
}).catch(error => {
})
.catch((error) => {
// 处理错误
});
} else {
return false;
}
});
})
},
......@@ -272,4 +295,13 @@ export default {
.el-col {
margin-right: 10px;
}
.input-wrapper {
display: flex;
}
.input-wrapper el-input {
margin-right: 10px;
/* 可调整元素之间的间距 */
}
</style>
......@@ -52,7 +52,8 @@
@click="artisticView(task.id, task.grade)">艺体选课情况</el-button>
<el-button class="purpleBtn" size="small" round
@click="summerViewing(task.id, task.grade)">夏季选课情况</el-button>
<el-button class="rowBtn" size="small" round @click="secondaryDivision()">夏季二次选课</el-button>
<el-button class="rowBtn" size="small" round
@click="secondaryDivision(task.id, task.grade)">夏季二次选课</el-button>
</div>
</div>
</div>
......@@ -213,11 +214,12 @@ export default {
});
},
//夏季二次选课按钮
secondaryDivision() {
secondaryDivision(id, grade) {
this.$router.push({
path: "/gradeWork/courseSelection/secondaryDivision",
query: {
// id: this.task.id
id,
grade
}
});
},
......
......@@ -72,5 +72,4 @@ export default {
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>
>
\ No newline at end of file
......@@ -78,32 +78,32 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="入库类型:" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入自编码" clearable
<el-input v-model="form.teacherName" placeholder="请输入入库类型" clearable
@click.native="selectTeacher"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地点:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备名称" clearable></el-input>
<el-input v-model="form.equipmentName" placeholder="请输入地点" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="入库时间:" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入自编码" clearable></el-input>
<el-input v-model="form.teacherName" placeholder="请输入库时间" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属类型:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备名称" clearable></el-input>
<el-input v-model="form.equipmentName" placeholder="请输入归属类型" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="设备名称:" prop="equipmentModel">
<el-input v-model="form.equipmentModel" placeholder="请输入型号" clearable></el-input>
<el-input v-model="form.equipmentModel" placeholder="请输入设备名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -120,7 +120,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="型号:" prop="equipmentType">
<el-input v-model="form.equipmentType" placeholder="请输入分类编码" clearable></el-input>
<el-input v-model="form.equipmentType" placeholder="请输入型号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -135,12 +135,12 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="规格:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入归属类型" clearable></el-input>
<el-input v-model="form.equipmentBelongType" placeholder="请输入规格" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格(元):" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入价格" clearable></el-input>
<el-input v-model="form.equipmentPrice" placeholder="请输入价格(元)" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -149,24 +149,24 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="分类编码:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入归属类型" clearable></el-input>
<el-input v-model="form.equipmentBelongType" placeholder="请输入分类编码" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="效用年限(年):" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入价格" clearable></el-input>
<el-input v-model="form.equipmentPrice" placeholder="请输入效用年限(年)" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="单位:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入归属类型" clearable></el-input>
<el-input v-model="form.equipmentBelongType" placeholder="请输入单位" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用人:" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入价格" clearable></el-input>
<el-input v-model="form.equipmentPrice" placeholder="请输入使用人" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......
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