forked from liweijie/education
停用
This commit is contained in:
@@ -10,11 +10,11 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :md="8">
|
||||
<el-form-item label="停用标识">
|
||||
<el-select v-model="searchForm.ty" placeholder="全部" clearable class="w-full">
|
||||
<el-option :value="0" label="正常" />
|
||||
<el-option :value="1" label="停用" />
|
||||
</el-select>
|
||||
<el-form-item label="停用">
|
||||
<el-radio-group v-model="searchForm.ty">
|
||||
<el-radio :label="0">否</el-radio>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :md="8">
|
||||
@@ -296,7 +296,7 @@ export default {
|
||||
loading: false,
|
||||
searchForm: {
|
||||
zydh: '',
|
||||
ty: ''
|
||||
ty: 0
|
||||
},
|
||||
tableData: [],
|
||||
total: 0,
|
||||
@@ -381,8 +381,8 @@ export default {
|
||||
fetchList() {
|
||||
this.loading = true
|
||||
const { zydh, ty } = this.searchForm
|
||||
// 专业代号与停用标识同时给出时走后端 /listByZydhAndTy;否则查全部后本地过滤
|
||||
const useApiQuery = zydh && ty !== '' && ty !== null && ty !== undefined
|
||||
// 专业代号存在时走后端组合查询;否则查全部后按停用标识过滤
|
||||
const useApiQuery = Boolean(zydh)
|
||||
const req = useApiQuery
|
||||
? listSyllabusByZydhAndTy(zydh, ty)
|
||||
: listSyllabus()
|
||||
@@ -390,9 +390,7 @@ export default {
|
||||
let list = response.data || []
|
||||
if (!useApiQuery) {
|
||||
if (zydh) list = list.filter(i => i.zydh && i.zydh.indexOf(zydh) !== -1)
|
||||
if (ty !== '' && ty !== null && ty !== undefined) {
|
||||
list = list.filter(i => Number(i.ty) === Number(ty))
|
||||
}
|
||||
list = list.filter(i => Number(i.ty) === Number(ty))
|
||||
}
|
||||
this.tableData = list
|
||||
this.total = list.length
|
||||
@@ -408,7 +406,7 @@ export default {
|
||||
this.fetchList()
|
||||
},
|
||||
handleReset() {
|
||||
this.searchForm = { zydh: '', ty: '' }
|
||||
this.searchForm = { zydh: '', ty: 0 }
|
||||
this.fetchList()
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
|
||||
@@ -99,16 +99,23 @@
|
||||
<el-dialog title="新增课表调整申请" :visible.sync="addVisible" width="640px" append-to-body>
|
||||
<el-form ref="addForm" :model="addForm" :rules="addRules" label-width="110px">
|
||||
<el-form-item label="年度" prop="nd">
|
||||
<el-select v-model="addForm.nd" placeholder="请选择年度" style="width: 100%">
|
||||
<el-select v-model="addForm.nd" placeholder="请选择年度" style="width: 100%" @change="handleAddYearChange">
|
||||
<el-option v-for="y in yearOptions" :key="y" :label="y" :value="y" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="课次编号" prop="sskcbbh">
|
||||
<el-input v-model="addForm.sskcbbh" placeholder="请输入课次编号" />
|
||||
<el-input v-model="addForm.sskcbbh" placeholder="请从可供调课课次中选择" disabled />
|
||||
<el-button type="primary" plain size="mini" class="pick-lesson-btn" :loading="lessonLoading" @click="loadAdjustableLessons">选择可供调课课次</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="调课事由" prop="sy">
|
||||
<el-input v-model="addForm.sy" type="textarea" :rows="2" placeholder="请输入调课事由" />
|
||||
<el-input
|
||||
v-model="addForm.sy"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
placeholder="请输入调课事由"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="拟调整日期" prop="rq">
|
||||
<el-date-picker v-model="addForm.rq" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 100%" />
|
||||
@@ -118,20 +125,34 @@
|
||||
<el-option v-for="n in jcOptions" :key="n" :label="jcLabel(n)" :value="n" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="申请教员编号" prop="sqjybh">
|
||||
<el-input v-model="addForm.sqjybh" placeholder="请输入申请教员编号" />
|
||||
<el-form-item label="申请教员">
|
||||
<el-input v-model="addForm.sqjybh" placeholder="由服务端根据当前登录人写入" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="学员队名称">
|
||||
<el-input v-model="addForm.xydmc" placeholder="选择可供调课课次后自动带出" />
|
||||
<el-input v-model="addForm.xydmc" placeholder="选择可供调课课次后自动带出" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="原教室编号">
|
||||
<el-input v-model="addForm.yjsbh" placeholder="选择可供调课课次后自动带出" />
|
||||
<el-input v-model="addForm.yjsbh" placeholder="选择可供调课课次后自动带出" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="拟调整教室编号">
|
||||
<el-input v-model="addForm.xjsbh" placeholder="选填" />
|
||||
<el-select
|
||||
v-model="addForm.xjsbh"
|
||||
placeholder="请选择拟调整教室"
|
||||
clearable
|
||||
filterable
|
||||
:loading="classroomLoading"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="room in classroomOptions"
|
||||
:key="room.jsbh"
|
||||
:label="classroomOptionLabel(room)"
|
||||
:value="room.jsbh"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="原上课时间">
|
||||
<el-input v-model="addForm.ydsjap" placeholder="选择可供调课课次后自动带出" />
|
||||
<el-input v-model="addForm.ydsjap" placeholder="选择可供调课课次后自动带出" disabled />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@@ -294,6 +315,7 @@ import {
|
||||
cancelScheduleAdjust
|
||||
} from '@/api/teachBusiness/courseRunning'
|
||||
import { listAllSemester } from '@/api/teachBusiness/semester'
|
||||
import { listAllClassroom } from '@/api/teachBusiness/classroom'
|
||||
|
||||
// 节次 -> 节次区间映射
|
||||
const JC_SECTION = {
|
||||
@@ -347,16 +369,17 @@ export default {
|
||||
addForm: {},
|
||||
addRules: {
|
||||
nd: [{ required: true, message: '请选择年度', trigger: 'change' }],
|
||||
sskcbbh: [{ required: true, message: '请输入课次编号', trigger: 'blur' }],
|
||||
sskcbbh: [{ required: true, message: '请选择可供调课课次', trigger: 'change' }],
|
||||
sy: [{ required: true, message: '请输入调课事由', trigger: 'blur' }],
|
||||
rq: [{ required: true, message: '请选择拟调整日期', trigger: 'change' }],
|
||||
jc: [{ required: true, message: '请选择拟调整节次', trigger: 'change' }],
|
||||
sqjybh: [{ required: true, message: '请输入申请教员编号', trigger: 'blur' }]
|
||||
jc: [{ required: true, message: '请选择拟调整节次', trigger: 'change' }]
|
||||
},
|
||||
// 可供调课课次
|
||||
lessonDialogVisible: false,
|
||||
lessonLoading: false,
|
||||
lessonOptions: [],
|
||||
classroomLoading: false,
|
||||
classroomOptions: [],
|
||||
// 审批
|
||||
auditVisible: false,
|
||||
auditLoading: false,
|
||||
@@ -480,9 +503,39 @@ export default {
|
||||
xjsbh: '',
|
||||
ydsjap: ''
|
||||
}
|
||||
this.lessonOptions = []
|
||||
this.loadClassroomOptions()
|
||||
this.$nextTick(() => this.$refs.addForm && this.$refs.addForm.clearValidate())
|
||||
this.addVisible = true
|
||||
},
|
||||
handleAddYearChange() {
|
||||
this.addForm.sskcbbh = ''
|
||||
this.addForm.xydmc = ''
|
||||
this.addForm.yjsbh = ''
|
||||
this.addForm.xjsbh = ''
|
||||
this.addForm.ydsjap = ''
|
||||
this.lessonOptions = []
|
||||
},
|
||||
loadClassroomOptions() {
|
||||
this.classroomLoading = true
|
||||
return listAllClassroom().then(response => {
|
||||
const classrooms = Array.isArray(response.data) ? response.data : []
|
||||
this.classroomOptions = classrooms
|
||||
.filter(room => room.jsbh && !this.isDisabledValue(room.ty))
|
||||
.sort((first, second) => String(first.jsbh).localeCompare(String(second.jsbh), 'zh-CN'))
|
||||
}).catch(() => {
|
||||
this.classroomOptions = []
|
||||
this.$message.warning('教室列表加载失败,请稍后重试')
|
||||
}).finally(() => {
|
||||
this.classroomLoading = false
|
||||
})
|
||||
},
|
||||
classroomOptionLabel(room) {
|
||||
return room.jsmc ? room.jsbh + ' · ' + room.jsmc : room.jsbh
|
||||
},
|
||||
isDisabledValue(value) {
|
||||
return value === true || value === 1 || value === '1' || value === 'true'
|
||||
},
|
||||
loadAdjustableLessons() {
|
||||
if (!this.addForm.nd) {
|
||||
this.$message.warning('请先选择年度')
|
||||
@@ -490,23 +543,32 @@ export default {
|
||||
}
|
||||
this.lessonLoading = true
|
||||
listAdjustableLessons({ nd: this.addForm.nd }).then(response => {
|
||||
this.lessonOptions = response.data || []
|
||||
const data = response.data || []
|
||||
this.lessonOptions = Array.isArray(data) ? data : (data.records || [])
|
||||
this.lessonLoading = false
|
||||
this.lessonDialogVisible = true
|
||||
}).catch(() => {
|
||||
this.lessonLoading = false
|
||||
this.$message.info('加载可供调课课次失败,请手动填写课次编号')
|
||||
this.$message.warning('加载可供调课课次失败,请稍后重试')
|
||||
})
|
||||
},
|
||||
pickLesson(row) {
|
||||
this.addForm.sskcbbh = row.sskcbbh
|
||||
// 自动带出课次关联字段(若接口返回则回填)
|
||||
;['xydmc', 'yjsbh', 'ydsjap', 'kbh', 'kcbbh', 'xydrwbh', 'jysdh', 'xjsbh', 'kcmc', 'sqjyxm'].forEach(key => {
|
||||
const lessonNumber = row.sskcbbh || row.bh || ''
|
||||
if (!lessonNumber) {
|
||||
this.$message.warning('当前课次缺少课次编号,无法选择')
|
||||
return
|
||||
}
|
||||
this.addForm.sskcbbh = lessonNumber
|
||||
this.addForm.xydmc = row.xydmc || ''
|
||||
this.addForm.yjsbh = row.jsbh || row.yjsbh || ''
|
||||
this.addForm.xjsbh = ''
|
||||
this.addForm.ydsjap = row.rq ? this.fmtRqJc(row.rq, row.jc) : (row.ydsjap || '')
|
||||
;['kbh', 'kcbbh', 'xydrwbh', 'jysdh', '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))
|
||||
this.$nextTick(() => this.$refs.addForm && this.$refs.addForm.validateField('sskcbbh'))
|
||||
this.$message.success('已选择课次:' + (row.kcmc || lessonNumber))
|
||||
},
|
||||
submitAdd() {
|
||||
this.$refs.addForm.validate(valid => {
|
||||
@@ -516,12 +578,14 @@ export default {
|
||||
sy: this.addForm.sy,
|
||||
rq: this.addForm.rq + 'T00:00:00',
|
||||
jc: this.addForm.jc,
|
||||
nd: this.addForm.nd,
|
||||
sqjybh: this.addForm.sqjybh
|
||||
nd: this.addForm.nd
|
||||
}
|
||||
;['xydmc', 'yjsbh', 'xjsbh', 'ydsjap', 'kbh', 'kcbbh', 'xydrwbh', 'jysdh', 'kcmc', 'sqjyxm'].forEach(key => {
|
||||
;['xydrwbh', 'kbh', 'kcbbh', 'xjsbh'].forEach(key => {
|
||||
if (this.addForm[key]) payload[key] = this.addForm[key]
|
||||
})
|
||||
if (this.addForm.xjsbh) {
|
||||
payload.roomList = [{ jsbh: this.addForm.xjsbh }]
|
||||
}
|
||||
this.addLoading = true
|
||||
submitScheduleAdjust(payload).then(() => {
|
||||
this.addLoading = false
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :md="8">
|
||||
<el-form-item label="停用">
|
||||
<el-select v-model="searchForm.ty" placeholder="全部" clearable class="w-full">
|
||||
<el-option :value="true" label="停用" />
|
||||
<el-option :value="false" label="正常" />
|
||||
</el-select>
|
||||
<el-radio-group v-model="searchForm.ty">
|
||||
<el-radio :label="false">否</el-radio>
|
||||
<el-radio :label="true">是</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :md="8">
|
||||
@@ -211,7 +211,7 @@ export default {
|
||||
jsmc: '',
|
||||
jxldh: '',
|
||||
jxcdlx: '',
|
||||
ty: ''
|
||||
ty: false
|
||||
},
|
||||
tableData: [],
|
||||
jxcdlxOptions: [],
|
||||
@@ -302,7 +302,7 @@ export default {
|
||||
jsmc: '',
|
||||
jxldh: '',
|
||||
jxcdlx: '',
|
||||
ty: ''
|
||||
ty: false
|
||||
}
|
||||
this.pageNum = 1
|
||||
this.fetchList()
|
||||
|
||||
Reference in New Issue
Block a user