Files
UNION_NJUST/target/classes/static/components/reimbursement/Condolence.vue
T
2026-09-23 09:38:39 +08:00

375 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<el-form ref="form" :model="x" :rules="formRules" label-position="right" label-width="120px"
>
<el-row gutter="60">
<el-col :span="12">
<el-form-item label="慰问对象:" prop="be_user">
<el-select
v-model="x.be_user"
:remote-method="userRemoteMethod"
clearable
filterable
placeholder="请输入姓名或工号查找"
remote
reserve-keyword
style="width: 100%"
@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-col>
<!-- <el-col :span="12">
<el-form-item prop="job_title" label="职&emsp;&emsp;称:">
<el-input placeholder="输入慰问对象查询" v-model="x.job_title" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>-->
<el-col :span="12">
<el-form-item label="性&emsp;&emsp;别:" prop="sex">
<el-input v-model="x.sex" disabled maxlength="30" placeholder="输入慰问对象查询"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生&emsp;&emsp;日:" prop="birthday">
<el-input v-model="x.birthday" disabled maxlength="30" placeholder="输入慰问对象查询"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号:" prop="idcard">
<el-input v-model="x.idcard" disabled maxlength="30" placeholder="输入慰问对象查询"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式:" prop="mobile">
<el-input v-model="x.mobile" disabled maxlength="30" placeholder="输入慰问对象查询"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="慰问类型:" prop="type">
<el-select v-model="x.type" style="width: 100%" @change="typeChange">
<el-option v-for="item in typeOptions" :label="item.name+' ('+item.code+')'"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="慰问方式:" prop="way">
<el-select v-model="x.way" clearable placeholder="请选择慰问方式" style="width: 100%">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</el-form-item>
</el-col>
<div v-if="x.type === 'a17d14ba32e944439273846ccdb5af12'">
<el-col :span="12">
<el-form-item label="住院病由:">
<el-input v-model="x.hospital_by"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="住院时间">
<el-date-picker
v-model="x.hospital_time"
end-placeholder="结束日期"
range-separator="-"
start-placeholder="开始日期"
style="width: 100%"
type="daterange"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入住医院:" prop="the_hospital">
<el-input v-model="x.the_hospital"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="当年次数:">
<el-input v-model="x.hospital_yearnum"></el-input>
</el-form-item>
</el-col>
</div>
<el-col :span="12">
<el-form-item label="慰问金额:" prop="money">
<el-input-number v-model="x.money" :controls="false"
:max="1000000000" :min="0" controls-position="right"
placeholder="请填写慰问金额"
precision="2"
style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item class="is-required" label="发票张数:" prop="files_num">
<el-input-number v-model="x.files_num" :controls="false"
:max="1000000000" :min="0" controls-position="right"
placeholder="请填写发票张数"
style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="慰问时间:" prop="occur_time">
<el-date-picker
v-model="x.occur_time"
clearable
placeholder="慰问时间"
style="width: 100%"
type="date"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<template v-if="x.type==='0df6d819d4114f2da7a147ae717642c4'">
<el-col :span="12">
<el-form-item label="去逝时间:" prop="dead_time">
<el-date-picker
v-model="x.dead_time"
clearable
placeholder="去逝时间"
style="width: 100%"
type="date"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="与被慰问人关系:" prop="dead_gx">
<el-select v-model="x.dead_gx" style="width: 100%">
<el-option label="配偶" value="配偶"></el-option>
<el-option label="父亲" value="父亲"></el-option>
<el-option label="母亲" value="母亲"></el-option>
<el-option label="子女" value="子女"></el-option>
</el-select>
</el-form-item>
</el-col>
</template>
<template v-if="x.type==='91c0e920dc984aac8a433a6883c9faa0'">
<el-col :span="12">
<el-form-item label="结婚时间:" prop="marry_time">
<el-date-picker
v-model="x.marry_time"
clearable
placeholder="结婚时间"
style="width: 100%"
type="date"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</template>
<template v-if="x.type==='fd681267299344d087ebe6883eb67736'">
<el-col :span="12">
<el-form-item label="生育时间:" prop="birth_time">
<el-date-picker
v-model="x.birth_time"
clearable
placeholder="生育时间"
style="width: 100%"
type="date"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</template>
<el-col :span="24">
<el-form-item label="参加随行人员:" prop="personnel">
<el-input v-model="x.personnel" :autosize="{ minRows: 4, maxRows: 8}" maxlength="500"
placeholder="请填写参加随行人员" type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="报销事由:" prop="cause">
<el-input v-model="x.cause" :autosize="{ minRows: 4, maxRows: 8}" maxlength="500"
placeholder="请填写报销事由" type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注:" prop="remark">
<el-input v-model="x.remark" :autosize="{ minRows: 4, maxRows: 8}" maxlength="500"
placeholder="需要填写: 发票编号、开具方、金额" type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col v-if="!ReimbursementIsSign" :span="24">
<el-form-item label="签&emsp;&emsp;字" prop="sign">
<sign :qz.sync="x.sign" prefix="condolence"></sign>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="" prop="files">
<span v-if="x.type === '91c0e920dc984aac8a433a6883c9faa0'"
style="color: red">温馨提醒:需要提供购买的慰问品的发票、慰问照片、会员的结婚证复印件</span>
<span v-else-if="x.type === 'a17d14ba32e944439273846ccdb5af12'"
style="color: red">温馨提醒:需要提供购买的慰问品发票、慰问照片、住院证明或出院小结</span>
<span v-else-if="x.type === 'fd681267299344d087ebe6883eb67736'" style="color: red">温馨提醒:需要提供购买的慰问品发票,慰问照片(会员与婴儿合影照,或慰问人员与会员和婴儿的合影照) </span>
<span v-else style="color: red">温馨提醒:需要提供购买的慰问品发票,慰问照片</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="doAdd()">确 定</el-button>
</div>
</div>
</template>
<script>
module.exports = {
props: {
x: {
type: Object,
default: {},
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v' + new Date().getTime())
},
data() {
return {
ReimbursementIsSign: false,
userOptions: [],
formRules: {
be_user: [{required: true, message: '必填', trigger: ['blur', 'change']}],
type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
disease_type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
way: [{required: true, message: '必填', trigger: ['blur', 'change']}],
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
bank_card: [{required: true, message: '必填', trigger: ['blur', 'change']}],
personnel: [{required: true, message: '必填', trigger: ['blur', 'change']}],
remark: [{required: true, message: '必填', trigger: ['blur', 'change']}],
occur_time: [{required: true, message: '必填', trigger: ['blur', 'change']}],
job_title: [{required: true, message: '必填', trigger: ['blur', 'change']}],
cause: [{required: true, message: '必填', trigger: ['blur', 'change']}],
// files_num: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sign: [{required: true, message: '必填', trigger: ['blur', 'change']}]
},
typeOptions: [],
}
},
methods: {
async getUserData(userId) {
const {data} = await $.get("/platform/fw/condolence/apply/getUserData", {userId})
return data
},
async userChange() {
const userData = await this.getUserData(this.x.be_user);
this.$set(this.x, 'sex', userData.sex)
this.$set(this.x, 'birthday', userData.birthday)
this.$set(this.x, 'idcard', userData.idcard)
this.$set(this.x, 'mobile', userData.mobile)
this.$set(this.x, 'job_title', userData.jobtitle)
},
async userRemoteMethod(query) {
if (query) {
const arr = await this.queryUser(query)
this.userOptions = arr
}
},
async queryUser(query) {
const {data} = await $.get("/platform/fw/condolence/apply/queryUser", {query})
return data
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async typeChange(id) {
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id})
if (data) {
this.$set(this.x, "money", data.money)
this.$set(this.x, "way", data.way)
}
},
async doAdd() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const pd = this.x
if (pd.files_num === undefined) {
this.$notify({
title: '警告',
message: "请输入发票张数",
type: 'warning'
});
return
}
//const pd = this.$parent.$parent.formData
pd.starting_time = pd.hospital_time ? pd.hospital_time[0] : ''
pd.end_time = pd.hospital_time ? pd.hospital_time[1] : ''
const {code, msg} = await $.post('/platform/condolence/apply/doAdd', {
data: JSON.stringify(pd),
sign: pd.sign
})
if (code === 0) {
sublime.jumpPagePjax('/activity/reimbursement/list')
// window.location.href = '/activity/reimbursement/list'
} else {
this.$notify({
title: '错误',
message: msg,
type: 'error'
});
}
}
})
}
},
watch: {
'x': {
deep: true,
handler(s) {
this.$emit("update:x", s)
}
}
},
async created() {
await this.getTypeOptions()
const aa = await getDictState("ReimbursementIsSign")
this.ReimbursementIsSign = aa.disabled
}
}
</script>
<style scoped>
</style>