Commit da99fc9d authored by yht15023815643's avatar yht15023815643

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents 599aed8a d1ed54ad
...@@ -26,6 +26,12 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -26,6 +26,12 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer companyId; private Integer companyId;
/**
* 客户企业
*/
@NotNull(message = "企业不能为空")
private String companyName;
/** /**
* 查询关键字 * 查询关键字
*/ */
...@@ -33,7 +39,7 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -33,7 +39,7 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
public boolean isVaildCid() { public boolean isVaildCid() {
return 0 == cid || 0 == companyId; return 0 == cid;
} }
/** /**
......
...@@ -26,6 +26,12 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -26,6 +26,12 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer companyId; private Integer companyId;
/**
* 供应商企业
*/
@NotNull(message = "企业不能为空")
private Integer companyName;
/** /**
* 查询关键字 * 查询关键字
*/ */
...@@ -33,7 +39,7 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -33,7 +39,7 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
public boolean isVaildCid() { public boolean isVaildCid() {
return 0 == cid || 0 == companyId; return 0 == cid;
} }
......
...@@ -70,7 +70,7 @@ export const constantRoutes = [ ...@@ -70,7 +70,7 @@ export const constantRoutes = [
path: 'index', path: 'index',
component: () => import('@/views/index'), component: () => import('@/views/index'),
name: 'Index', name: 'Index',
meta: { title: '首页', icon: 'index', } meta: { title: '首页', icon: 'index',noCache: true }
} }
] ]
}, },
......
...@@ -278,7 +278,7 @@ export default { ...@@ -278,7 +278,7 @@ export default {
.options-block { .options-block {
position: absolute; position: absolute;
margin-top: 12px; margin-top: 3px;
min-width: 120px; min-width: 120px;
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
......
...@@ -43,17 +43,17 @@ ...@@ -43,17 +43,17 @@
<i slot="prefix" class="el-icon-search"></i> <i slot="prefix" class="el-icon-search"></i>
<el-button slot="append" @click="handleSearch">搜索</el-button> <el-button slot="append" @click="handleSearch">搜索</el-button>
</el-input> </el-input>
<div class="search_btn" @click="handleAdd"><i class="el-icon-plus"></i>新建项目</div> <div class="search_btn" @click="handleAdd"><i class="el-icon-plus"></i>添加客户</div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="content content_wap1"> <div class="content content_wap1">
<div class="head_title">业主单位合作情况</div> <div class="head_title">业主单位合作情况</div>
<el-row> <el-row>
<el-col :span="14"> <el-col :span="14" v-if="hzqkTotal != 0">
<div id="hzqk-echarts" style="height: 300px;"></div> <div id="hzqk-echarts" style="height: 300px;"></div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10" v-if="hzqkTotal != 0">
<div class="box-right"> <div class="box-right">
<el-table <el-table
:data="hzqkList" :data="hzqkList"
...@@ -73,6 +73,10 @@ ...@@ -73,6 +73,10 @@
</el-table> </el-table>
</div> </div>
</el-col> </el-col>
<div class="empty" v-if="hzqkTotal === 0">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
</div>
</el-row> </el-row>
</div> </div>
<div class="content content_wap2"> <div class="content content_wap2">
...@@ -135,22 +139,22 @@ ...@@ -135,22 +139,22 @@
<p class="list-content-text"> <p class="list-content-text">
<span>关联企业:</span> <span>关联企业:</span>
<span> <span>
<router-link :to="{path:`/enterprise/${encodeStr(item.companyId)}`,query:{customerId:item.customerId,path:'business'}}" tag="a">{{item.companyName || '--'}}</router-link> <router-link :to="{path:`/enterprise/${encodeStr(item.companyId)}`,query:{customerId:item.customerId,path:'business'}}" tag="a" class="a-link">{{item.companyName || '--'}}</router-link>
</span> </span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.nickName">
<span>跟进人:</span> <span>跟进人:</span>
<span>{{item.nickName || '--'}}</span> <span>{{item.nickName || '--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.name">
<span>拜访对象:</span> <span>拜访对象:</span>
<span>{{item.name || '--'}}</span> <span>{{item.name || '--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.visitTime">
<span>本次拜访时间:</span> <span>本次拜访时间:</span>
<span>{{item.visitTime || '--'}}</span> <span>{{item.visitTime || '--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.nextVisitTime">
<span>下次拜访时间:</span> <span>下次拜访时间:</span>
<span>{{item.nextVisitTime || '--'}}</span> <span>{{item.nextVisitTime || '--'}}</span>
</p> </p>
...@@ -208,16 +212,17 @@ ...@@ -208,16 +212,17 @@
pageSize:10, pageSize:10,
recordlist:[], recordlist:[],
timeList:['今日','近三天','近七天','自定义'], timeList:['今日','近三天','近七天','自定义'],
datatype:'', datatype:0,
defaultValue:new Date(), defaultValue:new Date(),
pickerValue: [], pickerValue: [],
params:{ params:{
startTime:'', startTime:this.formatDate(new Date()),
endTime:'' endTime:this.formatDate(new Date())
}, },
data:{ data:{
open:false open:false
} },
hzqkTotal:1
} }
}, },
created() { created() {
...@@ -245,7 +250,6 @@ ...@@ -245,7 +250,6 @@
this.statistics=res.data; this.statistics=res.data;
}) })
cooperationTop().then(res=>{ cooperationTop().then(res=>{
// console.log(res.data)
this.hzqkList=res.data; this.hzqkList=res.data;
let list=[]; let list=[];
for(let i=0; i<res.data.length; i++){ for(let i=0; i<res.data.length; i++){
...@@ -255,6 +259,8 @@ ...@@ -255,6 +259,8 @@
} }
if(list.length > 0){ if(list.length > 0){
this.initChart(list) this.initChart(list)
}else {
this.hzqkTotal=list.length
} }
}) })
creditLevel().then(res=>{ creditLevel().then(res=>{
...@@ -271,6 +277,7 @@ ...@@ -271,6 +277,7 @@
pageNum:this.pageNum,//页码 pageNum:this.pageNum,//页码
pageSize:this.pageSize, pageSize:this.pageSize,
} }
console.log(this.params)
if(this.params.startTime){ if(this.params.startTime){
param.startTime=this.params.startTime param.startTime=this.params.startTime
} }
...@@ -330,19 +337,25 @@ ...@@ -330,19 +337,25 @@
textStyle: { textStyle: {
align: 'left', align: 'left',
}, },
formatter: function (value,index) {
if (value.length > 15) {
value=`${value.slice(0, 15)}...`
}
return value
},
}, },
}, },
xAxis: { xAxis: {
type: 'value', type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置 axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666" // color:"#666666"
}, },
name: '单位/万元', name: '单位/万元',
// nameLocation: 'start', // nameLocation: 'start',
nameLocation: 'end', nameLocation: 'end',
nameTextStyle: { nameTextStyle: {
padding: [0, 0, 0, 0], // 四个数字分别为上右下左与原位置距离 padding: [0, 0, 0, 0], // 四个数字分别为上右下左与原位置距离
color: '#666666', // color: '#666666',
}, },
}, },
grid: { grid: {
...@@ -353,11 +366,11 @@ ...@@ -353,11 +366,11 @@
}, },
tooltip: { tooltip: {
show: true, show: true,
backgroundColor: 'rgba(0,0,0,.7)', // backgroundColor: 'rgba(0,0,0,.7)',
borderWidth: 0, borderWidth: 0,
textStyle: { // textStyle: {
color: '#fff', // color: '#fff',
}, // },
}, },
series: { series: {
name:'合同总额', name:'合同总额',
...@@ -472,7 +485,7 @@ ...@@ -472,7 +485,7 @@
let endTime = new Date() let endTime = new Date()
switch (value) { switch (value) {
case '今日': case '今日':
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 3) startTime = new Date()
timeStr = [this.formatDate(startTime), this.formatDate(endTime)] timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break; break;
case '近三天': case '近三天':
...@@ -635,8 +648,27 @@ ...@@ -635,8 +648,27 @@
background: #F5F5F5; background: #F5F5F5;
color: #0081FF; color: #0081FF;
} }
.el-input__inner:focus{
border-color: #3181fa;
}
.el-input__inner:focus ~.el-input-group__append{
border: 1px solid #0081FF;
color: #ffffff;
background: #0081FF;
/*.el-button{*/
/*border: 1px solid #0081FF;*/
/*span{*/
/*color: #ffffff;*/
/*background: #0081FF;*/
/*border: 1px solid #0081FF;*/
/*}*/
/*}*/
}
} }
.search_btn{ .search_btn{
width: 100%; width: 100%;
height: 36px; height: 36px;
...@@ -765,6 +797,28 @@ ...@@ -765,6 +797,28 @@
} }
} }
.content_wap1{
.empty{
margin: 0 auto;
height: 300px;
text-align: center;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 50px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
}
.content_wap3{ .content_wap3{
background: #ffffff; background: #ffffff;
.query-box{ .query-box{
...@@ -889,7 +943,7 @@ ...@@ -889,7 +943,7 @@
margin: 0 auto; margin: 0 auto;
height: 400px; height: 400px;
text-align: center; text-align: center;
border-top: 1px solid #EFEFEF; /*border-top: 1px solid #EFEFEF;*/
padding-bottom: 50px; padding-bottom: 50px;
.img{ .img{
width: 108px; width: 108px;
......
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
<router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="transactionPrice" slot-scope="scope">
<div v-html="scope.row.transactionPrice =='0.00' ? '--' : scope.row.transactionPrice"></div>
</template>
</tables> </tables>
</div> </div>
...@@ -55,7 +58,7 @@ export default { ...@@ -55,7 +58,7 @@ export default {
{label: '行业分类', prop: 'industry', width: '120'}, {label: '行业分类', prop: 'industry', width: '120'},
{label: '供地方式', prop: 'supplyLandWay', width: '120'}, {label: '供地方式', prop: 'supplyLandWay', width: '120'},
{label: '土地坐落', prop: 'landAddr', width: '150'}, {label: '土地坐落', prop: 'landAddr', width: '150'},
{label: '成交金额(万元)', prop: 'transactionPrice', width: '130'}, {label: '成交金额(万元)', prop: 'transactionPrice', width: '130',slot: true},
{label: '总面积(㎡)', prop: 'acreage', width: '120'}, {label: '总面积(㎡)', prop: 'acreage', width: '120'},
{label: '批准单位', prop: 'authority', width: '120'}, {label: '批准单位', prop: 'authority', width: '120'},
{label: '签订日期', prop: 'contractSignTime', width: '120'} {label: '签订日期', prop: 'contractSignTime', width: '120'}
......
...@@ -20,17 +20,17 @@ ...@@ -20,17 +20,17 @@
<div class="item"> <div class="item">
<router-link to="/macro/nationalEconomies" tag="a"> <router-link to="/macro/nationalEconomies" tag="a">
<img class="icon-img" src="@/assets/images/index/icon3.png"/> <img class="icon-img" src="@/assets/images/index/icon3.png"/>
<p class="text">宏观经济</p> <p class="text">全国经济大全</p>
</router-link> </router-link>
</div> </div>
<div class="item"> <div class="item">
<router-link to="/enterpriseData?type=2" tag="a"> <router-link to="/enterpriseData/Group" tag="a">
<img class="icon-img" src="@/assets/images/index/icon4.png"/> <img class="icon-img" src="@/assets/images/index/icon4.png"/>
<p class="text">集团户</p> <p class="text">集团户</p>
</router-link> </router-link>
</div> </div>
<div class="item"> <div class="item">
<router-link to="/enterpriseData" tag="a"> <router-link to="/enterpriseData/Owner" tag="a">
<img class="icon-img" src="@/assets/images/index/icon5.png"/> <img class="icon-img" src="@/assets/images/index/icon5.png"/>
<p class="text">查城投平台</p> <p class="text">查城投平台</p>
</router-link> </router-link>
...@@ -66,12 +66,12 @@ ...@@ -66,12 +66,12 @@
<div class="search"> <div class="search">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="address"> <el-form-item prop="address">
<el-select v-model="queryParams.address" @change="changeSelect1" clearable placeholder="项目地区" style="width: 150px;"> <el-select v-model="queryParams.address" @change="changeSelect1" clearable placeholder="项目地区" style="width: 120px;">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option> <el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="type"> <el-form-item prop="type">
<el-select v-model="queryParams.type" @change="changeSelect1" multiple collapse-tags clearable placeholder="项目类型" :class="queryParams.type.length > 1 ? 'selectTag' : ''" style="width: 170px;"> <el-select v-model="queryParams.type" @change="changeSelect1" multiple collapse-tags clearable placeholder="项目类型" :class="queryParams.type.length > 1 ? 'selectTag' : ''" style="width: 140px;">
<el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option> <el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -90,6 +90,7 @@ ...@@ -90,6 +90,7 @@
border border
max-height="250" max-height="250"
fit fit
ref="tableRef"
highlight-current-row highlight-current-row
> >
<el-table-column prop="combineName" label="集团名称"> <el-table-column prop="combineName" label="集团名称">
...@@ -125,12 +126,12 @@ ...@@ -125,12 +126,12 @@
@handle-search="changeSelect2" /> @handle-search="changeSelect2" />
</el-form-item> </el-form-item>
<el-form-item prop="address"> <el-form-item prop="address">
<el-select v-model="queryParams1.address" @change="changeSelect2" clearable placeholder="项目地区" style="width: 150px;"> <el-select v-model="queryParams1.address" @change="changeSelect2" clearable placeholder="项目地区" style="width: 120px;">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option> <el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="type"> <el-form-item prop="type">
<el-select v-model="queryParams1.type" multiple collapse-tags @change="changeSelect2" clearable placeholder="项目类型" :class="queryParams1.type.length > 1 ? 'selectTag' : ''" style="width: 170px;"> <el-select v-model="queryParams1.type" multiple collapse-tags @change="changeSelect2" clearable placeholder="项目类型" :class="queryParams1.type.length > 1 ? 'selectTag' : ''" style="width: 140px;">
<el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option> <el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -148,13 +149,14 @@ ...@@ -148,13 +149,14 @@
:data="dxmbList" :data="dxmbList"
border border
max-height="400" max-height="400"
ref="tableRef1"
fit fit
highlight-current-row highlight-current-row
> >
<el-table-column prop="companyName" label="企业名称"> <el-table-column prop="companyName" label="企业名称">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link companyName" v-html="scope.row.companyName" ></router-link> <!--<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link companyName" v-html="scope.row.companyName" ></router-link>-->
<span v-else>{{scope.row.companyName}}</span> <span style="cursor: pointer;" class="a-link companyName" @click="getUipIdByCid(scope.row.companyId)">{{scope.row.companyName}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="count" label="中标数量(个)" align="right" sortable width="150"/> <el-table-column prop="count" label="中标数量(个)" align="right" sortable width="150"/>
...@@ -164,13 +166,13 @@ ...@@ -164,13 +166,13 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div class="content_wap3"> <div class="content_wap3" ref="returnTop">
<el-tabs v-model="activeName" @tab-click="handleClickTab"> <el-tabs v-model="activeName" @tab-click="handleClickTab">
<el-tab-pane label="大项目最新中标" name="first"> <el-tab-pane label="大项目最新中标" name="first">
<skeleton v-if="zxzbIsSkeleton" style="padding: 16px"></skeleton> <skeleton v-if="zxzbIsSkeleton" style="padding: 16px"></skeleton>
<div class="list" v-if="!zxzbIsSkeleton"> <div class="list" v-if="!zxzbIsSkeleton">
<div class="item" v-for="(item,index) in projectList" :key="index"> <div class="item" v-for="(item,index) in projectList" :key="index">
<p class="list-title"><router-link :to="`/biddetail/${item.id}`" tag="a" class="a-link" v-if="item.pid" v-html="item.projectName"></router-link></p> <p class="list-title"><router-link :to="`/biddetail/${item.pid}`" tag="a" class="a-link" v-if="item.pid" v-html="item.projectName"></router-link></p>
<div class="list-content"> <div class="list-content">
<p class="list-content-text"> <p class="list-content-text">
<span>中标企业:</span> <span>中标企业:</span>
...@@ -227,16 +229,16 @@ ...@@ -227,16 +229,16 @@
<custom-money-select <custom-money-select
:moneyList="moneyList" :moneyList="moneyList"
v-model="amount" v-model="amount"
placeholder="中标金额" :placeholder="placeholder"
@handle-search="changeSelect3" /> @handle-search="changeSelect3" />
</el-form-item> </el-form-item>
<el-form-item prop="provinceId"> <el-form-item prop="provinceId">
<el-select v-model="queryParams2.provinceId" @change="changeSelect3" clearable placeholder="项目地区" style="width: 150px;"> <el-select v-model="queryParams2.provinceId" @change="changeSelect3" clearable placeholder="项目地区" style="width: 120px;">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option> <el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="projects"> <el-form-item prop="projects">
<el-select v-model="queryParams2.projects" @change="changeSelect3" multiple collapse-tags clearable placeholder="项目类型" :class="queryParams2.projects.length > 1 ? 'selectTag' : ''" style="width: 170px;"> <el-select v-model="queryParams2.projects" @change="changeSelect3" multiple collapse-tags clearable placeholder="项目类型" :class="queryParams2.projects.length > 1 ? 'selectTag' : ''" style="width: 140px;">
<el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option> <el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -456,6 +458,7 @@ ...@@ -456,6 +458,7 @@
import CustomMoneySelect from './component/CustomMoneySelect' import CustomMoneySelect from './component/CustomMoneySelect'
import skeleton from './component/skeleton' import skeleton from './component/skeleton'
import { countByCompany,bidRank,bigWinningBidsPage,bigBidPage } from '@/api/index' import { countByCompany,bidRank,bigWinningBidsPage,bigBidPage } from '@/api/index'
import { getUipIdByCid } from '@/api/macro/macro'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: "Index", name: "Index",
...@@ -665,6 +668,7 @@ export default { ...@@ -665,6 +668,7 @@ export default {
isSkeleton:true, isSkeleton:true,
zxzbIsSkeleton:true, zxzbIsSkeleton:true,
zhaobiaoIsSkeleton:true, zhaobiaoIsSkeleton:true,
placeholder:'中标金额'
}; };
}, },
created() { created() {
...@@ -690,7 +694,7 @@ export default { ...@@ -690,7 +694,7 @@ export default {
params.startDate=this.queryParams.time[0] params.startDate=this.queryParams.time[0]
params.endDate=this.queryParams.time[1] params.endDate=this.queryParams.time[1]
} }
if(this.queryParams.type.length > 1){ if(this.queryParams.type.length > 0){
params.type=this.queryParams.type.join() params.type=this.queryParams.type.join()
} }
if(this.queryParams.address){ if(this.queryParams.address){
...@@ -702,6 +706,12 @@ export default { ...@@ -702,6 +706,12 @@ export default {
this.jtzbList=res.data; this.jtzbList=res.data;
// if() // if()
this.initChart(this.jtzbList) this.initChart(this.jtzbList)
setTimeout(() => {
this.$nextTick(() => {
this.$refs.tableRef.bodyWrapper.scrollTop = 0
});
}, 500);
} }
}) })
}, },
...@@ -711,7 +721,7 @@ export default { ...@@ -711,7 +721,7 @@ export default {
params.startDate=this.queryParams1.time[0] params.startDate=this.queryParams1.time[0]
params.endDate=this.queryParams1.time[1] params.endDate=this.queryParams1.time[1]
} }
if(this.queryParams1.type.length > 1){ if(this.queryParams1.type.length > 0){
params.type=this.queryParams1.type.join() params.type=this.queryParams1.type.join()
} }
if(this.queryParams1.address){ if(this.queryParams1.address){
...@@ -720,6 +730,7 @@ export default { ...@@ -720,6 +730,7 @@ export default {
if(this.queryParams1.money){ if(this.queryParams1.money){
if(this.queryParams1.money.length > 1){ if(this.queryParams1.money.length > 1){
params.endMoney=this.queryParams1.money[1] params.endMoney=this.queryParams1.money[1]
params.startMoney=this.queryParams1.money[0]
}else { }else {
params.startMoney=this.queryParams1.money[0] params.startMoney=this.queryParams1.money[0]
} }
...@@ -730,17 +741,24 @@ export default { ...@@ -730,17 +741,24 @@ export default {
if(this.dxmbList.length > 0){ if(this.dxmbList.length > 0){
this.initChart1(this.dxmbList) this.initChart1(this.dxmbList)
} }
setTimeout(() => {
this.$nextTick(() => {
this.$refs.tableRef1.bodyWrapper.scrollTop = 0
});
}, 500);
} }
}) })
}, },
getBigWinningBidsPage(){ getBigWinningBidsPage(){
let params={}; let params={};
params.recentlyBidQueryDto=[]
let recentlyBidQueryDto={}; let recentlyBidQueryDto={};
params.pageNum=this.queryParams2.pageNum; params.pageNum=this.queryParams2.pageNum;
params.pageSize=this.queryParams2.pageSize; params.pageSize=this.queryParams2.pageSize;
if(this.amount){ if(this.amount){
if(this.amount.length > 1){ if(this.amount.length > 1){
recentlyBidQueryDto.endMoney=this.amount[1] recentlyBidQueryDto.endMoney=this.amount[1]
recentlyBidQueryDto.startMoney=this.amount[0]
}else { }else {
recentlyBidQueryDto.startMoney=this.amount[0] recentlyBidQueryDto.startMoney=this.amount[0]
} }
...@@ -755,7 +773,7 @@ export default { ...@@ -755,7 +773,7 @@ export default {
if(this.queryParams2.projects){ if(this.queryParams2.projects){
recentlyBidQueryDto.projectTypeNew=this.queryParams2.projects.join() recentlyBidQueryDto.projectTypeNew=this.queryParams2.projects.join()
} }
params.recentlyBidQueryDto=recentlyBidQueryDto params.recentlyBidQueryDto.push(recentlyBidQueryDto)
this.zxzbIsSkeleton=true this.zxzbIsSkeleton=true
bigWinningBidsPage(params).then(res=>{ bigWinningBidsPage(params).then(res=>{
this.zxzbIsSkeleton=false; this.zxzbIsSkeleton=false;
...@@ -773,6 +791,7 @@ export default { ...@@ -773,6 +791,7 @@ export default {
if(this.amount){ if(this.amount){
if(this.amount.length > 1){ if(this.amount.length > 1){
jskBidQueryDto.endBidMoney=this.amount[1] jskBidQueryDto.endBidMoney=this.amount[1]
jskBidQueryDto.startBidMoney=this.amount[0]
}else { }else {
jskBidQueryDto.startBidMoney=this.amount[0] jskBidQueryDto.startBidMoney=this.amount[0]
} }
...@@ -848,7 +867,7 @@ export default { ...@@ -848,7 +867,7 @@ export default {
color:"#666666" color:"#666666"
}, },
name: '单位:个', name: '单位:个',
nameLocation: 'start', nameLocation: 'end',
nameTextStyle: { nameTextStyle: {
padding: [0, 20, 0, -60], // 四个数字分别为上右下左与原位置距离 padding: [0, 20, 0, -60], // 四个数字分别为上右下左与原位置距离
color: '#666666', color: '#666666',
...@@ -860,7 +879,7 @@ export default { ...@@ -860,7 +879,7 @@ export default {
color:"#666666" color:"#666666"
}, },
name: '单位:万元', name: '单位:万元',
nameLocation: 'start', nameLocation: 'end',
nameTextStyle: { nameTextStyle: {
padding: [0, 0, 0, 100], // 四个数字分别为上右下左与原位置距离 padding: [0, 0, 0, 100], // 四个数字分别为上右下左与原位置距离
color: '#666666', color: '#666666',
...@@ -875,7 +894,7 @@ export default { ...@@ -875,7 +894,7 @@ export default {
} }
], ],
grid: { grid: {
top:30, top:60,
left:80, left:80,
right:90, right:90,
bottom:30, bottom:30,
...@@ -893,7 +912,12 @@ export default { ...@@ -893,7 +912,12 @@ export default {
} }
}, },
itemStyle: { itemStyle: {
color: '#14C9C9' normal:{
color: '#67B3FD',
lineStyle: {
width:3
},
}
}, },
data:data.map(item => item.money), data:data.map(item => item.money),
}, },
...@@ -914,7 +938,8 @@ export default { ...@@ -914,7 +938,8 @@ export default {
}, { }, {
offset: 1, offset: 1,
color: '#1B8EFF' color: '#1B8EFF'
}]) }]),
barBorderRadius:[20,20, 0, 0]
} }
}, },
data:data.map(item => item.count), data:data.map(item => item.count),
...@@ -951,157 +976,295 @@ export default { ...@@ -951,157 +976,295 @@ export default {
] ]
this.$nextTick(()=>{ this.$nextTick(()=>{
let myChart = echarts.init(document.getElementById("zbph-echarts")) let myChart = echarts.init(document.getElementById("zbph-echarts"))
// let option ={
// legend: {
// show: false,
// x:'right',
// y:'top',
// padding:[10,0,10,0],
// itemWidth: 24,
// itemHeight: 10,
// textStyle:{
// borderRadius:30,
// }
// },
// yAxis: {
// type: 'category',
// inverse: true, // 反向坐标
// data: data.map(item => item.companyName),
// axisLine: {
// show: false,
// },
// axisTick: {
// show: false,
// },
// axisPointer: {
// label: {
// show: true,
// // margin: 30
// }
// },
// axisLabel: {
// margin: 220,
// textStyle: {
// align: 'left',
// },
// formatter: function (value,index) {
// let idx=index+1;
// if (value.length > 15) {
// value=`${value.slice(0, 15)}...`
// }
// return '{' + idx + '|} {s|' + value + '}'
// },
// rich: {
// 1: {
// height: 24,
// width: 24,
// // marginBottom:-15,
// align: 'center',
// backgroundColor: {
// image: rankPic[0]
// },
// },
// 2: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[1]
// }
// },
// 3: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[2]
// }
// },
// 4: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[3]
// }
// },
// 5: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[4]
// }
// },
// 6: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[5]
// }
// },
// 7: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[6]
// }
// },
// 8: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[7]
// }
// },
// 9: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[8]
// }
// },
// 10: {
// height: 24,
// width: 24,
// align: 'center',
// backgroundColor: {
// image: rankPic[9]
// }
// },
// }
// },
// },
// xAxis: {
// type: 'value',
// },
// grid: {
// left: '20%',
// top: 40,
// right: 50,
// bottom: 60,
// },
// tooltip: {
// show: true,
// backgroundColor: 'rgba(0,0,0,.7)',
// borderWidth: 0,
// textStyle: {
// color: '#fff',
// },
// },
// series: [
// {
// // realtimeSort: true,
// name:'中标金额(万元)',
// data: data.map(item => item.money),
// barGap: 0,
// type: 'bar',
// itemStyle:{
// color: '#14C9C9',
// barBorderRadius:[0, 20, 20, 0]
// },
// barWidth: 8,
// }
// ],
// }
let option ={ let option ={
legend: { tooltip: {
show: false, trigger: 'axis',
x:'right', axisPointer: {
y:'top', type: 'cross'
padding:[10,0,10,0],
itemWidth: 24,
itemHeight: 10,
textStyle:{
borderRadius:30,
} }
}, },
yAxis: { xAxis: {
type: 'category', type: 'category',
inverse: true, // 反向坐标 axisLabel: { //坐标轴刻度标签的相关设置
data: data.map(item => item.companyName), margin: 15, //刻度标签与轴线之间的距离
axisLine: { color:"#666666"
show: false,
},
axisTick: {
show: false,
}, },
axisTick: false, //坐标轴刻度
axisPointer: { axisPointer: {
label: { type: 'shadow'
show: true, },
// margin: 30 data: data.map(item => item.companyName),
},
yAxis: [
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
name: '单位:个',
nameLocation: 'end',
nameTextStyle: {
padding: [0, 20, 0, 0], // 四个数字分别为上右下左与原位置距离
color: '#666666',
} }
}, },
axisLabel: { {
margin: 220, type: 'value',
textStyle: { axisLabel: { //坐标轴刻度标签的相关设置
align: 'left', color:"#666666"
}, },
formatter: function (value,index) { name: '单位:万元',
let idx=index+1; nameLocation: 'end',
return '{' + idx + '|} {s|' + value + '}' // nameLocation: 'start',
nameTextStyle: {
padding: [0, 0, 0, 100], // 四个数字分别为上右下左与原位置距离
color: '#666666',
}, },
rich: { splitLine: {
1: { show: true,
height: 24, lineStyle: {
width: 24, type: 'dashed',
// marginBottom:-15, color: ['#FFFFFF']
align: 'center', }
backgroundColor: {
image: rankPic[0]
},
},
2: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[1]
}
},
3: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[2]
}
},
4: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[3]
}
},
5: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[4]
}
},
6: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[5]
}
},
7: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[6]
}
},
8: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[7]
}
},
9: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[8]
}
},
10: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[9]
}
},
} }
}, }
}, ],
xAxis: {
type: 'value',
},
grid: { grid: {
left: '20%', top:50,
top: 40, left:60,
right: 20, right:90,
bottom: 60, bottom:50,
}, // containLabel: true
tooltip: {
show: true,
backgroundColor: 'rgba(0,0,0,.7)',
borderWidth: 0,
textStyle: {
color: '#fff',
},
}, },
series: { // dataZoom:[
// realtimeSort: true, // {
name:'中标金额(万元)', // type: 'slider',
data: data.map(item => item.money), // realtime: true,
barGap: 0, // start: 0,
type: 'bar', // end: 25, // 数据窗口范围的结束百分比。范围是:0 ~ 100。
itemStyle:{ // height: 5, // 组件高度
color: '#14C9C9', // left: 5, // 左边的距离
barBorderRadius:[0, 20, 20, 0] // right: 5, // 右边的距离
// bottom: 10, // 下边的距离
// show: 0, // 是否展示
// handleSize: 0, // 两边手柄尺寸
// showDetail: false, // 拖拽时是否展示滚动条两侧的文字
// zoomLock: true, // 是否只平移不缩放
// moveOnMouseMove: false, // 鼠标移动能触发数据窗口平移
// // zoomOnMouseWheel: false, //鼠标移动能触发数据窗口缩放
// },
// {
// type: 'inside', // 支持内部鼠标滚动平移
// start: 0,
// end: 50,
// zoomOnMouseWheel: false, // 关闭滚轮缩放
// moveOnMouseWheel: true, // 开启滚轮平移
// moveOnMouseMove: true // 鼠标移动能触发数据窗口平移
// }
// ],
series: [
{
name:'中标金额(万元)',
smooth: false, //平滑
type:"line",
symbolSize: 6,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '万元'
}
},
itemStyle: {
normal:{
color: '#67B3FD',
lineStyle: {
width:3
},
}
},
data:data.map(item => item.money),
}, },
barWidth: 8, {
}, name:'中标总数(个)',
type: 'bar',
barWidth: 20,
tooltip: {
valueFormatter: function (value) {
return value + '个';
}
},
itemStyle: {
normal:{
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#56A5FF'
}, {
offset: 1,
color: '#1B8EFF'
}]),
barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
}
]
} }
myChart.setOption(option); myChart.setOption(option);
window.addEventListener("resize", function () { window.addEventListener("resize", function () {
...@@ -1114,9 +1277,11 @@ export default { ...@@ -1114,9 +1277,11 @@ export default {
this.queryParams2.pageNum=1; this.queryParams2.pageNum=1;
if(this.activeName === 'first'){ if(this.activeName === 'first'){
this.getBigWinningBidsPage() this.getBigWinningBidsPage()
this.placeholder='中标金额'
} }
if(this.activeName === 'second'){ if(this.activeName === 'second'){
this.getBigBidPage() this.getBigBidPage()
this.placeholder='总投资'
} }
}, },
handleClickTab1(){}, handleClickTab1(){},
...@@ -1144,10 +1309,20 @@ export default { ...@@ -1144,10 +1309,20 @@ export default {
this.getBigBidPage() this.getBigBidPage()
} }
}, },
handleCurrentChange(){ handleCurrentChange(val){
this.queryParams2.pageNum = val
if(this.activeName === 'first'){
this.getBigWinningBidsPage()
}
if(this.activeName === 'second'){
this.getBigBidPage()
}
window.scrollTo({
top: 600,
behavior: 'smooth' // 滚动行为:smooth平滑滚动,instant瞬间滚动,默认值auto,等同于instant
})
}, },
handleSizeChange(){ handleSizeChange(val){
this.queryParams2.pageNum = 1 this.queryParams2.pageNum = 1
this.queryParams2.pageSize = val this.queryParams2.pageSize = val
if(this.activeName === 'first'){ if(this.activeName === 'first'){
...@@ -1157,6 +1332,21 @@ export default { ...@@ -1157,6 +1332,21 @@ export default {
this.getBigBidPage() this.getBigBidPage()
} }
}, },
getUipIdByCid(companyId){
var params=[companyId]
getUipIdByCid(params).then(res=>{
if (res.code==200) {
if(res.data&&res.data.length>0&&res.data[0].uipId){
this.$router.push({path: '/enterprise/'+this.encodeStr(companyId)})
}else{
this.$router.push({path: '/company/'+this.encodeStr(companyId)})
}
}
}).catch(error=>{
});
},
} }
}; };
</script> </script>
...@@ -1249,7 +1439,7 @@ export default { ...@@ -1249,7 +1439,7 @@ export default {
padding: 22px 16px; padding: 22px 16px;
} }
.content_wap1{ .content_wap1{
height: 360px; height: 380px;
margin-bottom: 12px; margin-bottom: 12px;
} }
.content_wap2{ .content_wap2{
...@@ -1481,7 +1671,7 @@ export default { ...@@ -1481,7 +1671,7 @@ export default {
.el-select__tags{ .el-select__tags{
.el-tag{ .el-tag{
&:first-child{ &:first-child{
width: 90px; width: 65px;
} }
} }
} }
......
...@@ -333,9 +333,9 @@ export default { ...@@ -333,9 +333,9 @@ export default {
getData(){ getData(){
this.isSkeleton = true this.isSkeleton = true
let params={} let params={}
if(this.dataQuery.id){ // if(this.dataQuery.id){
params.id=this.dataQuery.id // params.id=this.dataQuery.id
} // }
if(this.provinceId.length >= 0){ if(this.provinceId.length >= 0){
params.provinceId=this.provinceId[0] params.provinceId=this.provinceId[0]
} }
......
<template>
<div class="BIfx">
<el-tabs v-model="activeName">
<el-tab-pane label="宏观市场分析" name="first">
<img class="img" src="@/assets/images/BI/hgscfx.png"/>
</el-tab-pane>
<el-tab-pane label="立项设计" name="second">
<img class="img" src="@/assets/images/BI/lxsj.png"/>
</el-tab-pane>
<el-tab-pane label="专项债项目" name="third">
<img class="img" src="@/assets/images/BI/zxz.png"/>
</el-tab-pane>
<el-tab-pane label="中标公告" name="fourth">
<img class="img" src="@/assets/images/BI/zbgg.png"/>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
export default {
name: 'BI',
data() {
return {
activeName:'first'
}
}
}
</script>
<style lang="scss" scoped>
.BIfx{
background: #ffffff;
padding: 16px;
margin-top: 12px;
::v-deep .el-tabs{
.el-tabs__nav-wrap::after {
position: static !important;
}
.el-tabs__header{
margin: 0;
.el-tabs__item{
padding: 0 16px;
font-size: 16px;
}
.is-active{
font-weight: bold;
}
}
.el-tabs__content{
width: 100%;
}
}
.img{
width: 100%;
margin-top: 30px;
}
}
</style>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</el-table-column> </el-table-column>
<el-table-column label="地区" min-width="150" align="left" fixed> <el-table-column label="地区" min-width="150" align="left" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
<span @click="clickTo(scope.row)">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</span> <span @click="clickTo(scope.row)" style="cursor: pointer;" class="a-link">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="年度明细" prop="id" width="90" align="center" fixed> <el-table-column label="年度明细" prop="id" width="90" align="center" fixed>
...@@ -327,7 +327,7 @@ ...@@ -327,7 +327,7 @@
}, },
clickTo(item){ clickTo(item){
let params={ let params={
id:item.id, // id:item.id,
province:item.area ? item.area : item.city ? item.city : item.province, province:item.area ? item.area : item.city ? item.city : item.province,
} }
if(item.areaId){ if(item.areaId){
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="xmtjList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -38,10 +38,10 @@ ...@@ -38,10 +38,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty">--> <div class="empty" v-if="xmtjList.length === 0 && !isSkeleton">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!zbtjState" class="td_content"> <div v-if="!zbtjState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="topList.length > 0 && !zbtjState">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -79,10 +79,10 @@ ...@@ -79,10 +79,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty" v-if="!zbtjState">--> <div class="empty" v-if="topList.length === 0 && !zbtjState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!jefxState" class="td_content"> <div v-if="!jefxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="zbjeList.length > 0 && !jefxState">
<div class="box-left"> <div class="box-left">
<div id="echarts3" style="height: 280px"></div> <div id="echarts3" style="height: 280px"></div>
</div> </div>
...@@ -118,10 +118,10 @@ ...@@ -118,10 +118,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty" v-if="!jefxState">--> <div class="empty" v-if="zbjeList.length === 0 && !jefxState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!qsfxState" class="td_content"> <div v-if="!qsfxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
<span class="common-title">全国中标趋势分析</span> <span class="common-title">全国中标趋势分析</span>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="zbqsList.length > 0 && !qsfxState">
<div class="box-left"> <div class="box-left">
<div id="echarts4" style="height: 300px"></div> <div id="echarts4" style="height: 300px"></div>
</div> </div>
...@@ -154,6 +154,10 @@ ...@@ -154,6 +154,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="zbqsList.length === 0 && !qsfxState">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div v-if="!xflState" class="td_content"> <div v-if="!xflState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
...@@ -164,7 +168,7 @@ ...@@ -164,7 +168,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="xflList.length > 0 && !xflState">
<div class="box-left"> <div class="box-left">
<div id="echarts5" style="height: 280px"></div> <div id="echarts5" style="height: 280px"></div>
</div> </div>
...@@ -189,17 +193,17 @@ ...@@ -189,17 +193,17 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty" v-if="!xflState">--> <div class="empty" v-if="xflList.length === 0 && !xflState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
<div v-if="!xmlxState" class="td_content"> <div v-if="!xmlxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标业绩项目类型下浮率</span> <span class="common-title">全国中标业绩项目类型下浮率</span>
<el-select @change="handleYears(6)" style="margin-right: 8px" v-model="address" collapse-tags filterable class="form-content-width" placeholder="地区筛选" :popper-append-to-body='false' size="small"> <el-select @change="handleYears(6)" style="margin-right: 8px" v-model="address" clearable collapse-tags filterable class="form-content-width" placeholder="地区筛选" :popper-append-to-body='false' size="small">
<el-option v-for="(item, index) in addressList" :key="index" :label="item.label" :value="item.id" /> <el-option v-for="(item, index) in addressList" :key="index" :label="item.label" :value="item.id" />
</el-select> </el-select>
<el-select v-model="years4" @change="handleYears(6)" collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small"> <el-select v-model="years4" @change="handleYears(6)" collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small">
...@@ -207,7 +211,7 @@ ...@@ -207,7 +211,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="xmxflList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts6" style="height: 300px"></div> <div id="echarts6" style="height: 300px"></div>
</div> </div>
...@@ -233,10 +237,10 @@ ...@@ -233,10 +237,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="empty">--> <div class="empty" v-if="xmxflList.length === 0 && !xmlxState">
<!--<img class="img" src="@/assets/images/project/empty.png">--> <img class="img" src="@/assets/images/project/empty.png">
<!--<div class="p1">抱歉,暂无数据展示</div>--> <div class="p1">抱歉,暂无数据展示</div>
<!--</div>--> </div>
</div> </div>
</div> </div>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane> <el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane>
<el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane> <el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane>
<el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane> <el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane>
<el-tab-pane label="BI统计分析" name="five"></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
...@@ -13,6 +14,7 @@ ...@@ -13,6 +14,7 @@
<Sjxmfx v-if="activeName === 'second'"></Sjxmfx> <Sjxmfx v-if="activeName === 'second'"></Sjxmfx>
<Zhongbiao v-if="activeName === 'third'"></Zhongbiao> <Zhongbiao v-if="activeName === 'third'"></Zhongbiao>
<Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx> <Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx>
<BI v-if="activeName === 'five'"></BI>
</div> </div>
</template> </template>
...@@ -21,10 +23,11 @@ ...@@ -21,10 +23,11 @@
import Sjxmfx from './component/sjxmfx' import Sjxmfx from './component/sjxmfx'
import Jzqyfx from './component/jzqyfx' import Jzqyfx from './component/jzqyfx'
import Zhongbiao from './component/zhongbiao' import Zhongbiao from './component/zhongbiao'
import BI from './component/BI'
export default { export default {
name: 'NationalEconomies', name: 'NationalEconomies',
components: { components: {
Economic,Sjxmfx,Jzqyfx,Zhongbiao Economic,Sjxmfx,Jzqyfx,Zhongbiao,BI
}, },
data() { data() {
return { return {
......
...@@ -2,10 +2,12 @@ package com.dsk.system.dskService; ...@@ -2,10 +2,12 @@ package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -48,6 +50,11 @@ public class IndexService { ...@@ -48,6 +50,11 @@ public class IndexService {
objectMap.put("recentlyBidQueryDto", recentlyBidQueryDtoList); objectMap.put("recentlyBidQueryDto", recentlyBidQueryDtoList);
} else { } else {
Map<String,Object> recentlyBidQueryMap = (Map<String,Object>)recentlyBidQueryDtoList.get(0); Map<String,Object> recentlyBidQueryMap = (Map<String,Object>)recentlyBidQueryDtoList.get(0);
String startMoney = MapUtils.getString(recentlyBidQueryMap, "startMoney", "");
String endMoney = MapUtils.getString(recentlyBidQueryMap, "endMoney", "");
if (ObjectUtil.isEmpty(startMoney) && ObjectUtil.isEmpty(endMoney)) {
recentlyBidQueryMap.put("startMoney", 20000);
}
recentlyBidQueryMap.put("tenderType","施工,工程总承包"); recentlyBidQueryMap.put("tenderType","施工,工程总承包");
objectMap.put("recentlyBidQueryDto", recentlyBidQueryDtoList); objectMap.put("recentlyBidQueryDto", recentlyBidQueryDtoList);
} }
...@@ -71,7 +78,13 @@ public class IndexService { ...@@ -71,7 +78,13 @@ public class IndexService {
jskBidQueryDtoMap.put("startBidMoney", 20000); jskBidQueryDtoMap.put("startBidMoney", 20000);
objectMap.put("jskBidQueryDto", jskBidQueryDtoMap); objectMap.put("jskBidQueryDto", jskBidQueryDtoMap);
} else { } else {
objectMap.put("jskBidQueryDto", jskBidQueryDto); Map<String,Object> map = JSONUtil.toBean(JSONUtil.toJsonStr(jskBidQueryDto), Map.class);
String startBidMoney = MapUtils.getString(map, "startBidMoney", "");
String endBidMoney = MapUtils.getString(map, "endBidMoney", "");
if (ObjectUtil.isEmpty(startBidMoney) && ObjectUtil.isEmpty(endBidMoney)) {
map.put("startBidMoney", 20000);
}
objectMap.put("jskBidQueryDto", map);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", objectMap); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", objectMap);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
......
...@@ -123,13 +123,16 @@ ...@@ -123,13 +123,16 @@
</select> </select>
<select id="selectCreditLevelGroup" resultType="java.util.Map"> <select id="selectCreditLevelGroup" resultType="java.util.Map">
select select ct.* from (
ct.credit_level creditLevel, count(ct.credit_level) customerCount select
from customer ct ct.credit_level creditLevel, count(ct.customer_id) customerCount
join customer_user ctu on ct.customer_id = ctu.customer_id from customer ct
where ctu.user_id = #{userId} join customer_user ctu on ct.customer_id = ctu.customer_id
group by ct.credit_level where ctu.user_id = #{userId} and ct.credit_level is not null
order by ct.credit_level desc group by ct.credit_level
) ct
left join sys_dict_data sdd on (sdd.dict_label = ct.creditLevel and sdd.dict_type = 'credit_level_type')
order by sdd.dict_sort asc
</select> </select>
</mapper> </mapper>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment