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