|
@@ -8,7 +8,7 @@ |
|
|
<div |
|
|
<div |
|
|
class="nav-box-item" |
|
|
class="nav-box-item" |
|
|
v-for="(data, index) in headList" |
|
|
v-for="(data, index) in headList" |
|
|
:key="index" |
|
|
|
|
|
|
|
|
:key="data.title + index" |
|
|
:class="{ active: headIndex == data.title }" |
|
|
:class="{ active: headIndex == data.title }" |
|
|
@click="selectNav(data)" |
|
|
@click="selectNav(data)" |
|
|
v-show="data.show" |
|
|
v-show="data.show" |
|
@@ -39,7 +39,7 @@ |
|
|
<div |
|
|
<div |
|
|
class="timer-item" |
|
|
class="timer-item" |
|
|
v-for="(data, index) in dateSelect" |
|
|
v-for="(data, index) in dateSelect" |
|
|
:key="index" |
|
|
|
|
|
|
|
|
:key="data.title + index" |
|
|
:class="{ active: dateSelectIndex == data.value }" |
|
|
:class="{ active: dateSelectIndex == data.value }" |
|
|
@click="timerClick(data.value)" |
|
|
@click="timerClick(data.value)" |
|
|
> |
|
|
> |
|
@@ -64,6 +64,7 @@ |
|
|
v-model="companyValue" |
|
|
v-model="companyValue" |
|
|
placeholder="请选择" |
|
|
placeholder="请选择" |
|
|
clearable |
|
|
clearable |
|
|
|
|
|
filterable |
|
|
@change="changeCompany" |
|
|
@change="changeCompany" |
|
|
:popper-append-to-body="false" |
|
|
:popper-append-to-body="false" |
|
|
> |
|
|
> |
|
@@ -86,7 +87,7 @@ |
|
|
> |
|
|
> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="item in projectOptions" |
|
|
v-for="item in projectOptions" |
|
|
:key="item.value" |
|
|
|
|
|
|
|
|
:key="item.label" |
|
|
:label="item.label" |
|
|
:label="item.label" |
|
|
:value="item.value" |
|
|
:value="item.value" |
|
|
> |
|
|
> |
|
@@ -104,7 +105,7 @@ |
|
|
> |
|
|
> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="item in rankingTypeList" |
|
|
v-for="item in rankingTypeList" |
|
|
:key="item.value" |
|
|
|
|
|
|
|
|
:key="item.title" |
|
|
:label="item.title" |
|
|
:label="item.title" |
|
|
:value="item.value" |
|
|
:value="item.value" |
|
|
:disabled="item.disabled" |
|
|
:disabled="item.disabled" |
|
@@ -121,7 +122,7 @@ |
|
|
> |
|
|
> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="item in ruleTypeList" |
|
|
v-for="item in ruleTypeList" |
|
|
:key="item.value" |
|
|
|
|
|
|
|
|
:key="item.title" |
|
|
:label="item.title" |
|
|
:label="item.title" |
|
|
:value="item.value" |
|
|
:value="item.value" |
|
|
> |
|
|
> |
|
@@ -136,207 +137,203 @@ |
|
|
</div> |
|
|
</div> |
|
|
</header> |
|
|
</header> |
|
|
|
|
|
|
|
|
<template v-if="headIndex == '实时总览'"> |
|
|
|
|
|
<!-- 中间部分 --> |
|
|
|
|
|
<section class="bodys"> |
|
|
|
|
|
<!-- 柱状图 --> |
|
|
|
|
|
<div class="items lside"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="item-item" |
|
|
|
|
|
v-for="(data, index) in lsideDataList" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
> |
|
|
|
|
|
<titles :title="data.title"> |
|
|
|
|
|
<div class="rsidebox" slot="rside"> |
|
|
|
|
|
<div |
|
|
|
|
|
:class="{ active: data.activeName == data.params }" |
|
|
|
|
|
@click=" |
|
|
|
|
|
(data.activeName = data.params), |
|
|
|
|
|
getFormatter(data.params, data.title) |
|
|
|
|
|
" |
|
|
|
|
|
class="asd" |
|
|
|
|
|
> |
|
|
|
|
|
按项目 |
|
|
|
|
|
</div> |
|
|
|
|
|
<div |
|
|
|
|
|
:class="{ active: data.activeName == data.params1 }" |
|
|
|
|
|
@click=" |
|
|
|
|
|
(data.activeName = data.params1), |
|
|
|
|
|
getFormatter(data.params1, data.title) |
|
|
|
|
|
" |
|
|
|
|
|
class="asd" |
|
|
|
|
|
> |
|
|
|
|
|
按城市 |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 中间部分 --> |
|
|
|
|
|
<section v-if="headIndex == '实时总览'" class="bodys"> |
|
|
|
|
|
<!-- 柱状图 --> |
|
|
|
|
|
<div class="items lside"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="item-item" |
|
|
|
|
|
v-for="(data, index) in lsideDataList" |
|
|
|
|
|
:key="data.title + index" |
|
|
|
|
|
> |
|
|
|
|
|
<titles :title="data.title"> |
|
|
|
|
|
<div class="rsidebox" slot="rside"> |
|
|
|
|
|
<div |
|
|
|
|
|
:class="{ active: data.activeName == data.params }" |
|
|
|
|
|
@click=" |
|
|
|
|
|
(data.activeName = data.params), |
|
|
|
|
|
getFormatter(data.params, data.title) |
|
|
|
|
|
" |
|
|
|
|
|
class="asd" |
|
|
|
|
|
> |
|
|
|
|
|
按项目 |
|
|
</div> |
|
|
</div> |
|
|
</titles> |
|
|
|
|
|
|
|
|
<div |
|
|
|
|
|
:class="{ active: data.activeName == data.params1 }" |
|
|
|
|
|
@click=" |
|
|
|
|
|
(data.activeName = data.params1), |
|
|
|
|
|
getFormatter(data.params1, data.title) |
|
|
|
|
|
" |
|
|
|
|
|
class="asd" |
|
|
|
|
|
> |
|
|
|
|
|
按城市 |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</titles> |
|
|
|
|
|
|
|
|
<div |
|
|
|
|
|
v-if="data.activeName == data.params" |
|
|
|
|
|
class="echarts" |
|
|
|
|
|
:id="data.params" |
|
|
|
|
|
></div> |
|
|
|
|
|
<div |
|
|
|
|
|
v-if="data.activeName == data.params1" |
|
|
|
|
|
class="echarts" |
|
|
|
|
|
:id="data.params1" |
|
|
|
|
|
></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div |
|
|
|
|
|
v-if="data.activeName == data.params" |
|
|
|
|
|
class="echarts" |
|
|
|
|
|
:id="data.params" |
|
|
|
|
|
></div> |
|
|
|
|
|
<div |
|
|
|
|
|
v-if="data.activeName == data.params1" |
|
|
|
|
|
class="echarts" |
|
|
|
|
|
:id="data.params1" |
|
|
|
|
|
></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 中间展示 --> |
|
|
|
|
|
<div class="items middle"> |
|
|
|
|
|
<!-- 第一部分 --> |
|
|
|
|
|
<div class="items-top"> |
|
|
|
|
|
<p class="title">待处理</p> |
|
|
|
|
|
<div class="item-box"> |
|
|
|
|
|
<!-- // background-size: 168px 168px; |
|
|
|
|
|
|
|
|
<!-- 中间展示 --> |
|
|
|
|
|
<div class="items middle"> |
|
|
|
|
|
<!-- 第一部分 --> |
|
|
|
|
|
<div class="items-top"> |
|
|
|
|
|
<p class="title">待处理</p> |
|
|
|
|
|
<div class="item-box"> |
|
|
|
|
|
<!-- // background-size: 168px 168px; |
|
|
// background-position: center; --> |
|
|
// background-position: center; --> |
|
|
<div |
|
|
|
|
|
class="item-box-item" |
|
|
|
|
|
v-for="(data, index) in stayHandleList" |
|
|
|
|
|
@click="showDialog(data)" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
:style="{ |
|
|
|
|
|
background: `url(${data.img}) no-repeat`, |
|
|
|
|
|
backgroundSize: '168px 168px', |
|
|
|
|
|
backgroundPosition: 'center', |
|
|
|
|
|
}" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="num" :style="{ color: data.fontColor }"> |
|
|
|
|
|
{{ data.data || 0 }} |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="item-title">{{ data.title }}</div> |
|
|
|
|
|
|
|
|
<div |
|
|
|
|
|
class="item-box-item" |
|
|
|
|
|
v-for="(data, index) in stayHandleList" |
|
|
|
|
|
@click="showDialog(data)" |
|
|
|
|
|
:key="data.img + index" |
|
|
|
|
|
:style="{ |
|
|
|
|
|
background: `url(${data.img}) no-repeat`, |
|
|
|
|
|
backgroundSize: '168px 168px', |
|
|
|
|
|
backgroundPosition: 'center', |
|
|
|
|
|
}" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="num" :style="{ color: data.fontColor }"> |
|
|
|
|
|
{{ data.data || 0 }} |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="item-title">{{ data.title }}</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<!-- 第二部分 --> |
|
|
|
|
|
<div class="item-btm"> |
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
<!-- 第二部分 --> |
|
|
|
|
|
<div class="item-btm"> |
|
|
|
|
|
<img |
|
|
|
|
|
class="jiedailiang" |
|
|
|
|
|
src="/img/bidata/jiedailiang@2x.png" |
|
|
|
|
|
alt="" |
|
|
|
|
|
/> |
|
|
|
|
|
<img class="bgdsada" src="/img/bidata/bgdsada@x2.png" alt="" /> |
|
|
|
|
|
|
|
|
|
|
|
<div class="numberoftimes"> |
|
|
<img |
|
|
<img |
|
|
class="jiedailiang" |
|
|
|
|
|
src="/img/bidata/jiedailiang@2x.png" |
|
|
|
|
|
|
|
|
class="numberoftimes-img" |
|
|
|
|
|
src="/img/bidata/weu@2x.png" |
|
|
alt="" |
|
|
alt="" |
|
|
/> |
|
|
/> |
|
|
<img class="bgdsada" src="/img/bidata/bgdsada@x2.png" alt="" /> |
|
|
|
|
|
|
|
|
|
|
|
<div class="numberoftimes"> |
|
|
|
|
|
<img |
|
|
|
|
|
class="numberoftimes-img" |
|
|
|
|
|
src="/img/bidata/weu@2x.png" |
|
|
|
|
|
alt="" |
|
|
|
|
|
/> |
|
|
|
|
|
<div class="numberoftimes-box"> |
|
|
|
|
|
<span class="cishu">{{ receptionCount }}</span> |
|
|
|
|
|
<span class="ci">次</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="numberoftimes-box"> |
|
|
|
|
|
<span class="cishu">{{ receptionCount }}</span> |
|
|
|
|
|
<span class="ci">次</span> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="ibox"> |
|
|
|
|
|
|
|
|
<div class="ibox"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="ibox-item" |
|
|
|
|
|
v-for="(data, index) in jiedaiList" |
|
|
|
|
|
@click="showDialog(data)" |
|
|
|
|
|
:key="data.bgImg + index" |
|
|
|
|
|
:style="{ |
|
|
|
|
|
background: `url(${data.bgImg}) no-repeat`, |
|
|
|
|
|
backgroundSize: data.unit ? '112px 112px' : '148px 108px', |
|
|
|
|
|
backgroundPosition: 'center', |
|
|
|
|
|
}" |
|
|
|
|
|
> |
|
|
<div |
|
|
<div |
|
|
class="ibox-item" |
|
|
|
|
|
v-for="(data, index) in jiedaiList" |
|
|
|
|
|
@click="showDialog(data)" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
|
|
|
class="num" |
|
|
:style="{ |
|
|
:style="{ |
|
|
background: `url(${data.bgImg}) no-repeat`, |
|
|
|
|
|
backgroundSize: data.unit ? '112px 112px' : '148px 108px', |
|
|
|
|
|
backgroundPosition: 'center', |
|
|
|
|
|
|
|
|
width: data.unit ? '112px' : '148px', |
|
|
|
|
|
height: data.unit ? '112px' : '108px', |
|
|
}" |
|
|
}" |
|
|
> |
|
|
> |
|
|
<div |
|
|
|
|
|
class="num" |
|
|
|
|
|
:style="{ |
|
|
|
|
|
width: data.unit ? '112px' : '148px', |
|
|
|
|
|
height: data.unit ? '112px' : '108px', |
|
|
|
|
|
}" |
|
|
|
|
|
> |
|
|
|
|
|
{{ data.data || 0 }}{{ data.unit || "" }} |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="title">{{ data.title }}</div> |
|
|
|
|
|
|
|
|
{{ data.data || 0 }}{{ data.unit || "" }} |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<!-- 第三部分 --> |
|
|
|
|
|
<div class="item-mi"> |
|
|
|
|
|
<div class="item-item lside"> |
|
|
|
|
|
<titles title="接待趋势"></titles> |
|
|
|
|
|
<div class="echarts" id="tendencyData1"></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="item-item rside"> |
|
|
|
|
|
<titles title="销讲执行趋势"></titles> |
|
|
|
|
|
<div class="echarts" id="tendencyData2"></div> |
|
|
|
|
|
|
|
|
<div class="title">{{ data.title }}</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 饼状图 --> |
|
|
|
|
|
<div class="items rside"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="item-item" |
|
|
|
|
|
v-for="(data, index) in rsideDataList" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
> |
|
|
|
|
|
<titles :title="data.title"></titles> |
|
|
|
|
|
<div class="echarts" :id="data.params"></div> |
|
|
|
|
|
|
|
|
<!-- 第三部分 --> |
|
|
|
|
|
<div class="item-mi"> |
|
|
|
|
|
<div class="item-item lside"> |
|
|
|
|
|
<titles title="接待趋势"></titles> |
|
|
|
|
|
<div class="echarts" id="tendencyData1"></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="item-item rside"> |
|
|
|
|
|
<titles title="销讲执行趋势"></titles> |
|
|
|
|
|
<div class="echarts" id="tendencyData2"></div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<template v-if="headIndex == '案场排名'"> |
|
|
|
|
|
<section class="caseRanking"> |
|
|
|
|
|
<div class="head-box"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="head-box-item" |
|
|
|
|
|
v-for="(data, index) in caseRankingList" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="t">{{ data.title }}</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="b"> |
|
|
|
|
|
<p class="lside"> |
|
|
|
|
|
<span class="resultA">{{ data.resultA }}</span> |
|
|
|
|
|
<span class="unit">{{ data.unit }}</span> |
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
<p class="rside"> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="data.resultB > 0" |
|
|
|
|
|
class="r-img" |
|
|
|
|
|
src="/img/indexIcon/indexCardUp.png" |
|
|
|
|
|
alt="" |
|
|
|
|
|
/> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="data.resultB < 0" |
|
|
|
|
|
class="r-img" |
|
|
|
|
|
src="/img/indexIcon/indexCardDown.png" |
|
|
|
|
|
alt="" |
|
|
|
|
|
/> |
|
|
|
|
|
<span :class="{ up: data.resultB > 0 }" v-if="data.resultB > 0" |
|
|
|
|
|
>+{{ data.resultB }}</span |
|
|
|
|
|
> |
|
|
|
|
|
<span |
|
|
|
|
|
:class="{ down: data.resultB < 0 }" |
|
|
|
|
|
v-if="data.resultB < 0" |
|
|
|
|
|
>{{ data.resultB }}</span |
|
|
|
|
|
> |
|
|
|
|
|
<!-- <span v-if="data.resultB == 0">{{ data.resultB }}</span> --> |
|
|
|
|
|
</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 饼状图 --> |
|
|
|
|
|
<div class="items rside"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="item-item" |
|
|
|
|
|
v-for="(data, index) in rsideDataList" |
|
|
|
|
|
:key="data.params + index" |
|
|
|
|
|
> |
|
|
|
|
|
<titles :title="data.title"></titles> |
|
|
|
|
|
<div class="echarts" :id="data.params"></div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="body-box"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="body-box-item" |
|
|
|
|
|
v-for="(data, index) in rankingEchartsBarList" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
> |
|
|
|
|
|
<titles :title="data.title"></titles> |
|
|
|
|
|
<div class="echarts" :id="data.params"></div> |
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
<section class="caseRanking" v-if="headIndex == '案场排名'"> |
|
|
|
|
|
<div class="head-boxs"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="head-box-items" |
|
|
|
|
|
v-for="(data, index) in caseRankingList" |
|
|
|
|
|
:key="data.title + index + data.unit" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="t">{{ data.title }}</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="b"> |
|
|
|
|
|
<p class="lside"> |
|
|
|
|
|
<span class="resultA">{{ data.resultA }}</span> |
|
|
|
|
|
<span class="unit">{{ data.unit }}</span> |
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
<p class="rside"> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="data.resultB > 0" |
|
|
|
|
|
class="r-img" |
|
|
|
|
|
src="/img/indexIcon/indexCardUp.png" |
|
|
|
|
|
alt="" |
|
|
|
|
|
/> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="data.resultB < 0" |
|
|
|
|
|
class="r-img" |
|
|
|
|
|
src="/img/indexIcon/indexCardDown.png" |
|
|
|
|
|
alt="" |
|
|
|
|
|
/> |
|
|
|
|
|
<span :class="{ up: data.resultB > 0 }" v-if="data.resultB > 0" |
|
|
|
|
|
>+{{ data.resultB }}</span |
|
|
|
|
|
> |
|
|
|
|
|
<span |
|
|
|
|
|
:class="{ down: data.resultB < 0 }" |
|
|
|
|
|
v-if="data.resultB < 0" |
|
|
|
|
|
>{{ data.resultB }}</span |
|
|
|
|
|
> |
|
|
|
|
|
<!-- <span v-if="data.resultB == 0">{{ data.resultB }}</span> --> |
|
|
|
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="body-box"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="body-box-item" |
|
|
|
|
|
v-for="(data, index) in rankingEchartsBarList" |
|
|
|
|
|
:key="data.params + index" |
|
|
|
|
|
> |
|
|
|
|
|
<titles :title="data.title"></titles> |
|
|
|
|
|
<div class="echarts" :id="data.params"></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
<el-dialog |
|
|
<el-dialog |
|
|
class="dialogtips" |
|
|
class="dialogtips" |
|
@@ -360,7 +357,7 @@ |
|
|
> |
|
|
> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
v-for="(data, index) in tableNameList" |
|
|
v-for="(data, index) in tableNameList" |
|
|
:key="index" |
|
|
|
|
|
|
|
|
:key="data.showParams + index" |
|
|
:property="data.showParams" |
|
|
:property="data.showParams" |
|
|
:label="data.showTitle" |
|
|
:label="data.showTitle" |
|
|
></el-table-column> |
|
|
></el-table-column> |
|
@@ -386,7 +383,6 @@ import titles from "./common/title.vue"; |
|
|
import * as dialogConstList from "./index"; |
|
|
import * as dialogConstList from "./index"; |
|
|
import { mapGetters } from "vuex"; |
|
|
import { mapGetters } from "vuex"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
components: { titles }, |
|
|
components: { titles }, |
|
|
data() { |
|
|
data() { |
|
@@ -466,11 +462,10 @@ export default { |
|
|
return name == this.headIndex; |
|
|
return name == this.headIndex; |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
created() { |
|
|
created() { |
|
|
this.checkAuthority() |
|
|
|
|
|
|
|
|
this.checkAuthority(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
mounted() { |
|
|
mounted() { |
|
@@ -480,23 +475,26 @@ export default { |
|
|
methods: { |
|
|
methods: { |
|
|
// 检测权限 |
|
|
// 检测权限 |
|
|
checkAuthority() { |
|
|
checkAuthority() { |
|
|
this.headList.forEach(item => { |
|
|
|
|
|
|
|
|
this.headList.forEach((item) => { |
|
|
if (this.permissions[item.methods]) { |
|
|
if (this.permissions[item.methods]) { |
|
|
item.show = true |
|
|
|
|
|
|
|
|
item.show = true; |
|
|
} else { |
|
|
} else { |
|
|
item.show = false |
|
|
|
|
|
|
|
|
item.show = false; |
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
|
|
|
}); |
|
|
let hIndex = sessionStorage.getItem("BIHeadIndex") || "实时总览"; |
|
|
let hIndex = sessionStorage.getItem("BIHeadIndex") || "实时总览"; |
|
|
let obj = this.headList.find(item => item.title == hIndex) |
|
|
|
|
|
|
|
|
let obj = this.headList.find((item) => item.title == hIndex); |
|
|
if (obj.show) { |
|
|
if (obj.show) { |
|
|
this.selectNav(obj) |
|
|
|
|
|
|
|
|
this.selectNav(obj); |
|
|
} else { |
|
|
} else { |
|
|
let obj1 = this.headList.find(item => item.show === true) |
|
|
|
|
|
this.selectNav(obj1) |
|
|
|
|
|
|
|
|
let obj1 = this.headList.find((item) => item.show === true); |
|
|
|
|
|
this.selectNav(obj1); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 清除数据 |
|
|
|
|
|
clearData() {}, |
|
|
|
|
|
|
|
|
// 初始化页面 |
|
|
// 初始化页面 |
|
|
initPage() { |
|
|
initPage() { |
|
|
this.biGetOrgCodeList(); |
|
|
this.biGetOrgCodeList(); |
|
@@ -514,7 +512,9 @@ export default { |
|
|
// 案场排名 |
|
|
// 案场排名 |
|
|
initCaseRanking() { |
|
|
initCaseRanking() { |
|
|
this.biTopStatisticData(); |
|
|
this.biTopStatisticData(); |
|
|
this.biRankingData(); |
|
|
|
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
this.biRankingData(); |
|
|
|
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 案场排名顶部对比数据 |
|
|
// 案场排名顶部对比数据 |
|
@@ -549,31 +549,61 @@ export default { |
|
|
this.$api.http.biRankingData(params).then((res) => { |
|
|
this.$api.http.biRankingData(params).then((res) => { |
|
|
if (res.code == 10000) { |
|
|
if (res.code == 10000) { |
|
|
this.rankingEchartsBarList.forEach((ob) => { |
|
|
this.rankingEchartsBarList.forEach((ob) => { |
|
|
let xAxis = res.data[ob.params].data.map((item) => { |
|
|
|
|
|
|
|
|
let object = res.data[ob.params]; |
|
|
|
|
|
console.log(object, ob.params); |
|
|
|
|
|
let xAxis = object.data.map((item) => { |
|
|
return item.name; |
|
|
return item.name; |
|
|
}); |
|
|
}); |
|
|
let avgList = []; |
|
|
let avgList = []; |
|
|
|
|
|
let yAxis = {}; |
|
|
if (this.companyValue) { |
|
|
if (this.companyValue) { |
|
|
avgList.push({ |
|
|
avgList.push({ |
|
|
yAxis: res.data[ob.params].companyAvg, |
|
|
|
|
|
|
|
|
yAxis: object.companyAvg, |
|
|
name: "集团平均", |
|
|
name: "集团平均", |
|
|
}); |
|
|
}); |
|
|
|
|
|
try { |
|
|
|
|
|
if ( |
|
|
|
|
|
object.data[this.orderBy == 1 ? 0 : object.data.length - 1] |
|
|
|
|
|
.value < object.companyAvg |
|
|
|
|
|
) { |
|
|
|
|
|
yAxis.max = object.companyAvg; |
|
|
|
|
|
} |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
console.log(e); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
avgList.push({ |
|
|
avgList.push({ |
|
|
yAxis: res.data[ob.params].allAvg, |
|
|
|
|
|
|
|
|
yAxis: object.allAvg, |
|
|
name: "行业平均", |
|
|
name: "行业平均", |
|
|
}); |
|
|
}); |
|
|
|
|
|
try { |
|
|
|
|
|
if ( |
|
|
|
|
|
object.data[this.orderBy == 1 ? 0 : object.data.length - 1] |
|
|
|
|
|
.value < object.allAvg |
|
|
|
|
|
) { |
|
|
|
|
|
yAxis.max = object.allAvg; |
|
|
|
|
|
} |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
console.log(e); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
if (ob.unit == "%") { |
|
|
|
|
|
yAxis = { |
|
|
|
|
|
max: 100, |
|
|
|
|
|
}; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
this.creatBar({ |
|
|
this.creatBar({ |
|
|
id: ob.params, |
|
|
id: ob.params, |
|
|
xAxis: xAxis, |
|
|
xAxis: xAxis, |
|
|
|
|
|
yAxis: yAxis, |
|
|
series: [ |
|
|
series: [ |
|
|
{ |
|
|
{ |
|
|
type: "bar", |
|
|
type: "bar", |
|
|
barMaxWidth: "10%", |
|
|
|
|
|
|
|
|
barMaxWidth: "20%", |
|
|
name: ob.title, |
|
|
name: ob.title, |
|
|
data: res.data[ob.params].data || [], |
|
|
|
|
|
|
|
|
data: object.data || [], |
|
|
itemStyle: { |
|
|
itemStyle: { |
|
|
normal: { |
|
|
normal: { |
|
|
//柱体的颜色 |
|
|
//柱体的颜色 |
|
@@ -1055,7 +1085,7 @@ export default { |
|
|
radius: ["45%", "60%"], |
|
|
radius: ["45%", "60%"], |
|
|
labelLine: { |
|
|
labelLine: { |
|
|
length: 5, |
|
|
length: 5, |
|
|
showAbove: true |
|
|
|
|
|
|
|
|
showAbove: true, |
|
|
}, |
|
|
}, |
|
|
minAngle: 5, |
|
|
minAngle: 5, |
|
|
avoidLabelOverlap: true, |
|
|
avoidLabelOverlap: true, |
|
@@ -1113,7 +1143,7 @@ export default { |
|
|
series: [ |
|
|
series: [ |
|
|
{ |
|
|
{ |
|
|
type: "bar", |
|
|
type: "bar", |
|
|
barMaxWidth: "10%", |
|
|
|
|
|
|
|
|
barMaxWidth: "20%", |
|
|
name: name, |
|
|
name: name, |
|
|
data: this[params], |
|
|
data: this[params], |
|
|
itemStyle: { |
|
|
itemStyle: { |
|
@@ -1175,7 +1205,7 @@ export default { |
|
|
series: [ |
|
|
series: [ |
|
|
{ |
|
|
{ |
|
|
type: "bar", |
|
|
type: "bar", |
|
|
barMaxWidth: "10%", |
|
|
|
|
|
|
|
|
barMaxWidth: "20%", |
|
|
name: list.title, |
|
|
name: list.title, |
|
|
data: this[list.params], |
|
|
data: this[list.params], |
|
|
itemStyle: { |
|
|
itemStyle: { |
|
@@ -1224,7 +1254,7 @@ export default { |
|
|
series: [ |
|
|
series: [ |
|
|
{ |
|
|
{ |
|
|
type: "bar", |
|
|
type: "bar", |
|
|
barMaxWidth: "10%", |
|
|
|
|
|
|
|
|
barMaxWidth: "20%", |
|
|
name: list.title, |
|
|
name: list.title, |
|
|
data: this[list.params1], |
|
|
data: this[list.params1], |
|
|
itemStyle: { |
|
|
itemStyle: { |
|
@@ -1273,6 +1303,7 @@ export default { |
|
|
|
|
|
|
|
|
// 生成柱状图 |
|
|
// 生成柱状图 |
|
|
creatBar(obj) { |
|
|
creatBar(obj) { |
|
|
|
|
|
console.log(obj, obj.id); |
|
|
// 基于准备好的dom,初始化echarts实例 |
|
|
// 基于准备好的dom,初始化echarts实例 |
|
|
let myChart = echarts.init(document.getElementById(obj.id)); |
|
|
let myChart = echarts.init(document.getElementById(obj.id)); |
|
|
myChart.clear(); |
|
|
myChart.clear(); |
|
@@ -1318,8 +1349,8 @@ export default { |
|
|
], |
|
|
], |
|
|
yAxis: [ |
|
|
yAxis: [ |
|
|
{ |
|
|
{ |
|
|
|
|
|
...obj.yAxis, |
|
|
type: "value", |
|
|
type: "value", |
|
|
|
|
|
|
|
|
nameTextStyle: { |
|
|
nameTextStyle: { |
|
|
color: "#fff", |
|
|
color: "#fff", |
|
|
fontSize: 12, |
|
|
fontSize: 12, |
|
@@ -1579,7 +1610,6 @@ export default { |
|
|
|
|
|
|
|
|
.search { |
|
|
.search { |
|
|
margin: 0 0 0 40px; |
|
|
margin: 0 0 0 40px; |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.text { |
|
|
.text { |
|
@@ -1872,7 +1902,7 @@ export default { |
|
|
padding: 0 0 30px 0; |
|
|
padding: 0 0 30px 0; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
|
|
|
|
|
|
.head-box { |
|
|
|
|
|
|
|
|
.head-boxs { |
|
|
padding: 0 16px; |
|
|
padding: 0 16px; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
height: 114px; |
|
|
height: 114px; |
|
@@ -1880,7 +1910,7 @@ export default { |
|
|
grid-template-columns: repeat(8, 1fr); |
|
|
grid-template-columns: repeat(8, 1fr); |
|
|
grid-column-gap: 16px; |
|
|
grid-column-gap: 16px; |
|
|
|
|
|
|
|
|
.head-box-item { |
|
|
|
|
|
|
|
|
.head-box-items { |
|
|
padding: 24px 28px; |
|
|
padding: 24px 28px; |
|
|
background: url("/img/bidata/itemBg.png") no-repeat; |
|
|
background: url("/img/bidata/itemBg.png") no-repeat; |
|
|
background-size: 222px; |
|
|
background-size: 222px; |
|
@@ -2118,7 +2148,7 @@ export default { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/.search .el-button--primary { |
|
|
/deep/.search .el-button--primary { |
|
|
background-color: #2ED1EE !important; |
|
|
|
|
|
|
|
|
background-color: #2ed1ee !important; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
<style> |
|
|
<style> |
|
|