You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jin_ji_hu/src/views/project/projectInfo/index.vue

228 lines
8.6 KiB

<template>
<div class="L-public-main projectInfo" id="L-size-main">
11 months ago
<el-row :gutter="10" class="L_row">
<el-col :span="18">
<div class="left-info" id="L-header">
<div class="project-info-title">{{ info.declareUnit }}</div>
<el-descriptions class="margin-top" :column="2" size="medium" border v-loading="loading">
<el-descriptions-item label="企业名称" contentClassName="info-link">{{ info.declareUnit }}<a v-if="$route.query.type == 1" @click="goEnterprice(info.creditCode)"></a></el-descriptions-item>
<el-descriptions-item label="统一社会信用代码">{{ info.creditCode }}</el-descriptions-item>
10 months ago
<!-- <el-descriptions-item label="项目分类" contentClassName="info-link">
<div class="project_info_box" style="display: flex;">
<dict-tag class="dict_type" :options="dict.type.project_categories" :value="info.projectBigType" />/<dict-tag class="dict_type" :options="dict.type.project_middle_type" :value="info.projectMiddleType"/>/<dict-tag class="dict_type" :options="dict.type.project_small_type" :value="info.projectSmallType"/>
</div>
10 months ago
</el-descriptions-item> -->
<el-descriptions-item label="项目大类" contentClassName="info-link"><dict-tag :options="dict.type.project_categories" :value="info.projectBigType"/></el-descriptions-item>
<el-descriptions-item label="项目中类" contentClassName="info-link"><dict-tag :options="dict.type.project_middle_type" :value="info.projectMiddleType"/></el-descriptions-item>
<el-descriptions-item label="项目小类" contentClassName="info-link"><dict-tag :options="dict.type.project_small_type" :value="info.projectSmallType"/></el-descriptions-item>
<!-- <el-descriptions-item label="项目大类" contentClassName="info-link"><a class="a-primary" @click="goback(info.projectBigType)"><dict-tag :options="dict.type.project_categories" :value="info.projectBigType"/></a></el-descriptions-item>
<el-descriptions-item label="项目中类" contentClassName="info-link"><a class="a-primary" @click="goback(info.projectMiddleType)"><dict-tag :options="dict.type.project_middle_type" :value="info.projectMiddleType"/></a></el-descriptions-item>
<el-descriptions-item label="项目小类" contentClassName="info-link"><a class="a-primary" @click="goback(info.projectSmallType)"><dict-tag :options="dict.type.project_small_type" :value="info.projectSmallType"/></a></el-descriptions-item> -->
10 months ago
<el-descriptions-item label="申报年份">{{ info.projectYear }}</el-descriptions-item>
</el-descriptions>
</div>
<div class="left-tabs">
<div class="tabs-top" id="L-pagination">
<div v-for="(item,index) in tabs" :key="index" class="tabs-top-item" :class="active == item.id ? 'active-item' : ''" @click="active = item.id">{{ item.name }}</div>
</div>
<div class="tabs-bottom" :style="tabStyle">
<tab-one v-if="active == 1" :detailedInfo="detailedInfo" :fileJson="fileJson" :enterInfo="info"></tab-one>
<tab-two v-if="active == 2" :info="enterInfo"></tab-two>
<tab-three v-if="active == 3" :id="Number($route.query.userId)"></tab-three>
<tab-four v-if="active == 4" :id="$route.query.userId"></tab-four>
<tab-five v-if="active == 5" :id="Number($route.query.userId)"></tab-five>
</div>
</div>
</el-col>
<el-col :span="6">
<project-progress></project-progress>
</el-col>
</el-row>
11 months ago
<div class="enter-footTabs">
<el-button type="primary" @click="goBack"></el-button>
<!-- <el-button type="primary">导出企业清单</el-button> -->
</div>
</div>
</template>
<script>
import { tabOne, tabTwo, tabThree, tabFour, tabFive, projectProgress } from "./components"
11 months ago
import { jProjectId, getUserId } from "@/api/jin_ji_hu/project/index"
export default {
dicts: ["project_middle_type", "project_small_type", "project_categories"],
components:{
tabOne,
tabTwo,
tabThree,
tabFour,
tabFive,
projectProgress
},
data() {
return {
tabs:[],
enterpriseTabs:[
{
name: "项目详细信息",
id: 1,
},{
name: "申报单位信息",
id: 2,
},{
name: "资金拨付进度",
id: 3,
}
],
enterpriseSpecialTabs:[
{
name: "项目详细信息",
id: 1,
},{
name: "资金拨付进度",
id: 3,
}
],
govSpecialTabs:[
{
name: "项目详细信息",
id: 1,
},{
name: "资金拨付进度",
id: 3,
},{
name: "备忘录",
id: 4,
},{
name: "智能提醒",
id: 5,
},
],
govTabs:[
{
name: "项目详细信息",
id: 1,
},{
name: "申报单位信息",
id: 2,
},{
name: "资金拨付进度",
id: 3,
},{
name: "备忘录",
id: 4,
},{
name: "智能提醒",
id: 5,
},
],
// 判断登陆用户是何身份⌈ 01 企业 02 政务 ⌋
userType: this.$store.state.user.userType,
active: 1,
info:{},
detailedInfo:{},
fileJson:{},
loading:false,
tabStyle:{
height:undefined,
overflow: 'auto'
},
enterInfo:{},
}
},
mounted(){
this.getInfo(this.$route.query.userId)
if(this.userType == '01') {
if(this.$route.query.type == 2) {
this.tabs = this.enterpriseSpecialTabs
} else {
this.tabs = this.enterpriseTabs;
}
} else {
if(this.$route.query.type == 2) {
this.tabs = this.govSpecialTabs
} else {
this.tabs = this.govTabs;
}
}
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods:{
11 months ago
goBack(){
this.$router.back();
},
getLabel(id,type){
if(type == 'big') {
let label = this.dict.type.project_categories.filter(item => item.value === id + "")
return label[0].label;
} else if(type == 'middle') {
let label = this.dict.type.project_middle_type.filter(item => item.value === id + "")
return label[0].label;
} else if(type == 'small') {
let label = this.dict.type.project_small_type.filter(item => item.value === id + "")
return label[0].label;
}
},
getInfo(id){
this.loading = true;
jProjectId(id).then(res=>{
this.info = res.data;
this.loading = false;
this.detailedInfo = JSON.parse(res.data.otherJson);
this.fileJson = JSON.parse(res.data.fileJson);
10 months ago
if(this.info.creditCode) {
return getUserId({getCreditCode : this.info.creditCode})
}
11 months ago
// console.log(this.fileJson,"this.fileJson");
// for (var key in obj) {
// if (obj.hasOwnProperty(key)) {
// var value = obj[key];
// console.log(key + ': ' + value);
// }
// }
11 months ago
}).then(res=>{
this.enterInfo = res.data
11 months ago
this.info.userId = res.data.id
})
},
goback(id){
// console.log(id,"id");
// this.$router.replace({
// path: '/project/index',
// query: { projectId: id }
// })
this.$router.push({
name: 'Project',
params: { projectId: id }
})
},
11 months ago
goEnterprice(creditCode){
// console.log(creditCode);
if(this.userType == '01') {
this.$router.push({
name: 'EenterInfo',
query: { userId: this.info.userId, creditCode: creditCode }
})
} else {
this.$router.push({
name: 'enterpriselibraryInfo',
query: { userId: this.info.userId, creditCode: creditCode }
})
}
11 months ago
},
// 屏幕尺寸变化
cancalDebounce(){
const element = document.getElementById('L-size-main'); // 通过元素的 ID 获取元素
const header = document.getElementById('L-header'); // 通过元素的 ID 获取元素
const pagination = document.getElementById('L-pagination'); // 通过元素的 ID 获取元素
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
10 months ago
this.tabStyle.height = (elementHeight - headerHeight - paginationtHeight - 100) + 'px';
}
},
}
</script>