forked from liweijie/education
教员管理,教研室管理
This commit is contained in:
@@ -79,21 +79,7 @@
|
||||
<template slot-scope="scope">
|
||||
<div class="ops-cell">
|
||||
<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 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="showAuditMenu(scope.row)" type="text" size="mini" @click="openAudit(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>
|
||||
</template>
|
||||
@@ -135,23 +121,17 @@
|
||||
<el-form-item label="申请教员编号" prop="sqjybh">
|
||||
<el-input v-model="addForm.sqjybh" placeholder="请输入申请教员编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="教学内容">
|
||||
<el-input v-model="addForm.jxnr" placeholder="选填" />
|
||||
<el-form-item label="学员队名称">
|
||||
<el-input v-model="addForm.xydmc" placeholder="选择可供调课课次后自动带出" />
|
||||
</el-form-item>
|
||||
<el-form-item label="教学要点">
|
||||
<el-input v-model="addForm.jxyd" placeholder="选填" />
|
||||
<el-form-item label="原教室编号">
|
||||
<el-input v-model="addForm.yjsbh" placeholder="选择可供调课课次后自动带出" />
|
||||
</el-form-item>
|
||||
<el-form-item label="教学方法">
|
||||
<el-input v-model="addForm.jxff" placeholder="选填" />
|
||||
<el-form-item label="拟调整教室编号">
|
||||
<el-input v-model="addForm.xjsbh" placeholder="选填" />
|
||||
</el-form-item>
|
||||
<el-form-item label="教学保障备注">
|
||||
<el-input v-model="addForm.jxbzbz" 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 label="原上课时间">
|
||||
<el-input v-model="addForm.ydsjap" placeholder="选择可供调课课次后自动带出" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@@ -180,7 +160,7 @@
|
||||
</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-item label="审批结果" required>
|
||||
<el-radio-group v-model="auditForm.spzt">
|
||||
@@ -188,15 +168,13 @@
|
||||
<el-radio :label="2">发回</el-radio>
|
||||
<el-radio :label="3">拒绝</el-radio>
|
||||
</el-radio-group>
|
||||
<div class="form-tip">点审批即已查收</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="审批意见">
|
||||
<el-input v-model="auditForm.fhyj" type="textarea" :rows="3" placeholder="请输入审批意见(发回/拒绝时必填)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审批人编号" required>
|
||||
<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 label="审批人编号">
|
||||
<el-input v-model="auditForm.sprbh" placeholder="不填默认取当前登录人" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@@ -205,22 +183,6 @@
|
||||
</div>
|
||||
</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>
|
||||
<div v-loading="detailLoading">
|
||||
@@ -329,10 +291,6 @@ import {
|
||||
getScheduleAdjustDetail,
|
||||
submitScheduleAdjust,
|
||||
auditByTeachingOffice,
|
||||
auditByTeachingDepartment,
|
||||
auditByAuthority,
|
||||
receiveByTeachingOffice,
|
||||
receiveByAuthority,
|
||||
cancelScheduleAdjust
|
||||
} from '@/api/teachBusiness/courseRunning'
|
||||
import { listAllSemester } from '@/api/teachBusiness/semester'
|
||||
@@ -402,13 +360,7 @@ export default {
|
||||
// 审批
|
||||
auditVisible: false,
|
||||
auditLoading: false,
|
||||
auditTitle: '审批',
|
||||
auditForm: { ssdksqbh: '', auditRole: 'jys', spzt: 1, fhyj: '', sprbh: '', jgbh: '' },
|
||||
// 查收
|
||||
receiveVisible: false,
|
||||
receiveLoading: false,
|
||||
receiveTitle: '查收',
|
||||
receiveForm: { ssdksqbh: '', type: 'jys', csrbh: '', jgbh: '' },
|
||||
auditForm: { ssdksqbh: '', spzt: 1, fhyj: '', sprbh: '' },
|
||||
// 详情
|
||||
detailVisible: false,
|
||||
detailLoading: false,
|
||||
@@ -523,12 +475,10 @@ export default {
|
||||
rq: '',
|
||||
jc: 1,
|
||||
sqjybh: this.curUserName,
|
||||
jxnr: '',
|
||||
jxyd: '',
|
||||
jxff: '',
|
||||
jxbzbz: '',
|
||||
ycxx: '',
|
||||
bz: ''
|
||||
xydmc: '',
|
||||
yjsbh: '',
|
||||
xjsbh: '',
|
||||
ydsjap: ''
|
||||
}
|
||||
this.$nextTick(() => this.$refs.addForm && this.$refs.addForm.clearValidate())
|
||||
this.addVisible = true
|
||||
@@ -545,11 +495,16 @@ export default {
|
||||
this.lessonDialogVisible = true
|
||||
}).catch(() => {
|
||||
this.lessonLoading = false
|
||||
this.$message.info('后端暂未提供可供调课课次接口,请手动填写课次编号')
|
||||
this.$message.info('加载可供调课课次失败,请手动填写课次编号')
|
||||
})
|
||||
},
|
||||
pickLesson(row) {
|
||||
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.$message.success('已选择课次:' + (row.kcmc || row.sskcbbh))
|
||||
},
|
||||
@@ -564,7 +519,7 @@ export default {
|
||||
nd: this.addForm.nd,
|
||||
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]
|
||||
})
|
||||
this.addLoading = true
|
||||
@@ -580,46 +535,31 @@ export default {
|
||||
},
|
||||
/* ---------- 审批 ---------- */
|
||||
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) {
|
||||
const titleMap = { jys: '教研室审批', jxx: '教学系审批', jg: '机关审批' }
|
||||
this.auditTitle = titleMap[role] || '审批'
|
||||
openAudit(row) {
|
||||
this.auditForm = {
|
||||
ssdksqbh: row.ssdksqbh,
|
||||
auditRole: role,
|
||||
spzt: 1,
|
||||
fhyj: '',
|
||||
sprbh: this.curUserName,
|
||||
jgbh: ''
|
||||
sprbh: ''
|
||||
}
|
||||
this.auditVisible = true
|
||||
},
|
||||
submitAudit() {
|
||||
const f = this.auditForm
|
||||
if (!f.sprbh) {
|
||||
this.$message.warning('请填写审批人编号')
|
||||
return
|
||||
}
|
||||
if (f.auditRole === 'jg' && !f.jgbh) {
|
||||
this.$message.warning('请填写机关编号')
|
||||
if (f.spzt !== 1 && !f.fhyj) {
|
||||
this.$message.warning('发回/拒绝时请填写审批意见')
|
||||
return
|
||||
}
|
||||
const payload = {
|
||||
ssdksqbh: f.ssdksqbh,
|
||||
auditRole: f.auditRole,
|
||||
spzt: f.spzt,
|
||||
fhyj: f.fhyj,
|
||||
sprbh: f.sprbh
|
||||
}
|
||||
if (f.jgbh) payload.jgbh = f.jgbh
|
||||
const apiMap = {
|
||||
jys: auditByTeachingOffice,
|
||||
jxx: auditByTeachingDepartment,
|
||||
jg: auditByAuthority
|
||||
fhyj: f.fhyj
|
||||
}
|
||||
if (f.sprbh) payload.sprbh = f.sprbh
|
||||
this.auditLoading = true
|
||||
apiMap[f.auditRole](payload).then(() => {
|
||||
auditByTeachingOffice(payload).then(() => {
|
||||
this.auditLoading = false
|
||||
this.auditVisible = false
|
||||
this.$message.success('审批成功')
|
||||
@@ -628,48 +568,11 @@ export default {
|
||||
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) {
|
||||
this.$confirm('确认撤销该调课申请?撤销后课次将恢复原时间。', '提示', { type: 'warning' })
|
||||
this.$confirm('确认撤销该调课申请?', '提示', { type: 'warning' })
|
||||
.then(() => {
|
||||
cancelScheduleAdjust({ ssdksqbh: row.ssdksqbh, sqjybh: row.sqjybh }).then(() => {
|
||||
cancelScheduleAdjust({ ssdksqbh: row.ssdksqbh }).then(() => {
|
||||
this.$message.success('撤销成功')
|
||||
this.loadList()
|
||||
}).catch(() => {})
|
||||
@@ -791,6 +694,13 @@ export default {
|
||||
gap: 0 4px;
|
||||
}
|
||||
|
||||
.form-tip {
|
||||
font-size: 12px;
|
||||
color: #909399;
|
||||
line-height: 1.4;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.pick-lesson-btn {
|
||||
margin-top: 6px;
|
||||
width: 100%;
|
||||
|
||||
Reference in New Issue
Block a user