This commit is contained in:
2026-01-27 15:29:58 +08:00
parent 9d19da8395
commit f271b8a084
19 changed files with 1441 additions and 26 deletions
@@ -73,10 +73,16 @@ public class AidFundApplyController {
public void index() {
}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/apply/index.html")
@SaCheckPermission("h5.medicalMutualAid.aidFund.apply")
public void h5() {
}
@At
@ApiOperation("查询申请状态")
@SaCheckPermission("medicalMutualAid.aidFund.apply")
@SaCheckPermission(value = {"medicalMutualAid.aidFund.apply", "h5.medicalMutualAid.aidFund.apply"}, mode = SaMode.OR)
public Result canApply() {
String aidFundMemberApplyEndTime = Globals.MyConfig.getString("AidFundMemberApplyEndTime");
if (StrUtil.isBlank(aidFundMemberApplyEndTime)) {
@@ -63,6 +63,12 @@ public class AidFundApplyMineController {
public void index() {
}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/applyMine/index.html")
@SaCheckPermission("h5.medicalMutualAid.aidFund.applyMine")
public void h5() {
}
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"medicalMutualAid.aidFund.applyMine", "h5.medicalMutualAid.aidFund.applyMine"}, mode = SaMode.OR)
@@ -9,6 +9,7 @@ import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.PageUtil;
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.service.AidFundMemberChangeRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -51,6 +52,12 @@ public class AidFundFoundationAuditController {
public void index() {
}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/foundationAudit/index.html")
@SaCheckPermission("h5.medicalMutualAid.aidFund.foundationAudit")
public void h5() {
}
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"medicalMutualAid.aidFund.foundationAudit", "h5.medicalMutualAid.aidFund.foundationAudit"}, mode = SaMode.OR)
@@ -112,7 +119,7 @@ public class AidFundFoundationAuditController {
cnd.andEX("info.changeType", "=", changeType);
cnd.and("t.taskName", "=", "85c7d148-44f5-4333-b854-ab225357fd3e");
// cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
if (approval) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
@@ -77,7 +77,7 @@ public class AidFundManageController {
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
public Result pageData(AidFundPageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
@@ -130,7 +130,7 @@ public class AidFundManageController {
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
@Ok("void")
@ApiOperation("导出本年新进会员")
public void exportNewMember(HttpServletResponse response) {
@@ -166,7 +166,7 @@ public class AidFundManageController {
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
@ApiOperation("生成缴费名单")
@Aop(TransAop.READ_COMMITTED)
@SLog(tag = "基金会员-基金会员台账", msg = "生成缴费名单")
@@ -177,7 +177,7 @@ public class AidFundManageController {
}
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
@SLog(tag = "基金会员-基金会员台账", msg = "备份基金会员")
@ApiOperation("备份基金会员")
@Aop(TransAop.READ_COMMITTED)
@@ -189,7 +189,7 @@ public class AidFundManageController {
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
@SLog(tag = "基金会员-基金会员台账", msg = "批量设置退会")
@ApiOperation("批量设置退会")
@Aop(TransAop.READ_COMMITTED)
@@ -213,7 +213,7 @@ public class AidFundManageController {
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
@SLog(tag = "基金会员-基金会员台账", msg = "修改基金会员类型")
@ApiOperation("修改基金会员类型")
public Result doEditAidFundMemberUserType(String userId, String aidFundMemberUserType) {
@@ -222,7 +222,7 @@ public class AidFundManageController {
}
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
@SLog(tag = "基金会员-基金会员台账", msg = "更改基金会员状态")
@ApiOperation("更改基金会员状态")
@Aop(TransAop.READ_COMMITTED)
@@ -239,4 +239,38 @@ public class AidFundManageController {
}
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
public Result findOne(String userId){
Sql sql = Sqls.create("""
SELECT
us.username,
us.loginname,
us.mobile,
us.aidFundMemberUserType,
us.aidFundDeductTime,
us.arrivalAtSchoolDate,
us.sex,
us.unitName,
us.unionName
FROM
vw_user us
WHERE
us.id = '%s'
""".formatted(userId));
View_user user = userService.fetchVO(sql, View_user.class);
return Result.success(user);
}
@At
@SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR)
public Result findChangeRecordList(String userId){
List<NutMap> changeRecordList = aidFundMemberService.findChangeRecordList(userId);
return Result.success(changeRecordList);
}
}
@@ -46,6 +46,11 @@ public class AidFundRetirementAuditController {
@SaCheckPermission("medicalMutualAid.aidFund.retirementAudit")
public void index() {
}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/retirementAudit/index.html")
@SaCheckPermission("h5.medicalMutualAid.aidFund.retirementAudit")
public void h5() {
}
@At
@@ -48,6 +48,12 @@ public class AidFundUnionAuditController {
public void index() {
}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/unionAudit/index.html")
@SaCheckPermission("h5.medicalMutualAid.aidFund.unionAudit")
public void h5() {
}
@At
@ApiOperation("分页查询")
@@ -2,6 +2,9 @@ package com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.service;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.sys.models.Sys_user;
import org.nutz.lang.util.NutMap;
import java.util.List;
public interface AidFundMemberService extends BaseService {
@@ -26,4 +29,7 @@ public interface AidFundMemberService extends BaseService {
* @return
*/
Double getPayMoney(Sys_user user, Integer year);
List<NutMap> findChangeRecordList(String userId);
}
@@ -11,8 +11,12 @@ import com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.model.AidFundMem
import com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.service.AidFundMemberService;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import java.util.ArrayList;
import java.util.Calendar;
@@ -117,5 +121,52 @@ public class AidFundMemberServiceImpl extends BaseServiceImpl implements AidFund
return (year + 1 - beforeYear) * money + (year - beforeYear) * money * 0.1;
}
@Override
public List<NutMap> findChangeRecordList(String userId) {
Sql sql = Sqls.create("""
SELECT
info.*,
us.sex,
us.username,
us.loginname,
us.arrivalAtSchoolDate,
us.mobile,
us.unitName,
us.unionName,
us.aidFundMemberUserType,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId
FROM
`aid_fund_member_change_record` info
LEFT JOIN vw_user us ON us.id = info.userId
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
SqlExpressionGroup group = new SqlExpressionGroup();
group.or("ins.state", "=", 20);
group.or("ins.state", "is", null);
cnd.and(group);
cnd.and("info.userId", "=", userId);
sql.setCondition(cnd);
return listMap(sql);
}
}
@@ -1,6 +1,106 @@
<!--#include("payRecord.js"){}#-->
const AID_FUND_INFO = {
template: /*language=HTML*/
`
`
<div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="用户信息" name="one">
<el-descriptions :column="3" border>
<el-descriptions-item label="申报人">{{viewData.username}}</el-descriptions-item>
<el-descriptions-item label="工号">{{viewData.loginname}}</el-descriptions-item>
<el-descriptions-item label="联系方式">{{viewData.mobile}}</el-descriptions-item>
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
<el-descriptions-item label="入校时间">
{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}
</el-descriptions-item>
<el-descriptions-item label="基金会员类型">
{{viewData.aidFundMemberUserType}}
</el-descriptions-item>
<el-descriptions-item label="起扣时间">
{{viewData.aidFundDeductTime}}
</el-descriptions-item>
<el-descriptions-item label="所在单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="所在工会">{{viewData.unionName}}</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="变更记录" name="two">
<el-table :data="changeRecordTableData" ref="table" row-key="id" style="width: 100%">
<el-table-column label="序号" type="index" width="60px"></el-table-column>
<el-table-column
:label="column.label"
:prop="column.prop"
:key="column.prop"
:sortable="column.sortable"
:width="column.width"
header-align="center"
min-width="100px"
show-overflow-tooltip
v-for="column in tableColumns"
>
<template v-slot="{row}" v-if="column.prop=='changeType'">
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
:value="row.changeType"></dict-tag>
</template>
<template v-slot="{row}" v-else-if="column.prop=='applyTime'">
<template v-if="row.applyTime">
{{$moment(row.applyTime).format('YYYY-MM-DD')}}
</template>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="缴费记录" name="three">
<pay_record ref="payRecord"></pay_record>
</el-tab-pane>
</el-tabs>
`,
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
data() {
return {
viewData: {},
changeRecordTableData: [],
activeName:"one",
tableColumns: [
{prop: "loginname", label: "工号"},
{prop: "username", label: "姓名"},
{prop: "sex", label: "性别"},
{prop: "arrivalAtSchoolDate", label: "入校时间"},
{prop: "unitName", label: "所属单位"},
{prop: "unionName", label: "所属工会"},
{prop: "aidFundMemberUserType", label: "基金会员类型"},
{prop: "changeType", label: "变更类型"},
{prop: "applyTime", label: "变更时间"},
],
}
},
components: {
'pay_record': PAY_RECORD,
},
methods: {
// 打开
onOpen(row) {
this.row = row
this.info()
this.findChangeRecordList()
this.$refs.payRecord.getUserPayRecordList(row.id)
},
// 获取申请信息
info() {
this.$axios.post("/platform/medicalMutualAid/aidFund/manage/findOne", {userId: this.row.id}).then((res) => {
if (res.code === 0) {
this.viewData = res.data
}
})
},
// 获取申请信息
findChangeRecordList() {
this.$axios.post("/platform/medicalMutualAid/aidFund/manage/findChangeRecordList", {userId: this.row.id}).then((res) => {
if (res.code === 0) {
this.changeRecordTableData = res.data
}
})
},
}
}
@@ -5,11 +5,12 @@ const APPLY_INFO = {
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
</div>
<el-descriptions :column="3" border>
<el-descriptions-item label="申人">{{viewData.username}}</el-descriptions-item>
<el-descriptions-item label="申人">{{viewData.username}}</el-descriptions-item>
<el-descriptions-item label="工号">{{viewData.loginname}}</el-descriptions-item>
<el-descriptions-item label="联系方式">{{viewData.mobile}}</el-descriptions-item>
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
<el-descriptions-item label="入校时间">{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="入校时间">{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}
</el-descriptions-item>
<el-descriptions-item label="所在单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="所在工会">{{viewData.unionName}}</el-descriptions-item>
</el-descriptions>
@@ -40,11 +41,6 @@ const APPLY_INFO = {
:value="task.ext.submitType"></dict-tag>
</el-descriptions-item>
<template v-if="task.taskFormData.tf_money">
<el-descriptions-item label="审批金额">{{ '¥' + task.taskFormData.tf_money }}
</el-descriptions-item>
</template>
<el-descriptions-item label="办理意见" :span="3" v-if="!task.ext.isFirstTaskNode">{{
task.taskFormData.opinion }}
</el-descriptions-item>
@@ -58,7 +54,7 @@ const APPLY_INFO = {
</div>
`,
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE", "PROCESS_TASK_SUBMIT_TYPE"],
data() {
return {
viewData: {},
@@ -29,8 +29,8 @@ const PAY_RECORD = {
}
},
methods: {
getUserPayRecordList() {
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/getUserPayRecordList').then(resp => {
getUserPayRecordList(userId) {
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/getUserPayRecordList',{userId}).then(resp => {
if (resp.code === 0) {
this.payRecordList = resp.data
}
@@ -130,11 +130,9 @@ layout("/layouts/platform.html"){
<div class="process-title">
{{formData.taskName}}
</div>
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=""
class="flow-task-form">
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="100px" label-suffix="">
<el-form-item label="审核状态" prop="submitType"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
审核状态:
<el-radio-group v-model="formData.submitType">
<el-radio-button :label="2">拒绝</el-radio-button>
<el-radio-button :label="1">通过</el-radio-button>
@@ -146,7 +144,6 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="入校时间" prop="arrivalAtSchoolDate"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
入校时间:
<el-date-picker
:picker-options="pickerOptions"
@change="getPayMoney"
@@ -159,7 +156,6 @@ layout("/layouts/platform.html"){
</el-col>
<el-col :span="12">
<el-form-item label="缴纳费用" prop="money">
缴纳费用:
<el-input readonly v-model="formData.money"></el-input>
</el-form-item>
</el-col>
@@ -0,0 +1,269 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<style>
/* 整个弹窗容器 */
.custom-action-sheet {
display: flex;
flex-direction: column;
/* 设置弹窗最大高度,避免过高(可根据需要调整) */
max-height: 80vh;
height: auto; /* 允许内容撑开,但不超过 max-height */
}
/* 可滚动的内容区域 */
.scrollable-content {
flex: 1;
overflow-y: auto; /* 关键:只让内容滚动 */
padding: 0 16px;
/* 可选:防止滚动时文字贴边 */
-webkit-overflow-scrolling: touch; /* iOS 滚动优化 */
}
/* 底部按钮区域 */
.dialog-footer {
display: flex;
justify-content: flex-end;
gap: 8px;
padding: 12px 16px;
background: white;
border-top: 1px solid #f0f0f0;
/* 注意:这里不用 position: fixed */
}
</style>
<div id="app">
<!-- 导航栏 -->
<van-nav-bar title="基金会员申请" left-text="返回" left-arrow @click-left="historyBack" fixed
placeholder></van-nav-bar>
<van-notice-bar left-icon="info-o" wrapable>
温馨提醒:入校时间关联会费缴纳金额,请确认是否正确,若有疑问请联系校工会!另外,务必按您的实际情况选择基金会员类型!
</van-notice-bar>
<!-- 表单容器 -->
<van-form ref="formRef" class="form-container">
<van-field required v-model="formData.userName" label="姓名" disabled></van-field>
<van-field required v-model="formData.loginName" label="工号" disabled></van-field>
<van-field required v-model="formData.applyTime" label="申请时间" disabled></van-field>
<van-field required v-model="formData.mobile" name="mobile" label="联系方式" placeholder="请输入联系方式"
clearable type="tel" maxlength="11"
:rules="[{ required: true, message: '请填写入校时间' }]"></van-field>
<van-field required v-model="formData.idCard" name="idCard" label="身份证号" placeholder="请输入身份证件号"
clearable maxlength="18"></van-field>
<van-field
v-model="formData.arrivalAtSchoolDate"
label="入校时间"
placeholder="若没有入校时间,请联系校工会"
disabled
required
:rules="[{ required: true, message: '请填写入校时间' }]"
></van-field>
<van-field
v-model="formData.aidFundMemberUserType"
name="aidFundMemberUserType"
label="基金会员类型"
readonly
required
is-link
placeholder="请选择基金会员类型"
@click="aidFundMemberUserTypeClick"
:rules="[{ required: true, message: '请选择基金会员类型' }]"
clickable
></van-field>
<van-popup position="bottom" round v-model:show="showAidFundMemberUserTypePicker">
<van-picker show-toolbar
:default-index="aidFundMemberUserTypeIndex"
:columns="aidFundMemberUserTypeOptions"
@cancel="showAidFundMemberUserTypePicker = false"
value-key="name"
@confirm="(v)=>{formData.aidFundMemberUserType = v.name;showAidFundMemberUserTypePicker = false}"
></van-picker>
</van-popup>
<div style="padding: 10px;">
<van-checkbox v-model="formData.isRead" shape="square" @change="isReadChange">
<div style="color:#246FB4;" @click.stop="isReadClick">
中国地质大学(武汉)教职工重大疾病互助基金管理办法
</div>
</van-checkbox>
</div>
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
<van-button block type="primary" :disabled="applyInfo.disabled"
@click="openSubmit">{{ applyInfo.label }}
</van-button>
</div>
</van-form>
<!-- 弹窗 -->
<van-action-sheet
title="温馨提示"
v-model="dialogVisible"
:close-on-click-overlay="false"
class="custom-action-sheet"
>
<!-- 内容可滚动区域 -->
<div class="scrollable-content">
<pay-record ref="payRecord"></pay-record>
</div>
<van-notice-bar
v-if="!$store.state.user.aidFundMember"
class="mt10"
color="#faad14"
background="#fffbe6"
:scrollable="false"
>
本次入会,您需要缴费会费{{ payMoney }}元,请详知。
</van-notice-bar>
<!-- 底部按钮:固定在弹窗底部,不滚动 -->
<div class="dialog-footer">
<van-button plain hairline @click="dialogVisible = false">取消</van-button>
<van-button type="primary" @click="onSubmit">提交</van-button>
</div>
</van-action-sheet>
</div>
<script nonce="${cspNonce!}">
<!--#include("../common/payRecord.js"){}#-->
new Vue({
el: '#app',
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE"],
data() {
return {
formData: {},
aidFundMemberUserTypeOptions: [],
isReadChangeType: true,
applyInfo: {
disabled: true,
label: '申请加入'
},
dialogVisible: false,
payMoney: 0,
payRecordsDialogTitle: "",
payRecordList: [],
showAidFundMemberUserTypePicker: false,
aidFundMemberUserTypeIndex: 0
}
},
components: {
'pay-record': payRecord
},
methods: {
onSubmit() {
this.$dialog.confirm({
title: "提示",
message: "您确定要提交申请吗?",
}).then(() => {
this.$axios.post("/platform/medicalMutualAid/aidFund/apply/submit", {
data: JSON.stringify(this.formData)
}).then(res => {
if (res.code === 0) {
this.$toast.success(res.msg)
this.dialogVisible = false
this.$pjaxReplace("/platform/medicalMutualAid/aidFund/applyMine/h5")
}
})
})
},
async openSubmit() {
await this.$refs.formRef.validate();
if (!this.formData.isRead) {
this.$dialog.alert({
title: '温馨提醒',
message: '请阅读《教职工重大疾病互助基金管理办法》的通知文件',
}).then(() => {
})
return
}
this.getPayMoney()
this.dialogVisible = true
this.$nextTick(() => {
this.$refs.payRecord.getPayRecords()
})
},
isReadClick() {
this.isReadChangeType = false
this.$set(this.formData, 'isRead', true)
this.$commonUtil.previewFile({
suffix: "pdf",
downloadPath: "/platform/sys/file/download?id=orpgde84uggjmpflbob83tadan",
name: "中国地质大学(武汉)教职工重大疾病互助基金管理办法.pdf",
id: "orpgde84uggjmpflbob83tadan"
})
},
isReadChange() {
if (this.isReadChangeType) {
this.$set(this.formData, 'isRead', false)
this.$dialog.alert({
title: '温馨提醒',
message: '请阅读《教职工重大疾病互助基金管理办法》的通知文件',
}).then(() => {
})
return
}
},
aidFundMemberUserTypeClick() {
if (this.formData.aidFundMemberUserType) {
this.aidFundMemberUserTypeIndex = this.aidFundMemberUserTypeOptions.findIndex(
item => item.name === this.formData.aidFundMemberUserType
);
}
this.showAidFundMemberUserTypePicker = true
},
canApply() {
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/canApply').then(resp => {
if (resp.code === 0) {
this.applyInfo = resp.data
}
})
},
getPayMoney() {
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/getPayMoney', {arrivalAtSchoolDate: this.formData.arrivalAtSchoolDate}).then(resp => {
if (resp.code === 0) {
this.payMoney = resp.data
}
})
},
initData() {
this.canApply()
this.$set(this.formData, "userName", this.$store.state.user.username)
this.$set(this.formData, "loginName", this.$store.state.user.loginname)
this.$set(this.formData, "mobile", this.$store.state.user.mobile)
this.$set(this.formData, "idCard", this.$store.state.user.idCard)
this.$set(this.formData, "aidFundMemberUserType", this.$store.state.user.aidFundMemberUserType)
if (this.$store.state.user.arrivalAtSchoolDate) {
this.$set(this.formData, "arrivalAtSchoolDate", this.$moment(this.$store.state.user.arrivalAtSchoolDate).format("YYYY-MM-DD"))
}
this.$set(this.formData, "applyTime", this.$moment(new Date()).format("YYYY-MM-DD"))
this.$businessTool.getDictOptions("AIDFUND_MEMBER_USER_TYPE").then(data => {
this.aidFundMemberUserTypeOptions = data
})
}
},
created() {
this.initData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,113 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<div id="app">
<!-- 导航栏 -->
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="historyBack" fixed
placeholder></van-nav-bar>
<table-list api="/platform/medicalMutualAid/aidFund/applyMine/pageData" :page_form.sync="pageForm"
ref="tableListRef" @ready="doSearch">
<template v-slot="{index,row}">
<table-column label="工号">{{row.loginName}}</table-column>
<table-column label="姓名">{{row.userName}}</table-column>
<table-column label="所属工会">{{row.unionName}}</table-column>
<table-column label="所属单位">{{row.unitName}}</table-column>
<table-column label="变更类型">
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
:value="row.changeType"></dict-tag>
</table-column>
<table-column label="当前节点">{{row.taskName}}</table-column>
</template>
<template #actions="{index,row}">
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
<i class="fa fa-reply"></i>
<span>撤回</span>
</div>
<div class="action-btn" v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onFinishTask(row)">
<i class="fa fa-mail-forward"></i>
<span>提交</span>
</div>
<div class="action-btn delete" @click="onDelete(row)"
v-if="row.taskKey === 'startTask' || !row.instanceId">
<i class="fa fa-trash"></i>
<span>删除</span>
</div>
</template>
</table-list>
</div>
<script nonce="${cspNonce!}">
new Vue({
el: "#app",
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
data() {
return {
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
year: new Date().getFullYear(),
},
}
},
methods: {
onFinishTask(row) {
this.$dialog.confirm({
title: "温馨提示",
message: "您确定要重新提交吗?",
}).then(() => {
this.$axios.post("/platform/medicalMutualAid/aidFund/applyMine/submitAgain", {taskId: row.startTaskId}).then((res) => {
if (res.code === 0) {
this.$toast.success(res.msg)
this.doSearch()
}
})
})
},
onRevoke(row) {
this.$dialog.confirm({
title: "温馨提示",
message: "您确定要撤回吗?",
}).then(() => {
this.$axios.post("/flow/common/revokeTask", {taskId: row.startTaskId}).then((res) => {
if (res.code === 0) {
this.$toast.success(res.msg)
this.doSearch()
}
})
})
},
onDelete(id) {
this.$dialog.confirm({
title: "温馨提示",
message: "您确定要取消申请吗?取消后将不能撤?",
}).then(() => {
this.$axios.post("/platform/medicalMutualAid/aidFund/applyMine/delete", {id}).then((res) => {
if (res.code === 0) {
this.$toast.success(res.msg)
this.doSearch()
}
})
})
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
this.pageForm.totalCount = 0
this.$refs.tableListRef.doSearch()
})
}
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,86 @@
const AID_FUND_INFO = {
template: /*language=HTML*/
`
<van-action-sheet v-model="visible" title="查看详情">
<div class="detail-container">
<van-cell-group title="基本信息">
<van-cell title="申请人">{{viewData.username}}</van-cell>
<van-cell title="工号">{{viewData.loginname}}</van-cell>
<van-cell title="联系方式">{{viewData.mobile}}</van-cell>
<van-cell title="性别">{{viewData.sex}}</van-cell>
<van-cell title="入校时间">{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="所在单位">{{viewData.unitName}}</van-cell>
<van-cell title="所在工会">{{viewData.unionName}}</van-cell>
</van-cell-group>
<template v-for="task in doneTasks">
<van-cell-group :title="task.displayName" v-if="task.ext.isFirstTaskNode">
<van-cell title="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})
</van-cell>
<van-cell title="申请时间">{{ task.finishTime }}</van-cell>
<van-cell title="办理结果">
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
:value="task.ext.submitType"></dict-tag>
</van-cell>
</van-cell-group>
<van-cell-group :title="task.displayName" v-else>
<van-cell title="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})
</van-cell>
<van-cell title="办理时间">{{ task.finishTime }}</van-cell>
<van-cell title="办理结果">
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
:value="task.ext.submitType"></dict-tag>
</van-cell>
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
<div v-html="task.taskFormData.tf_opinion"></div>
</van-cell>
</van-cell-group>
</template>
</div>
<slot></slot>
</van-action-sheet>
`,
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
data() {
return {
visible: false,
row: {},
viewData: {},
doneTasks: [],
}
},
methods: {
// 打开
onOpen(row) {
this.row = row
this.visible = true
this.info()
this.getDoneTasks()
},
// 关闭
onClose() {
this.visible = false
},
// 获取申请信息
info() {
this.$axios.post("/platform/medicalMutualAid/aidFund/apply/info", {id: this.row.id}).then((res) => {
if (res.code === 0) {
this.viewData = res.data
}
})
},
// 获取已办任务审批记录
getDoneTasks() {
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
if (res.code === 0) {
this.doneTasks = res.data
}
})
},
}
}
@@ -0,0 +1,79 @@
const payRecord = {
template: /*language=HTML*/ `
<div style="max-height: 250px">
<!-- 展开面板 -->
<van-collapse v-model="activeNames" @change="onExpand">
<van-collapse-item
v-for="(row, index) in records"
:key="row.id"
:name="row.id"
:title="titleTemplate(row, index)"
class="pay-row"
>
<!-- 展开后详情 -->
<van-cell-group>
<van-cell title="缴费年份" :value="row.year"></van-cell>
<van-cell title="缴费金额">
<template #default>
<van-tag type="primary">{{ row.money }}</van-tag>
</template>
</van-cell>
<van-cell title="扣款状态">
<template #default>
<van-tag :type="row.isPayed ? 'success' : 'default'">
{{ row.isPayed ? '已扣款' : '未扣款' }}
</van-tag>
</template>
</van-cell>
</van-cell-group>
</van-collapse-item>
</van-collapse>
<!-- 空提示 -->
<van-empty v-if="!loading && !records.length" description="暂无缴费记录"/>
</div>
`,
props: {
},
data() {
return {
loading: true,
activeNames: [] ,
records: []
}
},
watch: {
userid: 'getPayRecords'
},
methods: {
onExpand(names) {
// 如需异步加载详情可在此处理
},
titleTemplate(row, idx) {
return '序号 ' + (idx + 1) + ' · ' + row.year + ' · ¥' + row.money
},
async getPayRecords(userId) {
this.loading = true
try {
this.$axios.post("/platform/medicalMutualAid/aidFund/apply/getUserPayRecordList",{userId}).then(resp=>{
if (resp.code === 0){
this.records = resp.data
}
})
} catch (e) {
this.$notify({ type: 'danger', message: '获取缴费记录失败' })
} finally {
this.loading = false
}
}
},
style: /*language=CSS*/ `
.pay-row {
margin-bottom: 8px;
background: #fafafa;
border-radius: 4px;
overflow: hidden;
}
`
}
@@ -0,0 +1,271 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<div id="app">
<van-sticky>
<van-nav-bar title="互管会审核" left-text="返回" left-arrow @click-left="historyBack" fixed
placeholder></van-nav-bar>
<van-search
v-model="pageForm.searchKeyword"
placeholder="请输入工号或者姓名进行查询"
show-action
:reverse-color="false"
input-align="left"
@search="doSearch">
<template #action>
<div @click="doSearch">搜索</div>
</template>
</van-search>
<van-dropdown-menu
:close-on-click-outside="false"
:close-on-click-overlay="false"
>
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
<van-dropdown-item :options="unionList" @change="unionChange"
v-model="pageForm.unionId"></van-dropdown-item>
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
</van-dropdown-menu>
<van-tabs v-model="pageForm.approvalText"
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
<van-tab title="已审核" name="1"></van-tab>
<van-tab title="未审核" name="0"></van-tab>
</van-tabs>
</van-sticky>
<table-list api="/platform/medicalMutualAid/aidFund/foundationAudit/pageData" :page_form.sync="pageForm"
ref="tableListRef" @ready="doSearch">
<template v-slot="{index,row}">
<table-column label="工号">{{row.loginName}}</table-column>
<table-column label="姓名">{{row.userName}}</table-column>
<table-column label="所属工会">{{row.unionName}}</table-column>
<table-column label="所属单位">{{row.unitName}}</table-column>
<table-column label="变更类型">
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
:value="row.changeType"></dict-tag>
</table-column>
<table-column label="当前节点">{{row.taskName}}</table-column>
</template>
<template #actions="{index,row}">
<div class="action-btn" @click="onView(row)">
<i class="fa fa-eye"></i>
<span>查看</span>
</div>
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
<i class="fa fa-check"></i>
<span>审核</span>
</div>
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
<i class="fa fa-undo"></i>
<span>撤回</span>
</div>
</template>
</table-list>
<info ref="infoRef">
<div v-if="showApprovalForm">
<div class="process-title">{{formData.taskName}}</div>
<van-form ref="formRef">
<van-field
:rules="[{ required: true, message: '请选择审核状态' }]"
label="审核状态"
name="submitType">
<template #input>
<van-radio-group direction="horizontal" v-model="formData.submitType">
<van-radio :name="2" shape="square">拒绝</van-radio>
<van-radio :name="1" shape="square">同意</van-radio>
</van-radio-group>
</template>
</van-field>
<div v-if="formData.submitType===1
&&formData.changeType==='AIDFUND_MEMBER_CHANGE_TYPE_ONE'">
<van-field
v-model="formData.arrivalAtSchoolDate"
label="入校时间"
placeholder="若没有入校时间,请联系校工会"
disabled
required
:rules="[{ required: true, message: '请填写入校时间' }]"
></van-field>
<van-field
v-model="formData.money"
label="金额"
placeholder="金额"
disabled
required
:rules="[{ required: true, message: '请填写入校时间' }]"
></van-field>
</div>
<van-field
v-model="formData.tf_opinion"
name="tf_opinion"
label="审批意见"
placeholder="请输入审批意见"
:rules="[{ required: true, message: '请填写审批意见' }]"
required
maxlength="100"
show-word-limit
></van-field>
</van-form>
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
<van-button block @click="$refs.infoRef.onClose()">关闭</van-button>
<van-button type="primary" block @click="handleTaskAction(formData.submitType)">提交</van-button>
</div>
</div>
</info>
</div>
<script nonce="${cspNonce!}">
<!--#include("../common/applyInfo.js"){}#-->
new Vue({
el: '#app',
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
data() {
return {
pageForm: {
pageNo: 1,
pageSize: 10,
searchKeyword: '',
unionId: null,
unitId: null,
approvalText: "0",
approval: false,
year: new Date().getFullYear()
},
formData: {},
showApprovalForm: false,
unionList: [],
unitList: []
}
},
components: {
"info": AID_FUND_INFO
},
methods: {
getPayMoney() {
this.$axios.post('/platform/medicalMutualAid/aidFund/foundationAudit/getPayMoney', {
arrivalAtSchoolDate: this.formData.arrivalAtSchoolDate,
userId: this.formData.userId
}).then(resp => {
if (resp.code === 0) {
this.$set(this.formData, 'money', resp.data)
}
})
},
onReady() {
this.doSearch()
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
this.pageForm.totalCount = 0
this.$refs.tableListRef.doSearch()
})
},
// 查看详情
onView(row) {
this.showApprovalForm = false
this.$refs.infoRef.onOpen(row)
},
onApproval(row) {
this.showApprovalForm = true
this.$refs.infoRef.onOpen(row)
this.formData = {
id: row.id,
arrivalAtSchoolDate: row.arrivalAtSchoolDate,
userId: row.userId,
changeType: row.changeType,
submitType: 1,
processTaskId: row.taskId,
taskName: row.curTaskName
}
this.getPayMoney()
},
async handleTaskAction(val) {
try {
await this.$refs.formRef.validate();
this.$dialog.confirm({
title: "提示",
message: "您确定要提交吗?"
}).then(() => {
this.$axios.post("/platform/medicalMutualAid/aidFund/foundationAudit/executeTask", {
data: JSON.stringify({
...this.formData,
submitType: val
}), id: this.formData.id
}).then((res) => {
if (res.code === 0) {
this.$refs.infoRef.onClose()
this.$toast.success(res.msg)
this.doSearch()
}
})
}).catch(() => {
})
} catch (error) {
}
},
// 撤回
onRevoke(row) {
debugger
this.$dialog.confirm({
title: '提示',
message: '您确定要撤回吗?',
}).then(() => {
this.$axios.post('/flow/common/revokeTask', {taskId: row.taskId}).then(res => {
if (res.code === 0) {
this.$toast.success('撤回成功');
this.doSearch();
}
})
}).catch(() => {
});
},
unionChange() {
this.$set(this.pageForm, "unitId", null)
this.flushUnits()
this.doSearch()
},
async flushUnits() {
this.unitList = await this.$businessTool.listUnit(unionId)
this.unitList.forEach((v) => {
v.text = v.name
v.value = v.id
})
this.unitList.unshift({text: "全部单位", value: null})
},
},
async created() {
this.unitList = await this.$businessTool.listUnit()
this.unitList.forEach((v) => {
v.text = v.name
v.value = v.id
})
this.unitList.unshift({text: "全部单位", value: null})
this.unionList = await this.$businessTool.listUnion()
this.unionList.forEach((v) => {
v.text = v.name
v.value = v.id
})
this.unionList.unshift({text: "全部工会", value: null})
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,197 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<div id="app">
<van-sticky>
<van-nav-bar title="离退休审核" left-text="返回" left-arrow @click-left="historyBack" fixed
placeholder></van-nav-bar>
<van-search
v-model="pageForm.searchKeyword"
placeholder="请输入工号或者姓名进行查询"
show-action
:reverse-color="false"
input-align="left"
@search="doSearch">
<template #action>
<div @click="doSearch">搜索</div>
</template>
</van-search>
<van-dropdown-menu
:close-on-click-outside="false"
:close-on-click-overlay="false"
>
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
</van-dropdown-menu>
<van-tabs v-model="pageForm.approvalText"
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
<van-tab title="已审核" name="1"></van-tab>
<van-tab title="未审核" name="0"></van-tab>
</van-tabs>
</van-sticky>
<table-list api="/platform/medicalMutualAid/aidFund/retirementAudit/pageData" :page_form.sync="pageForm"
ref="tableListRef" @ready="doSearch">
<template v-slot="{index,row}">
<table-column label="工号">{{row.loginName}}</table-column>
<table-column label="姓名">{{row.userName}}</table-column>
<table-column label="所属工会">{{row.unionName}}</table-column>
<table-column label="所属单位">{{row.unitName}}</table-column>
<table-column label="变更类型">
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
:value="row.changeType"></dict-tag>
</table-column>
<table-column label="当前节点">{{row.taskName}}</table-column>
</template>
<template #actions="{index,row}">
<div class="action-btn" @click="onView(row)">
<i class="fa fa-eye"></i>
<span>查看</span>
</div>
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
<i class="fa fa-check"></i>
<span>审核</span>
</div>
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
<i class="fa fa-undo"></i>
<span>撤回</span>
</div>
</template>
</table-list>
<info ref="infoRef">
<div v-if="showApprovalForm">
<div class="process-title">{{formData.taskName}}</div>
<van-form ref="formRef">
<van-field
v-model="formData.tf_opinion"
name="tf_opinion"
label="审批意见"
placeholder="请输入审批意见"
:rules="[{ required: true, message: '请填写审批意见' }]"
required
maxlength="100"
show-word-limit
></van-field>
</van-form>
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
<van-button block @click="$refs.infoRef.onClose()">关闭</van-button>
<van-button type="danger" block @click="handleTaskAction(2)">拒绝</van-button>
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
</div>
</div>
</info>
</div>
<script nonce="${cspNonce!}">
<!--#include("../common/applyInfo.js"){}#-->
new Vue({
el: '#app',
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
data() {
return {
pageForm: {
pageNo: 1,
pageSize: 10,
searchKeyword: '',
unionId: null,
unitId: null,
approvalText: "0",
approval: false,
year: new Date().getFullYear()
},
formData: {},
showApprovalForm: false,
unionList: [],
unitList: []
}
},
components: {
"info": AID_FUND_INFO
},
methods: {
onReady() {
this.doSearch()
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
this.pageForm.totalCount = 0
this.$refs.tableListRef.doSearch()
})
},
// 查看详情
onView(row) {
this.showApprovalForm = false
this.$refs.infoRef.onOpen(row)
},
onApproval(row) {
this.showApprovalForm = true
this.$refs.infoRef.onOpen(row)
this.formData = {
processTaskId: row.taskId,
taskName: row.curTaskName
}
},
async handleTaskAction(val) {
try {
await this.$refs.formRef.validate();
this.$dialog.confirm({
title: "提示",
message: "您确定要提交吗?"
}).then(() => {
this.$axios.post("/flow/common/executeTask", {
data: JSON.stringify({
...this.formData,
submitType: val
})
}).then((res) => {
if (res.code === 0) {
this.$refs.infoRef.onClose()
this.$toast.success(res.msg)
this.doSearch()
}
})
}).catch(() => {
})
} catch (error) {
}
},
// 撤回
onRevoke(row) {
debugger
this.$dialog.confirm({
title: '提示',
message: '您确定要撤回吗?',
}).then(() => {
this.$axios.post('/flow/common/revokeTask', {taskId: row.taskId}).then(res => {
if (res.code === 0) {
this.$toast.success('撤回成功');
this.doSearch();
}
})
}).catch(() => {
});
},
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,187 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<div id="app">
<van-sticky>
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed
placeholder></van-nav-bar>
<van-search
v-model="pageForm.searchKeyword"
placeholder="请输入工号或者姓名进行查询"
show-action
:reverse-color="false"
input-align="left"
@search="doSearch">
<template #action>
<div @click="doSearch">搜索</div>
</template>
</van-search>
<van-tabs v-model="pageForm.approvalText"
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
<van-tab title="已审核" name="1"></van-tab>
<van-tab title="未审核" name="0"></van-tab>
</van-tabs>
</van-sticky>
<table-list api="/platform/medicalMutualAid/aidFund/unionAudit/pageData" :page_form.sync="pageForm"
ref="tableListRef" @ready="doSearch">
<template v-slot="{index,row}">
<table-column label="工号">{{row.loginName}}</table-column>
<table-column label="姓名">{{row.userName}}</table-column>
<table-column label="所属工会">{{row.unionName}}</table-column>
<table-column label="所属单位">{{row.unitName}}</table-column>
<table-column label="变更类型">
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
:value="row.changeType"></dict-tag>
</table-column>
<table-column label="当前节点">{{row.taskName}}</table-column>
</template>
<template #actions="{index,row}">
<div class="action-btn" @click="onView(row)">
<i class="fa fa-eye"></i>
<span>查看</span>
</div>
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
<i class="fa fa-check"></i>
<span>审核</span>
</div>
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
<i class="fa fa-undo"></i>
<span>撤回</span>
</div>
</template>
</table-list>
<info ref="infoRef">
<div v-if="showApprovalForm">
<div class="process-title">{{formData.taskName}}</div>
<van-form ref="formRef">
<van-field
v-model="formData.tf_opinion"
name="tf_opinion"
label="审批意见"
placeholder="请输入审批意见"
:rules="[{ required: true, message: '请填写审批意见' }]"
required
maxlength="100"
show-word-limit
></van-field>
</van-form>
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
<van-button block @click="$refs.infoRef.onClose()">关闭</van-button>
<van-button type="danger" block @click="handleTaskAction(2)">拒绝</van-button>
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
</div>
</div>
</info>
</div>
<script nonce="${cspNonce!}">
<!--#include("../common/applyInfo.js"){}#-->
new Vue({
el: '#app',
store,
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
data() {
return {
pageForm: {
pageNo: 1,
pageSize: 10,
searchKeyword: '',
unionId: '',
unitId: '',
approvalText: "0",
approval: false
},
formData: {},
showApprovalForm: false,
}
},
components: {
"info": AID_FUND_INFO
},
methods: {
onReady() {
this.doSearch()
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
this.pageForm.totalCount = 0
this.$refs.tableListRef.doSearch()
})
},
// 查看详情
onView(row) {
this.showApprovalForm = false
this.$refs.infoRef.onOpen(row)
},
onApproval(row) {
this.showApprovalForm = true
this.$refs.infoRef.onOpen(row)
this.formData = {
processTaskId: row.taskId,
taskName: row.curTaskName
}
},
async handleTaskAction(val) {
try {
await this.$refs.formRef.validate();
this.$dialog.confirm({
title: "提示",
message: "您确定要提交吗?"
}).then(() => {
this.$axios.post("/flow/common/executeTask", {
data: JSON.stringify({
...this.formData,
submitType: val
})
}).then((res) => {
if (res.code === 0) {
this.$refs.infoRef.onClose()
this.$toast.success(res.msg)
this.doSearch()
}
})
}).catch(() => {
})
} catch (error) {
}
},
// 撤回
onRevoke(row) {
debugger
this.$dialog.confirm({
title: '提示',
message: '您确定要撤回吗?',
}).then(() => {
this.$axios.post('/flow/common/revokeTask', {taskId: row.taskId}).then(res => {
if (res.code === 0) {
this.$toast.success('撤回成功');
this.doSearch();
}
})
}).catch(() => {
});
},
}
})
</script>
<!--#
}
#-->