Merge branch 'main' of http://47.112.118.149:10082/xgxt_sd/zhxg_pc
This commit is contained in:
@@ -42,3 +42,13 @@ export function delEnlistmentReserveApproval(id) {
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 新增保留学籍审批记录
|
||||||
|
export function insertOrUpdateByStuAndApprover(data) {
|
||||||
|
return request({
|
||||||
|
url: '/routine/enlistmentReserveApproval/insertOrUpdateByStuAndApprover',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -51,3 +51,12 @@ export function delEnlistmentReserveAttach(id) {
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除保留学籍申请附件(入伍通知书等)
|
||||||
|
export function deleteRtEnlistmentReserveAttachByFileNameAndStuName(query) {
|
||||||
|
return request({
|
||||||
|
url: '/routine/enlistmentReserveAttach/deleteRtEnlistmentReserve',
|
||||||
|
method: 'post',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -75,3 +75,12 @@ export function delYear(id) {
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//为学年分配标签
|
||||||
|
export function assignTag(yearId,tag){
|
||||||
|
return request({
|
||||||
|
url:`/system/year/${yearId}/assign-tag`,
|
||||||
|
method: 'post',
|
||||||
|
params:{ tag: tag }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -251,6 +251,10 @@ export default {
|
|||||||
if(this.fileList.length == 0){
|
if(this.fileList.length == 0){
|
||||||
this.affixId = ''
|
this.affixId = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 关键:触发自定义事件,传递被删除的文件名
|
||||||
|
// 事件名建议:delete-file,参数:file.name(文件名)
|
||||||
|
this.$emit('delete-file', file.name);
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.message)
|
this.$message.error(res.message)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -439,7 +439,7 @@
|
|||||||
<!--流程流转记录-->
|
<!--流程流转记录-->
|
||||||
<el-tab-pane label="流转记录" name="2">
|
<el-tab-pane label="流转记录" name="2">
|
||||||
<!--flowRecordList-->
|
<!--flowRecordList-->
|
||||||
<el-col :span="16" :offset="4">
|
<el-col :span="16" :offset="4" v-loading="loading" style="min-height: 500px;">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-timeline>
|
<el-timeline>
|
||||||
<el-timeline-item v-for="(item, index) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)" :color="setColor(item.finishTime)">
|
<el-timeline-item v-for="(item, index) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)" :color="setColor(item.finishTime)">
|
||||||
@@ -660,7 +660,10 @@ import { checkRole } from '@/utils/permission' // 权限判断函数
|
|||||||
import flow from '@/views/flowable/task/todo/detail/flow'
|
import flow from '@/views/flowable/task/todo/detail/flow'
|
||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
import pdf from 'vue-pdf'
|
import pdf from 'vue-pdf'
|
||||||
import { getEnlistmentReserveByProcessInstanceId} from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
import { getEnlistmentReserveByProcessInstanceId, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
||||||
|
import { insertOrUpdateByStuAndApprover } from "@/api/routine/enlistmentReserve/enlistmentReserveApproval";
|
||||||
|
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
|
||||||
|
import { updateStudent } from '@/api/stuCQS/basedata/student'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Record',
|
name: 'Record',
|
||||||
@@ -728,7 +731,8 @@ export default {
|
|||||||
variables: {
|
variables: {
|
||||||
variables: {},
|
variables: {},
|
||||||
approvalOpinion: '', // 必须初始化,避免 null 报错
|
approvalOpinion: '', // 必须初始化,避免 null 报错
|
||||||
approvalResult: ''
|
approvalResult: '',
|
||||||
|
targetNodeName: ''
|
||||||
},
|
},
|
||||||
penaltyNumber: '',
|
penaltyNumber: '',
|
||||||
letterServiceContent: '',
|
letterServiceContent: '',
|
||||||
@@ -983,9 +987,11 @@ export default {
|
|||||||
flowRecord(params)
|
flowRecord(params)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
that.flowRecordList = res.data.flowList
|
that.flowRecordList = res.data.flowList
|
||||||
|
this.loading = false
|
||||||
})
|
})
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
this.goBack()
|
this.goBack()
|
||||||
|
this.loading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
fillFormData(form, data) {
|
fillFormData(form, data) {
|
||||||
@@ -1015,24 +1021,7 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
// 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在
|
// 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在
|
||||||
if (this.taskForm.variables == null) {
|
this.initApproval()
|
||||||
// 情况1:variables 为 null → 初始化完整结构(包含原有 variables 嵌套和 approvalOpinion)
|
|
||||||
this.taskForm.variables = {
|
|
||||||
variables: {}, // 保留原有的嵌套 variables 结构(后端可能依赖)
|
|
||||||
approvalOpinion: '', // 初始化审批意见为空白
|
|
||||||
approvalResult: ''
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 情况2:variables 已存在 → 保留原有字段,补充 approvalOpinion(无则添加,有则保留原值)
|
|
||||||
this.taskForm.variables = {
|
|
||||||
...this.taskForm.variables, // 展开原有所有字段(如 variables、其他自定义字段)
|
|
||||||
approvalOpinion: this.taskForm.variables.approvalOpinion || '', // 兜底:若原有未定义则设为空白
|
|
||||||
approvalResult: this.taskForm.variables.approvalOpinion || ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.formKeyExist = res.data.formKeyExist
|
this.formKeyExist = res.data.formKeyExist
|
||||||
})
|
})
|
||||||
@@ -1058,7 +1047,7 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
this.$modal.loading('正在努力加载中,请稍等...')
|
this.$modal.loading('正在努力加载中,请稍等...')
|
||||||
|
|
||||||
this.taskForm.comment = '同意'
|
this.taskForm.comment = this.taskForm.variables.approvalOpinion != '' ? this.taskForm.variables.approvalOpinion : '同意'
|
||||||
this.taskForm.variables.approvalResult = 1
|
this.taskForm.variables.approvalResult = 1
|
||||||
if (this.taskForm && this.formKeyExist) {
|
if (this.taskForm && this.formKeyExist) {
|
||||||
// 表单是否禁用
|
// 表单是否禁用
|
||||||
@@ -1070,7 +1059,6 @@ export default {
|
|||||||
|
|
||||||
complete(this.taskForm).then((response) => {
|
complete(this.taskForm).then((response) => {
|
||||||
this.$modal.closeLoading()
|
this.$modal.closeLoading()
|
||||||
|
|
||||||
this.goBack()
|
this.goBack()
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -1102,6 +1090,10 @@ export default {
|
|||||||
this.form.quitNumber = this.taskForm.quitNumber
|
this.form.quitNumber = this.taskForm.quitNumber
|
||||||
this.form.remark = this.taskForm.remark
|
this.form.remark = this.taskForm.remark
|
||||||
this.updateRtStuQuitSchool()
|
this.updateRtStuQuitSchool()
|
||||||
|
} else if (this.category == 'enlistmentReserve') { // 是应征入伍保留学籍申请,才执行
|
||||||
|
if (this.taskName == '教务处主管领导审批') { // (最后一个领导审核完成之后,修改学生学籍状态, status:07是入伍保留学籍)
|
||||||
|
updateStudent({stuId: this.form.studentId, status: '07'}).then(response => {})
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$modal.msgSuccess(response.msg)
|
this.$modal.msgSuccess(response.msg)
|
||||||
}
|
}
|
||||||
@@ -1153,13 +1145,18 @@ export default {
|
|||||||
/** 驳回任务 */
|
/** 驳回任务 */
|
||||||
taskReject() {
|
taskReject() {
|
||||||
this.$refs['taskForm'].validate((valid) => {
|
this.$refs['taskForm'].validate((valid) => {
|
||||||
|
this.$modal.loading('正在努力加载中,请稍等...')
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
|
||||||
// 入伍保留学籍审核状态和意见
|
|
||||||
this.taskForm.variables.approvalResult = 0
|
|
||||||
this.taskForm.variables.approvalOpinion = this.taskForm.comment
|
|
||||||
rejectTask(this.taskForm).then((res) => {
|
rejectTask(this.taskForm).then((res) => {
|
||||||
|
|
||||||
|
// 是应征入伍保留学籍申请,才执行
|
||||||
|
if (this.category == 'enlistmentReserve') {
|
||||||
|
this.taskReturnApproval("驳回")
|
||||||
|
}
|
||||||
|
|
||||||
this.$modal.msgSuccess(res.msg)
|
this.$modal.msgSuccess(res.msg)
|
||||||
|
this.$modal.closeLoading()
|
||||||
this.goBack()
|
this.goBack()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1172,18 +1169,46 @@ export default {
|
|||||||
returnList(this.taskForm).then((res) => {
|
returnList(this.taskForm).then((res) => {
|
||||||
this.returnTaskList = res.data
|
this.returnTaskList = res.data
|
||||||
this.taskForm.variables = null
|
this.taskForm.variables = null
|
||||||
|
|
||||||
|
// 是应征入伍保留学籍申请,才执行
|
||||||
|
if (this.category == 'enlistmentReserve') {
|
||||||
|
// 取原审批列表的副本(避免直接修改原表单数据导致重复push)
|
||||||
|
const approvalList = [...this.form.enlistmentReserveApprovalList]
|
||||||
|
|
||||||
|
// 判断approvalList中是否已存在"学生申请"项,仅不存在时才push
|
||||||
|
const hasStudentApply = approvalList.some(record => record.nodeName === "学生申请")
|
||||||
|
if (!hasStudentApply) {
|
||||||
|
approvalList.push({ nodeName: "学生申请" })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤returnTaskList,使用处理后的临时approvalList(不污染原数据)
|
||||||
|
this.returnTaskList = this.returnTaskList.filter(returnTask => {
|
||||||
|
return approvalList.some(record => record.nodeName === returnTask.documentation)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
this.initApproval()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/** 提交退回任务 */
|
/** 提交退回任务 */
|
||||||
taskReturn() {
|
taskReturn() {
|
||||||
this.$refs['taskForm'].validate((valid) => {
|
this.$refs['taskForm'].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
this.$modal.loading('正在努力加载中,请稍等...')
|
||||||
returnTask(this.taskForm).then((res) => {
|
returnTask(this.taskForm).then((res) => {
|
||||||
|
|
||||||
|
// 是应征入伍保留学籍申请,才执行
|
||||||
|
if (this.category == 'enlistmentReserve') {
|
||||||
|
this.taskReturnApproval("退回")
|
||||||
|
}
|
||||||
|
|
||||||
this.$modal.msgSuccess(res.msg)
|
this.$modal.msgSuccess(res.msg)
|
||||||
|
this.$modal.closeLoading()
|
||||||
this.goBack()
|
this.goBack()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
/** 取消回退任务按钮 */
|
/** 取消回退任务按钮 */
|
||||||
cancelTask() {
|
cancelTask() {
|
||||||
@@ -1240,6 +1265,70 @@ export default {
|
|||||||
fileUpload() {
|
fileUpload() {
|
||||||
download.resource(this.pdfURL)
|
download.resource(this.pdfURL)
|
||||||
},
|
},
|
||||||
|
// 初始化入伍保留学籍申请审核意见参数
|
||||||
|
initApproval() {
|
||||||
|
// 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在
|
||||||
|
if (this.taskForm.variables == null) {
|
||||||
|
// 情况1:variables 为 null → 初始化完整结构(包含原有 variables 嵌套和 approvalOpinion)
|
||||||
|
this.taskForm.variables = {
|
||||||
|
variables: {}, // 保留原有的嵌套 variables 结构(后端可能依赖)
|
||||||
|
approvalOpinion: '', // 初始化审批意见为空白
|
||||||
|
approvalResult: '', // 审批状态
|
||||||
|
targetNodeName: '' // 审批节点
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 情况2:variables 已存在 → 保留原有字段,补充 approvalOpinion(无则添加,有则保留原值)
|
||||||
|
this.taskForm.variables = {
|
||||||
|
...this.taskForm.variables, // 展开原有所有字段(如 variables、其他自定义字段)
|
||||||
|
approvalOpinion: this.taskForm.variables.approvalOpinion || '', // 兜底:若原有未定义则设为空白
|
||||||
|
approvalResult: this.taskForm.variables.approvalResult || '',
|
||||||
|
targetNodeName: this.taskForm.variables.targetNodeName || ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 退回或驳回的时候生成入伍保留学籍申请审核
|
||||||
|
taskReturnApproval(text) {
|
||||||
|
getUserProfile().then(res => {
|
||||||
|
let data = {
|
||||||
|
applyId: this.form.id,
|
||||||
|
processInstanceId: this.form.processInstanceId,
|
||||||
|
taskId: this.taskForm.taskId,
|
||||||
|
nodeName: this.taskName,
|
||||||
|
approverId: res.data.userId,
|
||||||
|
approverName: res.data.nickName,
|
||||||
|
approvalOpinion: this.taskForm.comment,
|
||||||
|
approvalResult: 2,
|
||||||
|
studentName: this.form.studentName,
|
||||||
|
studentNo: this.form.studentNo
|
||||||
|
}
|
||||||
|
// 生成审核记录
|
||||||
|
insertOrUpdateByStuAndApprover(data).then(ress => {
|
||||||
|
// 审核记录生成之后,判断退回或驳回是不是到学生申请,如果是则更新申请表状态
|
||||||
|
if (text == '退回') {
|
||||||
|
let nodeName = ''
|
||||||
|
this.returnTaskList.forEach(element => {
|
||||||
|
if (element.id == this.taskForm.targetKey) { // 如果选中的节点id等于列表里面的id,就将节点名称获取到nodeName
|
||||||
|
nodeName = element.documentation
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (nodeName == '学生申请') { // 如果退回选择的是学生节点更新申请表状态
|
||||||
|
this.form.applyStatus = 0
|
||||||
|
updateEnlistmentReserve(this.form).then(result => {
|
||||||
|
this.$modal.closeLoading()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 驳回
|
||||||
|
if (this.taskName == '辅导员审批') { // 当前节点如果是辅导员审批,证明驳回就到了学生,所以更新申请表状态
|
||||||
|
this.form.applyStatus = 0
|
||||||
|
updateEnlistmentReserve(this.form).then(result => {
|
||||||
|
this.$modal.closeLoading()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -92,7 +92,32 @@
|
|||||||
__
|
__
|
||||||
{{ form.maList.length > 0 ? form.maList[0].newmajor : '暂无数据' }}__
|
{{ form.maList.length > 0 ? form.maList[0].newmajor : '暂无数据' }}__
|
||||||
</p>
|
</p>
|
||||||
<p class="attachment-tip">(设上传入伍通知书等佐证材料区域)</p>
|
|
||||||
|
<image-preview
|
||||||
|
v-if="form.maList.length > 0 && form.maList[0].proof"
|
||||||
|
:src="form.maList[0].proof"
|
||||||
|
:width="240"
|
||||||
|
:height="160"
|
||||||
|
/>
|
||||||
|
<span v-else>暂无图片</span>
|
||||||
|
|
||||||
|
<image-preview
|
||||||
|
v-if="form.maList.length > 0 && form.maList[0].idcard"
|
||||||
|
:src="form.maList[0].idcard"
|
||||||
|
:width="240"
|
||||||
|
:height="160"
|
||||||
|
/>
|
||||||
|
<span v-else>暂无图片</span>
|
||||||
|
|
||||||
|
<image-preview
|
||||||
|
v-if="form.maList.length > 0 && form.maList[0].material"
|
||||||
|
:src="form.maList[0].material"
|
||||||
|
:width="240"
|
||||||
|
:height="160"
|
||||||
|
/>
|
||||||
|
<span v-else>暂无图片</span>
|
||||||
|
|
||||||
|
<p class="attachment-tip"></p>
|
||||||
<div class="applicant-info right-align">
|
<div class="applicant-info right-align">
|
||||||
<span>申请人:</span>
|
<span>申请人:</span>
|
||||||
<el-input v-model="form.stName" readonly class="applicant-input"></el-input>
|
<el-input v-model="form.stName" readonly class="applicant-input"></el-input>
|
||||||
@@ -109,7 +134,7 @@
|
|||||||
<tr></tr>
|
<tr></tr>
|
||||||
|
|
||||||
<!-- 招生意见行 -->
|
<!-- 招生意见行 -->
|
||||||
<tr>
|
<tr v-if="form.conversion === 'Y'">
|
||||||
<td class="label" rowspan="4">招生与<br />就业处<br />意见</td>
|
<td class="label" rowspan="4">招生与<br />就业处<br />意见</td>
|
||||||
<td class="input-cell" colspan="8" rowspan="4">
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
<p class="reason-text" style="color: red;">符合转专业条件,拟同意转入年级和专业:
|
<p class="reason-text" style="color: red;">符合转专业条件,拟同意转入年级和专业:
|
||||||
|
|||||||
729
src/views/routine/dis/formSt.vue
Normal file
729
src/views/routine/dis/formSt.vue
Normal file
@@ -0,0 +1,729 @@
|
|||||||
|
<template>
|
||||||
|
<div class="application-form-container">
|
||||||
|
<h2 class="form-title">广西水利电力职业技术学院</h2>
|
||||||
|
<h3 class="form-subtitle">退役复学申请表</h3>
|
||||||
|
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<table class="application-table">
|
||||||
|
<!-- 基本信息行1 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label">姓名</td>
|
||||||
|
<td class="input-cell">
|
||||||
|
<el-form-item prop="stName" class="form-item-custom">
|
||||||
|
<el-input v-model="form.stName" placeholder="请输入姓名" class="basic-input"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
<td class="label">性别</td>
|
||||||
|
<td class="input-cell">
|
||||||
|
<el-form-item prop="sex" class="form-item-custom">
|
||||||
|
<el-select v-model="form.sex" placeholder="请选择性别" class="basic-input">
|
||||||
|
<el-option label="男" value="0"></el-option>
|
||||||
|
<el-option label="女" value="1"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
<td class="label">民族</td>
|
||||||
|
<td class="input-cell">
|
||||||
|
<el-form-item prop="nations" class="form-item-custom">
|
||||||
|
<el-input v-model="form.nations" placeholder="请输入民族" class="basic-input"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
<td class="label">班级</td>
|
||||||
|
<td class="input-cell" colspan="2">
|
||||||
|
<el-form-item prop="stClass" class="form-item-custom">
|
||||||
|
<el-input v-model="form.stClass" placeholder="请输入年级" class="basic-input"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 专业、学号、班级行 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label">学号</td>
|
||||||
|
<td class="input-cell">
|
||||||
|
<el-form-item prop="stId" class="form-item-custom">
|
||||||
|
<el-input v-model="form.stId" placeholder="请输入学号" class="basic-input" type="textarea" :rows="3"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
<td class="label" rowspan="2">专业<br />名称</td>
|
||||||
|
<td class="input-cell" colspan="3" rowspan="2">
|
||||||
|
<el-form-item prop="majors" class="form-item-custom">
|
||||||
|
<el-input v-model="form.majors" placeholder="请输入专业名称" class="major-input" type="textarea" :rows="3"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="label">联系电话</td>
|
||||||
|
<td class="input-cell" colspan="2">
|
||||||
|
<el-form-item prop="datab" class="form-item-custom">
|
||||||
|
<el-input v-model="form.datab" placeholder="请输入电话" class="basic-input" type="textarea" :rows="3"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="label" rowspan="4">申请<br />理由</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<p class="reason-text">本人于
|
||||||
|
<el-form-item prop="rwTime" class="form-item-custom inline-item">
|
||||||
|
<el-date-picker v-model="form.rwTime" type="date" placeholder="选择日期" format="yyyy-MM-dd"
|
||||||
|
value-format="yyyy-MM-dd" class="date-picker"></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
应征入伍,于
|
||||||
|
<el-form-item prop="dataa" class="form-item-custom inline-item">
|
||||||
|
<el-date-picker v-model="form.dataa" type="date" placeholder="选择日期" format="yyyy-MM-dd"
|
||||||
|
value-format="yyyy-MM-dd" class="date-picker"></el-date-picker>
|
||||||
|
</el-form-item> 日退役,退役后申请复学。
|
||||||
|
</p>
|
||||||
|
<p class="reason-text" style="" v-if="form.conversion=='Y'">是否申请转专业:(√)是 ()否
|
||||||
|
</p>
|
||||||
|
<p class="reason-text" style="" v-else>是否申请转专业:()是 (×)否
|
||||||
|
</p>
|
||||||
|
<p class="reason-text" style="color: red;">原年级和专业:__
|
||||||
|
{{ form.maList.length > 0 ? form.maList[0].oldgrade : '暂无数据' }}
|
||||||
|
__{{ form.maList.length > 0 ? form.maList[0].oldmajor : '暂无数据' }}__
|
||||||
|
<!-- <el-input v-model="form.maList.oldgrade" type="textarea" :rows="3"
|
||||||
|
class="opinion-textarea">{{oldgrade}}</el-input> -->
|
||||||
|
<!-- <el-input v-model="form.maList.oldgrade" type="textarea" :rows="3"
|
||||||
|
class="opinion-textarea"></el-input> -->
|
||||||
|
|
||||||
|
申请转入年级和专业:__
|
||||||
|
{{ form.maList.length > 0 ? form.maList[0].newgrade : '暂无数据' }}
|
||||||
|
__
|
||||||
|
{{ form.maList.length > 0 ? form.maList[0].newmajor : '暂无数据' }}__
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<image-preview
|
||||||
|
v-if="form.maList.length > 0 && form.maList[0].proof"
|
||||||
|
:src="form.maList[0].proof"
|
||||||
|
:width="240"
|
||||||
|
:height="160"
|
||||||
|
/>
|
||||||
|
<span v-else>暂无图片</span>
|
||||||
|
|
||||||
|
<image-preview
|
||||||
|
v-if="form.maList.length > 0 && form.maList[0].idcard"
|
||||||
|
:src="form.maList[0].idcard"
|
||||||
|
:width="240"
|
||||||
|
:height="160"
|
||||||
|
/>
|
||||||
|
<span v-else>暂无图片</span>
|
||||||
|
|
||||||
|
<image-preview
|
||||||
|
v-if="form.maList.length > 0 && form.maList[0].material"
|
||||||
|
:src="form.maList[0].material"
|
||||||
|
:width="240"
|
||||||
|
:height="160"
|
||||||
|
/>
|
||||||
|
<span v-else>暂无图片</span>
|
||||||
|
|
||||||
|
<p class="attachment-tip"></p>
|
||||||
|
<div class="applicant-info right-align">
|
||||||
|
<span>申请人:</span>
|
||||||
|
<el-input v-model="form.stName" readonly class="applicant-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-form-item prop="times" class="form-item-custom inline-item">
|
||||||
|
<el-date-picker v-model="form.times" type="date" placeholder="选择日期" format="yyyy-MM-dd"
|
||||||
|
value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
<!-- 招生意见行 -->
|
||||||
|
<tr v-if="form.conversion === 'Y'">
|
||||||
|
<td class="label" rowspan="4">招生与<br />就业处<br />意见</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<p class="reason-text" style="color: red;">符合转专业条件,拟同意转入年级和专业:
|
||||||
|
__{{ form.maList.length > 0 ? form.maList[0].newgrade : '暂无数据' }}
|
||||||
|
__
|
||||||
|
{{ form.maList.length > 0 ? form.maList[0].newmajor : '暂无数据' }}__
|
||||||
|
</p>
|
||||||
|
<div class="signature-area right-align">
|
||||||
|
<span>审批结果:</span>
|
||||||
|
<el-select v-model="form.status" placeholder="请选择" class="short-select">
|
||||||
|
<el-option label="通过" value="1"></el-option>
|
||||||
|
<el-option label="驳回" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span class="date-label">签名:</span>
|
||||||
|
<el-input v-model="form.idea" placeholder="请输入姓名" class="signature-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-date-picker v-model="form.time" type="date" placeholder="选择日期"
|
||||||
|
format="yyyy-MM-dd" value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
<!-- 辅导员意见行 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label" rowspan="4">辅导员<br />意见</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<el-input v-model="form.fdIdea" type="textarea" :rows="3" placeholder="请填写辅导员意见..."
|
||||||
|
class="opinion-textarea"></el-input>
|
||||||
|
<div class="signature-area right-align">
|
||||||
|
<span>审批结果:</span>
|
||||||
|
<el-select v-model="form.fdStatus" placeholder="请选择" class="short-select">
|
||||||
|
<el-option label="通过" value="1"></el-option>
|
||||||
|
<el-option label="驳回" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span class="date-label">签名:</span>
|
||||||
|
<el-input v-model="form.fdQm" placeholder="请输入姓名" class="signature-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-date-picker v-model="form.fdTime" type="date" placeholder="选择日期"
|
||||||
|
format="yyyy-MM-dd" value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 学务意见行 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label" rowspan="4">学务<br />意见</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<p>拟编入</p>
|
||||||
|
<div class="signature-area right-align">
|
||||||
|
<span>审批结果:</span>
|
||||||
|
<el-select v-model="form.xwStatus" placeholder="请选择" class="short-select">
|
||||||
|
<el-option label="通过" value="1"></el-option>
|
||||||
|
<el-option label="驳回" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span class="date-label">签名:</span>
|
||||||
|
<el-input v-model="form.xwQm" placeholder="请输入姓名" class="signature-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-date-picker v-model="form.xwTime" type="date" placeholder="选择日期"
|
||||||
|
format="yyyy-MM-dd" value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 二级意见行 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label" rowspan="4">二级学<br />院意见</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<el-input v-model="form.twoIdea" type="textarea" :rows="3" placeholder="请填写意见..."
|
||||||
|
class="opinion-textarea"></el-input>
|
||||||
|
<div class="signature-area right-align">
|
||||||
|
<span>审批结果:</span>
|
||||||
|
<el-select v-model="form.twoStatus" placeholder="请选择" class="short-select">
|
||||||
|
<el-option label="通过" value="1"></el-option>
|
||||||
|
<el-option label="驳回" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span class="date-label">签名:</span>
|
||||||
|
<el-input v-model="form.erQm" placeholder="请输入姓名" class="signature-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-date-picker v-model="form.twoTime" type="date" placeholder="选择日期"
|
||||||
|
format="yyyy-MM-dd" value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
<!-- 学籍管理科意见行 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label" rowspan="4">学籍管<br />理科意见</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<el-input v-model="form.xjIdea" type="textarea" :rows="3" placeholder="请填写意见..."
|
||||||
|
class="opinion-textarea"></el-input>
|
||||||
|
<div class="signature-area right-align">
|
||||||
|
<span>审批结果:</span>
|
||||||
|
<el-select v-model="form.xjglStatus" placeholder="请选择" class="short-select">
|
||||||
|
<el-option label="通过" value="1"></el-option>
|
||||||
|
<el-option label="驳回" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span class="date-label">签名:</span>
|
||||||
|
<el-input v-model="form.xjQm" placeholder="请输入姓名" class="signature-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-date-picker v-model="form.xjTime" type="date" placeholder="选择日期"
|
||||||
|
format="yyyy-MM-dd" value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 教务处主意见行 -->
|
||||||
|
<tr>
|
||||||
|
<td class="label" rowspan="4">教务处<br />主管领导意见</td>
|
||||||
|
<td class="input-cell" colspan="8" rowspan="4">
|
||||||
|
<el-input v-model="form.jwIdea" type="textarea" :rows="3" placeholder="请填写意见..."
|
||||||
|
class="opinion-textarea"></el-input>
|
||||||
|
<div class="signature-area right-align">
|
||||||
|
<span>审批结果:</span>
|
||||||
|
<el-select v-model="form.jwStatus" placeholder="请选择" class="short-select">
|
||||||
|
<el-option label="通过" value="1"></el-option>
|
||||||
|
<el-option label="驳回" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span class="date-label">签名:</span>
|
||||||
|
<el-input v-model="form.jwQm" placeholder="请输入姓名" class="signature-input"></el-input>
|
||||||
|
<span class="date-label">日期:</span>
|
||||||
|
<el-date-picker v-model="form.jwTime" type="date" placeholder="选择日期"
|
||||||
|
format="yyyy-MM-dd" value-format="yyyy-MM-dd" class="date-picker full-date"></el-date-picker>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<!-- 说明信息 -->
|
||||||
|
<div class="form-description">
|
||||||
|
<p>说明:1.本表应附学生入伍证明材料复印件;</p>
|
||||||
|
<p>2.本表一式两份,二级学院和教务处各留存一份。</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 操作按钮 -->
|
||||||
|
<!-- <div class="form-btn-group"> -->
|
||||||
|
<!-- <el-button type="primary" @click="submitForm">提交审核</el-button> -->
|
||||||
|
<!-- <el-button @click="resetForm">重置表单</el-button> -->
|
||||||
|
<!-- <el-button type="text" @click="printForm">打印表单</el-button> -->
|
||||||
|
<!-- </div> -->
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listBasic, getBasic, delBasic, addBasic, updateBasic } from "@/api/routine/basic";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Basic",
|
||||||
|
dicts: ['sys_user_sex'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 退伍复学申请表格数据
|
||||||
|
basicList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
fxId: null,
|
||||||
|
fxTime: null,
|
||||||
|
stId: null,
|
||||||
|
stName: null,
|
||||||
|
fdName: null,
|
||||||
|
sex: null,
|
||||||
|
nations: null,
|
||||||
|
fdQm: null,
|
||||||
|
xwQm: null,
|
||||||
|
erQm: null,
|
||||||
|
xjQm: null,
|
||||||
|
jwQm: null,
|
||||||
|
stClass: null,
|
||||||
|
majors: null,
|
||||||
|
grade: null,
|
||||||
|
college: null,
|
||||||
|
reasons: null,
|
||||||
|
fdIdea: null,
|
||||||
|
twoIdea: null,
|
||||||
|
xwIdea: null,
|
||||||
|
xjIdea: null,
|
||||||
|
jwIdea: null,
|
||||||
|
zsIdea: null,
|
||||||
|
zsStatus: null,
|
||||||
|
times: null,
|
||||||
|
fdStatus: null,
|
||||||
|
xwStatus: null,
|
||||||
|
twoStatus: null,
|
||||||
|
xjglStatus: null,
|
||||||
|
jwStatus: null,
|
||||||
|
rwTime: null,
|
||||||
|
zsTime: null,
|
||||||
|
fdTime: null,
|
||||||
|
xwTime: null,
|
||||||
|
twoTime: null,
|
||||||
|
xjTime: null,
|
||||||
|
jwTime: null,
|
||||||
|
datab: null,
|
||||||
|
dataa: null,
|
||||||
|
conversion: null,
|
||||||
|
processId: null,
|
||||||
|
deployId: null
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.showData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
showData() {
|
||||||
|
if (this.$route.query.id != undefined) {
|
||||||
|
console.log(this.$route.query.id)
|
||||||
|
getBasic(this.$route.query.id).then((response) => {
|
||||||
|
this.form = response.data
|
||||||
|
// this.active = response.data.status + 1;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 查询退伍复学申请列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listBasic(this.queryParams).then(response => {
|
||||||
|
this.basicList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
fxId: null,
|
||||||
|
fxTime: null,
|
||||||
|
stId: null,
|
||||||
|
stName: null,
|
||||||
|
fdName: null,
|
||||||
|
sex: null,
|
||||||
|
nations: null,
|
||||||
|
fdQm: null,
|
||||||
|
xwQm: null,
|
||||||
|
erQm: null,
|
||||||
|
xjQm: null,
|
||||||
|
jwQm: null,
|
||||||
|
stClass: null,
|
||||||
|
majors: null,
|
||||||
|
grade: null,
|
||||||
|
college: null,
|
||||||
|
reasons: null,
|
||||||
|
fdIdea: null,
|
||||||
|
twoIdea: null,
|
||||||
|
xwIdea: null,
|
||||||
|
xjIdea: null,
|
||||||
|
jwIdea: null,
|
||||||
|
zsIdea: null,
|
||||||
|
zsStatus: null,
|
||||||
|
times: null,
|
||||||
|
fdStatus: null,
|
||||||
|
xwStatus: null,
|
||||||
|
twoStatus: null,
|
||||||
|
xjglStatus: null,
|
||||||
|
jwStatus: null,
|
||||||
|
rwTime: null,
|
||||||
|
zsTime: null,
|
||||||
|
fdTime: null,
|
||||||
|
xwTime: null,
|
||||||
|
twoTime: null,
|
||||||
|
xjTime: null,
|
||||||
|
jwTime: null,
|
||||||
|
datab: null,
|
||||||
|
dataa: null,
|
||||||
|
conversion: null,
|
||||||
|
processId: null,
|
||||||
|
deployId: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length!==1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加退伍复学申请";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids
|
||||||
|
getBasic(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改退伍复学申请";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateBasic(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addBasic(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除退伍复学申请编号为"' + ids + '"的数据项?').then(function() {
|
||||||
|
return delBasic(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('routine/basic/export', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `basic_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.application-form-container {
|
||||||
|
width: 100%;
|
||||||
|
padding: 30px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-family: "Source Han Sans CN", "PingFang SC", "Microsoft YaHei", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-title {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #222;
|
||||||
|
margin: 0 0 12px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-subtitle {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #222;
|
||||||
|
margin: 0 0 25px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.application-table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: separate;
|
||||||
|
/* 关键:使用separate替代collapse */
|
||||||
|
border-spacing: 0;
|
||||||
|
/* 消除单元格间距 */
|
||||||
|
border: 1.5px solid #000;
|
||||||
|
background-color: #fff;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.application-table td {
|
||||||
|
border: 1px solid #000;
|
||||||
|
padding: 8px;
|
||||||
|
vertical-align: top;
|
||||||
|
position: relative;
|
||||||
|
/* 关键:为子元素提供定位上下文 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
width: 80px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 1.6;
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-cell {
|
||||||
|
min-height: 36px;
|
||||||
|
padding-top: 20px !important;
|
||||||
|
padding-bottom: 25px !important;
|
||||||
|
/* 关键:预留验证提示空间 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 解决验证提示遮挡核心样式 */
|
||||||
|
.form-item-custom {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__error {
|
||||||
|
position: absolute !important;
|
||||||
|
left: 0 !important;
|
||||||
|
bottom: -22px !important;
|
||||||
|
/* 显示在单元格内预留空间 */
|
||||||
|
background: #f56c6c !important;
|
||||||
|
color: #fff !important;
|
||||||
|
padding: 2px 6px !important;
|
||||||
|
border-radius: 2px !important;
|
||||||
|
z-index: 10 !important;
|
||||||
|
white-space: nowrap !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inline-item {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 输入控件样式 */
|
||||||
|
.basic-input {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.major-input,
|
||||||
|
.address-input {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 72px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opinion-textarea {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 80px;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker {
|
||||||
|
width: 150px;
|
||||||
|
margin: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker.full-date {
|
||||||
|
width: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.applicant-input,
|
||||||
|
.signature-input {
|
||||||
|
width: 200px;
|
||||||
|
margin: 0 6px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.short-select {
|
||||||
|
width: 120px;
|
||||||
|
margin: 0 10px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 文本样式 */
|
||||||
|
.reason-text {
|
||||||
|
margin: 10px 0;
|
||||||
|
line-height: 2;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.attachment-tip {
|
||||||
|
margin: 10px 0;
|
||||||
|
color: #666;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-align {
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 15px;
|
||||||
|
line-height: 2.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-label {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 按钮样式 */
|
||||||
|
.form-btn-group {
|
||||||
|
margin-top: 30px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-btn-group .el-button {
|
||||||
|
margin: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-description {
|
||||||
|
margin-top: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 2;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 打印样式 */
|
||||||
|
@media print {
|
||||||
|
.form-btn-group {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input,
|
||||||
|
.el-select,
|
||||||
|
.el-textarea {
|
||||||
|
border: 1px solid #000 !important;
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
background-color: #eee !important;
|
||||||
|
-webkit-print-color-adjust: exact;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__error {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-cell {
|
||||||
|
padding-bottom: 8px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -175,13 +175,13 @@
|
|||||||
<el-input v-model="form.newmajor" placeholder="请输入新专业" />
|
<el-input v-model="form.newmajor" placeholder="请输入新专业" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="退役证明" prop="proof">
|
<el-form-item label="退役证明" prop="proof">
|
||||||
<file-upload v-model="form.proof" />
|
<image-upload v-model="form.proof" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="身份证" prop="idcard">
|
<el-form-item label="身份证" prop="idcard">
|
||||||
<image-upload v-model="form.idcard" />
|
<image-upload v-model="form.idcard" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="材料" prop="material">
|
<el-form-item label="材料" prop="material">
|
||||||
<file-upload v-model="form.material" />
|
<image-upload v-model="form.material" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|||||||
@@ -72,20 +72,38 @@
|
|||||||
</template> -->
|
</template> -->
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="时间" align="center" prop="times" />
|
<el-table-column label="时间" align="center" prop="times" />
|
||||||
<el-table-column label="辅导员审核状态" align="center" prop="fdStatus" />
|
<!-- <el-table-column label="辅导员审核状态" align="center" prop="fdStatus" />
|
||||||
<el-table-column label="学务审核" align="center" prop="xwStatus" />
|
<el-table-column label="学务审核" align="center" prop="xwStatus" />
|
||||||
<el-table-column label="二级学院审核状态" align="center" prop="twoStatus" />
|
<el-table-column label="二级学院审核状态" align="center" prop="twoStatus" />
|
||||||
<el-table-column label="学籍管理审核状态" align="center" prop="xjglStatus" />
|
<el-table-column label="学籍管理审核状态" align="center" prop="xjglStatus" /> -->
|
||||||
<el-table-column label="教务处审核状态" align="center" prop="jwcStatus" />
|
<el-table-column label="审核状态" align="center" prop="jwcStatus" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<!-- 审批状态(0、待审批;1、已通过; -->
|
||||||
|
<el-tag v-if="scope.row.jwcStatus == 0 || scope.row.jwcStatus == null">审批中</el-tag>
|
||||||
|
<el-tag v-else-if="scope.row.jwcStatus == 1" type="success">已通过</el-tag>
|
||||||
|
<el-tag v-else-if="scope.row.jwcStatus == 2" type="danger">已驳回</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
|
v-if="scope.row.fdStatus === 2 || scope.row.xwStatus === 2 || scope.row.twoStatus===2||scope.row.jwcStatus===2||scope.row.xjglStatus===2||scope.row.zsStatus===2"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="handledetail(scope.row)"
|
@click="handledetail(scope.row)"
|
||||||
v-hasPermi="['routine:basic:edit']"
|
v-hasPermi="['routine:basic:edit']"
|
||||||
>修改</el-button>
|
>修改</el-button>
|
||||||
|
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleTable(scope.row)"
|
||||||
|
v-hasPermi="['routine:basic:edit']"
|
||||||
|
>查看申请表</el-button>
|
||||||
|
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
@@ -256,6 +274,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { delDeployment, todoList } from '@/api/flowable/todo'
|
||||||
import { listBasic, getBasic, delBasic, addBasic, updateBasic } from "@/api/routine/basic";
|
import { listBasic, getBasic, delBasic, addBasic, updateBasic } from "@/api/routine/basic";
|
||||||
import { listMate, getMate, delMate, addMate, updateMate } from "@/api/routine/mate";
|
import { listMate, getMate, delMate, addMate, updateMate } from "@/api/routine/mate";
|
||||||
import { getUserProfile } from '@/api/system/user' // 获取
|
import { getUserProfile } from '@/api/system/user' // 获取
|
||||||
@@ -288,25 +307,48 @@ export default {
|
|||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
fxId: null,
|
||||||
|
fxTime: null,
|
||||||
stId: null,
|
stId: null,
|
||||||
stName: null,
|
stName: null,
|
||||||
fdName: null,
|
fdName: null,
|
||||||
sex: null,
|
sex: null,
|
||||||
nations: null,
|
nations: null,
|
||||||
|
fdQm: null,
|
||||||
|
xwQm: null,
|
||||||
|
erQm: null,
|
||||||
|
xjQm: null,
|
||||||
|
jwQm: null,
|
||||||
stClass: null,
|
stClass: null,
|
||||||
majors: null,
|
majors: null,
|
||||||
grade: null,
|
grade: null,
|
||||||
college: null,
|
college: null,
|
||||||
reasons: null,
|
reasons: null,
|
||||||
|
fdIdea: null,
|
||||||
|
twoIdea: null,
|
||||||
|
xwIdea: null,
|
||||||
|
xjIdea: null,
|
||||||
|
jwIdea: null,
|
||||||
|
zsIdea: null,
|
||||||
|
zsStatus: null,
|
||||||
times: null,
|
times: null,
|
||||||
fdStatus: null,
|
fdStatus: null,
|
||||||
xwStatus: null,
|
xwStatus: null,
|
||||||
twoStatus: null,
|
twoStatus: null,
|
||||||
xjglStatus: null,
|
xjglStatus: null,
|
||||||
|
jwStatus: null,
|
||||||
|
rwTime: null,
|
||||||
|
zsTime: null,
|
||||||
|
fdTime: null,
|
||||||
|
xwTime: null,
|
||||||
|
twoTime: null,
|
||||||
|
xjTime: null,
|
||||||
|
jwTime: null,
|
||||||
datab: null,
|
datab: null,
|
||||||
dataa: null,
|
dataa: null,
|
||||||
conversion: null,
|
conversion: null,
|
||||||
jwcStatus: null
|
processId: null,
|
||||||
|
deployId: null
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
@@ -360,6 +402,18 @@ export default {
|
|||||||
this.getUser()
|
this.getUser()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
// 表格下载
|
||||||
|
handleTable(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/routine/dis/formSt',
|
||||||
|
query: {
|
||||||
|
id: row.id,
|
||||||
|
},
|
||||||
|
// });
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
// 跳转到表单页面
|
// 跳转到表单页面
|
||||||
handledetail(row) {
|
handledetail(row) {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
@@ -413,25 +467,48 @@ export default {
|
|||||||
reset() {
|
reset() {
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
|
fxId: null,
|
||||||
|
fxTime: null,
|
||||||
stId: null,
|
stId: null,
|
||||||
stName: null,
|
stName: null,
|
||||||
fdName: null,
|
fdName: null,
|
||||||
sex: null,
|
sex: null,
|
||||||
nations: null,
|
nations: null,
|
||||||
|
fdQm: null,
|
||||||
|
xwQm: null,
|
||||||
|
erQm: null,
|
||||||
|
xjQm: null,
|
||||||
|
jwQm: null,
|
||||||
stClass: null,
|
stClass: null,
|
||||||
majors: null,
|
majors: null,
|
||||||
grade: null,
|
grade: null,
|
||||||
college: null,
|
college: null,
|
||||||
reasons: null,
|
reasons: null,
|
||||||
|
fdIdea: null,
|
||||||
|
twoIdea: null,
|
||||||
|
xwIdea: null,
|
||||||
|
xjIdea: null,
|
||||||
|
jwIdea: null,
|
||||||
|
zsIdea: null,
|
||||||
|
zsStatus: null,
|
||||||
times: null,
|
times: null,
|
||||||
fdStatus: null,
|
fdStatus: null,
|
||||||
xwStatus: null,
|
xwStatus: null,
|
||||||
twoStatus: null,
|
twoStatus: null,
|
||||||
xjglStatus: null,
|
xjglStatus: null,
|
||||||
|
jwStatus: null,
|
||||||
|
rwTime: null,
|
||||||
|
zsTime: null,
|
||||||
|
fdTime: null,
|
||||||
|
xwTime: null,
|
||||||
|
twoTime: null,
|
||||||
|
xjTime: null,
|
||||||
|
jwTime: null,
|
||||||
datab: null,
|
datab: null,
|
||||||
dataa: null,
|
dataa: null,
|
||||||
conversion: null,
|
conversion: null,
|
||||||
jwcStatus: null
|
processId: null,
|
||||||
|
deployId: null
|
||||||
};
|
};
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -248,7 +248,7 @@
|
|||||||
<el-form-item prop="affixId">
|
<el-form-item prop="affixId">
|
||||||
<p class="attachment-tip">
|
<p class="attachment-tip">
|
||||||
<span style="color: red">请上传:入伍通知书等佐证材料.</span>
|
<span style="color: red">请上传:入伍通知书等佐证材料.</span>
|
||||||
<Affix v-model="formData.affixId" @input="handleAffix" @fileUploaded="handleAffix" />
|
<Affix v-model="formData.affixId" @input="handleAffix" @fileUploaded="handleAffix" @delete-file="handleDeleteFile"/>
|
||||||
</p>
|
</p>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@@ -425,9 +425,9 @@
|
|||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<div class="form-btn-group">
|
<div class="form-btn-group">
|
||||||
<el-button type="primary" @click="submitForm(0)">保存</el-button>
|
<el-button type="primary" @click="submitForm(0)">保存</el-button>
|
||||||
<el-button type="primary" @click="submitForm(1)">提交申请</el-button>
|
<el-button type="primary" @click="submitForm(1)" v-if="formData.applyStatus == 0">提交申请</el-button>
|
||||||
<el-button @click="resetForm">重置表单</el-button>
|
<!-- <el-button @click="resetForm">重置表单</el-button> -->
|
||||||
<el-button type="text" @click="printForm">打印表单</el-button>
|
<!-- <el-button type="text" @click="printForm">打印表单</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@@ -435,7 +435,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getOwnInfo, getEnlistmentReserve, delEnlistmentReserve, addEnlistmentReserve, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
import { getOwnInfo, getEnlistmentReserve, delEnlistmentReserve, addEnlistmentReserve, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
||||||
import { batchAddEnlistmentReserveAttach } from "@/api/routine/enlistmentReserve/enlistmentReserveAttach";
|
import { batchAddEnlistmentReserveAttach, deleteRtEnlistmentReserveAttachByFileNameAndStuName } from "@/api/routine/enlistmentReserve/enlistmentReserveAttach";
|
||||||
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
|
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
|
||||||
import { flowRecord } from '@/api/flowable/finished'
|
import { flowRecord } from '@/api/flowable/finished'
|
||||||
export default {
|
export default {
|
||||||
@@ -603,6 +603,7 @@ export default {
|
|||||||
this.getFlowRecordList()
|
this.getFlowRecordList()
|
||||||
} else {
|
} else {
|
||||||
this.deployId = null
|
this.deployId = null
|
||||||
|
this.loading = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -678,25 +679,38 @@ export default {
|
|||||||
if (!this.formData.applyNo) {
|
if (!this.formData.applyNo) {
|
||||||
const year = new Date().getFullYear();
|
const year = new Date().getFullYear();
|
||||||
const randomNo = Math.floor(Math.random() * 1000000).toString().padStart(6, '0');
|
const randomNo = Math.floor(Math.random() * 1000000).toString().padStart(6, '0');
|
||||||
this.formData.applyNo = `RY${year}${randomNo}`;
|
this.formData.applyNo = `RY${year}${randomNo}`; // 获取申请编号
|
||||||
this.formData.reserveNo = `RN${year}${randomNo}`;
|
this.formData.reserveNo = `RN${year}${randomNo}`; // 获取保留学籍编号
|
||||||
}
|
}
|
||||||
this.formData.applyStatus = applyStatus;
|
|
||||||
this.formData.updateTime = new Date().toISOString().split('T')[0];
|
this.formData.updateTime = new Date().toISOString().split('T')[0];
|
||||||
this.formData.applyReason = "本人应征入伍,申请保留学籍从 " + this.formData.reserveStartDate + " 至退役后两年。"
|
this.formData.applyReason = "本人应征入伍,申请保留学籍从 " + this.formData.reserveStartDate + " 至退役后两年。"
|
||||||
|
// 新增的时候根据点击的按钮确定状态,点击保存按钮申请状态是草稿,点击提交按钮申请状态就是待审核
|
||||||
|
this.formData.applyStatus = applyStatus;
|
||||||
|
|
||||||
const submitData = {
|
const submitData = {
|
||||||
formData: this.formData,
|
formData: this.formData,
|
||||||
};
|
};
|
||||||
if (this.formData.id != null) {
|
if (this.formData.id != null) {
|
||||||
updateEnlistmentReserve(submitData.formData).then(response => {
|
updateEnlistmentReserve(submitData.formData).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
|
||||||
|
// 填写附件里面的申请编号
|
||||||
|
this.enlistmentReserveAttachList.forEach(element => {
|
||||||
|
element.applyNo = this.formData.applyNo
|
||||||
|
element.applyId = response.data.id
|
||||||
|
})
|
||||||
|
// 批量新增材料附件
|
||||||
|
if (this.enlistmentReserveAttachList && this.enlistmentReserveAttachList.length > 0) {
|
||||||
|
batchAddEnlistmentReserveAttach(this.enlistmentReserveAttachList)
|
||||||
|
}
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.goBack()
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
addEnlistmentReserve(submitData.formData).then(response => {
|
addEnlistmentReserve(submitData.formData).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
|
||||||
// 申请表新增成功之后,进行附件的添加
|
// 申请表新增成功之后,进行附件的添加
|
||||||
if (response.code == 200) {
|
if (response.code == 200) {
|
||||||
// 填写附件里面的申请编号
|
// 填写附件里面的申请编号
|
||||||
@@ -704,8 +718,13 @@ export default {
|
|||||||
element.applyNo = this.formData.applyNo
|
element.applyNo = this.formData.applyNo
|
||||||
element.applyId = response.data.id
|
element.applyId = response.data.id
|
||||||
})
|
})
|
||||||
|
// 批量新增材料附件
|
||||||
|
if (this.enlistmentReserveAttachList && this.enlistmentReserveAttachList.length > 0) {
|
||||||
batchAddEnlistmentReserveAttach(this.enlistmentReserveAttachList)
|
batchAddEnlistmentReserveAttach(this.enlistmentReserveAttachList)
|
||||||
|
}
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.goBack()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -779,6 +798,15 @@ export default {
|
|||||||
}
|
}
|
||||||
console.log(this.enlistmentReserveAttachList);
|
console.log(this.enlistmentReserveAttachList);
|
||||||
|
|
||||||
|
},
|
||||||
|
// 处理子组件传递的删除文件事件
|
||||||
|
handleDeleteFile(fileName) {
|
||||||
|
// 接收文件名后,可执行后续逻辑,删除在数据库的数据
|
||||||
|
if (fileName) {
|
||||||
|
deleteRtEnlistmentReserveAttachByFileNameAndStuName({fileName:fileName, studentName: this.formData.studentName}).then(res => {
|
||||||
|
this.$message.success(`成功删除文件:${fileName}`);
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -50,8 +50,12 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="文件路径" align="center" prop="filePath">
|
<el-table-column label="文件路径" align="center" prop="filePath">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tooltip class="item" effect="dark" :content="scope.row.filePath" placement="top">
|
<el-tooltip class="item" effect="dark" :content="`点击可下载文件`" placement="top">
|
||||||
<div class="text-ellipsis">{{ scope.row.filePath }}</div>
|
<div class="text-ellipsis">
|
||||||
|
<el-link :href="`${baseUrl}${scope.row.filePath}`" :underline="false" target="_blank">
|
||||||
|
<span style="color: #007AFF;">{{ scope.row.filePath }}</span>
|
||||||
|
</el-link>
|
||||||
|
</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -101,6 +105,7 @@ export default {
|
|||||||
name: "EnlistmentReserveAttach",
|
name: "EnlistmentReserveAttach",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
baseUrl:process.env.VUE_APP_BASE_API,
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: true,
|
loading: true,
|
||||||
// 选中数组
|
// 选中数组
|
||||||
|
|||||||
@@ -103,7 +103,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="申请状态" align="center" prop="applyStatus">
|
<el-table-column label="申请状态" align="center" prop="applyStatus">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.applyStatus == 0" type="info">待提交</el-tag>
|
<el-tag v-if="scope.row.applyStatus == 0 && scope.row.processInstanceId == ''" type="info">待提交</el-tag>
|
||||||
|
<el-tag v-if="scope.row.applyStatus == 0 && scope.row.processInstanceId != ''" type="info">被驳回</el-tag>
|
||||||
<el-tag v-if="scope.row.applyStatus == 1">审核中</el-tag>
|
<el-tag v-if="scope.row.applyStatus == 1">审核中</el-tag>
|
||||||
<el-tag v-if="scope.row.applyStatus == 2" type="success">审核通过</el-tag>
|
<el-tag v-if="scope.row.applyStatus == 2" type="success">审核通过</el-tag>
|
||||||
</template>
|
</template>
|
||||||
@@ -126,7 +127,7 @@
|
|||||||
v-hasPermi="['routine:enlistmentReserve:edit']" v-if="scope.row.applyStatus == 0">修改</el-button>
|
v-hasPermi="['routine:enlistmentReserve:edit']" v-if="scope.row.applyStatus == 0">修改</el-button>
|
||||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||||
v-hasPermi="['routine:enlistmentReserve:remove']" v-if="scope.row.applyStatus == 0">删除</el-button>
|
v-hasPermi="['routine:enlistmentReserve:remove']" v-if="scope.row.applyStatus == 0">删除</el-button>
|
||||||
<el-button v-if="scope.row.applyStatus == 1" size="mini" type="text" icon="el-icon-info"
|
<el-button v-if="scope.row.applyStatus != 0" size="mini" type="text" icon="el-icon-info"
|
||||||
@click="detail(scope.row)">详情</el-button>
|
@click="detail(scope.row)">详情</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -315,7 +316,14 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getUser();
|
// this.getUser();
|
||||||
|
},
|
||||||
|
// 路由守卫:当路由进入该组件时触发(解决返回后不刷新问题)
|
||||||
|
beforeRouteEnter(to, from, next) {
|
||||||
|
next(vm => {
|
||||||
|
// vm 是组件实例,这里调用数据加载方法
|
||||||
|
vm.getUser();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询应征入伍保留学籍申请列表 */
|
/** 查询应征入伍保留学籍申请列表 */
|
||||||
@@ -454,7 +462,16 @@ export default {
|
|||||||
},
|
},
|
||||||
// 跳转申请表
|
// 跳转申请表
|
||||||
openForm() {
|
openForm() {
|
||||||
this.$router.push("/routine/enlistmentReserve/applicationForm")
|
// 利用some方法快速判断是否存在重复申请(找到匹配项后立即终止遍历)
|
||||||
|
const isDuplicate = this.enlistmentReserveList?.some(element =>
|
||||||
|
element.studentName === this.user?.nickName && element.studentNo === this.user?.userName
|
||||||
|
) || false;
|
||||||
|
|
||||||
|
if (isDuplicate) {
|
||||||
|
this.$message.error('您已经申请过了,请勿重新申请!');
|
||||||
|
} else {
|
||||||
|
this.$router.push("/routine/enlistmentReserve/applicationForm");
|
||||||
|
}
|
||||||
},
|
},
|
||||||
detail(row) {
|
detail(row) {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="申请人" align="center" prop="rtCreatRole" />
|
<el-table-column label="申请人" align="center" prop="rtCreatRole" />
|
||||||
|
<el-table-column label="手机号码" align="center" prop="mobilePhone" />
|
||||||
<el-table-column label="使用部门/学院" align="center" prop="rtDepar" width="150px" />
|
<el-table-column label="使用部门/学院" align="center" prop="rtDepar" width="150px" />
|
||||||
<el-table-column label="功能房名" align="center" prop="roomName" />
|
<el-table-column label="功能房名" align="center" prop="roomName" />
|
||||||
<el-table-column label="主题" align="center" prop="rtTheme" />
|
<el-table-column label="主题" align="center" prop="rtTheme" />
|
||||||
|
|||||||
@@ -4,6 +4,18 @@
|
|||||||
<el-form-item label="学年名称" prop="stuYearName">
|
<el-form-item label="学年名称" prop="stuYearName">
|
||||||
<el-input v-model="queryParams.stuYearName" placeholder="请输入学年名称" clearable @keyup.enter.native="handleQuery" />
|
<el-input v-model="queryParams.stuYearName" placeholder="请输入学年名称" clearable @keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<!-- 在搜索表单中添加标签筛选 -->
|
||||||
|
<!-- <el-form-item label="模块标签" prop="moduleTags">
|
||||||
|
<el-select v-model="queryParams.moduleTags" placeholder="请选择模块标签" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.module_tag"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item> -->
|
||||||
<el-form-item label="开始时间" prop="startTime">
|
<el-form-item label="开始时间" prop="startTime">
|
||||||
<el-date-picker v-model="queryParams.startTime" clearable type="date" value-format="yyyy-MM-dd"
|
<el-date-picker v-model="queryParams.startTime" clearable type="date" value-format="yyyy-MM-dd"
|
||||||
placeholder="请选择开始时间"
|
placeholder="请选择开始时间"
|
||||||
@@ -63,6 +75,16 @@
|
|||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.srs_stu_year_status" :value="scope.row.status" />
|
<dict-tag :options="dict.type.srs_stu_year_status" :value="scope.row.status" />
|
||||||
</template>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 在表格中添加标签展示列(在状态列后添加) -->
|
||||||
|
<el-table-column label="模块标签" align="center" prop="moduleTags">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag
|
||||||
|
:options="dict.type.module_tag"
|
||||||
|
:value="scope.row.moduleTags ? scope.row.moduleTags.split(',') : []"
|
||||||
|
:showType="'tag'"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -73,6 +95,9 @@
|
|||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
|
|
||||||
|
<!-- 新增分配标签按钮 -->
|
||||||
|
<el-button size="mini" type="text" icon="el-icon-setting" @click="handleAssignTag(scope.row)">分配标签</el-button>
|
||||||
|
|
||||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="updateStatusVClick(scope.row)">修改状态</el-button>
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="updateStatusVClick(scope.row)">修改状态</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -133,17 +158,54 @@
|
|||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 添加分配标签对话框 -->
|
||||||
|
<el-dialog
|
||||||
|
title="分配标签"
|
||||||
|
:visible.sync="assignTagVisible"
|
||||||
|
width="500px"
|
||||||
|
append-to-body
|
||||||
|
>
|
||||||
|
<el-form ref="assignTagForm" :model="assignTagForm" label-width="80px">
|
||||||
|
<el-form-item label="学年">
|
||||||
|
<el-input v-model="assignTagForm.stuYearName" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="模块标签">
|
||||||
|
<el-checkbox-group v-model="assignTagForm.selectedTags">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="dict in dict.type.module_tag"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
:disabled="isTagAssigned(dict.value)"
|
||||||
|
>
|
||||||
|
{{ dict.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="assignTagVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submitAssignTag">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listYear, getYear, delYear, addYear, updateYear } from '@/api/stuCQS/basedata/year'
|
import { listYear, getYear, delYear, addYear, updateYear,assignTag } from '@/api/stuCQS/basedata/year'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Year',
|
name: 'Year',
|
||||||
dicts: ['srs_stu_year_status'],
|
dicts: ['srs_stu_year_status','module_tag'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
// 分配标签对话框可见性
|
||||||
|
assignTagVisible: false,
|
||||||
|
// 分配标签表单
|
||||||
|
assignTagForm: {
|
||||||
|
id: null,
|
||||||
|
stuYearName: '',
|
||||||
|
selectedTags: []
|
||||||
|
},
|
||||||
updateStatusV: false,
|
updateStatusV: false,
|
||||||
updateForm: {
|
updateForm: {
|
||||||
id: null,
|
id: null,
|
||||||
@@ -315,6 +377,46 @@ export default {
|
|||||||
this.download('system/year/export', {
|
this.download('system/year/export', {
|
||||||
...this.queryParams
|
...this.queryParams
|
||||||
}, `year_${new Date().getTime()}.xlsx`)
|
}, `year_${new Date().getTime()}.xlsx`)
|
||||||
|
},
|
||||||
|
/** 分配标签按钮操作 */
|
||||||
|
handleAssignTag(row) {
|
||||||
|
this.assignTagForm.id = row.id
|
||||||
|
this.assignTagForm.stuYearName = row.stuYearName
|
||||||
|
// 将已有的标签转换为数组
|
||||||
|
this.assignTagForm.selectedTags = row.moduleTags ? row.moduleTags.split(',') : []
|
||||||
|
this.assignTagVisible = true
|
||||||
|
},
|
||||||
|
/** 提交分配标签 */
|
||||||
|
submitAssignTag() {
|
||||||
|
// 获取当前学年已有的标签
|
||||||
|
const currentYear = this.yearList.find(item => item.id === this.assignTagForm.id);
|
||||||
|
let existingTags = [];
|
||||||
|
if (currentYear && currentYear.moduleTags) {
|
||||||
|
existingTags = currentYear.moduleTags.split(',');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤掉已存在的标签,只发送新增的标签
|
||||||
|
const newTags = this.assignTagForm.selectedTags.filter(tag => !existingTags.includes(tag));
|
||||||
|
const tags = newTags.join(',');
|
||||||
|
|
||||||
|
assignTag(this.assignTagForm.id, tags).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.$message.success(response.msg);
|
||||||
|
this.assignTagVisible = false;
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 判断标签是否已分配给当前学年(基于数据库数据) */
|
||||||
|
isTagAssigned(tagValue) {
|
||||||
|
// 从 yearList 中找到当前正在编辑的学年记录
|
||||||
|
const currentYear = this.yearList.find(item => item.id === this.assignTagForm.id);
|
||||||
|
if (currentYear && currentYear.moduleTags) {
|
||||||
|
// 基于数据库中的实际标签数据判断
|
||||||
|
const existingTags = currentYear.moduleTags.split(',');
|
||||||
|
return existingTags.includes(tagValue);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user