Maps.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. import React, { Component } from 'react';
  2. import ContentWrapper from '@/components/Layout/ContentWrapper';
  3. import { jumlahLaporan } from "@/actions/pelaporan";
  4. import VectorMap from '@/components/Maps/VectorMap';
  5. import { Container, Row, Col, Card, CardHeader, CardBody } from "reactstrap";
  6. const defaultColors = {
  7. markerColor: '#f20226',
  8. bgColor: 'transparent',
  9. scaleColors: ["#146804", "#ff0000"],
  10. regionFill: '#bbbec6'
  11. };
  12. const init = {
  13. 'LLDIKTI I': 'ID_su',
  14. 'LLDIKTI II': 'ID_ss',
  15. 'LLDIKTI II': 'ID_la',
  16. 'LLDIKTI II': 'ID_be',
  17. 'LLDIKTI II': 'ID_bb',
  18. 'LLDIKTI III': 'ID_jk',
  19. 'LLDIKTI IV': 'ID_jb',
  20. 'LLDIKTI IV': 'ID_bt',
  21. 'LLDIKTI V': 'ID_yo',
  22. 'LLDIKTI VI': 'ID_jt',
  23. 'LLDIKTI VII': 'ID_jl',
  24. 'LLDIKTI VIII': 'ID_ba',
  25. 'LLDIKTI VIII': 'ID_nb',
  26. 'LLDIKTI IX': 'ID_sg',
  27. 'LLDIKTI IX': 'ID_sn',
  28. 'LLDIKTI IX': 'ID_sr',
  29. 'LLDIKTI X': 'ID_sb',
  30. 'LLDIKTI X': 'ID_ri',
  31. 'LLDIKTI X': 'ID_kr',
  32. 'LLDIKTI X': 'ID_ja',
  33. 'LLDIKTI XI': 'ID_ks',
  34. 'LLDIKTI XI': 'ID_kb',
  35. 'LLDIKTI XI': 'ID_ki',
  36. 'LLDIKTI XI': 'ID_kt',
  37. 'LLDIKTI XI': 'ID_ku',
  38. 'LLDIKTI XII': 'ID_ma',
  39. 'LLDIKTI XII': 'ID_mu',
  40. 'LLDIKTI XIII': 'ID_ac',
  41. 'LLDIKTI XIV': 'ID_pa',
  42. 'LLDIKTI XIV': 'ID_pb',
  43. 'LLDIKTI XV': 'ID_nt',
  44. 'LLDIKTI XVI': 'ID_go',
  45. 'LLDIKTI XVI': 'ID_st',
  46. 'LLDIKTI XVI': 'ID_sa',
  47. }
  48. const RegionValues = {
  49. 'ID_su': 0,
  50. 'ID_su': 0,
  51. 'ID_ss': 0,
  52. 'ID_la': 0,
  53. 'ID_be': 0,
  54. 'ID_bb': 0,
  55. 'ID_jk': 0,
  56. 'ID_jb': 0,
  57. 'ID_bt': 0,
  58. 'ID_yo': 0,
  59. 'ID_jt': 0,
  60. 'ID_jl': 0,
  61. 'ID_ba': 0,
  62. 'ID_nb': 0,
  63. 'ID_sg': 0,
  64. 'ID_sn': 0,
  65. 'ID_sr': 0,
  66. 'ID_sb': 0,
  67. 'ID_ri': 0,
  68. 'ID_kr': 0,
  69. 'ID_ja': 0,
  70. 'ID_ks': 0,
  71. 'ID_kb': 0,
  72. 'ID_ki': 0,
  73. 'ID_kt': 0,
  74. 'ID_ku': 0,
  75. 'ID_ma': 0,
  76. 'ID_mu': 0,
  77. 'ID_ac': 0,
  78. 'ID_pa': 0,
  79. 'ID_pb': 0,
  80. 'ID_nt': 0,
  81. 'ID_go': 0,
  82. 'ID_st': 0,
  83. 'ID_sa': 0,
  84. }
  85. // const RegionValues = {
  86. // 'ID_su': 1,
  87. // 'ID_su': 2,
  88. // 'ID_ss': 3,
  89. // 'ID_la': 4,
  90. // 'ID_be': 5,
  91. // 'ID_bb': 6,
  92. // 'ID_jk': 2,
  93. // 'ID_jb': 9,
  94. // 'ID_bt': 9,
  95. // 'ID_yo': 8,
  96. // 'ID_jt': 5,
  97. // 'ID_jl': 1,
  98. // 'ID_ba': 2,
  99. // 'ID_nb': 1,
  100. // 'ID_sg': 1,
  101. // 'ID_sn': 1,
  102. // 'ID_sr': 1,
  103. // 'ID_sb': 10,
  104. // 'ID_ri': 10,
  105. // 'ID_kr': 10,
  106. // 'ID_ja': 10,
  107. // 'ID_ks': 11,
  108. // 'ID_kb': 11,
  109. // 'ID_ki': 11,
  110. // 'ID_kt': 11,
  111. // 'ID_ku': 11,
  112. // 'ID_ma': 12,
  113. // 'ID_mu': 12,
  114. // 'ID_ac': 13,
  115. // 'ID_pa': 14,
  116. // 'ID_pb': 14,
  117. // 'ID_nt': 15,
  118. // 'ID_go': 16,
  119. // 'ID_st': 16,
  120. // 'ID_sa': 16,
  121. // }
  122. const LLDIKTI = {
  123. 'ID_su': '<h5>LLDIKTI Wilayah I</h5>',
  124. 'ID_ss': '<h5>LLDIKTI Wilayah II</h5>',
  125. 'ID_la': '<h5>LLDIKTI Wilayah II</h5>',
  126. 'ID_be': '<h5>LLDIKTI Wilayah II</h5>',
  127. 'ID_bb': '<h5>LLDIKTI Wilayah II</h5>',
  128. 'ID_jk': '<h5>LLDIKTI Wilayah III</h5>',
  129. 'ID_jb': '<h5>LLDIKTI Wilayah IV</h5>',
  130. 'ID_bt': '<h5>LLDIKTI Wilayah IV</h5>',
  131. 'ID_yo': '<h5>LLDIKTI Wilayah V</h5>',
  132. 'ID_jt': '<h5>LLDIKTI Wilayah VI</h5>',
  133. 'ID_jl': '<h5>LLDIKTI Wilayah VII</h5>',
  134. 'ID_ba': '<h5>LLDIKTI Wilayah VIII</h5>',
  135. 'ID_nb': '<h5>LLDIKTI Wilayah VIII</h5>',
  136. 'ID_sg': '<h5>LLDIKTI Wilayah IX</h5>',
  137. 'ID_sn': '<h5>LLDIKTI Wilayah IX</h5>',
  138. 'ID_sr': '<h5>LLDIKTI Wilayah IX</h5>',
  139. 'ID_sb': '<h5>LLDIKTI Wilayah X</h5>',
  140. 'ID_ri': '<h5>LLDIKTI Wilayah X</h5>',
  141. 'ID_kr': '<h5>LLDIKTI Wilayah X</h5>',
  142. 'ID_ja': '<h5>LLDIKTI Wilayah X</h5>',
  143. 'ID_ks': '<h5>LLDIKTI Wilayah XI</h5>',
  144. 'ID_kb': '<h5>LLDIKTI Wilayah XI</h5>',
  145. 'ID_ki': '<h5>LLDIKTI Wilayah XI</h5>',
  146. 'ID_kt': '<h5>LLDIKTI Wilayah XI</h5>',
  147. 'ID_ku': '<h5>LLDIKTI Wilayah XI</h5>',
  148. 'ID_ma': '<h5>LLDIKTI Wilayah XII</h5>',
  149. 'ID_mu': '<h5>LLDIKTI Wilayah XII</h5>',
  150. 'ID_ac': '<h5>LLDIKTI Wilayah XIII</h5>',
  151. 'ID_pa': '<h5>LLDIKTI Wilayah XIV</h5>',
  152. 'ID_pb': '<h5>LLDIKTI Wilayah XIV</h5>',
  153. 'ID_nt': '<h5>LLDIKTI Wilayah XV</h5>',
  154. 'ID_go': '<h5>LLDIKTI Wilayah XVI</h5>',
  155. 'ID_st': '<h5>LLDIKTI Wilayah XVI</h5>',
  156. 'ID_sa': '<h5>LLDIKTI Wilayah XVI</h5>',
  157. }
  158. class Maps extends Component {
  159. state = {
  160. LLDIKTI: {
  161. 'ID_su': '<h5>LLDIKTI Wilayah I</h5>',
  162. 'ID_ss': '<h5>LLDIKTI Wilayah II</h5>',
  163. 'ID_la': '<h5>LLDIKTI Wilayah II</h5>',
  164. 'ID_be': '<h5>LLDIKTI Wilayah II</h5>',
  165. 'ID_bb': '<h5>LLDIKTI Wilayah II</h5>',
  166. 'ID_jk': '<h5>LLDIKTI Wilayah III</h5>',
  167. 'ID_jb': '<h5>LLDIKTI Wilayah IV</h5>',
  168. 'ID_bt': '<h5>LLDIKTI Wilayah IV</h5>',
  169. 'ID_yo': '<h5>LLDIKTI Wilayah V</h5>',
  170. 'ID_jt': '<h5>LLDIKTI Wilayah VI</h5>',
  171. 'ID_jl': '<h5>LLDIKTI Wilayah VII</h5>',
  172. 'ID_ba': '<h5>LLDIKTI Wilayah VIII</h5>',
  173. 'ID_nb': '<h5>LLDIKTI Wilayah VIII</h5>',
  174. 'ID_sg': '<h5>LLDIKTI Wilayah IX</h5>',
  175. 'ID_sn': '<h5>LLDIKTI Wilayah IX</h5>',
  176. 'ID_sr': '<h5>LLDIKTI Wilayah IX</h5>',
  177. 'ID_sb': '<h5>LLDIKTI Wilayah X</h5>',
  178. 'ID_ri': '<h5>LLDIKTI Wilayah X</h5>',
  179. 'ID_kr': '<h5>LLDIKTI Wilayah X</h5>',
  180. 'ID_ja': '<h5>LLDIKTI Wilayah X</h5>',
  181. 'ID_ks': '<h5>LLDIKTI Wilayah XI</h5>',
  182. 'ID_kb': '<h5>LLDIKTI Wilayah XI</h5>',
  183. 'ID_ki': '<h5>LLDIKTI Wilayah XI</h5>',
  184. 'ID_kt': '<h5>LLDIKTI Wilayah XI</h5>',
  185. 'ID_ku': '<h5>LLDIKTI Wilayah XI</h5>',
  186. 'ID_ma': '<h5>LLDIKTI Wilayah XII</h5>',
  187. 'ID_mu': '<h5>LLDIKTI Wilayah XII</h5>',
  188. 'ID_ac': '<h5>LLDIKTI Wilayah XIII</h5>',
  189. 'ID_pa': '<h5>LLDIKTI Wilayah XIV</h5>',
  190. 'ID_pb': '<h5>LLDIKTI Wilayah XIV</h5>',
  191. 'ID_nt': '<h5>LLDIKTI Wilayah XV</h5>',
  192. 'ID_go': '<h5>LLDIKTI Wilayah XVI</h5>',
  193. 'ID_st': '<h5>LLDIKTI Wilayah XVI</h5>',
  194. 'ID_sa': '<h5>LLDIKTI Wilayah XVI</h5>',
  195. },
  196. series: {
  197. regions: [{
  198. values: RegionValues,
  199. scale: defaultColors.scaleColors,
  200. normalizeFunction: 'polynomial'
  201. }]
  202. },
  203. markers: [
  204. // { latLng: [4.695135, 96.749397], name: 'ID_ac' },
  205. ],
  206. options: {
  207. map: 'id_ID',
  208. backgroundColor: defaultColors.bgColor,
  209. zoomMin: 1,
  210. zoomMax: 8,
  211. zoomOnScroll: true,
  212. regionStyle: {
  213. initial: {
  214. 'fill': defaultColors.regionFill,
  215. 'fill-opacity': 1,
  216. 'stroke': 'none',
  217. 'stroke-width': 1.5,
  218. 'stroke-opacity': 1
  219. },
  220. hover: {
  221. 'fill-opacity': 0.5,
  222. cursor: 'pointer'
  223. },
  224. selected: {
  225. fill: 'yellow'
  226. },
  227. selectedHover: {}
  228. },
  229. focusOn: {
  230. x: 0.4,
  231. y: 0.6,
  232. scale: 1
  233. },
  234. markerStyle: {
  235. initial: {
  236. fill: defaultColors.markerColor,
  237. stroke: defaultColors.markerColor
  238. }
  239. },
  240. onRegionLabelShow: (event, code, region) => {
  241. console.log(this.state.RegionValues, RegionValues[region])
  242. code.html(this.state.LLDIKTI[region] + code.html() + ' : ' + this.state.RegionValues[region] + ' pelaporan');
  243. }
  244. }
  245. }
  246. async componentDidMount() {
  247. const { token } = this.props;
  248. const data = await jumlahLaporan(token);
  249. const empat = "16"
  250. // console.log(data.data.filter(e => e._id.includes('LLDIKTI')))
  251. this.setState({
  252. RegionValues: {
  253. 'ID_su': 0,
  254. 'ID_su': 0,
  255. 'ID_ss': 0,
  256. 'ID_la': 0,
  257. 'ID_be': 0,
  258. 'ID_bb': 0,
  259. 'ID_jk': 0,
  260. 'ID_jb': 0,
  261. 'ID_bt': 0,
  262. 'ID_yo': 0,
  263. 'ID_jt': 0,
  264. 'ID_jl': 0,
  265. 'ID_ba': 0,
  266. 'ID_nb': 0,
  267. 'ID_sg': 0,
  268. 'ID_sn': 0,
  269. 'ID_sr': 0,
  270. 'ID_sb': 0,
  271. 'ID_ri': 0,
  272. 'ID_kr': 0,
  273. 'ID_ja': 0,
  274. 'ID_ks': 0,
  275. 'ID_kb': 0,
  276. 'ID_ki': 0,
  277. 'ID_kt': 0,
  278. 'ID_ku': 0,
  279. 'ID_ma': 0,
  280. 'ID_mu': 0,
  281. 'ID_ac': 0,
  282. 'ID_pa': 0,
  283. 'ID_pb': 0,
  284. 'ID_nt': 0,
  285. 'ID_go': 0,
  286. 'ID_st': 0,
  287. 'ID_sa': 0,
  288. }
  289. })
  290. // this.setState({ RegionValues: data.data.filter(e => e._id.includes('LLDIKTI')) })
  291. }
  292. render() {
  293. return (
  294. <Card className="card-default">
  295. <CardBody>
  296. <VectorMap height="395px" options={this.state.options} series={this.state.series} markers={this.state.markers} />
  297. </CardBody>
  298. <div align="center">
  299. <span>Peta Geografis Wilayah LLDikti</span>
  300. </div>
  301. </Card>
  302. );
  303. }
  304. }
  305. export default Maps;