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/workbench/index.vue

573 lines
22 KiB

<template>
<div class="workbench-box" v-if="userType == '02'">
<header>
<div class="workbench-serch">
<div class="workbench-title">
<div class="title-item" :class="checked == index ? 'checked-item' : ''" v-for="(item,index) in tabs" :key="index" @click="changeTab(index)">
{{ item.value }}
</div>
</div>
<div class="workbench-btn">
<!-- :placeholder="checked == 0 ? '请输入企业名称' : checked == 1 ? '请输入项目名称' : checked == 2 ? '请输入荣誉名称' : ''" -->
<el-autocomplete
placeholder="请输入企业名称"
ref="autocomplete"
v-model="search"
:fetch-suggestions="querySearch"
:trigger-on-focus="false"
@select="handleSelect"
class="input-with-select"
>
<el-button slot="append" class="work-btn" @click="searchBtn"></el-button>
</el-autocomplete>
</div>
</div>
</header>
<main class="home-main">
<el-row class="main-row">
<el-col :span="12" class="work-main-left service-left">
<!-- <div class="main-left">
<div class="left-header">
<div class="left-header-title">服务业数据概览</div>
</div>
</div> -->
<div class="echart-title">
<div class="echart-left-title">
<div class="L-title-left">
<span class="dataCloudMap-birght"></span>
<span class="dataCloudMap-title">服务业发展总览</span>
</div>
<span class="dataCloudMap-data">统计数据截至2024-01</span>
</div>
<div class="rightBigNav">
<div class="right-nav">
<div
class="tabStyle"
v-for="(item, index) in options1"
:key="index"
@click="active(index + 1)"
:class="activeIndex == index + 1 ? 'change-blue' : ''"
>
<div class="change-grey-birght" :class="activeIndex == index + 1 ? 'change-blue-birght' : ''"></div>
<span class="change-grey-text" :class="activeIndex == index + 1 ? 'change-blue-text' : ''">{{ item.name }}</span>
</div>
</div>
</div>
</div>
<echartData :activeIndex="activeIndex" ref="echartData"/>
</el-col>
<!-- <el-col :span="10">
<el-row type="flex" class="main-two-row"> -->
<el-col :span="6" class="work-main-left">
<div class="main-left">
<div class="left-header">
<div class="left-header-titleS">
<span class="dataCloudMap-birght"></span>
<div class="left-header-title">智能提醒</div>
</div>
<el-button @click="zhinengtixingBtn" type="text" v-if="remindList.length > 0">>> 更多记录</el-button>
</div>
<div class="left-main" v-if="remindList.length > 0">
<el-card shadow="never" v-for="(item,index) in remindList" :key="index" :class="item.isRead == 1 ? 'el-card-border' : ''">
<div class="warn-main">
<div class="warn-main-left" v-if="item.alertManner == 2">
<div class="warn-main-img"><img src="@/assets/images/warn-green.png" alt=""></div>
<div class="warn-main-content">
<div class="content-title">{{ item.declarationName }}预计{{ item.daysAdvance }}天后建设完成</div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-time">{{ item.alertTime }}</div>
</div>
</div>
<div class="warn-main-left" v-else-if="item.alertManner == 1 && item.qymc && item.alertRecipients == 2">
<div class="warn-main-img"><img src="@/assets/images/warn-orange.png" alt=""></div>
<div class="warn-main-content">
<div class="content-title" style="display: flex;">{{ item.qymc }}</div>
<div class="content-title-type"><dict-tag :options="dict.type.project_small_type" :value="item.declarationName"/></div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-time">{{ item.alertTime }}</div>
</div>
</div>
<div class="warn-main-left" v-else-if="item.alertManner == 1 && item.projectId">
<div class="warn-main-img"><img src="@/assets/images/warn-orange.png" alt=""></div>
<div class="warn-main-content">
<div class="content-title">{{ item.declarationName }}</div>
<div class="content-middle">{{ item.alertContent }}</div>
<div class="content-time">{{ item.alertTime }}</div>
</div>
</div>
<div class="warn-main-left different-left" v-else-if="item.alertManner == 1 && !item.projectId">
<div class="warn-main-img"><img src="@/assets/images/warn-blue.png" alt=""></div>
<div class="warn-main-content">
<div class="content-title">{{ item.alertContent }}</div>
<div class="content-time">{{ item.alertTime }}</div>
</div>
</div>
<div class="warn-main-right">
<div class="warn-main-right-chakan" @click="putMemo(item)">
查看
</div>
<div class="warn-main-right-status" :class="item.isRead == 1 ? 'status-unread' : ''">
{{ item.isRead == 1 ? '未读' : '已读' }}
</div>
</div>
10 months ago
</div>
</el-card>
</div>
<div class="right-main" v-else>
<el-divider content-position="center">暂无</el-divider>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="work-main-right">
<div class="main-right">
<div class="right-header">
<div class="right-header-box">
<span class="dataCloudMap-birght"></span>
<div class="right-header-title">待办任务</div>
</div>
<el-button @click="MoreRecords('all')" type="text" v-if="backlogArray.length > 0">>> 更多记录</el-button>
10 months ago
</div>
<div class="right-main" v-if="backlogArray.length > 0" v-loading="loading">
<div class="main-items" v-for="(item,index) in backlogArray" :key="index" :class="index % 2 == 0 ? '':'main-item'">
<div>{{ item.enterpriseDirectory }} </div>
<div>{{ (item.status == 1 ? "待初审" : item.status == 2 ? "待复审" : item.status == 3 ? "待终审" : "") }}</div>
<!-- <div>审批知识产权材料</div> -->
<div @click="MoreRecords('id',item.status)" class="last_child_item">去审批</div>
</div>
</div>
<div class="right-main" v-else>
<el-divider content-position="center">暂无</el-divider>
</div>
</div>
</div>
</el-col>
<!-- </el-row>
</el-col> -->
</el-row>
<el-row class="main-row-two">
<div class="analyse-header">
<span class="dataCloudMap-birght"></span>
<div class="analyse-header-title">招商信息分析</div>
</div>
<div class="analyse-main">
<el-col :span="7" class="analyse-left-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">新落户企业统计</span>
</div>
<div class="statisticsNew-box">
<echart-data-two></echart-data-two>
</div>
</el-col>
<el-col :span="10" class="analyse-middle-box" id="zhongdian-xiangmu">
<div class="box-header" id="zhongdian-header-id">
<span class="garden"></span>
<span class="box-header-title">重点及特色项目</span>
</div>
<div class="emphasisProject-box">
<table-one></table-one>
</div>
</el-col>
<el-col :span="7" class="analyse-right-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">引入投资统计分析</span>
</div>
<div class="statisticsAnalyse-box">
<echart-data-three></echart-data-three>
</div>
</el-col>
</div>
</el-row>
<el-row class="main-row-three">
<div class="analyse-header">
<span class="dataCloudMap-birght"></span>
<div class="analyse-header-title">产业促进分析</div>
</div>
<div class="industry-main">
<el-row class="main-row-three-topbox">
<!-- <el-col :span="8" class="industry-top-left-box" id="zhijinyindao-qingkuang">
<div class="box-header" id="zhijinyindao-header-id">
<span class="garden"></span>
<span class="box-header-title">资金引导情况分析</span>
</div>
<div class="capitalCondition-box">
<table-two></table-two>
</div>
</el-col> -->
<el-col :span="8" class="industry-top-middle-box" id="zhijinbofu-qingkaung">
<div class="box-header" id="zhijinbofu-header-id">
<span class="garden"></span>
<span class="box-header-title">拨付资金企业申请情况TOP5</span>
</div>
<div class="capitalConditionTOP5-box">
<table-three></table-three>
</div>
</el-col>
<el-col :span="8" class="bottombox-left-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">重点及特色项目</span>
</div>
<div class="featureProject-box">
<TableSeven></TableSeven>
</div>
</el-col>
<el-col :span="8" class="industry-top-right-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">促进产业项目情况</span>
</div>
<div class="promoteProject-box">
<table-four></table-four>
</div>
</el-col>
</el-row>
<el-row class="main-row-three-minddlebox">
<el-col :span="12" class="col-left-box">
<el-row class="change-August-eight-th-style-row">
<el-col :span="12" class="change-August-eight-th-style">
<div class="appropriate-analyse-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">资金拨付情况分析</span>
</div>
<div class="capital-appropriate-analyse-box">
<echartDataFour></echartDataFour>
</div>
</div>
</el-col>
<el-col :span="12" class="bottombox-right-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">产业品牌打造宣传</span>
</div>
<div class="brandPublicity-box">
<TableEight></TableEight>
</div>
</el-col>
</el-row>
<div class="promote-analyse-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">促进产业载体分析</span>
</div>
<div class="promoteTable-box">
<TableSix></TableSix>
</div>
</div>
</el-col>
<el-col :span="12" class="col-right-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">促进产业企业情况分析</span>
</div>
<div class="headline-one-header">
<span>01.</span> 企业综合经营贡献TOP5
</div>
<div class="headline-one-main">
<echartDataFive></echartDataFive>
</div>
<div class="headline-two-header">
<div class="work-industry-condition">
<div class="industry-condition">
<span>02.</span> 行业纵深情况
</div>
<span class="industry-condition-statistics">统计数据截至2024-01</span>
</div>
<div class="rightBtn" @click="industryBtn">>></div>
</div>
<div class="headline-two-main">
<TableFive></TableFive>
</div>
</el-col>
</el-row>
<!-- <el-row class="main-row-three-bottombox">
<el-col :span="12" class="bottombox-left-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">重点及特色项目</span>
</div>
<div class="featureProject-box">
<TableSeven></TableSeven>
</div>
</el-col>
<el-col :span="12" class="bottombox-right-box">
<div class="box-header">
<span class="garden"></span>
<span class="box-header-title">产业品牌打造宣传</span>
</div>
<div class="brandPublicity-box">
<TableEight></TableEight>
</div>
</el-col>
</el-row> -->
</div>
</el-row>
</main>
10 months ago
<el-dialog title="详情" :visible.sync="open" width="400px" append-to-body :close-on-click-modal="false">
<div class="team-main">
<div>提醒时间:</div>
<div>{{ info.alertTime }}</div>
</div>
10 months ago
<div class="team-main">
<div>提醒内容:</div>
<div>{{ info.alertContent }}</div>
</div>
</el-dialog>
<!-- 行业纵深弹框 -->
<collectDialog ref="collectDialog" />
<!-- 智能提醒弹框 -->
<zhinengtixing ref="zhinengtixing" @changeIsRead="govRemind()" />
<!-- 待办任务弹框 -->
<daibanrenwu ref="daibanrenwu" />
</div>
<homeIndex v-else-if="userType == '01'" />
</template>
<script>
import { approvalList, uploadFile } from "@/api/onlineDeclartion/pendingReview"
import { selectAll, workSearch } from "@/api/jin_ji_hu/home"
import { chiefAll, changeIsRead } from "@/api/jin_ji_hu/intelligentReminder"
import homeIndex from "@/views/home/index.vue"
import echartData from '@/views/dataCloudMap/components/echartData.vue'
import { echartDataTwo, echartDataThree,
TableOne, TableTwo, TableThree, TableFour, echartDataFour,
echartDataFive, TableFive, TableSix, TableSeven, TableEight,
zhinengtixing, daibanrenwu
} from "./components"
import collectDialog from '@/views/dataCloudMap/components/collectDialog.vue'
export default {
10 months ago
dicts: ["project_small_type"],
components:{
homeIndex,
echartData,
echartDataTwo,
echartDataThree,
TableOne,
TableTwo,
TableThree,
TableFour,
echartDataFour,
echartDataFive,
TableFive,
TableSix,
TableSeven,
TableEight,
collectDialog,
zhinengtixing,
daibanrenwu
},
data() {
return {
// 判断登陆用户是何身份⌈ 01 企业 02 政务 ⌋
userType: this.$store.state.user.userType,
search:"",
backlogArray:[],
pagination: {
current:1,
size:10,
approvalStatusStr: 0,
},
// 是否显示弹出层
open: false,
tabs: [
{
value:"查企业"
},{
value:"查项目"
},{
value:"查荣誉"
},
],
checked: 0,
loading:false,
10 months ago
remindList: [],
info:{},
activeIndex:1,
options1: [
{
name: "按年",
},
{
name: "按季度",
},
],
time:"",
}
},
mounted(){
if(this.userType == '02') {
this.getList();
10 months ago
this.govRemind();
this.time = this.getNowFormatDate();
}
},
methods:{
// 获取最新年月日
getNowFormatDate() {
let date = new Date(),
year = date.getFullYear(), //获取完整的年份(4位)
month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)
strDate = date.getDate() // 获取当前日(1-31)
if (month < 10) month = `0${month}` // 如果月份是个位数在前面补0
if (strDate < 10) strDate = `0${strDate}` // 如果日是个位数在前面补0
return `${year}-${month}-${strDate}`
},
// 行业纵深情况查看详情按钮
industryBtn(){
this.$refs.collectDialog.open();
},
active(e) {
this.activeIndex = e;
this.$refs.echartData.getService(e);
},
// 智能提醒
zhinengtixingBtn(){
this.$refs.zhinengtixing.open();
},
// 待审批
getList(){
this.loading = true;
approvalList(this.pagination).then(res=>{
// console.log(res);
this.backlogArray = res.rows
this.loading = false;
})
},
10 months ago
// 政务端智能提醒
govRemind(){
chiefAll({current:1,size:20}).then(res=>{
this.remindList = res.data.records;
10 months ago
})
},
// 智能提醒去查看并修改状态
putMemo(item){
if(item.isRead == 1) {
changeIsRead({id:item.id}).then(res=>{
this.govRemind();
})
10 months ago
}
if(item.projectId) {
10 months ago
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.projectId) }
})
} else if(item.alertManner == 1) {
this.open = true;
this.info = item;
}
},
// 更多记录
MoreRecords(type,status){
if(type == 'all') {
// this.$router.push({
// name: 'PendingReview',
// params: { approvalStatusStr: "" }
// })
this.$refs.daibanrenwu.open();
} else {
this.$router.push({
name: 'PendingReview',
params: { approvalStatusStr: "0" }
})
}
},
// 切换查询tab
changeTab(index){
this.checked = index;
this.search = "";
// 切换搜索类型时清空上次搜索的推荐内容避免跳转问题
this.$refs.autocomplete.suggestions = [];
this.$refs.autocomplete.highlightedIndex = -1;
},
querySearch(queryString, cb) {
let results = []
if(this.checked == 0) {
workSearch({enterpriseInfo: queryString}).then(res => {
res.data.forEach(item => {
results.push({
value: item.qymc,
id: item.id,
tyshxydm: item.tyshxydm
})
})
})
} else if(this.checked == 1) {
selectAll({ name: queryString }).then(res => {
res.data.forEach(item => {
results.push({
value: item.declareUnit,
id: item.id
})
})
})
} else if(this.checked == 2) {
selectAll({ name: queryString, status: 5}).then(res => {
res.data.forEach(item => {
results.push({
value: item.declareUnit,
id: item.id
})
})
})
}
// queryString 拿到搜索到的数据
/**
* 通过queryString 调用接口参数搜索到的数据数据处理成所需的列表 对象带value 使用callback返回列表数据
*/
// var restaurants = this.restaurants;
// var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
// 调用 callback 返回建议列表的数据
cb(results);
},
// 点击搜索到的数据
handleSelect(item) {
if(this.checked == 0) {
this.$router.push({
name: 'enterpriselibraryInfo',
query: { userId: item.id, creditCode: item.tyshxydm }
})
} else if(this.checked == 1) {
this.$router.push({
name: 'projectInfo',
10 months ago
query: { userId: Number(item.id) }
})
} else if(this.checked == 2) {
this.$router.push({
name: 'projectInfo',
query: { userId: Number(item.id) }
})
}
},
searchBtn(){
// console.log(this.search);
if(this.checked == 0) {
this.$router.push({
name: 'Enterpriselibrary',
params: { enterpriseName: this.search }
})
} else if(this.checked == 1) {
// this.$router.push({
// name: 'Project',
// params: { projectName: this.search }
// })
this.$router.push({
name: 'Project',
params: { declareUnit: this.search }
})
} else if(this.checked == 2) {
this.$router.push({
name: 'Project',
params: { declareUnit: this.search, status: '5' }
})
}
},
},
}
</script>
<style lang="scss" scoped>
</style>