first commit

This commit is contained in:
2026-09-20 15:46:34 +08:00
parent 72fb5eae10
commit e558339dcc
3340 changed files with 671310 additions and 251 deletions
@@ -0,0 +1,375 @@
<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=2.0.0')
},
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>