This commit is contained in:
林尉华666
2026-03-18 11:31:47 +08:00
9 changed files with 760 additions and 352 deletions

View File

@@ -263,7 +263,8 @@ export default {
fontSize: 14
},
data: [...stuYearNames]
data: [...stuYearNames],
selectedMode: 'single'
},
radar: {
indicator: [

View File

@@ -516,9 +516,7 @@
<el-descriptions-item span="4">
<template slot="label"> 辅导员意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
<div v-if="form.xwStatus == '0' || form.xwStatus == null || form.xwStatus == '2'" >{{ form.xwIdea }}拟编入____</div>
<!-- 同意 -->
<div v-if="form.xwStatus == '1'">{{ form.xwIdea || '暂无意见' }},拟编入__{{finalGradeName}}_{{finalClassName}}__</div>
{{ form.fdIdea || '暂无意见' }}
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.fdStatus" placeholder="待审核" class="short-select" disabled
@@ -540,7 +538,9 @@
<el-descriptions-item span="4">
<template slot="label"> 学务意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
{{ form.xwIdea || '暂无意见' }}
<div v-if="form.xwStatus == '0' || form.xwStatus == null || form.xwStatus == '2'" >{{ form.xwIdea }}拟编入____</div>
<!-- 同意 -->
<div v-if="form.xwStatus == '1'">{{ form.xwIdea || '暂无意见' }},拟编入__{{finalGradeName}}_{{finalClassName}}__</div>
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.xwStatus" placeholder="待审核" class="short-select" disabled

View File

@@ -401,6 +401,218 @@
</el-descriptions>
<!-- 外宿申请表单 -->
<div v-if="outsideAccommodationForm"><detailApply :formData="form" :isShwo="false"></detailApply></div>
<!-- 退伍复学表单 -->
<el-descriptions v-if="basicForm" class="margin-top" title="退伍复学申请表" :column="4" size="medium" border
style="width: 100%; ">
<el-descriptions-item>
<template slot="label"> 姓名 </template>
{{ form.stName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 性别 </template>
{{ form.sex }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 民族 </template>
<!-- {{ form.nation }} -->
<dict-tag :options="dict.type.rt_nation" :value="form.nations" />
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 年级 </template>
{{ form.grade }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 班级 </template>
{{ form.stClass }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 学号 </template>
{{ form.stId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 专业 </template>
{{ form.majors }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 联系电话 </template>
{{ form.datab }}
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 申请理由 </template>
<div style="padding-top: 10px; line-height: 1.8;">
<p class="reason-text">本人于 {{ form.rwTime | formatDate }} 应征入伍 {{ form.dataa | formatDate }}
日退役退役后申请复学</p>
<p class="reason-text" v-if="form.conversion == 'Y'">是否申请转专业 </p>
<p class="reason-text" v-else>是否申请转专业 ×</p>
<p v-if="form.conversion === 'Y'" class="reason-text" style="color: red;">
原年级和专业:__{{ form.maList.length > 0 ? form.maList[0].oldgrade : '' }}__{{ form.maList.length > 0 ?
form.maList[0].oldmajor : '' }}__
申请转入年级和专业__{{ saveGradeName }}__{{ saveClassName }}__
</p>
<!-- 附件预览区域 -->
<div style="margin: 10px 0; display: flex; gap: 10px; flex-wrap: wrap;">
<image-preview v-if="form.maList.length > 0 && form.maList[0].proof" :src="form.maList[0].proof"
:width="240" :height="160" />
<image-preview v-if="form.maList.length > 0 && form.maList[0].idcard" :src="form.maList[0].idcard"
:width="240" :height="160" />
<image-preview v-if="form.maList.length > 0 && form.maList[0].material"
:src="form.maList[0].material" :width="240" :height="160" />
</div>
<!-- 申请人信息 -->
<div class="applicant-info right-align" style="padding: 20px 0 0 0;">
<span>申请人</span>
{{ form.stName }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.times | formatDate }}
</div>
</div>
</el-descriptions-item>
<!-- 招生与就业处意见仅转专业时显示 -->
<el-descriptions-item span="4" v-if="form.conversion === 'Y'">
<template slot="label"> 招生与就业处意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
<p class="reason-text" style="color: red;">
符合转专业条件拟同意转入年级和专业__{{ saveGradeName }}__{{ saveClassName }}__
</p>
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.zsStatus" placeholder="" class="short-select" disabled
style="width: 100px; margin: 0 5px;">
<el-option label="重新审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="退回" value="2"></el-option>
<el-option label="驳回" value="3"></el-option>
</el-select>
<span class="date-label">签名</span>
{{ form.zsIdea || '无' }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.zsTime | formatDate }}
</div>
</div>
</el-descriptions-item>
<!-- 辅导员意见 -->
<el-descriptions-item span="4">
<template slot="label"> 辅导员意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
{{ form.fdIdea || '暂无意见' }}
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.fdStatus" placeholder="待审核" class="short-select" disabled
style="width: 100px; margin: 0 5px;">
<el-option label="重新审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="退回" value="2"></el-option>
<el-option label="驳回" value="3"></el-option>
</el-select>
<span class="date-label">签名</span>
{{ form.fdQm || '无' }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.fdTime | formatDate }}
</div>
</div>
</el-descriptions-item>
<!-- 学务意见 -->
<el-descriptions-item span="4">
<template slot="label"> 学务意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
<div v-if="form.xwStatus == '0' || form.xwStatus == null || form.xwStatus == '2'" >{{ form.xwIdea }}拟编入____</div>
<!-- 同意 -->
<div v-if="form.xwStatus == '1'">{{ form.xwIdea || '暂无意见' }},拟编入__{{finalGradeName}}_{{finalClassName}}__</div>
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.xwStatus" placeholder="待审核" class="short-select" disabled
style="width: 100px; margin: 0 5px;">
<el-option label="重新审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="退回" value="2"></el-option>
<el-option label="驳回" value="3"></el-option>
</el-select>
<span class="date-label">签名</span>
{{ form.xwQm || '无' }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.xwTime | formatDate }}
</div>
</div>
</el-descriptions-item>
<!-- 二级学院意见 -->
<el-descriptions-item span="4">
<template slot="label"> 二级学院意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
{{ form.twoIdea || '暂无意见' }}
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.twoStatus" placeholder="待审核" class="short-select" disabled
style="width: 100px; margin: 0 5px;">
<el-option label="重新审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="退回" value="2"></el-option>
<el-option label="驳回" value="3"></el-option>
</el-select>
<span class="date-label">签名</span>
{{ form.erQm || '无' }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.twoTime | formatDate }}
</div>
</div>
</el-descriptions-item>
<!-- 学籍管理科意见 -->
<el-descriptions-item span="4">
<template slot="label"> 学籍管理科意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
{{ form.xjIdea || '暂无意见' }}
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.xjglStatus" placeholder="待审核" class="short-select" disabled
style="width: 100px; margin: 0 5px;">
<el-option label="重新审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="退回" value="2"></el-option>
<el-option label="驳回" value="3"></el-option>
</el-select>
<span class="date-label">签名</span>
{{ form.xjQm || '无' }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.xjTime | formatDate }}
</div>
</div>
</el-descriptions-item>
<!-- 教务处主管领导意见 -->
<el-descriptions-item span="4">
<template slot="label"> 教务处主管领导意见 </template>
<div style="padding-top: 10px; line-height: 1.8;">
{{ form.jwIdea || '暂无意见' }}
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
<span>审批结果</span>
<el-select v-model="form.jwStatus" placeholder="待审核" class="short-select" disabled
style="width: 100px; margin: 0 5px;">
<el-option label="重新审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="退回" value="2"></el-option>
<el-option label="驳回" value="3"></el-option>
</el-select>
<span class="date-label">签名</span>
{{ form.jwQm || '无' }}
<span class="date-label" style="margin-left: 10px;">日期</span>
{{ form.jwTime | formatDate }}
</div>
</div>
</el-descriptions-item>
</el-descriptions>
</div>
</el-col>
</el-tab-pane>
@@ -464,9 +676,12 @@ import { getRtStuQuitSchoolByProcInsId } from '@/api/routine/rtStuQuitSchool'
import Parser from '@/components/parser/Parser'
import flow from '@/views/flowable/task/myProcess/detail/flow'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import {getStname, getProcessId } from "@/api/routine/basic";
import { getEnlistmentReserveByProcessInstanceId} from "@/api/routine/enlistmentReserve/enlistmentReserve";
import { getOutsideAccommodationApplyByProcessInstanceId } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApply";
import detailApply from "@/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply" // 外宿申请表详细
import { listStudent, getClassName } from '@/api/stuCQS/basedata/student'
import { listGrade } from '@/api/stuCQS/basedata/grade'
export default {
name: 'Record',
@@ -506,6 +721,7 @@ export default {
quitSchoolForm: false, // 休学申请表单
enlistmentReserveForm: false, // 入伍保留学籍表单
outsideAccommodationForm: false, // 外宿申请表单
basicForm: false,//退伍复学表单
form: {},
// 学生基础信息
stuInfo: {},
@@ -537,7 +753,10 @@ export default {
} else if (this.category == 'outsideAccommodation') {
this.outsideAccommodationForm = true
this.getOutsideAccommodation(this.taskForm.procInsId)
}
}else if (this.category == '退伍复学') {
this.basicForm = true
this.getBasicApplication(this.taskForm.procInsId)
}
// 回显流程记录
// 流程任务重获取变量表单
this.processVariables(this.taskForm.taskId)
@@ -630,6 +849,95 @@ export default {
}
})
},
// 退伍复学申请表单数据
getBasicApplication(procInsId) {
getProcessId(procInsId.toString()).then((res) => {
// console.log("后端返回原始数据:",res.data);
this.form = res.data
this.getClassNameList()
this.listGrade()
this.getXWClassNameList()
});
},
// 获取学务班级名称列表
getXWClassNameList() {
getClassName().then(res => {
this.ClassNameList = res.data;
if (this.ClassNameList != null) {
this.ClassNameList.forEach(element => {
if (element.value == this.form.maList[0].finaldata1) {
element.children.forEach(elementTwo => {
if (elementTwo.value == this.form.maList[0].finaldata2) {
elementTwo.children.forEach(elementFree => {
if (elementFree.value == this.form.maList[0].newmajor) {
this.finalClassName = elementFree.label;
this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
// 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
const gradeId = element.value;
const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
if (gradeItem) {
this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
}
}
});
}
});
}
});
}
})
},
/** 获取班级名称列表 */
getClassNameList() {
getClassName().then(res => {
this.ClassNameList = res.data
console.log(this.ClassNameList)
if (this.ClassNameList != null) {
this.ClassNameList.forEach(element => {
if (element.value == this.form.maList[0].data1) {
// console.log(element.label)
element.children.forEach(elementTwo => {
if (elementTwo.value == this.form.maList[0].data2) {
// console.log(elementTwo.label)
this.saveClassName =elementTwo.label
// console.log("退伍复学",this.saveClassName)
// 班级
// elementTwo.children.forEach(elementFree => {
// this.saveClassName = elementFree.label
// // console.log(elementFree.label)
// });
}
});
}
});
}
})
},
/** 获取年级列表 */
async listGrade() {
try {
let res = await listGrade()
if (res.code == 200) {
this.grade_list = [...res.rows]
console.log(this.grade_list)
this.grade_list.forEach(element => {
if(element.gradeId == this.form.maList[0].newgrade){
this.saveGradeName = element.gradeName
}
if (element.gradeId == this.form.maList[0].finallabel) {
this.finalGradeName = element.gradeName
}
});
}
} catch (error) {
console.error('获取年级列表失败:', error)
}
},
handleClick(tab, event) {
if (tab.name === '3') {
flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then((res) => {

View File

@@ -972,7 +972,10 @@ export default {
props: {},
data() {
return {
// 年级列表
grade_list: [],
classVlue1: [],
ClassNameList:[],
// 模型xml数据
xmlData: '',
flowData: {},
@@ -1159,6 +1162,8 @@ export default {
} else if (this.category == '退伍复学') {
this.basicForm = true
this.getBasicApplication(this.startUser)
this.listGrade();
this.getXWClassNameList();
}
// 流程任务获取变量信息
if (this.taskForm.taskId) {
@@ -1170,118 +1175,53 @@ export default {
}
},
methods: {
// 班级选择事件仅更新ID不处理名称
// handleChange1(value) {
// if (value && value.length === 3) {
// const [gradeId, majorId, classId] = value;
// // 仅更新子表的ID字段名称仅前端展示不提交给后端
// this.$set(this.form.maList[0], 'finaldata1', gradeId); // 年级ID
// this.$set(this.form.maList[0], 'finaldata2', majorId); // 专业ID
// this.$set(this.form.maList[0], 'newmajor', classId); // 班级ID
// // finalClassName 仅用于前端展示,不提交
// const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
// if (gradeItem) {
// const majorItem = gradeItem.children.find(item => item.value === majorId);
// if (majorItem) {
// const classItem = majorItem.children.find(item => item.value === classId);
// if (classItem) {
// this.finalClassName = classItem.label; // 仅前端展示
// }
// }
// }
// }
// },
handleChange1(value) {
if (value && value.length === 3) {
const [gradeId, majorId, classId] = value;
// 1. 更新存储用的ID字段
this.$set(this.form.maList[0], 'finaldata1', gradeId);
this.$set(this.form.maList[0], 'finaldata2', majorId);
this.$set(this.form.maList[0], 'newmajor', classId);
this.$set(this.form.maList[0], 'finalmajor', classId);
handleChange1(value) {
if (value && value.length === 3) {
const [gradeId, majorId, classId] = value;
// 1. 更新存储用的ID字段
this.$set(this.form.maList[0], 'finaldata1', gradeId);
this.$set(this.form.maList[0], 'finaldata2', majorId);
this.$set(this.form.maList[0], 'newmajor', classId);
this.$set(this.form.maList[0], 'finalmajor', classId);
// 2. 查找班级名称
const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
if (gradeItem) {
const majorItem = gradeItem.children.find(item => item.value === majorId);
if (majorItem) {
const classItem = majorItem.children.find(item => item.value === classId);
if (classItem) {
this.finalClassName = classItem.label;
// 2. 查找班级名称
const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
if (gradeItem) {
const majorItem = gradeItem.children.find(item => item.value === majorId);
if (majorItem) {
const classItem = majorItem.children.find(item => item.value === classId);
if (classItem) {
this.finalClassName = classItem.label;
}
}
}
// 关键修复:从年级列表中查找年级名称,而不是直接使用 gradeItem.label
const selectedGrade = this.grade_list.find(item => item.gradeId === gradeId);
if (selectedGrade) {
this.finalGradeName = selectedGrade.gradeName; // 正确的年级名称
this.$set(this.form.maList[0], 'finallabel', selectedGrade.gradeId); // 正确的年级ID
}
}
}
// 关键修复:从年级列表中查找年级名称,而不是直接使用 gradeItem.label
const selectedGrade = this.grade_list.find(item => item.gradeId === gradeId);
if (selectedGrade) {
this.finalGradeName = selectedGrade.gradeName; // 正确的年级名称
this.$set(this.form.maList[0], 'finallabel', selectedGrade.gradeId); // 正确的年级ID
}
}
},
// 年级选择事件仅更新ID不处理名称
// handleGradeChange(value) {
// const selectedGrade = this.grade_list.find(item => item.gradeId === value);
// if (selectedGrade) {
// // 仅更新子表的ID字段名称仅前端展示
// this.$set(this.form.maList[0], 'finallabel', value); // 年级ID存储用
// this.$set(this.form.maList[0], 'finalmajor', value); // 年级ID选择框绑定
// this.finalGradeName = selectedGrade.gradeName; // 仅前端展示
// }
// },
handleGradeChange(value) {
const selectedGrade = this.grade_list.find(item => item.gradeId === value);
if (selectedGrade) {
// 1. 更新存储用的年级ID
this.$set(this.form.maList[0], 'finallabel', value);
// 2. 同步更新显示用的年级名称(这里必须是 selectedGrade.gradeName
this.finalGradeName = selectedGrade.gradeName;
// 3. 清空班级选择,避免年级和班级不匹配
this.classVlue1 = [];
this.finalClassName = null;
this.$set(this.form.maList[0], 'finaldata1', '');
this.$set(this.form.maList[0], 'finaldata2', '');
this.$set(this.form.maList[0], 'newmajor', '');
this.$set(this.form.maList[0], 'finalmajor', '');
}
},
// handleChange1(value) {
// if (value && value.length === 3) {
// const [gradeId, majorId, classId] = value;
// // 从ClassNameList中找到对应班级名称
// const gradeItem = this.ClassNameList.find(item => item.value === gradeId);
// if (gradeItem) {
// const majorItem = gradeItem.children.find(item => item.value === majorId);
// if (majorItem) {
// const classItem = majorItem.children.find(item => item.value === classId);
// if (classItem) {
// this.finalClassName = classItem.label;
// // 【关键修改】实时更新form.maList[0]的字段,确保提交时能拿到最新值
// this.$set(this.form.maList[0], 'finaldata1', gradeId); // 年级ID
// this.$set(this.form.maList[0], 'finaldata2', majorId); // 专业ID
// this.$set(this.form.maList[0], 'newmajor', classId); // 班级ID
// this.$set(this.form.maList[0], 'finalClassName', classItem.label); // 班级名称
// }
// }
// }
// }
// },
// handleGradeChange(value) {
// // 3. 选择框值变更时,同步更新显示名称和存储字段
// const selectedGrade = this.grade_list.find(item => item.gradeId === value);
// if (selectedGrade) {
// this.finalGradeName = selectedGrade.gradeName; // 更新显示名称
// // 【关键修改】实时更新form.maList[0]的字段
// this.$set(this.form.maList[0], 'finallabel', value); // 年级ID存储用
// this.$set(this.form.maList[0], 'finalmajor', value); // 年级ID选择框绑定
// this.$set(this.form.maList[0], 'finalGradeName', selectedGrade.gradeName); // 年级名称
// }
// },
},
handleGradeChange(value) {
const selectedGrade = this.grade_list.find(item => item.gradeId === value);
if (selectedGrade) {
// 1. 更新存储用的年级ID
this.$set(this.form.maList[0], 'finallabel', value);
// 2. 同步更新显示用的年级名称(这里必须是 selectedGrade.gradeName
this.finalGradeName = selectedGrade.gradeName;
// 3. 清空班级选择,避免年级和班级不匹配
this.classVlue1 = [];
this.finalClassName = null;
this.$set(this.form.maList[0], 'finaldata1', '');
this.$set(this.form.maList[0], 'finaldata2', '');
this.$set(this.form.maList[0], 'newmajor', '');
this.$set(this.form.maList[0], 'finalmajor', '');
}
},
penaltyTypeMethodFormat(row, column) {
return this.selectDictLabel(this.dict.type.rt_penalty_type, row.penaltyType)
},
@@ -1357,57 +1297,38 @@ handleGradeChange(value) {
// 退伍复学申请表单数据
getBasicApplication(startUser) {
// // let newName = this.startUser.replace(/-/g, "");
// let newName = this.startUser.split('-')[0].trim();
// getStname(newName).then((res) => {
// // console.log("后端返回原始数据:",res.data);
// this.form = res.data
let newName = this.startUser.split('-')[0].trim();
getStname(newName).then((res) => {
console.log("后端返回原始数据:", res.data);
// 深拷贝确保数据不被污染
this.form = JSON.parse(JSON.stringify(res.data));
// // 1. 初始化选择框绑定的核心字段finalmajor
// if (this.form.maList && this.form.maList.length > 0) {
// // 从maList中读取已保存的年级ID赋值给finalmajor选择框绑定字段
// this.$set(this.form.maList[0], 'finalmajor', this.form.maList[0].finallabel || '');
// } else {
// // 若无数据初始化空值避免undefined
// this.form.maList = [{ finalmajor: '', finallabel: '' }];
// }
// 初始化maList防止空指针
if (!this.form.maList || this.form.maList.length === 0) {
this.form.maList = [{
finalmajor: '',
finallabel: '',
finaldata1: '',
finaldata2: '',
newmajor: '',
finalClassName: '',
finalGradeName: ''
}];
}
// this.getClassNameList()
// this.listGrade()
// this.getXWClassNameList()
// });
let newName = this.startUser.split('-')[0].trim();
getStname(newName).then((res) => {
console.log("后端返回原始数据:", res.data);
// 深拷贝确保数据不被污染
this.form = JSON.parse(JSON.stringify(res.data));
// 1. 初始化选择框绑定的核心字段finalmajor
this.$set(this.form.maList[0], 'finalmajor', this.form.maList[0].finallabel || '');
// 初始化maList防止空指针
if (!this.form.maList || this.form.maList.length === 0) {
this.form.maList = [{
finalmajor: '',
finallabel: '',
finaldata1: '',
finaldata2: '',
newmajor: '',
finalClassName: '',
finalGradeName: ''
}];
}
// 1. 初始化选择框绑定的核心字段finalmajor
this.$set(this.form.maList[0], 'finalmajor', this.form.maList[0].finallabel || '');
// 确保数据加载完成后再渲染下拉列表
this.$nextTick(() => {
this.getClassNameList();
this.listGrade();
this.getXWClassNameList();
});
}).catch(error => {
console.error("获取退伍复学数据失败:", error);
this.$modal.msgError("获取学生信息失败,请刷新页面重试");
});
// 确保数据加载完成后再渲染下拉列表
this.$nextTick(() => {
this.getClassNameList();
this.listGrade();
this.getXWClassNameList();
});
}).catch(error => {
console.error("获取退伍复学数据失败:", error);
this.$modal.msgError("获取学生信息失败,请刷新页面重试");
});
},
/** 获取班级名称列表 */
getClassNameList() {
@@ -1434,126 +1355,37 @@ handleGradeChange(value) {
})
},
// 获取学务班级名称列表
// getXWClassNameList() {
// getClassName().then(res => {
// this.ClassNameList = res.data
// // console.log(this.ClassNameList)
// if (this.ClassNameList != null) {
// this.ClassNameList.forEach(element => {
// if (element.value == this.form.maList[0].finaldata1) {
// // console.log(element.label)
// element.children.forEach(elementTwo => {
// if (elementTwo.value == this.form.maList[0].finaldata2) {
// // console.log(elementTwo.label)
// // this.saveClassName =elementTwo.label
// elementTwo.children.forEach(elementFree => {
// this.finalClassName = elementFree.label
// this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
// // console.log(elementFree.label)
// });
// }
// });
// }
// });
// }
// })
// },
// getXWClassNameList() {
// getClassName().then(res => {
// this.ClassNameList = res.data;
// if (this.ClassNameList != null) {
// this.ClassNameList.forEach(element => {
// if (element.value == this.form.maList[0].finaldata1) {
// element.children.forEach(elementTwo => {
// if (elementTwo.value == this.form.maList[0].finaldata2) {
// elementTwo.children.forEach(elementFree => {
// if (elementFree.value == this.form.maList[0].newmajor) {
// this.finalClassName = elementFree.label;
// this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
// // 同步更新年级名称
// this.finalGradeName = element.label;
// this.$set(this.form.maList[0], 'finallabel', element.value);
// }
// });
// }
// });
// }
// });
// }
// })
// },
getXWClassNameList() {
getClassName().then(res => {
this.ClassNameList = res.data;
if (this.ClassNameList != null) {
this.ClassNameList.forEach(element => {
if (element.value == this.form.maList[0].finaldata1) {
element.children.forEach(elementTwo => {
if (elementTwo.value == this.form.maList[0].finaldata2) {
elementTwo.children.forEach(elementFree => {
if (elementFree.value == this.form.maList[0].newmajor) {
this.finalClassName = elementFree.label;
this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
// 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
const gradeId = element.value;
const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
if (gradeItem) {
this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
}
getClassName().then(res => {
this.ClassNameList = res.data;
if (this.ClassNameList != null) {
this.ClassNameList.forEach(element => {
if (element.value == this.form.maList[0].finaldata1) {
element.children.forEach(elementTwo => {
if (elementTwo.value == this.form.maList[0].finaldata2) {
elementTwo.children.forEach(elementFree => {
if (elementFree.value == this.form.maList[0].newmajor) {
this.finalClassName = elementFree.label;
this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
// 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
const gradeId = element.value;
const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
if (gradeItem) {
this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
}
}
});
}
});
}
});
}
});
}
})
},
})
},
/** 获取年级列表 */
// async listGrade() {
// try {
// let res = await listGrade()
// if (res.code == 200) {
// this.grade_list = [...res.rows]
// console.log(this.grade_list)
// this.grade_list.forEach(element => {
// // console.log("newgrade",this.form.maList[0].newgrade)
// if (element.gradeId == this.form.maList[0].newgrade) {
// this.saveGradeName = element.gradeName
// }
// if (element.gradeId == this.form.maList[0].finallabel) {
// this.finalGradeName = element.gradeName
// // this.$set(this.form.maList[0], 'finalmajor', element.gradeId);
// }
// });
// }
// } catch (error) {
// console.error('获取年级列表失败:', error)
// }
// },
// async listGrade() {
// try {
// let res = await listGrade();
// if (res.code == 200) {
// this.grade_list = [...res.rows];
// this.grade_list.forEach(element => {
// if (element.gradeId == this.form.maList[0].newgrade) {
// this.saveGradeName = element.gradeName;
// }
// if (element.gradeId == this.form.maList[0].finallabel) {
// this.finalGradeName = element.gradeName;
// }
// });
// }
// } catch (error) {
// console.error('获取年级列表失败:', error);
// }
// },
async listGrade() {
try {
let res = await listGrade(); // 调用后端接口获取年级列表
@@ -1561,6 +1393,7 @@ handleGradeChange(value) {
this.grade_list = [...res.rows];
// 打印日志,检查返回的数据结构
console.log("年级列表:", this.grade_list);
console.log("this.form.maList[0]",this.form.maList[0])
this.grade_list.forEach(element => {
if (element.gradeId == this.form.maList[0].newgrade) {
this.saveGradeName = element.gradeName;

View File

@@ -87,6 +87,21 @@
</div> -->
</el-card>
<!-- 材料上传 -->
<el-card class="box-card1" v-if="form.conversion === 'N'">
<el-form ref="form2" :model="form" :rules="rules2" label-width="80px">
<el-form-item label="退役证明" prop="proof">
<image-upload v-model="form.proof" />
</el-form-item>
<el-form-item label="身份证" prop="idcard">
<image-upload v-model="form.idcard" />
</el-form-item>
<el-form-item label="材料" prop="material">
<image-upload v-model="form.material" />
</el-form-item>
</el-form>
</el-card>
<!-- 转专业材料上传 -->
<el-card class="box-card1" v-if="form.conversion === 'Y'">
<el-form ref="form2" :model="form" :rules="rules2" label-width="80px">
@@ -109,8 +124,8 @@
<span>{{ data.label }}</span>
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
</template>
</el-cascader>
</el-form-item> -->
</el-cascader>
</el-form-item> -->
<el-form-item label="新专业" prop="newmajor" :rules="rules2.reason6">
<!-- 1. 必须绑定 form.classVlue12. key 强制刷新3. 明确 props 匹配字段 -->
<el-cascader v-model="form.classVlue1" placeholder="请选择班级" :show-all-levels="false" :options="ClassNameList"

View File

@@ -84,15 +84,15 @@
<el-tag v-else type="danger">驳回</el-tag>
</div>
<div
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>签名 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature" :preview-src-list="[baseUrl + item.signature]"
:alt="item.approverName">
</el-image>
</div>
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>签名 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature" :preview-src-list="[baseUrl + item.signature]"
:alt="item.approverName">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ item.approvalTime }}</div>
</div>
</div>
@@ -109,49 +109,49 @@
</el-descriptions-item>
</el-descriptions>
</div>
<div class="block">
<el-timeline>
<el-timeline-item v-for="(item, index) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)"
:color="setColor(item.finishTime)">
<p style="font-weight: 700">{{ item.taskName }}</p>
<el-card :body-style="{ padding: '10px' }">
<el-descriptions class="margin-top" :column="1" size="small" border>
<el-descriptions-item v-if="item.assigneeName" label-class-name="my-label">
<template slot="label"><i class="el-icon-user" />办理人</template>
{{ item.assigneeName }}
<el-tag type="info" size="mini">{{ item.deptName }}</el-tag>
</el-descriptions-item>
<el-descriptions-item v-if="item.candidate" label-class-name="my-label">
<template slot="label"><i class="el-icon-user" />候选办理</template>
{{ item.candidate }}
</el-descriptions-item>
<el-descriptions-item label-class-name="my-label">
<template slot="label"><i class="el-icon-date" />接收时间</template>
{{ item.createTime }}
</el-descriptions-item>
<el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
<template slot="label"><i class="el-icon-date" />处理时间</template>
{{ item.finishTime }}
</el-descriptions-item>
<el-descriptions-item v-if="item.duration" label-class-name="my-label">
<template slot="label"><i class="el-icon-time" />耗时</template>
{{ item.duration }}
</el-descriptions-item>
<el-descriptions-item v-if="item.comment" label-class-name="my-label">
<template slot="label"><i class="el-icon-tickets" />处理意见</template>
{{ item.comment.comment }}
</el-descriptions-item>
<!-- <el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
<div class="block">
<el-timeline>
<el-timeline-item v-for="(item, index) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)"
:color="setColor(item.finishTime)">
<p style="font-weight: 700">{{ item.taskName }}</p>
<el-card :body-style="{ padding: '10px' }">
<el-descriptions class="margin-top" :column="1" size="small" border>
<el-descriptions-item v-if="item.assigneeName" label-class-name="my-label">
<template slot="label"><i class="el-icon-user" />办理人</template>
{{ item.assigneeName }}
<el-tag type="info" size="mini">{{ item.deptName }}</el-tag>
</el-descriptions-item>
<el-descriptions-item v-if="item.candidate" label-class-name="my-label">
<template slot="label"><i class="el-icon-user" />候选办理</template>
{{ item.candidate }}
</el-descriptions-item>
<el-descriptions-item label-class-name="my-label">
<template slot="label"><i class="el-icon-date" />接收时间</template>
{{ item.createTime }}
</el-descriptions-item>
<el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
<template slot="label"><i class="el-icon-date" />处理时间</template>
{{ item.finishTime }}
</el-descriptions-item>
<el-descriptions-item v-if="item.duration" label-class-name="my-label">
<template slot="label"><i class="el-icon-time" />耗时</template>
{{ item.duration }}
</el-descriptions-item>
<el-descriptions-item v-if="item.comment" label-class-name="my-label">
<template slot="label"><i class="el-icon-tickets" />处理意见</template>
{{ item.comment.comment }}
</el-descriptions-item>
<!-- <el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
<template slot="label"><i class="el-icon-date" />签名</template>
<img :src="baseurl + item.assigneeSign" width="300px" height="200px" class="avatar">
</el-descriptions-item> -->
</el-descriptions>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-descriptions>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</div>
</div>
</el-card>
</div>
<!-- 新增修改表单 -->
@@ -208,7 +208,7 @@
<td class="input-cell">
<el-form-item prop="studentNo" class="form-item-custom">
<el-input v-model="formData.studentNo" placeholder="请输入学号" class="basic-input" type="textarea"
:rows="3"></el-input>
:rows="3" @blur="changeGet"></el-input>
</el-form-item>
</td>
<td class="label">班级</td>
@@ -249,15 +249,17 @@
class="opinion-textarea"></el-input>
</el-form-item> -->
<p class="reason-text">本人应征入伍申请保留学籍从
<el-form-item prop="reserveStartDate" class="form-item-custom inline-item">
<!-- <el-form-item prop="reserveStartDate" class="form-item-custom inline-item">
<el-date-picker v-model="formData.reserveStartDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" class="date-picker"></el-date-picker>
</el-form-item> 日至退役后两年
</el-form-item> -->
{{ formData.reserveStartDate }} 日至退役后两年{{ parseTime(formData.reserveEndDate, '{y}-{m}-{d}') }}
</p>
<el-form-item prop="affixId">
<p class="attachment-tip">
<span style="color: red">请上传:入伍通知书等佐证材料.</span>
<Affix v-model="formData.affixId" @input="handleAffix" @fileUploaded="handleAffix" @delete-file="handleDeleteFile"/>
<Affix v-model="formData.affixId" @input="handleAffix" @fileUploaded="handleAffix"
@delete-file="handleDeleteFile" />
</p>
</el-form-item>
@@ -350,6 +352,8 @@ import { getOwnInfo, getEnlistmentReserve, delEnlistmentReserve, addEnlistmentRe
import { batchAddEnlistmentReserveAttach, deleteRtEnlistmentReserveAttachByFileNameAndStuName } from "@/api/routine/enlistmentReserve/enlistmentReserveAttach";
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
import { flowRecord } from '@/api/flowable/finished'
import { getStudentInfoByStuId } from '@/api/routine/stuIdReissue'
import { listStudent } from '@/api/stuCQS/basedata/student'
export default {
name: 'EnlistmentReserveForm',
dicts: ['rt_nation'],
@@ -437,11 +441,11 @@ export default {
previewTitle: '', // 打印预览的标题(开启预览模式后出现),
previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
previewBeforeOpenCallback() {}, //预览窗口打开之前的callback(开启预览模式调用)
previewOpenCallback() {}, // 预览窗口打开之后的callback(开启预览模式调用)
beforeOpenCallback() {}, // 开启打印前的回调事件
openCallback() {}, // 调用打印之后的回调事件
closeCallback() {}, //关闭打印的回调事件(无法确定点击的是确认还是取消)
previewBeforeOpenCallback() { }, //预览窗口打开之前的callback(开启预览模式调用)
previewOpenCallback() { }, // 预览窗口打开之后的callback(开启预览模式调用)
beforeOpenCallback() { }, // 开启打印前的回调事件
openCallback() { }, // 调用打印之后的回调事件
closeCallback() { }, //关闭打印的回调事件(无法确定点击的是确认还是取消)
url: '',
standard: '',
extraCss: '',
@@ -513,7 +517,7 @@ export default {
if (newId) {
this.deployId = newId
// 获取流程记录
this.getFlowRecordList()
this.getFlowRecordList()
} else {
this.deployId = null
this.loading = false
@@ -523,27 +527,75 @@ export default {
},
mounted() {
// this.getUser()
this.setSemesterStartDate();
},
methods: {
// 填写学号时自动获取其他信息
changeGet() {
getStudentInfoByStuId(this.formData.studentNo).then(response => {
if (response.data == null) {
this.$message.error('学号不存在')
return
}
if (this.roleGroup.includes("辅导员")) {
this.formData.className = response.data.className
this.formData.studentName = response.data.studentName
this.formData.grade = response.data.gradeName
this.formData.gender = response.data.gender == '男' ? '1' : '0'
listStudent({name: this.formData.studentName}).then(res => {
this.formData.major = res.rows[0].srsMajors.majorName
this.formData.studentId = res.rows[0].stuId
this.formData.teacherName = res.rows[0].cphName
this.formData.deptName = res.rows[0].deptName
})
}
})
},
// 根据学期规则生成起始日期并赋值
setSemesterStartDate() {
// 方式1手动指定学期推荐可直接改'spring'/'autumn'切换)
// const targetSemester = 'spring'; // spring=春季autumn=秋季
// 方式2自动根据当前月份判断学期可选注释掉方式1可启用
const currentMonth = new Date().getMonth() + 1;
const targetSemester = currentMonth <= 6 ? 'spring' : 'autumn';
// 获取当前年份,计算+2年如2024→2026
const currentYear = new Date().getFullYear();
const semesterYear = currentYear; // 固定为当前年份如2026
// 根据学期赋值起始日期
if (targetSemester === 'spring') {
// 春季学期YYYY-03-01如2026-03-01
this.formData.reserveStartDate = `${semesterYear}-03-01`;
} else {
// 秋季学期YYYY-09-01如2026-09-01
this.formData.reserveStartDate = `${semesterYear}-09-01`;
}
},
// 获取当前登录信息
getUser() {
getUserProfile().then(response => {
this.user = response.data
this.roleGroup = response.roleGroup;
// this.postGroup = response.postGroup;
if (this.user) {
this.formData.studentName = this.user.nickName
this.formData.gender = this.user.sex
getOwnInfo().then(res => {
if (res.data) {
this.formData.studentId = res.data.stuId
this.formData.studentNo = res.data.stuNo
this.formData.major = res.data.majorName
this.formData.className = res.data.className
this.formData.grade = res.data.gradeName
this.formData.teacherName = res.data.teacherName
}
})
if (this.roleGroup.includes("学生")) {
if (this.user) {
this.formData.studentName = this.user.nickName
this.formData.gender = this.user.sex
getOwnInfo().then(res => {
if (res.data) {
this.formData.studentId = res.data.stuId
this.formData.studentNo = res.data.stuNo
this.formData.major = res.data.majorName
this.formData.className = res.data.className
this.formData.grade = res.data.gradeName
this.formData.teacherName = res.data.teacherName
this.formData.deptName = res.data.deptName
}
})
}
}
})
},
@@ -695,12 +747,12 @@ export default {
},
// 处理子组件传递的删除文件事件
handleDeleteFile(fileName) {
// 接收文件名后,可执行后续逻辑,删除在数据库的数据
if (fileName) {
deleteRtEnlistmentReserveAttachByFileNameAndStuName({fileName:fileName, studentName: this.formData.studentName}).then(res => {
this.$message.success(`成功删除文件:${fileName}`);
})
}
// 接收文件名后,可执行后续逻辑,删除在数据库的数据
if (fileName) {
deleteRtEnlistmentReserveAttachByFileNameAndStuName({ fileName: fileName, studentName: this.formData.studentName }).then(res => {
this.$message.success(`成功删除文件:${fileName}`);
})
}
}
}
};

View File

@@ -0,0 +1,174 @@
<template>
<div>
<el-form v-show="showSearch" ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="68px">
<el-form-item label="学号" prop="stuNo">
<el-input v-model="queryParams.stuNo" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button v-hasPermi="['system:student:add']" type="primary" plain icon="el-icon-plus" size="mini"
@click="handleAdd">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-hasPermi="['system:student:edit']" type="success" plain icon="el-icon-edit" size="mini"
:disabled="single" @click="handleUpdate">修改</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-delete" size="mini" :disabled="multiple"
@click="handleAdd">批量申请</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button v-hasPermi="['system:stuent:import']" type="info" plain icon="el-icon-upload2" size="mini"
@click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-hasPermi="['system:student:export']" type="warning" plain icon="el-icon-download" size="mini"
@click="handleExport">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-hasPermi="['system:student:exportAllOwnStu']" type="warning" plain icon="el-icon-download"
size="mini" @click="handleExportAll">导出全部</el-button>
</el-col> -->
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
</el-row>
<el-table v-loading="loading" :data="studentList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学号" align="center" prop="stuNo" width="150" />
<el-table-column label="姓名" align="center" prop="name" width="100" />
<el-table-column label="性别" align="center" prop="gender" />
<!-- <el-table-column label="生日" align="center" prop="birthday" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column> -->
<!-- <el-table-column label="身份证" align="center" prop="idCard" /> -->
<el-table-column label="学院名称" align="center" prop="deptId">
<template slot-scope="scope">
<span>{{ scope.row.dept.deptName }}</span>
</template>
</el-table-column>
<el-table-column label="专业名称" align="center" prop="majorId" width="250">
<template slot-scope="scope">
<span>{{ scope.row.srsMajors.majorName }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="年级id" align="center" prop="gradeId" /> -->
<el-table-column label="班级名称" align="center" prop="classId" width="270">
<template slot-scope="scope">
<span>{{ scope.row.srsClass.className }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="手机号码" align="center" prop="phone" />
<el-table-column label="家庭地址" align="center" prop="address" /> -->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-refresh" @click="doInitPwdOne(scope.row)">初始化密码</el-button>
<el-button size="mini" type="text" icon="el-icon-view" @click="picVClick(scope.row)">查看画像</el-button>
<el-button size="mini" type="text" icon="el-icon-view" @click="lookDetail(scope.row)">查看详情</el-button>
<el-button size="mini" type="text" icon="el-icon-search" @click="detailVClick(scope.row)">查新详情</el-button>
</template>
</el-table-column> -->
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
<script>
import { listOwnStu as listStudent } from '@/api/stuCQS/basedata/student'
export default {
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生信息表格数据
studentList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
stuNo: null,
},
}
},
methods: {
/** 查询学生信息列表 */
getList() {
this.loading = true
listStudent(this.queryParams).then(response => {
this.studentList = response.rows
this.total = response.total
this.loading = false
})
},
// 表单重置
reset() {
this.form = {
stuId: null,
name: null,
stuNo: null,
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.classVlue1 = [],
this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.stuId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
handleAdd() {
}
},
// 生命周期 - 创建完成访问当前this实例
created() {
},
// 生命周期 - 挂载完成访问DOM元素
mounted() {
this.getList()
},
// 离开当前页面时执行代码
destroyed() {
}
}
</script>
<style scoped>
/* @import url(); 引入css类 */
</style>

View File

@@ -49,6 +49,9 @@
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="openForm">发起入伍保留学籍申请</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="applicationDialogShow" v-if="this.roleGroup.includes('辅导员')">批量发起入伍保留学籍申请</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['routine:enlistmentReserve:edit']">修改</el-button>
@@ -221,15 +224,20 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog title="批量申请" :visible.sync="applicationDialogOpen" width="80%" append-to-body>
<applicationDialog></applicationDialog>
</el-dialog>
</div>
</template>
<script>
import { listEnlistmentReserve, getOwnInfo, delEnlistmentReserve, addEnlistmentReserve, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve";
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
import applicationDialog from '@/views/routine/enlistmentReserve/components/applicationDialog'
export default {
name: "EnlistmentReserve",
dicts: ['rt_classes', 'rt_nation', 'rt_grade'],
components: { applicationDialog },
data() {
return {
// 遮罩层
@@ -250,6 +258,8 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 是否显示弹出层
applicationDialogOpen: false,
// 查询参数
queryParams: {
pageNum: 1,
@@ -272,6 +282,7 @@ export default {
reserveStartDate: null,
reserveEndDate: null,
approvalNo: null,
deptName: null
},
// 表单参数
form: {},
@@ -354,6 +365,8 @@ export default {
this.queryParams.studentName = this.user.nickName
} else if (this.roleGroup.includes("辅导员")) {
this.queryParams.teacherName = this.user.nickName
} else if (this.roleGroup.includes("学务") || this.roleGroup.includes("二级学院")) {
this.queryParams.deptName = this.user.dept.deptName
}
this.getList()
}
@@ -505,6 +518,9 @@ export default {
// 无驳回记录
return { isReject: false, rejectText: '' };
}
},
applicationDialogShow() {
this.applicationDialogOpen = true
}
}
};

View File

@@ -104,7 +104,16 @@
<el-dialog title="查看" :visible.sync="lookV">
<el-steps :active="getStep(lookForm)">
<el-step title="指导老师填报薪资" description="" />
<el-step title="指导老师填报薪资" description="">
<template slot="description">
<div>
{{ isEmpty(lookForm.zdlsName) ? '' : lookForm.zdlsName }}
</div>
<div>
{{ isEmpty(lookForm.applyTime) ? '' : lookForm.applyTime }}
</div>
</template>
</el-step>
<el-step title="部门领导审批" :status="isEmpty(lookForm.deptCmt) ? 'wait' : getStepStatus(lookForm.deptCmt)">
<template slot="description">