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,333 @@
<template>
<div class="activity-bx-info">
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
<el-tab-pane label="申请信息" name="1">
<el-descriptions :column="2" 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="2">{{viewData.activity_name}}</el-descriptions-item>
<!-- <el-descriptions-item label="项目编号" :span="2">{{viewData.projectCode}}</el-descriptions-item>-->
<el-descriptions-item label="申报(承办)单位" :span="2">{{viewData.fundsUnitName}}</el-descriptions-item>
<el-descriptions-item label="活动计划时间" :span="2">
{{viewData.startPlannedDate}}至{{viewData.endPlannedDate}}
</el-descriptions-item>
<el-descriptions-item label="活动地址">{{viewData.venue}}</el-descriptions-item>
<el-descriptions-item label="活动人数">{{viewData.activity_number}}</el-descriptions-item>
<el-descriptions-item label="活动方案" :span="2">
<div v-html="viewData.activity_content"></div>
</el-descriptions-item>
<el-descriptions-item label="活动安排" :span="2">
<div v-html="viewData.activity_arrange"></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="2">
<file-upload :files="viewData.resultsFiles"
:view="true"></file-upload>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<!-- <el-tab-pane label="附件" name="100">
<el-form label-position="top">
&lt;!&ndash; <el-form-item label="活动资料" v-if="viewData.activity_id">
<span v-if="!Object.keys(viewData.activity_files).length">暂无</span>
<div class="block">
<el-timeline>
<el-timeline-item v-for="(v,k) in viewData.activity_files" :timestamp="k" placement="top"
icon="el-icon-more"
type="primary">
<el-card v-for="file in v" style="margin-bottom: 20px;position: relative">
<div style="display: flex;flex-direction:row;">
<h4>{{ file.name }}&emsp;</h4>
<h4><span style="font-size: 14px;color: rgb(200,200,200)">{{ file.type }}</span></h4>
</div>
<div style="margin: 20px 0">
<file-upload :files="file.files"
:view="true"></file-upload>
</div>
<div style="text-align: right" class="text-primary">{{ file.user_name }}</div>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-form-item>&ndash;&gt;
<el-form-item label="附&emsp;&emsp;件">
<file-upload v-if="viewData.files&&viewData.files.length"
:files="viewData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>-->
<el-tab-pane label="院级工会主席审核信息" name="2" v-if="hasPane(2)&&viewData.division_chairman_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.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"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会负责人核对信息" name="3" v-if="hasPane(3)&&viewData.accounting_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.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"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会副主席审核信息" name="4" v-if="hasPane(4)&&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="viewData.ct_s"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</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-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.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="hasPane(6)&&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="审核人员:">
{{ viewData.uc_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.uc_s"
style="width: 300px; height: 100px"
:src="viewData.uc_s"
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>
</el-tabs>
</div>
</template>
<script>
module.exports = {
props: {
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '审核'
},
panes: {
type: Array,
default: []
},
},
data() {
return {
activeName: "1",
viewData: {
goods: []
},
loading: true,
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
methods: {
hasPane(name) {
if (!this.handle) {
return true
}
return this.panes.includes(name)
},
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.activeName = this.handle ? "999" : "1"
if(data.files){
data.files = JSON.parse(data.files)
}else{
data.files = []
}
if(data.resultsFiles){
data.resultsFiles = JSON.parse(data.resultsFiles)
}else{
data.resultsFiles = []
}
if (data.budgets) {
data.budgets = JSON.parse(data.budgets)
}else{
data.budgets = []
}
this.viewData = data
} else {
this.viewData = {}
this.$message({
message: "获取信息失败",
type: 'error'
});
}
},
}
}
</script>
<style scoped>
.activity-bx-info .el-timeline {
padding-left: 0;
}
.sign_img {
max-width: 300px;
max-height: 100px;
}
.el-descriptions table {
table-layout: fixed;
}
</style>