s8sheBeiHeCha.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <template>
  2. <!-- <div @click="toDetailed()" class="statisticsPage" :style="{width:width}"> -->
  3. <div class="statisticsPage" :style="{width:width}">
  4. <div :id="id" :style="{height:height}"/>
  5. <!-- 打开详情弹窗-->
  6. <div v-if="dialogOff">
  7. <dialogView
  8. :dialogOff = "dialogOff"
  9. @close = "close"
  10. :title="title"
  11. :data="data"
  12. />
  13. </div>
  14. </div>
  15. </template>
  16. <script>
  17. import echarts from 'echarts'
  18. import dialogView from '../properties/s8sheBeiHeChaPro.vue'
  19. import {GetPercent,GetMax} from '../js/config.js'
  20. export default {
  21. components:{
  22. dialogView
  23. },
  24. props: {
  25. data: {
  26. type: Object,
  27. },
  28. width:{
  29. type:String,
  30. default:"20%"
  31. },
  32. height:{
  33. type:String,
  34. default: "100%"
  35. },
  36. id:{
  37. type:String,
  38. default:"s8sheBeiHeCha"
  39. },
  40. click:{
  41. type:String,
  42. default:'true'
  43. },
  44. colorw:{
  45. type:String,
  46. default:'true'
  47. }
  48. },
  49. data () {
  50. return {
  51. title:'设备维护完成情况',
  52. dialogOff:false,
  53. }
  54. },
  55. mounted(){
  56. this.drawLine();
  57. },
  58. methods: {
  59. close(){
  60. this.dialogOff = false
  61. },
  62. /* 跳转统计页面*/
  63. toDetailed(){
  64. if(this.click == "true"){
  65. this.dialogOff = true
  66. }
  67. },
  68. drawLine(){
  69. let s8sheBeiHeCha = echarts.init(document.getElementById(this.id))
  70. // let beginInof = GetPercent(Number(this.data.t_sbhcjlbBegin.number),Number(this.data.t_sbhcjhBegin.number))
  71. // let endInof = GetPercent(Number(this.data.t_sbhcjlbEnd.number),Number(this.data.t_sbhcjhEnd.number))
  72. // let data1 = [];
  73. // data1.push(this.data.t_sbhcjhBegin.number);
  74. // data1.push(this.data.t_sbhcjhEnd.number);
  75. // let data2 = [];
  76. // data2.push(this.data.t_sbhcjlbBegin.number);
  77. // data2.push(this.data.t_sbhcjlbEnd.number);
  78. // let data3 = [];
  79. // data3.push(this.data.t_sbhcjlbBegin.date);
  80. // data3.push(this.data.t_sbhcjlbEnd.date);
  81. // let max1=GetMax(data1)+1;
  82. // let max2=GetMax(data2)+1;
  83. // let maxVal=max1>max2?max1:max2;
  84. // console.log("max1:",max1,"max2:",max2);
  85. let e = 100 -this.data.t_sbhcjlbNum.val
  86. let option = {
  87. title: {
  88. text: this.title,
  89. // subtext: 'Fake Data',
  90. left: 'left',
  91. textStyle:{ fontSize:14,color: this.colorw }
  92. },
  93. tooltip: {
  94. trigger: 'item'
  95. },
  96. color:['#66CC00','#CC0000'],
  97. // color:['#33cc33','#cc33cc'],
  98. series: [
  99. {
  100. type: 'pie',
  101. radius: '50%',
  102. label: {
  103. formatter: '{b}: {d}%'
  104. },
  105. data: [
  106. { value: this.data.t_sbhcjlbNum.val, name: '完成率' },
  107. { value: e, name: '未完成率' }
  108. ],
  109. emphasis: {
  110. itemStyle: {
  111. shadowBlur: 10,
  112. shadowOffsetX: 0,
  113. shadowColor: 'rgba(0, 0, 0, 0.5)'
  114. }
  115. }
  116. }
  117. ]
  118. };
  119. option && s8sheBeiHeCha.setOption(option);
  120. }
  121. }
  122. }
  123. </script>
  124. <style scoped>
  125. #s8sheBeiHeCha:hover{
  126. transition: all 0.5s;
  127. transform:scale(1.03);
  128. }
  129. .statisticsPage{
  130. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  131. float: left;
  132. }
  133. </style>