Commit def45b0b by zhaopanyu

zpy 11/8

parent 46e7b51b
......@@ -86,3 +86,10 @@ export function listDisciplinetg(query) {
params: query,
});
}
//获取教师下拉框
export function getTeacher() {
return request({
url: "/schoolLabCompetition/getTeacher",
method: "get",
});
}
......@@ -2,89 +2,125 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<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 label="学期">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
</el-form-item>
<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"
<el-select v-model="queryForm.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 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" />
<el-form-item label="届别" prop="gradeYear">
<el-input v-model="queryForm.gradeYear" placeholder="请输入" clearable></el-input>
</el-form-item>
<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-form-item>
<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" />
<el-form-item label="班级" prop="classId">
<el-select v-model="queryForm.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 label="班级类型">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
<el-select v-model="queryForm.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 label="姓名">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
</el-select>
<el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="性别">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
<el-select v-model="queryForm.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 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 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 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 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 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 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-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-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-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" prop="grade" sortable label="学年" />
<el-table-column align="center" prop="grade" sortable label="学期" />
<el-table-column align="center" prop="grade" sortable label="届别" />
<el-table-column align="center" prop="grade" sortable label="年级" />
<el-table-column align="center" prop="grade" sortable label="班级" />
<el-table-column align="center" prop="grade" sortable label="班级类型" />
<el-table-column align="center" prop="grade" sortable label="姓名" />
<el-table-column align="center" prop="grade" sortable label="性别" />
<el-table-column align="center" prop="grade" sortable label="身份证号" />
<el-table-column align="center" prop="grade" sortable label="班主任" />
<el-table-column align="center" prop="grade" sortable label="级部主任" />
<el-table-column align="center" prop="grade" sortable label="违纪类别" />
<el-table-column align="center" prop="grade" sortable label="违纪次数" />
<el-table-column align="center" prop="grade" sortable label="处分结果" />
<el-table-column align="center" prop="time" sortable label="处分时间" />
<el-table-column align="center" prop="grade" sortable label="备注" />
<el-table-column align="center" fixed="right" label="操作" width="150">
<el-table-column align="center" prop="schoolYear" sortable label="学年" />
<el-table-column align="center" prop="semester" sortable label="学期">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.semester, row.semester) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="gradeYear" 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="classType" sortable label="班级类型" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="name" 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="200">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
......@@ -93,23 +129,26 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 查看 -->
<!-- 查看-->
<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-col :span="8">
<el-form-item label="学年">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="学期" prop="semester">
<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-col>
<el-col :span="8">
<el-form-item label="届别">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="届别" prop="gradeYear">
<el-input v-model="form.gradeYear" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -118,84 +157,115 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="年级" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="年级" prop="gradeId">
<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-col>
<el-col :span="8">
<el-form-item label="班级" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="班级" prop="className">
<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-col>
<el-col :span="8">
<el-form-item label="班级类型" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="班级类型" prop="classType">
<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-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="姓名" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<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="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="性别" prop="sex">
<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-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="班主任" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="班主任" prop="classTeacherId">
<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-col>
<el-col :span="8">
<el-form-item label="级部主任" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="级部主任" prop="gradeDirectorId">
<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-col>
<el-col :span="8">
<el-form-item label="违纪类别" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="违纪类别" prop="violateType">
<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-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="违纪次数" prop="violateNum">
<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-col>
<el-col :span="8">
<el-form-item label="处分结果" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="处分结果" prop="punishResult">
<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-col>
<el-col :span="8">
<el-form-item label="处分时间" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="处分时间" prop="punishTime">
<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-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<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>
</el-dialog>
......@@ -204,29 +274,48 @@
<script>
// import {
// getList,
// getSemester,
// getTeacherxq,
// getGradelist
// } from '@/api/smartSchool/laboratoryManagement/leadlaboratoryCompletion'
import {
listDiscipline,// 查看学生违纪列表(管理员)
listDisciplinegr,//查看学生违纪列表(个人)
getDiscipline,//查看详情
addDiscipline,// 新增学生违纪(管理员)
addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
isEdit: false,
gradeLists: [],
//表格数据
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 {
form: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacherId: "",
gradeDirectorId: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
},
//弹窗
dialogTableVisible: false,
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() {
this.getList();
this.getGradelist();
this.getTeacher();
},
methods: {
handleAdd() {
this.reset();
this.isEdit = false;
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;
}).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() {
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) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true;
return delArea(row.id);
return delDiscipline(row.id);
}).then(() => {
this.getList();
this.loading = false;
......@@ -277,8 +526,7 @@ export default {
getList() {
getList(this.queryForm)
listDisciplinetg(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
......@@ -290,28 +538,84 @@ export default {
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().then(response => {
getGrade().then(response => {
this.loading = false;
this.gradeLists = response.data;
this.gradeList = response.data;
this.getClasslist()
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() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
};
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList();
},
......
......@@ -22,7 +22,7 @@
</el-form-item>
<el-form-item label="班级" prop="classId">
<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>
</el-select>
</el-form-item>
......@@ -88,7 +88,7 @@
</el-table-column>
<el-table-column align="center" prop="gradeYear" 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">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
......@@ -120,12 +120,23 @@
</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="200">
<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="handleDelete(scope.row)" type="text" size="small">删除</el-button>
<el-button @click="handleExamine(scope.row)" type="text" size="small">审核</el-button>
<el-button v-if="scope.row.auditState === '2'" @click="handleDelete(scope.row)" type="text"
size="small">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
......@@ -134,7 +145,7 @@
<!-- 新增/编辑弹框 -->
<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-col :span="8">
<el-form-item label="学年" prop="schoolYear">
......@@ -143,7 +154,10 @@
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
......@@ -163,14 +177,12 @@
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.gradeId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班级" prop="classId">
<el-select v-model="form.classId" placeholder="请选择级部" clearable :style="{ width: '100%' }">
<el-option v-for="(item, index) in classList" :key="index" :label="item.className"
<el-form-item label="班级" prop="className">
<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>
......@@ -191,6 +203,12 @@
</el-form-item>
</el-col>
<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-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"
......@@ -198,21 +216,22 @@
</el-select>
</el-form-item>
</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-col :span="8">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入" clearable></el-input>
<el-form-item label="班主任" prop="classTeacherId">
<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-col>
<el-col :span="8">
<el-form-item label="级部主任" prop="gradeDirector">
<el-input v-model="form.gradeDirector" placeholder="请输入" clearable></el-input>
<el-form-item label="级部主任" prop="gradeDirectorId">
<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-col>
<el-col :span="8">
......@@ -261,7 +280,7 @@
</el-form>
<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>
</el-dialog>
......@@ -281,8 +300,10 @@ import {
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
listDisciplinetg//查看已通过
listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'],
......@@ -305,6 +326,7 @@ export default {
punishTime: "",
},
isEdit: false,
gradeLists: [],
//表格数据
tableData: [
......@@ -325,8 +347,8 @@ export default {
name: "",
sex: "",
idCard: "",
classTeacher: "",
gradeDirector: "",
classTeacherId: "",
gradeDirectorId: "",
violateType: "",
violateNum: "",
punishResult: "",
......@@ -339,26 +361,83 @@ export default {
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() {
this.getList();
this.getGradelist();
this.getTeacher();
},
methods: {
handleAdd() {
this.reset();
this.isEdit = false;
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) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.isEdit = false;
this.dialogTableVisible = true;
}).catch(error => {
this.$modal.closeLoading();
})
......@@ -370,7 +449,8 @@ export default {
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.dialogTableVisible = true;
this.isEdit = true;
this.dialogTableVisible = true; ``
}).catch(error => {
this.$modal.closeLoading();
})
......@@ -474,6 +554,13 @@ export default {
console.log(error);
});
},
//获取教师下拉框
getTeacher() {
getTeacher().then(response => {
this.deptOptions = response.data;
console.log(this.deptOptions, ' this.deptOptions ');
});
},
//确定按钮
submitForm: function () {
this.$refs['form'].validate(valid => {
......
......@@ -2,64 +2,73 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<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 label="学期">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
</el-form-item>
<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"
<el-select v-model="queryForm.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 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" />
<el-form-item label="届别" prop="gradeYear">
<el-input v-model="queryForm.gradeYear" placeholder="请输入" clearable></el-input>
</el-form-item>
<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-form-item>
<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" />
<el-form-item label="班级" prop="classId">
<el-select v-model="queryForm.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 label="班级类型">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
<el-select v-model="queryForm.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 label="姓名">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
</el-select>
<el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="性别">
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeLists" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
<el-select v-model="queryForm.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 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 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 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 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 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 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-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
......@@ -71,28 +80,57 @@
</el-form>
<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" prop="grade" sortable label="学年" />
<el-table-column align="center" prop="grade" sortable label="学期" />
<el-table-column align="center" prop="grade" sortable label="届别" />
<el-table-column align="center" prop="grade" sortable label="年级" />
<el-table-column align="center" prop="grade" sortable label="班级" />
<el-table-column align="center" prop="grade" sortable label="班级类型" />
<el-table-column align="center" prop="grade" sortable label="姓名" />
<el-table-column align="center" prop="grade" sortable label="性别" />
<el-table-column align="center" prop="grade" sortable label="身份证号" />
<el-table-column align="center" prop="grade" sortable label="班主任" />
<el-table-column align="center" prop="grade" sortable label="级部主任" />
<el-table-column align="center" prop="grade" sortable label="违纪类别" />
<el-table-column align="center" prop="grade" sortable label="违纪次数" />
<el-table-column align="center" prop="grade" sortable label="处分结果" />
<el-table-column align="center" prop="time" sortable label="处分时间" />
<el-table-column align="center" prop="grade" sortable label="备注" />
<el-table-column align="center" prop="schoolYear" sortable label="学年" />
<el-table-column align="center" prop="semester" sortable label="学期">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.semester, row.semester) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="gradeYear" 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="classType" sortable label="班级类型" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="name" 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">
<template slot-scope="scope">
<el-button @click="handleEdit(scope.row)" type="text" size="small">修改</el-button>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
<div v-if="scope.row.auditState === '0'">
<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="handleExamine(scope.row)" type="text" size="small">审核</el-button>
</div>
</template>
</el-table-column>
</el-table>
......@@ -101,21 +139,24 @@
<!-- 新增/编辑弹框 -->
<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-col :span="8">
<el-form-item label="学年">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="学期" prop="semester">
<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-col>
<el-col :span="8">
<el-form-item label="届别">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="届别" prop="gradeYear">
<el-input v-model="form.gradeYear" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -124,76 +165,108 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="年级" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="年级" prop="gradeId">
<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-col>
<el-col :span="8">
<el-form-item label="班级" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="班级" prop="classId">
<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-col>
<el-col :span="8">
<el-form-item label="班级类型" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="班级类型" prop="classType">
<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-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="姓名" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<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="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="性别" prop="sex">
<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-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="班主任" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="班主任" prop="classTeacherId">
<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-col>
<el-col :span="8">
<el-form-item label="级部主任" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="级部主任" prop="gradeDirectorId">
<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-col>
<el-col :span="8">
<el-form-item label="违纪类别" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="违纪类别" prop="violateType">
<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-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="startTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="违纪次数" prop="violateNum">
<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-col>
<el-col :span="8">
<el-form-item label="处分结果" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="处分结果" prop="punishResult">
<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-col>
<el-col :span="8">
<el-form-item label="处分时间" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="处分时间" prop="punishTime">
<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-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="endTime">
<el-input v-model="form.className" placeholder="请输入" clearable></el-input>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -201,37 +274,57 @@
</el-form>
<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>
</el-dialog>
</div>
</template>
<script>
// import {
// getList,
// getSemester,
// getTeacherxq,
// getGradelist
// } from '@/api/smartSchool/laboratoryManagement/leadlaboratoryCompletion'
import {
listDiscipline,// 查看学生违纪列表(管理员)
listDisciplinegr,//查看学生违纪列表(个人)
getDiscipline,//查看详情
addDiscipline,// 新增学生违纪(管理员)
addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
isEdit: false,
gradeLists: [],
//表格数据
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 {
form: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacherId: "",
gradeDirectorId: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
},
//弹窗
dialogTableVisible: false,
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() {
this.getList();
this.getGradelist();
this.getTeacher();
},
methods: {
handleAdd() {
this.reset();
this.isEdit = false;
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;
}).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() {
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) {
this.$confirm('确认要提交申请?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该活动?")
.then(function () {
const params = {
id: row.id,
auditState: '1' // 表示同意
};
return subApply(params);
})
.then(() => {
submitApply(row, row.id).then(res => {
if (res.code == 200) {
this.$message({
type: 'success',
message: '提交成功!'
})
this.getList()
}
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消提交'
})
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 删除
handleDelete(row) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true;
return delArea(row.id);
return delDiscipline(row.id);
}).then(() => {
this.getList();
this.loading = false;
......@@ -305,8 +513,7 @@ export default {
getList() {
getList(this.queryForm)
listDisciplinegr(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
......@@ -318,28 +525,84 @@ export default {
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().then(response => {
getGrade().then(response => {
this.loading = false;
this.gradeLists = response.data;
this.gradeList = response.data;
this.getClasslist()
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() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
};
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList();
},
......
......@@ -29,7 +29,8 @@ export default {
// 获取code
getCode() {
dd.getAuthCode({
corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69',
// corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69',
corpId: 'dingccea40788226c988f2c783f7214b6d69',
success: (res) => {
console.log('获取新的免登码成功', res);
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