Files
UNION_NJUST/target/classes/views/mobile/difficulty/apply.html
T
2026-09-23 09:38:39 +08:00

256 lines
12 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" :show-error-message="false" input-align="right">
<van-cell-group inset class="mt10">
<van-field readonly
value="${@shiro.getPrincipalProperty('username')} ( ${@shiro.getPrincipalProperty('loginname')} )"
name="sqrname"
label="申请人"></van-field>
<van-field name="apply_mode" label="申请模式">
<template #input>
<van-radio-group v-model="formData.apply_mode" direction="horizontal" @change="applyModeChange">
<van-radio :name="1">本人申请</van-radio>
<van-radio :name="2">替他人申请</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field @input="userRemoteMethod" name="bbzrusername"
v-model="formData.bbzrusername" label="受补助人" placeholder="请输入受补助人姓名"
:rules="[{ required: true, message: '请填写受补助人姓名' }]"></van-field>
<van-action-sheet v-model="sheetShow"
:actions="userList"
cancel-text="重新输入姓名或工号查询"
@cancel="userList = []"
:close-on-click-overlay="false"
@select="onUserSelect">
</van-action-sheet>
<van-field label="身份证号" v-model="formData.idcard"></van-field>
<van-field label="性别" v-model="formData.sex"></van-field>
<van-field label="职称" v-model="formData.zc"></van-field>
<van-field label="职务" v-model="formData.zw"></van-field>
<van-field label="单位" v-model="formData.unitname"></van-field>
<van-field label="出生日期" v-model="formData.birthday"></van-field>
<van-field label="手机号码" v-model="formData.lxfs"></van-field>
<van-field name="sq_bzlx_name"
@click="sq_bzlxShow = true"
:value="formData.sq_bzlx_name" label="补助类型" placeholder="请选择补助类型"></van-field>
<van-popup v-model:show="sq_bzlxShow" position="bottom" round>
<van-picker show-toolbar :columns="sq_bzlxList" @confirm="onSq_bzlxConfirm"
@cancel="sq_bzlxShow = false">
</van-picker>
</van-popup>
<van-field name="sq_knlx_name"
@click="sq_knlxShow = true"
:value="formData.sq_knlx_name" label="困难类型" placeholder="请选择困难类型"></van-field>
<van-popup v-model:show="sq_knlxShow" position="bottom" round>
<van-picker show-toolbar :columns="sq_knlxist" @confirm="onSq_knlxConfirm"
@cancel="sq_knlxShow = false">
</van-picker>
</van-popup>
<template v-if="formData.sq_knlx==1">
<van-field label="所在医院" placeholder="请填写所在所在医院" v-model="formData.hospital"></van-field>
<van-field label="住院时间" :value="formData.hospitalized_time_name"
placeholder="请填写住院时间"
@click="hospitalized_timeShow = true"></van-field>
<van-calendar v-model="hospitalized_timeShow" :min-date="new Date('1999-01-01')" :show-confirm="false"
type="range"
@confirm="onHospitalized_timeConfirm"></van-calendar>
</template>
<van-field v-model="formData.apply_reason" name="remark" label="申请理由" style="flex-flow: column"
placeholder="请填写申请理由"
input-align="left"
rows="3" maxlength="200" type="textarea" show-word-limit autosize>
<template #label>
<div class="mb10">申请事由</div>
</template>
</van-field>
</van-cell-group>
<van-cell-group inset class="mt10">
<van-field name="files" label="附&emsp;&emsp;件" required style="flex-flow: column" input-align="left">
<template #label>
<div class="mb10">附&emsp;&emsp;件</div>
</template>
<template #input>
<vant-file-upload :files.sync="formData.files"></vant-file-upload>
</template>
</van-field>
</van-cell-group>
<van-cell-group inset class="mt10">
<van-field label="签字" required style="flex-flow: column">
<template #label>
<div class="mb10">签&emsp;&emsp;字</div>
</template>
<template #input>
<mobile-sign ref="signature" :my_sign.sync="formData.sqsign"></mobile-sign>
</template>
</van-field>
</van-cell-group>
<div style="margin: 20px 20px 10px 20px">
<van-button @click="onSubmit()" style="border-radius: 10px" block type="info" :color="themeColor">
提 交
</van-button>
</div>
</van-form>
</div>
<script src="/assets/platform/module/difficulty/common.js?v=1.0.0"></script>
<script>
const vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
hospitalized_timeShow: false,
sq_bzlxShow: false,
sq_bzlxList: [],
minDate: {},
sq_knlxShow: false,
sq_knlxist: [],
userList: [],
formData: {
apply_mode: 1
},
sheetShow: false,
files: [],
}
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
},
methods: {
onHospitalized_timeConfirm(val) {
this.$set(this.formData, "hospitalized_time_name", moment(val[0]).format('YYYY-MM-DD') + "至" + moment(val[1]).format('YYYY-MM-DD'))
this.$set(this.formData, "hospitalized_time", moment(val[0]).format('YYYY-MM-DD') + "至" + moment(val[1]).format('YYYY-MM-DD'))
this.hospitalized_timeShow = false
},
onSq_bzlxConfirm(val) {
this.$set(this.formData, "sq_bzlx_name", val.text)
this.$set(this.formData, "sq_bzlx", val.value)
for (let i in difficulty.getHard(val.value)) {
this.sq_knlxist.push({value: i, text: difficulty.getHard(val.value)[i]})
}
this.$set(this.formData, "sq_knlx_name", null)
this.$set(this.formData, "sq_knlx", null)
this.sq_bzlxShow = false
},
onSq_knlxConfirm(val) {
this.$set(this.formData, "sq_knlx_name", val.text)
this.$set(this.formData, "sq_knlx", val.value)
this.sq_knlxShow = false
},
applyModeChange(val) {
if (val === 1) {
this.$set(this.formData, 'difficultyUser', "${@shiro.getPrincipalProperty('id')}")
this.$set(this.formData, 'bbzrusername', "${@shiro.getPrincipalProperty('username')}")
this.$set(this.formData, 'sex', "${@shiro.getPrincipalProperty('sex')}")
this.$set(this.formData, 'zc', "${@shiro.getPrincipalProperty('jobTitle')}")
this.$set(this.formData, 'zw', "${@shiro.getPrincipalProperty('position')}")
this.$set(this.formData, 'unitname', "${@shiro.getPrincipalProperty('unit').getName()}")
this.$set(this.formData, 'birthday', "${@shiro.getPrincipalProperty('birthday')}")
this.$set(this.formData, 'lxfs', "${@shiro.getPrincipalProperty('mobile')}")
this.$set(this.formData, 'idcard', "${@shiro.getPrincipalProperty('idCard')}")
} else if (val === 2) {
this.formData = {}
this.$set(this.formData, 'apply_mode', 2)
this.$set(this.formData, 'bbzrusername', undefined)
}
},
async userRemoteMethod(query) {
if (query) {
const {data} = await $.get("/platform/fw/condolence/apply/queryUser", {query})
data.forEach(v => {
v.name = v.username
v.subname = v.loginname
return v
})
this.userList = data
this.sheetShow = true
}
},
onUserSelect(val) {
this.$set(this.formData, 'difficultyUser', val.id)
this.$set(this.formData, 'bbzrusername', val.name)
this.$set(this.formData, 'lxfs', val.mobile)
this.$set(this.formData, 'sex', val.sex)
this.$set(this.formData, 'unitname', val.unitname)
this.$set(this.formData, 'zc', val.jobTitle)
this.$set(this.formData, 'zw', val.position)
this.$set(this.formData, 'birthday', val.birthday)
this.$set(this.formData, "sq_bzlx_name", this.sq_bzlxList[0].text)
this.$set(this.formData, "sq_bzlx", this.sq_bzlxList[0].value)
this.sheetShow = false
},
async onSubmit() {
this.$refs.signature.submitSign()
/* if (!this.formData.sqsign) {
vant.Toast('请签名!')
return
}*/
const formData = clone(this.formData)
formData.files = JSON.stringify(formData.files)
formData.applicantsign = formData.sqsign
formData.bbzrusername = formData.difficultyUser
this.$refs['addForm'].validate().then(async () => {
this.$toast.loading('提交中...')
const res = await $.post('/platform/fw/difficulty/apply/doAdd', formData)
if (res.code === 0) {
this.$toast.success('申请成功');
setTimeout(() => {
location.replace('/mobile/difficulty/apply/apply_list')
}, 1000)
} else {
this.$toast.fail('申请失败');
}
})
},
},
mounted() {
this.$nextTick(() => {
if (this.$refs.signature) {
this.$refs.signature.getMySign()
}
})
},
async created() {
this.applyModeChange(1)
for (let i in difficulty.subsidy) {
this.sq_bzlxList.push({value: i, text: difficulty.subsidy[i]})
}
this.$set(this.formData, "sq_bzlx_name", this.sq_bzlxList[0].text)
this.$set(this.formData, "sq_bzlx", this.sq_bzlxList[0].value)
for (let i in difficulty.getHard(this.formData.sq_bzlx)) {
this.sq_knlxist.push({value: i, text: difficulty.getHard(this.formData.sq_bzlx)[i]})
}
this.formData.apply_time = moment().format('YYYY-MM-DD')
}
})
</script>
<!--#
}
#-->