375 lines
14 KiB
Vue
375 lines
14 KiB
Vue
<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="职  称:">
|
||
<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="性  别:" 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="生  日:" 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="签  字" 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> |