commit
This commit is contained in:
+17
-16
@@ -113,22 +113,23 @@ public class UnionReimburseApplyController {
|
|||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
// @At
|
@At
|
||||||
// @ApiOperation("重新提交申请")
|
@ApiOperation("重新提交申请")
|
||||||
// @Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
// @SaCheckPermission(value = {"unionReimburse.apply", "h5.unionReimburse.apply"}, mode = SaMode.OR)
|
@SaCheckPermission(value = {"unionReimburse.apply", "h5.unionReimburse.apply"}, mode = SaMode.OR)
|
||||||
// public Result submitAgain(@Param("data") UnionReimburse unionReimburse, @Param("taskId") Long taskId) {
|
public Result submitAgain(@Param("data") UnionReimburse unionReimburse, @Param("taskId") Long taskId) {
|
||||||
// if (StrUtil.isBlank(unionReimburse.getId())) unionReimburse.setCreateTime(new Date());
|
// 退回重提也必须复用当前提交保存逻辑,避免绕过发票明细落库和提交校验。
|
||||||
//
|
Result result = unionReimburseService.saveApply(unionReimburse, 2);
|
||||||
// dao.insertOrUpdate(unionReimburse);
|
if (result.getCode() != 0) {
|
||||||
//
|
return result;
|
||||||
// Dict dict = Dict.create();
|
}
|
||||||
// dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
|
||||||
// dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
Dict dict = Dict.create();
|
||||||
// dict.set("userId", unionReimburse.getCondolenceUserId());
|
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||||
// flowCommonService.executeTask(dict);
|
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||||
// return Result.success();
|
flowCommonService.executeTask(dict);
|
||||||
// }
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckLogin
|
@SaCheckLogin
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "h5",
|
name: "h5-signature",
|
||||||
components: {
|
components: {
|
||||||
signature: httpVueLoader("/components/plugins/sysSignature/index.vue?v=" + new Date().getTime())
|
signature: httpVueLoader("/components/plugins/sysSignature/index.vue?v=" + new Date().getTime())
|
||||||
},
|
},
|
||||||
|
|||||||
+96
-15
@@ -69,6 +69,50 @@ layout("/layouts/platform_h5.html"){
|
|||||||
@confirm="onReimburseProjectConfirm" show-toolbar></van-picker>
|
@confirm="onReimburseProjectConfirm" show-toolbar></van-picker>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
|
<!-- 经费来源 -->
|
||||||
|
<van-field
|
||||||
|
v-model="formData.reimburseFundSourceName"
|
||||||
|
name="reimburseFundSourceName"
|
||||||
|
label="经费来源"
|
||||||
|
readonly
|
||||||
|
placeholder="请选择经费来源"
|
||||||
|
@click="showReimburseFundSourcePicker = true"
|
||||||
|
:rules="[{ required: true, message: '请选择经费来源' }]"
|
||||||
|
clickable
|
||||||
|
required
|
||||||
|
is-link
|
||||||
|
></van-field>
|
||||||
|
<van-popup position="bottom" round v-model:show="showReimburseFundSourcePicker">
|
||||||
|
<van-picker :columns="reimburseFundSourceColumns" @cancel="showReimburseFundSourcePicker = false"
|
||||||
|
@confirm="onReimburseFundSourceConfirm" show-toolbar></van-picker>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-if="formData.reimburseFundSource === 'UNION_REIMBURSE_FUND_SOURCE_3'"
|
||||||
|
v-model="formData.clubName"
|
||||||
|
name="clubName"
|
||||||
|
label="所属社团"
|
||||||
|
readonly
|
||||||
|
placeholder="请选择所属社团"
|
||||||
|
@click="showClubPicker = true"
|
||||||
|
:rules="[{ required: true, message: '请选择所属社团' }]"
|
||||||
|
clickable
|
||||||
|
required
|
||||||
|
is-link
|
||||||
|
></van-field>
|
||||||
|
<van-popup position="bottom" round v-model:show="showClubPicker">
|
||||||
|
<van-picker :columns="clubColumns" @cancel="showClubPicker = false"
|
||||||
|
@confirm="onClubConfirm" show-toolbar></van-picker>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-if="formData.reimburseFundSource"
|
||||||
|
label="余额"
|
||||||
|
v-model="formData.fundBalance"
|
||||||
|
readonly
|
||||||
|
placeholder="自动查询"
|
||||||
|
></van-field>
|
||||||
|
|
||||||
<!-- 联系方式 -->
|
<!-- 联系方式 -->
|
||||||
<van-field label="联系方式" v-model="formData.mobile" required placeholder="请输入联系方式"
|
<van-field label="联系方式" v-model="formData.mobile" required placeholder="请输入联系方式"
|
||||||
:rules="[{ required: true, message: '请输入联系方式' }]"></van-field>
|
:rules="[{ required: true, message: '请输入联系方式' }]"></van-field>
|
||||||
@@ -128,9 +172,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
required>
|
required>
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
</template>
|
|
||||||
<!-- 活动相关字段 (当报销项目不为慰问时显示) -->
|
<!-- 活动相关字段 (当报销项目不为慰问时显示) -->
|
||||||
<template>
|
<template v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||||
<van-field label="活动名称"
|
<van-field label="活动名称"
|
||||||
v-model="formData.activityName"
|
v-model="formData.activityName"
|
||||||
placeholder="请输入活动名称"
|
placeholder="请输入活动名称"
|
||||||
@@ -455,6 +498,19 @@ layout("/layouts/platform_h5.html"){
|
|||||||
onReimburseFundSourceConfirm(o) {
|
onReimburseFundSourceConfirm(o) {
|
||||||
this.$set(this.formData, "reimburseFundSourceName", o.text) // 显示名称
|
this.$set(this.formData, "reimburseFundSourceName", o.text) // 显示名称
|
||||||
this.$set(this.formData, "reimburseFundSource", o.value) // 字典值
|
this.$set(this.formData, "reimburseFundSource", o.value) // 字典值
|
||||||
|
if (o.value !== "UNION_REIMBURSE_FUND_SOURCE_3") {
|
||||||
|
this.$set(this.formData, "clubId", "")
|
||||||
|
this.$set(this.formData, "clubName", "")
|
||||||
|
this.queryFundBalance()
|
||||||
|
} else if (this.clubColumns.length === 1) {
|
||||||
|
this.$set(this.formData, "clubId", this.clubColumns[0].value)
|
||||||
|
this.$set(this.formData, "clubName", this.clubColumns[0].text)
|
||||||
|
this.queryFundBalance()
|
||||||
|
} else {
|
||||||
|
this.$set(this.formData, "clubId", "")
|
||||||
|
this.$set(this.formData, "clubName", "")
|
||||||
|
this.$set(this.formData, "fundBalance", "")
|
||||||
|
}
|
||||||
this.showReimburseFundSourcePicker = false
|
this.showReimburseFundSourcePicker = false
|
||||||
},
|
},
|
||||||
onClubConfirm(o) {
|
onClubConfirm(o) {
|
||||||
@@ -586,6 +642,11 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.clubColumns = res.map(item => {
|
this.clubColumns = res.map(item => {
|
||||||
return { text: item.clubName, value: item.id }
|
return { text: item.clubName, value: item.id }
|
||||||
})
|
})
|
||||||
|
if (res && res.length === 1 && this.formData.reimburseFundSource === "UNION_REIMBURSE_FUND_SOURCE_3" && !this.formData.clubId) {
|
||||||
|
this.$set(this.formData, "clubId", res[0].id)
|
||||||
|
this.$set(this.formData, "clubName", res[0].clubName)
|
||||||
|
this.queryFundBalance()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 查询经费余额
|
// 查询经费余额
|
||||||
@@ -654,33 +715,53 @@ layout("/layouts/platform_h5.html"){
|
|||||||
},
|
},
|
||||||
// 添加经费来源区分
|
// 添加经费来源区分
|
||||||
async filterReimburseFundSources() {
|
async filterReimburseFundSources() {
|
||||||
// 如果是系统管理员或校工会管理员,可以使用所有经费来源
|
|
||||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
|
||||||
// 不需要过滤,使用所有选项
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const filteredSources = []
|
const filteredSources = []
|
||||||
|
|
||||||
// 根据用户角色过滤经费来源选项
|
// 原角色过滤逻辑保留如下,手机端现统一改为按权限控制,与 PC 端保持一致
|
||||||
if (this.$auth.hasRoleOr(["SCHOOL_OUTLAY_ADMIN", "SCHOOL_UNION_ADMIN"])) {
|
// if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||||
this.reimburseFundSourceColumns.map(item => {
|
// return
|
||||||
|
// }
|
||||||
|
// if (this.$auth.hasRoleOr(["SCHOOL_OUTLAY_ADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||||
|
// this.reimburseFundSourceColumns.map(item => {
|
||||||
|
// if (item.value === "UNION_REIMBURSE_FUND_SOURCE_1") {
|
||||||
|
// filteredSources.push(item)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// if (this.$auth.hasRoleOr(["BRANCH_UNION_CHAIRMAN", "BRANCH_UNION_ADMIN"])) {
|
||||||
|
// this.reimburseFundSourceColumns.map(item => {
|
||||||
|
// if (item.value === "UNION_REIMBURSE_FUND_SOURCE_2") {
|
||||||
|
// filteredSources.push(item)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// if (this.$auth.hasRoleOr(["CLUB_MANAGER", "CLUB_PRESIDENT"])) {
|
||||||
|
// this.reimburseFundSourceColumns.map(item => {
|
||||||
|
// if (item.value === "UNION_REIMBURSE_FUND_SOURCE_3") {
|
||||||
|
// filteredSources.push(item)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
|
// 手机端经费来源权限必须使用 h5. 前缀,和 PC 端经费来源项保持一一对应
|
||||||
|
if (this.$auth.hasPermission("h5.unionReimburse.xgh")) {
|
||||||
|
this.reimburseFundSourceColumns.forEach(item => {
|
||||||
if (item.value === "UNION_REIMBURSE_FUND_SOURCE_1") {
|
if (item.value === "UNION_REIMBURSE_FUND_SOURCE_1") {
|
||||||
filteredSources.push(item)
|
filteredSources.push(item)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.$auth.hasRoleOr(["BRANCH_UNION_CHAIRMAN", "BRANCH_UNION_ADMIN"])) {
|
if (this.$auth.hasPermission("h5.unionReimburse.fgh")) {
|
||||||
this.reimburseFundSourceColumns.map(item => {
|
this.reimburseFundSourceColumns.forEach(item => {
|
||||||
if (item.value === "UNION_REIMBURSE_FUND_SOURCE_2") {
|
if (item.value === "UNION_REIMBURSE_FUND_SOURCE_2") {
|
||||||
filteredSources.push(item)
|
filteredSources.push(item)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.$auth.hasRoleOr(["CLUB_MANAGER", "CLUB_PRESIDENT"])) {
|
if (this.$auth.hasPermission("h5.unionReimburse.club")) {
|
||||||
this.reimburseFundSourceColumns.map(item => {
|
this.reimburseFundSourceColumns.forEach(item => {
|
||||||
if (item.value === "UNION_REIMBURSE_FUND_SOURCE_3") {
|
if (item.value === "UNION_REIMBURSE_FUND_SOURCE_3") {
|
||||||
filteredSources.push(item)
|
filteredSources.push(item)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user