Merge remote-tracking branch 'origin/main'
This commit is contained in:
+7
-3
@@ -52,14 +52,18 @@ public class OutlayManageUnionController {
|
|||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("outlay.outlayManage.union.manage")
|
@SaCheckPermission("outlay.outlayManage.union.manage")
|
||||||
public Result pageData(PageForm pageForm, Integer year) {
|
public Result pageData(PageForm pageForm,
|
||||||
|
Integer year,
|
||||||
|
String unionId) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT * FROM `outlay_manage_union` $condition
|
SELECT * FROM `outlay_manage_union` $condition
|
||||||
""");
|
""");
|
||||||
cnd.andEX("year", "=", year);
|
cnd.andEX("year", "=", year);
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
cnd.andEX("unionId", "=", SecurityUtil.getUnionId());
|
cnd.andEX("unionId", "=", unionId);
|
||||||
|
} else {
|
||||||
|
cnd.and("unionId", "=", SecurityUtil.getUnionId());
|
||||||
}
|
}
|
||||||
cnd.asc("unionCode");
|
cnd.asc("unionCode");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
|
|||||||
+5
-2
@@ -105,8 +105,11 @@ public class UnionReimburseFundSourceInterceptor implements FlowInterceptor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// 处理未知的经费来源类型
|
if (reimburseFundSource == null) {
|
||||||
throw new BaseException("不支持的经费来源类型: " + reimburseFundSource);
|
throw new BaseException("经费来源类型不能为空");
|
||||||
|
} else {
|
||||||
|
throw new BaseException("不支持的经费来源类型: " + reimburseFundSource);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-1
@@ -20,6 +20,18 @@ layout("/layouts/platform.html"){
|
|||||||
value-format="yyyy">
|
value-format="yyyy">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
<search-item label="所属工会" v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])">
|
||||||
|
<el-select placeholder="请选择所属工会" v-model="pageForm.unionId"
|
||||||
|
style="width: 100%;"
|
||||||
|
clearable
|
||||||
|
@change="doSearch"
|
||||||
|
filterable>
|
||||||
|
<el-option v-for="item in unions"
|
||||||
|
:label="item.name"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</search-item>
|
||||||
</search>
|
</search>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card shadow="never" class="mt10">
|
<el-card shadow="never" class="mt10">
|
||||||
@@ -102,7 +114,8 @@ layout("/layouts/platform.html"){
|
|||||||
pageForm: {
|
pageForm: {
|
||||||
year: this.$moment().format("YYYY")
|
year: this.$moment().format("YYYY")
|
||||||
},
|
},
|
||||||
isAllocation: false
|
isAllocation: false,
|
||||||
|
unions: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
@@ -170,6 +183,7 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
|
this.unions = await this.$businessTool.listUnion()
|
||||||
this.getIsAllocation()
|
this.getIsAllocation()
|
||||||
this.pageData()
|
this.pageData()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -555,7 +555,7 @@ layout("/layouts/platform.html"){
|
|||||||
this.queryCondolenceType()
|
this.queryCondolenceType()
|
||||||
this.init()
|
this.init()
|
||||||
//社团查询
|
//社团查询
|
||||||
this.$businessTool.listClub().then((res) => (this.clubOptions = res))
|
this.$businessTool.listCLubByRole().then((res) => (this.clubOptions = res))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+1
-1
@@ -107,7 +107,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
{ prop: "sign", label: "签字" },
|
{ prop: "sign", label: "签字" },
|
||||||
{ prop: "taskName", label: "当前节点" },
|
{ prop: "curTaskName", label: "当前节点" },
|
||||||
{ prop: "instanceState", label: "流程状态" }
|
{ prop: "instanceState", label: "流程状态" }
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<table-column label="工号">{{row.loginName}}</table-column>
|
<table-column label="工号">{{row.loginName}}</table-column>
|
||||||
<table-column label="申请模式">{{row.mode ? '加入' : '退出'}}</table-column>
|
<table-column label="申请模式">{{row.mode ? '加入' : '退出'}}</table-column>
|
||||||
<table-column label="申请时间">{{row.applyDate}}</table-column>
|
<table-column label="申请时间">{{row.applyDate}}</table-column>
|
||||||
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{index,row}">
|
<template #actions="{index,row}">
|
||||||
<div class="action-btn" @click="onView(row)">
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
|||||||
+1
@@ -26,6 +26,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
:value="row.registrationType"></dict-tag>
|
:value="row.registrationType"></dict-tag>
|
||||||
</table-column>
|
</table-column>
|
||||||
<table-column label="填报时间">{{row.applyTime}}</table-column>
|
<table-column label="填报时间">{{row.applyTime}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{index,row}">
|
<template #actions="{index,row}">
|
||||||
<div class="action-btn" @click="onView(row)">
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
|||||||
+2
-1
@@ -34,6 +34,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
:value="row.registrationType"></dict-tag>
|
:value="row.registrationType"></dict-tag>
|
||||||
</table-column>
|
</table-column>
|
||||||
<table-column label="填报时间">{{row.applyTime}}</table-column>
|
<table-column label="填报时间">{{row.applyTime}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{index,row}">
|
<template #actions="{index,row}">
|
||||||
<div class="action-btn" @click="onView(row)">
|
<div class="action-btn" @click="onView(row)">
|
||||||
@@ -79,7 +80,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
<!-- 按钮区域 -->
|
<!-- 按钮区域 -->
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<van-button @click="handleTaskAction(6)">退回到发起人</van-button>
|
<van-button type="danger" @click="handleTaskAction(6)">退回到发起人</van-button>
|
||||||
<van-button type="danger" @click="handleTaskAction(2)">拒绝申请</van-button>
|
<van-button type="danger" @click="handleTaskAction(2)">拒绝申请</van-button>
|
||||||
<van-button type="primary" @click="handleTaskAction(1)">同意申请</van-button>
|
<van-button type="primary" @click="handleTaskAction(1)">同意申请</van-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+2
-1
@@ -36,6 +36,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
:value="row.registrationType"></dict-tag>
|
:value="row.registrationType"></dict-tag>
|
||||||
</table-column>
|
</table-column>
|
||||||
<table-column label="填报时间">{{row.applyTime}}</table-column>
|
<table-column label="填报时间">{{row.applyTime}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{index,row}">
|
<template #actions="{index,row}">
|
||||||
<div class="action-btn" @click="onView(row)">
|
<div class="action-btn" @click="onView(row)">
|
||||||
@@ -81,7 +82,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
<!-- 按钮区域 -->
|
<!-- 按钮区域 -->
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<van-button @click="handleTaskAction(6)">退回到发起人</van-button>
|
<van-button type="danger" @click="handleTaskAction(6)">退回到发起人</van-button>
|
||||||
<van-button type="danger" @click="handleTaskAction(2)">拒绝申请</van-button>
|
<van-button type="danger" @click="handleTaskAction(2)">拒绝申请</van-button>
|
||||||
<van-button type="primary" @click="handleTaskAction(1)">同意申请</van-button>
|
<van-button type="primary" @click="handleTaskAction(1)">同意申请</van-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+169
-23
@@ -24,7 +24,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
placeholder="请选择报销类别"
|
placeholder="请选择报销类别"
|
||||||
@click="showReimburseTypePicker = true"
|
@click="showReimburseTypePicker = true"
|
||||||
clickable
|
clickable
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showReimburseTypePicker">
|
<van-popup position="bottom" round v-model:show="showReimburseTypePicker">
|
||||||
@@ -41,7 +40,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
placeholder="请选择支付方式"
|
placeholder="请选择支付方式"
|
||||||
@click="showPaymentWayPicker = true"
|
@click="showPaymentWayPicker = true"
|
||||||
clickable
|
clickable
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showPaymentWayPicker">
|
<van-popup position="bottom" round v-model:show="showPaymentWayPicker">
|
||||||
@@ -58,7 +56,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
placeholder="请选择报销项目"
|
placeholder="请选择报销项目"
|
||||||
@click="showReimburseProjectPicker = true"
|
@click="showReimburseProjectPicker = true"
|
||||||
clickable
|
clickable
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showReimburseProjectPicker">
|
<van-popup position="bottom" round v-model:show="showReimburseProjectPicker">
|
||||||
@@ -75,7 +72,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
placeholder="请选择报销经费来源"
|
placeholder="请选择报销经费来源"
|
||||||
@click="showReimburseFundSourcePicker = true"
|
@click="showReimburseFundSourcePicker = true"
|
||||||
clickable
|
clickable
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showReimburseFundSourcePicker">
|
<van-popup position="bottom" round v-model:show="showReimburseFundSourcePicker">
|
||||||
@@ -95,6 +91,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
readonly
|
readonly
|
||||||
@click="showClubPicker = true"
|
@click="showClubPicker = true"
|
||||||
clickable
|
clickable
|
||||||
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showClubPicker">
|
<van-popup position="bottom" round v-model:show="showClubPicker">
|
||||||
<van-picker :columns="clubColumns" @cancel="showClubPicker = false" @confirm="onClubConfirm"
|
<van-picker :columns="clubColumns" @cancel="showClubPicker = false" @confirm="onClubConfirm"
|
||||||
@@ -108,23 +105,21 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-field label="户名"
|
<van-field label="户名"
|
||||||
v-model="formData.bankUserName"
|
v-model="formData.bankUserName"
|
||||||
placeholder="请输入户名"
|
placeholder="请输入户名"
|
||||||
:rules="[{ required: true }]"
|
required
|
||||||
required>
|
>
|
||||||
|
|
||||||
</van-field>
|
</van-field>
|
||||||
<van-field label="银行账号"
|
<van-field label="银行账号"
|
||||||
v-model="formData.bankCardNumber"
|
v-model="formData.bankCardNumber"
|
||||||
placeholder="请输入银行账号"
|
placeholder="请输入银行账号"
|
||||||
:rules="[{ required: true }]"
|
required
|
||||||
required>
|
>
|
||||||
|
|
||||||
</van-field>
|
</van-field>
|
||||||
<van-field label="开户行"
|
<van-field label="开户行"
|
||||||
v-model="formData.bankOfDeposit"
|
v-model="formData.bankOfDeposit"
|
||||||
placeholder="请输入开户行"
|
placeholder="请输入开户行"
|
||||||
:rules="[{ required: true }]"
|
required
|
||||||
required>
|
>
|
||||||
|
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
<!-- 将原有的慰问对象字段替换为以下代码 -->
|
<!-- 将原有的慰问对象字段替换为以下代码 -->
|
||||||
@@ -136,6 +131,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
readonly
|
readonly
|
||||||
@click="showCondolenceSearch = true"
|
@click="showCondolenceSearch = true"
|
||||||
clickable
|
clickable
|
||||||
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
|
|
||||||
<!-- 添加搜索弹窗 -->
|
<!-- 添加搜索弹窗 -->
|
||||||
@@ -178,6 +174,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
placeholder="请选择慰问类型"
|
placeholder="请选择慰问类型"
|
||||||
@click="showCondolenceTypePicker = true"
|
@click="showCondolenceTypePicker = true"
|
||||||
clickable
|
clickable
|
||||||
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showCondolenceTypePicker">
|
<van-popup position="bottom" round v-model:show="showCondolenceTypePicker">
|
||||||
<van-picker :columns="condolenceTypeColumns" @cancel="showCondolenceTypePicker = false"
|
<van-picker :columns="condolenceTypeColumns" @cancel="showCondolenceTypePicker = false"
|
||||||
@@ -194,7 +191,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
readonly
|
readonly
|
||||||
@click="showCondolenceTimePicker = true"
|
@click="showCondolenceTimePicker = true"
|
||||||
clickable
|
clickable
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showCondolenceTimePicker">
|
<van-popup position="bottom" round v-model:show="showCondolenceTimePicker">
|
||||||
@@ -210,8 +206,11 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</template>
|
</template>
|
||||||
<!-- 活动相关字段 (当报销项目不为慰问时显示) -->
|
<!-- 活动相关字段 (当报销项目不为慰问时显示) -->
|
||||||
<template v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
<template v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||||
<van-field label="活动名称" v-model="formData.activityName"
|
<van-field label="活动名称"
|
||||||
placeholder="请输入活动名称"></van-field>
|
v-model="formData.activityName"
|
||||||
|
placeholder="请输入活动名称"
|
||||||
|
required
|
||||||
|
></van-field>
|
||||||
|
|
||||||
<!-- 活动类型 (当报销项目为活动时显示) -->
|
<!-- 活动类型 (当报销项目为活动时显示) -->
|
||||||
<van-field
|
<van-field
|
||||||
@@ -222,6 +221,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
readonly
|
readonly
|
||||||
@click="showActivityTypePicker = true"
|
@click="showActivityTypePicker = true"
|
||||||
clickable
|
clickable
|
||||||
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showActivityTypePicker">
|
<van-popup position="bottom" round v-model:show="showActivityTypePicker">
|
||||||
<van-picker :columns="activityTypeColumns" @cancel="showActivityTypePicker = false"
|
<van-picker :columns="activityTypeColumns" @cancel="showActivityTypePicker = false"
|
||||||
@@ -235,12 +235,13 @@ layout("/layouts/platform_h5.html"){
|
|||||||
v-model="formData.activityNumber"
|
v-model="formData.activityNumber"
|
||||||
placeholder="请输入活动人数"
|
placeholder="请输入活动人数"
|
||||||
type="number"
|
type="number"
|
||||||
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
|
|
||||||
<van-field label="活动地点" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'"
|
<van-field label="活动地点" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'"
|
||||||
v-model="formData.activityPlace" placeholder="请输入活动地点"></van-field>
|
v-model="formData.activityPlace" placeholder="请输入活动地点" required></van-field>
|
||||||
<van-field label="报销金额" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'"
|
<van-field label="报销金额" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'"
|
||||||
v-model="formData.money" placeholder="请输入报销金额" type="number"></van-field>
|
v-model="formData.money" placeholder="请输入报销金额" type="number" required></van-field>
|
||||||
<van-field
|
<van-field
|
||||||
label="活动时间"
|
label="活动时间"
|
||||||
v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'"
|
v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'"
|
||||||
@@ -249,6 +250,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
readonly
|
readonly
|
||||||
@click="showActivityTimePicker = true"
|
@click="showActivityTimePicker = true"
|
||||||
clickable
|
clickable
|
||||||
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-popup position="bottom" round v-model:show="showActivityTimePicker">
|
<van-popup position="bottom" round v-model:show="showActivityTimePicker">
|
||||||
<van-datetime-picker
|
<van-datetime-picker
|
||||||
@@ -268,16 +270,14 @@ layout("/layouts/platform_h5.html"){
|
|||||||
v-model="formData.invoiceNumber"
|
v-model="formData.invoiceNumber"
|
||||||
placeholder="请输入发票张数"
|
placeholder="请输入发票张数"
|
||||||
type="number"
|
type="number"
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
</van-field>
|
</van-field>
|
||||||
<van-field label="发票号码"
|
<van-field label="发票号码"
|
||||||
v-model="formData.invoice"
|
v-model="formData.invoice"
|
||||||
placeholder="请填写发票号码,如有多个请用逗号分隔"
|
placeholder="请填写发票号码,如有多个请用逗号分隔"
|
||||||
:rules="[{ required: true }]"
|
required
|
||||||
required>
|
>
|
||||||
|
|
||||||
</van-field>
|
</van-field>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -288,7 +288,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
placeholder="请填写支付内容"
|
placeholder="请填写支付内容"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
:rules="[{ required: true }]"
|
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
|
|
||||||
@@ -477,6 +476,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
},
|
},
|
||||||
// 提交
|
// 提交
|
||||||
async onSubmit() {
|
async onSubmit() {
|
||||||
|
// 自定义验证
|
||||||
|
if (!this.validateForm()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 余额校验
|
// 余额校验
|
||||||
if (this.formData.money && this.formData.fundBalance) {
|
if (this.formData.money && this.formData.fundBalance) {
|
||||||
const balance = parseFloat(this.formData.fundBalance);
|
const balance = parseFloat(this.formData.fundBalance);
|
||||||
@@ -503,6 +506,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
},
|
},
|
||||||
// 再次提交
|
// 再次提交
|
||||||
async onSubmitAgain() {
|
async onSubmitAgain() {
|
||||||
|
// 自定义验证
|
||||||
|
if (!this.validateForm()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 余额校验
|
// 余额校验
|
||||||
if (this.formData.money && this.formData.fundBalance) {
|
if (this.formData.money && this.formData.fundBalance) {
|
||||||
const balance = parseFloat(this.formData.fundBalance);
|
const balance = parseFloat(this.formData.fundBalance);
|
||||||
@@ -530,6 +537,145 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$toast.fail('网络错误,请稍后重试');
|
this.$toast.fail('网络错误,请稍后重试');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 自定义表单验证方法
|
||||||
|
validateForm() {
|
||||||
|
// 按照表单字段出现顺序进行验证
|
||||||
|
|
||||||
|
// 经办人信息(只读,不验证)
|
||||||
|
|
||||||
|
// 报销类别
|
||||||
|
if (!this.formData.reimburseType) {
|
||||||
|
this.$toast.fail("请选择报销类别");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付方式
|
||||||
|
if (!this.formData.paymentWay) {
|
||||||
|
this.$toast.fail("请选择支付方式");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 报销项目
|
||||||
|
if (!this.formData.reimburseProject) {
|
||||||
|
this.$toast.fail("请选择报销项目");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 报销经费来源
|
||||||
|
if (!this.formData.reimburseFundSource) {
|
||||||
|
this.$toast.fail("请选择报销经费来源");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 联系方式
|
||||||
|
// (非必填,不验证)
|
||||||
|
|
||||||
|
// 所属社团(条件显示)
|
||||||
|
if (this.formData.reimburseFundSource === 'UNION_REIMBURSE_FUND_SOURCE_3') {
|
||||||
|
if (!this.formData.clubId) {
|
||||||
|
this.$toast.fail("请选择所属社团");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 银行信息
|
||||||
|
if (!this.formData.bankUserName) {
|
||||||
|
this.$toast.fail("请填写户名");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.bankCardNumber) {
|
||||||
|
this.$toast.fail("请填写银行账号");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.bankOfDeposit) {
|
||||||
|
this.$toast.fail("请填写开户行");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 慰问相关字段
|
||||||
|
if (this.formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1') {
|
||||||
|
if (!this.formData.condolenceName) {
|
||||||
|
this.$toast.fail("请选择慰问对象");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.condolenceMobile) {
|
||||||
|
this.$toast.fail("请填写慰问对象联系方式");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.condolenceType) {
|
||||||
|
this.$toast.fail("请选择慰问类型");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.condolenceTime) {
|
||||||
|
this.$toast.fail("请选择慰问时间");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.money) {
|
||||||
|
this.$toast.fail("慰问金额不能为空");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 活动相关字段
|
||||||
|
if (this.formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1') {
|
||||||
|
if (!this.formData.activityName) {
|
||||||
|
this.$toast.fail("请填写活动名称");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 活动类型(条件显示)
|
||||||
|
if (this.formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2') {
|
||||||
|
if (!this.formData.activityType) {
|
||||||
|
this.$toast.fail("请选择活动类型");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.activityNumber) {
|
||||||
|
this.$toast.fail("请填写活动人数");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.activityPlace) {
|
||||||
|
this.$toast.fail("请填写活动地点");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.activityTime) {
|
||||||
|
this.$toast.fail("请选择活动时间");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.formData.money) {
|
||||||
|
this.$toast.fail("请填写报销金额");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发票相关字段
|
||||||
|
if (this.formData.reimburseType === 'UNION_REIMBURSE_TYPE_1') {
|
||||||
|
if (!this.formData.invoiceNumber) {
|
||||||
|
this.$toast.fail("请填写发票张数");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.formData.invoice) {
|
||||||
|
this.$toast.fail("请填写发票号码");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付内容
|
||||||
|
if (!this.formData.paymentNotes) {
|
||||||
|
this.$toast.fail("请填写支付内容");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 附件(非必填,不验证)
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
,
|
||||||
onReimburseTypeConfirm(o) {
|
onReimburseTypeConfirm(o) {
|
||||||
this.$set(this.formData, "reimburseTypeName", o.text); // 显示名称
|
this.$set(this.formData, "reimburseTypeName", o.text); // 显示名称
|
||||||
this.$set(this.formData, "reimburseType", o.value); // 字典值
|
this.$set(this.formData, "reimburseType", o.value); // 字典值
|
||||||
@@ -674,7 +820,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
|
|
||||||
// 查询社团
|
// 查询社团
|
||||||
queryClubs() {
|
queryClubs() {
|
||||||
this.$businessTool.listClub().then((res) => {
|
this.$businessTool.listCLubByRole().then((res) => {
|
||||||
this.clubOptions = res;
|
this.clubOptions = res;
|
||||||
this.clubColumns = res.map(item => {
|
this.clubColumns = res.map(item => {
|
||||||
return {text: item.clubName, value: item.id}
|
return {text: item.clubName, value: item.id}
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</dict-tag>
|
</dict-tag>
|
||||||
</table-column>
|
</table-column>
|
||||||
<table-column label="金额">{{row.money}}</table-column>
|
<table-column label="金额">{{row.money}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{index,row}">
|
<template #actions="{index,row}">
|
||||||
<div class="action-btn" @click="onView(row)">
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</dict-tag>
|
</dict-tag>
|
||||||
</table-column>
|
</table-column>
|
||||||
<table-column label="金额">{{row.money}}</table-column>
|
<table-column label="金额">{{row.money}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{index,row}">
|
<template #actions="{index,row}">
|
||||||
<div class="action-btn" @click="onView(row)">
|
<div class="action-btn" @click="onView(row)">
|
||||||
@@ -80,7 +80,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
<!-- 按钮区域 -->
|
<!-- 按钮区域 -->
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<van-button @click="handleTaskAction(6)">退回到发起人</van-button>
|
<van-button type="danger" @click="handleTaskAction(6)">退回到发起人</van-button>
|
||||||
<van-button type="danger" @click="handleTaskAction(2)">拒绝申请</van-button>
|
<van-button type="danger" @click="handleTaskAction(2)">拒绝申请</van-button>
|
||||||
<van-button type="primary" @click="handleTaskAction(1)">同意申请</van-button>
|
<van-button type="primary" @click="handleTaskAction(1)">同意申请</van-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||||
<van-button block type="primary" @click.submit="onSave">保存</van-button>
|
<van-button block type="primary" @click.submit="onSave">保存</van-button>
|
||||||
<van-button v-if="!taskId" block type="primary" @click.submit="onSubmit">提交</van-button>
|
<van-button v-if="!taskId" block type="primary" @click.submit="onSubmit">提交</van-button>
|
||||||
<van-button v-else block type="primary" @click.submit="onFinishTask">提交</van-button>
|
<van-button v-else block type="primary" @click.submit="onFinishTask">提交1</van-button>
|
||||||
</div>
|
</div>
|
||||||
</van-form>
|
</van-form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user