parking_index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template xmlns:piechart="http://www.w3.org/1999/html">
  2. <div class="body-wrapper">
  3. <div style="display: flex; justify-content: space-between;">
  4. <div class="body-box" style="width: 43%;height:400px;border-radius: 5px;background-color: #f6f5f5;padding: 20px;color: #525252;">
  5. <h2>概览</h2>
  6. <div class="box-item" style="border: 2px dotted #a1a1a1;border-radius: 5px;padding: 20px 20px 40px 20px;margin-top: 15px">
  7. <h4 style="float: left">停车场总数</h4>
  8. <span style="float: right;color: red">{{viewData.totalParking}}</span>
  9. </div>
  10. <div class="box-item" style="border: 2px dotted #757575;border-radius: 5px;padding: 20px 20px 40px 20px;margin-top: 15px">
  11. <h4 style="float: left">今日停车记录数</h4>
  12. <span style="float: right;color: #fc6969">{{viewData.todayTotal}}</span>
  13. </div>
  14. <div class="box-item" style="border: 2px dotted #757575;border-radius: 5px;padding: 20px 20px 40px 20px;margin-top: 15px">
  15. <h4 style="float: left">今日实收总额</h4>
  16. <span style="float: right;color: #fc6969">{{viewData.todayInput}}</span>
  17. </div>
  18. <div class="box-item" style="border: 2px dotted #757575;border-radius: 5px;padding: 20px 20px 40px 20px;margin-top: 15px">
  19. <h4 style="float: left">日均时长泊位利用率</h4>
  20. <span style="float: right;color: #fc6969">{{viewData.dailyBerth}}</span>
  21. </div>
  22. </div>
  23. <div class="body-box" style="width: 48%;height:400px;border-radius: 5px;background-color: #f6f5f5;padding: 20px;color: #525252;">
  24. <h1>停车收入概览</h1>
  25. <piechart
  26. class="model-pie-body"
  27. id="chart1"
  28. :roseType="false"
  29. :radiusArr="['30%', '70%']"
  30. :colorArr="modelPieColor"
  31. :labelFormat="['{name|{b}}', '{sub|{d}%}', '{hr|}']"
  32. :dataset="modelData.list"
  33. :encode="{ itemName: 'name', value: 'value' }"
  34. />
  35. </div>
  36. </div>
  37. <div style="display: flex; justify-content: space-between;">
  38. <div class="body-box" style="width:98%;height:400px;border-radius: 5px;background-color: #f6f5f5;padding: 20px;margin-top: 20px;color: #525252;">
  39. <h1>停车收入概览</h1>
  40. <barchart
  41. class="side-chart"
  42. :autoStop="false"
  43. :colorArr="['#ffd201', '#00eacb', '#01b4ff', '#5d78ff']"
  44. legendIcon="react"
  45. :bottom="30"
  46. :xlabelFormat="xLabelFormat"
  47. :top="60"
  48. yAxisName="(个)"
  49. :tooltip="tooltipFormat"
  50. :dataset="bardata"
  51. :encode="[
  52. {x: 'month', y: 'hs', seriesName: '接入数量'}]"
  53. :labelSize="15"
  54. id="fxdqhszzt"
  55. />
  56. </div>
  57. </div>
  58. </div>
  59. </template>
  60. <script>
  61. import api from "@/api/audit.js";
  62. import piechart from "@/components/pieChart";
  63. import barchart from "@/components/barChart";
  64. export default {
  65. components: {
  66. piechart,
  67. barchart
  68. },
  69. data() {
  70. return {
  71. viewData:{
  72. totalParking:"0",
  73. todayTotal:"0",
  74. todayInput:"0",
  75. dailyBerth:"0"
  76. },
  77. modelPieColor: ["#4382f6", "#81f878", "#f2ff90", "#FF9800", "#9C27B0"],
  78. modelData: {
  79. list: [{name: '源汇区',value:'38.4'},{name:'郾城区',value:'26.4'}, {name:'召陵区',value:'35.2'}]
  80. },
  81. bardata: [{month:'源汇区',hs:'600'},{month:'郾城区',hs:'685'},{month:'召陵区',hs:'843'},],
  82. }
  83. },
  84. mounted() {
  85. },
  86. watch: {
  87. },
  88. methods: {
  89. tooltipFormat(params) {
  90. const type = params[0].seriesType;
  91. const data = params[0].data;
  92. // ${params[0].name || "--"}月:
  93. return `<div class="line-tooltip">
  94. <div>${params[0].seriesName}: ${
  95. params[0].data.hs || "--"}个</div>
  96. </div>`;
  97. },
  98. xLabelFormat(name) {
  99. const nameArr = []
  100. for (let i = 0; i < name.length; i += 7) {
  101. nameArr.push(name.substring(i, i + 7))
  102. }
  103. return nameArr.join('\n');
  104. },
  105. }
  106. }
  107. </script>
  108. <style lang="scss" scoped>
  109. .body-wrapper {
  110. padding: 20px;
  111. }
  112. </style>