From 5e779cf782fa3bfd3de4cfc4dc88af56b171b501 Mon Sep 17 00:00:00 2001 From: louyinlei <398221207@qq.com> Date: 星期二, 05 三月 2024 17:57:31 +0800 Subject: [PATCH] 验收提交 --- src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue | 677 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 345 insertions(+), 332 deletions(-) diff --git a/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue b/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue index 5b2c8ca..e577b90 100644 --- a/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue +++ b/src/views/notCoalMine/nTrainManage/components/trainPlanDialog.vue @@ -1,334 +1,347 @@ -<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) { - 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 - // }) - // } - this.form['info'] = '--' - this.form['startTime'] = '2024-02-24' - this.form['endTime'] ='2024-03-05' - this.form['sheet'] = '19' - this.form['num'] ='19' - this.form['passNum'] = '19' - this.$emit('addRecord',this.form) - }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 - // }) - // } - } - this.handleClose() - }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> +<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