bbb.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <template>
  2. <div class="left-charts">
  3. <div class="left-chart-item">
  4. <dv-charts class="item-chart" :option="option" />
  5. <div class="item-chart-word zongshu">用户总数</div>
  6. </div>
  7. <div class="left-chart-item">
  8. <dv-charts class="item-chart" :option="option1" />
  9. <div class="item-chart-word zaixianshu">绑定设备</div>
  10. </div>
  11. <div class="left-chart-item">
  12. <dv-charts class="item-chart" :option="option2" />
  13. <div class="item-chart-word lixianshu">绑定用户数</div>
  14. </div>
  15. <div class="left-chart-item">
  16. <dv-charts class="item-chart" :option="option3" />
  17. <div class="item-chart-word gaojingshu">设备活跃度</div>
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import LabelTag from "./LabelTag";
  23. import { count, alarm } from "@/api/system/datav";
  24. export default {
  25. name: "BottomCharts",
  26. props: {
  27. number: {
  28. type: Number,
  29. default: 0,
  30. },
  31. data:{
  32. type:Object,
  33. default:{},
  34. }
  35. },
  36. components: {
  37. LabelTag,
  38. },
  39. data() {
  40. return {
  41. // userTotal:0,
  42. option: {
  43. series: [
  44. {
  45. type: "gauge",
  46. startAngle: -Math.PI / 2,
  47. endAngle: Math.PI * 1.5,
  48. arcLineWidth: 10,
  49. data: [
  50. {
  51. name: "itemA",
  52. value: this.number,
  53. // gradient: ["#03c2fd", "#1ed3e5", "#2fded6"],
  54. gradient: ["#01dcdf"],
  55. },
  56. ],
  57. axisLabel: {
  58. show: false,
  59. },
  60. axisTick: {
  61. show: false,
  62. },
  63. pointer: {
  64. show: false,
  65. },
  66. dataItemStyle: {
  67. lineCap: "round",
  68. },
  69. details: {
  70. show: true,
  71. formatter: "{value}",
  72. style: {
  73. fill: "#1ed3e5",
  74. fontSize: 20,
  75. },
  76. },
  77. },
  78. ],
  79. },
  80. option1: {
  81. series: [
  82. {
  83. type: "gauge",
  84. startAngle: -Math.PI / 2,
  85. endAngle: Math.PI * 1.5,
  86. arcLineWidth: 10,
  87. data: [
  88. {
  89. name: "itemA",
  90. value: this.data.bindDevice,
  91. // gradient: ["#03c2fd", "#1ed3e5", "#2fded6"],
  92. gradient: ["#33faaa"],
  93. },
  94. ],
  95. axisLabel: {
  96. show: false,
  97. },
  98. axisTick: {
  99. show: false,
  100. },
  101. pointer: {
  102. show: false,
  103. },
  104. dataItemStyle: {
  105. lineCap: "round",
  106. },
  107. details: {
  108. show: true,
  109. formatter: "{value}",
  110. style: {
  111. fill: "#1ed3e5",
  112. fontSize: 20,
  113. },
  114. },
  115. },
  116. ],
  117. },
  118. option2: {
  119. series: [
  120. {
  121. type: "gauge",
  122. startAngle: -Math.PI / 2,
  123. endAngle: Math.PI * 1.5,
  124. arcLineWidth: 10,
  125. data: [
  126. {
  127. name: "itemA",
  128. value: this.data.bindUser,
  129. // gradient: ["#03c2fd", "#1ed3e5", "#2fded6"],
  130. gradient: ["#f7ac20"],
  131. },
  132. ],
  133. axisLabel: {
  134. show: false,
  135. },
  136. axisTick: {
  137. show: false,
  138. },
  139. pointer: {
  140. show: false,
  141. },
  142. dataItemStyle: {
  143. lineCap: "round",
  144. },
  145. details: {
  146. show: true,
  147. formatter: "{value}",
  148. style: {
  149. fill: "#1ed3e5",
  150. fontSize: 20,
  151. },
  152. },
  153. },
  154. ],
  155. },
  156. option3: {
  157. series: [
  158. {
  159. type: "gauge",
  160. startAngle: -Math.PI / 2,
  161. endAngle: Math.PI * 1.5,
  162. arcLineWidth: 10,
  163. data: [
  164. {
  165. name: "itemA",
  166. value: this.data.deviceOnline,
  167. // gradient: ["#03c2fd", "#1ed3e5", "#2fded6"],
  168. gradient: ["#f93496", "#f61967","#f2053e"],
  169. },
  170. ],
  171. axisLabel: {
  172. show: false,
  173. },
  174. axisTick: {
  175. show: false,
  176. },
  177. pointer: {
  178. show: false,
  179. },
  180. dataItemStyle: {
  181. lineCap: "round",
  182. },
  183. details: {
  184. show: true,
  185. formatter: "{value}",
  186. style: {
  187. fill: "#1ed3e5",
  188. fontSize: 20,
  189. },
  190. },
  191. animationFrame: 10,
  192. },
  193. ],
  194. },
  195. };
  196. },
  197. };
  198. </script>
  199. <style lang="scss">
  200. .left-charts {
  201. width: 100%;
  202. height: 80%;
  203. display: flex;
  204. position: relative;
  205. .left-chart-item {
  206. width: 25%;
  207. height: 100%;
  208. box-sizing: border-box;
  209. text-align: center;
  210. .item-chart {
  211. height: calc(100% - 80px);
  212. position: relative;
  213. }
  214. .item-chart-word{
  215. font-size: 16px;
  216. }
  217. .zongshu{
  218. color:rgb(0, 253, 250);
  219. }
  220. .zaixianshu{
  221. color:rgb(7, 247, 168);
  222. }
  223. .lixianshu{
  224. color:rgb(227, 179, 55);
  225. }
  226. .gaojingshu{
  227. color:rgb(245, 2, 61);
  228. }
  229. }
  230. }
  231. </style>