Newer
Older
CloudBrainNew / src / views / wisdomIPass / index.vue
wangxitong on 29 Apr 2021 11 KB 0429 submit
<template>
  <panel-container>
    <modular-layout type="roundCorner">
      <panel-title-1>产业经济</panel-title-1>
    <div class="Modular_main">
      <div>
        <vue-scroll>
          <div class="row">
            <div class="col-35">
              <TitleThree title="用户注册数" />
              <div class="module-corner Modular_left">
                <EarthViews :data="userNum" height=".92rem" />
                <Corner2 />
              </div>
            </div>
            <div class="col-30">
              <TitleThree title="公共资源接入数" />
              <div class="Modular_left public_resource">
                <DataList :data="public_resource" :title="['类别','数量']" />
              </div>

            </div>
            <div class="col-35">
              <TitleThree title="在线用户数" />
              <div id="onlineUser_box" class="Modular_right">
                <EchartBar1Color
                  :id="onlineUser.id"
                  :width="onlineUser.width"
                  :height="onlineUser.height"
                  :xAxisData="onlineUser.xAxisData"
                  :seriesData="onlineUser.seriesData"
                />
              </div>
            </div>
          </div>
          <div class="row">
            <div class="col-30">
              <TitleThree title="缴费" />
              <div class="Modular_left pay">
                <DataList :data="pay" :title="['类别','金额']" />
              </div>
            </div>
            <div class="col-35">
              <TitleThree title="信息发布" />
              <div class="Modular_left">
                <div class="module-corner">
                  <EarthViews :data="infoIssue" height=".92rem" />
                  <Corner2 />
                </div>
              </div>
            </div>
            <div class="col-35">
              <TitleThree title="交易量" />
              <div id="businessAmount_box" class="Modular_right">
                <EchartBar1Color
                  :id="businessAmount.id"
                  :width="businessAmount.width"
                  :height="businessAmount.height"
                  :xAxisData="businessAmount.xAxisData"
                  :seriesData="businessAmount.seriesData"
                />
              </div>
            </div>
          </div>
          <div class="row">
            <div class="col-50">
              <TitleThree title="资源订单数" />
              <div class=" Modular_left">
                <div id="echart-resourceOrder-box">
                  <EchartLine
                    :id="resourceOrder.id"
                    :width="resourceOrder.width"
                    :height="resourceOrder.height"
                    :unit="resourceOrder.unit"
                    :legend="resourceOrder.legend"
                    :xAxisData="resourceOrder.xAxisData"
                    :yAxisData="resourceOrder.yAxisData"
                  />
                </div>
              </div>
              <!-- <TitleThree title="用户活跃度" />
              <div class="Modular_left">
                <UserActive />
              </div> -->
            </div>
            <div class="col-50">
              <TitleThree title="用户活跃度" />
              <div class="Modular_left Modular_right">
                <div id="userActive_box">
                  <EchartBar1
                    :id="userActive.id"
                    :width="userActive.width"
                    :height="userActive.height"
                    :xAxisData="userActive.xAxisData"
                    :seriesData="userActive.seriesData"
                  />
                </div>
              </div>
            </div>
          </div>
        </vue-scroll>
      </div>
    </div>
    </modular-layout>
  </panel-container>
</template>

<script>
import EarthViews from '@/components/EarthViews'
import Corner2 from '@/components/Corner2'
import DataList from '@/components/DataList'
import Legend from '@/components/echart/Legend'
import LitterTitle from '@/components/title/LitterTitle'
import UserActive from './components/UserActive'
import EchartLine from '@/components/echart/EchartLine'
import EchartBar1Color from '@/components/echart/EchartBar1Color'
import EchartBar1 from '@/components/echart/EchartBar1'
export default {
  components: {
    EarthViews,
    Corner2,
    DataList,
    Legend,
    LitterTitle,
    UserActive,
    EchartLine,
    EchartBar1Color,
    EchartBar1
  },
  data () {
    return {
      userNum: [],
      // 公共资源接入数
      public_resource: [],
      // 在线用户数
      onlineUser: {
        id: 'onlineUser_id',
        width: 0,
        height: 0,
        xAxisData: [],
        seriesData: []
      },
      // 资源订单数
      resourceOrder: {
        id: 'echart-resourceOrder',
        width: 0,
        height: 0,
        unit: '笔',
        xAxisData: [],
        yAxisData: [
          {name: '笔数', data: [], color: '62,162,255'}
        ]
      },
      // 缴费
      pay: [],
      // 信息发布
      infoIssue: [],
      // 交易量
      businessAmount: {
        id: 'businessAmount_id',
        width: 0,
        height: 0,
        xAxisData: [],
        seriesData: []
      },
      // 用户活跃度
      userActive: {
        id: 'userActive',
        width: 0,
        height: 0,
        xAxisData: [],
        seriesData: []
      }
    }
  },
  mounted () {
    // 用户数
    this.getUserNum()
    // 公共资源接入数
    this.getPublicResource()
    // 在线用户数
    this.getOnlineUser()
    // 资源订单数
    this.getResourceOrder()
    // 缴费
    this.getPay()
    // 信息发布
    this.getInfoIssue()
    // 交易量
    this.getBusinessAmount()
    // 用户活跃度
    this.getUserActive()
  },
  methods: {
    // 用户数
    getUserNum () {
      // debugger
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1053'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        // debugger
        let arr = []
        let total = 0
        res.data.forEach((item, index) => {
          arr.push({name: item.LX + '数', num: item.SL})
          total += Number(item.SL)
        })
        arr.splice(1, 0, {name: '总用户数', num: total})
        this.userNum = [...arr]
      })
    },
    // 公共资源接入数
    getPublicResource () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1051'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        let arr = []
        res.data.forEach((item, index) => {
          arr.push({ name: item.LX, num: item.SL, unit: '(' + item.SLDW + ')'})
        })
        this.public_resource = arr
      })
    },
    // 在线用户数
    getOnlineUser () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1071'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        if (res.ret_code == 200) {
          let xAxisData = []
          let seriesData = []
          res.data.forEach(item => {
            xAxisData.push(item.RQ)
            seriesData.push(item.SL)
          })
          this.onlineUser.xAxisData = xAxisData
          this.onlineUser.seriesData = seriesData
          this.callEchart('onlineUser_box', this.onlineUser, 1.38)
        }
      })
    },
    // 资源订单数
    getResourceOrder () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1069'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        if (res.ret_code == 200) {
          let xAxisData = []
          let yAxisData = []
          res.data.forEach(item => {
            xAxisData.push(item.LX)
            yAxisData.push(item.SL)
          })
          this.resourceOrder.xAxisData = xAxisData
          this.resourceOrder.yAxisData[0].data = yAxisData
          setTimeout(() => {
            this.callEchart('echart-resourceOrder-box', this.resourceOrder, 2.1)
          }, 200)
        }
      })
    },
    // 缴费
    getPay () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1073'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        let arr = []
        res.data.forEach((item, index) => {
          arr.push({ name: item.LX, num: item.JE, unit: '(' + item.JEDW + ')'})
        })
        this.pay = arr
      })
    },
    // 信息发布
    getInfoIssue () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1068'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        let arr = []
        res.data.forEach((item, index) => {
          arr.push({name: item.LX, num: item.SL})
        })
        this.infoIssue = [...arr]
      })
    },
    // 交易量
    getBusinessAmount () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1072'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        if (res.ret_code == 200) {
          let xAxisData = []
          let seriesData = []
          res.data.forEach(item => {
            xAxisData.push(item.RQ)
            seriesData.push(item.SL)
          })
          this.businessAmount.xAxisData = xAxisData
          this.businessAmount.seriesData = seriesData
          this.callEchart('businessAmount_box', this.businessAmount, 1.39)
        }
      })
    },
    // 用户活跃度
    getUserActive () {
      let params = {
        appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6',
        id: '155',
        flag: '97',
        format: 'json',
        param_dsid: '1071'
      }
      this.request({
        url: '/platformbigdata/modelservlet',
        method: 'get',
        params
      }).then(res => {
        let xAxisData = []
        let seriesData = []
        res.data.forEach(item => {
          xAxisData.push(item.RQ)
          seriesData.push(item.SL)
        })
        this.userActive.xAxisData = xAxisData
        this.userActive.seriesData = seriesData
        this.callEchart('userActive_box', this.userActive, 1.95)
      })
    },
    callEchart (idBox, data, offset) {
      const _width = document.getElementById(idBox).clientWidth
      this.$set(data, 'width', _width)
      this.$set(data, 'height', _width / offset)
    }
  }
}

</script>

<style scoped>
.panel-container{
  width: 100%;
  height: 100%;
  overflow: auto;
}
/* 盒子 */
.row{
  width: 100%;
  overflow: hidden;
  margin: 0.07rem 0;
}
.row-flex{
  display:flex;
  justify-content:space-between;
}
.col-33{
  width: 33%;
  float: left;
}

.col-65{
  width: 65%;
  float: left;
}
.col-30{
  width: 30%;
  float: left;
}
.col-35{
  width: 35%;
  float: left;
}
.col-50{
  width: 50%;
  float: left;
}

</style>
<style>
/* 撑开 */
.page-IPass .public_resource .dataList{
  min-height: 1.02rem;
}
.page-IPass .pay .dataList{
  min-height: 1.02rem;
}
</style>