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

486 lines
24 KiB
HTML
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.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-input-number input {
text-align: left !important;
}
</style>
<div id="app" v-cloak>
<guava>
<el-card class="box-card" shadow="never">
<template #header>
<h3 style="color: #1867b0">慰问申请</h3>
</template>
<div>
<el-form label-width="120px">
<el-form-item label="填写申请信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
</el-form>
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" label-position="right"
label-suffix=":">
<el-row :gutter="60">
<el-col :span="12">
<el-form-item prop="manager_name" label="申请人">
<el-input disabled v-model="formData.manager_name" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="apply_time" label="申请时间">
<el-input disabled v-model="formData.apply_time" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="be_user" label="慰问对象">
<el-select
style="width: 100%"
v-model="formData.be_user"
filterable
clearable
remote
reserve-keyword
placeholder="请输入姓名或工号查找"
:remote-method="userRemoteMethod"
:loading="userLoading"
@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 label="姓名" prop="be_user_username">
<el-input maxLength="50" v-model="formData.be_user_username"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" prop="be_user_sex">
<el-radio-group size="small" v-model="formData.be_user_sex">
<el-radio border label="男">男</el-radio>
<el-radio border label="女">女</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="be_user_idcard">
<el-input v-model="formData.be_user_idcard"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="职务/职称" prop="be_user_zwzc">
<el-input v-model="formData.be_user_zwzc"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="be_user_mobile">
<el-input v-model="formData.be_user_mobile"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位" prop="be_user_unitname">
<el-input v-model="formData.be_user_unitname"></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item prop="job_title" label="职&emsp;&emsp;称">
<el-input placeholder="输入慰问对象查询" v-model="formData.job_title" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>-->
<!-- <el-col :span="12">
<el-form-item prop="sex" label="性别">
<el-input disabled placeholder="输入慰问对象查询" v-model="formData.sex" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>-->
<!-- </el-row>
<el-row gutter="60">-->
<!--<el-col :span="12">
<el-form-item prop="payee" label="收款人">
<el-select
style="width: 100%"
v-model="formData.payee"
filterable
clearable
remote
reserve-keyword
placeholder="请输入姓名或工号查找"
:remote-method="userPayee"
:loading="userLoading"
@change="payeeChange">
<el-option
v-for="item in userPayees"
: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="payee_bank_number" label="收款人银行卡">
<el-input placeholder="请填写银行卡号" v-model="formData.payee_bank_number" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="payee_bank_name" label="收款人开户行">
<el-input placeholder="请填写银行卡号" v-model="formData.payee_bank_name" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>-->
<el-col :span="12">
<el-form-item label="慰问类型" prop="type">
<el-select v-model="formData.type" @change="typeChange" style="width: 100%">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item prop="money" label="慰问金额">
<el-input style="width: 100%" v-model="formData.money"
:placeholder="moneyTitle" controls-position="right"
:controls="false"
precision="2"
:min="0"
:max="1000000000"></el-input>
</el-form-item>
</el-col>-->
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="way" label="慰问方式">
<el-select v-model="formData.way" placeholder="请选择慰问方式" style="width: 100%" clearable
disabled>
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!--慰问时间对应对应原发生时间字段-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="慰问时间" prop="occur_time">-->
<!-- <el-date-picker-->
<!-- clearable-->
<!-- style="width: 100%"-->
<!-- v-model="formData.occur_time"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="慰问时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item label="慰问金垫付人" prop="payee">
<el-select
:loading="userLoading"
:remote-method="userPayee"
@change="dfrChange"
clearable
filterable
placeholder="请输入姓名或工号查找"
remote
reserve-keyword
style="width: 100%"
v-model="formData.dfr">
<el-option
:key="item.id"
:label="item.username+'('+item.loginname+')'"
:value="item.id"
v-for="item in userPayees">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="60">
<el-col :span="12">
<el-form-item prop="solatiumAdvancesPeoplesName" label="慰问金垫付人姓名">
<el-input v-model="formData.solatiumAdvancesPeoplesName"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="solatiumAdvancesPeoplesName" label="工资号">
<el-input v-model="formData.solatiumAdvancesArtificialNumber"></el-input>
</el-form-item>
</el-col>
</el-row>-->
<!--申请事由原对应备注字段-->
<el-row gutter="60">
<el-col :span="24">
<el-form-item prop="remark" label="申请事由">
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item prop="files" label="附&emsp;&emsp;件">
<file-upload :files.sync="formData.files" card></file-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign prefix="condolence" :qz.sync="formData.sign"></sign>
</el-form-item>
</el-col>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="doAdd()">确 定</el-button>
</div>
</div>
</el-card>
</guava>
<el-dialog
title="申请须知"
:visible.sync="dialogVisible"
width="40%">
<span style="line-height: 24px">
<p>1.目前,无需提交发票的日常慰问(住院、本人及直系亲属去世等)均可以通过本系统线上提交,需要提交发票报销的其他类型慰问(结婚、生育)仍通过线下进行。申请审核通过后将直接提交财务打卡。</p>
<p>2.生病住院慰问金申请时需附出院记录或病历复印件(以附件形式上传),1年限享受1次。</p>
</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false;">同意</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
data() {
return {
money: 0,
moneyTitle: "",
dialogVisible: true,
delNotesList: [],
formData: {},
formRules: {
be_user: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_zwzc: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_unitname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
be_user_idcard: [{required: true, message: '必填', trigger: ['blur', 'change']}],
solatiumAdvancesPeoplesName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
solatiumAdvancesArtificialNumber: [{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']}],
sign: [{required: true, message: '必填', trigger: ['blur', 'change']}],
// job_title: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
userLoading: false,
userOptions: [],
userPayees: [],
typeOptions: [],
}
},
watch: {
"formData.money"(val) {
if (val > this.money) {
this.$notify({
title: '警告',
message: '金额超过规定金额' + this.money + "(元)",
type: 'warning'
});
this.$set(this.formData, "money", this.money)
}
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v' + new Date().getTime()),
},
methods: {
dfrChange(id) {
const userList = this.userPayees
const user = userList.find(v => v.id === id)
this.$set(this.formData, "solatiumAdvancesPeoplesName", user.username)
this.$set(this.formData, "solatiumAdvancesArtificialNumber", user.loginname)
},
async typeChange(id) {
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id})
if (data) {
this.$set(this, "moneyTitle", "慰问金额不超过" + data.money + "(元)")
this.$set(this, "money", data.money)
if (this.formData.money != null) {
this.$set(this.formData, "money", null)
}
this.$set(this.formData, "way", data.way)
}
},
async getUserData(userId) {
const {data} = await $.get(loc() + "/getUserData", {userId})
return data
},
async userChange(val) {
const userData = this.userOptions.find(v => v.id === val)
this.$set(this.formData, 'be_user_sex', userData.sex)
this.$set(this.formData, 'be_user_idcard', userData.idcard)
this.$set(this.formData, 'be_user_mobile', userData.mobile)
this.$set(this.formData, 'be_user_zwzc', userData.jobtitle)
this.$set(this.formData, 'be_user_username', userData.username)
this.$set(this.formData, 'be_user_unitname', userData.unitname)
this.$set(this.formData, 'be_user_loginname', userData.loginname)
},
async payeeChange() {
const payeeData = await this.getUserData(this.formData.payee);
this.$set(this.formData, 'payee_bank_number', payeeData.bank_number)
},
blur() {
let num = 0
this.formData.goods.forEach(v => {
num += parseFloat(v.price)
})
this.$set(this.formData, "money", num)
},
delNotesItem(scope) {
this.delNotesList.push(scope.row.id)
this.formData.goods.splice(scope.$index, 1)
},
async userPayee(query) {
if (query) {
this.userLoading = true
const arr = await this.queryUser(query)
this.userPayees = arr
this.userLoading = false
}
},
async userRemoteMethod(query) {
if (query) {
this.userLoading = true
const arr = await this.queryUser(query)
this.userOptions = arr
this.userLoading = false
}
},
async queryUser(query) {
const {data} = await $.get(loc() + "/queryUser", {query})
return data
},
flush() {
this.delNotesList = []
this.formData = {
goods: [],
manager_name: "${@shiro.getPrincipalProperty('username')}",
/* bank_card: "${@shiro.getPrincipalProperty('bank_number')}",*/
apply_time: moment().format('YYYY-MM-DD'),
}
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doAdd() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const formData = JSON.parse(JSON.stringify(this.formData))
formData.files = JSON.stringify(formData.files)
formData.sign = ''
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
const resp = await $.post(loc() + "/doAdd", {
data: JSON.stringify(formData),
sign: this.formData.sign
})
closeLoadingFunc(loading, resp, async (data, msg) => {
this.$notify({
title: '成功',
message: msg,
type: 'success'
});
this.flush()
location.href = '/platform/fw/condolence/myList'
}, (data, msg) => {
this.$notify.error({
title: '错误',
message: msg
});
})
}
})
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
},
async created() {
this.flush()
this.getTypeOptions()
const id = GetQueryString("id")
if (id) {
const resp = await $.get("/platform/fw/condolence/findOne", {id})
await this.userRemoteMethod(resp.data.be_user_loginname)
await this.userPayee(resp.data.solatiumAdvancesPeoplesName)
if (this.userPayees && this.userPayees.length > 0) {
resp.data.dfr = this.userPayees[0].id
}
await this.typeChange(resp.data.type)
if (resp.data.files) {
resp.data.files = JSON.parse(resp.data.files)
}
this.formData = resp.data
}
}
})
</script>
<!--#
}
#-->