bjzshz.vue 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384
  1. <template>
  2. <div>
  3. <!-- 阴影背景
  4. <div class="bj_left"><img src="@/assets/images/sprhbj-left.png"/></div>
  5. <div class="bj_right"><img src="@/assets/images/sprhbj-right.png"/></div>-->
  6. <div class="bj_bottom"><img src="@/assets/images/sprhbj-bottom.png"/></div>
  7. <!--头部开始-->
  8. <div class="header">
  9. <h1>城市运行一网统管指挥中心</h1>
  10. </div>
  11. <!--头部结束-->
  12. <!-- 小头部 开始 -->
  13. <div class="nav_min">
  14. <div class="top_txt">
  15. <b>汽开区</b>
  16. <!-- <span>小雨</span>-->
  17. <!-- <span>9~16℃</span>-->
  18. </div>
  19. <div class="top_txt top_txt2">
  20. <span>{{ currentTime }}</span>
  21. <!-- <span>星期六</span>
  22. <b>11:16:58</b> -->
  23. </div>
  24. </div>
  25. <!-- 小头部 结束 -->
  26. <!-- 中间内容 开始 -->
  27. <div class="qkq_con">
  28. <!--左侧开始-->
  29. <div class="con_left_e">
  30. <div class="con_div">
  31. <div class="qkq_tit txt_t">新办企业数</div>
  32. <div id="qkq_bj1"></div>
  33. </div>
  34. <div class="con_div">
  35. <div class="qkq_tit txt_t">即办件统计数</div>
  36. <div class="qkq_qkq_div clearfix">
  37. <div class="qkq_hz fl">
  38. <p>即办件数:<b>{{ HandlingDocuments.instantProcessingQuantity }}</b></p>
  39. <p>承诺件数:<b>{{ HandlingDocuments.promisedQuantity }}</b></p>
  40. </div>
  41. <div id="qkq_bj2" class="fr"></div>
  42. </div>
  43. </div>
  44. <div class="con_div">
  45. <div class="qkq_tit txt_t">公安办件统计</div>
  46. <div id="qkq_bj3"></div>
  47. </div>
  48. </div>
  49. <div class="con_left_f">
  50. <div class="con_div qkq_bjzs">
  51. <div class="qkq_bjzs_con">
  52. <h4>{{ HallHandling.hallTotal }}</h4>
  53. <p>大厅办件总数</p>
  54. <div class="qkq_bjzs_bg"></div>
  55. <div class="qkq_bjzs_txt clearfix">
  56. <div class="qkq_bjzs_txt_fl fl">
  57. <div class="bjzs_txt">
  58. <p>建设用地(含临时建设</br>用地)规划许可证</p>
  59. <p style="margin-top: 15px"><b>{{ HallHandling.buildLandUse }}</b>件</p>
  60. </div>
  61. <div class="bjzs_txt">
  62. <p>建设工程(含临时建设</br>工程)规划许可证</p>
  63. <p style="margin-top: 15px"><b>{{ HallHandling.architecturalEngineering }}</b>件</p>
  64. </div>
  65. <div class="bjzs_txt">
  66. <p>建筑工程施工许可证</p>
  67. <p><b>{{ HallHandling.architecturalLicence }}</b>件</p>
  68. </div>
  69. <div class="bjzs_txt">
  70. <p>年度平均审批用时</br>项目用时</p>
  71. <p style="margin-top: 15px"><b>{{ HallHandling.projectTime }}</b>件</p>
  72. </div>
  73. </div>
  74. <div class="qkq_bjzs_txt_fr fr">
  75. <div class="bjzs_txt">
  76. <p>年度平均审批用时</br>立项用地阶段</p>
  77. <p style="margin-top: 15px"><b>{{ HallHandling.projectApprovalStage }}</b>件</p>
  78. </div>
  79. <div class="bjzs_txt">
  80. <p>年度平均审批用时</br>工程规划阶段</p>
  81. <p style="margin-top: 15px"><b>{{ HallHandling.planStage }}</b>件</p>
  82. </div>
  83. <div class="bjzs_txt">
  84. <p>年度平均审批用时</br>施工许可阶段</p>
  85. <p style="margin-top: 15px"><b>{{ HallHandling.permitStage }}</b>件</p>
  86. </div>
  87. <div class="bjzs_txt">
  88. <p>年度平均审批用时</br>竣工验收阶段</p>
  89. <p style="margin-top: 15px"><b>{{ HallHandling.acceptancePhase }}</b>件</p>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="con_div">
  96. <div class="qkq_tit txt_t">待提供板块</div>
  97. <div class="qkq_bjs_con">
  98. <div class="qkq_bjs">
  99. <img src="../../assets/images/qkq_icon19.png"/>
  100. <div class="qkq_bjs_txt">
  101. <p>待提供板块1</p>
  102. <p><b>72</b>件</p>
  103. </div>
  104. </div>
  105. <div class="qkq_bjs">
  106. <img src="../../assets/images/qkq_icon19.png"/>
  107. <div class="qkq_bjs_txt">
  108. <p>待提供板块2</p>
  109. <p><b>72</b>件</p>
  110. </div>
  111. </div>
  112. <div class="qkq_bjs">
  113. <img src="../../assets/images/qkq_icon19.png"/>
  114. <div class="qkq_bjs_txt">
  115. <p>待提供板块3</p>
  116. <p><b>72</b>件</p>
  117. </div>
  118. </div>
  119. <div class="qkq_bjs">
  120. <img src="../../assets/images/qkq_icon19.png"/>
  121. <div class="qkq_bjs_txt">
  122. <p>待提供板块4</p>
  123. <p><b>72</b>件</p>
  124. </div>
  125. </div>
  126. </div>
  127. <div class="qkq_bjs_con">
  128. <div class="qkq_bjs">
  129. <img src="../../assets/images/qkq_icon19.png"/>
  130. <div class="qkq_bjs_txt">
  131. <p>待提供板块5</p>
  132. <p><b>72</b>件</p>
  133. </div>
  134. </div>
  135. <div class="qkq_bjs">
  136. <img src="../../assets/images/qkq_icon19.png"/>
  137. <div class="qkq_bjs_txt">
  138. <p>待提供板块6</p>
  139. <p><b>72</b>件</p>
  140. </div>
  141. </div>
  142. <div class="qkq_bjs">
  143. <img src="../../assets/images/qkq_icon19.png"/>
  144. <div class="qkq_bjs_txt">
  145. <p>待提供板块7</p>
  146. <p><b>72</b>件</p>
  147. </div>
  148. </div>
  149. <div class="qkq_bjs">
  150. <img src="../../assets/images/qkq_icon19.png"/>
  151. <div class="qkq_bjs_txt">
  152. <p>待提供板块8</p>
  153. <p><b>72</b>件</p>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. <div class="con_left_g">
  160. <div class="con_div">
  161. <div class="qkq_tit txt_t">好差评统计</div>
  162. <div id="qkq_bj4"></div>
  163. </div>
  164. <div class="con_div">
  165. <div class="qkq_tit txt_t">办结率统计</div>
  166. <div class="qkq_qkq_div clearfix">
  167. <div class="qkq_hz qkq_hz2 fl">
  168. <p>自然人办件数:<b>{{ CompletionRate.numberOfProcessedItems }}</b></p>
  169. <p>自然人办结数:<b>{{ CompletionRate.completedQuantity }}</b></p>
  170. </div>
  171. <div id="qkq_bj5" class="fr"></div>
  172. </div>
  173. </div>
  174. <div class="con_div">
  175. <div class="qkq_tit txt_t">高频事项Top10</div>
  176. <div class="qkq_sxtop">
  177. <p><a><i>1</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>5442件</span></p>
  178. <p><a><i>2</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>4322件</span></p>
  179. <p><a><i>3</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>3618件</span></p>
  180. <p><a><i>4</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>7214件</span></p>
  181. <p><a><i>5</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>3628件</span></p>
  182. <p><a><i>6</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>1578件</span></p>
  183. <p><a><i>7</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>2145件</span></p>
  184. <p><a><i>8</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>7652件</span></p>
  185. <p><a><i>9</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>3861件</span></p>
  186. <p><a><i>10</i>劳动用工备案(签订劳动合同,劳动合同法)</a><span>3728件</span></p>
  187. </div>
  188. </div>
  189. </div>
  190. <!--左侧结束-->
  191. </div>
  192. <!-- 中间内容 结束 -->
  193. <!--底部开始-->
  194. <div class="footer">
  195. <div class="nav-bottom">
  196. <div class="nav-bottom-left">
  197. <div class="nav-li-left" @click="handleNavigation('jjyx')">
  198. <span>经济运行</span>
  199. </div>
  200. <div class="nav-li-left" @click="handleNavigation('csgl')">
  201. <span>城市管理</span>
  202. </div>
  203. <div class="nav-li-left" @click="handleNavigation('jtzl')">
  204. <span>交通治理</span>
  205. </div>
  206. <div class="nav-li-left" @click="handleNavigation('jczl')">
  207. <span>基层治理</span>
  208. </div>
  209. </div>
  210. <div class="nav-home-middle" @click="homePage('weather')">
  211. <img src="@/assets/images/home-btn.png"/>
  212. <a>返回首页</a>
  213. </div>
  214. <div class="nav-bottom-right">
  215. <div class="nav-li-right" @click="handleNavigation('yshj_new')">
  216. <span>营商环境</span>
  217. </div>
  218. <div class="nav-li-right on" @click="handleNavigation('bjzshz')">
  219. <span>政务运行</span>
  220. </div>
  221. <div class="nav-li-right" @click="handleNavigation('aqyj')">
  222. <span>安全应急</span>
  223. </div>
  224. <div class="nav-li-right" @click="handleNavigation('fwyq')">
  225. <span>服务一汽</span>
  226. </div>
  227. </div>
  228. </div>
  229. </div>
  230. <!--底部开始-->
  231. </div>
  232. </template>
  233. <script>
  234. import * as echarts from 'echarts'
  235. import $ from 'jquery'
  236. import jQuery from 'jquery'
  237. import "@/assets/images/qkq_body.css";
  238. import "@/assets/images/qkq_index.css";
  239. import "@/assets/images/qkq_sprh.css";
  240. import {
  241. getCameraList
  242. } from "@/api/system/camera";
  243. import supermap from "@/views/supermap/supermap";
  244. import {
  245. lastOneBadList,
  246. lastOneBusinessList,
  247. lastOneRateList,
  248. lastOneHandlingList,
  249. lastOneDocumentsList, lastOneMattersList,lastOnePdocumentsList
  250. } from "@/api/system/zwyx";
  251. export default {
  252. name: "bjzshz",
  253. components: {
  254. supermap
  255. },
  256. data() {
  257. return {
  258. dropdownVisible: false,
  259. HandlingDocuments:{},
  260. BadReview:{},
  261. Business:{},
  262. CompletionRate:{},
  263. HallHandling:{},
  264. HighFrequencyMatters:{},
  265. PublicSecurityDocuments:{},
  266. cameras: [],
  267. sltProps: null,
  268. currentTime: '',
  269. btnOne: true,
  270. btnTwo: false,
  271. };
  272. // 可根据实际情况添加更多设备列表
  273. },
  274. created() {
  275. this.lastOneBadList();
  276. this.lastOneBusinessList();
  277. this.lastOneRateList();
  278. this.lastOneHandlingList();
  279. this.lastOneDocumentsList();
  280. this.lastOneMattersList();
  281. this.lastOnePdocumentsList();
  282. },
  283. mounted() {
  284. // this.qkq_bj1();
  285. // this.qkq_bj2();
  286. //
  287. // this.qkq_bj3();
  288. // this.qkq_bj4();
  289. // this.qkq_bj5();
  290. this.getCurrentTime();
  291. // 每秒刷新时间
  292. setInterval(() => {
  293. this.getCurrentTime();
  294. }, 1000);
  295. },
  296. methods: {
  297. sltHandle() {
  298. this.btnOne = true
  299. this.btnTwo = false
  300. this.$refs.supermap.getSupermap(null, null, null, "slt", null, null)
  301. },
  302. yxtHandle() {
  303. this.btnTwo = true
  304. this.btnOne = false
  305. this.$refs.supermap.getSupermap(null, null, null, "yxt", null, null)
  306. },
  307. handleNavigation(route) {
  308. this.$router.push({
  309. path: route
  310. });
  311. },
  312. homePage(route) {
  313. this.$router.push({
  314. path: route
  315. });
  316. },
  317. cameraList() {
  318. getCameraList().then(response => {
  319. this.cameras = response.data;
  320. })
  321. },
  322. //查询新办企业可视化
  323. lastOneBusinessList() {
  324. lastOneBusinessList().then(response => {
  325. this.Business = response.data;
  326. this.qkq_bj1(this.Business)
  327. })
  328. },
  329. //查询好差评可视化
  330. lastOneBadList() {
  331. lastOneBadList().then(response => {
  332. this.BadReview = response.data;
  333. this.qkq_bj4(this.BadReview)
  334. })
  335. },
  336. //查询办结率可视化
  337. lastOneRateList() {
  338. lastOneRateList().then(response => {
  339. this.CompletionRate = response.data;
  340. this.qkq_bj5(this.CompletionRate)
  341. })
  342. },
  343. //查询大厅办件可视化
  344. lastOneHandlingList() {
  345. lastOneHandlingList().then(response => {
  346. this.HallHandling = response.data;
  347. })
  348. },
  349. //查询即办件可视化
  350. lastOneDocumentsList() {
  351. lastOneDocumentsList().then(response => {
  352. this.HandlingDocuments = response.data;
  353. this.qkq_bj2(this.HandlingDocuments)
  354. })
  355. },
  356. //查询高频事项可视化
  357. lastOneMattersList() {
  358. lastOneMattersList().then(response => {
  359. this.HighFrequencyMatters = response.data;
  360. })
  361. },
  362. //查询公安办件可视化
  363. lastOnePdocumentsList() {
  364. lastOnePdocumentsList().then(response => {
  365. this.PublicSecurityDocuments = response.data;
  366. this.qkq_bj3(this.PublicSecurityDocuments)
  367. })
  368. },
  369. toggleDropdown(event) {
  370. this.dropdownVisible = !this.dropdownVisible;
  371. },
  372. qkq_bj1(val) {
  373. //新办企业数
  374. var myChart = echarts.init(document.getElementById('qkq_bj1'));
  375. let labelData = val.labelData;
  376. let data = val.valueNewEnterprises;
  377. var json = {
  378. chart0: {
  379. xcategory: labelData,
  380. low: data,
  381. lowLine: [],
  382. }
  383. };
  384. var zrUtil = echarts.util;
  385. zrUtil.each(json.chart0.xcategory, function (item, index) {
  386. json.chart0.lowLine.push([{
  387. coord: [index, json.chart0.low[index]]
  388. }, {
  389. coord: [index + 1, json.chart0.low[index + 1]]
  390. }]);
  391. });
  392. var option = {
  393. grid: {
  394. top: 30,
  395. left: 10,
  396. right: 10,
  397. bottom: 0,
  398. containLabel: true,
  399. },
  400. tooltip: {
  401. trigger: 'axis',
  402. axisPointer: {
  403. lineStyle: {
  404. color: {
  405. type: 'linear',
  406. x: 0,
  407. y: 0,
  408. x2: 0,
  409. y2: 1,
  410. colorStops: [
  411. {
  412. offset: 0,
  413. color: 'rgba(255,255,255,0)', // 0% 处的颜色
  414. },
  415. {
  416. offset: 0.5,
  417. color: 'rgba(255,255,255,1)', // 100% 处的颜色
  418. },
  419. {
  420. offset: 1,
  421. color: 'rgba(255,255,255,0)', // 100% 处的颜色
  422. },
  423. ],
  424. global: false, // 缺省为 false
  425. },
  426. },
  427. },
  428. },
  429. xAxis: [
  430. {
  431. type: 'category',
  432. boundaryGap: false,
  433. axisLabel: {
  434. formatter: '{value}',
  435. fontSize: 14,
  436. margin: 20,
  437. textStyle: {
  438. color: '#7ec7ff',
  439. },
  440. },
  441. axisLine: {
  442. lineStyle: {
  443. color: '#243753',
  444. },
  445. },
  446. splitLine: {
  447. show: false,
  448. lineStyle: {
  449. color: '#243753',
  450. },
  451. },
  452. axisTick: {
  453. show: false,
  454. },
  455. data: labelData,
  456. },
  457. ],
  458. yAxis: [
  459. {
  460. boundaryGap: false,
  461. type: 'value',
  462. axisLabel: {
  463. textStyle: {
  464. color: '#7ec7ff',
  465. },
  466. },
  467. nameTextStyle: {
  468. color: '#fff',
  469. fontSize: 12,
  470. lineHeight: 40,
  471. },
  472. splitLine: {
  473. lineStyle: {
  474. color: '#243753',
  475. },
  476. },
  477. axisLine: {
  478. show: true,
  479. lineStyle: {
  480. color: '#283352',
  481. },
  482. },
  483. axisTick: {
  484. show: false,
  485. },
  486. },
  487. ],
  488. series: [
  489. {
  490. name: '报名',
  491. type: 'line',
  492. smooth: true,
  493. showSymbol: true,
  494. symbolSize: 8,
  495. zlevel: 3,
  496. itemStyle: {
  497. color: '#19a3df',
  498. borderColor: '#a3c8d8',
  499. },
  500. areaStyle: {
  501. normal: {
  502. color: new echarts.graphic.LinearGradient(
  503. 0,
  504. 0,
  505. 0,
  506. 1,
  507. [
  508. {
  509. offset: 0,
  510. color: 'rgba(88,255,255,0.2)',
  511. },
  512. {
  513. offset: 0.8,
  514. color: 'rgba(88,255,255,0)',
  515. },
  516. ],
  517. false
  518. ),
  519. },
  520. },
  521. data: data,
  522. },
  523. {
  524. name: '实施计划',
  525. type: 'lines',
  526. coordinateSystem: 'cartesian2d',
  527. zlevel: 1,
  528. smooth: true,
  529. symbol: 'circle',
  530. effect: {
  531. show: true,
  532. smooth: true,
  533. period: 2,
  534. symbolSize: 8
  535. },
  536. lineStyle: {
  537. normal: {
  538. color: '#19a3df',
  539. width: 0,
  540. opacity: 0,
  541. curveness: 0,
  542. }
  543. },
  544. data: json.chart0.lowLine
  545. }
  546. ],
  547. };
  548. if (option) {
  549. myChart.setOption(option);
  550. }
  551. },
  552. qkq_bj2(val) {
  553. var myChart = echarts.init(document.getElementById('qkq_bj2'));
  554. var getmax = 100;
  555. //要改变的数据
  556. var getvalue = val.immediateRate;
  557. var option = {
  558. grid: {
  559. top: 0,
  560. bottom: 0,
  561. left: 0
  562. },
  563. angleAxis: {
  564. show: false,
  565. max: (getmax * 360) / 270, //-45度到225度,二者偏移值是270度除360度
  566. type: 'value',
  567. startAngle: 225, //极坐标初始角度
  568. splitLine: {
  569. show: false,
  570. },
  571. },
  572. barMaxWidth: 20, //圆环宽度
  573. radiusAxis: {
  574. show: false,
  575. type: 'category',
  576. },
  577. //圆环位置和大小
  578. polar: {
  579. center: ['50%', '50%'],
  580. radius: '170%',
  581. },
  582. series: [
  583. {
  584. type: 'bar',
  585. data: [
  586. {
  587. //上层圆环,显示数据
  588. value: getvalue,
  589. itemStyle: {
  590. color: '#2AD2FB',
  591. },
  592. },
  593. ],
  594. barGap: '-100%', //柱间距离,上下两层圆环重合
  595. coordinateSystem: 'polar',
  596. roundCap: true, //顶端圆角
  597. z: 3, //圆环层级,同zindex
  598. },
  599. {
  600. //下层圆环,显示最大值
  601. type: 'bar',
  602. data: [
  603. {
  604. value: getmax,
  605. itemStyle: {
  606. color: '#164B9F',
  607. opacity: 1,
  608. borderWidth: 0,
  609. },
  610. },
  611. ],
  612. barGap: '-100%',
  613. coordinateSystem: 'polar',
  614. roundCap: true,
  615. z: 1,
  616. },
  617. //仪表盘
  618. {
  619. type: 'gauge',
  620. startAngle: 225, //起始角度,同极坐标
  621. endAngle: -45, //终止角度,同极坐标
  622. axisLine: {
  623. show: false,
  624. },
  625. splitLine: {
  626. show: false,
  627. },
  628. axisTick: {
  629. show: false,
  630. },
  631. axisLabel: {
  632. show: false,
  633. },
  634. splitLabel: {
  635. show: false,
  636. },
  637. pointer: {
  638. // 分隔线
  639. shadowColor: 'auto', //默认透明
  640. shadowBlur: 5,
  641. length: '50%',
  642. width: '2',
  643. show: false,
  644. },
  645. itemStyle: {
  646. color: '#1598FF',
  647. borderColor: '#1598FF',
  648. borderWidth: 6,
  649. },
  650. detail: {
  651. formatter: function (params) {
  652. // return '完成率\n'+getvalue + '%';
  653. return `{wcl|即办率\n}{number|${getvalue + '%'}}`;
  654. },
  655. rich: {
  656. number: {
  657. fontSize: 25,
  658. textAlign: 'center',
  659. },
  660. wcl: {
  661. fontSize: 16,
  662. textAlign: 'center',
  663. },
  664. },
  665. color: '#fff',
  666. lineHeight: 30,
  667. offsetCenter: ['0', '0'],
  668. },
  669. title: {
  670. show: false,
  671. },
  672. data: [
  673. {
  674. value: getvalue,
  675. },
  676. ],
  677. },
  678. {
  679. name: '外部刻度',
  680. type: 'gauge',
  681. // center: ['20%', '50%'],
  682. radius: '70%',
  683. min: 0, //最小刻度
  684. max: 100, //最大刻度
  685. splitNumber: 10, //刻度数量
  686. startAngle: 225,
  687. endAngle: -45,
  688. axisLine: {
  689. show: true,
  690. lineStyle: {
  691. width: 1,
  692. color: [[1, 'rgba(0,0,0,0)']],
  693. },
  694. }, //仪表盘轴线
  695. axisLabel: {
  696. show: false,
  697. color: '#4d5bd1',
  698. distance: 25,
  699. }, //刻度标签。
  700. axisTick: {
  701. show: true,
  702. splitNumber: 7,
  703. lineStyle: {
  704. color: '#086CAF', //用颜色渐变函数不起作用
  705. width: 2,
  706. },
  707. length: -8,
  708. }, //刻度样式
  709. splitLine: {
  710. show: false,
  711. length: -20,
  712. lineStyle: {
  713. color: '#C7CBCF', //用颜色渐变函数不起作用
  714. },
  715. }, //分隔线样式
  716. detail: {
  717. show: false,
  718. },
  719. pointer: {
  720. show: false,
  721. },
  722. },
  723. ],
  724. };
  725. myChart.setOption(option);
  726. if (option) {
  727. myChart.setOption(option);
  728. }
  729. },
  730. qkq_bj3(val) {
  731. var myChart = echarts.init(document.getElementById('qkq_bj3'));
  732. var labelData = val.labelData;
  733. var data1 = val.valueForeigners;
  734. var data2 = val.valuePassport;
  735. var data3 = val.valueHongKong;
  736. var data4 = val.valueTaiwan;
  737. var json1 = {
  738. chart0: {
  739. xcategory: labelData,
  740. low: data1,
  741. lowLine: [],
  742. }
  743. };
  744. var zrUtil = echarts.util;
  745. zrUtil.each(json1.chart0.xcategory, function (item, index) {
  746. json1.chart0.lowLine.push([{
  747. coord: [index, json1.chart0.low[index]]
  748. }, {
  749. coord: [index + 1, json1.chart0.low[index + 1]]
  750. }]);
  751. });
  752. var option = {
  753. title: {
  754. text: '',
  755. textStyle: {
  756. align: 'center',
  757. color: '#fff',
  758. fontSize: 20,
  759. },
  760. top: '5%',
  761. left: 'center',
  762. },
  763. tooltip: {
  764. trigger: 'axis',
  765. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  766. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  767. }
  768. },
  769. grid: {
  770. left: '2%',
  771. right: '4%',
  772. bottom: '14%',
  773. top: '16%',
  774. containLabel: true
  775. },
  776. legend: {
  777. data: ['护', '港', '台', "外国人"],
  778. right: 10,
  779. top: 12,
  780. textStyle: {
  781. color: "#fff"
  782. },
  783. itemWidth: 12,
  784. itemHeight: 10,
  785. // itemGap: 35
  786. },
  787. xAxis: {
  788. type: 'category',
  789. data: labelData,
  790. axisLine: {
  791. lineStyle: {
  792. color: 'white'
  793. }
  794. },
  795. axisLabel: {
  796. // interval: 0,
  797. // rotate: 40,
  798. textStyle: {
  799. fontFamily: 'Microsoft YaHei'
  800. }
  801. },
  802. },
  803. yAxis: {
  804. type: 'value',
  805. max: '1200',
  806. axisLine: {
  807. show: false,
  808. lineStyle: {
  809. color: 'white'
  810. }
  811. },
  812. splitLine: {
  813. show: true,
  814. lineStyle: {
  815. color: 'rgba(255,255,255,0.3)'
  816. }
  817. },
  818. axisLabel: {}
  819. },
  820. "dataZoom": [{
  821. "show": true,
  822. "height": 8,
  823. "xAxisIndex": [
  824. 0
  825. ],
  826. bottom: '8%',
  827. "start": 10,
  828. "end": 90,
  829. handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
  830. handleSize: '110%',
  831. handleStyle: {
  832. color: "#d3dee5",
  833. },
  834. textStyle: {
  835. color: "#fff"
  836. },
  837. borderColor: "#90979c"
  838. }, {
  839. "type": "inside",
  840. "show": true,
  841. "height": 15,
  842. "start": 1,
  843. "end": 35
  844. }],
  845. series: [{
  846. name: '护',
  847. type: 'bar',
  848. barWidth: '15%',
  849. itemStyle: {
  850. normal: {
  851. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  852. offset: 0,
  853. color: '#fccb05'
  854. }, {
  855. offset: 1,
  856. color: '#f5804d'
  857. }]),
  858. barBorderRadius: 12,
  859. },
  860. emphasis: {
  861. barBlur: 20, // 流光效果宽度
  862. barShadowBlur: 20, // 阴影的宽度
  863. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  864. offset: 0,
  865. color: '#fccb05'
  866. }, {
  867. offset: 1,
  868. color: '#f5804d'
  869. }]) // 流光效果的颜色
  870. }
  871. },
  872. data: data2
  873. },
  874. {
  875. name: '港',
  876. type: 'bar',
  877. barWidth: '15%',
  878. itemStyle: {
  879. normal: {
  880. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  881. offset: 0,
  882. color: '#8bd46e'
  883. }, {
  884. offset: 1,
  885. color: '#09bcb7'
  886. }]),
  887. barBorderRadius: 11,
  888. },
  889. emphasis: {
  890. barBlur: 20,
  891. barShadowBlur: 20,
  892. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  893. offset: 0,
  894. color: '#8bd46e'
  895. }, {
  896. offset: 1,
  897. color: '#09bcb7'
  898. }])
  899. }
  900. },
  901. data: data3
  902. },
  903. {
  904. name: '台',
  905. type: 'bar',
  906. barWidth: '15%',
  907. itemStyle: {
  908. normal: {
  909. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  910. offset: 0,
  911. color: '#248ff7'
  912. }, {
  913. offset: 1,
  914. color: '#6851f1'
  915. }]),
  916. barBorderRadius: 11,
  917. },
  918. emphasis: {
  919. barBlur: 20,
  920. barShadowBlur: 20,
  921. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  922. offset: 0,
  923. color: '#248ff7'
  924. }, {
  925. offset: 1,
  926. color: '#6851f1'
  927. }])
  928. }
  929. },
  930. data: data4
  931. }, {
  932. name: "外国人",
  933. type: "line",
  934. symbolSize: 10,
  935. symbol: 'circle',
  936. itemStyle: {
  937. normal: {
  938. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  939. offset: 0,
  940. color: '#0000ff'
  941. }, {
  942. offset: 1,
  943. color: '#00ffff'
  944. }]),
  945. barBorderRadius: 0,
  946. label: {
  947. show: true,
  948. position: "top",
  949. formatter: function (p) {
  950. return p.value > 0 ? (p.value) : '';
  951. }
  952. }
  953. }
  954. },
  955. data: data1
  956. }, {
  957. name: '外国人',
  958. type: 'lines',
  959. coordinateSystem: 'cartesian2d',
  960. zlevel: 1,
  961. smooth: true,
  962. symbol: 'circle',
  963. effect: {
  964. show: true,
  965. smooth: true,
  966. period: 4,
  967. symbolSize: 8
  968. },
  969. lineStyle: {
  970. normal: {
  971. color: '#00ffff',
  972. width: 0,
  973. opacity: 0,
  974. curveness: 0,
  975. }
  976. },
  977. data: json1.chart0.lowLine,
  978. },]
  979. };
  980. if (option) {
  981. myChart.setOption(option);
  982. }
  983. },
  984. qkq_bj4(val) {
  985. var myChart = echarts.init(document.getElementById('qkq_bj4'));
  986. var zdslColorList = ['#D0A00E', '#34DA62', '#00C0E9', '#0096F3', '#33CCFF'];
  987. // 假设这是满意度数据的最大值,用于流光效果的终点
  988. var maxSatisfaction = Math.max(...[100, 100, 100, 100, 100]);
  989. let valueData = val.valueData;
  990. let labelData = val.labelData;
  991. var option = {
  992. grid: {
  993. top: '5%',
  994. left: '3%',
  995. right: '3%',
  996. bottom: '0',
  997. containLabel: true
  998. },
  999. tooltip: {
  1000. backgroundColor: 'rgba(65,114,231,0.8)',
  1001. show: false,
  1002. },
  1003. xAxis: {
  1004. show: false,
  1005. type: 'value'
  1006. },
  1007. yAxis: [{
  1008. type: 'category',
  1009. data: labelData,
  1010. axisLabel: {
  1011. show: true,
  1012. textStyle: {
  1013. color: '#ADD6FF',
  1014. fontSize: '12'
  1015. }
  1016. },
  1017. splitLine: {
  1018. show: false
  1019. },
  1020. axisTick: {
  1021. show: false
  1022. },
  1023. axisLine: {
  1024. show: false
  1025. },
  1026. },
  1027. {
  1028. splitLine: {
  1029. show: false
  1030. },
  1031. axisTick: {
  1032. show: false
  1033. },
  1034. axisLine: {
  1035. show: false
  1036. },
  1037. axisLabel: {
  1038. show: true,
  1039. textStyle: {
  1040. color: '#ADD6FF',
  1041. fontSize: '12'
  1042. }
  1043. },
  1044. data: valueData
  1045. }
  1046. ],
  1047. series: [{
  1048. name: "满意度", // bar图的外边框
  1049. type: "bar",
  1050. barWidth: "40%",
  1051. yAxisIndex: 0,
  1052. data: valueData.map((item, i) => {
  1053. return {
  1054. value: item,
  1055. itemStyle: {
  1056. color: "rgba(0,0,0,0)",
  1057. barBorderColor: zdslColorList[i],
  1058. borderWidth: 1,
  1059. shadowColor: "#17209c",
  1060. shadowBlur: 4
  1061. }
  1062. }
  1063. }),
  1064. },
  1065. {
  1066. name: "满意度", //这个是Bar图
  1067. type: 'bar',
  1068. yAxisIndex: 1,
  1069. barWidth: "40%",
  1070. data: valueData
  1071. },
  1072. {
  1073. name: '流光效果',
  1074. type: 'lines',
  1075. zlevel: 1, // 确保流光在条形图之上
  1076. coordinateSystem: 'cartesian2d',
  1077. data: valueData.map((item, index) => {
  1078. return {
  1079. coords: [
  1080. [0, index],
  1081. [item / maxSatisfaction * 100, index] // 将满意度数据转换为百分比形式,以适应x轴的范围
  1082. ]
  1083. };
  1084. }),
  1085. effect: {
  1086. show: true,
  1087. period: 2.5,
  1088. trailLength: 0.5, //控制拖尾长度
  1089. symbolSize: [15, 2],
  1090. symbol: this.$store.state.common.echarts_baseStreamer,
  1091. loop: true,
  1092. color: '#fff' //流光颜色
  1093. },
  1094. lineStyle: {
  1095. width: 0,
  1096. opacity: 0.6,
  1097. curveness: 0
  1098. },
  1099. }
  1100. ],
  1101. itemStyle: {
  1102. color: function (params) {
  1103. return zdslColorList[params.dataIndex]
  1104. }
  1105. }
  1106. }
  1107. if (option) {
  1108. myChart.setOption(option);
  1109. }
  1110. },
  1111. qkq_bj5(val) {
  1112. var myChart = echarts.init(document.getElementById('qkq_bj5'));
  1113. var getmax = 100;
  1114. //要改变的数据
  1115. var getvalue = val.completionRate;
  1116. var option = {
  1117. grid: {
  1118. top: 0,
  1119. bottom: 0,
  1120. left: 0
  1121. },
  1122. angleAxis: {
  1123. show: false,
  1124. max: (getmax * 360) / 270, //-45度到225度,二者偏移值是270度除360度
  1125. type: 'value',
  1126. startAngle: 225, //极坐标初始角度
  1127. splitLine: {
  1128. show: false,
  1129. },
  1130. },
  1131. barMaxWidth: 20, //圆环宽度
  1132. radiusAxis: {
  1133. show: false,
  1134. type: 'category',
  1135. },
  1136. //圆环位置和大小
  1137. polar: {
  1138. center: ['50%', '50%'],
  1139. radius: '170%',
  1140. },
  1141. series: [
  1142. {
  1143. type: 'bar',
  1144. data: [
  1145. {
  1146. //上层圆环,显示数据
  1147. value: getvalue,
  1148. itemStyle: {
  1149. color: '#2AD2FB',
  1150. },
  1151. },
  1152. ],
  1153. barGap: '-100%', //柱间距离,上下两层圆环重合
  1154. coordinateSystem: 'polar',
  1155. roundCap: true, //顶端圆角
  1156. z: 3, //圆环层级,同zindex
  1157. },
  1158. {
  1159. //下层圆环,显示最大值
  1160. type: 'bar',
  1161. data: [
  1162. {
  1163. value: getmax,
  1164. itemStyle: {
  1165. color: '#164B9F',
  1166. opacity: 1,
  1167. borderWidth: 0,
  1168. },
  1169. },
  1170. ],
  1171. barGap: '-100%',
  1172. coordinateSystem: 'polar',
  1173. roundCap: true,
  1174. z: 1,
  1175. },
  1176. //仪表盘
  1177. {
  1178. type: 'gauge',
  1179. startAngle: 225, //起始角度,同极坐标
  1180. endAngle: -45, //终止角度,同极坐标
  1181. axisLine: {
  1182. show: false,
  1183. },
  1184. splitLine: {
  1185. show: false,
  1186. },
  1187. axisTick: {
  1188. show: false,
  1189. },
  1190. axisLabel: {
  1191. show: false,
  1192. },
  1193. splitLabel: {
  1194. show: false,
  1195. },
  1196. pointer: {
  1197. // 分隔线
  1198. shadowColor: 'auto', //默认透明
  1199. shadowBlur: 5,
  1200. length: '50%',
  1201. width: '2',
  1202. show: false,
  1203. },
  1204. itemStyle: {
  1205. color: '#1598FF',
  1206. borderColor: '#1598FF',
  1207. borderWidth: 6,
  1208. },
  1209. detail: {
  1210. formatter: function (params) {
  1211. // return '完成率\n'+getvalue + '%';
  1212. return `{wcl|办结率\n}{number|${getvalue + '%'}}`;
  1213. },
  1214. rich: {
  1215. number: {
  1216. fontSize: 25,
  1217. textAlign: 'center',
  1218. },
  1219. wcl: {
  1220. fontSize: 16,
  1221. textAlign: 'center',
  1222. },
  1223. },
  1224. color: '#fff',
  1225. lineHeight: 30,
  1226. offsetCenter: ['0', '0'],
  1227. },
  1228. title: {
  1229. show: false,
  1230. },
  1231. data: [
  1232. {
  1233. value: getvalue,
  1234. },
  1235. ],
  1236. },
  1237. {
  1238. name: '外部刻度',
  1239. type: 'gauge',
  1240. // center: ['20%', '50%'],
  1241. radius: '70%',
  1242. min: 0, //最小刻度
  1243. max: 100, //最大刻度
  1244. splitNumber: 10, //刻度数量
  1245. startAngle: 225,
  1246. endAngle: -45,
  1247. axisLine: {
  1248. show: true,
  1249. lineStyle: {
  1250. width: 1,
  1251. color: [[1, 'rgba(0,0,0,0)']],
  1252. },
  1253. }, //仪表盘轴线
  1254. axisLabel: {
  1255. show: false,
  1256. color: '#4d5bd1',
  1257. distance: 25,
  1258. }, //刻度标签。
  1259. axisTick: {
  1260. show: true,
  1261. splitNumber: 7,
  1262. lineStyle: {
  1263. color: '#086CAF', //用颜色渐变函数不起作用
  1264. width: 2,
  1265. },
  1266. length: -8,
  1267. }, //刻度样式
  1268. splitLine: {
  1269. show: false,
  1270. length: -20,
  1271. lineStyle: {
  1272. color: '#C7CBCF', //用颜色渐变函数不起作用
  1273. },
  1274. }, //分隔线样式
  1275. detail: {
  1276. show: false,
  1277. },
  1278. pointer: {
  1279. show: false,
  1280. },
  1281. },
  1282. ],
  1283. };
  1284. myChart.setOption(option);
  1285. if (option) {
  1286. myChart.setOption(option);
  1287. }
  1288. },
  1289. getCurrentTime() {
  1290. const now = new Date();
  1291. const year = now.getFullYear();
  1292. const month = now.getMonth() + 1;
  1293. const date = now.getDate();
  1294. const day = now.getDay();
  1295. const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  1296. const hour = now.getHours();
  1297. const minute = now.getMinutes();
  1298. const second = now.getSeconds();
  1299. const formattedMonth = month < 10 ? `0${month}` : month;
  1300. const formattedDate = date < 10 ? `0${date}` : date;
  1301. const formattedHour = hour < 10 ? `0${hour}` : hour;
  1302. const formattedMinute = minute < 10 ? `0${minute}` : minute;
  1303. const formattedSecond = second < 10 ? `0${second}` : second;
  1304. this.currentTime =
  1305. `${year}年${formattedMonth}月${formattedDate}日 ${weekDays[day]} ${formattedHour}:${formattedMinute}:${formattedSecond}`;
  1306. },
  1307. }
  1308. };
  1309. // import '@/assets/images/leftnav.js';
  1310. $(function () {
  1311. var Accordion = function (el, multiple) {
  1312. this.el = el || {};
  1313. this.multiple = multiple || false;
  1314. // Variables privadas
  1315. var links = this.el.find('.link');
  1316. // Evento
  1317. links.on('click', {
  1318. el: this.el,
  1319. multiple: this.multiple
  1320. }, this.dropdown)
  1321. };
  1322. Accordion.prototype.dropdown = function (e) {
  1323. var $el = e.data.el;
  1324. let $this = $(this);
  1325. let $next = $this.next();
  1326. $next.slideToggle();
  1327. $this.parent().toggleClass('open');
  1328. if (!e.data.multiple) {
  1329. $el.find('.submenu').not($next).slideUp().parent().removeClass('open');
  1330. }
  1331. };
  1332. var accordion = new Accordion($('#accordion'), false);
  1333. $('.submenu li').click(function () {
  1334. $(this).addClass('current').siblings('li').removeClass('current');
  1335. });
  1336. });
  1337. </script>
  1338. <style>
  1339. /* 添加你的CSS样式 */
  1340. </style>