forked from liweijie/education
1、学员队期下拉选择;
2、学员信息管理,操作列改为两行显示
This commit is contained in:
+9
@@ -3,6 +3,7 @@ package com.roomroot.web.controller.jwgl;
|
|||||||
import com.roomroot.jwgl.entity.XYXX;
|
import com.roomroot.jwgl.entity.XYXX;
|
||||||
import com.roomroot.jwgl.entity.XYDNDXQJBXXB;
|
import com.roomroot.jwgl.entity.XYDNDXQJBXXB;
|
||||||
import com.roomroot.jwgl.entity.XYDB;
|
import com.roomroot.jwgl.entity.XYDB;
|
||||||
|
import com.roomroot.jwgl.entity.XYDQB;
|
||||||
import com.roomroot.jwgl.entity.PXRW;
|
import com.roomroot.jwgl.entity.PXRW;
|
||||||
import com.roomroot.jwgl.entity.XYXJYDSQB;
|
import com.roomroot.jwgl.entity.XYXJYDSQB;
|
||||||
import com.roomroot.jwgl.entity.XYXJYJJGB;
|
import com.roomroot.jwgl.entity.XYXJYJJGB;
|
||||||
@@ -94,6 +95,14 @@ public class StudentRecordsController {
|
|||||||
return Result.success(studentRecordsService.pageList(query, xyxx));
|
return Result.success(studentRecordsService.pageList(query, xyxx));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学员队期下拉选项(编号+名称),供学员信息表单选择学员队期编号。
|
||||||
|
*/
|
||||||
|
@GetMapping("/period-options")
|
||||||
|
public Result<List<XYDQB>> periodOptions() {
|
||||||
|
return Result.success(studentRecordsService.listPeriodOptions());
|
||||||
|
}
|
||||||
|
|
||||||
// ======================== 学员信息批量导入 ========================
|
// ======================== 学员信息批量导入 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+4
@@ -2,6 +2,7 @@ package com.roomroot.jwgl.service;
|
|||||||
|
|
||||||
import com.roomroot.jwgl.entity.XYXX;
|
import com.roomroot.jwgl.entity.XYXX;
|
||||||
import com.roomroot.jwgl.entity.XYDB;
|
import com.roomroot.jwgl.entity.XYDB;
|
||||||
|
import com.roomroot.jwgl.entity.XYDQB;
|
||||||
import com.roomroot.jwgl.entity.PXRW;
|
import com.roomroot.jwgl.entity.PXRW;
|
||||||
import com.roomroot.jwgl.entity.XYXJYDSQB;
|
import com.roomroot.jwgl.entity.XYXJYDSQB;
|
||||||
import com.roomroot.jwgl.entity.XYXJYJJGB;
|
import com.roomroot.jwgl.entity.XYXJYJJGB;
|
||||||
@@ -39,6 +40,9 @@ public interface StudentRecordsService {
|
|||||||
/** 分页查询学员列表 */
|
/** 分页查询学员列表 */
|
||||||
PageResult<XYXX> pageList(PageQuery query, XYXX xyxx);
|
PageResult<XYXX> pageList(PageQuery query, XYXX xyxx);
|
||||||
|
|
||||||
|
/** 学员队期下拉选项(编号+名称) */
|
||||||
|
List<XYDQB> listPeriodOptions();
|
||||||
|
|
||||||
/** 学籍异动——留级 */
|
/** 学籍异动——留级 */
|
||||||
void retainGrade(String bh);
|
void retainGrade(String bh);
|
||||||
|
|
||||||
|
|||||||
+7
@@ -240,6 +240,13 @@ public class StudentRecordsServiceImpl implements StudentRecordsService {
|
|||||||
query.getPageNum(), query.getPageSize());
|
query.getPageNum(), query.getPageSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<XYDQB> listPeriodOptions() {
|
||||||
|
return xydqbMapper.selectList(new LambdaQueryWrapper<XYDQB>()
|
||||||
|
.select(XYDQB::getBh, XYDQB::getMc, XYDQB::getXydbh)
|
||||||
|
.orderByAsc(XYDQB::getXydbh));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前班次编号关联学员队表、专业表、学员课程成绩,回显年级、专业、班次、考试情况、不及格门数、管理机构。
|
* 当前班次编号关联学员队表、专业表、学员课程成绩,回显年级、专业、班次、考试情况、不及格门数、管理机构。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -9,6 +9,14 @@ export function listStudentRecord(query) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 学员队期下拉选项(bh 编号、mc 名称、xydbh 学员队编号)
|
||||||
|
export function listPeriodOptions() {
|
||||||
|
return request({
|
||||||
|
url: '/student-records/period-options',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 查询学员信息详情(bh 编号必传)
|
// 查询学员信息详情(bh 编号必传)
|
||||||
export function getStudentRecord(bh) {
|
export function getStudentRecord(bh) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@@ -222,12 +222,12 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12"><el-form-item label="学员队期编号" prop="xydqbh"><el-input v-model="formData.xydqbh" placeholder="请输入学员队期编号" /></el-form-item></el-col>
|
<el-col :span="12"><el-form-item label="学员队期编号" prop="xydqbh"><el-select v-model="formData.xydqbh" filterable clearable placeholder="请选择学员队期" class="full-width"><el-option v-for="item in periodOptions" :key="item.bh" :label="item.mc" :value="item.bh" /></el-select></el-form-item></el-col>
|
||||||
<el-col :span="12"><el-form-item label="证件号码" prop="zjhm"><el-input v-model="formData.zjhm" placeholder="请输入证件号码" /></el-form-item></el-col>
|
<el-col :span="12"><el-form-item label="证件号码" prop="zjhm"><el-input v-model="formData.zjhm" placeholder="请输入证件号码" /></el-form-item></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12"><el-form-item label="所属军区" prop="ssjq"><el-input v-model="formData.ssjq" placeholder="请输入所属军区" /></el-form-item></el-col>
|
<el-col :span="12"><el-form-item label="所属军区" prop="ssjq"><el-input v-model="formData.ssjq" placeholder="请输入所属军区" /></el-form-item></el-col>
|
||||||
<el-col :span="12"><el-form-item label="当前班次编号" prop="dqbzbh"><el-input v-model="formData.dqbzbh" placeholder="请输入当前班次编号" /></el-form-item></el-col>
|
<el-col :span="12"><el-form-item label="当前班次编号" prop="dqbzbh"><el-select v-model="formData.dqbzbh" filterable clearable placeholder="请选择班次" class="full-width"><el-option v-for="item in teamOptions" :key="item.xydbh" :label="item.xydmc" :value="item.xydbh" /></el-select></el-form-item></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12"><el-form-item label="军人证件类型" prop="jrzjlx"><el-input v-model="formData.jrzjlx" placeholder="请输入军人证件类型" /></el-form-item></el-col>
|
<el-col :span="12"><el-form-item label="军人证件类型" prop="jrzjlx"><el-input v-model="formData.jrzjlx" placeholder="请输入军人证件类型" /></el-form-item></el-col>
|
||||||
@@ -327,6 +327,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
listStudentRecord,
|
listStudentRecord,
|
||||||
|
listPeriodOptions,
|
||||||
getStudentRecord,
|
getStudentRecord,
|
||||||
addStudentRecord,
|
addStudentRecord,
|
||||||
updateStudentRecord,
|
updateStudentRecord,
|
||||||
@@ -336,6 +337,7 @@ import {
|
|||||||
exportStudentGrades,
|
exportStudentGrades,
|
||||||
exportStudentProcessGrades
|
exportStudentProcessGrades
|
||||||
} from "@/api/studentRecords/studentRecords"
|
} from "@/api/studentRecords/studentRecords"
|
||||||
|
import { listTeam } from '@/api/studentRecords/team'
|
||||||
import { getDicts } from '@/api/system/dict/data'
|
import { getDicts } from '@/api/system/dict/data'
|
||||||
import { optionselect } from '@/api/system/dict/type'
|
import { optionselect } from '@/api/system/dict/type'
|
||||||
|
|
||||||
@@ -423,10 +425,14 @@ export default {
|
|||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
dialogTitle: '新增学员',
|
dialogTitle: '新增学员',
|
||||||
submitting: false,
|
submitting: false,
|
||||||
|
periodOptions: [],
|
||||||
|
periodOptionsLoaded: false,
|
||||||
|
teamOptions: [],
|
||||||
|
teamOptionsLoaded: false,
|
||||||
formData: this.createEmptyForm(),
|
formData: this.createEmptyForm(),
|
||||||
formRules: {
|
formRules: {
|
||||||
xm: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
xm: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
||||||
xydqbh: [{ required: true, message: '请输入学员队期编号', trigger: 'blur' }],
|
xydqbh: [{ required: true, message: '请选择学员队期', trigger: 'change' }],
|
||||||
zjhm: [
|
zjhm: [
|
||||||
{ required: true, message: '请输入证件号码', trigger: 'blur' },
|
{ required: true, message: '请输入证件号码', trigger: 'blur' },
|
||||||
{ validator: validateCertificateNumber, trigger: 'blur' }
|
{ validator: validateCertificateNumber, trigger: 'blur' }
|
||||||
@@ -444,7 +450,7 @@ export default {
|
|||||||
ssjq: [{ required: true, message: '请输入所属军区', trigger: 'blur' }],
|
ssjq: [{ required: true, message: '请输入所属军区', trigger: 'blur' }],
|
||||||
gfs: [{ required: true, message: '请选择国防生', trigger: 'change' }],
|
gfs: [{ required: true, message: '请选择国防生', trigger: 'change' }],
|
||||||
yxckcj: [{ required: true, message: '请选择允许查看成绩', trigger: 'change' }],
|
yxckcj: [{ required: true, message: '请选择允许查看成绩', trigger: 'change' }],
|
||||||
dqbzbh: [{ required: true, message: '请输入当前班次编号', trigger: 'blur' }],
|
dqbzbh: [{ required: true, message: '请选择当前班次', trigger: 'change' }],
|
||||||
yzc: [{ required: true, message: '请选择已注册', trigger: 'change' }],
|
yzc: [{ required: true, message: '请选择已注册', trigger: 'change' }],
|
||||||
jrzjlx: [{ required: true, message: '请输入军人证件类型', trigger: 'blur' }],
|
jrzjlx: [{ required: true, message: '请输入军人证件类型', trigger: 'blur' }],
|
||||||
lxdh: [{ validator: validatePhoneNumber, trigger: 'blur' }]
|
lxdh: [{ validator: validatePhoneNumber, trigger: 'blur' }]
|
||||||
@@ -620,15 +626,36 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
loadPeriodOptions() {
|
||||||
|
if (this.periodOptionsLoaded) return
|
||||||
|
listPeriodOptions().then(res => {
|
||||||
|
this.periodOptions = (res && res.data) || []
|
||||||
|
this.periodOptionsLoaded = true
|
||||||
|
}).catch(() => {})
|
||||||
|
},
|
||||||
|
|
||||||
|
loadTeamOptions() {
|
||||||
|
if (this.teamOptionsLoaded) return
|
||||||
|
listTeam({ pageNum: 1, pageSize: 1000 }).then(res => {
|
||||||
|
const data = (res && res.data) || {}
|
||||||
|
this.teamOptions = data.records || []
|
||||||
|
this.teamOptionsLoaded = true
|
||||||
|
}).catch(() => {})
|
||||||
|
},
|
||||||
|
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.dialogTitle = '新增学员'
|
this.dialogTitle = '新增学员'
|
||||||
this.resetForm()
|
this.resetForm()
|
||||||
|
this.loadPeriodOptions()
|
||||||
|
this.loadTeamOptions()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
|
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.dialogTitle = '编辑学员'
|
this.dialogTitle = '编辑学员'
|
||||||
this.resetForm()
|
this.resetForm()
|
||||||
|
this.loadPeriodOptions()
|
||||||
|
this.loadTeamOptions()
|
||||||
if (!row.bh) {
|
if (!row.bh) {
|
||||||
Object.assign(this.formData, this.createEmptyForm(), row)
|
Object.assign(this.formData, this.createEmptyForm(), row)
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
|
|||||||
@@ -120,13 +120,15 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="bz" label="备注" min-width="120" align="left" header-align="center" show-overflow-tooltip />
|
<el-table-column prop="bz" label="备注" min-width="120" align="left" header-align="center" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="310" align="center" fixed="right" class-name="table-action-column">
|
<el-table-column label="操作" width="210" align="center" fixed="right" class-name="table-action-column">
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
<el-button type="text" size="small" @click="handleEdit(row)">编辑</el-button>
|
<div class="op-btn-grid">
|
||||||
<el-button type="text" size="small" @click="handleEditEventCalendar(row)">班历</el-button>
|
<el-button type="text" size="small" @click="handleEdit(row)">编辑</el-button>
|
||||||
<el-button type="text" size="small" @click="handleEditCalendar(row)">班次课程</el-button>
|
<el-button type="text" size="small" @click="handleEditEventCalendar(row)">班历</el-button>
|
||||||
<el-button type="text" size="small" @click="handleSchedule(row)">排课</el-button>
|
<el-button type="text" size="small" @click="handleEditCalendar(row)">班次课程</el-button>
|
||||||
<el-button type="text" size="small" class="text-danger" @click="handleDeleteRow(row)">删除</el-button>
|
<el-button type="text" size="small" @click="handleSchedule(row)">排课</el-button>
|
||||||
|
<el-button type="text" size="small" class="text-danger" @click="handleDeleteRow(row)">删除</el-button>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -1034,6 +1036,18 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========== 操作列:按钮分两行(三列网格)显示 ==========
|
||||||
|
.op-btn-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
justify-items: center;
|
||||||
|
row-gap: 2px;
|
||||||
|
|
||||||
|
.el-button {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.text-danger {
|
.text-danger {
|
||||||
color: #f56c6c;
|
color: #f56c6c;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user