Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dd_school
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangqi
dd_school
Commits
f6433c06
Commit
f6433c06
authored
Jan 19, 2024
by
zhaopanyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zpy 1.19
parent
0ae2bb52
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
2933 additions
and
157 deletions
+2933
-157
ruoyi-ui/src/views/index.vue
+4
-2
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/schoolAwards/awardEntry/index.vue
+20
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/schoolAwards/awardManagement/index.vue
+19
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/schoolAwards/awardReview/index.vue
+20
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentCommendation/awardEntry/index.vue
+20
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentCommendation/commendationView/index.vue
+19
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentCommendation/rewardManagement/index.vue
+20
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentViolation/ViolationDiscipline/index.vue
+20
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen/index.vue
+21
-0
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentViolation/violationDisciplineentry/index.vue
+20
-0
ruoyi-ui/src/views/smartSchool/classAdviser/headmasterLesson/headmasterLesson.vue
+0
-1
ruoyi-ui/src/views/smartSchool/classAdviser/studentManage/discipline/index.vue
+29
-30
ruoyi-ui/src/views/smartSchool/gradeWork/studentManage/discipline/index.vue
+722
-0
ruoyi-ui/src/views/smartSchool/gradeWork/studentManage/index.vue
+136
-123
ruoyi-ui/src/views/smartSchool/gradeWork/studentManage/studentCommendation/index.vue
+554
-0
ruoyi-ui/src/views/smartSchool/teachAffairAdministration/affairStudentManage/discipline/index.vue
+722
-0
ruoyi-ui/src/views/smartSchool/teachAffairAdministration/affairStudentManage/index.vue
+33
-1
ruoyi-ui/src/views/smartSchool/teachAffairAdministration/affairStudentManage/studentCommendation/index.vue
+554
-0
No files found.
ruoyi-ui/src/views/index.vue
View file @
f6433c06
...
...
@@ -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
:
12
px
!
important
;
}
.
card
-
box
{
padding
-
right
:
5
px
;
padding
-
left
:
5
px
;
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/schoolAwards/awardEntry/index.vue
View file @
f6433c06
...
...
@@ -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
;
/* 蓝色 */
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/schoolAwards/awardManagement/index.vue
View file @
f6433c06
...
...
@@ -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
;
/* 蓝色 */
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/schoolAwards/awardReview/index.vue
View file @
f6433c06
...
...
@@ -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
;
/* 蓝色 */
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentCommendation/awardEntry/index.vue
View file @
f6433c06
...
...
@@ -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
:
#
1
a74be
;
font
-
size
:
16
px
;
}
::
v
-
deep
.
el
-
form
-
item
{
margin
-
bottom
:
12
px
;
}
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentCommendation/commendationView/index.vue
View file @
f6433c06
...
...
@@ -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
:
#
1
a74be
;
font
-
size
:
16
px
;
}
::
v
-
deep
.
el
-
form
-
item
{
margin
-
bottom
:
12
px
;
}
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentCommendation/rewardManagement/index.vue
View file @
f6433c06
...
...
@@ -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
:
#
1
a74be
;
font
-
size
:
16
px
;
}
::
v
-
deep
.
el
-
form
-
item
{
margin
-
bottom
:
12
px
;
}
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentViolation/ViolationDiscipline/index.vue
View file @
f6433c06
...
...
@@ -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
;
}
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen/index.vue
View file @
f6433c06
...
...
@@ -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
;
}
...
...
ruoyi-ui/src/views/smartSchool/awardsDisciplinary/studentViolation/violationDisciplineentry/index.vue
View file @
f6433c06
...
...
@@ -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
;
}
...
...
ruoyi-ui/src/views/smartSchool/classAdviser/headmasterLesson/headmasterLesson.vue
View file @
f6433c06
<
template
>
<div
class=
"app-container "
style=
"padding: 15px 20px 15px 15px;"
>
<el-row>
<el-col
:span=
"20"
>
<el-row>
<el-col>
...
...
ruoyi-ui/src/views/smartSchool/classAdviser/studentManage/discipline/index.vue
View file @
f6433c06
...
...
@@ -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.rank
da
"
:key=
"dict.value"
:label=
"dict.label"
<el-option
v-for=
"dict in dict.type.rank
wj
"
: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.rank
da
"
:key=
"dict.value"
:label=
"dict.label"
<el-option
v-for=
"dict in dict.type.rank
wj
"
: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'
,
'rank
da
'
,
'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'
,
'rank
wj
'
,
'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
:
{
...
...
ruoyi-ui/src/views/smartSchool/gradeWork/studentManage/discipline/index.vue
0 → 100644
View file @
f6433c06
<
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
ruoyi-ui/src/views/smartSchool/gradeWork/studentManage/index.vue
View file @
f6433c06
...
...
@@ -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=
"
18
0px"
fixed=
"right"
>
<el-table-column
label=
"操作"
align=
"center"
min-width=
"
24
0px"
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--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
}
})
},
//
学生积分
moralScor
e
(
row
)
{
//
违纪
disciplin
e
(
row
)
{
this
.
$router
.
push
({
path
:
'/
gradeWork/studentmanage/scor
e'
,
path
:
'/
classAdviser/studentManage/disciplin
e'
,
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])
...
...
ruoyi-ui/src/views/smartSchool/gradeWork/studentManage/studentCommendation/index.vue
0 → 100644
View file @
f6433c06
<
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
:
12
px
;
}
::
v
-
deep
.
el
-
input
--
medium
.
el
-
input__inner
{
height
:
26
px
;
line
-
height
:
26
px
;
}
::
v
-
deep
.
el
-
dialog__body
{
padding
:
10
px
20
px
}
::
v
-
deep
.
el
-
dialog
:
not
(.
is
-
fullscreen
)
{
margin
-
top
:
4
vh
!
important
;
}
.
search
::
v
-
deep
.
el
-
form
-
item__content
{
width
:
200
px
}
<
/style>
\ No newline at end of file
ruoyi-ui/src/views/smartSchool/teachAffairAdministration/affairStudentManage/discipline/index.vue
0 → 100644
View file @
f6433c06
<
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
ruoyi-ui/src/views/smartSchool/teachAffairAdministration/affairStudentManage/index.vue
View file @
f6433c06
...
...
@@ -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=
"2
0
0px"
fixed=
"right"
>
<el-table-column
label=
"操作"
align=
"center"
min-width=
"2
8
0px"
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
...
...
ruoyi-ui/src/views/smartSchool/teachAffairAdministration/affairStudentManage/studentCommendation/index.vue
0 → 100644
View file @
f6433c06
<
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
:
12
px
;
}
::
v
-
deep
.
el
-
input
--
medium
.
el
-
input__inner
{
height
:
26
px
;
line
-
height
:
26
px
;
}
::
v
-
deep
.
el
-
dialog__body
{
padding
:
10
px
20
px
}
::
v
-
deep
.
el
-
dialog
:
not
(.
is
-
fullscreen
)
{
margin
-
top
:
4
vh
!
important
;
}
.
search
::
v
-
deep
.
el
-
form
-
item__content
{
width
:
200
px
}
<
/style>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment