From a7a1a10bcda202b3e2aef9dd0ab176cc7ff70359 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 05 三月 2024 13:39:33 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 327 insertions(+), 0 deletions(-) diff --git a/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue b/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue new file mode 100644 index 0000000..e73e276 --- /dev/null +++ b/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue @@ -0,0 +1,327 @@ +<template> + <el-dialog + :title="title" + :visible.sync="open" + append-to-body + width="50%" + :before-close="handleClose" + > + <el-form ref="ruleForm" :model="form" :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中..."> + <el-form-item label="计划名称:" prop="name"> + <el-input v-model.trim="form.name" :readonly="disable" type="textarea"/> + </el-form-item> + <el-form-item label="培训单位:" prop="dep"> + <el-input v-model.trim="form.dep" :readonly="disable"/> + </el-form-item> + <el-form-item label="培训方式:" prop="trainWay"> + <el-radio-group v-model="form.trainWay" :disabled="disable"> + <el-radio :label="0">面授</el-radio> + <el-radio :label="1">线上</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="发证单位:" prop="cardDep"> + <el-input v-model.trim="form.cardDep" :readonly="disable"/> + </el-form-item> + <el-form-item label="课程管理:" prop="classes"> + <el-table :data="form.classes" border> + <el-table-column label="课程名称" align="center" prop="name" /> + <el-table-column label="标准学时" align="center" prop="time" /> + <el-table-column label="上课教师" align="center" prop="teacher" /> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="!disable"> + <template #default="scope"> + <el-button + size="mini" + type="text" + style="color: red" + @click="delClass(scope.$index)" + >删除</el-button> + </template> + </el-table-column> + </el-table> + <el-button type="primary" size="mini" @click="addClass" style="margin-top: 20px" v-if="!disable">添加课程</el-button> + </el-form-item> + <el-form-item label="学员管理:" prop="students"> + <el-table :data="form.students" border> + <el-table-column label="报名人员" align="center" prop="name" /> + <el-table-column label="身份证号" align="center" prop="idCard" /> + <el-table-column label="性别" align="center" prop="sex" /> + <el-table-column label="实际总学时" align="center" prop="time"/> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> + <template #default="scope"> + <el-button + size="mini" + type="text" + @click="openStudyRecord(scope.row,'view')" + >查看学时档案</el-button> + </template> + </el-table-column> + </el-table> + <el-button type="primary" size="mini" @click="addStudent" style="margin-top: 20px" v-if="!disable">导入报名人员</el-button> + </el-form-item> + <el-form-item label="历史记录(过程追溯):" prop="history"> + <el-table :data="form.history" border> + <el-table-column label="时间" align="center" prop="time" /> + <el-table-column label="课程" align="center" prop="class" /> + <el-table-column label="教师" align="center" prop="teacher" /> + <el-table-column label="缺课学员" align="center" prop="missStudent" /> + </el-table> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="handleClose">取消</el-button> + <el-button v-if="disable == false" type="primary" @click="submit">提交</el-button> + <el-button v-else type="primary" @click="handleClose">确定</el-button> + </span> + <el-dialog + :title="classTitle" + :visible.sync="classDialog" + append-to-body + width="50%" + > + <el-form ref="ruleAddForm" :model="addForm" :rules="addRules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中..."> + <el-form-item label="课程名称:" prop="name"> + <el-input v-model.trim="addForm.name"/> + </el-form-item> + <el-form-item label="标准学时:" prop="time"> + <el-input v-model.trim="addForm.time"/> + </el-form-item> + <el-form-item label="上课教师:" prop="teacher"> + <el-input v-model.trim="addForm.teacher"/> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="closeAdd">取消</el-button> + <el-button type="primary" @click="confirmAdd">确定</el-button> + </span> + </el-dialog> + <el-dialog + title="学时档案" + :visible.sync="recordDialog" + append-to-body + width="50%" + > + <el-table :data="record" border> + <el-table-column label="课程名称" align="center" prop="name" /> + <el-table-column label="标准学时" align="center" prop="time" /> + <el-table-column label="实际学时" align="center" prop="actualTime" /> + </el-table> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="recordDialog = false">确定</el-button> + </span> + </el-dialog> + </el-dialog> +</template> + +<script > +import {addViolation, editViolation, uploadFile} from "@/api/coalMine/violation"; +import {verifyIdCard} from "@/utils/validate"; +import {MessageBox} from "element-ui"; + +export default { + name: 'trainPlanDialog', + components: { + }, + props: ['typeList'], + data() { + return { + disable: false, + title: '新增计划', + classTitle: '新增课程', + open: false, + classDialog: false, + recordDialog: false, + form:{ + id: null, + isCm: 0, + name: '', + dep: '', + trainWay: '', + cardDep: '', + classes: [], + students: [], + history: [] + }, + rules:{ + name:[{ required: true, message: '请填写计划名称', trigger: 'blur' }], + dep: [{ required: true, message: '请填写培训单位', trigger: 'blur' }], + trainWay: [{ required: true, message: '请选择培训方式', trigger: 'blur' }], + cardDep: [{ required: true, message: '请填写发证单位', trigger: 'blur' }] + }, + addForm: { + name: '', + time: '', + teacher: '' + }, + addRules: { + name:[{ required: true, message: '请填写课程名称', trigger: 'blur' }], + time: [{ required: true, message: '请填写标准学时', trigger: 'blur' }], + teacher: [{ required: true, message: '请填写上课教师', trigger: 'blur' }], + }, + record:[ + { + name:'--', + time: '5', + actualTime:'5' + }, + { + name:'--', + time: '4', + actualTime:'4' + } + ] + } + }, + created() { + + }, + methods: { + openDialog (val,type) { + const t = this + if(type == 'add'){ + t.title = '新增计划' + t.disable = false + t.form = { + id: null, + isCm: 0, + name: '', + dep: '', + trainWay: '', + cardDep: '', + classes: [], + students: [], + history: [] + } + }else{ + if(type == 'view'){ + t.title = '计划详情' + t.disable = true + }else{ + t.title = '编辑计划' + t.disable = false + } + t.form = val + } + t.open = true + }, + isValidKey(key,obj){ + return key in obj + }, + + addClass(){ + this.classDialog = true + }, + + delClass(index){ + MessageBox.confirm('删除该条信息,是否继续?', '系统提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => { + this.form.classes.splice(index,1); + this.$message.success('删除成功') + }).catch(() => { + console.log('取消') + }); + }, + + openStudyRecord(){ + this.recordDialog = true + }, + + confirmAdd(){ + this.$refs["ruleAddForm"].validate(async(valid) =>{ + if(valid) { + this.form.classes.push(this.addForm) + this.closeAdd() + }else{ + this.$message({ + type:'warning', + message:'请完善必填信息' + }) + } + }) + }, + addStudent(){ + this.$message({ + type:'warning', + message: '导入格式较严格,请联系技术人员批量导入' + }) + }, + + handleClose() { + this.open = false; + this.resetForm(); + }, + + closeAdd(){ + this.classDialog = false + this.addForm = { + name: '', + time: '', + teacher: '' + } + }, + async submit(){ + this.$refs["ruleForm"].validate(async(valid) =>{ + if(valid) { + await this.submitUpload() + if(this.title == '新增计划'){ + const {id,...data} = this.form + const res= await addViolation(data) + if(res.code == 200){ + this.$message({ + type:'success', + message: res.msg + }) + this.fileList = [] + this.open = false + this.$emit('getList') + }else{ + this.$message({ + type:'warning', + message: res.msg + }) + } + }else{ + const res= await editViolation(this.form) + if(res.code == 200){ + this.$message({ + type:'success', + message: res.msg + }) + this.fileList = [] + this.open = false + this.$emit('getList') + }else{ + this.$message({ + type:'warning', + message: res.msg + }) + } + } + }else{ + this.$message({ + type:'warning', + message:'请完善必填信息' + }) + } + }) + }, + resetForm() { + this.form = { + id: null, + isCm: 0, + name: '', + idCard: '', + icNum: '', + electNum: '', + dept: '', + violationTime: '', + operateTypeId: null, + violationPath: '', + remark: '' + } + }, + } +} + +</script> +<style scoped> + +</style> -- Gitblit v1.9.2