index.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836
  1. <!--
  2. * @LastEditors: wangcc
  3. -->
  4. <template>
  5. <div class>
  6. <dv-full-screen-container>
  7. <Map></Map>
  8. <Header></Header>
  9. <section class="nav-wrap">
  10. <div
  11. class="nav-item"
  12. :class="{active:(index+1)==page}"
  13. v-for="(item,index) in navList"
  14. @click="navClick(index+1)"
  15. :key="index"
  16. >{{item.text}}</div>
  17. </section>
  18. <Alarm v-if="page==6&&alarmData.length>=1" :data="alarmData" />
  19. <section class="left-wrap" v-if="$store.state.addr.page=='forest'">
  20. <Numerical class="left-item" :data="page1numerical" />
  21. <MyEcharts
  22. class="left-item chart-wrap"
  23. mid="page1Char1"
  24. ref="page1Char1"
  25. :option="page1Char1"
  26. style
  27. />
  28. <MyEcharts
  29. class="left-item chart-wrap"
  30. mid="page1Char2"
  31. ref="page1Char2"
  32. :option="page1Char2"
  33. style
  34. />
  35. </section>
  36. <section class="left-wrap" v-if="$store.state.addr.page=='treeSpecies'">
  37. <Numerical class="left-item" :data="page2numerical" />
  38. <!-- <MyEcharts
  39. class="left-item chart-wrap"
  40. mid="page2Char1"
  41. :option="page2Char1"
  42. ref="page2Char1"
  43. />-->
  44. <MyEcharts
  45. class="left-item chart-wrap"
  46. mid="page2Char2"
  47. :option="page2Char2"
  48. ref="page2Char2"
  49. />
  50. <MyEcharts
  51. class="left-item chart-wrap"
  52. mid="page2Char3"
  53. :option="page2Char3"
  54. ref="page2Char3"
  55. />
  56. </section>
  57. <!-- 林业经济 -->
  58. <section class="left-wrap" v-if="$store.state.addr.page=='economics'">
  59. <!-- <Typeslide :data="typeSlideData" /> -->
  60. <Numerical class="left-item" :data="page5numerical" />
  61. <MyEcharts
  62. class="left-item chart-wrap"
  63. mid="page5Char2"
  64. ref="page5Char2"
  65. :option="page5Char2"
  66. />
  67. <MyEcharts
  68. class="left-item chart-wrap"
  69. mid="page5Char1"
  70. ref="page5Char1"
  71. :option="page5Char1"
  72. />
  73. </section>
  74. <!-- 事件信息 -->
  75. <section class="left-wrap" v-if="$store.state.addr.page=='event'">
  76. <Numerical class="left-item" :data="page6numerical" />
  77. <MyEcharts
  78. class="left-item chart-wrap"
  79. mid="page6Char1"
  80. ref="page6Char1"
  81. :option="page6Char1"
  82. />
  83. <MyEcharts
  84. class="left-item chart-wrap"
  85. mid="page6Char2"
  86. ref="page6Char2"
  87. :option="page6Char2"
  88. />
  89. </section>
  90. <section class="right-wrap">
  91. <PickerAddr />
  92. <div class="xiaoban u-flex">
  93. <div class="title">小班查询:</div>
  94. <el-input v-model="xiaobaninput" placeholder="请输入小班号">
  95. <i class="el-icon-search el-input__icon" slot="suffix" @click="xiaobansearch"></i>
  96. </el-input>
  97. </div>
  98. <section class="scroll-board-wrap" :class="{close:showScrollBoard==true}">
  99. <dv-scroll-board
  100. :key="scrollBoardKey"
  101. class="scroll-board-01"
  102. :config="scrollBoardConfig"
  103. ref="scrollBoard"
  104. @click="scrollBoardClick"
  105. :style="scrollBoardStyle"
  106. />
  107. <div class="scroll-board-tool" @click="toggleShowScrollBoard">
  108. <div class="inner">
  109. <img src="../assets/img/jiantou.png" alt />
  110. </div>
  111. </div>
  112. </section>
  113. </section>
  114. </dv-full-screen-container>
  115. </div>
  116. </template>
  117. <script>
  118. import Map from '../components/amap.vue';
  119. import Header from '../components/header';
  120. import MyEcharts from '../components/echarts';
  121. import Numerical from '../components/numerical';
  122. import Alarm from '../components/alarm';
  123. import PickerAddr from '../components/pickerAddr';
  124. import Typeslide from '../components/typeslide';
  125. import { Message } from 'element-ui';
  126. import { debounce } from '@/utils/mdebounce';
  127. import { sliceArray } from '@/utils/sliceArray';
  128. import { mapMutations, mapState, mapGetters } from 'vuex';
  129. import {
  130. page1numerical,
  131. page1echarts01,
  132. page1echarts02,
  133. rightScrollData,
  134. alarmDataApi,
  135. page2numerical,
  136. page2echarts01,
  137. page2echarts02,
  138. page2echarts03,
  139. page5numerical,
  140. typeSlideApi,
  141. page5echarts01,
  142. page5echarts02,
  143. page6numerical,
  144. page6echarts01,
  145. page6echarts02,
  146. smallClassDetail
  147. } from '../service/index';
  148. import scrollBoardSchema from '../dataSchema/scrollBoardSchema';
  149. import page1Char1Schema from '../dataSchema/page1Char1Schema';
  150. import page1Char2Schema from '../dataSchema/page1Char2Schema';
  151. import page2Char1Schema from '../dataSchema/page2Char1Schema';
  152. import page2Char2Schema from '../dataSchema/page2Char2Schema';
  153. import page2Char3Schema from '../dataSchema/page2Char3Schema';
  154. import page5Char1Schema from '../dataSchema/page5Char1Schema';
  155. import page5Char2Schema from '../dataSchema/page5Char2Schema';
  156. import page6Char1Schema from '../dataSchema/page6Char1Schema';
  157. import page6Char2Schema from '../dataSchema/page6Char2Schema';
  158. // import { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToText, TextToCode } from 'element-china-area-data';
  159. export default {
  160. name: '',
  161. components: {
  162. Map,
  163. Header,
  164. MyEcharts,
  165. Numerical,
  166. Alarm,
  167. PickerAddr,
  168. Typeslide
  169. },
  170. data() {
  171. return {
  172. showScrollBoard: false,
  173. page: 1,
  174. // addrOptions: regionDataPlus,
  175. addrSelectedOptions: ['520000', ''],
  176. navList: [
  177. { text: '森林资源', en: 'forest' },
  178. { text: '林木结构', en: 'treeSpecies' },
  179. { text: '碳汇管理', en: 'sink' },
  180. { text: '林下经济', en: 'economics' },
  181. { text: '土地流转', en: 'circulation' },
  182. { text: '事件信息', en: 'event' }
  183. ],
  184. scrollBoardKey: Date.now(),
  185. scrollBoardStyle: {
  186. // width: '100%',
  187. // height: '60vh'
  188. },
  189. scrollBoardConfig: scrollBoardSchema,
  190. page1numerical: [
  191. { name: '蓄积量', number: '2309', unit: '立方米' },
  192. { name: '占地面积', number: '55.4', unit: '万亩' }
  193. ],
  194. alarmData: [
  195. // {msg:'三都林场01小班于15:00:00发现火情,请尽快处理!'},
  196. // {msg:'测试1!'},
  197. // {msg:'测试22222222!'},
  198. ],
  199. page1Char1: page1Char1Schema,
  200. page1Char2: page1Char2Schema,
  201. page2numerical: [],
  202. page2Char1: page2Char1Schema,
  203. page2Char2: page2Char2Schema,
  204. page2Char3: page2Char3Schema,
  205. page5numerical: [],
  206. typeSlideData: [],
  207. page5Char1: page5Char1Schema,
  208. page5Char2: page5Char2Schema,
  209. page6numerical: [],
  210. page6Char1: page6Char1Schema,
  211. page6Char2: page6Char2Schema,
  212. xiaobaninput: ''
  213. };
  214. },
  215. created() {},
  216. mounted() {
  217. this.getPageData();
  218. this.getRightScrollData();
  219. setInterval(() => {
  220. this.getPageData();
  221. }, 60000);
  222. },
  223. watch: {
  224. xiaobaninput: {
  225. handler: function () {
  226. debounce(this.xiaobansearch, 500, false);
  227. }
  228. },
  229. '$store.state.addr.selectCity'(val) {
  230. // debounce(this.getPageData(), 1000, false)
  231. this.getPageData();
  232. },
  233. '$store.state.addr.selectDistrict'(val) {
  234. this.getPageData();
  235. },
  236. '$store.state.addr.selectStreet'(val) {
  237. this.getPageData();
  238. }
  239. },
  240. methods: {
  241. ...mapMutations([
  242. 'changeSearchSmallClass'
  243. ]),
  244. addrChange(value) {
  245. console.log('addrChange', value);
  246. },
  247. navClick(index) {
  248. this.$store.commit('changePage', this.navList[index - 1].en);
  249. console.log('this.navList[index-1].en', this.navList[index - 1].en);
  250. this.page = index;
  251. console.log('index', index);
  252. if (
  253. this.$store.state.addr.page == 'sink' ||
  254. this.$store.state.addr.page == 'circulation'
  255. ) {
  256. Message('暂未开放!');
  257. return;
  258. }
  259. // 切换专题时,重置区域
  260. // this.$store.dispatch('searchArea', {
  261. // parentId: '520000',
  262. // name: '贵州省',
  263. // mapLevel: 'province'
  264. // });
  265. this.getPageData();
  266. },
  267. getPageData() {
  268. debounce(this.debounceGetData, 1000, true);
  269. },
  270. debounceGetData() {
  271. console.log('page', this.$store.state.addr.page);
  272. // {text:'森林资源',en:'forest'},
  273. // {text:'林木结构',en:'treeSpecies'},
  274. // {text:'碳汇管理',en:'sink'},
  275. // {text:'林下经济',en:'economics'},
  276. // {text:'土地流转',en:'circulation'},
  277. // {text:'事件信息',en:'event'},
  278. if (this.$store.state.addr.page == 'forest') {
  279. this.getPage1numerical();
  280. this.getPage1echarts01();
  281. this.getPage1echarts02();
  282. this.getRightScrollData();
  283. } else if (this.$store.state.addr.page == 'treeSpecies') {
  284. this.getPage2numerical();
  285. // this.getPage2echarts01();
  286. this.getPage2echarts02();
  287. this.getPage2echarts03();
  288. this.getRightScrollData();
  289. } else if (this.$store.state.addr.page == 'economics') {
  290. this.getPage5numerical();
  291. // this.getTypeSlideData();
  292. this.getPage5echarts01();
  293. this.getPage5echarts02();
  294. this.getRightScrollData();
  295. } else if (this.$store.state.addr.page == 'event') {
  296. this.getPage6numerical();
  297. this.getPage6echarts01();
  298. this.getPage6echarts02();
  299. this.getAlarmData();
  300. this.getRightScrollData();
  301. }
  302. },
  303. getPage1numerical() {
  304. let param = {
  305. cityId: this.$store.state.addr.selectCity.areaId,
  306. countyId: this.$store.state.addr.selectDistrict.areaId,
  307. townId: this.$store.state.addr.vuexSelectStreet.areaId
  308. };
  309. page1numerical(param)
  310. .then((res) => {
  311. // console.log('res',res);
  312. this.page1numerical = res.data;
  313. })
  314. .catch((err) => {
  315. console.log('echarts01 err', err);
  316. });
  317. },
  318. getPage1echarts01() {
  319. let param = {
  320. cityId: this.$store.state.addr.selectCity.areaId,
  321. countyId: this.$store.state.addr.selectDistrict.areaId,
  322. townId: this.$store.state.addr.vuexSelectStreet.areaId
  323. };
  324. // console.log('cityId',param.cityId);
  325. page1echarts01(param)
  326. .then((res) => {
  327. this.page1Char1.xAxis.data = res.data.map((item) => {
  328. return item.name;
  329. });
  330. this.page1Char1.series[0].data = res.data.map((item) => {
  331. return item.number;
  332. });
  333. //数量过小时隐藏滚动
  334. if (this.page1Char1.xAxis.data.length <= 8) {
  335. this.page1Char1.dataZoom[0].show = false;
  336. }
  337. let charUuid = this.$refs.page1Char1.mid;
  338. this.$refs.page1Char1.intChar(charUuid);
  339. })
  340. .catch((err) => {
  341. console.log('getPage1echarts01 err', err);
  342. });
  343. },
  344. getPage1echarts02() {
  345. let param = {
  346. cityId: this.$store.state.addr.selectCity.areaId,
  347. countyId: this.$store.state.addr.selectDistrict.areaId,
  348. townId: this.$store.state.addr.selectStreet.areaId
  349. };
  350. // console.log('cityId',param.cityId);
  351. page1echarts02(param)
  352. .then((res) => {
  353. this.page1Char2.xAxis.data = res.data.map((item) => {
  354. return item.name;
  355. });
  356. this.page1Char2.series[0].data = res.data.map((item) => {
  357. return item.number;
  358. });
  359. //数量过小时隐藏滚动
  360. if (this.page1Char2.xAxis.data.length <= 8) {
  361. this.page1Char2.dataZoom[0].show = false;
  362. }
  363. let charUuid = this.$refs.page1Char2.mid;
  364. this.$refs.page1Char2.intChar(charUuid);
  365. })
  366. .catch((err) => {
  367. console.log('getPage1echarts02 err', err);
  368. });
  369. },
  370. getRightScrollData() {
  371. let param = {
  372. smallNumber: this.xiaobaninput,
  373. cityId: this.$store.state.addr.selectCity.areaId,
  374. countyId: this.$store.state.addr.selectDistrict.areaId,
  375. townId: this.$store.state.addr.selectStreet.areaId
  376. };
  377. rightScrollData(param)
  378. .then((res) => {
  379. // console.log('res',res.rows.length);
  380. // console.log('this.scrollBoardConfig',this.scrollBoardConfig);
  381. //当小班滚动数据少时重设参数
  382. // if(res.rows.length<=15){
  383. // this.scrollBoardConfig.rowNum = 5;
  384. // this.scrollBoardStyle.height = '25vh'
  385. // }
  386. this.scrollBoardConfig.data = [];
  387. res.rows.forEach((element) => {
  388. this.scrollBoardConfig.data.push([
  389. element.smallNumber,
  390. element.treeComp,
  391. element.perAcreStock + 'm³',
  392. element.landArea + '亩'
  393. ]);
  394. });
  395. this.scrollBoardKey = Date.now();
  396. this.$refs.scrollBoard.updateRows(this.scrollBoardConfig.data);
  397. // console.log('this.scrollBoardConfig.data', this.scrollBoardConfig.data);
  398. // this.scrollBoardConfig = res.data;
  399. })
  400. .catch((err) => {
  401. console.log('echarts01 err', err);
  402. });
  403. },
  404. getAlarmData() {
  405. alarmDataApi()
  406. .then((res) => {
  407. // console.log('this.page',this.page);
  408. // console.log('res',res);
  409. this.alarmData = res.data;
  410. // console.log('alarmData.length',this.alarmData.length);
  411. })
  412. .catch((err) => {
  413. console.log('echarts01 err', err);
  414. });
  415. },
  416. getPage2numerical() {
  417. let param = {
  418. cityId: this.$store.state.addr.selectCity.areaId,
  419. countyId: this.$store.state.addr.selectDistrict.areaId,
  420. townId: this.$store.state.addr.vuexSelectStreet.areaId,
  421. smallNumber: this.xiaobaninput
  422. };
  423. page2numerical(param)
  424. .then((res) => {
  425. // console.log('res',res);
  426. this.page2numerical = res.data;
  427. })
  428. .catch((err) => {
  429. console.log('page2numerical err', err);
  430. });
  431. },
  432. getPage2echarts01() {
  433. let param = {
  434. smallNumber: this.xiaobaninput,
  435. cityId: this.$store.state.addr.selectCity.areaId,
  436. countyId: this.$store.state.addr.selectDistrict.areaId,
  437. townId: this.$store.state.addr.selectStreet.areaId
  438. };
  439. page2echarts01(param)
  440. .then((res) => {
  441. // console.log('res',res);
  442. this.page2Char1.series[0].data = [];
  443. this.page2Char1.series[0].data = res.data;
  444. let charUuid = this.$refs.page2Char1.mid;
  445. this.$refs.page2Char1.intChar(charUuid);
  446. })
  447. .catch((err) => {
  448. console.log('getPage2echarts01 err', err);
  449. });
  450. },
  451. getPage2echarts02() {
  452. let param = {
  453. smallNumber: this.xiaobaninput,
  454. cityId: this.$store.state.addr.selectCity.areaId,
  455. countyId: this.$store.state.addr.selectDistrict.areaId,
  456. townId: this.$store.state.addr.selectStreet.areaId
  457. };
  458. page2echarts02(param)
  459. .then((res) => {
  460. // console.log('res',res);
  461. // this.page2Char2 = res.data;
  462. // console.log('this.page2Char2.series', this.page2Char2.series);
  463. this.page2Char2.xAxis.data = [];
  464. this.page2Char2.series = [];
  465. const rows = res.rows;
  466. // console.log(rows)
  467. // x坐标
  468. this.page2Char2.xAxis.data = rows.map((item) => {
  469. return item.smallNumber;
  470. });
  471. // console.log('x坐标', this.page2Char2.xAxis.data)
  472. // 获取所有项
  473. let seriesList = rows.map((item) => {
  474. return item.treeList;
  475. });
  476. // 数组扁平化
  477. seriesList = seriesList.flat();
  478. // 去重
  479. let obj = {};
  480. seriesList = seriesList.reduce((newArr, next) => {
  481. obj[next.name] ? '' : (obj[next.name] = true && newArr.push(next));
  482. return newArr;
  483. }, []);
  484. seriesList = seriesList.map((item) => {
  485. return {
  486. name: item.name,
  487. type: 'bar',
  488. stack: 'total',
  489. label: {
  490. show: false
  491. },
  492. emphasis: {
  493. focus: 'series'
  494. },
  495. data: []
  496. };
  497. });
  498. // console.log(seriesList)
  499. rows.forEach((item) => {
  500. seriesList.forEach((jtem, index) => {
  501. let num = 0;
  502. item.treeList.map((ktem) => {
  503. if (ktem.name.indexOf(jtem.name) > -1) {
  504. num = ktem.value;
  505. }
  506. });
  507. seriesList[index].data.push(num);
  508. });
  509. });
  510. // console.log(seriesList)
  511. this.page2Char2.series = seriesList;
  512. //数量过小时隐藏滚动
  513. if (this.page2Char2.xAxis.data.length <= 8) {
  514. this.page2Char2.dataZoom[0].show = false;
  515. }
  516. let charUuid = this.$refs.page2Char2.mid;
  517. this.$refs.page2Char2.intChar(charUuid);
  518. })
  519. .catch((err) => {
  520. console.log('getPage2echarts02 err', err);
  521. });
  522. },
  523. getPage2echarts03() {
  524. let param = {
  525. smallNumber: this.xiaobaninput,
  526. cityId: this.$store.state.addr.selectCity.areaId,
  527. countyId: this.$store.state.addr.selectDistrict.areaId,
  528. townId: this.$store.state.addr.selectStreet.areaId
  529. };
  530. page2echarts03(param)
  531. .then((res) => {
  532. // console.log('res',res);
  533. // this.page2Char2 = res.data;
  534. // console.log('this.page2Char2.series', this.page2Char2.series);
  535. this.page2Char3.xAxis.data = [];
  536. this.page2Char3.series = [];
  537. const rows = res.data;
  538. // console.log(rows)
  539. // x坐标
  540. this.page2Char3.xAxis.data = rows.map((item) => {
  541. return item.areaName;
  542. });
  543. // console.log('x坐标', this.page2Char2.xAxis.data)
  544. // 获取所有项
  545. let seriesList = rows.map((item) => {
  546. return item.treeList;
  547. });
  548. // 数组扁平化
  549. seriesList = seriesList.flat();
  550. // 去重
  551. let obj = {};
  552. seriesList = seriesList.reduce((newArr, next) => {
  553. obj[next.name] ? '' : (obj[next.name] = true && newArr.push(next));
  554. return newArr;
  555. }, []);
  556. seriesList = seriesList.map((item) => {
  557. return {
  558. name: item.name,
  559. type: 'bar',
  560. stack: 'total',
  561. label: {
  562. show: false
  563. },
  564. emphasis: {
  565. focus: 'series'
  566. },
  567. data: []
  568. };
  569. });
  570. // console.log(seriesList)
  571. rows.forEach((item) => {
  572. seriesList.forEach((jtem, index) => {
  573. let num = 0;
  574. item.treeList.map((ktem) => {
  575. if (ktem.name.indexOf(jtem.name) > -1) {
  576. num = ktem.value;
  577. }
  578. });
  579. seriesList[index].data.push(num);
  580. });
  581. });
  582. // console.log(seriesList)
  583. this.page2Char3.series = seriesList;
  584. //数量过小时隐藏滚动
  585. if (this.page2Char3.xAxis.data.length <= 8) {
  586. this.page2Char3.dataZoom[0].show = false;
  587. }
  588. let charUuid = this.$refs.page2Char3.mid;
  589. this.$refs.page2Char3.intChar(charUuid);
  590. })
  591. .catch((err) => {
  592. console.log('getPage2echarts03 err', err);
  593. });
  594. },
  595. getPage5numerical() {
  596. let param = {
  597. cityId: this.$store.state.addr.selectCity.areaId,
  598. countyId: this.$store.state.addr.selectDistrict.areaId,
  599. townId: this.$store.state.addr.selectStreet.areaId
  600. };
  601. page5numerical(param)
  602. .then((res) => {
  603. // console.log('res',res);
  604. this.page5numerical = res.data;
  605. })
  606. .catch((err) => {
  607. console.log('echarts01 err', err);
  608. });
  609. },
  610. getTypeSlideData() {
  611. let param = {
  612. cityId: this.$store.state.addr.selectCity.areaId,
  613. countyId: this.$store.state.addr.selectDistrict.areaId,
  614. townId: this.$store.state.addr.selectStreet.areaId
  615. };
  616. typeSlideApi(param)
  617. .then((res) => {
  618. this.typeSlideData = sliceArray(res.data, 3);
  619. // console.log(' this.typeSlideData', this.typeSlideData);
  620. })
  621. .catch((err) => {
  622. console.log('getTypeSlideData err', err);
  623. });
  624. },
  625. getPage5echarts01() {
  626. let param = {
  627. cityId: this.$store.state.addr.selectCity.areaId,
  628. countyId: this.$store.state.addr.selectDistrict.areaId,
  629. townId: this.$store.state.addr.selectStreet.areaId
  630. };
  631. page5echarts01(param)
  632. .then((res) => {
  633. // console.log('res',res);
  634. // this.page5Char1 = res.data;
  635. this.page5Char1.xAxis.data = res.data.map((item) => {
  636. return item.baseName;
  637. });
  638. this.page5Char1.series[0].data = res.data.map((item) => {
  639. return item.baseArea;
  640. });
  641. //数量过小时隐藏滚动
  642. if (this.page5Char1.xAxis.data.length <= 8) {
  643. this.page5Char1.dataZoom[0].show = false;
  644. }
  645. let charUuid = this.$refs.page5Char1.mid;
  646. this.$refs.page5Char1.intChar(charUuid);
  647. })
  648. .catch((err) => {
  649. console.log('getPage5echarts01 err', err);
  650. });
  651. },
  652. getPage5echarts02() {
  653. let param = {
  654. cityId: this.$store.state.addr.selectCity.areaId,
  655. countyId: this.$store.state.addr.selectDistrict.areaId,
  656. townId: this.$store.state.addr.selectStreet.areaId
  657. };
  658. page5echarts02(param)
  659. .then((res) => {
  660. // console.log('res',res);
  661. // this.page5Char2 = res.data;
  662. this.page5Char2.xAxis.data = res.data.map((item) => {
  663. return item.name;
  664. });
  665. this.page5Char2.series[0].data = res.data.map((item) => {
  666. return item.number;
  667. });
  668. //数量过小时隐藏滚动
  669. if (this.page5Char2.xAxis.data.length <= 8) {
  670. this.page5Char2.dataZoom[0].show = false;
  671. }
  672. let charUuid = this.$refs.page5Char2.mid;
  673. this.$refs.page5Char2.intChar(charUuid);
  674. })
  675. .catch((err) => {
  676. console.log('getPage5echarts02 err', err);
  677. });
  678. },
  679. getPage6numerical() {
  680. let param = {
  681. cityId: this.$store.state.addr.selectCity.areaId,
  682. countyId: this.$store.state.addr.selectDistrict.areaId,
  683. townId: this.$store.state.addr.selectStreet.areaId
  684. };
  685. //第一屏统计
  686. page6numerical(param)
  687. .then((res) => {
  688. // console.log('res',res);
  689. this.page6numerical = res.data;
  690. })
  691. .catch((err) => {
  692. console.log('getPage6numerical err', err);
  693. });
  694. },
  695. getPage6echarts01() {
  696. let param = {
  697. cityId: this.$store.state.addr.selectCity.areaId,
  698. countyId: this.$store.state.addr.selectDistrict.areaId,
  699. townId: this.$store.state.addr.selectStreet.areaId
  700. };
  701. page6echarts01(param)
  702. .then((res) => {
  703. // console.log('res',res);
  704. // this.page6Char1 = res.data;
  705. // this.page6Char1.xAxis[0].data = [];
  706. // this.page6Char1.series[0].data = [];
  707. // this.page6Char1.series[1].data = [];
  708. // this.page6Char1.series[2].data = [];
  709. // res.data &&
  710. // res.data.forEach((element) => {
  711. // this.page6Char1.xAxis[0].data.push(element.villageName);
  712. // this.page6Char1.series[0].data.push(element.fireCount);
  713. // this.page6Char1.series[1].data.push(element.cutCount);
  714. // this.page6Char1.series[2].data.push(element.pestCount);
  715. // });
  716. this.page6Char1.xAxis.data = [];
  717. this.page6Char1.series[0].data = [];
  718. this.page6Char1.series[1].data = [];
  719. this.page6Char1.series[2].data = [];
  720. const rows = res.data;
  721. // console.log(rows)
  722. // x坐标
  723. this.page6Char1.xAxis.data = rows.map((item) => {
  724. return item.villageName;
  725. });
  726. rows.forEach((element) => {
  727. this.page6Char1.series[0].data.push(element.pestCount);
  728. this.page6Char1.series[1].data.push(element.cutCount);
  729. this.page6Char1.series[2].data.push(element.fireCount);
  730. });
  731. // console.log('x坐标', this.page6Char1.xAxis.data)
  732. //数量过小时隐藏滚动
  733. if (this.page6Char1.xAxis.data.length <= 8) {
  734. this.page6Char1.dataZoom[0].show = false;
  735. }
  736. let charUuid = this.$refs.page6Char1.mid;
  737. this.$refs.page6Char1.intChar(charUuid);
  738. })
  739. .catch((err) => {
  740. console.log('getPage6echarts01 err', err);
  741. });
  742. },
  743. getPage6echarts02() {
  744. let param = {
  745. cityId: this.$store.state.addr.selectCity.areaId,
  746. countyId: this.$store.state.addr.selectDistrict.areaId,
  747. townId: this.$store.state.addr.selectStreet.areaId
  748. };
  749. page6echarts02(param)
  750. .then((res) => {
  751. console.log('page6echarts02 res', res);
  752. const rows = res.data;
  753. // console.log(rows)
  754. // x坐标
  755. this.page6Char2.xAxis.data = [];
  756. this.page6Char2.series[0].data = [];
  757. this.page6Char2.series[1].data = [];
  758. this.page6Char2.series[2].data = [];
  759. this.page6Char2.xAxis.data = rows.map((item) => {
  760. return item.month;
  761. });
  762. rows.forEach((element) => {
  763. // console.log('element',element.eventList);
  764. this.page6Char2.series[0].data.push(element.eventList[0].value);
  765. this.page6Char2.series[1].data.push(element.eventList[1].value);
  766. this.page6Char2.series[2].data.push(element.eventList[2].value);
  767. });
  768. console.log('this.page6Char2.series', this.page6Char2.series);
  769. let charUuid = this.$refs.page6Char2.mid;
  770. this.$refs.page6Char2.intChar(charUuid);
  771. })
  772. .catch((err) => {
  773. console.log('page6echarts02 err', err);
  774. });
  775. },
  776. xiaobansearch() {
  777. // console.log('xiaobansearch');
  778. this.getRightScrollData();
  779. this.getPageData();
  780. },
  781. scrollBoardClick(e) {
  782. let param = {
  783. smallNumber: e.row[0],
  784. cityId: this.$store.state.addr.selectCity.areaId,
  785. countyId: this.$store.state.addr.selectDistrict.areaId,
  786. townId: this.$store.state.addr.selectStreet.areaId
  787. };
  788. rightScrollData(param).then((res) => {
  789. this.changeSearchSmallClass(res.rows[0])
  790. });
  791. },
  792. toggleShowScrollBoard() {
  793. this.showScrollBoard = !this.showScrollBoard;
  794. }
  795. }
  796. };
  797. </script>
  798. <style lang='scss' scoped>
  799. @import url(./index.scss);
  800. </style>