Merge remote-tracking branch 'origin/master'

This commit is contained in:
Zhang HaoYang 2023-12-24 18:17:31 +08:00
commit 1d23a9eaf0
21 changed files with 2075 additions and 905 deletions

BIN
src/assets/img/bookmark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

933
src/assets/js/china.js Normal file
View File

@ -0,0 +1,933 @@
/* eslint-disable no-undef */
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['exports', 'echarts'], factory);
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
// CommonJS
factory(exports, require('echarts'));
} else {
// Browser globals
factory({}, root.echarts);
}
})(this, function (exports, echarts) {
var log = function (msg) {
if (typeof console !== 'undefined') {
console && console.error && console.error(msg);
}
};
if (!echarts) {
log('ECharts is not Loaded');
return;
}
if (!echarts.registerMap) {
log('ECharts Map is not loaded');
return;
}
echarts.registerMap('china', {
type: 'FeatureCollection',
features: [
{
type: 'Feature',
id: '710000',
properties: {
id: '710000',
cp: [121.509062, 24.044332],
name: '台湾',
childNum: 6,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@°Ü¯Û'],
[
'@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ',
],
['@@\\p|WoYG¿¥I†j@¢'],
['@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I'],
['@@ÆEE—„kWqë @œ'],
['@@fced'],
['@@„¯ɜÄèaì¯ØǓIġĽ'],
['@@çûĖ롖hòř '],
],
encodeOffsets: [
[[122886, 24033]],
[[123335, 22980]],
[[122375, 24193]],
[[122518, 24117]],
[[124427, 22618]],
[[124862, 26043]],
[[126259, 26318]],
[[127671, 26683]],
],
},
},
{
type: 'Feature',
id: '130000',
properties: {
id: '130000',
cp: [114.502461, 38.045474],
name: '河北',
childNum: 3,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e'],
['@@U`Ts¿m‚'],
[
'@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~ž¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€’Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧĖ¸fŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgʊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇“gÚ¡IwÃ鑦ÅB‡Ï|Ç°…N«úmH¯‹âŸŽžŲIÄuШDž•¸‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃĶš¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\tŽa\\tĕtû{ġŒȧXýĪÓjùÎRb›š›fK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”lNut®Etq‚nsÁŠgA‹‹oH‡qCX‡”hfgu“‹WP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\mĆJfl@cĢ¬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®VŠ¹d^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qᵧš™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚',
],
],
encodeOffsets: [[[119712, 40641]], [[121616, 39981]], [[116462, 37237]]],
},
},
{
type: 'Feature',
id: '140000',
properties: {
id: '140000',
cp: [111.849248, 36.857014],
name: '山西',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@Þĩ҃S‰ra}Á€yWix±Üe´“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Ž•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœ“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz',
],
encodeOffsets: [[116874, 41716]],
},
},
{
type: 'Feature',
id: '150000',
properties: {
id: '150000',
cp: [111.670801, 41.818311],
name: '内蒙古',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
[
'@@¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–Rë¥_ŽsgÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸ‡¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉv¦wĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\ƒ‡@áügQ͋u¥Fƒ“›¿Jû‡]|mvāÎYua^WoÀa·­ząÒot׶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’‘¿ãZ•»X\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚá žŒG°ùnM¬¯†ˆÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µsKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚĒ¸ĞGȖƴƀj`ĢçĶāàŃºēĢƒĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTЪŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄ¾O¶ŠłKĊOj“Ě”j´ĜYp˜„ˆSĚÍ\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚–`[|òDŞĔöxElÖdH„ÀI`„Ď\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFĒœƌXƲąo½Ę‘\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ġu¦öČ^â£Ăh–šĖMÈÄw‚\\fŦ°W ¢¾luŸD„wŠ\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ',
],
],
encodeOffsets: [[[129102, 52189]]],
},
},
{
type: 'Feature',
id: '210000',
properties: {
id: '210000',
cp: [123.429096, 41.796767],
name: '辽宁',
childNum: 16,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@L–Ž@@s™a'],
['@@MnNm'],
['@@d‚c'],
['@@eÀ‚C@b‚“‰'],
['@@f‡…Xwkbr–Ä`qg'],
['@@^jtW‘Q'],
['@@~ Y]c'],
['@@G`ĔN^_¿Z‚ÃM'],
['@@iX¶B‹Y'],
['@@„YƒZ'],
['@@L_{Epf'],
['@@^WqCT\\'],
['@@\\[“‹§t|”¤_'],
['@@m`n_'],
['@@Ïxnj{q_×^Giip'],
[
'@@@œé^B†‡ntˆU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\ÀøíDm¦ÎbŨab‰œaĘ\\ľã‚¸a˜tÎSƐ´©v\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œm‰–sHy¨SðÑÌ\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] ¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA',
],
],
encodeOffsets: [
[[123686, 41445]],
[[126019, 40435]],
[[124393, 40128]],
[[126117, 39963]],
[[125322, 40140]],
[[126686, 40700]],
[[126041, 40374]],
[[125584, 40168]],
[[125453, 40165]],
[[125362, 40214]],
[[125280, 40291]],
[[125774, 39997]],
[[125976, 40496]],
[[125822, 39993]],
[[125509, 40217]],
[[122731, 40949]],
],
},
},
{
type: 'Feature',
id: '220000',
properties: {
id: '220000',
cp: [125.3245, 43.886841],
name: '吉林',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@‘”³PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHl•‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\rµÄl”iˆdā]|DÂVŒœˆÞ®ÜWnŒC”Œķ W‹§@\\¸‹ƒ‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia ɉ™È¹`\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚ŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWž‰ˆzƦŽ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@v¶eň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹ž“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae„GK}iã\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗŒ»…é\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘‘ýŸqT^rme™\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG',
],
encodeOffsets: [[130196, 42528]],
},
},
{
type: 'Feature',
id: '230000',
properties: {
id: '230000',
cp: [128.642464, 46.756967],
name: '黑龙江',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
[
'@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐ‹ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tŽ¸ĻN_yŸX`biN™Ku…P›£k‚—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙF暉A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡Šu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUÎ lkš^p{f¤lˆºlÆW –€˜PVܜPH”Êâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi†—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆’‡ŊŒž”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹš‹¤‡ŒƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\kzţ¦šnņäÔVĂîĪ¬|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”œŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”Ʀ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]',
],
],
encodeOffsets: [[[134456, 44547]]],
},
},
{
type: 'Feature',
id: '320000',
properties: {
id: '320000',
cp: [119.767413, 33.041544],
name: '江苏',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@cþÅPiŠ`ZŸRu¥É\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’”iZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@Ę¹hågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœòLh‰›Ěs©»œ}OӌGZz¶A\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ',
],
encodeOffsets: [[121740, 32276]],
},
},
{
type: 'Feature',
id: '330000',
properties: {
id: '330000',
cp: [120.153576, 29.287459],
name: '浙江',
childNum: 45,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@E^dQ]K'],
['@@jX^j‡'],
['@@sfŠbU‡'],
['@@qP\\xz[ck'],
['@@‘Rƒ¢‚FX}°[s_'],
['@@Cbœ\\—}'],
['@@e|v\\la{u'],
['@@v~u}'],
['@@QxÂF¯}'],
['@@¹nŒvÞs¯o'],
['@@rSkUEj'],
['@@bi­ZŒP'],
['@@p[}INf'],
['@@À¿€'],
['@@¹dnbŒ…'],
['@@rSŸBnR'],
['@@g~h}'],
['@@FlEk'],
['@@OdPc'],
['@@v[u\\'],
['@@FjâL~wyoo~›sµL–\\'],
['@@¬e¹aNˆ'],
['@@\\nÔ¡q]L³ë\\ÿ®ŒŽ'],
['@@ÊA­©[¬'],
['@@KxŒv­'],
['@@@hlIk]'],
['@@pW{o||j'],
['@@Md|_mC'],
['@@¢…X£ÏylD¼XˆtH'],
['@@hlÜ[LykAvyfw^Ež›¤'],
['@@fp¤Mus“R'],
['@@®_ma~•LÁ¬šZ'],
['@@iM„xZ'],
['@@ZcYd'],
['@@Z~dOSo|A¿qZv'],
['@@@`”EN¡v'],
['@@|–TY{'],
['@@@n@m'],
['@@XWkCT\\'],
['@@ºwšZRkĕWO¢'],
['@@™X®±Grƪ\\ÔáXq{‹'],
['@@ůTG°ĄLHm°UC‹'],
[
'@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВjē¢·ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈڜĒ±„‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst',
],
['@@o\\V’zRZ}y'],
['@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™'],
],
encodeOffsets: [
[[125592, 31553]],
[[125785, 31436]],
[[125729, 31431]],
[[125513, 31380]],
[[125223, 30438]],
[[125115, 30114]],
[[124815, 29155]],
[[124419, 28746]],
[[124095, 28635]],
[[124005, 28609]],
[[125e3, 30713]],
[[125111, 30698]],
[[125078, 30682]],
[[125150, 30684]],
[[124014, 28103]],
[[125008, 31331]],
[[125411, 31468]],
[[125329, 31479]],
[[125626, 30916]],
[[125417, 30956]],
[[125254, 30976]],
[[125199, 30997]],
[[125095, 31058]],
[[125083, 30915]],
[[124885, 31015]],
[[125218, 30798]],
[[124867, 30838]],
[[124755, 30788]],
[[124802, 30809]],
[[125267, 30657]],
[[125218, 30578]],
[[125200, 30562]],
[[124968, 30474]],
[[125167, 30396]],
[[124955, 29879]],
[[124714, 29781]],
[[124762, 29462]],
[[124325, 28754]],
[[123990, 28459]],
[[125366, 31477]],
[[125115, 30363]],
[[125369, 31139]],
[[122495, 31878]],
[[125329, 30690]],
[[125192, 30787]],
],
},
},
{
type: 'Feature',
id: '340000',
properties: {
id: '340000',
cp: [117.283042, 31.26119],
name: '安徽',
childNum: 3,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@^iuLX^'],
['@@‚e©Ehl'],
[
'@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆ„gPícOl_iCveaOjCh߸‹bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDE¶zAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥—őaSÕė™ñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜƶĊJhšp“˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆߎžX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴĖ¶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´',
],
],
encodeOffsets: [[[121722, 32278]], [[119475, 30423]], [[119168, 35472]]],
},
},
{
type: 'Feature',
id: '350000',
properties: {
id: '350000',
cp: [118.306239, 26.075302],
name: '福建',
childNum: 18,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@“zht´‡]'],
['@@aj^~ĆG—©O'],
['@@ed¨„C}}i'],
['@@@vˆPGsQ'],
['@@‰sBz‚ddW]Q'],
['@@SŽ¨Q“{'],
['@@NŽVucW'],
['@@qptBAq'],
['@@‰’¸[mu'],
['@@Q\\pD]_'],
['@@jSwUadpF'],
['@@eXª~ƒ•'],
['@@AjvFso'],
['@@fT–›_Çí\\Ÿ™—v|ba¦jZÆy€°'],
['@@IjJi'],
['@@wJI€ˆxš«¼AoNe{M­'],
['@@K‰±¡Óˆ”ČäeZ'],
[
'@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\@ åˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\_',
],
],
encodeOffsets: [
[[123250, 27563]],
[[122541, 27268]],
[[123020, 27189]],
[[122916, 27125]],
[[122887, 26845]],
[[122808, 26762]],
[[122568, 25912]],
[[122778, 26197]],
[[122515, 26757]],
[[122816, 26587]],
[[123388, 27005]],
[[122450, 26243]],
[[122578, 25962]],
[[121255, 25103]],
[[120987, 24903]],
[[122339, 25802]],
[[121042, 25093]],
[[122439, 26024]],
],
},
},
{
type: 'Feature',
id: '360000',
properties: {
id: '360000',
cp: [115.592151, 27.676493],
name: '江西',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@ĢĨƐgļˆ¼ÂMD~ņªe^\\^§„ý©j׍cZ†Ø¨zdÒaˆJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ðë” ¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\OkxtL‹ƒ‘Ú^~ýꋖqo슱_Êw§ÑªåƗā¼‹mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\˜„L‚‘²',
],
encodeOffsets: [[116689, 26234]],
},
},
{
type: 'Feature',
id: '370000',
properties: {
id: '370000',
cp: [118.000923, 36.275807],
name: '山东',
childNum: 13,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@Xjd]{K'],
['@@itbFHy'],
['@@HlGk'],
['@@T‚ŒGŸy'],
['@@K¬˜•‹U'],
['@@WdXc'],
['@@PtOs'],
['@@•LnXhc'],
['@@ppVƒu]Or'],
['@@cdzAUa'],
['@@udRhnCI‡'],
['@@ˆoIƒpR„'],
[
'@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞƄLĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌĒœbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐĖ¹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPk¶Môlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…CǷ돡ąuhÛ¡^Kx•C`C\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~Ż¸Y’I“] P‰umŝrƿ›‰›‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuŁŒg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ',
],
],
encodeOffsets: [
[[123806, 39303]],
[[123821, 39266]],
[[123742, 39256]],
[[123702, 39203]],
[[123649, 39066]],
[[123847, 38933]],
[[123580, 38839]],
[[123894, 37288]],
[[123043, 36624]],
[[123344, 38676]],
[[123522, 38857]],
[[123628, 38858]],
[[118260, 36742]],
],
},
},
{
type: 'Feature',
id: '410000',
properties: {
id: '410000',
cp: [113.665412, 33.757975],
name: '河南',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@•ýL™ùµP³swIÓxcŢĞð†´žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”‹ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\d\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\ÀœEhŽİgÞē X¼Pk–„|m',
],
encodeOffsets: [[118256, 37017]],
},
},
{
type: 'Feature',
id: '420000',
properties: {
id: '420000',
cp: [113.298572, 30.684355],
name: '湖北',
childNum: 3,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@AB‚'],
['@@lskt'],
[
'@@¾«}{ra®pîÃ\\™›{øCŠËyyB±„b\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙ抚ŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYŠ§HK„«Qy‰“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\É[T·™œ©oĕ@A¾w•ya¥Y\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊU¶eD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆĢ¶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤',
],
],
encodeOffsets: [[[113712, 34e3]], [[115612, 30507]], [[113649, 34054]]],
},
},
{
type: 'Feature',
id: '430000',
properties: {
id: '430000',
cp: [111.782279, 28.09409],
name: '湖南',
childNum: 3,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@—n„FTs'],
['@@ßÅÆችÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–Ģ¾ŠedžÄ©ĸG…œàGh‚€–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M'],
[
'@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹ıuZœmZcÒ IJĪ²SÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUŠ¾Å‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPĪ±œ£EXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\Ø i”ćymnú¨cj ¢»–GČìƊÿШXeĈĀ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\Ĕ[N¥ˀmĎă’J\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎŪƒƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\pē˜XhÆRC­üWGġu…§Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Ÿ€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ',
],
],
encodeOffsets: [[[115640, 30489]], [[112543, 27312]], [[116690, 26230]]],
},
},
{
type: 'Feature',
id: '440000',
properties: {
id: '440000',
cp: [113.280637, 23.125178],
name: '广东',
childNum: 24,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@QdˆAua'],
['@@ƒlxDLo'],
['@@sbhNLo'],
['@@Ă āŸ'],
['@@WltO[['],
['@@Krœ]S'],
['@@e„„I]y'],
['@@I|„Mym'],
['@@ƒÛ³LSŒž¼Y'],
['@@nvºB–ëui©`¾'],
['@@zdšÛ›Jw®'],
['@@†°…¯'],
['@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o'],
['@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh'],
['@@‹¶Ý’Ì‚vmĞh­ı‡Q'],
['@@HœŠdSjĒ¢D}war…“u«ZqadYM'],
['@@elŒ\\LqqU'],
['@@~rMo\\'],
['@@f„^ƒC'],
['@@øPªoj÷ÍÝħXČx”°Q¨ıXNv'],
['@@gÇƳˆŽˆ”oˆŠˆ[~tly'],
['@@E–ÆC¿‘'],
['@@OŽP'],
[
'@@w‹†đóg‰™ĝ—‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š––‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžˆ˜©Œž\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéʌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď׍YWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i',
],
],
encodeOffsets: [
[[117381, 22988]],
[[116552, 22934]],
[[116790, 22617]],
[[116973, 22545]],
[[116444, 22536]],
[[116931, 22515]],
[[116496, 22490]],
[[116453, 22449]],
[[113301, 21439]],
[[118726, 21604]],
[[118709, 21486]],
[[113210, 20816]],
[[115482, 22082]],
[[113171, 21585]],
[[113199, 21590]],
[[115232, 22102]],
[[115739, 22373]],
[[115134, 22184]],
[[113056, 21175]],
[[119573, 21271]],
[[119957, 24020]],
[[115859, 22356]],
[[116561, 22649]],
[[116285, 22746]],
],
},
},
{
type: 'Feature',
id: '450000',
properties: {
id: '450000',
cp: [108.320004, 22.82402],
name: '广西',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@H– TQ§•A'],
[
'@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝšlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloŽ¤™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹€cz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆƌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FĻ¼Ĺ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…€Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•‰•E“ďs‡’–ŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠ‹\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…XËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢J',
],
],
encodeOffsets: [[[111707, 21520]], [[107619, 25527]]],
},
},
{
type: 'Feature',
id: '460000',
properties: {
id: '460000',
cp: [109.83119, 19.031971],
name: '海南',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒš™zÐŘΰH¨Ƣb²_Ġ ',
],
encodeOffsets: [[112750, 20508]],
},
},
{
type: 'Feature',
id: '510000',
properties: {
id: '510000',
cp: [104.065735, 30.659462],
name: '四川',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@LqKr'],
[
'@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽıƣıĻmHH}siaX@iÇ°ÁÃ׃­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–‡mni{fk”\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›•‹œÅĭ€Ƌ•ěpwDóÖሯneQˌ•GCœýS]xŸ·ý‹•œŒ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZŽ°Iä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºTĀ£ŚæœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“×–_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`ĀŠz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„†L€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒŦyhoÚD®¯¢˜àFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\Z{åû^›',
],
],
encodeOffsets: [[[108815, 30935]], [[110617, 31811]]],
},
},
{
type: 'Feature',
id: '520000',
properties: {
id: '520000',
cp: [106.713478, 26.578343],
name: '贵州',
childNum: 3,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@†G\\†lY£‘in'],
['@@q‚|ˆ‚mc¯tχVSÎ'],
[
'@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\}—ƒG®u\\åPFq‹wÅaD…žK°ºâ_£ùbµ”‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„be¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_`oÒhŽ¶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KŠ³ŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„…ž£Tl®ctĽÚó{G­A‡ŒÇgeš‘d¿æaSba¥KKûj®_ć^\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}Ž±žGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝƀ‚–B`„œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½',
],
],
encodeOffsets: [[[112158, 27383]], [[112105, 27474]], [[112095, 27476]]],
},
},
{
type: 'Feature',
id: '530000',
properties: {
id: '530000',
cp: [101.512251, 24.740609],
name: '云南',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚‹lHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèƶStǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ ¶®dNœĄÄpªyŽ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށžSį¯‘³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀž„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\Ī¼Ä£UsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\_gz—]W¼ž~CÔē]bµogž_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\lˆMFlư£Ĝ„ÆyH“„‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`',
],
encodeOffsets: [[104636, 22969]],
},
},
{
type: 'Feature',
id: '540000',
properties: {
id: '540000',
cp: [89.132212, 30.860361],
name: '西藏',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@hžľxŽŖ‰xƒÒVŽ†ºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœ…œ\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´˜¦AvŽ¦w`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdŠ‰ªB]pj„•TO–‚n¤}®¦ƒČ¥d¢¼»ddš”Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀŻ¦¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒ€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVŠµ‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£àč²‹ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæńhnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™„§żćŠ˜ĆK„Ē°¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜´xx[xˆvĐCûĀŠìÖT¬¸^}Ìsòd´_Ž‡KgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxŠ¶F”œkĄźRzŀˆ~¶[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀšŶUńšĖ[QhlLüA†‹Ü\\†qR›Ą©',
],
encodeOffsets: [[90849, 37210]],
},
},
{
type: 'Feature',
id: '610000',
properties: {
id: '610000',
cp: [108.948024, 34.263161],
name: '陕西',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@˜—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎ”¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍ’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡Ï˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸ—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OĻ¹S|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cĎ°Â[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~Š¦UbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆ‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj',
],
encodeOffsets: [[110234, 38774]],
},
},
{
type: 'Feature',
id: '620000',
properties: {
id: '620000',
cp: [103.823557, 36.058039],
name: '甘肃',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@VuUv'],
[
'@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡Š‘BŠ°aZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„jWk’ɱŠOq›Wij\\a­‹Q\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aŠ¹cčecÇN•ĊãÁ\\č¯—dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒ®ƒ«|@Xwg]Aģ±¯‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒ”Å}QÂ|̋°ƅ¤ĩŪU ꡞÌZҞ\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”b•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v†·À|\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮŽ°Ɲ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK',
],
],
encodeOffsets: [[[108619, 36299]], [[108589, 36341]]],
},
},
{
type: 'Feature',
id: '630000',
properties: {
id: '630000',
cp: [96.778916, 35.623178],
name: '青海',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@InJm'],
[
'@@CƒÆ½OŃĦsΰ~Ē³¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNĪŒĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\m `Un„˜Ÿ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\ZŽ•¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kĀŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoį£ŸÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Óļ©•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒ”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSòėš£˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\_»™Š±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\ijŬű”YÂÿ¬jĖqŽßbŠ¸•¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňbĚ°ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\ªÚŒU\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\oäõ–F礻Ŷ×h¹]Clـ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌĪ¶ƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg',
],
],
encodeOffsets: [[[105308, 37219]], [[95370, 40081]]],
},
},
{
type: 'Feature',
id: '640000',
properties: {
id: '640000',
cp: [106.278179, 37.26637],
name: '宁夏',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
[
'@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\âÙH\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥ŽŽŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEu‚IÆ¢¥dXªƅx¿]mtÏwßRĶŒX¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀĖ¾iİbjÕ',
],
['@@mfwěwMrŢªv@G‰'],
],
encodeOffsets: [[[109366, 40242]], [[108600, 36303]]],
},
},
{
type: 'Feature',
id: '650000',
properties: {
id: '650000',
cp: [85.617733, 40.792818],
name: '新疆',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@QØĔ²X¨”~ǘBºjʐßØvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZĶƒèH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYwē¨ƒ{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\‚ś’nkO›w¥±ƒƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\“}µĿ‡QyŹ“›µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\wwwù³—V›ƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~ź¯šf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\ªÑò˜Üìc\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆšońéŒGš\\”¼C°ÌƁn´nxšÊOĨ’Ūƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FŽ‡Rěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜„‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ',
],
encodeOffsets: [[88824, 50096]],
},
},
{
type: 'Feature',
id: '110000',
properties: {
id: '110000',
cp: [116.405285, 40.104989],
name: '北京',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`Š¹­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwŚ¨Ud®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\‡¥A¨Ï‘ѨŠX\\¯œMK‘pA³[H…īu}}',
],
encodeOffsets: [[120023, 41045]],
},
},
{
type: 'Feature',
id: '120000',
properties: {
id: '120000',
cp: [117.190182, 38.825596],
name: '天津',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: [
'@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒ‚Š^L‚ˆrzWxˆZ^¨´T\\|~@I‰zƒ–‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~',
],
encodeOffsets: [[120237, 41215]],
},
},
{
type: 'Feature',
id: '310000',
properties: {
id: '310000',
cp: [121.472644, 31.231706],
name: '上海',
childNum: 6,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@ɧư¬EpƸÁxc‡'],
['@@©„ªƒ'],
['@@”MA‹‘š'],
['@@Qp݁E§ÉC¾'],
['@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó'],
['@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį'],
],
encodeOffsets: [
[[124702, 32062]],
[[124547, 32200]],
[[124808, 31991]],
[[124726, 32110]],
[[124903, 32376]],
[[124438, 32149]],
],
},
},
{
type: 'Feature',
id: '500000',
properties: {
id: '500000',
cp: [107.304962, 29.533155],
name: '重庆',
childNum: 2,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
[
'@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚Sæ “Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”›L‘ØgTkïƵNï¶}Gy“w\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\ÂoVnŽÓØ͙²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\¨\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBŠ¦zG¸rHe‚„N\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN',
],
['@@ifjN@s'],
],
encodeOffsets: [[[109628, 30765]], [[111725, 31320]]],
},
},
{
type: 'Feature',
id: '810000',
properties: {
id: '810000',
cp: [116.173355, 22.320048],
name: '香港',
childNum: 5,
},
geometry: {
type: 'MultiPolygon',
coordinates: [
['@@AlBk'],
['@@mŽn'],
['@@EpFo'],
['@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒ‘KŽ°ä¬XJmÐ đhI®æÔtSHn€Eˆ„ÒrÈc'],
['@@rMUw‡AS®€e'],
],
encodeOffsets: [
[[117111, 23002]],
[[117072, 22876]],
[[117045, 22887]],
[[116975, 23082]],
[[116882, 22747]],
],
},
},
{
type: 'Feature',
id: '820000',
properties: {
id: '820000',
cp: [112.84909, 21.198951],
name: '澳门',
childNum: 1,
},
geometry: {
type: 'Polygon',
coordinates: ['@@kÊd°å§s'],
encodeOffsets: [[116279, 22639]],
},
},
],
UTF8Encoding: !0,
});
});

View File

@ -1,4 +1,6 @@
<template> <template>
<div class="wrapper">
<LeftSide :category="category"></LeftSide>
<div class="DefinedPage" > <div class="DefinedPage" >
<div class="LeftPart" style="overflow: auto"> <div class="LeftPart" style="overflow: auto">
<div class="JustBack" style="width:670px;display:flex; flex-direction: row; flex-wrap: nowrap;height:430px !important;"> <div class="JustBack" style="width:670px;display:flex; flex-direction: row; flex-wrap: nowrap;height:430px !important;">
@ -129,7 +131,7 @@
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import HotRecomment from "@/components/detail/HotRecomment.vue"; import HotRecomment from "@/components/detail/HotRecomment.vue";
@ -139,13 +141,15 @@ import UserComment from "@/components/detail/UserComment.vue";
import Vue from "vue"; import Vue from "vue";
import * as echarts from 'echarts' import * as echarts from 'echarts'
import axios from "axios"; import axios from "axios";
import LeftSide from "@/components/home/LeftSide.vue";
Vue.prototype.$echarts = echarts; Vue.prototype.$echarts = echarts;
export default { export default {
name:"NavDetail", name:"NavDetail",
// eslint-disable-next-line vue/no-unused-components // eslint-disable-next-line vue/no-unused-components
components: {HotRecomment,NewRecomment,RandomRecomment,UserComment}, components: {LeftSide, HotRecomment,NewRecomment,RandomRecomment,UserComment},
data() { data() {
return { return {
category:[],
visible: false, visible: false,
// //
TimeList:[], TimeList:[],
@ -167,6 +171,7 @@ export default {
this.initPage(); this.initPage();
this.GetNav(this.UrlId); this.GetNav(this.UrlId);
this.initEchart(); this.initEchart();
this.getCategories();
}, },
created() { created() {
@ -176,6 +181,28 @@ export default {
}, },
methods: { methods: {
getCategories() {
let _this = this;
axios({
method: 'post',
url: '/api/UrlAndCate/disposeBookmarkExhibitedToJson',
}).then(function (res) {
// console.log(res);
if (res.data.data) {
_this.category = res.data.data;
} else {
return false;
}
}).catch((error) => {
Vue.prototype.$notify.error({
title: '错误',
message: error,
offset: 0
});
})
},
// //
getFormatDate() { getFormatDate() {
var that = this; var that = this;

View File

@ -17,13 +17,24 @@
</div> </div>
</div> </div>
<div class="upload-div"> <el-tooltip class="item" effect="dark" content="上传书签" placement="bottom">
<div class="upload-div" @click="upload">
<i class="upload el-icon-upload"></i> <i class="upload el-icon-upload"></i>
</div> </div>
</el-tooltip>
<div v-show="isLogin" class="login-div"> <div v-show="isLogin" class="login-div">
<i @click="openLoginDialog" class="login el-icon-s-custom"></i> <i @click="openLoginDialog" class="login el-icon-s-custom"></i>
</div> </div>
<el-dropdown @command="handleCommand">
<div class="avatar-div"
style="border-radius: 50px;width: 44px;height: 44px;margin-left: 20px;cursor: pointer" v-show="!isLogin">
<el-avatar> user</el-avatar>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="setting">书签设置</el-dropdown-item>
<el-dropdown-item command="signOut">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div> </div>
<!--登录弹窗--> <!--登录弹窗-->
<el-dialog <el-dialog
@ -242,11 +253,14 @@ import $ from 'jquery'
import Vue from "vue"; import Vue from "vue";
import axios from "axios"; import axios from "axios";
import {mapMutations} from "vuex"; import {mapMutations} from "vuex";
// import {getUserIP} from '@/utils/getIp'
export default { export default {
name: "HomeHeader", name: "HomeHeader",
components: {}, components: {},
data() { data() {
return { return {
visible: false,
TabsValue: '1', TabsValue: '1',
tabList: [ tabList: [
{path: '/home', libel: '首页'}, {path: '/home', libel: '首页'},
@ -304,7 +318,8 @@ export default {
activeCode: [{required: true, message: "请输入验证码", trigger: "blur"}], activeCode: [{required: true, message: "请输入验证码", trigger: "blur"}],
}, },
userToken: '', userToken: '',
isLogin:true, isLogin: true,
ip:'',
} }
}, },
mounted() { mounted() {
@ -314,17 +329,74 @@ export default {
this.changeImg(); this.changeImg();
}, },
created() { created() {
}, },
computed: {}, computed: {},
methods: { methods: {
...mapMutations(['changeLogin']), ...mapMutations(['changeLogin', 'setUserId', 'setUserRole']),
upload(){
if(localStorage.getItem('Authorization')&&localStorage.getItem('userId')){
this.$router.push({
path:'/importExport',
})
}else {
Vue.prototype.$notify.error({
title: '错误',
message: "登录状态失效,请重新登录!",
offset: 0
});
}
},
handleCommand(cmditem) {
if (!cmditem) {
this.$message("菜单选项缺少command属性");
return;
}
switch (cmditem) {
case "signOut":
this.signOut();
break;
case "setting":
this.goToSetting();
break;
}
},
goToSetting(){
if(localStorage.getItem('Authorization')&&localStorage.getItem('userId')){
this.$router.push({
path:'/admin',
})
}else {
Vue.prototype.$notify.error({
title: '错误',
message: "登录状态失效,请重新登录!",
offset: 0
});
}
},
signOut(){
localStorage.removeItem("Authorization")
localStorage.removeItem("userId")
localStorage.removeItem("userRole")
this.$router.push({
path:'/home',
})
setTimeout(()=>{
window.location.reload()
},1000)
},
// //
toRePassword() { toRePassword() {
this.TabsValue = '3'; this.TabsValue = '3';
}, },
closeLoginDialog() { closeLoginDialog() {
this.loginDialogVisible=false; this.loginDialogVisible = false;
}, },
// //
openLoginDialog() { openLoginDialog() {
@ -371,7 +443,7 @@ export default {
}, },
// //
submitLoginForm(formName) { submitLoginForm(formName) {
let _this=this; let _this = this;
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
axios({ axios({
@ -379,37 +451,42 @@ export default {
url: '/api/login', url: '/api/login',
params: this.loginForm params: this.loginForm
}).then(function (res) { }).then(function (res) {
if(res.data.code!==200){ if (res.data.code !== 200) {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: res.data.msg, message: res.data.msg,
offset: 0 offset: 0
}); });
}else{ } else {
Vue.prototype.$notify({ Vue.prototype.$notify({
title: '成功', title: '成功',
message: ('i', {style: 'color: teal'}, "登录成功!"), message: ('i', {style: 'color: teal'}, "登录成功!"),
type: 'success', type: 'success',
offset: 0 offset: 0
}); });
// console.log(res);
// _this.userToken = 'Bearer ' + res.data.token; // _this.userToken = 'Bearer ' + res.data.token;
_this.userToken = res.data.token; _this.userToken = res.data.token;
_this.changeLogin({ Authorization: _this.userToken }); _this.changeLogin({Authorization: _this.userToken});
_this.setUserId({userId: res.data.Id});
_this.setUserRole({userRole: res.data.roleId});
_this.closeLoginDialog(); _this.closeLoginDialog();
setTimeout(()=>{ setTimeout(() => {
window.location.reload(); window.location.reload();
},2000) }, 1000)
} }
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error===null?'':error, message: error === null ? '' : error,
offset: 0 offset: 0
}); });
}) })
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: "请填写完整信息!", message: "请填写完整信息!",
@ -422,7 +499,7 @@ export default {
submitRegisterForm(formName) { submitRegisterForm(formName) {
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
if (this.registerFrom.userPassword===this.registerFrom.repassword){ if (this.registerFrom.userPassword === this.registerFrom.repassword) {
axios({ axios({
method: 'get', method: 'get',
url: '/api/register', url: '/api/register',
@ -435,21 +512,21 @@ export default {
type: 'success', type: 'success',
offset: 0 offset: 0
}); });
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error, message: error,
offset: 0 offset: 0
}); });
}) })
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: "密码不一致", message: "密码不一致",
offset: 0 offset: 0
}); });
} }
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: "请填写完整信息!", message: "请填写完整信息!",
@ -459,25 +536,25 @@ export default {
}) })
}, },
// //
submitRePasswordForm(formName){ submitRePasswordForm(formName) {
let _this=this; let _this = this;
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
if (this.repasswordForm.userPassword===this.repasswordForm.repassword){ if (this.repasswordForm.userPassword === this.repasswordForm.repassword) {
axios({ axios({
method: 'post', method: 'post',
url: '/api/findThePassword', url: '/api/findThePassword',
params: this.repasswordForm params: this.repasswordForm
}).then(function (res) { }).then(function (res) {
if(res.data.msg==="重置成功"){ if (res.data.msg === "重置成功") {
Vue.prototype.$notify({ Vue.prototype.$notify({
title: '成功', title: '成功',
message: ('i', {style: 'color: teal'}, res.data.msg), message: ('i', {style: 'color: teal'}, res.data.msg),
type: 'success', type: 'success',
offset: 0 offset: 0
}); });
_this.TabsValue='1'; _this.TabsValue = '1';
}else{ } else {
Vue.prototype.$notify({ Vue.prototype.$notify({
title: '成功', title: '成功',
message: ('i', {style: 'color: teal'}, res.data.msg), message: ('i', {style: 'color: teal'}, res.data.msg),
@ -486,21 +563,21 @@ export default {
}); });
} }
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error, message: error,
offset: 0 offset: 0
}); });
}) })
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: "密码不一致", message: "密码不一致",
offset: 0 offset: 0
}); });
} }
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: "请填写完整信息!", message: "请填写完整信息!",
@ -515,7 +592,7 @@ export default {
}, },
// //
sendRegisterEmail() { sendRegisterEmail() {
let _this=this; let _this = this;
if (this.registerFrom.userEmail !== null) { if (this.registerFrom.userEmail !== null) {
axios({ axios({
method: 'get', method: 'get',
@ -542,7 +619,7 @@ export default {
} }
}, 1000); }, 1000);
} }
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error, message: error,
@ -550,7 +627,7 @@ export default {
}); });
}) })
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: '请填写邮箱!', message: '请填写邮箱!',
@ -561,7 +638,7 @@ export default {
}, },
// //
sendRePasswordEmail() { sendRePasswordEmail() {
let _this=this; let _this = this;
if (this.repasswordForm.userEmail !== null) { if (this.repasswordForm.userEmail !== null) {
axios({ axios({
method: 'get', method: 'get',
@ -588,7 +665,7 @@ export default {
} }
}, 1000); }, 1000);
} }
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error, message: error,
@ -596,7 +673,7 @@ export default {
}); });
}) })
}else { } else {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: '请填写邮箱!', message: '请填写邮箱!',
@ -605,10 +682,10 @@ export default {
} }
}, },
changeImg(){ changeImg() {
setTimeout(()=>{ setTimeout(() => {
this.codeUrl = "http://localhost:8080/verifyCode?" + new Date().getTime(); this.codeUrl = "http://localhost:8080/verifyCode?" + new Date().getTime();
},30000) }, 30000)
}, },
// //
resetImg() { resetImg() {
@ -632,12 +709,14 @@ export default {
.el-dialog__header { .el-dialog__header {
display: none; display: none;
} }
.login{
.login {
font-weight: bold; font-weight: bold;
font-size: 25px; font-size: 25px;
color: var(--theme-color); color: var(--theme-color);
} }
.login-div{
.login-div {
border-radius: 50px; border-radius: 50px;
width: 32px; width: 32px;
height: 32px; height: 32px;
@ -646,17 +725,20 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.login-div:hover{
.login-div:hover {
border: 2px solid var(--theme-color); border: 2px solid var(--theme-color);
cursor: pointer; cursor: pointer;
} }
.upload{
.upload {
font-size: 25px; font-size: 25px;
font-weight: bold; font-weight: bold;
color: var(--theme-color); color: var(--theme-color);
} }
.upload-div{
.upload-div {
border-radius: 50px; border-radius: 50px;
width: 32px; width: 32px;
height: 32px; height: 32px;
@ -665,16 +747,19 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.upload-div:hover{
.upload-div:hover {
border: 2px solid var(--theme-color); border: 2px solid var(--theme-color);
cursor: pointer; cursor: pointer;
} }
.notice{
.notice {
font-size: 25px; font-size: 25px;
font-weight: bold; font-weight: bold;
color: var(--theme-color); color: var(--theme-color);
} }
.notice-div{
.notice-div {
border-radius: 50px; border-radius: 50px;
width: 32px; width: 32px;
height: 32px; height: 32px;
@ -682,8 +767,13 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.notice-div:hover{
.notice-div:hover {
border: 2px solid var(--theme-color); border: 2px solid var(--theme-color);
cursor: pointer; cursor: pointer;
} }
.avatar-div:hover {
border: 2px solid var(--theme-color);
}
</style> </style>

View File

@ -1,4 +1,6 @@
<template> <template>
<div class="wrapper">
<LeftSide :category="category"></LeftSide>
<div class="main-container"> <div class="main-container">
<div class="content-wrapper"> <div class="content-wrapper">
<div> <div>
@ -6,7 +8,7 @@
</div> </div>
<NoticeComponent></NoticeComponent> <NoticeComponent></NoticeComponent>
<div v-for="(item,index) in navList" :key="index" class="content-section"> <div v-for="(item,index) in navList" :key="index" class="content-section">
<div class="HeadLine" style="margin-top:15px;margin-left:-5px;"> <div :id="item.name" class="HeadLine" style="margin-top:15px;margin-left:-5px;">
<div class="HeadSquare"></div> <div class="HeadSquare"></div>
<div class="TitleFont" style="color:var(--theme-color)"><i class="el-icon-s-unfold"></i>{{item.name}}</div> <div class="TitleFont" style="color:var(--theme-color)"><i class="el-icon-s-unfold"></i>{{item.name}}</div>
</div> </div>
@ -16,6 +18,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
@ -25,17 +28,26 @@ import NavList from "@/components/home/NavList.vue";
import NoticeComponent from "@/components/home/Notice.vue"; import NoticeComponent from "@/components/home/Notice.vue";
import axios from "axios"; import axios from "axios";
import Vue from "vue"; import Vue from "vue";
import LeftSide from "@/components/home/LeftSide.vue";
export default { export default {
name:"HomePage", name: "HomePage",
components:{ components: {
LeftSide,
NoticeComponent, NoticeComponent,
NavList, NavList,
CarouselComponent CarouselComponent
}, },
data() { data() {
return { return {
navList:[], navList: [],
}}, category: [],
}
},
// ,
watch: {
'$route': 'getPath'
},
mounted() { mounted() {
this.fun1(); this.fun1();
this.fun2(); this.fun2();
@ -43,28 +55,54 @@ export default {
this.fun4(); this.fun4();
this.dropdownFun(); this.dropdownFun();
this.getNavList(); this.getNavList();
this.getCategories();
}, },
created() { created() {
}, },
computed: { computed: {},
},
methods: { methods: {
getCategories() {
let _this = this;
axios({
method: 'post',
url: '/api/UrlAndCate/disposeBookmarkExhibitedToJson',
}).then(function (res) {
// console.log(res);
if (res.data.data) {
_this.category = res.data.data;
} else {
return false;
}
}).catch((error) => {
Vue.prototype.$notify.error({
title: '错误',
message: error,
offset: 0
});
})
},
getPath() {
document.querySelector(this.$route.query.name).scrollIntoView(true)
},
// //
getNavList() { getNavList() {
let _this=this; let _this = this;
axios({ axios({
method: 'post', method: 'post',
url: '/api/UrlAndCate/disposeBookmarkExhibitedToJsonNew', url: '/api/UrlAndCate/disposeBookmarkExhibitedToJsonNew',
}).then(function (res) { }).then(function (res) {
if(res.data){ if (res.data) {
_this.navList=res.data; _this.navList = res.data;
} }
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error===null?'':error, message: error === null ? '' : error,
offset: 0 offset: 0
}); });
}) })
@ -72,7 +110,7 @@ export default {
}, },
fun1(){ fun1() {
$(document).click(function (e) { $(document).click(function (e) {
var container = $(".status-button"); var container = $(".status-button");
var dd = $(".dropdown"); var dd = $(".dropdown");
@ -81,7 +119,7 @@ export default {
} }
}); });
}, },
fun2(){ fun2() {
$(".status-button:not(.open)").on("click", function () { $(".status-button:not(.open)").on("click", function () {
$(".overlay-app").addClass("is-active"); $(".overlay-app").addClass("is-active");
}); });
@ -89,17 +127,17 @@ export default {
$(".overlay-app").removeClass("is-active"); $(".overlay-app").removeClass("is-active");
}); });
}, },
fun3(){ fun3() {
$(".status-button:not(.open)").click(function () { $(".status-button:not(.open)").click(function () {
$(".pop-up").addClass("visible"); $(".pop-up").addClass("visible");
}); });
}, },
fun4(){ fun4() {
$(".pop-up .close").click(function () { $(".pop-up .close").click(function () {
$(".pop-up").removeClass("visible"); $(".pop-up").removeClass("visible");
}); });
}, },
dropdownFun(){ dropdownFun() {
const dropdowns = document.querySelectorAll(".dropdown"); const dropdowns = document.querySelectorAll(".dropdown");
dropdowns.forEach(dropdown => { dropdowns.forEach(dropdown => {
dropdown.addEventListener("click", e => { dropdown.addEventListener("click", e => {
@ -110,6 +148,5 @@ export default {
}); });
} }
} }
} }
</script> </script>

View File

@ -1,71 +1,25 @@
<template> <template>
<div class="left-side"> <div class="left-side">
<!-- <div class="side-wrapper">-->
<!-- <div class="side-title">Apps</div>-->
<!-- <div class="side-menu">-->
<!-- <a href="#">-->
<!-- <svg viewBox="0 0 512 512">-->
<!-- <g xmlns="http://www.w3.org/2000/svg" fill="currentColor">-->
<!-- <path d="M0 0h128v128H0zm0 0M192 0h128v128H192zm0 0M384 0h128v128H384zm0 0M0 192h128v128H0zm0 0" data-original="#bfc9d1"></path>-->
<!-- </g>-->
<!-- <path xmlns="http://www.w3.org/2000/svg" d="M192 192h128v128H192zm0 0" fill="currentColor" data-original="#82b1ff"></path>-->
<!-- <path xmlns="http://www.w3.org/2000/svg" d="M384 192h128v128H384zm0 0M0 384h128v128H0zm0 0M192 384h128v128H192zm0 0M384 384h128v128H384zm0 0" fill="currentColor" data-original="#bfc9d1"></path>-->
<!-- </svg>-->
<!-- All Apps-->
<!-- </a>-->
<!-- <a href="#">-->
<!-- <svg viewBox="0 0 488.932 488.932" fill="currentColor">-->
<!-- <path d="M243.158 61.361v-57.6c0-3.2 4-4.9 6.7-2.9l118.4 87c2 1.5 2 4.4 0 5.9l-118.4 87c-2.7 2-6.7.2-6.7-2.9v-57.5c-87.8 1.4-158.1 76-152.1 165.4 5.1 76.8 67.7 139.1 144.5 144 81.4 5.2 150.6-53 163-129.9 2.3-14.3 14.7-24.7 29.2-24.7 17.9 0 31.8 15.9 29 33.5-17.4 109.7-118.5 192-235.7 178.9-98-11-176.7-89.4-187.8-187.4-14.7-128.2 84.9-237.4 209.9-238.8z"></path>-->
<!-- </svg>-->
<!-- Updates-->
<!-- <span class="notification-number updates">3</span>-->
<!-- </a>-->
<!-- </div>-->
<!-- </div>-->
<div class="HeadLine" style="margin-top:10px;margin-left:-5px;"> <div class="HeadLine" style="margin-top:10px;margin-left:-5px;">
<div class="HeadSquare"></div> <div class="HeadSquare"></div>
<div class="TitleFont" style="color:var(--theme-color)"><i class="el-icon-s-home"></i>快速导航</div> <div class="TitleFont" style="color:var(--theme-color)"><i class="el-icon-s-home"></i>快速导航</div>
</div> </div>
<el-tree :data="category" :props="defaultProps" style="width:200px;margin-top:30px;" > <el-tree :data="category"
:props="defaultProps"
style="width:200px;margin-top:30px;"
@node-click="handleTreeNodeClick"
:expand-on-click-node="false"
>
</el-tree> </el-tree>
</div> </div>
</template> </template>
<style scoped>
::v-deep .el-tree{
background-color: rgb(255 255 255 / 31%);
border-radius:8px;
font-family: SimHei;
font-size:15px;
font-weight:600;
color: #3d3d3d;
border-color:var(--border-color);
border-width: 5px;
}
::v-deep .el-tree-node__content{
height:50px;
border-radius:8px;
border-bottom: solid 1.5px var(--border-color);
}
::v-deep .el-tree-node__label{
margin-left:10px;
}
::v-deep .el-tree .el-icon-caret-right:before{
content: url("../../assets/img/arrowRight.svg");
}
::v-deep .el-tree-node:focus>.el-tree-node__content{
background-color: #8fd3ff !important;
}
</style>
<script> <script>
export default { export default {
name:"LeftSide", name: "LeftSide",
props:{ props: {
category:Array category: Array
}, },
data() { data() {
return { return {
@ -73,19 +27,96 @@ export default {
children: 'childUC', children: 'childUC',
label: 'name' label: 'name'
} }
}}, }
},
mounted() { mounted() {
}, },
created() { created() {
}, },
computed: { computed: {},
},
methods: { methods: {
handleTreeNodeClick(node) {
if(this.$route.path==='/home'){
if (node.name) {
this.$router.push({
path: '/home',
query: {
name: `#${node.name}`,
}
})
} else {
return false;
}
}else if(this.$route.path==='/myNav'){
if (node.name) {
this.$router.push({
path: '/myNav',
query: {
name: `#${node.name}`,
}
})
} else {
return false;
}
}else if(this.$route.path==='/news') {
if (node.name) {
this.$router.push({
path: '/home',
query: {
name: `#${node.name}`,
}
})
} else {
return false;
}
}else if(this.$route.path==='/nav'){
if (node.name) {
this.$router.push({
path: '/home',
query: {
name: `#${node.name}`,
}
})
} else {
return false;
}
}
}
} }
} }
</script> </script>
<style scoped>
::v-deep .el-tree {
background-color: rgb(255 255 255 / 31%);
border-radius: 8px;
font-family: SimHei;
font-size: 15px;
font-weight: 600;
color: #3d3d3d;
border-color: var(--border-color);
border-width: 5px;
}
::v-deep .el-tree-node__content {
height: 50px;
border-radius: 8px;
border-bottom: solid 1.5px var(--border-color);
}
::v-deep .el-tree-node__label {
margin-left: 10px;
}
::v-deep .el-tree .el-icon-caret-right:before {
content: url("../../assets/img/arrowRight.svg");
}
::v-deep .el-tree-node:focus > .el-tree-node__content {
background-color: #8fd3ff !important;
}
</style>

View File

@ -5,7 +5,7 @@
<div class="content-card"> <div class="content-card">
<el-tooltip v-if="nav.name" class="item" effect="dark" :content="nav.name" placement="top"> <el-tooltip v-if="nav.name" class="item" effect="dark" :content="nav.name" placement="top">
<span v-if="nav.name" class="content-title">{{ nav.name}}</span> <span v-if="nav.name" class="content-title">{{ nav.name }}</span>
</el-tooltip> </el-tooltip>
<el-tooltip v-if="nav.desc" class="item" effect="dark" :content="nav.desc" placement="bottom"> <el-tooltip v-if="nav.desc" class="item" effect="dark" :content="nav.desc" placement="bottom">
<span v-if="nav.desc" class="content-desc">{{ nav.desc.substr(0, 8) + '...' }}</span> <span v-if="nav.desc" class="content-desc">{{ nav.desc.substr(0, 8) + '...' }}</span>
@ -26,8 +26,10 @@
trigger="hover" trigger="hover"
effect="dark" close-delay="2000"> effect="dark" close-delay="2000">
<div class="MyPopover" slot="content"> <div class="MyPopover" slot="content">
<span style="font-size:12px !important;">{{nav.name}}手机二维码</span><br/><br/> <span style="font-size:12px !important;">{{ nav.name }}手机二维码</span><br/><br/>
<div style="width:100% ;text-align: center"><img style="width:150px" :src="'data:image/jpg;base64,'+getQR(nav.urlId,nav.icon)" /></div> <div style="width:100% ;text-align: center"><img style="width:150px"
:src="getQR(nav.urlId,nav.icon)"/>
</div>
</div> </div>
<i class="qr el-icon-s-grid"></i> <i class="qr el-icon-s-grid"></i>
</el-tooltip> </el-tooltip>
@ -46,50 +48,51 @@ export default {
}, },
data() { data() {
return { return {
imageCode:'', imageCode: '',
} }
}, },
mounted() { mounted() {
this.getQR(1,'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a9f967d58_1703324152309_20231223.webp');
}, },
created() { created() {
}, },
computed: {}, computed: {},
methods: { methods: {
// getQR(url_id,icon_url) { getQR(url_id, icon_url) {
// let _this=this; let _this = this;
// axios({ axios({
// method: 'post', method: 'post',
// url: '/api/qrcode/qrc_return', url: '/api/qrcode/qrc_return',
// params:{ data: {
// url_id:url_id, url_id: url_id,
// icon_url:icon_url icon_url: icon_url
// } }
// }).then(function (res) { }).then(function (res) {
// if(res.data){ if (res.data) {
// _this.navList=res.data; _this.imageCode = "data:image/jpg;base64," + res.data;
// } }
// }).catch((error)=>{ return false;
// Vue.prototype.$notify.error({ }).catch((error) => {
// title: '', Vue.prototype.$notify.error({
// message: error===null?'':error, title: '错误',
// offset: 0 message: error === null ? '' : error,
// }); offset: 0
// }) });
// })
// }, return this.imageCode
goToNavDetail(){ },
if(this.nav.urlId){ goToNavDetail() {
if (this.nav.urlId) {
let pathInfo = this.$router.resolve({ let pathInfo = this.$router.resolve({
path: '/nav', path: '/nav',
query:{ query: {
uid:this.nav.urlId, uid: this.nav.urlId,
refresh:true, refresh: true,
} }
}) })
window.open(pathInfo.href, '_self'); window.open(pathInfo.href, '_self');
}else{ } else {
return false; return false;
} }
} }
@ -117,7 +120,7 @@ export default {
white-space: nowrap; white-space: nowrap;
overflow-x: scroll; overflow-x: scroll;
color: var(--theme-color); color: var(--theme-color);
/*background-color: var(--theme-bg-color);*/ /*background-color: var(--theme-bg-color);*/
} }
.content-desc { .content-desc {
@ -129,17 +132,20 @@ export default {
margin-top: 5px; margin-top: 5px;
white-space: nowrap; white-space: nowrap;
overflow-x: scroll; overflow-x: scroll;
/*background-color: var(--theme-bg-color);*/ /*background-color: var(--theme-bg-color);*/
} }
.card-icon{
.card-icon {
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
color: var(--theme-color); color: var(--theme-color);
} }
.card-icon:hover{
.card-icon:hover {
color: #5ddcff; color: #5ddcff;
} }
.qr:hover{
.qr:hover {
color: #5ddcff; color: #5ddcff;
} }
</style> </style>

View File

@ -1,4 +1,6 @@
<template> <template>
<div class="wrapper">
<LeftSide :category="category"></LeftSide>
<div class="main"> <div class="main">
<NewsCard :loading="loading" :news="baidu"></NewsCard> <NewsCard :loading="loading" :news="baidu"></NewsCard>
<NewsCard :loading="loading" :news="douying"></NewsCard> <NewsCard :loading="loading" :news="douying"></NewsCard>
@ -7,47 +9,51 @@
<NewsCard :loading="loading" :news="bili"></NewsCard> <NewsCard :loading="loading" :news="bili"></NewsCard>
<NewsCard :loading="loading" :news="toutiao"></NewsCard> <NewsCard :loading="loading" :news="toutiao"></NewsCard>
</div> </div>
</div>
</template> </template>
<script> <script>
import NewsCard from "@/components/hotNews/NewsCard.vue"; import NewsCard from "@/components/hotNews/NewsCard.vue";
import axios from "axios"; import axios from "axios";
import Vue from "vue"; import Vue from "vue";
import LeftSide from "@/components/home/LeftSide.vue";
export default { export default {
name: "HotNews", name: "HotNews",
components: {NewsCard}, components: {LeftSide, NewsCard},
data() { data() {
return { return {
loading:true, loading: true,
baidu:{ category:[],
title:"百度热搜榜", baidu: {
hot:[], title: "百度热搜榜",
icon:'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a2ba0bd25_1703322296568_20231223.webp', hot: [],
icon: 'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a2ba0bd25_1703322296568_20231223.webp',
}, },
douying:{ douying: {
title:"抖音热搜榜", title: "抖音热搜榜",
hot:[], hot: [],
icon:'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a50348009_1703322881030_20231223.webp', icon: 'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a50348009_1703322881030_20231223.webp',
}, },
weibo:{ weibo: {
title:"微博热搜榜", title: "微博热搜榜",
hot:[], hot: [],
icon:'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a7fe6bebd_1703323645679_20231223.webp', icon: 'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a7fe6bebd_1703323645679_20231223.webp',
}, },
zhihu:{ zhihu: {
title:"知乎热搜榜", title: "知乎热搜榜",
hot:[], hot: [],
icon:'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a93b167e7_1703323961912_20231223.webp', icon: 'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a93b167e7_1703323961912_20231223.webp',
}, },
bili:{ bili: {
title:"哔哩哔哩热搜榜", title: "哔哩哔哩热搜榜",
hot:[], hot: [],
icon:'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a9f967d58_1703324152309_20231223.webp', icon: 'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586a9f967d58_1703324152309_20231223.webp',
}, },
toutiao:{ toutiao: {
title:"今日头条热搜榜", title: "今日头条热搜榜",
hot:[], hot: [],
icon:'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586aa87a24ab_1703324293242_20231223.webp', icon: 'https://imgbed.landaiqing.space/img/1/2023/12/23/1_6586aa87a24ab_1703324293242_20231223.webp',
} }
} }
}, },
@ -58,12 +64,35 @@ export default {
this.getZhiHuHot(); this.getZhiHuHot();
this.getBiliHot(); this.getBiliHot();
this.getTouTiaoHot(); this.getTouTiaoHot();
this.getCategories();
}, },
created() { created() {
}, },
computed: {}, computed: {},
methods: { methods: {
getCategories() {
let _this = this;
axios({
method: 'post',
url: '/api/UrlAndCate/disposeBookmarkExhibitedToJson',
}).then(function (res) {
// console.log(res);
if (res.data.data) {
_this.category = res.data.data;
} else {
return false;
}
}).catch((error) => {
Vue.prototype.$notify.error({
title: '错误',
message: error,
offset: 0
});
})
},
getBaiDuHot() { getBaiDuHot() {
let _this = this; let _this = this;
axios({ axios({
@ -77,8 +106,8 @@ export default {
offset: 0 offset: 0
}); });
} else { } else {
_this.loading=false; _this.loading = false;
_this.baidu.hot=res.data.data; _this.baidu.hot = res.data.data;
} }
}).catch((error) => { }).catch((error) => {
@ -102,8 +131,8 @@ export default {
offset: 0 offset: 0
}); });
} else { } else {
_this.douying.hot=res.data.data; _this.douying.hot = res.data.data;
_this.loading=false; _this.loading = false;
} }
}).catch((error) => { }).catch((error) => {
@ -127,8 +156,8 @@ export default {
offset: 0 offset: 0
}); });
} else { } else {
_this.weibo.hot=res.data.data; _this.weibo.hot = res.data.data;
_this.loading=false; _this.loading = false;
} }
}).catch((error) => { }).catch((error) => {
@ -152,8 +181,8 @@ export default {
offset: 0 offset: 0
}); });
} else { } else {
_this.zhihu.hot=res.data.data; _this.zhihu.hot = res.data.data;
_this.loading=false; _this.loading = false;
} }
}).catch((error) => { }).catch((error) => {
@ -177,8 +206,8 @@ export default {
offset: 0 offset: 0
}); });
} else { } else {
_this.bili.hot=res.data.data; _this.bili.hot = res.data.data;
_this.loading=false; _this.loading = false;
} }
}).catch((error) => { }).catch((error) => {
@ -202,8 +231,8 @@ export default {
offset: 0 offset: 0
}); });
} else { } else {
_this.toutiao.hot=res.data.data; _this.toutiao.hot = res.data.data;
_this.loading=false; _this.loading = false;
} }
}).catch((error) => { }).catch((error) => {

View File

@ -1,56 +1,12 @@
<template> <template>
<div class="wrapper">
<LeftSide :category="category"></LeftSide>
<div class="main-container"> <div class="main-container">
<div class="content-wrapper"> <div class="content-wrapper">
<div class="content-section"> <div v-for="(item,index) in userNavList" :key="index" class="content-section">
<div class="content-section-title">Apps in your plan</div> <div :id="item.name" class="content-section-title">{{ item.name }}</div>
<div class="apps-card"> <div class="apps-card">
<div class="app-card"> <NavList v-if="item.childUC" v-for="(item,index2) in item.childUC" :key="index2" :nav="item"></NavList>
<span>
<svg viewBox="0 0 512 512" style="border: 1px solid #a059a9">
<path xmlns="http://www.w3.org/2000/svg" d="M480 0H32C14.368 0 0 14.368 0 32v448c0 17.664 14.368 32 32 32h448c17.664 0 32-14.336 32-32V32c0-17.632-14.336-32-32-32z" fill="#210027" data-original="#7b1fa2"></path>
<g xmlns="http://www.w3.org/2000/svg">
<path d="M192 64h-80c-8.832 0-16 7.168-16 16v352c0 8.832 7.168 16 16 16s16-7.168 16-16V256h64c52.928 0 96-43.072 96-96s-43.072-96-96-96zm0 160h-64V96h64c35.296 0 64 28.704 64 64s-28.704 64-64 64zM400 256h-32c-18.08 0-34.592 6.24-48 16.384V272c0-8.864-7.168-16-16-16s-16 7.136-16 16v160c0 8.832 7.168 16 16 16s16-7.168 16-16v-96c0-26.464 21.536-48 48-48h32c8.832 0 16-7.168 16-16s-7.168-16-16-16z" fill="#f6e7fa" data-original="#e1bee7"></path>
</g>
</svg>
Premiere Pro
</span>
<div class="app-card__subtext">Edit, master and create fully proffesional videos</div>
<div class="app-card-buttons">
<button class="content-button status-button">Update</button>
<div class="menu"></div>
</div>
</div>
<div class="app-card">
<span>
<svg viewBox="0 0 52 52" style="border: 1px solid #c1316d">
<g xmlns="http://www.w3.org/2000/svg">
<path d="M40.824 52H11.176C5.003 52 0 46.997 0 40.824V11.176C0 5.003 5.003 0 11.176 0h29.649C46.997 0 52 5.003 52 11.176v29.649C52 46.997 46.997 52 40.824 52z" fill="#2f0015" data-original="#6f2b41"></path>
<path d="M18.08 39H15.2V13.72l-2.64-.08V11h5.52v28zM27.68 19.4c1.173-.507 2.593-.761 4.26-.761s3.073.374 4.22 1.12V11h2.88v28c-2.293.32-4.414.48-6.36.48-1.947 0-3.707-.4-5.28-1.2-2.08-1.066-3.12-2.92-3.12-5.561v-7.56c0-2.799 1.133-4.719 3.4-5.759zm8.48 3.12c-1.387-.746-2.907-1.119-4.56-1.119-1.574 0-2.714.406-3.42 1.22-.707.813-1.06 1.847-1.06 3.1v7.12c0 1.227.44 2.188 1.32 2.88.96.719 2.146 1.079 3.56 1.079 1.413 0 2.8-.106 4.16-.319V22.52z" fill="#e1c1cf" data-original="#ff70bd"></path>
</g>
</svg>
InDesign
</span>
<div class="app-card__subtext">Design and publish great projects &amp; mockups</div>
<div class="app-card-buttons">
<button class="content-button status-button">Update</button>
<div class="menu"></div>
</div>
</div>
<div class="app-card">
<span>
<svg viewBox="0 0 52 52" style="border: 1px solid #C75DEB">
<g xmlns="http://www.w3.org/2000/svg">
<path d="M40.824 52H11.176C5.003 52 0 46.997 0 40.824V11.176C0 5.003 5.003 0 11.176 0h29.649C46.997 0 52 5.003 52 11.176v29.649C52 46.997 46.997 52 40.824 52z" fill="#3a3375" data-original="#3a3375"></path>
<path d="M27.44 39H24.2l-2.76-9.04h-8.32L10.48 39H7.36l8.24-28h3.32l8.52 28zm-6.72-12l-3.48-11.36L13.88 27h6.84zM31.48 33.48c0 2.267 1.333 3.399 4 3.399 1.653 0 3.466-.546 5.44-1.64L42 37.6c-2.054 1.254-4.2 1.881-6.44 1.881-4.64 0-6.96-1.946-6.96-5.841v-8.2c0-2.16.673-3.841 2.02-5.04 1.346-1.2 3.126-1.801 5.34-1.801s3.94.594 5.18 1.78c1.24 1.187 1.86 2.834 1.86 4.94V30.8l-11.52.6v2.08zm8.6-5.24v-3.08c0-1.413-.44-2.42-1.32-3.021-.88-.6-1.907-.899-3.08-.899-1.174 0-2.167.359-2.98 1.08-.814.72-1.22 1.773-1.22 3.16v3.199l8.6-.439z" fill="#e4d1eb" data-original="#e7adfb"></path>
</g>
</svg>
After Effects
</span>
<div class="app-card__subtext">Industry Standart motion graphics &amp; visual effects</div>
<div class="app-card-buttons">
<button class="content-button status-button">Update</button>
<div class="menu"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -60,31 +16,112 @@
<script> <script>
import $ from 'jquery' import $ from 'jquery'
import NavList from "@/components/home/NavList.vue";
import axios from "axios";
import Vue from "vue";
import LeftSide from "@/components/home/LeftSide.vue";
export default { export default {
name:"MyNav", name: "MyNav",
components:{ components: {
LeftSide,
NavList
// MainHeader // MainHeader
}, },
data() { data() {
return { return {
userNavList: [],
}}, category: [],
}
},
// ,
watch: {
'$route': 'getPath'
},
mounted() { mounted() {
this.Fun1(); this.Fun1();
this.Fun2(); this.Fun2();
this.Fun3(); this.Fun3();
this.Fun4(); this.Fun4();
this.dropdownFun(); this.dropdownFun();
this.getUserNav();
this.getCategoriesByUser();
}, },
created() { created() {
}, },
computed: { computed: {},
methods: {
getCategoriesByUser(){
let _this = this;
if(localStorage.getItem('userId')&&localStorage.getItem('Authorization')){
axios({
method: 'post',
url: '/api/UrlAndCate/disposeBookmarkToJsonByUserId',
params:{
userId:localStorage.getItem('userId')
}
}).then(function (res) {
if (res.data.data) {
_this.category = res.data.data;
} else {
return false;
}
}).catch((error) => {
Vue.prototype.$notify.error({
title: '错误',
message: error,
offset: 0
});
})
}else {
Vue.prototype.$notify.error({
title: '错误',
message: "登录信息失效,请重新登录",
offset: 0
});
}
}, },
methods: {
Fun1(){ getPath() {
document.querySelector(this.$route.query.name).scrollIntoView(true)
},
getUserNav() {
let _this = this;
if (localStorage.getItem("userId")) {
axios({
method: 'post',
url: '/api/UrlAndCate/disposeBookmarkToJson',
params: {
userId: localStorage.getItem("userId"),
}
}).then(function (res) {
if (res.data) {
_this.userNavList = res.data;
}
}).catch((error) => {
Vue.prototype.$notify.error({
title: '错误',
message: error === null ? '' : error,
offset: 0
});
})
} else {
Vue.prototype.$notify.error({
title: '错误',
message: "请先登录!",
offset: 0
});
}
},
Fun1() {
$(document).click(function (e) { $(document).click(function (e) {
var container = $(".status-button"); var container = $(".status-button");
var dd = $(".dropdown"); var dd = $(".dropdown");
@ -93,7 +130,7 @@ export default {
} }
}); });
}, },
Fun2(){ Fun2() {
$(".status-button:not(.open)").on("click", function () { $(".status-button:not(.open)").on("click", function () {
$(".overlay-app").addClass("is-active"); $(".overlay-app").addClass("is-active");
}); });
@ -101,17 +138,17 @@ export default {
$(".overlay-app").removeClass("is-active"); $(".overlay-app").removeClass("is-active");
}); });
}, },
Fun3(){ Fun3() {
$(".status-button:not(.open)").click(function () { $(".status-button:not(.open)").click(function () {
$(".pop-up").addClass("visible"); $(".pop-up").addClass("visible");
}); });
}, },
Fun4(){ Fun4() {
$(".pop-up .close").click(function () { $(".pop-up .close").click(function () {
$(".pop-up").removeClass("visible"); $(".pop-up").removeClass("visible");
}); });
}, },
dropdownFun(){ dropdownFun() {
const dropdowns = document.querySelectorAll(".dropdown"); const dropdowns = document.querySelectorAll(".dropdown");
dropdowns.forEach(dropdown => { dropdowns.forEach(dropdown => {
dropdown.addEventListener("click", e => { dropdown.addEventListener("click", e => {
@ -120,7 +157,7 @@ export default {
dropdown.classList.add("is-active"); dropdown.classList.add("is-active");
}); });
}); });
} },
} }
} }

View File

@ -0,0 +1,263 @@
<template>
<div id="main">
</div>
</template>
<script>
import * as echarts from 'echarts'
import Vue from "vue";
Vue.prototype.$echarts = echarts;
export default {
name: "HomeEChart",
data() {
return {
dataList :
[{
name: "南海诸岛",
value: 0
},
{
name: '北京',
value: 54
},
{
name: '天津',
value: 13
},
{
name: '上海',
value: 40
},
{
name: '重庆',
value: 75
},
{
name: '河北',
value: 13
},
{
name: '河南',
value: 83
},
{
name: '云南',
value: 11
},
{
name: '辽宁',
value: 19
},
{
name: '黑龙江',
value: 15
},
{
name: '湖南',
value: 69
},
{
name: '安徽',
value: 60
},
{
name: '山东',
value: 39
},
{
name: '新疆',
value: 4
},
{
name: '江苏',
value: 31
},
{
name: '浙江',
value: 104
},
{
name: '江西',
value: 36
},
{
name: '湖北',
value: 1052
},
{
name: '广西',
value: 33
},
{
name: '甘肃',
value: 7
},
{
name: '山西',
value: 9
},
{
name: '内蒙古',
value: 7
},
{
name: '陕西',
value: 22
},
{
name: '吉林',
value: 4
},
{
name: '福建',
value: 18
},
{
name: '贵州',
value: 5
},
{
name: '广东',
value: 98
},
{
name: '青海',
value: 1
},
{
name: '西藏',
value: 0
},
{
name: '四川',
value: 44
},
{
name: '宁夏',
value: 4
},
{
name: '海南',
value: 22
},
{
name: '台湾',
value: 3
},
{
name: '香港',
value: 5
},
{
name: '澳门',
value: 5
}
],
}
},
mounted() {
this.eChartChina();
},
created() {
},
computed: {},
methods: {
eChartChina(){
var myChart = echarts.init(document.getElementById('main'));
var option = {
tooltip: {
triggerOn: "click",
formatter: function(e, t, n) {
return .5 == e.value ? e.name + ":登录次数" : e.seriesName + "<br />" + e.name + "" + e.value
}
},
visualMap: {
min: 0,
max: 1000,
top: 10,
// left: 26,
// bottom: 40,
showLabel: !0,
text: ["高", "低"],
pieces: [{
gt: 100,
label: "> 100 次",
color: "#7f1100"
}, {
gte: 10,
lte: 100,
label: "10 - 100 次",
color: "#ff5428"
}, {
gte: 1,
lt: 10,
label: "1 - 9 次",
color: "#ff8c71"
}, {
value: 0,
color: "#ffffff"
}],
show: !0
},
geo: {
map: "china",
roam: !1,
scaleLimit: {
min: 1,
max: 2
},
zoom: 1,
top: 50,
label: {
normal: {
show: !0,
fontSize: "14",
color: "rgba(0,0,0,0.7)"
}
},
itemStyle: {
normal: {
//shadowBlur: 50,
//shadowColor: 'rgba(0, 0, 0, 0.2)',
borderColor: "rgba(0, 0, 0, 0.2)"
},
emphasis: {
areaColor: "#f2d5ad",
shadowOffsetX: 0,
shadowOffsetY: 0,
borderWidth: 0
}
}
},
series: [{
name: "登录次数",
type: "map",
geoIndex: 0,
data: this.dataList
}]
};
myChart.clear();
myChart.setOption(option, true);
//
window.addEventListener("resize", function () {
myChart.resize();
});
myChart.resize({
width: 600,
height: 500
});
}
}
}
</script>
<style scoped>
.main{
width: 600px;
height: 500px;
}
</style>

View File

@ -0,0 +1,64 @@
<template>
<div class="info-card">
<div class="icon">
<img style="width: 70px;height: 70px;margin-left: 10px" src="@/assets/img/bookmark.png">
</div>
<div class="content">
<span class="content-info">4655 /</span>
<span class="content-tag">书签个数</span>
</div>
</div>
</template>
<script>
export default {
name: "InfoCard",
data() {
return {}
},
mounted() {
},
created() {
},
computed: {},
methods: {}
}
</script>
<style scoped>
.info-card{
justify-content: space-between;
width: 300px;
height: 100px;
display: flex;
flex-direction: row;
align-items: center;
border-radius: 20px;
border: 1px solid;
border-color:var(--border-color);
background-color: var(--theme-bg-color);
color: var(--theme-color);
}
.icon{
display: flex;
flex-direction: row;
align-items: center;
}
.content{
display: flex;
flex-direction: column;
margin-right: 20px;
}
.content-info{
font-weight: bolder;
font-size: 30px;
color: var(--theme-color);
}
.content-tag{
text-align: end;
font-size: 18px;
color: var(--theme-color);
font-weight: bolder;
}
</style>

View File

@ -1,29 +1,46 @@
<template> <template>
<div class="main"> <div class="main">
<div style="display: flex">
<div>
<PersonalInfoCard></PersonalInfoCard> <PersonalInfoCard></PersonalInfoCard>
</div> </div>
<div style="flex-direction: column;display: flex">
<div style="display: flex;flex-direction: row;margin-left: 40px;margin-top: 10px">
<InfoCard></InfoCard>
<InfoCard style="margin-left: 10px"></InfoCard>
</div>
<HomeEChart style="margin-left: 40px"></HomeEChart>
</div>
</div>
</div>
</template> </template>
<script> <script>
import PersonalInfoCard from "@/components/setting/home/PersonalInfoCard.vue"; import PersonalInfoCard from "@/components/setting/home/PersonalInfoCard.vue";
import InfoCard from "@/components/setting/home/InfoCard.vue";
import HomeEChart from "@/components/setting/home/HomeEChart.vue";
export default { export default {
name: "PersonalHomePage", name: "PersonalHomePage",
components: {PersonalInfoCard}, components: {HomeEChart, InfoCard, PersonalInfoCard},
data() { data() {
return {} return {}
}, },
mounted() { mounted() {
}, },
created() { created() {
}, },
computed: {}, computed: {},
methods: { methods: {}
}
} }
</script> </script>
<style scoped> <style scoped>
.main {
//display: flex; //align-items: center; //flex-direction: row;
}
</style> </style>

View File

@ -2,10 +2,6 @@
<div class="header"> <div class="header">
<div class="menu-circle"></div> <div class="menu-circle"></div>
<div class="header-menu"> <div class="header-menu">
<!-- <router-link to="/home"><a class="menu-link is-active" >ALL</a></router-link>-->
<!-- <router-link to="/hotNews"><a class="menu-link notify">HotNews</a></router-link>-->
<!-- <router-link to="/navDetail"><a class="menu-link">Discover</a></router-link>-->
<!-- <a class="menu-link notify" href="#">Market</a>-->
</div> </div>
<div class="search-bar"> <div class="search-bar">
<input type="text" placeholder="Search"> <input type="text" placeholder="Search">
@ -13,19 +9,31 @@
<div class="header-profile"> <div class="header-profile">
<div class="notification"> <div class="notification">
<span class="notification-number">3</span> <span class="notification-number">3</span>
<svg viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bell"> <div class="notice-div">
<path d="M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 01-3.46 0"></path> <i class="notice el-icon-message-solid"></i>
</svg>
</div> </div>
<svg viewBox="0 0 512 512" fill="currentColor"> </div>
<path d="M448.773 235.551A135.893 135.893 0 00451 211c0-74.443-60.557-135-135-135-47.52 0-91.567 25.313-115.766 65.537-32.666-10.59-66.182-6.049-93.794 12.979-27.612 19.013-44.092 49.116-45.425 82.031C24.716 253.788 0 290.497 0 331c0 7.031 1.703 13.887 3.006 20.537l.015.015C12.719 400.492 56.034 436 106 436h300c57.891 0 106-47.109 106-105 0-40.942-25.053-77.798-63.227-95.449z"></path> <el-tooltip class="item" effect="dark" content="上传书签" placement="bottom">
</svg> <div class="upload-div" @click="upload">
<img @click="openLoginDialog" class="profile-img" src="https://images.unsplash.com/photo-1600353068440-6361ef3a86e8?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&amp;ixlib=rb-1.2.1&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" alt=""> <i class="upload el-icon-upload"></i>
</div>
</el-tooltip>
<el-dropdown @command="handleCommand">
<div class="avatar-div"
style="border-radius: 50px;width: 44px;height: 44px;margin-left: 20px;cursor: pointer">
<el-avatar> user</el-avatar>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="home">返回首页</el-dropdown-item>
<el-dropdown-item command="signOut">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import $ from 'jquery' import $ from 'jquery'
import Vue from "vue";
export default { export default {
name:"SettingHeader", name:"SettingHeader",
components:{ components:{
@ -46,10 +54,55 @@ export default {
}, },
methods: { methods: {
openLoginDialog(){ handleCommand(cmditem) {
this.loginDialogVisible=true; if (!cmditem) {
this.$message("菜单选项缺少command属性");
return;
}
switch (cmditem) {
case "signOut":
this.signOut();
break;
case "home":
this.goToHome();
break;
}
},
goToHome(){
this.$router.push({
path:'/home',
})
}, },
signOut(){
localStorage.removeItem("Authorization")
localStorage.removeItem("userId")
localStorage.removeItem("userRole")
this.$router.push({
path:'/home',
})
// setTimeout(()=>{
// window.location.reload()
// },1000)
},
upload(){
if(localStorage.getItem('Authorization')&&localStorage.getItem('userId')){
this.$router.push({
path:'/importExport',
})
}else {
Vue.prototype.$notify.error({
title: '错误',
message: "登录状态失效,请重新登录!",
offset: 0
});
}
},
toggleActive(){ toggleActive(){
$(function () { $(function () {
$(".menu-link").click(function () { $(".menu-link").click(function () {
@ -58,19 +111,51 @@ export default {
}); });
}); });
}, },
// reacherBarFun(){
// $(".search-bar input").
// focus(function () {
// $(".header").addClass("wide");
// }).
// blur(function () {
// $(".header").removeClass("wide");
// });
// }
} }
} }
</script> </script>
<style scoped> <style scoped>
.upload {
font-size: 25px;
font-weight: bold;
color: var(--theme-color);
}
.notice {
font-size: 25px;
font-weight: bold;
color: var(--theme-color);
}
.upload-div {
border-radius: 50px;
width: 32px;
height: 32px;
margin-left: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.upload-div:hover {
border: 2px solid var(--theme-color);
cursor: pointer;
}
.notice-div {
border-radius: 50px;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
}
.notice-div:hover {
border: 2px solid var(--theme-color);
cursor: pointer;
}
.avatar-div:hover {
border: 2px solid var(--theme-color);
}
</style> </style>

View File

@ -42,6 +42,7 @@ const $ = require('jquery');
window.$ = $; window.$ = $;
import * as echarts from 'echarts';//引入echarts import * as echarts from 'echarts';//引入echarts
import '@/assets/js/china';
Vue.prototype.$echarts = echarts //引入组件 Vue.prototype.$echarts = echarts //引入组件
Vue.config.productionTip = false Vue.config.productionTip = false

View File

@ -6,6 +6,8 @@ Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
theme:'dark', theme:'dark',
userId:localStorage.getItem('userId') ? localStorage.getItem('userId') : '',
userRole:localStorage.getItem('userRole') ? localStorage.getItem('userRole') : '',
// 存储token // 存储token
Authorization: localStorage.getItem('Authorization') ? localStorage.getItem('Authorization') : '', Authorization: localStorage.getItem('Authorization') ? localStorage.getItem('Authorization') : '',
}, },
@ -19,7 +21,15 @@ export default new Vuex.Store({
changeLogin (state, user) { changeLogin (state, user) {
state.Authorization = user.Authorization; state.Authorization = user.Authorization;
localStorage.setItem('Authorization', user.Authorization); localStorage.setItem('Authorization', user.Authorization);
} },
setUserId(state,user){
state.userId=user.userId;
localStorage.setItem('userId',user.userId);
},
setUserRole(state,user){
state.userRole=user.userRole;
localStorage.setItem('userRole',user.userRole);
},
}, },

27
src/utils/getIp.js Normal file
View File

@ -0,0 +1,27 @@
export function getUserIP(onNewIP) {
let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
let pc = new MyPeerConnection({
iceServers: []
});
let noop = () => {
};
let localIPs = {};
let ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;
let iterateIP = (ip) => {
if (!localIPs[ip]) onNewIP(ip);
localIPs[ip] = true;
};
pc.createDataChannel('');
pc.createOffer().then((sdp) => {
sdp.sdp.split('\n').forEach(function (line) {
if (line.indexOf('candidate') < 0) return;
line.match(ipRegex).forEach(iterateIP);
});
pc.setLocalDescription(sdp, noop, noop);
}).catch((reason) => {
});
pc.onicecandidate = (ice) => {
if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
};
}

View File

@ -1,45 +0,0 @@
/**** http.js ****/
// 导入封装好的axios实例
import request from './request'
const http ={
/**
* methods: 请求
* @param url 请求地址
* @param params 请求参数
*/
get(url,params){
const config = {
method: 'get',
url:url
}
if(params) config.params = params
return request(config)
},
post(url,params){
const config = {
method: 'post',
url:url
}
if(params) config.data = params
return request(config)
},
put(url,params){
const config = {
method: 'put',
url:url
}
if(params) config.params = params
return request(config)
},
delete(url,params){
const config = {
method: 'delete',
url:url
}
if(params) config.params = params
return request(config)
}
}
//导出
export default http

View File

@ -1,97 +0,0 @@
/**** request.js ****/
// 导入axios
import axios from 'axios'
// 使用element-ui Message做消息提醒
import { Message} from 'element-ui';
//1. 创建新的axios实例
const service = axios.create({
// 公共接口--这里注意后面会讲
baseURL: '/api',
// 超时时间 单位是ms这里设置了3s的超时时间
timeout: 3 * 1000
})
// 2.请求拦截器
service.interceptors.request.use(config => {
//发请求前做的一些处理数据转化配置请求头设置token,设置loading等根据需求去添加
config.data = JSON.stringify(config.data); //数据转化,也可以使用qs转换
config.headers = {
'Access-Control-Allow-Origin': '*',
"Content-Type": "application/json;charset=utf-8"
}
//如有需要注意使用token的时候需要引入cookie方法或者用本地localStorage等方法推荐js-cookie
//const token = getCookie('名称');//这里取token之前你肯定需要先拿到token,存一下
//if(token){
//config.params = {'token':token} //如果要求携带在参数中
//config.headers.token= token; //如果要求携带在请求头中
//}
return config
}, error => {
Promise.reject(error)
})
// 3.响应拦截器
service.interceptors.response.use(response => {
//接收到响应数据并成功后的一些共有的处理关闭loading等
return response
}, error => {
/***** 接收到异常响应的处理开始 *****/
if (error && error.response) {
// 1.公共错误处理
// 2.根据响应码具体处理
switch (error.response.status) {
case 400:
error.message = '错误请求'
break;
case 401:
error.message = '未授权,请重新登录'
break;
case 403:
error.message = '拒绝访问'
break;
case 404:
error.message = '请求错误,未找到该资源'
window.location.href = "/404"
break;
case 405:
error.message = '请求方法未允许'
break;
case 408:
error.message = '请求超时'
break;
case 500:
error.message = '服务器端出错'
break;
case 501:
error.message = '网络未实现'
break;
case 502:
error.message = '网络错误'
break;
case 503:
error.message = '服务不可用'
break;
case 504:
error.message = '网络超时'
break;
case 505:
error.message = 'http版本不支持该请求'
break;
default:
error.message = `连接错误${error.response.status}`
}
} else {
// 超时处理
if (JSON.stringify(error).includes('timeout')) {
Message.error('服务器响应超时,请刷新当前页')
}
error.message = '连接服务器失败'
}
Message.error(error.message)
/***** 处理结束 *****/
//如果不需要错误处理,以上的处理过程都可省略
return Promise.resolve(error.response)
})
//4.导入文件
export default service

View File

@ -1,233 +0,0 @@
/**
* 通用js方法封装处理
* Copyright (c) 2019 tszh
*/
// 日期格式化
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
}
if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
// 表单重置
export function resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
}
// 添加日期范围
export function addDateRange(params, dateRange, propName) {
let search = params;
search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
dateRange = Array.isArray(dateRange) ? dateRange : [];
if (typeof (propName) === 'undefined') {
search.params['beginTime'] = dateRange[0];
search.params['endTime'] = dateRange[1];
} else {
search.params['begin' + propName] = dateRange[0];
search.params['end' + propName] = dateRange[1];
}
return search;
}
// 回显数据字典
export function selectDictLabel(datas, value) {
if (value === undefined) {
return "";
}
var actions = [];
Object.keys(datas).some((key) => {
if (datas[key].value == ('' + value)) {
actions.push(datas[key].label);
return true;
}
})
if (actions.length === 0) {
actions.push(value);
}
return actions.join('');
}
// 回显数据字典(字符串、数组)
export function selectDictLabels(datas, value, separator) {
if (value === undefined || value.length ===0) {
return "";
}
if (Array.isArray(value)) {
value = value.join(",");
}
var actions = [];
var currentSeparator = undefined === separator ? "," : separator;
var temp = value.split(currentSeparator);
Object.keys(value.split(currentSeparator)).some((val) => {
var match = false;
Object.keys(datas).some((key) => {
if (datas[key].value == ('' + temp[val])) {
actions.push(datas[key].label + currentSeparator);
match = true;
}
})
if (!match) {
actions.push(temp[val] + currentSeparator);
}
})
return actions.join('').substring(0, actions.join('').length - 1);
}
// 字符串格式化(%s )
export function sprintf(str) {
var args = arguments, flag = true, i = 1;
str = str.replace(/%s/g, function () {
var arg = args[i++];
if (typeof arg === 'undefined') {
flag = false;
return '';
}
return arg;
});
return flag ? str : '';
}
// 转换字符串undefined,null等转化为""
export function parseStrEmpty(str) {
if (!str || str == "undefined" || str == "null") {
return "";
}
return str;
}
// 数据合并
export function mergeRecursive(source, target) {
for (var p in target) {
try {
if (target[p].constructor == Object) {
source[p] = mergeRecursive(source[p], target[p]);
} else {
source[p] = target[p];
}
} catch (e) {
source[p] = target[p];
}
}
return source;
};
/**
* 构造树型结构数据
* @param {*} data 数据源
* @param {*} id id字段 默认 'id'
* @param {*} parentId 父节点字段 默认 'parentId'
* @param {*} children 孩子节点字段 默认 'children'
*/
export function handleTree(data, id, parentId, children) {
let config = {
id: id || 'id',
parentId: parentId || 'parentId',
childrenList: children || 'children'
};
var childrenListMap = {};
var nodeIds = {};
var tree = [];
for (let d of data) {
let parentId = d[config.parentId];
if (childrenListMap[parentId] == null) {
childrenListMap[parentId] = [];
}
nodeIds[d[config.id]] = d;
childrenListMap[parentId].push(d);
}
for (let d of data) {
let parentId = d[config.parentId];
if (nodeIds[parentId] == null) {
tree.push(d);
}
}
for (let t of tree) {
adaptToChildrenList(t);
}
function adaptToChildrenList(o) {
if (childrenListMap[o[config.id]] !== null) {
o[config.childrenList] = childrenListMap[o[config.id]];
}
if (o[config.childrenList]) {
for (let c of o[config.childrenList]) {
adaptToChildrenList(c);
}
}
}
return tree;
}
/**
* 参数处理
* @param {*} params 参数
*/
export function tansParams(params) {
let result = ''
for (const propName of Object.keys(params)) {
const value = params[propName];
var part = encodeURIComponent(propName) + "=";
if (value !== null && value !== "" && typeof (value) !== "undefined") {
if (typeof value === 'object') {
for (const key of Object.keys(value)) {
if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
let params = propName + '[' + key + ']';
var subPart = encodeURIComponent(params) + "=";
result += subPart + encodeURIComponent(value[key]) + "&";
}
}
} else {
result += part + encodeURIComponent(value) + "&";
}
}
}
return result
}
// 验证是否为blob格式
export function blobValidate(data) {
return data.type !== 'application/json'
}

View File

@ -1,83 +0,0 @@
/**
* @param {string} path
* @returns {Boolean}
*/
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validUsername(str) {
const valid_map = ['admin', 'editor']
return valid_map.indexOf(str.trim()) >= 0
}
/**
* @param {string} url
* @returns {Boolean}
*/
export function validURL(url) {
const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
return reg.test(url)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validLowerCase(str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validUpperCase(str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/**
* @param {string} email
* @returns {Boolean}
*/
export function validEmail(email) {
const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return reg.test(email)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function isString(str) {
if (typeof str === 'string' || str instanceof String) {
return true
}
return false
}
/**
* @param {Array} arg
* @returns {Boolean}
*/
export function isArray(arg) {
if (typeof Array.isArray === 'undefined') {
return Object.prototype.toString.call(arg) === '[object Array]'
}
return Array.isArray(arg)
}

View File

@ -1,7 +1,7 @@
<template> <template>
<!-- <div class="home">--> <!-- <div class="home">-->
<!-- <HomePage></HomePage>--> <!-- <HomePage></HomePage>-->
<!-- </div>--> <!-- </div>-->
<body translate="no"> <body translate="no">
<div class="video-bg"> <div class="video-bg">
<video width="320" height="240" autoplay="" loop="" muted="" __idm_id__="1581057"> <video width="320" height="240" autoplay="" loop="" muted="" __idm_id__="1581057">
@ -17,11 +17,8 @@
</div> </div>
<div class="app"> <div class="app">
<HomeHeader></HomeHeader> <HomeHeader></HomeHeader>
<!-- <router-view></router-view>--> <!-- <router-view></router-view>-->
<div class="wrapper">
<LeftSide :category="category"></LeftSide>
<router-view></router-view> <router-view></router-view>
</div>
<div class="overlay-app"></div> <div class="overlay-app"></div>
</div> </div>
</body> </body>
@ -43,45 +40,48 @@ export default {
}, },
data() { data() {
return { return {
isLight:false, isLight: false,
darkMode:window.sessionStorage.getItem('theme'), darkMode: window.sessionStorage.getItem('theme'),
folderTrue:[], folderTrue: [],
folderFalse:[], folderFalse: [],
category:[],
} }
}, },
mounted() { mounted() {
this.getCategories();
let nowDate=new Date() let nowDate = new Date()
let hour=nowDate.getHours() let hour = nowDate.getHours()
// //
if(hour>18&&hour<=24||hour<6){ if (hour > 18 && hour <= 24 || hour < 6) {
this.goDark() this.goDark()
} }
// //
if(this.darkMode==='dark'){ this.goDark()} if (this.darkMode === 'dark') {
this.goDark()
}
}, },
created() { created() {
}, },
computed: {}, computed: {},
methods:{ methods: {
goDark() { goDark() {
// //
document.body.classList.remove('light-mode') document.body.classList.remove('light-mode')
window.sessionStorage.setItem('theme', 'dark') window.sessionStorage.setItem('theme', 'dark')
}, },
goLight(){ goLight() {
// //
document.body.classList.add('light-mode') document.body.classList.add('light-mode')
window.sessionStorage.setItem('theme','light') window.sessionStorage.setItem('theme', 'light')
}, },
changeStyle(){ changeStyle() {
this.isLight=!this.isLight this.isLight = !this.isLight
if(this.isLight!==true){ if (this.isLight !== true) {
this.goDark(); this.goDark();
}else{ } else {
this.goLight(); this.goLight();
} }
@ -92,38 +92,9 @@ export default {
// document.body.classList.toggle('light-mode'); // document.body.classList.toggle('light-mode');
// }); // });
// } // }
getCategories(){
let _this=this;
axios({
method: 'post',
url: '/api//UrlAndCate/disposeBookmarkExhibitedToJson',
}).then(function (res) {
console.log(res);
_this.category=res.data.data;
_this.extractData(res.data.data,_this.folderTrue,_this.folderFalse);
console.log(_this.folderTrue);
console.log(_this.folderFalse);
}).catch((error)=>{
Vue.prototype.$notify.error({
title: '错误',
message: error,
offset: 0
});
})
},
extractData(data, trueArray,falseArray) {
data.forEach((item) => {
if (item.floder === 'true') {
trueArray.push(item);
if (item.childUC && item.childUC.length > 0) {
this.extractData(item.childUC, trueArray,falseArray);
}
} else if (item.floder === 'false') {
falseArray.push(item);
}
});
},
} }
} }
</script> </script>