|  | @@ -1,282 +1,420 @@
 | 
											
												
													
														|  |  <template>
 |  |  <template>
 | 
											
												
													
														|  | -  <div class="dashboardPage">
 |  | 
 | 
											
												
													
														|  | -    <div class="top">
 |  | 
 | 
											
												
													
														|  | -      <CardBox
 |  | 
 | 
											
												
													
														|  | -        v-for="item in cardList" :key="item.value" :card-data="item" :title="item.title"
 |  | 
 | 
											
												
													
														|  | -        :color="item.color"
 |  | 
 | 
											
												
													
														|  | -        :background-color="item.background" :today-color="item.todayColor" class="cardbox"
 |  | 
 | 
											
												
													
														|  | -      />
 |  | 
 | 
											
												
													
														|  | 
 |  | +  <div class="dashboardPage" ref="dashboardPageRef">
 | 
											
												
													
														|  | 
 |  | +    <!-- 建行交易统计 -->
 | 
											
												
													
														|  | 
 |  | +    <!-- <SectionBlock title="建行交易统计">
 | 
											
												
													
														|  | 
 |  | +      <div class="content-1">
 | 
											
												
													
														|  | 
 |  | +        <div class="statistics-wrapper">
 | 
											
												
													
														|  | 
 |  | +          <StatisticsPanel1 :icon="require('../../assets/images/dashboard/total-amount-received.png')" tip="团蜂收款总额(元)" :amount="0"></StatisticsPanel1>
 | 
											
												
													
														|  | 
 |  | +          <StatisticsPanel1
 | 
											
												
													
														|  | 
 |  | +            iconShadow="0px 7px 6px -6px rgba(1, 184, 221, 0.42),0px 6px 10px 0px rgba(1, 184, 221, 0.24)"
 | 
											
												
													
														|  | 
 |  | +            tip="商家交易总额(元)"
 | 
											
												
													
														|  | 
 |  | +            :icon="require('../../assets/images/dashboard/ttaom.png')"
 | 
											
												
													
														|  | 
 |  | +            :amount="0"
 | 
											
												
													
														|  | 
 |  | +          ></StatisticsPanel1>
 | 
											
												
													
														|  | 
 |  | +        </div>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        <SelectionPane style="height: 328px" title="交易商家明细" padding="0 32px">
 | 
											
												
													
														|  | 
 |  | +          <div style="display: flex; justify-content: space-between">
 | 
											
												
													
														|  | 
 |  | +            <RankingTable style="margin-right: 24px"></RankingTable>
 | 
											
												
													
														|  | 
 |  | +            <RankingTable></RankingTable>
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +        </SelectionPane>
 | 
											
												
													
														|  | 
 |  | +      </div>
 | 
											
												
													
														|  | 
 |  | +    </SectionBlock> -->
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <!-- 统计区 -->
 | 
											
												
													
														|  | 
 |  | +    <SectionBlock title="统计区" style="margin-top: 32px">
 | 
											
												
													
														|  | 
 |  | +      <div class="s-container" style="display: flex">
 | 
											
												
													
														|  | 
 |  | +        <SelectionPane
 | 
											
												
													
														|  | 
 |  | +          style="min-height: 278px"
 | 
											
												
													
														|  | 
 |  | +          :title="item.name"
 | 
											
												
													
														|  | 
 |  | +          padding="0 24px"
 | 
											
												
													
														|  | 
 |  | +          v-for="(item, index1) in statisticalArea"
 | 
											
												
													
														|  | 
 |  | +          :key="item.name"
 | 
											
												
													
														|  | 
 |  | +          :style="{
 | 
											
												
													
														|  | 
 |  | +            'margin-left': index1 === 1 ? '20px' : '',
 | 
											
												
													
														|  | 
 |  | +            'margin-right': index1 === 1 ? '20px' : ''
 | 
											
												
													
														|  | 
 |  | +          }"
 | 
											
												
													
														|  | 
 |  | +        >
 | 
											
												
													
														|  | 
 |  | +          <div class="statistical-wrapper">
 | 
											
												
													
														|  | 
 |  | +            <Counter
 | 
											
												
													
														|  | 
 |  | +              style="width: 50%"
 | 
											
												
													
														|  | 
 |  | +              :style="{
 | 
											
												
													
														|  | 
 |  | +                'margin-bottom': index <= 2 ? '24px' : 0,
 | 
											
												
													
														|  | 
 |  | +                'margin-top': index <= 2 ? '14px' : 0
 | 
											
												
													
														|  | 
 |  | +              }"
 | 
											
												
													
														|  | 
 |  | +              v-for="(item2, index) in item.list"
 | 
											
												
													
														|  | 
 |  | +              :key="item2.name"
 | 
											
												
													
														|  | 
 |  | +              :count="getData(item2.field)"
 | 
											
												
													
														|  | 
 |  | +              :tip="item2.name"
 | 
											
												
													
														|  | 
 |  | +              :trend="item2.trend"
 | 
											
												
													
														|  | 
 |  | +              :decimalPlaces="item2.decimalPlaces || 0"
 | 
											
												
													
														|  | 
 |  | +            ></Counter>
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +        </SelectionPane>
 | 
											
												
													
														|  | 
 |  | +      </div>
 | 
											
												
													
														|  | 
 |  | +    </SectionBlock>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <!-- 分析图 & 商品排名 -->
 | 
											
												
													
														|  | 
 |  | +    <div style="margin-top: 32px; display: flex">
 | 
											
												
													
														|  | 
 |  | +      <SectionBlock title="分析图" style="flex: 3; margin-right: 24px; flex-shrink: 0">
 | 
											
												
													
														|  | 
 |  | +        <SelectionPane style="height: 360px" padding="0 24px">
 | 
											
												
													
														|  | 
 |  | +          <el-tabs v-model="activeName" @tab-click="handleChangeTabPane">
 | 
											
												
													
														|  | 
 |  | +            <el-tab-pane label="交易额" name="transactionAmountRef">
 | 
											
												
													
														|  | 
 |  | +              <DiagramsChart chartTitle="交易总额(万元)" ref="transactionAmountRef" :statisticalData="diagramsLeftData.transactionAmount"></DiagramsChart>
 | 
											
												
													
														|  | 
 |  | +            </el-tab-pane>
 | 
											
												
													
														|  | 
 |  | +            <el-tab-pane label="订单量" name="orderQuantityRef">
 | 
											
												
													
														|  | 
 |  | +              <DiagramsChart chartTitle="订单量(单)" ref="orderQuantityRef" :statisticalData="diagramsLeftData.orderQuantity"></DiagramsChart>
 | 
											
												
													
														|  | 
 |  | +            </el-tab-pane>
 | 
											
												
													
														|  | 
 |  | +            <el-tab-pane label="会员量" name="memberQuantityRef">
 | 
											
												
													
														|  | 
 |  | +              <DiagramsChart chartTitle="会员量(个)" ref="memberQuantityRef" :statisticalData="diagramsLeftData.memberQuantity"></DiagramsChart>
 | 
											
												
													
														|  | 
 |  | +            </el-tab-pane>
 | 
											
												
													
														|  | 
 |  | +          </el-tabs>
 | 
											
												
													
														|  | 
 |  | +        </SelectionPane>
 | 
											
												
													
														|  | 
 |  | +      </SectionBlock>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      <SectionBlock title="商品排名" style="flex: 2; flex-shrink: 0">
 | 
											
												
													
														|  | 
 |  | +        <SelectionPane style="height: 360px" padding="0 24px">
 | 
											
												
													
														|  | 
 |  | +          <el-tabs v-model="activeName2" @tab-click="handleChangeTabPane1">
 | 
											
												
													
														|  | 
 |  | +            <el-tab-pane label="社区" name="community">
 | 
											
												
													
														|  | 
 |  | +              <div class="btns-container">
 | 
											
												
													
														|  | 
 |  | +                <button @click="rankingData.community.activeName = 'transactionVolume'" :class="{ active: rankingData.community.activeName === 'transactionVolume' }">商品交易量</button>
 | 
											
												
													
														|  | 
 |  | +                <button @click="rankingData.community.activeName = 'aTurnover'" :class="{ active: rankingData.community.activeName === 'aTurnover' }">交易金额</button>
 | 
											
												
													
														|  | 
 |  | +              </div>
 | 
											
												
													
														|  | 
 |  | +              <GoodsRanking
 | 
											
												
													
														|  | 
 |  | +                ref="community"
 | 
											
												
													
														|  | 
 |  | +                :animate="activeName2 === 'community'"
 | 
											
												
													
														|  | 
 |  | +                :rankingData="communityRankData"
 | 
											
												
													
														|  | 
 |  | +                :valueAlias="rankingData.community.activeName === 'transactionVolume' ? 'productTransactionTotal' : 'productTransactionAmount'"
 | 
											
												
													
														|  | 
 |  | +              ></GoodsRanking>
 | 
											
												
													
														|  | 
 |  | +            </el-tab-pane>
 | 
											
												
													
														|  | 
 |  | +            <el-tab-pane label="商圈" name="businessDistrict">
 | 
											
												
													
														|  | 
 |  | +              <div class="btns-container">
 | 
											
												
													
														|  | 
 |  | +                <button @click="rankingData.businessDistrict.activeName = 'transactionVolume'" :class="{ active: rankingData.businessDistrict.activeName === 'transactionVolume' }">商品交易量</button>
 | 
											
												
													
														|  | 
 |  | +                <button @click="rankingData.businessDistrict.activeName = 'aTurnover'" :class="{ active: rankingData.businessDistrict.activeName === 'aTurnover' }">交易金额</button>
 | 
											
												
													
														|  | 
 |  | +              </div>
 | 
											
												
													
														|  | 
 |  | +              <GoodsRanking
 | 
											
												
													
														|  | 
 |  | +                ref="businessDistrict"
 | 
											
												
													
														|  | 
 |  | +                :animate="activeName2 === 'businessDistrict'"
 | 
											
												
													
														|  | 
 |  | +                :rankingData="businessDistrictRankData"
 | 
											
												
													
														|  | 
 |  | +                :valueAlias="rankingData.businessDistrict.activeName === 'transactionVolume' ? 'productTransactionTotal' : 'productTransactionAmount'"
 | 
											
												
													
														|  | 
 |  | +              ></GoodsRanking>
 | 
											
												
													
														|  | 
 |  | +            </el-tab-pane>
 | 
											
												
													
														|  | 
 |  | +            <el-tab-pane label="商城" name="shop">
 | 
											
												
													
														|  | 
 |  | +              <div class="btns-container">
 | 
											
												
													
														|  | 
 |  | +                <button @click="rankingData.shop.activeName = 'transactionVolume'" :class="{ active: rankingData.shop.activeName === 'transactionVolume' }">商品交易量</button>
 | 
											
												
													
														|  | 
 |  | +                <button @click="rankingData.shop.activeName = 'aTurnover'" :class="{ active: rankingData.shop.activeName === 'aTurnover' }">交易金额</button>
 | 
											
												
													
														|  | 
 |  | +              </div>
 | 
											
												
													
														|  | 
 |  | +              <GoodsRanking
 | 
											
												
													
														|  | 
 |  | +                ref="shop"
 | 
											
												
													
														|  | 
 |  | +                :animate="activeName2 === 'shop'"
 | 
											
												
													
														|  | 
 |  | +                :rankingData="shopRankData"
 | 
											
												
													
														|  | 
 |  | +                :valueAlias="rankingData.shop.activeName === 'transactionVolume' ? 'productTransactionTotal' : 'productTransactionAmount'"
 | 
											
												
													
														|  | 
 |  | +              ></GoodsRanking>
 | 
											
												
													
														|  | 
 |  | +            </el-tab-pane>
 | 
											
												
													
														|  | 
 |  | +          </el-tabs>
 | 
											
												
													
														|  | 
 |  | +        </SelectionPane>
 | 
											
												
													
														|  | 
 |  | +      </SectionBlock>
 | 
											
												
													
														|  |      </div>
 |  |      </div>
 | 
											
												
													
														|  | -    <div class="chartContainer">
 |  | 
 | 
											
												
													
														|  | -      <h2>当日订单金额</h2>
 |  | 
 | 
											
												
													
														|  | -      <div ref="chartMoney" class="chartMoney"></div>
 |  | 
 | 
											
												
													
														|  | -      <h2>数据统计</h2>
 |  | 
 | 
											
												
													
														|  | -      <div class="chartCard">
 |  | 
 | 
											
												
													
														|  | -        <div class="dailyCard">
 |  | 
 | 
											
												
													
														|  | -          <div class="cardContainer">
 |  | 
 | 
											
												
													
														|  | -            <MiniCard :title="'当日订单数'" :precent="'日同比'" :nums="orderData.dayNum" :precent-data="orderData.dayPrecent" />
 |  | 
 | 
											
												
													
														|  | -            <MiniCard
 |  | 
 | 
											
												
													
														|  | -              :title="'当月订单数'" :precent="'月同比'" :nums="orderData.mounthNum"
 |  | 
 | 
											
												
													
														|  | -              :precent-data="orderData.mounthPrecent"
 |  | 
 | 
											
												
													
														|  | -            />
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    <!-- 网点统计 -->
 | 
											
												
													
														|  | 
 |  | +    <!-- 统计区 -->
 | 
											
												
													
														|  | 
 |  | +    <SectionBlock title="网点统计" style="margin-top: 32px">
 | 
											
												
													
														|  | 
 |  | +      <div class="total-site">
 | 
											
												
													
														|  | 
 |  | +        <div class="left-wrapper">
 | 
											
												
													
														|  | 
 |  | +          <div class="total-partner">
 | 
											
												
													
														|  | 
 |  | +            <el-select v-model="selects.sites">
 | 
											
												
													
														|  | 
 |  | +              <el-option label="全国" :value="1"></el-option>
 | 
											
												
													
														|  | 
 |  | +            </el-select>
 | 
											
												
													
														|  | 
 |  | +            <div class="wrapper">
 | 
											
												
													
														|  | 
 |  | +              <Counter style="flex: 1" :count="branchStatisticsData[item.field] || 0" :tip="item.name" :trend="item.trend" v-for="item in partnerTotalConfig" :key="item.name"></Counter>
 | 
											
												
													
														|  | 
 |  | +            </div>
 | 
											
												
													
														|  |            </div>
 |  |            </div>
 | 
											
												
													
														|  | -          <div ref="orderTotal" class="chart"></div>
 |  | 
 | 
											
												
													
														|  | -        </div>
 |  | 
 | 
											
												
													
														|  | -        <div class="dailyCard">
 |  | 
 | 
											
												
													
														|  | -          <div class="cardContainer">
 |  | 
 | 
											
												
													
														|  | -            <MiniCard :title="'当日支付人数'" :precent="'日同比'" :nums="payData.dayNum" :precent-data="payData.dayPrecent" />
 |  | 
 | 
											
												
													
														|  | -            <MiniCard
 |  | 
 | 
											
												
													
														|  | -              :title="'当月支付人数'" :precent="'月同比'" :nums="payData.mounthNum"
 |  | 
 | 
											
												
													
														|  | -              :precent-data="payData.mounthPrecent"
 |  | 
 | 
											
												
													
														|  | -            />
 |  | 
 | 
											
												
													
														|  | 
 |  | +          <div class="total-shop">
 | 
											
												
													
														|  | 
 |  | +            <TotalShopChartVue ref="totalShopChartVueRef" :siteData="allData.dotStatistics"></TotalShopChartVue>
 | 
											
												
													
														|  |            </div>
 |  |            </div>
 | 
											
												
													
														|  | -          <div ref="orderPeople" class="chart"></div>
 |  | 
 | 
											
												
													
														|  | 
 |  | +        </div>
 | 
											
												
													
														|  | 
 |  | +        <div class="right-wrapper">
 | 
											
												
													
														|  | 
 |  | +          <NetworkDistribution :sites-data="allData.nationalMapList || []" ref="networkDistributionRef"></NetworkDistribution>
 | 
											
												
													
														|  |          </div>
 |  |          </div>
 | 
											
												
													
														|  |        </div>
 |  |        </div>
 | 
											
												
													
														|  | -    </div>
 |  | 
 | 
											
												
													
														|  | 
 |  | +    </SectionBlock>
 | 
											
												
													
														|  |    </div>
 |  |    </div>
 | 
											
												
													
														|  |  </template>
 |  |  </template>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <script>
 |  |  <script>
 | 
											
												
													
														|  | -import CardBox from '@/views/dashboard/components/HomeCard.vue'
 |  | 
 | 
											
												
													
														|  | -import MiniCard from '@/views/dashboard/components/miniCard.vue'
 |  | 
 | 
											
												
													
														|  | -import {
 |  | 
 | 
											
												
													
														|  | -  homeGetChartData,
 |  | 
 | 
											
												
													
														|  | -  homeGetFormData
 |  | 
 | 
											
												
													
														|  | -} from '@/api/home.js'
 |  | 
 | 
											
												
													
														|  | -function ChartObj(ref, title) {
 |  | 
 | 
											
												
													
														|  | -  this.name = ref
 |  | 
 | 
											
												
													
														|  | -  this.chart = null
 |  | 
 | 
											
												
													
														|  | -  this.title = title
 |  | 
 | 
											
												
													
														|  | -  this.xAxis = []
 |  | 
 | 
											
												
													
														|  | -  this.yAxis = []
 |  | 
 | 
											
												
													
														|  | -  this.series = []
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -function CardData() {
 |  | 
 | 
											
												
													
														|  | -  this.dayNum = 0
 |  | 
 | 
											
												
													
														|  | -  this.dayPrecent = 0
 |  | 
 | 
											
												
													
														|  | -  this.mounthNum = 0
 |  | 
 | 
											
												
													
														|  | -  this.mounthPrecent = 0
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | 
 |  | +import * as _ from 'lodash'
 | 
											
												
													
														|  | 
 |  | +import { getHomeStatisticsData } from '@/api/home'
 | 
											
												
													
														|  | 
 |  | +import SectionBlock from './components/SectionBlock.vue'
 | 
											
												
													
														|  | 
 |  | +import StatisticsPanel1 from './components/StatisticsPanel1.vue'
 | 
											
												
													
														|  | 
 |  | +import RankingTable from './components/RankingTable.vue'
 | 
											
												
													
														|  | 
 |  | +import SelectionPane from './components/SelectionPane.vue'
 | 
											
												
													
														|  | 
 |  | +import { statisticalArea, partnerTotalConfig } from './config'
 | 
											
												
													
														|  | 
 |  | +import Counter from './components/Counter.vue'
 | 
											
												
													
														|  | 
 |  | +import DiagramsChart from './components/DiagramsChart.vue'
 | 
											
												
													
														|  | 
 |  | +import GoodsRanking from './components/GoodsRanking.vue'
 | 
											
												
													
														|  | 
 |  | +import TotalShopChartVue from './components/TotalShopChart.vue'
 | 
											
												
													
														|  | 
 |  | +import NetworkDistribution from './components/NetworkDistribution.vue'
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  export default {
 |  |  export default {
 | 
											
												
													
														|  |    components: {
 |  |    components: {
 | 
											
												
													
														|  | -    CardBox,
 |  | 
 | 
											
												
													
														|  | -    MiniCard
 |  | 
 | 
											
												
													
														|  | 
 |  | +    SectionBlock,
 | 
											
												
													
														|  | 
 |  | +    StatisticsPanel1,
 | 
											
												
													
														|  | 
 |  | +    RankingTable,
 | 
											
												
													
														|  | 
 |  | +    SelectionPane,
 | 
											
												
													
														|  | 
 |  | +    Counter,
 | 
											
												
													
														|  | 
 |  | +    DiagramsChart,
 | 
											
												
													
														|  | 
 |  | +    GoodsRanking,
 | 
											
												
													
														|  | 
 |  | +    TotalShopChartVue,
 | 
											
												
													
														|  | 
 |  | +    NetworkDistribution
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    data() {
 |  |    data() {
 | 
											
												
													
														|  |      return {
 |  |      return {
 | 
											
												
													
														|  | -      cardList: [
 |  | 
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -          title: '新增用户',
 |  | 
 | 
											
												
													
														|  | -          color: '#1B55AF',
 |  | 
 | 
											
												
													
														|  | -          background: '#F4F7FB',
 |  | 
 | 
											
												
													
														|  | -          todayColor: '#C9D7EC',
 |  | 
 | 
											
												
													
														|  | -          nums: '',
 |  | 
 | 
											
												
													
														|  | -          precent: '',
 |  | 
 | 
											
												
													
														|  | -          lastNums: '',
 |  | 
 | 
											
												
													
														|  | -          value: 1
 |  | 
 | 
											
												
													
														|  | -        },
 |  | 
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -          title: '新增店铺',
 |  | 
 | 
											
												
													
														|  | -          color: '#F45F20',
 |  | 
 | 
											
												
													
														|  | -          background: '#FEF7F4',
 |  | 
 | 
											
												
													
														|  | -          todayColor: '#FCD9CA',
 |  | 
 | 
											
												
													
														|  | -          nums: '',
 |  | 
 | 
											
												
													
														|  | -          precent: '',
 |  | 
 | 
											
												
													
														|  | -          lastNums: '',
 |  | 
 | 
											
												
													
														|  | -          value: 2
 |  | 
 | 
											
												
													
														|  | 
 |  | +      statisticalArea: Object.freeze(statisticalArea),
 | 
											
												
													
														|  | 
 |  | +      partnerTotalConfig: Object.freeze(partnerTotalConfig),
 | 
											
												
													
														|  | 
 |  | +      activeName: 'transactionAmountRef',
 | 
											
												
													
														|  | 
 |  | +      activeName2: 'community',
 | 
											
												
													
														|  | 
 |  | +      allData: {},
 | 
											
												
													
														|  | 
 |  | +      branchStatisticsData: {}, // 网点统计表格数据
 | 
											
												
													
														|  | 
 |  | +      diagramsLeftData: {}, // 分析图左侧柱状图数据
 | 
											
												
													
														|  | 
 |  | +      rankingData: {
 | 
											
												
													
														|  | 
 |  | +        community: {
 | 
											
												
													
														|  | 
 |  | +          activeName: 'transactionVolume',
 | 
											
												
													
														|  | 
 |  | +          transactionVolume: [], // 交易量
 | 
											
												
													
														|  | 
 |  | +          aTurnover: [] // 交易额
 | 
											
												
													
														|  |          },
 |  |          },
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -          title: '访客',
 |  | 
 | 
											
												
													
														|  | -          color: '#427A0A',
 |  | 
 | 
											
												
													
														|  | -          background: '#F2F6EE',
 |  | 
 | 
											
												
													
														|  | -          todayColor: '#CFDDC0',
 |  | 
 | 
											
												
													
														|  | -          nums: '',
 |  | 
 | 
											
												
													
														|  | -          precent: '',
 |  | 
 | 
											
												
													
														|  | -          lastNums: '',
 |  | 
 | 
											
												
													
														|  | -          value: 3
 |  | 
 | 
											
												
													
														|  | 
 |  | +        shop: {
 | 
											
												
													
														|  | 
 |  | +          activeName: 'transactionVolume',
 | 
											
												
													
														|  | 
 |  | +          transactionVolume: [], // 交易量
 | 
											
												
													
														|  | 
 |  | +          aTurnover: [] // 交易额
 | 
											
												
													
														|  |          },
 |  |          },
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -          title: '浏览量',
 |  | 
 | 
											
												
													
														|  | -          color: '#623CE7',
 |  | 
 | 
											
												
													
														|  | -          background: '#F4F1FD',
 |  | 
 | 
											
												
													
														|  | -          todayColor: '#D7CDF9',
 |  | 
 | 
											
												
													
														|  | -          nums: '',
 |  | 
 | 
											
												
													
														|  | -          precent: '',
 |  | 
 | 
											
												
													
														|  | -          lastNums: '',
 |  | 
 | 
											
												
													
														|  | -          value: 4
 |  | 
 | 
											
												
													
														|  | 
 |  | +        businessDistrict: {
 | 
											
												
													
														|  | 
 |  | +          activeName: 'transactionVolume',
 | 
											
												
													
														|  | 
 |  | +          transactionVolume: [], // 交易量
 | 
											
												
													
														|  | 
 |  | +          aTurnover: [] // 交易额
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -      ],
 |  | 
 | 
											
												
													
														|  | -      chart: [
 |  | 
 | 
											
												
													
														|  | -        new ChartObj('chartMoney', '订单金额'),
 |  | 
 | 
											
												
													
														|  | -        new ChartObj('orderTotal', '订单数'),
 |  | 
 | 
											
												
													
														|  | -        new ChartObj('orderPeople', '订单支付人数')
 |  | 
 | 
											
												
													
														|  | -      ],
 |  | 
 | 
											
												
													
														|  | -      orderData: new CardData(),
 |  | 
 | 
											
												
													
														|  | -      payData: new CardData()
 |  | 
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      selects: { sites: 1 }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    created() {
 |  |    created() {
 | 
											
												
													
														|  | -    this.getFormData()
 |  | 
 | 
											
												
													
														|  | -    this.getChartData()
 |  | 
 | 
											
												
													
														|  | 
 |  | +    this.getHomeStatisticsData()
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    mounted() {
 |  |    mounted() {
 | 
											
												
													
														|  | -    this.chart.forEach((item) => {
 |  | 
 | 
											
												
													
														|  | -      this.initChart(item)
 |  | 
 | 
											
												
													
														|  | -    })
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const observer = new ResizeObserver(
 | 
											
												
													
														|  | 
 |  | +      _.debounce(() => {
 | 
											
												
													
														|  | 
 |  | +        this.$refs[this.activeName].resize()
 | 
											
												
													
														|  | 
 |  | +        this.$refs.networkDistributionRef.resize()
 | 
											
												
													
														|  | 
 |  | +        this.$refs.totalShopChartVueRef.resize()
 | 
											
												
													
														|  | 
 |  | +      }, 200)
 | 
											
												
													
														|  | 
 |  | +    )
 | 
											
												
													
														|  | 
 |  | +    observer.observe(this.$refs.dashboardPageRef)
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    methods: {
 |  |    methods: {
 | 
											
												
													
														|  | -    async getFormData() {
 |  | 
 | 
											
												
													
														|  | -      const res = await homeGetFormData()
 |  | 
 | 
											
												
													
														|  | -      this.cardList[0] = Object.assign(this.cardList[0], {
 |  | 
 | 
											
												
													
														|  | -        nums: res.data.todayNewUser,
 |  | 
 | 
											
												
													
														|  | -        precent: res.data.weekRelativeRatioNewUser,
 |  | 
 | 
											
												
													
														|  | -        lastNums: res.data.yesterdayNewUser
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -      this.cardList[1] = Object.assign(this.cardList[1], {
 |  | 
 | 
											
												
													
														|  | -        nums: res.data.todayShopCount,
 |  | 
 | 
											
												
													
														|  | -        precent: res.data.weekRelativeRatioShopCount,
 |  | 
 | 
											
												
													
														|  | -        lastNums: res.data.yesterdayShopCount
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -      this.cardList[2] = Object.assign(this.cardList[2], {
 |  | 
 | 
											
												
													
														|  | -        nums: res.data.todayVisitUser,
 |  | 
 | 
											
												
													
														|  | -        precent: res.data.weekRelativeRatioVisitUser,
 |  | 
 | 
											
												
													
														|  | -        lastNums: res.data.yesterdayVisitUser
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -      this.cardList[3] = Object.assign(this.cardList[3], {
 |  | 
 | 
											
												
													
														|  | -        nums: res.data.todayVisitCount,
 |  | 
 | 
											
												
													
														|  | -        precent: res.data.weekRelativeRatioVisitCount,
 |  | 
 | 
											
												
													
														|  | -        lastNums: res.data.yesterdayVisitCount
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -    async getChartData() {
 |  | 
 | 
											
												
													
														|  | -      const res = await homeGetChartData()
 |  | 
 | 
											
												
													
														|  | -      // 过去一个月订单金额列表
 |  | 
 | 
											
												
													
														|  | -      res.data.orderAmountList.forEach((item) => {
 |  | 
 | 
											
												
													
														|  | -        if (!item.statsDate.split) { return }
 |  | 
 | 
											
												
													
														|  | -        const xAxis = `${item.statsDate.split('-')[1]}.${item.statsDate.split('-')[2]}`
 |  | 
 | 
											
												
													
														|  | -        this.chart[0].xAxis.push(xAxis)
 |  | 
 | 
											
												
													
														|  | -        this.chart[0].series.push(item.amount)
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -      // 过去一个月订单量
 |  | 
 | 
											
												
													
														|  | -      res.data.orderCountList.forEach((item) => {
 |  | 
 | 
											
												
													
														|  | -        if (!item.statsDate.split) { return }
 |  | 
 | 
											
												
													
														|  | -        const xAxis = `${item.statsDate.split('-')[1]}.${item.statsDate.split('-')[2]}`
 |  | 
 | 
											
												
													
														|  | -        this.chart[1].xAxis.push(xAxis)
 |  | 
 | 
											
												
													
														|  | -        this.chart[1].series.push(item.totalCount)
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -      // 过去一个月支付人数
 |  | 
 | 
											
												
													
														|  | -      res.data.payUserCountList.forEach((item) => {
 |  | 
 | 
											
												
													
														|  | -        if (!item.statsDate.split) { return }
 |  | 
 | 
											
												
													
														|  | -        const xAxis = `${item.statsDate.split('-')[1]}.${item.statsDate.split('-')[2]}`
 |  | 
 | 
											
												
													
														|  | -        this.chart[2].xAxis.push(xAxis)
 |  | 
 | 
											
												
													
														|  | -        this.chart[2].series.push(item.totalCount)
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | -      this.orderData = {
 |  | 
 | 
											
												
													
														|  | -        dayNum: res.data.todayOrderCount || 0,
 |  | 
 | 
											
												
													
														|  | -        dayPrecent: res.data.dayToDayOrderCountRelativeRate || 0,
 |  | 
 | 
											
												
													
														|  | -        mounthNum: res.data.curMonthOrderCount || 0,
 |  | 
 | 
											
												
													
														|  | -        mounthPrecent: res.data.monthToMonthOrderCountRelativeRate || 0
 |  | 
 | 
											
												
													
														|  | -      }
 |  | 
 | 
											
												
													
														|  | -      this.payData = {
 |  | 
 | 
											
												
													
														|  | -        dayNum: res.data.todayPayUserCount || 0,
 |  | 
 | 
											
												
													
														|  | -        dayPrecent: res.data.dayToDayPayUserCountRelativeRate || 0,
 |  | 
 | 
											
												
													
														|  | -        mounthNum: res.data.curMonthPayUserCount || 0,
 |  | 
 | 
											
												
													
														|  | -        mounthPrecent: res.data.monthToMonthPayUserCountRelativeRate || 0
 |  | 
 | 
											
												
													
														|  | 
 |  | +    async getHomeStatisticsData() {
 | 
											
												
													
														|  | 
 |  | +      const res = await getHomeStatisticsData()
 | 
											
												
													
														|  | 
 |  | +      if (res.code == 200) {
 | 
											
												
													
														|  | 
 |  | +        this.allData = res.data
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        const { dotStatistics = {}, analysisChartStatistics = {}, goodsSortStatistics = {} } = this.allData
 | 
											
												
													
														|  | 
 |  | +        this.updateBranchStatisticsData(
 | 
											
												
													
														|  | 
 |  | +          dotStatistics.masterWorkerQuantity,
 | 
											
												
													
														|  | 
 |  | +          this.getData('memberStatistics.memberTotal'),
 | 
											
												
													
														|  | 
 |  | +          this.getData('memberStatistics.headquarterTotal'),
 | 
											
												
													
														|  | 
 |  | +          this.getData('memberStatistics.partnerTotal')
 | 
											
												
													
														|  | 
 |  | +        )
 | 
											
												
													
														|  | 
 |  | +        this.updateDiagramsLeftData(analysisChartStatistics)
 | 
											
												
													
														|  | 
 |  | +        this.updateRankingData(goodsSortStatistics)
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  | -      this.paintLineChart(this.chart[0])
 |  | 
 | 
											
												
													
														|  | -      this.paintLineChart(this.chart[1])
 |  | 
 | 
											
												
													
														|  | -      this.paintLineChart(this.chart[2])
 |  | 
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | -    initChart(chartObj) {
 |  | 
 | 
											
												
													
														|  | -      chartObj.chart = this.$echarts.init(this.$refs[chartObj.name])
 |  | 
 | 
											
												
													
														|  | -      chartObj.chart.setOption({
 |  | 
 | 
											
												
													
														|  | -        tooltip: {
 |  | 
 | 
											
												
													
														|  | -          trigger: 'item',
 |  | 
 | 
											
												
													
														|  | -          formatter: '{a} <br/>{b}: {c}',
 |  | 
 | 
											
												
													
														|  | -          axisPointer: {
 |  | 
 | 
											
												
													
														|  | -            type: 'cross'
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    getData(path) {
 | 
											
												
													
														|  | 
 |  | +      if (!path) return 0
 | 
											
												
													
														|  | 
 |  | +      const keys = path.split('.')
 | 
											
												
													
														|  | 
 |  | +      let result = this.allData
 | 
											
												
													
														|  | 
 |  | +      for (let key of keys) {
 | 
											
												
													
														|  | 
 |  | +        if (result == null || result == undefined) {
 | 
											
												
													
														|  | 
 |  | +          return 0
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | 
 |  | +        result = result[key]
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      return result == null || result == undefined ? 0 : result
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | -    paintLineChart(chartObj) {
 |  | 
 | 
											
												
													
														|  | -      chartObj.chart.setOption({
 |  | 
 | 
											
												
													
														|  | -        color: [ '#5470c6' ],
 |  | 
 | 
											
												
													
														|  | -        xAxis: {
 |  | 
 | 
											
												
													
														|  | -          type: 'category',
 |  | 
 | 
											
												
													
														|  | -          axis: 'auto',
 |  | 
 | 
											
												
													
														|  | -          data: chartObj.xAxis
 |  | 
 | 
											
												
													
														|  | -        },
 |  | 
 | 
											
												
													
														|  | -        yAxis: {
 |  | 
 | 
											
												
													
														|  | -          type: 'value',
 |  | 
 | 
											
												
													
														|  | -          axisPointer: {
 |  | 
 | 
											
												
													
														|  | -            snap: true
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  | -        },
 |  | 
 | 
											
												
													
														|  | -        series: [
 |  | 
 | 
											
												
													
														|  | -          {
 |  | 
 | 
											
												
													
														|  | -            name: chartObj.title,
 |  | 
 | 
											
												
													
														|  | -            data: chartObj.series,
 |  | 
 | 
											
												
													
														|  | -            type: 'line',
 |  | 
 | 
											
												
													
														|  | -            smooth: true // 是否平滑
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  | -        ]
 |  | 
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    handleChangeTabPane() {
 | 
											
												
													
														|  | 
 |  | +      this.$refs[this.activeName].resize()
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    handleChangeTabPane1() {
 | 
											
												
													
														|  | 
 |  | +      this.$refs[this.activeName2].startAnimate()
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    // 监听容器宽度变化
 | 
											
												
													
														|  | 
 |  | +    startWatchContainerSize() {},
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 设置网点统计表格数据
 | 
											
												
													
														|  | 
 |  | +     * @param {number} masterWorkerQuantity 师傅数量
 | 
											
												
													
														|  | 
 |  | +     * @param {number} memberTotal 会员总数
 | 
											
												
													
														|  | 
 |  | +     * @param {number} headquarterTotal 团长数量
 | 
											
												
													
														|  | 
 |  | +     * @param {number} partnerTotal 合伙人数量
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    updateBranchStatisticsData(masterWorkerQuantity = 0, memberTotal = 0, headquarterTotal = 0, partnerTotal = 0) {
 | 
											
												
													
														|  | 
 |  | +      this.branchStatisticsData.masterWorkerQuantity = masterWorkerQuantity
 | 
											
												
													
														|  | 
 |  | +      this.branchStatisticsData.memberTotal = memberTotal
 | 
											
												
													
														|  | 
 |  | +      this.branchStatisticsData.headquarterTotal = headquarterTotal
 | 
											
												
													
														|  | 
 |  | +      this.branchStatisticsData.partnerTotal = partnerTotal
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 更新分析图左侧数据,交易额/订单量/会员量
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    updateDiagramsLeftData(data) {
 | 
											
												
													
														|  | 
 |  | +      this.diagramsLeftData = data || {}
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 更新商品排名数据集
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    updateRankingData(data) {
 | 
											
												
													
														|  | 
 |  | +      this.rankingData.community.aTurnover = data.communityProductStatisticsAmountList
 | 
											
												
													
														|  | 
 |  | +      this.rankingData.community.transactionVolume = data.communityProductStatisticsTotalList
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      this.rankingData.shop.aTurnover = data.mallProductStatisticsAmountList
 | 
											
												
													
														|  | 
 |  | +      this.rankingData.shop.transactionVolume = data.mallProductStatisticsTotalList
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      this.rankingData.businessDistrict.aTurnover = data.businessDistrictProductStatisticsAmountList
 | 
											
												
													
														|  | 
 |  | +      this.rankingData.businessDistrict.transactionVolume = data.businessDistrictProductStatisticsTotalList
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  computed: {
 | 
											
												
													
														|  | 
 |  | +    communityRankData() {
 | 
											
												
													
														|  | 
 |  | +      return this.rankingData.community.activeName === 'transactionVolume' ? this.rankingData.community.transactionVolume : this.rankingData.community.aTurnover
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    shopRankData() {
 | 
											
												
													
														|  | 
 |  | +      return this.rankingData.shop.activeName === 'transactionVolume' ? this.rankingData.shop.transactionVolume : this.rankingData.shop.aTurnover
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    businessDistrictRankData() {
 | 
											
												
													
														|  | 
 |  | +      return this.rankingData.businessDistrict.activeName === 'transactionVolume' ? this.rankingData.businessDistrict.transactionVolume : this.rankingData.businessDistrict.aTurnover
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  destroyed(){
 | 
											
												
													
														|  | 
 |  | +    
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  </script>
 |  |  </script>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <style lang="scss" scoped>
 |  |  <style lang="scss" scoped>
 | 
											
												
													
														|  |  .dashboardPage {
 |  |  .dashboardPage {
 | 
											
												
													
														|  | -	width: 100%;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	.top {
 |  | 
 | 
											
												
													
														|  | -		padding: 28px 10px;
 |  | 
 | 
											
												
													
														|  | -		background-color: #FFF;
 |  | 
 | 
											
												
													
														|  | -		display: flex;
 |  | 
 | 
											
												
													
														|  | -		justify-content: space-between;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		.cardbox {
 |  | 
 | 
											
												
													
														|  | -			margin: 0 10px;
 |  | 
 | 
											
												
													
														|  | -			cursor: default;
 |  | 
 | 
											
												
													
														|  | -			flex: 1;
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	.chartContainer {
 |  | 
 | 
											
												
													
														|  | -		margin: 20px;
 |  | 
 | 
											
												
													
														|  | -		padding: 20px;
 |  | 
 | 
											
												
													
														|  | -		background-color: #FFF;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		h2 {
 |  | 
 | 
											
												
													
														|  | -			margin: 12px 0;
 |  | 
 | 
											
												
													
														|  | -			font-weight: bold;
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		.chartMoney {
 |  | 
 | 
											
												
													
														|  | -			width: 100%;
 |  | 
 | 
											
												
													
														|  | -			height: 400px;
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		.chartCard {
 |  | 
 | 
											
												
													
														|  | -			min-height: 300px;
 |  | 
 | 
											
												
													
														|  | -			display: flex;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -			.dailyCard {
 |  | 
 | 
											
												
													
														|  | -				flex: 1;
 |  | 
 | 
											
												
													
														|  | -				padding: 12px 20px;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -				.cardContainer {
 |  | 
 | 
											
												
													
														|  | -					display: flex;
 |  | 
 | 
											
												
													
														|  | -				}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -				.chart {
 |  | 
 | 
											
												
													
														|  | -					min-height: 300px;
 |  | 
 | 
											
												
													
														|  | -				}
 |  | 
 | 
											
												
													
														|  | -			}
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | 
 |  | +  width: 100%;
 | 
											
												
													
														|  | 
 |  | +  min-height: calc(100vh - 50px);
 | 
											
												
													
														|  | 
 |  | +  background-color: #f7f8fa;
 | 
											
												
													
														|  | 
 |  | +  padding: 16px 24px;
 | 
											
												
													
														|  | 
 |  | +  box-sizing: border-box;
 | 
											
												
													
														|  | 
 |  | +  overflow: scroll;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  .content-1 {
 | 
											
												
													
														|  | 
 |  | +    height: 328px;
 | 
											
												
													
														|  | 
 |  | +    display: flex;
 | 
											
												
													
														|  | 
 |  | +    align-items: center;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    .statistics-wrapper {
 | 
											
												
													
														|  | 
 |  | +      height: 328px;
 | 
											
												
													
														|  | 
 |  | +      display: flex;
 | 
											
												
													
														|  | 
 |  | +      flex-direction: column;
 | 
											
												
													
														|  | 
 |  | +      justify-content: space-between;
 | 
											
												
													
														|  | 
 |  | +      /* box-shadow: 0px 2px 6px 0px rgba(73, 78, 97, 0.05); */
 | 
											
												
													
														|  | 
 |  | +      border-radius: 8px;
 | 
											
												
													
														|  | 
 |  | +      margin-right: 24px;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    .ranking-table-wrapper {
 | 
											
												
													
														|  | 
 |  | +      flex: 1;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  .btns-container {
 | 
											
												
													
														|  | 
 |  | +    display: flex;
 | 
											
												
													
														|  | 
 |  | +    align-items: center;
 | 
											
												
													
														|  | 
 |  | +    margin-bottom: 5px;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    button {
 | 
											
												
													
														|  | 
 |  | +      padding: 6px 8px;
 | 
											
												
													
														|  | 
 |  | +      font-size: 14px;
 | 
											
												
													
														|  | 
 |  | +      border-radius: 4px;
 | 
											
												
													
														|  | 
 |  | +      background-color: #f7f8fa;
 | 
											
												
													
														|  | 
 |  | +      margin-right: 14px;
 | 
											
												
													
														|  | 
 |  | +      cursor: pointer;
 | 
											
												
													
														|  | 
 |  | +      transition: all 350ms;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      &:active {
 | 
											
												
													
														|  | 
 |  | +        opacity: 0.8;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      &.active {
 | 
											
												
													
														|  | 
 |  | +        color: #fff;
 | 
											
												
													
														|  | 
 |  | +        background-color: #495fff;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  .total-site {
 | 
											
												
													
														|  | 
 |  | +    display: flex;
 | 
											
												
													
														|  | 
 |  | +    align-items: center;
 | 
											
												
													
														|  | 
 |  | +    height: 496px;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    .left-wrapper {
 | 
											
												
													
														|  | 
 |  | +      flex: 1;
 | 
											
												
													
														|  | 
 |  | +      margin-right: 24px;
 | 
											
												
													
														|  | 
 |  | +      height: 496px;
 | 
											
												
													
														|  | 
 |  | +      display: flex;
 | 
											
												
													
														|  | 
 |  | +      flex-direction: column;
 | 
											
												
													
														|  | 
 |  | +      justify-content: space-between;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      .total-partner {
 | 
											
												
													
														|  | 
 |  | +        height: 184px;
 | 
											
												
													
														|  | 
 |  | +        width: 100%;
 | 
											
												
													
														|  | 
 |  | +        background-color: #fff;
 | 
											
												
													
														|  | 
 |  | +        box-shadow: 0px 2px 6px 0px rgba(73, 78, 97, 0.05);
 | 
											
												
													
														|  | 
 |  | +        border-radius: 8px;
 | 
											
												
													
														|  | 
 |  | +        padding: 24px 32px 32px 24px;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        .wrapper {
 | 
											
												
													
														|  | 
 |  | +          display: flex;
 | 
											
												
													
														|  | 
 |  | +          align-items: center;
 | 
											
												
													
														|  | 
 |  | +          margin-top: 24px;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      .total-shop {
 | 
											
												
													
														|  | 
 |  | +        height: 288px;
 | 
											
												
													
														|  | 
 |  | +        width: 100%;
 | 
											
												
													
														|  | 
 |  | +        background-color: #fff;
 | 
											
												
													
														|  | 
 |  | +        box-shadow: 0px 2px 6px 0px rgba(73, 78, 97, 0.05);
 | 
											
												
													
														|  | 
 |  | +        border-radius: 8px;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    .right-wrapper {
 | 
											
												
													
														|  | 
 |  | +      flex: 1;
 | 
											
												
													
														|  | 
 |  | +      height: 496px;
 | 
											
												
													
														|  | 
 |  | +      background-color: #fff;
 | 
											
												
													
														|  | 
 |  | +      box-shadow: 0px 2px 6px 0px rgba(73, 78, 97, 0.05);
 | 
											
												
													
														|  | 
 |  | +      border-radius: 8px;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  .s-container {
 | 
											
												
													
														|  | 
 |  | +    width: 100%;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    .statistical-wrapper {
 | 
											
												
													
														|  | 
 |  | +      display: flex;
 | 
											
												
													
														|  | 
 |  | +      align-items: center;
 | 
											
												
													
														|  | 
 |  | +      flex-wrap: wrap;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  </style>
 |  |  </style>
 |