feat: 优化人员拉取和数据字典部分4
This commit is contained in:
+1
@@ -127,6 +127,7 @@ public class CondolenceApplyController {
|
|||||||
username as userName,
|
username as userName,
|
||||||
loginname as loginName,
|
loginname as loginName,
|
||||||
sex,
|
sex,
|
||||||
|
mobile,
|
||||||
technicalTitle,
|
technicalTitle,
|
||||||
IFNULL(unitname, '暂无') as unitName,
|
IFNULL(unitname, '暂无') as unitName,
|
||||||
unitid as unitId,
|
unitid as unitId,
|
||||||
|
|||||||
+4
@@ -184,6 +184,10 @@ public class DifficultHelpApplyController {
|
|||||||
birthday,
|
birthday,
|
||||||
mobile,
|
mobile,
|
||||||
sex,
|
sex,
|
||||||
|
idCard,
|
||||||
|
position,
|
||||||
|
professionalTitle AS officialCapacity,
|
||||||
|
(SELECT u.homeAddress FROM sys_user u WHERE u.id = vw_user.id) AS homeAddress,
|
||||||
unitName,
|
unitName,
|
||||||
unionName,
|
unionName,
|
||||||
unionId,
|
unionId,
|
||||||
|
|||||||
+9
-2
@@ -1,6 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.staffbenefit.difficulthelp.controller;
|
package com.budwk.app.zhgh.staffbenefit.difficulthelp.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
@@ -68,6 +69,7 @@ public class DifficultHelpMineController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
info.id,
|
info.id,
|
||||||
|
info.createdBy,
|
||||||
info.proxyUserName,
|
info.proxyUserName,
|
||||||
info.proxyLoginName,
|
info.proxyLoginName,
|
||||||
info.userName,
|
info.userName,
|
||||||
@@ -103,7 +105,8 @@ public class DifficultHelpMineController {
|
|||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
pageParam.buildSearch(cnd, "info.");
|
pageParam.buildSearch(cnd, "info.");
|
||||||
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
|
cnd.and(Cnd.exps("info.createdBy", "=", SecurityUtil.getUserId())
|
||||||
|
.or("info.userId", "=", SecurityUtil.getUserId()));
|
||||||
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
|
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
|
||||||
cnd.desc("info.applyTime");
|
cnd.desc("info.applyTime");
|
||||||
} else {
|
} else {
|
||||||
@@ -121,6 +124,10 @@ public class DifficultHelpMineController {
|
|||||||
@SaCheckPermission("difficultHelp.mine")
|
@SaCheckPermission("difficultHelp.mine")
|
||||||
@SLog(tag = "困难补助申请", msg = "删除困难补助申请,id: ${args[0]}")
|
@SLog(tag = "困难补助申请", msg = "删除困难补助申请,id: ${args[0]}")
|
||||||
public Result onDelete(@Valid String id){
|
public Result onDelete(@Valid String id){
|
||||||
|
DifficultHelpInfo helpInfo = dao.fetch(DifficultHelpInfo.class, id);
|
||||||
|
if (helpInfo == null || !SecurityUtil.getUserId().equals(helpInfo.getCreatedBy())) {
|
||||||
|
return Result.error("只能删除自己创建的申请记录");
|
||||||
|
}
|
||||||
dao.clear(DifficultHelpInfo.class, Cnd.where("id", "=", id));
|
dao.clear(DifficultHelpInfo.class, Cnd.where("id", "=", id));
|
||||||
// 删除流程相关操作
|
// 删除流程相关操作
|
||||||
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
|
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
|
||||||
@@ -130,7 +137,7 @@ public class DifficultHelpMineController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiModelProperty("获取困难补助申请")
|
@ApiModelProperty("获取困难补助申请")
|
||||||
@SaCheckPermission("difficultHelp.mine")
|
@SaCheckPermission(value = {"difficultHelp.mine", "difficultHelp.reading"}, mode = SaMode.OR)
|
||||||
public Result findOne(String id) {
|
public Result findOne(String id) {
|
||||||
DifficultHelpInfo helpInfo = dao.fetch(DifficultHelpInfo.class, id);
|
DifficultHelpInfo helpInfo = dao.fetch(DifficultHelpInfo.class, id);
|
||||||
return Result.success().addData(helpInfo);
|
return Result.success().addData(helpInfo);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>-->
|
</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="证明人">
|
<!-- <el-descriptions-item label="证明人">
|
||||||
<el-form-item prop="certifierUserId" label="证明人">
|
<el-form-item prop="certifierUserId" label="证明人">
|
||||||
<el-select
|
<el-select
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@@ -75,7 +75,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item> -->
|
||||||
<el-descriptions-item label="慰问类型">
|
<el-descriptions-item label="慰问类型">
|
||||||
<el-form-item prop="type" label="慰问类型">
|
<el-form-item prop="type" label="慰问类型">
|
||||||
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
|
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
|
||||||
@@ -112,14 +112,14 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="收款账户">
|
<el-descriptions-item label="收款账户" v-if="!['A', 'D'].includes(formData.typeCode)">
|
||||||
<el-form-item prop="bankCardNumber" label="收款账户">
|
<el-form-item prop="bankCardNumber" label="收款账户">
|
||||||
<el-input maxlength="20" v-model="formData.bankCardNumber" placeholder="请填写收款账户"
|
<el-input maxlength="30" v-model="formData.bankCardNumber" placeholder="请填写银行卡号或对公账户号"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="户名">
|
<el-descriptions-item label="户名" v-if="!['A', 'D'].includes(formData.typeCode)">
|
||||||
<el-form-item prop="bankUserName" label="户名">
|
<el-form-item prop="bankUserName" label="户名">
|
||||||
<el-input maxlength="20" v-model="formData.bankUserName"
|
<el-input maxlength="20" v-model="formData.bankUserName"
|
||||||
placeholder="请填写户名"
|
placeholder="请填写户名"
|
||||||
@@ -127,7 +127,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="开户行" >
|
<el-descriptions-item label="开户行" v-if="!['A', 'D'].includes(formData.typeCode)">
|
||||||
<el-form-item prop="bankOfDeposit" label="开户行">
|
<el-form-item prop="bankOfDeposit" label="开户行">
|
||||||
<el-input maxlength="20" v-model="formData.bankOfDeposit"
|
<el-input maxlength="20" v-model="formData.bankOfDeposit"
|
||||||
placeholder="请填写开户行"
|
placeholder="请填写开户行"
|
||||||
@@ -173,10 +173,12 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="3" border>
|
||||||
<el-descriptions-item label="申请事由" :span="3">
|
<el-descriptions-item label="申请事由" :span="3">
|
||||||
<el-form-item prop="remark" label="申请事由">
|
<el-form-item prop="remark" label="申请事由">
|
||||||
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
|
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
|
||||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
type="textarea" :rows="3" resize="none"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
@@ -219,6 +221,15 @@ layout("/layouts/platform.html"){
|
|||||||
new Vue({
|
new Vue({
|
||||||
el: "#app",
|
el: "#app",
|
||||||
store,
|
store,
|
||||||
|
components: {
|
||||||
|
ElDatePicker: {
|
||||||
|
extends: ELEMENT.DatePicker,
|
||||||
|
mounted() {
|
||||||
|
// 手动输入触发 change 前初始化日期面板,避免 picker 尚未创建。
|
||||||
|
if (!this.picker) this.mountPicker()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
bizId: GetQueryString("bizId"),
|
bizId: GetQueryString("bizId"),
|
||||||
@@ -229,7 +240,10 @@ layout("/layouts/platform.html"){
|
|||||||
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
money: [
|
||||||
|
{ required: true, message: "请填写慰问金额", trigger: ["change", "blur"] },
|
||||||
|
{ validator: (rule, value, callback) => callback(this.validateMoney(value) ? undefined : new Error("慰问金额须大于0且不超过10000元,最多两位小数")), trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
@@ -238,14 +252,20 @@ layout("/layouts/platform.html"){
|
|||||||
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
files: [{ required: true, type: "array", min: 1, max: 5, message: "请上传1至5个附件", trigger: ["change", "blur"] }],
|
||||||
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
handlerUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
handlerUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
certifierUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
// certifierUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
bankCardNumber: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
bankCardNumber: [
|
||||||
|
{ required: true, message: "请填写银行卡号或对公账户号", trigger: ["change", "blur"] },
|
||||||
|
{ pattern: /^[0-9]{6,30}$/, message: "收款账户须为6至30位数字(银行卡号或对公账户号)", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
bankUserName: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
bankUserName: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
bankOfDeposit: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
bankOfDeposit: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
thisYearHospitalizationNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
thisYearHospitalizationNum: [
|
||||||
|
{ required: true, message: "必填", trigger: ["change", "blur"] },
|
||||||
|
{ type: "integer", min: 0, max: 10000, message: "住院次数须为0至10000的整数", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
leaveHospitalTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
leaveHospitalTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
hospitalizationTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospitalizationTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
},
|
},
|
||||||
@@ -259,6 +279,9 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
validateMoney(value) {
|
||||||
|
return /^(0|[1-9][0-9]*)(\.[0-9]{1,2})?$/.test(String(value)) && Number(value) > 0 && Number(value) <= 10000
|
||||||
|
},
|
||||||
createRemoteMethod(options) {
|
createRemoteMethod(options) {
|
||||||
return (keyword) => {
|
return (keyword) => {
|
||||||
this.selectQueryUser(keyword, options)
|
this.selectQueryUser(keyword, options)
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ const condolenceInfo = {
|
|||||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||||
:value="task.ext.submitType"></dict-tag>
|
:value="task.ext.submitType"></dict-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="审批签字" :span="3" v-if="task.taskFormData && task.taskFormData.sign">
|
||||||
|
<el-image :src="task.taskFormData.sign" style="height: 80px" fit="contain"></el-image>
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{
|
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{
|
||||||
task.taskFormData.opinion }}
|
task.taskFormData.opinion }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|||||||
@@ -37,12 +37,12 @@ const basicForm = {
|
|||||||
<el-radio-button :label="false">不上传</el-radio-button>
|
<el-radio-button :label="false">不上传</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>-->
|
</el-form-item>-->
|
||||||
<!-- <el-form-item label="是否上传附件" prop="isUploadFile">-->
|
<el-form-item label="是否上传附件" prop="isUploadFile">
|
||||||
<!-- <el-radio-group v-model="formData.isUploadFile">-->
|
<el-radio-group v-model="formData.isUploadFile">
|
||||||
<!-- <el-radio-button :label="true">是</el-radio-button>-->
|
<el-radio-button :label="true">是</el-radio-button>
|
||||||
<!-- <el-radio-button :label="false">否</el-radio-button>-->
|
<el-radio-button :label="false">否</el-radio-button>
|
||||||
<!-- </el-radio-group>-->
|
</el-radio-group>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<el-form-item label="上传附件说明" prop="uploadFileDesc" v-if="formData.isUploadFile">
|
<el-form-item label="上传附件说明" prop="uploadFileDesc" v-if="formData.isUploadFile">
|
||||||
<el-input v-model="formData.uploadFileDesc" maxlength="50" clearable placeholder="请填写上传附件说明"></el-input>
|
<el-input v-model="formData.uploadFileDesc" maxlength="50" clearable placeholder="请填写上传附件说明"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
@change="modeChange"
|
@change="modeChange"
|
||||||
:disabled="formData.id" style="width: 100%">
|
:disabled="formData.id" style="width: 100%">
|
||||||
<el-option label="本人申请" value="1"></el-option>
|
<el-option label="本人申请" value="1"></el-option>
|
||||||
<el-option v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
|
<el-option v-if="$auth.hasRoleOr('BRANCH_UNION_CHAIRMAN')"
|
||||||
label="替他人申请" value="2"></el-option>
|
label="替他人申请" value="2"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -263,6 +263,9 @@
|
|||||||
methods: {
|
methods: {
|
||||||
// 查询受助人
|
// 查询受助人
|
||||||
queryRecipients(key) {
|
queryRecipients(key) {
|
||||||
|
if (String(this.formData.mode) !== "2" || !this.$auth.hasRoleOr('BRANCH_UNION_CHAIRMAN')) {
|
||||||
|
return
|
||||||
|
}
|
||||||
this.$axios.get("/platform/difficultHelp/apply/queryRecipients", {
|
this.$axios.get("/platform/difficultHelp/apply/queryRecipients", {
|
||||||
key
|
key
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
@@ -417,10 +420,10 @@
|
|||||||
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
||||||
this.$set(this.formData, 'mode', "1")
|
this.$set(this.formData, 'mode', "1")
|
||||||
this.$set(this.formData, 'sex', user.sex)
|
this.$set(this.formData, 'sex', user.sex)
|
||||||
this.$set(this.formData, 'unitId', user.unit.id)
|
this.$set(this.formData, 'unitId', (user.unit || {}).id || user.unitId || null)
|
||||||
this.$set(this.formData, 'unitName', user.unit.name)
|
this.$set(this.formData, 'unitName', (user.unit || {}).name || '')
|
||||||
this.$set(this.formData, 'unionId', user.union.id)
|
this.$set(this.formData, 'unionId', (user.union || {}).id || (user.unit || {}).unionId || null)
|
||||||
this.$set(this.formData, 'unionName', user.union.name)
|
this.$set(this.formData, 'unionName', (user.union || {}).name || '')
|
||||||
this.$set(this.formData, 'monthlyIncome', null)
|
this.$set(this.formData, 'monthlyIncome', null)
|
||||||
this.$set(this.formData, 'birthday', user.birthday)
|
this.$set(this.formData, 'birthday', user.birthday)
|
||||||
this.$set(this.formData, 'mobile', user.mobile)
|
this.$set(this.formData, 'mobile', user.mobile)
|
||||||
|
|||||||
+97
-68
@@ -1,8 +1,9 @@
|
|||||||
<!--#
|
<!--#
|
||||||
layout("/layouts/platform.html"){
|
layout("/layouts/platform.html"){
|
||||||
#-->
|
#-->
|
||||||
<div id="app">
|
<div id="app" v-cloak>
|
||||||
<el-card shadow="never" v-if="isShow">
|
<el-card shadow="never" v-if="pageLoading" v-loading="pageLoading" element-loading-text="正在加载申请信息" style="min-height: 300px"></el-card>
|
||||||
|
<el-card shadow="never" v-else-if="isShow">
|
||||||
<snaker-start slot="header" label="困难帮扶申请" define_key="KNBF"></snaker-start>
|
<snaker-start slot="header" label="困难帮扶申请" define_key="KNBF"></snaker-start>
|
||||||
<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="0" label-suffix=":" class="flow-task-form">
|
||||||
<el-descriptions :column="3" border>
|
<el-descriptions :column="3" border>
|
||||||
@@ -15,7 +16,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-form-item prop="mode">
|
<el-form-item prop="mode">
|
||||||
<el-select v-model="formData.mode" placeholder="申请模式" @change="modeChange" style="width: 100%">
|
<el-select v-model="formData.mode" placeholder="申请模式" @change="modeChange" style="width: 100%">
|
||||||
<el-option label="本人申请" value="1"></el-option>
|
<el-option label="本人申请" value="1"></el-option>
|
||||||
<el-option v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
|
<el-option v-if="canApplyForOthers"
|
||||||
label="替他人申请" value="2"></el-option>
|
label="替他人申请" value="2"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -26,7 +27,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="受补助人">
|
<el-descriptions-item label="受补助人">
|
||||||
<el-form-item prop="userName">
|
<el-form-item prop="userId">
|
||||||
<template v-if="formData.mode == 2">
|
<template v-if="formData.mode == 2">
|
||||||
<el-select :remote-method="queryRecipients"
|
<el-select :remote-method="queryRecipients"
|
||||||
@change="userChange" clearable filterable
|
@change="userChange" clearable filterable
|
||||||
@@ -51,7 +52,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="身份证号" :span="2">
|
<el-descriptions-item label="身份证号" :span="2">
|
||||||
<el-form-item prop="idCard">
|
<el-form-item prop="idCard">
|
||||||
<el-input maxlength="20" clearable placeholder="请填写身份证号"
|
<el-input clearable placeholder="请填写身份证号"
|
||||||
v-model="formData.idCard" maxlength="18"></el-input>
|
v-model="formData.idCard" maxlength="18"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
@@ -84,7 +85,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-descriptions-item label="手机号码">
|
<el-descriptions-item label="手机号码">
|
||||||
<el-form-item prop="mobile">
|
<el-form-item prop="mobile">
|
||||||
<el-input maxlength="11" clearable placeholder="请填写手机号码"
|
<el-input maxlength="11" clearable placeholder="请填写手机号码"
|
||||||
v-model="formData.mobile" maxlength="11"></el-input>
|
v-model="formData.mobile"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="家庭年总收入(万元)">
|
<el-descriptions-item label="家庭年总收入(万元)">
|
||||||
@@ -103,6 +104,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.homeNumber"
|
v-model="formData.homeNumber"
|
||||||
:min="1"
|
:min="1"
|
||||||
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="请填写家庭人数">
|
placeholder="请填写家庭人数">
|
||||||
@@ -113,7 +115,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-form-item prop="homeAddress">
|
<el-form-item prop="homeAddress">
|
||||||
<el-input clearable
|
<el-input clearable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="formData.homeAddress"
|
v-model="formData.homeAddress" maxlength="200"
|
||||||
placeholder="请填写家庭住址">
|
placeholder="请填写家庭住址">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -132,7 +134,7 @@ layout("/layouts/platform.html"){
|
|||||||
<!-- </el-descriptions-item>-->
|
<!-- </el-descriptions-item>-->
|
||||||
<el-descriptions-item label="银行卡号" >
|
<el-descriptions-item label="银行卡号" >
|
||||||
<el-form-item prop="bankCardNum">
|
<el-form-item prop="bankCardNum">
|
||||||
<el-input maxlength="20" clearable placeholder="请填写银行卡号"
|
<el-input maxlength="19" clearable placeholder="请填写银行卡号"
|
||||||
v-model="formData.bankCardNum"></el-input>
|
v-model="formData.bankCardNum"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
@@ -193,8 +195,8 @@ layout("/layouts/platform.html"){
|
|||||||
<template slot-scope="{row,$index}">
|
<template slot-scope="{row,$index}">
|
||||||
<el-form-item label-width="0"
|
<el-form-item label-width="0"
|
||||||
:prop="'familyList.'+$index+'.relation'"
|
:prop="'familyList.'+$index+'.relation'"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="textRules('与本人关系', 50)">
|
||||||
<el-input v-model="row.relation" placeholder="请填写与本人关系" clearable></el-input>
|
<el-input v-model="row.relation" maxlength="50" placeholder="请填写与本人关系" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -202,8 +204,8 @@ layout("/layouts/platform.html"){
|
|||||||
<template slot-scope="{row,$index}">
|
<template slot-scope="{row,$index}">
|
||||||
<el-form-item label-width="0"
|
<el-form-item label-width="0"
|
||||||
:prop="'familyList.'+$index+'.name'"
|
:prop="'familyList.'+$index+'.name'"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="textRules('姓名', 100)">
|
||||||
<el-input v-model="row.name" placeholder="请填写姓名" clearable></el-input>
|
<el-input v-model="row.name" maxlength="100" placeholder="请填写姓名" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -211,9 +213,9 @@ layout("/layouts/platform.html"){
|
|||||||
<template slot-scope="{row,$index}">
|
<template slot-scope="{row,$index}">
|
||||||
<el-form-item label-width="0"
|
<el-form-item label-width="0"
|
||||||
:prop="'familyList.'+$index+'.age'"
|
:prop="'familyList.'+$index+'.age'"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{required:true,type:'integer',min:1,max:100,message:'年龄须为1至100的整数',trigger:['change','blur']}]">
|
||||||
<el-input-number v-model="row.age" placeholder="年龄" :min="1"
|
<el-input-number v-model="row.age" placeholder="年龄" :min="1"
|
||||||
:max="100" :step="1" style="width: 100%" clearable></el-input-number>
|
:max="100" :precision="0" :step="1" style="width: 100%" clearable></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -221,8 +223,8 @@ layout("/layouts/platform.html"){
|
|||||||
<template slot-scope="{row,$index}">
|
<template slot-scope="{row,$index}">
|
||||||
<el-form-item label-width="0"
|
<el-form-item label-width="0"
|
||||||
:prop="'familyList.'+$index+'.homeUnit'"
|
:prop="'familyList.'+$index+'.homeUnit'"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="textRules('工作单位', 200)">
|
||||||
<el-input v-model="row.homeUnit" placeholder="请填写工作单位" clearable></el-input>
|
<el-input v-model="row.homeUnit" maxlength="200" placeholder="请填写工作单位" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -230,9 +232,9 @@ layout("/layouts/platform.html"){
|
|||||||
<template slot-scope="{row,$index}">
|
<template slot-scope="{row,$index}">
|
||||||
<el-form-item label-width="0"
|
<el-form-item label-width="0"
|
||||||
:prop="'familyList.'+$index+'.yearIncome'"
|
:prop="'familyList.'+$index+'.yearIncome'"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{validator:validateIncome,required:true,trigger:['change','blur']}]">
|
||||||
<el-input-number v-model="row.yearIncome" placeholder="年收入"
|
<el-input-number v-model="row.yearIncome" placeholder="年收入"
|
||||||
:min="0" :step="1" style="width: 100%" clearable></el-input-number>
|
:min="0" :precision="2" :step="1" style="width: 100%" clearable></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -240,8 +242,8 @@ layout("/layouts/platform.html"){
|
|||||||
<template slot-scope="{row,$index}">
|
<template slot-scope="{row,$index}">
|
||||||
<el-form-item label-width="0"
|
<el-form-item label-width="0"
|
||||||
:prop="'familyList.'+$index+'.remarks'"
|
:prop="'familyList.'+$index+'.remarks'"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="textRules('备注', 500)">
|
||||||
<el-input v-model="row.remarks" placeholder="请填写备注" clearable></el-input>
|
<el-input v-model="row.remarks" maxlength="500" placeholder="请填写备注" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -292,7 +294,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-card>
|
</el-card>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<el-card class="box-card" style="height: 92vh" shadow="never">
|
<el-card class="box-card" style="height: 92vh" shadow="never">
|
||||||
<el-result icon="warning" title="温馨提醒" subTitle="">
|
<el-result icon="warning" title="温馨提醒" sub-title="">
|
||||||
<template slot="extra">
|
<template slot="extra">
|
||||||
<span v-if="blockMessage">{{blockMessage}}</span>
|
<span v-if="blockMessage">{{blockMessage}}</span>
|
||||||
<span v-else>抱歉,当前时间不能申请,可申请时间为{{time}}。</span>
|
<span v-else>抱歉,当前时间不能申请,可申请时间为{{time}}。</span>
|
||||||
@@ -312,6 +314,7 @@ layout("/layouts/platform.html"){
|
|||||||
bizId: GetQueryString("bizId"),
|
bizId: GetQueryString("bizId"),
|
||||||
taskId: GetQueryString("taskId"),
|
taskId: GetQueryString("taskId"),
|
||||||
isShow: false,
|
isShow: false,
|
||||||
|
pageLoading: true,
|
||||||
time: '',
|
time: '',
|
||||||
blockMessage: '',
|
blockMessage: '',
|
||||||
formData: {
|
formData: {
|
||||||
@@ -320,30 +323,55 @@ layout("/layouts/platform.html"){
|
|||||||
applyCount: '1',
|
applyCount: '1',
|
||||||
},
|
},
|
||||||
formRules: {
|
formRules: {
|
||||||
proxyUserName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
proxyUserName: this.textRules('填写人姓名', 100),
|
||||||
proxyLoginName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
proxyLoginName: this.textRules('填写人工号', 100),
|
||||||
sex: [{required: true, message: '请填写性别', trigger: ['blur', 'change']}],
|
mode: [{required: true, type: 'enum', enum: ['1', '2'], message: '请选择申请模式', trigger: ['blur', 'change']}],
|
||||||
userName: [{required: true, message: '请填写受补助人', trigger: ['blur', 'change']}],
|
sex: [{required: true, type: 'enum', enum: ['男', '女'], message: '请选择性别', trigger: ['blur', 'change']}],
|
||||||
unitName: [{required: true, message: '请填写所属单位', trigger: ['blur', 'change']}],
|
userId: [{required: true, message: '请选择受补助人', trigger: ['blur', 'change']}],
|
||||||
|
unitName: this.textRules('所属单位', 500),
|
||||||
unionName: [{required: true, message: '请填写所属工会', trigger: ['blur', 'change']}],
|
unionName: [{required: true, message: '请填写所属工会', trigger: ['blur', 'change']}],
|
||||||
homeAddress: [{required: true, message: '请填写家庭住址', trigger: ['blur', 'change']}],
|
homeAddress: this.textRules('家庭住址', 200),
|
||||||
mobile: [{required: true, message: '请填写手机号码', trigger: ['blur', 'change']}],
|
mobile: [
|
||||||
idCard: [{required: true, message: '请填写身份证号', trigger: ['blur', 'change']}],
|
{required: true, message: '请填写手机号码', trigger: ['blur', 'change']},
|
||||||
bankCardNum: [{required: true, message: '请填写收款账户卡号', trigger: ['blur', 'change']}],
|
{pattern: /^1[3-9]\d{9}$/, message: '请输入正确的11位手机号码', trigger: ['blur', 'change']}
|
||||||
|
],
|
||||||
|
idCard: [{validator: (rule, value, callback) => {
|
||||||
|
const result = this.isValidIdCard(value || '')
|
||||||
|
callback(result.status === 0 ? new Error(result.msg) : undefined)
|
||||||
|
}, required: true, trigger: ['blur', 'change']}],
|
||||||
|
bankCardNum: [{validator: (rule, value, callback) => {
|
||||||
|
const result = this.validateCard(value || '')
|
||||||
|
callback(result.status === 0 ? new Error(result.msg) : undefined)
|
||||||
|
}, required: true, trigger: ['blur', 'change']}],
|
||||||
bankUserName: [{required: true, message: '请填写户名', trigger: ['blur', 'change']}],
|
bankUserName: [{required: true, message: '请填写户名', trigger: ['blur', 'change']}],
|
||||||
bankOfDeposit: [{required: true, message: '请填写开户行', trigger: ['blur', 'change']}],
|
bankOfDeposit: this.textRules('开户行', 30),
|
||||||
position: [{required: true, message: '请填写职务', trigger: ['blur', 'change']}],
|
position: this.textRules('职务', 20),
|
||||||
officialCapacity: [{required: true, message: '请填写职称', trigger: ['blur', 'change']}],
|
officialCapacity: this.textRules('职称', 20),
|
||||||
subsidyStandards: [{required: true, message: '请选择困难类型', trigger: ['blur', 'change']}],
|
homeIncome: [{validator: this.validateIncome, required: true, trigger: ['blur', 'change']}],
|
||||||
reason: [{required: true, message: '请填写申请原因', trigger: ['blur', 'change']}],
|
homeNumber: [{required: true, type: 'integer', min: 1, message: '家庭人数须为大于零的整数', trigger: ['blur', 'change']}],
|
||||||
sign: [{required: true, message: '请签字', trigger: ['blur', 'change']}]
|
subsidy: this.textRules('补助类型', 500),
|
||||||
|
subsidyStandards: this.textRules('困难类型', 500),
|
||||||
|
reason: this.textRules('生活致困原因', 500),
|
||||||
|
sign: [{required: true, whitespace: true, message: '请完成签字', trigger: ['blur', 'change']}],
|
||||||
},
|
},
|
||||||
|
|
||||||
// 替他人申请相关
|
// 替他人申请相关
|
||||||
subsidizedList: []
|
subsidizedList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
canApplyForOthers() {
|
||||||
|
return this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
textRules(label, max) {
|
||||||
|
return [{required: true, whitespace: true, max, message: '请填写' + label + ',且不超过' + max + '个字符', trigger: ['blur', 'change']}]
|
||||||
|
},
|
||||||
|
validateIncome(rule, value, callback) {
|
||||||
|
const valid = typeof value === 'number' && Number.isFinite(value) && value >= 0 && /^\d+(\.\d{1,2})?$/.test(String(value))
|
||||||
|
callback(valid ? undefined : new Error('收入须为不小于零的数字,最多保留两位小数'))
|
||||||
|
},
|
||||||
// 保存
|
// 保存
|
||||||
onSave() {
|
onSave() {
|
||||||
this.$confirm("您确定保存吗?", "提示", {
|
this.$confirm("您确定保存吗?", "提示", {
|
||||||
@@ -362,24 +390,13 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
// 提交
|
// 提交
|
||||||
async onSubmit() {
|
async onSubmit() {
|
||||||
this.$refs.formRef.validate().then((valid) => {
|
this.$refs.formRef.validate().catch(() => false).then((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$confirm("您确定要提交吗?", "提示", {
|
this.$confirm("您确定要提交吗?", "提示", {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
const result = this.isValidIdCard(this.formData.idCard)
|
|
||||||
if (result.status === 0) {
|
|
||||||
this.$message.warning(result.msg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const bankRes = this.validateCard(this.formData.bankCardNum)
|
|
||||||
if (bankRes.status === 0) {
|
|
||||||
this.$message.warning(bankRes.msg)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.$axios.post('/platform/difficultHelp/apply/submit', {
|
this.$axios.post('/platform/difficultHelp/apply/submit', {
|
||||||
data: JSON.stringify(this.formData)
|
data: JSON.stringify(this.formData)
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
@@ -394,7 +411,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
|
|
||||||
async onFinishTask() {
|
async onFinishTask() {
|
||||||
this.$refs.formRef.validate().then((valid) => {
|
this.$refs.formRef.validate().catch(() => false).then((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$confirm("您确定要提交吗?", "提示", {
|
this.$confirm("您确定要提交吗?", "提示", {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
@@ -402,17 +419,6 @@ layout("/layouts/platform.html"){
|
|||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
|
||||||
const result = this.isValidIdCard(this.formData.idCard)
|
|
||||||
if (result.status === 0) {
|
|
||||||
this.$message.warning(result.msg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const bankRes = this.validateCard(this.formData.bankCardNum)
|
|
||||||
if (bankRes.status === 0) {
|
|
||||||
this.$message.warning(bankRes.msg)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.$axios.post('/platform/difficultHelp/apply/submitAgain', {
|
this.$axios.post('/platform/difficultHelp/apply/submitAgain', {
|
||||||
data: JSON.stringify(this.formData),
|
data: JSON.stringify(this.formData),
|
||||||
taskId: GetQueryString("taskId")
|
taskId: GetQueryString("taskId")
|
||||||
@@ -429,6 +435,9 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
// 查询受助人
|
// 查询受助人
|
||||||
queryRecipients(key) {
|
queryRecipients(key) {
|
||||||
|
if (String(this.formData.mode) !== "2" || !this.canApplyForOthers) {
|
||||||
|
return
|
||||||
|
}
|
||||||
this.$axios.post("/platform/difficultHelp/apply/queryRecipients", {
|
this.$axios.post("/platform/difficultHelp/apply/queryRecipients", {
|
||||||
key
|
key
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
@@ -438,10 +447,12 @@ layout("/layouts/platform.html"){
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
findOne(id) {
|
findOne(id) {
|
||||||
this.$axios.post('/platform/difficultHelp/mine/findOne', { id }).then(res => {
|
return this.$axios.post('/platform/difficultHelp/mine/findOne', { id }).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.formData = res.data
|
this.formData = res.data
|
||||||
this.queryRecipients(res.data.loginName)
|
this.queryRecipients(res.data.loginName)
|
||||||
|
} else {
|
||||||
|
throw new Error(res.msg || '申请信息加载失败,请刷新页面重试')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -459,6 +470,9 @@ layout("/layouts/platform.html"){
|
|||||||
this.$set(this.formData, 'birthday', user.birthday)
|
this.$set(this.formData, 'birthday', user.birthday)
|
||||||
this.$set(this.formData, 'mobile', user.mobile)
|
this.$set(this.formData, 'mobile', user.mobile)
|
||||||
this.$set(this.formData, 'idCard', user.idCard)
|
this.$set(this.formData, 'idCard', user.idCard)
|
||||||
|
this.$set(this.formData, 'position', user.position || '')
|
||||||
|
this.$set(this.formData, 'officialCapacity', user.officialCapacity || '')
|
||||||
|
this.$set(this.formData, 'homeAddress', user.homeAddress || '')
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.$set(this.formData, 'userId', null)
|
this.$set(this.formData, 'userId', null)
|
||||||
@@ -471,6 +485,10 @@ layout("/layouts/platform.html"){
|
|||||||
this.$set(this.formData, 'unionName', null)
|
this.$set(this.formData, 'unionName', null)
|
||||||
this.$set(this.formData, 'birthday', null)
|
this.$set(this.formData, 'birthday', null)
|
||||||
this.$set(this.formData, 'mobile', null)
|
this.$set(this.formData, 'mobile', null)
|
||||||
|
this.$set(this.formData, 'idCard', null)
|
||||||
|
this.$set(this.formData, 'position', '')
|
||||||
|
this.$set(this.formData, 'officialCapacity', '')
|
||||||
|
this.$set(this.formData, 'homeAddress', '')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 申请模式
|
// 申请模式
|
||||||
@@ -486,15 +504,17 @@ layout("/layouts/platform.html"){
|
|||||||
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
||||||
this.$set(this.formData, 'mode', "1")
|
this.$set(this.formData, 'mode', "1")
|
||||||
this.$set(this.formData, 'sex', user.sex)
|
this.$set(this.formData, 'sex', user.sex)
|
||||||
this.$set(this.formData, 'unitId', user.unit.id)
|
this.$set(this.formData, 'unitId', (user.unit || {}).id || user.unitId || null)
|
||||||
this.$set(this.formData, 'unitName', user.unit.name)
|
this.$set(this.formData, 'unitName', (user.unit || {}).name || '')
|
||||||
this.$set(this.formData, 'unionId', user.union.id)
|
this.$set(this.formData, 'unionId', (user.union || {}).id || (user.unit || {}).unionId || null)
|
||||||
this.$set(this.formData, 'unionName', user.union.name)
|
this.$set(this.formData, 'unionName', (user.union || {}).name || '')
|
||||||
this.$set(this.formData, 'yearIncome', null)
|
this.$set(this.formData, 'yearIncome', null)
|
||||||
this.$set(this.formData, 'birthday', user.birthday)
|
this.$set(this.formData, 'birthday', user.birthday)
|
||||||
this.$set(this.formData, 'idCard', user.idCard)
|
this.$set(this.formData, 'idCard', user.idCard)
|
||||||
this.$set(this.formData, 'mobile', user.mobile)
|
this.$set(this.formData, 'mobile', user.mobile)
|
||||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||||
|
this.$set(this.formData, 'position', user.position || '')
|
||||||
|
this.$set(this.formData, 'officialCapacity', user.professionalTitle || '')
|
||||||
this.$set(this.formData, 'subsidyStandards', null)
|
this.$set(this.formData, 'subsidyStandards', null)
|
||||||
this.$set(this.formData, 'reason', null)
|
this.$set(this.formData, 'reason', null)
|
||||||
this.$set(this.formData, 'remarks', null)
|
this.$set(this.formData, 'remarks', null)
|
||||||
@@ -602,10 +622,10 @@ layout("/layouts/platform.html"){
|
|||||||
return { status: 200, msg: "卡号有效。" };
|
return { status: 200, msg: "卡号有效。" };
|
||||||
},
|
},
|
||||||
async getIsCanPlay() {
|
async getIsCanPlay() {
|
||||||
this.$axios.post('/platform/difficultHelp/apply/getIsCanPlay').then(res => {
|
return this.$axios.post('/platform/difficultHelp/apply/getIsCanPlay').then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
// 新增申请进入页面时,优先校验当前登录人本年度是否已经申请过,已申请则直接拦截新增。
|
// 新增申请进入页面时,优先校验当前登录人本年度是否已经申请过,已申请则直接拦截新增。
|
||||||
if (!this.bizId && res.data.hasCurrentYearApply) {
|
if (!this.bizId && res.data.hasCurrentYearApply && !this.canApplyForOthers) {
|
||||||
this.isShow = false
|
this.isShow = false
|
||||||
this.$set(this, 'blockMessage', '抱歉,您本年度已申请困难帮扶,不能重复申请。')
|
this.$set(this, 'blockMessage', '抱歉,您本年度已申请困难帮扶,不能重复申请。')
|
||||||
} else {
|
} else {
|
||||||
@@ -616,17 +636,26 @@ layout("/layouts/platform.html"){
|
|||||||
if (res.data.applyCount !== null && res.data.applyCount !== undefined && res.data.applyCount !== 0) {
|
if (res.data.applyCount !== null && res.data.applyCount !== undefined && res.data.applyCount !== 0) {
|
||||||
this.$set(this.formData, 'applyCount', res.data.applyCount)
|
this.$set(this.formData, 'applyCount', res.data.applyCount)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error(res.msg || '申请资格加载失败,请刷新页面重试')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
|
try {
|
||||||
await this.getIsCanPlay();
|
await this.getIsCanPlay();
|
||||||
if (this.bizId) {
|
if (this.bizId) {
|
||||||
this.findOne(this.bizId)
|
await this.findOne(this.bizId)
|
||||||
} else {
|
} else {
|
||||||
this.modeChange("1")
|
this.modeChange("1")
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.isShow = false
|
||||||
|
this.blockMessage = error.message || '申请信息加载失败,请刷新页面重试'
|
||||||
|
} finally {
|
||||||
|
this.pageLoading = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -24,6 +24,12 @@ const INFO = {
|
|||||||
|
|
||||||
<el-descriptions-item label="申请次数" >{{ 1 }}</el-descriptions-item>
|
<el-descriptions-item label="申请次数" >{{ 1 }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="家庭住址" :span="2">{{ viewData.homeAddress }}</el-descriptions-item>
|
<el-descriptions-item label="家庭住址" :span="2">{{ viewData.homeAddress }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="补助类型">
|
||||||
|
<dict-tag :options="dict.type.DIFFICULT_SUBSIDY_TYPE" :value="viewData.subsidy"></dict-tag>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="困难类型">
|
||||||
|
<dict-tag :options="dict.type.DIFFICULT_TYPE" :value="viewData.subsidyStandards"></dict-tag>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
<el-descriptions-item label="家庭主要成员(在一起生活的直系亲属)经济收入情况" :span="3">
|
<el-descriptions-item label="家庭主要成员(在一起生活的直系亲属)经济收入情况" :span="3">
|
||||||
@@ -106,7 +112,7 @@ const INFO = {
|
|||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
store,
|
store,
|
||||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
dicts: ["PROCESS_TASK_SUBMIT_TYPE", "DIFFICULT_SUBSIDY_TYPE", "DIFFICULT_TYPE"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
viewData: {},
|
viewData: {},
|
||||||
|
|||||||
@@ -64,16 +64,16 @@ layout("/layouts/platform.html"){
|
|||||||
size="small"></enum-tag>
|
size="small"></enum-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" fixed="right" width="300px">
|
<el-table-column label="操作" fixed="right" width="300px" class-name="difficult-help-mine-actions">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onEdit(row)" size="mini" type="primary">
|
<el-button v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)" @click="onEdit(row)" size="mini" type="primary">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
<el-button v-if="row.createdBy === $store.state.user.id && row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="doExportApply(row)" size="mini" type="primary">打印</el-button>
|
<el-button v-if="row.createdBy === $store.state.user.id && row.instanceState == 20" @click="doExportApply(row)" size="mini" type="primary">导出</el-button>
|
||||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
<el-button v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -87,6 +87,18 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<style nonce="${cspNonce!}">
|
||||||
|
#app .difficult-help-mine-actions .cell {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
#app .difficult-help-mine-actions .cell > .el-button {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<script nonce="${cspNonce!}">
|
<script nonce="${cspNonce!}">
|
||||||
<!--#include("../common/info.js"){}#-->
|
<!--#include("../common/info.js"){}#-->
|
||||||
|
|
||||||
@@ -165,11 +177,11 @@ layout("/layouts/platform.html"){
|
|||||||
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
||||||
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
|
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
|
||||||
} else {
|
} else {
|
||||||
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
|
this.units = await this.$businessTool.listUnit((this.$store.state.user.union || {}).id || this.pageForm.unionId)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
doExportApply(row) {
|
doExportApply(row) {
|
||||||
this.$downLoad('/platform/difficultHelp/reading/doExportApply?id=' + row.id + '&print=true')
|
this.$downLoad('/platform/difficultHelp/reading/doExportApply?id=' + row.id + '&print=false')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
@@ -177,7 +189,7 @@ layout("/layouts/platform.html"){
|
|||||||
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
||||||
this.unions = await this.$businessTool.listUnion()
|
this.unions = await this.$businessTool.listUnion()
|
||||||
} else {
|
} else {
|
||||||
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
|
this.unions = await this.$businessTool.listUnion((this.$store.state.user.union || {}).id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -255,7 +255,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-empty description="暂无数据" v-else></van-empty>
|
<van-empty description="暂无数据" v-else></van-empty>
|
||||||
</van-action-sheet>-->
|
</van-action-sheet>-->
|
||||||
|
|
||||||
<van-field
|
<!-- <van-field
|
||||||
v-model="formData.certifierUserName"
|
v-model="formData.certifierUserName"
|
||||||
name="certifierUserName"
|
name="certifierUserName"
|
||||||
label="证明人"
|
label="证明人"
|
||||||
@@ -288,7 +288,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<van-empty description="暂无数据" v-else></van-empty>
|
<van-empty description="暂无数据" v-else></van-empty>
|
||||||
</van-action-sheet>
|
</van-action-sheet> -->
|
||||||
|
|
||||||
<van-field
|
<van-field
|
||||||
v-model="formData.typeName"
|
v-model="formData.typeName"
|
||||||
@@ -322,7 +322,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
name="money"
|
name="money"
|
||||||
label="慰问金额"
|
label="慰问金额"
|
||||||
required
|
required
|
||||||
:rules="[{ required: true }]"
|
:rules="[{ required: true, message: '请填写慰问金额' }, { validator: validateMoney, message: '慰问金额须大于0且不超过10000元,最多两位小数' }]"
|
||||||
placeholder="选择慰问类型自动匹配金额"
|
placeholder="选择慰问类型自动匹配金额"
|
||||||
clickable
|
clickable
|
||||||
type="number"
|
type="number"
|
||||||
@@ -353,17 +353,19 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<van-field
|
<van-field
|
||||||
|
v-if="!['A', 'D'].includes(formData.typeCode)"
|
||||||
v-model="formData.bankCardNumber"
|
v-model="formData.bankCardNumber"
|
||||||
label="收款账户"
|
label="收款账户"
|
||||||
maxlength="20"
|
maxlength="30"
|
||||||
clearable
|
clearable
|
||||||
name="bankCardNumber"
|
name="bankCardNumber"
|
||||||
placeholder="请填写收款账户"
|
placeholder="请填写银行卡号或对公账户号"
|
||||||
:rules="[{ required: true }]"
|
:rules="[{ required: true, message: '请填写银行卡号或对公账户号' }, { pattern: /^[0-9]{6,30}$/, message: '收款账户须为6至30位数字(银行卡号或对公账户号)' }]"
|
||||||
required
|
required
|
||||||
></van-field>
|
></van-field>
|
||||||
|
|
||||||
<van-field
|
<van-field
|
||||||
|
v-if="!['A', 'D'].includes(formData.typeCode)"
|
||||||
v-model="formData.bankUserName"
|
v-model="formData.bankUserName"
|
||||||
label="户名"
|
label="户名"
|
||||||
placeholder="请填写户名"
|
placeholder="请填写户名"
|
||||||
@@ -373,12 +375,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
name="bankUserName"
|
name="bankUserName"
|
||||||
></van-field>
|
></van-field>
|
||||||
<van-field
|
<van-field
|
||||||
|
v-if="!['A', 'D'].includes(formData.typeCode)"
|
||||||
v-model="formData.bankOfDeposit"
|
v-model="formData.bankOfDeposit"
|
||||||
label="开户行"
|
label="开户行"
|
||||||
maxlength="30"
|
maxlength="20"
|
||||||
type="textarea"
|
|
||||||
rows="4"
|
|
||||||
autosize
|
|
||||||
placeholder="请填写开户行"
|
placeholder="请填写开户行"
|
||||||
:rules="[{ required: true }]"
|
:rules="[{ required: true }]"
|
||||||
required
|
required
|
||||||
@@ -433,8 +433,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
></van-datetime-picker>
|
></van-datetime-picker>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<van-field type="digit" label="当年第几次住院"
|
<van-field type="digit" label="当年第几次住院" name="thisYearHospitalizationNum"
|
||||||
:rules="[{ required: true }]"
|
:rules="[{ required: true }, { validator: value => /^[0-9]+$/.test(String(value)) && Number(value) <= 10000, message: '住院次数须为0至10000的整数' }]"
|
||||||
required
|
required
|
||||||
placeholder="请输入当年第几次住院"
|
placeholder="请输入当年第几次住院"
|
||||||
v-model="formData.thisYearHospitalizationNum"></van-field>
|
v-model="formData.thisYearHospitalizationNum"></van-field>
|
||||||
@@ -443,6 +443,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-field
|
<van-field
|
||||||
v-model="formData.remark"
|
v-model="formData.remark"
|
||||||
name="remark"
|
name="remark"
|
||||||
|
maxlength="500"
|
||||||
label="申请事由"
|
label="申请事由"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
rows="4"
|
rows="4"
|
||||||
@@ -460,15 +461,18 @@ layout("/layouts/platform_h5.html"){
|
|||||||
{{ '附件说明:' + chooseType.uploadFileDesc }}
|
{{ '附件说明:' + chooseType.uploadFileDesc }}
|
||||||
</div>
|
</div>
|
||||||
<van-cell-group :border="false">
|
<van-cell-group :border="false">
|
||||||
<van-field class="direction-column-field" name="avatar" label="">
|
<van-field class="direction-column-field" name="files" label="附件" required
|
||||||
|
:rules="[{ validator: () => Array.isArray(formData.files) && formData.files.length > 0 && formData.files.length <= 5, message: '请上传1至5个附件' }]">
|
||||||
<template #input>
|
<template #input>
|
||||||
<h5-file-upload
|
<h5-file-upload
|
||||||
slot="input"
|
slot="input"
|
||||||
:value.sync="formData.files"
|
:value.sync="formData.files"
|
||||||
:upload_number="5"
|
:upload_number="5"
|
||||||
|
upload_text="上传附件"
|
||||||
upload_result_category="array"
|
upload_result_category="array"
|
||||||
complete_result
|
complete_result
|
||||||
></h5-file-upload>
|
></h5-file-upload>
|
||||||
|
<div class="condolence-card__desc">最多上传 5 个文件</div>
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
@@ -477,7 +481,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<section class="form-section">
|
<section class="form-section">
|
||||||
<h2 class="condolence-card__title">签字确认</h2>
|
<h2 class="condolence-card__title">签字确认</h2>
|
||||||
<van-cell-group :border="false">
|
<van-cell-group :border="false">
|
||||||
<van-field class="direction-column-field" name="signature" label="">
|
<van-field class="direction-column-field" name="signature" label="" :value="formData.signature"
|
||||||
|
:rules="[{ required: true, message: '请填写签字' }]">
|
||||||
<template #input>
|
<template #input>
|
||||||
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
||||||
</template>
|
</template>
|
||||||
@@ -532,6 +537,9 @@ layout("/layouts/platform_h5.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
validateMoney(value) {
|
||||||
|
return /^(0|[1-9][0-9]*)(\.[0-9]{1,2})?$/.test(String(value)) && Number(value) > 0 && Number(value) <= 10000
|
||||||
|
},
|
||||||
// 选择出院时间
|
// 选择出院时间
|
||||||
showLeaveHospitalTimePickerClick() {
|
showLeaveHospitalTimePickerClick() {
|
||||||
if (this.formData.leaveHospitalTime) {
|
if (this.formData.leaveHospitalTime) {
|
||||||
|
|||||||
@@ -158,19 +158,44 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.condolence-info-long-cell {
|
.condolence-info-long-cell {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.condolence-info-card .condolence-attachments .empty-container {
|
||||||
|
height: auto;
|
||||||
|
justify-content: flex-start;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.condolence-info-card .condolence-attachments .empty-text {
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.condolence-info-opinion > :first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.condolence-info-opinion > :last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.condolence-signature-image,
|
||||||
|
.condolence-approval-signature-image {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
width: 100%;
|
||||||
|
|
||||||
.condolence-info-long-cell .van-cell__title {
|
|
||||||
width: auto;
|
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
height: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.condolence-info-long-cell .van-cell__value {
|
.condolence-signature-image .van-image__img,
|
||||||
margin-top: 7px;
|
.condolence-approval-signature-image {
|
||||||
|
object-fit: contain;
|
||||||
|
object-position: left center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.condolence-signature-image {
|
.condolence-info-opinion img {
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,13 +25,13 @@ const condolenceInfo = {
|
|||||||
<van-cell title="申请人单位">{{ viewData.applyUnitName || '--' }}</van-cell>
|
<van-cell title="申请人单位">{{ viewData.applyUnitName || '--' }}</van-cell>
|
||||||
<van-cell title="申请人工会">{{ viewData.applyUnionName || '--' }}</van-cell>
|
<van-cell title="申请人工会">{{ viewData.applyUnionName || '--' }}</van-cell>
|
||||||
<van-cell title="慰问对象">{{ viewData.helpUserName || '--' }}</van-cell>
|
<van-cell title="慰问对象">{{ viewData.helpUserName || '--' }}</van-cell>
|
||||||
<van-cell title="证明人">{{ viewData.certifierUserName || '--' }}</van-cell>
|
<!-- <van-cell title="证明人">{{ viewData.certifierUserName || '--' }}</van-cell> -->
|
||||||
<van-cell title="慰问类型">{{ viewData.typeName || '--' }}</van-cell>
|
<van-cell title="慰问类型">{{ viewData.typeName || '--' }}</van-cell>
|
||||||
<van-cell title="慰问金额">{{ viewData.money || '--' }}</van-cell>
|
<van-cell title="慰问金额">{{ viewData.money || '--' }}</van-cell>
|
||||||
<van-cell title="慰问时间">{{ viewData.occurTime || '--' }}</van-cell>
|
<van-cell title="慰问时间">{{ viewData.occurTime || '--' }}</van-cell>
|
||||||
<van-cell title="收款账户">{{ viewData.bankCardNumber || '--' }}</van-cell>
|
<van-cell title="收款账户">{{ viewData.bankCardNumber || '--' }}</van-cell>
|
||||||
<van-cell title="户名">{{ viewData.bankUserName || '--' }}</van-cell>
|
<van-cell title="户名">{{ viewData.bankUserName || '--' }}</van-cell>
|
||||||
<van-cell class="condolence-info-long-cell" title="开户行">
|
<van-cell title="开户行">
|
||||||
{{ viewData.bankOfDeposit || '暂无' }}
|
{{ viewData.bankOfDeposit || '暂无' }}
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<template v-if="['2'].includes(viewData.typeCode)">
|
<template v-if="['2'].includes(viewData.typeCode)">
|
||||||
@@ -39,17 +39,18 @@ const condolenceInfo = {
|
|||||||
<van-cell title="出院时间">{{ viewData.leaveHospitalTime || '--' }}</van-cell>
|
<van-cell title="出院时间">{{ viewData.leaveHospitalTime || '--' }}</van-cell>
|
||||||
<van-cell title="当年第几次住院(次)">{{ viewData.thisYearHospitalizationNum || '--' }}</van-cell>
|
<van-cell title="当年第几次住院(次)">{{ viewData.thisYearHospitalizationNum || '--' }}</van-cell>
|
||||||
</template>
|
</template>
|
||||||
<van-cell class="condolence-info-long-cell" title="申请事由">
|
<van-cell title="申请事由">
|
||||||
{{ viewData.remark || '暂无' }}
|
{{ viewData.remark || '暂无' }}
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell class="condolence-info-long-cell" title="附件">
|
<van-cell class="condolence-info-long-cell" title="附件">
|
||||||
<file-preview :files="viewData.files" complete_result></file-preview>
|
<file-preview class="condolence-attachments" :files="viewData.files" complete_result></file-preview>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell class="condolence-info-long-cell" title="签字">
|
<van-cell class="condolence-info-long-cell" title="签字">
|
||||||
<van-image
|
<van-image
|
||||||
v-if="viewData.signature"
|
v-if="viewData.signature"
|
||||||
:src="viewData.signature"
|
:src="viewData.signature"
|
||||||
class="condolence-signature-image"
|
class="condolence-signature-image"
|
||||||
|
fit="contain"
|
||||||
></van-image>
|
></van-image>
|
||||||
<span v-else>暂无签字</span>
|
<span v-else>暂无签字</span>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
@@ -85,8 +86,11 @@ const condolenceInfo = {
|
|||||||
:value="task.ext && task.ext.submitType"
|
:value="task.ext && task.ext.submitType"
|
||||||
></dict-tag>
|
></dict-tag>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell class="condolence-info-long-cell" title="办理意见">
|
<van-cell v-if="task.taskFormData && task.taskFormData.sign" title="审批签字">
|
||||||
<div v-html="task.taskFormData && task.taskFormData.tf_opinion || '暂无'"></div>
|
<img :src="task.taskFormData.sign" class="condolence-approval-signature-image">
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="办理意见">
|
||||||
|
<div class="condolence-info-opinion" v-html="task.taskFormData && task.taskFormData.tf_opinion || '暂无'"></div>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
+28
-4
@@ -94,6 +94,22 @@ layout("/layouts/platform_h5.html"){
|
|||||||
color: #f06464;
|
color: #f06464;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.difficult-help-apply-form .difficult-help-apply-mode {
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.difficult-help-apply-form .difficult-help-apply-mode .van-radio {
|
||||||
|
flex-shrink: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.difficult-help-apply-form .difficult-help-apply-mode .van-radio__label {
|
||||||
|
margin-left: 4px;
|
||||||
|
font-size: 12px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
.difficult-help-apply-actions {
|
.difficult-help-apply-actions {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
@@ -308,10 +324,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
required name="proxyLoginName"></van-field>
|
required name="proxyLoginName"></van-field>
|
||||||
<van-field label="申请模式" name="mode" required :rules="[{ required: true }]">
|
<van-field label="申请模式" name="mode" required :rules="[{ required: true }]">
|
||||||
<template #input>
|
<template #input>
|
||||||
<van-radio-group v-model="formData.mode" @change="modeChange" direction="horizontal">
|
<van-radio-group class="difficult-help-apply-mode" :value="formData.mode" @input="formData.mode !== $event && modeChange($event)" direction="horizontal" icon-size="14px">
|
||||||
<van-radio name="1" shape="square">本人申请</van-radio>
|
<van-radio name="1" shape="square">本人申请</van-radio>
|
||||||
<van-radio
|
<van-radio
|
||||||
v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
|
v-if="canApplyForOthers"
|
||||||
name="2" shape="square">替他人申请
|
name="2" shape="square">替他人申请
|
||||||
</van-radio>
|
</van-radio>
|
||||||
</van-radio-group>
|
</van-radio-group>
|
||||||
@@ -707,11 +723,16 @@ layout("/layouts/platform_h5.html"){
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
canApplyForOthers() {
|
||||||
|
return this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
historyBack,
|
historyBack,
|
||||||
// 替他人申请时由只读字段主动打开受助人选择,已有业务数据时保持原禁止更换规则。
|
// 替他人申请时由只读字段主动打开受助人选择,已有业务数据时保持原禁止更换规则。
|
||||||
openRecipientPopup() {
|
openRecipientPopup() {
|
||||||
if (this.formData.mode !== "2" || this.formData.id) return
|
if (this.formData.mode !== "2" || this.formData.id || !this.canApplyForOthers) return
|
||||||
this.$set(this, "recipientSearchKey", "")
|
this.$set(this, "recipientSearchKey", "")
|
||||||
this.$set(this, "recipientHasSearched", false)
|
this.$set(this, "recipientHasSearched", false)
|
||||||
this.$set(this, "subsidizedList", [])
|
this.$set(this, "subsidizedList", [])
|
||||||
@@ -975,7 +996,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
* recipientSearchKey 传搜索关键词;接口返回用户数组,列表仅展示姓名和单位。
|
* recipientSearchKey 传搜索关键词;接口返回用户数组,列表仅展示姓名和单位。
|
||||||
*/
|
*/
|
||||||
queryRecipients() {
|
queryRecipients() {
|
||||||
if (this.formData.mode !== "2") {
|
if (this.formData.mode !== "2" || !this.canApplyForOthers) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const key = (this.recipientSearchKey || "").trim()
|
const key = (this.recipientSearchKey || "").trim()
|
||||||
@@ -1024,6 +1045,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$set(this.formData, "userName", null)
|
this.$set(this.formData, "userName", null)
|
||||||
this.$set(this.formData, "loginName", null)
|
this.$set(this.formData, "loginName", null)
|
||||||
this.$set(this.formData, "sex", null)
|
this.$set(this.formData, "sex", null)
|
||||||
|
this.$set(this.formData, "birthday", null)
|
||||||
this.$set(this.formData, "unitId", null)
|
this.$set(this.formData, "unitId", null)
|
||||||
this.$set(this.formData, "unitName", null)
|
this.$set(this.formData, "unitName", null)
|
||||||
this.$set(this.formData, "unionId", null)
|
this.$set(this.formData, "unionId", null)
|
||||||
@@ -1088,6 +1110,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$set(this.formData, 'idCard', user.idCard)
|
this.$set(this.formData, 'idCard', user.idCard)
|
||||||
this.$set(this.formData, 'mobile', user.mobile)
|
this.$set(this.formData, 'mobile', user.mobile)
|
||||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||||
|
this.$set(this.formData, 'position', user.position || '')
|
||||||
|
this.$set(this.formData, 'officialCapacity', user.professionalTitle || '')
|
||||||
this.$set(this.formData, 'subsidyStandards', null)
|
this.$set(this.formData, 'subsidyStandards', null)
|
||||||
this.$set(this.formData, 'reason', null)
|
this.$set(this.formData, 'reason', null)
|
||||||
this.$set(this.formData, 'remarks', null)
|
this.$set(this.formData, 'remarks', null)
|
||||||
|
|||||||
+4
-12
@@ -167,11 +167,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.difficult-help-info-card .van-cell__title {
|
.difficult-help-info-card .van-cell__title {
|
||||||
width: 112px;
|
width: 102px;
|
||||||
color: #596779;
|
color: #596779;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
flex: 0 0 112px;
|
flex: 0 0 102px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.difficult-help-info-card .van-cell__value {
|
.difficult-help-info-card .van-cell__value {
|
||||||
@@ -184,16 +184,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.difficult-help-info-long-cell {
|
.difficult-help-info-long-cell {
|
||||||
display: block;
|
display: flex;
|
||||||
}
|
align-items: flex-start;
|
||||||
|
|
||||||
.difficult-help-info-long-cell .van-cell__title {
|
|
||||||
width: auto;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.difficult-help-info-long-cell .van-cell__value {
|
|
||||||
margin-top: 7px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.difficult-help-info-pre-line {
|
.difficult-help-info-pre-line {
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</style>
|
</style>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<div class="difficult-help-list-page">
|
<div class="difficult-help-list-page">
|
||||||
<van-nav-bar title="帮扶申请记录" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
|
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
|
||||||
<van-sticky offset-top="46px">
|
<van-sticky offset-top="46px">
|
||||||
<div class="difficult-help-list-sticky">
|
<div class="difficult-help-list-sticky">
|
||||||
<van-search
|
<van-search
|
||||||
@@ -388,16 +388,16 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-icon name="eye-o"></van-icon>
|
<van-icon name="eye-o"></van-icon>
|
||||||
<span>查看</span>
|
<span>查看</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-btn" v-if="row.taskKey === 'startTask' || !row.instanceId"
|
<div class="action-btn" v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)"
|
||||||
@click="onEdit(row)">
|
@click="onEdit(row)">
|
||||||
<van-icon name="edit"></van-icon>
|
<van-icon name="edit"></van-icon>
|
||||||
<span>编辑</span>
|
<span>编辑</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
<div class="action-btn delete" v-if="row.createdBy === $store.state.user.id && row.canRevoke" @click="onRevoke(row)">
|
||||||
<van-icon name="revoke"></van-icon>
|
<van-icon name="revoke"></van-icon>
|
||||||
<span>撤回</span>
|
<span>撤回</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-btn delete" v-if="row.taskKey === 'startTask' || !row.instanceId"
|
<div class="action-btn delete" v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)"
|
||||||
@click="onDelete(row.id)">
|
@click="onDelete(row.id)">
|
||||||
<van-icon name="delete-o"></van-icon>
|
<van-icon name="delete-o"></van-icon>
|
||||||
<span>删除</span>
|
<span>删除</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user