入伍保留学籍、外宿申请-审批人修改成电子签名

This commit is contained in:
2025-12-19 15:30:44 +08:00
parent 8f084c2990
commit 95e7379cfa
7 changed files with 180 additions and 136 deletions

View File

@@ -182,13 +182,13 @@
</div>
<div
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>审批人 </div>
<div>签名 </div>
<div>
<!-- <el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + renderData.studentPromiseSign"
:preview-src-list="[baseUrl + renderData.studentPromiseSign]">
</el-image> -->
{{ item.approverName }}
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature"
:preview-src-list="[baseUrl + item.signature]" :alt="item.approverName">
</el-image>
<!-- {{ item.approverName }} -->
</div>
</div>
<div style="margin-left: 10px;">日期 {{ item.approvalTime }}</div>

View File

@@ -152,7 +152,7 @@
v-hasPermi="['dormitory:outsideAccommodationApply:edit']"
v-if="scope.row.status == 0 || getRejectInfo(scope.row.outsideAccommodationApprovals).isReject">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationApply:remove']" v-if="scope.row.status == 0 && scope.row.processInstanceId == null">删除</el-button>
v-hasPermi="['dormitory:outsideAccommodationApply:remove']" v-if="scope.row.status == 0 || roleGroup.includes('管理员')">删除</el-button>
<el-button v-if="scope.row.applyStatus != 0" size="mini" type="text" icon="el-icon-info"
@click="detail(scope.row)">详情</el-button>
</template>

View File

@@ -376,10 +376,6 @@
</el-descriptions-item>
<el-descriptions-item span="4" v-for="item in form.enlistmentReserveApprovalList" >
<template slot="label"> {{ item.opinionType }} </template>
<div style="padding-top: 10px;">
{{ item.approvalOpinion || "暂无意见" }}
@@ -391,7 +387,16 @@
<el-tag v-if="item.approvalResult == 1" type="success">通过</el-tag>
<el-tag v-else type="danger">驳回</el-tag>
</div>
<div style="padding: 0 10px;">签名 {{ item.approverName }}</div>
<div
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>签名 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature" :preview-src-list="[baseUrl + item.signature]"
:alt="item.approverName">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ item.approvalTime }}</div>
</div>
</div>

View File

@@ -374,7 +374,16 @@
<el-tag v-if="item.approvalResult == 1" type="success">通过</el-tag>
<el-tag v-else type="danger">驳回</el-tag>
</div>
<div style="padding: 0 10px;">签名 {{ item.approverName }}</div>
<div
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>签名 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature" :preview-src-list="[baseUrl + item.signature]"
:alt="item.approverName">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ item.approvalTime }}</div>
</div>
</div>

View File

@@ -413,7 +413,16 @@
<el-tag v-if="item.approvalResult == 1" type="success">通过</el-tag>
<el-tag v-else type="danger">驳回</el-tag>
</div>
<div style="padding: 0 10px;">签名 {{ item.approverName }}</div>
<div
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>签名 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature" :preview-src-list="[baseUrl + item.signature]"
:alt="item.approverName">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ item.approvalTime }}</div>
</div>
</div>
@@ -431,7 +440,9 @@
</el-descriptions>
<!-- 外宿申请表单 -->
<div v-if="outsideAccommodationForm"><detailApply :formData="form" :isShwo="false"></detailApply></div>
<div v-if="outsideAccommodationForm">
<detailApply :formData="form" :isShwo="false"></detailApply>
</div>
<!-- 退伍复学表单 -->
<el-descriptions v-if="basicForm" class="margin-top" title="退伍复学申请表" :column="4" size="medium" border
@@ -982,7 +993,8 @@ export default {
variables: {},
approvalOpinion: '', // 必须初始化,避免 null 报错
approvalResult: '',
targetNodeName: ''
targetNodeName: '',
signature: ''
},
penaltyNumber: '',
letterServiceContent: '',
@@ -1037,7 +1049,7 @@ export default {
outsideAccommodationForm: false, // 外宿申请表单
basicForm: false,//退伍复学表单
BasicTestData: 0, // 新增默认0仅退回学生申请时改为1
user: [], // 当前登录用户
}
},
created() {
@@ -1092,9 +1104,15 @@ export default {
} else if (this.category == 'enlistmentReserve') {
this.enlistmentReserveForm = true
this.getEnlistmentReserve(this.taskForm.procInsId)
getUserProfile().then(res => {
this.user = res.data
})
} else if (this.category == 'outsideAccommodation') {
this.outsideAccommodationForm = true
this.getOutsideAccommodation(this.taskForm.procInsId)
getUserProfile().then(res => {
this.user = res.data
})
} else if (this.category == '退伍复学') {
this.basicForm = true
this.getBasicApplication(this.startUser)
@@ -1349,6 +1367,8 @@ export default {
// this.completeOpen = true;
// this.completeTitle = "流程审批";
this.submitForm(null)
// 获取当前用户的签名并赋值给this.taskForm.variables.signature传入监听器
this.taskForm.variables.signature = this.user.signature
},
/** 用户审批任务 */
taskComplete() {
@@ -2061,7 +2081,8 @@ export default {
variables: {}, // 保留原有的嵌套 variables 结构(后端可能依赖)
approvalOpinion: '', // 初始化审批意见为空白
approvalResult: '', // 审批状态
targetNodeName: '' // 审批节点
targetNodeName: '', // 审批节点
signature: '' // 签名
}
} else {
// 情况2variables 已存在 → 保留原有字段,补充 approvalOpinion无则添加有则保留原值
@@ -2069,24 +2090,25 @@ export default {
...this.taskForm.variables, // 展开原有所有字段(如 variables、其他自定义字段
approvalOpinion: this.taskForm.variables.approvalOpinion || '', // 兜底:若原有未定义则设为空白
approvalResult: this.taskForm.variables.approvalResult || '',
targetNodeName: this.taskForm.variables.targetNodeName || ''
targetNodeName: this.taskForm.variables.targetNodeName || '',
signature: this.taskForm.variables.signature || '',
}
}
},
// 退回或驳回的时候生成入伍保留学籍申请审核
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,
approverId: this.user.userId,
approverName: this.user.nickName,
approvalOpinion: this.taskForm.comment,
approvalResult: 2,
studentName: this.form.studentName,
studentNo: this.form.studentNo
studentNo: this.form.studentNo,
signature: this.user.signature
}
// 生成审核记录
insertOrUpdateByStuAndApprover(data).then(ress => {
@@ -2115,29 +2137,27 @@ export default {
// }
this.$modal.closeLoading()
})
})
},
// 退回或驳回的时候生成外宿申请审核
taskReturnAccommodationApproval() {
getUserProfile().then(res => {
let data = {
applyId: this.form.id,
processInstanceId: this.form.processInstanceId,
applyNo: this.form.applyNo,
approvalNode: this.taskName,
approverId: res.data.userId,
approverName: res.data.nickName,
approverId: this.user.userId,
approverName: this.user.nickName,
approvalOpinion: this.taskForm.comment,
approvalResult: 0,
studentName: this.form.studentName,
studentNo: this.form.studentNo
studentNo: this.form.studentNo,
signature: this.user.signature
}
// 生成审核记录
addOrUpdateAccommodationApproval(data).then(ress => {
// 退回或者驳回生产审批记录之后,更新申请表里面的驳回信息
updateOutsideAccommodationApply({ id: this.form.id, rejectReason: this.taskForm.comment })
})
})
}
},
}

View File

@@ -83,7 +83,16 @@
<el-tag v-if="item.approvalResult == 1" type="success">通过</el-tag>
<el-tag v-else type="danger">驳回</el-tag>
</div>
<div style="padding: 0 10px;">签名 {{ item.approverName }}</div>
<div
style="display: flex;justify-content: center;align-items: center;min-width: 130px;text-align: left;">
<div>签名 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + item.signature" :preview-src-list="[baseUrl + item.signature]"
:alt="item.approverName">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ item.approvalTime }}</div>
</div>
</div>
@@ -372,7 +381,8 @@ export default {
createTime: '',
updateTime: '',
remark: '',
affixId: null
affixId: null,
baseUrl: process.env.VUE_APP_BASE_API,
},
enlistmentReserveAttachList: [],
formRules: {

View File

@@ -135,7 +135,7 @@
<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 || getRejectInfo(scope.row.enlistmentReserveApprovalList).isReject">修改</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 && scope.row.processInstanceId == ''">删除</el-button>
v-hasPermi="['routine:enlistmentReserve:remove']" v-if="scope.row.applyStatus == 0 || roleGroup.includes('管理员')">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-info"
@click="detail(scope.row)">详情</el-button>
</template>