Commit def45b0b by zhaopanyu

zpy 11/8

parent 46e7b51b
...@@ -86,3 +86,10 @@ export function listDisciplinetg(query) { ...@@ -86,3 +86,10 @@ export function listDisciplinetg(query) {
params: query, params: query,
}); });
} }
//获取教师下拉框
export function getTeacher() {
return request({
url: "/schoolLabCompetition/getTeacher",
method: "get",
});
}
...@@ -2,89 +2,125 @@ ...@@ -2,89 +2,125 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="学年"> <el-form-item label="学年">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="queryForm.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="学期"> <el-form-item label="学期">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.semester" placeholder="请选择" clearable style="width: 100%;">
</el-form-item> <el-option v-for="dict in dict.type.semester" :key="dict.value" :label="dict.label"
<el-form-item label="届别" prop="level">
<el-select v-model="queryForm.sub" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label"
:value="dict.value" /> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="年级" prop="level"> <el-form-item label="届别" prop="gradeYear">
<el-select v-model="queryForm.sub" placeholder="请选择" clearable style="width: 100%;"> <el-input v-model="queryForm.gradeYear" placeholder="请输入" clearable></el-input>
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label" </el-form-item>
:value="dict.value" /> <el-form-item label="年级" prop="gradeId">
<el-select v-model="queryForm.gradeId" placeholder="请选择" clearable :style="{ width: '100%' }"
@change="handleChange">
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.gradeId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="班级" prop="level"> <el-form-item label="班级" prop="classId">
<el-select v-model="queryForm.sub" placeholder="请选择" clearable style="width: 100%;"> <el-select v-model="queryForm.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label" <el-option v-for="(item, index) in classList" :key="index" :label="item.classValue"
:value="dict.value" /> :value="item.classId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="班级类型"> <el-form-item label="班级类型">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable> <el-select v-model="queryForm.classType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName" <el-option v-for="dict in dict.type.grade_type" :key="dict.value" :label="dict.label"
:value="item.id"></el-option> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="姓名"> <el-form-item label="姓名">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable> <el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="性别">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable> <el-select v-model="queryForm.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName" <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="item.id"></el-option> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="身份证号"> <el-form-item label="身份证号">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="queryForm.idCard" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="班主任"> <el-form-item label="班主任">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="queryForm.classTeacher" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="违纪类别"> <el-form-item label="违纪类别">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="违纪次数"> <el-form-item label="违纪次数">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="处分结果"> <el-form-item label="处分结果">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="处分时间"> <el-form-item label="处分时间">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-date-picker v-model="queryForm.punishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable>
</el-date-picker>
</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>
<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-form-item> </el-form-item>
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-row>
</el-form> </el-form>
<el-table :data="tableData" :default-sort="{ prop: 'time', order: 'ascending' }" border style="width: 100%"> <el-table :data="tableData" :default-sort="{ prop: 'time', order: 'ascending' }" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" /> <el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="grade" sortable label="学年" /> <el-table-column align="center" prop="schoolYear" sortable label="学年" />
<el-table-column align="center" prop="grade" sortable label="学期" /> <el-table-column align="center" prop="semester" sortable label="学期">
<el-table-column align="center" prop="grade" sortable label="届别" /> <template slot-scope="{ row }">
<el-table-column align="center" prop="grade" sortable label="年级" /> <div>{{ selectDictLabel(dict.type.semester, row.semester) }}</div>
<el-table-column align="center" prop="grade" sortable label="班级" /> </template>
<el-table-column align="center" prop="grade" sortable label="班级类型" /> </el-table-column>
<el-table-column align="center" prop="grade" sortable label="姓名" /> <el-table-column align="center" prop="gradeYear" sortable label="届别" />
<el-table-column align="center" prop="grade" sortable label="性别" /> <el-table-column align="center" prop="gradeName" sortable label="年级" />
<el-table-column align="center" prop="grade" sortable label="身份证号" /> <el-table-column align="center" prop="className" sortable label="班级" />
<el-table-column align="center" prop="grade" sortable label="班主任" /> <el-table-column align="center" prop="classType" sortable label="班级类型" width="100">
<el-table-column align="center" prop="grade" sortable label="级部主任" /> <template slot-scope="{ row }">
<el-table-column align="center" prop="grade" sortable label="违纪类别" /> <div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
<el-table-column align="center" prop="grade" sortable label="违纪次数" /> </template>
<el-table-column align="center" prop="grade" sortable label="处分结果" /> </el-table-column>
<el-table-column align="center" prop="time" sortable label="处分时间" /> <el-table-column align="center" prop="name" sortable label="姓名" />
<el-table-column align="center" prop="grade" sortable label="备注" /> <el-table-column align="center" prop="sex" sortable label="性别">
<el-table-column align="center" fixed="right" label="操作" width="150"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.sys_user_sex, row.sex) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="punishResult" sortable label="处分结果" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.punish_result, row.punishResult) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="punishTime" sortable label="处分时间" width="100" />
<el-table-column align="center" prop="remark" sortable label="备注" />
<el-table-column align="center" fixed="right" label="操作" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button> <el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template> </template>
...@@ -93,23 +129,26 @@ ...@@ -93,23 +129,26 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 查看 --> <!-- 查看-->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px"> <el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px">
<el-form :model="form" ref="form" size="small" label-width="120px"> <el-form :model="form" ref="form" size="small" label-width="120px" :disabled="isEdit" :rules="rules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学年"> <el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学期"> <el-form-item label="学期" prop="semester">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.semester" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.semester" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="届别"> <el-form-item label="届别" prop="gradeYear">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.gradeYear" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -118,84 +157,115 @@ ...@@ -118,84 +157,115 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="年级" prop="startTime"> <el-form-item label="年级" prop="gradeId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.gradeId" placeholder="请选择" clearable :style="{ width: '100%' }"
@change="getClasslist(form.gradeId)">
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.gradeId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班级" prop="endTime"> <el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.className" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="(item, index) in classList" :key="index" :label="item.classValue"
:value="item.classId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班级类型" prop="endTime"> <el-form-item label="班级类型" prop="classType">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.classType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.grade_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="姓名" prop="startTime"> <el-form-item label="姓名" prop="name">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.name" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="性别" prop="endTime"> <el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="身份证号" prop="endTime"> <el-form-item label="性别" prop="sex">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班主任" prop="startTime"> <el-form-item label="班主任" prop="classTeacherId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.classTeacherId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="级部主任" prop="endTime"> <el-form-item label="级部主任" prop="gradeDirectorId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.gradeDirectorId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="违纪类别" prop="endTime"> <el-form-item label="违纪类别" prop="violateType">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="违纪次数" prop="startTime"> <el-form-item label="违纪次数" prop="violateNum">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="处分结果" prop="endTime"> <el-form-item label="处分结果" prop="punishResult">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="处分时间" prop="endTime"> <el-form-item label="处分时间" prop="punishTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" clearable :style="{ width: '100%' }">
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="endTime"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;"> <div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm"> 确 定</el-button> <el-button @click="cancelDialog">取 消</el-button>
<el-button @click="cancelDialog"> 取 消 </el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -204,29 +274,48 @@ ...@@ -204,29 +274,48 @@
<script> <script>
// import { import {
// getList, listDiscipline,// 查看学生违纪列表(管理员)
// getSemester, listDisciplinegr,//查看学生违纪列表(个人)
// getTeacherxq, getDiscipline,//查看详情
// getGradelist addDiscipline,// 新增学生违纪(管理员)
// } from '@/api/smartSchool/laboratoryManagement/leadlaboratoryCompletion' addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default { export default {
name: 'index', name: 'index',
dicts: ['experiment_classify', 'lab_sub'], dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'],
data() { data() {
return { return {
queryForm: { queryForm: {
pageNum: 1, schoolYear: "",
pageSize: 10, semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
}, },
isEdit: false,
gradeLists: [], gradeLists: [],
//表格数据 //表格数据
tableData: [ tableData: [
{ grade: '111', time: '2023-12-12' },
{ grade: '111', time: '2023-12-13' },
{ grade: '111', time: '2023-12-14' },
{ grade: '111', time: '2023-12-15' },
], ],
//查看弹窗表格 //查看弹窗表格
...@@ -234,38 +323,198 @@ export default { ...@@ -234,38 +323,198 @@ export default {
form: { form: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacherId: "",
gradeDirectorId: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
}, },
//弹窗 //弹窗
dialogTableVisible: false, dialogTableVisible: false,
total: 0, total: 0,
gradeList: [],
classList: [],
deptOptions: [],
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
gradeYear: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
sex: [
{ required: true, message: "性别不能为空", trigger: "change" }
],
gradeId: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
classId: [
{ required: true, message: "班级不能为空", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "change" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
classTeacherId: [
{ required: true, message: "班主任不能为空", trigger: "change" }
],
gradeDirectorId: [
{ required: true, message: "级部主任不能为空", trigger: "change" }
],
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
punishTime: [
{ required: true, message: "处分时间不能为空", trigger: "change" }
],
},
} }
}, },
created() { created() {
this.getList(); this.getList();
this.getGradelist();
this.getTeacher();
}, },
methods: { methods: {
handleAdd() { handleAdd() {
this.reset();
this.isEdit = false;
this.dialogTableVisible = true; this.dialogTableVisible = true;
}, },
handleEdit() { handleIdCardBlur() {
this.form.sex = this.getGenderFromIdCard(this.form.idCard); // 调用获取性别的方法
},
getGenderFromIdCard(idCard) {
const lastDigit = parseInt(idCard.charAt(idCard.length - 2)); // 获取倒数第二位数字
return lastDigit % 2 === 0 ? '女' : '男'; // 奇数表示男性,偶数表示女性
},
//修改
handleEdit(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.isEdit = false;
this.dialogTableVisible = true; this.dialogTableVisible = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.dialogTableVisible = true; ``
}).catch(error => {
this.$modal.closeLoading();
})
}, },
cancelDialog() { cancelDialog() {
this.dialogTableVisible = false; this.dialogTableVisible = false;
}, },
reset() {
this.form = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
gradeDirector: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
},
this.resetForm('form')
},
//审核 //审核
handleExamine() { handleExamine(row) {
console.log(row, 'row');
this.$confirm('确认要提交申请?', '提示', {
confirmButtonText: '同意',
cancelButtonText: '不同意',
confirmButtonClass: 'custom-blue-button',
cancelButtonClass: 'custom-blue-button'
})
.then(() => {
// 弹出确认框,用户点击同意后执行的逻辑
const params = {
id: row.id,
auditState: '2' // 表示同意
};
subApply(params).then(res => {
if (res.code == 200) {
this.$message({
type: 'success',
message: '提交成功!'
});
this.getList();
}
});
})
.catch(() => {
// 用户点击不同意或者取消后执行的逻辑
const params = {
id: row.id,
auditState: '3' // 表示不同意
};
subApply(params).then(res => {
if (res.code == 200) {
this.$message({
type: 'info',
message: '已取消审核'
});
}
});
});
}, },
// 删除 // 删除
handleDelete(row) { handleDelete(row) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => { this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true; this.loading = true;
return delArea(row.id); return delDiscipline(row.id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.loading = false; this.loading = false;
...@@ -277,8 +526,7 @@ export default { ...@@ -277,8 +526,7 @@ export default {
getList() { getList() {
listDisciplinetg(this.queryForm)
getList(this.queryForm)
.then(response => { .then(response => {
this.tableData = response.rows; this.tableData = response.rows;
console.log('response', response); console.log('response', response);
...@@ -290,28 +538,84 @@ export default { ...@@ -290,28 +538,84 @@ export default {
console.log(error); console.log(error);
}); });
}, },
//查询级部搜索 //获取教师下拉框
getTeacher() {
getTeacher().then(response => {
this.deptOptions = response.data;
console.log(this.deptOptions, ' this.deptOptions ');
});
},
//确定按钮
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateDiscipline(this.form).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('修改成功')
this.dialogTableVisible = false
this.getList()
}
}).catch(() => {
this.$modal.msgError("修改失败");
});
} else {
addDiscipline(this.form).then(response => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess('新增成功')
this.dialogTableVisible = false
this.getList()
}).catch(() => {
this.$modal.msgError("新增失败");
});
}
}
});
},
// 获取最新三个年级
getGradelist() { getGradelist() {
getGradelist().then(response => { getGrade().then(response => {
this.loading = false; this.loading = false;
this.gradeLists = response.data; this.gradeList = response.data;
this.getClasslist()
console.log("this.gradeList", this.gradeList); console.log("this.gradeList", this.gradeList);
}); });
}, },
handleChange(selectedGrade) {
console.log(selectedGrade, 'selectedGrade');
this.getClasslist(selectedGrade); // 传递选择的年级id作为参数
},
// 根据年级获取班级
getClasslist(selectedGrade) {
const query = { gradeId: selectedGrade }; // 创建包含gradeId的对象
getClassList(query).then(response => {
this.loading = false;
this.classList = response.data;
console.log("this.classList", this.classList);
});
},
resetQuery() { resetQuery() {
this.queryForm = { this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "", schoolYear: "",
semester: "", semester: "",
sub: "", gradeYear: "",
grade: "", gradeId: "",
experimentName: "", classId: "",
}; classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList(); this.getList();
}, },
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</el-form-item> </el-form-item>
<el-form-item label="班级" prop="classId"> <el-form-item label="班级" prop="classId">
<el-select v-model="queryForm.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }"> <el-select v-model="queryForm.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="(item, index) in classList" :key="index" :label="item.className" <el-option v-for="(item, index) in classList" :key="index" :label="item.classValue"
:value="item.classId"></el-option> :value="item.classId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="gradeYear" sortable label="届别" /> <el-table-column align="center" prop="gradeYear" sortable label="届别" />
<el-table-column align="center" prop="gradeName" sortable label="年级" /> <el-table-column align="center" prop="gradeName" sortable label="年级" />
<el-table-column align="center" prop="className " sortable label="班级" /> <el-table-column align="center" prop="className" sortable label="班级" />
<el-table-column align="center" prop="classType" sortable label="班级类型" width="100"> <el-table-column align="center" prop="classType" sortable label="班级类型" width="100">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div> <div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
...@@ -120,12 +120,23 @@ ...@@ -120,12 +120,23 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="punishTime" sortable label="处分时间" width="100" /> <el-table-column align="center" prop="punishTime" sortable label="处分时间" width="100" />
<el-table-column align="center" prop="remark" sortable label="备注" /> <el-table-column align="center" prop="remark" sortable label="备注" />
<el-table-column align="center" fixed="right" label="操作" width="150"> <el-table-column align="center" fixed="right" label="操作" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleEdit(scope.row)" type="text" size="small">修改</el-button> <div>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleExamine(scope.row)"
type="text" size="small">审核</el-button>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleEdit(scope.row)"
type="text" size="small">编辑</el-button>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleDelete(scope.row)"
type="text" size="small">删除</el-button>
</div>
<div>
<el-button v-if="scope.row.auditState === '2'" @click="handleEdit(scope.row)" type="text"
size="small">编辑</el-button>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button> <el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button> <el-button v-if="scope.row.auditState === '2'" @click="handleDelete(scope.row)" type="text"
<el-button @click="handleExamine(scope.row)" type="text" size="small">审核</el-button> size="small">删除</el-button>
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -134,7 +145,7 @@ ...@@ -134,7 +145,7 @@
<!-- 新增/编辑弹框 --> <!-- 新增/编辑弹框 -->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px"> <el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px">
<el-form :model="form" ref="form" size="small" label-width="120px"> <el-form :model="form" ref="form" size="small" label-width="120px" :disabled="isEdit" :rules="rules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学年" prop="schoolYear"> <el-form-item label="学年" prop="schoolYear">
...@@ -143,7 +154,10 @@ ...@@ -143,7 +154,10 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学期" prop="semester"> <el-form-item label="学期" prop="semester">
<el-input v-model="form.semester" placeholder="请输入" clearable></el-input> <el-select v-model="form.semester" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.semester" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
...@@ -163,14 +177,12 @@ ...@@ -163,14 +177,12 @@
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName" <el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.gradeId"></el-option> :value="item.gradeId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班级" prop="classId"> <el-form-item label="班级" prop="className">
<el-select v-model="form.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }"> <el-select v-model="form.className" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="(item, index) in classList" :key="index" :label="item.className" <el-option v-for="(item, index) in classList" :key="index" :label="item.classValue"
:value="item.classId"></el-option> :value="item.classId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -191,6 +203,12 @@ ...@@ -191,6 +203,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别" prop="sex"> <el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择" clearable style="width: 100%;"> <el-select v-model="form.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
...@@ -198,21 +216,22 @@ ...@@ -198,21 +216,22 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班主任" prop="classTeacher"> <el-form-item label="班主任" prop="classTeacherId">
<el-input v-model="form.classTeacher" placeholder="请输入" clearable></el-input> <el-select v-model="form.classTeacherId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="级部主任" prop="gradeDirector"> <el-form-item label="级部主任" prop="gradeDirectorId">
<el-input v-model="form.gradeDirector" placeholder="请输入" clearable></el-input> <el-select v-model="form.gradeDirectorId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
...@@ -261,7 +280,7 @@ ...@@ -261,7 +280,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;"> <div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm"> 确 定</el-button> <el-button type="primary" @click="submitForm"> 确 定</el-button>
<el-button @click="cancelDialog"> 取 消 </el-button> <el-button @click="cancelDialog">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -281,8 +300,10 @@ import { ...@@ -281,8 +300,10 @@ import {
subApply,//提交 subApply,//提交
getGrade,// 获取最新三个年级 getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级, getClassList,// 根据年级获取班级,
listDisciplinetg//查看已通过 listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen' } from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default { export default {
name: 'index', name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'], dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'],
...@@ -305,6 +326,7 @@ export default { ...@@ -305,6 +326,7 @@ export default {
punishTime: "", punishTime: "",
}, },
isEdit: false,
gradeLists: [], gradeLists: [],
//表格数据 //表格数据
tableData: [ tableData: [
...@@ -325,8 +347,8 @@ export default { ...@@ -325,8 +347,8 @@ export default {
name: "", name: "",
sex: "", sex: "",
idCard: "", idCard: "",
classTeacher: "", classTeacherId: "",
gradeDirector: "", gradeDirectorId: "",
violateType: "", violateType: "",
violateNum: "", violateNum: "",
punishResult: "", punishResult: "",
...@@ -339,26 +361,83 @@ export default { ...@@ -339,26 +361,83 @@ export default {
total: 0, total: 0,
gradeList: [], gradeList: [],
classList: [], classList: [],
deptOptions: [],
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
gradeYear: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
sex: [
{ required: true, message: "性别不能为空", trigger: "change" }
],
gradeId: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
classId: [
{ required: true, message: "班级不能为空", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "change" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
classTeacherId: [
{ required: true, message: "班主任不能为空", trigger: "change" }
],
gradeDirectorId: [
{ required: true, message: "级部主任不能为空", trigger: "change" }
],
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
punishTime: [
{ required: true, message: "处分时间不能为空", trigger: "change" }
],
},
} }
}, },
created() { created() {
this.getList(); this.getList();
this.getGradelist(); this.getGradelist();
this.getTeacher();
}, },
methods: { methods: {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.isEdit = false;
this.dialogTableVisible = true; this.dialogTableVisible = true;
}, },
handleIdCardBlur() {
this.form.sex = this.getGenderFromIdCard(this.form.idCard); // 调用获取性别的方法
},
getGenderFromIdCard(idCard) {
const lastDigit = parseInt(idCard.charAt(idCard.length - 2)); // 获取倒数第二位数字
return lastDigit % 2 === 0 ? '女' : '男'; // 奇数表示男性,偶数表示女性
},
//修改 //修改
handleEdit(row) { handleEdit(row) {
console.log(row); console.log(row);
const id = row.id || this.ids; const id = row.id || this.ids;
getDiscipline(id).then((response) => { getDiscipline(id).then((response) => {
this.form = response.data; this.form = response.data;
this.isEdit = false;
this.dialogTableVisible = true; this.dialogTableVisible = true;
}).catch(error => { }).catch(error => {
this.$modal.closeLoading(); this.$modal.closeLoading();
}) })
...@@ -370,7 +449,8 @@ export default { ...@@ -370,7 +449,8 @@ export default {
const id = row.id || this.ids; const id = row.id || this.ids;
getDiscipline(id).then((response) => { getDiscipline(id).then((response) => {
this.form = response.data; this.form = response.data;
this.dialogTableVisible = true; this.isEdit = true;
this.dialogTableVisible = true; ``
}).catch(error => { }).catch(error => {
this.$modal.closeLoading(); this.$modal.closeLoading();
}) })
...@@ -474,6 +554,13 @@ export default { ...@@ -474,6 +554,13 @@ export default {
console.log(error); console.log(error);
}); });
}, },
//获取教师下拉框
getTeacher() {
getTeacher().then(response => {
this.deptOptions = response.data;
console.log(this.deptOptions, ' this.deptOptions ');
});
},
//确定按钮 //确定按钮
submitForm: function () { submitForm: function () {
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
......
...@@ -2,64 +2,73 @@ ...@@ -2,64 +2,73 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="学年"> <el-form-item label="学年">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="queryForm.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="学期"> <el-form-item label="学期">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.semester" placeholder="请选择" clearable style="width: 100%;">
</el-form-item> <el-option v-for="dict in dict.type.semester" :key="dict.value" :label="dict.label"
<el-form-item label="届别" prop="level">
<el-select v-model="queryForm.sub" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label"
:value="dict.value" /> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="年级" prop="level"> <el-form-item label="届别" prop="gradeYear">
<el-select v-model="queryForm.sub" placeholder="请选择" clearable style="width: 100%;"> <el-input v-model="queryForm.gradeYear" placeholder="请输入" clearable></el-input>
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label" </el-form-item>
:value="dict.value" /> <el-form-item label="年级" prop="gradeId">
<el-select v-model="queryForm.gradeId" placeholder="请选择" clearable :style="{ width: '100%' }"
@change="handleChange">
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.gradeId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="班级" prop="level"> <el-form-item label="班级" prop="classId">
<el-select v-model="queryForm.sub" placeholder="请选择" clearable style="width: 100%;"> <el-select v-model="queryForm.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label" <el-option v-for="(item, index) in classList" :key="index" :label="item.classValue"
:value="dict.value" /> :value="item.classId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="班级类型"> <el-form-item label="班级类型">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable> <el-select v-model="queryForm.classType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName" <el-option v-for="dict in dict.type.grade_type" :key="dict.value" :label="dict.label"
:value="item.id"></el-option> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="姓名"> <el-form-item label="姓名">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable> <el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="性别">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable> <el-select v-model="queryForm.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName" <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="item.id"></el-option> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="身份证号"> <el-form-item label="身份证号">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="queryForm.idCard" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="班主任"> <el-form-item label="班主任">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="queryForm.classTeacher" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="违纪类别"> <el-form-item label="违纪类别">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="违纪次数"> <el-form-item label="违纪次数">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="处分结果"> <el-form-item label="处分结果">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="queryForm.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="处分时间"> <el-form-item label="处分时间">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-date-picker v-model="queryForm.punishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable>
</el-date-picker>
</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>
...@@ -71,28 +80,57 @@ ...@@ -71,28 +80,57 @@
</el-form> </el-form>
<el-table :data="tableData" :default-sort="{ prop: 'time', order: 'ascending' }" border style="width: 100%"> <el-table :data="tableData" :default-sort="{ prop: 'time', order: 'ascending' }" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" /> <el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="grade" sortable label="学年" /> <el-table-column align="center" prop="schoolYear" sortable label="学年" />
<el-table-column align="center" prop="grade" sortable label="学期" /> <el-table-column align="center" prop="semester" sortable label="学期">
<el-table-column align="center" prop="grade" sortable label="届别" /> <template slot-scope="{ row }">
<el-table-column align="center" prop="grade" sortable label="年级" /> <div>{{ selectDictLabel(dict.type.semester, row.semester) }}</div>
<el-table-column align="center" prop="grade" sortable label="班级" /> </template>
<el-table-column align="center" prop="grade" sortable label="班级类型" /> </el-table-column>
<el-table-column align="center" prop="grade" sortable label="姓名" /> <el-table-column align="center" prop="gradeYear" sortable label="届别" />
<el-table-column align="center" prop="grade" sortable label="性别" /> <el-table-column align="center" prop="gradeName" sortable label="年级" />
<el-table-column align="center" prop="grade" sortable label="身份证号" /> <el-table-column align="center" prop="className" sortable label="班级" />
<el-table-column align="center" prop="grade" sortable label="班主任" /> <el-table-column align="center" prop="classType" sortable label="班级类型" width="100">
<el-table-column align="center" prop="grade" sortable label="级部主任" /> <template slot-scope="{ row }">
<el-table-column align="center" prop="grade" sortable label="违纪类别" /> <div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
<el-table-column align="center" prop="grade" sortable label="违纪次数" /> </template>
<el-table-column align="center" prop="grade" sortable label="处分结果" /> </el-table-column>
<el-table-column align="center" prop="time" sortable label="处分时间" /> <el-table-column align="center" prop="name" sortable label="姓名" />
<el-table-column align="center" prop="grade" sortable label="备注" /> <el-table-column align="center" prop="sex" sortable label="性别">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.sys_user_sex, row.sex) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="punishResult" sortable label="处分结果" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.punish_result, row.punishResult) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="punishTime" sortable label="处分时间" width="100" />
<el-table-column align="center" prop="remark" sortable label="备注" />
<el-table-column align="center" fixed="right" label="操作" width="150"> <el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleEdit(scope.row)" type="text" size="small">修改</el-button> <div v-if="scope.row.auditState === '0'">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button> <el-button @click="handleExamine(scope.row)" type="text" size="small">提交</el-button>
<el-button @click="handleEdit(scope.row)" type="text" size="small">编辑</el-button>
<el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button>
</div>
<div v-else>
<el-button @click="handleEdit(scope.row)" type="text" size="small">编辑</el-button>
<el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button> <el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button>
<el-button @click="handleExamine(scope.row)" type="text" size="small">审核</el-button> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -101,21 +139,24 @@ ...@@ -101,21 +139,24 @@
<!-- 新增/编辑弹框 --> <!-- 新增/编辑弹框 -->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px"> <el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px">
<el-form :model="form" ref="form" size="small" label-width="120px"> <el-form :model="form" ref="form" size="small" label-width="120px" :disabled="isEdit" :rules="rules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学年"> <el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学期"> <el-form-item label="学期" prop="semester">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.semester" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.semester" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="届别"> <el-form-item label="届别" prop="gradeYear">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.gradeYear" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -124,76 +165,108 @@ ...@@ -124,76 +165,108 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="年级" prop="startTime"> <el-form-item label="年级" prop="gradeId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.gradeId" placeholder="请选择" clearable :style="{ width: '100%' }"
@change="getClasslist(form.gradeId)">
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.gradeId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班级" prop="endTime"> <el-form-item label="班级" prop="classId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="(item, index) in classList" :key="index" :label="item.classValue"
:value="item.classId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班级类型" prop="endTime"> <el-form-item label="班级类型" prop="classType">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.classType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.grade_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="姓名" prop="startTime"> <el-form-item label="姓名" prop="name">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.name" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="性别" prop="endTime"> <el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="身份证号" prop="endTime"> <el-form-item label="性别" prop="sex">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班主任" prop="startTime"> <el-form-item label="班主任" prop="classTeacherId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.classTeacherId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="级部主任" prop="endTime"> <el-form-item label="级部主任" prop="gradeDirectorId">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.gradeDirectorId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="违纪类别" prop="endTime"> <el-form-item label="违纪类别" prop="violateType">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="违纪次数" prop="startTime"> <el-form-item label="违纪次数" prop="violateNum">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="处分结果" prop="endTime"> <el-form-item label="处分结果" prop="punishResult">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="处分时间" prop="endTime"> <el-form-item label="处分时间" prop="punishTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" clearable :style="{ width: '100%' }">
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="endTime"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input> <el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -201,37 +274,57 @@ ...@@ -201,37 +274,57 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;"> <div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm"> 确 定</el-button> <el-button type="primary" @click="submitForm"> 确 定</el-button>
<el-button @click="cancelDialog"> 取 消 </el-button> <el-button @click="cancelDialog">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
// import { import {
// getList, listDiscipline,// 查看学生违纪列表(管理员)
// getSemester, listDisciplinegr,//查看学生违纪列表(个人)
// getTeacherxq, getDiscipline,//查看详情
// getGradelist addDiscipline,// 新增学生违纪(管理员)
// } from '@/api/smartSchool/laboratoryManagement/leadlaboratoryCompletion' addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default { export default {
name: 'index', name: 'index',
dicts: ['experiment_classify', 'lab_sub'], dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'],
data() { data() {
return { return {
queryForm: { queryForm: {
pageNum: 1, schoolYear: "",
pageSize: 10, semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
}, },
isEdit: false,
gradeLists: [], gradeLists: [],
//表格数据 //表格数据
tableData: [ tableData: [
{ grade: '111', time: '2023-12-12' },
{ grade: '111', time: '2023-12-13' },
{ grade: '111', time: '2023-12-14' },
{ grade: '111', time: '2023-12-15' },
], ],
//查看弹窗表格 //查看弹窗表格
...@@ -239,61 +332,176 @@ export default { ...@@ -239,61 +332,176 @@ export default {
form: { form: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacherId: "",
gradeDirectorId: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
}, },
//弹窗 //弹窗
dialogTableVisible: false, dialogTableVisible: false,
total: 0, total: 0,
gradeList: [],
classList: [],
deptOptions: [],
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
gradeYear: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
sex: [
{ required: true, message: "性别不能为空", trigger: "change" }
],
gradeId: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
classId: [
{ required: true, message: "班级不能为空", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "change" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
classTeacherId: [
{ required: true, message: "班主任不能为空", trigger: "change" }
],
gradeDirectorId: [
{ required: true, message: "级部主任不能为空", trigger: "change" }
],
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
punishTime: [
{ required: true, message: "处分时间不能为空", trigger: "change" }
],
},
} }
}, },
created() { created() {
this.getList(); this.getList();
this.getGradelist();
this.getTeacher();
}, },
methods: { methods: {
handleAdd() { handleAdd() {
this.reset();
this.isEdit = false;
this.dialogTableVisible = true; this.dialogTableVisible = true;
}, },
handleEdit() { handleIdCardBlur() {
this.form.sex = this.getGenderFromIdCard(this.form.idCard); // 调用获取性别的方法
},
getGenderFromIdCard(idCard) {
const lastDigit = parseInt(idCard.charAt(idCard.length - 2)); // 获取倒数第二位数字
return lastDigit % 2 === 0 ? '女' : '男'; // 奇数表示男性,偶数表示女性
},
//修改
handleEdit(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.isEdit = false;
this.dialogTableVisible = true; this.dialogTableVisible = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.dialogTableVisible = true; ``
}).catch(error => {
this.$modal.closeLoading();
})
}, },
cancelDialog() { cancelDialog() {
this.dialogTableVisible = false; this.dialogTableVisible = false;
}, },
//审核 reset() {
this.form = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
gradeDirector: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
},
this.resetForm('form')
},
//审核 //审核
handleExamine(row) { handleExamine(row) {
this.$confirm('确认要提交申请?', '提示', { const ids = row.id || this.ids;
confirmButtonText: '确定', this.$modal
cancelButtonText: '取消', .confirm("是否提交该活动?")
type: 'warning' .then(function () {
const params = {
id: row.id,
auditState: '1' // 表示同意
};
return subApply(params);
}) })
.then(() => { .then(() => {
submitApply(row, row.id).then(res => { this.getList();
if (res.code == 200) { this.$modal.msgSuccess("提交成功");
this.$message({
type: 'success',
message: '提交成功!'
})
this.getList()
}
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消提交'
})
}) })
.catch((err) => {
console.error(err);
});
}, },
// 删除 // 删除
handleDelete(row) { handleDelete(row) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => { this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true; this.loading = true;
return delArea(row.id); return delDiscipline(row.id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.loading = false; this.loading = false;
...@@ -305,8 +513,7 @@ export default { ...@@ -305,8 +513,7 @@ export default {
getList() { getList() {
listDisciplinegr(this.queryForm)
getList(this.queryForm)
.then(response => { .then(response => {
this.tableData = response.rows; this.tableData = response.rows;
console.log('response', response); console.log('response', response);
...@@ -318,28 +525,84 @@ export default { ...@@ -318,28 +525,84 @@ export default {
console.log(error); console.log(error);
}); });
}, },
//查询级部搜索 //获取教师下拉框
getTeacher() {
getTeacher().then(response => {
this.deptOptions = response.data;
console.log(this.deptOptions, ' this.deptOptions ');
});
},
//确定按钮
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateDiscipline(this.form).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('修改成功')
this.dialogTableVisible = false
this.getList()
}
}).catch(() => {
this.$modal.msgError("修改失败");
});
} else {
addDisciplinegr(this.form).then(response => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess('新增成功')
this.dialogTableVisible = false
this.getList()
}).catch(() => {
this.$modal.msgError("新增失败");
});
}
}
});
},
// 获取最新三个年级
getGradelist() { getGradelist() {
getGradelist().then(response => { getGrade().then(response => {
this.loading = false; this.loading = false;
this.gradeLists = response.data; this.gradeList = response.data;
this.getClasslist()
console.log("this.gradeList", this.gradeList); console.log("this.gradeList", this.gradeList);
}); });
}, },
handleChange(selectedGrade) {
console.log(selectedGrade, 'selectedGrade');
this.getClasslist(selectedGrade); // 传递选择的年级id作为参数
},
// 根据年级获取班级
getClasslist(selectedGrade) {
const query = { gradeId: selectedGrade }; // 创建包含gradeId的对象
getClassList(query).then(response => {
this.loading = false;
this.classList = response.data;
console.log("this.classList", this.classList);
});
},
resetQuery() { resetQuery() {
this.queryForm = { this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "", schoolYear: "",
semester: "", semester: "",
sub: "", gradeYear: "",
grade: "", gradeId: "",
experimentName: "", classId: "",
}; classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList(); this.getList();
}, },
......
...@@ -29,7 +29,8 @@ export default { ...@@ -29,7 +29,8 @@ export default {
// 获取code // 获取code
getCode() { getCode() {
dd.getAuthCode({ dd.getAuthCode({
corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69', // corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69',
corpId: 'dingccea40788226c988f2c783f7214b6d69',
success: (res) => { success: (res) => {
console.log('获取新的免登码成功', res); console.log('获取新的免登码成功', res);
const code = res.code const code = res.code
......
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