Merge remote-tracking branch 'origin/main'
This commit is contained in:
+525
-143
@@ -4,16 +4,30 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<snaker-start slot="header" label="工会报销" define_key="GHBX"></snaker-start>
|
||||
<template #header>
|
||||
<h3 style="color: rgb(24, 103, 176);" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">慰问申请</h3>
|
||||
<h3 style="color: rgb(24, 103, 176);" v-else-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">文体活动申请</h3>
|
||||
<h3 style="color: rgb(24, 103, 176);" v-else-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_3'">日常活动申请</h3>
|
||||
<h3 style="color: rgb(24, 103, 176);" v-else-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_4'">专项活动申请</h3>
|
||||
</template>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="经办人">{{formData.userName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工号">{{formData.loginName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="报销类别">
|
||||
<el-form-item label="报销类别" prop="reimburseType">
|
||||
<el-radio-group v-model="formData.reimburseType" size="medium">
|
||||
<el-radio :label="item.code" border v-for="item in dict.type.UNION_REIMBURSE_TYPE">
|
||||
<!-- <el-descriptions-item label="报销类别">-->
|
||||
<!-- <el-form-item label="报销类别" prop="reimburseType">-->
|
||||
<!-- <el-radio-group v-model="formData.reimburseType" size="medium">-->
|
||||
<!-- <el-radio :label="item.code" border v-for="item in dict.type.UNION_REIMBURSE_TYPE">-->
|
||||
<!-- {{item.name}}-->
|
||||
<!-- </el-radio>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item label="报销项目" span="2">
|
||||
<el-form-item label="报销项目" prop="reimburseProject">
|
||||
<el-radio-group v-model="formData.reimburseProject" size="medium">
|
||||
<el-radio :label="item.code" border v-for="item in reimburseProjectList">
|
||||
{{item.name}}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
@@ -30,16 +44,6 @@ layout("/layouts/platform.html"){
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="报销项目" span="2">
|
||||
<el-form-item label="报销项目" prop="reimburseProject">
|
||||
<el-radio-group v-model="formData.reimburseProject" size="medium">
|
||||
<el-radio :label="item.code" border v-for="item in reimburseProjectList">
|
||||
{{item.name}}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- <el-descriptions-item label="报销经费来源" span="2">
|
||||
<el-form-item label="报销经费来源" prop="reimburseFundSource">
|
||||
<el-radio-group v-model="formData.reimburseFundSource" size="medium" @change="reimburseFundSourceChange">
|
||||
@@ -56,98 +60,351 @@ layout("/layouts/platform.html"){
|
||||
placeholder="请输入联系方式"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="证明人">
|
||||
<el-form-item label="证明人" prop="certifierUserId">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.certifierUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(userOptions)"
|
||||
@change="userChange">
|
||||
|
||||
<el-descriptions-item label="付款人" v-if="formData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
|
||||
<el-form-item prop="payer" label="付款人">
|
||||
<el-select style="width: 100%"
|
||||
v-model="formData.payer"
|
||||
@change="payerUserChange"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethodForPayer">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
v-for="item in payerOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="户名">
|
||||
<el-form-item prop="bankUserName" label="户名">
|
||||
<el-input v-model="formData.bankUserName" show-word-limit
|
||||
placeholder="请输入户名"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="银行账号">
|
||||
<el-form-item prop="bankCardNumber" label="银行账号">
|
||||
<el-input v-model="formData.bankCardNumber" show-word-limit
|
||||
placeholder="请输入银行账号"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="开户行">
|
||||
<el-form-item prop="bankOfDeposit" label="开户行">
|
||||
<el-input v-model="formData.bankOfDeposit" show-word-limit
|
||||
placeholder="请输入开户行"></el-input>
|
||||
<el-descriptions-item label="开户行" v-if="formData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
|
||||
<el-form-item label="开户行" prop="bankOfDeposit">
|
||||
<el-select
|
||||
v-model="formData.bankOfDeposit"
|
||||
@change="getUserBankHistory"
|
||||
clearable
|
||||
filterable
|
||||
allow-create
|
||||
default-first-option
|
||||
placeholder="请输入开户行名称"
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="(item, index) in historyData"
|
||||
:key="index"
|
||||
:label="item.bankOfDeposit"
|
||||
:value="item.bankOfDeposit">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="活动名称">
|
||||
<el-descriptions-item label="银行卡号" v-if="formData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
|
||||
<el-form-item label="银行卡号" prop="bankCardNumber" >
|
||||
<el-select
|
||||
v-model="formData.bankCardNumber"
|
||||
@change="getUserBankHistory"
|
||||
clearable
|
||||
filterable
|
||||
allow-create
|
||||
default-first-option
|
||||
placeholder="请输入银行卡号"
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="(item, index) in historyData"
|
||||
:key="index"
|
||||
:label="item.bankCardNumber"
|
||||
:value="item.bankCardNumber">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问对象" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="慰问对象" prop="condolenceUserId">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.condolenceUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(userOptions)"
|
||||
@change="userChange">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="性别" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="condolenceSex" label="性别">
|
||||
<el-input v-model="formData.condolenceSex" show-word-limit
|
||||
placeholder="请输入性别" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="生日" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="condolenceBirthday" label="生日">
|
||||
<el-input :value="formData.condolenceBirthday && $moment(formData.condolenceBirthday).isValid() ?$moment(formData.condolenceBirthday).format('YYYY-MM-DD') : ''"
|
||||
show-word-limit placeholder="请输入生日" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="身份证号" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="condolenceIdCard" label="身份证号">
|
||||
<el-input v-model="formData.condolenceIdCard" show-word-limit
|
||||
placeholder="请输入身份证号" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="联系方式" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="condolenceMobile" label="联系方式">
|
||||
<el-input v-model="formData.condolenceMobile" show-word-limit
|
||||
placeholder="请输入联系方式" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问类型" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="慰问类型" prop="condolenceTypeId">
|
||||
<el-select style="width: 100%"
|
||||
v-model="formData.condolenceTypeId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择慰问类型"
|
||||
@change="typeChange">
|
||||
<el-option
|
||||
v-for="item in typeOptions"
|
||||
:key="item.id"
|
||||
:label="item.name+'('+item.code+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问方式" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="way" label="慰问方式">
|
||||
<el-select style="width: 100%" v-model="formData.way" placeholder="请选择慰问方式">
|
||||
<el-option
|
||||
v-for="option in condolenceWays"
|
||||
:key="option.value"
|
||||
:label="option.label"
|
||||
:value="option.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问金额" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="condolenceMoney" label="慰问金额">
|
||||
<el-input
|
||||
v-model="formData.condolenceMoney"
|
||||
show-word-limit
|
||||
placeholder="请输入慰问金额"
|
||||
type="number"
|
||||
:precision="2"
|
||||
step="0.01">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<!-- <el-descriptions-item label="户名">-->
|
||||
<!-- <el-form-item prop="bankUserName" label="户名">-->
|
||||
<!-- <el-input v-model="formData.bankUserName" show-word-limit-->
|
||||
<!-- placeholder="请输入户名"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="银行账号">-->
|
||||
<!-- <el-form-item prop="bankCardNumber" label="银行账号">-->
|
||||
<!-- <el-input v-model="formData.bankCardNumber" show-word-limit-->
|
||||
<!-- placeholder="请输入银行账号"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="开户行">-->
|
||||
<!-- <el-form-item prop="bankOfDeposit" label="开户行">-->
|
||||
<!-- <el-input v-model="formData.bankOfDeposit" show-word-limit-->
|
||||
<!-- placeholder="请输入开户行"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item label="活动名称" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="活动名称" prop="activityName">
|
||||
<el-input type="text" v-model="formData.activityName" placeholder="请输入活动名称"
|
||||
maxlength="60"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- <el-descriptions-item label="活动类型" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">
|
||||
<el-form-item label="活动类型" prop="activityType">
|
||||
<el-select v-model="formData.activityType" placeholder="请选择活动类型" style="width: 100%">
|
||||
<el-option label="分工会活动" value="分工会活动"></el-option>
|
||||
<el-option label="校工会活动" value="校工会活动"></el-option>
|
||||
<el-option label="协会(社团)活动" value="协会(社团)活动"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>-->
|
||||
<el-descriptions-item label="活动类型" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">
|
||||
<el-form-item label="活动类型" prop="activityType">
|
||||
<el-select v-model="formData.activityType" placeholder="请选择活动类型" style="width: 100%">
|
||||
<el-option label="分工会活动" value="分工会活动"></el-option>
|
||||
<el-option label="校工会活动" value="校工会活动"></el-option>
|
||||
<el-option label="协会(社团)活动" value="协会(社团)活动"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="活动人数" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="活动人数" prop="activityNumber">
|
||||
<el-input v-model="formData.activityNumber" placeholder="请输入活动人数" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="活动地点">
|
||||
<el-descriptions-item label="活动地点" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="活动地点" prop="activityPlace">
|
||||
<el-input v-model="formData.activityPlace" placeholder="请输入活动地点" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="报销金额">
|
||||
|
||||
<el-descriptions-item label="报销金额" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="报销金额" prop="money">
|
||||
<el-input v-model="formData.money" placeholder="输入报销金额"
|
||||
type="number"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="活动时间" >
|
||||
<el-form-item label="活动时间" prop="activityTime">
|
||||
<el-date-picker v-model="formData.activityTime"
|
||||
placeholder="活动时间"
|
||||
style="width: 100%" type="date"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>-->
|
||||
|
||||
<!-- <el-descriptions-item label="发票张数">-->
|
||||
<!-- <el-form-item label="发票张数" prop="invoiceNumber">-->
|
||||
<!-- <el-input-number v-model="formData.invoiceNumber"-->
|
||||
<!-- :max="1000" :min="0" controls-position="right"-->
|
||||
<!-- placeholder="请填写发票张数"-->
|
||||
<!-- style="width: 100%"></el-input-number>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item ></el-descriptions-item>-->
|
||||
<el-descriptions-item label="活动时间" v-if="formData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="活动时间" prop="activityTime">
|
||||
<el-date-picker v-model="formData.activityTime"
|
||||
placeholder="活动时间" style="width: 100%" type="date"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="支付内容" :span="2">
|
||||
<el-form-item prop="paymentNotes" label="支付内容">
|
||||
<el-input maxlength="500" v-model="formData.paymentNotes" placeholder="请填写支付内容"
|
||||
<el-descriptions-item label="发票张数">
|
||||
<el-form-item label="发票张数" prop="invoiceNumber">
|
||||
<el-input-number v-model="formData.invoiceNumber"
|
||||
:max="1000" :min="0" controls-position="right"
|
||||
placeholder="请填写发票张数"
|
||||
style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问时间" v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item label="慰问时间" prop="condolenceTime">
|
||||
<el-date-picker v-model="formData.condolenceTime"
|
||||
placeholder="慰问时间"
|
||||
style="width: 100%" type="date"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="结婚时间"
|
||||
v-if="formData.condolenceTypeId === 'cf4ce7af322d464f8f86d818fcc00203'">
|
||||
<el-form-item label="结婚时间" prop="marryTime">
|
||||
<el-date-picker v-model="formData.marryTime"
|
||||
placeholder="结婚时间"
|
||||
style="width: 100%" type="date"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="生育时间"
|
||||
v-if="formData.condolenceTypeId === 'c90cb10dce6542e99ae271bee6fe8cc0'">
|
||||
<el-form-item label="生育时间" prop="fertilityTime">
|
||||
<el-date-picker v-model="formData.fertilityTime"
|
||||
placeholder="生育时间"
|
||||
style="width: 100%" type="date"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="住院病由"
|
||||
v-if="formData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<el-form-item label="住院病由" prop="hospitalCausation">
|
||||
<el-input v-model="formData.hospitalCausation" placeholder="请输入住院病由"
|
||||
type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="住院时间"
|
||||
v-if="formData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<el-form-item label="住院时间" prop="hospitalizationTimeRange">
|
||||
<el-date-picker
|
||||
v-model="formData.hospitalizationTimeRange"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="住院开始时间"
|
||||
end-placeholder="住院结束时间"
|
||||
format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" style="width: 100%">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="入住医院"
|
||||
v-if="formData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<el-form-item label="入住医院" prop="hospital">
|
||||
<el-input v-model="formData.hospital" placeholder="请输入入住医院" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="当年次数"
|
||||
v-if="formData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<el-form-item label="当年次数" prop="hospitalCount">
|
||||
<el-input-number v-model="formData.hospitalCount"
|
||||
:max="1000" :min="0" controls-position="right"
|
||||
placeholder="请填写当年次数"
|
||||
style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="去逝时间"
|
||||
v-if="formData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
|
||||
<el-form-item label="去逝时间" prop="deathTime">
|
||||
<el-date-picker v-model="formData.deathTime"
|
||||
placeholder="去逝时间"
|
||||
style="width: 100%" type="date"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="与被慰问人关系"
|
||||
v-if="formData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
|
||||
<el-form-item prop="condolenceRelationship" label="与被慰问人关系">
|
||||
<el-select style="width: 100%" v-model="formData.condolenceRelationship" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="option in relationships"
|
||||
:key="option.value"
|
||||
:label="option.label"
|
||||
:value="option.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="参加随行人员" :span="2"
|
||||
v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<el-form-item prop="participants" label="参加随行人员">
|
||||
<el-input maxlength="500" v-model="formData.participants" placeholder="请填写参加随行人员"
|
||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="报销事由" :span="2">
|
||||
<el-form-item prop="paymentNotes" label="报销事由">
|
||||
<el-input maxlength="500" v-model="formData.paymentNotes" placeholder="请填写报销事由"
|
||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">
|
||||
<el-form-item prop="notes" label="备注">
|
||||
<el-input maxlength="500" v-model="formData.notes" placeholder="需要填写:发票编号、开具方、金额"
|
||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
@@ -157,19 +414,28 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
<el-form-item prop="files" label="附件">
|
||||
<file-upload
|
||||
:value.sync="formData.files"
|
||||
:upload_number="10"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
:value.sync="formData.files"
|
||||
:upload_number="10"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-form-item label="签字" prop="userSign">
|
||||
<pc-signature v-model="formData.userSign"></pc-signature>
|
||||
<el-form-item v-if="formData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'" class="mt10">
|
||||
<div style="color: red;">
|
||||
{{ formData.condolenceFilesNotes || getFileDescByProject(formData.reimburseProject) || '需要提供购买的慰问品发票,慰问照片' }} </div>
|
||||
</el-form-item>
|
||||
<el-form-item v-else class="mt10">
|
||||
<div style="color: red;">
|
||||
{{ getFileDescByProject(formData.reimburseProject) || '请上传活动照片、参加人员名单、付款凭证等相关材料' }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="签字" :span="2">-->
|
||||
<!-- <el-form-item label="签字" prop="userSign">-->
|
||||
<!-- <pc-signature v-model="formData.userSign"></pc-signature>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end" class="mt20">
|
||||
@@ -191,52 +457,76 @@ layout("/layouts/platform.html"){
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
formData: {
|
||||
reimburseType: ""
|
||||
reimburseType: "",
|
||||
hospitalizationTimeRange: [],
|
||||
reimburseProject:''
|
||||
},
|
||||
historyData: [],
|
||||
condolenceWays: [
|
||||
{label: "慰问金(A)", value: "慰问金(A)"},
|
||||
{label: "提货券(B)", value: "提货券(B)"},
|
||||
{label: "慰问品(C)", value: "慰问品(C)"}
|
||||
],
|
||||
relationships: [
|
||||
{label: "配偶", value: "配偶"},
|
||||
{label: "父亲", value: "父亲"},
|
||||
{label: "母亲", value: "母亲"},
|
||||
{label: "子女", value: "子女"},
|
||||
],
|
||||
formRules: {
|
||||
reimburseType: [{ required: true, message: "请选择报销类别", trigger: ["change", "blur"] }],
|
||||
paymentWay: [{ required: true, message: "请选择支付方式", trigger: ["change", "blur"] }],
|
||||
reimburseProject: [{ required: true, message: "请选择报销项目", trigger: ["change", "blur"] }],
|
||||
reimburseFundSource: [{ required: true, message: "请选择经费来源", trigger: ["change", "blur"] }],
|
||||
bankUserName: [{ required: true, message: "请填写户名", trigger: ["change", "blur"] }],
|
||||
// reimburseType: [{ required: true, message: "请选择报销类别", trigger: ["change", "blur"] }],
|
||||
paymentWay: [{required: true, message: "请选择支付方式", trigger: ["change", "blur"]}],
|
||||
reimburseProject: [{required: true, message: "请选择报销项目", trigger: ["change", "blur"]}],
|
||||
reimburseFundSource: [{required: true, message: "请选择经费来源", trigger: ["change", "blur"]}],
|
||||
bankUserName: [{required: true, message: "请填写户名", trigger: ["change", "blur"]}],
|
||||
bankCardNumber: [{
|
||||
required: true,
|
||||
message: "请填写银行账号",
|
||||
trigger: ["change", "blur"]
|
||||
}, { pattern: /^([1-9]{1})(\d{15}|\d{18})$/, message: "请输入正确的银行卡号", trigger: "blur" }],
|
||||
bankOfDeposit: [{ required: true, message: "请填写开户行", trigger: ["change", "blur"] }],
|
||||
condolenceMobile: [{ pattern: /^1[3-9]\d{9}$/, message: "请输入正确的手机号码", trigger: "blur" }],
|
||||
condolenceTime: [{ required: true, message: "请选择慰问时间", trigger: ["change", "blur"] }],
|
||||
invoiceNumber: [{ required: true, message: "请填写发票张数", trigger: ["change", "blur"] }],
|
||||
invoice: [{ required: true, message: "请填写发票号码", trigger: ["change", "blur"] }],
|
||||
paymentNotes: [{ required: true, message: "请填写支付内容", trigger: ["change", "blur"] }],
|
||||
activityName: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
mobile: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
userSign: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
certifierUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }]
|
||||
}, {pattern: /^([1-9]{1})(\d{15}|\d{18})$/, message: "请输入正确的银行卡号", trigger: "blur"}],
|
||||
bankOfDeposit: [{required: true, message: "请填写开户行", trigger: ["change", "blur"]}],
|
||||
condolenceMobile: [{pattern: /^1[3-9]\d{9}$/, message: "请输入正确的手机号码", trigger: "blur"}],
|
||||
condolenceTime: [{required: true, message: "请选择慰问时间", trigger: ["change", "blur"]}],
|
||||
// invoiceNumber: [{required: true, message: "请填写发票张数", trigger: ["change", "blur"]}],
|
||||
// invoice: [{required: true, message: "请填写发票号码", trigger: ["change", "blur"]}],
|
||||
paymentNotes: [{required: true, message: "请填写支付内容", trigger: ["change", "blur"]}],
|
||||
activityName: [{required: true, message: "请填写活动名称", trigger: ["change", "blur"]}],
|
||||
money: [{required: true, message: "请填写报销金额", trigger: ["change", "blur"]}],
|
||||
mobile: [{required: true, message: "请填写联系方式", trigger: ["change", "blur"]}],
|
||||
files: [{required: true, message: "请上传附件", trigger: ["change", "blur"]}],
|
||||
userSign: [{required: true, message: "请签名", trigger: ["change", "blur"]}],
|
||||
// certifierUserId: [{required: true, message: "请填写认证人", trigger: ["change", "blur"]}],
|
||||
|
||||
condolenceUserId: [{required: true, message: "请选择慰问对象", trigger: ["change", "blur"]}],
|
||||
condolenceTypeId: [{required: true, message: "请选择慰问类型", trigger: ["change", "blur"]}],
|
||||
way: [{required: true, message: "请选择慰问方式", trigger: ["change", "blur"]}],
|
||||
condolenceMoney: [{required: true, message: "请输入慰问金额", trigger: ["change", "blur"]}],
|
||||
participants: [{required: true, message: "请填写参与随行人员", trigger: ["change", "blur"]}],
|
||||
payer: [{required: true, message: "请选择付款人", trigger: ["change", "blur"]}],
|
||||
activityType: [{required: true, message: "请选择活动类型", trigger: ["change", "blur"]}],
|
||||
activityPlace: [{required: true, message: "请输入活动地点", trigger: ["change", "blur"]}],
|
||||
activityTime: [{required: true, message: "请选择活动时间", trigger: ["change", "blur"]}],
|
||||
activityNumber: [{required: true, message: "请输入活动人数", trigger: ["change", "blur"]}]
|
||||
},
|
||||
chooseType: {},
|
||||
userOptions: [],
|
||||
typeOptions: [],
|
||||
descOptions: [],
|
||||
reimburseProjectList: [],
|
||||
reimburseProjects: [],
|
||||
clubOptions: [],
|
||||
budgetTypeOption: []
|
||||
budgetTypeOption: [],
|
||||
payerOptions: []
|
||||
}
|
||||
},
|
||||
// 监听报销类别发生变化,报销项目联动改变
|
||||
watch: {
|
||||
"formData.reimburseType"(newVal) {
|
||||
if (newVal === "UNION_REIMBURSE_TYPE_1") {
|
||||
this.reimburseProjects = this.reimburseProjectList.filter((o) => {
|
||||
return ["1", "UNION_REIMBURSE_TYPE_1"].includes(o.remark)
|
||||
})
|
||||
"formData.hospitalizationTimeRange"(newVal) {
|
||||
if (newVal && newVal.length === 2) {
|
||||
this.$set(this.formData, "hospitalizationStartTime", newVal[0]);
|
||||
this.$set(this.formData, "hospitalizationEndTime", newVal[1]);
|
||||
} else {
|
||||
this.reimburseProjects = this.reimburseProjectList.filter((o) => {
|
||||
return ["1", "UNION_REIMBURSE_TYPE_2"].includes(o.remark)
|
||||
})
|
||||
this.$set(this.formData, "hospitalizationStartTime", null);
|
||||
this.$set(this.formData, "hospitalizationEndTime", null);
|
||||
}
|
||||
},
|
||||
// 添加对社团选择的监听
|
||||
@@ -253,6 +543,17 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
createRemoteMethodForPayer(keyword) {
|
||||
this.selectQueryUserForPayer(keyword, this.payerOptions)
|
||||
},
|
||||
selectQueryUserForPayer(keyword, options) {
|
||||
options.length = 0
|
||||
this.$axios.post("/platform/UnionReimburse/apply/listUser", {keyword: keyword}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
options.push(...res.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
createRemoteMethod(options) {
|
||||
return (keyword) => {
|
||||
this.selectQueryUser(keyword, options)
|
||||
@@ -260,32 +561,90 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
selectQueryUser(keyword, options) {
|
||||
options.length = 0
|
||||
this.$axios.post("/platform/UnionReimburse/apply/listUser", { keyword: keyword }).then((res) => {
|
||||
this.$axios.post("/platform/unionReimburse/apply/listUser", {keyword: keyword}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
options.push(...res.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
userChange(val) {
|
||||
// 获取用户历史银行卡信息
|
||||
getUserBankHistory() {
|
||||
if (!this.formData.payer) {
|
||||
this.historyData = [];
|
||||
return;
|
||||
}
|
||||
|
||||
this.$axios.get("/platform/unionReimburse/apply/findUserBankHistory", {
|
||||
params: { payer: this.formData.payer }
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.historyData = Array.isArray(res.data) ? res.data : [];
|
||||
} else {
|
||||
console.warn("获取历史银行卡信息失败:", res);
|
||||
this.historyData = [];
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
async payerUserChange(){
|
||||
if (this.formData.payer) {
|
||||
await this.getUserBankHistory();
|
||||
}
|
||||
const user = this.payerOptions.find(o => o.id === this.formData.payer)
|
||||
if (user) {
|
||||
const {userName, loginName,} = user
|
||||
this.$set(this.formData, "payerName", userName);
|
||||
this.$set(this.formData, "payerLoginname", loginName);
|
||||
}
|
||||
},
|
||||
async userChange(val) {
|
||||
const user = this.userOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
this.$set(this.formData, "certifierUserName", userName)
|
||||
this.$set(this.formData, "certifierLoginName", loginName)
|
||||
this.$set(this.formData, "certifierUnitId", unitId)
|
||||
this.$set(this.formData, "certifierUnitName", unitName)
|
||||
this.$set(this.formData, "certifierUnionId", unionId)
|
||||
this.$set(this.formData, "certifierUnionName", unionName)
|
||||
const {
|
||||
userName,
|
||||
loginName,
|
||||
unitId,
|
||||
unitName,
|
||||
unionId,
|
||||
unionName,
|
||||
unionCode,
|
||||
sex,
|
||||
birthday,
|
||||
idCard,
|
||||
mobile
|
||||
} = user
|
||||
this.$set(this.formData, "condolenceUserName", userName)
|
||||
this.$set(this.formData, "condolenceLoginName", loginName)
|
||||
this.$set(this.formData, "condolenceUnitId", unitId)
|
||||
this.$set(this.formData, "condolenceUnitName", unitName)
|
||||
this.$set(this.formData, "condolenceUnionId", unionId)
|
||||
this.$set(this.formData, "condolenceUnionName", unionName)
|
||||
this.$set(this.formData, "condolenceUnionCode", unionCode)
|
||||
this.$set(this.formData, "condolenceSex", sex)
|
||||
this.$set(this.formData, "condolenceBirthday", birthday)
|
||||
this.$set(this.formData, "condolenceIdCard", idCard)
|
||||
this.$set(this.formData, "condolenceMobile", mobile)
|
||||
}
|
||||
},
|
||||
typeChange(val) {
|
||||
const type = this.typeOptions.find(o => o.id === val)
|
||||
if (type) {
|
||||
const {id, way, money, uploadFileDesc,name} = type
|
||||
this.$set(this.formData, "condolenceTypeId", id)
|
||||
this.$set(this.formData, "way", way)
|
||||
this.$set(this.formData, "condolenceMoney", parseFloat(money).toFixed(2))
|
||||
this.$set(this.formData, "condolenceFilesNotes", uploadFileDesc)
|
||||
this.$set(this.formData, "typeName", name)
|
||||
}
|
||||
},
|
||||
//
|
||||
typeChange(id) {
|
||||
this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||
if (this.chooseType) {
|
||||
this.$set(this.formData, "money", this.chooseType.money)
|
||||
this.$set(this.formData, "way", this.chooseType.way)
|
||||
}
|
||||
},
|
||||
// typeChange(id) {
|
||||
// this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||
// if (this.chooseType) {
|
||||
// this.$set(this.formData, "money", this.chooseType.money)
|
||||
// this.$set(this.formData, "way", this.chooseType.way)
|
||||
// }
|
||||
// },
|
||||
// 保存
|
||||
onSave() {
|
||||
this.$confirm("您确定保存吗?", "提示", {
|
||||
@@ -293,7 +652,7 @@ layout("/layouts/platform.html"){
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/unionReimburse/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
this.$axios.post("/platform/unionReimburse/apply/save", {data: JSON.stringify(this.formData)}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
commonUtil.pjaxPush("/platform/unionReimburse/mine/index")
|
||||
@@ -308,7 +667,7 @@ layout("/layouts/platform.html"){
|
||||
if (valid) {
|
||||
resolve(true)
|
||||
} else {
|
||||
this.$message.error("请完善必填信息")
|
||||
this.$message.warning("请完善必填信息")
|
||||
resolve(false)
|
||||
}
|
||||
})
|
||||
@@ -316,7 +675,6 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
// 提交
|
||||
async onSubmit() {
|
||||
// 表单验证
|
||||
const isValid = await this.validateBeforeSubmit()
|
||||
if (!isValid) return
|
||||
|
||||
@@ -337,7 +695,6 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
// 再次提交
|
||||
async onFinishTask() {
|
||||
// 表单验证
|
||||
const isValid = await this.validateBeforeSubmit()
|
||||
if (!isValid) return
|
||||
|
||||
@@ -364,6 +721,21 @@ layout("/layouts/platform.html"){
|
||||
this.typeOptions = resp.data
|
||||
})
|
||||
},
|
||||
queryFileDesc() {
|
||||
this.$axios.post("/platform/unionReimburse/desc/queryFileDesc")
|
||||
.then((resp) => {
|
||||
this.descOptions = resp.data
|
||||
console.log(this.descOptions)
|
||||
})
|
||||
},
|
||||
// 根据报销项目获取对应的附件说明
|
||||
getFileDescByProject(projectCode) {
|
||||
if (!this.descOptions || !Array.isArray(this.descOptions)) {
|
||||
return '';
|
||||
}
|
||||
const project = this.descOptions.find(item => item.reimburseProject === projectCode);
|
||||
return project ? project.fileDesc : '';
|
||||
},
|
||||
//经费来源查询
|
||||
reimburseFundSourceChange() {
|
||||
// 检查是否有选择经费来源
|
||||
@@ -437,6 +809,12 @@ layout("/layouts/platform.html"){
|
||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||
|
||||
} else {
|
||||
if (this.formData.hospitalizationStartTime && this.formData.hospitalizationEndTime) {
|
||||
this.$set(this.formData, "hospitalizationTimeRange", [
|
||||
this.formData.hospitalizationStartTime,
|
||||
this.formData.hospitalizationEndTime
|
||||
]);
|
||||
}
|
||||
if (this.$auth.hasRoleOr(["SCHOOL_OUTLAY_ADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||
this.budgetTypeOption.map(v => {
|
||||
if (["UNION_REIMBURSE_FUND_SOURCE_1"].includes(v.code)) {
|
||||
@@ -462,7 +840,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
this.reimburseProjectList = await this.$businessTool.getDictOptions("UNION_REIMBURSE_PROJECT")
|
||||
if (this.bizId) {
|
||||
this.$axios.post("/platform/unionReimburse/apply/info", { id: this.bizId }).then(async (res) => {
|
||||
this.$axios.post("/platform/unionReimburse/apply/info", {id: this.bizId}).then(async (res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
await this.selectQueryUser(this.formData.certifierLoginName, this.userOptions)
|
||||
@@ -470,7 +848,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||
const {username, loginname, id, unit, union, mobile} = this.$store.state.user
|
||||
this.formData = {
|
||||
userName: username,
|
||||
loginName: loginname,
|
||||
@@ -478,17 +856,21 @@ layout("/layouts/platform.html"){
|
||||
unitName: unit?.name,
|
||||
unionId: union?.id,
|
||||
unionName: union?.name,
|
||||
reimburseType: "UNION_REIMBURSE_TYPE_1",
|
||||
// reimburseType: "UNION_REIMBURSE_TYPE_1",
|
||||
reimburseProject: 'UNION_REIMBURSE_PROJECT_1',
|
||||
paymentWay: 'UNION_REIMBURSE_PAYMENT_WAY_2',
|
||||
mobile: mobile,
|
||||
userId: id
|
||||
userId: id,
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
this.queryFileDesc()
|
||||
this.queryCondolenceType()
|
||||
//社团查询
|
||||
this.$businessTool.listClubByRole().then((res) => (this.clubOptions = res))
|
||||
this.$businessTool.listCLubByRole().then((res) => (this.clubOptions = res))
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
+88
-23
@@ -46,7 +46,8 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
<el-card shadow="never">
|
||||
<table-tool label="申请列表">
|
||||
<el-button @click="onExport" icon="el-icon-s-promotion" type="primary" size="small">导出</el-button>
|
||||
<el-button type="primary" size="small" @click="exportSkr">导出收款人名册</el-button>
|
||||
<!-- <el-button @click="onExport" icon="el-icon-s-promotion" type="primary" size="small">导出</el-button>-->
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
|
||||
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
|
||||
@@ -54,37 +55,38 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="unionName" label="所属工会"></el-table-column>
|
||||
<el-table-column prop="unitName" label="所属单位"></el-table-column>
|
||||
<el-table-column prop="certifierUserName" label="证明人">
|
||||
<template slot-scope="{row}">
|
||||
{{row.certifierUserName}}({{row.certifierLoginName}})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="reimburseType" label="报销类别">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_TYPE"
|
||||
:value="row.reimburseType">
|
||||
</dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间"></el-table-column>
|
||||
<el-table-column prop="reimburseProject" label="报销项目">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_PROJECT"
|
||||
:value="row.reimburseProject">
|
||||
</dict-tag>
|
||||
<span v-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">慰问</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">文体活动</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_3'">日常活动</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_4'">专项活动</span>
|
||||
<span v-else>{{ row.reimburseProject }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="money" label="金额"></el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间"></el-table-column>
|
||||
<el-table-column prop="taskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column label="备注">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
<span v-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
被慰问人:{{ row.condolenceUserName }}</span>
|
||||
<span v-else>活动名称:{{ row.activityName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="300px">
|
||||
<el-table-column label="申请状态">
|
||||
<template slot-scope="{row}">
|
||||
<span v-if="row.stateId == 1" style="color: #409eff;">待提交</span>
|
||||
<span v-else-if="row.stateId == 2" style="color: #409eff;">待审核确认</span>
|
||||
<span v-else-if="row.stateId == 3" style="color: #67c23a;">报销成功</span>
|
||||
<span v-else-if="row.stateId == 4" style="color: #f56c6c;">拒绝</span>
|
||||
<span v-else-if="row.stateId == 5" style="color: #409eff;">退回</span>
|
||||
<span v-else style="color: #409eff;">{{ row.stateId }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="350px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button @click="openEdit(row)" size="mini" type="primary">实际金额</el-button>
|
||||
<el-button v-if="row.stateId == 3" @click="doPrint(row)" size="mini" type="primary">打印</el-button>
|
||||
<el-button v-if="$auth.hasRole('SYSADMIN')" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -96,6 +98,17 @@ layout("/layouts/platform.html"){
|
||||
<union-reimburse-info ref="unionReimburseInfoRef">
|
||||
</union-reimburse-info>
|
||||
</template>
|
||||
<el-dialog :visible.sync="editDialogVisible" title="编辑实际报销金额" width="400px" @close="handleDialogClose">
|
||||
<el-form :model="editFormData" :rules="editFormRules" ref="editForm" label-width="120px">
|
||||
<el-form-item label="实际报销金额" prop="realMoney">
|
||||
<el-input v-model="editFormData.realMoney" placeholder="请输入实际报销金额"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="editDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="saveFinallyMoney">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
@@ -117,6 +130,17 @@ layout("/layouts/platform.html"){
|
||||
pageDataUrl: "/platform/unionReimburse/collect/pageData",
|
||||
unionOptions: [],
|
||||
unitOptions: [],
|
||||
editDialogVisible: false,
|
||||
editFormData: {
|
||||
realMoney: '',
|
||||
id: '' // 报销记录ID
|
||||
},
|
||||
editFormRules: {
|
||||
realMoney: [
|
||||
{ required: true, message: '请输入实际报销金额', trigger: 'blur' },
|
||||
{ pattern: /^([0-9]+)(\.[0-9]{1,2})?$/, message: '请输入正确的金额格式', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
,
|
||||
@@ -141,6 +165,47 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
})
|
||||
},
|
||||
openEdit(row) {
|
||||
// 初始化编辑表单数据
|
||||
this.editFormData.id = row.id;
|
||||
this.editFormData.realMoney = row.realMoney || '';
|
||||
this.editDialogVisible = true;
|
||||
},
|
||||
|
||||
// 弹窗关闭时的处理
|
||||
handleDialogClose() {
|
||||
this.$refs.editForm.resetFields();
|
||||
},
|
||||
|
||||
// 保存实际报销金额
|
||||
saveFinallyMoney() {
|
||||
this.$refs.editForm.validate(async (valid) => {
|
||||
if (valid) {
|
||||
const resp = await this.$axios.post("/platform/unionReimburse/collect/updateActuallyAmount", {
|
||||
id: this.editFormData.id,
|
||||
realMoney: this.editFormData.realMoney
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success('保存成功');
|
||||
this.editDialogVisible = false;
|
||||
this.$refs.editForm.resetFields();
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
exportSkr() {
|
||||
const {year = '', unionId = '', unitId = '', reimburseProject = ''} = this.pageForm
|
||||
window.open('/platform/unionReimburse/collect/exportSkr?year=' + year + "&unionId=" + unionId + '&unitId=' + unitId + "&reiItemId=" + reimburseProject)
|
||||
},
|
||||
doPrint(row) {
|
||||
if (row.reimburseProject != "UNION_REIMBURSE_PROJECT_1") {
|
||||
window.location.href = "/platform/unionReimburse/mine/ActExport?id=" + (row.id || '') + "&Print=true"
|
||||
} else {
|
||||
window.location.href = "/platform/unionReimburse/mine/ConExport?id=" + (row.id || '') + "&Print=true"
|
||||
}
|
||||
},
|
||||
onExport() {
|
||||
this.$downLoad('/platform/unionReimburse/collect/onExport', this.pageForm)
|
||||
},
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
const basicForm = {
|
||||
template: /*language=HTML*/ `
|
||||
<div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="110px" label-position="left">
|
||||
<el-form-item label="项目编码" prop="code">
|
||||
<el-input type="text" v-model="formData.code" maxlength="50"
|
||||
placeholder="请填写项目编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="name">
|
||||
<el-input type="text" v-model="formData.name" maxlength="50"
|
||||
placeholder="请填写项目名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件说明" prop="fileDesc">
|
||||
<el-input type="text" v-model="formData.fileDesc" maxlength="50"
|
||||
placeholder="请填写附件说明"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row class="mt10" justify="end" type="flex">
|
||||
<el-button @click="$emit('refresh')">取消</el-button>
|
||||
<el-button @click="onSubmit" type="primary">提交</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
return {
|
||||
formData: {},
|
||||
formRules: {
|
||||
code: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
fileDesc: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(row) {
|
||||
if(row && row.id) {
|
||||
this.formData = clone(row)
|
||||
}
|
||||
},
|
||||
onSubmit() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
const resp = await this.$axios.post("/platform/unionReimburse/desc/onSubmit", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.$emit('refresh')
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
.el-input-number .el-input__inner {
|
||||
text-align: left;
|
||||
}
|
||||
`
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="名称/编码">
|
||||
<el-input placeholder="请输入名称或编码" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<table-tool label="类型列表">
|
||||
<el-button type="primary" size="small" @click="onAdd">
|
||||
<i class="ti-plus"></i>
|
||||
新增类型
|
||||
</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" :size="tableSize">
|
||||
<el-table-column label="序号" type="index" :index="indexMethod" width="60"></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:width="column.width"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template v-slot="{ row }" v-if="column.prop === 'isUploadFile'">
|
||||
<span v-if="row.isUploadFile" class="text-success">是</span>
|
||||
<span v-else class="text-danger">否</span>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="column.prop === 'enable'">
|
||||
<el-switch
|
||||
@change="switchChange(row)"
|
||||
v-model="row.enable"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949">
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="230">
|
||||
<template v-slot="{ row }">
|
||||
<el-button @click="onEdit(row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button @click="onDelete(row)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<basic-form ref="basicFormRef" @refresh="refresh"></basic-form>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('basicForm.js'){}#-->
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
"basic-form": basicForm,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableColumns: [
|
||||
{prop: 'code', label: '项目编码'},
|
||||
{prop: 'name', label: '项目名称'},
|
||||
{prop: 'fileDesc', label: '附件说明'},
|
||||
// {prop: 'isUploadFile', label: '是否上传附件'},
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
refresh() {
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
},
|
||||
onAdd() {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.$refs.basicFormRef.onOpen()
|
||||
})
|
||||
},
|
||||
onEdit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.$refs.basicFormRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onDelete(row) {
|
||||
this.$confirm("您确定要删除吗, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios.post("/platform/unionReimburse/desc/onDelete", { id: row.id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
switchChange(row) {
|
||||
this.$axios.post("/platform/unionReimburse/desc/onSubmit", row).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
this.$axios.post(loc() + "/pageData", this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.list
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -10,37 +10,157 @@ const unionReimburseInfo = {
|
||||
<el-descriptions-item label="工号">{{viewData.loginName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工会">{{viewData.unionName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="报销类别">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_TYPE"
|
||||
:value="viewData.reimburseType">
|
||||
</dict-tag>
|
||||
|
||||
<el-descriptions-item label="报销项目">
|
||||
<span v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">慰问</span>
|
||||
<span v-else-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">文体活动</span>
|
||||
<span v-else-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_3'">日常活动</span>
|
||||
<span v-else-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_4'">专项活动</span>
|
||||
<span v-else>{{ viewData.reimburseProject }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="支付方式">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_PAYMENT_WAY"
|
||||
:value="viewData.paymentWay">
|
||||
</dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="报销项目">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_PROJECT"
|
||||
:value="viewData.reimburseProject">
|
||||
</dict-tag>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="联系方式">{{viewData.mobile}}</el-descriptions-item>
|
||||
<el-descriptions-item label="证明人">{{viewData.certifierUserName}}({{viewData.certifierLoginName}})
|
||||
|
||||
<el-descriptions-item label="付款人" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
|
||||
<span>{{ viewData.payerName }}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="户名">{{viewData.bankUserName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="银行账号">{{viewData.bankCardNumber}}</el-descriptions-item>
|
||||
<el-descriptions-item label="开户行">{{viewData.bankOfDeposit}}</el-descriptions-item>
|
||||
<el-descriptions-item label="活动名称">{{viewData.activityName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="活动地点">{{viewData.activityPlace||'暂无'}}</el-descriptions-item>
|
||||
<el-descriptions-item label="报销金额">{{viewData.money}}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="发票张数">{{viewData.invoiceNumber}}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="支付内容" :span="2">{{viewData.paymentNotes}}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-image :src="viewData.userSign" fit="cover" style="height: 60px"
|
||||
v-if="viewData.userSign"></el-image>
|
||||
<span v-else>暂无附件</span>
|
||||
|
||||
<el-descriptions-item label="开户行" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
|
||||
<span>{{ viewData.bankOfDeposit }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="银行卡号" v-if="viewData.paymentWay === 'UNION_REIMBURSE_PAYMENT_WAY_2'">
|
||||
<span>{{ viewData.bankCardNumber }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 慰问相关字段 -->
|
||||
<el-descriptions-item label="慰问对象" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceUserName }}({{ viewData.condolenceLoginName }})({{ viewData.condolenceUnitName }})</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="性别" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceSex }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="生日" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceBirthday && $moment(viewData.condolenceBirthday).isValid() ? $moment(viewData.condolenceBirthday).format('YYYY-MM-DD') : '' }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="身份证号" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceIdCard }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="联系方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceMobile }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.typeName }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.way }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceMoney }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="实际报销金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.realMoney }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 活动相关字段 -->
|
||||
<el-descriptions-item label="活动名称" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.activityName }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="活动类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">
|
||||
<span>{{ viewData.activityType }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="活动人数" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.activityNumber }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="活动地点" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.activityPlace }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.money }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="实际报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.realMoney }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.activityTime | dateFormat }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="发票张数">
|
||||
<span>{{ viewData.invoiceNumber }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.condolenceTime | dateFormat }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="结婚时间" v-if="viewData.condolenceTypeId === 'cf4ce7af322d464f8f86d818fcc00203'">
|
||||
<span>{{ viewData.marryTime | dateFormat }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="生育时间" v-if="viewData.condolenceTypeId === 'c90cb10dce6542e99ae271bee6fe8cc0'">
|
||||
<span>{{ viewData.fertilityTime | dateFormat }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="住院病由" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<span>{{ viewData.hospitalCausation }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="住院时间" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<span v-if="viewData.hospitalizationStartTime && viewData.hospitalizationEndTime">
|
||||
{{ $moment(viewData.hospitalizationStartTime).format('YYYY-MM-DD') }} 至 {{ $moment(viewData.hospitalizationEndTime).format('YYYY-MM-DD') }}
|
||||
</span>
|
||||
<span v-else>暂无住院时间</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="入住医院" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<span>{{ viewData.hospital }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="当年次数" v-if="viewData.condolenceTypeId === '4e316737e71047e0b01aea78524c1416'">
|
||||
<span>{{ viewData.hospitalCount }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="去逝时间" v-if="viewData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
|
||||
<span>{{ viewData.deathTime | dateFormat }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="与被慰问人关系" v-if="viewData.condolenceTypeId === '60f03a87b62b4823855814afdbf5672a'">
|
||||
<span>{{ viewData.condolenceRelationship }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="参加随行人员" :span="2"
|
||||
v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
<span>{{ viewData.participants }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="报销事由" :span="2">
|
||||
<span>{{ viewData.paymentNotes }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="备注" :span="2">
|
||||
<span>{{ viewData.notes }}</span>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="附件" :span="2">
|
||||
<file-preview v-if="viewData.files && viewData.files.length > 0" :files="viewData.files"
|
||||
complete_result></file-preview>
|
||||
@@ -48,39 +168,21 @@ const unionReimburseInfo = {
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<template v-for="task in doneTasks">
|
||||
<div class="mt10">
|
||||
<div class="process-title">{{ task.displayName }}</div>
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id"
|
||||
v-if="task.ext.isFirstTaskNode">
|
||||
<el-descriptions-item label="申请用户">{{ task.ext.initiatorName
|
||||
}}({{task.ext.initiatorAccount}})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<template>
|
||||
<div class="mt10" v-if="viewData.reviewTime">
|
||||
<div class="process-title">校工会审核</div>
|
||||
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id" v-else>
|
||||
<el-descriptions-item label="办理用户">{{ task.taskFormData.userName
|
||||
}}({{task.taskFormData.loginName}})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode" :span="3">{{
|
||||
task.taskFormData.opinion }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="3">
|
||||
<el-image v-if="task.ext.tf_userSign"
|
||||
:src="task.ext.tf_userSign"
|
||||
class="signature-image"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions border class="flow-task-form" :column="2">
|
||||
<el-descriptions-item label="审核时间">{{ viewData.reviewTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核状态">
|
||||
<span v-if="viewData.stateId == 1" style="color: #409eff;">待提交</span>
|
||||
<span v-else-if="viewData.stateId == 2" style="color: #409eff;">待审核确认</span>
|
||||
<span v-else-if="viewData.stateId == 3" style="color: #67c23a;">报销成功</span>
|
||||
<span v-else-if="viewData.stateId == 4" style="color: #f56c6c;">拒绝</span>
|
||||
<span v-else-if="viewData.stateId == 5" style="color: #409eff;">退回</span>
|
||||
<span v-else style="color: #409eff;">{{ viewData.stateId }}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见">{{ viewData.reviewOpinion }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
@@ -90,12 +192,18 @@ const unionReimburseInfo = {
|
||||
</div>
|
||||
`,
|
||||
store,
|
||||
dicts: ["UNION_REIMBURSE_TYPE", "UNION_REIMBURSE_PAYMENT_WAY", "UNION_REIMBURSE_FUND_SOURCE","UNION_REIMBURSE_PROJECT","PROCESS_TASK_SUBMIT_TYPE"],
|
||||
dicts: ["UNION_REIMBURSE_TYPE", "UNION_REIMBURSE_PAYMENT_WAY", "UNION_REIMBURSE_FUND_SOURCE", "UNION_REIMBURSE_PROJECT", "PROCESS_TASK_SUBMIT_TYPE"],
|
||||
filters: {
|
||||
dateFormat(date) {
|
||||
if (!date) return '';
|
||||
return moment(date).format('YYYY-MM-DD');
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
viewData: {},
|
||||
doneTasks: [],
|
||||
typeName: '',
|
||||
row: null
|
||||
}
|
||||
},
|
||||
@@ -105,32 +213,30 @@ const unionReimburseInfo = {
|
||||
this.row = row
|
||||
this.visible = true
|
||||
this.getInfo()
|
||||
this.getDoneTasks()
|
||||
},
|
||||
// 获取申请信息
|
||||
getInfo() {
|
||||
this.$axios.post('/platform/unionReimburse/apply/info', {id: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
this.typeName = res.data.typeName || ''
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 获取已办任务审批记录
|
||||
getDoneTasks() {
|
||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 查看流程图
|
||||
openChart(){
|
||||
this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId,this.row.instanceId)
|
||||
}
|
||||
// // 获取已办任务审批记录
|
||||
// getDoneTasks() {
|
||||
// this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
// if (res.code === 0) {
|
||||
// this.doneTasks = res.data
|
||||
// }
|
||||
// })
|
||||
// },
|
||||
//
|
||||
// // 查看流程图
|
||||
// openChart(){
|
||||
// this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId,this.row.instanceId)
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+61
-46
@@ -13,24 +13,24 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select v-model="pageForm.unionId" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择所属工会" clearable>
|
||||
<el-option v-for="item in unionOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<el-select v-model="pageForm.unionId" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择所属工会" clearable>
|
||||
<el-option v-for="item in unionOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select v-model="pageForm.unitId" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择所属单位" clearable>
|
||||
<el-option v-for="item in unitOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<el-select v-model="pageForm.unitId" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择所属单位" clearable>
|
||||
<el-option v-for="item in unitOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="报销项目">
|
||||
<el-select v-model="pageForm.reimburseProject" @change="doSearch" style="width: 100%"
|
||||
@@ -52,41 +52,41 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="unionName" label="所属工会"></el-table-column>
|
||||
<el-table-column prop="unitName" label="所属单位"></el-table-column>
|
||||
<el-table-column prop="certifierUserName" label="证明人">
|
||||
<template slot-scope="{row}">
|
||||
{{row.certifierUserName}}({{row.certifierLoginName}})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="reimburseType" label="报销类别">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_TYPE"
|
||||
:value="row.reimburseType">
|
||||
</dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间"></el-table-column>
|
||||
<el-table-column prop="reimburseProject" label="报销项目">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_PROJECT"
|
||||
:value="row.reimburseProject">
|
||||
</dict-tag>
|
||||
<span v-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">慰问</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">文体活动</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_3'">日常活动</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_4'">专项活动</span>
|
||||
<span v-else>{{ row.reimburseProject }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="money" label="金额"></el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间"></el-table-column>
|
||||
<el-table-column prop="taskName" label="当前节点"></el-table-column>·
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column label="备注">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
<span v-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
被慰问人:{{ row.condolenceUserName }}</span>
|
||||
<span v-else>活动名称:{{ row.activityName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请状态">
|
||||
<template slot-scope="{row}">
|
||||
<span v-if="row.stateId == 1" style="color: #409eff;">待提交</span>
|
||||
<span v-else-if="row.stateId == 2" style="color: #409eff;">待审核确认</span>
|
||||
<span v-else-if="row.stateId == 3" style="color: #67c23a;">报销成功</span>
|
||||
<span v-else-if="row.stateId == 4" style="color: #f56c6c;">拒绝</span>
|
||||
<span v-else-if="row.stateId == 5" style="color: #409eff;">退回</span>
|
||||
<span v-else style="color: #409eff;">{{ row.stateId }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="300px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(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>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</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.stateId == 1 || row.stateId == 5" @click="onEdit(row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button v-if="row.stateId == 2" @click="onRevoke(row.id)" size="mini" type="danger">撤回</el-button>
|
||||
<el-button v-if="row.stateId == 3" @click="doExport(row)" size="mini" type="primary">导出报销表</el-button>
|
||||
<el-button v-if="row.stateId == 3" @click="doPrint(row)" size="mini" type="primary">打印</el-button>
|
||||
<el-button v-if="row.stateId == 1" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -100,13 +100,12 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../info.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
dicts: ["UNION_REIMBURSE_TYPE","UNION_REIMBURSE_PROJECT"],
|
||||
dicts: ["UNION_REIMBURSE_TYPE", "UNION_REIMBURSE_PROJECT"],
|
||||
//分页数据
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
@@ -122,20 +121,20 @@ layout("/layouts/platform.html"){
|
||||
,
|
||||
methods: {
|
||||
onView(row) {
|
||||
this.$refs.guava.view(()=>{
|
||||
this.$refs.guava.view(() => {
|
||||
this.$refs.unionReimburseInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onEdit(row) {
|
||||
commonUtil.pjaxPush('/platform/unionReimburse/apply/index?taskId=' + (row.startTaskId || '') + "&bizId=" + row.id)
|
||||
},
|
||||
onRevoke(row) {
|
||||
onRevoke(id) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.startTaskId}).then((res) => {
|
||||
this.$axios.post("/platform/unionReimburse/mine/revokeTask", {id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
@@ -157,6 +156,22 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
doExport(row) {
|
||||
if (row.reimburseProject != "UNION_REIMBURSE_PROJECT_1") {
|
||||
window.location.href = "/platform/unionReimburse/mine/ActExport?id=" + (row.id || '')
|
||||
} else {
|
||||
window.location.href = "/platform/unionReimburse/mine/ConExport?id=" + (row.id || '')
|
||||
}
|
||||
},
|
||||
|
||||
doPrint(row) {
|
||||
if (row.reimburseProject != "UNION_REIMBURSE_PROJECT_1") {
|
||||
window.location.href = "/platform/unionReimburse/mine/ActExport?id=" + (row.id || '') + "&Print=true"
|
||||
} else {
|
||||
window.location.href = "/platform/unionReimburse/mine/ConExport?id=" + (row.id || '') + "&Print=true"
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
+56
-56
@@ -46,6 +46,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
<el-card shadow="never">
|
||||
<table-tool>
|
||||
<el-button @click="AllReview" size="medium" type="primary">一键审核</el-button>
|
||||
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
@@ -57,40 +58,37 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="unionName" label="所属工会"></el-table-column>
|
||||
<el-table-column prop="unitName" label="所属单位"></el-table-column>
|
||||
<el-table-column prop="certifierUserName" label="证明人">
|
||||
<template slot-scope="{row}">
|
||||
{{row.certifierUserName}}({{row.certifierLoginName}})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="reimburseType" label="报销类别">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_TYPE"
|
||||
:value="row.reimburseType">
|
||||
</dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间"></el-table-column>
|
||||
<el-table-column prop="reimburseProject" label="报销项目">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.UNION_REIMBURSE_PROJECT"
|
||||
:value="row.reimburseProject">
|
||||
</dict-tag>
|
||||
<span v-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">慰问</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">文体活动</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_3'">日常活动</span>
|
||||
<span v-else-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_4'">专项活动</span>
|
||||
<span v-else>{{ row.reimburseProject }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="money" label="金额"></el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间"></el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column label="备注">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
<span v-if="row.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">
|
||||
被慰问人:{{ row.condolenceUserName }}</span>
|
||||
<span v-else>活动名称:{{ row.activityName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请状态">
|
||||
<template slot-scope="{row}">
|
||||
<span v-if="row.stateId == 1" style="color: #409eff;">待提交</span>
|
||||
<span v-else-if="row.stateId == 2" style="color: #409eff;">待审核确认</span>
|
||||
<span v-else-if="row.stateId == 3" style="color: #67c23a;">报销成功</span>
|
||||
<span v-else-if="row.stateId == 4" style="color: #f56c6c;">拒绝</span>
|
||||
<span v-else-if="row.stateId == 5" style="color: #409eff;">退回</span>
|
||||
<span v-else style="color: #409eff;">{{ row.stateId }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="300px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskState === 10" @click="openAudit(row)" size="mini" type="primary">审核
|
||||
</el-button>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
<el-button v-if="row.stateId == 2" @click="openAudit(row)" size="mini" type="primary">审核
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -102,24 +100,24 @@ layout("/layouts/platform.html"){
|
||||
<union-reimburse-info ref="unionReimburseInfoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
校工会审核
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
<el-form-item label="审批意见" prop="reviewOpinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
<el-form-item label="签字" prop="tf_userSign"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<pc-signature v-model="formData.tf_userSign"></pc-signature>
|
||||
<user-opinion-textarea v-model="formData.reviewOpinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="签字" prop="tf_userSign"-->
|
||||
<!-- :rules="[{required:true,message:'必填',trigger:['change','blur']}]">-->
|
||||
<!-- <pc-signature v-model="formData.tf_userSign"></pc-signature>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
<el-button @click="handleTaskAction(5)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(4)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(3)" size="small" type="primary">同意申请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</union-reimburse-info>
|
||||
@@ -160,12 +158,31 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
|
||||
AllReview() {
|
||||
this.$confirm('确定所有申请都通过线下审核了吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
const resp = await $.post("/platform/unionReimburse/review/allReview");
|
||||
if (resp && resp.code === 0) {
|
||||
this.pageForm.approval = true
|
||||
this.pageData();
|
||||
this.$message.success(resp.msg || '一键审核成功');
|
||||
} else {
|
||||
this.$message.error(resp.msg || '一键审核失败');
|
||||
}
|
||||
}).catch(() => {
|
||||
// 用户取消操作
|
||||
});
|
||||
},
|
||||
|
||||
openAudit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = true
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
id: row.id,
|
||||
reviewOpinion: '通过'
|
||||
}
|
||||
this.$refs.unionReimburseInfoRef.onOpen(row)
|
||||
})
|
||||
@@ -179,11 +196,9 @@ layout("/layouts/platform.html"){
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
this.$axios.post("/platform/unionReimburse/review/reviewTask", {
|
||||
data: JSON.stringify({...this.formData}),
|
||||
submitType: val
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
@@ -196,21 +211,6 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", { taskId: row.taskId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
+312
@@ -0,0 +1,312 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="年度"
|
||||
style="width: 100%"></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入慰问对象姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select v-model="pageForm.unionId" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择所属工会" clearable>
|
||||
<el-option v-for="item in unionOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="慰问类型">
|
||||
<el-select v-model="pageForm.condolenceTypeId" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择慰问类型" clearable>
|
||||
<el-option v-for="item in typeOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:label="item.name+'('+item.code+')'"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="慰问方式">
|
||||
<el-select v-model="pageForm.way" @change="doSearch" style="width: 100%"
|
||||
placeholder="请选择慰问方式" clearable>
|
||||
<el-option v-for="option in wayOptions"
|
||||
:key="option.value"
|
||||
:label="option.label"
|
||||
:value="option.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<!-- <search-item label="所属单位">-->
|
||||
<!-- <el-select v-model="pageForm.unitId" @change="doSearch" style="width: 100%"-->
|
||||
<!-- placeholder="请选择所属单位" clearable>-->
|
||||
<!-- <el-option v-for="item in unitOptions"-->
|
||||
<!-- :value="item.id"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.name"-->
|
||||
<!-- ></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </search-item>-->
|
||||
<!-- <search-item label="报销项目">-->
|
||||
<!-- <el-select v-model="pageForm.reimburseProject" @change="doSearch" style="width: 100%"-->
|
||||
<!-- placeholder="请选择报销项目" clearable>-->
|
||||
<!-- <el-option v-for="item in dict.type.UNION_REIMBURSE_PROJECT"-->
|
||||
<!-- :value="item.code"-->
|
||||
<!-- :key="item.code"-->
|
||||
<!-- :label="item.name"-->
|
||||
<!-- ></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </search-item>-->
|
||||
|
||||
</search>
|
||||
</el-card>
|
||||
<div id="condolencesTypeId"
|
||||
style="width: 100%;height:calc(50% - 35px);box-sizing: border-box;padding: 30px 10px"
|
||||
v-loading="loading.condolencesType"></div>
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool label="申请列表">
|
||||
<el-button @click="allView" icon="el-icon-refresh" type="primary" size="small">查看全部</el-button>
|
||||
<el-button @click="onExport" icon="el-icon-s-promotion" type="primary" size="small">导出</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" row-key="id" style="width: 100%"
|
||||
v-loading="tabLoading">
|
||||
<el-table-column align="center" header-align="center" label="序号" width="120px">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="condolenceLoginName" label="被慰问人工号"></el-table-column>
|
||||
<el-table-column prop="condolenceUserName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="condolenceUnionCode" label="分工会代码"></el-table-column>
|
||||
<el-table-column prop="condolenceUnionName" label="分工会名称"></el-table-column>
|
||||
<el-table-column prop="typeName" label="慰问类型"></el-table-column>
|
||||
<el-table-column prop="way" label="慰问方式"></el-table-column>
|
||||
<el-table-column prop="condolenceMoney" label="慰问金额"></el-table-column>
|
||||
<el-table-column prop="newCreateTime" label="慰问时间"></el-table-column>
|
||||
<el-table-column prop="newCondolenceTime" label="录入时间"></el-table-column>
|
||||
<el-table-column label="申请状态">
|
||||
<template slot-scope="{row}">
|
||||
<span v-if="row.stateId == 1" style="color: #409eff;">待提交</span>
|
||||
<span v-else-if="row.stateId == 2" style="color: #409eff;">待审核确认</span>
|
||||
<span v-else-if="row.stateId == 3" style="color: #67c23a;">报销成功</span>
|
||||
<span v-else-if="row.stateId == 4" style="color: #f56c6c;">拒绝</span>
|
||||
<span v-else-if="row.stateId == 5" style="color: #409eff;">退回</span>
|
||||
<span v-else style="color: #409eff;">{{ row.stateId }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="300px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
<template #edit>
|
||||
<union-reimburse-info ref="unionReimburseInfoRef">
|
||||
</union-reimburse-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../info.js'){}#-->
|
||||
const chart = {
|
||||
condolencesTypeId: undefined
|
||||
}
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
dicts: ["UNION_REIMBURSE_TYPE","UNION_REIMBURSE_PROJECT"],
|
||||
//分页数据
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
"union-reimburse-info": unionReimburseInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageDataUrl: "/platform/unionReimburse/statistics/pageData",
|
||||
unionOptions: [],
|
||||
unitOptions: [],
|
||||
typeOptions: [],
|
||||
wayOptions: [
|
||||
{label: "慰问金 (A)", value: "慰问金 (A)"},
|
||||
{label: "提货券 (B)", value: "提货券 (B)"},
|
||||
{label: "慰问品 (C)", value: "慰问品 (C)"}
|
||||
],
|
||||
condolence: {
|
||||
way: {
|
||||
'慰问金 (A)': '慰问金 (A)',
|
||||
'提货券 (B)': '提货券 (B)',
|
||||
'慰问品 (C)': '慰问品 (C)'
|
||||
},
|
||||
},
|
||||
tabLoading: false,
|
||||
loading: {
|
||||
condolencesType: false,
|
||||
},
|
||||
editDialogVisible: false,
|
||||
editFormData: {
|
||||
realMoney: '',
|
||||
id: '' // 报销记录ID
|
||||
},
|
||||
pageForm:{
|
||||
reimburseProject:"UNION_REIMBURSE_PROJECT_1",
|
||||
},
|
||||
editFormRules: {
|
||||
realMoney: [
|
||||
{ required: true, message: '请输入实际报销金额', trigger: 'blur' },
|
||||
{ pattern: /^([0-9]+)(\.[0-9]{1,2})?$/, message: '请输入正确的金额格式', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
,
|
||||
methods: {
|
||||
onView(row) {
|
||||
this.$refs.guava.edit(()=>{
|
||||
this.showApprovalForm = false
|
||||
this.$refs.unionReimburseInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onDelete(id) {
|
||||
this.$confirm("您确定要删除吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/unionReimburse/mine/delete", {id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
openEdit(row) {
|
||||
// 初始化编辑表单数据
|
||||
this.editFormData.id = row.id;
|
||||
this.editFormData.realMoney = row.realMoney || '';
|
||||
this.editDialogVisible = true;
|
||||
},
|
||||
queryCondolenceType() {
|
||||
this.$axios.post("/platform/unionReimburse/apply/queryCondolenceType")
|
||||
.then((resp) => {
|
||||
this.typeOptions = resp.data
|
||||
})
|
||||
},
|
||||
allView() {
|
||||
this.$set(this.pageForm, 'condolenceTypeId', null);
|
||||
this.$set(this.pageForm, 'way', '');
|
||||
this.doSearch();
|
||||
},
|
||||
getCondolencesType() {
|
||||
this.$nextTick(async v => {
|
||||
this.loading.condolencesType = true
|
||||
const queryParams = {
|
||||
year: this.pageForm.year || '',
|
||||
unionId: this.pageForm.unionId || '',
|
||||
condolenceTypeId: this.pageForm.condolenceTypeId ? this.pageForm.condolenceTypeId : null,
|
||||
way: this.pageForm.way || ''
|
||||
}
|
||||
|
||||
const resp = await this.$axios.get('/platform/unionReimburse/statistics/condolencesType', {
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
if (resp.code === 0) {
|
||||
this.loading.condolencesType = false
|
||||
|
||||
const chartContainer = document.getElementById('condolencesTypeId');
|
||||
if (!chartContainer) {
|
||||
console.error('Chart container not found');
|
||||
return;
|
||||
}
|
||||
|
||||
if (chart.condolencesTypeId) {
|
||||
chart.condolencesTypeId.changeData(resp.data)
|
||||
return
|
||||
}
|
||||
|
||||
chart.condolencesTypeId = new G2Plot.Column('condolencesTypeId', {
|
||||
data: resp.data,
|
||||
autoFit: true,
|
||||
xField: 'name',
|
||||
yField: 'value',
|
||||
label: {
|
||||
position: 'middle',
|
||||
style: {
|
||||
fill: '#FFFFFF',
|
||||
opacity: 0.6,
|
||||
},
|
||||
},
|
||||
xAxis: {
|
||||
label: {
|
||||
autoHide: true,
|
||||
autoRotate: false,
|
||||
},
|
||||
},
|
||||
meta: {
|
||||
label: {
|
||||
alias: '类型',
|
||||
},
|
||||
value: {
|
||||
alias: '慰问数',
|
||||
},
|
||||
}
|
||||
});
|
||||
chart.condolencesTypeId.render();
|
||||
chart.condolencesTypeId.on('element:click', (v) => {
|
||||
const clickedName = v.data?.data?.name;
|
||||
if (clickedName) {
|
||||
const selectedType = this.typeOptions.find(type => type.name === clickedName);
|
||||
if (selectedType) {
|
||||
this.$set(this.pageForm, 'condolenceTypeId', selectedType.id);
|
||||
this.doSearch();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
this.$nextTick(() => {
|
||||
this.getCondolencesType()
|
||||
})
|
||||
},
|
||||
handleDialogClose() {
|
||||
this.$refs.editForm.resetFields();
|
||||
},
|
||||
onExport() {
|
||||
this.$downLoad("/platform/unionReimburse/statistics/doExport", this.pageForm)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.pageData()
|
||||
this.queryCondolenceType()
|
||||
//工会查询
|
||||
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
|
||||
//单位查询
|
||||
this.$businessTool.listUnit().then((res) => (this.unitOptions = res))
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.getCondolencesType()
|
||||
}, 200)
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -37,12 +37,12 @@ const basicForm = {
|
||||
<el-radio-button :label="false">不上传</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="是否上传附件" prop="isUploadFile">
|
||||
<el-radio-group v-model="formData.isUploadFile">
|
||||
<el-radio-button :label="true">是</el-radio-button>
|
||||
<el-radio-button :label="false">否</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="是否上传附件" prop="isUploadFile">-->
|
||||
<!-- <el-radio-group v-model="formData.isUploadFile">-->
|
||||
<!-- <el-radio-button :label="true">是</el-radio-button>-->
|
||||
<!-- <el-radio-button :label="false">否</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="上传附件说明" prop="uploadFileDesc" v-if="formData.isUploadFile">
|
||||
<el-input v-model="formData.uploadFileDesc" maxlength="50" clearable placeholder="请填写上传附件说明"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
@@ -85,7 +85,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'name', label: '类型名称'},
|
||||
{prop: 'money', label: '金额'},
|
||||
{prop: 'way', label: '慰问方式'},
|
||||
{prop: 'isUploadFile', label: '是否上传附件'},
|
||||
// {prop: 'isUploadFile', label: '是否上传附件'},
|
||||
{prop: 'enable', label: '是否启用'},
|
||||
],
|
||||
}
|
||||
|
||||
+1
-3
@@ -95,15 +95,13 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/payRecord.js"){}#-->
|
||||
const vue = new Vue({
|
||||
new Vue({
|
||||
el: '#app',
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE"],
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
formRules: {
|
||||
mobile: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
||||
idCard: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
||||
|
||||
+579
@@ -0,0 +1,579 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.cost .el-form-item {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<custom-card>
|
||||
<snaker-start slot="header" label="医疗补助申请" define_key="YLBB">
|
||||
<template slot="header-right-label">
|
||||
<el-link type="primary" @click="tipsDialog=true" class="mr10">查看补助标准</el-link>
|
||||
</template>
|
||||
</snaker-start>
|
||||
|
||||
<el-form :model="formData" :rules="formRules" label-suffix=":"
|
||||
ref="formRef" class="flow-task-form">
|
||||
<table-tool label="申请基础信息"></table-tool>
|
||||
<el-descriptions :column="3" border>
|
||||
<template>
|
||||
<el-descriptions-item label="申请人姓名"
|
||||
v-if="$auth.hasRole('SYSADMIN') || $auth.hasRole('SCHOOL_UNION_ADMIN')|| $auth.hasRole('RETIREMENT_WORKPLACE')">
|
||||
<el-form-item prop="userId" label="申请人姓名">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.userId"
|
||||
filterable
|
||||
:clearable="false"
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod"
|
||||
@change="userChange">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.username+'('+item.loginname+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人姓名" v-else>{{formData.userName}}</el-descriptions-item>
|
||||
</template>
|
||||
<el-descriptions-item label="性别">
|
||||
<el-form-item label="性别">
|
||||
<el-input readonly v-model="formData.sex"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="年龄">
|
||||
<el-form-item label="年龄">
|
||||
<el-input readonly v-model="formData.age"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="所在单位">
|
||||
<el-form-item label="所在单位">
|
||||
<el-input readonly v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="身份证号">
|
||||
<el-form-item label="身份证号" prop="idCard">
|
||||
<el-input clearable v-model="formData.idCard" placeholder="请输入身份证号"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="累计补助金额">
|
||||
<el-form-item label="累计补助金额" prop="medicalSubsidyMoney">
|
||||
<el-input readonly v-model="formData.medicalSubsidyMoney"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="申请次数">
|
||||
<el-form-item label="申请次数">
|
||||
<el-input readonly v-model="formData.applyNum"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="家庭住址" :span="2">
|
||||
<el-form-item label="家庭住址" prop="homeAddress">
|
||||
<el-input placeholder="请填写家庭住址" v-model="formData.homeAddress"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="联系电话">
|
||||
<el-form-item label="联系电话" prop="mobile">
|
||||
<el-input placeholder="请填写联系电话" v-model="formData.mobile"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="上年总收入">
|
||||
<el-form-item label="上年总收入" prop="familyIncome">
|
||||
<el-input-number :min="0" placeholder="请填写上年总收入"
|
||||
v-model="formData.familyIncome"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="报销类型">
|
||||
<el-form-item label="报销类型" prop="subsidyType">
|
||||
<el-radio-group v-model="formData.subsidyType">
|
||||
<el-radio-button :label="i" v-for="i in subsidyTypeList" :key="i">
|
||||
{{i}}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="疾病种类" :span="3">
|
||||
<el-form-item label="疾病种类" prop="diseaseId">
|
||||
<el-select clearable placeholder="请选择疾病种类"
|
||||
v-model="formData.diseaseId" filterable @change="diseaseIdChange">
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="备注" :span="3">
|
||||
<el-form-item label="备注" prop="note">
|
||||
<el-input clearable maxlength="100" placeholder="请输入具体病情说明,不要超过100字"
|
||||
rows="3" type="textarea" v-model="formData.note">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="附件" :span="3">
|
||||
<el-form-item label="附件" prop="files">
|
||||
<file-upload :value.sync="formData.files"
|
||||
upload_mode="drag"
|
||||
:upload_number="50"
|
||||
:upload_size="1024 * 1024 * 20"
|
||||
upload_result_category="array"
|
||||
complete_result></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<table-tool label="住院记录"></table-tool>
|
||||
<el-table :data="formData.costList" border show-summary class="cost">
|
||||
<el-table-column label="序号" type="index" width="50px" fixed></el-table-column>
|
||||
<el-table-column label="住院时间段" width="300">
|
||||
<template v-slot="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
label="住院时间段"
|
||||
:prop="'costList.'+$index+'.visitTime'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
format="yyyy-MM-dd"
|
||||
placeholder="选择住院时间段"
|
||||
type="daterange"
|
||||
v-model="row.visitTime"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住院医院" width="200">
|
||||
<template v-slot="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
label="住院医院"
|
||||
:prop="'costList.'+$index+'.visitHospital'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input placeholder="住院医院" v-model="row.visitHospital"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住院医疗费总额(不含门诊)" width="180" prop="hospitalSumMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="住院医疗费总额(不含门诊)"
|
||||
:min="0"
|
||||
controls-position="right" style="width: 100%"
|
||||
v-model="row.hospitalSumMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际报销金额" width="180" prop="reimbursementMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="实际报销金额"
|
||||
:min="0"
|
||||
controls-position="right" style="width: 100%"
|
||||
v-model="row.reimbursementMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="(住院医疗)允许报销范围内个人承担部分金额"
|
||||
width="180" prop="singleBearMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number :min="0" placeholder="个人承担部分金额"
|
||||
controls-position="right" style="width: 100%"
|
||||
v-model="row.singleBearMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="(住院医疗)自费部分金额" width="180" prop="personExpenseMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="自费部分金额"
|
||||
:min="0"
|
||||
controls-position="right"
|
||||
disabled style="width: 100%"
|
||||
v-model="row.personExpenseMoney = calcPersonExpenseMoney(row)"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="重病门诊自费金额" width="180" prop="outpatientServiceMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="门诊费"
|
||||
:min="0"
|
||||
:disabled="!formData.isMajorDiseases"
|
||||
controls-position="right" style="width: 100%"
|
||||
v-model="row.outpatientServiceMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="非住院肾衰竭治疗、靶向药" width="180" prop="bxyMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="靶向药"
|
||||
:min="0"
|
||||
:disabled="!formData.isMajorDiseases"
|
||||
controls-position="right" style="width: 100%"
|
||||
v-model="row.bxyMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="100px" fixed="right">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button type="primary" @click="formData.costList.push({
|
||||
hospitalSumMoney:0,
|
||||
reimbursementMoney:0,
|
||||
singleBearMoney:0,
|
||||
outpatientServiceMoney:0,
|
||||
bxyMoney:0,
|
||||
})" size="mini">增加
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
<template v-slot="scope">
|
||||
<el-button @click="formData.costList.splice(scope.$index,1)" icon="el-icon-delete" size="mini"
|
||||
type="danger">
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
</el-form>
|
||||
|
||||
<template slot="footer">
|
||||
<el-button type="primary" plain @click="onSave" :loading="formLoading">保存</el-button>
|
||||
<el-button type="primary" @click="onSubmit" v-if="!taskId" :loading="formLoading">提交</el-button>
|
||||
<el-button type="primary" @click="onFinishTask" v-else :loading="formLoading">提交</el-button>
|
||||
</template>
|
||||
</custom-card>
|
||||
|
||||
<el-dialog :visible.sync="tipsDialog" title="申请补助须知" top="50px" width="60%">
|
||||
<p>
|
||||
1.享受公费医疗的互助基金会员患本办法所列疾病,住院治疗期间发生的医疗费经校医院审核并报销后,个人承担费用(不含国家规定应该由个人支付的费用)年度累计超过
|
||||
5000 元者,可申请并获得补助。
|
||||
</p>
|
||||
|
||||
<p>
|
||||
2.参加社会医疗保险的互助基金会员患本办法所列疾病,住院治疗期间发生的医疗费经社会医疗保险机构报销后,并经校医院审核,个人承担费用(不含国家规定应该由个人支付的费用)年度累计超过
|
||||
5000 元者,可申请并获得补助。
|
||||
</p>
|
||||
<p>
|
||||
3.互助基金会员患不属于本办法所列重大疾病目录中费用支出较大的疾病,经住院治疗、且经公费医疗或社会医疗保险报销后,单次住院个人承担费用(不含国家规定应该由个人支付的费用)超过
|
||||
10000
|
||||
元(年度不累计)者,也可申请并获得补助。
|
||||
</p>
|
||||
|
||||
<ul class="list-group" style="max-height: 450px;overflow-y: scroll">
|
||||
<li class="list-group-item" v-for="i in diseaseList">{{i.diseaseName}}</li>
|
||||
</ul>
|
||||
|
||||
<el-row class="mt25" justify="center" type="flex">
|
||||
<el-button @click="tipsDialog=false" type="primary">我已知晓</el-button>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: '#app',
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
tipsDialog: false,
|
||||
diseaseList: [],
|
||||
userOptions: [],
|
||||
subsidyTypeList: ['公费医疗', '社会保险'],
|
||||
formRules: {
|
||||
userId: [{required: true, message: '请选择用户', trigger: 'blur'}],
|
||||
homeAddress: [{required: true, message: '请填写家庭住址', trigger: 'blur'}],
|
||||
familyIncome: [{required: true, message: '请填写上年总收入', trigger: 'blur'}],
|
||||
subsidyType: [{required: true, message: '请选择报销类型', trigger: 'blur'}],
|
||||
diseaseId: [{required: true, message: '请选择疾病种类', trigger: 'blur'}],
|
||||
mobile: [{required: true, message: '请输入联系电话', trigger: 'blur'}],
|
||||
files: [{required: true, message: '请上传附件', trigger: 'blur'}],
|
||||
},
|
||||
formData: {
|
||||
costList: []
|
||||
},
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
|
||||
medicalSetting: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getMedicalSetting() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/basicSetting/getSetting").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.medicalSetting = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取累计补助金额
|
||||
getMedicalSubsidyMoney(userId) {
|
||||
this.$axios.post(loc() + "/getMedicalSubsidyMoney", {userId}).then(res => {
|
||||
if (res.code === 0) {
|
||||
if (res.data.medicalSubsidyMoney !== null) {
|
||||
this.$set(this.formData, 'medicalSubsidyMoney', res.data.medicalSubsidyMoney + this.medicalSetting.loveMoney)
|
||||
} else {
|
||||
this.$set(this.formData, 'medicalSubsidyMoney', 0)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取补助申请次数
|
||||
getMedicalApplyNum(userId) {
|
||||
this.$axios.post(loc() + "/getMedicalApplyNum", {userId}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$set(this.formData, 'applyNum', res.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
diseaseIdChange(val) {
|
||||
const disease = this.diseaseList.find(i => i.id === val)
|
||||
if (disease) {
|
||||
this.$set(this.formData, 'isMajorDiseases', disease.isMajorDiseases)
|
||||
} else {
|
||||
this.$set(this.formData, 'isMajorDiseases', false)
|
||||
}
|
||||
},
|
||||
// 计算每个表格中的自费部分金额
|
||||
calcPersonExpenseMoney(row) {
|
||||
// fix 2025-11-16 个人自费金额 计算需要减去靶向药
|
||||
// const mz = isNaN(row.outpatientServiceMoney) ? 0 : row.outpatientServiceMoney
|
||||
// const personExpenseMoney = (this.formData.majorDisease ? (mz + row.hospitalSumMoney) : row.hospitalSumMoney) - row.reimbursementMoney - row.singleBearMoney - row.bxyMoney
|
||||
//自费部分金额=住院医疗费总额(不含门诊)-实际报销金额-个人承担部分金额 zhf 2025-11-17
|
||||
const personExpenseMoney = row.hospitalSumMoney - row.reimbursementMoney - row.singleBearMoney
|
||||
return isNaN(personExpenseMoney) ? 0 : personExpenseMoney < 0 ? 0 : personExpenseMoney.toFixed(2)
|
||||
},
|
||||
async userChange(val) {
|
||||
const user = this.userOptions.find(u => u.id === val)
|
||||
this.$set(this.formData, 'sex', user.sex)
|
||||
if (user.birthday) {
|
||||
this.$set(this.formData, 'age', this.$moment().diff(user.birthday, 'years'))
|
||||
}
|
||||
this.$set(this.formData, 'unitName', user.unitName)
|
||||
this.$set(this.formData, 'idCard', user.idCard)
|
||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
this.getMedicalSubsidyMoney(this.formData.userId)
|
||||
this.getMedicalApplyNum(this.formData.userId)
|
||||
this.getIsAfootMedicalApply(this.formData.userId, null)
|
||||
},
|
||||
onSave() {
|
||||
this.$confirm("保存后可在我的补助申请页面继续填写然后提交,是否保存?", '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.formLoading = true
|
||||
|
||||
//判断每个住院记录中是否有开始时间和结束时间
|
||||
this.formData.costList.forEach(cost => {
|
||||
if (cost.visitTime && cost.visitTime.length > 0) {
|
||||
cost.visitStartTime = cost.visitTime[0]
|
||||
cost.visitEndTime = cost.visitTime[1]
|
||||
}
|
||||
})
|
||||
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/save", {data: JSON.stringify(this.formData)}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success("保存成功")
|
||||
commonUtil.pjaxPush("/platform/medicalMutualAid/medical/mine")
|
||||
}
|
||||
}).finally(() => {
|
||||
this.formLoading = false
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
onSubmit() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.formData.costList.length === 0) {
|
||||
this.$message.error("请添加住院记录!")
|
||||
return
|
||||
}
|
||||
if (!this.validateIsMajorDiseases()){
|
||||
this.$alert('您的个人承担部分金额达不到补助标准,无法申请!', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/submit", {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
commonUtil.pjaxPush("/platform/medicalMutualAid/medical/mine")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
onFinishTask() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.formData.costList.length === 0) {
|
||||
this.$message.error("请添加住院记录!")
|
||||
return
|
||||
}
|
||||
if (!this.validateIsMajorDiseases()){
|
||||
this.$alert('您的个人承担部分金额达不到补助标准,无法申请!', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/submitAgain", {
|
||||
data: JSON.stringify(this.formData),
|
||||
taskId: GetQueryString("taskId")
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
commonUtil.pjaxPush("/platform/medicalMutualAid/medical/mine")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 判断个人承担部分金额有没有达到标准,true不能申请,false可以申请
|
||||
validateIsMajorDiseases() {
|
||||
let flag = true
|
||||
if (this.formData.isMajorDiseases) {
|
||||
const singleBearMoneyList = this.formData.costList.map(cost => cost.singleBearMoney)
|
||||
|
||||
const allSingleBearMoney = singleBearMoneyList.reduce((a, b) => {
|
||||
return parseFloat(a) + parseFloat(b)
|
||||
})
|
||||
if (this.formData.subsidyType === '公费医疗' && allSingleBearMoney < this.medicalSetting.publicYearInDiseaseMoney) {
|
||||
flag = false
|
||||
} else if (this.formData.subsidyType === '社会保险' && allSingleBearMoney < this.medicalSetting.socialYearInDiseaseMoney) {
|
||||
flag = false
|
||||
}
|
||||
|
||||
if (this.formData.applyNum === 1) {
|
||||
flag = true
|
||||
}
|
||||
} else {
|
||||
if (this.formData.costList.some(v => v.singleBearMoney < this.medicalSetting.ordinaryOnceNotInDiseaseMoney)) {
|
||||
flag = false
|
||||
}
|
||||
}
|
||||
return flag
|
||||
|
||||
},
|
||||
async createRemoteMethod(keyword) {
|
||||
const resp = await this.$axios.post(loc() + "/getSubsidyUser", {keyword})
|
||||
if (resp.code === 0) {
|
||||
this.userOptions = resp.data;
|
||||
}
|
||||
},
|
||||
getDiseaseList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getDiseaseList").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.diseaseList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
async init() {
|
||||
this.getMedicalSetting()
|
||||
if (this.bizId) {
|
||||
this.getIsAfootMedicalApply(this.$store.state.user.id, this.bizId)
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/mine/info", {id: this.bizId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
res.data.costList.forEach(cost => {
|
||||
if (cost.visitStartTime) {
|
||||
cost.visitTime = [cost.visitStartTime, cost.visitEndTime]
|
||||
}
|
||||
})
|
||||
this.createRemoteMethod(res.data.userId)
|
||||
this.formData = res.data
|
||||
this.diseaseIdChange(res.data.diseaseId)
|
||||
|
||||
}
|
||||
})
|
||||
} else {
|
||||
await this.createRemoteMethod(this.$store.state.user.id)
|
||||
this.$set(this.formData, 'sex', this.$store.state.user.sex)
|
||||
if (this.$store.state.user.birthday) {
|
||||
this.$set(this.formData, 'age', this.$moment().diff(this.$store.state.user.birthday, 'years'))
|
||||
}
|
||||
this.$set(this.formData, 'unitName', this.$store.state.user.unit.name)
|
||||
this.$set(this.formData, 'idCard', this.$store.state.user.idCard)
|
||||
this.$set(this.formData, 'homeAddress', this.$store.state.user.homeAddress)
|
||||
this.$set(this.formData, 'mobile', this.$store.state.user.mobile)
|
||||
this.$set(this.formData, 'userId', this.$store.state.user.id)
|
||||
this.getMedicalSubsidyMoney(this.formData.userId)
|
||||
this.getMedicalApplyNum(this.formData.userId)
|
||||
this.getIsAfootMedicalApply(this.$store.state.user.id, null)
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
// 查询是否有进行中的申请
|
||||
getIsAfootMedicalApply(userId, id) {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getIsAfootMedicalApply", {
|
||||
userId,
|
||||
id
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
|
||||
}
|
||||
}).catch(e => {
|
||||
this.$alert(e.msg, '温馨提示', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
commonUtil.pjaxPush("/platform/medicalMutualAid/medical/mine")
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDiseaseList()
|
||||
this.init()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<div style="max-width: 900px; margin: 0 auto;">
|
||||
<custom-card>
|
||||
|
||||
<el-form :model="formData" label-suffix=":" ref="formRef" label-width="250px">
|
||||
<el-form-item label="公费医疗年度补助标准(重疾)" prop="publicYearInDiseaseMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.publicYearInDiseaseMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="社保年度补助标准(重疾)" prop="socialYearInDiseaseMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.socialYearInDiseaseMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="单次补助标准(普疾)" prop="ordinaryOnceNotInDiseaseMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.ordinaryOnceNotInDiseaseMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="爱心互助基金补助标准" prop="loveMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.loveMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="补助比例" prop="subsidyRatio">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.subsidyRatio"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="每年补助限额(重疾)" prop="maxYearInDiseaseMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.maxYearInDiseaseMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="每年补助限额(普疾)" prop="maxYearNotInDiseaseMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.maxYearNotInDiseaseMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="共计补助限额" prop="previousYearMaxMoney">
|
||||
<el-input-number :max="500000" :min="0" style="width: 100%"
|
||||
v-model="formData.previousYearMaxMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="超过共计补助限额后每年限额" prop="beyondMaxQuotaMoney">
|
||||
<el-input-number :max="100000" :min="0" style="width: 100%"
|
||||
v-model="formData.beyondMaxQuotaMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="十年未申请首次补助比例增加" prop="tenYearNeverAddSubsidyRatio">
|
||||
<el-input-number :max="100" :min="0" style="width: 100%"
|
||||
v-model="formData.tenYearNeverAddSubsidyRatio"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="十五年未补助首次申请比例增加" prop="fifteenYearNeverAddSubsidyRatio">
|
||||
<el-input-number :max="100" :min="0" style="width: 100%"
|
||||
v-model="formData.fifteenYearNeverAddSubsidyRatio"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<template slot="footer">
|
||||
<el-button type="primary" @click="doSubmit">确定</el-button>
|
||||
</template>
|
||||
</custom-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
methods: {
|
||||
doSubmit() {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (valid) {
|
||||
this.$axios.post(loc() + "/doSubmit", this.formData).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success("保存成功")
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
initData() {
|
||||
this.$axios.post(loc() + "/getSetting").then(res => {
|
||||
if (res.code === 0) {
|
||||
if (res.data == null) {
|
||||
this.formData = {
|
||||
publicYearInDiseaseMoney: 0,
|
||||
socialYearInDiseaseMoney: 0,
|
||||
ordinaryOnceNotInDiseaseMoney: 0,
|
||||
loveMoney: 0,
|
||||
subsidyRatio: 0,
|
||||
maxYearInDiseaseMoney: 0,
|
||||
maxYearNotInDiseaseMoney: 0,
|
||||
previousYearMaxMoney: 0,
|
||||
}
|
||||
} else {
|
||||
this.formData = res.data
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
const MEDICAL_INFO = {
|
||||
template: /*language=HTML*/
|
||||
`
|
||||
<div>
|
||||
<div class="process-title">
|
||||
申请信息
|
||||
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
|
||||
</div>
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="申请人姓名">{{ viewData.userName }}({{viewData.loginName}})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="年龄">{{ viewData.age }}</el-descriptions-item>
|
||||
<el-descriptions-item label="联系电话">{{ viewData.mobile }}</el-descriptions-item>
|
||||
<el-descriptions-item label="身份证号">{{ viewData.idCard }}</el-descriptions-item>
|
||||
<el-descriptions-item label="累计补助金额">{{ viewData.medicalSubsidyMoney }}</el-descriptions-item>
|
||||
<el-descriptions-item label="起扣时间">{{ viewData.aidFundDeductTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{ viewData.unitName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="疾病种类">{{ viewData.diseaseName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="重大疾病(次数)">
|
||||
<span :class="[viewData.isMajorDiseases?'text-danger':'text-info']">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
{{viewData.isMajorDiseases?'是':'否'}}({{viewData.applyNum}})
|
||||
</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="3">
|
||||
<div style="white-space: pre-line">{{viewData.note}}</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="住院记录" :span="3">
|
||||
<el-table :data="viewData.costList" border show-summary>
|
||||
<el-table-column label="序号" type="index" width="50px" fixed></el-table-column>
|
||||
<el-table-column label="住院时间段" width="200">
|
||||
<template v-slot="{row}">
|
||||
{{row.visitStartTime}}至{{row.visitEndTime}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住院医院" prop="visitHospital" width="250"></el-table-column>
|
||||
<el-table-column label="住院医疗费总额(不含门诊)" prop="hospitalSumMoney"></el-table-column>
|
||||
<el-table-column label="实际报销金额" prop="reimbursementMoney"></el-table-column>
|
||||
<el-table-column label="(住院医疗)允许报销范围内个人承担部分金额"
|
||||
prop="singleBearMoney"></el-table-column>
|
||||
<el-table-column label="(住院医疗)自费部分金额" prop="personExpenseMoney"></el-table-column>
|
||||
<el-table-column label="重病门诊自费金额" prop="outpatientServiceMoney"></el-table-column>
|
||||
<el-table-column label="非住院肾衰竭治疗、靶向药" prop="bxyMoney"></el-table-column>
|
||||
</el-table>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="附件" :span="3">
|
||||
<file-preview :files="viewData.files" complete_result></file-preview>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<template v-for="task in doneTasks">
|
||||
<div class="mt10">
|
||||
<div class="process-title">{{ task.displayName }}</div>
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id"
|
||||
v-if="task.ext.isFirstTaskNode">
|
||||
<el-descriptions-item label="申请用户">{{ task.ext.initiatorName
|
||||
}}({{task.ext.initiatorAccount}})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id" v-else>
|
||||
<el-descriptions-item label="办理用户">{{ task.taskFormData.userName
|
||||
}}({{task.taskFormData.loginName}})
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="详细疾病名称"
|
||||
v-if="task.taskName==='39916c1e-857d-407d-86c1-678ccf3011bc'"
|
||||
:span="3">{{
|
||||
task.taskFormData.diseaseDetailName }}
|
||||
</el-descriptions-item>
|
||||
<template v-if="task.taskName==='cd560356-cc70-48b5-8d99-ff9bd3505869'">
|
||||
<el-descriptions-item label="预测补助金额" :span="3">
|
||||
{{
|
||||
task.taskFormData.tf_forecastSubsidyMoney }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="爱心基金(元)" :span="3">
|
||||
{{
|
||||
task.taskFormData.tf_loveSubsidyMoney }}
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode" :span="3">{{
|
||||
task.taskFormData.opinion }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
<slot></slot>
|
||||
<snaker-chart ref="snakerChartRef"></snaker-chart>
|
||||
|
||||
</div>
|
||||
`,
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
viewData: {},
|
||||
doneTasks: [],
|
||||
row: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.visible = true
|
||||
this.getInfo()
|
||||
this.getDoneTasks()
|
||||
},
|
||||
getInfo() {
|
||||
this.$axios.post('/platform/medicalMutualAid/medical/mine/info', {id: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取已办任务审批记录
|
||||
getDoneTasks() {
|
||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查看流程图
|
||||
openChart() {
|
||||
this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId, this.row.instanceId)
|
||||
}
|
||||
}
|
||||
}
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
const MEDICAL_TABLE = {
|
||||
template: /*language=HTML*/
|
||||
`
|
||||
<div>
|
||||
<el-table :data="localTableData" :size="tableSize" @sort-change="pageOrder"
|
||||
ref="table" row-key="id" style="width: 100%"
|
||||
:summary-method="getSummaries" :show-summary="showSummary">
|
||||
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"
|
||||
fixed="left"></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:width="column.width"
|
||||
:fixed="column.fixed"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip
|
||||
sortable
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template v-if="column.prop==='isMajorDiseases'" v-slot="{row}">
|
||||
<span :class="[row.isMajorDiseases?'text-danger':'text-info']">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
{{row.isMajorDiseases?'是':'否'}}({{row.applyNum}})
|
||||
</span>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="column.prop === 'instanceState'">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="column.prop === 'curTaskName'">
|
||||
{{row.curTaskName?row.curTaskName:row.taskName}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<slot name="operation"></slot>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</div>
|
||||
`,
|
||||
props: {
|
||||
localTableData: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
showSummary: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
localPageForm:{
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
},
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号', fixed: "left"},
|
||||
{prop: 'username', label: '姓名', fixed: "left"},
|
||||
{prop: 'unionName', label: '所属工会', width: "180"},
|
||||
{prop: 'unitName', label: '所属单位', width: "180"},
|
||||
{prop: 'diseaseName', label: '疾病种类', width: "180"},
|
||||
{prop: 'isMajorDiseases', label: '重大疾病(次数)', width: "100"},
|
||||
{prop: 'applyNum', label: '申请总次数'},
|
||||
{prop: 'applyTime', label: '申请时间', width: "180"},
|
||||
{prop: 'hospitalSumMoney$', label: '住院医疗总额(不含门诊)', width: "120"},
|
||||
{prop: 'reimbursementMoney$', label: '实际报销总额', width: "120"},
|
||||
{prop: 'singleBearMoney$', label: '(住院医疗)允许报销范围内个人承担部分总额', width: "120"},
|
||||
{prop: 'personExpenseMoney$', label: '(住院医疗)自费部分总额', width: "120"},
|
||||
{prop: 'outpatientServiceMoney$', label: '重病门诊自费金额', width: "120"},
|
||||
{prop: 'bxyMoney$', label: '非住院肾衰竭治疗、靶向药金额', width: "120"},
|
||||
{prop: 'totalMoney', label: '合计金额', width: "120"},
|
||||
{prop: 'curTaskName', label: '当前节点', width: "120"},
|
||||
{prop: 'instanceState', label: '流程状态'},
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getSummaries(param) {
|
||||
const {columns, data} = param
|
||||
const sums = []
|
||||
columns.forEach((column, index) => {
|
||||
const sumColumn = ['hospitalSumMoney$', 'reimbursementMoney$', 'singleBearMoney$', 'personExpenseMoney$', 'subsidyMoney', 'loveSubsidyMoney', 'outpatientServiceMoney$', 'totalMoney']
|
||||
if (sumColumn.includes(column.property)) {
|
||||
const values = data.map(i => Number(i[column.property]))
|
||||
if (values && values.length > 0) {
|
||||
const everyColumnSum = values.reduce((a, b) => a + b)
|
||||
sums[index] = isNaN(everyColumnSum) ? 0 : everyColumnSum.toFixed(2)
|
||||
}
|
||||
}
|
||||
})
|
||||
sums[0] = '合计'
|
||||
return sums
|
||||
},
|
||||
|
||||
},
|
||||
created() {
|
||||
this.$emit('ready')
|
||||
},
|
||||
watch: {
|
||||
"localPageForm": {
|
||||
handler(val) {
|
||||
this.pageForm = {...this.pageForm, ...val}
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
}
|
||||
}
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
|
||||
<search-item label="疾病种类">
|
||||
<el-input placeholder="请输入疾病种类" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
<el-card shadow="never">
|
||||
<table-tool label="疾病种类">
|
||||
<el-button @click="openAdd" size="small" type="primary">
|
||||
新增疾病种类
|
||||
</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
ref="table" row-key="id" style="width: 100%" v-loading="tableLoading">
|
||||
<el-table-column label="编号" prop="diseaseCode"></el-table-column>
|
||||
<el-table-column label="疾病种类" prop="diseaseName"></el-table-column>
|
||||
<el-table-column label="是否重大疾病" prop="isMajorDiseases">
|
||||
<template v-slot="{row}">
|
||||
<el-tag v-if="row.isMajorDiseases" type="danger">是</el-tag>
|
||||
<el-tag v-else>否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openEdit(row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button @click="doDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</guava>
|
||||
|
||||
<el-dialog :visible.sync="dialogVisible" title="新增" width="50%">
|
||||
<el-form :model="formData" :rules="rules" label-width="120px" ref="form">
|
||||
<el-form-item label="疾病名称" prop="diseaseName">
|
||||
<el-input maxlength="50" v-model="formData.diseaseName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="diseaseCode">
|
||||
<el-input max="128" v-model.number="formData.diseaseCode"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否重大疾病" prop="isMajorDiseases">
|
||||
<el-radio-group v-model="formData.isMajorDiseases" size="small">
|
||||
<el-radio :label="true" border>是</el-radio>
|
||||
<el-radio :label="false" border>否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="end" type="flex">
|
||||
<el-button @click="dialogVisible=false">取消</el-button>
|
||||
<el-button @click="doSubmit" class="ml10" type="primary">确定</el-button>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
rules: {
|
||||
diseaseName: [{required: true, message: '请输入疾病名称', trigger: ['change', 'blur']}],
|
||||
diseaseCode: [{required: true, message: '请输入疾病编号', trigger: ['change', 'blur']}]
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doDelete(id) {
|
||||
this.$confirm('您确定要删除吗, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$axios.post(loc() + "/doDelete", {id: id}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
openEdit(row) {
|
||||
this.formData = clone(row)
|
||||
this.dialogVisible = true
|
||||
},
|
||||
doSubmit() {
|
||||
this.$refs.form.validate(valid => {
|
||||
if (valid) {
|
||||
this.$axios.post(loc() + "/doSubmit", this.formData).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.dialogVisible = false
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
openAdd() {
|
||||
this.formData = {isMajorDiseases: true}
|
||||
this.dialogVisible = true
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+350
@@ -0,0 +1,350 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="请选择年度"
|
||||
style="width: 100%"
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item label="疾病种类">
|
||||
<el-select clearable placeholder="请选择疾病种类"
|
||||
v-model="pageForm.diseaseId" filterable>
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
|
||||
<search-item label="所属工会">
|
||||
<el-select v-model="pageForm.unionId" clearable filterable placeholder="请选择院级工会"
|
||||
@change="getUnitList()">
|
||||
<el-option v-for="item in unionList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select v-model="pageForm.unitId" clearable filterable placeholder="请选择单位">
|
||||
<el-option v-for="item in unitList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool label="申请列表">
|
||||
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<medical-table ref="table" :local-table-data="tableData" v-loading="tableLoading"
|
||||
:local-page-form="pageForm" @ready="doSearch">
|
||||
<template slot="operation">
|
||||
<el-table-column label="操作" fixed="right" width="200">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskState === 10" @click="onAudit(row)" size="mini" type="primary">
|
||||
审核
|
||||
</el-button>
|
||||
<el-button v-if="row.canRevoke||row.curTaskName==='结束'" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</medical-table>
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
<template #edit>
|
||||
<medical-info ref="medicalInfoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="150px" label-suffix=":"
|
||||
>
|
||||
|
||||
<el-table :data="costList" border show-summary class="cost">
|
||||
<el-table-column label="序号" type="index" width="50px" fixed></el-table-column>
|
||||
<el-table-column label="住院时间段" width="200">
|
||||
<template v-slot="{row}">
|
||||
{{row.visitStartTime}}至{{row.visitEndTime}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住院医院" prop="visitHospital" width="250"></el-table-column>
|
||||
<el-table-column label="住院医疗费总额(不含门诊)" width="180" prop="hospitalSumMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="住院医疗费总额(不含门诊)"
|
||||
:min="0"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.hospitalSumMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际报销金额" width="180" prop="reimbursementMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="实际报销金额"
|
||||
:min="0"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.reimbursementMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="(住院医疗)允许报销范围内个人承担部分金额"
|
||||
width="180" prop="singleBearMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number :min="0" placeholder="个人承担部分金额"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.singleBearMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="(住院医疗)自费部分金额" width="180"
|
||||
prop="personExpenseMoney"></el-table-column>
|
||||
<el-table-column label="重病门诊自费金额" width="180" prop="outpatientServiceMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="门诊费"
|
||||
:min="0"
|
||||
:disabled="!formData.tf_isMajorDiseases"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.outpatientServiceMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="非住院肾衰竭治疗、靶向药" width="180" prop="bxyMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="靶向药"
|
||||
:min="0"
|
||||
:disabled="!formData.tf_isMajorDiseases"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.bxyMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="mt10">
|
||||
<el-form-item label="疾病种类" prop="tf_diseaseId"
|
||||
:rules="[{required:true,message:'请选择疾病种类',trigger:['change','blur']}]">
|
||||
<el-select placeholder="请选择疾病种类" style="width: 50%"
|
||||
v-model="formData.tf_diseaseId" filterable @change="diseaseIdChange">
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="预测补助金额(元)" prop="tf_forecastSubsidyMoney">
|
||||
<span slot="label">
|
||||
预测补助金额(元)
|
||||
<el-tooltip class="item" effect="dark"
|
||||
content="计算公式:((住院医疗)允许报销范围内个人承担部分金额+(住院医疗)自费部分金额+重病门诊自费金额+非住院肾衰竭治疗、靶向药金额)* 补助比例"
|
||||
placement="top-start">
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<el-input-number v-model="formData.tf_forecastSubsidyMoney"
|
||||
style="width: 50%"></el-input-number>
|
||||
<el-button @click="calcMedicalMoney(formData.id,formData.tf_diseaseId)" type="primary">
|
||||
重新计算金额
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="爱心基金(元)" prop="tf_loveSubsidyMoney">
|
||||
<el-input-number :max="medicalSetting.loveMoney" :min="0" style="width: 50%"
|
||||
v-model="formData.tf_loveSubsidyMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</medical-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../common/medicalTable.js'){}#-->
|
||||
<!--#include('../common/medicalInfo.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
costList: [],
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
diseaseList: [],
|
||||
showApprovalForm: false,
|
||||
pageForm: {
|
||||
approval: false,
|
||||
year: new Date().getFullYear() + "",
|
||||
},
|
||||
medicalSetting: {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"medical-table": MEDICAL_TABLE,
|
||||
"medical-info": MEDICAL_INFO
|
||||
},
|
||||
methods: {
|
||||
// 修改表格里面的金额并修改数据库里的数据
|
||||
tableChangeMoney() {
|
||||
this.costList.forEach(cost => {
|
||||
const personExpenseMoney = cost.hospitalSumMoney - cost.reimbursementMoney - cost.singleBearMoney
|
||||
cost.personExpenseMoney = isNaN(personExpenseMoney) ? 0 : personExpenseMoney < 0 ? 0 : personExpenseMoney.toFixed(2)
|
||||
})
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/foundationAudit/updateCost", {
|
||||
data: JSON.stringify(this.costList)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
// 重新计算预测补助金额
|
||||
calcMedicalMoney(id, diseaseId) {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/foundationAudit/calcMedicalMoney", {
|
||||
id, diseaseId
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$set(this.formData, 'tf_loveSubsidyMoney', res.data.loveSubsidyMoney)
|
||||
this.$set(this.formData, 'tf_forecastSubsidyMoney', res.data.forecastSubsidyMoney)
|
||||
}
|
||||
})
|
||||
},
|
||||
diseaseIdChange(val) {
|
||||
const disease = this.diseaseList.find(i => i.id === val)
|
||||
this.$set(this.formData, "tf_diseaseName", disease.diseaseName)
|
||||
this.$set(this.formData, "tf_isMajorDiseases", disease.isMajorDiseases)
|
||||
},
|
||||
onView(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onAudit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = true
|
||||
const disease = this.diseaseList.find(i => i.id === row.diseaseId)
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
tf_diseaseId: row.diseaseId,
|
||||
tf_oldDiseaseId: row.diseaseId,
|
||||
tf_oldDiseaseName: disease.diseaseName,
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.diseaseIdChange(row.diseaseId)
|
||||
this.calcMedicalMoney(row.id, row.diseaseId)
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.costList = this.$refs.medicalInfoRef.viewData.costList
|
||||
}, 500)
|
||||
},
|
||||
handleTaskAction(val) {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/foundationAudit/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getDiseaseList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getDiseaseList").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.diseaseList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
async getUnitList() {
|
||||
this.unitList = await this.$businessTool.listUnit(this.pageForm.unionId)
|
||||
},
|
||||
getMedicalSetting() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/basicSetting/getSetting").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.medicalSetting = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.getMedicalSetting()
|
||||
this.getDiseaseList()
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
this.unitList = await this.$businessTool.listUnit()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="请选择年度"
|
||||
style="width: 100%"
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item label="疾病种类">
|
||||
<el-select clearable placeholder="请选择疾病种类"
|
||||
v-model="pageForm.diseaseId" filterable>
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool label="我的申请">
|
||||
|
||||
</table-tool>
|
||||
<medical-table ref="table" :local-table-data="tableData"
|
||||
:show-summary='true' v-loading="tableLoading"
|
||||
:local-page-form="pageForm" @ready="doSearch">
|
||||
<template slot="operation">
|
||||
<el-table-column label="操作" fixed="right" width="300">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(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>
|
||||
<el-button v-if="row.canRevoke" size="mini" type="danger" @click="onRevoke(row)">撤回
|
||||
</el-button>
|
||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onDelete(row.id)"
|
||||
size="mini" type="danger">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</medical-table>
|
||||
</el-card>
|
||||
|
||||
<template #view>
|
||||
<medical-info ref="medicalInfoRef"></medical-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../common/medicalTable.js'){}#-->
|
||||
<!--#include('../common/medicalInfo.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
diseaseList: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"medical-table": MEDICAL_TABLE,
|
||||
"medical-info": MEDICAL_INFO
|
||||
},
|
||||
methods: {
|
||||
onView(row) {
|
||||
this.$refs.guava.view(()=>{
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onEdit(row) {
|
||||
commonUtil.pjaxPush('/platform/medicalMutualAid/medical/apply?taskId=' + (row.startTaskId || '') + "&bizId=" + row.id)
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", { taskId: row.startTaskId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onDelete(id) {
|
||||
this.$confirm("您确定要删除吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/mine/delete", { id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getDiseaseList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getDiseaseList").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.diseaseList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getDiseaseList()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
+231
@@ -0,0 +1,231 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="请选择年度"
|
||||
style="width: 100%"
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item label="疾病种类">
|
||||
<el-select clearable placeholder="请选择疾病种类"
|
||||
v-model="pageForm.diseaseId" filterable>
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
|
||||
<search-item label="所属工会">
|
||||
<el-select v-model="pageForm.unionId" clearable filterable placeholder="请选择院级工会"
|
||||
@change="getUnitList()">
|
||||
<el-option v-for="item in unionList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select v-model="pageForm.unitId" clearable filterable placeholder="请选择单位">
|
||||
<el-option v-for="item in unitList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool label="申请列表">
|
||||
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<medical-table ref="table" :local-table-data="tableData" v-loading="tableLoading"
|
||||
:local-page-form="pageForm" @ready="doSearch">
|
||||
<template slot="operation">
|
||||
<el-table-column label="操作" fixed="right" width="200">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskState === 10" @click="onAudit(row)" size="mini" type="primary">
|
||||
审核
|
||||
</el-button>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</medical-table>
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
<template #edit>
|
||||
<medical-info ref="medicalInfoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-form-item label="疾病种类" prop="tf_diseaseId"
|
||||
:rules="[{required:true,message:'请选择疾病种类',trigger:['change','blur']}]">
|
||||
疾病种类:
|
||||
<el-select placeholder="请选择疾病种类"
|
||||
v-model="formData.tf_diseaseId" filterable @change="diseaseIdChange">
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="详细疾病名称" prop="tf_diseaseDetailName"
|
||||
:rules="[{required:true,message:'请填写详细疾病名称',trigger:['change','blur']}]">
|
||||
详细疾病名称:
|
||||
<el-input maxlength="100" v-model="formData.tf_diseaseDetailName"
|
||||
placeholder="请填写详细疾病名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</medical-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../common/medicalTable.js'){}#-->
|
||||
<!--#include('../common/medicalInfo.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
diseaseList: [],
|
||||
showApprovalForm: false,
|
||||
pageForm: {
|
||||
approval: false,
|
||||
year: new Date().getFullYear() + "",
|
||||
},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"medical-table": MEDICAL_TABLE,
|
||||
"medical-info": MEDICAL_INFO
|
||||
},
|
||||
methods: {
|
||||
diseaseIdChange(val){
|
||||
const disease= this.diseaseList.find(i => i.id === val)
|
||||
this.$set(this.formData, "tf_diseaseName", disease.diseaseName)
|
||||
},
|
||||
onView(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onAudit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = true
|
||||
const disease= this.diseaseList.find(i => i.id === row.diseaseId)
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
tf_diseaseId: row.diseaseId,
|
||||
tf_oldDiseaseId: row.diseaseId,
|
||||
tf_oldDiseaseName: disease.diseaseName,
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.diseaseIdChange(row.diseaseId)
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
handleTaskAction(val) {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/schoolHospitalAudit/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getDiseaseList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getDiseaseList").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.diseaseList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
async getUnitList() {
|
||||
this.unitList = await this.$businessTool.listUnit(this.pageForm.unionId)
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.getDiseaseList()
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
this.unitList = await this.$businessTool.listUnit()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+411
@@ -0,0 +1,411 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="请选择年度"
|
||||
style="width: 100%"
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item label="疾病种类">
|
||||
<el-select clearable placeholder="请选择疾病种类"
|
||||
v-model="pageForm.diseaseId" filterable>
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="会员类型">
|
||||
<dict-select v-model="pageForm.aidFundMemberUserType" code="AIDFUND_MEMBER_USER_TYPE"
|
||||
style="width: 100%"></dict-select>
|
||||
</search-item>
|
||||
|
||||
<search-item label="所属工会">
|
||||
<el-select v-model="pageForm.unionId" clearable filterable placeholder="请选择院级工会"
|
||||
@change="getUnitList()">
|
||||
<el-option v-for="item in unionList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select v-model="pageForm.unitId" clearable filterable placeholder="请选择单位">
|
||||
<el-option v-for="item in unitList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool label="申请列表">
|
||||
<el-dropdown @command="doExport">
|
||||
<el-button type="primary" size="small">导出 <i class="el-icon-arrow-down el-icon--right"></i></el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="{val:true}" key="major">重疾</el-dropdown-item>
|
||||
<el-dropdown-item :command="{val:false}" key="normal">普通</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
ref="table" row-key="id" style="width: 100%"
|
||||
:summary-method="getSummaries" :show-summary="showSummary">
|
||||
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"
|
||||
fixed="left"></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:width="column.width"
|
||||
:fixed="column.fixed"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip
|
||||
sortable
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template v-if="column.prop==='isMajorDiseases'" v-slot="{row}">
|
||||
<span :class="[row.isMajorDiseases?'text-danger':'text-info']">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
{{row.isMajorDiseases?'是':'否'}}({{row.applyNum}})
|
||||
</span>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="column.prop === 'instanceState'">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="column.prop === 'curTaskName'">
|
||||
{{row.curTaskName?row.curTaskName:row.taskName}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="100">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
<medical-info ref="medicalInfoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="150px" label-suffix=":"
|
||||
>
|
||||
|
||||
<el-table :data="costList" border show-summary class="cost">
|
||||
<el-table-column label="序号" type="index" width="50px" fixed></el-table-column>
|
||||
<el-table-column label="住院时间段" width="200">
|
||||
<template v-slot="{row}">
|
||||
{{row.visitStartTime}}至{{row.visitEndTime}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住院医院" prop="visitHospital" width="250"></el-table-column>
|
||||
<el-table-column label="住院医疗费总额(不含门诊)" width="180" prop="hospitalSumMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="住院医疗费总额(不含门诊)"
|
||||
:min="0"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.hospitalSumMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际报销金额" width="180" prop="reimbursementMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="实际报销金额"
|
||||
:min="0"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.reimbursementMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="(住院医疗)允许报销范围内个人承担部分金额"
|
||||
width="180" prop="singleBearMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number :min="0" placeholder="个人承担部分金额"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.singleBearMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="(住院医疗)自费部分金额" width="180"
|
||||
prop="personExpenseMoney"></el-table-column>
|
||||
<el-table-column label="重病门诊自费金额" width="180" prop="outpatientServiceMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="门诊费"
|
||||
:min="0"
|
||||
:disabled="!formData.tf_isMajorDiseases"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.outpatientServiceMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="非住院肾衰竭治疗、靶向药" width="180" prop="bxyMoney">
|
||||
<template v-slot="{row}">
|
||||
<el-input-number placeholder="靶向药"
|
||||
:min="0"
|
||||
:disabled="!formData.tf_isMajorDiseases"
|
||||
controls-position="right" style="width: 100%"
|
||||
@change="tableChangeMoney"
|
||||
v-model="row.bxyMoney"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="mt10">
|
||||
<el-form-item label="疾病种类" prop="tf_diseaseId"
|
||||
:rules="[{required:true,message:'请选择疾病种类',trigger:['change','blur']}]">
|
||||
<el-select placeholder="请选择疾病种类" style="width: 50%"
|
||||
v-model="formData.tf_diseaseId" filterable @change="diseaseIdChange">
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="预测补助金额(元)" prop="tf_forecastSubsidyMoney">
|
||||
<span slot="label">
|
||||
预测补助金额(元)
|
||||
<el-tooltip class="item" effect="dark"
|
||||
content="计算公式:((住院医疗)允许报销范围内个人承担部分金额+(住院医疗)自费部分金额+重病门诊自费金额+非住院肾衰竭治疗、靶向药金额)* 补助比例"
|
||||
placement="top-start">
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<el-input-number v-model="formData.tf_forecastSubsidyMoney"
|
||||
style="width: 50%"></el-input-number>
|
||||
<el-button @click="calcMoney(formData.id)" type="primary">重新计算金额</el-button>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="爱心基金(元)" prop="tf_loveSubsidyMoney">
|
||||
<el-input-number :max="medicalSetting.loveMoney" :min="0" style="width: 50%"
|
||||
v-model="formData.tf_loveSubsidyMoney"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</medical-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../common/medicalInfo.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
props: {
|
||||
showSummary: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
localPageForm: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号', fixed: "left"},
|
||||
{prop: 'username', label: '姓名', fixed: "left"},
|
||||
{prop: 'unionName', label: '所属工会', width: "180"},
|
||||
{prop: 'unitName', label: '所属单位', width: "180"},
|
||||
{prop: 'diseaseName', label: '疾病种类', width: "180"},
|
||||
{prop: 'isMajorDiseases', label: '重大疾病(次数)', width: "100"},
|
||||
{prop: 'applyNum', label: '申请总次数'},
|
||||
{prop: 'applyTime', label: '申请时间', width: "180"},
|
||||
{prop: 'hospitalSumMoney$', label: '住院医疗总额(不含门诊)', width: "120"},
|
||||
{prop: 'reimbursementMoney$', label: '实际报销总额', width: "120"},
|
||||
{prop: 'singleBearMoney$', label: '(住院医疗)允许报销范围内个人承担部分总额', width: "120"},
|
||||
{prop: 'personExpenseMoney$', label: '(住院医疗)自费部分总额', width: "120"},
|
||||
{prop: 'outpatientServiceMoney$', label: '重病门诊自费金额', width: "120"},
|
||||
{prop: 'bxyMoney$', label: '非住院肾衰竭治疗、靶向药金额', width: "120"},
|
||||
{prop: 'totalMoney', label: '合计金额', width: "120"},
|
||||
{prop: 'instanceState', label: '流程状态'},
|
||||
{prop: 'subsidyMoney', label: '补助金额'},
|
||||
{prop: 'loveSubsidyMoney', label: '爱心补助金额'},
|
||||
],
|
||||
costList: [],
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
diseaseList: [],
|
||||
showApprovalForm: false,
|
||||
pageForm: {
|
||||
approval: false,
|
||||
year: new Date().getFullYear() + "",
|
||||
pageSize: 9999,
|
||||
isMajorDiseases: null
|
||||
},
|
||||
medicalSetting: {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"medical-info": MEDICAL_INFO
|
||||
},
|
||||
watch: {
|
||||
"localPageForm": {
|
||||
handler(val) {
|
||||
this.pageForm = {...this.pageForm, ...val}
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
onDelete(id) {
|
||||
this.$confirm("您确定要删除吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/mine/delete", { id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getSummaries(param) {
|
||||
const {columns, data} = param
|
||||
const sums = []
|
||||
columns.forEach((column, index) => {
|
||||
const sumColumn = ['hospitalSumMoney$', 'reimbursementMoney$', 'singleBearMoney$', 'personExpenseMoney$', 'subsidyMoney', 'loveSubsidyMoney', 'outpatientServiceMoney$', 'totalMoney']
|
||||
if (sumColumn.includes(column.property)) {
|
||||
const values = data.map(i => Number(i[column.property]))
|
||||
if (values && values.length > 0) {
|
||||
const everyColumnSum = values.reduce((a, b) => a + b)
|
||||
sums[index] = isNaN(everyColumnSum) ? 0 : everyColumnSum.toFixed(2)
|
||||
}
|
||||
}
|
||||
})
|
||||
sums[0] = '合计'
|
||||
return sums
|
||||
},
|
||||
// 修改表格里面的金额并修改数据库里的数据
|
||||
tableChangeMoney() {
|
||||
this.costList.forEach(cost => {
|
||||
const personExpenseMoney = cost.hospitalSumMoney - cost.reimbursementMoney - cost.singleBearMoney
|
||||
cost.personExpenseMoney = isNaN(personExpenseMoney) ? 0 : personExpenseMoney < 0 ? 0 : personExpenseMoney.toFixed(2)
|
||||
})
|
||||
console.log(this.costList)
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/foundationAudit/updateCost", {
|
||||
data: JSON.stringify(this.costList)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
// 重新计算预测补助金额
|
||||
calcMoney() {
|
||||
},
|
||||
diseaseIdChange(val) {
|
||||
const disease = this.diseaseList.find(i => i.id === val)
|
||||
this.$set(this.formData, "tf_diseaseName", disease.diseaseName)
|
||||
this.$set(this.formData, "tf_isMajorDiseases", disease.isMajorDiseases)
|
||||
},
|
||||
onView(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onAudit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = true
|
||||
const disease = this.diseaseList.find(i => i.id === row.diseaseId)
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
tf_diseaseId: row.diseaseId,
|
||||
tf_oldDiseaseId: row.diseaseId,
|
||||
tf_oldDiseaseName: disease.diseaseName,
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.diseaseIdChange(row.diseaseId)
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.costList = this.$refs.medicalInfoRef.viewData.costList
|
||||
}, 500)
|
||||
},
|
||||
|
||||
getDiseaseList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getDiseaseList").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.diseaseList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
async getUnitList() {
|
||||
this.unitList = await this.$businessTool.listUnit(this.pageForm.unionId)
|
||||
},
|
||||
getMedicalSetting() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/basicSetting/getSetting").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.medicalSetting = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
doExport(command) {
|
||||
const params = {
|
||||
...this.pageForm,
|
||||
isMajorDiseases: command.val
|
||||
};
|
||||
this.$downLoad('/platform/medicalMutualAid/medical/statistics/doExport', params);
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
this.$emit('ready')
|
||||
this.getMedicalSetting()
|
||||
this.getDiseaseList()
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
this.unitList = await this.$businessTool.listUnit()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="请选择年度"
|
||||
style="width: 100%"
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item label="疾病种类">
|
||||
<el-select clearable placeholder="请选择疾病种类"
|
||||
v-model="pageForm.diseaseId" filterable>
|
||||
<el-option
|
||||
:key="i.id"
|
||||
:label="i.diseaseName"
|
||||
:value="i.id"
|
||||
v-for="i in diseaseList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool label="申请列表">
|
||||
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<medical-table ref="table" :local-table-data="tableData" v-loading="tableLoading"
|
||||
:local-page-form="pageForm" @ready="doSearch">
|
||||
<template slot="operation">
|
||||
<el-table-column label="操作" fixed="right" width="200">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskState === 10" @click="onAudit(row)" size="mini" type="primary">
|
||||
审核
|
||||
</el-button>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</medical-table>
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
<template #edit>
|
||||
<medical-info ref="medicalInfoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</medical-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../common/medicalTable.js'){}#-->
|
||||
<!--#include('../common/medicalInfo.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
diseaseList: [],
|
||||
showApprovalForm: false,
|
||||
pageForm: {
|
||||
approval: false,
|
||||
year: new Date().getFullYear() + "",
|
||||
},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"medical-table": MEDICAL_TABLE,
|
||||
"medical-info": MEDICAL_INFO
|
||||
},
|
||||
methods: {
|
||||
onView(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
onAudit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = true
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.$refs.medicalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
handleTaskAction(val) {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getDiseaseList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/medical/apply/getDiseaseList").then(res => {
|
||||
if (res.code === 0) {
|
||||
this.diseaseList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getDiseaseList()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user