185 lines
6.0 KiB
Vue
185 lines
6.0 KiB
Vue
<template>
|
|
|
|
<div class="activityBudget">
|
|
<vi-title title="申报信息"></vi-title>
|
|
<el-descriptions :column="3" border class="table_fixed">
|
|
<el-descriptions-item label="申报人">
|
|
{{ viewData.userName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="工号">
|
|
{{ viewData.loginName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="联系方式">
|
|
{{ viewData.mobile }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="预算类型">
|
|
<dict-tag :options="budgetTypeOption"
|
|
:value="viewData.budgetTypeCode"></dict-tag>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="申报(承办)单位">
|
|
{{ viewData.helpUnitName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="活动项目">
|
|
{{ viewData.activityMatter }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="活动时间">
|
|
{{ viewData.activityDate }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="申报预算金额(元)">
|
|
{{ viewData.declareTotalBudgetMoney }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="最终预算金额(元)">
|
|
{{ viewData.totalBudgetMoney }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="申报时间">
|
|
{{ viewData.applyDate }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item span="2"></el-descriptions-item>
|
|
<el-descriptions-item label="活动内容(如训练、装备等)" :span="3">
|
|
<div v-html="viewData.activityContent"></div>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="项目明细" span="3"
|
|
v-if="viewData.budgetDetails&&viewData.budgetDetails.length>0">
|
|
<el-table :data="viewData.budgetDetails"
|
|
:summary-method="getSummaries"
|
|
border
|
|
show-summary
|
|
size="mini"
|
|
style="width: 100%">
|
|
<el-table-column label="序号" sortable type="index"
|
|
width="100"></el-table-column>
|
|
<el-table-column label="类别" prop="detailName"></el-table-column>
|
|
<el-table-column label="预算金额(元)" prop="budgetMoney"></el-table-column>
|
|
|
|
</el-table>
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
<div v-if="viewData.auditState>1&&viewData.schoolAuditId" class="mt20">
|
|
<vi-title title="校工会审核信息"></vi-title>
|
|
<el-descriptions :column="3" border class="table_fixed">
|
|
<el-descriptions-item label="审核人">
|
|
{{ viewData.schoolAudit.username }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="工号">
|
|
{{ viewData.schoolAudit.loginname }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="审核时间">
|
|
{{ viewData.schoolAudit.auditTime }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="审核意见">
|
|
{{ viewData.schoolAudit.auditOpinion }}
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
</div>
|
|
<div v-if="viewData.allocationEditAuditList&&viewData.allocationEditAuditList.length>0" class="mt20">
|
|
<vi-title title="管理员编辑信息"></vi-title>
|
|
<div v-for="(item,index) in viewData.allocationEditAuditList" :key="index">
|
|
<el-descriptions :column="3" border class="table_fixed">
|
|
<el-descriptions-item label="审核人">
|
|
{{ item.username }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="工号">
|
|
{{ item.loginname }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="审核时间">
|
|
{{ item.auditTime }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="编辑前金额">
|
|
{{ item.ext.money }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item span="2"></el-descriptions-item>
|
|
<el-descriptions-item label="审核意见" span="3">
|
|
{{ item.auditOpinion }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="审核附件" span="3">
|
|
<file-upload :files.sync="item.ext.files" view></file-upload>
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
</div>
|
|
</div>
|
|
<div v-if="handle">
|
|
|
|
<slot name="handle"></slot>
|
|
</div>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
module.exports = {
|
|
props: {
|
|
handle: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
label: {
|
|
type: String,
|
|
default: '审核'
|
|
},
|
|
panes: {
|
|
type: Array,
|
|
default: []
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
activeName: "1",
|
|
viewData: {},
|
|
budgetTypeOption: [],
|
|
loading: true,
|
|
}
|
|
},
|
|
methods: {
|
|
hasPane(name) {
|
|
if (!this.handle) {
|
|
return true
|
|
}
|
|
return this.panes.includes(name)
|
|
},
|
|
async getInfo(id) {
|
|
this.loading = true
|
|
this.budgetTypeOption = await getDictByCode("ACTIVITY_BUDGET_TYPE");
|
|
const {data, code, msg} = await $.get("/platform/activity/budget/applyList/findOne", {id})
|
|
this.loading = false
|
|
if (data) {
|
|
this.activeName = this.handle ? "999" : "1"
|
|
this.viewData = data
|
|
|
|
} else {
|
|
this.viewData = {}
|
|
this.$message({
|
|
message: "获取信息失败",
|
|
type: 'error'
|
|
});
|
|
}
|
|
},
|
|
getSummaries(param) {
|
|
const {columns, data} = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = '合计';
|
|
return;
|
|
}
|
|
const values = data.map(item => Number(item[column.property]));
|
|
if (index === 2 || index === 3) {
|
|
sums[index] = values.reduce((prev, curr) => {
|
|
const value = Number(curr);
|
|
if (!isNaN(value)) {
|
|
return prev + curr;
|
|
} else {
|
|
return prev;
|
|
}
|
|
}, 0).toFixed(2);
|
|
sums[index] += ' 元';
|
|
} else {
|
|
sums[index] = '';
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
}
|
|
}
|
|
}
|
|
</script>
|