| | |
| | | <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> |