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'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 新增保留学籍审批记录
|
||||
export function insertOrUpdateByStuAndApprover(data) {
|
||||
return request({
|
||||
url: '/routine/enlistmentReserveApproval/insertOrUpdateByStuAndApprover',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
@@ -51,3 +51,12 @@ export function delEnlistmentReserveAttach(id) {
|
||||
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'
|
||||
})
|
||||
}
|
||||
|
||||
//为学年分配标签
|
||||
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){
|
||||
this.affixId = ''
|
||||
}
|
||||
|
||||
// 关键:触发自定义事件,传递被删除的文件名
|
||||
// 事件名建议:delete-file,参数:file.name(文件名)
|
||||
this.$emit('delete-file', file.name);
|
||||
} else {
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
|
||||
@@ -439,7 +439,7 @@
|
||||
<!--流程流转记录-->
|
||||
<el-tab-pane label="流转记录" name="2">
|
||||
<!--flowRecordList-->
|
||||
<el-col :span="16" :offset="4">
|
||||
<el-col :span="16" :offset="4" v-loading="loading" style="min-height: 500px;">
|
||||
<div class="block">
|
||||
<el-timeline>
|
||||
<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 '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
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 {
|
||||
name: 'Record',
|
||||
@@ -728,7 +731,8 @@ export default {
|
||||
variables: {
|
||||
variables: {},
|
||||
approvalOpinion: '', // 必须初始化,避免 null 报错
|
||||
approvalResult: ''
|
||||
approvalResult: '',
|
||||
targetNodeName: ''
|
||||
},
|
||||
penaltyNumber: '',
|
||||
letterServiceContent: '',
|
||||
@@ -983,9 +987,11 @@ export default {
|
||||
flowRecord(params)
|
||||
.then((res) => {
|
||||
that.flowRecordList = res.data.flowList
|
||||
this.loading = false
|
||||
})
|
||||
.catch((res) => {
|
||||
this.goBack()
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
fillFormData(form, data) {
|
||||
@@ -1014,26 +1020,9 @@ export default {
|
||||
this.taskForm.variables = res.data.formData
|
||||
|
||||
|
||||
// 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在
|
||||
if (this.taskForm.variables == null) {
|
||||
// 情况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 || ''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 初始化或完善 variables 对象,确保 approvalOpinion(入伍保留学籍申请审核意见) 存在
|
||||
this.initApproval()
|
||||
|
||||
this.formKeyExist = res.data.formKeyExist
|
||||
})
|
||||
}
|
||||
@@ -1058,7 +1047,7 @@ export default {
|
||||
if (valid) {
|
||||
this.$modal.loading('正在努力加载中,请稍等...')
|
||||
|
||||
this.taskForm.comment = '同意'
|
||||
this.taskForm.comment = this.taskForm.variables.approvalOpinion != '' ? this.taskForm.variables.approvalOpinion : '同意'
|
||||
this.taskForm.variables.approvalResult = 1
|
||||
if (this.taskForm && this.formKeyExist) {
|
||||
// 表单是否禁用
|
||||
@@ -1070,7 +1059,6 @@ export default {
|
||||
|
||||
complete(this.taskForm).then((response) => {
|
||||
this.$modal.closeLoading()
|
||||
|
||||
this.goBack()
|
||||
})
|
||||
} else {
|
||||
@@ -1102,6 +1090,10 @@ export default {
|
||||
this.form.quitNumber = this.taskForm.quitNumber
|
||||
this.form.remark = this.taskForm.remark
|
||||
this.updateRtStuQuitSchool()
|
||||
} else if (this.category == 'enlistmentReserve') { // 是应征入伍保留学籍申请,才执行
|
||||
if (this.taskName == '教务处主管领导审批') { // (最后一个领导审核完成之后,修改学生学籍状态, status:07是入伍保留学籍)
|
||||
updateStudent({stuId: this.form.studentId, status: '07'}).then(response => {})
|
||||
}
|
||||
} else {
|
||||
this.$modal.msgSuccess(response.msg)
|
||||
}
|
||||
@@ -1153,13 +1145,18 @@ export default {
|
||||
/** 驳回任务 */
|
||||
taskReject() {
|
||||
this.$refs['taskForm'].validate((valid) => {
|
||||
this.$modal.loading('正在努力加载中,请稍等...')
|
||||
if (valid) {
|
||||
|
||||
// 入伍保留学籍审核状态和意见
|
||||
this.taskForm.variables.approvalResult = 0
|
||||
this.taskForm.variables.approvalOpinion = this.taskForm.comment
|
||||
rejectTask(this.taskForm).then((res) => {
|
||||
|
||||
// 是应征入伍保留学籍申请,才执行
|
||||
if (this.category == 'enlistmentReserve') {
|
||||
this.taskReturnApproval("驳回")
|
||||
}
|
||||
|
||||
this.$modal.msgSuccess(res.msg)
|
||||
this.$modal.closeLoading()
|
||||
this.goBack()
|
||||
})
|
||||
}
|
||||
@@ -1172,18 +1169,46 @@ export default {
|
||||
returnList(this.taskForm).then((res) => {
|
||||
this.returnTaskList = res.data
|
||||
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) => {
|
||||
if (valid) {
|
||||
this.$modal.loading('正在努力加载中,请稍等...')
|
||||
returnTask(this.taskForm).then((res) => {
|
||||
|
||||
// 是应征入伍保留学籍申请,才执行
|
||||
if (this.category == 'enlistmentReserve') {
|
||||
this.taskReturnApproval("退回")
|
||||
}
|
||||
|
||||
this.$modal.msgSuccess(res.msg)
|
||||
this.$modal.closeLoading()
|
||||
this.goBack()
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
/** 取消回退任务按钮 */
|
||||
cancelTask() {
|
||||
@@ -1240,6 +1265,70 @@ export default {
|
||||
fileUpload() {
|
||||
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>
|
||||
|
||||
@@ -92,7 +92,32 @@
|
||||
__
|
||||
{{ form.maList.length > 0 ? form.maList[0].newmajor : '暂无数据' }}__
|
||||
</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">
|
||||
<span>申请人:</span>
|
||||
<el-input v-model="form.stName" readonly class="applicant-input"></el-input>
|
||||
@@ -109,7 +134,7 @@
|
||||
<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;">符合转专业条件,拟同意转入年级和专业:
|
||||
|
||||
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-form-item>
|
||||
<el-form-item label="退役证明" prop="proof">
|
||||
<file-upload v-model="form.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">
|
||||
<file-upload v-model="form.material" />
|
||||
<image-upload v-model="form.material" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
@@ -72,20 +72,38 @@
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<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="twoStatus" />
|
||||
<el-table-column label="学籍管理审核状态" align="center" prop="xjglStatus" />
|
||||
<el-table-column label="教务处审核状态" align="center" prop="jwcStatus" />
|
||||
<el-table-column label="学籍管理审核状态" align="center" prop="xjglStatus" /> -->
|
||||
<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">
|
||||
<template slot-scope="scope">
|
||||
<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"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handledetail(scope.row)"
|
||||
v-hasPermi="['routine:basic:edit']"
|
||||
>修改</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
|
||||
size="mini"
|
||||
type="text"
|
||||
@@ -256,6 +274,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { delDeployment, todoList } from '@/api/flowable/todo'
|
||||
import { listBasic, getBasic, delBasic, addBasic, updateBasic } from "@/api/routine/basic";
|
||||
import { listMate, getMate, delMate, addMate, updateMate } from "@/api/routine/mate";
|
||||
import { getUserProfile } from '@/api/system/user' // 获取
|
||||
@@ -288,25 +307,48 @@ export default {
|
||||
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,
|
||||
jwcStatus: null
|
||||
processId: null,
|
||||
deployId: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
@@ -360,6 +402,18 @@ export default {
|
||||
this.getUser()
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 表格下载
|
||||
handleTable(row) {
|
||||
this.$router.push({
|
||||
path: '/routine/dis/formSt',
|
||||
query: {
|
||||
id: row.id,
|
||||
},
|
||||
// });
|
||||
})
|
||||
},
|
||||
|
||||
// 跳转到表单页面
|
||||
handledetail(row) {
|
||||
this.$router.push({
|
||||
@@ -411,27 +465,50 @@ export default {
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
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,
|
||||
jwcStatus: null
|
||||
processId: null,
|
||||
deployId: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
<el-form-item prop="affixId">
|
||||
<p class="attachment-tip">
|
||||
<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>
|
||||
</el-form-item>
|
||||
|
||||
@@ -425,9 +425,9 @@
|
||||
<!-- 操作按钮 -->
|
||||
<div class="form-btn-group">
|
||||
<el-button type="primary" @click="submitForm(0)">保存</el-button>
|
||||
<el-button type="primary" @click="submitForm(1)">提交申请</el-button>
|
||||
<el-button @click="resetForm">重置表单</el-button>
|
||||
<el-button type="text" @click="printForm">打印表单</el-button>
|
||||
<el-button type="primary" @click="submitForm(1)" v-if="formData.applyStatus == 0">提交申请</el-button>
|
||||
<!-- <el-button @click="resetForm">重置表单</el-button> -->
|
||||
<!-- <el-button type="text" @click="printForm">打印表单</el-button> -->
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -435,7 +435,7 @@
|
||||
|
||||
<script>
|
||||
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 { flowRecord } from '@/api/flowable/finished'
|
||||
export default {
|
||||
@@ -603,6 +603,7 @@ export default {
|
||||
this.getFlowRecordList()
|
||||
} else {
|
||||
this.deployId = null
|
||||
this.loading = false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -678,25 +679,38 @@ export default {
|
||||
if (!this.formData.applyNo) {
|
||||
const year = new Date().getFullYear();
|
||||
const randomNo = Math.floor(Math.random() * 1000000).toString().padStart(6, '0');
|
||||
this.formData.applyNo = `RY${year}${randomNo}`;
|
||||
this.formData.reserveNo = `RN${year}${randomNo}`;
|
||||
this.formData.applyNo = `RY${year}${randomNo}`; // 获取申请编号
|
||||
this.formData.reserveNo = `RN${year}${randomNo}`; // 获取保留学籍编号
|
||||
}
|
||||
this.formData.applyStatus = applyStatus;
|
||||
this.formData.updateTime = new Date().toISOString().split('T')[0];
|
||||
this.formData.applyReason = "本人应征入伍,申请保留学籍从 " + this.formData.reserveStartDate + " 至退役后两年。"
|
||||
|
||||
// 新增的时候根据点击的按钮确定状态,点击保存按钮申请状态是草稿,点击提交按钮申请状态就是待审核
|
||||
this.formData.applyStatus = applyStatus;
|
||||
|
||||
const submitData = {
|
||||
formData: this.formData,
|
||||
};
|
||||
if (this.formData.id != null) {
|
||||
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.$modal.msgSuccess("修改成功");
|
||||
this.goBack()
|
||||
|
||||
});
|
||||
|
||||
} else {
|
||||
addEnlistmentReserve(submitData.formData).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
|
||||
// 申请表新增成功之后,进行附件的添加
|
||||
if (response.code == 200) {
|
||||
// 填写附件里面的申请编号
|
||||
@@ -704,8 +718,13 @@ export default {
|
||||
element.applyNo = this.formData.applyNo
|
||||
element.applyId = response.data.id
|
||||
})
|
||||
batchAddEnlistmentReserveAttach(this.enlistmentReserveAttachList)
|
||||
// 批量新增材料附件
|
||||
if (this.enlistmentReserveAttachList && this.enlistmentReserveAttachList.length > 0) {
|
||||
batchAddEnlistmentReserveAttach(this.enlistmentReserveAttachList)
|
||||
}
|
||||
this.loading = false;
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.goBack()
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -779,7 +798,16 @@ export default {
|
||||
}
|
||||
console.log(this.enlistmentReserveAttachList);
|
||||
|
||||
}
|
||||
},
|
||||
// 处理子组件传递的删除文件事件
|
||||
handleDeleteFile(fileName) {
|
||||
// 接收文件名后,可执行后续逻辑,删除在数据库的数据
|
||||
if (fileName) {
|
||||
deleteRtEnlistmentReserveAttachByFileNameAndStuName({fileName:fileName, studentName: this.formData.studentName}).then(res => {
|
||||
this.$message.success(`成功删除文件:${fileName}`);
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -50,8 +50,12 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="文件路径" align="center" prop="filePath">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip class="item" effect="dark" :content="scope.row.filePath" placement="top">
|
||||
<div class="text-ellipsis">{{ scope.row.filePath }}</div>
|
||||
<el-tooltip class="item" effect="dark" :content="`点击可下载文件`" placement="top">
|
||||
<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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -101,6 +105,7 @@ export default {
|
||||
name: "EnlistmentReserveAttach",
|
||||
data() {
|
||||
return {
|
||||
baseUrl:process.env.VUE_APP_BASE_API,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
|
||||
@@ -103,7 +103,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="申请状态" align="center" prop="applyStatus">
|
||||
<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 == 2" type="success">审核通过</el-tag>
|
||||
</template>
|
||||
@@ -123,10 +124,10 @@
|
||||
<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)"
|
||||
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)"
|
||||
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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -315,7 +316,14 @@ export default {
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getUser();
|
||||
// this.getUser();
|
||||
},
|
||||
// 路由守卫:当路由进入该组件时触发(解决返回后不刷新问题)
|
||||
beforeRouteEnter(to, from, next) {
|
||||
next(vm => {
|
||||
// vm 是组件实例,这里调用数据加载方法
|
||||
vm.getUser();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
/** 查询应征入伍保留学籍申请列表 */
|
||||
@@ -454,7 +462,16 @@ export default {
|
||||
},
|
||||
// 跳转申请表
|
||||
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) {
|
||||
this.$router.push({
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<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="roomName" />
|
||||
<el-table-column label="主题" align="center" prop="rtTheme" />
|
||||
|
||||
@@ -4,6 +4,18 @@
|
||||
<el-form-item label="学年名称" prop="stuYearName">
|
||||
<el-input v-model="queryParams.stuYearName" placeholder="请输入学年名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</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-date-picker v-model="queryParams.startTime" clearable type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择开始时间"
|
||||
@@ -64,6 +76,16 @@
|
||||
<dict-tag :options="dict.type.srs_stu_year_status" :value="scope.row.status" />
|
||||
</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 label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['system:year:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@@ -73,6 +95,9 @@
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -133,17 +158,54 @@
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
<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 {
|
||||
name: 'Year',
|
||||
dicts: ['srs_stu_year_status'],
|
||||
dicts: ['srs_stu_year_status','module_tag'],
|
||||
data() {
|
||||
return {
|
||||
// 分配标签对话框可见性
|
||||
assignTagVisible: false,
|
||||
// 分配标签表单
|
||||
assignTagForm: {
|
||||
id: null,
|
||||
stuYearName: '',
|
||||
selectedTags: []
|
||||
},
|
||||
updateStatusV: false,
|
||||
updateForm: {
|
||||
id: null,
|
||||
@@ -315,7 +377,47 @@ export default {
|
||||
this.download('system/year/export', {
|
||||
...this.queryParams
|
||||
}, `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;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user