Files
UNION_HUTB/target/classes/views/mobile/medicalAid/apply.html
T
2026-09-09 09:14:28 +08:00

266 lines
13 KiB
HTML

<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<van-nav-bar title="填写补助申请" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-form ref="addForm">
<van-cell-group class="cell-card">
<van-field readonly v-model="formData.user_name" name="user_name" label="姓&emsp;&emsp;名"
input-align="right"></van-field>
<van-field readonly v-model="formData.sex" name="sex"
label="性&emsp;&emsp;别"
input-align="right"></van-field>
<van-field readonly v-model="formData.user_age" name="user_age"
label="年龄(岁)"
input-align="right"></van-field>
<van-field readonly v-model="formData.unit_name" name="unit_name"
label="部&emsp;&emsp;门"
input-align="right"></van-field>
<van-field readonly v-if="formData.on_job" value="在职" label="在职状态" input-align="right"></van-field>
<van-field readonly v-else value="退休" label="在职状态" input-align="right"></van-field>
<van-field v-model="formData.mobile" name="mobile"
label="联系电话"
input-align="right"></van-field>
<van-field required v-model="formData.disease_diagnosis" name="disease_diagnosis"
label="疾病诊断" placeholder="请填写疾病诊断"
input-align="right" :rules="[{ required:true, message: '请填写疾病诊断'}]"></van-field>
<van-field required v-model="formData.hospital" name="hospital"
label="入住医院" placeholder="请填写入住医院"
:rules="[{ required:true, message: '请填写入住医院'}]"
input-align="right"></van-field>
<van-field required label="住院开始时间" :value="formData.starting_time"
@click="show = true" placeholder="请填写住院开始时间" input-align="right"
:rules="[{ required:true, message: '请填写住院开始时间'}]"></van-field>
<van-popup v-model="show" round position="bottom" :style="{ height: '40%' }">
<van-datetime-picker
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirm"
></van-datetime-picker>
</van-popup>
<van-field required label="住院结束时间" :value="formData.end_time"
@click="show1 = true" placeholder="请填写住院结束时间" input-align="right"
:rules="[{ required:true, message: '请填写住院结束时间'}]"></van-field>
<van-popup v-model="show1" round position="bottom" :style="{ height: '40%' }">
<van-datetime-picker
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirm1"
></van-datetime-picker>
</van-popup>
<van-field readonly v-model="formData.hospital_stay" name="hospital_stay"
label="住院天数" placeholder="请填写住院天数"
input-align="right"></van-field>
<van-field required v-model="formData.bank_name" name="bank_name"
label="开户银行名称" placeholder="请填写开户银行名称"
:rules="[{ required:true, message: '请填写开户银行名称'}]"
input-align="right"></van-field>
<van-field required v-model="formData.bank_account" name="bank_account"
label="银行账号" placeholder="请填写银行账号"
:rules="[{ required:true, message: '请填写银行账号'}]"
input-align="right"></van-field>
<van-field required v-model="formData.total_medical_expenses" name="total_medical_expenses"
label="本次住院医疗费总额" placeholder="请填写本次住院医疗费总额"
:rules="[{ required:true, message: '请填写本次住院医疗费总额'}]"
input-align="right"></van-field>
<van-field required v-model="formData.overall_fund_payment" name="total_medical_expenses"
label="统筹基金支付总额(医保支付)" placeholder="请填写统筹基金支付总额(医保支付)"
:rules="[{ required:true, message: '请填写统筹基金支付总额(医保支付)'}]"
input-align="right"></van-field>
<van-field required v-model="formData.individual_pay" name="individual_pay"
label="部分政策字符的个人支付" placeholder="请填写部分政策字符的个人支付"
:rules="[{ required:true, message: '请填写部分政策字符的个人支付'}]"
input-align="right"></van-field>
<van-field required v-model="formData.overall_individual_pay" name="overall_individual_pay"
label="统筹段的个人比例自付部分" placeholder="请填写统筹段的个人比例自付部分"
:rules="[{ required:true, message: '请填写统筹段的个人比例自付部分'}]"
input-align="right"></van-field>
<van-field required v-model="formData.deductible" name="deductible"
label="起付线自付费(门槛费)" placeholder="请填写起付线自付费(门槛费)"
:rules="[{ required:true, message: '请填写起付线自付费(门槛费)'}]"
input-align="right"></van-field>
<van-field required v-model="formData.materials" name="materials"
label="完全政策自付中内置材料和自费药费" placeholder="请填写完全政策自付中内置材料和自费药费"
:rules="[{ required:true, message: '请填写完全政策自付中内置材料和自费药费'}]"
input-align="right"></van-field>
<van-field required v-model="formData.insured_amount" name="insured_amount"
label="其他保险报销金额" placeholder="请填写其他保险报销金额"
:rules="[{ required:true, message: '请填写其他保险报销金额'}]"
input-align="right"></van-field>
<van-field required v-model="formData.invoice_num" name="invoice_num"
label="发票号码" placeholder="请填写发票号码"
:rules="[{ required:true, message: '请填写发票号码'}]"
input-align="right"></van-field>
<van-field name="files_invoice" label="发&emsp;&emsp;票" required>
<template #input>
<upload :files.sync="formData.files_invoice"></upload>
</template>
</van-field>
<van-field name="files_medical_certificate" label="诊断书" required>
<template #input>
<upload :files.sync="formData.files_medical_certificate"></upload>
</template>
</van-field>
<van-field name="files_medicare_settlement" label="医保结算单" required>
<template #input>
<upload :files.sync="formData.files_medicare_settlement"></upload>
</template>
</van-field>
<van-field name="files_summary_discharge" label="出院小结" required>
<template #input>
<upload :files.sync="formData.files_summary_discharge"></upload>
</template>
</van-field>
<van-dialog id="dialog" v-model="showSign" title="请签字确认" show-cancel-button @confirm="onSubmit"
@close="$refs.signature.reset()">
<mobile-sign ref="signature" :my_sign.sync="sign"></mobile-sign>
</van-dialog>
</van-cell-group>
<div class="bottomDiv">
<van-button class="bottomBut" @click="openDialog" round block type="info" color="#39acff">
提 交
</van-button>
</div>
</van-form>
</div>
<script>
const vue = new Vue({
el: '#app',
data() {
return {
sign: "",
showSign: false,
show: false,
show1: false,
files_invoice: [],
formData: {},
minDate: new Date(2000, 0, 1),
maxDate: new Date(8080, 10, 1),
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
'upload': httpVueLoader('/components/plugins/VantFileUpload.vue'),
},
methods: {
openDialog() {
this.$refs['addForm'].validate().then(() => {
this.showSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
this.$refs.signature.submitSign()
})
})
},
async onSubmit() {
if (!this.sign) {
this.$toast('请签名再提交')
return
}
const {files_invoice, files_medical_certificate, files_medicare_settlement, files_summary_discharge} = this.formData
if (!files_invoice || !files_medical_certificate || !files_medicare_settlement || !files_summary_discharge) {
this.$toast('请把附件填写完整')
return
}
const formData = JSON.parse(JSON.stringify(this.formData))
formData.sign = null
formData.hospital_time = formData.starting_time.toString() + ',' + formData.end_time.toString()
this.$toast.loading('提交中...')
const res = await $.post('/platform/fw/medicalAid/common/apply/doAdd', {
data: JSON.stringify(formData),
sign: this.sign
})
if (res.code === 0) {
this.$toast.success('申请成功');
setTimeout(() => {
location.replace('/mobile/medicalAid')
}, 1000)
} else {
this.$toast.fail('申请失败');
}
},
onConfirm(date) {
this.show = false;
this.formData.starting_time = moment(date).format('YYYY-MM-DD');
},
onConfirm1(date) {
this.show1 = false;
this.formData.end_time = moment(date).format('YYYY-MM-DD');
const end_time = Date.parse(this.formData.end_time);
const starting_time = Date.parse(this.formData.starting_time)
this.formData.hospital_stay = (end_time - starting_time) / (1 * 24 * 60 * 60 * 1000);
},
init() {
this.formData = {
files: [],
hospital_time: [],
user_name: '${@shiro.getPrincipalProperty("username")}',
sex: '${@shiro.getPrincipalProperty("sex")}',
user_age: '${@shiro.getPrincipalProperty("birthday")}' ? moment().diff(moment('${@shiro.getPrincipalProperty("birthday")}'), 'years') : '',
unit_name: '${@shiro.getPrincipalProperty("unit").getName()}',
mobile: '${@shiro.getPrincipalProperty("mobile")}',
bank_account: '${@shiro.getPrincipalProperty("bank_number")}',
bank_name: '${@shiro.getPrincipalProperty("bank_number")}' ? bankCardAttribution('${@shiro.getPrincipalProperty("bank_number")}').bankName : '',
}
const zzzt = '${@shiro.getPrincipalProperty("zzzt")}'
if (zzzt == '在职') {
this.$set(this.formData, "on_job", true)
} else if (zzzt == '退休') {
this.$set(this.formData, "on_job", false)
}
}
},
created() {
this.init()
}
})
</script>
<!--#
}
#-->