教员管理,教研室管理
This commit is contained in:
@@ -21,13 +21,13 @@ export function listTeachingPlan(params) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 调课申请管理 /course-running/adjust ====================
|
// ==================== 调课申请管理 /course-running/adjust ====================
|
||||||
// 接口依据:CourseRunningController(前端 baseURL 为 /api,此处不重复 /api 前缀)
|
// 接口依据:CourseRunningController(类上 @RequestMapping("/course-running"),前端 baseURL 为 /api,此处不重复 /api 前缀)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询调课申请列表
|
* 分页查询调课申请列表
|
||||||
* GET /adjust/list
|
* GET /course-running/adjust/list
|
||||||
* 查询参数(ScheduleAdjustQueryDTO):sskcbbh 课次编号、sqjybh 申请教员编号、nd 年度、
|
* 查询参数(ScheduleAdjustQueryDTO):sskcbbh 课次编号、sqjybh 申请教员编号、nd 年度、
|
||||||
* jyspzzt 教研室审批状态、jyscszt 教研室查收状态、jgspzt 机关审批状态、sczt 删除状态、
|
* jyspzzt 教研室审批状态、jyscszt 教研室查收状态、sczt 删除状态、
|
||||||
* cjsjStart/cjsjEnd 申请日期范围(ISO 格式)、pageNum、pageSize
|
* cjsjStart/cjsjEnd 申请日期范围(ISO 格式)、pageNum、pageSize
|
||||||
* 返回:PageResult<ScheduleAdjustApplyVO>(records/total)
|
* 返回:PageResult<ScheduleAdjustApplyVO>(records/total)
|
||||||
*/
|
*/
|
||||||
@@ -40,11 +40,10 @@ export function listScheduleAdjust(params) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询可供调课课次
|
* 查询当前教员可供调课的课次
|
||||||
* GET /adjust/lessons
|
* GET /course-running/adjust/lessons
|
||||||
* 查询参数:nd 学期年度
|
* 查询参数:nd 年度(可选)
|
||||||
* 返回:List<AdjustableLessonVO>
|
* 返回:List<AdjustableLessonVO>(kcmc/rq/jc/xydmc/kcxh/jsbh/sskcbbh 等)
|
||||||
* 注意:后端当前未实现该接口,调用会报错(页面已做兜底提示)
|
|
||||||
*/
|
*/
|
||||||
export function listAdjustableLessons(params) {
|
export function listAdjustableLessons(params) {
|
||||||
return request({
|
return request({
|
||||||
@@ -56,7 +55,7 @@ export function listAdjustableLessons(params) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询调课申请详情
|
* 查询调课申请详情
|
||||||
* GET /adjust/detail
|
* GET /course-running/adjust/detail
|
||||||
* @param ssdksqbh 调课申请编号
|
* @param ssdksqbh 调课申请编号
|
||||||
* 返回:ScheduleAdjustDetailVO
|
* 返回:ScheduleAdjustDetailVO
|
||||||
*/
|
*/
|
||||||
@@ -70,10 +69,10 @@ export function getScheduleAdjustDetail(ssdksqbh) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交调课申请
|
* 提交调课申请
|
||||||
* POST /adjust/submit
|
* POST /course-running/adjust/submit
|
||||||
* 请求体(ScheduleAdjustApplyDTO):sskcbbh 课次编号、sy 调课事由、rq 新日期、jc 新节次、
|
* 请求体(ScheduleAdjustApplyDTO)核心字段:sskcbbh 课次编号、sy 调课事由、rq 调课后新日期、
|
||||||
* nd 年度、sqjybh 申请教员编号、jxnr 教学内容、jxyd 教学要点、jxff 教学方法、
|
* jc 调课后新节次、nd 年度、sqjybh 申请教员编号(可选 ydsjap 原日期节次描述、xydrwbh/kbh/
|
||||||
* jxbzbz 教学保障备注、ycxx 用车信息、bz 备注、roomList/teacherList/teamList/supportList
|
* kcbbh/xydmc/jysdh/yjsbh/xjsbh/kcmc/sqjyxm 由课次自动带出)
|
||||||
*/
|
*/
|
||||||
export function submitScheduleAdjust(data) {
|
export function submitScheduleAdjust(data) {
|
||||||
return request({
|
return request({
|
||||||
@@ -85,8 +84,9 @@ export function submitScheduleAdjust(data) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 教研室审批调课申请
|
* 教研室审批调课申请
|
||||||
* POST /adjust/audit/jys
|
* POST /course-running/adjust/audit/jys
|
||||||
* 请求体(ScheduleAdjustAuditDTO):ssdksqbh、auditRole=jys、spzt(1同意/2发回/3拒绝)、fhyj、sprbh
|
* 请求体(ScheduleAdjustAuditDTO):ssdksqbh(必填)、spzt(1同意/2发回/3拒绝)、
|
||||||
|
* fhyj(审批意见,发回时填写)、sprbh(审批人编号,不传时取当前登录人;点审批即已查收)
|
||||||
*/
|
*/
|
||||||
export function auditByTeachingOffice(data) {
|
export function auditByTeachingOffice(data) {
|
||||||
return request({
|
return request({
|
||||||
@@ -96,66 +96,10 @@ export function auditByTeachingOffice(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 教研室查收调课申请
|
|
||||||
* POST /adjust/receive/jys
|
|
||||||
* @param ssdksqbh 调课申请编号
|
|
||||||
* @param csrbh 查收人编号
|
|
||||||
*/
|
|
||||||
export function receiveByTeachingOffice(params) {
|
|
||||||
return request({
|
|
||||||
url: '/course-running/adjust/receive/jys',
|
|
||||||
method: 'post',
|
|
||||||
params
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 教学系审批调课申请
|
|
||||||
* POST /adjust/audit/jxx
|
|
||||||
* 请求体(ScheduleAdjustAuditDTO):ssdksqbh、auditRole=jxx、spzt、fhyj、sprbh
|
|
||||||
*/
|
|
||||||
export function auditByTeachingDepartment(data) {
|
|
||||||
return request({
|
|
||||||
url: '/course-running/adjust/audit/jxx',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 机关审批调课申请
|
|
||||||
* POST /adjust/audit/jg
|
|
||||||
* 请求体(ScheduleAdjustAuditDTO):ssdksqbh、auditRole=jg、spzt、fhyj、sprbh、jgbh(机关编号必填)
|
|
||||||
*/
|
|
||||||
export function auditByAuthority(data) {
|
|
||||||
return request({
|
|
||||||
url: '/course-running/adjust/audit/jg',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 机关查收调课申请
|
|
||||||
* POST /adjust/receive/jg
|
|
||||||
* @param ssdksqbh 调课申请编号
|
|
||||||
* @param jgbh 机关编号
|
|
||||||
* @param csrbh 查收人编号
|
|
||||||
*/
|
|
||||||
export function receiveByAuthority(params) {
|
|
||||||
return request({
|
|
||||||
url: '/course-running/adjust/receive/jg',
|
|
||||||
method: 'post',
|
|
||||||
params
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 撤销调课申请
|
* 撤销调课申请
|
||||||
* DELETE /adjust/cancel
|
* DELETE /course-running/adjust/cancel
|
||||||
* @param ssdksqbh 调课申请编号
|
* @param params { ssdksqbh, sqjybh }
|
||||||
* @param sqjybh 申请教员编号(权限校验)
|
|
||||||
*/
|
*/
|
||||||
export function cancelScheduleAdjust(params) {
|
export function cancelScheduleAdjust(params) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@@ -79,21 +79,7 @@
|
|||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="ops-cell">
|
<div class="ops-cell">
|
||||||
<el-button type="text" size="mini" icon="el-icon-view" @click="openDetail(scope.row)">详情</el-button>
|
<el-button type="text" size="mini" icon="el-icon-view" @click="openDetail(scope.row)">详情</el-button>
|
||||||
<el-dropdown v-if="showAuditMenu(scope.row)" trigger="click" @command="cmd => openAudit(scope.row, cmd)">
|
<el-button v-if="showAuditMenu(scope.row)" type="text" size="mini" @click="openAudit(scope.row)">审批</el-button>
|
||||||
<el-button type="text" size="mini" @click.stop>审批<i class="el-icon-arrow-down el-icon--right" /></el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item v-if="scope.row.jyspzzt === 0" command="jys">教研室审批</el-dropdown-item>
|
|
||||||
<el-dropdown-item v-if="scope.row.jyspzzt === 1" command="jxx">教学系审批</el-dropdown-item>
|
|
||||||
<el-dropdown-item v-if="scope.row.jyspzzt === 1" command="jg">机关审批</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
<el-dropdown v-if="showReceiveMenu(scope.row)" trigger="click" @command="cmd => openReceive(scope.row, cmd)">
|
|
||||||
<el-button type="text" size="mini" @click.stop>查收<i class="el-icon-arrow-down el-icon--right" /></el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item v-if="scope.row.jyscszt === 0" command="jys">教研室查收</el-dropdown-item>
|
|
||||||
<el-dropdown-item command="jg">机关查收</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
<el-button v-if="scope.row.sczt === 0 && scope.row.jyspzzt !== 1" type="text" size="mini" class="danger-btn" @click="handleCancel(scope.row)">撤销</el-button>
|
<el-button v-if="scope.row.sczt === 0 && scope.row.jyspzzt !== 1" type="text" size="mini" class="danger-btn" @click="handleCancel(scope.row)">撤销</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -135,23 +121,17 @@
|
|||||||
<el-form-item label="申请教员编号" prop="sqjybh">
|
<el-form-item label="申请教员编号" prop="sqjybh">
|
||||||
<el-input v-model="addForm.sqjybh" placeholder="请输入申请教员编号" />
|
<el-input v-model="addForm.sqjybh" placeholder="请输入申请教员编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="教学内容">
|
<el-form-item label="学员队名称">
|
||||||
<el-input v-model="addForm.jxnr" placeholder="选填" />
|
<el-input v-model="addForm.xydmc" placeholder="选择可供调课课次后自动带出" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="教学要点">
|
<el-form-item label="原教室编号">
|
||||||
<el-input v-model="addForm.jxyd" placeholder="选填" />
|
<el-input v-model="addForm.yjsbh" placeholder="选择可供调课课次后自动带出" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="教学方法">
|
<el-form-item label="拟调整教室编号">
|
||||||
<el-input v-model="addForm.jxff" placeholder="选填" />
|
<el-input v-model="addForm.xjsbh" placeholder="选填" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="教学保障备注">
|
<el-form-item label="原上课时间">
|
||||||
<el-input v-model="addForm.jxbzbz" placeholder="选填" />
|
<el-input v-model="addForm.ydsjap" placeholder="选择可供调课课次后自动带出" />
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="用车信息">
|
|
||||||
<el-input v-model="addForm.ycxx" placeholder="选填" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="备注">
|
|
||||||
<el-input v-model="addForm.bz" type="textarea" :rows="2" placeholder="选填" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@@ -180,7 +160,7 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 审批弹窗 -->
|
<!-- 审批弹窗 -->
|
||||||
<el-dialog :title="auditTitle" :visible.sync="auditVisible" width="520px" append-to-body>
|
<el-dialog title="教研室审批" :visible.sync="auditVisible" width="520px" append-to-body>
|
||||||
<el-form ref="auditForm" :model="auditForm" label-width="100px">
|
<el-form ref="auditForm" :model="auditForm" label-width="100px">
|
||||||
<el-form-item label="审批结果" required>
|
<el-form-item label="审批结果" required>
|
||||||
<el-radio-group v-model="auditForm.spzt">
|
<el-radio-group v-model="auditForm.spzt">
|
||||||
@@ -188,15 +168,13 @@
|
|||||||
<el-radio :label="2">发回</el-radio>
|
<el-radio :label="2">发回</el-radio>
|
||||||
<el-radio :label="3">拒绝</el-radio>
|
<el-radio :label="3">拒绝</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
<div class="form-tip">点审批即已查收</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审批意见">
|
<el-form-item label="审批意见">
|
||||||
<el-input v-model="auditForm.fhyj" type="textarea" :rows="3" placeholder="请输入审批意见(发回/拒绝时必填)" />
|
<el-input v-model="auditForm.fhyj" type="textarea" :rows="3" placeholder="请输入审批意见(发回/拒绝时必填)" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审批人编号" required>
|
<el-form-item label="审批人编号">
|
||||||
<el-input v-model="auditForm.sprbh" placeholder="请输入审批人编号" />
|
<el-input v-model="auditForm.sprbh" placeholder="不填默认取当前登录人" />
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="auditForm.auditRole === 'jg'" label="机关编号" required>
|
|
||||||
<el-input v-model="auditForm.jgbh" placeholder="请输入机关编号" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@@ -205,22 +183,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 查收弹窗 -->
|
|
||||||
<el-dialog :title="receiveTitle" :visible.sync="receiveVisible" width="460px" append-to-body>
|
|
||||||
<el-form ref="receiveForm" :model="receiveForm" label-width="100px">
|
|
||||||
<el-form-item v-if="receiveForm.type === 'jg'" label="机关编号" required>
|
|
||||||
<el-input v-model="receiveForm.jgbh" placeholder="请输入机关编号" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="查收人编号" required>
|
|
||||||
<el-input v-model="receiveForm.csrbh" placeholder="请输入查收人编号" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button type="primary" :loading="receiveLoading" @click="submitReceive">确定</el-button>
|
|
||||||
<el-button @click="receiveVisible = false">取消</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
<!-- 查看详情弹窗 -->
|
<!-- 查看详情弹窗 -->
|
||||||
<el-dialog title="申请详情" :visible.sync="detailVisible" width="760px" append-to-body>
|
<el-dialog title="申请详情" :visible.sync="detailVisible" width="760px" append-to-body>
|
||||||
<div v-loading="detailLoading">
|
<div v-loading="detailLoading">
|
||||||
@@ -329,10 +291,6 @@ import {
|
|||||||
getScheduleAdjustDetail,
|
getScheduleAdjustDetail,
|
||||||
submitScheduleAdjust,
|
submitScheduleAdjust,
|
||||||
auditByTeachingOffice,
|
auditByTeachingOffice,
|
||||||
auditByTeachingDepartment,
|
|
||||||
auditByAuthority,
|
|
||||||
receiveByTeachingOffice,
|
|
||||||
receiveByAuthority,
|
|
||||||
cancelScheduleAdjust
|
cancelScheduleAdjust
|
||||||
} from '@/api/teachBusiness/courseRunning'
|
} from '@/api/teachBusiness/courseRunning'
|
||||||
import { listAllSemester } from '@/api/teachBusiness/semester'
|
import { listAllSemester } from '@/api/teachBusiness/semester'
|
||||||
@@ -402,13 +360,7 @@ export default {
|
|||||||
// 审批
|
// 审批
|
||||||
auditVisible: false,
|
auditVisible: false,
|
||||||
auditLoading: false,
|
auditLoading: false,
|
||||||
auditTitle: '审批',
|
auditForm: { ssdksqbh: '', spzt: 1, fhyj: '', sprbh: '' },
|
||||||
auditForm: { ssdksqbh: '', auditRole: 'jys', spzt: 1, fhyj: '', sprbh: '', jgbh: '' },
|
|
||||||
// 查收
|
|
||||||
receiveVisible: false,
|
|
||||||
receiveLoading: false,
|
|
||||||
receiveTitle: '查收',
|
|
||||||
receiveForm: { ssdksqbh: '', type: 'jys', csrbh: '', jgbh: '' },
|
|
||||||
// 详情
|
// 详情
|
||||||
detailVisible: false,
|
detailVisible: false,
|
||||||
detailLoading: false,
|
detailLoading: false,
|
||||||
@@ -523,12 +475,10 @@ export default {
|
|||||||
rq: '',
|
rq: '',
|
||||||
jc: 1,
|
jc: 1,
|
||||||
sqjybh: this.curUserName,
|
sqjybh: this.curUserName,
|
||||||
jxnr: '',
|
xydmc: '',
|
||||||
jxyd: '',
|
yjsbh: '',
|
||||||
jxff: '',
|
xjsbh: '',
|
||||||
jxbzbz: '',
|
ydsjap: ''
|
||||||
ycxx: '',
|
|
||||||
bz: ''
|
|
||||||
}
|
}
|
||||||
this.$nextTick(() => this.$refs.addForm && this.$refs.addForm.clearValidate())
|
this.$nextTick(() => this.$refs.addForm && this.$refs.addForm.clearValidate())
|
||||||
this.addVisible = true
|
this.addVisible = true
|
||||||
@@ -545,11 +495,16 @@ export default {
|
|||||||
this.lessonDialogVisible = true
|
this.lessonDialogVisible = true
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.lessonLoading = false
|
this.lessonLoading = false
|
||||||
this.$message.info('后端暂未提供可供调课课次接口,请手动填写课次编号')
|
this.$message.info('加载可供调课课次失败,请手动填写课次编号')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
pickLesson(row) {
|
pickLesson(row) {
|
||||||
this.addForm.sskcbbh = row.sskcbbh
|
this.addForm.sskcbbh = row.sskcbbh
|
||||||
|
// 自动带出课次关联字段(若接口返回则回填)
|
||||||
|
;['xydmc', 'yjsbh', 'ydsjap', 'kbh', 'kcbbh', 'xydrwbh', 'jysdh', 'xjsbh', 'kcmc', 'sqjyxm'].forEach(key => {
|
||||||
|
if (row[key] !== undefined && row[key] !== null) this.addForm[key] = row[key]
|
||||||
|
})
|
||||||
|
if (!this.addForm.ydsjap && row.rq) this.addForm.ydsjap = this.fmtRqJc(row.rq, row.jc)
|
||||||
this.lessonDialogVisible = false
|
this.lessonDialogVisible = false
|
||||||
this.$message.success('已选择课次:' + (row.kcmc || row.sskcbbh))
|
this.$message.success('已选择课次:' + (row.kcmc || row.sskcbbh))
|
||||||
},
|
},
|
||||||
@@ -564,7 +519,7 @@ export default {
|
|||||||
nd: this.addForm.nd,
|
nd: this.addForm.nd,
|
||||||
sqjybh: this.addForm.sqjybh
|
sqjybh: this.addForm.sqjybh
|
||||||
}
|
}
|
||||||
;['jxnr', 'jxyd', 'jxff', 'jxbzbz', 'ycxx', 'bz'].forEach(key => {
|
;['xydmc', 'yjsbh', 'xjsbh', 'ydsjap', 'kbh', 'kcbbh', 'xydrwbh', 'jysdh', 'kcmc', 'sqjyxm'].forEach(key => {
|
||||||
if (this.addForm[key]) payload[key] = this.addForm[key]
|
if (this.addForm[key]) payload[key] = this.addForm[key]
|
||||||
})
|
})
|
||||||
this.addLoading = true
|
this.addLoading = true
|
||||||
@@ -580,46 +535,31 @@ export default {
|
|||||||
},
|
},
|
||||||
/* ---------- 审批 ---------- */
|
/* ---------- 审批 ---------- */
|
||||||
showAuditMenu(row) {
|
showAuditMenu(row) {
|
||||||
return row.sczt === 0 && (row.jyspzzt === 0 || row.jyspzzt === 1)
|
return row.sczt === 0 && (row.jyspzzt === 0 || row.jyspzzt === 2 || row.jyspzzt === 3)
|
||||||
},
|
},
|
||||||
openAudit(row, role) {
|
openAudit(row) {
|
||||||
const titleMap = { jys: '教研室审批', jxx: '教学系审批', jg: '机关审批' }
|
|
||||||
this.auditTitle = titleMap[role] || '审批'
|
|
||||||
this.auditForm = {
|
this.auditForm = {
|
||||||
ssdksqbh: row.ssdksqbh,
|
ssdksqbh: row.ssdksqbh,
|
||||||
auditRole: role,
|
|
||||||
spzt: 1,
|
spzt: 1,
|
||||||
fhyj: '',
|
fhyj: '',
|
||||||
sprbh: this.curUserName,
|
sprbh: ''
|
||||||
jgbh: ''
|
|
||||||
}
|
}
|
||||||
this.auditVisible = true
|
this.auditVisible = true
|
||||||
},
|
},
|
||||||
submitAudit() {
|
submitAudit() {
|
||||||
const f = this.auditForm
|
const f = this.auditForm
|
||||||
if (!f.sprbh) {
|
if (f.spzt !== 1 && !f.fhyj) {
|
||||||
this.$message.warning('请填写审批人编号')
|
this.$message.warning('发回/拒绝时请填写审批意见')
|
||||||
return
|
|
||||||
}
|
|
||||||
if (f.auditRole === 'jg' && !f.jgbh) {
|
|
||||||
this.$message.warning('请填写机关编号')
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const payload = {
|
const payload = {
|
||||||
ssdksqbh: f.ssdksqbh,
|
ssdksqbh: f.ssdksqbh,
|
||||||
auditRole: f.auditRole,
|
|
||||||
spzt: f.spzt,
|
spzt: f.spzt,
|
||||||
fhyj: f.fhyj,
|
fhyj: f.fhyj
|
||||||
sprbh: f.sprbh
|
|
||||||
}
|
|
||||||
if (f.jgbh) payload.jgbh = f.jgbh
|
|
||||||
const apiMap = {
|
|
||||||
jys: auditByTeachingOffice,
|
|
||||||
jxx: auditByTeachingDepartment,
|
|
||||||
jg: auditByAuthority
|
|
||||||
}
|
}
|
||||||
|
if (f.sprbh) payload.sprbh = f.sprbh
|
||||||
this.auditLoading = true
|
this.auditLoading = true
|
||||||
apiMap[f.auditRole](payload).then(() => {
|
auditByTeachingOffice(payload).then(() => {
|
||||||
this.auditLoading = false
|
this.auditLoading = false
|
||||||
this.auditVisible = false
|
this.auditVisible = false
|
||||||
this.$message.success('审批成功')
|
this.$message.success('审批成功')
|
||||||
@@ -628,48 +568,11 @@ export default {
|
|||||||
this.auditLoading = false
|
this.auditLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/* ---------- 查收 ---------- */
|
|
||||||
showReceiveMenu(row) {
|
|
||||||
return row.sczt === 0 && row.jyspzzt === 1
|
|
||||||
},
|
|
||||||
openReceive(row, type) {
|
|
||||||
this.receiveTitle = type === 'jys' ? '教研室查收' : '机关查收'
|
|
||||||
this.receiveForm = {
|
|
||||||
ssdksqbh: row.ssdksqbh,
|
|
||||||
type: type,
|
|
||||||
csrbh: this.curUserName,
|
|
||||||
jgbh: ''
|
|
||||||
}
|
|
||||||
this.receiveVisible = true
|
|
||||||
},
|
|
||||||
submitReceive() {
|
|
||||||
const f = this.receiveForm
|
|
||||||
if (!f.csrbh) {
|
|
||||||
this.$message.warning('请填写查收人编号')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (f.type === 'jg' && !f.jgbh) {
|
|
||||||
this.$message.warning('请填写机关编号')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const params = { ssdksqbh: f.ssdksqbh, csrbh: f.csrbh }
|
|
||||||
if (f.jgbh) params.jgbh = f.jgbh
|
|
||||||
const api = f.type === 'jys' ? receiveByTeachingOffice : receiveByAuthority
|
|
||||||
this.receiveLoading = true
|
|
||||||
api(params).then(() => {
|
|
||||||
this.receiveLoading = false
|
|
||||||
this.receiveVisible = false
|
|
||||||
this.$message.success('查收成功')
|
|
||||||
this.loadList()
|
|
||||||
}).catch(() => {
|
|
||||||
this.receiveLoading = false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/* ---------- 撤销 ---------- */
|
/* ---------- 撤销 ---------- */
|
||||||
handleCancel(row) {
|
handleCancel(row) {
|
||||||
this.$confirm('确认撤销该调课申请?撤销后课次将恢复原时间。', '提示', { type: 'warning' })
|
this.$confirm('确认撤销该调课申请?', '提示', { type: 'warning' })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
cancelScheduleAdjust({ ssdksqbh: row.ssdksqbh, sqjybh: row.sqjybh }).then(() => {
|
cancelScheduleAdjust({ ssdksqbh: row.ssdksqbh }).then(() => {
|
||||||
this.$message.success('撤销成功')
|
this.$message.success('撤销成功')
|
||||||
this.loadList()
|
this.loadList()
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
@@ -791,6 +694,13 @@ export default {
|
|||||||
gap: 0 4px;
|
gap: 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form-tip {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #909399;
|
||||||
|
line-height: 1.4;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
.pick-lesson-btn {
|
.pick-lesson-btn {
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -103,22 +103,9 @@
|
|||||||
<el-form ref="addFormRef" :model="addForm" :rules="addRules" label-width="140px" class="add-form">
|
<el-form ref="addFormRef" :model="addForm" :rules="addRules" label-width="140px" class="add-form">
|
||||||
<el-divider content-position="left">教员基本信息</el-divider>
|
<el-divider content-position="left">教员基本信息</el-divider>
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="教员编号"><el-input v-model="addForm.teacher.jybh" placeholder="选填" /></el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="教员姓名" prop="teacher.jyxm"><el-input v-model="addForm.teacher.jyxm" placeholder="请输入" /></el-form-item>
|
<el-form-item label="教员姓名" prop="teacher.jyxm"><el-input v-model="addForm.teacher.jyxm" placeholder="请输入" /></el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="教研室代号" prop="teacher.jysdh"><el-input v-model="addForm.teacher.jysdh" placeholder="请输入" /></el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="序号" prop="teacher.xh"><el-input v-model="addForm.teacher.xh" placeholder="请输入" /></el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="性别" prop="teacher.xb">
|
<el-form-item label="性别" prop="teacher.xb">
|
||||||
<el-select v-model="addForm.teacher.xb" style="width:100%">
|
<el-select v-model="addForm.teacher.xb" style="width:100%">
|
||||||
@@ -126,33 +113,55 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="16">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="序号" prop="teacher.xh"><el-input v-model="addForm.teacher.xh" placeholder="请输入" /></el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="身份证号" prop="teacher.sfzh"><el-input v-model="addForm.teacher.sfzh" placeholder="请输入" /></el-form-item>
|
<el-form-item label="身份证号" prop="teacher.sfzh"><el-input v-model="addForm.teacher.sfzh" placeholder="请输入" /></el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="专业技术职务等级" prop="teacher.zyjszwdj"><el-input v-model="addForm.teacher.zyjszwdj" placeholder="请输入" /></el-form-item>
|
<el-form-item label="专业技术职务等级" prop="teacher.zyjszwdj">
|
||||||
|
<el-select v-model="addForm.teacher.zyjszwdj" placeholder="请选择" clearable style="width:100%">
|
||||||
|
<el-option v-for="item in zyjszwdjOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="虚实类型" prop="teacher.xslx">
|
<el-form-item label="虚实类型" prop="teacher.xslx">
|
||||||
<el-select v-model="addForm.teacher.xslx" style="width:100%">
|
<el-radio-group v-model="addForm.teacher.xslx">
|
||||||
<el-option :value="1" label="实教" /><el-option :value="0" label="非实教" />
|
<el-radio :label="1">是</el-radio>
|
||||||
|
<el-radio :label="0">否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="16">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="教员类别" prop="teacher.jylb">
|
||||||
|
<el-select v-model="addForm.teacher.jylb" placeholder="请选择" clearable style="width:100%">
|
||||||
|
<el-option v-for="item in jylbOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="在职类别" prop="teacher.zzlb">
|
||||||
|
<el-select v-model="addForm.teacher.zzlb" placeholder="请选择" clearable style="width:100%">
|
||||||
|
<el-option v-for="item in zzlbOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="教员类别" prop="teacher.jylb"><el-input v-model="addForm.teacher.jylb" placeholder="请输入" /></el-form-item>
|
<el-form-item label="导师类别" prop="teacher.dslb">
|
||||||
</el-col>
|
<el-select v-model="addForm.teacher.dslb" placeholder="请选择" clearable style="width:100%">
|
||||||
<el-col :span="12">
|
<el-option v-for="item in dslbOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
||||||
<el-form-item label="在职类别" prop="teacher.zzlb"><el-input v-model="addForm.teacher.zzlb" placeholder="请输入" /></el-form-item>
|
</el-select>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="导师类别" prop="teacher.dslb"><el-input v-model="addForm.teacher.dslb" placeholder="请输入" /></el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="学缘" prop="teacher.xy"><el-input v-model="addForm.teacher.xy" placeholder="请输入" /></el-form-item>
|
<el-form-item label="学缘" prop="teacher.xy"><el-input v-model="addForm.teacher.xy" placeholder="请输入" /></el-form-item>
|
||||||
@@ -594,6 +603,7 @@ import {
|
|||||||
getTeacherAttribute,
|
getTeacherAttribute,
|
||||||
updateTeacherAttribute
|
updateTeacherAttribute
|
||||||
} from '@/api/teachOffice/teacher'
|
} from '@/api/teachOffice/teacher'
|
||||||
|
import { getDicts } from '@/api/system/dict/data'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Teacher',
|
name: 'Teacher',
|
||||||
@@ -614,14 +624,14 @@ export default {
|
|||||||
addForm: this.createEmptyAddForm(),
|
addForm: this.createEmptyAddForm(),
|
||||||
addRules: {
|
addRules: {
|
||||||
'teacher.jyxm': [{ required: true, message: '请输入教员姓名', trigger: 'blur' }],
|
'teacher.jyxm': [{ required: true, message: '请输入教员姓名', trigger: 'blur' }],
|
||||||
'teacher.jysdh': [{ required: true, message: '请输入教研室代号', trigger: 'blur' }],
|
|
||||||
'teacher.xh': [{ required: true, message: '请输入序号', trigger: 'blur' }],
|
'teacher.xh': [{ required: true, message: '请输入序号', trigger: 'blur' }],
|
||||||
'teacher.zyjszwdj': [{ required: true, message: '请输入专业技术职务等级', trigger: 'blur' }],
|
'teacher.zyjszwdj': [{ required: true, message: '请选择专业技术职务等级', trigger: 'change' }],
|
||||||
'teacher.xslx': [{ required: true, message: '请选择虚实类型', trigger: 'change' }],
|
'teacher.xslx': [{ required: true, message: '请选择虚实类型', trigger: 'change' }],
|
||||||
'teacher.jylb': [{ required: true, message: '请输入教员类别', trigger: 'blur' }],
|
'teacher.jylb': [{ required: true, message: '请选择教员类别', trigger: 'change' }],
|
||||||
'teacher.zzlb': [{ required: true, message: '请输入在职类别', trigger: 'blur' }],
|
'teacher.zzlb': [{ required: true, message: '请选择在职类别', trigger: 'change' }],
|
||||||
'teacher.ewyxkbs': [{ required: true, message: '请输入额外允许开班数', trigger: 'change' }],
|
'teacher.ewyxkbs': [{ required: true, message: '请输入额外允许开班数', trigger: 'change' }],
|
||||||
'teacher.dslb': [{ required: true, message: '请输入导师类别', trigger: 'blur' }],
|
'teacher.dslb': [{ required: true, message: '请选择导师类别', trigger: 'change' }],
|
||||||
'teacher.xy': [{ required: true, message: '请输入学缘', trigger: 'blur' }],
|
'teacher.xy': [{ required: true, message: '请输入学缘', trigger: 'blur' }],
|
||||||
'teacher.sfzh': [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
|
'teacher.sfzh': [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
|
||||||
'teacher.xb': [{ required: true, message: '请选择性别', trigger: 'change' }],
|
'teacher.xb': [{ required: true, message: '请选择性别', trigger: 'change' }],
|
||||||
@@ -659,11 +669,17 @@ export default {
|
|||||||
attributeForm: {},
|
attributeForm: {},
|
||||||
attributeLoading: false,
|
attributeLoading: false,
|
||||||
attributeSaving: false,
|
attributeSaving: false,
|
||||||
attributeJybh: ''
|
attributeJybh: '',
|
||||||
|
// 字典选项
|
||||||
|
zyjszwdjOptions: [],
|
||||||
|
jylbOptions: [],
|
||||||
|
zzlbOptions: [],
|
||||||
|
dslbOptions: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.fetchList()
|
this.fetchList()
|
||||||
|
this.loadDicts()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 统一格式化后端 LocalDateTime(去除 T、截断到秒) */
|
/** 统一格式化后端 LocalDateTime(去除 T、截断到秒) */
|
||||||
@@ -696,6 +712,15 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/** 移除空值 */
|
/** 移除空值 */
|
||||||
|
|
||||||
|
|
||||||
|
loadDicts() {
|
||||||
|
getDicts('teacher_zyjszwdj').then(res => { this.zyjszwdjOptions = res.data || [] }).catch(() => {})
|
||||||
|
getDicts('teacher_jylb').then(res => { this.jylbOptions = res.data || [] }).catch(() => {})
|
||||||
|
getDicts('teacher_zzlb').then(res => { this.zzlbOptions = res.data || [] }).catch(() => {})
|
||||||
|
getDicts('teacher_dslb').then(res => { this.dslbOptions = res.data || [] }).catch(() => {})
|
||||||
|
},
|
||||||
|
|
||||||
cleanPayload(obj) {
|
cleanPayload(obj) {
|
||||||
const payload = {}
|
const payload = {}
|
||||||
Object.keys(obj).forEach(key => {
|
Object.keys(obj).forEach(key => {
|
||||||
@@ -1052,3 +1077,5 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user