<template> <div class="app-content layoutEmbedded" style="height: 76vh;overflow: auto;"> <a-spin :spinning="loading" style="width: 100%;height: 100%;"> <a-tabs type="card" hideAdd size="small" @change="callback"> <a-tab-pane :key="item.key" :tab="item.title" v-for="(item) in tabsData"> </a-tab-pane> </a-tabs> <!-- 申报项目详情 --> <!-- <a-button type="primary" @click="onExport">导出</a-button> --> <project-info v-model="projectInfo" :tabsData="tabsData" v-if="projType" /> <project-info-Key v-model="projectInfo" :tabsData="tabsData" v-else /> </a-spin> </div> </template> <script> const projectKPI = { reportYear: "", projName: "", appUnitName: "", projAttribute: "", projDeadline: "", totalBudget: 0.00, applyFunds: 0.00, selfFunds: 0.00, yearTotal: 0.00, yearApply: 0.00, yearSelf: 0.00, totalRowSpan: 0, //总合并行数 outTarget: 0, //一级指标(产出指标) benefitTarget: 0, //一级指标(效益指标) satisfactionDegree: 0, //一级指标(满意度指标) quantityTarget: 0, //二级指标(数量指标) qualityTarget: 0, //二级指标(质量指标) validityTarget: 0, //二级指标(时效指标) costTarget: 0, //二级指标(成本指标) economicTarget: 0, //二级指标(经济效益指标) socialTarget: 0, //二级指标(社会效益指标) ecologicalTarget: 0, //二级指标(生态效益指标) sustainableTarget: 0, //二级指标(可持续影响指标) serviceTarget: 0, //二级指标(服务对象满意度指标) threeLevel: [], }; import { budgetList } from '@/views/report/project/config' import { getType } from '@/views/utils/auth' import projectInfo from '@/views/report/project/components/projectInfo' import projectInfoKey from "@/views/report/project/components/keyProject/projectInfo" export default { name: "projectView", components: { projectInfo, projectInfoKey }, data () { return { tabsData: [ { title: '全部', key: '0', isShow: true }, { title: '基本情况', key: '1', isShow: true }, { title: '项目人员情况', key: '2', isShow: true }, { title: '项目可行性研究情况', key: '3', isShow: true }, { title: '项目实施目标', key: '4', isShow: true }, { title: '项目考核指标', key: '5', isShow: true }, { title: '项目经费', key: '6' }, { title: '项目绩效目标表', key: '7', isShow: true }, { title: '项目课题设置', key: '8' }, { title: '附件清单', key: '9' }, { title: '单位科研项目及资金管理制度', key: '10', isShow: true }, { title: '诚信承诺书', key: '11', isShow: true }, ], projectInfo: { id: null, organizationCode: null, address: null, registeredAddress: null, postCode: null, legalPerson: null, workforce: null, specializedPersonnel: null, researchPersonnel: null, depositBank: null, bankAccount: null, depositBankAddress: null, interbankNumber: null, researchTotal: null, isResearchActive: null, researchCount: null, researchPersonCount: null, projName: null, leadUnit: null, recommendUnit: null, startDate: null, endDate: null, technologyInnovationBase: null, knowledgeId: null, totalFunding: null, govFunding: null, linkName: null, linkMobile: null, linkEmail: null, projAbstract: null, projKeywords: null, researchContent: null, memResume: null, researchProgress: null, researchContent: null, technologyTarget: null, economyTarget: null, achievementTarget: null, otherTarget: null, projectKPI: projectKPI, cooperativeUnits: [], members: [], budget: [], equipments: [], projectSubList: [], managementRuleList: [], fileList: [], projType: getType() }, loading: false, projType: getType() == "1" }; }, props: { value: { type: String, default: () => { return null } } }, created () { this.getProjectInfoById() }, methods: { getProjectInfoById () { if (this.value != null) { this.loading = true this.$api.project.getProjectInfoById({ id: this.value }).then(({ data = {} }) => { if (data) { this.projectInfo = data this.loading = false } else this.$emit('close', 'error') }).catch(() => { this.$emit('close', 'error') }) } }, onExport () { this.$api.project.export({ id: this.value }).then((res) => { let blob = new Blob([res], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8", }); const fileName = this.projectInfo.projName + '.doc'; let downloadElement = document.createElement('a') let href = window.URL.createObjectURL(blob); //创建下载的链接 downloadElement.href = href; downloadElement.download = fileName; //下载后文件名 document.body.appendChild(downloadElement); downloadElement.click(); //点击下载 document.body.removeChild(downloadElement); //下载完成移除元素 window.URL.revokeObjectURL(href); //释放blob }) }, callback (key) { var index = parseInt(key) this.tabsData.forEach(e => { if (key == '0') e.isShow = true else e.isShow = false }) this.tabsData[0].isShow = true; this.tabsData[index].isShow = true; console.log(this.tabsData); }, }, } </script>