first commit

This commit is contained in:
2026-09-09 09:14:28 +08:00
commit 5343198112
5199 changed files with 1052895 additions and 0 deletions
@@ -0,0 +1,323 @@
<!--#
layout("/mobile/platform.html"){
#-->
<!---->
<!--出纳-->
<style>
.van-field__control {
color: #8b8f95;
}
.van-field__label {
color: #39acff
}
.clearqmbtn {
position: absolute;
bottom: 5px;
right: 5px;
}
.van-nav-bar {
background-color: white;
border: none !important;
}
html, body {
background-color: rgb(250, 250, 250);
}
.van-card__title {
font-size: 16px;
}
.van-cell::after {
border: none;
}
.van-grid-item__content {
padding: 0;
}
.center {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
.white_icon {
color: white !important;
}
.van-action-sheet__cancel {
color: #03A9F4;
}
</style>
<div id="app" v-cloak>
<van-nav-bar title="重大医疗补助出纳" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-row style="margin-top: 5px;background-color: white;min-height: calc(100vh - 100px)">
<div style="padding-top: 20px">
<van-collapse v-model="Basic_Information" accordion>
<van-collapse-item title="个人基本信息" name="1">
<van-cell title="工&emsp;&emsp;号" :value="zjdata.loginname"></van-cell>
<van-cell title="姓&emsp;&emsp;名" :value="zjdata.user_name"></van-cell>
<van-cell title="性&emsp;&emsp;别" :value="zjdata.sex"></van-cell>
<van-cell title="年龄(岁)" :value="zjdata.user_age"></van-cell>
<van-cell title="部&emsp;&emsp;门" :value="zjdata.unit_name"></van-cell>
<van-cell title="在职状态" :value="zjdata.zzzt"></van-cell>
<van-cell title="申请时间" :value="zjdata.apply_time"></van-cell>
<van-cell title="联系电话" :value="zjdata.mobile"></van-cell>
<van-cell title="疾病诊断" :value="zjdata.disease_diagnosis"></van-cell>
<van-cell title="住院医疗总费用(元)" :value="zjdata.already_total_medical_expenses"></van-cell>
<van-cell title="统筹基金支付数(元)" :value="zjdata.already_overall_fund_payment"></van-cell>
<van-cell title="学校医疗补助已补助金额(元)" :value="zjdata.already_subsidized"></van-cell>
<van-cell title="发票号码" :value="zjdata.invoice_num"></van-cell>
</van-collapse-item>
<van-collapse-item title="附件" name="2">
<van-field name="uploader" label="发&emsp;票">
<template #input>
<van-image @click="getImg(zjdata.files_invoice)" v-for="item in zjdata.files_invoice"
width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="诊断书">
<template #input>
<van-image @click="getImg(zjdata.files_medical_certificate)"
v-for="item in zjdata.files_medical_certificate" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="医保结算单">
<template #input>
<van-image @click="getImg(zjdata.files_medicare_settlement)"
v-for="item in zjdata.files_medicare_settlement" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="出院小结">
<template #input>
<van-image @click="getImg(zjdata.files_summary_discharge)"
v-for="item in zjdata.files_summary_discharge" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
</van-collapse-item>
<van-collapse-item title="工会会计审核信息">
<van-cell title="审核人员" :value="zjdata.ar_username"></van-cell>
<van-cell title="审核时间" :value="zjdata.accountant_review_time"></van-cell>
<van-cell title="补助金额" :value="zjdata.total_grant"></van-cell>
<van-cell title="审核意见" :value="zjdata.accountant_review_idea"></van-cell>
<van-cell title="签&emsp;&emsp;字">
<div>
<img style="width: 100%" :src="zjdata.ar_s"/>
</div>
<div v-if="zjdata.ar_s==null">
暂无
</div>
</van-cell>
</van-collapse-item>
<van-collapse-item title="工会委员会副主席审核信息">
<van-cell title="审核人员" :value="zjdata.vcr_username"></van-cell>
<van-cell title="审核时间" :value="zjdata.vice_chairman_review_time"></van-cell>
<van-cell title="审核意见" :value="zjdata.vice_chairman_review_idea"></van-cell>
<van-cell title="签&emsp;&emsp;字">
<div>
<img style="width: 100%" :src="zjdata.vcr_s"/>
</div>
<div v-if="zjdata.vcr_s==null">
暂无
</div>
</van-cell>
</van-collapse-item>
<van-collapse-item title="工会委员会主席审核信息">
<van-cell title="审核人员" :value="zjdata.chr_username"></van-cell>
<van-cell title="审核时间" :value="zjdata.chairman_review_time"></van-cell>
<van-cell title="审核意见" :value="zjdata.chairman_review_idea"></van-cell>
<van-cell title="签&emsp;&emsp;字">
<div>
<img style="width: 100%" :src="zjdata.cr_s"/>
</div>
<div v-if="zjdata.cr_s==null">
暂无
</div>
</van-cell>
</van-collapse-item>
</van-collapse>
<van-form>
<van-field
readonly
value="${@shiro.getPrincipalProperty('username')}"
name="sqr"
label="审核人"
></van-field>
<van-field v-model="formData.time" label="付款时间"></van-field>
<van-field
v-model="formData.idea"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-button round type="info" size="large" @click="openDialog"> 通过</van-button>
</van-row>
<van-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-form>
</div>
</van-row>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
Basic_Information: [1],
showSign: false,
sign: "",
zjdata: {},
ImagePreview: [],
formData: {},
showImagePreview: false,
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
},
methods: {
getImg(images) {
this.showImagePreview = true
images = images.map(v => {
return FILE_DOMAIN + v.filepath
})
this.ImagePreview = images
},
openDialog() {
this.showSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
$('body').on('touchmove', '.slidebg', function () {
$(document.body).on('touchmove.prevUC', function (e) {
e.preventDefault();
});
});
$('body').on('touchend', '.slidebg', function () {
$(document.body).off('touchmove.prevUC');
});
},
onSubmit() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/addDo", {
time: this.formData.time,
sign: this.sign,
c_idea: this.formData.idea,
state: this.zjdata.state_id,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
async getData() {
const id = GetQueryString('id')
this.formData = {
time: moment().format('YYYY-MM-DD'),
}
$.post("/platform/fw/medicalAid/common/findOne", {id: id}).then(res => {
const {code, data} = res
if (code === 0) {
this.zjdata = res.data
medicalAid.toFormData(data)
}
})
},
},
async created() {
this.getData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,136 @@
<!--#
layout("/mobile/platform.html"){
#-->
<!---->
<style>
#app {
height: 100%;
}
.text-overflow {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.cell-card {
padding: 20px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
width: 90%;
margin: 20px auto;
border-radius: 20px;
}
.handleicon {
width: 50%;
text-align: center;
}
</style>
<div id="app" v-cloak>
<van-nav-bar
title="重大医疗补助列表"
left-arrow
placeholder
fixed
@click-left="location.href='/mobile/index'"
></van-nav-bar>
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad"
>
<van-cell v-for="o in tableData" class="cell-card" @click="openView(o)">
<div class="text-overflow" style="font-weight: bold;color: #409EFF">{{ o.user_name }}</div>
<van-divider></van-divider>
<van-row gutter="30" style="font-size: 12px">
<van-col span="8">
<div style="color: gray">申请时间</div>
<div class="text-overflow">{{o.apply_time}}</div>
</van-col>
<van-col span="8">
<div style="color: gray">所属单位</div>
<div class="text-overflow">{{o.unit_name}}</div>
</van-col>
<van-col span="8">
<div style="color: gray">疾病诊断</div>
<div class="text-overflow">{{o.disease_diagnosis}}</div>
</van-col>
</van-row>
<div style="position: absolute;right: 0;top: 5px">
<span :style="'color:'+o.state_color">{{o.state_name}}</span>
</div>
</van-cell>
<van-empty v-if="tableData.length==0" class="custom-image" image="/none.svg"
description="暂无数据">
</van-empty>
</van-list>
</van-pull-refresh>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
list: [],
loading: false,
finished: false,
refreshing: false,
pageForm: {
pageNumber: 1,
pageSize: 5,
totalCount: 0
},
tableData: []
}
},
methods: {
async onRefresh() {
this.tableData = []
this.pageForm = {
pageNumber: 1,
pageSize: 5,
totalCount: 0
}
await this.onLoad()
setTimeout(() => {
this.refreshing = false
}, 1000)
},
async onLoad() {
this.loading = true
$.post('/mobile/medicalAid/serious/pageData', this.pageForm).then(res => {
this.loading = false
if (res.code === 0) {
this.tableData = this.tableData.concat(res.data.list)
if (this.tableData.length === res.data.totalCount) {
this.finished = true
} else {
this.finished = true
this.pageForm.pageNumber++
}
}
})
},
openView(o) {
window.location.href = '/mobile/medicalAid/serious/serious?id=' + o.id + '&state=' + o.state_id
}
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,266 @@
<!--#
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>
<!--#
}
#-->
@@ -0,0 +1,108 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
#app {
height: 100%;
}
.cell-card {
padding: 20px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
width: 90%;
margin: 20px auto;
border-radius: 20px;
}
.text-overflow {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
</style>
<div id="app" v-cloak>
<van-nav-bar title="医疗补助申请列表" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-dropdown-menu active-color="#1989fa">
<van-dropdown-item v-model="pageForm.year" :options="yearOption" @change="yearChange"></van-dropdown-item>
</van-dropdown-menu>
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list v-model="loading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''"
@load="pageData">
<van-cell v-for="item in tableData" class="cell-card">
<div class="text-overflow" style="font-weight: bold;color: #409EFF">{{ item.ma_username }}</div>
<div style="display: flex;font-size: 12px">
<div style="color: gray">姓名:</div>
<div class="text-overflow">{{ item.user_name }}</div>
</div>
<div style="position: absolute;right: 0;top: 5px">
<span :style="'color:'+item.state_color">{{item.state_name}}</span>
</div>
<van-divider></van-divider>
<van-row gutter="30" style="font-size: 12px">
<van-col span="8">
<div style="color: gray">疾病诊断</div>
<div class="text-overflow">{{item.disease_diagnosis}}</div>
</van-col>
<van-col span="8">
<div style="color: gray">申请时间</div>
<div class="text-overflow">{{item.apply_time}}</div>
</van-col>
<van-col span="8">
<div style="color: gray">入住医院</div>
<div class="text-overflow">{{item.hospital}}</div>
</van-col>
</van-row>
</van-cell>
</van-list>
</van-pull-refresh>
<div style="position: fixed;bottom: 0px;width: 100%;z-index:10;text-align: center">
<van-button @click="openApply" size="large"
style="width:88%;margin: 0 auto;margin-bottom: 4px;" color="#39acff">医疗补助申请
</van-button>
</div>
<van-empty v-if="tableData.length==0" class="custom-image" image="/none.svg"
description="暂无数据">
</van-empty>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [refreshSearchMixins],
data() {
return {
yearOption: [],
pageForm: {
year: '',
type: ''
}
}
},
methods: {
openApply(){
window.location.href = '/mobile/medicalAid/apply'
},
yearChange(val) {
this.pageForm.year = val
this.onRefresh()
},
typeChange(val) {
this.pageForm.type = val
this.onRefresh()
}
},
async created() {
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
this.yearOption.unshift({value: i, text: i + '年'},)
}
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,344 @@
<!--#
layout("/mobile/platform.html"){
#-->
<!---->
<!--工会委员会主席审核-->
<style>
.van-field__control {
color: #8b8f95;
}
.van-field__label {
color: #39acff
}
.clearqmbtn {
position: absolute;
bottom: 5px;
right: 5px;
}
.van-nav-bar {
background-color: white;
border: none !important;
}
html, body {
background-color: rgb(250, 250, 250);
}
.van-card__title {
font-size: 16px;
}
.van-cell::after {
border: none;
}
.van-grid-item__content {
padding: 0;
}
.center {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
.white_icon {
color: white !important;
}
</style>
<div id="app" v-cloak>
<van-nav-bar title="重大医疗补助主席审核" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-row style="margin-top: 5px;background-color: white;min-height: calc(100vh - 100px)">
<div style="padding-top: 20px">
<van-collapse v-model="Basic_Information" accordion>
<van-collapse-item title="个人基本信息" name="1">
<van-cell title="工&emsp;&emsp;号" :value="zjdata.loginname"></van-cell>
<van-cell title="姓&emsp;&emsp;名" :value="zjdata.user_name"></van-cell>
<van-cell title="性&emsp;&emsp;别" :value="zjdata.sex"></van-cell>
<van-cell title="年龄(岁)" :value="zjdata.user_age"></van-cell>
<van-cell title="部&emsp;&emsp;门" :value="zjdata.unit_name"></van-cell>
<van-cell title="在职状态" :value="zjdata.zzzt"></van-cell>
<van-cell title="申请时间" :value="zjdata.apply_time"></van-cell>
<van-cell title="联系电话" :value="zjdata.mobile"></van-cell>
<van-cell title="疾病诊断" :value="zjdata.disease_diagnosis"></van-cell>
<van-cell title="住院医疗总费用(元)" :value="zjdata.already_total_medical_expenses"></van-cell>
<van-cell title="统筹基金支付数(元)" :value="zjdata.already_overall_fund_payment"></van-cell>
<van-cell title="学校医疗补助已补助金额(元)" :value="zjdata.already_subsidized"></van-cell>
<van-cell title="发票号码" :value="zjdata.invoice_num"></van-cell>
</van-collapse-item>
<van-collapse-item title="附件" name="2">
<van-field name="uploader" label="发&emsp;票">
<template #input>
<van-image @click="getImg(zjdata.files_invoice)" v-for="item in zjdata.files_invoice"
width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="诊断书">
<template #input>
<van-image @click="getImg(zjdata.files_medical_certificate)"
v-for="item in zjdata.files_medical_certificate" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="医保结算单">
<template #input>
<van-image @click="getImg(zjdata.files_medicare_settlement)"
v-for="item in zjdata.files_medicare_settlement" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="出院小结">
<template #input>
<van-image @click="getImg(zjdata.files_summary_discharge)"
v-for="item in zjdata.files_summary_discharge" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
</van-collapse-item>
<van-collapse-item title="工会会计审核信息">
<van-cell title="审核人员" :value="zjdata.ar_username"></van-cell>
<van-cell title="审核时间" :value="zjdata.accountant_review_time"></van-cell>
<van-cell title="补助金额" :value="zjdata.total_grant"></van-cell>
<van-cell title="审核意见" :value="zjdata.accountant_review_idea"></van-cell>
<van-cell title="签&emsp;&emsp;字">
<div>
<img style="width: 100%" :src="zjdata.ar_s"/>
</div>
<div v-if="zjdata.ar_s==null">
暂无
</div>
</van-cell>
</van-collapse-item>
<van-collapse-item title="工会委员会副主席审核信息">
<van-cell title="审核人员" :value="zjdata.vcr_username"></van-cell>
<van-cell title="审核时间" :value="zjdata.vice_chairman_review_time"></van-cell>
<van-cell title="审核意见" :value="zjdata.vice_chairman_review_idea"></van-cell>
<van-cell title="签&emsp;&emsp;字">
<div>
<img style="width: 100%" :src="zjdata.vcr_s"/>
</div>
<div v-if="zjdata.vcr_s==null">
暂无
</div>
</van-cell>
</van-collapse-item>
</van-collapse>
<van-form>
<van-field
readonly
value="${@shiro.getPrincipalProperty('username')}"
name="sqr"
label="审核人"
></van-field>
<van-field v-model="formData.time" label="审核时间"></van-field>
<van-field
v-model="formData.idea"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button round plain size="large" @click="ChairmanDialog">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button round type="info" block size="large" @click="openDialog">通 过
</van-button>
</van-col>
</van-row>
<van-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-dialog v-model="ChairmanSign" title="请签字确认" show-cancel-button @confirm="zxSign"
@close="$refs.signature.reset()">
<mobile-sign ref="signature" :my_sign.sync="sign"></mobile-sign>
</van-dialog>
</van-form>
</div>
</van-row>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
Basic_Information: [1],
showSign: false,
ChairmanSign: false,
sign: "",
zjdata: {},
ImagePreview: [],
formData: {},
showImagePreview: false,
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
},
methods: {
getImg(images) {
this.showImagePreview = true
images = images.map(v => {
return FILE_DOMAIN + v.filepath
})
this.ImagePreview = images
},
openDialog() {
this.showSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
},
ChairmanDialog() {
this.ChairmanSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
},
onSubmit() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/addDo", {
time: this.formData.time,
zx_idea: this.formData.idea,
sign: this.sign,
state: this.zjdata.state_id,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
zxSign() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/Refuse", {
time: this.formData.time,
zx_idea: this.formData.idea,
sign: this.sign,
state: this.zjdata.state_id,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
async getData() {
const id = GetQueryString('id')
this.formData = {
time: moment().format('YYYY-MM-DD'),
}
$.post("/platform/fw/medicalAid/common/findOne", {id: id}).then(res => {
const {code, data} = res
if (code === 0) {
this.zjdata = res.data
medicalAid.toFormData(data)
}
})
},
},
async created() {
this.getData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,337 @@
<!--#
layout("/mobile/platform.html"){
#-->
<!---->
<!--工会委员会副主席审核-->
<style>
.van-field__control {
color: #8b8f95;
}
.van-field__label {
color: #39acff
}
.clearqmbtn {
position: absolute;
bottom: 5px;
right: 5px;
}
.van-nav-bar {
background-color: white;
border: none !important;
}
html, body {
background-color: rgb(250, 250, 250);
}
.van-card__title {
font-size: 16px;
}
.van-cell::after {
border: none;
}
.van-grid-item__content {
padding: 0;
}
.center {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
.white_icon {
color: white !important;
}
</style>
<div id="app" v-cloak>
<van-nav-bar title="重大医疗补助副主席审核" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-row style="margin-top: 5px;background-color: white;min-height: calc(100vh - 100px)">
<div style="padding-top: 20px">
<van-collapse v-model="Basic_Information" accordion>
<van-collapse-item title="个人基本信息" name="1">
<van-cell title="工&emsp;&emsp;号" :value="zjdata.loginname"></van-cell>
<van-cell title="姓&emsp;&emsp;名" :value="zjdata.user_name"></van-cell>
<van-cell title="性&emsp;&emsp;别" :value="zjdata.sex"></van-cell>
<van-cell title="年龄(岁)" :value="zjdata.user_age"></van-cell>
<van-cell title="部&emsp;&emsp;门" :value="zjdata.unit_name"></van-cell>
<van-cell title="在职状态" :value="zjdata.zzzt"></van-cell>
<van-cell title="申请时间" :value="zjdata.apply_time"></van-cell>
<van-cell title="联系电话" :value="zjdata.mobile"></van-cell>
<van-cell title="疾病诊断" :value="zjdata.disease_diagnosis"></van-cell>
<van-cell title="住院医疗总费用(元)" :value="zjdata.already_total_medical_expenses"></van-cell>
<van-cell title="统筹基金支付数(元)" :value="zjdata.already_overall_fund_payment"></van-cell>
<van-cell title="学校医疗补助已补助金额(元)" :value="zjdata.already_subsidized"></van-cell>
<van-cell title="发票号码" :value="zjdata.invoice_num"></van-cell>
</van-collapse-item>
<van-collapse-item title="附件" name="2">
<van-field name="uploader" label="发&emsp;票">
<template #input>
<van-image @click="getImg(zjdata.files_invoice)" v-for="item in zjdata.files_invoice"
width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="诊断书">
<template #input>
<van-image @click="getImg(zjdata.files_medical_certificate)"
v-for="item in zjdata.files_medical_certificate" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="医保结算单">
<template #input>
<van-image @click="getImg(zjdata.files_medicare_settlement)"
v-for="item in zjdata.files_medicare_settlement" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="出院小结">
<template #input>
<van-image @click="getImg(zjdata.files_summary_discharge)"
v-for="item in zjdata.files_summary_discharge" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
</van-collapse-item>
<van-collapse-item title="工会会计审核信息">
<van-cell title="审核人员" :value="zjdata.ar_username"></van-cell>
<van-cell title="审核时间" :value="zjdata.accountant_review_time"></van-cell>
<van-cell title="补助金额" :value="zjdata.total_grant"></van-cell>
<van-cell title="审核意见" :value="zjdata.accountant_review_idea"></van-cell>
<van-cell title="签&emsp;&emsp;字">
<div>
<img style="width: 100%" :src="zjdata.ar_s"/>
</div>
<div v-if="zjdata.ar_s==null">
暂无
</div>
</van-cell>
</van-collapse-item>
</van-collapse>
<van-form ref="addForm">
<van-field
readonly
value="${@shiro.getPrincipalProperty('username')}"
name="sqr"
label="审核人"
></van-field>
<van-field v-model="formData.time" label="审核时间"></van-field>
<van-field
v-model="formData.idea"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button round plain size="large" @click="RefuseDialog">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button round type="info" block size="large" @click="openDialog">通 过
</van-button>
</van-col>
</van-row>
<van-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-dialog v-model="fChairmanSign" title="请签字确认" show-cancel-button @confirm="fzxSign"
@close="$refs.signature.reset()">
<mobile-sign ref="signature" :my_sign.sync="sign"></mobile-sign>
</van-dialog>
</van-form>
</div>
</van-row>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
Basic_Information: [1],
showSign: false,
fChairmanSign: false,
sign: "",
zjdata: {},
ImagePreview: [],
formData: {},
showImagePreview: false,
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
},
methods: {
getImg(images) {
this.showImagePreview = true
images = images.map(v => {
return FILE_DOMAIN + v.filepath
})
this.ImagePreview = images
},
openDialog() {
this.$refs['addForm'].validate().then(() => {
this.showSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
})
},
RefuseDialog() {
this.$refs['addForm'].validate().then(() => {
this.fChairmanSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
})
},
onSubmit() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/addDo", {
time: this.formData.time,
f_zxidea: this.formData.idea,
sign: this.sign,
state: this.zjdata.state_id,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
fzxSign() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/Refuse", {
time: this.formData.time,
f_zxidea: this.formData.idea,
sign: this.sign,
state: this.zjdata.state_id,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
async getData() {
const id = GetQueryString('id')
this.formData = {
time: moment().format('YYYY-MM-DD'),
}
$.post("/platform/fw/medicalAid/common/findOne", {id: id}).then(res => {
const {code, data} = res
if (code === 0) {
this.zjdata = res.data
medicalAid.toFormData(data)
}
})
},
},
async created() {
this.getData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,309 @@
<!--#
layout("/mobile/platform.html"){
#-->
<!--会计审核页面-->
<style>
.van-field__control {
color: #8b8f95;
}
.van-field__label {
color: #39acff
}
.clearqmbtn {
position: absolute;
bottom: 5px;
right: 5px;
}
.van-nav-bar {
background-color: white;
border: none !important;
}
html, body {
background-color: rgb(250, 250, 250);
}
.van-card__title {
font-size: 16px;
}
.van-cell::after {
border: none;
}
.van-grid-item__content {
padding: 0;
}
.center {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
.white_icon {
color: white !important;
}
.van-collapse-item__wrapper .van-cell__title {
color: #39acff
}
</style>
<div id="app" v-cloak>
<van-nav-bar title="重大医疗补助会计审核" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-row style="margin-top: 5px;background-color: white;padding-top: 20px;min-height: calc(100vh - 100px)">
<van-collapse v-model="activeNames" accordion>
<van-collapse-item title="个人基本信息" name="1">
<van-cell title="工&emsp;&emsp;号" :value="zjdata.loginname"></van-cell>
<van-cell title="姓&emsp;&emsp;名" :value="zjdata.user_name"></van-cell>
<van-cell title="性&emsp;&emsp;别" :value="zjdata.sex"></van-cell>
<van-cell title="年龄(岁)" :value="zjdata.user_age"></van-cell>
<van-cell title="部&emsp;&emsp;门" :value="zjdata.unit_name"></van-cell>
<van-cell title="在职状态" :value="zjdata.zzzt"></van-cell>
<van-cell title="申请时间" :value="zjdata.apply_time"></van-cell>
<van-cell title="联系电话" :value="zjdata.mobile"></van-cell>
<van-cell title="疾病诊断" :value="zjdata.disease_diagnosis"></van-cell>
<van-cell title="住院医疗总费用(元)" :value="zjdata.already_total_medical_expenses"></van-cell>
<van-cell title="统筹基金支付数(元)" :value="zjdata.already_overall_fund_payment"></van-cell>
<van-cell title="学校医疗补助已补助金额(元)" :value="zjdata.already_subsidized"></van-cell>
<van-cell title="发票号码" :value="zjdata.invoice_num"></van-cell>
</van-collapse-item>
<van-collapse-item title="附件" name="2">
<van-field name="uploader" label="发&emsp;票">
<template #input>
<van-image @click="getImg(zjdata.files_invoice)" v-for="item in zjdata.files_invoice"
width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="诊断书">
<template #input>
<van-image @click="getImg(zjdata.files_medical_certificate)"
v-for="item in zjdata.files_medical_certificate" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="医保结算单">
<template #input>
<van-image @click="getImg(zjdata.files_medicare_settlement)"
v-for="item in zjdata.files_medicare_settlement" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
<van-field name="uploader" label="出院小结">
<template #input>
<van-image @click="getImg(zjdata.files_summary_discharge)"
v-for="item in zjdata.files_summary_discharge" width="100" height="100"
:src="FILE_DOMAIN+item.filepath">
<van-image-preview v-model="showImagePreview"
:images="ImagePreview"></van-image-preview>
</van-image>
</template>
</van-field>
</van-collapse-item>
<van-collapse-item title="审核" name="3">
<van-form ref="addForm">
<van-field readonly value="${@shiro.getPrincipalProperty('username')}" name="sqr"
label="审核人" input-align="right"></van-field>
<van-field v-model="formData.time" label="审核时间" input-align="right"></van-field>
<van-field v-model="formData.total_grant" type="number" label="补助金额"
input-align="right" placeholder="请输入补助金额"></van-field>
<van-field v-model="formData.idea" rows="2" autosize label="审核意见"
type="textarea" placeholder="请输入审核意见" input-align="right"></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button round plain size="large" @click="RefuseDialog">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button round type="info" size="large" @click="openDialog">通 过
</van-button>
</van-col>
</van-row>
<van-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-dialog v-model="fChairmanSign" title="请签字确认" show-cancel-button @confirm="kjSign"
@close="$refs.signature.reset()">
<mobile-sign ref="signature" :my_sign.sync="sign"></mobile-sign>
</van-dialog>
</van-form>
</van-collapse-item>
</van-collapse>
</van-row>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
activeNames: '3',
showSign: false,
fChairmanSign: false,
sign: "",
zjdata: {},
formData: {},
ImagePreview: [],
showImagePreview: false,
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
},
methods: {
getImg(images) {
this.showImagePreview = true
images = images.map(v => {
return FILE_DOMAIN + v.filepath
})
this.ImagePreview = images
},
openDialog() {
this.$refs['addForm'].validate().then(() => {
this.showSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
})
},
RefuseDialog() {
this.$refs['addForm'].validate().then(() => {
this.fChairmanSign = true
this.$nextTick(() => {
this.$refs.signature.getMySign()
})
})
},
kjSign() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/Refuse", {
time: this.formData.time,
total_grant: this.formData.total_grant,
idea: this.formData.idea,
sign: this.sign,
state: this.zjdata.state_id,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
onSubmit() {
this.$refs.signature.submitSign()
if (!this.sign) {
this.$toast('请签名再提交')
return
}
$.post("/mobile/medicalAid/serious/addDo", {
time: this.formData.time,
total_grant: this.formData.total_grant,
idea: this.formData.idea,
state: this.zjdata.state_id,
sign: this.sign,
id: GetQueryString('id')
}, (res) => {
if (res.code === 0) {
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/medicalAid/serious'
}, 1000)
} else {
this.$toast.fail('审核失败');
}
})
},
async getData() {
const id = GetQueryString('id')
const {data} = await $.get("/platform/fw/medicalAid/acc/review/getTotalGrant", {id})
this.formData = {
time: moment().format('YYYY-MM-DD'),
idea: '按照学校《教职工病伤医疗互助基金实施办法》规定,本次共补助金额为:\n' + capitalAmount(data.toFixed(0)) + '' + data.toFixed(2) + ')。',
total_grant: data.toFixed(2)
}
$.post("/platform/fw/medicalAid/common/findOne", {id: id}).then(res => {
const {code, data} = res
if (code === 0) {
medicalAid.toFormData(data)
this.zjdata = res.data
}
})
}
},
async created() {
this.getData();
}
})
</script>
<!--#
}
#-->