Commit f6433c06 by zhaopanyu

zpy 1.19

parent 0ae2bb52
......@@ -284,8 +284,6 @@
<h3>填报单位:东营市二中</h3>
</el-col>
</el-row>
<el-table key="a" v-if="dutyList.dutyType === '1'" border v-loading="loading2" :data="dutyList.list"
style="width: 100%" :span-method="objectSpanMethod2">
<el-table-column label="节日" align="center">
......@@ -941,6 +939,10 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep th.el-table__cell>.cell {
font-size: 12px !important;
}
.card-box {
padding-right: 5px;
padding-left: 5px;
......
......@@ -632,6 +632,26 @@ export default {
</script>
<style lang="scss" scoped>
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
.custom-blue-button {
background: #409eff;
/* 蓝色 */
......
......@@ -653,6 +653,25 @@ export default {
</script>
<style lang="scss" scoped>
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
.custom-blue-button {
background: #409eff;
/* 蓝色 */
......
......@@ -408,6 +408,26 @@ export default {
</script>
<style lang="scss" scoped>
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
.custom-blue-button {
background: #409eff;
/* 蓝色 */
......
......@@ -631,6 +631,26 @@ export default {
</script>
<style scoped lang="scss" >
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
::v-deep .el-form-item {
margin-bottom: 12px;
}
......
......@@ -532,6 +532,25 @@ export default {
</script>
<style scoped lang="scss" >
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
::v-deep .el-form-item {
margin-bottom: 12px;
}
......
......@@ -781,6 +781,26 @@ export default {
</script>
<style scoped lang="scss" >
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
::v-deep .el-form-item {
margin-bottom: 12px;
}
......
......@@ -697,6 +697,26 @@ export default {
</script>
<style scoped lang="scss" >
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
::v-deep .el-form-item {
margin-bottom: 12px;
}
......
......@@ -903,6 +903,7 @@ export default {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
......@@ -1233,6 +1234,26 @@ export default {
</script>
<style scoped lang="scss" >
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
::v-deep .el-form-item {
margin-bottom: 12px;
}
......
......@@ -977,6 +977,26 @@ export default {
</script>
<style scoped lang="scss" >
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
::v-deep .el-form-item {
margin-bottom: 12px;
}
......
<template>
<div class="app-container " style="padding: 15px 20px 15px 15px;">
<el-row>
<el-col :span="20">
<el-row>
<el-col>
......
......@@ -18,7 +18,7 @@
</el-form-item>
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="queryForm.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
<el-option v-for="dict in dict.type.rankwj" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -58,12 +58,12 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="违纪类别">
<!-- <el-form-item label="违纪类别">
<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-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"
......@@ -126,11 +126,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -182,7 +182,7 @@
<el-col :span="8">
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="form.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
<el-option v-for="dict in dict.type.rankwj" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -196,8 +196,8 @@
<el-col :span="8">
<el-form-item label="年级" prop="gradeName">
<el-select v-model="form.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for=" dict in dict.type.grade_da "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -205,8 +205,8 @@
<el-col :span="8">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for=" dict in dict.type.class_num "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -214,8 +214,8 @@
<el-col :span="8">
<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.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for=" dict in dict.type.class_type "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -237,8 +237,8 @@
<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"
:value="dict.value" />
<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>
......@@ -247,42 +247,40 @@
<el-col :span="8">
<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-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="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-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="violateType">
<!-- <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> -->
<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-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-row>
<el-row>
<el-col :span="8">
<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-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>
......@@ -304,7 +302,7 @@
</el-row>
<el-col :span="10">
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
<li class="el-upload-list__item ele-upload-list__item-content" v-for=" file in fileList "
:key="file.id">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
......@@ -340,7 +338,7 @@ import { listStudentwj } from "@/api/smartSchool/classAdviser/studentCommendatio
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankwj', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
queryForm: {
......@@ -370,6 +368,7 @@ export default {
],
baseUrl: process.env.VUE_APP_BASE_API,
//查看弹窗表格
ExperimentalData: [],
form: {
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="50%" append-to-body>
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px" class="search">
<el-form-item label="学年">
<el-select v-model="queryForm.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期">
<el-select v-model="queryForm.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="queryForm.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankwj" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="gradeName">
<el-select v-model="queryForm.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryForm.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型">
<el-select v-model="queryForm.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="性别">
<el-select v-model="queryForm.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号">
<el-input v-model="queryForm.idCard" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="班主任">
<el-select v-model="queryForm.classTeacherId" placeholder="请选择" :style="{ width: '100%' }" filterable>
<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 label="违纪类别">
<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-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-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-date-picker v-model="queryForm.punishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable style="width: 100%;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-col> -->
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData"
:default-sort="{ prop: 'punishTime', order: 'descending' }" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="schoolYear" sortable label="学年" width="110" show-overflow-tooltip />
<el-table-column align="center" prop="semester" sortable label="学期" show-overflow-tooltip>
<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="届别" show-overflow-tooltip />
<el-table-column align="center" prop="gradeName" sortable label="年级" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.gradeName" />
</template>
</el-table-column>
<el-table-column align="center" prop="className" sortable label="班级" show-overflow-tooltip />
<el-table-column align="center" prop="classType" sortable label="班级类型" width="100" show-overflow-tooltip>
<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="姓名" show-overflow-tooltip />
<el-table-column align="center" prop="sex" sortable label="性别" show-overflow-tooltip>
<!-- <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" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<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" show-overflow-tooltip>
<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" show-overflow-tooltip>
<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="150" show-overflow-tooltip />
<el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip />
<el-table-column align="center" prop="auditState" label="审核状态" fixed="right">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="110">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 查看-->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1200px">
<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">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="form.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankwj" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="年级" prop="gradeName">
<el-select v-model="form.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for=" dict in dict.type.grade_da "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for=" dict in dict.type.class_num "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<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.class_type "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<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="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" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<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="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="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-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-row>
<el-row>
<el-col :span="8">
<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="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="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-col :span="10">
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for=" file in fileList "
:key="file.id">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancelDialog">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDiscipline,// 查看学生违纪列表(管理员)
listDisciplinegr,//查看学生违纪列表(个人)
getDiscipline,//查看详情
addDiscipline,// 新增学生违纪(管理员)
addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { listStudentwj } from "@/api/smartSchool/classAdviser/studentCommendation";
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankwj', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
query: false,
isEdit: false,
gradeLists: [],
//表格数据
tableData: [
],
baseUrl: process.env.VUE_APP_BASE_API,
//查看弹窗表格
ExperimentalData: [],
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,
fileList: [],
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" }
],
gradeName: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
gradeName: [
{ 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();
})
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.fileList = response.data.schoolAccessoryList;
console.log(this.fileList, 'this.fileList');
this.isEdit = true;
this.dialogTableVisible = true;
this.form.gradeId = response.data.gradeId;
const params = { gradeId: this.form.gradeId };
getClassList(params).then(response => {
this.loading = false;
this.classList = response.data;
console.log("this.classList", this.classList);
});
}).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) {
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 delDiscipline(row.id);
}).then(() => {
this.getList();
this.loading = false;
this.$modal.msgSuccess("删除成功");
}).catch(() => {
this.loading = false
});
},
getList() {
listStudentwj(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
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() {
getGrade().then(response => {
this.loading = false;
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: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList();
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
handleExport() {
this.download('/school/discipline/exportYtg', {
...this.queryParams
}, `学生违纪_${new Date().getTime()}.xlsx`)
}
},
}
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="姓名:">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable
@keyup.enter.native="handleQuery"></el-input>
@keyup.enter.native="handleQuery"></el-input>
</el-form-item>
<el-form-item label="性别:">
<el-select v-model="queryParams.sex" placeholder="请输入学生性别">
......@@ -21,7 +21,7 @@
</el-form-item>
<el-form-item label="注册序号:">
<el-input v-model="queryParams.schoolNo" placeholder="请输入学生注册序号" clearable
@keyup.enter.native="handleQuery"></el-input>
@keyup.enter.native="handleQuery"></el-input>
</el-form-item>
<el-form-item label="学生状态:">
<el-select v-model="queryParams.studentStatus" placeholder="学生状态">
......@@ -50,7 +50,7 @@
<!-- </el-col>-->
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:student:edit']">编辑
v-hasPermi="['system:student:edit']">编辑
</el-button>
</el-col>
<el-col :span="1.5">
......@@ -59,46 +59,46 @@
</el-col>
<el-col :span="3">
<el-select style=" position: absolute; right: 0px; " size="mini" v-model="queryParams.schoolYear"
@change="handleQuery">
@change="handleQuery">
<el-option v-for="item in yearList" :key="item.value" :value="item.value" :label="item.label"></el-option>
</el-select>
</el-col>
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>-->
</el-row>
<el-table stripe v-loading="loading" width="100%" :cell-style="cellStyle" :data="studentList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column fixed="left" key="avatar" align="center" prop="avatar" label="头像">
<template slot-scope="scope">
<ListImage :image-url="isEmptyAvatar(scope.row.avatar, scope.row.sex)"></ListImage>
</template>
</el-table-column>
<el-table-column fixed="left" key="studentName" min-width="80" align="center" prop="studentName" label="姓名"/>
<el-table-column key="score" min-width="80" align="center" prop="score" label="积分"/>
<el-table-column key="grade" min-width="100px" align="center" prop="classAlias" label="班级"/>
<el-table-column fixed="left" key="studentName" min-width="80" align="center" prop="studentName" label="姓名" />
<el-table-column key="score" min-width="80" align="center" prop="score" label="积分" />
<el-table-column key="grade" min-width="100px" align="center" prop="classAlias" label="班级" />
<el-table-column key="sex" min-width="50px" align="center" prop="sex" label="性别">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"></dict-tag>
</template>
</el-table-column>
<el-table-column key="nation" width="100" align="center" prop="nation" label="民族"/>
<el-table-column key="nation" width="100" align="center" prop="nation" label="民族" />
<el-table-column key="nativePlace" min-width="100" header-align="center" align="center" prop="nativePlace"
label="籍贯" show-overflow-tooltip></el-table-column>
<el-table-column key="idCard" width="180" align="center" prop="idCard" label="身份证号"/>
<el-table-column key="stuTelephone" width="130" align="center" prop="stuTelephone" label="联系电话"/>
<el-table-column key="birthAddress" width="150" align="center" prop="birthAddress" label="出生地"/>
<el-table-column key="postalCode" width="150" align="center" prop="postalCode" label="邮政编码"/>
<el-table-column key="enrollmentYear" width="100" align="center" prop="enrollmentYear" label="级/届"/>
label="籍贯" show-overflow-tooltip></el-table-column>
<el-table-column key="idCard" width="180" align="center" prop="idCard" label="身份证号" />
<el-table-column key="stuTelephone" width="130" align="center" prop="stuTelephone" label="联系电话" />
<el-table-column key="birthAddress" width="150" align="center" prop="birthAddress" label="出生地" />
<el-table-column key="postalCode" width="150" align="center" prop="postalCode" label="邮政编码" />
<el-table-column key="enrollmentYear" width="100" align="center" prop="enrollmentYear" label="级/届" />
<el-table-column key="enrollmentTime" min-width="100" header-align="center" align="center" prop="enrollmentTime"
label="入学时间" show-overflow-tooltip></el-table-column>
<el-table-column key="platform" width="180" align="center" prop="platform" label="平台"/>
label="入学时间" show-overflow-tooltip></el-table-column>
<el-table-column key="platform" width="180" align="center" prop="platform" label="平台" />
<el-table-column key="studentType" width="130" align="center" prop="studentType" label="学生类型">
<template slot-scope="scope">
<dict-tag :options="dict.type.student_type" :value="scope.row.studentType"></dict-tag>
</template>
</el-table-column>
<el-table-column key="provincialNumber" width="150" align="center" prop="provincialNumber" label="省学籍辅号"/>
<el-table-column key="nationalNumber" width="150" align="center" prop="nationalNumber" label="全国学籍号"/>
<el-table-column key="provincialNumber" width="150" align="center" prop="provincialNumber" label="省学籍辅号" />
<el-table-column key="nationalNumber" width="150" align="center" prop="nationalNumber" label="全国学籍号" />
<el-table-column key="studentStatus" width="80" align="center" prop="studentStatus" label="学生状态">
<template slot-scope="scope">
<dict-tag :options="dict.type.child_state" :value="scope.row.studentStatus"></dict-tag>
......@@ -109,41 +109,39 @@
<dict-tag :options="dict.type.student_type" :value="scope.row.studentType"></dict-tag>
</template>
</el-table-column>
<el-table-column key="schoolNo" width="100" align="center" prop="schoolNo" label="注册序号"/>
<el-table-column key="schoolNo" width="100" align="center" prop="schoolNo" label="注册序号" />
<el-table-column key="registeredAddress" min-width="100" header-align="center" align="center"
prop="registeredAddress" label="户口所在地" show-overflow-tooltip></el-table-column>
prop="registeredAddress" label="户口所在地" show-overflow-tooltip></el-table-column>
<el-table-column key="registeredType" width="180" align="center" prop="registeredType" label="户口性质">
<template slot-scope="scope">
<dict-tag :options="dict.type.regist_type" :value="scope.row.registeredType"/>
<dict-tag :options="dict.type.regist_type" :value="scope.row.registeredType" />
</template>
</el-table-column>
<el-table-column key="juniorSchool" width="130" align="center" prop="juniorSchool" label="初中学校"/>
<el-table-column key="region" width="150" align="center" prop="region" label="国家地区"/>
<el-table-column key="foreignLanguages" width="150" align="center" prop="foreignLanguages" label="外语语种"/>
<el-table-column key="juniorSchool" width="130" align="center" prop="juniorSchool" label="初中学校" />
<el-table-column key="region" width="150" align="center" prop="region" label="国家地区" />
<el-table-column key="foreignLanguages" width="150" align="center" prop="foreignLanguages" label="外语语种" />
<el-table-column key="appearance" width="150" align="center" prop="appearance" label="政治面貌">
<template slot-scope="scope">
<dict-tag :options="dict.type.politics_tatus" :value="scope.row.appearance"></dict-tag>
</template>
</el-table-column>
<el-table-column key="birthday" width="120" sortable align="center" prop="birthday"
label="出生日期"></el-table-column>
<el-table-column key="birthday" width="120" sortable align="center" prop="birthday" label="出生日期"></el-table-column>
<el-table-column key="homeAddress" min-width="200" align="center" prop="homeAddress" label="家庭住址"
show-overflow-tooltip>
show-overflow-tooltip>
<template v-slot="scope">
<span class="one-line-omit">
{{ scope.row.homeAddress }}
</span>
</template>
</el-table-column>
<el-table-column key="bloodType" width="100" align="center" prop="bloodType" label="血型"/>
<el-table-column key="bloodType" width="100" align="center" prop="bloodType" label="血型" />
<el-table-column key="health" min-width="100" header-align="center" align="center" prop="health" label="健康状况"
show-overflow-tooltip></el-table-column>
<el-table-column key="otherRegions" width="180" align="center" prop="otherRegions" label="港澳台侨"/>
<el-table-column key="floatingPopulation" width="130" align="center" prop="floatingPopulation"
label="流动人口状况"/>
show-overflow-tooltip></el-table-column>
<el-table-column key="otherRegions" width="180" align="center" prop="otherRegions" label="港澳台侨" />
<el-table-column key="floatingPopulation" width="130" align="center" prop="floatingPopulation" label="流动人口状况" />
<el-table-column key="onlyChild" width="150" align="center" prop="onlyChild" label="独生子女">
<template slot-scope="scope">
<dict-tag :options="dict.type.only_child" :value="scope.row.onlyChild"/>
<dict-tag :options="dict.type.only_child" :value="scope.row.onlyChild" />
</template>
</el-table-column>
<el-table-column key="nature" width="150" align="center" prop="nature" label="性质">
......@@ -152,7 +150,7 @@
</template>
</el-table-column>
<el-table-column key="support" width="150" align="center" prop="support" label="接收资助情况"></el-table-column>
<el-table-column label="操作" align="center" min-width="180px" fixed="right">
<el-table-column label="操作" align="center" min-width="240px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:student:edit']">编辑
</el-button>
......@@ -161,8 +159,12 @@
<!-- </el-button>-->
<el-button size="mini" type="text" @click="parentsEdit(scope.row)" v-hasPermi="['system:student:edit']">家长信息
</el-button>
<el-button size="mini" type="text" @click="moralScore(scope.row)" v-hasPermi="['system:student:edit']">学生积分
<el-button size="mini" type="text" @click="award(scope.row)">嘉奖
</el-button>
<el-button size="mini" type="text" @click="discipline(scope.row)">违纪
</el-button>
<!-- <el-button size="mini" type="text" @click="moralScore(scope.row)" v-hasPermi="['system:student:edit']">学生积分
</el-button> -->
<!-- <el-dropdown size="mini" @command="command => handleCommand(command, scope.row)"-->
<!-- v-hasPermi="['system:user:resetPwd', 'system:user:edit']">-->
<!-- <span class="el-dropdown-link"> <i class="el-icon-d-arrow-right el-icon&#45;&#45;right"></i>更多 </span>-->
......@@ -176,16 +178,16 @@
</el-table-column>
</el-table>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
@pagination="getList" />
<!-- 添加或修改学生对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1200px">
<el-form ref="form" :model="form" label-width="114px" :rules="rules">
<el-form-item prop="avatar" label-width="0" style="display: flex; justify-content: center;">
<el-upload v-loading="uploadLoading" class="avatar-uploader" :disabled="isEdit" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
:http-request="uploadImage">
<img v-if="imageUrl" :src="imageUrl" style="width: 178px; height: 178px;" class="avatar" alt=""/>
:show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
:http-request="uploadImage">
<img v-if="imageUrl" :src="imageUrl" style="width: 178px; height: 178px;" class="avatar" alt="" />
<!-- :preview-src-list="[imageUrl]"-->
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -208,7 +210,7 @@
<el-form-item label="性别:" prop="sex">
<el-select v-model="form.sex" placeholder="请输入性别" style="width: 100%;" :disabled="isEdit">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -223,35 +225,32 @@
<el-col :span="8">
<el-form-item label="出生日期:" prop="birthday">
<el-date-picker v-model="form.birthday" :disabled="isEdit" type="date" value-format="yyyy-MM-dd"
placeholder="请选择出生日期" style="width: 100%;"></el-date-picker>
placeholder="请选择出生日期" style="width: 100%;"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-input :disabled="isEdit" v-model="form.className" clearable></el-input>-->
<el-form-item label="班级:" prop="classAlias">
<el-input :disabled="isEdit" v-model="form.classAlias" placeholder="请选择班级" readonly
@focus="selectClass"
style="width: 100%"></el-input>
<el-input :disabled="isEdit" v-model="form.classAlias" placeholder="请选择班级" readonly @focus="selectClass"
style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="学生状态:" prop="studentStatus">
<el-select :disabled="isEdit" v-model="form.studentStatus" placeholder="请输入学生状态"
style="width: 100%;">
<el-select :disabled="isEdit" v-model="form.studentStatus" placeholder="请输入学生状态" style="width: 100%;">
<el-option v-for="dict in dict.type.child_state" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学生类型:" prop="studentType">
<el-select :disabled="isEdit" v-model="form.studentType" placeholder="请输入学生类型"
style="width: 100%;">
<el-select :disabled="isEdit" v-model="form.studentType" placeholder="请输入学生类型" style="width: 100%;">
<el-option v-for="dict in dict.type.student_type" :key="dict.value" :label="dict.label"
:value="dict.value">{{ dict.label }}
:value="dict.value">{{ dict.label }}
</el-option>
</el-select>
</el-form-item>
......@@ -277,8 +276,7 @@
<el-col :span="8">
<el-form-item label="民族:" prop="nation">
<el-select :disabled="isEdit" v-model="form.nation" placeholder="请选择民族" style="width: 100%">
<el-option v-for="item in Nations" :key="item.label" :label="item.label"
:value="item.label"></el-option>
<el-option v-for="item in Nations" :key="item.label" :label="item.label" :value="item.label"></el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -310,14 +308,14 @@
<el-col :span="8">
<el-form-item label="级/届:" prop="enrollmentYear">
<el-date-picker style="width:100%" :disabled="isEdit" v-model="form.enrollmentYear" type="year"
placeholder="选择入学年">
placeholder="选择入学年">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入学时间:" prop="enrollmentTime">
<el-date-picker v-model="form.enrollmentTime" :disabled="isEdit" style="width: 100%" type="date"
placeholder="选择入学时间">
placeholder="选择入学时间">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -336,8 +334,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="校园一卡通:" prop="oneCard">
<el-input :disabled="isEdit" placeholder="请输入校园一卡通号码" v-model="form.oneCard"
clearable></el-input>
<el-input :disabled="isEdit" placeholder="请输入校园一卡通号码" v-model="form.oneCard" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -358,12 +355,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="户口性质:" prop="registeredType">
<el-select :disabled="isEdit" v-model="form.registeredType" style="width: 100%"
placeholder="请输入户口性质">
<el-option
v-for="dict in dict.type.regist_type"
:key="dict.value"
:label="dict.label"
<el-select :disabled="isEdit" v-model="form.registeredType" style="width: 100%" placeholder="请输入户口性质">
<el-option v-for="dict in dict.type.regist_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -388,7 +381,7 @@
<el-form-item label="政治面貌:" prop="appearance">
<el-select :disabled="isEdit" v-model="form.appearance" style="width: 100%" placeholder="请选择政治面貌">
<el-option v-for="dict in dict.type.politics_tatus" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -414,19 +407,13 @@
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="流动人口状况:" prop="floatingPopulation">
<el-input :disabled="isEdit" placeholder="请输入流动人口状况"
v-model="form.floatingPopulation"></el-input>
<el-input :disabled="isEdit" placeholder="请输入流动人口状况" v-model="form.floatingPopulation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="独生子女:" prop="onlyChild">
<el-select :disabled="isEdit" v-model="form.onlyChild" style="width: 100%"
placeholder="请选择是否为独生子女">
<el-option
v-for="dict in dict.type.only_child"
:key="dict.value"
:label="dict.label"
:value="dict.value">
<el-select :disabled="isEdit" v-model="form.onlyChild" style="width: 100%" placeholder="请选择是否为独生子女">
<el-option v-for="dict in dict.type.only_child" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -435,7 +422,7 @@
<el-form-item label="性质:" prop="nature">
<el-select :disabled="isEdit" v-model="form.nature" placeholder="请选择学生性质" style="width: 100%;">
<el-option v-for="dict in dict.type.student_nature" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -467,8 +454,8 @@
<!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
......@@ -478,7 +465,7 @@
<!--</div>-->
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
......@@ -489,7 +476,7 @@
</el-dialog>
<!-- 选择班级 -->
<GradeClassSelect v-if="classOptions.open" :openSelect.sync="classOptions.open" :title="classOptions.title"
@getClassList="classList" @setClassInfo="setClassInfo"></GradeClassSelect>
@getClassList="classList" @setClassInfo="setClassInfo"></GradeClassSelect>
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
</div>
</template>
......@@ -505,19 +492,19 @@ import {
addStudent,
updateStudent
} from '@/api/smartSchool/gradeWork/studentManage'
import {getToken} from '@/utils/auth'
import {CustomCellStyle} from '@/enums/customStyle'
import { getToken } from '@/utils/auth'
import { CustomCellStyle } from '@/enums/customStyle'
import PicAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/profile/picAvatar'
import {uploadImage as commonUpload} from '@/api/common'
import {ExportType, Gender, Nations} from '@/enums/common'
import {checkIdcard} from '@/utils/utilLibrary/validate'
import {getYearList} from '@/utils/utilLibrary/getYearList'
import {getNewYear} from "@/api/smartSchool/gradeWork/classView";
import { uploadImage as commonUpload } from '@/api/common'
import { ExportType, Gender, Nations } from '@/enums/common'
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { getYearList } from '@/utils/utilLibrary/getYearList'
import { getNewYear } from "@/api/smartSchool/gradeWork/classView";
export default {
name: 'studentManage',
components: {PicAvatar, GradeClassSelect},
components: { PicAvatar, GradeClassSelect },
dicts: ['only_child', 'regist_type', 'sys_user_sex', 'Grade', 'Class', 'student_type', 'Whether_Delete', 'child_state', 'politics_tatus', 'student_nature'],
data() {
return {
......@@ -530,22 +517,22 @@ export default {
pic: [],
// 隐藏与显示列信息
columns: [
{key: 0, label: `头像`, visible: true},
{key: 1, label: `姓名`, visible: true},
{key: 2, label: `性别`, visible: true},
{key: 3, label: `出生日期`, visible: true},
{key: 4, label: `民族`, visible: true},
{key: 5, label: `家庭住址`, visible: true},
{key: 6, label: `籍贯`, visible: true},
{key: 7, label: `年级`, visible: true},
{key: 8, label: `班级`, visible: true},
{key: 9, label: `禁忌食物`, visible: true},
{key: 10, label: `学年`, visible: true},
{key: 11, label: `身份证号`, visible: true},
{key: 12, label: `注册序号`, visible: true},
{key: 13, label: `学生状态`, visible: true},
{key: 14, label: `学生类型`, visible: true},
{key: 15, label: `校园一卡通`, visible: true}
{ key: 0, label: `头像`, visible: true },
{ key: 1, label: `姓名`, visible: true },
{ key: 2, label: `性别`, visible: true },
{ key: 3, label: `出生日期`, visible: true },
{ key: 4, label: `民族`, visible: true },
{ key: 5, label: `家庭住址`, visible: true },
{ key: 6, label: `籍贯`, visible: true },
{ key: 7, label: `年级`, visible: true },
{ key: 8, label: `班级`, visible: true },
{ key: 9, label: `禁忌食物`, visible: true },
{ key: 10, label: `学年`, visible: true },
{ key: 11, label: `身份证号`, visible: true },
{ key: 12, label: `注册序号`, visible: true },
{ key: 13, label: `学生状态`, visible: true },
{ key: 14, label: `学生类型`, visible: true },
{ key: 15, label: `校园一卡通`, visible: true }
],
// 限制选择日期不能超过今天
pickerOptions: {
......@@ -633,7 +620,7 @@ export default {
// 是否更新已经存在的学生数据
updateSupport: 0,
// 设置上传的请求头部
headers: {Authorization: 'Bearer ' + getToken()},
headers: { Authorization: 'Bearer ' + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + '/school/student/importData'
},
......@@ -842,15 +829,15 @@ export default {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != undefined) {
updateStudent(this.form).then(({code}) => {
updateStudent(this.form).then(({ code }) => {
if (code == 200) {
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
}
}).catch(() => {
this.$modal.msgError("修改失败");
}
this.$modal.msgError("修改失败");
}
)
} else {
addStudent(this.form).then(response => {
......@@ -858,8 +845,8 @@ export default {
this.open = false
this.getList()
}).catch(() => {
this.$modal.msgError("新增失败");
}
this.$modal.msgError("新增失败");
}
)
}
}
......@@ -894,7 +881,7 @@ export default {
this.upload.open = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', {dangerouslyUseHTMLString: true})
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList()
},
// 提交上传文件
......@@ -910,9 +897,9 @@ export default {
exportFile(callback) {
const ids = this.ids
const options = [
{type: ExportType.TOTAL, path: '/school/student/export', params: {}},
{type: ExportType.SELECT, path: '/school/student/export/' + ids, params: {}},
{type: ExportType.QUERY, path: '/school/student/export', params: this.queryParams}
{ type: ExportType.TOTAL, path: '/school/student/export', params: {} },
{ type: ExportType.SELECT, path: '/school/student/export/' + ids, params: {} },
{ type: ExportType.QUERY, path: '/school/student/export', params: this.queryParams }
]
callback(options, `学生信息${new Date().getTime()}.xlsx`)
},
......@@ -978,23 +965,49 @@ export default {
const id = row.id
this.$router.push({
path: '/gradeWork/studentManage/parentInfo',
query: {studentId: row.id}
query: { studentId: row.id }
})
},
// // 学生积分
// moralScore(row) {
// this.$router.push({
// path: '/gradeWork/studentmanage/score',
// query: {
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
// }
// })
// },
// 学生嘉奖
award(row) {
this.$router.push({
path: '/classAdviser/studentManage/studentCommendation',
query: {
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
}
})
},
// 学生积分
moralScore(row) {
//违纪
discipline(row) {
this.$router.push({
path: '/gradeWork/studentmanage/score',
path: '/classAdviser/studentManage/discipline',
query: {
id: row.id,
name: row.studentName,
idCard: row.idCard,
schoolNo: row.schoolNo,
schoolYear: this.queryParams.schoolYear
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
}
})
},
// /** 更多下拉菜单 */
// handleCommand(command, row) {
// this[command].apply(undefined, [row])
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入嘉奖级别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 192px;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAwardList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="80px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="60px" />
<el-table-column label="班级类型" align="center" prop="classType" width="80px" />
<el-table-column label="姓名" align="center" prop="name" width="80px" show-overflow-tooltip />
<el-table-column label="班主任" align="center" prop="classTeacher" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖级别" align="center" prop="awardRank" width="80px">
<template slot-scope="scope">
<dict-tag :options="dict.type.student_award_rank" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="嘉奖类别" align="center" prop="awardType" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖时间" align="center" prop="awardTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center" prop="auditState" fixed="right">
<template slot-scope="scope">
<dict-tag :options="dict.type.audit_states" :value="scope.row.auditState" />
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生嘉奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { listStudentAward, listStudentAwardgr, getStudentAward, delStudentAward, addStudentAward, addStudentAwardgr, updateStudentAward, reviewStudentAward, listStudent } from "@/api/smartSchool/classAdviser/studentCommendation";
export default {
name: "StudentAward",
dicts: ['semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states', 'student_award_rank'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生嘉奖表格数据
studentAwardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
query: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
auditState: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
sex: [
{ required: true, message: "性别不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
departmentDirector: [
{ required: true, message: "级部主任不能为空", trigger: "blur" }
],
awardType: [
{ required: true, message: "嘉奖类别不能为空", trigger: "blur" }
],
awardRank: [
{ required: true, message: "嘉奖级别不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "嘉奖时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生嘉奖列表 */
getList() {
this.loading = true;
listStudent(this.queryParams).then(response => {
this.studentAwardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
this.title = "查看学生嘉奖";
}).catch(error => {
this.$modal.closeLoading();
})
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.look = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false
this.getList()
}
})
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
remark: null,
auditState: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加学生嘉奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAward(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改学生嘉奖";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生嘉奖编号为"' + ids + '"的数据项?').then(function () {
return delStudentAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAward/exportYtg', {
...this.queryParams
}, `学生嘉奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="50%" append-to-body>
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px" class="search">
<el-form-item label="学年">
<el-select v-model="queryForm.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期">
<el-select v-model="queryForm.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="queryForm.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankwj" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="gradeName">
<el-select v-model="queryForm.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryForm.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型">
<el-select v-model="queryForm.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="性别">
<el-select v-model="queryForm.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号">
<el-input v-model="queryForm.idCard" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="班主任">
<el-select v-model="queryForm.classTeacherId" placeholder="请选择" :style="{ width: '100%' }" filterable>
<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 label="违纪类别">
<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-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-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-date-picker v-model="queryForm.punishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable style="width: 100%;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-col> -->
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData"
:default-sort="{ prop: 'punishTime', order: 'descending' }" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="schoolYear" sortable label="学年" width="110" show-overflow-tooltip />
<el-table-column align="center" prop="semester" sortable label="学期" show-overflow-tooltip>
<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="届别" show-overflow-tooltip />
<el-table-column align="center" prop="gradeName" sortable label="年级" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.gradeName" />
</template>
</el-table-column>
<el-table-column align="center" prop="className" sortable label="班级" show-overflow-tooltip />
<el-table-column align="center" prop="classType" sortable label="班级类型" width="100" show-overflow-tooltip>
<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="姓名" show-overflow-tooltip />
<el-table-column align="center" prop="sex" sortable label="性别" show-overflow-tooltip>
<!-- <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" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<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" show-overflow-tooltip>
<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" show-overflow-tooltip>
<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="150" show-overflow-tooltip />
<el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip />
<el-table-column align="center" prop="auditState" label="审核状态" fixed="right">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="110">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 查看-->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1200px">
<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">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="form.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankwj" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="年级" prop="gradeName">
<el-select v-model="form.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for=" dict in dict.type.grade_da "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for=" dict in dict.type.class_num "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<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.class_type "
:key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<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="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" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<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="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="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-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-row>
<el-row>
<el-col :span="8">
<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="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="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-col :span="10">
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for=" file in fileList "
:key="file.id">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancelDialog">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDiscipline,// 查看学生违纪列表(管理员)
listDisciplinegr,//查看学生违纪列表(个人)
getDiscipline,//查看详情
addDiscipline,// 新增学生违纪(管理员)
addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { listStudentwj } from "@/api/smartSchool/classAdviser/studentCommendation";
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankwj', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
query: false,
isEdit: false,
gradeLists: [],
//表格数据
tableData: [
],
baseUrl: process.env.VUE_APP_BASE_API,
//查看弹窗表格
ExperimentalData: [],
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,
fileList: [],
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" }
],
gradeName: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
gradeName: [
{ 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();
})
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.fileList = response.data.schoolAccessoryList;
console.log(this.fileList, 'this.fileList');
this.isEdit = true;
this.dialogTableVisible = true;
this.form.gradeId = response.data.gradeId;
const params = { gradeId: this.form.gradeId };
getClassList(params).then(response => {
this.loading = false;
this.classList = response.data;
console.log("this.classList", this.classList);
});
}).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) {
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 delDiscipline(row.id);
}).then(() => {
this.getList();
this.loading = false;
this.$modal.msgSuccess("删除成功");
}).catch(() => {
this.loading = false
});
},
getList() {
listStudentwj(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
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() {
getGrade().then(response => {
this.loading = false;
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: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList();
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
handleExport() {
this.download('/school/discipline/exportYtg', {
...this.queryParams
}, `学生违纪_${new Date().getTime()}.xlsx`)
}
},
}
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
......@@ -184,7 +184,7 @@
</template>
</el-table-column>
<el-table-column key="support" width="150" align="center" prop="support" label="接收资助情况"></el-table-column>
<el-table-column label="操作" align="center" min-width="200px" fixed="right">
<el-table-column label="操作" align="center" min-width="280px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="parentsEdit(scope.row)">家长信息
</el-button>
......@@ -196,6 +196,11 @@
</el-button>
<el-button size="mini" type="text" @click="studentProve(scope.row)" v-hasPermi="['system:student:edit']">学籍证明
</el-button>
<el-button size="mini" type="text" @click="award(scope.row)">嘉奖
</el-button>
<el-button size="mini" type="text" @click="discipline(scope.row)">违纪
</el-button>
</template>
</el-table-column>
</el-table>
......@@ -921,6 +926,33 @@ export default {
// }
// })
// },
// 学生嘉奖
award(row) {
this.$router.push({
path: '/classAdviser/studentManage/studentCommendation',
query: {
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
}
})
},
//违纪
discipline(row) {
this.$router.push({
path: '/classAdviser/studentManage/discipline',
query: {
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
}
})
},
studentTable(row) {
console.log('准备跳转');
const baseUrl = window.location.origin; // 获取当前页面的协议、主机作为前缀URL
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入嘉奖级别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 192px;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAwardList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="80px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="60px" />
<el-table-column label="班级类型" align="center" prop="classType" width="80px" />
<el-table-column label="姓名" align="center" prop="name" width="80px" show-overflow-tooltip />
<el-table-column label="班主任" align="center" prop="classTeacher" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖级别" align="center" prop="awardRank" width="80px">
<template slot-scope="scope">
<dict-tag :options="dict.type.student_award_rank" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="嘉奖类别" align="center" prop="awardType" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖时间" align="center" prop="awardTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center" prop="auditState" fixed="right">
<template slot-scope="scope">
<dict-tag :options="dict.type.audit_states" :value="scope.row.auditState" />
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生嘉奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { listStudentAward, listStudentAwardgr, getStudentAward, delStudentAward, addStudentAward, addStudentAwardgr, updateStudentAward, reviewStudentAward, listStudent } from "@/api/smartSchool/classAdviser/studentCommendation";
export default {
name: "StudentAward",
dicts: ['semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states', 'student_award_rank'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生嘉奖表格数据
studentAwardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
query: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
auditState: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
sex: [
{ required: true, message: "性别不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
departmentDirector: [
{ required: true, message: "级部主任不能为空", trigger: "blur" }
],
awardType: [
{ required: true, message: "嘉奖类别不能为空", trigger: "blur" }
],
awardRank: [
{ required: true, message: "嘉奖级别不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "嘉奖时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生嘉奖列表 */
getList() {
this.loading = true;
listStudent(this.queryParams).then(response => {
this.studentAwardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
this.title = "查看学生嘉奖";
}).catch(error => {
this.$modal.closeLoading();
})
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.look = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false
this.getList()
}
})
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
remark: null,
auditState: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加学生嘉奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAward(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改学生嘉奖";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生嘉奖编号为"' + ids + '"的数据项?').then(function () {
return delStudentAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAward/exportYtg', {
...this.queryParams
}, `学生嘉奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
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