活动申报、报销

This commit is contained in:
Paidax
2024-12-13 11:14:21 +08:00
parent 6e4cf46607
commit 11ac499d4a
61 changed files with 6488 additions and 2914 deletions
@@ -1,143 +1,316 @@
<template>
<div class="activity-bx-info">
<el-tabs tab-position="top" v-model="activeName">
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
<el-tab-pane label="申请信息" name="1">
<el-descriptions :column="3" border>
<el-descriptions-item label="申请人姓名">{{ viewData.user_name }}</el-descriptions-item>
<el-descriptions-item label="申请时间">{{ viewData.apply_time }}</el-descriptions-item>
<el-descriptions-item label="联系方式">{{ viewData.mobile }}</el-descriptions-item>
<el-descriptions-item label="活动主体类型">{{ viewData.activityTypeName }}</el-descriptions-item>
<el-descriptions-item label="活动项目类型" :span="2">{{ viewData.projectTypeName }}</el-descriptions-item>
<el-descriptions-item label="活动名称" :span="3">{{viewData.activity_name}}</el-descriptions-item>
<el-descriptions-item label="项目编号" :span="3">{{viewData.projectCode}}</el-descriptions-item>
<el-descriptions-item label="申报(承办)单位" :span="3">{{viewData.fundsUnitName}}</el-descriptions-item>
<el-descriptions-item label="活动计划时间" :span="3">
{{viewData.startPlannedDate}}{{viewData.endPlannedDate}}
</el-descriptions-item>
<el-descriptions-item label="活动地址" :span="3">{{viewData.address}}</el-descriptions-item>
<border-table>
<table>
<tr>
<th>申请人</th>
<td>{{ viewData.user_name }}( {{ viewData.mobile }})</td>
<th>申请时间</th>
<td>{{ viewData.apply_time }}</td>
<th>申请类型</th>
<td>{{ viewData.apply_type == 1 ? "经费申请" : "报销申请" }}</td>
</tr>
<tr>
<th>活动时间</th>
<td>
<span v-if="viewData.startTime">{{ viewData.startTime }}{{ viewData.endTime }}</span>
<span v-else>暂无</span>
</td>
<th>活动计划时间</th>
<td>{{ viewData.startPlannedDate }}{{ viewData.endPlannedDate }}</td>
<th>项目编号</th>
<td>{{ viewData.projectCode }}</td>
</tr>
<el-descriptions-item label="活动方案及简介" :span="3">
<div v-html="viewData.activity_content"></div>
</el-descriptions-item>
<el-descriptions-item label="活动费用预算表" :span="3">
<el-table :data="viewData.budgets" border size="mini" style="width: 100%">
<el-table-column type="index" width="100" label="序号"></el-table-column>
<el-table-column prop="name" label="费用项目名称"></el-table-column>
<el-table-column prop="unitPrice" label="单价(元)"></el-table-column>
<el-table-column prop="num" label="数量"></el-table-column>
<el-table-column prop="total" label="合计(元)">
<template slot-scope="{row}">
{{ (row.unitPrice * row.num).toFixed(2) }}
</template>
</el-table-column>
</el-table>
</el-descriptions-item>
<el-descriptions-item label="签字" :span="3">
<el-image v-if="viewData.us_s"
style="width: 300px; height: 100px"
:src="viewData.us_s"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
<el-descriptions-item label="附件" :span="3">
<file-upload v-if="viewData.files&&viewData.files.length"
:files="viewData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
<tr>
<th>活动经费类型</th>
<td>{{ viewData.projectJfName }}</td>
<th>申请(承办)单位/协会</th>
<td>{{ viewData.fundsUnitName }}</td>
<th>活动人数</th>
<td>{{ viewData.activity_number || "暂无" }}</td>
</tr>
<tr>
<th>预算费用</th>
<td>{{ viewData.funds_money || "暂无" }}</td>
<th>实际费用</th>
<td>{{ viewData.activity_money || "暂无" }}</td>
<th>活动地点</th>
<td>{{ viewData.address }}</td>
</tr>
<!-- <tr>
<th>收款人</th>
<td>{{ viewData.payee_username || "暂无" }}{{ viewData.payee_loginname }}</td>
<th>支行名称</th>
<td>{{ viewData.activity_card_name || "暂无" }}</td>
<th>报销卡号</th>
<td>{{ viewData.activity_card_number || "暂无" }}</td>
</tr>-->
<tr>
<th>{{ viewData.apply_type == 1 ? '活动方案及简介' : '活动内容' }}</th>
<td colspan="5">
<div v-html="viewData.activity_content"></div>
</td>
</tr>
<tr>
<th>附件</th>
<td colspan="5">
<file-upload v-if="viewData.files&&viewData.files.length" :files="viewData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</td>
</tr>
<tr>
<th>签字</th>
<td colspan="5">
<el-image v-if="viewData.us_s"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.us_s)"
fit="contain"></el-image>
<span v-else>暂无</span>
</td>
</tr>
</table>
</border-table>
</el-tab-pane>
<el-tab-pane label="分工会审核信息" name="2" v-if="viewData.division_chairman_name">
<el-descriptions :column="2" border>
<el-descriptions-item label="审核人">{{ viewData.dc_username }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ viewData.division_chairman_time }}</el-descriptions-item>
<el-descriptions-item label="活动申请费用" :span="2">{{ viewData.funds_money }}</el-descriptions-item>
<el-descriptions-item label="审核意见" :span="2">{{ viewData.division_chairman_idea }}</el-descriptions-item>
<el-descriptions-item label="签字" :span="2">
<el-tab-pane label="费用及报销信息" name="2">
<el-divider content-position="left" style="margin-top: 0 !important;"><span style="color: #3ea1ec;">活动预算费用</span></el-divider>
<el-table :data="viewData.budgets" border size="mini" style="width: 100%">
<el-table-column sortable type="index" width="100" label="序号"
align="center" header-align="center">
</el-table-column>
<el-table-column prop="name" label="费用项目名称" align="center"
header-align="center">
<!-- <template slot-scope="{row}">
<el-input maxlength="50" placeholder="费用项目名称" readonly v-model="row.name"
type="text"></el-input>
</template>-->
</el-table-column>
<el-table-column prop="budgetPrice" label="预算费用" align="center"
header-align="center">
<!-- <template slot-scope="{row}">
<el-input-number placeholder="预算费用" disabled
:precision="2" v-model="row.budgetPrice"></el-input-number>
</template>-->
</el-table-column>
<template v-if="viewData.reimbursement_state_id">
<el-table-column prop="actualPrice" label="实际费用" align="center"
header-align="center">
<!-- <template slot-scope="{row}">
<el-input-number disabled placeholder="实际费用" :precision="2" v-model="row.actualprice"></el-input-number>
</template>-->
</el-table-column>
<el-table-column prop="payeeId" label="收款人" align="center"
header-align="center">
<template slot-scope="{row}">
<span>{{ row.username }}</span>
</template>
</el-table-column>
<el-table-column prop="bankName" label="支行名称" align="center"
header-align="center">
</el-table-column>
<el-table-column prop="bankCardNum" label="报销卡号" align="center"
header-align="center">
</el-table-column>
<el-table-column prop="remark" label="备注" align="center"
header-align="center">
</el-table-column>
</template>
</el-table>
<div v-if="viewData.reimbursement_state_id != null && viewData.reimbursement_state_id !== ''">
<el-divider content-position="left" class="dia"><span
style="color: #3ea1ec;margin-top: 20px">其他报销附件</span></el-divider>
<border-table>
<table>
<tr>
<th>发票</th>
<td colspan="5">
<file-upload v-if="viewData.billFiles&&viewData.billFiles.length" :files="viewData.billFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</td>
</tr>
<tr>
<th>活动报道照片/总结/链接</th>
<td colspan="5">
<file-upload v-if="viewData.photoFiles&&viewData.photoFiles.length" :files="viewData.photoFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</td>
</tr>
<tr>
<th>奖品/纪念品/服装/道具等活动人员名单</th>
<td colspan="5">
<file-upload v-if="viewData.otherFiles&&viewData.otherFiles.length" :files="viewData.otherFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</td>
</tr>
</table>
</border-table>
<!-- <el-divider content-position="left" class="dia"><span style="color: #3ea1ec;margin-top: 20px">新闻信息</span></el-divider>
<border-table>
<table>
<tr>
<th>新闻稿件说明</th>
<td colspan="5">
{{ viewData.newsRemark }}
</td>
</tr>
<tr>
<th>新闻图片</th>
<td colspan="5">
<file-upload v-if="viewData.picFiles&&viewData.picFiles.length" :files="viewData.picFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</td>
</tr>
<tr>
<th>新闻附件</th>
<td colspan="5">
<file-upload v-if="viewData.newsFiles&&viewData.newsFiles.length" :files="viewData.newsFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</td>
</tr>
</table>
</border-table>-->
</div>
</el-tab-pane>
<el-tab-pane label="基层工会审核信息(申请)" name="3" v-if="viewData.division_chairman_name">
<el-form label-width="130px" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.dc_username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.division_chairman_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{
viewData.division_chairman_idea ? viewData.division_chairman_idea : '暂无'
}}
</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.dc_s"
style="width: 300px; height: 100px"
:src="viewData.dc_s"
:src="CREATE_PREVIEW_URL(viewData.dc_s)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会负责人审核信息(申请)" name="4" v-if="viewData.accounting_name">
<el-form label-width="130px" style="padding: 20px 0">
<el-tab-pane label="协会审核信息" name="2" v-if="viewData.association_principal_id">
<el-descriptions :column="2" border>
<el-descriptions-item label="审核人">{{ viewData.ap_username }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ viewData.association_principal_time }}</el-descriptions-item>
<el-descriptions-item label="活动申请费用" :span="2">{{ viewData.funds_money }}</el-descriptions-item>
<el-descriptions-item label="审核意见" :span="2">{{ viewData.association_principal_idea }}</el-descriptions-item>
<el-descriptions-item label="签字" :span="2">
<el-image v-if="viewData.ap_s"
style="width: 300px; height: 100px"
:src="viewData.ap_s"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<!--<el-form-item label="核批信息&emsp;" label-width="135px" class="view-header">
</el-form-item>-->
<el-tab-pane label="校工会副主席审核信息" name="3" v-if="viewData.accounting_name">
<el-descriptions :column="2" border>
<el-descriptions-item label="审核人">{{ viewData.a_username }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ viewData.accounting_time }}</el-descriptions-item>
<el-descriptions-item label="审核意见" :span="2">{{ viewData.accounting_idea }}</el-descriptions-item>
<el-descriptions-item label="签字" :span="2">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.a_username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.accounting_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{ viewData.accounting_idea ? viewData.accounting_idea : '暂无' }}</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.a_s"
style="width: 300px; height: 100px"
:src="viewData.a_s"
:src="CREATE_PREVIEW_URL(viewData.a_s)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</el-form-item>
</el-form>
</el-tab-pane>
<!-- <el-tab-pane label="校工会副主席审核信息" name="4" v-if="hasPane(4)&&viewData.confirm_trade_name">-->
<!-- <el-descriptions :column="2" border>-->
<!-- <el-descriptions-item label="审核人">{{ viewData.ct_username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核时间">{{ viewData.confirm_trade_time }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核意见" :span="2">{{ viewData.confirm_trade_idea }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="签字" :span="2">-->
<!-- <el-image v-if="viewData.ct_s"-->
<!-- style="width: 300px; height: 100px"-->
<!-- :src="viewData.ct_s"-->
<!-- fit="contain"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </el-descriptions>-->
<!-- </el-tab-pane>-->
<!-- <el-tab-pane label="校工会主席审核信息" name="5" v-if="hasPane(5)&&viewData.union_chairman_name">-->
<!-- <el-form label-width="130px" style="padding: 20px 0">-->
<!-- <el-row gutter="20">-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="审核人员:">-->
<!-- {{ viewData.ucc_username }}-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="审核时间:">-->
<!-- {{ viewData.union_chairman_time }}-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-form-item label="审核意见:">-->
<!-- <div class="textarea-div">-->
<!-- {{ viewData.union_chairman_idea ? viewData.union_chairman_idea : '暂无' }}-->
<!-- </div>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="签&emsp;&emsp;字:">-->
<!-- <el-image v-if="viewData.ucc_s"-->
<!-- style="width: 300px; height: 100px"-->
<!-- :src="viewData.ucc_s"-->
<!-- fit="contain"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="财务扣款信息" name="6" v-if="viewData.union_cashier_name">
<el-tab-pane label="校工会副主席审核信息" name="5" v-if="viewData.confirm_trade_name">
<el-form label-width="130px" style="padding: 20px 0">
<!-- <el-form-item label="核批信息&emsp;" label-width="135px" class="view-header">
</el-form-item>-->
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.ct_username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.confirm_trade_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{ viewData.confirm_trade_idea ? viewData.confirm_trade_idea : '暂无' }}</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.ct_s"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.ct_s)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会主席审核信息(申请)" name="6" v-if="viewData.union_chairman_name">
<el-form label-width="130px" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.ucc_username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.union_chairman_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{ viewData.union_chairman_idea ? viewData.union_chairman_idea : '暂无' }}</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.ucc_s"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.ucc_s)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会出纳审核信息(申请)" name="6" v-if="viewData.union_cashier_name">
<el-form label-width="130px" style="padding: 20px 0">
<!-- <el-form-item label="核批信息&emsp;" label-width="135px" class="view-header">
</el-form-item>-->
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
@@ -151,19 +324,144 @@
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">
{{ viewData.union_cashier_idea ? viewData.union_cashier_idea : '暂无' }}
</div>
<div class="textarea-div">{{ viewData.union_cashier_idea ? viewData.union_cashier_idea : '暂无' }}</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.uc_s"
style="width: 300px; height: 100px"
:src="viewData.uc_s"
:src="CREATE_PREVIEW_URL(viewData.uc_s)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="协会负责人审核信息(报销)" name="7"
v-if="viewData.reimbursement_club_audit">
<el-form label-width="130px" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.reimbursement_club_audit.username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.reimbursement_club_audit.auditTime }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{
viewData.reimbursement_club_audit.auditOpinion ? viewData.reimbursement_club_audit.auditOpinion : '暂无'
}}
</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.reimbursement_club_audit.auditSign"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.reimbursement_club_audit.auditSign)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="基层工会主席审核信息(报销)" name="8"
v-if="viewData.reimbursement_union_audit">
<el-form label-width="130px" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.reimbursement_union_audit.username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.reimbursement_union_audit.auditTime }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{
viewData.reimbursement_union_audit.auditOpinion ? viewData.reimbursement_union_audit.auditOpinion : '暂无'
}}
</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.reimbursement_union_audit.auditSign"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.reimbursement_union_audit.auditSign)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会负责人审核信息(报销)" name="9"
v-if="viewData.reimbursement_school_director">
<el-form label-width="130px" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.reimbursement_school_director.username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.reimbursement_school_director.auditTime }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{
viewData.reimbursement_school_director.auditOpinion ? viewData.reimbursement_school_director.auditOpinion : '暂无'
}}
</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.reimbursement_school_director.auditSign"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.reimbursement_school_director.auditSign)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会主席审核信息(报销)" name="10"
v-if="viewData.reimbursement_school_chairman">
<el-form label-width="130px" style="padding: 20px 0">
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.reimbursement_school_chairman.username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.reimbursement_school_chairman.auditTime }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">{{
viewData.reimbursement_school_chairman.auditOpinion ? viewData.reimbursement_school_chairman.auditOpinion : '暂无'
}}
</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.reimbursement_school_chairman.auditSign"
style="width: 300px; height: 100px"
:src="CREATE_PREVIEW_URL(viewData.reimbursement_school_chairman.auditSign)"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane v-if="handle" :label="label" name="999">
<slot name="handle"></slot>
</el-tab-pane>
@@ -192,7 +490,8 @@ module.exports = {
return {
activeName: "1",
viewData: {
goods: []
goods: [],
budgets: []
},
loading: true,
}
@@ -208,27 +507,40 @@ module.exports = {
return this.panes.includes(name)
},
async getActInfo(id) {
this.loading = true
const {data, code, msg} = await $.get("/platform/jf/activity_bx/reimbursement/findOne", {id})
if (code === 0) {
this.loading = false
if (data) {
this.viewData.billFiles = []
this.viewData.photoFiles = []
this.viewData.otherFiles = []
this.viewData.picFiles = []
this.viewData.newsFiles = []
this.viewData.files = []
this.activeName = this.handle ? "999" : "1"
if (data && data.budgets) {
data.budgets = JSON.parse(data.budgets)
}
if (data && data.files) {
data.files = JSON.parse(data.files)
}
this.viewData = data
if (data.files && data.files.length > 0) this.viewData.files = JSON.parse(data.files)
if (data.billFiles && data.billFiles.length > 0) this.viewData.billFiles = JSON.parse(data.billFiles)
if (data.photoFiles && data.photoFiles.length > 0) this.viewData.photoFiles = JSON.parse(data.photoFiles)
if (data.otherFiles && data.otherFiles.length > 0) this.viewData.otherFiles = JSON.parse(data.otherFiles)
if (data.picFiles && data.picFiles.length > 0) this.viewData.picFiles = JSON.parse(data.picFiles)
if (data.newsFiles && data.newsFiles.length > 0) this.viewData.newsFiles = JSON.parse(data.newsFiles)
if (data.budgets && data.budgets.length > 0) this.viewData.budgets = JSON.parse(data.budgets)
// this.viewData.goods = data.Goods
} else {
this.viewData = {}
this.$message.error(msg)
this.$message({
message: "获取信息失败",
type: 'error'
});
}
},
}
}
</script>
<style scoped>
<style>
.activity-bx-info .el-timeline {
padding-left: 0;
}
@@ -238,9 +550,9 @@ module.exports = {
max-height: 100px;
}
.el-descriptions table {
table-layout: fixed;
.el-divider--horizontal {
margin-top: 30px !important;
margin-bottom: 40px;
}
</style>
@@ -0,0 +1,405 @@
<template>
<div>
<template name="活动申报及报销信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
活动申报及报销信息
</div>
</div>
<van-cell-group>
<van-collapse v-model="activeNames" :border="false" accordion>
<van-collapse-item title="活动基本信息" name="1">
<van-form readonly input-align="right">
<van-field readonly :value="viewData.user_name" label="申请人姓名"></van-field>
<van-field readonly :value="viewData.apply_time" label="申请时间"></van-field>
<van-field readonly :value="viewData.mobile" label="联系方式"></van-field>
<!-- <van-field readonly :value="viewData.activityTypeName" label="活动主体类型"></van-field>-->
<van-field readonly :value="viewData.projectJfName" label="活动经费类型"></van-field>
<van-field readonly :value="viewData.activity_name" label="活动名称"></van-field>
<van-field readonly :value="viewData.projectCode" label="项目编号"></van-field>
<van-field readonly :value="viewData.fundsUnitName" label="申报(承办)单位"></van-field>
<van-field readonly :value="viewData.startPlannedDate" label="活动计划开始时间"></van-field>
<van-field readonly :value="viewData.endPlannedDate" label="活动计划结束时间"></van-field>
<van-field readonly :value="viewData.funds_money" label="预算费用"></van-field>
<van-field readonly :value="viewData.activity_money" label="实际费用"></van-field>
<van-field readonly :value="viewData.address" label="活动地址"></van-field>
<van-field readonly :value="viewData.payee_username + '(' + viewData.payee_loginname + ')'"
label="收款人"></van-field>
<van-field readonly :value="viewData.activity_card_name" label="支行名称"></van-field>
<van-field readonly :value="viewData.activity_card_number" label="报销卡号"></van-field>
<van-field readonly label="活动方案及简介">
<template #input>
<div v-html="viewData.activity_content"></div>
</template>
</van-field>
<van-field class="flex-direction-column">
<template #label>
<div class="mb10">活动费用预算表</div>
</template>
<template #input>
<table style="width: 100%">
<tr>
<th>序号</th>
<th>费用项目名称</th>
<th>预算费用</th>
<template v-if="viewData.reimbursement_state_id">
<th>实际费用</th>
<th>收款人</th>
<th>支行名称</th>
<th>报销卡号</th>
<th>备注</th>
</template>
</tr>
<tr v-for="(item,index) in viewData.budgets" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.name }}</td>
<td>{{ item.budgetPrice }}</td>
<template v-if="viewData.reimbursement_state_id">
<td>{{ item.actualPrice }}</td>
<td>{{row.username + '' + row.loginName + ''}}</td>
<td>{{ item.bankName }}</td>
<td>{{ item.bankCardNum }}</td>
<td>{{ item.remark }}</td>
</template>
</tr>
</table>
</template>
</van-field>
<van-panel>
<template #header>
<div class="van-cell van-panel__header">
<div class="van-cell__title">
附件
</div>
</div>
</template>
<div style="padding: 5px 16px">
<vant-file-upload v-if="viewData.files&&viewData.files.length>0" :del="false"
:files.sync="viewData.files"
view></vant-file-upload>
<span v-else>暂无</span>
</div>
</van-panel>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200"
height="100"
:src="viewData.us_s"
v-if="viewData.us_s"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</van-form>
</van-collapse-item>
<template v-if="show">
<van-collapse-item title="报销附件" name="2"
v-if="viewData.reimbursement_state_id != null && viewData.reimbursement_state_id !== ''">
<van-field label="发票"
style="flex-flow: column"
input-align="left">
<template #label>
<div class="mb10">发票</div>
</template>
<template #input>
<vant-file-upload :files.sync="viewData.billFiles" view :del="false"
v-if="viewData.billFiles&&viewData.billFiles.length"></vant-file-upload>
<span v-else>暂无</span>
</template>
</van-field>
<van-field label="活动报道照片/总结/链接"
style="flex-flow: column"
input-align="left">
<template #label>
<div class="mb10">活动报道照片/总结/链接</div>
</template>
<template #input>
<vant-file-upload :files.sync="viewData.photoFiles" view :del="false"
v-if="viewData.photoFiles&&viewData.photoFiles.length"></vant-file-upload>
<span v-else>暂无</span>
</template>
</van-field>
<van-field label="奖品/纪念品/服装/道具等活动人员名单"
style="flex-flow: column"
input-align="left">
<template #label>
<div class="mb10">奖品/纪念品/服装/道具等活动人员名单</div>
</template>
<template #input>
<vant-file-upload :files.sync="viewData.otherFiles" view :del="false"
v-if="viewData.otherFiles&&viewData.otherFiles.length"></vant-file-upload>
<span v-else>暂无</span>
</template>
</van-field>
</van-collapse-item>
<van-collapse-item title="申报审核信息" name="3"
v-if="viewData.division_chairman_name || viewData.accounting_name || viewData.union_chairman_name">
<!-- 申报基层工会主席审核 -->
<template v-if="viewData.division_chairman_name">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
基层工会审核信息申报
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.dc_username" left-icon="contact" readonly></van-field>
<van-field label="审核时间" :value="viewData.division_chairman_time" left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.division_chairman_idea ? viewData.division_chairman_idea : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.dc_s"
v-if="viewData.dc_s"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
<!-- 申报校工会负责人审核 -->
<template v-if="viewData.accounting_name">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
校工会负责人审核信息申报
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.a_username" left-icon="contact" readonly></van-field>
<van-field label="审核时间" :value="viewData.accounting_time" left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.accounting_idea ? viewData.accounting_idea : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.a_s"
v-if="viewData.a_s"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
<!-- 申报校工会主席审核 -->
<template v-if="viewData.union_cashier_name">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
校工会出纳审核信息申报
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.uc_username" left-icon="contact" readonly></van-field>
<van-field label="审核时间" :value="viewData.union_cashier_time" left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.union_cashier_idea ? viewData.union_cashier_idea : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.uc_s"
v-if="viewData.uc_s"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
</van-collapse-item>
<van-collapse-item title="报销审核信息" name="4"
v-if="viewData.division_chairman_name || viewData.accounting_name || viewData.union_chairman_name">
<!-- 报销协会负责人审核 -->
<template v-if="viewData.reimbursement_club_audit">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
协会负责人审核信息报销
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.reimbursement_club_audit.username" left-icon="contact"
readonly></van-field>
<van-field label="审核时间" :value="viewData.reimbursement_club_audit.auditTime" left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.reimbursement_club_audit.auditOpinion ? viewData.reimbursement_club_audit.auditOpinion : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.reimbursement_club_audit.auditSign"
v-if="viewData.reimbursement_club_audit.auditSign"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
<!-- 报销基层工会主席审核 -->
<template v-if="viewData.reimbursement_union_audit">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
基层工会主席审核信息报销
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.reimbursement_union_audit.username" left-icon="contact"
readonly></van-field>
<van-field label="审核时间" :value="viewData.reimbursement_union_audit.auditTime" left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.reimbursement_union_audit.auditOpinion ? viewData.reimbursement_union_audit.auditOpinion : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.reimbursement_union_audit.auditSign"
v-if="viewData.reimbursement_union_audit.auditSign"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
<!-- 报销校工会负责人审核 -->
<template v-if="viewData.reimbursement_school_director">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
校工会负责人审核信息报销
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.reimbursement_school_director.username"
left-icon="contact" readonly></van-field>
<van-field label="审核时间" :value="viewData.reimbursement_school_director.auditTime"
left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.reimbursement_school_director.auditOpinion ? viewData.reimbursement_school_director.auditOpinion : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.reimbursement_school_director.auditSign"
v-if="viewData.reimbursement_school_director.auditSign"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
<!-- 报销校工会主席审核 -->
<template v-if="viewData.reimbursement_school_chairman">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
校工会主席审核信息报销
</div>
</div>
<van-cell-group class="mt10">
<div style="padding-left: 16px">
<van-field label="审核人员" :value="viewData.reimbursement_school_chairman.username"
left-icon="contact" readonly></van-field>
<van-field label="审核时间" :value="viewData.reimbursement_school_chairman.auditTime"
left-icon="clock-o"
readonly></van-field>
<van-field label="审核意见" left-icon="chat-o"
:value="viewData.reimbursement_school_chairman.auditOpinion ? viewData.reimbursement_school_chairman.auditOpinion : '暂无'"
readonly></van-field>
<van-field name="sign" label="签字">
<template #input>
<van-image width="200" height="100" :src="viewData.reimbursement_school_chairman.auditSign"
v-if="viewData.reimbursement_school_chairman.auditSign"></van-image>
<span v-else>暂无</span>
</template>
</van-field>
</div>
</van-cell-group>
</template>
</van-collapse-item>
</template>
</van-collapse>
</van-cell-group>
</template>
<template v-if="handle">
<slot name="handle"></slot>
</template>
</div>
</template>
<script>
module.exports = {
name: "info",
props: {
handle: { type: Boolean, default: false },
title: { type: String, default: '审核' },
show: { type: Boolean, default: true }
},
data() {
return {
activeNames: "1",
viewData: {
goods: []
}
}
},
components: {
'vant-file-upload': httpVueLoader('/components/plugins/VantFileUpload.vue'),
},
methods: {
async getActInfo(id) {
this.loading = true
const {data, code, msg} = await $.get("/platform/jf/activity_bx/reimbursement/findOne", {id})
this.loading = false
if (data) {
this.viewData.billFiles = []
this.viewData.photoFiles = []
this.viewData.otherFiles = []
this.viewData.picFiles = []
this.viewData.newsFiles = []
this.viewData.files = []
this.viewData = data
if (data.files && data.files.length > 0) this.viewData.files = JSON.parse(data.files)
if (data.billFiles && data.billFiles.length > 0) this.viewData.billFiles = JSON.parse(data.billFiles)
if (data.photoFiles && data.photoFiles.length > 0) this.viewData.photoFiles = JSON.parse(data.photoFiles)
if (data.otherFiles && data.otherFiles.length > 0) this.viewData.otherFiles = JSON.parse(data.otherFiles)
if (data.picFiles && data.picFiles.length > 0) this.viewData.picFiles = JSON.parse(data.picFiles)
if (data.newsFiles && data.newsFiles.length > 0) this.viewData.newsFiles = JSON.parse(data.newsFiles)
this.viewData.goods = data.Goods
} else {
this.viewData = {
goods: []
}
this.$message({
message: "获取信息失败",
type: 'error'
});
}
},
}
}
</script>
<style scoped>
.van-cell-group__title {
padding: 5px 0;
}
.van-cell-group__title .van-sidebar-item {
font-weight: bold;
}
.flex-direction-column {
flex-direction: column;
}
.flex-direction-column .van-field__label {
width: 100%;
}
</style>