index.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <template>
  2. <div>
  3. <bgBox class="bgBox" bgType="g-bg2" :tabChange="tabChange" :tabIndex="1">
  4. <leftBox class="lefBox animated fadeInLeft" />
  5. <cmap />
  6. <HorizontalHistogram
  7. style="position: absolute; right: 50px; top: 115px; z-index: 10"
  8. v-if="isHorizontal"
  9. id="`各区域移栽面积1`"
  10. title="各区域移栽面积"
  11. :area="HorizontalArea"
  12. :dataArray="HorizontalArray"
  13. class="animated fadeInRight"
  14. />
  15. <wavyLineChart
  16. id="`本月移栽数量趋势`"
  17. style="position: absolute; right: 50px; top: 460px; z-index: 10"
  18. v-if="isMonthTrend"
  19. title="本月移栽数量趋势"
  20. :area.sync="monthTrendarea"
  21. :dataArray.sync="monthTrendDataArray"
  22. :lineName="monthName"
  23. class="animated fadeInRight"
  24. />
  25. <wavyLineChart
  26. id="`本年移栽数量趋势`"
  27. :lineName="yearName"
  28. style="position: absolute; right: 50px; top: 760px; z-index: 10"
  29. title="本年移栽数量趋势"
  30. :area.sync="yearTrendarea"
  31. class="animated fadeInRight"
  32. :dataArray.sync="yearTrendDataArray"
  33. v-if="isYearTrend"
  34. />
  35. </bgBox>
  36. </div>
  37. </template>
  38. <script>
  39. import bgBox from '@/components/bgBox/index.vue'
  40. import cmap from './cmap.vue'
  41. import leftBox from './leftBox.vue'
  42. import HorizontalHistogram from '@/components/Customize/HorizontalHistogram'
  43. import wavyLineChart from '@/components/Customize/wavyLineChart'
  44. window.map = {}
  45. export default {
  46. components: {
  47. bgBox,
  48. leftBox,
  49. cmap,
  50. wavyLineChart,
  51. HorizontalHistogram,
  52. },
  53. data() {
  54. return {
  55. HorizontalArea: [],
  56. HorizontalArray: {
  57. Done: [],
  58. },
  59. yearName: {
  60. lastName: `去年`,
  61. thisName: `今年`,
  62. },
  63. isHorizontal: true,
  64. monthTrendarea: [],
  65. monthTrendDataArray: {
  66. LastYear: [],
  67. thisYear: [],
  68. },
  69. monthName: {
  70. lastName: `上月`,
  71. thisName: `本月`,
  72. },
  73. yearTrendarea: [],
  74. yearTrendDataArray: {
  75. LastYear: [],
  76. thisYear: [],
  77. },
  78. isMonthTrend: false,
  79. isYearTrend: false,
  80. }
  81. },
  82. computed: {},
  83. async created() {
  84. this.$util.autoVueFn(
  85. [
  86. {
  87. time: 1000 * 5,
  88. fn: this.getAnalysisOfTransplantingSituation,
  89. },
  90. {
  91. time: 1000 * 5,
  92. fn: this.getTrendOfTransplantQuantityThisMonth,
  93. },
  94. {
  95. time: 1000 * 5,
  96. fn: this.getThisYearsTransplantingDataTrend,
  97. },
  98. ],
  99. this
  100. )
  101. },
  102. mounted() {},
  103. unmounted() {
  104. window.map.destroy()
  105. },
  106. methods: {
  107. tabChange(val) {
  108. if (val === 0) {
  109. this.$router.push(`/page1`)
  110. }
  111. console.log(`val`, val)
  112. },
  113. getTrendOfTransplantQuantityThisMonth() {
  114. this.$http.get(`/trendOfTransplantQuantityThisMonth`).then((res) => {
  115. const area = []
  116. const dataArray = {
  117. LastYear: [],
  118. thisYear: [],
  119. }
  120. res.forEach((element) => {
  121. area.push(element.时间)
  122. dataArray.LastYear.push(element.去年)
  123. dataArray.thisYear.push(element.今年)
  124. })
  125. this.monthTrendarea = area
  126. this.monthTrendDataArray = dataArray
  127. this.isMonthTrend = true
  128. })
  129. },
  130. getThisYearsTransplantingDataTrend() {
  131. this.$http.get(`/thisYearsTransplantingDataTrend`).then((res) => {
  132. const area = []
  133. const dataArray = {
  134. LastYear: [],
  135. thisYear: [],
  136. }
  137. res.forEach((element) => {
  138. area.push(element.时间)
  139. dataArray.LastYear.push(element.去年)
  140. dataArray.thisYear.push(element.今年)
  141. })
  142. this.yearTrendarea = area
  143. this.yearTrendDataArray = dataArray
  144. this.isYearTrend = true
  145. })
  146. },
  147. getAnalysisOfTransplantingSituation() {
  148. this.$http.get(`/api/analysisOfTransplantingSituation`).then((res) => {
  149. const area = []
  150. const dataArray = {
  151. Done: [],
  152. Percentage: [],
  153. }
  154. const date = res.sort((a, b) => b.已移载 - a.已移载)
  155. date.forEach((element) => {
  156. area.push(element.名称.slice(0, 2))
  157. dataArray.Done.push(element.已移载)
  158. })
  159. this.HorizontalArea = area
  160. this.HorizontalArray = dataArray
  161. this.isHorizontal = true
  162. })
  163. },
  164. },
  165. }
  166. </script>
  167. <style lang="less" scoped>
  168. .bgBox {
  169. .lefBox {
  170. position: absolute;
  171. z-index: 10;
  172. left: 47px;
  173. top: 120px;
  174. }
  175. ::v-deep {
  176. .bg {
  177. position: absolute;
  178. z-index: 9;
  179. }
  180. }
  181. }
  182. </style>