vendor.js 1.2 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089
  1. (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"],{
  2. /***/ 1:
  3. /*!************************************************************!*\
  4. !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js ***!
  5. \************************************************************/
  6. /*! no static exports found */
  7. /***/ (function(module, exports, __webpack_require__) {
  8. "use strict";
  9. /* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports, "__esModule", { value: true });exports.createApp = createApp;exports.createComponent = createComponent;exports.createPage = createPage;exports.createPlugin = createPlugin;exports.createSubpackageApp = createSubpackageApp;exports.default = void 0;var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 3);
  10. var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 4));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}
  11. var realAtob;
  12. var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  13. var b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
  14. if (typeof atob !== 'function') {
  15. realAtob = function realAtob(str) {
  16. str = String(str).replace(/[\t\n\f\r ]+/g, '');
  17. if (!b64re.test(str)) {throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");}
  18. // Adding the padding if missing, for semplicity
  19. str += '=='.slice(2 - (str.length & 3));
  20. var bitmap;var result = '';var r1;var r2;var i = 0;
  21. for (; i < str.length;) {
  22. bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |
  23. (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));
  24. result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) :
  25. r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) :
  26. String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
  27. }
  28. return result;
  29. };
  30. } else {
  31. // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法
  32. realAtob = atob;
  33. }
  34. function b64DecodeUnicode(str) {
  35. return decodeURIComponent(realAtob(str).split('').map(function (c) {
  36. return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
  37. }).join(''));
  38. }
  39. function getCurrentUserInfo() {
  40. var token = wx.getStorageSync('uni_id_token') || '';
  41. var tokenArr = token.split('.');
  42. if (!token || tokenArr.length !== 3) {
  43. return {
  44. uid: null,
  45. role: [],
  46. permission: [],
  47. tokenExpired: 0 };
  48. }
  49. var userInfo;
  50. try {
  51. userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));
  52. } catch (error) {
  53. throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message);
  54. }
  55. userInfo.tokenExpired = userInfo.exp * 1000;
  56. delete userInfo.exp;
  57. delete userInfo.iat;
  58. return userInfo;
  59. }
  60. function uniIdMixin(Vue) {
  61. Vue.prototype.uniIDHasRole = function (roleId) {var _getCurrentUserInfo =
  62. getCurrentUserInfo(),role = _getCurrentUserInfo.role;
  63. return role.indexOf(roleId) > -1;
  64. };
  65. Vue.prototype.uniIDHasPermission = function (permissionId) {var _getCurrentUserInfo2 =
  66. getCurrentUserInfo(),permission = _getCurrentUserInfo2.permission;
  67. return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1;
  68. };
  69. Vue.prototype.uniIDTokenValid = function () {var _getCurrentUserInfo3 =
  70. getCurrentUserInfo(),tokenExpired = _getCurrentUserInfo3.tokenExpired;
  71. return tokenExpired > Date.now();
  72. };
  73. }
  74. var _toString = Object.prototype.toString;
  75. var hasOwnProperty = Object.prototype.hasOwnProperty;
  76. function isFn(fn) {
  77. return typeof fn === 'function';
  78. }
  79. function isStr(str) {
  80. return typeof str === 'string';
  81. }
  82. function isPlainObject(obj) {
  83. return _toString.call(obj) === '[object Object]';
  84. }
  85. function hasOwn(obj, key) {
  86. return hasOwnProperty.call(obj, key);
  87. }
  88. function noop() {}
  89. /**
  90. * Create a cached version of a pure function.
  91. */
  92. function cached(fn) {
  93. var cache = Object.create(null);
  94. return function cachedFn(str) {
  95. var hit = cache[str];
  96. return hit || (cache[str] = fn(str));
  97. };
  98. }
  99. /**
  100. * Camelize a hyphen-delimited string.
  101. */
  102. var camelizeRE = /-(\w)/g;
  103. var camelize = cached(function (str) {
  104. return str.replace(camelizeRE, function (_, c) {return c ? c.toUpperCase() : '';});
  105. });
  106. function sortObject(obj) {
  107. var sortObj = {};
  108. if (isPlainObject(obj)) {
  109. Object.keys(obj).sort().forEach(function (key) {
  110. sortObj[key] = obj[key];
  111. });
  112. }
  113. return !Object.keys(sortObj) ? obj : sortObj;
  114. }
  115. var HOOKS = [
  116. 'invoke',
  117. 'success',
  118. 'fail',
  119. 'complete',
  120. 'returnValue'];
  121. var globalInterceptors = {};
  122. var scopedInterceptors = {};
  123. function mergeHook(parentVal, childVal) {
  124. var res = childVal ?
  125. parentVal ?
  126. parentVal.concat(childVal) :
  127. Array.isArray(childVal) ?
  128. childVal : [childVal] :
  129. parentVal;
  130. return res ?
  131. dedupeHooks(res) :
  132. res;
  133. }
  134. function dedupeHooks(hooks) {
  135. var res = [];
  136. for (var i = 0; i < hooks.length; i++) {
  137. if (res.indexOf(hooks[i]) === -1) {
  138. res.push(hooks[i]);
  139. }
  140. }
  141. return res;
  142. }
  143. function removeHook(hooks, hook) {
  144. var index = hooks.indexOf(hook);
  145. if (index !== -1) {
  146. hooks.splice(index, 1);
  147. }
  148. }
  149. function mergeInterceptorHook(interceptor, option) {
  150. Object.keys(option).forEach(function (hook) {
  151. if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {
  152. interceptor[hook] = mergeHook(interceptor[hook], option[hook]);
  153. }
  154. });
  155. }
  156. function removeInterceptorHook(interceptor, option) {
  157. if (!interceptor || !option) {
  158. return;
  159. }
  160. Object.keys(option).forEach(function (hook) {
  161. if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {
  162. removeHook(interceptor[hook], option[hook]);
  163. }
  164. });
  165. }
  166. function addInterceptor(method, option) {
  167. if (typeof method === 'string' && isPlainObject(option)) {
  168. mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);
  169. } else if (isPlainObject(method)) {
  170. mergeInterceptorHook(globalInterceptors, method);
  171. }
  172. }
  173. function removeInterceptor(method, option) {
  174. if (typeof method === 'string') {
  175. if (isPlainObject(option)) {
  176. removeInterceptorHook(scopedInterceptors[method], option);
  177. } else {
  178. delete scopedInterceptors[method];
  179. }
  180. } else if (isPlainObject(method)) {
  181. removeInterceptorHook(globalInterceptors, method);
  182. }
  183. }
  184. function wrapperHook(hook) {
  185. return function (data) {
  186. return hook(data) || data;
  187. };
  188. }
  189. function isPromise(obj) {
  190. return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
  191. }
  192. function queue(hooks, data) {
  193. var promise = false;
  194. for (var i = 0; i < hooks.length; i++) {
  195. var hook = hooks[i];
  196. if (promise) {
  197. promise = Promise.resolve(wrapperHook(hook));
  198. } else {
  199. var res = hook(data);
  200. if (isPromise(res)) {
  201. promise = Promise.resolve(res);
  202. }
  203. if (res === false) {
  204. return {
  205. then: function then() {} };
  206. }
  207. }
  208. }
  209. return promise || {
  210. then: function then(callback) {
  211. return callback(data);
  212. } };
  213. }
  214. function wrapperOptions(interceptor) {var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  215. ['success', 'fail', 'complete'].forEach(function (name) {
  216. if (Array.isArray(interceptor[name])) {
  217. var oldCallback = options[name];
  218. options[name] = function callbackInterceptor(res) {
  219. queue(interceptor[name], res).then(function (res) {
  220. /* eslint-disable no-mixed-operators */
  221. return isFn(oldCallback) && oldCallback(res) || res;
  222. });
  223. };
  224. }
  225. });
  226. return options;
  227. }
  228. function wrapperReturnValue(method, returnValue) {
  229. var returnValueHooks = [];
  230. if (Array.isArray(globalInterceptors.returnValue)) {
  231. returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(globalInterceptors.returnValue));
  232. }
  233. var interceptor = scopedInterceptors[method];
  234. if (interceptor && Array.isArray(interceptor.returnValue)) {
  235. returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(interceptor.returnValue));
  236. }
  237. returnValueHooks.forEach(function (hook) {
  238. returnValue = hook(returnValue) || returnValue;
  239. });
  240. return returnValue;
  241. }
  242. function getApiInterceptorHooks(method) {
  243. var interceptor = Object.create(null);
  244. Object.keys(globalInterceptors).forEach(function (hook) {
  245. if (hook !== 'returnValue') {
  246. interceptor[hook] = globalInterceptors[hook].slice();
  247. }
  248. });
  249. var scopedInterceptor = scopedInterceptors[method];
  250. if (scopedInterceptor) {
  251. Object.keys(scopedInterceptor).forEach(function (hook) {
  252. if (hook !== 'returnValue') {
  253. interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
  254. }
  255. });
  256. }
  257. return interceptor;
  258. }
  259. function invokeApi(method, api, options) {for (var _len = arguments.length, params = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {params[_key - 3] = arguments[_key];}
  260. var interceptor = getApiInterceptorHooks(method);
  261. if (interceptor && Object.keys(interceptor).length) {
  262. if (Array.isArray(interceptor.invoke)) {
  263. var res = queue(interceptor.invoke, options);
  264. return res.then(function (options) {
  265. return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
  266. });
  267. } else {
  268. return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
  269. }
  270. }
  271. return api.apply(void 0, [options].concat(params));
  272. }
  273. var promiseInterceptor = {
  274. returnValue: function returnValue(res) {
  275. if (!isPromise(res)) {
  276. return res;
  277. }
  278. return new Promise(function (resolve, reject) {
  279. res.then(function (res) {
  280. if (res[0]) {
  281. reject(res[0]);
  282. } else {
  283. resolve(res[1]);
  284. }
  285. });
  286. });
  287. } };
  288. var SYNC_API_RE =
  289. /^\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting/;
  290. var CONTEXT_API_RE = /^create|Manager$/;
  291. // Context例外情况
  292. var CONTEXT_API_RE_EXC = ['createBLEConnection'];
  293. // 同步例外情况
  294. var ASYNC_API = ['createBLEConnection', 'createPushMessage'];
  295. var CALLBACK_API_RE = /^on|^off/;
  296. function isContextApi(name) {
  297. return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;
  298. }
  299. function isSyncApi(name) {
  300. return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;
  301. }
  302. function isCallbackApi(name) {
  303. return CALLBACK_API_RE.test(name) && name !== 'onPush';
  304. }
  305. function handlePromise(promise) {
  306. return promise.then(function (data) {
  307. return [null, data];
  308. }).
  309. catch(function (err) {return [err];});
  310. }
  311. function shouldPromise(name) {
  312. if (
  313. isContextApi(name) ||
  314. isSyncApi(name) ||
  315. isCallbackApi(name))
  316. {
  317. return false;
  318. }
  319. return true;
  320. }
  321. /* eslint-disable no-extend-native */
  322. if (!Promise.prototype.finally) {
  323. Promise.prototype.finally = function (callback) {
  324. var promise = this.constructor;
  325. return this.then(
  326. function (value) {return promise.resolve(callback()).then(function () {return value;});},
  327. function (reason) {return promise.resolve(callback()).then(function () {
  328. throw reason;
  329. });});
  330. };
  331. }
  332. function promisify(name, api) {
  333. if (!shouldPromise(name)) {
  334. return api;
  335. }
  336. return function promiseApi() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {params[_key2 - 1] = arguments[_key2];}
  337. if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {
  338. return wrapperReturnValue(name, invokeApi.apply(void 0, [name, api, options].concat(params)));
  339. }
  340. return wrapperReturnValue(name, handlePromise(new Promise(function (resolve, reject) {
  341. invokeApi.apply(void 0, [name, api, Object.assign({}, options, {
  342. success: resolve,
  343. fail: reject })].concat(
  344. params));
  345. })));
  346. };
  347. }
  348. var EPS = 1e-4;
  349. var BASE_DEVICE_WIDTH = 750;
  350. var isIOS = false;
  351. var deviceWidth = 0;
  352. var deviceDPR = 0;
  353. function checkDeviceWidth() {var _wx$getSystemInfoSync =
  354. wx.getSystemInfoSync(),platform = _wx$getSystemInfoSync.platform,pixelRatio = _wx$getSystemInfoSync.pixelRatio,windowWidth = _wx$getSystemInfoSync.windowWidth; // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni
  355. deviceWidth = windowWidth;
  356. deviceDPR = pixelRatio;
  357. isIOS = platform === 'ios';
  358. }
  359. function upx2px(number, newDeviceWidth) {
  360. if (deviceWidth === 0) {
  361. checkDeviceWidth();
  362. }
  363. number = Number(number);
  364. if (number === 0) {
  365. return 0;
  366. }
  367. var result = number / BASE_DEVICE_WIDTH * (newDeviceWidth || deviceWidth);
  368. if (result < 0) {
  369. result = -result;
  370. }
  371. result = Math.floor(result + EPS);
  372. if (result === 0) {
  373. if (deviceDPR === 1 || !isIOS) {
  374. result = 1;
  375. } else {
  376. result = 0.5;
  377. }
  378. }
  379. return number < 0 ? -result : result;
  380. }
  381. var LOCALE_ZH_HANS = 'zh-Hans';
  382. var LOCALE_ZH_HANT = 'zh-Hant';
  383. var LOCALE_EN = 'en';
  384. var LOCALE_FR = 'fr';
  385. var LOCALE_ES = 'es';
  386. var messages = {};
  387. var locale;
  388. {
  389. locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;
  390. }
  391. function initI18nMessages() {
  392. if (!isEnableLocale()) {
  393. return;
  394. }
  395. var localeKeys = Object.keys(__uniConfig.locales);
  396. if (localeKeys.length) {
  397. localeKeys.forEach(function (locale) {
  398. var curMessages = messages[locale];
  399. var userMessages = __uniConfig.locales[locale];
  400. if (curMessages) {
  401. Object.assign(curMessages, userMessages);
  402. } else {
  403. messages[locale] = userMessages;
  404. }
  405. });
  406. }
  407. }
  408. initI18nMessages();
  409. var i18n = (0, _uniI18n.initVueI18n)(
  410. locale,
  411. {});
  412. var t = i18n.t;
  413. var i18nMixin = i18n.mixin = {
  414. beforeCreate: function beforeCreate() {var _this = this;
  415. var unwatch = i18n.i18n.watchLocale(function () {
  416. _this.$forceUpdate();
  417. });
  418. this.$once('hook:beforeDestroy', function () {
  419. unwatch();
  420. });
  421. },
  422. methods: {
  423. $$t: function $$t(key, values) {
  424. return t(key, values);
  425. } } };
  426. var setLocale = i18n.setLocale;
  427. var getLocale = i18n.getLocale;
  428. function initAppLocale(Vue, appVm, locale) {
  429. var state = Vue.observable({
  430. locale: locale || i18n.getLocale() });
  431. var localeWatchers = [];
  432. appVm.$watchLocale = function (fn) {
  433. localeWatchers.push(fn);
  434. };
  435. Object.defineProperty(appVm, '$locale', {
  436. get: function get() {
  437. return state.locale;
  438. },
  439. set: function set(v) {
  440. state.locale = v;
  441. localeWatchers.forEach(function (watch) {return watch(v);});
  442. } });
  443. }
  444. function isEnableLocale() {
  445. return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length;
  446. }
  447. function include(str, parts) {
  448. return !!parts.find(function (part) {return str.indexOf(part) !== -1;});
  449. }
  450. function startsWith(str, parts) {
  451. return parts.find(function (part) {return str.indexOf(part) === 0;});
  452. }
  453. function normalizeLocale(locale, messages) {
  454. if (!locale) {
  455. return;
  456. }
  457. locale = locale.trim().replace(/_/g, '-');
  458. if (messages && messages[locale]) {
  459. return locale;
  460. }
  461. locale = locale.toLowerCase();
  462. if (locale === 'chinese') {
  463. // 支付宝
  464. return LOCALE_ZH_HANS;
  465. }
  466. if (locale.indexOf('zh') === 0) {
  467. if (locale.indexOf('-hans') > -1) {
  468. return LOCALE_ZH_HANS;
  469. }
  470. if (locale.indexOf('-hant') > -1) {
  471. return LOCALE_ZH_HANT;
  472. }
  473. if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {
  474. return LOCALE_ZH_HANT;
  475. }
  476. return LOCALE_ZH_HANS;
  477. }
  478. var lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);
  479. if (lang) {
  480. return lang;
  481. }
  482. }
  483. // export function initI18n() {
  484. // const localeKeys = Object.keys(__uniConfig.locales || {})
  485. // if (localeKeys.length) {
  486. // localeKeys.forEach((locale) =>
  487. // i18n.add(locale, __uniConfig.locales[locale])
  488. // )
  489. // }
  490. // }
  491. function getLocale$1() {
  492. // 优先使用 $locale
  493. var app = getApp({
  494. allowDefault: true });
  495. if (app && app.$vm) {
  496. return app.$vm.$locale;
  497. }
  498. return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;
  499. }
  500. function setLocale$1(locale) {
  501. var app = getApp();
  502. if (!app) {
  503. return false;
  504. }
  505. var oldLocale = app.$vm.$locale;
  506. if (oldLocale !== locale) {
  507. app.$vm.$locale = locale;
  508. onLocaleChangeCallbacks.forEach(function (fn) {return fn({
  509. locale: locale });});
  510. return true;
  511. }
  512. return false;
  513. }
  514. var onLocaleChangeCallbacks = [];
  515. function onLocaleChange(fn) {
  516. if (onLocaleChangeCallbacks.indexOf(fn) === -1) {
  517. onLocaleChangeCallbacks.push(fn);
  518. }
  519. }
  520. if (typeof global !== 'undefined') {
  521. global.getLocale = getLocale$1;
  522. }
  523. var interceptors = {
  524. promiseInterceptor: promiseInterceptor };
  525. var baseApi = /*#__PURE__*/Object.freeze({
  526. __proto__: null,
  527. upx2px: upx2px,
  528. getLocale: getLocale$1,
  529. setLocale: setLocale$1,
  530. onLocaleChange: onLocaleChange,
  531. addInterceptor: addInterceptor,
  532. removeInterceptor: removeInterceptor,
  533. interceptors: interceptors });
  534. function findExistsPageIndex(url) {
  535. var pages = getCurrentPages();
  536. var len = pages.length;
  537. while (len--) {
  538. var page = pages[len];
  539. if (page.$page && page.$page.fullPath === url) {
  540. return len;
  541. }
  542. }
  543. return -1;
  544. }
  545. var redirectTo = {
  546. name: function name(fromArgs) {
  547. if (fromArgs.exists === 'back' && fromArgs.delta) {
  548. return 'navigateBack';
  549. }
  550. return 'redirectTo';
  551. },
  552. args: function args(fromArgs) {
  553. if (fromArgs.exists === 'back' && fromArgs.url) {
  554. var existsPageIndex = findExistsPageIndex(fromArgs.url);
  555. if (existsPageIndex !== -1) {
  556. var delta = getCurrentPages().length - 1 - existsPageIndex;
  557. if (delta > 0) {
  558. fromArgs.delta = delta;
  559. }
  560. }
  561. }
  562. } };
  563. var previewImage = {
  564. args: function args(fromArgs) {
  565. var currentIndex = parseInt(fromArgs.current);
  566. if (isNaN(currentIndex)) {
  567. return;
  568. }
  569. var urls = fromArgs.urls;
  570. if (!Array.isArray(urls)) {
  571. return;
  572. }
  573. var len = urls.length;
  574. if (!len) {
  575. return;
  576. }
  577. if (currentIndex < 0) {
  578. currentIndex = 0;
  579. } else if (currentIndex >= len) {
  580. currentIndex = len - 1;
  581. }
  582. if (currentIndex > 0) {
  583. fromArgs.current = urls[currentIndex];
  584. fromArgs.urls = urls.filter(
  585. function (item, index) {return index < currentIndex ? item !== urls[currentIndex] : true;});
  586. } else {
  587. fromArgs.current = urls[0];
  588. }
  589. return {
  590. indicator: false,
  591. loop: false };
  592. } };
  593. var UUID_KEY = '__DC_STAT_UUID';
  594. var deviceId;
  595. function useDeviceId(result) {
  596. deviceId = deviceId || wx.getStorageSync(UUID_KEY);
  597. if (!deviceId) {
  598. deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);
  599. wx.setStorage({
  600. key: UUID_KEY,
  601. data: deviceId });
  602. }
  603. result.deviceId = deviceId;
  604. }
  605. function addSafeAreaInsets(result) {
  606. if (result.safeArea) {
  607. var safeArea = result.safeArea;
  608. result.safeAreaInsets = {
  609. top: safeArea.top,
  610. left: safeArea.left,
  611. right: result.windowWidth - safeArea.right,
  612. bottom: result.screenHeight - safeArea.bottom };
  613. }
  614. }
  615. function populateParameters(result) {var _result$brand =
  616. result.brand,brand = _result$brand === void 0 ? '' : _result$brand,_result$model = result.model,model = _result$model === void 0 ? '' : _result$model,_result$system = result.system,system = _result$system === void 0 ? '' : _result$system,_result$language = result.language,language = _result$language === void 0 ? '' : _result$language,theme = result.theme,version = result.version,platform = result.platform,fontSizeSetting = result.fontSizeSetting,SDKVersion = result.SDKVersion,pixelRatio = result.pixelRatio,deviceOrientation = result.deviceOrientation;
  617. // const isQuickApp = "mp-weixin".indexOf('quickapp-webview') !== -1
  618. // osName osVersion
  619. var osName = '';
  620. var osVersion = '';
  621. {
  622. osName = system.split(' ')[0] || '';
  623. osVersion = system.split(' ')[1] || '';
  624. }
  625. var hostVersion = version;
  626. // deviceType
  627. var deviceType = getGetDeviceType(result, model);
  628. // deviceModel
  629. var deviceBrand = getDeviceBrand(brand);
  630. // hostName
  631. var _hostName = getHostName(result);
  632. // deviceOrientation
  633. var _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持
  634. // devicePixelRatio
  635. var _devicePixelRatio = pixelRatio;
  636. // SDKVersion
  637. var _SDKVersion = SDKVersion;
  638. // hostLanguage
  639. var hostLanguage = language.replace(/_/g, '-');
  640. // wx.getAccountInfoSync
  641. var parameters = {
  642. appId: "__UNI__4A2871E",
  643. appName: "kuailaiyou",
  644. appVersion: "1.0.0",
  645. appVersionCode: "100",
  646. appLanguage: getAppLanguage(hostLanguage),
  647. uniCompileVersion: "3.5.3",
  648. uniRuntimeVersion: "3.5.3",
  649. uniPlatform: undefined || "mp-weixin",
  650. deviceBrand: deviceBrand,
  651. deviceModel: model,
  652. deviceType: deviceType,
  653. devicePixelRatio: _devicePixelRatio,
  654. deviceOrientation: _deviceOrientation,
  655. osName: osName.toLocaleLowerCase(),
  656. osVersion: osVersion,
  657. hostTheme: theme,
  658. hostVersion: hostVersion,
  659. hostLanguage: hostLanguage,
  660. hostName: _hostName,
  661. hostSDKVersion: _SDKVersion,
  662. hostFontSizeSetting: fontSizeSetting,
  663. windowTop: 0,
  664. windowBottom: 0,
  665. // TODO
  666. osLanguage: undefined,
  667. osTheme: undefined,
  668. ua: undefined,
  669. hostPackageName: undefined,
  670. browserName: undefined,
  671. browserVersion: undefined };
  672. Object.assign(result, parameters);
  673. }
  674. function getGetDeviceType(result, model) {
  675. var deviceType = result.deviceType || 'phone';
  676. {
  677. var deviceTypeMaps = {
  678. ipad: 'pad',
  679. windows: 'pc',
  680. mac: 'pc' };
  681. var deviceTypeMapsKeys = Object.keys(deviceTypeMaps);
  682. var _model = model.toLocaleLowerCase();
  683. for (var index = 0; index < deviceTypeMapsKeys.length; index++) {
  684. var _m = deviceTypeMapsKeys[index];
  685. if (_model.indexOf(_m) !== -1) {
  686. deviceType = deviceTypeMaps[_m];
  687. break;
  688. }
  689. }
  690. }
  691. return deviceType;
  692. }
  693. function getDeviceBrand(brand) {
  694. var deviceBrand = brand;
  695. if (deviceBrand) {
  696. deviceBrand = brand.toLocaleLowerCase();
  697. }
  698. return deviceBrand;
  699. }
  700. function getAppLanguage(defaultLanguage) {
  701. return getLocale$1 ?
  702. getLocale$1() :
  703. defaultLanguage;
  704. }
  705. function getHostName(result) {
  706. var _platform = 'WeChat';
  707. var _hostName = result.hostName || _platform; // mp-jd
  708. {
  709. if (result.environment) {
  710. _hostName = result.environment;
  711. } else if (result.host && result.host.env) {
  712. _hostName = result.host.env;
  713. }
  714. }
  715. return _hostName;
  716. }
  717. var getSystemInfo = {
  718. returnValue: function returnValue(result) {
  719. useDeviceId(result);
  720. addSafeAreaInsets(result);
  721. populateParameters(result);
  722. } };
  723. var showActionSheet = {
  724. args: function args(fromArgs) {
  725. if (typeof fromArgs === 'object') {
  726. fromArgs.alertText = fromArgs.title;
  727. }
  728. } };
  729. var getAppBaseInfo = {
  730. returnValue: function returnValue(result) {var _result =
  731. result,version = _result.version,language = _result.language,SDKVersion = _result.SDKVersion,theme = _result.theme;
  732. var _hostName = getHostName(result);
  733. var hostLanguage = language.replace('_', '-');
  734. result = sortObject(Object.assign(result, {
  735. appId: "__UNI__4A2871E",
  736. appName: "kuailaiyou",
  737. appVersion: "1.0.0",
  738. appVersionCode: "100",
  739. appLanguage: getAppLanguage(hostLanguage),
  740. hostVersion: version,
  741. hostLanguage: hostLanguage,
  742. hostName: _hostName,
  743. hostSDKVersion: SDKVersion,
  744. hostTheme: theme }));
  745. } };
  746. var getDeviceInfo = {
  747. returnValue: function returnValue(result) {var _result2 =
  748. result,brand = _result2.brand,model = _result2.model;
  749. var deviceType = getGetDeviceType(result, model);
  750. var deviceBrand = getDeviceBrand(brand);
  751. useDeviceId(result);
  752. result = sortObject(Object.assign(result, {
  753. deviceType: deviceType,
  754. deviceBrand: deviceBrand,
  755. deviceModel: model }));
  756. } };
  757. var getWindowInfo = {
  758. returnValue: function returnValue(result) {
  759. addSafeAreaInsets(result);
  760. result = sortObject(Object.assign(result, {
  761. windowTop: 0,
  762. windowBottom: 0 }));
  763. } };
  764. var getAppAuthorizeSetting = {
  765. returnValue: function returnValue(result) {var
  766. locationReducedAccuracy = result.locationReducedAccuracy;
  767. result.locationAccuracy = 'unsupported';
  768. if (locationReducedAccuracy === true) {
  769. result.locationAccuracy = 'reduced';
  770. } else if (locationReducedAccuracy === false) {
  771. result.locationAccuracy = 'full';
  772. }
  773. } };
  774. // import navigateTo from 'uni-helpers/navigate-to'
  775. var protocols = {
  776. redirectTo: redirectTo,
  777. // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP
  778. previewImage: previewImage,
  779. getSystemInfo: getSystemInfo,
  780. getSystemInfoSync: getSystemInfo,
  781. showActionSheet: showActionSheet,
  782. getAppBaseInfo: getAppBaseInfo,
  783. getDeviceInfo: getDeviceInfo,
  784. getWindowInfo: getWindowInfo,
  785. getAppAuthorizeSetting: getAppAuthorizeSetting };
  786. var todos = [
  787. 'vibrate',
  788. 'preloadPage',
  789. 'unPreloadPage',
  790. 'loadSubPackage'];
  791. var canIUses = [];
  792. var CALLBACKS = ['success', 'fail', 'cancel', 'complete'];
  793. function processCallback(methodName, method, returnValue) {
  794. return function (res) {
  795. return method(processReturnValue(methodName, res, returnValue));
  796. };
  797. }
  798. function processArgs(methodName, fromArgs) {var argsOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var returnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};var keepFromArgs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
  799. if (isPlainObject(fromArgs)) {// 一般 api 的参数解析
  800. var toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值
  801. if (isFn(argsOption)) {
  802. argsOption = argsOption(fromArgs, toArgs) || {};
  803. }
  804. for (var key in fromArgs) {
  805. if (hasOwn(argsOption, key)) {
  806. var keyOption = argsOption[key];
  807. if (isFn(keyOption)) {
  808. keyOption = keyOption(fromArgs[key], fromArgs, toArgs);
  809. }
  810. if (!keyOption) {// 不支持的参数
  811. console.warn("The '".concat(methodName, "' method of platform '\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F' does not support option '").concat(key, "'"));
  812. } else if (isStr(keyOption)) {// 重写参数 key
  813. toArgs[keyOption] = fromArgs[key];
  814. } else if (isPlainObject(keyOption)) {// {name:newName,value:value}可重新指定参数 key:value
  815. toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;
  816. }
  817. } else if (CALLBACKS.indexOf(key) !== -1) {
  818. if (isFn(fromArgs[key])) {
  819. toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);
  820. }
  821. } else {
  822. if (!keepFromArgs) {
  823. toArgs[key] = fromArgs[key];
  824. }
  825. }
  826. }
  827. return toArgs;
  828. } else if (isFn(fromArgs)) {
  829. fromArgs = processCallback(methodName, fromArgs, returnValue);
  830. }
  831. return fromArgs;
  832. }
  833. function processReturnValue(methodName, res, returnValue) {var keepReturnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
  834. if (isFn(protocols.returnValue)) {// 处理通用 returnValue
  835. res = protocols.returnValue(methodName, res);
  836. }
  837. return processArgs(methodName, res, returnValue, {}, keepReturnValue);
  838. }
  839. function wrapper(methodName, method) {
  840. if (hasOwn(protocols, methodName)) {
  841. var protocol = protocols[methodName];
  842. if (!protocol) {// 暂不支持的 api
  843. return function () {
  844. console.error("Platform '\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F' does not support '".concat(methodName, "'."));
  845. };
  846. }
  847. return function (arg1, arg2) {// 目前 api 最多两个参数
  848. var options = protocol;
  849. if (isFn(protocol)) {
  850. options = protocol(arg1);
  851. }
  852. arg1 = processArgs(methodName, arg1, options.args, options.returnValue);
  853. var args = [arg1];
  854. if (typeof arg2 !== 'undefined') {
  855. args.push(arg2);
  856. }
  857. if (isFn(options.name)) {
  858. methodName = options.name(arg1);
  859. } else if (isStr(options.name)) {
  860. methodName = options.name;
  861. }
  862. var returnValue = wx[methodName].apply(wx, args);
  863. if (isSyncApi(methodName)) {// 同步 api
  864. return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));
  865. }
  866. return returnValue;
  867. };
  868. }
  869. return method;
  870. }
  871. var todoApis = Object.create(null);
  872. var TODOS = [
  873. 'onTabBarMidButtonTap',
  874. 'subscribePush',
  875. 'unsubscribePush',
  876. 'onPush',
  877. 'offPush',
  878. 'share'];
  879. function createTodoApi(name) {
  880. return function todoApi(_ref)
  881. {var fail = _ref.fail,complete = _ref.complete;
  882. var res = {
  883. errMsg: "".concat(name, ":fail method '").concat(name, "' not supported") };
  884. isFn(fail) && fail(res);
  885. isFn(complete) && complete(res);
  886. };
  887. }
  888. TODOS.forEach(function (name) {
  889. todoApis[name] = createTodoApi(name);
  890. });
  891. var providers = {
  892. oauth: ['weixin'],
  893. share: ['weixin'],
  894. payment: ['wxpay'],
  895. push: ['weixin'] };
  896. function getProvider(_ref2)
  897. {var service = _ref2.service,success = _ref2.success,fail = _ref2.fail,complete = _ref2.complete;
  898. var res = false;
  899. if (providers[service]) {
  900. res = {
  901. errMsg: 'getProvider:ok',
  902. service: service,
  903. provider: providers[service] };
  904. isFn(success) && success(res);
  905. } else {
  906. res = {
  907. errMsg: 'getProvider:fail service not found' };
  908. isFn(fail) && fail(res);
  909. }
  910. isFn(complete) && complete(res);
  911. }
  912. var extraApi = /*#__PURE__*/Object.freeze({
  913. __proto__: null,
  914. getProvider: getProvider });
  915. var getEmitter = function () {
  916. var Emitter;
  917. return function getUniEmitter() {
  918. if (!Emitter) {
  919. Emitter = new _vue.default();
  920. }
  921. return Emitter;
  922. };
  923. }();
  924. function apply(ctx, method, args) {
  925. return ctx[method].apply(ctx, args);
  926. }
  927. function $on() {
  928. return apply(getEmitter(), '$on', Array.prototype.slice.call(arguments));
  929. }
  930. function $off() {
  931. return apply(getEmitter(), '$off', Array.prototype.slice.call(arguments));
  932. }
  933. function $once() {
  934. return apply(getEmitter(), '$once', Array.prototype.slice.call(arguments));
  935. }
  936. function $emit() {
  937. return apply(getEmitter(), '$emit', Array.prototype.slice.call(arguments));
  938. }
  939. var eventApi = /*#__PURE__*/Object.freeze({
  940. __proto__: null,
  941. $on: $on,
  942. $off: $off,
  943. $once: $once,
  944. $emit: $emit });
  945. /**
  946. * 框架内 try-catch
  947. */
  948. /**
  949. * 开发者 try-catch
  950. */
  951. function tryCatch(fn) {
  952. return function () {
  953. try {
  954. return fn.apply(fn, arguments);
  955. } catch (e) {
  956. // TODO
  957. console.error(e);
  958. }
  959. };
  960. }
  961. function getApiCallbacks(params) {
  962. var apiCallbacks = {};
  963. for (var name in params) {
  964. var param = params[name];
  965. if (isFn(param)) {
  966. apiCallbacks[name] = tryCatch(param);
  967. delete params[name];
  968. }
  969. }
  970. return apiCallbacks;
  971. }
  972. var cid;
  973. var cidErrMsg;
  974. var enabled;
  975. function normalizePushMessage(message) {
  976. try {
  977. return JSON.parse(message);
  978. } catch (e) {}
  979. return message;
  980. }
  981. function invokePushCallback(
  982. args)
  983. {
  984. if (args.type === 'enabled') {
  985. enabled = true;
  986. } else if (args.type === 'clientId') {
  987. cid = args.cid;
  988. cidErrMsg = args.errMsg;
  989. invokeGetPushCidCallbacks(cid, args.errMsg);
  990. } else if (args.type === 'pushMsg') {
  991. var message = {
  992. type: 'receive',
  993. data: normalizePushMessage(args.message) };
  994. for (var i = 0; i < onPushMessageCallbacks.length; i++) {
  995. var callback = onPushMessageCallbacks[i];
  996. callback(message);
  997. // 该消息已被阻止
  998. if (message.stopped) {
  999. break;
  1000. }
  1001. }
  1002. } else if (args.type === 'click') {
  1003. onPushMessageCallbacks.forEach(function (callback) {
  1004. callback({
  1005. type: 'click',
  1006. data: normalizePushMessage(args.message) });
  1007. });
  1008. }
  1009. }
  1010. var getPushCidCallbacks = [];
  1011. function invokeGetPushCidCallbacks(cid, errMsg) {
  1012. getPushCidCallbacks.forEach(function (callback) {
  1013. callback(cid, errMsg);
  1014. });
  1015. getPushCidCallbacks.length = 0;
  1016. }
  1017. function getPushClientId(args) {
  1018. if (!isPlainObject(args)) {
  1019. args = {};
  1020. }var _getApiCallbacks =
  1021. getApiCallbacks(args),success = _getApiCallbacks.success,fail = _getApiCallbacks.fail,complete = _getApiCallbacks.complete;
  1022. var hasSuccess = isFn(success);
  1023. var hasFail = isFn(fail);
  1024. var hasComplete = isFn(complete);
  1025. Promise.resolve().then(function () {
  1026. if (typeof enabled === 'undefined') {
  1027. enabled = false;
  1028. cid = '';
  1029. cidErrMsg = 'unipush is not enabled';
  1030. }
  1031. getPushCidCallbacks.push(function (cid, errMsg) {
  1032. var res;
  1033. if (cid) {
  1034. res = {
  1035. errMsg: 'getPushClientId:ok',
  1036. cid: cid };
  1037. hasSuccess && success(res);
  1038. } else {
  1039. res = {
  1040. errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '') };
  1041. hasFail && fail(res);
  1042. }
  1043. hasComplete && complete(res);
  1044. });
  1045. if (typeof cid !== 'undefined') {
  1046. invokeGetPushCidCallbacks(cid, cidErrMsg);
  1047. }
  1048. });
  1049. }
  1050. var onPushMessageCallbacks = [];
  1051. // 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现
  1052. var onPushMessage = function onPushMessage(fn) {
  1053. if (onPushMessageCallbacks.indexOf(fn) === -1) {
  1054. onPushMessageCallbacks.push(fn);
  1055. }
  1056. };
  1057. var offPushMessage = function offPushMessage(fn) {
  1058. if (!fn) {
  1059. onPushMessageCallbacks.length = 0;
  1060. } else {
  1061. var index = onPushMessageCallbacks.indexOf(fn);
  1062. if (index > -1) {
  1063. onPushMessageCallbacks.splice(index, 1);
  1064. }
  1065. }
  1066. };
  1067. var api = /*#__PURE__*/Object.freeze({
  1068. __proto__: null,
  1069. getPushClientId: getPushClientId,
  1070. onPushMessage: onPushMessage,
  1071. offPushMessage: offPushMessage,
  1072. invokePushCallback: invokePushCallback });
  1073. var MPPage = Page;
  1074. var MPComponent = Component;
  1075. var customizeRE = /:/g;
  1076. var customize = cached(function (str) {
  1077. return camelize(str.replace(customizeRE, '-'));
  1078. });
  1079. function initTriggerEvent(mpInstance) {
  1080. var oldTriggerEvent = mpInstance.triggerEvent;
  1081. var newTriggerEvent = function newTriggerEvent(event) {for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {args[_key3 - 1] = arguments[_key3];}
  1082. return oldTriggerEvent.apply(mpInstance, [customize(event)].concat(args));
  1083. };
  1084. try {
  1085. // 京东小程序 triggerEvent 为只读
  1086. mpInstance.triggerEvent = newTriggerEvent;
  1087. } catch (error) {
  1088. mpInstance._triggerEvent = newTriggerEvent;
  1089. }
  1090. }
  1091. function initHook(name, options, isComponent) {
  1092. var oldHook = options[name];
  1093. if (!oldHook) {
  1094. options[name] = function () {
  1095. initTriggerEvent(this);
  1096. };
  1097. } else {
  1098. options[name] = function () {
  1099. initTriggerEvent(this);for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {args[_key4] = arguments[_key4];}
  1100. return oldHook.apply(this, args);
  1101. };
  1102. }
  1103. }
  1104. if (!MPPage.__$wrappered) {
  1105. MPPage.__$wrappered = true;
  1106. Page = function Page() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  1107. initHook('onLoad', options);
  1108. return MPPage(options);
  1109. };
  1110. Page.after = MPPage.after;
  1111. Component = function Component() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  1112. initHook('created', options);
  1113. return MPComponent(options);
  1114. };
  1115. }
  1116. var PAGE_EVENT_HOOKS = [
  1117. 'onPullDownRefresh',
  1118. 'onReachBottom',
  1119. 'onAddToFavorites',
  1120. 'onShareTimeline',
  1121. 'onShareAppMessage',
  1122. 'onPageScroll',
  1123. 'onResize',
  1124. 'onTabItemTap'];
  1125. function initMocks(vm, mocks) {
  1126. var mpInstance = vm.$mp[vm.mpType];
  1127. mocks.forEach(function (mock) {
  1128. if (hasOwn(mpInstance, mock)) {
  1129. vm[mock] = mpInstance[mock];
  1130. }
  1131. });
  1132. }
  1133. function hasHook(hook, vueOptions) {
  1134. if (!vueOptions) {
  1135. return true;
  1136. }
  1137. if (_vue.default.options && Array.isArray(_vue.default.options[hook])) {
  1138. return true;
  1139. }
  1140. vueOptions = vueOptions.default || vueOptions;
  1141. if (isFn(vueOptions)) {
  1142. if (isFn(vueOptions.extendOptions[hook])) {
  1143. return true;
  1144. }
  1145. if (vueOptions.super &&
  1146. vueOptions.super.options &&
  1147. Array.isArray(vueOptions.super.options[hook])) {
  1148. return true;
  1149. }
  1150. return false;
  1151. }
  1152. if (isFn(vueOptions[hook])) {
  1153. return true;
  1154. }
  1155. var mixins = vueOptions.mixins;
  1156. if (Array.isArray(mixins)) {
  1157. return !!mixins.find(function (mixin) {return hasHook(hook, mixin);});
  1158. }
  1159. }
  1160. function initHooks(mpOptions, hooks, vueOptions) {
  1161. hooks.forEach(function (hook) {
  1162. if (hasHook(hook, vueOptions)) {
  1163. mpOptions[hook] = function (args) {
  1164. return this.$vm && this.$vm.__call_hook(hook, args);
  1165. };
  1166. }
  1167. });
  1168. }
  1169. function initVueComponent(Vue, vueOptions) {
  1170. vueOptions = vueOptions.default || vueOptions;
  1171. var VueComponent;
  1172. if (isFn(vueOptions)) {
  1173. VueComponent = vueOptions;
  1174. } else {
  1175. VueComponent = Vue.extend(vueOptions);
  1176. }
  1177. vueOptions = VueComponent.options;
  1178. return [VueComponent, vueOptions];
  1179. }
  1180. function initSlots(vm, vueSlots) {
  1181. if (Array.isArray(vueSlots) && vueSlots.length) {
  1182. var $slots = Object.create(null);
  1183. vueSlots.forEach(function (slotName) {
  1184. $slots[slotName] = true;
  1185. });
  1186. vm.$scopedSlots = vm.$slots = $slots;
  1187. }
  1188. }
  1189. function initVueIds(vueIds, mpInstance) {
  1190. vueIds = (vueIds || '').split(',');
  1191. var len = vueIds.length;
  1192. if (len === 1) {
  1193. mpInstance._$vueId = vueIds[0];
  1194. } else if (len === 2) {
  1195. mpInstance._$vueId = vueIds[0];
  1196. mpInstance._$vuePid = vueIds[1];
  1197. }
  1198. }
  1199. function initData(vueOptions, context) {
  1200. var data = vueOptions.data || {};
  1201. var methods = vueOptions.methods || {};
  1202. if (typeof data === 'function') {
  1203. try {
  1204. data = data.call(context); // 支持 Vue.prototype 上挂的数据
  1205. } catch (e) {
  1206. if (Object({"VUE_APP_NAME":"kuailaiyou","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
  1207. console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);
  1208. }
  1209. }
  1210. } else {
  1211. try {
  1212. // 对 data 格式化
  1213. data = JSON.parse(JSON.stringify(data));
  1214. } catch (e) {}
  1215. }
  1216. if (!isPlainObject(data)) {
  1217. data = {};
  1218. }
  1219. Object.keys(methods).forEach(function (methodName) {
  1220. if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {
  1221. data[methodName] = methods[methodName];
  1222. }
  1223. });
  1224. return data;
  1225. }
  1226. var PROP_TYPES = [String, Number, Boolean, Object, Array, null];
  1227. function createObserver(name) {
  1228. return function observer(newVal, oldVal) {
  1229. if (this.$vm) {
  1230. this.$vm[name] = newVal; // 为了触发其他非 render watcher
  1231. }
  1232. };
  1233. }
  1234. function initBehaviors(vueOptions, initBehavior) {
  1235. var vueBehaviors = vueOptions.behaviors;
  1236. var vueExtends = vueOptions.extends;
  1237. var vueMixins = vueOptions.mixins;
  1238. var vueProps = vueOptions.props;
  1239. if (!vueProps) {
  1240. vueOptions.props = vueProps = [];
  1241. }
  1242. var behaviors = [];
  1243. if (Array.isArray(vueBehaviors)) {
  1244. vueBehaviors.forEach(function (behavior) {
  1245. behaviors.push(behavior.replace('uni://', "wx".concat("://")));
  1246. if (behavior === 'uni://form-field') {
  1247. if (Array.isArray(vueProps)) {
  1248. vueProps.push('name');
  1249. vueProps.push('value');
  1250. } else {
  1251. vueProps.name = {
  1252. type: String,
  1253. default: '' };
  1254. vueProps.value = {
  1255. type: [String, Number, Boolean, Array, Object, Date],
  1256. default: '' };
  1257. }
  1258. }
  1259. });
  1260. }
  1261. if (isPlainObject(vueExtends) && vueExtends.props) {
  1262. behaviors.push(
  1263. initBehavior({
  1264. properties: initProperties(vueExtends.props, true) }));
  1265. }
  1266. if (Array.isArray(vueMixins)) {
  1267. vueMixins.forEach(function (vueMixin) {
  1268. if (isPlainObject(vueMixin) && vueMixin.props) {
  1269. behaviors.push(
  1270. initBehavior({
  1271. properties: initProperties(vueMixin.props, true) }));
  1272. }
  1273. });
  1274. }
  1275. return behaviors;
  1276. }
  1277. function parsePropType(key, type, defaultValue, file) {
  1278. // [String]=>String
  1279. if (Array.isArray(type) && type.length === 1) {
  1280. return type[0];
  1281. }
  1282. return type;
  1283. }
  1284. function initProperties(props) {var isBehavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';var options = arguments.length > 3 ? arguments[3] : undefined;
  1285. var properties = {};
  1286. if (!isBehavior) {
  1287. properties.vueId = {
  1288. type: String,
  1289. value: '' };
  1290. {
  1291. if (options.virtualHost) {
  1292. properties.virtualHostStyle = {
  1293. type: null,
  1294. value: '' };
  1295. properties.virtualHostClass = {
  1296. type: null,
  1297. value: '' };
  1298. }
  1299. }
  1300. // scopedSlotsCompiler auto
  1301. properties.scopedSlotsCompiler = {
  1302. type: String,
  1303. value: '' };
  1304. properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
  1305. type: null,
  1306. value: [],
  1307. observer: function observer(newVal, oldVal) {
  1308. var $slots = Object.create(null);
  1309. newVal.forEach(function (slotName) {
  1310. $slots[slotName] = true;
  1311. });
  1312. this.setData({
  1313. $slots: $slots });
  1314. } };
  1315. }
  1316. if (Array.isArray(props)) {// ['title']
  1317. props.forEach(function (key) {
  1318. properties[key] = {
  1319. type: null,
  1320. observer: createObserver(key) };
  1321. });
  1322. } else if (isPlainObject(props)) {// {title:{type:String,default:''},content:String}
  1323. Object.keys(props).forEach(function (key) {
  1324. var opts = props[key];
  1325. if (isPlainObject(opts)) {// title:{type:String,default:''}
  1326. var value = opts.default;
  1327. if (isFn(value)) {
  1328. value = value();
  1329. }
  1330. opts.type = parsePropType(key, opts.type);
  1331. properties[key] = {
  1332. type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,
  1333. value: value,
  1334. observer: createObserver(key) };
  1335. } else {// content:String
  1336. var type = parsePropType(key, opts);
  1337. properties[key] = {
  1338. type: PROP_TYPES.indexOf(type) !== -1 ? type : null,
  1339. observer: createObserver(key) };
  1340. }
  1341. });
  1342. }
  1343. return properties;
  1344. }
  1345. function wrapper$1(event) {
  1346. // TODO 又得兼容 mpvue 的 mp 对象
  1347. try {
  1348. event.mp = JSON.parse(JSON.stringify(event));
  1349. } catch (e) {}
  1350. event.stopPropagation = noop;
  1351. event.preventDefault = noop;
  1352. event.target = event.target || {};
  1353. if (!hasOwn(event, 'detail')) {
  1354. event.detail = {};
  1355. }
  1356. if (hasOwn(event, 'markerId')) {
  1357. event.detail = typeof event.detail === 'object' ? event.detail : {};
  1358. event.detail.markerId = event.markerId;
  1359. }
  1360. if (isPlainObject(event.detail)) {
  1361. event.target = Object.assign({}, event.target, event.detail);
  1362. }
  1363. return event;
  1364. }
  1365. function getExtraValue(vm, dataPathsArray) {
  1366. var context = vm;
  1367. dataPathsArray.forEach(function (dataPathArray) {
  1368. var dataPath = dataPathArray[0];
  1369. var value = dataPathArray[2];
  1370. if (dataPath || typeof value !== 'undefined') {// ['','',index,'disable']
  1371. var propPath = dataPathArray[1];
  1372. var valuePath = dataPathArray[3];
  1373. var vFor;
  1374. if (Number.isInteger(dataPath)) {
  1375. vFor = dataPath;
  1376. } else if (!dataPath) {
  1377. vFor = context;
  1378. } else if (typeof dataPath === 'string' && dataPath) {
  1379. if (dataPath.indexOf('#s#') === 0) {
  1380. vFor = dataPath.substr(3);
  1381. } else {
  1382. vFor = vm.__get_value(dataPath, context);
  1383. }
  1384. }
  1385. if (Number.isInteger(vFor)) {
  1386. context = value;
  1387. } else if (!propPath) {
  1388. context = vFor[value];
  1389. } else {
  1390. if (Array.isArray(vFor)) {
  1391. context = vFor.find(function (vForItem) {
  1392. return vm.__get_value(propPath, vForItem) === value;
  1393. });
  1394. } else if (isPlainObject(vFor)) {
  1395. context = Object.keys(vFor).find(function (vForKey) {
  1396. return vm.__get_value(propPath, vFor[vForKey]) === value;
  1397. });
  1398. } else {
  1399. console.error('v-for 暂不支持循环数据:', vFor);
  1400. }
  1401. }
  1402. if (valuePath) {
  1403. context = vm.__get_value(valuePath, context);
  1404. }
  1405. }
  1406. });
  1407. return context;
  1408. }
  1409. function processEventExtra(vm, extra, event) {
  1410. var extraObj = {};
  1411. if (Array.isArray(extra) && extra.length) {
  1412. /**
  1413. *[
  1414. * ['data.items', 'data.id', item.data.id],
  1415. * ['metas', 'id', meta.id]
  1416. *],
  1417. *[
  1418. * ['data.items', 'data.id', item.data.id],
  1419. * ['metas', 'id', meta.id]
  1420. *],
  1421. *'test'
  1422. */
  1423. extra.forEach(function (dataPath, index) {
  1424. if (typeof dataPath === 'string') {
  1425. if (!dataPath) {// model,prop.sync
  1426. extraObj['$' + index] = vm;
  1427. } else {
  1428. if (dataPath === '$event') {// $event
  1429. extraObj['$' + index] = event;
  1430. } else if (dataPath === 'arguments') {
  1431. if (event.detail && event.detail.__args__) {
  1432. extraObj['$' + index] = event.detail.__args__;
  1433. } else {
  1434. extraObj['$' + index] = [event];
  1435. }
  1436. } else if (dataPath.indexOf('$event.') === 0) {// $event.target.value
  1437. extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);
  1438. } else {
  1439. extraObj['$' + index] = vm.__get_value(dataPath);
  1440. }
  1441. }
  1442. } else {
  1443. extraObj['$' + index] = getExtraValue(vm, dataPath);
  1444. }
  1445. });
  1446. }
  1447. return extraObj;
  1448. }
  1449. function getObjByArray(arr) {
  1450. var obj = {};
  1451. for (var i = 1; i < arr.length; i++) {
  1452. var element = arr[i];
  1453. obj[element[0]] = element[1];
  1454. }
  1455. return obj;
  1456. }
  1457. function processEventArgs(vm, event) {var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];var isCustom = arguments.length > 4 ? arguments[4] : undefined;var methodName = arguments.length > 5 ? arguments[5] : undefined;
  1458. var isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象
  1459. if (isCustom) {// 自定义事件
  1460. isCustomMPEvent = event.currentTarget &&
  1461. event.currentTarget.dataset &&
  1462. event.currentTarget.dataset.comType === 'wx';
  1463. if (!args.length) {// 无参数,直接传入 event 或 detail 数组
  1464. if (isCustomMPEvent) {
  1465. return [event];
  1466. }
  1467. return event.detail.__args__ || event.detail;
  1468. }
  1469. }
  1470. var extraObj = processEventExtra(vm, extra, event);
  1471. var ret = [];
  1472. args.forEach(function (arg) {
  1473. if (arg === '$event') {
  1474. if (methodName === '__set_model' && !isCustom) {// input v-model value
  1475. ret.push(event.target.value);
  1476. } else {
  1477. if (isCustom && !isCustomMPEvent) {
  1478. ret.push(event.detail.__args__[0]);
  1479. } else {// wxcomponent 组件或内置组件
  1480. ret.push(event);
  1481. }
  1482. }
  1483. } else {
  1484. if (Array.isArray(arg) && arg[0] === 'o') {
  1485. ret.push(getObjByArray(arg));
  1486. } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {
  1487. ret.push(extraObj[arg]);
  1488. } else {
  1489. ret.push(arg);
  1490. }
  1491. }
  1492. });
  1493. return ret;
  1494. }
  1495. var ONCE = '~';
  1496. var CUSTOM = '^';
  1497. function isMatchEventType(eventType, optType) {
  1498. return eventType === optType ||
  1499. optType === 'regionchange' && (
  1500. eventType === 'begin' ||
  1501. eventType === 'end');
  1502. }
  1503. function getContextVm(vm) {
  1504. var $parent = vm.$parent;
  1505. // 父组件是 scoped slots 或者其他自定义组件时继续查找
  1506. while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {
  1507. $parent = $parent.$parent;
  1508. }
  1509. return $parent && $parent.$parent;
  1510. }
  1511. function handleEvent(event) {var _this2 = this;
  1512. event = wrapper$1(event);
  1513. // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]
  1514. var dataset = (event.currentTarget || event.target).dataset;
  1515. if (!dataset) {
  1516. return console.warn('事件信息不存在');
  1517. }
  1518. var eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰
  1519. if (!eventOpts) {
  1520. return console.warn('事件信息不存在');
  1521. }
  1522. // [['handle',[1,2,a]],['handle1',[1,2,a]]]
  1523. var eventType = event.type;
  1524. var ret = [];
  1525. eventOpts.forEach(function (eventOpt) {
  1526. var type = eventOpt[0];
  1527. var eventsArray = eventOpt[1];
  1528. var isCustom = type.charAt(0) === CUSTOM;
  1529. type = isCustom ? type.slice(1) : type;
  1530. var isOnce = type.charAt(0) === ONCE;
  1531. type = isOnce ? type.slice(1) : type;
  1532. if (eventsArray && isMatchEventType(eventType, type)) {
  1533. eventsArray.forEach(function (eventArray) {
  1534. var methodName = eventArray[0];
  1535. if (methodName) {
  1536. var handlerCtx = _this2.$vm;
  1537. if (handlerCtx.$options.generic) {// mp-weixin,mp-toutiao 抽象节点模拟 scoped slots
  1538. handlerCtx = getContextVm(handlerCtx) || handlerCtx;
  1539. }
  1540. if (methodName === '$emit') {
  1541. handlerCtx.$emit.apply(handlerCtx,
  1542. processEventArgs(
  1543. _this2.$vm,
  1544. event,
  1545. eventArray[1],
  1546. eventArray[2],
  1547. isCustom,
  1548. methodName));
  1549. return;
  1550. }
  1551. var handler = handlerCtx[methodName];
  1552. if (!isFn(handler)) {
  1553. var _type = _this2.$vm.mpType === 'page' ? 'Page' : 'Component';
  1554. var path = _this2.route || _this2.is;
  1555. throw new Error("".concat(_type, " \"").concat(path, "\" does not have a method \"").concat(methodName, "\""));
  1556. }
  1557. if (isOnce) {
  1558. if (handler.once) {
  1559. return;
  1560. }
  1561. handler.once = true;
  1562. }
  1563. var params = processEventArgs(
  1564. _this2.$vm,
  1565. event,
  1566. eventArray[1],
  1567. eventArray[2],
  1568. isCustom,
  1569. methodName);
  1570. params = Array.isArray(params) ? params : [];
  1571. // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据
  1572. if (/=\s*\S+\.eventParams\s*\|\|\s*\S+\[['"]event-params['"]\]/.test(handler.toString())) {
  1573. // eslint-disable-next-line no-sparse-arrays
  1574. params = params.concat([,,,,,,,,,, event]);
  1575. }
  1576. ret.push(handler.apply(handlerCtx, params));
  1577. }
  1578. });
  1579. }
  1580. });
  1581. if (
  1582. eventType === 'input' &&
  1583. ret.length === 1 &&
  1584. typeof ret[0] !== 'undefined')
  1585. {
  1586. return ret[0];
  1587. }
  1588. }
  1589. var eventChannels = {};
  1590. var eventChannelStack = [];
  1591. function getEventChannel(id) {
  1592. if (id) {
  1593. var eventChannel = eventChannels[id];
  1594. delete eventChannels[id];
  1595. return eventChannel;
  1596. }
  1597. return eventChannelStack.shift();
  1598. }
  1599. var hooks = [
  1600. 'onShow',
  1601. 'onHide',
  1602. 'onError',
  1603. 'onPageNotFound',
  1604. 'onThemeChange',
  1605. 'onUnhandledRejection'];
  1606. function initEventChannel() {
  1607. _vue.default.prototype.getOpenerEventChannel = function () {
  1608. // 微信小程序使用自身getOpenerEventChannel
  1609. {
  1610. return this.$scope.getOpenerEventChannel();
  1611. }
  1612. };
  1613. var callHook = _vue.default.prototype.__call_hook;
  1614. _vue.default.prototype.__call_hook = function (hook, args) {
  1615. if (hook === 'onLoad' && args && args.__id__) {
  1616. this.__eventChannel__ = getEventChannel(args.__id__);
  1617. delete args.__id__;
  1618. }
  1619. return callHook.call(this, hook, args);
  1620. };
  1621. }
  1622. function initScopedSlotsParams() {
  1623. var center = {};
  1624. var parents = {};
  1625. _vue.default.prototype.$hasScopedSlotsParams = function (vueId) {
  1626. var has = center[vueId];
  1627. if (!has) {
  1628. parents[vueId] = this;
  1629. this.$on('hook:destroyed', function () {
  1630. delete parents[vueId];
  1631. });
  1632. }
  1633. return has;
  1634. };
  1635. _vue.default.prototype.$getScopedSlotsParams = function (vueId, name, key) {
  1636. var data = center[vueId];
  1637. if (data) {
  1638. var object = data[name] || {};
  1639. return key ? object[key] : object;
  1640. } else {
  1641. parents[vueId] = this;
  1642. this.$on('hook:destroyed', function () {
  1643. delete parents[vueId];
  1644. });
  1645. }
  1646. };
  1647. _vue.default.prototype.$setScopedSlotsParams = function (name, value) {
  1648. var vueIds = this.$options.propsData.vueId;
  1649. if (vueIds) {
  1650. var vueId = vueIds.split(',')[0];
  1651. var object = center[vueId] = center[vueId] || {};
  1652. object[name] = value;
  1653. if (parents[vueId]) {
  1654. parents[vueId].$forceUpdate();
  1655. }
  1656. }
  1657. };
  1658. _vue.default.mixin({
  1659. destroyed: function destroyed() {
  1660. var propsData = this.$options.propsData;
  1661. var vueId = propsData && propsData.vueId;
  1662. if (vueId) {
  1663. delete center[vueId];
  1664. delete parents[vueId];
  1665. }
  1666. } });
  1667. }
  1668. function parseBaseApp(vm, _ref3)
  1669. {var mocks = _ref3.mocks,initRefs = _ref3.initRefs;
  1670. initEventChannel();
  1671. {
  1672. initScopedSlotsParams();
  1673. }
  1674. if (vm.$options.store) {
  1675. _vue.default.prototype.$store = vm.$options.store;
  1676. }
  1677. uniIdMixin(_vue.default);
  1678. _vue.default.prototype.mpHost = "mp-weixin";
  1679. _vue.default.mixin({
  1680. beforeCreate: function beforeCreate() {
  1681. if (!this.$options.mpType) {
  1682. return;
  1683. }
  1684. this.mpType = this.$options.mpType;
  1685. this.$mp = _defineProperty({
  1686. data: {} },
  1687. this.mpType, this.$options.mpInstance);
  1688. this.$scope = this.$options.mpInstance;
  1689. delete this.$options.mpType;
  1690. delete this.$options.mpInstance;
  1691. if (this.mpType === 'page' && typeof getApp === 'function') {// hack vue-i18n
  1692. var app = getApp();
  1693. if (app.$vm && app.$vm.$i18n) {
  1694. this._i18n = app.$vm.$i18n;
  1695. }
  1696. }
  1697. if (this.mpType !== 'app') {
  1698. initRefs(this);
  1699. initMocks(this, mocks);
  1700. }
  1701. } });
  1702. var appOptions = {
  1703. onLaunch: function onLaunch(args) {
  1704. if (this.$vm) {// 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前
  1705. return;
  1706. }
  1707. {
  1708. if (wx.canIUse && !wx.canIUse('nextTick')) {// 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断
  1709. console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');
  1710. }
  1711. }
  1712. this.$vm = vm;
  1713. this.$vm.$mp = {
  1714. app: this };
  1715. this.$vm.$scope = this;
  1716. // vm 上也挂载 globalData
  1717. this.$vm.globalData = this.globalData;
  1718. this.$vm._isMounted = true;
  1719. this.$vm.__call_hook('mounted', args);
  1720. this.$vm.__call_hook('onLaunch', args);
  1721. } };
  1722. // 兼容旧版本 globalData
  1723. appOptions.globalData = vm.$options.globalData || {};
  1724. // 将 methods 中的方法挂在 getApp() 中
  1725. var methods = vm.$options.methods;
  1726. if (methods) {
  1727. Object.keys(methods).forEach(function (name) {
  1728. appOptions[name] = methods[name];
  1729. });
  1730. }
  1731. initAppLocale(_vue.default, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);
  1732. initHooks(appOptions, hooks);
  1733. return appOptions;
  1734. }
  1735. var mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];
  1736. function findVmByVueId(vm, vuePid) {
  1737. var $children = vm.$children;
  1738. // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)
  1739. for (var i = $children.length - 1; i >= 0; i--) {
  1740. var childVm = $children[i];
  1741. if (childVm.$scope._$vueId === vuePid) {
  1742. return childVm;
  1743. }
  1744. }
  1745. // 反向递归查找
  1746. var parentVm;
  1747. for (var _i = $children.length - 1; _i >= 0; _i--) {
  1748. parentVm = findVmByVueId($children[_i], vuePid);
  1749. if (parentVm) {
  1750. return parentVm;
  1751. }
  1752. }
  1753. }
  1754. function initBehavior(options) {
  1755. return Behavior(options);
  1756. }
  1757. function isPage() {
  1758. return !!this.route;
  1759. }
  1760. function initRelation(detail) {
  1761. this.triggerEvent('__l', detail);
  1762. }
  1763. function selectAllComponents(mpInstance, selector, $refs) {
  1764. var components = mpInstance.selectAllComponents(selector);
  1765. components.forEach(function (component) {
  1766. var ref = component.dataset.ref;
  1767. $refs[ref] = component.$vm || component;
  1768. {
  1769. if (component.dataset.vueGeneric === 'scoped') {
  1770. component.selectAllComponents('.scoped-ref').forEach(function (scopedComponent) {
  1771. selectAllComponents(scopedComponent, selector, $refs);
  1772. });
  1773. }
  1774. }
  1775. });
  1776. }
  1777. function initRefs(vm) {
  1778. var mpInstance = vm.$scope;
  1779. Object.defineProperty(vm, '$refs', {
  1780. get: function get() {
  1781. var $refs = {};
  1782. selectAllComponents(mpInstance, '.vue-ref', $refs);
  1783. // TODO 暂不考虑 for 中的 scoped
  1784. var forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');
  1785. forComponents.forEach(function (component) {
  1786. var ref = component.dataset.ref;
  1787. if (!$refs[ref]) {
  1788. $refs[ref] = [];
  1789. }
  1790. $refs[ref].push(component.$vm || component);
  1791. });
  1792. return $refs;
  1793. } });
  1794. }
  1795. function handleLink(event) {var _ref4 =
  1796. event.detail || event.value,vuePid = _ref4.vuePid,vueOptions = _ref4.vueOptions; // detail 是微信,value 是百度(dipatch)
  1797. var parentVm;
  1798. if (vuePid) {
  1799. parentVm = findVmByVueId(this.$vm, vuePid);
  1800. }
  1801. if (!parentVm) {
  1802. parentVm = this.$vm;
  1803. }
  1804. vueOptions.parent = parentVm;
  1805. }
  1806. function parseApp(vm) {
  1807. return parseBaseApp(vm, {
  1808. mocks: mocks,
  1809. initRefs: initRefs });
  1810. }
  1811. function createApp(vm) {
  1812. App(parseApp(vm));
  1813. return vm;
  1814. }
  1815. var encodeReserveRE = /[!'()*]/g;
  1816. var encodeReserveReplacer = function encodeReserveReplacer(c) {return '%' + c.charCodeAt(0).toString(16);};
  1817. var commaRE = /%2C/g;
  1818. // fixed encodeURIComponent which is more conformant to RFC3986:
  1819. // - escapes [!'()*]
  1820. // - preserve commas
  1821. var encode = function encode(str) {return encodeURIComponent(str).
  1822. replace(encodeReserveRE, encodeReserveReplacer).
  1823. replace(commaRE, ',');};
  1824. function stringifyQuery(obj) {var encodeStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : encode;
  1825. var res = obj ? Object.keys(obj).map(function (key) {
  1826. var val = obj[key];
  1827. if (val === undefined) {
  1828. return '';
  1829. }
  1830. if (val === null) {
  1831. return encodeStr(key);
  1832. }
  1833. if (Array.isArray(val)) {
  1834. var result = [];
  1835. val.forEach(function (val2) {
  1836. if (val2 === undefined) {
  1837. return;
  1838. }
  1839. if (val2 === null) {
  1840. result.push(encodeStr(key));
  1841. } else {
  1842. result.push(encodeStr(key) + '=' + encodeStr(val2));
  1843. }
  1844. });
  1845. return result.join('&');
  1846. }
  1847. return encodeStr(key) + '=' + encodeStr(val);
  1848. }).filter(function (x) {return x.length > 0;}).join('&') : null;
  1849. return res ? "?".concat(res) : '';
  1850. }
  1851. function parseBaseComponent(vueComponentOptions)
  1852. {var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},isPage = _ref5.isPage,initRelation = _ref5.initRelation;var _initVueComponent =
  1853. initVueComponent(_vue.default, vueComponentOptions),_initVueComponent2 = _slicedToArray(_initVueComponent, 2),VueComponent = _initVueComponent2[0],vueOptions = _initVueComponent2[1];
  1854. var options = _objectSpread({
  1855. multipleSlots: true,
  1856. addGlobalClass: true },
  1857. vueOptions.options || {});
  1858. {
  1859. // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项
  1860. if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {
  1861. Object.assign(options, vueOptions['mp-weixin'].options);
  1862. }
  1863. }
  1864. var componentOptions = {
  1865. options: options,
  1866. data: initData(vueOptions, _vue.default.prototype),
  1867. behaviors: initBehaviors(vueOptions, initBehavior),
  1868. properties: initProperties(vueOptions.props, false, vueOptions.__file, options),
  1869. lifetimes: {
  1870. attached: function attached() {
  1871. var properties = this.properties;
  1872. var options = {
  1873. mpType: isPage.call(this) ? 'page' : 'component',
  1874. mpInstance: this,
  1875. propsData: properties };
  1876. initVueIds(properties.vueId, this);
  1877. // 处理父子关系
  1878. initRelation.call(this, {
  1879. vuePid: this._$vuePid,
  1880. vueOptions: options });
  1881. // 初始化 vue 实例
  1882. this.$vm = new VueComponent(options);
  1883. // 处理$slots,$scopedSlots(暂不支持动态变化$slots)
  1884. initSlots(this.$vm, properties.vueSlots);
  1885. // 触发首次 setData
  1886. this.$vm.$mount();
  1887. },
  1888. ready: function ready() {
  1889. // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发
  1890. // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800
  1891. if (this.$vm) {
  1892. this.$vm._isMounted = true;
  1893. this.$vm.__call_hook('mounted');
  1894. this.$vm.__call_hook('onReady');
  1895. }
  1896. },
  1897. detached: function detached() {
  1898. this.$vm && this.$vm.$destroy();
  1899. } },
  1900. pageLifetimes: {
  1901. show: function show(args) {
  1902. this.$vm && this.$vm.__call_hook('onPageShow', args);
  1903. },
  1904. hide: function hide() {
  1905. this.$vm && this.$vm.__call_hook('onPageHide');
  1906. },
  1907. resize: function resize(size) {
  1908. this.$vm && this.$vm.__call_hook('onPageResize', size);
  1909. } },
  1910. methods: {
  1911. __l: handleLink,
  1912. __e: handleEvent } };
  1913. // externalClasses
  1914. if (vueOptions.externalClasses) {
  1915. componentOptions.externalClasses = vueOptions.externalClasses;
  1916. }
  1917. if (Array.isArray(vueOptions.wxsCallMethods)) {
  1918. vueOptions.wxsCallMethods.forEach(function (callMethod) {
  1919. componentOptions.methods[callMethod] = function (args) {
  1920. return this.$vm[callMethod](args);
  1921. };
  1922. });
  1923. }
  1924. if (isPage) {
  1925. return componentOptions;
  1926. }
  1927. return [componentOptions, VueComponent];
  1928. }
  1929. function parseComponent(vueComponentOptions) {
  1930. return parseBaseComponent(vueComponentOptions, {
  1931. isPage: isPage,
  1932. initRelation: initRelation });
  1933. }
  1934. var hooks$1 = [
  1935. 'onShow',
  1936. 'onHide',
  1937. 'onUnload'];
  1938. hooks$1.push.apply(hooks$1, PAGE_EVENT_HOOKS);
  1939. function parseBasePage(vuePageOptions, _ref6)
  1940. {var isPage = _ref6.isPage,initRelation = _ref6.initRelation;
  1941. var pageOptions = parseComponent(vuePageOptions);
  1942. initHooks(pageOptions.methods, hooks$1, vuePageOptions);
  1943. pageOptions.methods.onLoad = function (query) {
  1944. this.options = query;
  1945. var copyQuery = Object.assign({}, query);
  1946. delete copyQuery.__id__;
  1947. this.$page = {
  1948. fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery) };
  1949. this.$vm.$mp.query = query; // 兼容 mpvue
  1950. this.$vm.__call_hook('onLoad', query);
  1951. };
  1952. return pageOptions;
  1953. }
  1954. function parsePage(vuePageOptions) {
  1955. return parseBasePage(vuePageOptions, {
  1956. isPage: isPage,
  1957. initRelation: initRelation });
  1958. }
  1959. function createPage(vuePageOptions) {
  1960. {
  1961. return Component(parsePage(vuePageOptions));
  1962. }
  1963. }
  1964. function createComponent(vueOptions) {
  1965. {
  1966. return Component(parseComponent(vueOptions));
  1967. }
  1968. }
  1969. function createSubpackageApp(vm) {
  1970. var appOptions = parseApp(vm);
  1971. var app = getApp({
  1972. allowDefault: true });
  1973. vm.$scope = app;
  1974. var globalData = app.globalData;
  1975. if (globalData) {
  1976. Object.keys(appOptions.globalData).forEach(function (name) {
  1977. if (!hasOwn(globalData, name)) {
  1978. globalData[name] = appOptions.globalData[name];
  1979. }
  1980. });
  1981. }
  1982. Object.keys(appOptions).forEach(function (name) {
  1983. if (!hasOwn(app, name)) {
  1984. app[name] = appOptions[name];
  1985. }
  1986. });
  1987. if (isFn(appOptions.onShow) && wx.onAppShow) {
  1988. wx.onAppShow(function () {for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {args[_key5] = arguments[_key5];}
  1989. vm.__call_hook('onShow', args);
  1990. });
  1991. }
  1992. if (isFn(appOptions.onHide) && wx.onAppHide) {
  1993. wx.onAppHide(function () {for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {args[_key6] = arguments[_key6];}
  1994. vm.__call_hook('onHide', args);
  1995. });
  1996. }
  1997. if (isFn(appOptions.onLaunch)) {
  1998. var args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();
  1999. vm.__call_hook('onLaunch', args);
  2000. }
  2001. return vm;
  2002. }
  2003. function createPlugin(vm) {
  2004. var appOptions = parseApp(vm);
  2005. if (isFn(appOptions.onShow) && wx.onAppShow) {
  2006. wx.onAppShow(function () {for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {args[_key7] = arguments[_key7];}
  2007. vm.__call_hook('onShow', args);
  2008. });
  2009. }
  2010. if (isFn(appOptions.onHide) && wx.onAppHide) {
  2011. wx.onAppHide(function () {for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {args[_key8] = arguments[_key8];}
  2012. vm.__call_hook('onHide', args);
  2013. });
  2014. }
  2015. if (isFn(appOptions.onLaunch)) {
  2016. var args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();
  2017. vm.__call_hook('onLaunch', args);
  2018. }
  2019. return vm;
  2020. }
  2021. todos.forEach(function (todoApi) {
  2022. protocols[todoApi] = false;
  2023. });
  2024. canIUses.forEach(function (canIUseApi) {
  2025. var apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name :
  2026. canIUseApi;
  2027. if (!wx.canIUse(apiName)) {
  2028. protocols[canIUseApi] = false;
  2029. }
  2030. });
  2031. var uni = {};
  2032. if (typeof Proxy !== 'undefined' && "mp-weixin" !== 'app-plus') {
  2033. uni = new Proxy({}, {
  2034. get: function get(target, name) {
  2035. if (hasOwn(target, name)) {
  2036. return target[name];
  2037. }
  2038. if (baseApi[name]) {
  2039. return baseApi[name];
  2040. }
  2041. if (api[name]) {
  2042. return promisify(name, api[name]);
  2043. }
  2044. {
  2045. if (extraApi[name]) {
  2046. return promisify(name, extraApi[name]);
  2047. }
  2048. if (todoApis[name]) {
  2049. return promisify(name, todoApis[name]);
  2050. }
  2051. }
  2052. if (eventApi[name]) {
  2053. return eventApi[name];
  2054. }
  2055. if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {
  2056. return;
  2057. }
  2058. return promisify(name, wrapper(name, wx[name]));
  2059. },
  2060. set: function set(target, name, value) {
  2061. target[name] = value;
  2062. return true;
  2063. } });
  2064. } else {
  2065. Object.keys(baseApi).forEach(function (name) {
  2066. uni[name] = baseApi[name];
  2067. });
  2068. {
  2069. Object.keys(todoApis).forEach(function (name) {
  2070. uni[name] = promisify(name, todoApis[name]);
  2071. });
  2072. Object.keys(extraApi).forEach(function (name) {
  2073. uni[name] = promisify(name, todoApis[name]);
  2074. });
  2075. }
  2076. Object.keys(eventApi).forEach(function (name) {
  2077. uni[name] = eventApi[name];
  2078. });
  2079. Object.keys(api).forEach(function (name) {
  2080. uni[name] = promisify(name, api[name]);
  2081. });
  2082. Object.keys(wx).forEach(function (name) {
  2083. if (hasOwn(wx, name) || hasOwn(protocols, name)) {
  2084. uni[name] = promisify(name, wrapper(name, wx[name]));
  2085. }
  2086. });
  2087. }
  2088. wx.createApp = createApp;
  2089. wx.createPage = createPage;
  2090. wx.createComponent = createComponent;
  2091. wx.createSubpackageApp = createSubpackageApp;
  2092. wx.createPlugin = createPlugin;
  2093. var uni$1 = uni;var _default =
  2094. uni$1;exports.default = _default;
  2095. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 2)))
  2096. /***/ }),
  2097. /***/ 10:
  2098. /*!*************************************************************************!*\
  2099. !*** D:/workspace/project_forwork/bizdbKLY_app/lib/goeasy-2.2.4.min.js ***!
  2100. \*************************************************************************/
  2101. /*! no static exports found */
  2102. /***/ (function(module, exports, __webpack_require__) {
  2103. /* WEBPACK VAR INJECTION */(function(uni) {!function (e, t) { true ? module.exports = t() : undefined;}(window, function () {return function (e) {var t = {};function n(o) {if (t[o]) return t[o].exports;var r = t[o] = { i: o, l: !1, exports: {} };return e[o].call(r.exports, r, r.exports, n), r.l = !0, r.exports;}return n.m = e, n.c = t, n.d = function (e, t, o) {n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: o });}, n.r = function (e) {"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });}, n.t = function (e, t) {if (1 & t && (e = n(e)), 8 & t) return e;if (4 & t && "object" == typeof e && e && e.__esModule) return e;var o = Object.create(null);if (n.r(o), Object.defineProperty(o, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var r in e) {n.d(o, r, function (t) {return e[t];}.bind(null, r));}return o;}, n.n = function (e) {var t = e && e.__esModule ? function () {return e["default"];} : function () {return e;};return n.d(t, "a", t), t;}, n.o = function (e, t) {return Object.prototype.hasOwnProperty.call(e, t);}, n.p = "", n(n.s = 32);}([function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.noop = t.GoEasyDomainNumber = t.goEasyArray = t.UUID = t.calibrator = undefined;var o = n(35),r = n(61),i = n(65),s = n(36);t.calibrator = o.calibrator, t.UUID = r.UUID, t.goEasyArray = i.goEasyArray, t.GoEasyDomainNumber = s.GoEasyDomainNumber, t.noop = function () {};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = { WRITE: "WRITE", READ: "READ", NONE: "NONE" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = { "default": "default", text: "text", image: "image", video: "video", audio: "audio", emoji: "emoji", file: "file" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(0),s = n(1),a = (o = s) && o.__esModule ? o : { "default": o };var u = function () {function e(t) {var n = this;!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.uuid = null, this.name = "", this.params = null, this.success = null, this.fail = null, this.permission = a["default"].NONE, this.singleTimeout = 0, this.totalTimeout = 0, this.startTime = 0, this.complete = !1, this.retried = 0, this.uuid = i.UUID.get(), this.name = t.name, this.params = t.params, this.permission = t.permission, this.totalTimeout = t.totalTimeout, this.singleTimeout = t.singleTimeout, this.success = function (e) {n.complete || (n.complete = !0, t.success(e));}, this.fail = function (e) {n.complete || (n.complete = !0, t.fail(e));};}return r(e, [{ key: "start", value: function value() {this.startTime = Date.now();} }, { key: "isTimeout", value: function value() {return this.startTime + this.totalTimeout < Date.now();} }]), e;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.SocketTimeout = { connect: 1500, reconnectionDelayMax: 3e3, commonQuerySingle: 2500, commonQueryTotal: 12e3, commonRequestSingle: 1700, commonRequestTotal: 12e3, commonInfiniteSingle: 1700, commonInfiniteTotal: 864e5 };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.EmitType = { authorize: "authorize", manualDisconnect: "manualDisconnect", subscribe: "subscribe", unsubscribe: "unsubscribe", publish: "publish", ack: "ack", historyMessages: "historyMessages", hereNow: "hereNow", hereNowByUserIds: "hereNowByUserIds", imLastConversations: "imLastConversations", markPrivateMessageAsRead: "markPrivateMessageAsRead", markGroupMessageAsRead: "markGroupMessageAsRead", imGroupOnlineCount: "imGroupOnlineCount", imHereNow: "imHereNow", imGroupHereNow: "imGroupHereNow", publishIM: "publishIM", imHistory: "imHistory", subscribeUserPresence: "subscribeUserPresence", unsubscribeUserPresence: "unsubscribeUserPresence", subscribeGroupPresence: "subscribeGroupPresence", unsubscribeGroupPresence: "unsubscribeGroupPresence", removeConversation: "removeConversation", topConversation: "topConversation", imData: "imData", subscribeGroups: "subscribeGroups", unsubscribeGroup: "unsubscribeGroup" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.str = t.noop = t.GoEasyDomainNumber = t.goEasyArray = t.UUID = t.calibrator = undefined;var o = n(69),r = n(0);t.calibrator = r.calibrator, t.UUID = r.UUID, t.goEasyArray = r.goEasyArray, t.GoEasyDomainNumber = r.GoEasyDomainNumber, t.noop = r.noop, t.str = o.str;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.Conversion = t.ConversationType = t.Conversations = undefined;var o = n(38),r = n(23),i = n(107);t.Conversations = i.Conversations, t.ConversationType = r.ConversationType, t.Conversion = o.Conversion;}, function (e, t, n) {"use strict";e.exports = function () {return function () {};};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = { DISCONNECTED: "disconnected", DISCONNECTING: "disconnecting", CONNECTING: "connecting", CONNECTED: "connected", RECONNECTING: "reconnecting", RECONNECTED: "reconnected", EXPIRED_RECONNECTED: "reconnected", CONNECT_FAILED: "connect_failed" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.ImEventType = t.eventCenter = undefined;var o = n(33),r = n(34);t.eventCenter = o.eventCenter, t.ImEventType = r.ImEventType;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.im = t.IM = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(7),i = n(68),s = w(n(2)),a = w(n(80)),u = w(n(96)),c = w(n(43)),l = w(n(97)),f = w(n(98)),p = w(n(99)),d = w(n(100)),h = w(n(101)),y = w(n(102)),v = w(n(103)),b = w(n(104)),m = w(n(106)),g = n(33);function w(e) {return e && e.__esModule ? e : { "default": e };}var _ = t.IM = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this._event = g.eventCenter, this._goEasyUploader = null, this._goEasySocket = null, this._dataCache = null, this._messageSender = null, this._history = null, this._conversations = null, this._iMReceiver = null, this._groupMessageReceive = null, this._groupPresenceSubscriber = null, this._groupOnlineCount = null, this._groupHereNow = null, this._privateMessageReceive = null, this._userPresenceSubscriber = null, this._userHereNow = null;}return o(e, [{ key: "on", value: function value(e, t) {this._event.on(e, t);} }, { key: "initialBeforeConnect", value: function value(t) {e.userId = t.id, e.userData = t.data, this._dataCache = new m["default"](this, t), this._messageSender = new a["default"](this), this._history = new u["default"](this), this._goEasyUploader = new c["default"](this), this._userHereNow = new y["default"](this), this._groupHereNow = new v["default"](this), this._groupOnlineCount = new p["default"](this);} }, { key: "initialAfterConnect", value: function value() {this._iMReceiver = new b["default"](this), this._conversations = new r.Conversations(this), this._groupPresenceSubscriber = new d["default"](this), this._groupMessageReceive = new l["default"](this), this._userPresenceSubscriber = new h["default"](this), this._privateMessageReceive = new f["default"](this);} }, { key: "initialGoEasySocket", value: function value(e) {this._goEasySocket = e;} }, { key: "createTextMessage", value: function value(e) {return i.messageCreator.create(s["default"].text, e);} }, { key: "createImageMessage", value: function value(e) {return i.messageCreator.create(s["default"].image, e);} }, { key: "createFileMessage", value: function value(e) {return i.messageCreator.create(s["default"].file, e);} }, { key: "createAudioMessage", value: function value(e) {return i.messageCreator.create(s["default"].audio, e);} }, { key: "createVideoMessage", value: function value(e) {return i.messageCreator.create(s["default"].video, e);} }, { key: "createCustomMessage", value: function value(e) {return i.messageCreator.create(e.type, e);} }, { key: "latestConversations", value: function value() {return this._conversations ? this._conversations.latestConversations() : Promise.reject({ code: 500, content: "Please connect GoEasyIM first." });} }, { key: "groupMarkAsRead", value: function value(e, t) {return this._conversations.groupMarkAsRead(e, t);} }, { key: "privateMarkAsRead", value: function value(e, t) {return this._conversations.privateMarkAsRead(e, t);} }, { key: "removePrivateConversation", value: function value(e) {return this._conversations.removeConversation(e, r.ConversationType.PRIVATE);} }, { key: "removeGroupConversation", value: function value(e) {return this._conversations.removeConversation(e, r.ConversationType.GROUP);} }, { key: "topPrivateConversation", value: function value(e, t) {return this._conversations.topConversation(e, t, r.ConversationType.PRIVATE);} }, { key: "topGroupConversation", value: function value(e, t) {return this._conversations.topConversation(e, t, r.ConversationType.GROUP);} }, { key: "history", value: function value(e) {return this._history.history(e);} }, { key: "upload", value: function value(e, t, n) {return this._goEasyUploader.upload(e, t, n);} }, { key: "sendSystemMessage", value: function value(e, t) {return this._messageSender.send(e, t, r.ConversationType.SYSTEM);} }, { key: "sendMessage", value: function value(e) {return this._messageSender.sendMessage(e);} }, { key: "sendPrivateMessage", value: function value(e, t) {return this._messageSender.send(e, t, r.ConversationType.PRIVATE);} }, { key: "subscribeUserPresence", value: function value(e) {return this._userPresenceSubscriber.presence(e);} }, { key: "unsubscribeUserPresence", value: function value(e) {return this._userPresenceSubscriber.unPresence(e);} }, { key: "hereNow", value: function value(e) {return this._userHereNow.hereNow(e, r.ConversationType.PRIVATE);} }, { key: "sendGroupMessage", value: function value(e, t) {return this._messageSender.send(e, t, r.ConversationType.GROUP);} }, { key: "subscribeGroup", value: function value(e) {return this._groupMessageReceive.subscribe(e);} }, { key: "unsubscribeGroup", value: function value(e) {return this._groupMessageReceive.unsubscribe(e);} }, { key: "subscribeGroupPresence", value: function value(e) {return this._groupPresenceSubscriber.presence(e);} }, { key: "unsubscribeGroupPresence", value: function value(e) {return this._groupPresenceSubscriber.unPresence(e);} }, { key: "groupHereNow", value: function value(e) {return this._groupHereNow.hereNow(e);} }, { key: "groupOnlineCount", value: function value(e) {return this._groupOnlineCount.get(e);} }]), e;}();_.version = null, _.userId = undefined, _.userData = null;var E = new _();t.im = E;}, function (e, t, n) {function o(e) {if (e) return function (e) {for (var t in o.prototype) {e[t] = o.prototype[t];}return e;}(e);}e.exports = o, o.prototype.on = o.prototype.addEventListener = function (e, t) {return this._callbacks = this._callbacks || {}, (this._callbacks["$" + e] = this._callbacks["$" + e] || []).push(t), this;}, o.prototype.once = function (e, t) {function n() {this.off(e, n), t.apply(this, arguments);}return n.fn = t, this.on(e, n), this;}, o.prototype.off = o.prototype.removeListener = o.prototype.removeAllListeners = o.prototype.removeEventListener = function (e, t) {if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;var n,o = this._callbacks["$" + e];if (!o) return this;if (1 == arguments.length) return delete this._callbacks["$" + e], this;for (var r = 0; r < o.length; r++) {if ((n = o[r]) === t || n.fn === t) {o.splice(r, 1);break;}}return this;}, o.prototype.emit = function (e) {this._callbacks = this._callbacks || {};var t = [].slice.call(arguments, 1),n = this._callbacks["$" + e];if (n) for (var o = 0, r = (n = n.slice(0)).length; o < r; ++o) {n[o].apply(this, t);}return this;}, o.prototype.listeners = function (e) {return this._callbacks = this._callbacks || {}, this._callbacks["$" + e] || [];}, o.prototype.hasListeners = function (e) {return !!this.listeners(e).length;};}, function (e, t, n) {"use strict";var o = n(116),r = n(52),i = n(120),s = n(121);"undefined" != typeof navigator && /Android/i.test(navigator.userAgent), "undefined" != typeof navigator && /PhantomJS/i.test(navigator.userAgent);t.protocol = 3;var a = t.packets = { open: 0, close: 1, ping: 2, pong: 3, message: 4, upgrade: 5, noop: 6 },u = o(a),c = { type: "error", data: "parser error" },l = n(122);t.encodePacket = function (e, t, n, o) {"function" == typeof t && (o = t, t = !1), "function" == typeof n && (o = n, n = null);e.data === undefined ? undefined : e.data.buffer || e.data;var r = a[e.type];return undefined !== e.data && (r += n ? s.encode(String(e.data), { strict: !1 }) : String(e.data)), o("" + r);}, t.decodePacket = function (e, t, n) {if (e === undefined) return c;if ("string" == typeof e) {if (n && !1 === (e = function (e) {try {e = s.decode(e, { strict: !1 });} catch (t) {return !1;}return e;}(e))) return c;var o = e.charAt(0);return Number(o) == o && u[o] ? e.length > 1 ? { type: u[o], data: e.substring(1) } : { type: u[o] } : c;}o = new Uint8Array(e)[0];var r = sliceBuffer(e, 1);return l && "blob" === t && (r = new l([r])), { type: u[o], data: r };}, t.encodePayload = function (e, n, o) {"function" == typeof n && (o = n, n = null);var s = r(e);if (!e.length) return o("0:");!function (e, t, n) {for (var o = new Array(e.length), r = i(e.length, n), s = function s(e, n, r) {t(n, function (t, n) {o[e] = n, r(t, o);});}, a = 0; a < e.length; a++) {s(a, e[a], r);}}(e, function (e, o) {t.encodePacket(e, !!s && n, !0, function (e) {o(null, function (e) {return e.length + ":" + e;}(e));});}, function (e, t) {return o(t.join(""));});}, t.decodePayload = function (e, n, o) {var r;if ("function" == typeof n && (o = n, n = null), "" === e) return o(c, 0, 1);for (var i, s, a = "", u = 0, l = e.length; u < l; u++) {var f = e.charAt(u);if (":" === f) {if ("" === a || a != (i = Number(a))) return o(c, 0, 1);if (a != (s = e.substr(u + 1, i)).length) return o(c, 0, 1);if (s.length) {if (r = t.decodePacket(s, n, !0), c.type === r.type && c.data === r.data) return o(c, 0, 1);if (!1 === o(r, u + i, l)) return;}u += i, a = "";} else a += f;}return "" !== a ? o(c, 0, 1) : void 0;};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(11),i = n(0),s = (u(n(2)), u(n(19))),a = n(7);function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.type = "", this.to = { type: null, id: null, data: null }, this.timestamp = Date.now(), this.senderId = null, this.payload = null, this.messageId = i.UUID.get(), this.status = s["default"]["new"], this.validate(t), this.setSenderId(), this.setType(t), this.setNotification(t), this.setPayload(t), this.setTo(t), this.setData();}return o(e, [{ key: "validate", value: function value(e) {if (!i.calibrator.isObject(e)) throw Error("it is an empty message.");} }, { key: "setType", value: function value(e) {throw Error("Abstract method");} }, { key: "setNotification", value: function value(e) {if (e.notification) {if (!i.calibrator.isObject(e.notification)) throw Error("notification require an object.");if (i.calibrator.isEmpty(e.notification.title)) throw Error("notification's title is empty.");if (i.calibrator.isEmpty(e.notification.body)) throw Error("notification's body is empty.");if (e.notification.title.length > 32) throw Error("notification's title over max length 32");if (e.notification.body.length > 50) throw Error("notification's body over max length 50");this.notification = e.notification;}} }, { key: "setPayload", value: function value(e) {this.payload = Object.create(null);} }, { key: "setSenderId", value: function value() {if (!r.IM.userId) throw Error("please call connect() first.");this.senderId = r.IM.userId;} }, { key: "setTo", value: function value(e) {this.to = e.to;} }, { key: "setData", value: function value() {this.to && this.to.type == a.ConversationType.GROUP && (this.senderData = r.IM.userData);} }]), e;}();t["default"] = c;}, function (e, t, n) {"use strict";(function (e) {var n,o = this && this.__values || function (e) {var t = "function" == typeof Symbol && Symbol.iterator,n = t && e[t],o = 0;if (n) return n.call(e);if (e && "number" == typeof e.length) return { next: function next() {return e && o >= e.length && (e = void 0), { value: e && e[o++], done: !e };} };throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.");};t.__esModule = !0, t.FrameworkDetector = t.Framework = void 0, function (e) {e.UNIAPP = "UNIAPP", e.REACT_NATIVE = "REACT_NATIVE", e.TARO = "TARO", e.IONIC = "IONIC", e.NATIVE_APPLET_WX = "NATIVE_APPLET_WX", e.NATIVE_APPLET_ALIPAY = "NATIVE_APPLET_ALIPAY", e.UNKNOWN = "UNKNOWN";}(n = t.Framework || (t.Framework = {}));var r = function () {function t() {var e, t, r;this.framework = null, this.methods = ((e = {})[n.UNIAPP] = this.isUniApp, e[n.REACT_NATIVE] = this.isReactNative, e[n.NATIVE_APPLET_WX] = this.isWXApplet, e);var i = this.methods,s = Object.keys(i);try {for (var a = o(s), u = a.next(); !u.done; u = a.next()) {var c = u.value;if ((0, i[c])()) {this.framework = c;break;}}} catch (l) {t = { error: l };} finally {try {u && !u.done && (r = a["return"]) && r.call(a);} finally {if (t) throw t.error;}}this.framework = this.framework || n.UNKNOWN, this.framework;}return t.currentFramework = function () {return this.instance.framework;}, t.prototype.isUniApp = function () {return "object" == typeof uni && !!uni.getSystemInfoSync;}, t.prototype.isReactNative = function () {return void 0 !== e && e.__fbGenNativeModule;}, t.prototype.isTaro = function () {return !1;}, t.prototype.isWXApplet = function () {return "undefined" != typeof wx && wx.getLocation && "undefined" == typeof uni;}, t.instance = new t(), t;}();t.FrameworkDetector = r;}).call(this, n(25));}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(0),s = n(7),a = n(19),u = (o = a) && o.__esModule ? o : { "default": o };var c = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return r(e, null, [{ key: "assemble", value: function value(e) {if (!i.calibrator.isDef(e)) return null;try {var t = Object.create(null);return t.type = e.mt, t.timestamp = e.ts, t.senderId = e.s, t.payload = JSON.parse(e.p), t.messageId = e.i, t.status = u["default"].success, e.t == s.ConversationType.GROUP ? (t.groupId = e.r, t.senderData = e.d ? JSON.parse(e.d) : {}) : t.receiverId = e.r, t;} catch (n) {throw Error(n);}} }]), e;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = { message: "message", imMessage: "imMessage", userPresence: "userPresence", groupPresence: "groupPresence" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = function l(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : l(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},s = n(24),a = (o = s) && o.__esModule ? o : { "default": o },u = n(6);var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, a["default"]), r(t, [{ key: "validate", value: function value(e) {if (i(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e), !u.calibrator.isDef(e.file)) throw Error("file is empty.");} }, { key: "setPayload", value: function value(e) {i(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = { "new": "new", sending: "sending", success: "success", fail: "fail" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = function l(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : l(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},s = n(6),a = n(24),u = (o = a) && o.__esModule ? o : { "default": o };var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, u["default"]), r(t, [{ key: "validate", value: function value(e) {if (i(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e), !s.calibrator.isDef(e.file)) throw Error("file is empty.");} }, { key: "setPayload", value: function value(e) {i(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = function c(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : c(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},s = n(24),a = (o = s) && o.__esModule ? o : { "default": o };var u = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, a["default"]), r(t, [{ key: "validate", value: function value(e) {if (i(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e), !(e.file instanceof File)) throw Error("wrong file type.");if (0 == e.file.size) throw Error("File size is 0.");if (e.file.size > 31457280) throw Error("message-length limit 30mib");} }, { key: "setPayload", value: function value(e) {i(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e), this.payload.contentType = e.file.type, this.payload.name = e.file.name, this.payload.size = e.file.size;var n = (window.URL || window.webkitURL).createObjectURL(e.file);this.payload.url = n;} }]), t;}();t["default"] = u;}, function (e, t) {t.encode = function (e) {var t = "";for (var n in e) {e.hasOwnProperty(n) && (t.length && (t += "&"), t += encodeURIComponent(n) + "=" + encodeURIComponent(e[n]));}return t;}, t.decode = function (e) {for (var t = {}, n = e.split("&"), o = 0, r = n.length; o < r; o++) {var i = n[o].split("=");t[decodeURIComponent(i[0])] = decodeURIComponent(i[1]);}return t;};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.ConversationType = { GROUP: "group", PRIVATE: "private" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function c(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : c(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = a(n(14)),s = a(n(2));function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function (e) {function t(e) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t);var n = function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));return n.file = null, n.onProgress = null, n.setFile(e.file), n.setOnProgress(e.onProgress), n;}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);} }, { key: "setPayload", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e), this.payload.size = "", this.payload.contentType = "", this.payload.name = "", this.payload.url = "";} }, { key: "setType", value: function value(e) {this.type = s["default"].file;} }, { key: "setFile", value: function value(e) {this.file = e;} }, { key: "setOnProgress", value: function value(e) {this.onProgress = e;} }]), t;}();t["default"] = u;}, function (e, t) {var n;n = function () {return this;}();try {n = n || new Function("return this")();} catch (o) {"object" == typeof window && (n = window);}e.exports = n;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var r = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return o(e, [{ key: "upload", value: function value(e) {throw Error("Not implementation yet.");} }]), e;}();t["default"] = r;}, function (e, t, n) {"use strict";t.__esModule = !0, t.GoEasyEventCenter = void 0;var o = n(105),r = function () {function e() {}return e.on = function (t, n) {e.eventDriver.on(t, n);}, e.fire = function (t, n) {e.eventDriver.fire(t, n);}, e.eventDriver = new o.EmitterEventDriver(), e;}();t.GoEasyEventCenter = r;}, function (e, t, n) {"use strict";n(8)("socket.io-parser");var o = n(12),r = n(49);function i() {}t.protocol = 4, t.types = ["CONNECT", "DISCONNECT", "EVENT", "ACK", "ERROR", "BINARY_EVENT", "BINARY_ACK"], t.CONNECT = 0, t.DISCONNECT = 1, t.EVENT = 2, t.ACK = 3, t.ERROR = 4, t.BINARY_EVENT = 5, t.BINARY_ACK = 6, t.Encoder = i, t.Decoder = a;var s = t.ERROR + '"encode error"';function a() {this.reconstructor = null;}function u(e) {this.reconPack = e, this.buffers = [];}function c(e) {return { type: t.ERROR, data: "parser error: " + e };}i.prototype.encode = function (e, n) {n([function (e) {var n = "" + e.type;t.BINARY_EVENT !== e.type && t.BINARY_ACK !== e.type || (n += e.attachments + "-");e.nsp && "/" !== e.nsp && (n += e.nsp + ",");null != e.id && (n += e.id);if (null != e.data) {var o = function (e) {try {return JSON.stringify(e);} catch (t) {return !1;}}(e.data);if (!1 === o) return s;n += o;}return n;}(e)]);}, o(a.prototype), a.prototype.add = function (e) {var n;if ("string" != typeof e) throw new Error("Unknown type: " + e);n = function (e) {var n = 0,o = { type: Number(e.charAt(0)) };if (null == t.types[o.type]) return c("unknown packet type " + o.type);if (t.BINARY_EVENT === o.type || t.BINARY_ACK === o.type) {for (var i = ""; "-" !== e.charAt(++n) && (i += e.charAt(n), n != e.length);) {;}if (i != Number(i) || "-" !== e.charAt(n)) throw new Error("Illegal attachments");o.attachments = Number(i);}if ("/" === e.charAt(n + 1)) for (o.nsp = ""; ++n;) {var s = e.charAt(n);if ("," === s) break;if (o.nsp += s, n === e.length) break;} else o.nsp = "/";var a = e.charAt(n + 1);if ("" !== a && Number(a) == a) {for (o.id = ""; ++n;) {var s = e.charAt(n);if (null == s || Number(s) != s) {--n;break;}if (o.id += e.charAt(n), n === e.length) break;}o.id = Number(o.id);}if (e.charAt(++n)) {var u = function (e) {try {return JSON.parse(e);} catch (t) {return !1;}}(e.substr(n)),l = !1 !== u && (o.type === t.ERROR || r(u));if (!l) return c("invalid payload");o.data = u;}return o;}(e), this.emit("decoded", n);}, a.prototype.destroy = function () {this.reconstructor && this.reconstructor.finishedReconstruction();}, u.prototype.takeBinaryData = function (e) {if (this.buffers.push(e), this.buffers.length === this.reconPack.attachments) {var t = binary.reconstructPacket(this.reconPack, this.buffers);return this.finishedReconstruction(), t;}return null;}, u.prototype.finishedReconstruction = function () {this.reconPack = null, this.buffers = [];};}, function (e, t, n) {"use strict";var o = n(13),r = n(12);function i(e) {this.path = e.path, this.hostname = e.hostname, this.port = e.port, this.secure = e.secure, this.query = e.query, this.timestampParam = e.timestampParam, this.timestampRequests = e.timestampRequests, this.readyState = "", this.agent = e.agent || !1, this.socket = e.socket, this.enablesXDR = e.enablesXDR, this.pfx = e.pfx, this.key = e.key, this.passphrase = e.passphrase, this.cert = e.cert, this.ca = e.ca, this.ciphers = e.ciphers, this.rejectUnauthorized = e.rejectUnauthorized, this.forceNode = e.forceNode, this.isReactNative = e.isReactNative, this.extraHeaders = e.extraHeaders, this.localAddress = e.localAddress;}e.exports = i, r(i.prototype), i.prototype.onError = function (e, t) {var n = new Error(e);return n.type = "TransportError", n.description = t, this.emit("error", n), this;}, i.prototype.open = function () {return "closed" !== this.readyState && "" !== this.readyState || (this.readyState = "opening", this.doOpen()), this;}, i.prototype.close = function () {return "opening" !== this.readyState && "open" !== this.readyState || (this.doClose(), this.onClose()), this;}, i.prototype.send = function (e) {if ("open" !== this.readyState) throw new Error("Transport not open");this.write(e);}, i.prototype.onOpen = function () {this.readyState = "open", this.writable = !0, this.emit("open");}, i.prototype.onData = function (e) {var t = o.decodePacket(e, this.socket.binaryType);this.onPacket(t);}, i.prototype.onPacket = function (e) {this.emit("packet", e);}, i.prototype.onClose = function () {this.readyState = "closed", this.emit("close");};}, function (e, t) {e.exports = function (e, t) {var n = function n() {};n.prototype = t.prototype, e.prototype = new n(), e.prototype.constructor = e;};}, function (e, t, n) {"use strict";var o,r = this && this.__values || function (e) {var t = "function" == typeof Symbol && Symbol.iterator,n = t && e[t],o = 0;if (n) return n.call(e);if (e && "number" == typeof e.length) return { next: function next() {return e && o >= e.length && (e = void 0), { value: e && e[o++], done: !e };} };throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.");};t.__esModule = !0, t.PlatformDetector = t.Platform = void 0, function (e) {e.BROWSER = "BROWSER", e.UNKNOWN = "UNKNOWN", e.APP_IOS = "APP_IOS", e.APP_ANDROID = "APP_ANDROID", e.APPLET_WX = "APPLET_WX", e.APPLET_ALIPAY = "APPLET_ALIPAY", e.APPLET_BYTEDANCE = "APPLET_BYTEDANCE";}(o = t.Platform || (t.Platform = {}));var i = function () {function e() {var e, t, n;this.platform = null, this.methods = ((e = {})[o.BROWSER] = this.isBrowser, e[o.APP_IOS] = this.isAppiOS, e[o.APP_ANDROID] = this.isAppAndroid, e[o.APPLET_WX] = this.isWXApplet, e);var i = this.methods,s = Object.keys(i);try {for (var a = r(s), u = a.next(); !u.done; u = a.next()) {var c = u.value;if ((0, i[c])()) {this.platform = c;break;}}} catch (l) {t = { error: l };} finally {try {u && !u.done && (n = a["return"]) && n.call(a);} finally {if (t) throw t.error;}}this.platform = this.platform || o.UNKNOWN, this.platform;}return e.currentPlatform = function () {return e.instance.platform;}, e.prototype.isBrowser = function () {return "undefined" != typeof navigator && "undefined" != typeof document && !!document.getElementById;}, e.prototype.isAppiOS = function () {return "object" == typeof uni && !!uni.getSystemInfoSync && "ios" === uni.getSystemInfoSync().platform && "object" == typeof plus;}, e.prototype.isAppAndroid = function () {return "object" == typeof uni && !!uni.getSystemInfoSync && "android" === uni.getSystemInfoSync().platform && "object" == typeof plus;}, e.prototype.isWXApplet = function () {return "object" == typeof wx && !!wx.getSystemInfoSync && "undefined" == typeof WebSocket && "undefined" == typeof XMLHttpRequest && "undefined" == typeof plus;}, e.prototype.isAlipayApplet = function () {return !1;}, e.prototype.isBytedanceApplet = function () {return !1;}, e.prototype.isQQApplet = function () {return !1;}, e.prototype.isBaiduApplet = function () {return !1;}, e.instance = new e(), e;}();t.PlatformDetector = i;}, function (e, t, n) {"use strict";t.__esModule = !0, t.GoEasyIM = t.PubSub = t.MessageStatus = void 0;var o = n(10),r = n(7),i = n(9),s = n(108),a = n(0),u = n(133),c = n(11),l = n(134),f = n(135),p = n(136),d = n(137),h = n(139),y = n(141);!function (e) {e["new"] = "new", e.sending = "sending", e.success = "success", e.fail = "fail";}(t.MessageStatus || (t.MessageStatus = {}));var v = function () {function e(e) {this.options = null, this.goEasySocket = null, this.publisher = null, this.subscriber = null, this.presence = null, this.histories = null, this.hereNows = null, this.neverConnect = !0, this.options = e;}return e.prototype.initialGoEasySocket = function (e) {this.goEasySocket = e, this.subscriber.initialGoEasySocket(), this.presence.initialGoEasySocket();}, e.prototype.initialBeforeConnect = function () {this.neverConnect = !1, this.publisher = new p["default"](this), this.subscriber = new d["default"](this), this.histories = new l["default"](this), this.presence = new h["default"](this), this.hereNows = new f["default"](this);}, e.prototype.validateOptions = function () {var e = this.options;if (!e.modules || !e.modules.includes(u.ModuleType.PUBSUB)) throw Error("Invalid options: module '" + u.ModuleType.PUBSUB + "' is not enabled");}, e.prototype.publish = function (e) {this.validateOptions(), this.publisher.publish(e);}, e.prototype.subscribe = function (e) {this.validateOptions(), this.subscriber.subscribe(e);}, e.prototype.unsubscribe = function (e) {this.validateOptions(), this.subscriber.unsubscribe(e);}, e.prototype.subscribePresence = function (e) {this.validateOptions(), this.presence.subscribePresence(e);}, e.prototype.unsubscribePresence = function (e) {this.validateOptions(), this.presence.unsubscribePresence(e);}, e.prototype.history = function (e) {this.validateOptions(), this.histories.get(e);}, e.prototype.hereNow = function (e) {this.validateOptions(), this.hereNows.byChannel(e);}, e.prototype.hereNowByUserIds = function (e) {this.validateOptions(), this.hereNows.byUserId(e);}, e.instance = null, e;}();t.PubSub = v;var b = function () {function e(e) {this.options = e;}return e.prototype.initialBeforeConnect = function (e) {c.im.initialBeforeConnect(e);}, e.prototype.initialAfterConnect = function () {c.im.initialAfterConnect();}, e.prototype.initialGoEasySocket = function (e) {c.im.initialGoEasySocket(e);}, e.prototype.validateOptions = function () {var e = this.options;if (!e.modules || !e.modules.includes(u.ModuleType.IM)) throw Error("Invalid options: module '" + u.ModuleType.IM + "' is not enabled");}, e.prototype.validateMessageToData = function (e) {if (!a.calibrator.isObject(e.to)) throw { code: 400, content: "TypeError: to requires an object." };if (!a.calibrator.isObject(e.to.data)) throw { code: 400, content: "TypeError: to.data requires an object." };}, e.prototype.on = function (e, t) {this.validateOptions(), c.im.on(e, t);}, e.prototype.createTextMessage = function (e) {if (this.validateOptions(), this.validateMessageToData(e), !a.calibrator.isString(e.text)) throw { code: 400, content: "TypeError: text requires string." };return c.im.createTextMessage(e);}, e.prototype.createImageMessage = function (e) {return this.validateOptions(), this.validateMessageToData(e), c.im.createImageMessage(e);}, e.prototype.createFileMessage = function (e) {return this.validateOptions(), this.validateMessageToData(e), c.im.createFileMessage(e);}, e.prototype.createAudioMessage = function (e) {return this.validateOptions(), this.validateMessageToData(e), c.im.createAudioMessage(e);}, e.prototype.createVideoMessage = function (e) {return this.validateOptions(), this.validateMessageToData(e), c.im.createVideoMessage(e);}, e.prototype.createCustomMessage = function (e) {if (this.validateOptions(), this.validateMessageToData(e), !a.calibrator.isObject(e.payload)) throw { code: 400, content: "TypeError: payload requires an object." };return c.im.createCustomMessage(e);}, e.prototype.latestConversations = function (e) {this.validateOptions(), c.im.latestConversations().then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.removePrivateConversation = function (e) {this.validateOptions(), c.im.removePrivateConversation(e.userId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess();})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.removeGroupConversation = function (e) {this.validateOptions(), c.im.removeGroupConversation(e.groupId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess();})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.history = function (e) {this.validateOptions();var t = Object.assign(e, { friendId: e.userId });c.im.history(t).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.upload = function (e) {this.validateOptions(), c.im.upload(e.file, e.name, e.onProgress).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.sendMessage = function (e) {this.validateOptions(), c.im.sendMessage(e).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.markGroupMessageAsRead = function (e) {this.validateOptions(), c.im.groupMarkAsRead(e.groupId, e.timestamp).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.markPrivateMessageAsRead = function (e) {this.validateOptions(), c.im.privateMarkAsRead(e.userId, e.timestamp).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.topPrivateConversation = function (e) {this.validateOptions(), c.im.topPrivateConversation(e.userId, e.top).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess();})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.topGroupConversation = function (e) {this.validateOptions(), c.im.topGroupConversation(e.groupId, e.top).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess();})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.subscribeUserPresence = function (e) {this.validateOptions(), c.im.subscribeUserPresence(e.userIds).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.unsubscribeUserPresence = function (e) {this.validateOptions(), c.im.unsubscribeUserPresence(e.userId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.hereNow = function (e) {this.validateOptions(), c.im.hereNow(e).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.subscribeGroup = function (e) {this.validateOptions(), c.im.subscribeGroup(e).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.unsubscribeGroup = function (e) {this.validateOptions(), c.im.unsubscribeGroup(e.groupId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.subscribeGroupPresence = function (e) {this.validateOptions(), c.im.subscribeGroupPresence(e.groupIds).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.unsubscribeGroupPresence = function (e) {this.validateOptions(), c.im.unsubscribeGroupPresence(e.groupId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.groupHereNow = function (e) {this.validateOptions(), c.im.groupHereNow(e.groupId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.groupOnlineCount = function (e) {this.validateOptions(), c.im.groupOnlineCount(e.groupId).then(function (t) {a.calibrator.isFunction(e.onSuccess) && e.onSuccess(t);})["catch"](function (t) {a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e;}();t.GoEasyIM = b;var m = function () {function e(t) {if (this.im = null, this.pubsub = null, this.goEasySocket = null, this.notification = null, null !== e.instance && e.instance.getConnectionStatus() !== i["default"].DISCONNECTED) return e.instance;this.validateOptions(t), this.options = t, this.pubsub = new v(this.options), this.im = new b(this.options), this.notification = new y.GoEasyNotification(this.options.allowNotification);}return e.getInstance = function (t) {return null === e.instance && (e.instance = new e(t)), e.instance;}, e.prototype.connect = function (e) {this.getConnectionStatus() !== i["default"].DISCONNECTED && a.calibrator.isObject(e) && a.calibrator.isFunction(e.onFailed) ? e.onFailed({ code: 408, content: "It is already connected, don't try again until disconnect() is called. " }) : (this.confirmUserId(e), this.pubsub.initialBeforeConnect(), this.im.initialBeforeConnect({ id: e.id, data: e.data }), this.goEasySocket = new s["default"](this.options, e), this.im.initialGoEasySocket(this.goEasySocket), this.goEasySocket.connect(this.notification), this.pubsub.initialGoEasySocket(this.goEasySocket), this.im.initialAfterConnect());}, e.prototype.disconnect = function (e) {this.goEasySocket.disconnect(e).then(function () {a.calibrator.isObject(e) && a.calibrator.isFunction(e.onSuccess) && e.onSuccess();})["catch"](function (t) {a.calibrator.isObject(e) && a.calibrator.isFunction(e.onFailed) && e.onFailed(t);});}, e.prototype.getConnectionStatus = function () {return this.goEasySocket ? this.goEasySocket.getStatus() : i["default"].DISCONNECTED;}, e.prototype.validateOptions = function (e) {var t = "";if (!a.calibrator.isObject(e)) throw t = "options is require an object.", Error(t);if (!a.calibrator.isPrimitive(e.appkey) || 0 == e.appkey.length) throw t = "Invalid options:'host' is empty.", Error(t);if (!a.calibrator.isPrimitive(e.host) || 0 == e.host.length) throw t = "Invalid options:'host' is empty.", Error(t);if (!a.calibrator.isArray(e.modules)) throw t = "Invalid options: 'modules' must be nonempty array", Error(t);var n = [u.ModuleType.IM, u.ModuleType.PUBSUB],o = e.modules.map(function (e) {var o = e.toUpperCase();if (!n.includes(o)) throw t = "Invalid options: module '" + e + "' is not support", Error(t);return o;});e.modules = o;}, e.prototype.onClickNotification = function (e) {this.notification.onClickNotification(e);}, e.prototype.confirmUserId = function (e) {if (this.options.modules.includes(u.ModuleType.IM) && (a.calibrator.isEmpty(e.id) || !a.calibrator.isStringOrNumber(e.id))) throw { code: 400, content: "TypeError: id requires number or string." };}, e.instance = null, e.version = "2.2.4", e.IM_EVENT = o.ImEventType, e.IM_SCENE = r.ConversationType, e;}();t["default"] = m;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.eventCenter = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(34),i = n(0);var s = new (function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.subs = null, this.subs = Object.create(null);}return o(e, [{ key: "on", value: function value(e, t) {if (!i.calibrator.isString(e)) throw Error("eventType require a string.");if (!i.calibrator.isDef(r.ImEventType[e])) throw Error("event not found.");if (!i.calibrator.isFunction(t)) throw Error("event require a callback.");this.subs[e] = t;} }, { key: "notify", value: function value(e, t) {var n = this.subs[e];n && n(t);} }]), e;}())();t.eventCenter = s;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.ImEventType = { PRIVATE_MESSAGE_RECEIVED: "PRIVATE_MESSAGE_RECEIVED", GROUP_MESSAGE_RECEIVED: "GROUP_MESSAGE_RECEIVED", SYSTEM_MESSAGE_RECEIVED: "SYSTEM_MESSAGE_RECEIVED", CONVERSATIONS_UPDATED: "CONVERSATIONS_UPDATED", CONNECTED: "CONNECTED", CONNECTING: "CONNECTING", DISCONNECTED: "DISCONNECTED", USER_PRESENCE: "USER_PRESENCE", GROUP_PRESENCE: "GROUP_PRESENCE" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {return typeof e;} : function (e) {return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;},r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var i = new (function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return r(e, [{ key: "isUndef", value: function value(e) {return e === undefined || null === e;} }, { key: "isTrue", value: function value(e) {return !0 === e;} }, { key: "isFalse", value: function value(e) {return !1 === e;} }, { key: "isPrimitive", value: function value(e) {return "string" == typeof e || "number" == typeof e || "symbol" === (void 0 === e ? "undefined" : o(e)) || "boolean" == typeof e;} }, { key: "isDef", value: function value(e) {return e !== undefined && null !== e;} }, { key: "isObject", value: function value(e) {return null !== e && "object" === (void 0 === e ? "undefined" : o(e));} }, { key: "isPlainObject", value: function value(e) {return "[object Object]" === Object.prototype.toString.call(e);} }, { key: "isRegExp", value: function value(e) {return "[object RegExp]" === Object.prototype.toString.call(e);} }, { key: "isValidArrayIndex", value: function value(e) {var t = parseFloat(String(e));return t >= 0 && Math.floor(t) === t && isFinite(e);} }, { key: "isStringOrNumber", value: function value(e) {return "string" == typeof e || "number" == typeof e;} }, { key: "isString", value: function value(e) {return "string" == typeof e;} }, { key: "isNumber", value: function value(e) {return "number" == typeof e;} }, { key: "isArray", value: function value(e) {return "[object Array]" == Object.prototype.toString.call(e);} }, { key: "isEmpty", value: function value(e) {return this.isArray(e) ? 0 == e.length : this.isObject(e) ? !this.isDef(e) : !this.isNumber(e) && (this.isString(e) ? "" == e.trim() : !this.isDef(e));} }, { key: "isNative", value: function value(e) {return "function" == typeof e && /native code/.test(e.toString());} }, { key: "isFunction", value: function value(e) {return "function" == typeof e;} }]), e;}())();t.calibrator = i;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.GoEasyDomainNumber = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(66),s = (o = i) && o.__esModule ? o : { "default": o },a = n(37);var u = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return r(e, null, [{ key: "refreshNumber", value: function value() {var t = e.GOEASY_DOMAIN_NUMBER,n = a.LocalStorageDispatcher.localStorage(),o = Math.floor(Math.random() * (s["default"].maxNumber - 1) + 1);return null !== n && (o = parseInt(n.get(t)) || o), o > 0 && o < s["default"].maxNumber ? o += 1 : o == s["default"].maxNumber && (o = 1), null !== n && n.put(t, o), o;} }]), e;}();u.GOEASY_DOMAIN_NUMBER = "GOEASY_DOMAIN_NUMBER", t.GoEasyDomainNumber = u;}, function (e, t, n) {"use strict";var o = this && this.__values || function (e) {var t = "function" == typeof Symbol && Symbol.iterator,n = t && e[t],o = 0;if (n) return n.call(e);if (e && "number" == typeof e.length) return { next: function next() {return e && o >= e.length && (e = void 0), { value: e && e[o++], done: !e };} };throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.");};t.__esModule = !0, t.LocalStorageDispatcher = void 0;var r = n(67),i = function () {function e() {this.domain = null;this.domain = "undefined" != typeof location && /^(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/.test(location.host) ? location.host.split(".").slice(-2).join(".") : null;}return e.prototype.get = function (e) {var t = r.Cookie.get(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {var n = new Date(2030, 12, 31, 0, 0, 0, 0),o = this.domain;r.Cookie.set(e, JSON.stringify(t), n, o);}, e.prototype.remove = function (e) {var t = this.domain;r.Cookie.remove(e, t);}, e.prototype.support = function () {return navigator && !0 === navigator.cookieEnabled;}, e;}(),s = function () {function e() {}return e.prototype.get = function (e) {var t = localStorage.getItem(e);return JSON.parse(t);}, e.prototype.put = function (e, t) {var n = localStorage.setItem(e, JSON.stringify(t));JSON.stringify(n);}, e.prototype.remove = function (e) {localStorage.removeItem(e);}, e.prototype.support = function () {return !("undefined" == typeof localStorage || !localStorage.setItem);}, e;}(),a = function () {function e() {}return e.prototype.get = function (e) {var t = uni.getStorageSync(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {uni.setStorageSync(e, JSON.stringify(t));}, e.prototype.remove = function (e) {uni.removeStorageSync(e);}, e.prototype.support = function () {return !("object" != typeof uni || !uni.getStorageSync);}, e;}(),u = function () {function e() {}return e.prototype.get = function (e) {var t = wx.getStorageSync(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {wx.setStorageSync(e, JSON.stringify(t));}, e.prototype.remove = function (e) {wx.removeStorageSync(e);}, e.prototype.support = function () {return !("object" != typeof wx || !wx.getStorageSync);}, e;}(),c = (function () {function e() {}e.prototype.get = function (e) {var t = my.getStorageSync(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {my.setStorageSync(e, JSON.stringify(t));}, e.prototype.remove = function (e) {my.removeStorageSync(e);}, e.prototype.support = function () {return !("undefined" == typeof my || !my.getStorageSync);};}(), function () {function e() {}e.prototype.get = function (e) {var t = qq.getStorageSync(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {qq.setStorageSync(e, JSON.stringify(t));}, e.prototype.remove = function (e) {qq.removeStorageSync(e);}, e.prototype.support = function () {return !("undefined" == typeof qq || !qq.getStorageSync);};}(), function () {function e() {}e.prototype.get = function (e) {var t = tt.getStorageSync(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {tt.setStorageSync(e, JSON.stringify(t));}, e.prototype.remove = function (e) {tt.removeStorageSync(e);}, e.prototype.support = function () {return !("object" != typeof tt || !tt.getStorageSync);};}(), function () {function e() {}e.prototype.get = function (e) {var t = swan.getStorageSync(e) || null;return JSON.parse(t);}, e.prototype.put = function (e, t) {swan.setStorageSync(e, JSON.stringify(t));}, e.prototype.remove = function (e) {swan.removeStorageSync(e);}, e.prototype.support = function () {return !("undefined" == typeof swan || !swan.getStorageSync);};}(), function () {function e() {this.api = e.dispatch(), this.api;}e.dispatch = function () {var e = new s(),t = new i();return e.support() ? e : t;}, e.prototype.get = function (e) {return this.api.get(e);}, e.prototype.put = function (e, t) {this.api.put(e, t);}, e.prototype.remove = function (e) {this.api.remove(e);}, e.prototype.support = function () {return "undefined" != typeof localStorage;};}(), function () {function e() {this.supportedStorage = null;var t = e.storages;t.push(new a()), t.push(new s()), t.push(new u()), t.push(new i()), this.dispatch(), this.supportedStorage;}return e.localStorage = function () {return this.instance.supportedStorage;}, e.prototype.dispatch = function () {var t, n;try {for (var r = o(e.storages), i = r.next(); !i.done; i = r.next()) {var s = i.value;if (s.support()) {this.supportedStorage = s;break;}}} catch (a) {t = { error: a };} finally {try {i && !i.done && (n = r["return"]) && n.call(r);} finally {if (t) throw t.error;}}}, e.storages = new Array(), e.instance = new e(), e;}());t.LocalStorageDispatcher = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.Conversion = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(23),s = n(11),a = n(16),u = (o = a) && o.__esModule ? o : { "default": o };t.Conversion = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.type = "", this.lastMessage = null, this.unread = 0, this.top = !1, this.data = null, this.lc = 0, this.lm = 0;}return r(e, null, [{ key: "buildByInMessage", value: function value(t) {var n = new e();return n.data = {}, n.type = t.t, n.lastMessage = u["default"].assemble(t), n.lc = n.lastMessage.timestamp - 1, n.lm = n.lastMessage.timestamp, n.unread = 0, t.t == i.ConversationType.GROUP ? n.groupId = t.r : s.IM.userId == t.r ? n.userId = t.s : n.userId = t.r, n;} }, { key: "buildByOutMessage", value: function value(t, n, o, r) {var s = new e();return s.type = n, s.lastMessage = t, s.lm = s.lastMessage.timestamp, s.lc = s.lm, s.unread = 0, n == i.ConversationType.GROUP ? (s.groupId = o, s.lastMessage.groupId = o) : (s.userId = o, s.lastMessage.receiverId = o), s;} }, { key: "buildByConversation", value: function value(t, n) {var o = new e();o.type = n.t, n.lmsg.t = n.t, o.lastMessage = u["default"].assemble(n.lmsg), o.unread = 0, o.lc = n.lcts, o.lm = o.lastMessage.timestamp, o.top = n.top || !1;var r = n.d ? JSON.parse(n.d) : {};return o.data = r, n.t == i.ConversationType.GROUP ? (o.groupId = n.g, t.putGroupData(o.groupId, r)) : (o.userId = n.uid, t.putUserData(o.userId, r), s.IM.userId == n.lmsg.s ? o.lastMessage.senderData = s.IM.userData : o.lastMessage.senderData = r), o;} }]), e;}();}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = a(n(14)),i = a(n(2)),s = n(0);function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "validate", value: function value(e) {if (s.calibrator.isEmpty(e.text) || "" == e.text.trim()) throw Error("text is empty");} }, { key: "setType", value: function value(e) {this.type = i["default"].text;} }, { key: "setPayload", value: function value(e) {(function n(e, t, o) {null === e && (e = Function.prototype);var r = Object.getOwnPropertyDescriptor(e, t);if (r === undefined) {var i = Object.getPrototypeOf(e);return null === i ? undefined : n(i, t, o);}if ("value" in r) return r.value;var s = r.get;return s === undefined ? undefined : s.call(o);})(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e), this.payload.text = e.text;} }]), t;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var r = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return o(e, [{ key: "build", value: function value() {throw Error("Not implementation yet.");} }]), e;}();t["default"] = r;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = u(n(42)),i = u(n(2)),s = u(n(43)),a = u(n(40));function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function (e) {function t(e) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t);var n = function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));return n.im = null, n.goEasyUploader = new s["default"](e), n;}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, a["default"]), o(t, [{ key: "build", value: function value(e) {var t = this;return new Promise(function (n, o) {var i = new r["default"]();t.upload(e).then(function (t) {var o = t.content,r = o === undefined ? {} : o;(i = e.payload).url = r.url, i.name = r.newFileName, n(i);})["catch"](function (e) {o(e);});});} }, { key: "upload", value: function value(e) {var t = e.type == i["default"].video ? e.payload.video.name : e.payload.name;return this.goEasyUploader.upload(e.file, t, e.onProgress, e.type);} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = function o(e) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, o);};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(86),s = n(90),a = (o = s) && o.__esModule ? o : { "default": o };var u = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.requestBuilder = null, this.fileUploader = i.fileUploader, this.requestBuilder = new a["default"](t);}return r(e, [{ key: "upload", value: function value(e, t, n, o) {var r = this;return new Promise(function (i, s) {r.requestBuilder.build(e, t, o).then(function (e) {i(r.doUpload(e, n));})["catch"](function (e) {s(e);});});} }, { key: "customizeUpload", value: function value(e, t) {this.doUpload(e, t);} }, { key: "doUpload", value: function value(e, t) {return this.fileUploader.upload(e, t);} }]), e;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t["default"] = function o(e, t, n, r, i) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, o), this.host = "", this.headers = {}, this.parameters = {}, this.file = {}, this.payload = {}, this.host = e, this.headers = t, this.parameters = n, this.file = r, this.payload = i;};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var r = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return o(e, [{ key: "build", value: function value(e, t) {} }, { key: "newFileName", value: function value(e) {return e && e.newFilename || "";} }]), e;}();t["default"] = r;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.IM_INTERNAL_EVENTS = { IM_INTERNAL: "IM_INTERNAL_", MESSAGE_RECEIVED: "IM_INTERNAL_MESSAGE_RECEIVED" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = c(n(9)),i = c(n(1)),s = c(n(109)),a = c(n(110)),u = n(0);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.io = a["default"], this.status = r["default"].DISCONNECTED, this.permissions = [i["default"].NONE], this.emitter = null, this.connectedObservers = [], this.disconnectedObservers = [], this.emitter = new s["default"](this);}return o(e, [{ key: "connect", value: function value() {this.status = r["default"].CONNECTING;} }, { key: "emit", value: function value(e) {this.emitter.emit(e);} }, { key: "doEmit", value: function value(e, t, n) {} }, { key: "on", value: function value(e, t) {this.io.on(e, t);} }, { key: "disconnect", value: function value() {this.io.disconnect();} }, { key: "getStatus", value: function value() {return this.status;} }, { key: "addConnectedObserver", value: function value(e) {u.calibrator.isFunction(e) && this.connectedObservers.push(e);} }, { key: "addDisconnectedObserver", value: function value(e) {u.calibrator.isFunction(e) && this.disconnectedObservers.push(e);} }, { key: "notify", value: function value(e, t) {for (var n = 0; n < e.length; n++) {e[n](t);}} }]), e;}();t["default"] = l;}, function (e, t) {var n = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,o = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];e.exports = function (e) {var t = e,r = e.indexOf("["),i = e.indexOf("]");-1 != r && -1 != i && (e = e.substring(0, r) + e.substring(r, i).replace(/:/g, ";") + e.substring(i, e.length));for (var s = n.exec(e || ""), a = {}, u = 14; u--;) {a[o[u]] = s[u] || "";}return -1 != r && -1 != i && (a.source = t, a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, ":"), a.authority = a.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), a.ipv6uri = !0), a;};}, function (e, t) {var n = {}.toString;e.exports = Array.isArray || function (e) {return "[object Array]" == n.call(e);};}, function (e, t, n) {"use strict";var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {return typeof e;} : function (e) {return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;},r = n(112),i = n(56),s = n(12),a = n(28),u = n(57),c = n(58),l = (n(8)("socket.io-client:manager"), n(55)),f = n(128),p = n(36).GoEasyDomainNumber,d = Object.prototype.hasOwnProperty;function h(e, t) {if (!(this instanceof h)) return new h(e, t);e && "object" === (void 0 === e ? "undefined" : o(e)) && (t = e, e = undefined), (t = t || {}).path = t.path || "/socket.io", this.nsps = {}, this.subs = [], this.opts = t, this.reconnection(!1 !== t.reconnection), this.reconnectionAttempts(t.reconnectionAttempts || Infinity), this.reconnectionDelay(t.reconnectionDelay || 1e3), this.reconnectionDelayMax(t.reconnectionDelayMax || 5e3), this.randomizationFactor(t.randomizationFactor || .5), this.backoff = new f({ min: this.reconnectionDelay(), max: this.reconnectionDelayMax(), jitter: this.randomizationFactor() }), this.timeout(null == t.timeout ? 2e4 : t.timeout), this.readyState = "closed", this.uri = e, this.connecting = [], this.lastPing = null, this.encoding = !1, this.packetBuffer = [];var n = t.parser || a;this.encoder = new n.Encoder(), this.decoder = new n.Decoder(), this.autoConnect = !1 !== t.autoConnect, this.autoConnect && this.open();}function y() {var e = !1;return "object" === ("undefined" == typeof uni ? "undefined" : o(uni)) && uni.getSystemInfo && (e = !0), e && !0 === getApp().uniAppRunningBackend;}e.exports = h, h.prototype.emitAll = function () {for (var e in this.emit.apply(this, arguments), this.nsps) {d.call(this.nsps, e) && this.nsps[e].emit.apply(this.nsps[e], arguments);}}, h.prototype.updateSocketIds = function () {for (var e in this.nsps) {d.call(this.nsps, e) && (this.nsps[e].id = this.generateId(e));}}, h.prototype.generateId = function (e) {return ("/" === e ? "" : e + "#") + this.engine.id;}, s(h.prototype), h.prototype.reconnection = function (e) {return arguments.length ? (this._reconnection = !!e, this) : this._reconnection;}, h.prototype.reconnectionAttempts = function (e) {return arguments.length ? (this._reconnectionAttempts = e, this) : this._reconnectionAttempts;}, h.prototype.reconnectionDelay = function (e) {return arguments.length ? (this._reconnectionDelay = e, this.backoff && this.backoff.setMin(e), this) : this._reconnectionDelay;}, h.prototype.randomizationFactor = function (e) {return arguments.length ? (this._randomizationFactor = e, this.backoff && this.backoff.setJitter(e), this) : this._randomizationFactor;}, h.prototype.reconnectionDelayMax = function (e) {return arguments.length ? (this._reconnectionDelayMax = e, this.backoff && this.backoff.setMax(e), this) : this._reconnectionDelayMax;}, h.prototype.timeout = function (e) {return arguments.length ? (this._timeout = e, this) : this._timeout;}, h.prototype.maybeReconnectOnOpen = function () {!this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect();}, h.prototype.open = h.prototype.connect = function (e, t) {if (this.readyState, ~this.readyState.indexOf("open")) return this;this.uri, this.engine = r(this.uri, this.opts);var n = this.engine,o = this;this.readyState = "opening", this.skipReconnect = !1;var i = u(n, "open", function () {o.onopen(), e && e();}),s = u(n, "error", function (t) {if ("undefined" != typeof window) {var n = parseInt(o.uri.match(/[1-9][0-9]*/g)[0]),r = p.refreshNumber();o.uri = o.uri.replace(n, r);}if (o.cleanup(), o.readyState = "closed", o.emitAll("connect_error", t), e) {var i = new Error("Connection error");i.data = t, e(i);} else o.maybeReconnectOnOpen();});if (!1 !== this._timeout) {var a = this._timeout,c = setTimeout(function () {i.destroy(), n.close(), n.emit("error", "timeout"), o.emitAll("connect_timeout", a);}, a);this.subs.push({ destroy: function destroy() {clearTimeout(c);} });}return this.subs.push(i), this.subs.push(s), this;}, h.prototype.onopen = function () {this.cleanup(), this.readyState = "open", this.emit("open");var e = this.engine;this.subs.push(u(e, "data", c(this, "ondata"))), this.subs.push(u(e, "ping", c(this, "onping"))), this.subs.push(u(e, "pong", c(this, "onpong"))), this.subs.push(u(e, "error", c(this, "onerror"))), this.subs.push(u(e, "close", c(this, "onclose"))), this.subs.push(u(this.decoder, "decoded", c(this, "ondecoded")));}, h.prototype.onping = function () {this.lastPing = new Date(), this.emitAll("ping");}, h.prototype.onpong = function () {this.emitAll("pong", new Date() - this.lastPing);}, h.prototype.ondata = function (e) {this.decoder.add(e);}, h.prototype.ondecoded = function (e) {this.emit("packet", e);}, h.prototype.onerror = function (e) {this.emitAll("error", e);}, h.prototype.socket = function (e, t) {var n = this.nsps[e];if (!n) {n = new i(this, e, t), this.nsps[e] = n;var o = this;n.on("connecting", r), n.on("connect", function () {n.id = o.generateId(e);}), this.autoConnect && r();}function r() {~l(o.connecting, n) || o.connecting.push(n);}return n;}, h.prototype.destroy = function (e) {var t = l(this.connecting, e);~t && this.connecting.splice(t, 1), this.connecting.length || this.close();}, h.prototype.packet = function (e) {var t = this;e.query && 0 === e.type && (e.nsp += "?" + e.query), t.encoding ? t.packetBuffer.push(e) : (t.encoding = !0, this.encoder.encode(e, function (n) {for (var o = 0; o < n.length; o++) {t.engine.write(n[o], e.options);}t.encoding = !1, t.processPacketQueue();}));}, h.prototype.processPacketQueue = function () {if (this.packetBuffer.length > 0 && !this.encoding) {var e = this.packetBuffer.shift();this.packet(e);}}, h.prototype.cleanup = function () {for (var e = this.subs.length, t = 0; t < e; t++) {this.subs.shift().destroy();}this.packetBuffer = [], this.encoding = !1, this.lastPing = null, this.decoder.destroy();}, h.prototype.close = h.prototype.disconnect = function () {this.skipReconnect = !0, this.reconnecting = !1, "opening" === this.readyState && this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.engine && this.engine.close();}, h.prototype.onclose = function (e) {this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.emit("close", e), this._reconnection && !this.skipReconnect && this.reconnect();}, h.prototype.reconnect = function () {if (y(), this.reconnecting || this.skipReconnect) return this;var e = this;if (this.backoff.attempts >= this._reconnectionAttempts) this.backoff.reset(), this.emitAll("reconnect_failed"), this.reconnecting = !1;else {var t = this.backoff.duration();this.reconnecting = !0;var n = setTimeout(function () {e.skipReconnect || (e.emitAll("reconnect_attempt", e.backoff.attempts), e.emitAll("reconnecting", e.backoff.attempts), e.skipReconnect || (y() ? (e.reconnecting = !1, e.reconnect(), e.emitAll("reconnect_error", "Uniapp running backend, skipped reconnect...")) : e.open(function (t) {t ? (e.reconnecting = !1, e.reconnect(), e.emitAll("reconnect_error", t.data)) : e.onreconnect();})));}, t);this.subs.push({ destroy: function destroy() {clearTimeout(n);} });}}, h.prototype.onreconnect = function () {var e = this.backoff.attempts;this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll("reconnect", e);};}, function (e, t, n) {"use strict";var o = n(114),r = n(125);t.polling = function (e) {var t = !1,n = !1;e.jsonp;if ("undefined" != typeof location) {var r = "https:" === location.protocol,i = location.port;i || (i = r ? 443 : 80), t = e.hostname !== location.hostname || i !== e.port, n = e.secure !== r;}return e.xdomain = t, e.xscheme = n, new o(e);}, t.websocket = r;}, function (e, t, n) {(function (t) {var o = n(49),r = Object.prototype.toString,i = "function" == typeof Blob || "undefined" != typeof Blob && "[object BlobConstructor]" === r.call(Blob),s = "function" == typeof File || "undefined" != typeof File && "[object FileConstructor]" === r.call(File);e.exports = function a(e) {if (!e || "object" != typeof e) return !1;if (o(e)) {for (var n = 0, r = e.length; n < r; n++) {if (a(e[n])) return !0;}return !1;}if ("function" == typeof t && t.isBuffer && t.isBuffer(e) || "function" == typeof ArrayBuffer && e instanceof ArrayBuffer || i && e instanceof Blob || s && e instanceof File) return !0;if (e.toJSON && "function" == typeof e.toJSON && 1 === arguments.length) return a(e.toJSON(), !0);for (var u in e) {if (Object.prototype.hasOwnProperty.call(e, u) && a(e[u])) return !0;}return !1;};}).call(this, n(53).Buffer);}, function (e, t, n) {"use strict";(function (e) {
  2104. /*!
  2105. * The buffer module from node.js, for the browser.
  2106. *
  2107. * @author Feross Aboukhadijeh <http://feross.org>
  2108. * @license MIT
  2109. */
  2110. var o = n(117),r = n(118),i = n(119);function s() {return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;}function a(e, t) {if (s() < t) throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT ? (e = new Uint8Array(t)).__proto__ = u.prototype : (null === e && (e = new u(t)), e.length = t), e;}function u(e, t, n) {if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(e, t, n);if ("number" == typeof e) {if ("string" == typeof t) throw new Error("If encoding is specified then the first argument must be a string");return f(this, e);}return c(this, e, t, n);}function c(e, t, n, o) {if ("number" == typeof t) throw new TypeError('"value" argument must not be a number');return "undefined" != typeof ArrayBuffer && t instanceof ArrayBuffer ? function (e, t, n, o) {if (t.byteLength, n < 0 || t.byteLength < n) throw new RangeError("'offset' is out of bounds");if (t.byteLength < n + (o || 0)) throw new RangeError("'length' is out of bounds");t = n === undefined && o === undefined ? new Uint8Array(t) : o === undefined ? new Uint8Array(t, n) : new Uint8Array(t, n, o);u.TYPED_ARRAY_SUPPORT ? (e = t).__proto__ = u.prototype : e = p(e, t);return e;}(e, t, n, o) : "string" == typeof t ? function (e, t, n) {"string" == typeof n && "" !== n || (n = "utf8");if (!u.isEncoding(n)) throw new TypeError('"encoding" must be a valid string encoding');var o = 0 | h(t, n),r = (e = a(e, o)).write(t, n);r !== o && (e = e.slice(0, r));return e;}(e, t, n) : function (e, t) {if (u.isBuffer(t)) {var n = 0 | d(t.length);return 0 === (e = a(e, n)).length ? e : (t.copy(e, 0, 0, n), e);}if (t) {if ("undefined" != typeof ArrayBuffer && t.buffer instanceof ArrayBuffer || "length" in t) return "number" != typeof t.length || (o = t.length) != o ? a(e, 0) : p(e, t);if ("Buffer" === t.type && i(t.data)) return p(e, t.data);}var o;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");}(e, t);}function l(e) {if ("number" != typeof e) throw new TypeError('"size" argument must be a number');if (e < 0) throw new RangeError('"size" argument must not be negative');}function f(e, t) {if (l(t), e = a(e, t < 0 ? 0 : 0 | d(t)), !u.TYPED_ARRAY_SUPPORT) for (var n = 0; n < t; ++n) {e[n] = 0;}return e;}function p(e, t) {var n = t.length < 0 ? 0 : 0 | d(t.length);e = a(e, n);for (var o = 0; o < n; o += 1) {e[o] = 255 & t[o];}return e;}function d(e) {if (e >= s()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + s().toString(16) + " bytes");return 0 | e;}function h(e, t) {if (u.isBuffer(e)) return e.length;if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(e) || e instanceof ArrayBuffer)) return e.byteLength;"string" != typeof e && (e = "" + e);var n = e.length;if (0 === n) return 0;for (var o = !1;;) {switch (t) {case "ascii":case "latin1":case "binary":return n;case "utf8":case "utf-8":case undefined:return q(e).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return 2 * n;case "hex":return n >>> 1;case "base64":return L(e).length;default:if (o) return q(e).length;t = ("" + t).toLowerCase(), o = !0;}}}function y(e, t, n) {var o = e[t];e[t] = e[n], e[n] = o;}function v(e, t, n, o, r) {if (0 === e.length) return -1;if ("string" == typeof n ? (o = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), n = +n, isNaN(n) && (n = r ? 0 : e.length - 1), n < 0 && (n = e.length + n), n >= e.length) {if (r) return -1;n = e.length - 1;} else if (n < 0) {if (!r) return -1;n = 0;}if ("string" == typeof t && (t = u.from(t, o)), u.isBuffer(t)) return 0 === t.length ? -1 : b(e, t, n, o, r);if ("number" == typeof t) return t &= 255, u.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? r ? Uint8Array.prototype.indexOf.call(e, t, n) : Uint8Array.prototype.lastIndexOf.call(e, t, n) : b(e, [t], n, o, r);throw new TypeError("val must be string, number or Buffer");}function b(e, t, n, o, r) {var i,s = 1,a = e.length,u = t.length;if (o !== undefined && ("ucs2" === (o = String(o).toLowerCase()) || "ucs-2" === o || "utf16le" === o || "utf-16le" === o)) {if (e.length < 2 || t.length < 2) return -1;s = 2, a /= 2, u /= 2, n /= 2;}function c(e, t) {return 1 === s ? e[t] : e.readUInt16BE(t * s);}if (r) {var l = -1;for (i = n; i < a; i++) {if (c(e, i) === c(t, -1 === l ? 0 : i - l)) {if (-1 === l && (l = i), i - l + 1 === u) return l * s;} else -1 !== l && (i -= i - l), l = -1;}} else for (n + u > a && (n = a - u), i = n; i >= 0; i--) {for (var f = !0, p = 0; p < u; p++) {if (c(e, i + p) !== c(t, p)) {f = !1;break;}}if (f) return i;}return -1;}function m(e, t, n, o) {n = Number(n) || 0;var r = e.length - n;o ? (o = Number(o)) > r && (o = r) : o = r;var i = t.length;if (i % 2 != 0) throw new TypeError("Invalid hex string");o > i / 2 && (o = i / 2);for (var s = 0; s < o; ++s) {var a = parseInt(t.substr(2 * s, 2), 16);if (isNaN(a)) return s;e[n + s] = a;}return s;}function g(e, t, n, o) {return G(q(t, e.length - n), e, n, o);}function w(e, t, n, o) {return G(function (e) {for (var t = [], n = 0; n < e.length; ++n) {t.push(255 & e.charCodeAt(n));}return t;}(t), e, n, o);}function _(e, t, n, o) {return w(e, t, n, o);}function E(e, t, n, o) {return G(L(t), e, n, o);}function O(e, t, n, o) {return G(function (e, t) {for (var n, o, r, i = [], s = 0; s < e.length && !((t -= 2) < 0); ++s) {n = e.charCodeAt(s), o = n >> 8, r = n % 256, i.push(r), i.push(o);}return i;}(t, e.length - n), e, n, o);}function k(e, t, n) {return 0 === t && n === e.length ? o.fromByteArray(e) : o.fromByteArray(e.slice(t, n));}function S(e, t, n) {n = Math.min(e.length, n);for (var o = [], r = t; r < n;) {var i,s,a,u,c = e[r],l = null,f = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;if (r + f <= n) switch (f) {case 1:c < 128 && (l = c);break;case 2:128 == (192 & (i = e[r + 1])) && (u = (31 & c) << 6 | 63 & i) > 127 && (l = u);break;case 3:i = e[r + 1], s = e[r + 2], 128 == (192 & i) && 128 == (192 & s) && (u = (15 & c) << 12 | (63 & i) << 6 | 63 & s) > 2047 && (u < 55296 || u > 57343) && (l = u);break;case 4:i = e[r + 1], s = e[r + 2], a = e[r + 3], 128 == (192 & i) && 128 == (192 & s) && 128 == (192 & a) && (u = (15 & c) << 18 | (63 & i) << 12 | (63 & s) << 6 | 63 & a) > 65535 && u < 1114112 && (l = u);}null === l ? (l = 65533, f = 1) : l > 65535 && (l -= 65536, o.push(l >>> 10 & 1023 | 55296), l = 56320 | 1023 & l), o.push(l), r += f;}return function (e) {var t = e.length;if (t <= P) return String.fromCharCode.apply(String, e);var n = "",o = 0;for (; o < t;) {n += String.fromCharCode.apply(String, e.slice(o, o += P));}return n;}(o);}t.Buffer = u, t.SlowBuffer = function (e) {+e != e && (e = 0);return u.alloc(+e);}, t.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = e.TYPED_ARRAY_SUPPORT !== undefined ? e.TYPED_ARRAY_SUPPORT : function () {try {var e = new Uint8Array(1);return e.__proto__ = { __proto__: Uint8Array.prototype, foo: function foo() {return 42;} }, 42 === e.foo() && "function" == typeof e.subarray && 0 === e.subarray(1, 1).byteLength;} catch (t) {return !1;}}(), t.kMaxLength = s(), u.poolSize = 8192, u._augment = function (e) {return e.__proto__ = u.prototype, e;}, u.from = function (e, t, n) {return c(null, e, t, n);}, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, { value: null, configurable: !0 })), u.alloc = function (e, t, n) {return function (e, t, n, o) {return l(t), t <= 0 ? a(e, t) : n !== undefined ? "string" == typeof o ? a(e, t).fill(n, o) : a(e, t).fill(n) : a(e, t);}(null, e, t, n);}, u.allocUnsafe = function (e) {return f(null, e);}, u.allocUnsafeSlow = function (e) {return f(null, e);}, u.isBuffer = function (e) {return !(null == e || !e._isBuffer);}, u.compare = function (e, t) {if (!u.isBuffer(e) || !u.isBuffer(t)) throw new TypeError("Arguments must be Buffers");if (e === t) return 0;for (var n = e.length, o = t.length, r = 0, i = Math.min(n, o); r < i; ++r) {if (e[r] !== t[r]) {n = e[r], o = t[r];break;}}return n < o ? -1 : o < n ? 1 : 0;}, u.isEncoding = function (e) {switch (String(e).toLowerCase()) {case "hex":case "utf8":case "utf-8":case "ascii":case "latin1":case "binary":case "base64":case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return !0;default:return !1;}}, u.concat = function (e, t) {if (!i(e)) throw new TypeError('"list" argument must be an Array of Buffers');if (0 === e.length) return u.alloc(0);var n;if (t === undefined) for (t = 0, n = 0; n < e.length; ++n) {t += e[n].length;}var o = u.allocUnsafe(t),r = 0;for (n = 0; n < e.length; ++n) {var s = e[n];if (!u.isBuffer(s)) throw new TypeError('"list" argument must be an Array of Buffers');s.copy(o, r), r += s.length;}return o;}, u.byteLength = h, u.prototype._isBuffer = !0, u.prototype.swap16 = function () {var e = this.length;if (e % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits");for (var t = 0; t < e; t += 2) {y(this, t, t + 1);}return this;}, u.prototype.swap32 = function () {var e = this.length;if (e % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits");for (var t = 0; t < e; t += 4) {y(this, t, t + 3), y(this, t + 1, t + 2);}return this;}, u.prototype.swap64 = function () {var e = this.length;if (e % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits");for (var t = 0; t < e; t += 8) {y(this, t, t + 7), y(this, t + 1, t + 6), y(this, t + 2, t + 5), y(this, t + 3, t + 4);}return this;}, u.prototype.toString = function () {var e = 0 | this.length;return 0 === e ? "" : 0 === arguments.length ? S(this, 0, e) : function (e, t, n) {var o = !1;if ((t === undefined || t < 0) && (t = 0), t > this.length) return "";if ((n === undefined || n > this.length) && (n = this.length), n <= 0) return "";if ((n >>>= 0) <= (t >>>= 0)) return "";for (e || (e = "utf8");;) {switch (e) {case "hex":return I(this, t, n);case "utf8":case "utf-8":return S(this, t, n);case "ascii":return T(this, t, n);case "latin1":case "binary":return C(this, t, n);case "base64":return k(this, t, n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return N(this, t, n);default:if (o) throw new TypeError("Unknown encoding: " + e);e = (e + "").toLowerCase(), o = !0;}}}.apply(this, arguments);}, u.prototype.equals = function (e) {if (!u.isBuffer(e)) throw new TypeError("Argument must be a Buffer");return this === e || 0 === u.compare(this, e);}, u.prototype.inspect = function () {var e = "",n = t.INSPECT_MAX_BYTES;return this.length > 0 && (e = this.toString("hex", 0, n).match(/.{2}/g).join(" "), this.length > n && (e += " ... ")), "<Buffer " + e + ">";}, u.prototype.compare = function (e, t, n, o, r) {if (!u.isBuffer(e)) throw new TypeError("Argument must be a Buffer");if (t === undefined && (t = 0), n === undefined && (n = e ? e.length : 0), o === undefined && (o = 0), r === undefined && (r = this.length), t < 0 || n > e.length || o < 0 || r > this.length) throw new RangeError("out of range index");if (o >= r && t >= n) return 0;if (o >= r) return -1;if (t >= n) return 1;if (t >>>= 0, n >>>= 0, o >>>= 0, r >>>= 0, this === e) return 0;for (var i = r - o, s = n - t, a = Math.min(i, s), c = this.slice(o, r), l = e.slice(t, n), f = 0; f < a; ++f) {if (c[f] !== l[f]) {i = c[f], s = l[f];break;}}return i < s ? -1 : s < i ? 1 : 0;}, u.prototype.includes = function (e, t, n) {return -1 !== this.indexOf(e, t, n);}, u.prototype.indexOf = function (e, t, n) {return v(this, e, t, n, !0);}, u.prototype.lastIndexOf = function (e, t, n) {return v(this, e, t, n, !1);}, u.prototype.write = function (e, t, n, o) {if (t === undefined) o = "utf8", n = this.length, t = 0;else if (n === undefined && "string" == typeof t) o = t, n = this.length, t = 0;else {if (!isFinite(t)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t |= 0, isFinite(n) ? (n |= 0, o === undefined && (o = "utf8")) : (o = n, n = undefined);}var r = this.length - t;if ((n === undefined || n > r) && (n = r), e.length > 0 && (n < 0 || t < 0) || t > this.length) throw new RangeError("Attempt to write outside buffer bounds");o || (o = "utf8");for (var i = !1;;) {switch (o) {case "hex":return m(this, e, t, n);case "utf8":case "utf-8":return g(this, e, t, n);case "ascii":return w(this, e, t, n);case "latin1":case "binary":return _(this, e, t, n);case "base64":return E(this, e, t, n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return O(this, e, t, n);default:if (i) throw new TypeError("Unknown encoding: " + o);o = ("" + o).toLowerCase(), i = !0;}}}, u.prototype.toJSON = function () {return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };};var P = 4096;function T(e, t, n) {var o = "";n = Math.min(e.length, n);for (var r = t; r < n; ++r) {o += String.fromCharCode(127 & e[r]);}return o;}function C(e, t, n) {var o = "";n = Math.min(e.length, n);for (var r = t; r < n; ++r) {o += String.fromCharCode(e[r]);}return o;}function I(e, t, n) {var o = e.length;(!t || t < 0) && (t = 0), (!n || n < 0 || n > o) && (n = o);for (var r = "", i = t; i < n; ++i) {r += B(e[i]);}return r;}function N(e, t, n) {for (var o = e.slice(t, n), r = "", i = 0; i < o.length; i += 2) {r += String.fromCharCode(o[i] + 256 * o[i + 1]);}return r;}function j(e, t, n) {if (e % 1 != 0 || e < 0) throw new RangeError("offset is not uint");if (e + t > n) throw new RangeError("Trying to access beyond buffer length");}function M(e, t, n, o, r, i) {if (!u.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance');if (t > r || t < i) throw new RangeError('"value" argument is out of bounds');if (n + o > e.length) throw new RangeError("Index out of range");}function R(e, t, n, o) {t < 0 && (t = 65535 + t + 1);for (var r = 0, i = Math.min(e.length - n, 2); r < i; ++r) {e[n + r] = (t & 255 << 8 * (o ? r : 1 - r)) >>> 8 * (o ? r : 1 - r);}}function A(e, t, n, o) {t < 0 && (t = 4294967295 + t + 1);for (var r = 0, i = Math.min(e.length - n, 4); r < i; ++r) {e[n + r] = t >>> 8 * (o ? r : 3 - r) & 255;}}function D(e, t, n, o, r, i) {if (n + o > e.length) throw new RangeError("Index out of range");if (n < 0) throw new RangeError("Index out of range");}function F(e, t, n, o, i) {return i || D(e, 0, n, 4), r.write(e, t, n, o, 23, 4), n + 4;}function U(e, t, n, o, i) {return i || D(e, 0, n, 8), r.write(e, t, n, o, 52, 8), n + 8;}u.prototype.slice = function (e, t) {var n,o = this.length;if (e = ~~e, t = t === undefined ? o : ~~t, e < 0 ? (e += o) < 0 && (e = 0) : e > o && (e = o), t < 0 ? (t += o) < 0 && (t = 0) : t > o && (t = o), t < e && (t = e), u.TYPED_ARRAY_SUPPORT) (n = this.subarray(e, t)).__proto__ = u.prototype;else {var r = t - e;n = new u(r, undefined);for (var i = 0; i < r; ++i) {n[i] = this[i + e];}}return n;}, u.prototype.readUIntLE = function (e, t, n) {e |= 0, t |= 0, n || j(e, t, this.length);for (var o = this[e], r = 1, i = 0; ++i < t && (r *= 256);) {o += this[e + i] * r;}return o;}, u.prototype.readUIntBE = function (e, t, n) {e |= 0, t |= 0, n || j(e, t, this.length);for (var o = this[e + --t], r = 1; t > 0 && (r *= 256);) {o += this[e + --t] * r;}return o;}, u.prototype.readUInt8 = function (e, t) {return t || j(e, 1, this.length), this[e];}, u.prototype.readUInt16LE = function (e, t) {return t || j(e, 2, this.length), this[e] | this[e + 1] << 8;}, u.prototype.readUInt16BE = function (e, t) {return t || j(e, 2, this.length), this[e] << 8 | this[e + 1];}, u.prototype.readUInt32LE = function (e, t) {return t || j(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3];}, u.prototype.readUInt32BE = function (e, t) {return t || j(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]);}, u.prototype.readIntLE = function (e, t, n) {e |= 0, t |= 0, n || j(e, t, this.length);for (var o = this[e], r = 1, i = 0; ++i < t && (r *= 256);) {o += this[e + i] * r;}return o >= (r *= 128) && (o -= Math.pow(2, 8 * t)), o;}, u.prototype.readIntBE = function (e, t, n) {e |= 0, t |= 0, n || j(e, t, this.length);for (var o = t, r = 1, i = this[e + --o]; o > 0 && (r *= 256);) {i += this[e + --o] * r;}return i >= (r *= 128) && (i -= Math.pow(2, 8 * t)), i;}, u.prototype.readInt8 = function (e, t) {return t || j(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e];}, u.prototype.readInt16LE = function (e, t) {t || j(e, 2, this.length);var n = this[e] | this[e + 1] << 8;return 32768 & n ? 4294901760 | n : n;}, u.prototype.readInt16BE = function (e, t) {t || j(e, 2, this.length);var n = this[e + 1] | this[e] << 8;return 32768 & n ? 4294901760 | n : n;}, u.prototype.readInt32LE = function (e, t) {return t || j(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24;}, u.prototype.readInt32BE = function (e, t) {return t || j(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3];}, u.prototype.readFloatLE = function (e, t) {return t || j(e, 4, this.length), r.read(this, e, !0, 23, 4);}, u.prototype.readFloatBE = function (e, t) {return t || j(e, 4, this.length), r.read(this, e, !1, 23, 4);}, u.prototype.readDoubleLE = function (e, t) {return t || j(e, 8, this.length), r.read(this, e, !0, 52, 8);}, u.prototype.readDoubleBE = function (e, t) {return t || j(e, 8, this.length), r.read(this, e, !1, 52, 8);}, u.prototype.writeUIntLE = function (e, t, n, o) {(e = +e, t |= 0, n |= 0, o) || M(this, e, t, n, Math.pow(2, 8 * n) - 1, 0);var r = 1,i = 0;for (this[t] = 255 & e; ++i < n && (r *= 256);) {this[t + i] = e / r & 255;}return t + n;}, u.prototype.writeUIntBE = function (e, t, n, o) {(e = +e, t |= 0, n |= 0, o) || M(this, e, t, n, Math.pow(2, 8 * n) - 1, 0);var r = n - 1,i = 1;for (this[t + r] = 255 & e; --r >= 0 && (i *= 256);) {this[t + r] = e / i & 255;}return t + n;}, u.prototype.writeUInt8 = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), this[t] = 255 & e, t + 1;}, u.prototype.writeUInt16LE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : R(this, e, t, !0), t + 2;}, u.prototype.writeUInt16BE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : R(this, e, t, !1), t + 2;}, u.prototype.writeUInt32LE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[t + 3] = e >>> 24, this[t + 2] = e >>> 16, this[t + 1] = e >>> 8, this[t] = 255 & e) : A(this, e, t, !0), t + 4;}, u.prototype.writeUInt32BE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : A(this, e, t, !1), t + 4;}, u.prototype.writeIntLE = function (e, t, n, o) {if (e = +e, t |= 0, !o) {var r = Math.pow(2, 8 * n - 1);M(this, e, t, n, r - 1, -r);}var i = 0,s = 1,a = 0;for (this[t] = 255 & e; ++i < n && (s *= 256);) {e < 0 && 0 === a && 0 !== this[t + i - 1] && (a = 1), this[t + i] = (e / s >> 0) - a & 255;}return t + n;}, u.prototype.writeIntBE = function (e, t, n, o) {if (e = +e, t |= 0, !o) {var r = Math.pow(2, 8 * n - 1);M(this, e, t, n, r - 1, -r);}var i = n - 1,s = 1,a = 0;for (this[t + i] = 255 & e; --i >= 0 && (s *= 256);) {e < 0 && 0 === a && 0 !== this[t + i + 1] && (a = 1), this[t + i] = (e / s >> 0) - a & 255;}return t + n;}, u.prototype.writeInt8 = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), e < 0 && (e = 255 + e + 1), this[t] = 255 & e, t + 1;}, u.prototype.writeInt16LE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : R(this, e, t, !0), t + 2;}, u.prototype.writeInt16BE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : R(this, e, t, !1), t + 2;}, u.prototype.writeInt32LE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8, this[t + 2] = e >>> 16, this[t + 3] = e >>> 24) : A(this, e, t, !0), t + 4;}, u.prototype.writeInt32BE = function (e, t, n) {return e = +e, t |= 0, n || M(this, e, t, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), u.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : A(this, e, t, !1), t + 4;}, u.prototype.writeFloatLE = function (e, t, n) {return F(this, e, t, !0, n);}, u.prototype.writeFloatBE = function (e, t, n) {return F(this, e, t, !1, n);}, u.prototype.writeDoubleLE = function (e, t, n) {return U(this, e, t, !0, n);}, u.prototype.writeDoubleBE = function (e, t, n) {return U(this, e, t, !1, n);}, u.prototype.copy = function (e, t, n, o) {if (n || (n = 0), o || 0 === o || (o = this.length), t >= e.length && (t = e.length), t || (t = 0), o > 0 && o < n && (o = n), o === n) return 0;if (0 === e.length || 0 === this.length) return 0;if (t < 0) throw new RangeError("targetStart out of bounds");if (n < 0 || n >= this.length) throw new RangeError("sourceStart out of bounds");if (o < 0) throw new RangeError("sourceEnd out of bounds");o > this.length && (o = this.length), e.length - t < o - n && (o = e.length - t + n);var r,i = o - n;if (this === e && n < t && t < o) for (r = i - 1; r >= 0; --r) {e[r + t] = this[r + n];} else if (i < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (r = 0; r < i; ++r) {e[r + t] = this[r + n];} else Uint8Array.prototype.set.call(e, this.subarray(n, n + i), t);return i;}, u.prototype.fill = function (e, t, n, o) {if ("string" == typeof e) {if ("string" == typeof t ? (o = t, t = 0, n = this.length) : "string" == typeof n && (o = n, n = this.length), 1 === e.length) {var r = e.charCodeAt(0);r < 256 && (e = r);}if (o !== undefined && "string" != typeof o) throw new TypeError("encoding must be a string");if ("string" == typeof o && !u.isEncoding(o)) throw new TypeError("Unknown encoding: " + o);} else "number" == typeof e && (e &= 255);if (t < 0 || this.length < t || this.length < n) throw new RangeError("Out of range index");if (n <= t) return this;var i;if (t >>>= 0, n = n === undefined ? this.length : n >>> 0, e || (e = 0), "number" == typeof e) for (i = t; i < n; ++i) {this[i] = e;} else {var s = u.isBuffer(e) ? e : q(new u(e, o).toString()),a = s.length;for (i = 0; i < n - t; ++i) {this[i + t] = s[i % a];}}return this;};var x = /[^+\/0-9A-Za-z-_]/g;function B(e) {return e < 16 ? "0" + e.toString(16) : e.toString(16);}function q(e, t) {var n;t = t || Infinity;for (var o = e.length, r = null, i = [], s = 0; s < o; ++s) {if ((n = e.charCodeAt(s)) > 55295 && n < 57344) {if (!r) {if (n > 56319) {(t -= 3) > -1 && i.push(239, 191, 189);continue;}if (s + 1 === o) {(t -= 3) > -1 && i.push(239, 191, 189);continue;}r = n;continue;}if (n < 56320) {(t -= 3) > -1 && i.push(239, 191, 189), r = n;continue;}n = 65536 + (r - 55296 << 10 | n - 56320);} else r && (t -= 3) > -1 && i.push(239, 191, 189);if (r = null, n < 128) {if ((t -= 1) < 0) break;i.push(n);} else if (n < 2048) {if ((t -= 2) < 0) break;i.push(n >> 6 | 192, 63 & n | 128);} else if (n < 65536) {if ((t -= 3) < 0) break;i.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128);} else {if (!(n < 1114112)) throw new Error("Invalid code point");if ((t -= 4) < 0) break;i.push(n >> 18 | 240, n >> 12 & 63 | 128, n >> 6 & 63 | 128, 63 & n | 128);}}return i;}function L(e) {return o.toByteArray(function (e) {if ((e = function (e) {return e.trim ? e.trim() : e.replace(/^\s+|\s+$/g, "");}(e).replace(x, "")).length < 2) return "";for (; e.length % 4 != 0;) {e += "=";}return e;}(e));}function G(e, t, n, o) {for (var r = 0; r < o && !(r + n >= t.length || r >= e.length); ++r) {t[r + n] = e[r];}return r;}}).call(this, n(25));}, function (e, t, n) {"use strict";var o,r = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),i = 64,s = {},a = 0,u = 0;function c(e) {var t = "";do {t = r[e % i] + t, e = Math.floor(e / i);} while (e > 0);return t;}function l() {var e = c(+new Date());return e !== o ? (a = 0, o = e) : e + "." + c(a++);}for (; u < i; u++) {s[r[u]] = u;}l.encode = c, l.decode = function (e) {var t = 0;for (u = 0; u < e.length; u++) {t = t * i + s[e.charAt(u)];}return t;}, e.exports = l;}, function (e, t) {var n = [].indexOf;e.exports = function (e, t) {if (n) return e.indexOf(t);for (var o = 0; o < e.length; ++o) {if (e[o] === t) return o;}return -1;};}, function (e, t, n) {"use strict";var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {return typeof e;} : function (e) {return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;},r = n(28),i = n(12),s = n(127),a = n(57),u = n(58),c = (n(8)("socket.io-client:socket"), n(22)),l = n(52);e.exports = d;var f = { connect: 1, connect_error: 1, connect_timeout: 1, connecting: 1, disconnect: 1, error: 1, reconnect: 1, reconnect_attempt: 1, reconnect_failed: 1, reconnect_error: 1, reconnecting: 1, ping: 1, pong: 1 },p = i.prototype.emit;function d(e, t, n) {this.io = e, this.nsp = t, this.json = this, this.ids = 0, this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0, this.flags = {}, n && n.query && (this.query = n.query), this.io.autoConnect && this.open();}i(d.prototype), d.prototype.subEvents = function () {if (!this.subs) {var e = this.io;this.subs = [a(e, "open", u(this, "onopen")), a(e, "packet", u(this, "onpacket")), a(e, "close", u(this, "onclose"))];}}, d.prototype.open = d.prototype.connect = function () {return this.connected ? this : (this.subEvents(), this.io.open(), "open" === this.io.readyState && this.onopen(), this.emit("connecting"), this);}, d.prototype.send = function () {var e = s(arguments);return e.unshift("message"), this.emit.apply(this, e), this;}, d.prototype.emit = function (e) {if (f.hasOwnProperty(e)) return p.apply(this, arguments), this;var t = s(arguments),n = { type: (this.flags.binary !== undefined ? this.flags.binary : l(t)) ? r.BINARY_EVENT : r.EVENT, data: t, options: {} };return n.options.compress = !this.flags || !1 !== this.flags.compress, "function" == typeof t[t.length - 1] && (this.ids, this.acks[this.ids] = t.pop(), n.id = this.ids++), this.connected ? this.packet(n) : this.sendBuffer.push(n), this.flags = {}, this;}, d.prototype.packet = function (e) {e.nsp = this.nsp, this.io.packet(e);}, d.prototype.onopen = function () {if ("/" !== this.nsp) if (this.query) {var e = "object" === o(this.query) ? c.encode(this.query) : this.query;this.packet({ type: r.CONNECT, query: e });} else this.packet({ type: r.CONNECT });}, d.prototype.onclose = function (e) {this.connected = !1, this.disconnected = !0, delete this.id, this.emit("disconnect", e);}, d.prototype.onpacket = function (e) {var t = e.nsp === this.nsp,n = e.type === r.ERROR && "/" === e.nsp;if (t || n) switch (e.type) {case r.CONNECT:this.onconnect();break;case r.EVENT:case r.BINARY_EVENT:this.onevent(e);break;case r.ACK:case r.BINARY_ACK:this.onack(e);break;case r.DISCONNECT:this.ondisconnect();break;case r.ERROR:this.emit("error", e.data);}}, d.prototype.onevent = function (e) {var t = e.data || [];null != e.id && t.push(this.ack(e.id)), this.connected ? p.apply(this, t) : this.receiveBuffer.push(t);}, d.prototype.ack = function (e) {var t = this,n = !1;return function () {if (!n) {n = !0;var o = s(arguments);t.packet({ type: l(o) ? r.BINARY_ACK : r.ACK, id: e, data: o });}};}, d.prototype.onack = function (e) {var t = this.acks[e.id];"function" == typeof t ? (e.id, e.data, t.apply(this, e.data), delete this.acks[e.id]) : e.id;}, d.prototype.onconnect = function () {this.connected = !0, this.disconnected = !1, this.emit("connect"), this.emitBuffered();}, d.prototype.emitBuffered = function () {var e;for (e = 0; e < this.receiveBuffer.length; e++) {p.apply(this, this.receiveBuffer[e]);}for (this.receiveBuffer = [], e = 0; e < this.sendBuffer.length; e++) {this.packet(this.sendBuffer[e]);}this.sendBuffer = [];}, d.prototype.ondisconnect = function () {this.nsp, this.destroy(), this.onclose("io server disconnect");}, d.prototype.destroy = function () {if (this.subs) {for (var e = 0; e < this.subs.length; e++) {this.subs[e].destroy();}this.subs = null;}this.io.destroy(this);}, d.prototype.close = d.prototype.disconnect = function () {return this.connected && (this.nsp, this.packet({ type: r.DISCONNECT })), this.destroy(), this.connected && this.onclose("io client disconnect"), this;}, d.prototype.compress = function (e) {return this.flags.compress = e, this;}, d.prototype.binary = function (e) {return this.flags.binary = e, this;};}, function (e, t, n) {"use strict";e.exports = function (e, t, n) {return e.on(t, n), { destroy: function destroy() {e.removeListener(t, n);} };};}, function (e, t) {var n = [].slice;e.exports = function (e, t) {if ("string" == typeof t && (t = e[t]), "function" != typeof t) throw new Error("bind() requires a function");var o = n.call(arguments, 2);return function () {return t.apply(e, o.concat(n.call(arguments)));};};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.uniApp = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(15);var i = new (function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.overrided = !1;}return o(e, [{ key: "overrideUniShowHideMethods", value: function value() {if (r.FrameworkDetector.currentFramework() === r.Framework.UNIAPP && !this.overrided && getApp() && "undefined" != typeof getApp().$options) {this.overrided = !0;var e = getApp().$options;if ("undefined" != typeof e.onShow) {var t = e.onShow[0];e.onShow[0] = function () {getApp().uniAppRunningBackend = !1, t && t.call(e);};}if ("undefined" != typeof e.onHide) {var n = e.onHide[0];e.onHide[0] = function () {getApp().uniAppRunningBackend = !0, n && n.call(e);};}}} }, { key: "runningBackend", value: function value() {return getApp().uniAppRunningBackend;} }]), e;}())();t.uniApp = i;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.PUBSUB_INTERNAL_EVENTS = { MESSAGE_RECEIVED: "PUBSUB_INTERNAL_MESSAGE_RECEIVED" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.UUID = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(62),s = (o = i) && o.__esModule ? o : { "default": o };var a = function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return r(e, null, [{ key: "get", value: function value() {return (0, s["default"])().replace(/-/g, "");} }]), e;}();t.UUID = a;}, function (e, t, n) {var o,r,i = n(63),s = n(64),a = 0,u = 0;e.exports = function (e, t, n) {var c = t && n || 0,l = t || [],f = (e = e || {}).node || o,p = e.clockseq !== undefined ? e.clockseq : r;if (null == f || null == p) {var d = i();null == f && (f = o = [1 | d[0], d[1], d[2], d[3], d[4], d[5]]), null == p && (p = r = 16383 & (d[6] << 8 | d[7]));}var h = e.msecs !== undefined ? e.msecs : new Date().getTime(),y = e.nsecs !== undefined ? e.nsecs : u + 1,v = h - a + (y - u) / 1e4;if (v < 0 && e.clockseq === undefined && (p = p + 1 & 16383), (v < 0 || h > a) && e.nsecs === undefined && (y = 0), y >= 1e4) throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a = h, u = y, r = p;var b = (1e4 * (268435455 & (h += 122192928e5)) + y) % 4294967296;l[c++] = b >>> 24 & 255, l[c++] = b >>> 16 & 255, l[c++] = b >>> 8 & 255, l[c++] = 255 & b;var m = h / 4294967296 * 1e4 & 268435455;l[c++] = m >>> 8 & 255, l[c++] = 255 & m, l[c++] = m >>> 24 & 15 | 16, l[c++] = m >>> 16 & 255, l[c++] = p >>> 8 | 128, l[c++] = 255 & p;for (var g = 0; g < 6; ++g) {l[c + g] = f[g];}return t || s(l);};}, function (e, t) {var n = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto);if (n) {var o = new Uint8Array(16);e.exports = function () {return n(o), o;};} else {var r = new Array(16);e.exports = function () {for (var e, t = 0; t < 16; t++) {0 == (3 & t) && (e = 4294967296 * Math.random()), r[t] = e >>> ((3 & t) << 3) & 255;}return r;};}}, function (e, t) {for (var n = [], o = 0; o < 256; ++o) {n[o] = (o + 256).toString(16).substr(1);}e.exports = function (e, t) {var o = t || 0,r = n;return [r[e[o++]], r[e[o++]], r[e[o++]], r[e[o++]], "-", r[e[o++]], r[e[o++]], "-", r[e[o++]], r[e[o++]], "-", r[e[o++]], r[e[o++]], "-", r[e[o++]], r[e[o++]], r[e[o++]], r[e[o++]], r[e[o++]], r[e[o++]]].join("");};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var r = new (function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, Array), o(t, [{ key: "deleteByKey", value: function value(e, t, n) {var o = e.findIndex(function (e) {return e[t] == n;});o > -1 && e.splice(o, 1);} }, { key: "unshiftGuid", value: function value(e) {var t = !1,n = this.findIndex(function (t) {return t == e;});for (n > -1 && (t = !0, this.splice(n, 1)), this.unshift(e); this.length > 300;) {this.pop();}return t;} }]), t;}())();t.goEasyArray = r;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t["default"] = { maxNumber: 5 };}, function (e, t, n) {"use strict";var o = this && this.__values || function (e) {var t = "function" == typeof Symbol && Symbol.iterator,n = t && e[t],o = 0;if (n) return n.call(e);if (e && "number" == typeof e.length) return { next: function next() {return e && o >= e.length && (e = void 0), { value: e && e[o++], done: !e };} };throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.");};t.__esModule = !0, t.Cookie = void 0;var r = function () {function e() {}return e.get = function (e) {var t,n,r = encodeURIComponent(e) + "=",i = document.cookie.split("; ");try {for (var s = o(i), a = s.next(); !a.done; a = s.next()) {var u = a.value;if (u.startsWith(r)) return decodeURIComponent(u.substring(r.length));}} catch (c) {t = { error: c };} finally {try {a && !a.done && (n = s["return"]) && n.call(s);} finally {if (t) throw t.error;}}return null;}, e.set = function (e, t, n, o, r, i) {void 0 === r && (r = "/"), void 0 === i && (i = !1);var s = encodeURIComponent(e) + "=" + encodeURIComponent(t);n instanceof Date && (s += "; expires=" + n.toGMTString()), r && (s += "; path=" + r), o && (s += "; domain=" + o), i && (s += "; secure"), document.cookie = s;}, e.remove = function (t, n, o, r) {void 0 === o && (o = "/"), void 0 === r && (r = !1), e.set(t, "", new Date(0), n, o, r);}, e;}();t.Cookie = r;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.messageCreator = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = g(n(18)),i = g(n(70)),s = g(n(71)),a = g(n(72)),u = g(n(20)),c = g(n(73)),l = g(n(74)),f = g(n(75)),p = g(n(76)),d = g(n(77)),h = g(n(78)),y = g(n(39)),v = g(n(21)),b = g(n(79)),m = n(15);function g(e) {return e && e.__esModule ? e : { "default": e };}function w(e, t, n) {return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e;}var _ = new (function () {function e() {var t;!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.messageTypes = (w(t = {}, m.Framework.NATIVE_APPLET_WX, { image: i["default"], file: r["default"], audio: s["default"], video: a["default"], text: y["default"] }), w(t, m.Framework.UNIAPP, { image: f["default"], file: u["default"], audio: c["default"], video: l["default"], text: y["default"] }), w(t, m.Framework.UNKNOWN, { image: p["default"], file: v["default"], audio: d["default"], video: h["default"], text: y["default"] }), t);}return o(e, [{ key: "create", value: function value(e, t) {var n = m.FrameworkDetector.currentFramework(),o = this.messageTypes[n][e];return o ? new o(t) : new b["default"](t);} }]), e;}())();t.messageCreator = _;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.str = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(35);var i = new (function () {function e() {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e);}return o(e, [{ key: "fileExtension", value: function value(e, t) {if (r.calibrator.isString(e)) try {var n = e.split(t);return n[n.length - 1];} catch (o) {throw Error(o);}} }]), e;}())();t.str = i;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function l(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : l(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = u(n(18)),s = u(n(2)),a = n(6);function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {if (r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e), !a.calibrator.isDef(e.file.tempFiles) || 0 == e.file.tempFiles[0].length) throw Error("tempFiles is empty.");} }, { key: "setType", value: function value(e) {this.type = s["default"].image;} }, { key: "setFile", value: function value(e) {var t = "chooseMedia:ok" == e.errMsg ? e.tempFiles[0].tempFilePath : e.tempFiles[0].path;e.tempFiles[0].path = t, this.file = e;} }, { key: "setPayload", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);var n = this,o = e.file.tempFiles[0],i = "chooseMedia:ok" == e.file.errMsg ? o.tempFilePath : o.path;this.payload.url = i, this.payload.size = o.size, this.payload.width = "", this.payload.height = "", this.payload.contentType = "";var s = a.calibrator.isEmpty(o.name) || o.name == undefined ? i : o.name;this.payload.name = "wx-image." + a.str.fileExtension(s, "."), this.payload.contentType = "image/" + a.str.fileExtension(s, "."), wx.getImageInfo({ src: i, success: function success(e) {n.payload.width = e.width, n.payload.height = e.height;} });} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function l(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : l(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = u(n(18)),s = u(n(2)),a = n(6);function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);} }, { key: "setType", value: function value(e) {this.type = s["default"].audio;} }, { key: "setPayload", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);var n = e.file.tempFilePath;this.payload.url = n, this.payload.duration = e.file.duration / 1e3, this.payload.size = e.file.fileSize;var o = a.calibrator.isEmpty(e.file.name) || e.file.name == undefined ? n : e.file.name;this.payload.contentType = "audio/" + a.str.fileExtension(o, "."), this.payload.name = "wx-audio." + a.str.fileExtension(o, ".");} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = u(n(18)),i = u(n(2)),s = n(0),a = n(6);function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "validate", value: function value(e) {(function n(e, t, o) {null === e && (e = Function.prototype);var r = Object.getOwnPropertyDescriptor(e, t);if (r === undefined) {var i = Object.getPrototypeOf(e);return null === i ? undefined : n(i, t, o);}if ("value" in r) return r.value;var s = r.get;return s === undefined ? undefined : s.call(o);})(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);} }, { key: "setType", value: function value(e) {this.type = i["default"].video;} }, { key: "setFile", value: function value(e) {this.file = "chooseMedia:ok" == e.errMsg ? e.tempFiles[0] : e;} }, { key: "setPayload", value: function value(e) {this.payload = Object.create(null);var t = Object.create(null),n = Object.create(null),o = "chooseMedia:ok" == e.file.errMsg ? e.file.tempFiles[0] : e.file,r = o.duration,i = o.height,u = o.size,c = o.tempFilePath,l = o.thumbTempFilePath,f = o.width,p = o.name,d = p === undefined ? "" : p,h = s.calibrator.isEmpty(d) ? c : d;t.contentType = "video/" + a.str.fileExtension(h, "."), t.name = "wx-video." + a.str.fileExtension(h, "."), t.url = c, t.width = n.width = f, t.height = n.height = i, t.size = u, t.duration = r, n.url = l, n.contentType = "image/jpg", n.name = "wx-thumbnail.jpg", this.payload.video = t, this.payload.thumbnail = n;} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function l(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : l(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = u(n(20)),s = u(n(2)),a = n(6);function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);} }, { key: "setType", value: function value(e) {this.type = s["default"].audio;} }, { key: "setPayload", value: function value(e) {var n = this;r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);var o = this,i = e.file.tempFilePath;this.payload.url = i;var s = a.calibrator.isEmpty(e.file.name) || e.file.name == undefined ? i : e.file.name;if (this.payload.contentType = "audio/" + a.str.fileExtension(s, "."), this.payload.name = "uni-audio." + a.str.fileExtension(s, "."), a.calibrator.isDef(e.file.duration)) this.payload.duration = e.file.duration / 1e3;else {this.payload.duration = 0;var u = uni.createInnerAudioContext();u.src = i, u.onCanplay(function (e) {o.payload.duration = u.duration, u.destroy();});}uni.getFileInfo({ filePath: i, success: function success(e) {n.payload.size = e.size;} });} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = a(n(20)),i = a(n(2)),s = n(6);function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "validate", value: function value(e) {(function n(e, t, o) {null === e && (e = Function.prototype);var r = Object.getOwnPropertyDescriptor(e, t);if (r === undefined) {var i = Object.getPrototypeOf(e);return null === i ? undefined : n(i, t, o);}if ("value" in r) return r.value;var s = r.get;return s === undefined ? undefined : s.call(o);})(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);} }, { key: "setType", value: function value(e) {this.type = i["default"].video;} }, { key: "setPayload", value: function value(e) {var t = Object.create(null),n = Object.create(null);this.payload = Object.create(null);var o = e.file,r = o.duration,i = o.height,a = o.size,u = o.tempFilePath,c = o.width,l = o.name,f = l === undefined ? "" : l,p = s.calibrator.isEmpty(f) ? u : f;t.contentType = "video/" + s.str.fileExtension(p, "."), t.name = "uni-video." + s.str.fileExtension(p, "."), t.size = a, t.duration = r, t.url = n.url = u, t.width = n.width = c, t.height = n.height = i, n.contentType = "image/jpg", n.name = "wx-thumbnail.jpg", this.payload.video = t, this.payload.thumbnail = n;} }]), t;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function l(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : l(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = u(n(20)),s = n(6),a = u(n(2));function u(e) {return e && e.__esModule ? e : { "default": e };}var c = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {if (r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e), !s.calibrator.isDef(e.file.tempFiles) || 0 == e.file.tempFiles[0].length) throw Error("tempFiles is empty.");} }, { key: "setType", value: function value(e) {this.type = a["default"].image;} }, { key: "setPayload", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);var n = this,o = e.file.tempFiles[0];this.payload.url = o.path, this.payload.size = o.size, this.payload.width = "", this.payload.height = "";var i = s.calibrator.isEmpty(o.name) || o.name == undefined ? o.path : o.name;this.payload.contentType = "image/" + s.str.fileExtension(i, "."), this.payload.name = "uni-image." + s.str.fileExtension(i, "."), uni.getImageInfo({ src: o.path, success: function success(e) {n.payload.width = e.width, n.payload.height = e.height;} });} }]), t;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function c(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : c(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = a(n(21)),s = a(n(2));function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);var n = ["gif", "jpg", "png", "jpeg"];if (!n.find(function (t) {return t == e.file.type.split("/")[1].toLowerCase();})) throw Error("Only " + n.join(",") + " is supported image.");} }, { key: "setType", value: function value(e) {this.type = s["default"].image;} }, { key: "setPayload", value: function value(e) {var n = this;r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);var o = window.URL || window.webkitURL,i = new Image();i.src = o.createObjectURL(e.file), i.onload = function () {n.payload.width = i.width, n.payload.height = i.height, o.revokeObjectURL(i.src);};} }]), t;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function c(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : c(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = a(n(21)),s = a(n(2));function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "validate", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);var n = ["mp3", "ogg", "wav", "wma", "ape", "acc", "mpeg"];if (!n.find(function (t) {return t == e.file.type.split("/")[1].toLowerCase();})) throw Error("Only " + n.join(",") + " is supported audio.");} }, { key: "setType", value: function value(e) {this.type = s["default"].audio;} }, { key: "setPayload", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "setPayload", this).call(this, e);var n = this,o = window.URL || window.webkitURL,i = document.createElement("audio");i.src = o.createObjectURL(e.file), i.onloadedmetadata = function () {n.payload.duration = i.duration, o.revokeObjectURL(i.src);};} }]), t;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = s(n(21)),i = s(n(2));function s(e) {return e && e.__esModule ? e : { "default": e };}var a = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "validate", value: function value(e) {(function o(e, t, n) {null === e && (e = Function.prototype);var r = Object.getOwnPropertyDescriptor(e, t);if (r === undefined) {var i = Object.getPrototypeOf(e);return null === i ? undefined : o(i, t, n);}if ("value" in r) return r.value;var s = r.get;return s === undefined ? undefined : s.call(n);})(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "validate", this).call(this, e);var n = ["avi", "mov", "rmvb", "rm", "flv", "mp4", "3gp", "quicktime"];if (!n.find(function (t) {return t == e.file.type.split("/")[1].toLowerCase();})) throw Error("Only " + n.join(",") + " is supported video.");} }, { key: "setType", value: function value(e) {this.type = i["default"].video;} }, { key: "setPayload", value: function value(e) {this.payload = Object.create(null);var t = Object.create(null),n = Object.create(null);t.contentType = e.file.type, t.size = e.file.size, t.duration = 0, t.url = n.url = "", t.name = e.file.name, t.width = n.width = 0, t.height = n.height = 0, n.contentType = "image/jpg", this.payload.video = t, this.payload.thumbnail = n;var o = this,r = window.URL || window.webkitURL,i = document.createElement("video"),s = r.createObjectURL(e.file);i.src = s, i.onloadedmetadata = function () {o.payload.video.duration = i.duration, o.payload.video.width = o.payload.thumbnail.width = i.videoWidth, o.payload.video.height = o.payload.thumbnail.height = i.videoHeight, o.payload.video.url = s, o.payload.thumbnail.url = function (e) {var t = document.createElement("canvas");return t.width = e.videoWidth, t.height = e.videoHeight, t.getContext("2d").drawImage(e, 0, 0, t.width, t.height), t.toDataURL("image/png");}(i), r.revokeObjectURL(i.src);};} }]), t;}();t["default"] = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(14),s = (o = i) && o.__esModule ? o : { "default": o },a = n(0);var u = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, s["default"]), r(t, [{ key: "setType", value: function value(e) {if (!a.calibrator.isStringOrNumber(e.type)) throw Error("type require a string or number.");if (a.calibrator.isEmpty(e.type)) throw Error("type is empty.");this.type = e.type;} }, { key: "setPayload", value: function value(e) {if (a.calibrator.isEmpty(e.payload)) throw Error("payload is empty.");if (!a.calibrator.isPlainObject(e.payload) && !a.calibrator.isStringOrNumber(e.payload)) throw Error("payload require object | string | number.");this.payload = e.payload;} }]), t;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = d(n(81)),i = d(n(3)),s = d(n(1)),a = n(5),u = d(n(19)),c = n(7),l = d(n(14)),f = n(0),p = n(4);function d(e) {return e && e.__esModule ? e : { "default": e };}var h = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.bulletMessageBuilder = null, this.im = t, this.bulletMessageBuilder = new r["default"](t);}return o(e, [{ key: "send", value: function value(e, t, n) {var o = this;return new Promise(function (r, c) {t.status === u["default"]["new"] ? (t.status = u["default"].sending, o.bulletMessageBuilder.build(e, t, n).then(function (e) {var n = new i["default"]({ name: a.EmitType.publishIM, params: e, permission: s["default"].WRITE, singleTimeout: p.SocketTimeout.commonRequestSingle, totalTimeout: p.SocketTimeout.commonRequestTotal, fail: function fail(e) {t.status = u["default"].fail, c({ code: e.resultCode || 408, content: e.content || "Failed to send private message." });}, success: function success(e) {t.status = u["default"].success, 200 == e.resultCode ? r({ code: 200, content: e.content }) : c(e);} });o.im._goEasySocket.emit(n);})["catch"](function (e) {c({ code: e.code || 400, content: e.content || e });})) : c({ code: 400, content: "Please create a new message, a message can only be sent once" });});} }, { key: "sendMessage", value: function value(e) {var t = this,n = this.im,o = e.message;return new Promise(function (r, d) {if (o instanceof l["default"]) {if (o.status === u["default"]["new"]) {o.status = u["default"].sending;var h = o.to;if (delete o.to, h) {if (!h.type || h.type != c.ConversationType.GROUP && h.type != c.ConversationType.PRIVATE) d({ code: 400, content: "message require property to.type" });else if (h.id) {if (h.data && f.calibrator.isFunction(h.data)) d({ code: 400, content: "to.data can not be function" });else {var y = o.notification;if (y) if (f.calibrator.isObject(y)) {if (f.calibrator.isEmpty(y.title)) return void d({ code: 400, content: "notification title is required" });if (!f.calibrator.isString(y.title)) return void d({ code: 400, content: "notification title must be string" });if (f.calibrator.isEmpty(o.notification.body)) return void d({ code: 400, content: "notification body is required" });if (!f.calibrator.isString(o.notification.body)) return void d({ code: 400, content: "notification body must be string" });} else if (f.calibrator.isPrimitive(o.notification)) return void d({ code: 400, content: "notification must be an json object" });h.data || (h.data = {}), n._conversations.updateByOutMessage(o, h.type, h.id, h.data), t.bulletMessageBuilder.build(h.id, o, h.type, e.accessToken).then(function (e) {e.d = JSON.stringify(h.data);var t = new i["default"]({ name: a.EmitType.publishIM, params: e, permission: s["default"].WRITE, singleTimeout: p.SocketTimeout.commonRequestSingle, totalTimeout: p.SocketTimeout.commonRequestTotal, fail: function fail(e) {o.status = u["default"].fail, d({ code: e.resultCode || 408, content: e.content || "Failed to send private message." });}, success: function success(e) {o.status = u["default"].success, o.timestamp = e.content.timestamp, r(o), n._conversations.updateByOutMessage(o, h.type, h.id, h.data);} });n._goEasySocket.emit(t);})["catch"](function (e) {o.status = u["default"].fail, d({ code: e.code || 400, content: e.content || e });});}} else d({ code: 400, content: "message require property to.id" });} else d({ code: 400, content: "message require property to." });} else d({ code: 400, content: "Please create a new message, a message can only be sent once" });} else d({ code: 400, content: "it is invalid message" });});} }]), e;}();t["default"] = h;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = s(n(82)),i = s(n(83));s(n(2));function s(e) {return e && e.__esModule ? e : { "default": e };}var a = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t;}return o(e, [{ key: "build", value: function value(e, t, n, o) {var s = this;return new Promise(function (a, u) {var c = new r["default"]({ to: e, message: t, conversationType: n, accessToken: o }),l = t.type;new i["default"](l, s.im).build(t).then(function (e) {c.p = JSON.stringify(e), a(c);})["catch"](function (e) {u(e);});});} }]), e;}();t["default"] = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(6),i = c(n(14)),s = c(n(39)),a = c(n(2)),u = n(11);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.mt = null, this.to = null, this.p = null, this.t = null, this.guid = null, this.nt = null, this.at = null, this.validate(t.to, t.message), this.mt = t.message.type, this.to = t.to, this.t = t.conversationType, this.guid = t.message.messageId, this.p = t.message.payload, this.nt = t.message.notification, this.at = t.accessToken;}return o(e, [{ key: "validate", value: function value(e, t) {if (!(t instanceof i["default"])) throw Error("createMessage first.");if (r.calibrator.isEmpty(e)) throw Error("userId is empty.");if (!r.calibrator.isStringOrNumber(e)) throw Error("userId should be a string or number.");if (u.IM.userId == e) throw Error("userId can not be the same as your id.");if (t.type == a["default"].text) {if (!(t instanceof s["default"])) throw Error("it is not textMessage");if (JSON.stringify(t.payload).length > 3072) throw Error("message-length limit 3kb");}} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = n(84),r = a(n(85)),i = a(n(41)),s = a(n(2));function a(e) {return e && e.__esModule ? e : { "default": e };}t["default"] = function u(e, t) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, u), e == s["default"].video ? new r["default"](t) : e == s["default"].audio || e == s["default"].image || e == s["default"].file ? new i["default"](t) : o.simplePayloadBuilder;};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.simplePayloadBuilder = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(40),s = (o = i) && o.__esModule ? o : { "default": o };var a = new (function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, s["default"]), r(t, [{ key: "build", value: function value(e) {return new Promise(function (t, n) {try {t(e.payload);} catch (o) {n(o);}});} }]), t;}())();t.simplePayloadBuilder = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = s(n(41)),i = s(n(42));function s(e) {return e && e.__esModule ? e : { "default": e };}var a = function (e) {function t(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "build", value: function value(e) {var t = this;return new Promise(function (n, o) {var r = new i["default"]();t.upload(e).then(function (t) {var o = t.content;undefined;r = e.payload;var i = "?x-oss-process=video/snapshot,t_0000,f_jpg,w_" + e.payload.video.width + ",m_fast,ar_auto";r.video.url = t.content.url, r.thumbnail.url = t.content.url + i, r.video.name = t.content.newFileName, n(r);})["catch"](function (e) {o(e);});});} }]), t;}();t["default"] = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.fileUploader = t.FileUploader = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(87),i = n(88),s = n(89),a = n(15);function u(e, t, n) {return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e;}var c = new (t.FileUploader = function () {function e() {var t;!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.uploader = (u(t = {}, a.Framework.UNIAPP, r.uniAppFileUploader), u(t, a.Framework.NATIVE_APPLET_WX, i.wxFileUploader), u(t, a.Framework.UNKNOWN, s.htmlFileUploader), t);}return o(e, [{ key: "upload", value: function value(e, t) {var n = a.FrameworkDetector.currentFramework();return this.uploader[n].upload(e, t);} }]), e;}())();t.fileUploader = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.uniAppFileUploader = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(26),s = (o = i) && o.__esModule ? o : { "default": o };var a = new (function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, s["default"]), r(t, [{ key: "upload", value: function value(e, t) {var n = this;try {return new Promise(function (o, r) {uni.uploadFile({ url: e.host, filePath: n.getTempFilePath(e), name: "file", formData: e.parameters, success: function success(t) {if (200 === t.statusCode) {var n = e.payload;n.message = t.errMsg, o({ code: 200, content: n });} else r({ code: t.statusCode, content: t.errMsg });}, fail: function fail(e) {r({ code: 500, content: e.errMsg });} }).onProgressUpdate(function (e) {t && t(e);});});} catch (o) {return new Promise(function (e, t) {t({ code: 500, content: o });});}} }, { key: "getTempFilePath", value: function value(e) {var t = e.file || e.fileRes;return Array.isArray(t.tempFiles) ? t.tempFiles[0].path : t.tempFilePath;} }]), t;}())();t.uniAppFileUploader = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.wxFileUploader = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(26),s = (o = i) && o.__esModule ? o : { "default": o };var a = new (function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, s["default"]), r(t, [{ key: "upload", value: function value(e, t) {var n = this;try {return new Promise(function (o, r) {wx.uploadFile({ url: e.host, filePath: n.getTempFilePath(e), name: "file", formData: e.parameters, success: function success(t) {if (200 === t.statusCode) {var n = e.payload;n.message = t.errMsg, o({ code: 200, content: n });} else r({ code: t.statusCode, content: t.errMsg });}, fail: function fail(e) {r({ code: 500, content: e.errMsg });} }).onProgressUpdate(function (e) {t && t(e);});});} catch (o) {return new Promise(function (e, t) {t({ code: 500, content: o });});}} }, { key: "getTempFilePath", value: function value(e) {var t = e.file || e.fileRes;return Array.isArray(t.tempFiles) ? t.tempFiles[0].path : t.tempFilePath;} }]), t;}())();t.wxFileUploader = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.htmlFileUploader = undefined;var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(26),s = (o = i) && o.__esModule ? o : { "default": o };var a = new (function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, s["default"]), r(t, [{ key: "upload", value: function value(e, t) {try {return new Promise(function (n, o) {var r = new XMLHttpRequest();for (var i in r.open("post", e.host, !0), e.headers) {r.setRequestHeader(i, e.headers[i]);}r.upload.onprogress = function (e) {t && t(e);}, r.upload.onloadstart = function (e) {t && t(e);}, r.upload.onloadend = function (e) {t && t(e);};var s = new FormData();for (var a in e.parameters) {"fileRes" == a ? s.append("file", e.parameters[a]) : s.append(a, e.parameters[a]);}r.send(s), r.onreadystatechange = function () {if (4 == r.readyState) if (r.status >= 200 && r.status < 300 || 304 == r.status) {var t = e.payload;t.message = r.responseText, n({ code: 200, content: t });} else o({ code: r.status, content: r.responseText });};});} catch (n) {return new Promise(function (e, t) {t({ code: 500, content: n });});}} }]), t;}())();t.htmlFileUploader = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = s(n(91)),i = s(n(95));function s(e) {return e && e.__esModule ? e : { "default": e };}var a = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.uploadTokenResolver = null, this.uploadTokenResolver = new i["default"](t);}return o(e, [{ key: "build", value: function value(e, t, n) {var o = this;return new Promise(function (i, s) {o.uploadTokenResolver.resolve(t).then(function (t) {var o = t.content;i(new r["default"](o.vendor).build(o, e, n));})["catch"](function (e) {s(e);});});} }]), e;}();t["default"] = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = n(92),r = n(93),i = n(94);t["default"] = function s(e) {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, s), e == o.OssType.aliYun ? r.aliYunOSSRequestBuilder : i.qiNiuYunOSSRequestBuilder;};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.OssType = { aliYun: "ALI", qiNiu: "QN" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.aliYunOSSRequestBuilder = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = a(n(44)),i = a(n(45)),s = a(n(2));function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "url", value: function value(e) {return e.host + "/" + e.dir + "/" + this.newFileName(e);} }, { key: "build", value: function value(e, t, n) {var o = { key: e.dir + "/" + this.newFileName(e), OSSAccessKeyId: e.accessKeyId, policy: e.policy, signature: e.signature, success_action_status: "200", fileRes: t };s["default"].file === n && (o = { key: e.dir + "/" + this.newFileName(e), OSSAccessKeyId: e.accessKeyId, policy: e.policy, signature: e.signature, success_action_status: "200", "Content-Disposition": "attachment;filename=" + t.name, fileRes: t });var i = { newFileName: this.newFileName(e), url: this.url(e) };return new r["default"](e.host, null, o, t, i);} }]), t;}();t["default"] = u;var c = new u();t.aliYunOSSRequestBuilder = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.qiNiuYunOSSRequestBuilder = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = s(n(45)),i = s(n(44));function s(e) {return e && e.__esModule ? e : { "default": e };}var a = new (function (e) {function t() {return function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t), function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "url", value: function value(e) {return e.downloadUrl;} }, { key: "build", value: function value(e, t) {var n = { key: this.newFileName(e), token: e.token, file: t },o = { newFileName: this.newFileName(e), url: this.url(e) };return new i["default"](e.host, null, n, t, o);} }]), t;}())();t.qiNiuYunOSSRequestBuilder = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = a(n(3)),i = a(n(1)),s = n(4);function a(e) {return e && e.__esModule ? e : { "default": e };}var u = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t;}return o(e, [{ key: "resolve", value: function value(e) {var t = this;return new Promise(function (n, o) {var a = new r["default"]({ name: "uploadToken", params: { filename: e }, permission: i["default"].WRITE, singleTimeout: s.SocketTimeout.commonRequestSingle, totalTimeout: s.SocketTimeout.commonRequestTotal, fail: function fail(e) {o(e);}, success: function success(e) {200 == e.code ? n(e) : o(e);} });t.im._goEasySocket.emit(a);});} }]), e;}();t["default"] = u;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(6),i = c(n(3)),s = c(n(1)),a = n(5),u = n(4);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t;}return o(e, [{ key: "history", value: function value(e) {var t = this;return new Promise(function (n, o) {t.transformOptions(e);var r = new i["default"]({ name: a.EmitType.imHistory, params: e, permission: s["default"].READ, singleTimeout: u.SocketTimeout.commonQuerySingle, totalTimeout: u.SocketTimeout.commonQueryTotal, fail: function fail(e) {o({ code: e.code || 408, content: e.content || "Failed to query message" });}, success: function success(r) {if (200 == r.code) {var i = t.transformHistories(r, e);n({ code: 200, content: i });} else o(r);} });t.im._goEasySocket.emit(r);});} }, { key: "transformOptions", value: function value(e) {if (!r.calibrator.isObject(e) || !r.calibrator.isDef(e.friendId) && !r.calibrator.isDef(e.groupId)) throw Error("friendId or groupId is not define.");if (r.calibrator.isDef(e.friendId) && r.calibrator.isDef(e.groupId)) throw Error("only contain friendId or groupId.");if (r.calibrator.isDef(e.limit) || (e.limit = 10), e.limit > 30 && (e.limit = 30), r.calibrator.isDef(e.friendId)) {if (!r.calibrator.isStringOrNumber(e.friendId)) throw Error("TypeError: friendId require string or number.");r.calibrator.isNumber(e.friendId) && (e.friendId = e.friendId.toString());} else {if (!r.calibrator.isStringOrNumber(e.groupId)) throw Error("TypeError: groupId require string or number.");r.calibrator.isNumber(e.groupId) && (e.groupId = e.groupId.toString());}return e;} }, { key: "transformHistories", value: function value(e, t) {var n = [];return e && e.content && e.content.map(function (e) {var o = Object.create(null);o.messageId = e.i, o.timestamp = e.ts, o.senderId = e.s, o.type = e.mt, o.payload = JSON.parse(e.p), t.groupId && e.d && (o.senderData = JSON.parse(e.d)), n.push(o);}), n;} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = p(n(3)),i = n(5),s = p(n(1)),a = n(4),u = n(7),c = p(n(16)),l = n(0),f = n(10);function p(e) {return e && e.__esModule ? e : { "default": e };}var d = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t, t._iMReceiver.addIMMessageObserver(this.newNewMessageReceived.bind(this));}return o(e, [{ key: "newNewMessageReceived", value: function value(e) {if (e.t === u.ConversationType.GROUP) {var t = c["default"].assemble(e);this.im._event.notify(f.ImEventType.GROUP_MESSAGE_RECEIVED, t);}} }, { key: "subscribe", value: function value(e) {var t = this,n = e.groupIds;return new Promise(function (o, u) {if (Array.isArray(n) && 0 != n.length) {for (var c = 0; c < n.length; c++) {if (!l.calibrator.isStringOrNumber(n[c])) return void u({ code: 400, content: "TypeError: groups item require string or number." });l.calibrator.isNumber(n[c]) && (n[c] = n[c].toString());}var f = new r["default"]({ name: i.EmitType.subscribeGroups, params: { groupIds: n, at: e.accessToken }, permission: s["default"].WRITE, singleTimeout: a.SocketTimeout.commonInfiniteSingle, totalTimeout: a.SocketTimeout.commonInfiniteTotal, success: function success() {o({ code: 200, content: "ok" });}, fail: function fail(e) {u({ code: e.resultCode || 408, content: e.content || "Failed to subscribe group message" });} });t.im._goEasySocket.emit(f);} else u({ code: 400, content: "TypeError: groups require array." });});} }, { key: "unsubscribe", value: function value(e) {var t = this;return new Promise(function (n, o) {if (l.calibrator.isStringOrNumber(e)) {e = e.toString();var u = new r["default"]({ name: i.EmitType.unsubscribeGroup, params: { groupId: e }, permission: s["default"].READ, singleTimeout: a.SocketTimeout.commonRequestSingle, totalTimeout: a.SocketTimeout.commonRequestTotal, success: function success() {n({ code: 200, content: "ok" });}, fail: function fail(e) {o({ code: e.resultCode || 408, content: e.content || "Failed to unsubscribe group message" });} });t.im._goEasySocket.emit(u);} else o({ code: 400, content: "TypeError: channel require string or number." });});} }]), e;}();t["default"] = d;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(16),s = (o = i) && o.__esModule ? o : { "default": o },a = n(7),u = n(10);var c = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t, t._iMReceiver.addIMMessageObserver(this.onNewMessageReceived.bind(this));}return r(e, [{ key: "onNewMessageReceived", value: function value(e) {if (e.t === a.ConversationType.PRIVATE) {var t = s["default"].assemble(e);this.im._event.notify(u.ImEventType.PRIVATE_MESSAGE_RECEIVED, t);}} }]), e;}();t["default"] = c;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = c(n(3)),i = n(5),s = c(n(1)),a = n(4),u = n(0);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t;}return o(e, [{ key: "get", value: function value(e) {var t = this;return new Promise(function (n, o) {if (u.calibrator.isStringOrNumber(e)) {u.calibrator.isNumber(e) && (e = e.toString());var c = new r["default"]({ name: i.EmitType.imGroupOnlineCount, params: { groupId: e }, permission: s["default"].READ, singleTimeout: a.SocketTimeout.commonQuerySingle, totalTimeout: a.SocketTimeout.commonQueryTotal, fail: function fail(e) {o(e || { code: 408, content: "Failed to query online group users" });}, success: function success(e) {200 == e.code ? n(e) : o(e);} });t.im._goEasySocket.emit(c);} else o({ code: 400, content: "TypeError: groupId require string or number." });});} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = f(n(3)),i = f(n(1)),s = n(4),a = n(5),u = n(0),c = n(10),l = f(n(17));function f(e) {return e && e.__esModule ? e : { "default": e };}var p = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t, t._goEasySocket.addMessageObserver(l["default"].groupPresence, this.newMessageReceived.bind(this));}return o(e, [{ key: "presence", value: function value(e) {var t = this;return new Promise(function (n, o) {if (Array.isArray(e) && 0 != e.length) {for (var r = 0; r < e.length; r++) {if (!u.calibrator.isStringOrNumber(e[r])) return void o({ code: 400, content: "TypeError: groupIds item require string or number." });if (u.calibrator.isNumber(e[r]) && (e[r] = e[r].toString()), 0 == e[r].length) return void o({ code: 400, content: "TypeError: groupIds has empty item." });}var i = { groupIds: e };t.emitRocket(a.EmitType.subscribeGroupPresence, i, function () {n({ code: 200, content: "ok" });}, function (e) {o({ code: e.code || 408, content: e.content || "Failed to subscribe group message" });}, s.SocketTimeout.commonInfiniteSingle, s.SocketTimeout.commonInfiniteTotal);} else o({ code: 400, content: "TypeError: groupIds require array." });});} }, { key: "unPresence", value: function value(e) {var t = this;return new Promise(function (n, o) {if (u.calibrator.isStringOrNumber(e)) {u.calibrator.isNumber(e) && (e = e.toString());var r = { groupId: e };t.emitRocket(a.EmitType.unsubscribeGroupPresence, r, function () {n({ code: 200, content: "ok" });}, function (e) {o({ code: e.code || 408, content: e.content || "Failed to unsubscribe presence" });}, s.SocketTimeout.commonRequestSingle, s.SocketTimeout.commonRequestTotal);} else o({ code: 400, content: "TypeError: groupId require string or number." });});} }, { key: "emitRocket", value: function value(e, t, n, o, s, a) {var u = new r["default"]({ name: e, params: t, singleTimeout: s, totalTimeout: a, permission: i["default"].WRITE, success: n, fail: o });this.im._goEasySocket.emit(u);} }, { key: "newMessageReceived", value: function value(e) {var t = this,n = null;e.c && (n = JSON.parse(e.c)), n && n.events && n.events.map(function (e) {var o = e.userData ? JSON.parse(e.userData) : {},r = { time: e.time, action: e.action, groupOnlineCount: n.userAmount, groupId: n.groupId, id: e.userId, data: o };t.im._event.notify(c.ImEventType.GROUP_PRESENCE, r);});} }]), e;}();t["default"] = p;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = f(n(3)),i = f(n(1)),s = n(4),a = n(5),u = n(0),c = n(10),l = f(n(17));function f(e) {return e && e.__esModule ? e : { "default": e };}var p = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t, this.im._goEasySocket.addMessageObserver(l["default"].userPresence, this.newMessageReceived.bind(this));}return o(e, [{ key: "presence", value: function value(e) {var t = this;return new Promise(function (n, o) {if (Array.isArray(e) && 0 != e.length) {for (var r = 0; r < e.length; r++) {if (!u.calibrator.isStringOrNumber(e[r])) return void o({ code: 400, content: "TypeError: userIds item require string or number." });if (u.calibrator.isNumber(e[r]) && (e[r] = e[r].toString()), 0 == e[r].length) return void o({ code: 400, content: "TypeError: userIds has empty item." });}var i = { userIds: e };t.emitRocket(a.EmitType.subscribeUserPresence, i, function () {n({ code: 200, content: "ok" });}, function (e) {o({ code: e.code || 408, content: e.content || "Failed to subscribe group message" });}, s.SocketTimeout.commonInfiniteSingle, s.SocketTimeout.commonInfiniteTotal);} else o({ code: 400, content: "TypeError: userIds require array." });});} }, { key: "unPresence", value: function value(e) {var t = this;return new Promise(function (n, o) {if (u.calibrator.isStringOrNumber(e)) {u.calibrator.isNumber(e) && (e = e.toString());var r = { userId: e };t.emitRocket(a.EmitType.unsubscribeUserPresence, r, function () {n({ code: 200, content: "ok" });}, function (e) {o({ code: e.code || 408, content: e.content || "Failed to unsubscribe presence" });}, s.SocketTimeout.commonRequestSingle, s.SocketTimeout.commonRequestTotal);} else o({ code: 400, content: "TypeError: id require string or number." });});} }, { key: "emitRocket", value: function value(e, t, n, o, s, a) {var u = new r["default"]({ name: e, params: t, singleTimeout: s, totalTimeout: a, permission: i["default"].WRITE, success: n, fail: o });this.im._goEasySocket.emit(u);} }, { key: "newMessageReceived", value: function value(e) {var t = this,n = [];e.c && (n = JSON.parse(e.c).events || []), n.map(function (e) {var n = e.userData ? JSON.parse(e.userData) : {},o = { time: e.time, action: e.action, id: e.userId, data: n };t.im._event.notify(c.ImEventType.USER_PRESENCE, o);});} }]), e;}();t["default"] = p;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(5),i = c(n(3)),s = c(n(1)),a = n(4),u = n(0);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t;}return o(e, [{ key: "hereNow", value: function value(e) {var t = this;return new Promise(function (n, o) {if (e.userIds && Array.isArray(e.userIds) && 0 != e.userIds.length) {for (var c = 0; c < e.userIds.length; c++) {if (!u.calibrator.isStringOrNumber(e.userIds[c])) return void o({ code: 400, content: "TypeError: userIds item require string or number." });if (u.calibrator.isNumber(e.userIds[c]) && (e.userIds[c] = e.userIds[c].toString()), 0 == e.userIds[c].length) return void o({ code: 400, content: "TypeError: userIds has empty item." });}var l = new i["default"]({ name: r.EmitType.imHereNow, params: e, permission: s["default"].READ, singleTimeout: a.SocketTimeout.commonQuerySingle, totalTimeout: a.SocketTimeout.commonQueryTotal, fail: function fail(e) {o({ code: e.resultCode || 408, content: e.content || "Failed to query online users" });}, success: function success(e) {if (200 == e.code) {var t = e.content;e.content = t.map(function (e) {var t = e.userData ? JSON.parse(e.userData) : {};return { id: e.userId, data: t };}), n(e);} else o(e);} });t.im._goEasySocket.emit(l);} else o({ code: 400, content: "TypeError: userIds require array." });});} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(5),i = c(n(3)),s = c(n(1)),a = n(4),u = n(6);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.im = t;}return o(e, [{ key: "hereNow", value: function value(e) {var t = this;return new Promise(function (n, o) {if (u.calibrator.isStringOrNumber(e)) {u.calibrator.isNumber(e) && (e = e.toString());var c = new i["default"]({ name: r.EmitType.imGroupHereNow, params: { groupId: e }, permission: s["default"].READ, singleTimeout: a.SocketTimeout.commonQuerySingle, totalTimeout: a.SocketTimeout.commonQueryTotal, fail: function fail(e) {o({ code: e.resultCode || 408, content: e.content || "Failed to query online group users" });}, success: function success(e) {if (200 == e.code) {var t = e.content;e.content = t.map(function (e) {var t = e.userData ? JSON.parse(e.userData) : {};return { id: e.userId, data: t };}), n(e);} else o(e);} });t.im._goEasySocket.emit(c);} else o({ code: 400, content: "TypeError: groupId require string or number." });});} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(17),s = (o = i) && o.__esModule ? o : { "default": o },a = n(46),u = n(27);var c = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.observers = [], this.im = t, t._goEasySocket.addMessageObserver(s["default"].imMessage, this.newNewMessageReceived.bind(this));}return r(e, [{ key: "newNewMessageReceived", value: function value(e) {this.sendAck(e), this.notify(e), u.GoEasyEventCenter.fire(a.IM_INTERNAL_EVENTS.MESSAGE_RECEIVED, e);} }, { key: "addIMMessageObserver", value: function value(e) {this.observers.push(e);} }, { key: "sendAck", value: function value(e) {this.im._goEasySocket.sendAck("imAck", { publishGuid: e.i });} }, { key: "notify", value: function value(e) {for (var t = 0; t < this.observers.length; t++) {this.observers[t](e);}} }]), e;}();t["default"] = c;}, function (e, t, n) {"use strict";t.__esModule = !0, t.EmitterEventDriver = void 0;var o = n(12),r = function () {function e() {this.emitter = new o();}return e.prototype.on = function (e, t) {return this.emitter.on(e, t), this;}, e.prototype.once = function (e, t) {return this.emitter.once(e, t), this;}, e.prototype.off = function (e, t) {return this.emitter.off(e, t), this;}, e.prototype.fire = function (e, t) {return this.emitter.emit(e, t), this;}, e;}();t.EmitterEventDriver = r;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = c(n(3)),i = n(5),s = c(n(1)),a = n(4),u = n(7);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t, n) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.userData = {}, this.groupData = {}, this.im = t, this.putUserData(n.id, n.data);}return o(e, [{ key: "putData", value: function value(e, t, n) {n || (n = {}), e == u.ConversationType.PRIVATE ? this.userData[t] = n : this.groupData[t] = n;} }, { key: "putUserData", value: function value(e, t) {this.userData[e] = t;} }, { key: "putGroupData", value: function value(e, t) {this.groupData[e] = t;} }, { key: "loadData", value: function value(e, t) {var n = this;return new Promise(function (o, c) {var l = void 0;if ((l = u.ConversationType.PRIVATE === t ? n.userData : n.groupData)[e] && 0 != Object.keys(l[e]).length) o(l[e]);else {var f = { targetId: e, type: t },p = new r["default"]({ name: i.EmitType.imData, params: f, permission: s["default"].READ, singleTimeout: a.SocketTimeout.commonQuerySingle, totalTimeout: a.SocketTimeout.commonQueryTotal, success: function success(t) {t.content ? l[e] = JSON.parse(t.content) : l[e] = {}, o(l[e]);}, fail: function fail(e) {c(e);} });n.im._goEasySocket.emit(p);}});} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 }), t.Conversations = undefined;var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(38),i = n(11),s = n(10),a = n(23),u = y(n(3)),c = y(n(1)),l = n(4),f = n(5),p = n(0),d = y(n(16)),h = y(n(19));function y(e) {return e && e.__esModule ? e : { "default": e };}t.Conversations = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.im = null, this.list = [], this.synchronized = !1, this.im = t, t._iMReceiver.addIMMessageObserver(this.updateByInMessage.bind(this));}return o(e, [{ key: "onUpdated", value: function value() {var e = this;this.latestConversations().then(function () {e.im._event.notify(s.ImEventType.CONVERSATIONS_UPDATED, { unreadTotal: e.getUnreadTotal(e.list), conversations: e.list.slice(0) });});} }, { key: "latestConversations", value: function value() {return this.synchronized ? this.loadLocalConversations() : this.loadServerConversations();} }, { key: "updateByInMessage", value: function value(e) {var t = this,n = null;n = e.t == a.ConversationType.GROUP ? e.r : i.IM.userId == e.r ? e.s : e.r;var o = this.list.findIndex(function (t) {return e.t == a.ConversationType.GROUP && n == t.groupId || e.t == a.ConversationType.PRIVATE && n == t.userId;}),s = void 0;function u(e) {e.type === a.ConversationType.PRIVATE && (i.IM.userId === e.lastMessage.senderId ? e.lastMessage.senderData = i.IM.userData : e.lastMessage.senderData = e.data);}o > -1 ? (s = this.list[o], this.list.splice(o, 1), s.lc < e.ts && (s.lastMessage = d["default"].assemble(e), s.lm = e.ts), i.IM.userId != e.senderId && (s.unread += 1), u(s), this.insertOne(s), this.onUpdated()) : (s = r.Conversion.buildByInMessage(e), i.IM.userId != e.senderId && (s.unread += 1), this.insertOne(s), this.im._dataCache.loadData(n, e.t).then(function (e) {s.data = e, u(s), t.onUpdated();})["catch"](function (t) {e.t;}));} }, { key: "updateByOutMessage", value: function value(e, t, n, o) {var s = {};Object.assign(s, e), delete s.file;var u = this.list.findIndex(function (e) {return e.type == a.ConversationType.GROUP && n == e.groupId || e.type == a.ConversationType.PRIVATE && n == e.userId;}),c = void 0;u > -1 ? (c = this.list[u], this.list.splice(u, 1), c.unread = 0, c.lc = c.lm, c.lastMessage = s, e.status === h["default"].success && (c.lc = e.timestamp, c.lm = e.timestamp)) : c = r.Conversion.buildByOutMessage(s, t, n, o), c.data = o;var l = this.im._dataCache;t === a.ConversationType.GROUP ? l.putGroupData(c.groupId, o) : (l.putUserData(c.userId, o), c.lastMessage.senderData = i.IM.userData), this.insertOne(c), this.onUpdated();} }, { key: "imLastConversations", value: function value(e, t) {var n = new u["default"]({ name: f.EmitType.imLastConversations, params: {}, permission: c["default"].READ, singleTimeout: l.SocketTimeout.commonQuerySingle, totalTimeout: l.SocketTimeout.commonQueryTotal, fail: t, success: e });this.im._goEasySocket.emit(n);} }, { key: "loadServerConversations", value: function value() {var e = this,t = this.im;return new Promise(function (n, o) {e.imLastConversations(function (i) {if (200 == i.code) {for (var s = i.content, u = function u(n, o) {var i = s[n],u = e.list.find(function (e) {return i.t == a.ConversationType.GROUP && i.g == e.groupId || i.t == a.ConversationType.PRIVATE && i.uid == e.userId;});p.calibrator.isDef(u) ? u.top = i.top : (u = r.Conversion.buildByConversation(t._dataCache, i), e.insertOne(u));}, c = 0, l = s.length; c < l; c++) {u(c);}e.synchronized = !0, n({ code: 200, content: { unreadTotal: e.getUnreadTotal(e.list), conversations: e.list.slice(0) } });} else o(i);}, function (e) {o({ code: e.resultCode, content: e.content });});});} }, { key: "loadLocalConversations", value: function value() {var e = this,t = [];return this.list.map(function (n) {if (!n.data) {var o = "private" == n.t ? n.userId : n.groupId,r = e.im._dataCache.loadData(o, n.t);r.then(function (e) {n.data = e;})["catch"](function (e) {n.type;}), t.push(r);}}), 0 != t.length ? new Promise(function (n, o) {Promise.all(t).then(function () {n({ code: 200, content: { unreadTotal: e.getUnreadTotal(e.list), conversations: e.list.slice(0) } });})["catch"](function (e) {o({ code: 408, content: e.message });});}) : Promise.resolve({ code: 200, content: { unreadTotal: this.getUnreadTotal(this.list), conversations: this.list } });} }, { key: "privateMarkAsRead", value: function value(e) {var t = this.list.find(function (t) {return t.userId == e;}),n = { friendId: e };return this.markAsRead(n, t);} }, { key: "groupMarkAsRead", value: function value(e) {var t = this.list.find(function (t) {return t.groupId === e;}),n = { groupId: e };return this.markAsRead(n, t);} }, { key: "markAsRead", value: function value(e, t) {var n = this;if (!t || t.unread <= 0) return Promise.resolve({ code: 200, content: "OK" });var o = t.unread,r = t.lm;return t.mt = r, e.lastTimestamp = r, e.lastConsumedTimestamp = t.lc, new Promise(function (i, s) {var u = t.type == a.ConversationType.PRIVATE ? f.EmitType.markPrivateMessageAsRead : f.EmitType.markGroupMessageAsRead;n.requestEmit(u, e, function (e) {200 == e.code ? (r === t.mt && n.resetConversation(t, t.lm, o), i({ code: 200, content: "OK" })) : s(e);}, function (e) {s(e || { code: e.code || 408, content: e.content || "Failed to query message" });});});} }, { key: "resetConversation", value: function value(e, t, n) {t <= e.lc || (e.unread -= n, e.lc = t, this.onUpdated());} }, { key: "getUnreadTotal", value: function value(e) {for (var t = 0, n = 0, o = e.length; n < o; n++) {t += e[n].unread;}return t;} }, { key: "insertOne", value: function value(e) {var t = this.getPosIndex(e);this.list.splice(t + 1, 0, e);} }, { key: "getPosIndex", value: function value(e) {if (0 == this.list.length) return -1;for (var t, n, o = 0, r = this.list.length; r - o > 1;) {t = Math.floor((o + r) / 2), n = this.list[t];var i = this.compares(e, n);if (0 == i) return t;i > 0 ? o = t : r = t;}return 0 == o && this.compares(this.list[0], e) > 0 ? -1 : o;} }, { key: "compares", value: function value(e, t) {var n = void 0;return (n = e.top == t.top ? t.lastMessage.timestamp - e.lastMessage.timestamp : e.top ? -1 : 1) > 0 ? 1 : 0 === n ? 0 : -1;} }, { key: "removeConversation", value: function value(e, t) {var n = this,o = t == a.ConversationType.PRIVATE ? "userId" : "groupId";return p.calibrator.isStringOrNumber(e) ? (p.calibrator.isNumber(e) && (e = e.toString()), -1 == this.findConversationIndex(t, e) ? Promise.reject({ code: 400, content: "Failed to remove conversation, " + o + " does not exists." }) : new Promise(function (o, r) {var i = { targetId: e, type: t };n.requestEmit(f.EmitType.removeConversation, i, function (i) {var s = n.findConversationIndex(t, e);s > -1 && n.list.splice(s, 1), n.onUpdated(), 200 == i.code ? o({}) : r({ code: i.code || 408, content: i.content || "Failed to remove conversation" });}, function (e) {r({ code: e.code || 408, content: e.content || "Failed to remove conversation" });});})) : Promise.reject({ code: 400, content: "Failed to remove conversation, " + o + " must be a string or integer." });} }, { key: "topConversation", value: function value(e, t, n) {var o = this,r = n == a.ConversationType.PRIVATE ? "userId" : "groupId";if (!p.calibrator.isStringOrNumber(e)) return Promise.reject({ code: 400, content: "Failed to top conversation, " + r + " must be a string or integer." });p.calibrator.isNumber(e) && (e = e.toString());var i = this.findConversationIndex(n, e);return -1 == i || this.list[i].top == t ? Promise.reject({ code: 400, content: "Failed to top conversation, " + r + " does not exists." }) : new Promise(function (r, i) {var s = { targetId: e, top: t, type: n };o.requestEmit(f.EmitType.topConversation, s, function () {var i = o.findConversationIndex(n, e),s = o.list[i];s.top = t, o.list.splice(i, 1), o.insertOne(s), o.onUpdated(), r({});}, function (e) {i({ code: e.code || 408, content: e.content || "Failed to top Conversation" });});});} }, { key: "requestEmit", value: function value(e, t, n, o) {var r = new u["default"]({ name: e, params: t, permission: c["default"].WRITE, singleTimeout: l.SocketTimeout.commonRequestSingle, totalTimeout: l.SocketTimeout.commonRequestTotal, success: n, fail: o });this.im._goEasySocket.emit(r);} }, { key: "findConversationIndex", value: function value(e, t) {return this.list.findIndex(function (n) {return e == a.ConversationType.PRIVATE ? n.type == e && n.userId == t : n.type == e && n.groupId == t;});} }]), e;}();}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = function _(e, t, n) {null === e && (e = Function.prototype);var o = Object.getOwnPropertyDescriptor(e, t);if (o === undefined) {var r = Object.getPrototypeOf(e);return null === r ? undefined : _(r, t, n);}if ("value" in o) return o.value;var i = o.get;return i === undefined ? undefined : i.call(n);},i = g(n(47)),s = n(5),a = g(n(129)),u = g(n(3)),c = g(n(1)),l = g(n(9)),f = g(n(130)),p = n(0),d = n(59),h = n(4),y = g(n(32)),v = n(31),b = n(131),m = n(132);function g(e) {return e && e.__esModule ? e : { "default": e };}var w = function (e) {function t(e, n) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t);var o = function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));return o.ioSocket = null, o.sid = null, o.appKey = null, o.anonymous = !1, o.userId = null, o.userData = null, o.otp = null, o.artifactVersion = "0.0.0", o.uri = null, o.ioOpts = null, o.allowNotification = !1, o.reconnectingTimes = 0, o.messageObservers = {}, o.connectFailedObservers = [], o.connectingObservers = [], o.expiredReconnectedObservers = [], o.onConnectSuccess = p.noop, o.onConnectFailed = p.noop, o.onConnectProgress = p.noop, o.setUriAndOpts(e), o.extendOptions(n), o.ioSocket = new a["default"]({ onDisconnected: o.onIoDisconnected.bind(o), onReconnecting: o.onIoReconnecting.bind(o) }), o.ioSocket.addConnectedObserver(o.onIoReconnected.bind(o)), o.appKey = e.appkey, o.allowNotification = e.allowNotification, o.modules = e.modules, p.calibrator.isEmpty(n.id) ? (o.anonymous = !0, o.userId = b.AnonymousUserIdRepository.get()) : o.userId = n.id, o.artifactVersion = y["default"].version, o.addConnectedObserver(o.onConnectSuccess), o.addConnectFailedObserver(o.onConnectFailed), o.addConnectingObserver(o.onConnectProgress), o;}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, i["default"]), o(t, [{ key: "extendOptions", value: function value(e) {if (p.calibrator.isFunction(e.onSuccess) && (this.onConnectSuccess = e.onSuccess), p.calibrator.isFunction(e.onFailed) && (this.onConnectFailed = e.onFailed), p.calibrator.isFunction(e.onProgress) && (this.onConnectProgress = e.onProgress), p.calibrator.isDef(e.data) && !p.calibrator.isObject(e.data)) throw { code: 400, content: "TypeError: data requires an object." };if ((p.calibrator.isDef(e.data) ? String(e.data).length : 0) > 300) {if (p.calibrator.isObject(e) && p.calibrator.isFunction(e.onFailed)) throw { code: 400, content: "user.data-length limit 300 byte." };} else this.userData = e.data;this.otp = e.otp || null;} }, { key: "setUriAndOpts", value: function value(e) {var t = "://" + p.GoEasyDomainNumber.refreshNumber() + e.host,n = !0;if (v.PlatformDetector.currentPlatform() === v.Platform.BROWSER) {var o = void 0;!0 === e.supportOldBrowser ? (o = ["polling", "websocket"], n = !1) : o = ["websocket"], !1 !== e.forceTLS && n ? this.uri = "https" + t + ":443" : this.uri = "http" + t + ":80", this.ioOpts = { transports: o, timeout: h.SocketTimeout.connect };} else this.uri = "https://wx-" + e.host + ":443", this.ioOpts = { transports: ["websocket"], reconnectionDelayMax: h.SocketTimeout.reconnectionDelayMax };} }, { key: "onIoReconnected", value: function value() {this.status === l["default"].RECONNECTING && this.authorize();} }, { key: "emit", value: function value(e) {r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "emit", this).call(this, e);} }, { key: "doEmit", value: function value(e, t, n) {d.uniApp.overrideUniShowHideMethods(), t.sid = this.sid, this.ioSocket.doEmit(e, t, n);} }, { key: "sendAck", value: function value(e, t) {this.ioSocket.io.emit(e, t);} }, { key: "connect", value: function value(e) {var n = this;r(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "connect", this).call(this), this.onConnecting(this.reconnectingTimes), this.ioSocket.connect({ uri: this.uri, opts: this.ioOpts }), e && e.supportNotification() && e.getRegIdPromise() ? e.getRegIdPromise().then(function (e) {n.regId = e, n.authorize();})["catch"](function (e) {console.warn("Failed to register the Manufacturers Push service:" + JSON.stringify(e)), n.authorize();}) : this.authorize();} }, { key: "disconnect", value: function value() {var e = this;return new Promise(function (t, n) {var o = function o() {e.status = l["default"].DISCONNECTED, e.ioSocket.disconnect(), t();};if (e.allowNotification) {var r = new u["default"]({ name: s.EmitType.manualDisconnect, params: {}, permission: c["default"].READ, singleTimeout: h.SocketTimeout.commonInfiniteSingle, totalTimeout: h.SocketTimeout.commonInfiniteTotal, fail: function fail(e) {n(e);}, success: o });e.emit(r);} else o();});} }, { key: "authorize", value: function value() {var e = { appkey: this.appKey, userId: this.userId, userData: JSON.stringify(this.userData), otp: this.otp, artifactVersion: this.artifactVersion, sid: this.sid, allowNT: this.allowNotification, regId: this.regId, modules: this.modules, a: this.anonymous, z: m.clientInfo.z };JSON.stringify(e);var t = new u["default"]({ name: s.EmitType.authorize, params: e, permission: c["default"].NONE, singleTimeout: h.SocketTimeout.commonInfiniteSingle, totalTimeout: h.SocketTimeout.commonInfiniteTotal, success: this.onAuthorizeSuccess.bind(this), fail: this.onAuthorizeFailed.bind(this) });this.ioSocket.emit(t);} }, { key: "onConnecting", value: function value() {this.notify(this.connectingObservers, this.reconnectingTimes);} }, { key: "onIoReconnecting", value: function value() {d.uniApp.overrideUniShowHideMethods(), this.reconnectingTimes++, this.status == l["default"].CONNECTED || this.status == l["default"].EXPIRED_RECONNECTED || this.status == l["default"].RECONNECTING ? this.status = l["default"].RECONNECTING : this.status = l["default"].CONNECTING, this.onConnecting();} }, { key: "onIoDisconnected", value: function value() {this.status == l["default"].DISCONNECTING && (this.status = l["default"].DISCONNECTED, this.notify(this.disconnectedObservers));} }, { key: "onAuthorizeSuccess", value: function value(e) {(!0 === this.anonymous && e.u && (b.AnonymousUserIdRepository.put(e.u), this.userId = e.u), this.status === l["default"].RECONNECTING) ? this.sid !== e.sid ? (this.status = l["default"].EXPIRED_RECONNECTED, this.notify(this.expiredReconnectedObservers)) : this.status = l["default"].RECONNECTED : (this.status = l["default"].CONNECTED, this.sid = e.sid);e.enablePublish && (this.permissions.find(function (e) {return e == c["default"].WRITE;}) || this.permissions.push(c["default"].WRITE)), e.enableSubscribe && (this.permissions.find(function (e) {return e == c["default"].READ;}) || this.permissions.push(c["default"].READ)), this.reconnectingTimes = 0, this.notify(this.connectedObservers);} }, { key: "onAuthorizeFailed", value: function value(e) {this.ioSocket.disconnect(), this.status = l["default"].CONNECT_FAILED;var t = { code: e.resultCode || 408, content: e.content || "Host unreachable or timeout" };this.notify(this.connectFailedObservers, t);} }, { key: "addConnectingObserver", value: function value(e) {p.calibrator.isFunction(e) && this.connectingObservers.push(e);} }, { key: "addConnectFailedObserver", value: function value(e) {p.calibrator.isFunction(e) && this.connectFailedObservers.push(e);} }, { key: "addExpiredReconnectedObserver", value: function value(e) {p.calibrator.isFunction(e) && this.expiredReconnectedObservers.push(e);} }, { key: "addMessageObserver", value: function value(e, t) {var n = this;this.ioSocket.io.on(e, function (t) {n.notifyMessageObservers(e, t);}), this.messageObservers[e] || (this.messageObservers[e] = []), this.messageObservers[e].push(new f["default"](t));} }, { key: "notifyMessageObservers", value: function value(e, t) {for (var n = this.messageObservers[e], o = 0; o < n.length; o++) {n[o].onMessage(e, t);}} }]), t;}();t["default"] = w;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o,r = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),i = n(9),s = (o = i) && o.__esModule ? o : { "default": o };var a = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.socket = null, this.socket = t;}return r(e, [{ key: "emit", value: function value(e) {this.socket.status !== s["default"].CONNECT_FAILED && this.socket.status !== s["default"].DISCONNECTED ? (e.start(), this.doEmit(e)) : e.fail({ resultCode: "409", content: "Please connect first" });} }, { key: "doEmit", value: function value(e) {var t = this;if (e.isTimeout()) e.fail({ resultCode: 408, content: "Host unreachable or timeout" });else if (this.socket.status !== s["default"].CONNECT_FAILED) {if (this.authenticated()) {if (this.hasPermission(e)) {if (this.socket.status === s["default"].CONNECTED || this.socket.status === s["default"].RECONNECTED || this.socket.status === s["default"].EXPIRED_RECONNECTED) {if (!e.complete) {var n = setTimeout(function () {t.doEmit(e);}, e.singleTimeout);this.socket.doEmit(e.name, e.params, function (t) {clearTimeout(n), 200 === t.resultCode || 200 == t.code ? e.success(t) : e.fail(t);}), e.retried++;}} else setTimeout(function () {t.doEmit(e);}, 500);} else e.fail({ resultCode: 401, content: "No permission" });} else setTimeout(function () {t.doEmit(e);}, 500);} else e.fail({ resultCode: 408, content: "Failed to connect GoEasy." });} }, { key: "hasPermission", value: function value(e) {return !!this.socket.permissions.find(function (t) {return t === e.permission;});} }, { key: "authenticated", value: function value() {return this.socket.status === s["default"].CONNECTED || this.socket.status === s["default"].RECONNECTING || this.socket.status === s["default"].RECONNECTED || this.socket.status === s["default"].EXPIRED_RECONNECTED;} }]), e;}();t["default"] = a;}, function (e, t, n) {"use strict";var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {return typeof e;} : function (e) {return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;},r = n(111),i = n(28),s = n(50);n(8)("socket.io-client");e.exports = t = u;var a = t.managers = {};function u(e, t) {"object" === (void 0 === e ? "undefined" : o(e)) && (t = e, e = undefined), t = t || {};var n,i = r(e),u = i.source,c = i.id,l = i.path,f = a[c] && l in a[c].nsps;return t.forceNew || t["force new connection"] || !1 === t.multiplex || f ? n = s(u, t) : (a[c] || (a[c] = s(u, t)), n = a[c]), i.query && !t.query && (t.query = i.query), n.socket(i.path, t);}t.protocol = i.protocol, t.connect = u, t.Manager = n(50), t.Socket = n(56);}, function (e, t, n) {"use strict";var o = n(48);n(8)("socket.io-client:url");e.exports = function (e, t) {var n = e;t = t || "undefined" != typeof location && location, null == e && (e = t.protocol + "//" + t.host);"string" == typeof e && ("/" === e.charAt(0) && (e = "/" === e.charAt(1) ? t.protocol + e : t.host + e), /^(https?|wss?):\/\//.test(e) || (e = void 0 !== t ? t.protocol + "//" + e : "https://" + e), n = o(e));n.port || (/^(http|ws)$/.test(n.protocol) ? n.port = "80" : /^(http|ws)s$/.test(n.protocol) && (n.port = "443"));n.path = n.path || "/";var r = -1 !== n.host.indexOf(":") ? "[" + n.host + "]" : n.host;return n.id = n.protocol + "://" + r + ":" + n.port, n.href = n.protocol + "://" + r + (t && t.port === n.port ? "" : ":" + n.port), n;};}, function (e, t, n) {"use strict";e.exports = n(113), e.exports.parser = n(13);}, function (e, t, n) {"use strict";var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {return typeof e;} : function (e) {return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;},r = n(51),i = n(12),s = (n(8)("engine.io-client:socket"), n(55)),a = n(13),u = n(48),c = n(22);function l(e, t) {if (!(this instanceof l)) return new l(e, t);t = t || {}, e && "object" === (void 0 === e ? "undefined" : o(e)) && (t = e, e = null), e ? (e = u(e), t.hostname = e.host, t.secure = "https" === e.protocol || "wss" === e.protocol, t.port = e.port, e.query && (t.query = e.query)) : t.host && (t.hostname = u(t.host).host), this.secure = null != t.secure ? t.secure : "undefined" != typeof location && "https:" === location.protocol, t.hostname && !t.port && (t.port = this.secure ? "443" : "80"), this.agent = t.agent || !1, this.hostname = t.hostname || ("undefined" != typeof location ? location.hostname : "localhost"), this.port = t.port || ("undefined" != typeof location && location.port ? location.port : this.secure ? 443 : 80), this.query = t.query || {}, "string" == typeof this.query && (this.query = c.decode(this.query)), this.upgrade = !1 !== t.upgrade, this.path = (t.path || "/engine.io").replace(/\/$/, "") + "/", this.forceJSONP = !!t.forceJSONP, this.jsonp = !1 !== t.jsonp, this.forceBase64 = !!t.forceBase64, this.enablesXDR = !!t.enablesXDR, this.timestampParam = t.timestampParam || "t", this.timestampRequests = t.timestampRequests, this.transports = t.transports || ["polling", "websocket"], this.transportOptions = t.transportOptions || {}, this.readyState = "", this.writeBuffer = [], this.prevBufferLen = 0, this.policyPort = t.policyPort || 843, this.rememberUpgrade = t.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = t.onlyBinaryUpgrades, this.perMessageDeflate = !1 !== t.perMessageDeflate && (t.perMessageDeflate || {}), !0 === this.perMessageDeflate && (this.perMessageDeflate = {}), this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024), this.pfx = t.pfx || null, this.key = t.key || null, this.passphrase = t.passphrase || null, this.cert = t.cert || null, this.ca = t.ca || null, this.ciphers = t.ciphers || null, this.rejectUnauthorized = t.rejectUnauthorized === undefined || t.rejectUnauthorized, this.forceNode = !!t.forceNode, this.isReactNative = "undefined" != typeof navigator && "string" == typeof navigator.product && "reactnative" === navigator.product.toLowerCase(), ("undefined" == typeof self || this.isReactNative) && (t.extraHeaders && Object.keys(t.extraHeaders).length > 0 && (this.extraHeaders = t.extraHeaders), t.localAddress && (this.localAddress = t.localAddress)), this.id = null, this.upgrades = null, this.pingInterval = null, this.pingTimeout = null, this.pingIntervalTimer = null, this.pingTimeoutTimer = null, this.open();}e.exports = l, l.priorWebsocketSuccess = !1, i(l.prototype), l.protocol = a.protocol, l.Socket = l, l.Transport = n(29), l.transports = n(51), l.parser = n(13), l.prototype.createTransport = function (e) {var t = function (e) {var t = {};for (var n in e) {e.hasOwnProperty(n) && (t[n] = e[n]);}return t;}(this.query);t.EIO = a.protocol, t.transport = e;var n = this.transportOptions[e] || {};return this.id && (t.sid = this.id), new r[e]({ query: t, socket: this, agent: n.agent || this.agent, hostname: n.hostname || this.hostname, port: n.port || this.port, secure: n.secure || this.secure, path: n.path || this.path, forceJSONP: n.forceJSONP || this.forceJSONP, jsonp: n.jsonp || this.jsonp, forceBase64: n.forceBase64 || this.forceBase64, enablesXDR: n.enablesXDR || this.enablesXDR, timestampRequests: n.timestampRequests || this.timestampRequests, timestampParam: n.timestampParam || this.timestampParam, policyPort: n.policyPort || this.policyPort, pfx: n.pfx || this.pfx, key: n.key || this.key, passphrase: n.passphrase || this.passphrase, cert: n.cert || this.cert, ca: n.ca || this.ca, ciphers: n.ciphers || this.ciphers, rejectUnauthorized: n.rejectUnauthorized || this.rejectUnauthorized, perMessageDeflate: n.perMessageDeflate || this.perMessageDeflate, extraHeaders: n.extraHeaders || this.extraHeaders, forceNode: n.forceNode || this.forceNode, localAddress: n.localAddress || this.localAddress, requestTimeout: n.requestTimeout || this.requestTimeout, protocols: n.protocols || void 0, isReactNative: this.isReactNative });}, l.prototype.open = function () {var e;if (this.rememberUpgrade && l.priorWebsocketSuccess && -1 !== this.transports.indexOf("websocket")) e = "websocket";else {if (0 === this.transports.length) {var t = this;return void setTimeout(function () {t.emit("error", "No transports available");}, 0);}e = this.transports[0];}this.readyState = "opening";try {e = this.createTransport(e);} catch (n) {return this.transports.shift(), void this.open();}e.open(), this.setTransport(e);}, l.prototype.setTransport = function (e) {e.name;var t = this;this.transport && (this.transport.name, this.transport.removeAllListeners()), this.transport = e, e.on("drain", function () {t.onDrain();}).on("packet", function (e) {t.onPacket(e);}).on("error", function (e) {t.onError(e);}).on("close", function () {t.onClose("transport close");});}, l.prototype.probe = function (e) {var t = this.createTransport(e, { probe: 1 }),n = !1,o = this;function r() {if (o.onlyBinaryUpgrades) {var e = !this.supportsBinary && o.transport.supportsBinary;n = n || e;}n || (t.send([{ type: "ping", data: "probe" }]), t.once("packet", function (e) {if (!n) if ("pong" === e.type && "probe" === e.data) {if (o.upgrading = !0, o.emit("upgrading", t), !t) return;l.priorWebsocketSuccess = "websocket" === t.name, o.transport.name, o.transport.pause(function () {n || "closed" !== o.readyState && (f(), o.setTransport(t), t.send([{ type: "upgrade" }]), o.emit("upgrade", t), t = null, o.upgrading = !1, o.flush());});} else {var r = new Error("probe error");r.transport = t.name, o.emit("upgradeError", r);}}));}function i() {n || (n = !0, f(), t.close(), t = null);}function s(e) {var n = new Error("probe error: " + e);n.transport = t.name, i(), o.emit("upgradeError", n);}function a() {s("transport closed");}function u() {s("socket closed");}function c(e) {t && e.name !== t.name && (e.name, t.name, i());}function f() {t.removeListener("open", r), t.removeListener("error", s), t.removeListener("close", a), o.removeListener("close", u), o.removeListener("upgrading", c);}l.priorWebsocketSuccess = !1, t.once("open", r), t.once("error", s), t.once("close", a), this.once("close", u), this.once("upgrading", c), t.open();}, l.prototype.onOpen = function () {if (this.readyState = "open", l.priorWebsocketSuccess = "websocket" === this.transport.name, this.emit("open"), this.flush(), "open" === this.readyState && this.upgrade && this.transport.pause) for (var e = 0, t = this.upgrades.length; e < t; e++) {this.probe(this.upgrades[e]);}}, l.prototype.onPacket = function (e) {if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) switch (e.type, e.data, this.emit("packet", e), this.emit("heartbeat"), e.type) {case "open":this.onHandshake(JSON.parse(e.data));break;case "pong":this.setPing(), this.emit("pong");break;case "error":var t = new Error("server error");t.code = e.data, this.onError(t);break;case "message":this.emit("data", e.data), this.emit("message", e.data);} else this.readyState;}, l.prototype.onHandshake = function (e) {this.emit("handshake", e), this.id = e.sid, this.transport.query.sid = e.sid, this.upgrades = this.filterUpgrades(e.upgrades), this.pingInterval = e.pingInterval, this.pingTimeout = e.pingTimeout, this.onOpen(), "closed" !== this.readyState && (this.setPing(), this.removeListener("heartbeat", this.onHeartbeat), this.on("heartbeat", this.onHeartbeat));}, l.prototype.onHeartbeat = function (e) {clearTimeout(this.pingTimeoutTimer);var t = this;t.pingTimeoutTimer = setTimeout(function () {"closed" !== t.readyState && t.onClose("ping timeout");}, e || t.pingInterval + t.pingTimeout);}, l.prototype.setPing = function () {var e = this;clearTimeout(e.pingIntervalTimer), e.pingIntervalTimer = setTimeout(function () {e.pingTimeout, e.ping(), e.onHeartbeat(e.pingTimeout);}, e.pingInterval);}, l.prototype.ping = function () {var e = this;this.sendPacket("ping", function () {e.emit("ping");});}, l.prototype.onDrain = function () {this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 === this.writeBuffer.length ? this.emit("drain") : this.flush();}, l.prototype.flush = function () {"closed" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (this.writeBuffer.length, this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit("flush"));}, l.prototype.write = l.prototype.send = function (e, t, n) {return this.sendPacket("message", e, t, n), this;}, l.prototype.sendPacket = function (e, t, n, o) {if ("function" == typeof t && (o = t, t = undefined), "function" == typeof n && (o = n, n = null), "closing" !== this.readyState && "closed" !== this.readyState) {(n = n || {}).compress = !1 !== n.compress;var r = { type: e, data: t, options: n };this.emit("packetCreate", r), this.writeBuffer.push(r), o && this.once("flush", o), this.flush();}}, l.prototype.close = function () {if ("opening" === this.readyState || "open" === this.readyState) {this.readyState = "closing";var e = this;this.writeBuffer.length ? this.once("drain", function () {this.upgrading ? o() : t();}) : this.upgrading ? o() : t();}function t() {e.onClose("forced close"), e.transport.close();}function n() {e.removeListener("upgrade", n), e.removeListener("upgradeError", n), t();}function o() {e.once("upgrade", n), e.once("upgradeError", n);}return this;}, l.prototype.onError = function (e) {l.priorWebsocketSuccess = !1, this.emit("error", e), this.onClose("transport error", e);}, l.prototype.onClose = function (e, t) {if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) {clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = "closed", this.id = null, this.emit("close", e, t), this.writeBuffer = [], this.prevBufferLen = 0;}}, l.prototype.filterUpgrades = function (e) {for (var t = [], n = 0, o = e.length; n < o; n++) {~s(this.transports, e[n]) && t.push(e[n]);}return t;};}, function (e, t, n) {"use strict";(function (t) {var o = n(115),r = n(30);e.exports = l;var i,s = /\n/g,a = /\\n/g;function u() {}function c() {return "undefined" != typeof self ? self : "undefined" != typeof window ? window : void 0 !== t ? t : {};}function l(e) {if (o.call(this, e), this.query = this.query || {}, !i) {var t = c();i = t.___eio = t.___eio || [];}this.index = i.length;var n = this;i.push(function (e) {n.onData(e);}), this.query.j = this.index, "function" == typeof addEventListener && addEventListener("beforeunload", function () {n.script && (n.script.onerror = u);}, !1);}r(l, o), l.prototype.supportsBinary = !1, l.prototype.doClose = function () {this.script && (this.script.parentNode.removeChild(this.script), this.script = null), this.form && (this.form.parentNode.removeChild(this.form), this.form = null, this.iframe = null), o.prototype.doClose.call(this);}, l.prototype.doPoll = function () {var e = this,t = document.createElement("script");this.script && (this.script.parentNode.removeChild(this.script), this.script = null), t.async = !0, t.src = this.uri(), t.onerror = function (t) {e.onError("jsonp poll error", t);};var n = document.getElementsByTagName("script")[0];n ? n.parentNode.insertBefore(t, n) : (document.head || document.body).appendChild(t), this.script = t, "undefined" != typeof navigator && /gecko/i.test(navigator.userAgent) && setTimeout(function () {var e = document.createElement("iframe");document.body.appendChild(e), document.body.removeChild(e);}, 100);}, l.prototype.doWrite = function (e, t) {var n = this;if (!this.form) {var o,r = document.createElement("form"),i = document.createElement("textarea"),u = this.iframeId = "eio_iframe_" + this.index;r.className = "socketio", r.style.position = "absolute", r.style.top = "-1000px", r.style.left = "-1000px", r.target = u, r.method = "POST", r.setAttribute("accept-charset", "utf-8"), i.name = "d", r.appendChild(i), document.body.appendChild(r), this.form = r, this.area = i;}function c() {l(), t();}function l() {if (n.iframe) try {n.form.removeChild(n.iframe);} catch (t) {n.onError("jsonp polling iframe removal error", t);}try {var e = '<iframe src="javascript:0" name="' + n.iframeId + '">';o = document.createElement(e);} catch (t) {(o = document.createElement("iframe")).name = n.iframeId, o.src = "javascript:0";}o.id = n.iframeId, n.form.appendChild(o), n.iframe = o;}this.form.action = this.uri(), l(), e = e.replace(a, "\\\n"), this.area.value = e.replace(s, "\\n");try {this.form.submit();} catch (f) {}this.iframe.attachEvent ? this.iframe.onreadystatechange = function () {"complete" === n.iframe.readyState && c();} : this.iframe.onload = c;};}).call(this, n(25));}, function (e, t, n) {"use strict";var o = n(29),r = n(22),i = n(13),s = n(30),a = n(54);n(8)("engine.io-client:polling");e.exports = c;var u = null != new (n(123))({ xdomain: !1 }).responseType;function c(e) {var t = e && e.forceBase64;u && !t || (this.supportsBinary = !1), o.call(this, e);}s(c, o), c.prototype.name = "polling", c.prototype.doOpen = function () {this.poll();}, c.prototype.pause = function (e) {var t = this;function n() {t.readyState = "paused", e();}if (this.readyState = "pausing", this.polling || !this.writable) {var o = 0;this.polling && (o++, this.once("pollComplete", function () {--o || n();})), this.writable || (o++, this.once("drain", function () {--o || n();}));} else n();}, c.prototype.poll = function () {this.polling = !0, this.doPoll(), this.emit("poll");}, c.prototype.onData = function (e) {var t = this;i.decodePayload(e, this.socket.binaryType, function (e, n, o) {if ("opening" === t.readyState && t.onOpen(), "close" === e.type) return t.onClose(), !1;t.onPacket(e);}), "closed" !== this.readyState && (this.polling = !1, this.emit("pollComplete"), "open" === this.readyState ? this.poll() : this.readyState);}, c.prototype.doClose = function () {var e = this;function t() {e.write([{ type: "close" }]);}"open" === this.readyState ? t() : this.once("open", t);}, c.prototype.write = function (e) {var t = this;this.writable = !1;var n = function n() {t.writable = !0, t.emit("drain");};i.encodePayload(e, this.supportsBinary, function (e) {t.doWrite(e, n);});}, c.prototype.uri = function () {var e = this.query || {},t = this.secure ? "https" : "http",n = "";return !1 !== this.timestampRequests && (e[this.timestampParam] = a()), this.supportsBinary || e.sid || (e.b64 = 1), e = r.encode(e), this.port && ("https" === t && 443 !== Number(this.port) || "http" === t && 80 !== Number(this.port)) && (n = ":" + this.port), e.length && (e = "?" + e), t + "://" + (-1 !== this.hostname.indexOf(":") ? "[" + this.hostname + "]" : this.hostname) + n + this.path + e;};}, function (e, t, n) {"use strict";e.exports = Object.keys || function (e) {var t = [],n = Object.prototype.hasOwnProperty;for (var o in e) {n.call(e, o) && t.push(o);}return t;};}, function (e, t, n) {"use strict";t.byteLength = function (e) {var t = c(e),n = t[0],o = t[1];return 3 * (n + o) / 4 - o;}, t.toByteArray = function (e) {var t,n,o = c(e),s = o[0],a = o[1],u = new i(function (e, t, n) {return 3 * (t + n) / 4 - n;}(0, s, a)),l = 0,f = a > 0 ? s - 4 : s;for (n = 0; n < f; n += 4) {t = r[e.charCodeAt(n)] << 18 | r[e.charCodeAt(n + 1)] << 12 | r[e.charCodeAt(n + 2)] << 6 | r[e.charCodeAt(n + 3)], u[l++] = t >> 16 & 255, u[l++] = t >> 8 & 255, u[l++] = 255 & t;}2 === a && (t = r[e.charCodeAt(n)] << 2 | r[e.charCodeAt(n + 1)] >> 4, u[l++] = 255 & t);1 === a && (t = r[e.charCodeAt(n)] << 10 | r[e.charCodeAt(n + 1)] << 4 | r[e.charCodeAt(n + 2)] >> 2, u[l++] = t >> 8 & 255, u[l++] = 255 & t);return u;}, t.fromByteArray = function (e) {for (var t, n = e.length, r = n % 3, i = [], s = 0, a = n - r; s < a; s += 16383) {i.push(l(e, s, s + 16383 > a ? a : s + 16383));}1 === r ? (t = e[n - 1], i.push(o[t >> 2] + o[t << 4 & 63] + "==")) : 2 === r && (t = (e[n - 2] << 8) + e[n - 1], i.push(o[t >> 10] + o[t >> 4 & 63] + o[t << 2 & 63] + "="));return i.join("");};for (var o = [], r = [], i = "undefined" != typeof Uint8Array ? Uint8Array : Array, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = 0, u = s.length; a < u; ++a) {o[a] = s[a], r[s.charCodeAt(a)] = a;}function c(e) {var t = e.length;if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");var n = e.indexOf("=");return -1 === n && (n = t), [n, n === t ? 0 : 4 - n % 4];}function l(e, t, n) {for (var r, i, s = [], a = t; a < n; a += 3) {r = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (255 & e[a + 2]), s.push(o[(i = r) >> 18 & 63] + o[i >> 12 & 63] + o[i >> 6 & 63] + o[63 & i]);}return s.join("");}r["-".charCodeAt(0)] = 62, r["_".charCodeAt(0)] = 63;}, function (e, t) {
  2111. /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
  2112. t.read = function (e, t, n, o, r) {var i,s,a = 8 * r - o - 1,u = (1 << a) - 1,c = u >> 1,l = -7,f = n ? r - 1 : 0,p = n ? -1 : 1,d = e[t + f];for (f += p, i = d & (1 << -l) - 1, d >>= -l, l += a; l > 0; i = 256 * i + e[t + f], f += p, l -= 8) {;}for (s = i & (1 << -l) - 1, i >>= -l, l += o; l > 0; s = 256 * s + e[t + f], f += p, l -= 8) {;}if (0 === i) i = 1 - c;else {if (i === u) return s ? NaN : (d ? -1 : 1) * Infinity;s += Math.pow(2, o), i -= c;}return (d ? -1 : 1) * s * Math.pow(2, i - o);}, t.write = function (e, t, n, o, r, i) {var s,a,u,c = 8 * i - r - 1,l = (1 << c) - 1,f = l >> 1,p = 23 === r ? Math.pow(2, -24) - Math.pow(2, -77) : 0,d = o ? 0 : i - 1,h = o ? 1 : -1,y = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0;for (t = Math.abs(t), isNaN(t) || t === Infinity ? (a = isNaN(t) ? 1 : 0, s = l) : (s = Math.floor(Math.log(t) / Math.LN2), t * (u = Math.pow(2, -s)) < 1 && (s--, u *= 2), (t += s + f >= 1 ? p / u : p * Math.pow(2, 1 - f)) * u >= 2 && (s++, u /= 2), s + f >= l ? (a = 0, s = l) : s + f >= 1 ? (a = (t * u - 1) * Math.pow(2, r), s += f) : (a = t * Math.pow(2, f - 1) * Math.pow(2, r), s = 0)); r >= 8; e[n + d] = 255 & a, d += h, a /= 256, r -= 8) {;}for (s = s << r | a, c += r; c > 0; e[n + d] = 255 & s, d += h, s /= 256, c -= 8) {;}e[n + d - h] |= 128 * y;};}, function (e, t) {var n = {}.toString;e.exports = Array.isArray || function (e) {return "[object Array]" == n.call(e);};}, function (e, t) {function n() {}e.exports = function (e, t, o) {var r = !1;return o = o || n, i.count = e, 0 === e ? t() : i;function i(e, n) {if (i.count <= 0) throw new Error("after called too many times");--i.count, e ? (r = !0, t(e), t = o) : 0 !== i.count || r || t(null, n);}};}, function (e, t, n) {"use strict";
  2113. /*! https://mths.be/utf8js v2.1.2 by @mathias */var o,r,i,s = String.fromCharCode;function a(e) {for (var t, n, o = [], r = 0, i = e.length; r < i;) {(t = e.charCodeAt(r++)) >= 55296 && t <= 56319 && r < i ? 56320 == (64512 & (n = e.charCodeAt(r++))) ? o.push(((1023 & t) << 10) + (1023 & n) + 65536) : (o.push(t), r--) : o.push(t);}return o;}function u(e, t) {if (e >= 55296 && e <= 57343) {if (t) throw Error("Lone surrogate U+" + e.toString(16).toUpperCase() + " is not a scalar value");return !1;}return !0;}function c(e, t) {return s(e >> t & 63 | 128);}function l(e, t) {if (0 == (4294967168 & e)) return s(e);var n = "";return 0 == (4294965248 & e) ? n = s(e >> 6 & 31 | 192) : 0 == (4294901760 & e) ? (u(e, t) || (e = 65533), n = s(e >> 12 & 15 | 224), n += c(e, 6)) : 0 == (4292870144 & e) && (n = s(e >> 18 & 7 | 240), n += c(e, 12), n += c(e, 6)), n += s(63 & e | 128);}function f() {if (i >= r) throw Error("Invalid byte index");var e = 255 & o[i];if (i++, 128 == (192 & e)) return 63 & e;throw Error("Invalid continuation byte");}function p(e) {var t, n;if (i > r) throw Error("Invalid byte index");if (i == r) return !1;if (t = 255 & o[i], i++, 0 == (128 & t)) return t;if (192 == (224 & t)) {if ((n = (31 & t) << 6 | f()) >= 128) return n;throw Error("Invalid continuation byte");}if (224 == (240 & t)) {if ((n = (15 & t) << 12 | f() << 6 | f()) >= 2048) return u(n, e) ? n : 65533;throw Error("Invalid continuation byte");}if (240 == (248 & t) && (n = (7 & t) << 18 | f() << 12 | f() << 6 | f()) >= 65536 && n <= 1114111) return n;throw Error("Invalid UTF-8 detected");}e.exports = { version: "2.1.2", encode: function encode(e, t) {for (var n = !1 !== (t = t || {}).strict, o = a(e), r = o.length, i = -1, s = ""; ++i < r;) {s += l(o[i], n);}return s;}, decode: function decode(e, t) {var n = !1 !== (t = t || {}).strict;o = a(e), r = o.length, i = 0;for (var u, c = []; !1 !== (u = p(n));) {c.push(u);}return function (e) {for (var t, n = e.length, o = -1, r = ""; ++o < n;) {(t = e[o]) > 65535 && (r += s((t -= 65536) >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), r += s(t);}return r;}(c);} };}, function (e, t) {var n = void 0 !== n ? n : "undefined" != typeof WebKitBlobBuilder ? WebKitBlobBuilder : "undefined" != typeof MSBlobBuilder ? MSBlobBuilder : "undefined" != typeof MozBlobBuilder && MozBlobBuilder,o = function () {try {return 2 === new Blob(["hi"]).size;} catch (e) {return !1;}}(),r = o && function () {try {return 2 === new Blob([new Uint8Array([1, 2])]).size;} catch (e) {return !1;}}(),i = n && n.prototype.append && n.prototype.getBlob;function s(e) {return e.map(function (e) {if (e.buffer instanceof ArrayBuffer) {var t = e.buffer;if (e.byteLength !== t.byteLength) {var n = new Uint8Array(e.byteLength);n.set(new Uint8Array(t, e.byteOffset, e.byteLength)), t = n.buffer;}return t;}return e;});}function a(e, t) {t = t || {};var o = new n();return s(e).forEach(function (e) {o.append(e);}), t.type ? o.getBlob(t.type) : o.getBlob();}function u(e, t) {return new Blob(s(e), t || {});}"undefined" != typeof Blob && (a.prototype = Blob.prototype, u.prototype = Blob.prototype), e.exports = o ? r ? Blob : u : i ? a : undefined;}, function (e, t, n) {"use strict";var o = n(124);e.exports = function (e) {var t = e.xdomain,n = e.xscheme,r = e.enablesXDR;try {if ("undefined" != typeof XMLHttpRequest && (!t || o)) return new XMLHttpRequest();} catch (i) {}try {if ("undefined" != typeof XDomainRequest && !n && r) return new XDomainRequest();} catch (i) {}if (!t) try {return new self[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP");} catch (i) {}};}, function (e, t) {try {e.exports = "undefined" != typeof XMLHttpRequest && "withCredentials" in new XMLHttpRequest();} catch (n) {e.exports = !1;}}, function (e, t, n) {"use strict";(function (t) {var o,r,i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {return typeof e;} : function (e) {return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;},s = n(29),a = n(13),u = n(22),c = n(30),l = n(54);n(8)("engine.io-client:websocket");if ("undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket) if ("undefined" != typeof WebSocket) o = WebSocket;else if ("undefined" != typeof self) o = self.WebSocket || self.MozWebSocket;else try {r = n(126);} catch (d) {}var f = o || r;function p(e) {e && e.forceBase64 && (this.supportsBinary = !1), ("undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket) && (this.perMessageDeflate = e.perMessageDeflate, this.usingBrowserWebSocket = o && !e.forceNode, this.protocols = e.protocols, this.usingBrowserWebSocket || (f = r)), s.call(this, e);}"undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket || (f = function f(e) {var t = this;if (t.onopen = function () {}, t.onclose = function () {}, t.onmessage = function (e) {}, t.onerror = function (e) {}, "object" === ("undefined" == typeof tt ? "undefined" : i(tt)) && tt.getSystemInfo) {var n = tt.connectSocket({ url: e });t.send = function (e) {n.send({ data: e });}, t.close = function () {n.close();}, n.onOpen(function () {t.onopen();}), n.onError(function (e) {t.onerror(e);}), n.onMessage(function (e) {t.onmessage(e);}), n.onClose(function () {t.onclose();});} else if ("undefined" != typeof uni) {var o = uni.connectSocket({ url: e, complete: function complete() {} });t.send = function (e) {o.send({ data: e });}, t.close = function () {o.close();}, o.onOpen(function (e) {t.onopen();}), o.onError(function (e) {t.onerror(e);}), o.onMessage(function (e) {t.onmessage(e);}), o.onClose(function (e) {t.onclose();});} else {var r = wx.connectSocket({ url: e });t.send = function (e) {r.send({ data: e });}, t.close = function (e) {r.close({ code: 1e3 });}, r.onOpen(function () {t.onopen();}), r.onError(function (e) {t.onerror(e);}), r.onMessage(function (e) {t.onmessage(e);}), r.onClose(function (e) {t.onclose(e);});}}), e.exports = p, c(p, s), p.prototype.name = "websocket", p.prototype.supportsBinary = !1, p.prototype.doOpen = function () {if (this.check()) {var e,t,n = this.uri();("undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket) && (e = this.protocols), (t = "undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket ? { agent: this.agent, perMessageDeflate: this.perMessageDeflate } : { agent: this.agent }).pfx = this.pfx, t.key = this.key, t.passphrase = this.passphrase, t.cert = this.cert, t.ca = this.ca, t.ciphers = this.ciphers, t.rejectUnauthorized = this.rejectUnauthorized, this.extraHeaders && (t.headers = this.extraHeaders), this.localAddress && (t.localAddress = this.localAddress);try {"undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket ? this.ws = this.usingBrowserWebSocket && !this.isReactNative ? e ? new f(n, e) : new f(n) : new f(n, e, t) : this.ws = new f(n);} catch (o) {return this.emit("error", o);}this.ws.binaryType === undefined && (this.supportsBinary = !1), this.ws.supports && this.ws.supports.binary ? (this.supportsBinary = !0, this.ws.binaryType = "nodebuffer") : this.ws.binaryType = "arraybuffer", this.addEventListeners();}}, p.prototype.addEventListeners = function () {var e = this;this.ws.onopen = function () {e.onOpen();}, this.ws.onclose = function () {e.onClose();}, this.ws.onmessage = function (t) {e.onData(t.data);}, this.ws.onerror = function (t) {e.onError("websocket error", t);};}, p.prototype.write = function (e) {var n = this;this.writable = !1;for (var o = e.length, r = 0, i = o; r < i; r++) {!function (e) {a.encodePacket(e, n.supportsBinary, function (r) {if ("undefined" == typeof uni && "undefined" == typeof wx || "undefined" != typeof WebSocket) {if (!n.usingBrowserWebSocket) {var i = {};if (e.options && (i.compress = e.options.compress), n.perMessageDeflate) ("string" == typeof r ? t.byteLength(r) : r.length) < n.perMessageDeflate.threshold && (i.compress = !1);}try {n.usingBrowserWebSocket ? n.ws.send(r) : n.ws.send(r, i);} catch (d) {}} else try {n.ws.send(r);} catch (d) {}--o || s();});}(e[r]);}function s() {n.emit("flush"), setTimeout(function () {n.writable = !0, n.emit("drain");}, 0);}}, p.prototype.onClose = function () {s.prototype.onClose.call(this);}, p.prototype.doClose = function () {"undefined" != typeof this.ws && this.ws.close();}, p.prototype.uri = function () {var e = this.query || {},t = this.secure ? "wss" : "ws",n = "";return this.port && ("wss" === t && 443 !== Number(this.port) || "ws" === t && 80 !== Number(this.port)) && (n = ":" + this.port), this.timestampRequests && (e[this.timestampParam] = l()), this.supportsBinary || (e.b64 = 1), (e = u.encode(e)).length && (e = "?" + e), t + "://" + (-1 !== this.hostname.indexOf(":") ? "[" + this.hostname + "]" : this.hostname) + n + this.path + e;}, p.prototype.check = function () {return !(!f || "__initialize" in f && this.name === p.prototype.name);};}).call(this, n(53).Buffer);}, function (e, t) {}, function (e, t) {e.exports = function (e, t) {for (var n = [], o = (t = t || 0) || 0; o < e.length; o++) {n[o - t] = e[o];}return n;};}, function (e, t) {function n(e) {e = e || {}, this.ms = e.min || 100, this.max = e.max || 1e4, this.factor = e.factor || 2, this.jitter = e.jitter > 0 && e.jitter <= 1 ? e.jitter : 0, this.attempts = 0;}e.exports = n, n.prototype.duration = function () {var e = this.ms * Math.pow(this.factor, this.attempts++);if (this.jitter) {var t = Math.random(),n = Math.floor(t * this.jitter * e);e = 0 == (1 & Math.floor(10 * t)) ? e - n : e + n;}return 0 | Math.min(e, this.max);}, n.prototype.reset = function () {this.attempts = 0;}, n.prototype.setMin = function (e) {this.ms = e;}, n.prototype.setMax = function (e) {this.max = e;}, n.prototype.setJitter = function (e) {this.jitter = e;};}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = s(n(47)),i = s(n(9));function s(e) {return e && e.__esModule ? e : { "default": e };}var a = function (e) {function t(e) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, t);var n = function (e, t) {if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t || "object" != typeof t && "function" != typeof t ? e : t;}(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));return n.reconnectingObservers = [], n.addReconnectingObserver(e.onReconnecting), n.addDisconnectedObserver(e.onDisconnected), n;}return function (e, t) {if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t);}(t, r["default"]), o(t, [{ key: "connect", value: function value(e) {(function n(e, t, o) {null === e && (e = Function.prototype);var r = Object.getOwnPropertyDescriptor(e, t);if (r === undefined) {var i = Object.getPrototypeOf(e);return null === i ? undefined : n(i, t, o);}if ("value" in r) return r.value;var s = r.get;return s === undefined ? undefined : s.call(o);})(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "connect", this).call(this), this.io = this.io.connect(e.uri, e.opts), this.initListener();} }, { key: "doEmit", value: function value(e, t, n) {this.io.emit(e, t, n);} }, { key: "initListener", value: function value() {var e = this;this.io.on("reconnecting", function (t) {e.status = i["default"].CONNECTING, e.notify(e.reconnectingObservers, t);}), this.io.on("connect", function () {e.status = i["default"].CONNECTED, e.notify(e.connectedObservers);}), this.io.on("disconnect", function () {e.status = i["default"].DISCONNECTED, e.notify(e.disconnectedObservers);}), this.io.on("connect_error", function (e) {});} }, { key: "addReconnectingObserver", value: function value(e) {this.reconnectingObservers.push(e);} }]), t;}();t["default"] = a;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(0);var i = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.callback = r.noop, this.guidList = [], this.callback = t;}return o(e, [{ key: "onMessage", value: function value(e, t) {"string" == typeof t && (t = JSON.parse(t)), this.guidList.findIndex(function (e) {return e === t.i;}) > -1 || (this.guidList.unshift(t.i), this.guidList.length > 300 && this.guidList.pop(), this.callback(t));} }]), e;}();t["default"] = i;}, function (e, t, n) {"use strict";t.__esModule = !0, t.AnonymousUserIdRepository = void 0;var o = n(0),r = n(37),i = function () {function e() {}return e.get = function () {var t = e.storage;if (null !== t) {var n = t.get(e.ANONYMOUS_USER_ID_KEY);if (!o.calibrator.isEmpty(n)) return n;}return null;}, e.put = function (t) {var n = e.storage;null !== n && n.put(e.ANONYMOUS_USER_ID_KEY, t);}, e.storage = r.LocalStorageDispatcher.localStorage(), e.ANONYMOUS_USER_ID_KEY = "goeasy-anonymous-user-id", e;}();t.AnonymousUserIdRepository = i;}, function (e, t, n) {"use strict";t.__esModule = !0, t.clientInfo = void 0;var o = n(31),r = n(15),i = new (function () {function e() {this.platform = o.PlatformDetector.currentPlatform(), this.framework = r.FrameworkDetector.currentFramework(), this.z = this.toZ();}return e.prototype.toZ = function () {for (var e = JSON.stringify({ platform: this.platform, framework: this.framework }), t = "", n = 0; n < e.length; n++) {var o = e.charCodeAt(n);t += String.fromCharCode(o + 5);}return t;}, e;}())();t.clientInfo = i;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });t.ModuleType = { IM: "IM", PUBSUB: "PUBSUB" };}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(0),i = n(5),s = c(n(3)),a = c(n(1)),u = n(4);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.pubSub = null, this.pubSub = t;}return o(e, [{ key: "get", value: function value(e, t) {if (r.calibrator.isFunction(e.onSuccess) || (e.onSuccess = r.noop), r.calibrator.isFunction(e.onFailed) || (e.onFailed = r.noop), r.calibrator.isDef(e.channel)) {r.calibrator.isNumber(e.channel) && (e.channel = e.channel.toString());var n = new s["default"]({ name: i.EmitType.historyMessages, permission: a["default"].READ, params: e, singleTimeout: u.SocketTimeout.commonQuerySingle, totalTimeout: u.SocketTimeout.commonQueryTotal, success: function success(t) {e.onSuccess({ code: t.resultCode || t.code || 200, content: t.content });}, fail: function fail(t) {e.onFailed({ code: t.resultCode || t.code, content: t.content });} });this.pubSub.goEasySocket.emit(n);} else e.onFailed(res);} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(0),i = n(5),s = c(n(3)),a = c(n(1)),u = n(4);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.pubSub = null, this.pubSub = t;}return o(e, [{ key: "byChannel", value: function value(e) {var t = { channels: [], includeUsers: !1, distinct: !1 };if (r.calibrator.isFunction(e.onSuccess) || (e.onSuccess = r.noop), r.calibrator.isFunction(e.onFailed) || (e.onFailed = r.noop), Array.isArray(e.channels)) for (var n = 0; n < e.channels.length; n++) {var o = e.channels[n];r.calibrator.isNumber(o) && (o = o.toString()), t.channels.push(o);}if (0 != t.channels.length) {1 == e.includeUsers && (t.includeUsers = !0), 1 == e.distinct && (t.distinct = !0);var c = new s["default"]({ name: i.EmitType.hereNow, permission: a["default"].READ, params: t, singleTimeout: u.SocketTimeout.commonQuerySingle, totalTimeout: u.SocketTimeout.commonQueryTotal, success: function success(t) {var n = t.content,o = n.channels;for (var r in o) {if (o.hasOwnProperty(r)) {var i = o[r];i.users = i.users.map(function (e) {return e.data = JSON.parse(e.data), e;});}}e.onSuccess({ code: t.resultCode || t.code || 200, content: n });}, fail: function fail(t) {e.onFailed({ code: t.resultCode || t.code || 200, content: t.content });} });this.pubSub.goEasySocket.emit(c);} else e.onFailed({ code: 408, content: "channels is required." });} }, { key: "byUserId", value: function value(e) {var t = { userIds: [], distinct: !0 };if (r.calibrator.isFunction(e.onSuccess) || (e.onSuccess = r.noop), r.calibrator.isFunction(e.onFailed) || (e.onFailed = r.noop), r.calibrator.isDef(e.userIds) && (t.userIds = e.userIds), 0 == e.distinct && (t.distinct = !1), 0 === t.userIds.length) e.onFailed({ code: 400, content: "userIds is required" });else if (t.userIds.length > 500) e.onFailed({ code: 400, content: "userIds is over max length 500" });else {var n = new s["default"]({ name: i.EmitType.hereNowByUserIds, permission: a["default"].READ, params: t, singleTimeout: u.SocketTimeout.commonQuerySingle, totalTimeout: u.SocketTimeout.commonQueryTotal, success: function success(t) {var n = t.content;n = n.map(function (e) {var t = {};return t.id = e.userId, t.data = e.userData ? JSON.parse(e.userData) : {}, t;}), e.onSuccess({ code: t.resultCode || t.code || 200, content: n });}, fail: function fail(t) {e.onFailed({ code: t.resultCode || t.code || 200, content: t.content });} });this.pubSub.goEasySocket.emit(n);}} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(0),i = c(n(3)),s = n(5),a = c(n(1)),u = n(4);function c(e) {return e && e.__esModule ? e : { "default": e };}var l = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.pubSub = null, this.pubSub = t;}return o(e, [{ key: "publish", value: function value(e) {if (r.calibrator.isFunction(e.onFailed) || (e.onFailed = r.noop), r.calibrator.isFunction(e.onSuccess) || (e.onSuccess = r.noop), r.calibrator.isEmpty(e.channel)) throw { code: 400, content: "channel is required." };if (r.calibrator.isNumber(e.channel) && (e.channel = e.channel.toString()), r.calibrator.isEmpty(e.message)) throw { code: 400, content: "message is required." };if (r.calibrator.isNumber(e.message) && (e.message = e.message.toString()), !r.calibrator.isString(e.message)) throw { code: 400, content: "TypeError: message requires string." };if (r.calibrator.isObject(e.notification)) {if (r.calibrator.isEmpty(e.notification.title)) throw { code: 400, content: "notification.title is required." };if (!r.calibrator.isString(e.notification.title)) throw { code: 400, content: "TypeError: notification.title requires string." };if (e.notification.title.length > 32) throw { code: 400, content: "TypeError: notification.title over max length 32." };if (r.calibrator.isEmpty(e.notification.body)) throw { code: 400, content: "notification.body is required." };if (!r.calibrator.isString(e.notification.body)) throw { code: 400, content: "TypeError: notification.body must be string." };if (e.notification.body.length > 50) throw { code: 400, content: "notification.body over max length 50." };} else if (r.calibrator.isPrimitive(e.notification)) throw { code: 400, content: "TypeError: notification requires an object." };var t = { channel: e.channel, content: e.message, nt: e.notification, at: e.accessToken, guid: r.UUID.get() },n = new i["default"]({ name: s.EmitType.publish, params: t, singleTimeout: u.SocketTimeout.commonRequestSingle, totalTimeout: u.SocketTimeout.commonRequestTotal, permission: a["default"].WRITE, success: function success(t) {e.onSuccess({ code: 200, content: "ok" });}, fail: function fail(t) {e.onFailed({ code: t.resultCode, content: t.content });} });this.pubSub.goEasySocket.emit(n);} }]), e;}();t["default"] = l;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(0),i = h(n(3)),s = n(5),a = h(n(1)),u = h(n(138)),c = h(n(17)),l = n(4),f = h(n(9)),p = n(27),d = n(60);function h(e) {return e && e.__esModule ? e : { "default": e };}var y = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.subscriptions = [], this.pubSub = null, this.pubSub = t;}return o(e, [{ key: "initialGoEasySocket", value: function value() {var e = this.pubSub.goEasySocket;e.addMessageObserver(c["default"].message, this.onNewMessage.bind(this)), e.addExpiredReconnectedObserver(this.onExpiredReconnected.bind(this)), e.addConnectedObserver(this.onReconnected.bind(this));} }, { key: "resubscribe", value: function value() {var e = this.subscriptions.slice(0);this.subscriptions = [];for (var t = 0; t < e.length; t++) {0 != e[t].channels.length && this.subscribe(e[t]);}} }, { key: "onExpiredReconnected", value: function value() {this.resubscribe();} }, { key: "onReconnected", value: function value() {this.pubSub.neverConnect || this.pubSub.goEasySocket.status == f["default"].RECONNECTED || this.resubscribe();} }, { key: "onNewMessage", value: function value(e) {if (!(e.n.indexOf("_presence") > -1)) {e.a && this.pubSub.goEasySocket.sendAck("ack", { publishGuid: e.i });var t = { time: e.t, channel: e.n, content: e.c };p.GoEasyEventCenter.fire(d.PUBSUB_INTERNAL_EVENTS.MESSAGE_RECEIVED, e), this.findSubscriptionByChannel(t.channel).onMessage(t);}} }, { key: "formatOptions", value: function value(e) {var t = !r.calibrator.isEmpty(e.channel),n = !r.calibrator.isEmpty(e.channels);if (this.formatCallback(e), r.calibrator.isFunction(e.onMessage) || (e.onMessage = r.noop), !t && !n) return e.onFailed({ code: 400, content: "channel is required" }), !1;if (!t || !n) {if (t && (r.calibrator.isNumber(e.channel) && (e.channel = e.channel.toString()), e.channels = [e.channel]), n) {if (!Array.isArray(e.channels) || 0 == e.channels.length) return void e.onFailed({ code: 400, content: "channels must be an array" });if (e.channels.length > 500) return e.onFailed({ code: 400, content: "channels over max length:500" }), !1;for (var o = 0, i = e.channels.length; o < i; o++) {if (r.calibrator.isNumber(e.channels[o]) && (e.channels[o] = e.channels[o].toString()), r.calibrator.isEmpty(e.channels[o])) return e.onFailed({ code: 400, content: "Channels array contains empty channel" }), !1;}}return !0;}e.onFailed({ code: 400, content: "subscribe to either channel or channels, not both" });} }, { key: "formatCallback", value: function value(e) {r.calibrator.isFunction(e.onSuccess) || (e.onSuccess = r.noop), r.calibrator.isFunction(e.onFailed) || (e.onFailed = r.noop);} }, { key: "subscribe", value: function value(e) {var t = this;if (this.formatOptions(e)) {var n = new i["default"]({ name: s.EmitType.subscribe, permission: a["default"].READ, singleTimeout: l.SocketTimeout.commonInfiniteSingle, totalTimeout: l.SocketTimeout.commonInfiniteTotal, params: { channels: e.channels, accessToken: e.accessToken }, success: function success() {var n = new u["default"]({ channels: e.channels, accessToken: e.accessToken, onSuccess: e.onSuccess, onFailed: e.onFailed, onMessage: e.onMessage });t.subscriptions.push(n), e.onSuccess({ code: 200, content: "ok" });}, fail: function fail(t) {e.onFailed({ code: t.resultCode, content: t.content });} });this.pubSub.goEasySocket.emit(n);}} }, { key: "unsubscribe", value: function value(e) {var t = this;if (this.formatCallback(e), r.calibrator.isDef(e.channel)) {if (r.calibrator.isNumber(e.channel) && (e.channel = e.channel.toString()), this.findSubscriptionByChannel(e.channel)) {var n = new i["default"]({ name: s.EmitType.unsubscribe, params: { channel: e.channel }, permission: a["default"].READ, singleTimeout: l.SocketTimeout.commonRequestSingle, totalTimeout: l.SocketTimeout.commonRequestTotal, success: function success() {e.onSuccess({ code: 200, content: "ok" }), t.removeChannel(e.channel);}, fail: function fail(t) {e.onFailed({ code: t.resultCode, content: t.content });} });this.pubSub.goEasySocket.emit(n);} else e.onFailed({ code: 400, content: "channel[" + e.channel + "] is not subscribed" });} else e.onFailed({ code: 400, content: "channel is required" });} }, { key: "removeChannel", value: function value(e) {for (var t = 0; t < this.subscriptions.length; t++) {for (var n = this.subscriptions[t].channels, o = 0; o < n.length; o++) {if (n[o] == e) {this.subscriptions[t].channels.splice(o, 1);break;}}}} }, { key: "findSubscriptionByChannel", value: function value(e) {for (var t = !1, n = null, o = this.subscriptions.length - 1; o >= 0; o--) {for (var r = this.subscriptions[o].channels, i = 0; i < r.length; i++) {if (r[i] == e) {t = !0, n = this.subscriptions[o];break;}}if (t) break;}return n;} }]), e;}();t["default"] = y;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var r = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.channels = [], this.accessToken = null, this.onSuccess = null, this.onFailed = null, this.onMessage = null, this.channels = t.channels, this.accessToken = t.accessToken, this.onSuccess = t.onSuccess, this.onFailed = t.onFailed, this.onMessage = t.onMessage;}return o(e, [{ key: "empty", value: function value() {} }]), e;}();t["default"] = r;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}(),r = n(0),i = p(n(3)),s = n(5),a = p(n(1)),u = n(4),c = p(n(17)),l = p(n(140)),f = p(n(9));function p(e) {return e && e.__esModule ? e : { "default": e };}var d = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.presenters = [], this.pubSub = null, this.pubSub = t;}return o(e, [{ key: "initialGoEasySocket", value: function value() {var e = this.pubSub.goEasySocket;e.addMessageObserver(c["default"].message, this.onNewMessage.bind(this)), e.addExpiredReconnectedObserver(this.onExpiredReconnected.bind(this)), e.addConnectedObserver(this.onReconnected.bind(this));} }, { key: "resubscribe", value: function value() {var e = this.presenters.slice(0);this.presenters = [];for (var t = 0; t < e.length; t++) {for (var n = 0; n < e[t].channels.length; n++) {var o = e[t].channels[n].split("_presence");e[t].channels[n] = o[0];}0 != e[t].channels.length && this.subscribePresence(e[t]);}} }, { key: "onExpiredReconnected", value: function value() {this.resubscribe();} }, { key: "onReconnected", value: function value() {this.pubSub.neverConnect || this.pubSub.goEasySocket.status == f["default"].RECONNECTED || this.resubscribe();} }, { key: "onNewMessage", value: function value(e) {if (-1 != e.n.indexOf("_presence")) {var t = this.findPresenceByChannel(e.n);if (t) {var n = JSON.parse(e.c);n.events = n.events.map(function (e) {var t = e.userData ? JSON.parse(e.userData) : {};return { time: e.time, action: e.action, id: e.userId, data: t };}), t.onPresence(n);}}} }, { key: "formatOptions", value: function value(e) {var t = !r.calibrator.isEmpty(e.channel),n = !r.calibrator.isEmpty(e.channels);if (this.formatCallback(e), r.calibrator.isFunction(e.onPresence) || (e.onPresence = r.noop), !t && !n) return e.onFailed({ code: 400, content: "channel is required" }), !1;if (!t || !n) {if (t && (r.calibrator.isNumber(e.channel) && (e.channel = e.channel.toString()), e.channels = [e.channel]), n) {if (!Array.isArray(e.channels) || 0 == e.channels.length) return void e.onFailed({ code: 400, content: "channels must be an array" });if (e.channels.length > 500) return e.onFailed({ code: 400, content: "channels over max length:500" }), !1;for (var o = 0, i = e.channels.length; o < i; o++) {if (r.calibrator.isNumber(e.channels[o]) && (e.channels[o] = e.channels[o].toString()), r.calibrator.isEmpty(e.channels[o])) return e.onFailed({ code: 400, content: "Channels array contains empty channel" }), !1;}}return !0;}e.onFailed({ code: 400, content: "subscribe to either channel or channels, not both" });} }, { key: "formatCallback", value: function value(e) {r.calibrator.isFunction(e.onSuccess) || (e.onSuccess = r.noop), r.calibrator.isFunction(e.onFailed) || (e.onFailed = r.noop);} }, { key: "subscribePresence", value: function value(e) {var t = this;if (this.formatOptions(e)) {Array.isArray(e.channels) && (e.channels = e.channels.map(function (e) {return e += "_presence";}));var n = new i["default"]({ name: s.EmitType.subscribe, permission: a["default"].READ, singleTimeout: u.SocketTimeout.commonInfiniteSingle, totalTimeout: u.SocketTimeout.commonInfiniteTotal, params: { channels: e.channels }, success: function success() {var n = new l["default"]({ channels: e.channels, onSuccess: e.onSuccess, onFailed: e.onFailed, onPresence: e.onPresence });t.presenters.push(n), e.onSuccess({ code: 200, content: "ok" });}, fail: function fail(t) {e.onFailed({ code: t.resultCode, content: t.content });} });this.pubSub.goEasySocket.emit(n);}} }, { key: "unsubscribePresence", value: function value(e) {var t = this;if (this.formatCallback(e), r.calibrator.isDef(e.channel)) {if (e.channel += "_presence", this.findPresenceByChannel(e.channel)) {var n = new i["default"]({ name: s.EmitType.unsubscribe, params: { channel: e.channel }, permission: a["default"].READ, singleTimeout: u.SocketTimeout.commonRequestSingle, totalTimeout: u.SocketTimeout.commonRequestTotal, success: function success() {e.onSuccess({ code: 200, content: "ok" }), t.removeChannel(e.channel);}, fail: function fail(t) {e.onFailed({ code: t.resultCode, content: t.content });} });this.pubSub.goEasySocket.emit(n);} else e.onFailed({ code: 400, content: "channel[" + e.channel + "] is not subscribed" });} else e.onFailed({ code: 400, content: "channel is required" });} }, { key: "removeChannel", value: function value(e) {for (var t = 0; t < this.presenters.length; t++) {for (var n = this.presenters[t].channels, o = 0; o < n.length; o++) {if (n[o] == e) {this.presenters[t].channels.splice(o, 1);break;}}}} }, { key: "findPresenceByChannel", value: function value(e) {for (var t = !1, n = null, o = this.presenters.length - 1; o >= 0; o--) {for (var r = this.presenters[o].channels, i = 0; i < r.length; i++) {if (r[i] == e) {t = !0, n = this.presenters[o];break;}}if (t) break;}return n;} }]), e;}();t["default"] = d;}, function (e, t, n) {"use strict";Object.defineProperty(t, "__esModule", { value: !0 });var o = function () {function e(e, t) {for (var n = 0; n < t.length; n++) {var o = t[n];o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);}}return function (t, n, o) {return n && e(t.prototype, n), o && e(t, o), t;};}();var r = function () {function e(t) {!function (e, t) {if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");}(this, e), this.channels = [], this.onSuccess = null, this.onFailed = null, this.onPresence = null, this.channels = t.channels, this.onSuccess = t.onSuccess, this.onFailed = t.onFailed, this.onPresence = t.onPresence;}return o(e, [{ key: "empty", value: function value() {} }]), e;}();t["default"] = r;}, function (e, t, n) {"use strict";var o = this && this.__read || function (e, t) {var n = "function" == typeof Symbol && e[Symbol.iterator];if (!n) return e;var o,r,i = n.call(e),s = [];try {for (; (void 0 === t || t-- > 0) && !(o = i.next()).done;) {s.push(o.value);}} catch (a) {r = { error: a };} finally {try {o && !o.done && (n = i["return"]) && n.call(i);} finally {if (r) throw r.error;}}return s;};t.__esModule = !0, t.GoEasyNotification = void 0;var r = n(59),i = n(0),s = n(27),a = n(46),u = n(60),c = n(15),l = n(31),f = n(16),p = n(11),d = n(7),h = function () {function e(e) {this.uniappPlugin = null, this.regIdPromise = null, this.onClickNotificationCallback = null, this.allowNotification = e, this.supportNotification() && (this.uniappPlugin = uni.requireNativePlugin("GoEasy-Uniapp"), this.uniappPlugin ? this.regIdPromise = this.askRegId() : console.warn("No GoEasy-Uniapp Native Plugin."), this.listenNewMessage());}return e.prototype.listenNewMessage = function () {var e = this;s.GoEasyEventCenter.on(a.IM_INTERNAL_EVENTS.MESSAGE_RECEIVED, function (t) {return e.onReceivedIMMessage(t);}), s.GoEasyEventCenter.on(u.PUBSUB_INTERNAL_EVENTS.MESSAGE_RECEIVED, function (t) {return e.onReceivedPubSubMessage(t);});}, e.prototype.onReceivedIMMessage = function (e) {var t = this;if (i.calibrator.isObject(e.nt) && r.uniApp.runningBackend()) {var n = f["default"].assemble(e),s = { id: n.messageId, tm: n.timestamp, t: n.type, sid: n.senderId, rid: n.receiverId, gid: n.groupId, tt: e.t, nt: e.nt, sd: null, gd: null };e.t === d.ConversationType.PRIVATE ? p.im._dataCache.loadData(n.senderId, d.ConversationType.PRIVATE).then(function (e) {s.sd = JSON.stringify(e), t.createLocalNotification(s);})["catch"](function (e) {t.createLocalNotification(s);}) : e.t === d.ConversationType.GROUP ? Promise.all([p.im._dataCache.loadData(n.senderId, d.ConversationType.PRIVATE), p.im._dataCache.loadData(n.groupId, d.ConversationType.GROUP)]).then(function (e) {var n = o(e, 2),r = n[0],i = n[1];s.sd = JSON.stringify(r), s.gd = JSON.stringify(i), t.createLocalNotification(s);})["catch"](function (e) {t.createLocalNotification(s);}) : this.createLocalNotification(s);}}, e.prototype.onReceivedPubSubMessage = function (e) {if (i.calibrator.isObject(e.nt) && r.uniApp.runningBackend()) {var t = { ch: e.n, ctt: e.c, nt: e.nt };this.createLocalNotification(t);}}, e.prototype.createLocalNotification = function (e) {var t = e.nt.t,n = e.nt.c,o = Object.assign({ title: t, body: n }, e, { g: 1 });delete o.nt, i.calibrator.isObject(o) && o.body && o.title ? this.uniappPlugin ? this.uniappPlugin.createLocalNotification(o) : "undefined" != typeof plus && plus.push.createMessage(o.body, JSON.stringify(o), { title: o.title }) : console.warn("The notification message must contain the <title> and <body> fields");}, e.prototype.askRegId = function () {var e = this,t = null,n = 0,o = function o() {return new Promise(function (r, i) {e.uniappPlugin.regId(function (e) {r(e);}, function (r) {if (!(1e6 === r.data.code && n <= 10)) return clearTimeout(t), i(r);t = setTimeout(function () {n++, e.regIdPromise = o();}, 3500);});});};return o();}, e.prototype.getRegIdPromise = function () {return this.regIdPromise;}, e.prototype.supportNotification = function () {var e = l.PlatformDetector.currentPlatform(),t = c.FrameworkDetector.currentFramework();return this.allowNotification && t === c.Framework.UNIAPP && (e === l.Platform.APP_ANDROID || e === l.Platform.APP_IOS);}, e.prototype.parseMessage = function (e) {return e.ch ? { channel: e.ch, content: e.ctt } : { messageId: e.id, timestamp: e.tm, type: e.t, senderId: e.sid, senderData: e.sd ? JSON.parse(e.sd) : undefined, toType: e.tt, groupId: e.gid, groupData: e.gd ? JSON.parse(e.gd) : undefined };}, e.prototype.listenIOSUserNotificationClick = function () {var e = this;this.uniappPlugin.onClickNotification(function (t) {if (e.availableIntent(t)) {var n = e.parseMessage(t);e.onClickNotificationCallback(n);}});}, e.prototype.listenAndroidNewIntent = function () {var e = this;plus.globalEvent.addEventListener("newintent", function () {var t = plus.runtime.arguments;try {var n = JSON.parse(t);if (n = e.extactIntentIfXiaoMi(n), !e.availableIntent(n)) return;var o = e.parseMessage(n);e.onClickNotificationCallback(o);} catch (r) {}}, !1);}, e.prototype.listenPlusClickNotification = function () {var e = this;plus.push.addEventListener("click", function (t) {if (t && t.payload) try {var n = "string" == typeof t.payload ? JSON.parse(t.payload) : t.payload,o = e.parseMessage(n);e.onClickNotificationCallback(o);} catch (r) {}});}, e.prototype.listenGoEasyClickNotification = function () {var e = l.PlatformDetector.currentPlatform();e === l.Platform.APP_IOS ? this.listenIOSUserNotificationClick() : e === l.Platform.APP_ANDROID && this.listenAndroidNewIntent(), this.getIntentData();}, e.prototype.availableIntent = function (e) {return e && Object.keys(e).length && e.g && 1 === parseInt(e.g);}, e.prototype.extactIntentIfXiaoMi = function (e) {var t = /content=\{(\{.*\})\},/;if (e.key_message && t.exec(e.key_message)) {var n = e.key_message.match(t);e = n.length ? JSON.parse(n[1]) : null;}return e;}, e.prototype.getIntentData = function () {var e = this;this.uniappPlugin.getIntentData(function (t) {if (e.availableIntent(t)) {var n = e.parseMessage(t);e.onClickNotificationCallback(n);}});}, e.prototype.onClickNotification = function (e) {if (this.supportNotification()) {if (!i.calibrator.isFunction(e)) throw new Error("The arguments must be a function.");null === this.onClickNotificationCallback ? (this.onClickNotificationCallback = e, this.uniappPlugin ? this.listenGoEasyClickNotification() : this.listenPlusClickNotification()) : console.warn("The onClickNotification event has been listened on. Please do not listen to it more than once.");} else console.warn("The current environment doesn't support or allowNotification is false.");}, e;}();t.GoEasyNotification = h;}])["default"];});
  2114. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
  2115. /***/ }),
  2116. /***/ 11:
  2117. /*!******************************************************************!*\
  2118. !*** D:/workspace/project_forwork/bizdbKLY_app/lib/imservice.js ***!
  2119. \******************************************************************/
  2120. /*! no static exports found */
  2121. /***/ (function(module, exports, __webpack_require__) {
  2122. "use strict";
  2123. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _restapi = _interopRequireDefault(__webpack_require__(/*! ./restapi */ 12));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
  2124. function Friend(uuid, name, avatar) {
  2125. this.uuid = uuid;
  2126. this.name = name;
  2127. this.avatar = avatar;
  2128. }
  2129. function Group(uuid, name, avatar) {
  2130. this.uuid = uuid;
  2131. this.name = name;
  2132. this.avatar = avatar;
  2133. }
  2134. function IMService(goEasy, GoEasy) {
  2135. //当前用户
  2136. this.currentUser = null;
  2137. //我的群
  2138. this.groups = {};
  2139. // GoEasy 模块
  2140. this.GoEasy = GoEasy;
  2141. //goEasy 实例对象
  2142. this.goEasy = goEasy;
  2143. //私聊消息记录,map格式,每个好友对应一个数组
  2144. this.privateMessages = {};
  2145. //群聊消息记录,map格式,每个群对应一个数组
  2146. this.groupMessages = {};
  2147. /*
  2148. * 监听器们
  2149. *
  2150. * 可以在页面里,根据需求,重写以下监听器,
  2151. * 便于当各种事件触发时,页面能够执行对应的响应
  2152. *
  2153. */
  2154. //收到一条私聊消息
  2155. this.onNewPrivateMessageReceive = function (friendId, message) {};
  2156. //收到一条群聊消息
  2157. this.onNewGroupMessageReceive = function (groupId, message) {};
  2158. }
  2159. //获取群成员
  2160. IMService.prototype.getGroupMembers = function (groupId) {
  2161. var members = _restapi.default.findGroupMembers(groupId);
  2162. var membersMap = {};
  2163. members.map(function (item) {
  2164. membersMap[item.uuid] = item;
  2165. });
  2166. return membersMap;
  2167. };
  2168. IMService.prototype.findGroupById = function (groupId) {
  2169. var group = _restapi.default.findGroupById(groupId);
  2170. return new Group(group.uuid, group.name, group.avatar);
  2171. };
  2172. IMService.prototype.findFriendById = function (userId) {
  2173. var user = _restapi.default.findUserById(userId);
  2174. return new Friend(user.uuid, user.name, user.avatar);
  2175. };
  2176. IMService.prototype.getGroupMessages = function (groupId) {
  2177. if (!this.groupMessages[groupId]) {
  2178. this.groupMessages[groupId] = [];
  2179. }
  2180. return this.groupMessages[groupId];
  2181. };
  2182. IMService.prototype.getPrivateMessages = function (friendId) {
  2183. if (!this.privateMessages[friendId]) {
  2184. this.privateMessages[friendId] = [];
  2185. }
  2186. return this.privateMessages[friendId];
  2187. };
  2188. //连接GoEasy
  2189. IMService.prototype.connect = function (currentUser) {
  2190. this.currentUser = currentUser;
  2191. var userData = {
  2192. name: this.currentUser.name,
  2193. avatar: this.currentUser.avatar };
  2194. //初始化相关的监听器
  2195. this.initialListeners();
  2196. this.goEasy.connect({
  2197. id: this.currentUser.uuid,
  2198. data: userData,
  2199. onSuccess: function onSuccess() {
  2200. //连接成功
  2201. console.log("GoEasy connect successfully.");
  2202. },
  2203. onFailed: function onFailed(error) {
  2204. //连接失败
  2205. console.log("Failed to connect GoEasy, code:" + error.code + ",error:" + error.content);
  2206. },
  2207. onProgress: function onProgress(attempts) {//连接或自动重连中
  2208. console.log("GoEasy is connecting", attempts);
  2209. } });
  2210. // this.subscribeGroupMessage(currentUser);
  2211. };
  2212. IMService.prototype.subscribeGroupMessage = function () {
  2213. var groups = _restapi.default.findGroups(this.currentUser);
  2214. var groupIds = groups.map(function (item) {return item.uuid;});
  2215. this.goEasy.im.subscribeGroup({
  2216. groupIds: groupIds,
  2217. onSuccess: function onSuccess() {
  2218. //订阅成功
  2219. console.log('订阅群消息成功');
  2220. },
  2221. onFailed: function onFailed(error) {
  2222. //订阅失败
  2223. console.log('订阅群消息失败');
  2224. } });
  2225. };
  2226. //初始化监听器
  2227. IMService.prototype.initialListeners = function () {var _this = this;
  2228. //监听私聊消息
  2229. this.goEasy.im.on(this.GoEasy.IM_EVENT.PRIVATE_MESSAGE_RECEIVED, function (message) {
  2230. //更新私聊消息记录
  2231. var friendId;
  2232. if (_this.currentUser.uuid === message.senderId) {
  2233. friendId = message.receiverId;
  2234. } else {
  2235. friendId = message.senderId;
  2236. }
  2237. var friendMessages = _this.getPrivateMessages(friendId);
  2238. friendMessages.push(message);
  2239. //如果页面传入了相应的listener,执行listener
  2240. _this.onNewPrivateMessageReceive(friendId, message);
  2241. });
  2242. //监听群聊消息
  2243. this.goEasy.im.on(this.GoEasy.IM_EVENT.GROUP_MESSAGE_RECEIVED, function (message) {
  2244. var groupId = message.groupId;
  2245. //更新群聊消息记录
  2246. var groupMessages = _this.getGroupMessages(groupId);
  2247. groupMessages.push(message);
  2248. //如果页面传入了相应的listener,执行listener
  2249. _this.onNewGroupMessageReceive(groupId, message);
  2250. });
  2251. };var _default =
  2252. IMService;exports.default = _default;
  2253. /***/ }),
  2254. /***/ 12:
  2255. /*!****************************************************************!*\
  2256. !*** D:/workspace/project_forwork/bizdbKLY_app/lib/restapi.js ***!
  2257. \****************************************************************/
  2258. /*! no static exports found */
  2259. /***/ (function(module, exports, __webpack_require__) {
  2260. "use strict";
  2261. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //用户数据示例
  2262. var users = [
  2263. {
  2264. "uuid": "08c0a6ec-a42b-47b2-bb1e-15e0f5f9a19a",
  2265. "name": "Mattie",
  2266. "password": "123",
  2267. "avatar": '../static/images_go/Avatar-1.png' },
  2268. {
  2269. "uuid": "3bb179af-bcc5-4fe0-9dac-c05688484649",
  2270. "name": "Wallace",
  2271. "password": "123",
  2272. "avatar": '../static/images_go/Avatar-2.png' },
  2273. {
  2274. "uuid": "fdee46b0-4b01-4590-bdba-6586d7617f95",
  2275. "name": "Tracy",
  2276. "password": "123",
  2277. "avatar": '/static/images/Avatar-3.png' },
  2278. {
  2279. "uuid": "33c3693b-dbb0-4bc9-99c6-fa77b9eb763f",
  2280. "name": "Juanita",
  2281. "password": "123",
  2282. "avatar": '/static/images/Avatar-4.png' }];
  2283. //群数据示例
  2284. var groups = [
  2285. {
  2286. "uuid": "group-a42b-47b2-bb1e-15e0f5f9a19a",
  2287. "name": "小程序交流群",
  2288. "avatar": '/static/images/wx.png',
  2289. "userList": ['08c0a6ec-a42b-47b2-bb1e-15e0f5f9a19a', '3bb179af-bcc5-4fe0-9dac-c05688484649', 'fdee46b0-4b01-4590-bdba-6586d7617f95', '33c3693b-dbb0-4bc9-99c6-fa77b9eb763f'] },
  2290. {
  2291. "uuid": "group-4b01-4590-bdba-6586d7617f95",
  2292. "name": "UniApp交流群",
  2293. "avatar": '/static/images/uniapp.png',
  2294. "userList": ['08c0a6ec-a42b-47b2-bb1e-15e0f5f9a19a', 'fdee46b0-4b01-4590-bdba-6586d7617f95', '33c3693b-dbb0-4bc9-99c6-fa77b9eb763f'] },
  2295. {
  2296. "uuid": "group-dbb0-4bc9-99c6-fa77b9eb763f",
  2297. "name": "GoEasy交流群",
  2298. "avatar": '/static/images/goeasy.jpeg',
  2299. "userList": ['08c0a6ec-a42b-47b2-bb1e-15e0f5f9a19a', '3bb179af-bcc5-4fe0-9dac-c05688484649'] }];
  2300. function RestApi() {
  2301. }
  2302. RestApi.prototype.findFriends = function (user) {
  2303. var friendList = users.filter(function (v) {return v.uuid != user.uuid;});
  2304. return friendList;
  2305. };
  2306. RestApi.prototype.findGroups = function (user) {
  2307. var groupList = groups.filter(function (v) {return v.userList.find(function (id) {return id == user.uuid;});});
  2308. return groupList;
  2309. };
  2310. RestApi.prototype.findUser = function (username, password) {
  2311. var user = users.find(function (user) {return user.name === username && user.password === password;});
  2312. if (user) {
  2313. return {
  2314. uuid: user.uuid,
  2315. avatar: user.avatar,
  2316. name: user.name };
  2317. }
  2318. return user;
  2319. };
  2320. RestApi.prototype.findGroupById = function (groupId) {
  2321. var group = groups.find(function (group) {return group.uuid == groupId;});
  2322. return group;
  2323. };
  2324. RestApi.prototype.findUserById = function (userId) {
  2325. var user = users.find(function (user) {return user.uuid == userId;});
  2326. return user;
  2327. };
  2328. RestApi.prototype.findGroupMembers = function (groupId) {
  2329. var members = [];
  2330. var group = groups.find(function (v) {return v.uuid == groupId;});
  2331. users.map(function (user) {
  2332. if (group.userList.find(function (v) {return v == user.uuid;})) {
  2333. members.push(user);
  2334. }
  2335. });
  2336. return members;
  2337. };var _default =
  2338. new RestApi();exports.default = _default;
  2339. /***/ }),
  2340. /***/ 13:
  2341. /*!***************************************************************!*\
  2342. !*** D:/workspace/project_forwork/bizdbKLY_app/commonData.js ***!
  2343. \***************************************************************/
  2344. /*! no static exports found */
  2345. /***/ (function(module, exports, __webpack_require__) {
  2346. "use strict";
  2347. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
  2348. var _commonUserTest = _interopRequireDefault(__webpack_require__(/*! ./commonUserTest.js */ 14));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} // 公共数据
  2349. var _default =
  2350. {
  2351. //角色,0代表普通用户,1代表商家(两个小程序,在此设定即可)
  2352. // data_token: commonUserTest.data_token_data,
  2353. // sys_role: commonUserTest.data_token_data['role'],
  2354. //sys_role: 1, //0为非商家
  2355. sys_role: 1,
  2356. //sys_role: 0,
  2357. // 招聘信息发布字段
  2358. releaseInfo: {
  2359. sub_arr0: [{
  2360. key: 'title',
  2361. name: '标题',
  2362. type: 'text' },
  2363. // {
  2364. // key: 'feetotal',
  2365. // name: '总金额/人',
  2366. // type: 'number',
  2367. // mention: '平台会因供需情况收取相应的服务费再支付给应聘者。'
  2368. // },
  2369. // {
  2370. // key: 'linker_name',
  2371. // name: '联系人',
  2372. // type: 'text',
  2373. // },
  2374. {
  2375. key: 'linker_phone',
  2376. name: '联系电话',
  2377. type: 'text' }],
  2378. sub_arr1: [{
  2379. key: 'need_total',
  2380. name: '需求人数',
  2381. type: 'number' }],
  2382. sub_arr1_s: [{
  2383. key: 'need_total',
  2384. name: '需求总人数',
  2385. type: 'number' },
  2386. {
  2387. key: 'need_perday',
  2388. name: '每天发布人数',
  2389. type: 'number' }],
  2390. sub_arr2: [{
  2391. key: 'work_desc',
  2392. name: '岗位详情',
  2393. type: 'text' },
  2394. {
  2395. key: 'requirements',
  2396. name: '工作要求',
  2397. type: 'text' }] },
  2398. // 隐私政策
  2399. policy: '使用协议及隐私条款详情使用协议及隐私条款详情使用协议及隐私条款详情使用协议及隐私条款详情',
  2400. // 企业信息textarea字段
  2401. resume_info_item_edit_merchant: [{
  2402. key: 'company_desc',
  2403. name: '公司简介' }],
  2404. // 个人简历textarea字段
  2405. resume_info_item_edit: [{
  2406. key: 'nowaddr',
  2407. name: '详细地址' },
  2408. {
  2409. key: 'work_history',
  2410. name: '工作经历' },
  2411. {
  2412. key: 'work_skills',
  2413. name: '特长技能' },
  2414. {
  2415. key: 'self_evaluation',
  2416. name: '自我评价' }],
  2417. // 企业信息input字段
  2418. user_info_item_merchant: [{
  2419. key: 'linker_name',
  2420. name: '联系人',
  2421. type: 'text' },
  2422. {
  2423. key: 'company_addr',
  2424. name: '公司地址',
  2425. type: 'text' }],
  2426. // 个人简历input字段
  2427. user_info_item: [{
  2428. key: 'linker_phone',
  2429. name: '联系电话',
  2430. type: 'text' },
  2431. {
  2432. key: 'nickname',
  2433. name: '昵称',
  2434. type: 'text' },
  2435. {
  2436. key: 'nowaddr',
  2437. name: '住址',
  2438. type: 'text' },
  2439. {
  2440. key: 'nation_name',
  2441. name: '民族',
  2442. type: 'text' },
  2443. {
  2444. key: 'birthaddr',
  2445. name: '籍贯',
  2446. type: 'text' },
  2447. {
  2448. key: 'body_weight',
  2449. name: '体重(kg)',
  2450. type: 'number' },
  2451. {
  2452. key: 'body_height',
  2453. name: '身高(cm)',
  2454. type: 'number' }],
  2455. // 个人我的竖向菜单
  2456. my_menu_collect: [{
  2457. key: 'resumeCheck?allow=1',
  2458. name: '我的简历',
  2459. name_mer: '公司信息',
  2460. icon: 'menu_resume',
  2461. need_login: true },
  2462. {
  2463. key: 'appraisal',
  2464. name: '我的评价',
  2465. name_mer: '我的评价',
  2466. icon: 'menu_eva',
  2467. need_login: true },
  2468. {
  2469. key: 'activity',
  2470. name: '活动订单',
  2471. icon: 'menu_act',
  2472. need_login: true },
  2473. {
  2474. key: 'myGroups',
  2475. name: '我的组队',
  2476. icon: 'menu_group',
  2477. need_login: true },
  2478. {
  2479. key: 'toRecruit',
  2480. name: '我要招聘',
  2481. icon: 'menu_recruit',
  2482. need_login: false },
  2483. {
  2484. key: 'makeMoney',
  2485. name: '分享赚钱',
  2486. icon: 'recruit_share',
  2487. need_login: true },
  2488. {
  2489. key: 'about',
  2490. name: '关于平台',
  2491. icon: 'menu_about',
  2492. need_login: false },
  2493. {
  2494. key: 'service/index',
  2495. name: '服务中心',
  2496. icon: 'menu_service',
  2497. need_login: false },
  2498. {
  2499. key: 'quit',
  2500. name: '退出登录',
  2501. icon: 'menu_exit',
  2502. need_login: false },
  2503. {
  2504. key: '../merchant/personal/completeOrderList',
  2505. name: '已完成订单',
  2506. icon: 'menu_evaluate',
  2507. need_login: true },
  2508. {
  2509. key: 'grant',
  2510. name: '已授权经理',
  2511. icon: 'menu_check',
  2512. need_login: true },
  2513. {
  2514. key: 'verify',
  2515. name: '扫码核销',
  2516. icon: 'menu_check',
  2517. need_login: true },
  2518. {
  2519. key: 'toMember',
  2520. name: '进入用户端',
  2521. icon: 'menu_user',
  2522. need_login: false }],
  2523. // 钱包过程处理
  2524. todo_wal_title_obj: {
  2525. buyPrepay: {
  2526. bizCatalog: 'NAccountEntity',
  2527. handleMode: 'buyPrepay',
  2528. title: '充值人数' },
  2529. wxRecharge: {
  2530. bizCatalog: 'WorkerEntity',
  2531. handleMode: 'wxRecharge',
  2532. title: '充值金额' },
  2533. withdraw: {
  2534. bizCatalog: 'AccountEntity',
  2535. handleMode: 'withdraw',
  2536. title: '提现金额' } },
  2537. // 评价模式
  2538. appraisal_query_arr: function appraisal_query_arr(id) {return [{
  2539. index: 0,
  2540. title_show: '此商家的评价',
  2541. name: '会员查看商家被评价',
  2542. toTraderId: id,
  2543. bizCatalog: 2 },
  2544. {
  2545. index: 1,
  2546. title_show: '此会员的评价',
  2547. name: '商家查看会员被评价',
  2548. toWorkerId: id,
  2549. bizCatalog: 3 },
  2550. {
  2551. index: 2,
  2552. title_show: '我收到的评价',
  2553. name: '商家查看自己的被评价',
  2554. toTraderId: id,
  2555. bizCatalog: 2 },
  2556. {
  2557. index: 3,
  2558. title_show: '我收到的评价',
  2559. name: '会员查看自己的被评价',
  2560. toWorkerId: id,
  2561. bizCatalog: 3 },
  2562. {
  2563. index: 4,
  2564. title_show: '我的评价',
  2565. name: '会员查看自己的评价',
  2566. fromWorkerId: id,
  2567. bizCatalog: 2 },
  2568. {
  2569. index: 5,
  2570. title_show: '我的评价',
  2571. name: '商家查看自己的评价',
  2572. fromTraderId: id,
  2573. bizCatalog: 3 }];},
  2574. // 订单过程处理
  2575. todo_title_obj: {
  2576. enrollCancel: {
  2577. title: '取消报名',
  2578. remarks: '请填写取消原因',
  2579. is_require: true,
  2580. handleMode: 'enrollCancel',
  2581. todo: '' },
  2582. //会员
  2583. startWork: {
  2584. title: '开始工作',
  2585. remarks: '操作备注',
  2586. handleMode: 'processControl',
  2587. todo: 'start' },
  2588. //会员
  2589. finishWork: {
  2590. title: '完成工作',
  2591. remarks: '操作备注',
  2592. handleMode: 'processControl',
  2593. todo: 'finish' },
  2594. //会员
  2595. refuseSign: {
  2596. title: '拒绝录用',
  2597. remarks: '请填写拒绝原因',
  2598. is_require: true,
  2599. handleMode: 'auditEnroll',
  2600. todo: 'refuse' },
  2601. //商家
  2602. allowSign: {
  2603. title: '录用',
  2604. remarks: '操作备注',
  2605. handleMode: 'auditEnroll',
  2606. todo: 'allow' },
  2607. //商家
  2608. refusePay: {
  2609. title: '拒绝支付',
  2610. remarks: '请填写拒绝支付的原因',
  2611. is_require: true,
  2612. handleMode: 'denyPay',
  2613. todo: 'refuse' },
  2614. //商家
  2615. allowPay: {
  2616. title: '支付',
  2617. remarks: '操作备注',
  2618. handleMode: 'paySettle',
  2619. todo: 'refuse' },
  2620. //商家
  2621. appraise: {
  2622. title: '评价',
  2623. remarks: '评价内容',
  2624. handleMode: 'appraise',
  2625. todo: '' }
  2626. //商家
  2627. },
  2628. //会员端订单状态列
  2629. order_status_arr_merchant: [{
  2630. name: '待录用',
  2631. color: '#089D96',
  2632. wkstatus: 2 },
  2633. {
  2634. name: '进行中',
  2635. color: '#FF8111',
  2636. wkstatus: 91,
  2637. children: [{
  2638. name: '已审核待开工',
  2639. wkstatus: 3 },
  2640. {
  2641. name: '已开始工作',
  2642. wkstatus: 5 }] },
  2643. {
  2644. name: '待结算',
  2645. color: '#DB1B14',
  2646. wkstatus: 6 },
  2647. {
  2648. name: '已结算',
  2649. color: '#089D96',
  2650. wkstatus: 7 },
  2651. {
  2652. name: '其他工单',
  2653. color: '#DB1B14',
  2654. wkstatus: 92,
  2655. key: 'ss_exceptTotal',
  2656. children: [{
  2657. name: '全部',
  2658. name_mer: '全部',
  2659. wkstatus: '',
  2660. key: 'all' },
  2661. {
  2662. name: '被驳回',
  2663. name_mer: '已驳回',
  2664. wkstatus: 4,
  2665. key: 'ss_unreadWKTotal_1' },
  2666. {
  2667. name: '已取消',
  2668. name_mer: '取消报名',
  2669. wkstatus: 8,
  2670. key: 'ss_unreadWKTotal_2' },
  2671. {
  2672. name: '商家违约',
  2673. name_mer: '已违约',
  2674. wkstatus: 9,
  2675. key: 'ss_unreadWKTotal_3' },
  2676. {
  2677. name: '被动取消',
  2678. name_mer: '被动取消',
  2679. wkstatus: 10,
  2680. key: 'ss_unreadWKTotal_4' },
  2681. {
  2682. name: '未结算',
  2683. name_mer: '未结算',
  2684. wkstatus: 11,
  2685. key: 'ss_unreadWKTotal_5' },
  2686. {
  2687. name: '其他',
  2688. name_mer: '其他',
  2689. wkstatus: 14,
  2690. key: 'ss_unreadWKTotal_Other' }] }],
  2691. // 需要提交的招聘测试数据
  2692. fake_sub_data: {
  2693. settle_catalog: 1, //是否批量招聘
  2694. title: '测试标题1127', //标题
  2695. profile_photo: 'http://youxinpin.oss-cn-beijing.aliyuncs.com/zskp/userHead/20211126/1637896282220.jpg', //招聘头图
  2696. feeper: 99.99, //每人金额 单位元 保留2位小数
  2697. meals_providing: 0, //是否管饭 0-不管;1-管饭;
  2698. begin_datetime: '2021-10-10 20:12:11', //起始日期
  2699. finish_datetime: '2021-10-15 20:12:11', //截至日期
  2700. begin_hour: "早8", //上班时间
  2701. finish_hour: "18:30", //下班时间
  2702. need_total: 100, //需求总人数
  2703. need_perday: 10, //每天需求人数
  2704. linker_name: "王启", //联系人姓名
  2705. linker_phone: "18612345678", //联系人电话
  2706. age_mode: 1, //年龄, 0-不限;1-限制
  2707. age_min: 16, //最小年龄
  2708. age_max: 36, //最大年龄
  2709. gender_mode: 0, //性别, 0-不限;1-限男;2-限女;
  2710. work_addr: '豪威大厦', //工作地点
  2711. work_addr_lng: "117.33", //经度117.333
  2712. work_addr_lat: "39.99", //纬度39.33
  2713. work_desc: "工作内容工作内容", //工作内容
  2714. requirements: "能歌善舞", //工作要求
  2715. enroll_audit: 0, //是否需要审核
  2716. settle_mode: 1 //核销模式
  2717. } };exports.default = _default;
  2718. /***/ }),
  2719. /***/ 14:
  2720. /*!*******************************************************************!*\
  2721. !*** D:/workspace/project_forwork/bizdbKLY_app/commonUserTest.js ***!
  2722. \*******************************************************************/
  2723. /*! no static exports found */
  2724. /***/ (function(module, exports, __webpack_require__) {
  2725. "use strict";
  2726. /* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; // 测试账号
  2727. // console.log('系统信息')
  2728. // console.log(uni.getSystemInfoSync())
  2729. var device = '';
  2730. if (uni.getSystemInfoSync()['platform'] == 'android') {
  2731. if (uni.getSystemInfoSync()['windowWidth'] ==
  2732. 360 && uni.getSystemInfoSync()['windowHeight'] == 640) {
  2733. device = 'galaxyS5';
  2734. }
  2735. if (uni.getSystemInfoSync()['windowWidth'] ==
  2736. 411 && uni.getSystemInfoSync()['windowHeight'] == 731) {
  2737. device = 'Pixel2';
  2738. }
  2739. if (uni.getSystemInfoSync()['windowWidth'] ==
  2740. 411 && uni.getSystemInfoSync()['windowHeight'] == 823) {
  2741. device = 'Pixel2XL';
  2742. }
  2743. } else {
  2744. if (uni.getSystemInfoSync()['windowWidth'] ==
  2745. 320 && uni.getSystemInfoSync()['windowHeight'] == 568) {
  2746. device = 'iphone5';
  2747. }
  2748. if (uni.getSystemInfoSync()['windowWidth'] ==
  2749. 375 && uni.getSystemInfoSync()['windowHeight'] == 667) {
  2750. device = 'iphone6';
  2751. }
  2752. if (uni.getSystemInfoSync()['windowWidth'] == 414 &&
  2753. uni.getSystemInfoSync()['windowHeight'] == 736) {
  2754. device = 'iphone6Plus';
  2755. }
  2756. if (uni.getSystemInfoSync()['windowWidth'] ==
  2757. 375 && uni.getSystemInfoSync()['windowHeight'] == 812) {
  2758. device = 'iphoneX';
  2759. }
  2760. if (uni.getSystemInfoSync()['windowWidth'] ==
  2761. 768 && uni.getSystemInfoSync()['windowHeight'] == 1024) {
  2762. device = 'iPad';
  2763. }
  2764. }
  2765. // console.log(device)
  2766. var data_token = {
  2767. // 商家安卓
  2768. galaxyS5: { //商家/王启利
  2769. FOREND_TOKEN: '0_16410285003b52483389fff69b346aded3cb2fd7c3',
  2770. phone: '17640181459',
  2771. role: 1 },
  2772. Pixel2: { //商家/刘丽丽
  2773. FOREND_TOKEN: '0_1641708193e465a78a2001815048b7578d5b0c522c',
  2774. phone: '15620638138',
  2775. role: 1 },
  2776. Pixel2XL: { //商家/郑丹
  2777. FOREND_TOKEN: '0_1641029086bdd9a0a3eee33a57599c1190551af157',
  2778. phone: '18920787806',
  2779. role: 1 },
  2780. // 非商家苹果
  2781. iphone5: { //非商家/郑丹
  2782. FOREND_TOKEN: '0_16410286940877303e14d960c9531ad3ed30ad1893',
  2783. phone: '18920787806',
  2784. role: 0 },
  2785. iPad: { //非商家/刘丽丽
  2786. FOREND_TOKEN: '0_16410286321c07727beb9b333892b76df64888134b',
  2787. phone: '15620638138',
  2788. role: 0 },
  2789. iphone6: { //非商家/王启利
  2790. FOREND_TOKEN: '0_16411115964c58fe94cc824e171ab1c737c5b0ff3b',
  2791. phone: '17640181459',
  2792. role: 0 },
  2793. iphone6Plus: { //非商家/尤
  2794. FOREND_TOKEN: '0_1641708193abc2303e086db9de0b09f541eeb9b6b0',
  2795. phone: '18920407769',
  2796. role: 0 },
  2797. iphoneX: { //非商家/庞亚静
  2798. FOREND_TOKEN: '0_1641708193101e6c433fb28188718dc8b672527dbe',
  2799. phone: '18222906683',
  2800. role: 0 } };var _default =
  2801. {
  2802. data_token_data: data_token[device] };exports.default = _default;
  2803. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
  2804. /***/ }),
  2805. /***/ 17:
  2806. /*!**********************************************************************************************************!*\
  2807. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
  2808. \**********************************************************************************************************/
  2809. /*! exports provided: default */
  2810. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2811. "use strict";
  2812. __webpack_require__.r(__webpack_exports__);
  2813. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
  2814. /* globals __VUE_SSR_CONTEXT__ */
  2815. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  2816. // This module is a runtime utility for cleaner component module output and will
  2817. // be included in the final webpack user bundle.
  2818. function normalizeComponent (
  2819. scriptExports,
  2820. render,
  2821. staticRenderFns,
  2822. functionalTemplate,
  2823. injectStyles,
  2824. scopeId,
  2825. moduleIdentifier, /* server only */
  2826. shadowMode, /* vue-cli only */
  2827. components, // fixed by xxxxxx auto components
  2828. renderjs // fixed by xxxxxx renderjs
  2829. ) {
  2830. // Vue.extend constructor export interop
  2831. var options = typeof scriptExports === 'function'
  2832. ? scriptExports.options
  2833. : scriptExports
  2834. // fixed by xxxxxx auto components
  2835. if (components) {
  2836. if (!options.components) {
  2837. options.components = {}
  2838. }
  2839. var hasOwn = Object.prototype.hasOwnProperty
  2840. for (var name in components) {
  2841. if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
  2842. options.components[name] = components[name]
  2843. }
  2844. }
  2845. }
  2846. // fixed by xxxxxx renderjs
  2847. if (renderjs) {
  2848. (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
  2849. this[renderjs.__module] = this
  2850. });
  2851. (options.mixins || (options.mixins = [])).push(renderjs)
  2852. }
  2853. // render functions
  2854. if (render) {
  2855. options.render = render
  2856. options.staticRenderFns = staticRenderFns
  2857. options._compiled = true
  2858. }
  2859. // functional template
  2860. if (functionalTemplate) {
  2861. options.functional = true
  2862. }
  2863. // scopedId
  2864. if (scopeId) {
  2865. options._scopeId = 'data-v-' + scopeId
  2866. }
  2867. var hook
  2868. if (moduleIdentifier) { // server build
  2869. hook = function (context) {
  2870. // 2.3 injection
  2871. context =
  2872. context || // cached call
  2873. (this.$vnode && this.$vnode.ssrContext) || // stateful
  2874. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  2875. // 2.2 with runInNewContext: true
  2876. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  2877. context = __VUE_SSR_CONTEXT__
  2878. }
  2879. // inject component styles
  2880. if (injectStyles) {
  2881. injectStyles.call(this, context)
  2882. }
  2883. // register component module identifier for async chunk inferrence
  2884. if (context && context._registeredComponents) {
  2885. context._registeredComponents.add(moduleIdentifier)
  2886. }
  2887. }
  2888. // used by ssr in case component is cached and beforeCreate
  2889. // never gets called
  2890. options._ssrRegister = hook
  2891. } else if (injectStyles) {
  2892. hook = shadowMode
  2893. ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
  2894. : injectStyles
  2895. }
  2896. if (hook) {
  2897. if (options.functional) {
  2898. // for template-only hot-reload because in that case the render fn doesn't
  2899. // go through the normalizer
  2900. options._injectStyles = hook
  2901. // register for functioal component in vue file
  2902. var originalRender = options.render
  2903. options.render = function renderWithStyleInjection (h, context) {
  2904. hook.call(context)
  2905. return originalRender(h, context)
  2906. }
  2907. } else {
  2908. // inject component registration as beforeCreate hook
  2909. var existing = options.beforeCreate
  2910. options.beforeCreate = existing
  2911. ? [].concat(existing, hook)
  2912. : [hook]
  2913. }
  2914. }
  2915. return {
  2916. exports: scriptExports,
  2917. options: options
  2918. }
  2919. }
  2920. /***/ }),
  2921. /***/ 174:
  2922. /*!*********************************************************************!*\
  2923. !*** D:/workspace/project_forwork/bizdbKLY_app/lib/EmojiDecoder.js ***!
  2924. \*********************************************************************/
  2925. /*! no static exports found */
  2926. /***/ (function(module, exports, __webpack_require__) {
  2927. "use strict";
  2928. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;} /*
  2929. * @Author: jack.lu
  2930. * @Date: 2020/9/11
  2931. * @Last Modified by: jack.lu
  2932. * @Last Modified time: 2020/9/11 4:35 下午
  2933. */var
  2934. EmojiDecoder = /*#__PURE__*/function () {
  2935. function EmojiDecoder(url, emojiMap) {_classCallCheck(this, EmojiDecoder);_defineProperty(this, "emojiMap", null);_defineProperty(this, "url", "");_defineProperty(this, "patterns", []);_defineProperty(this, "metaChars", /[[\]{}()*+?.\\|^$\-,&#\s]/g);
  2936. this.url = url || '';
  2937. this.emojiMap = emojiMap || {};
  2938. for (var i in this.emojiMap) {
  2939. if (this.emojiMap.hasOwnProperty(i)) {
  2940. this.patterns.push('(' + i.replace(this.metaChars, "\\$&") + ')');
  2941. }
  2942. }
  2943. }_createClass(EmojiDecoder, [{ key: "decode", value: function decode(
  2944. text) {var _this = this;
  2945. return text.replace(new RegExp(this.patterns.join('|'), 'g'), function (match) {
  2946. return typeof _this.emojiMap[match] != 'undefined' ? '<img height="20rpx" width="20rpx" src="' + _this.url + _this.emojiMap[match] + '" />' : match;
  2947. });
  2948. } }]);return EmojiDecoder;}();var _default =
  2949. EmojiDecoder;exports.default = _default;
  2950. /***/ }),
  2951. /***/ 2:
  2952. /*!***********************************!*\
  2953. !*** (webpack)/buildin/global.js ***!
  2954. \***********************************/
  2955. /*! no static exports found */
  2956. /***/ (function(module, exports) {
  2957. var g;
  2958. // This works in non-strict mode
  2959. g = (function() {
  2960. return this;
  2961. })();
  2962. try {
  2963. // This works if eval is allowed (see CSP)
  2964. g = g || new Function("return this")();
  2965. } catch (e) {
  2966. // This works if the window reference is available
  2967. if (typeof window === "object") g = window;
  2968. }
  2969. // g can still be undefined, but nothing to do about it...
  2970. // We return undefined, instead of nothing here, so it's
  2971. // easier to handle this case. if(!global) { ...}
  2972. module.exports = g;
  2973. /***/ }),
  2974. /***/ 211:
  2975. /*!****************************************************************!*\
  2976. !*** D:/workspace/project_forwork/bizdbKLY_app/common/city.js ***!
  2977. \****************************************************************/
  2978. /*! no static exports found */
  2979. /***/ (function(module, exports) {
  2980. // 所有城市
  2981. var cityObj = [{
  2982. 'id': '35',
  2983. 'provincecode': '150000',
  2984. 'city': "\u963F\u62C9\u5584\u76DF",
  2985. 'code': '152900',
  2986. 'initial': 'A' },
  2987. {
  2988. 'id': '38',
  2989. 'provincecode': '210000',
  2990. 'city': "\u978D\u5C71\u5E02",
  2991. 'code': '210300',
  2992. 'initial': 'A' },
  2993. {
  2994. 'id': '105',
  2995. 'provincecode': '340000',
  2996. 'city': "\u5B89\u5E86\u5E02",
  2997. 'code': '340800',
  2998. 'initial': 'A' },
  2999. {
  3000. 'id': '156',
  3001. 'provincecode': '410000',
  3002. 'city': "\u5B89\u9633\u5E02",
  3003. 'code': '410500',
  3004. 'initial': 'A' },
  3005. {
  3006. 'id': '256',
  3007. 'provincecode': '510000',
  3008. 'city': "\u963F\u575D\u85CF\u65CF\u7F8C\u65CF\u81EA\u6CBB\u5DDE",
  3009. 'code': '513200',
  3010. 'initial': 'A' },
  3011. {
  3012. 'id': '262',
  3013. 'provincecode': '520000',
  3014. 'city': "\u5B89\u987A\u5E02",
  3015. 'code': '520400',
  3016. 'initial': 'A' },
  3017. {
  3018. 'id': '289',
  3019. 'provincecode': '540000',
  3020. 'city': "\u963F\u91CC\u5730\u533A",
  3021. 'code': '542500',
  3022. 'initial': 'A' },
  3023. {
  3024. 'id': '299',
  3025. 'provincecode': '610000',
  3026. 'city': "\u5B89\u5EB7\u5E02",
  3027. 'code': '610900',
  3028. 'initial': 'A' },
  3029. {
  3030. 'id': '335',
  3031. 'provincecode': '650000',
  3032. 'city': "\u963F\u514B\u82CF\u5730\u533A",
  3033. 'code': '652900',
  3034. 'initial': 'A' },
  3035. {
  3036. 'id': '341',
  3037. 'provincecode': '650000',
  3038. 'city': "\u963F\u52D2\u6CF0\u5730\u533A",
  3039. 'code': '654300',
  3040. 'initial': 'A' },
  3041. {
  3042. 'id': '1',
  3043. 'provincecode': '110100',
  3044. 'city': "\u5317\u4EAC\u5E02",
  3045. 'code': '110100',
  3046. 'initial': 'B' },
  3047. {
  3048. 'id': '7',
  3049. 'provincecode': '130000',
  3050. 'city': "\u4FDD\u5B9A\u5E02",
  3051. 'code': '130600',
  3052. 'initial': 'B' },
  3053. {
  3054. 'id': '25',
  3055. 'provincecode': '150000',
  3056. 'city': "\u5305\u5934\u5E02",
  3057. 'code': '150200',
  3058. 'initial': 'B' },
  3059. {
  3060. 'id': '31',
  3061. 'provincecode': '150000',
  3062. 'city': "\u5DF4\u5F66\u6DD6\u5C14\u5E02",
  3063. 'code': '150800',
  3064. 'initial': 'B' },
  3065. {
  3066. 'id': '40',
  3067. 'provincecode': '210000',
  3068. 'city': "\u672C\u6EAA\u5E02",
  3069. 'code': '210500',
  3070. 'initial': 'B' },
  3071. {
  3072. 'id': '55',
  3073. 'provincecode': '220000',
  3074. 'city': "\u767D\u5C71\u5E02",
  3075. 'code': '220600',
  3076. 'initial': 'B' },
  3077. {
  3078. 'id': '57',
  3079. 'provincecode': '220000',
  3080. 'city': "\u767D\u57CE\u5E02",
  3081. 'code': '220800',
  3082. 'initial': 'B' },
  3083. {
  3084. 'id': '100',
  3085. 'provincecode': '340000',
  3086. 'city': "\u868C\u57E0\u5E02",
  3087. 'code': '340300',
  3088. 'initial': 'B' },
  3089. {
  3090. 'id': '150',
  3091. 'provincecode': '370000',
  3092. 'city': "\u6EE8\u5DDE\u5E02",
  3093. 'code': '371600',
  3094. 'initial': 'B' },
  3095. {
  3096. 'id': '222',
  3097. 'provincecode': '450000',
  3098. 'city': "\u5317\u6D77\u5E02",
  3099. 'code': '450500',
  3100. 'initial': 'B' },
  3101. {
  3102. 'id': '227',
  3103. 'provincecode': '450000',
  3104. 'city': "\u767E\u8272\u5E02",
  3105. 'code': '451000',
  3106. 'initial': 'B' },
  3107. {
  3108. 'id': '254',
  3109. 'provincecode': '510000',
  3110. 'city': "\u5DF4\u4E2D\u5E02",
  3111. 'code': '511900',
  3112. 'initial': 'B' },
  3113. {
  3114. 'id': '265',
  3115. 'provincecode': '520000',
  3116. 'city': "\u6BD5\u8282\u5730\u533A",
  3117. 'code': '522400',
  3118. 'initial': 'B' },
  3119. {
  3120. 'id': '271',
  3121. 'provincecode': '530000',
  3122. 'city': "\u4FDD\u5C71\u5E02",
  3123. 'code': '530500',
  3124. 'initial': 'B' },
  3125. {
  3126. 'id': '293',
  3127. 'provincecode': '610000',
  3128. 'city': "\u5B9D\u9E21\u5E02",
  3129. 'code': '610300',
  3130. 'initial': 'B' },
  3131. {
  3132. 'id': '304',
  3133. 'provincecode': '620000',
  3134. 'city': "\u767D\u94F6\u5E02",
  3135. 'code': '620400',
  3136. 'initial': 'B' },
  3137. {
  3138. 'id': '333',
  3139. 'provincecode': '650000',
  3140. 'city': "\u535A\u5C14\u5854\u62C9\u8499\u53E4\u81EA\u6CBB\u5DDE",
  3141. 'code': '652700',
  3142. 'initial': 'B' },
  3143. {
  3144. 'id': '334',
  3145. 'provincecode': '650000',
  3146. 'city': "\u5DF4\u97F3\u90ED\u695E\u8499\u53E4\u81EA\u6CBB\u5DDE",
  3147. 'code': '652800',
  3148. 'initial': 'B' },
  3149. {
  3150. 'id': '',
  3151. 'provincecode': '500100',
  3152. 'city': "\u91CD\u5E86\u5E02",
  3153. 'code': '500100',
  3154. 'initial': 'C' },
  3155. {
  3156. 'id': '9',
  3157. 'provincecode': '130000',
  3158. 'city': "\u627F\u5FB7\u5E02",
  3159. 'code': '130800',
  3160. 'initial': 'C' },
  3161. {
  3162. 'id': '10',
  3163. 'provincecode': '130000',
  3164. 'city': "\u6CA7\u5DDE\u5E02",
  3165. 'code': '130900',
  3166. 'initial': 'C' },
  3167. {
  3168. 'id': '16',
  3169. 'provincecode': '140000',
  3170. 'city': "\u957F\u6CBB\u5E02",
  3171. 'code': '140400',
  3172. 'initial': 'C' },
  3173. {
  3174. 'id': '27',
  3175. 'provincecode': '150000',
  3176. 'city': "\u8D64\u5CF0\u5E02",
  3177. 'code': '150400',
  3178. 'initial': 'C' },
  3179. {
  3180. 'id': '48',
  3181. 'provincecode': '210000',
  3182. 'city': "\u671D\u9633\u5E02",
  3183. 'code': '211300',
  3184. 'initial': 'C' },
  3185. {
  3186. 'id': '50',
  3187. 'provincecode': '220000',
  3188. 'city': "\u957F\u6625\u5E02",
  3189. 'code': '220100',
  3190. 'initial': 'C' },
  3191. {
  3192. 'id': '77',
  3193. 'provincecode': '320000',
  3194. 'city': "\u5E38\u5DDE\u5E02",
  3195. 'code': '320400',
  3196. 'initial': 'C' },
  3197. {
  3198. 'id': '107',
  3199. 'provincecode': '340000',
  3200. 'city': "\u6EC1\u5DDE\u5E02",
  3201. 'code': '341100',
  3202. 'initial': 'C' },
  3203. {
  3204. 'id': '110',
  3205. 'provincecode': '340000',
  3206. 'city': "\u5DE2\u6E56\u5E02",
  3207. 'code': '341400',
  3208. 'initial': 'C' },
  3209. {
  3210. 'id': '113',
  3211. 'provincecode': '340000',
  3212. 'city': "\u6C60\u5DDE\u5E02",
  3213. 'code': '341700',
  3214. 'initial': 'C' },
  3215. {
  3216. 'id': '183',
  3217. 'provincecode': '430000',
  3218. 'city': "\u957F\u6C99\u5E02",
  3219. 'code': '430100',
  3220. 'initial': 'C' },
  3221. {
  3222. 'id': '189',
  3223. 'provincecode': '430000',
  3224. 'city': "\u5E38\u5FB7\u5E02",
  3225. 'code': '430700',
  3226. 'initial': 'C' },
  3227. {
  3228. 'id': '192',
  3229. 'provincecode': '430000',
  3230. 'city': "\u90F4\u5DDE\u5E02",
  3231. 'code': '431000',
  3232. 'initial': 'C' },
  3233. {
  3234. 'id': '215',
  3235. 'provincecode': '440000',
  3236. 'city': "\u6F6E\u5DDE\u5E02",
  3237. 'code': '445100',
  3238. 'initial': 'C' },
  3239. {
  3240. 'id': '231',
  3241. 'provincecode': '450000',
  3242. 'city': "\u5D07\u5DE6\u5E02",
  3243. 'code': '451400',
  3244. 'initial': 'C' },
  3245. {
  3246. 'id': '238',
  3247. 'provincecode': '510000',
  3248. 'city': "\u6210\u90FD\u5E02",
  3249. 'code': '510100',
  3250. 'initial': 'C' },
  3251. {
  3252. 'id': '276',
  3253. 'provincecode': '530000',
  3254. 'city': "\u695A\u96C4\u5F5D\u65CF\u81EA\u6CBB\u5DDE",
  3255. 'code': '532300',
  3256. 'initial': 'C' },
  3257. {
  3258. 'id': '285',
  3259. 'provincecode': '540000',
  3260. 'city': "\u660C\u90FD\u5730\u533A",
  3261. 'code': '542100',
  3262. 'initial': 'C' },
  3263. {
  3264. 'id': '332',
  3265. 'provincecode': '650000',
  3266. 'city': "\u660C\u5409\u56DE\u65CF\u81EA\u6CBB\u5DDE",
  3267. 'code': '652300',
  3268. 'initial': 'C' },
  3269. {
  3270. 'id': '14',
  3271. 'provincecode': '140000',
  3272. 'city': "\u5927\u540C\u5E02",
  3273. 'code': '140200',
  3274. 'initial': 'D' },
  3275. {
  3276. 'id': '37',
  3277. 'provincecode': '210000',
  3278. 'city': "\u5927\u8FDE\u5E02",
  3279. 'code': '210200',
  3280. 'initial': 'D' },
  3281. {
  3282. 'id': '41',
  3283. 'provincecode': '210000',
  3284. 'city': "\u4E39\u4E1C\u5E02",
  3285. 'code': '210600',
  3286. 'initial': 'D' },
  3287. {
  3288. 'id': '64',
  3289. 'provincecode': '230000',
  3290. 'city': "\u5927\u5E86\u5E02",
  3291. 'code': '230600',
  3292. 'initial': 'D' },
  3293. {
  3294. 'id': '71',
  3295. 'provincecode': '230000',
  3296. 'city': "\u5927\u5174\u5B89\u5CAD\u5730\u533A",
  3297. 'code': '232700',
  3298. 'initial': 'D' },
  3299. {
  3300. 'id': '139',
  3301. 'provincecode': '370000',
  3302. 'city': "\u4E1C\u8425\u5E02",
  3303. 'code': '370500',
  3304. 'initial': 'D' },
  3305. {
  3306. 'id': '148',
  3307. 'provincecode': '370000',
  3308. 'city': "\u5FB7\u5DDE\u5E02",
  3309. 'code': '371400',
  3310. 'initial': 'D' },
  3311. {
  3312. 'id': '213',
  3313. 'provincecode': '440000',
  3314. 'city': "\u4E1C\u839E\u5E02",
  3315. 'code': '441900',
  3316. 'initial': 'D' },
  3317. {
  3318. 'id': '242',
  3319. 'provincecode': '510000',
  3320. 'city': "\u5FB7\u9633\u5E02",
  3321. 'code': '510600',
  3322. 'initial': 'D' },
  3323. {
  3324. 'id': '252',
  3325. 'provincecode': '510000',
  3326. 'city': "\u8FBE\u5DDE\u5E02",
  3327. 'code': '511700',
  3328. 'initial': 'D' },
  3329. {
  3330. 'id': '280',
  3331. 'provincecode': '530000',
  3332. 'city': "\u5927\u7406\u767D\u65CF\u81EA\u6CBB\u5DDE",
  3333. 'code': '532900',
  3334. 'initial': 'D' },
  3335. {
  3336. 'id': '281',
  3337. 'provincecode': '530000',
  3338. 'city': "\u5FB7\u5B8F\u50A3\u65CF\u666F\u9887\u65CF\u81EA\u6CBB\u5DDE",
  3339. 'code': '533100',
  3340. 'initial': 'D' },
  3341. {
  3342. 'id': '283',
  3343. 'provincecode': '530000',
  3344. 'city': "\u8FEA\u5E86\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3345. 'code': '533400',
  3346. 'initial': 'D' },
  3347. {
  3348. 'id': '311',
  3349. 'provincecode': '620000',
  3350. 'city': "\u5B9A\u897F\u5E02",
  3351. 'code': '621100',
  3352. 'initial': 'D' },
  3353. {
  3354. 'id': '29',
  3355. 'provincecode': '150000',
  3356. 'city': "\u9102\u5C14\u591A\u65AF\u5E02",
  3357. 'code': '150600',
  3358. 'initial': 'E' },
  3359. {
  3360. 'id': '174',
  3361. 'provincecode': '420000',
  3362. 'city': "\u9102\u5DDE\u5E02",
  3363. 'code': '420700',
  3364. 'initial': 'E' },
  3365. {
  3366. 'id': '181',
  3367. 'provincecode': '420000',
  3368. 'city': "\u6069\u65BD\u571F\u5BB6\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",
  3369. 'code': '422800',
  3370. 'initial': 'E' },
  3371. {
  3372. 'id': '39',
  3373. 'provincecode': '210000',
  3374. 'city': "\u629A\u987A\u5E02",
  3375. 'code': '210400',
  3376. 'initial': 'F' },
  3377. {
  3378. 'id': '44',
  3379. 'provincecode': '210000',
  3380. 'city': "\u961C\u65B0\u5E02",
  3381. 'code': '210900',
  3382. 'initial': 'F' },
  3383. {
  3384. 'id': '108',
  3385. 'provincecode': '340000',
  3386. 'city': "\u961C\u9633\u5E02",
  3387. 'code': '341200',
  3388. 'initial': 'F' },
  3389. {
  3390. 'id': '115',
  3391. 'provincecode': '350000',
  3392. 'city': "\u798F\u5DDE\u5E02",
  3393. 'code': '350100',
  3394. 'initial': 'F' },
  3395. {
  3396. 'id': '133',
  3397. 'provincecode': '360000',
  3398. 'city': "\u629A\u5DDE\u5E02",
  3399. 'code': '361000',
  3400. 'initial': 'F' },
  3401. {
  3402. 'id': '202',
  3403. 'provincecode': '440000',
  3404. 'city': "\u4F5B\u5C71\u5E02",
  3405. 'code': '440600',
  3406. 'initial': 'F' },
  3407. {
  3408. 'id': '223',
  3409. 'provincecode': '450000',
  3410. 'city': "\u9632\u57CE\u6E2F\u5E02",
  3411. 'code': '450600',
  3412. 'initial': 'F' },
  3413. {
  3414. 'id': '130',
  3415. 'provincecode': '360000',
  3416. 'city': "\u8D63\u5DDE\u5E02",
  3417. 'code': '360700',
  3418. 'initial': 'G' },
  3419. {
  3420. 'id': '197',
  3421. 'provincecode': '440000',
  3422. 'city': "\u5E7F\u5DDE\u5E02",
  3423. 'code': '440100',
  3424. 'initial': 'G' },
  3425. {
  3426. 'id': '220',
  3427. 'provincecode': '450000',
  3428. 'city': "\u6842\u6797\u5E02",
  3429. 'code': '450300',
  3430. 'initial': 'G' },
  3431. {
  3432. 'id': '225',
  3433. 'provincecode': '450000',
  3434. 'city': "\u8D35\u6E2F\u5E02",
  3435. 'code': '450800',
  3436. 'initial': 'G' },
  3437. {
  3438. 'id': '244',
  3439. 'provincecode': '510000',
  3440. 'city': "\u5E7F\u5143\u5E02",
  3441. 'code': '510800',
  3442. 'initial': 'G' },
  3443. {
  3444. 'id': '251',
  3445. 'provincecode': '510000',
  3446. 'city': "\u5E7F\u5B89\u5E02",
  3447. 'code': '511600',
  3448. 'initial': 'G' },
  3449. {
  3450. 'id': '257',
  3451. 'provincecode': '510000',
  3452. 'city': "\u7518\u5B5C\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3453. 'code': '513300',
  3454. 'initial': 'G' },
  3455. {
  3456. 'id': '259',
  3457. 'provincecode': '520000',
  3458. 'city': "\u8D35\u9633\u5E02",
  3459. 'code': '520100',
  3460. 'initial': 'G' },
  3461. {
  3462. 'id': '314',
  3463. 'provincecode': '620000',
  3464. 'city': "\u7518\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3465. 'code': '623000',
  3466. 'initial': 'G' },
  3467. {
  3468. 'id': '320',
  3469. 'provincecode': '630000',
  3470. 'city': "\u679C\u6D1B\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3471. 'code': '632600',
  3472. 'initial': 'G' },
  3473. {
  3474. 'id': '326',
  3475. 'provincecode': '640000',
  3476. 'city': "\u56FA\u539F\u5E02",
  3477. 'code': '640400',
  3478. 'initial': 'G' },
  3479. {
  3480. 'id': '5',
  3481. 'provincecode': '130000',
  3482. 'city': "\u90AF\u90F8\u5E02",
  3483. 'code': '130400',
  3484. 'initial': 'H' },
  3485. {
  3486. 'id': '12',
  3487. 'provincecode': '130000',
  3488. 'city': "\u8861\u6C34\u5E02",
  3489. 'code': '131100',
  3490. 'initial': 'H' },
  3491. {
  3492. 'id': '24',
  3493. 'provincecode': '150000',
  3494. 'city': "\u547C\u548C\u6D69\u7279\u5E02",
  3495. 'code': '150100',
  3496. 'initial': 'H' },
  3497. {
  3498. 'id': '30',
  3499. 'provincecode': '150000',
  3500. 'city': "\u547C\u4F26\u8D1D\u5C14\u5E02",
  3501. 'code': '150700',
  3502. 'initial': 'H' },
  3503. {
  3504. 'id': '49',
  3505. 'provincecode': '210000',
  3506. 'city': "\u846B\u82A6\u5C9B\u5E02",
  3507. 'code': '211400',
  3508. 'initial': 'H' },
  3509. {
  3510. 'id': '59',
  3511. 'provincecode': '230000',
  3512. 'city': "\u54C8\u5C14\u6EE8\u5E02",
  3513. 'code': '230100',
  3514. 'initial': 'H' },
  3515. {
  3516. 'id': '62',
  3517. 'provincecode': '230000',
  3518. 'city': "\u9E64\u5C97\u5E02",
  3519. 'code': '230400',
  3520. 'initial': 'H' },
  3521. {
  3522. 'id': '69',
  3523. 'provincecode': '230000',
  3524. 'city': "\u9ED1\u6CB3\u5E02",
  3525. 'code': '231100',
  3526. 'initial': 'H' },
  3527. {
  3528. 'id': '81',
  3529. 'provincecode': '320000',
  3530. 'city': "\u6DEE\u5B89\u5E02",
  3531. 'code': '320800',
  3532. 'initial': 'H' },
  3533. {
  3534. 'id': '87',
  3535. 'provincecode': '330000',
  3536. 'city': "\u676D\u5DDE\u5E02",
  3537. 'code': '330100',
  3538. 'initial': 'H' },
  3539. {
  3540. 'id': '91',
  3541. 'provincecode': '330000',
  3542. 'city': "\u6E56\u5DDE\u5E02",
  3543. 'code': '330500',
  3544. 'initial': 'H' },
  3545. {
  3546. 'id': '98',
  3547. 'provincecode': '340000',
  3548. 'city': "\u5408\u80A5\u5E02",
  3549. 'code': '340100',
  3550. 'initial': 'H' },
  3551. {
  3552. 'id': '101',
  3553. 'provincecode': '340000',
  3554. 'city': "\u6DEE\u5357\u5E02",
  3555. 'code': '340400',
  3556. 'initial': 'H' },
  3557. {
  3558. 'id': '103',
  3559. 'provincecode': '340000',
  3560. 'city': "\u6DEE\u5317\u5E02",
  3561. 'code': '340600',
  3562. 'initial': 'H' },
  3563. {
  3564. 'id': '106',
  3565. 'provincecode': '340000',
  3566. 'city': "\u9EC4\u5C71\u5E02",
  3567. 'code': '341000',
  3568. 'initial': 'H' },
  3569. {
  3570. 'id': '112',
  3571. 'provincecode': '340000',
  3572. 'city': "\u4EB3\u5DDE\u5E02",
  3573. 'code': '341600',
  3574. 'initial': 'H' },
  3575. {
  3576. 'id': '151',
  3577. 'provincecode': '370000',
  3578. 'city': "\u8377\u6CFD\u5E02",
  3579. 'code': '371700',
  3580. 'initial': 'H' },
  3581. {
  3582. 'id': '157',
  3583. 'provincecode': '410000',
  3584. 'city': "\u9E64\u58C1\u5E02",
  3585. 'code': '410600',
  3586. 'initial': 'H' },
  3587. {
  3588. 'id': '170',
  3589. 'provincecode': '420000',
  3590. 'city': "\u9EC4\u77F3\u5E02",
  3591. 'code': '420200',
  3592. 'initial': 'H' },
  3593. {
  3594. 'id': '178',
  3595. 'provincecode': '420000',
  3596. 'city': "\u9EC4\u5188\u5E02",
  3597. 'code': '421100',
  3598. 'initial': 'H' },
  3599. {
  3600. 'id': '186',
  3601. 'provincecode': '430000',
  3602. 'city': "\u8861\u9633\u5E02",
  3603. 'code': '430400',
  3604. 'initial': 'H' },
  3605. {
  3606. 'id': '194',
  3607. 'provincecode': '430000',
  3608. 'city': "\u6000\u5316\u5E02",
  3609. 'code': '431200',
  3610. 'initial': 'H' },
  3611. {
  3612. 'id': '207',
  3613. 'provincecode': '440000',
  3614. 'city': "\u60E0\u5DDE\u5E02",
  3615. 'code': '441300',
  3616. 'initial': 'H' },
  3617. {
  3618. 'id': '210',
  3619. 'provincecode': '440000',
  3620. 'city': "\u6CB3\u6E90\u5E02",
  3621. 'code': '441600',
  3622. 'initial': 'H' },
  3623. {
  3624. 'id': '228',
  3625. 'provincecode': '450000',
  3626. 'city': "\u8D3A\u5DDE\u5E02",
  3627. 'code': '451100',
  3628. 'initial': 'H' },
  3629. {
  3630. 'id': '229',
  3631. 'provincecode': '450000',
  3632. 'city': "\u6CB3\u6C60\u5E02",
  3633. 'code': '451200',
  3634. 'initial': 'H' },
  3635. {
  3636. 'id': '232',
  3637. 'provincecode': '460000',
  3638. 'city': "\u6D77\u53E3\u5E02",
  3639. 'code': '460100',
  3640. 'initial': 'H' },
  3641. {
  3642. 'id': '277',
  3643. 'provincecode': '530000',
  3644. 'city': "\u7EA2\u6CB3\u54C8\u5C3C\u65CF\u5F5D\u65CF\u81EA\u6CBB\u5DDE",
  3645. 'code': '532500',
  3646. 'initial': 'H' },
  3647. {
  3648. 'id': '297',
  3649. 'provincecode': '610000',
  3650. 'city': "\u6C49\u4E2D\u5E02",
  3651. 'code': '610700',
  3652. 'initial': 'H' },
  3653. {
  3654. 'id': '316',
  3655. 'provincecode': '630000',
  3656. 'city': "\u6D77\u4E1C\u5730\u533A",
  3657. 'code': '632100',
  3658. 'initial': 'H' },
  3659. {
  3660. 'id': '317',
  3661. 'provincecode': '630000',
  3662. 'city': "\u6D77\u5317\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3663. 'code': '632200',
  3664. 'initial': 'H' },
  3665. {
  3666. 'id': '318',
  3667. 'provincecode': '630000',
  3668. 'city': "\u9EC4\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3669. 'code': '632300',
  3670. 'initial': 'H' },
  3671. {
  3672. 'id': '319',
  3673. 'provincecode': '630000',
  3674. 'city': "\u6D77\u5357\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3675. 'code': '632500',
  3676. 'initial': 'H' },
  3677. {
  3678. 'id': '322',
  3679. 'provincecode': '630000',
  3680. 'city': "\u6D77\u897F\u8499\u53E4\u65CF\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  3681. 'code': '632800',
  3682. 'initial': 'H' },
  3683. {
  3684. 'id': '331',
  3685. 'provincecode': '650000',
  3686. 'city': "\u54C8\u5BC6\u5730\u533A",
  3687. 'code': '652200',
  3688. 'initial': 'H' },
  3689. {
  3690. 'id': '338',
  3691. 'provincecode': '650000',
  3692. 'city': "\u548C\u7530\u5730\u533A",
  3693. 'code': '653200',
  3694. 'initial': 'H' },
  3695. {
  3696. 'id': '17',
  3697. 'provincecode': '140000',
  3698. 'city': "\u664B\u57CE\u5E02",
  3699. 'code': '140500',
  3700. 'initial': 'J' },
  3701. {
  3702. 'id': '19',
  3703. 'provincecode': '140000',
  3704. 'city': "\u664B\u4E2D\u5E02",
  3705. 'code': '140700',
  3706. 'initial': 'J' },
  3707. {
  3708. 'id': '42',
  3709. 'provincecode': '210000',
  3710. 'city': "\u9526\u5DDE\u5E02",
  3711. 'code': '210700',
  3712. 'initial': 'J' },
  3713. {
  3714. 'id': '51',
  3715. 'provincecode': '220000',
  3716. 'city': "\u5409\u6797\u5E02",
  3717. 'code': '220200',
  3718. 'initial': 'J' },
  3719. {
  3720. 'id': '61',
  3721. 'provincecode': '230000',
  3722. 'city': "\u9E21\u897F\u5E02",
  3723. 'code': '230300',
  3724. 'initial': 'J' },
  3725. {
  3726. 'id': '66',
  3727. 'provincecode': '230000',
  3728. 'city': "\u4F73\u6728\u65AF\u5E02",
  3729. 'code': '230800',
  3730. 'initial': 'J' },
  3731. {
  3732. 'id': '90',
  3733. 'provincecode': '330000',
  3734. 'city': "\u5609\u5174\u5E02",
  3735. 'code': '330400',
  3736. 'initial': 'J' },
  3737. {
  3738. 'id': '93',
  3739. 'provincecode': '330000',
  3740. 'city': "\u91D1\u534E\u5E02",
  3741. 'code': '330700',
  3742. 'initial': 'J' },
  3743. {
  3744. 'id': '125',
  3745. 'provincecode': '360000',
  3746. 'city': "\u666F\u5FB7\u9547\u5E02",
  3747. 'code': '360200',
  3748. 'initial': 'J' },
  3749. {
  3750. 'id': '127',
  3751. 'provincecode': '360000',
  3752. 'city': "\u4E5D\u6C5F\u5E02",
  3753. 'code': '360400',
  3754. 'initial': 'J' },
  3755. {
  3756. 'id': '131',
  3757. 'provincecode': '360000',
  3758. 'city': "\u5409\u5B89\u5E02",
  3759. 'code': '360800',
  3760. 'initial': 'J' },
  3761. {
  3762. 'id': '135',
  3763. 'provincecode': '370000',
  3764. 'city': "\u6D4E\u5357\u5E02",
  3765. 'code': '370100',
  3766. 'initial': 'J' },
  3767. {
  3768. 'id': '142',
  3769. 'provincecode': '370000',
  3770. 'city': "\u6D4E\u5B81\u5E02",
  3771. 'code': '370800',
  3772. 'initial': 'J' },
  3773. {
  3774. 'id': '159',
  3775. 'provincecode': '410000',
  3776. 'city': "\u7126\u4F5C\u5E02",
  3777. 'code': '410800',
  3778. 'initial': 'J' },
  3779. {
  3780. 'id': '175',
  3781. 'provincecode': '420000',
  3782. 'city': "\u8346\u95E8\u5E02",
  3783. 'code': '420800',
  3784. 'initial': 'J' },
  3785. {
  3786. 'id': '177',
  3787. 'provincecode': '420000',
  3788. 'city': "\u8346\u5DDE\u5E02",
  3789. 'code': '421000',
  3790. 'initial': 'J' },
  3791. {
  3792. 'id': '203',
  3793. 'provincecode': '440000',
  3794. 'city': "\u6C5F\u95E8\u5E02",
  3795. 'code': '440700',
  3796. 'initial': 'J' },
  3797. {
  3798. 'id': '216',
  3799. 'provincecode': '440000',
  3800. 'city': "\u63ED\u9633\u5E02",
  3801. 'code': '445200',
  3802. 'initial': 'J' },
  3803. {
  3804. 'id': '302',
  3805. 'provincecode': '620000',
  3806. 'city': "\u5609\u5CEA\u5173\u5E02",
  3807. 'code': '620200',
  3808. 'initial': 'J' },
  3809. {
  3810. 'id': '303',
  3811. 'provincecode': '620000',
  3812. 'city': "\u91D1\u660C\u5E02",
  3813. 'code': '620300',
  3814. 'initial': 'J' },
  3815. {
  3816. 'id': '309',
  3817. 'provincecode': '620000',
  3818. 'city': "\u9152\u6CC9\u5E02",
  3819. 'code': '620900',
  3820. 'initial': 'J' },
  3821. {
  3822. 'id': '153',
  3823. 'provincecode': '410000',
  3824. 'city': "\u5F00\u5C01\u5E02",
  3825. 'code': '410200',
  3826. 'initial': 'K' },
  3827. {
  3828. 'id': '268',
  3829. 'provincecode': '530000',
  3830. 'city': "\u6606\u660E\u5E02",
  3831. 'code': '530100',
  3832. 'initial': 'K' },
  3833. {
  3834. 'id': '329',
  3835. 'provincecode': '650000',
  3836. 'city': "\u514B\u62C9\u739B\u4F9D\u5E02",
  3837. 'code': '650200',
  3838. 'initial': 'K' },
  3839. {
  3840. 'id': '336',
  3841. 'provincecode': '650000',
  3842. 'city': "\u514B\u5B5C\u52D2\u82CF\u67EF\u5C14\u514B\u5B5C\u81EA\u6CBB\u5DDE",
  3843. 'code': '653000',
  3844. 'initial': 'K' },
  3845. {
  3846. 'id': '337',
  3847. 'provincecode': '650000',
  3848. 'city': "\u5580\u4EC0\u5730\u533A",
  3849. 'code': '653100',
  3850. 'initial': 'K' },
  3851. {
  3852. 'id': '11',
  3853. 'provincecode': '130000',
  3854. 'city': "\u5ECA\u574A\u5E02",
  3855. 'code': '131000',
  3856. 'initial': 'L' },
  3857. {
  3858. 'id': '22',
  3859. 'provincecode': '140000',
  3860. 'city': "\u4E34\u6C7E\u5E02",
  3861. 'code': '141000',
  3862. 'initial': 'L' },
  3863. {
  3864. 'id': '23',
  3865. 'provincecode': '140000',
  3866. 'city': "\u5415\u6881\u5E02",
  3867. 'code': '141100',
  3868. 'initial': 'L' },
  3869. {
  3870. 'id': '45',
  3871. 'provincecode': '210000',
  3872. 'city': "\u8FBD\u9633\u5E02",
  3873. 'code': '211000',
  3874. 'initial': 'L' },
  3875. {
  3876. 'id': '53',
  3877. 'provincecode': '220000',
  3878. 'city': "\u8FBD\u6E90\u5E02",
  3879. 'code': '220400',
  3880. 'initial': 'L' },
  3881. {
  3882. 'id': '80',
  3883. 'provincecode': '320000',
  3884. 'city': "\u8FDE\u4E91\u6E2F\u5E02",
  3885. 'code': '320700',
  3886. 'initial': 'L' },
  3887. {
  3888. 'id': '97',
  3889. 'provincecode': '330000',
  3890. 'city': "\u4E3D\u6C34\u5E02",
  3891. 'code': '331100',
  3892. 'initial': 'L' },
  3893. {
  3894. 'id': '111',
  3895. 'provincecode': '340000',
  3896. 'city': "\u516D\u5B89\u5E02",
  3897. 'code': '341500',
  3898. 'initial': 'L' },
  3899. {
  3900. 'id': '122',
  3901. 'provincecode': '350000',
  3902. 'city': "\u9F99\u5CA9\u5E02",
  3903. 'code': '350800',
  3904. 'initial': 'L' },
  3905. {
  3906. 'id': '146',
  3907. 'provincecode': '370000',
  3908. 'city': "\u83B1\u829C\u5E02",
  3909. 'code': '371200',
  3910. 'initial': 'L' },
  3911. {
  3912. 'id': '147',
  3913. 'provincecode': '370000',
  3914. 'city': "\u4E34\u6C82\u5E02",
  3915. 'code': '371300',
  3916. 'initial': 'L' },
  3917. {
  3918. 'id': '149',
  3919. 'provincecode': '370000',
  3920. 'city': "\u804A\u57CE\u5E02",
  3921. 'code': '371500',
  3922. 'initial': 'L' },
  3923. {
  3924. 'id': '154',
  3925. 'provincecode': '410000',
  3926. 'city': "\u6D1B\u9633\u5E02",
  3927. 'code': '410300',
  3928. 'initial': 'L' },
  3929. {
  3930. 'id': '162',
  3931. 'provincecode': '410000',
  3932. 'city': "\u6F2F\u6CB3\u5E02",
  3933. 'code': '411100',
  3934. 'initial': 'L' },
  3935. {
  3936. 'id': '195',
  3937. 'provincecode': '430000',
  3938. 'city': "\u5A04\u5E95\u5E02",
  3939. 'code': '431300',
  3940. 'initial': 'L' },
  3941. {
  3942. 'id': '219',
  3943. 'provincecode': '450000',
  3944. 'city': "\u67F3\u5DDE\u5E02",
  3945. 'code': '450200',
  3946. 'initial': 'L' },
  3947. {
  3948. 'id': '230',
  3949. 'provincecode': '450000',
  3950. 'city': "\u6765\u5BBE\u5E02",
  3951. 'code': '451300',
  3952. 'initial': 'L' },
  3953. {
  3954. 'id': '241',
  3955. 'provincecode': '510000',
  3956. 'city': "\u6CF8\u5DDE\u5E02",
  3957. 'code': '510500',
  3958. 'initial': 'L' },
  3959. {
  3960. 'id': '247',
  3961. 'provincecode': '510000',
  3962. 'city': "\u4E50\u5C71\u5E02",
  3963. 'code': '511100',
  3964. 'initial': 'L' },
  3965. {
  3966. 'id': '258',
  3967. 'provincecode': '510000',
  3968. 'city': "\u51C9\u5C71\u5F5D\u65CF\u81EA\u6CBB\u5DDE",
  3969. 'code': '513400',
  3970. 'initial': 'L' },
  3971. {
  3972. 'id': '260',
  3973. 'provincecode': '520000',
  3974. 'city': "\u516D\u76D8\u6C34\u5E02",
  3975. 'code': '520200',
  3976. 'initial': 'L' },
  3977. {
  3978. 'id': '273',
  3979. 'provincecode': '530000',
  3980. 'city': "\u4E3D\u6C5F\u5E02",
  3981. 'code': '530700',
  3982. 'initial': 'L' },
  3983. {
  3984. 'id': '275',
  3985. 'provincecode': '530000',
  3986. 'city': "\u4E34\u6CA7\u5E02",
  3987. 'code': '530900',
  3988. 'initial': 'L' },
  3989. {
  3990. 'id': '284',
  3991. 'provincecode': '540000',
  3992. 'city': "\u62C9\u8428\u5E02",
  3993. 'code': '540100',
  3994. 'initial': 'L' },
  3995. {
  3996. 'id': '290',
  3997. 'provincecode': '540000',
  3998. 'city': "\u6797\u829D\u5730\u533A",
  3999. 'code': '542600',
  4000. 'initial': 'L' },
  4001. {
  4002. 'id': '301',
  4003. 'provincecode': '620000',
  4004. 'city': "\u5170\u5DDE\u5E02",
  4005. 'code': '620100',
  4006. 'initial': 'L' },
  4007. {
  4008. 'id': '312',
  4009. 'provincecode': '620000',
  4010. 'city': "\u9647\u5357\u5E02",
  4011. 'code': '621200',
  4012. 'initial': 'L' },
  4013. {
  4014. 'id': '313',
  4015. 'provincecode': '620000',
  4016. 'city': "\u4E34\u590F\u56DE\u65CF\u81EA\u6CBB\u5DDE",
  4017. 'code': '622900',
  4018. 'initial': 'L' },
  4019. {
  4020. 'id': '68',
  4021. 'provincecode': '230000',
  4022. 'city': "\u7261\u4E39\u6C5F\u5E02",
  4023. 'code': '231000',
  4024. 'initial': 'M' },
  4025. {
  4026. 'id': '102',
  4027. 'provincecode': '340000',
  4028. 'city': "\u9A6C\u978D\u5C71\u5E02",
  4029. 'code': '340500',
  4030. 'initial': 'M' },
  4031. {
  4032. 'id': '205',
  4033. 'provincecode': '440000',
  4034. 'city': "\u8302\u540D\u5E02",
  4035. 'code': '440900',
  4036. 'initial': 'M' },
  4037. {
  4038. 'id': '208',
  4039. 'provincecode': '440000',
  4040. 'city': "\u6885\u5DDE\u5E02",
  4041. 'code': '441400',
  4042. 'initial': 'M' },
  4043. {
  4044. 'id': '243',
  4045. 'provincecode': '510000',
  4046. 'city': "\u7EF5\u9633\u5E02",
  4047. 'code': '510700',
  4048. 'initial': 'M' },
  4049. {
  4050. 'id': '249',
  4051. 'provincecode': '510000',
  4052. 'city': "\u7709\u5C71\u5E02",
  4053. 'code': '511400',
  4054. 'initial': 'M' },
  4055. {
  4056. 'id': '74',
  4057. 'provincecode': '320000',
  4058. 'city': "\u5357\u4EAC\u5E02",
  4059. 'code': '320100',
  4060. 'initial': 'N' },
  4061. {
  4062. 'id': '79',
  4063. 'provincecode': '320000',
  4064. 'city': "\u5357\u901A\u5E02",
  4065. 'code': '320600',
  4066. 'initial': 'N' },
  4067. {
  4068. 'id': '88',
  4069. 'provincecode': '330000',
  4070. 'city': "\u5B81\u6CE2\u5E02",
  4071. 'code': '330200',
  4072. 'initial': 'N' },
  4073. {
  4074. 'id': '121',
  4075. 'provincecode': '350000',
  4076. 'city': "\u5357\u5E73\u5E02",
  4077. 'code': '350700',
  4078. 'initial': 'N' },
  4079. {
  4080. 'id': '123',
  4081. 'provincecode': '350000',
  4082. 'city': "\u5B81\u5FB7\u5E02",
  4083. 'code': '350900',
  4084. 'initial': 'N' },
  4085. {
  4086. 'id': '124',
  4087. 'provincecode': '360000',
  4088. 'city': "\u5357\u660C\u5E02",
  4089. 'code': '360100',
  4090. 'initial': 'N' },
  4091. {
  4092. 'id': '164',
  4093. 'provincecode': '410000',
  4094. 'city': "\u5357\u9633\u5E02",
  4095. 'code': '411300',
  4096. 'initial': 'N' },
  4097. {
  4098. 'id': '218',
  4099. 'provincecode': '450000',
  4100. 'city': "\u5357\u5B81\u5E02",
  4101. 'code': '450100',
  4102. 'initial': 'N' },
  4103. {
  4104. 'id': '246',
  4105. 'provincecode': '510000',
  4106. 'city': "\u5185\u6C5F\u5E02",
  4107. 'code': '511000',
  4108. 'initial': 'N' },
  4109. {
  4110. 'id': '248',
  4111. 'provincecode': '510000',
  4112. 'city': "\u5357\u5145\u5E02",
  4113. 'code': '511300',
  4114. 'initial': 'N' },
  4115. {
  4116. 'id': '282',
  4117. 'provincecode': '530000',
  4118. 'city': "\u6012\u6C5F\u5088\u50F3\u65CF\u81EA\u6CBB\u5DDE",
  4119. 'code': '533300',
  4120. 'initial': 'N' },
  4121. {
  4122. 'id': '288',
  4123. 'provincecode': '540000',
  4124. 'city': "\u90A3\u66F2\u5730\u533A",
  4125. 'code': '542400',
  4126. 'initial': 'N' },
  4127. {
  4128. 'id': '46',
  4129. 'provincecode': '210000',
  4130. 'city': "\u76D8\u9526\u5E02",
  4131. 'code': '211100',
  4132. 'initial': 'P' },
  4133. {
  4134. 'id': '117',
  4135. 'provincecode': '350000',
  4136. 'city': "\u8386\u7530\u5E02",
  4137. 'code': '350300',
  4138. 'initial': 'P' },
  4139. {
  4140. 'id': '126',
  4141. 'provincecode': '360000',
  4142. 'city': "\u840D\u4E61\u5E02",
  4143. 'code': '360300',
  4144. 'initial': 'P' },
  4145. {
  4146. 'id': '155',
  4147. 'provincecode': '410000',
  4148. 'city': "\u5E73\u9876\u5C71\u5E02",
  4149. 'code': '410400',
  4150. 'initial': 'P' },
  4151. {
  4152. 'id': '160',
  4153. 'provincecode': '410000',
  4154. 'city': "\u6FEE\u9633\u5E02",
  4155. 'code': '410900',
  4156. 'initial': 'P' },
  4157. {
  4158. 'id': '240',
  4159. 'provincecode': '510000',
  4160. 'city': "\u6500\u679D\u82B1\u5E02",
  4161. 'code': '510400',
  4162. 'initial': 'P' },
  4163. {
  4164. 'id': '308',
  4165. 'provincecode': '620000',
  4166. 'city': "\u5E73\u51C9\u5E02",
  4167. 'code': '620800',
  4168. 'initial': 'P' },
  4169. {
  4170. 'id': '4',
  4171. 'provincecode': '130000',
  4172. 'city': "\u79E6\u7687\u5C9B\u5E02",
  4173. 'code': '130300',
  4174. 'initial': 'Q' },
  4175. {
  4176. 'id': '60',
  4177. 'provincecode': '230000',
  4178. 'city': "\u9F50\u9F50\u54C8\u5C14\u5E02",
  4179. 'code': '230200',
  4180. 'initial': 'Q' },
  4181. {
  4182. 'id': '67',
  4183. 'provincecode': '230000',
  4184. 'city': "\u4E03\u53F0\u6CB3\u5E02",
  4185. 'code': '230900',
  4186. 'initial': 'Q' },
  4187. {
  4188. 'id': '94',
  4189. 'provincecode': '330000',
  4190. 'city': "\u8862\u5DDE\u5E02",
  4191. 'code': '330800',
  4192. 'initial': 'Q' },
  4193. {
  4194. 'id': '119',
  4195. 'provincecode': '350000',
  4196. 'city': "\u6CC9\u5DDE\u5E02",
  4197. 'code': '350500',
  4198. 'initial': 'Q' },
  4199. {
  4200. 'id': '136',
  4201. 'provincecode': '370000',
  4202. 'city': "\u9752\u5C9B\u5E02",
  4203. 'code': '370200',
  4204. 'initial': 'Q' },
  4205. {
  4206. 'id': '212',
  4207. 'provincecode': '440000',
  4208. 'city': "\u6E05\u8FDC\u5E02",
  4209. 'code': '441800',
  4210. 'initial': 'Q' },
  4211. {
  4212. 'id': '224',
  4213. 'provincecode': '450000',
  4214. 'city': "\u94A6\u5DDE\u5E02",
  4215. 'code': '450700',
  4216. 'initial': 'Q' },
  4217. {
  4218. 'id': '264',
  4219. 'provincecode': '520000',
  4220. 'city': "\u9ED4\u897F\u5357\u5E03\u4F9D\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",
  4221. 'code': '522300',
  4222. 'initial': 'Q' },
  4223. {
  4224. 'id': '266',
  4225. 'provincecode': '520000',
  4226. 'city': "\u9ED4\u4E1C\u5357\u82D7\u65CF\u4F97\u65CF\u81EA\u6CBB\u5DDE",
  4227. 'code': '522600',
  4228. 'initial': 'Q' },
  4229. {
  4230. 'id': '267',
  4231. 'provincecode': '520000',
  4232. 'city': "\u9ED4\u5357\u5E03\u4F9D\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",
  4233. 'code': '522700',
  4234. 'initial': 'Q' },
  4235. {
  4236. 'id': '269',
  4237. 'provincecode': '530000',
  4238. 'city': "\u66F2\u9756\u5E02",
  4239. 'code': '530300',
  4240. 'initial': 'Q' },
  4241. {
  4242. 'id': '310',
  4243. 'provincecode': '620000',
  4244. 'city': "\u5E86\u9633\u5E02",
  4245. 'code': '621000',
  4246. 'initial': 'Q' },
  4247. {
  4248. 'id': '145',
  4249. 'provincecode': '370000',
  4250. 'city': "\u65E5\u7167\u5E02",
  4251. 'code': '371100',
  4252. 'initial': 'R' },
  4253. {
  4254. 'id': '287',
  4255. 'provincecode': '540000',
  4256. 'city': "\u65E5\u5580\u5219\u5730\u533A",
  4257. 'code': '542300',
  4258. 'initial': 'R' },
  4259. {
  4260. 'id': '2',
  4261. 'provincecode': '130000',
  4262. 'city': "\u77F3\u5BB6\u5E84\u5E02",
  4263. 'code': '130100',
  4264. 'initial': 'S' },
  4265. {
  4266. 'id': '',
  4267. 'provincecode': '310100',
  4268. 'city': "\u4E0A\u6D77\u5E02",
  4269. 'code': '310100',
  4270. 'initial': 'S' },
  4271. {
  4272. 'id': '18',
  4273. 'provincecode': '140000',
  4274. 'city': "\u6714\u5DDE\u5E02",
  4275. 'code': '140600',
  4276. 'initial': 'S' },
  4277. {
  4278. 'id': '36',
  4279. 'provincecode': '210000',
  4280. 'city': "\u6C88\u9633\u5E02",
  4281. 'code': '210100',
  4282. 'initial': 'S' },
  4283. {
  4284. 'id': '52',
  4285. 'provincecode': '220000',
  4286. 'city': "\u56DB\u5E73\u5E02",
  4287. 'code': '220300',
  4288. 'initial': 'S' },
  4289. {
  4290. 'id': '56',
  4291. 'provincecode': '220000',
  4292. 'city': "\u677E\u539F\u5E02",
  4293. 'code': '220700',
  4294. 'initial': 'S' },
  4295. {
  4296. 'id': '63',
  4297. 'provincecode': '230000',
  4298. 'city': "\u53CC\u9E2D\u5C71\u5E02",
  4299. 'code': '230500',
  4300. 'initial': 'S' },
  4301. {
  4302. 'id': '70',
  4303. 'provincecode': '230000',
  4304. 'city': "\u7EE5\u5316\u5E02",
  4305. 'code': '231200',
  4306. 'initial': 'S' },
  4307. {
  4308. 'id': '78',
  4309. 'provincecode': '320000',
  4310. 'city': "\u82CF\u5DDE\u5E02",
  4311. 'code': '320500',
  4312. 'initial': 'S' },
  4313. {
  4314. 'id': '86',
  4315. 'provincecode': '320000',
  4316. 'city': "\u5BBF\u8FC1\u5E02",
  4317. 'code': '321300',
  4318. 'initial': 'S' },
  4319. {
  4320. 'id': '92',
  4321. 'provincecode': '330000',
  4322. 'city': "\u7ECD\u5174\u5E02",
  4323. 'code': '330600',
  4324. 'initial': 'S' },
  4325. {
  4326. 'id': '109',
  4327. 'provincecode': '340000',
  4328. 'city': "\u5BBF\u5DDE\u5E02",
  4329. 'code': '341300',
  4330. 'initial': 'S' },
  4331. {
  4332. 'id': '118',
  4333. 'provincecode': '350000',
  4334. 'city': "\u4E09\u660E\u5E02",
  4335. 'code': '350400',
  4336. 'initial': 'S' },
  4337. {
  4338. 'id': '134',
  4339. 'provincecode': '360000',
  4340. 'city': "\u4E0A\u9976\u5E02",
  4341. 'code': '361100',
  4342. 'initial': 'S' },
  4343. {
  4344. 'id': '163',
  4345. 'provincecode': '410000',
  4346. 'city': "\u4E09\u95E8\u5CE1\u5E02",
  4347. 'code': '411200',
  4348. 'initial': 'S' },
  4349. {
  4350. 'id': '165',
  4351. 'provincecode': '410000',
  4352. 'city': "\u5546\u4E18\u5E02",
  4353. 'code': '411400',
  4354. 'initial': 'S' },
  4355. {
  4356. 'id': '171',
  4357. 'provincecode': '420000',
  4358. 'city': "\u5341\u5830\u5E02",
  4359. 'code': '420300',
  4360. 'initial': 'S' },
  4361. {
  4362. 'id': '180',
  4363. 'provincecode': '420000',
  4364. 'city': "\u968F\u5DDE\u5E02",
  4365. 'code': '421300',
  4366. 'initial': 'S' },
  4367. {
  4368. 'id': '187',
  4369. 'provincecode': '430000',
  4370. 'city': "\u90B5\u9633\u5E02",
  4371. 'code': '430500',
  4372. 'initial': 'S' },
  4373. {
  4374. 'id': '198',
  4375. 'provincecode': '440000',
  4376. 'city': "\u97F6\u5173\u5E02",
  4377. 'code': '440200',
  4378. 'initial': 'S' },
  4379. {
  4380. 'id': '199',
  4381. 'provincecode': '440000',
  4382. 'city': "\u6DF1\u5733\u5E02",
  4383. 'code': '440300',
  4384. 'initial': 'S' },
  4385. {
  4386. 'id': '201',
  4387. 'provincecode': '440000',
  4388. 'city': "\u6C55\u5934\u5E02",
  4389. 'code': '440500',
  4390. 'initial': 'S' },
  4391. {
  4392. 'id': '209',
  4393. 'provincecode': '440000',
  4394. 'city': "\u6C55\u5C3E\u5E02",
  4395. 'code': '441500',
  4396. 'initial': 'S' },
  4397. {
  4398. 'id': '233',
  4399. 'provincecode': '460000',
  4400. 'city': "\u4E09\u4E9A\u5E02",
  4401. 'code': '460200',
  4402. 'initial': 'S' },
  4403. {
  4404. 'id': '245',
  4405. 'provincecode': '510000',
  4406. 'city': "\u9042\u5B81\u5E02",
  4407. 'code': '510900',
  4408. 'initial': 'S' },
  4409. {
  4410. 'id': '274',
  4411. 'provincecode': '530000',
  4412. 'city': "\u666E\u6D31\u5E02",
  4413. 'code': '530800',
  4414. 'initial': 'P' },
  4415. {
  4416. 'id': '286',
  4417. 'provincecode': '540000',
  4418. 'city': "\u5C71\u5357\u5730\u533A",
  4419. 'code': '542200',
  4420. 'initial': 'S' },
  4421. {
  4422. 'id': '300',
  4423. 'provincecode': '610000',
  4424. 'city': "\u5546\u6D1B\u5E02",
  4425. 'code': '611000',
  4426. 'initial': 'S' },
  4427. {
  4428. 'id': '324',
  4429. 'provincecode': '640000',
  4430. 'city': "\u77F3\u5634\u5C71\u5E02",
  4431. 'code': '640200',
  4432. 'initial': 'S' },
  4433. {
  4434. 'id': '3',
  4435. 'provincecode': '130000',
  4436. 'city': "\u5510\u5C71\u5E02",
  4437. 'code': '130200',
  4438. 'initial': 'T' },
  4439. {
  4440. 'id': '13',
  4441. 'provincecode': '140000',
  4442. 'city': "\u592A\u539F\u5E02",
  4443. 'code': '140100',
  4444. 'initial': 'T' },
  4445. {
  4446. 'id': '28',
  4447. 'provincecode': '150000',
  4448. 'city': "\u901A\u8FBD\u5E02",
  4449. 'code': '150500',
  4450. 'initial': 'T' },
  4451. {
  4452. 'id': '47',
  4453. 'provincecode': '210000',
  4454. 'city': "\u94C1\u5CAD\u5E02",
  4455. 'code': '211200',
  4456. 'initial': 'T' },
  4457. {
  4458. 'id': '54',
  4459. 'provincecode': '220000',
  4460. 'city': "\u901A\u5316\u5E02",
  4461. 'code': '220500',
  4462. 'initial': 'T' },
  4463. {
  4464. 'id': '85',
  4465. 'provincecode': '320000',
  4466. 'city': "\u6CF0\u5DDE\u5E02",
  4467. 'code': '321200',
  4468. 'initial': 'T' },
  4469. {
  4470. 'id': '96',
  4471. 'provincecode': '330000',
  4472. 'city': "\u53F0\u5DDE\u5E02",
  4473. 'code': '331000',
  4474. 'initial': 'T' },
  4475. {
  4476. 'id': '104',
  4477. 'provincecode': '340000',
  4478. 'city': "\u94DC\u9675\u5E02",
  4479. 'code': '340700',
  4480. 'initial': 'T' },
  4481. {
  4482. 'id': '143',
  4483. 'provincecode': '370000',
  4484. 'city': "\u6CF0\u5B89\u5E02",
  4485. 'code': '370900',
  4486. 'initial': 'T' },
  4487. {
  4488. 'id': '263',
  4489. 'provincecode': '520000',
  4490. 'city': "\u94DC\u4EC1\u5730\u533A",
  4491. 'code': '522200',
  4492. 'initial': 'T' },
  4493. {
  4494. 'id': '292',
  4495. 'provincecode': '610000',
  4496. 'city': "\u94DC\u5DDD\u5E02",
  4497. 'code': '610200',
  4498. 'initial': 'T' },
  4499. {
  4500. 'id': '305',
  4501. 'provincecode': '620000',
  4502. 'city': "\u5929\u6C34\u5E02",
  4503. 'code': '620500',
  4504. 'initial': 'T' },
  4505. {
  4506. 'id': '330',
  4507. 'provincecode': '650000',
  4508. 'city': "\u5410\u9C81\u756A\u5730\u533A",
  4509. 'code': '652100',
  4510. 'initial': 'T' },
  4511. {
  4512. 'id': '340',
  4513. 'provincecode': '650000',
  4514. 'city': "\u5854\u57CE\u5730\u533A",
  4515. 'code': '654200',
  4516. 'initial': 'T' },
  4517. {
  4518. 'id': '343',
  4519. 'provincecode': '120100',
  4520. 'city': "\u5929\u6D25\u5E02",
  4521. 'code': '120100',
  4522. 'initial': 'T' },
  4523. {
  4524. 'id': '26',
  4525. 'provincecode': '150000',
  4526. 'city': "\u4E4C\u6D77\u5E02",
  4527. 'code': '150300',
  4528. 'initial': 'W' },
  4529. {
  4530. 'id': '32',
  4531. 'provincecode': '150000',
  4532. 'city': "\u4E4C\u5170\u5BDF\u5E03\u5E02",
  4533. 'code': '150900',
  4534. 'initial': 'W' },
  4535. {
  4536. 'id': '75',
  4537. 'provincecode': '320000',
  4538. 'city': "\u65E0\u9521\u5E02",
  4539. 'code': '320200',
  4540. 'initial': 'W' },
  4541. {
  4542. 'id': '89',
  4543. 'provincecode': '330000',
  4544. 'city': "\u6E29\u5DDE\u5E02",
  4545. 'code': '330300',
  4546. 'initial': 'W' },
  4547. {
  4548. 'id': '99',
  4549. 'provincecode': '340000',
  4550. 'city': "\u829C\u6E56\u5E02",
  4551. 'code': '340200',
  4552. 'initial': 'W' },
  4553. {
  4554. 'id': '141',
  4555. 'provincecode': '370000',
  4556. 'city': "\u6F4D\u574A\u5E02",
  4557. 'code': '370700',
  4558. 'initial': 'W' },
  4559. {
  4560. 'id': '144',
  4561. 'provincecode': '370000',
  4562. 'city': "\u5A01\u6D77\u5E02",
  4563. 'code': '371000',
  4564. 'initial': 'W' },
  4565. {
  4566. 'id': '169',
  4567. 'provincecode': '420000',
  4568. 'city': "\u6B66\u6C49\u5E02",
  4569. 'code': '420100',
  4570. 'initial': 'W' },
  4571. {
  4572. 'id': '221',
  4573. 'provincecode': '450000',
  4574. 'city': "\u68A7\u5DDE\u5E02",
  4575. 'code': '450400',
  4576. 'initial': 'W' },
  4577. {
  4578. 'id': '278',
  4579. 'provincecode': '530000',
  4580. 'city': "\u6587\u5C71\u58EE\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",
  4581. 'code': '532600',
  4582. 'initial': 'W' },
  4583. {
  4584. 'id': '295',
  4585. 'provincecode': '610000',
  4586. 'city': "\u6E2D\u5357\u5E02",
  4587. 'code': '610500',
  4588. 'initial': 'W' },
  4589. {
  4590. 'id': '306',
  4591. 'provincecode': '620000',
  4592. 'city': "\u6B66\u5A01\u5E02",
  4593. 'code': '620600',
  4594. 'initial': 'W' },
  4595. {
  4596. 'id': '325',
  4597. 'provincecode': '640000',
  4598. 'city': "\u5434\u5FE0\u5E02",
  4599. 'code': '640300',
  4600. 'initial': 'W' },
  4601. {
  4602. 'id': '328',
  4603. 'provincecode': '650000',
  4604. 'city': "\u4E4C\u9C81\u6728\u9F50\u5E02",
  4605. 'code': '650100',
  4606. 'initial': 'W' },
  4607. {
  4608. 'id': '6',
  4609. 'provincecode': '130000',
  4610. 'city': "\u90A2\u53F0\u5E02",
  4611. 'code': '130500',
  4612. 'initial': 'X' },
  4613. {
  4614. 'id': '21',
  4615. 'provincecode': '140000',
  4616. 'city': "\u5FFB\u5DDE\u5E02",
  4617. 'code': '140900',
  4618. 'initial': 'X' },
  4619. {
  4620. 'id': '33',
  4621. 'provincecode': '150000',
  4622. 'city': "\u5174\u5B89\u76DF",
  4623. 'code': '152200',
  4624. 'initial': 'X' },
  4625. {
  4626. 'id': '34',
  4627. 'provincecode': '150000',
  4628. 'city': "\u9521\u6797\u90ED\u52D2\u76DF",
  4629. 'code': '152500',
  4630. 'initial': 'X' },
  4631. {
  4632. 'id': '76',
  4633. 'provincecode': '320000',
  4634. 'city': "\u5F90\u5DDE\u5E02",
  4635. 'code': '320300',
  4636. 'initial': 'X' },
  4637. {
  4638. 'id': '114',
  4639. 'provincecode': '340000',
  4640. 'city': "\u5BA3\u57CE\u5E02",
  4641. 'code': '341800',
  4642. 'initial': 'X' },
  4643. {
  4644. 'id': '116',
  4645. 'provincecode': '350000',
  4646. 'city': "\u53A6\u95E8\u5E02",
  4647. 'code': '350200',
  4648. 'initial': 'X' },
  4649. {
  4650. 'id': '128',
  4651. 'provincecode': '360000',
  4652. 'city': "\u65B0\u4F59\u5E02",
  4653. 'code': '360500',
  4654. 'initial': 'X' },
  4655. {
  4656. 'id': '158',
  4657. 'provincecode': '410000',
  4658. 'city': "\u65B0\u4E61\u5E02",
  4659. 'code': '410700',
  4660. 'initial': 'X' },
  4661. {
  4662. 'id': '161',
  4663. 'provincecode': '410000',
  4664. 'city': "\u8BB8\u660C\u5E02",
  4665. 'code': '411000',
  4666. 'initial': 'X' },
  4667. {
  4668. 'id': '166',
  4669. 'provincecode': '410000',
  4670. 'city': "\u4FE1\u9633\u5E02",
  4671. 'code': '411500',
  4672. 'initial': 'X' },
  4673. {
  4674. 'id': '173',
  4675. 'provincecode': '420000',
  4676. 'city': "\u8944\u6A0A\u5E02",
  4677. 'code': '420600',
  4678. 'initial': 'X' },
  4679. {
  4680. 'id': '176',
  4681. 'provincecode': '420000',
  4682. 'city': "\u5B5D\u611F\u5E02",
  4683. 'code': '420900',
  4684. 'initial': 'X' },
  4685. {
  4686. 'id': '179',
  4687. 'provincecode': '420000',
  4688. 'city': "\u54B8\u5B81\u5E02",
  4689. 'code': '421200',
  4690. 'initial': 'X' },
  4691. {
  4692. 'id': '185',
  4693. 'provincecode': '430000',
  4694. 'city': "\u6E58\u6F6D\u5E02",
  4695. 'code': '430300',
  4696. 'initial': 'X' },
  4697. {
  4698. 'id': '196',
  4699. 'provincecode': '430000',
  4700. 'city': "\u6E58\u897F\u571F\u5BB6\u65CF\u82D7\u65CF\u81EA\u6CBB\u5DDE",
  4701. 'code': '433100',
  4702. 'initial': 'X' },
  4703. {
  4704. 'id': '279',
  4705. 'provincecode': '530000',
  4706. 'city': "\u897F\u53CC\u7248\u7EB3\u50A3\u65CF\u81EA\u6CBB\u5DDE",
  4707. 'code': '532800',
  4708. 'initial': 'X' },
  4709. {
  4710. 'id': '291',
  4711. 'provincecode': '610000',
  4712. 'city': "\u897F\u5B89\u5E02",
  4713. 'code': '610100',
  4714. 'initial': 'X' },
  4715. {
  4716. 'id': '294',
  4717. 'provincecode': '610000',
  4718. 'city': "\u54B8\u9633\u5E02",
  4719. 'code': '610400',
  4720. 'initial': 'X' },
  4721. {
  4722. 'id': '315',
  4723. 'provincecode': '630000',
  4724. 'city': "\u897F\u5B81\u5E02",
  4725. 'code': '630100',
  4726. 'initial': 'X' },
  4727. {
  4728. 'id': '15',
  4729. 'provincecode': '140000',
  4730. 'city': "\u9633\u6CC9\u5E02",
  4731. 'code': '140300',
  4732. 'initial': 'Y' },
  4733. {
  4734. 'id': '20',
  4735. 'provincecode': '140000',
  4736. 'city': "\u8FD0\u57CE\u5E02",
  4737. 'code': '140800',
  4738. 'initial': 'Y' },
  4739. {
  4740. 'id': '43',
  4741. 'provincecode': '210000',
  4742. 'city': "\u8425\u53E3\u5E02",
  4743. 'code': '210800',
  4744. 'initial': 'Y' },
  4745. {
  4746. 'id': '58',
  4747. 'provincecode': '220000',
  4748. 'city': "\u5EF6\u8FB9\u671D\u9C9C\u65CF\u81EA\u6CBB\u5DDE",
  4749. 'code': '222400',
  4750. 'initial': 'Y' },
  4751. {
  4752. 'id': '65',
  4753. 'provincecode': '230000',
  4754. 'city': "\u4F0A\u6625\u5E02",
  4755. 'code': '230700',
  4756. 'initial': 'Y' },
  4757. {
  4758. 'id': '82',
  4759. 'provincecode': '320000',
  4760. 'city': "\u76D0\u57CE\u5E02",
  4761. 'code': '320900',
  4762. 'initial': 'Y' },
  4763. {
  4764. 'id': '83',
  4765. 'provincecode': '320000',
  4766. 'city': "\u626C\u5DDE\u5E02",
  4767. 'code': '321000',
  4768. 'initial': 'Y' },
  4769. {
  4770. 'id': '129',
  4771. 'provincecode': '360000',
  4772. 'city': "\u9E70\u6F6D\u5E02",
  4773. 'code': '360600',
  4774. 'initial': 'Y' },
  4775. {
  4776. 'id': '132',
  4777. 'provincecode': '360000',
  4778. 'city': "\u5B9C\u6625\u5E02",
  4779. 'code': '360900',
  4780. 'initial': 'Y' },
  4781. {
  4782. 'id': '140',
  4783. 'provincecode': '370000',
  4784. 'city': "\u70DF\u53F0\u5E02",
  4785. 'code': '370600',
  4786. 'initial': 'Y' },
  4787. {
  4788. 'id': '172',
  4789. 'provincecode': '420000',
  4790. 'city': "\u5B9C\u660C\u5E02",
  4791. 'code': '420500',
  4792. 'initial': 'Y' },
  4793. {
  4794. 'id': '188',
  4795. 'provincecode': '430000',
  4796. 'city': "\u5CB3\u9633\u5E02",
  4797. 'code': '430600',
  4798. 'initial': 'Y' },
  4799. {
  4800. 'id': '191',
  4801. 'provincecode': '430000',
  4802. 'city': "\u76CA\u9633\u5E02",
  4803. 'code': '430900',
  4804. 'initial': 'Y' },
  4805. {
  4806. 'id': '193',
  4807. 'provincecode': '430000',
  4808. 'city': "\u6C38\u5DDE\u5E02",
  4809. 'code': '431100',
  4810. 'initial': 'Y' },
  4811. {
  4812. 'id': '211',
  4813. 'provincecode': '440000',
  4814. 'city': "\u9633\u6C5F\u5E02",
  4815. 'code': '441700',
  4816. 'initial': 'Y' },
  4817. {
  4818. 'id': '217',
  4819. 'provincecode': '440000',
  4820. 'city': "\u4E91\u6D6E\u5E02",
  4821. 'code': '445300',
  4822. 'initial': 'Y' },
  4823. {
  4824. 'id': '226',
  4825. 'provincecode': '450000',
  4826. 'city': "\u7389\u6797\u5E02",
  4827. 'code': '450900',
  4828. 'initial': 'Y' },
  4829. {
  4830. 'id': '250',
  4831. 'provincecode': '510000',
  4832. 'city': "\u5B9C\u5BBE\u5E02",
  4833. 'code': '511500',
  4834. 'initial': 'Y' },
  4835. {
  4836. 'id': '253',
  4837. 'provincecode': '510000',
  4838. 'city': "\u96C5\u5B89\u5E02",
  4839. 'code': '511800',
  4840. 'initial': 'Y' },
  4841. {
  4842. 'id': '270',
  4843. 'provincecode': '530000',
  4844. 'city': "\u7389\u6EAA\u5E02",
  4845. 'code': '530400',
  4846. 'initial': 'Y' },
  4847. {
  4848. 'id': '296',
  4849. 'provincecode': '610000',
  4850. 'city': "\u5EF6\u5B89\u5E02",
  4851. 'code': '610600',
  4852. 'initial': 'Y' },
  4853. {
  4854. 'id': '298',
  4855. 'provincecode': '610000',
  4856. 'city': "\u6986\u6797\u5E02",
  4857. 'code': '610800',
  4858. 'initial': 'Y' },
  4859. {
  4860. 'id': '321',
  4861. 'provincecode': '630000',
  4862. 'city': "\u7389\u6811\u85CF\u65CF\u81EA\u6CBB\u5DDE",
  4863. 'code': '632700',
  4864. 'initial': 'Y' },
  4865. {
  4866. 'id': '323',
  4867. 'provincecode': '640000',
  4868. 'city': "\u94F6\u5DDD\u5E02",
  4869. 'code': '640100',
  4870. 'initial': 'Y' },
  4871. {
  4872. 'id': '339',
  4873. 'provincecode': '650000',
  4874. 'city': "\u4F0A\u7281\u54C8\u8428\u514B\u81EA\u6CBB\u5DDE",
  4875. 'code': '654000',
  4876. 'initial': 'Y' },
  4877. {
  4878. 'id': '8',
  4879. 'provincecode': '130000',
  4880. 'city': "\u5F20\u5BB6\u53E3\u5E02",
  4881. 'code': '130700',
  4882. 'initial': 'Z' },
  4883. {
  4884. 'id': '84',
  4885. 'provincecode': '320000',
  4886. 'city': "\u9547\u6C5F\u5E02",
  4887. 'code': '321100',
  4888. 'initial': 'Z' },
  4889. {
  4890. 'id': '95',
  4891. 'provincecode': '330000',
  4892. 'city': "\u821F\u5C71\u5E02",
  4893. 'code': '330900',
  4894. 'initial': 'Z' },
  4895. {
  4896. 'id': '120',
  4897. 'provincecode': '350000',
  4898. 'city': "\u6F33\u5DDE\u5E02",
  4899. 'code': '350600',
  4900. 'initial': 'Z' },
  4901. {
  4902. 'id': '137',
  4903. 'provincecode': '370000',
  4904. 'city': "\u6DC4\u535A\u5E02",
  4905. 'code': '370300',
  4906. 'initial': 'Z' },
  4907. {
  4908. 'id': '138',
  4909. 'provincecode': '370000',
  4910. 'city': "\u67A3\u5E84\u5E02",
  4911. 'code': '370400',
  4912. 'initial': 'Z' },
  4913. {
  4914. 'id': '152',
  4915. 'provincecode': '410000',
  4916. 'city': "\u90D1\u5DDE\u5E02",
  4917. 'code': '410100',
  4918. 'initial': 'Z' },
  4919. {
  4920. 'id': '167',
  4921. 'provincecode': '410000',
  4922. 'city': "\u5468\u53E3\u5E02",
  4923. 'code': '411600',
  4924. 'initial': 'Z' },
  4925. {
  4926. 'id': '168',
  4927. 'provincecode': '410000',
  4928. 'city': "\u9A7B\u9A6C\u5E97\u5E02",
  4929. 'code': '411700',
  4930. 'initial': 'Z' },
  4931. {
  4932. 'id': '184',
  4933. 'provincecode': '430000',
  4934. 'city': "\u682A\u6D32\u5E02",
  4935. 'code': '430200',
  4936. 'initial': 'Z' },
  4937. {
  4938. 'id': '190',
  4939. 'provincecode': '430000',
  4940. 'city': "\u5F20\u5BB6\u754C\u5E02",
  4941. 'code': '430800',
  4942. 'initial': 'Z' },
  4943. {
  4944. 'id': '200',
  4945. 'provincecode': '440000',
  4946. 'city': "\u73E0\u6D77\u5E02",
  4947. 'code': '440400',
  4948. 'initial': 'Z' },
  4949. {
  4950. 'id': '204',
  4951. 'provincecode': '440000',
  4952. 'city': "\u6E5B\u6C5F\u5E02",
  4953. 'code': '440800',
  4954. 'initial': 'Z' },
  4955. {
  4956. 'id': '206',
  4957. 'provincecode': '440000',
  4958. 'city': "\u8087\u5E86\u5E02",
  4959. 'code': '441200',
  4960. 'initial': 'Z' },
  4961. {
  4962. 'id': '214',
  4963. 'provincecode': '440000',
  4964. 'city': "\u4E2D\u5C71\u5E02",
  4965. 'code': '442000',
  4966. 'initial': 'Z' },
  4967. {
  4968. 'id': '239',
  4969. 'provincecode': '510000',
  4970. 'city': "\u81EA\u8D21\u5E02",
  4971. 'code': '510300',
  4972. 'initial': 'Z' },
  4973. {
  4974. 'id': '255',
  4975. 'provincecode': '510000',
  4976. 'city': "\u8D44\u9633\u5E02",
  4977. 'code': '512000',
  4978. 'initial': 'Z' },
  4979. {
  4980. 'id': '261',
  4981. 'provincecode': '520000',
  4982. 'city': "\u9075\u4E49\u5E02",
  4983. 'code': '520300',
  4984. 'initial': 'Z' },
  4985. {
  4986. 'id': '272',
  4987. 'provincecode': '530000',
  4988. 'city': "\u662D\u901A\u5E02",
  4989. 'code': '530600',
  4990. 'initial': 'Z' },
  4991. {
  4992. 'id': '307',
  4993. 'provincecode': '620000',
  4994. 'city': "\u5F20\u6396\u5E02",
  4995. 'code': '620700',
  4996. 'initial': 'Z' },
  4997. {
  4998. 'id': '327',
  4999. 'provincecode': '640000',
  5000. 'city': "\u4E2D\u536B\u5E02",
  5001. 'code': '640500',
  5002. 'initial': 'Z' }];
  5003. var cityObjs = [{
  5004. 'id': '35',
  5005. 'provincecode': '150000',
  5006. 'city': '阿拉善盟',
  5007. 'code': '152900',
  5008. 'initial': 'A',
  5009. 'short': 'Alashanmeng' },
  5010. {
  5011. 'id': '38',
  5012. 'provincecode': '210000',
  5013. 'city': '鞍山市',
  5014. 'code': '210300',
  5015. 'initial': 'A',
  5016. 'short': 'Anshan' },
  5017. {
  5018. 'id': '105',
  5019. 'provincecode': '340000',
  5020. 'city': '安庆市',
  5021. 'code': '340800',
  5022. 'initial': 'A',
  5023. 'short': 'Anqing' },
  5024. {
  5025. 'id': '156',
  5026. 'provincecode': '410000',
  5027. 'city': '安阳市',
  5028. 'code': '410500',
  5029. 'initial': 'A',
  5030. 'short': 'Anyang' },
  5031. {
  5032. 'id': '256',
  5033. 'provincecode': '510000',
  5034. 'city': '阿坝藏族羌族自治州',
  5035. 'code': '513200',
  5036. 'initial': 'A',
  5037. 'short': 'Aba' },
  5038. {
  5039. 'id': '262',
  5040. 'provincecode': '520000',
  5041. 'city': '安顺市',
  5042. 'code': '520400',
  5043. 'initial': 'A',
  5044. 'short': 'Anshun' },
  5045. {
  5046. 'id': '289',
  5047. 'provincecode': '540000',
  5048. 'city': '阿里地区',
  5049. 'code': '542500',
  5050. 'initial': 'A',
  5051. 'short': 'Ali' },
  5052. {
  5053. 'id': '299',
  5054. 'provincecode': '610000',
  5055. 'city': '安康市',
  5056. 'code': '610900',
  5057. 'initial': 'A',
  5058. 'short': 'Ankang' },
  5059. {
  5060. 'id': '335',
  5061. 'provincecode': '650000',
  5062. 'city': '阿克苏地区',
  5063. 'code': '652900',
  5064. 'initial': 'A',
  5065. 'short': 'Akesu' },
  5066. {
  5067. 'id': '341',
  5068. 'provincecode': '650000',
  5069. 'city': '阿勒泰地区',
  5070. 'code': '654300',
  5071. 'initial': 'A',
  5072. 'short': 'Aletai' },
  5073. {
  5074. 'id': '1',
  5075. 'provincecode': '110100',
  5076. 'city': '北京市',
  5077. 'code': '110100',
  5078. 'initial': 'B',
  5079. 'short': 'Beijing' },
  5080. {
  5081. 'id': '7',
  5082. 'provincecode': '130000',
  5083. 'city': '保定市',
  5084. 'code': '130600',
  5085. 'initial': 'B',
  5086. 'short': 'Baoding' },
  5087. {
  5088. 'id': '25',
  5089. 'provincecode': '150000',
  5090. 'city': '包头市',
  5091. 'code': '150200',
  5092. 'initial': 'B',
  5093. 'short': 'Baotou' },
  5094. {
  5095. 'id': '31',
  5096. 'provincecode': '150000',
  5097. 'city': '巴彦淖尔市',
  5098. 'code': '150800',
  5099. 'initial': 'B',
  5100. 'short': 'Bayannaoer' },
  5101. {
  5102. 'id': '40',
  5103. 'provincecode': '210000',
  5104. 'city': '本溪市',
  5105. 'code': '210500',
  5106. 'initial': 'B',
  5107. 'short': 'Benxi' },
  5108. {
  5109. 'id': '55',
  5110. 'provincecode': '220000',
  5111. 'city': '白山市',
  5112. 'code': '220600',
  5113. 'initial': 'B',
  5114. 'short': 'Baishan' },
  5115. {
  5116. 'id': '57',
  5117. 'provincecode': '220000',
  5118. 'city': '白城市',
  5119. 'code': '220800',
  5120. 'initial': 'B',
  5121. 'short': 'Baicheng' },
  5122. {
  5123. 'id': '100',
  5124. 'provincecode': '340000',
  5125. 'city': '蚌埠市',
  5126. 'code': '340300',
  5127. 'initial': 'B',
  5128. 'short': 'Bangbu' },
  5129. {
  5130. 'id': '150',
  5131. 'provincecode': '370000',
  5132. 'city': '滨州市',
  5133. 'code': '371600',
  5134. 'initial': 'B',
  5135. 'short': 'Binzhou' },
  5136. {
  5137. 'id': '222',
  5138. 'provincecode': '450000',
  5139. 'city': '北海市',
  5140. 'code': '450500',
  5141. 'initial': 'B',
  5142. 'short': 'Beihai' },
  5143. {
  5144. 'id': '227',
  5145. 'provincecode': '450000',
  5146. 'city': '百色市',
  5147. 'code': '451000',
  5148. 'initial': 'B',
  5149. 'short': 'Baise' },
  5150. {
  5151. 'id': '254',
  5152. 'provincecode': '510000',
  5153. 'city': '巴中市',
  5154. 'code': '511900',
  5155. 'initial': 'B',
  5156. 'short': 'Bazhong' },
  5157. {
  5158. 'id': '265',
  5159. 'provincecode': '520000',
  5160. 'city': '毕节地区',
  5161. 'code': '522400',
  5162. 'initial': 'B',
  5163. 'short': 'Bijie' },
  5164. {
  5165. 'id': '271',
  5166. 'provincecode': '530000',
  5167. 'city': '保山市',
  5168. 'code': '530500',
  5169. 'initial': 'B',
  5170. 'short': 'Baoshan' },
  5171. {
  5172. 'id': '293',
  5173. 'provincecode': '610000',
  5174. 'city': '宝鸡市',
  5175. 'code': '610300',
  5176. 'initial': 'B',
  5177. 'short': 'Baoji' },
  5178. {
  5179. 'id': '304',
  5180. 'provincecode': '620000',
  5181. 'city': '白银市',
  5182. 'code': '620400',
  5183. 'initial': 'B',
  5184. 'short': 'Baiyin' },
  5185. {
  5186. 'id': '333',
  5187. 'provincecode': '650000',
  5188. 'city': '博尔塔拉蒙古自治州',
  5189. 'code': '652700',
  5190. 'initial': 'B',
  5191. 'short': 'Boertala' },
  5192. {
  5193. 'id': '334',
  5194. 'provincecode': '650000',
  5195. 'city': '巴音郭楞蒙古自治州',
  5196. 'code': '652800',
  5197. 'initial': 'B',
  5198. 'short': 'Bayinguoleng' },
  5199. {
  5200. 'id': '',
  5201. 'provincecode': '500100',
  5202. 'city': '重庆市',
  5203. 'code': '500100',
  5204. 'initial': 'C',
  5205. 'short': 'Chongqing' },
  5206. {
  5207. 'id': '9',
  5208. 'provincecode': '130000',
  5209. 'city': '承德市',
  5210. 'code': '130800',
  5211. 'initial': 'C',
  5212. 'short': 'Chengde' },
  5213. {
  5214. 'id': '10',
  5215. 'provincecode': '130000',
  5216. 'city': '沧州市',
  5217. 'code': '130900',
  5218. 'initial': 'C',
  5219. 'short': 'Cangzhou' },
  5220. {
  5221. 'id': '16',
  5222. 'provincecode': '140000',
  5223. 'city': '长治市',
  5224. 'code': '140400',
  5225. 'initial': 'C',
  5226. 'short': 'Changzhi' },
  5227. {
  5228. 'id': '27',
  5229. 'provincecode': '150000',
  5230. 'city': '赤峰市',
  5231. 'code': '150400',
  5232. 'initial': 'C',
  5233. 'short': 'Chifeng' },
  5234. {
  5235. 'id': '48',
  5236. 'provincecode': '210000',
  5237. 'city': '朝阳市',
  5238. 'code': '211300',
  5239. 'initial': 'C',
  5240. 'short': 'Chaoyang' },
  5241. {
  5242. 'id': '50',
  5243. 'provincecode': '220000',
  5244. 'city': '长春市',
  5245. 'code': '220100',
  5246. 'initial': 'C',
  5247. 'short': 'Changchun' },
  5248. {
  5249. 'id': '77',
  5250. 'provincecode': '320000',
  5251. 'city': '常州市',
  5252. 'code': '320400',
  5253. 'initial': 'C',
  5254. 'short': 'Changzhou' },
  5255. {
  5256. 'id': '107',
  5257. 'provincecode': '340000',
  5258. 'city': '滁州市',
  5259. 'code': '341100',
  5260. 'initial': 'C',
  5261. 'short': 'Chuzhou' },
  5262. {
  5263. 'id': '110',
  5264. 'provincecode': '340000',
  5265. 'city': '巢湖市',
  5266. 'code': '341400',
  5267. 'initial': 'C',
  5268. 'short': 'Chaohu' },
  5269. {
  5270. 'id': '113',
  5271. 'provincecode': '340000',
  5272. 'city': '池州市',
  5273. 'code': '341700',
  5274. 'initial': 'C',
  5275. 'short': 'Chizhou' },
  5276. {
  5277. 'id': '183',
  5278. 'provincecode': '430000',
  5279. 'city': '长沙市',
  5280. 'code': '430100',
  5281. 'initial': 'C',
  5282. 'short': 'Changsha' },
  5283. {
  5284. 'id': '189',
  5285. 'provincecode': '430000',
  5286. 'city': '常德市',
  5287. 'code': '430700',
  5288. 'initial': 'C',
  5289. 'short': 'Changde' },
  5290. {
  5291. 'id': '192',
  5292. 'provincecode': '430000',
  5293. 'city': '郴州市',
  5294. 'code': '431000',
  5295. 'initial': 'C',
  5296. 'short': 'Chenzhou' },
  5297. {
  5298. 'id': '215',
  5299. 'provincecode': '440000',
  5300. 'city': '潮州市',
  5301. 'code': '445100',
  5302. 'initial': 'C',
  5303. 'short': 'Chaozhou' },
  5304. {
  5305. 'id': '231',
  5306. 'provincecode': '450000',
  5307. 'city': '崇左市',
  5308. 'code': '451400',
  5309. 'initial': 'C',
  5310. 'short': 'Chongzuo' },
  5311. {
  5312. 'id': '238',
  5313. 'provincecode': '510000',
  5314. 'city': '成都市',
  5315. 'code': '510100',
  5316. 'initial': 'C',
  5317. 'short': 'Chengdu' },
  5318. {
  5319. 'id': '276',
  5320. 'provincecode': '530000',
  5321. 'city': '楚雄彝族自治州',
  5322. 'code': '532300',
  5323. 'initial': 'C',
  5324. 'short': 'Chuxiong' },
  5325. {
  5326. 'id': '285',
  5327. 'provincecode': '540000',
  5328. 'city': '昌都地区',
  5329. 'code': '542100',
  5330. 'initial': 'C',
  5331. 'short': 'Changdu' },
  5332. {
  5333. 'id': '332',
  5334. 'provincecode': '650000',
  5335. 'city': '昌吉回族自治州',
  5336. 'code': '652300',
  5337. 'initial': 'C',
  5338. 'short': 'Changji' },
  5339. {
  5340. 'id': '14',
  5341. 'provincecode': '140000',
  5342. 'city': '大同市',
  5343. 'code': '140200',
  5344. 'initial': 'D',
  5345. 'short': 'Datong' },
  5346. {
  5347. 'id': '37',
  5348. 'provincecode': '210000',
  5349. 'city': '大连市',
  5350. 'code': '210200',
  5351. 'initial': 'D',
  5352. 'short': 'Dalian' },
  5353. {
  5354. 'id': '41',
  5355. 'provincecode': '210000',
  5356. 'city': '丹东市',
  5357. 'code': '210600',
  5358. 'initial': 'D',
  5359. 'short': 'Dandong' },
  5360. {
  5361. 'id': '64',
  5362. 'provincecode': '230000',
  5363. 'city': '大庆市',
  5364. 'code': '230600',
  5365. 'initial': 'D',
  5366. 'short': 'Daqing' },
  5367. {
  5368. 'id': '71',
  5369. 'provincecode': '230000',
  5370. 'city': '大兴安岭地区',
  5371. 'code': '232700',
  5372. 'initial': 'D',
  5373. 'short': 'Daxinganling' },
  5374. {
  5375. 'id': '139',
  5376. 'provincecode': '370000',
  5377. 'city': '东营市',
  5378. 'code': '370500',
  5379. 'initial': 'D',
  5380. 'short': 'Dongying' },
  5381. {
  5382. 'id': '148',
  5383. 'provincecode': '370000',
  5384. 'city': '德州市',
  5385. 'code': '371400',
  5386. 'initial': 'D',
  5387. 'short': 'Dezhou' },
  5388. {
  5389. 'id': '213',
  5390. 'provincecode': '440000',
  5391. 'city': '东莞市',
  5392. 'code': '441900',
  5393. 'initial': 'D',
  5394. 'short': 'Dongguan' },
  5395. {
  5396. 'id': '242',
  5397. 'provincecode': '510000',
  5398. 'city': '德阳市',
  5399. 'code': '510600',
  5400. 'initial': 'D',
  5401. 'short': 'Deyang' },
  5402. {
  5403. 'id': '252',
  5404. 'provincecode': '510000',
  5405. 'city': '达州市',
  5406. 'code': '511700',
  5407. 'initial': 'D',
  5408. 'short': 'Dazhou' },
  5409. {
  5410. 'id': '280',
  5411. 'provincecode': '530000',
  5412. 'city': '大理白族自治州',
  5413. 'code': '532900',
  5414. 'initial': 'D',
  5415. 'short': 'Dali' },
  5416. {
  5417. 'id': '281',
  5418. 'provincecode': '530000',
  5419. 'city': '德宏傣族景颇族自治州',
  5420. 'code': '533100',
  5421. 'initial': 'D',
  5422. 'short': 'Dehong' },
  5423. {
  5424. 'id': '283',
  5425. 'provincecode': '530000',
  5426. 'city': '迪庆藏族自治州',
  5427. 'code': '533400',
  5428. 'initial': 'D',
  5429. 'short': 'Diqing' },
  5430. {
  5431. 'id': '311',
  5432. 'provincecode': '620000',
  5433. 'city': '定西市',
  5434. 'code': '621100',
  5435. 'initial': 'D',
  5436. 'short': 'Dingxi' },
  5437. {
  5438. 'id': '29',
  5439. 'provincecode': '150000',
  5440. 'city': '鄂尔多斯市',
  5441. 'code': '150600',
  5442. 'initial': 'E',
  5443. 'short': 'Eerduosi' },
  5444. {
  5445. 'id': '174',
  5446. 'provincecode': '420000',
  5447. 'city': '鄂州市',
  5448. 'code': '420700',
  5449. 'initial': 'E',
  5450. 'short': 'Ezhou' },
  5451. {
  5452. 'id': '181',
  5453. 'provincecode': '420000',
  5454. 'city': '恩施土家族苗族自治州',
  5455. 'code': '422800',
  5456. 'initial': 'E',
  5457. 'short': 'Enshi' },
  5458. {
  5459. 'id': '39',
  5460. 'provincecode': '210000',
  5461. 'city': '抚顺市',
  5462. 'code': '210400',
  5463. 'initial': 'F',
  5464. 'short': 'Fushun' },
  5465. {
  5466. 'id': '44',
  5467. 'provincecode': '210000',
  5468. 'city': '阜新市',
  5469. 'code': '210900',
  5470. 'initial': 'F',
  5471. 'short': 'Fuxin' },
  5472. {
  5473. 'id': '108',
  5474. 'provincecode': '340000',
  5475. 'city': '阜阳市',
  5476. 'code': '341200',
  5477. 'initial': 'F',
  5478. 'short': 'Fuyang' },
  5479. {
  5480. 'id': '115',
  5481. 'provincecode': '350000',
  5482. 'city': '福州市',
  5483. 'code': '350100',
  5484. 'initial': 'F',
  5485. 'short': 'Fuzhou' },
  5486. {
  5487. 'id': '133',
  5488. 'provincecode': '360000',
  5489. 'city': '抚州市',
  5490. 'code': '361000',
  5491. 'initial': 'F',
  5492. 'short': 'Fuzhou' },
  5493. {
  5494. 'id': '202',
  5495. 'provincecode': '440000',
  5496. 'city': '佛山市',
  5497. 'code': '440600',
  5498. 'initial': 'F',
  5499. 'short': 'Foshan' },
  5500. {
  5501. 'id': '223',
  5502. 'provincecode': '450000',
  5503. 'city': '防城港市',
  5504. 'code': '450600',
  5505. 'initial': 'F',
  5506. 'short': 'Fangchenggang' },
  5507. {
  5508. 'id': '130',
  5509. 'provincecode': '360000',
  5510. 'city': '赣州市',
  5511. 'code': '360700',
  5512. 'initial': 'G',
  5513. 'short': 'Ganzhou' },
  5514. {
  5515. 'id': '197',
  5516. 'provincecode': '440000',
  5517. 'city': '广州市',
  5518. 'code': '440100',
  5519. 'initial': 'G',
  5520. 'short': 'Guangzhou' },
  5521. {
  5522. 'id': '220',
  5523. 'provincecode': '450000',
  5524. 'city': '桂林市',
  5525. 'code': '450300',
  5526. 'initial': 'G',
  5527. 'short': 'Guilin' },
  5528. {
  5529. 'id': '225',
  5530. 'provincecode': '450000',
  5531. 'city': '贵港市',
  5532. 'code': '450800',
  5533. 'initial': 'G',
  5534. 'short': 'Guigang' },
  5535. {
  5536. 'id': '244',
  5537. 'provincecode': '510000',
  5538. 'city': '广元市',
  5539. 'code': '510800',
  5540. 'initial': 'G',
  5541. 'short': 'Guangyuan' },
  5542. {
  5543. 'id': '251',
  5544. 'provincecode': '510000',
  5545. 'city': '广安市',
  5546. 'code': '511600',
  5547. 'initial': 'G',
  5548. 'short': 'Guangan' },
  5549. {
  5550. 'id': '257',
  5551. 'provincecode': '510000',
  5552. 'city': '甘孜藏族自治州',
  5553. 'code': '513300',
  5554. 'initial': 'G',
  5555. 'short': 'Ganzi' },
  5556. {
  5557. 'id': '259',
  5558. 'provincecode': '520000',
  5559. 'city': '贵阳市',
  5560. 'code': '520100',
  5561. 'initial': 'G',
  5562. 'short': 'Guiyang' },
  5563. {
  5564. 'id': '314',
  5565. 'provincecode': '620000',
  5566. 'city': '甘南藏族自治州',
  5567. 'code': '623000',
  5568. 'initial': 'G',
  5569. 'short': 'Gannan' },
  5570. {
  5571. 'id': '320',
  5572. 'provincecode': '630000',
  5573. 'city': '果洛藏族自治州',
  5574. 'code': '632600',
  5575. 'initial': 'G',
  5576. 'short': 'Guoluo' },
  5577. {
  5578. 'id': '326',
  5579. 'provincecode': '640000',
  5580. 'city': '固原市',
  5581. 'code': '640400',
  5582. 'initial': 'G',
  5583. 'short': 'Guyuan' },
  5584. {
  5585. 'id': '5',
  5586. 'provincecode': '130000',
  5587. 'city': '邯郸市',
  5588. 'code': '130400',
  5589. 'initial': 'H',
  5590. 'short': 'Handan' },
  5591. {
  5592. 'id': '12',
  5593. 'provincecode': '130000',
  5594. 'city': '衡水市',
  5595. 'code': '131100',
  5596. 'initial': 'H',
  5597. 'short': 'Hengshui' },
  5598. {
  5599. 'id': '',
  5600. 'provincecode': '370000',
  5601. 'city': '菏泽市',
  5602. 'code': '371700',
  5603. 'initial': 'H',
  5604. 'short': 'Heze' },
  5605. {
  5606. 'id': '24',
  5607. 'provincecode': '150000',
  5608. 'city': '呼和浩特市',
  5609. 'code': '150100',
  5610. 'initial': 'H',
  5611. 'short': 'Huhehaote' },
  5612. {
  5613. 'id': '30',
  5614. 'provincecode': '150000',
  5615. 'city': '呼伦贝尔市',
  5616. 'code': '150700',
  5617. 'initial': 'H',
  5618. 'short': 'Hulunbeier' },
  5619. {
  5620. 'id': '49',
  5621. 'provincecode': '210000',
  5622. 'city': '葫芦岛市',
  5623. 'code': '211400',
  5624. 'initial': 'H',
  5625. 'short': 'Huludao' },
  5626. {
  5627. 'id': '59',
  5628. 'provincecode': '230000',
  5629. 'city': '哈尔滨市',
  5630. 'code': '230100',
  5631. 'initial': 'H',
  5632. 'short': 'Haerbin' },
  5633. {
  5634. 'id': '62',
  5635. 'provincecode': '230000',
  5636. 'city': '鹤岗市',
  5637. 'code': '230400',
  5638. 'initial': 'H',
  5639. 'short': 'Hegang' },
  5640. {
  5641. 'id': '69',
  5642. 'provincecode': '230000',
  5643. 'city': '黑河市',
  5644. 'code': '231100',
  5645. 'initial': 'H',
  5646. 'short': 'Heihe' },
  5647. {
  5648. 'id': '81',
  5649. 'provincecode': '320000',
  5650. 'city': '淮安市',
  5651. 'code': '320800',
  5652. 'initial': 'H',
  5653. 'short': 'Huaian' },
  5654. {
  5655. 'id': '87',
  5656. 'provincecode': '330000',
  5657. 'city': '杭州市',
  5658. 'code': '330100',
  5659. 'initial': 'H',
  5660. 'short': 'Hangzhou' },
  5661. {
  5662. 'id': '91',
  5663. 'provincecode': '330000',
  5664. 'city': '湖州市',
  5665. 'code': '330500',
  5666. 'initial': 'H',
  5667. 'short': 'Huzhou' },
  5668. {
  5669. 'id': '98',
  5670. 'provincecode': '340000',
  5671. 'city': '合肥市',
  5672. 'code': '340100',
  5673. 'initial': 'H',
  5674. 'short': 'Hefei' },
  5675. {
  5676. 'id': '101',
  5677. 'provincecode': '340000',
  5678. 'city': '淮南市',
  5679. 'code': '340400',
  5680. 'initial': 'H',
  5681. 'short': 'Huainan' },
  5682. {
  5683. 'id': '103',
  5684. 'provincecode': '340000',
  5685. 'city': '淮北市',
  5686. 'code': '340600',
  5687. 'initial': 'H',
  5688. 'short': 'Huaibei' },
  5689. {
  5690. 'id': '106',
  5691. 'provincecode': '340000',
  5692. 'city': '黄山市',
  5693. 'code': '341000',
  5694. 'initial': 'H',
  5695. 'short': 'Huangshan' },
  5696. {
  5697. 'id': '112',
  5698. 'provincecode': '340000',
  5699. 'city': '亳州市',
  5700. 'code': '341600',
  5701. 'initial': 'H',
  5702. 'short': 'Bozhou' },
  5703. {
  5704. 'id': '157',
  5705. 'provincecode': '410000',
  5706. 'city': '鹤壁市',
  5707. 'code': '410600',
  5708. 'initial': 'H',
  5709. 'short': 'Hebi' },
  5710. {
  5711. 'id': '170',
  5712. 'provincecode': '420000',
  5713. 'city': '黄石市',
  5714. 'code': '420200',
  5715. 'initial': 'H',
  5716. 'short': 'Huangshi' },
  5717. {
  5718. 'id': '178',
  5719. 'provincecode': '420000',
  5720. 'city': '黄冈市',
  5721. 'code': '421100',
  5722. 'initial': 'H',
  5723. 'short': 'Huanggang' },
  5724. {
  5725. 'id': '186',
  5726. 'provincecode': '430000',
  5727. 'city': '衡阳市',
  5728. 'code': '430400',
  5729. 'initial': 'H',
  5730. 'short': 'Hengyang' },
  5731. {
  5732. 'id': '194',
  5733. 'provincecode': '430000',
  5734. 'city': '怀化市',
  5735. 'code': '431200',
  5736. 'initial': 'H',
  5737. 'short': 'Huaihua' },
  5738. {
  5739. 'id': '207',
  5740. 'provincecode': '440000',
  5741. 'city': '惠州市',
  5742. 'code': '441300',
  5743. 'initial': 'H',
  5744. 'short': 'Huizhou' },
  5745. {
  5746. 'id': '210',
  5747. 'provincecode': '440000',
  5748. 'city': '河源市',
  5749. 'code': '441600',
  5750. 'initial': 'H',
  5751. 'short': 'Heyuan' },
  5752. {
  5753. 'id': '228',
  5754. 'provincecode': '450000',
  5755. 'city': '贺州市',
  5756. 'code': '451100',
  5757. 'initial': 'H',
  5758. 'short': 'Hezhou' },
  5759. {
  5760. 'id': '229',
  5761. 'provincecode': '450000',
  5762. 'city': '河池市',
  5763. 'code': '451200',
  5764. 'initial': 'H',
  5765. 'short': 'Hechi' },
  5766. {
  5767. 'id': '232',
  5768. 'provincecode': '460000',
  5769. 'city': '海口市',
  5770. 'code': '460100',
  5771. 'initial': 'H',
  5772. 'short': 'Haikou' },
  5773. {
  5774. 'id': '277',
  5775. 'provincecode': '530000',
  5776. 'city': '红河哈尼族彝族自治州',
  5777. 'code': '532500',
  5778. 'initial': 'H',
  5779. 'short': 'Honghe' },
  5780. {
  5781. 'id': '297',
  5782. 'provincecode': '610000',
  5783. 'city': '汉中市',
  5784. 'code': '610700',
  5785. 'initial': 'H',
  5786. 'short': 'Hanzhong' },
  5787. {
  5788. 'id': '316',
  5789. 'provincecode': '630000',
  5790. 'city': '海东地区',
  5791. 'code': '632100',
  5792. 'initial': 'H',
  5793. 'short': 'Haidong' },
  5794. {
  5795. 'id': '317',
  5796. 'provincecode': '630000',
  5797. 'city': '海北藏族自治州',
  5798. 'code': '632200',
  5799. 'initial': 'H',
  5800. 'short': 'Haibei' },
  5801. {
  5802. 'id': '318',
  5803. 'provincecode': '630000',
  5804. 'city': '黄南藏族自治州',
  5805. 'code': '632300',
  5806. 'initial': 'H',
  5807. 'short': 'Huangnan' },
  5808. {
  5809. 'id': '319',
  5810. 'provincecode': '630000',
  5811. 'city': '海南藏族自治州',
  5812. 'code': '632500',
  5813. 'initial': 'H',
  5814. 'short': 'Hainan' },
  5815. {
  5816. 'id': '322',
  5817. 'provincecode': '630000',
  5818. 'city': '海西蒙古族藏族自治州',
  5819. 'code': '632800',
  5820. 'initial': 'H',
  5821. 'short': 'Haixi' },
  5822. {
  5823. 'id': '331',
  5824. 'provincecode': '650000',
  5825. 'city': '哈密地区',
  5826. 'code': '652200',
  5827. 'initial': 'H',
  5828. 'short': 'Hami' },
  5829. {
  5830. 'id': '338',
  5831. 'provincecode': '650000',
  5832. 'city': '和田地区',
  5833. 'code': '653200',
  5834. 'initial': 'H',
  5835. 'short': 'Hetiandi' },
  5836. {
  5837. 'id': '17',
  5838. 'provincecode': '140000',
  5839. 'city': '晋城市',
  5840. 'code': '140500',
  5841. 'initial': 'J',
  5842. 'short': 'Jincheng' },
  5843. {
  5844. 'id': '19',
  5845. 'provincecode': '140000',
  5846. 'city': '晋中市',
  5847. 'code': '140700',
  5848. 'initial': 'J',
  5849. 'short': 'Jinzhong' },
  5850. {
  5851. 'id': '42',
  5852. 'provincecode': '210000',
  5853. 'city': '锦州市',
  5854. 'code': '210700',
  5855. 'initial': 'J',
  5856. 'short': 'Jinzhou' },
  5857. {
  5858. 'id': '51',
  5859. 'provincecode': '220000',
  5860. 'city': '吉林市',
  5861. 'code': '220200',
  5862. 'initial': 'J',
  5863. 'short': 'Jilin' },
  5864. {
  5865. 'id': '61',
  5866. 'provincecode': '230000',
  5867. 'city': '鸡西市',
  5868. 'code': '230300',
  5869. 'initial': 'J',
  5870. 'short': 'Jixi' },
  5871. {
  5872. 'id': '66',
  5873. 'provincecode': '230000',
  5874. 'city': '佳木斯市',
  5875. 'code': '230800',
  5876. 'initial': 'J',
  5877. 'short': 'Jiamusi' },
  5878. {
  5879. 'id': '90',
  5880. 'provincecode': '330000',
  5881. 'city': '嘉兴市',
  5882. 'code': '330400',
  5883. 'initial': 'J',
  5884. 'short': 'Jiaxing' },
  5885. {
  5886. 'id': '93',
  5887. 'provincecode': '330000',
  5888. 'city': '金华市',
  5889. 'code': '330700',
  5890. 'initial': 'J',
  5891. 'short': 'Jinhua' },
  5892. {
  5893. 'id': '125',
  5894. 'provincecode': '360000',
  5895. 'city': '景德镇市',
  5896. 'code': '360200',
  5897. 'initial': 'J',
  5898. 'short': 'Jingdezhen' },
  5899. {
  5900. 'id': '127',
  5901. 'provincecode': '360000',
  5902. 'city': '九江市',
  5903. 'code': '360400',
  5904. 'initial': 'J',
  5905. 'short': 'Jiujiang' },
  5906. {
  5907. 'id': '131',
  5908. 'provincecode': '360000',
  5909. 'city': '吉安市',
  5910. 'code': '360800',
  5911. 'initial': 'J',
  5912. 'short': 'Jian' },
  5913. {
  5914. 'id': '135',
  5915. 'provincecode': '370000',
  5916. 'city': '济南市',
  5917. 'code': '370100',
  5918. 'initial': 'J',
  5919. 'short': 'Jinan' },
  5920. {
  5921. 'id': '142',
  5922. 'provincecode': '370000',
  5923. 'city': '济宁市',
  5924. 'code': '370800',
  5925. 'initial': 'J',
  5926. 'short': 'Jining' },
  5927. {
  5928. 'id': '159',
  5929. 'provincecode': '410000',
  5930. 'city': '焦作市',
  5931. 'code': '410800',
  5932. 'initial': 'J',
  5933. 'short': 'Jiaozuo' },
  5934. {
  5935. 'id': '175',
  5936. 'provincecode': '420000',
  5937. 'city': '荆门市',
  5938. 'code': '420800',
  5939. 'initial': 'J',
  5940. 'short': 'Jingmen' },
  5941. {
  5942. 'id': '177',
  5943. 'provincecode': '420000',
  5944. 'city': '荆州市',
  5945. 'code': '421000',
  5946. 'initial': 'J',
  5947. 'short': 'Jingzhou' },
  5948. {
  5949. 'id': '203',
  5950. 'provincecode': '440000',
  5951. 'city': '江门市',
  5952. 'code': '440700',
  5953. 'initial': 'J',
  5954. 'short': 'Jiangmen' },
  5955. {
  5956. 'id': '216',
  5957. 'provincecode': '440000',
  5958. 'city': '揭阳市',
  5959. 'code': '445200',
  5960. 'initial': 'J',
  5961. 'short': 'Jieyang' },
  5962. {
  5963. 'id': '302',
  5964. 'provincecode': '620000',
  5965. 'city': '嘉峪关市',
  5966. 'code': '620200',
  5967. 'initial': 'J',
  5968. 'short': 'Jiayuguan' },
  5969. {
  5970. 'id': '303',
  5971. 'provincecode': '620000',
  5972. 'city': '金昌市',
  5973. 'code': '620300',
  5974. 'initial': 'J',
  5975. 'short': 'Jinchang' },
  5976. {
  5977. 'id': '309',
  5978. 'provincecode': '620000',
  5979. 'city': '酒泉市',
  5980. 'code': '620900',
  5981. 'initial': 'J',
  5982. 'short': 'Jiuquan' },
  5983. {
  5984. 'id': '153',
  5985. 'provincecode': '410000',
  5986. 'city': '开封市',
  5987. 'code': '410200',
  5988. 'initial': 'K',
  5989. 'short': 'Kaifeng' },
  5990. {
  5991. 'id': '268',
  5992. 'provincecode': '530000',
  5993. 'city': '昆明市',
  5994. 'code': '530100',
  5995. 'initial': 'K',
  5996. 'short': 'Kunming' },
  5997. {
  5998. 'id': '329',
  5999. 'provincecode': '650000',
  6000. 'city': '克拉玛依市',
  6001. 'code': '650200',
  6002. 'initial': 'K',
  6003. 'short': 'Kelamayi' },
  6004. {
  6005. 'id': '336',
  6006. 'provincecode': '650000',
  6007. 'city': '克孜勒苏柯尔克孜自治州',
  6008. 'code': '653000',
  6009. 'initial': 'K',
  6010. 'short': 'Kezile' },
  6011. {
  6012. 'id': '337',
  6013. 'provincecode': '650000',
  6014. 'city': '喀什地区',
  6015. 'code': '653100',
  6016. 'initial': 'K',
  6017. 'short': 'Kashidi' },
  6018. {
  6019. 'id': '11',
  6020. 'provincecode': '130000',
  6021. 'city': '廊坊市',
  6022. 'code': '131000',
  6023. 'initial': 'L',
  6024. 'short': 'Langfang' },
  6025. {
  6026. 'id': '22',
  6027. 'provincecode': '140000',
  6028. 'city': '临汾市',
  6029. 'code': '141000',
  6030. 'initial': 'L',
  6031. 'short': 'Linfen' },
  6032. {
  6033. 'id': '23',
  6034. 'provincecode': '140000',
  6035. 'city': '吕梁市',
  6036. 'code': '141100',
  6037. 'initial': 'L',
  6038. 'short': 'Lvliang' },
  6039. {
  6040. 'id': '45',
  6041. 'provincecode': '210000',
  6042. 'city': '辽阳市',
  6043. 'code': '211000',
  6044. 'initial': 'L',
  6045. 'short': 'Liaoyang' },
  6046. {
  6047. 'id': '53',
  6048. 'provincecode': '220000',
  6049. 'city': '辽源市',
  6050. 'code': '220400',
  6051. 'initial': 'L',
  6052. 'short': 'Liaoyuan' },
  6053. {
  6054. 'id': '80',
  6055. 'provincecode': '320000',
  6056. 'city': '连云港市',
  6057. 'code': '320700',
  6058. 'initial': 'L',
  6059. 'short': 'Lianyungang' },
  6060. {
  6061. 'id': '97',
  6062. 'provincecode': '330000',
  6063. 'city': '丽水市',
  6064. 'code': '331100',
  6065. 'initial': 'L',
  6066. 'short': 'Lishui' },
  6067. {
  6068. 'id': '111',
  6069. 'provincecode': '340000',
  6070. 'city': '六安市',
  6071. 'code': '341500',
  6072. 'initial': 'L',
  6073. 'short': 'Liuan' },
  6074. {
  6075. 'id': '122',
  6076. 'provincecode': '350000',
  6077. 'city': '龙岩市',
  6078. 'code': '350800',
  6079. 'initial': 'L',
  6080. 'short': 'Longyan' },
  6081. {
  6082. 'id': '146',
  6083. 'provincecode': '370000',
  6084. 'city': '莱芜市',
  6085. 'code': '371200',
  6086. 'initial': 'L',
  6087. 'short': 'Laiwu' },
  6088. {
  6089. 'id': '147',
  6090. 'provincecode': '370000',
  6091. 'city': '临沂市',
  6092. 'code': '371300',
  6093. 'initial': 'L',
  6094. 'short': 'Linyi' },
  6095. {
  6096. 'id': '149',
  6097. 'provincecode': '370000',
  6098. 'city': '聊城市',
  6099. 'code': '371500',
  6100. 'initial': 'L',
  6101. 'short': 'Liaocheng' },
  6102. {
  6103. 'id': '154',
  6104. 'provincecode': '410000',
  6105. 'city': '洛阳市',
  6106. 'code': '410300',
  6107. 'initial': 'L',
  6108. 'short': 'Luoyang' },
  6109. {
  6110. 'id': '162',
  6111. 'provincecode': '410000',
  6112. 'city': '漯河市',
  6113. 'code': '411100',
  6114. 'initial': 'L',
  6115. 'short': 'Luohe' },
  6116. {
  6117. 'id': '195',
  6118. 'provincecode': '430000',
  6119. 'city': '娄底市',
  6120. 'code': '431300',
  6121. 'initial': 'L',
  6122. 'short': 'Loudi' },
  6123. {
  6124. 'id': '219',
  6125. 'provincecode': '450000',
  6126. 'city': '柳州市',
  6127. 'code': '450200',
  6128. 'initial': 'L',
  6129. 'short': 'Liuzhou' },
  6130. {
  6131. 'id': '230',
  6132. 'provincecode': '450000',
  6133. 'city': '来宾市',
  6134. 'code': '451300',
  6135. 'initial': 'L',
  6136. 'short': 'Laibin' },
  6137. {
  6138. 'id': '241',
  6139. 'provincecode': '510000',
  6140. 'city': '泸州市',
  6141. 'code': '510500',
  6142. 'initial': 'L',
  6143. 'short': 'Luzhou' },
  6144. {
  6145. 'id': '247',
  6146. 'provincecode': '510000',
  6147. 'city': '乐山市',
  6148. 'code': '511100',
  6149. 'initial': 'L',
  6150. 'short': 'Leshan' },
  6151. {
  6152. 'id': '258',
  6153. 'provincecode': '510000',
  6154. 'city': '凉山彝族自治州',
  6155. 'code': '513400',
  6156. 'initial': 'L',
  6157. 'short': 'Liangshan' },
  6158. {
  6159. 'id': '260',
  6160. 'provincecode': '520000',
  6161. 'city': '六盘水市',
  6162. 'code': '520200',
  6163. 'initial': 'L',
  6164. 'short': 'Liupanshui' },
  6165. {
  6166. 'id': '273',
  6167. 'provincecode': '530000',
  6168. 'city': '丽江市',
  6169. 'code': '530700',
  6170. 'initial': 'L',
  6171. 'short': 'Lijiang' },
  6172. {
  6173. 'id': '275',
  6174. 'provincecode': '530000',
  6175. 'city': '临沧市',
  6176. 'code': '530900',
  6177. 'initial': 'L',
  6178. 'short': 'Lincang' },
  6179. {
  6180. 'id': '284',
  6181. 'provincecode': '540000',
  6182. 'city': '拉萨市',
  6183. 'code': '540100',
  6184. 'initial': 'L',
  6185. 'short': 'Lasa' },
  6186. {
  6187. 'id': '290',
  6188. 'provincecode': '540000',
  6189. 'city': '林芝地区',
  6190. 'code': '542600',
  6191. 'initial': 'L',
  6192. 'short': 'Linzhi' },
  6193. {
  6194. 'id': '301',
  6195. 'provincecode': '620000',
  6196. 'city': '兰州市',
  6197. 'code': '620100',
  6198. 'initial': 'L',
  6199. 'short': 'Lanzhou' },
  6200. {
  6201. 'id': '312',
  6202. 'provincecode': '620000',
  6203. 'city': '陇南市',
  6204. 'code': '621200',
  6205. 'initial': 'L',
  6206. 'short': 'Longnan' },
  6207. {
  6208. 'id': '313',
  6209. 'provincecode': '620000',
  6210. 'city': '临夏回族自治州',
  6211. 'code': '622900',
  6212. 'initial': 'L',
  6213. 'short': 'Linxia' },
  6214. {
  6215. 'id': '68',
  6216. 'provincecode': '230000',
  6217. 'city': '牡丹江市',
  6218. 'code': '231000',
  6219. 'initial': 'M',
  6220. 'short': 'Mudanjiang' },
  6221. {
  6222. 'id': '102',
  6223. 'provincecode': '340000',
  6224. 'city': '马鞍山市',
  6225. 'code': '340500',
  6226. 'initial': 'M',
  6227. 'short': 'Maanshan' },
  6228. {
  6229. 'id': '205',
  6230. 'provincecode': '440000',
  6231. 'city': '茂名市',
  6232. 'code': '440900',
  6233. 'initial': 'M',
  6234. 'short': 'Maoming' },
  6235. {
  6236. 'id': '208',
  6237. 'provincecode': '440000',
  6238. 'city': '梅州市',
  6239. 'code': '441400',
  6240. 'initial': 'M',
  6241. 'short': 'Meizhou' },
  6242. {
  6243. 'id': '243',
  6244. 'provincecode': '510000',
  6245. 'city': '绵阳市',
  6246. 'code': '510700',
  6247. 'initial': 'M',
  6248. 'short': 'Mianyang' },
  6249. {
  6250. 'id': '249',
  6251. 'provincecode': '510000',
  6252. 'city': '眉山市',
  6253. 'code': '511400',
  6254. 'initial': 'M',
  6255. 'short': 'Meishan' },
  6256. {
  6257. 'id': '74',
  6258. 'provincecode': '320000',
  6259. 'city': '南京市',
  6260. 'code': '320100',
  6261. 'initial': 'N',
  6262. 'short': 'Nanjing' },
  6263. {
  6264. 'id': '79',
  6265. 'provincecode': '320000',
  6266. 'city': '南通市',
  6267. 'code': '320600',
  6268. 'initial': 'N',
  6269. 'short': 'Nantong' },
  6270. {
  6271. 'id': '88',
  6272. 'provincecode': '330000',
  6273. 'city': '宁波市',
  6274. 'code': '330200',
  6275. 'initial': 'N',
  6276. 'short': 'Ningbo' },
  6277. {
  6278. 'id': '121',
  6279. 'provincecode': '350000',
  6280. 'city': '南平市',
  6281. 'code': '350700',
  6282. 'initial': 'N',
  6283. 'short': 'Nanping' },
  6284. {
  6285. 'id': '123',
  6286. 'provincecode': '350000',
  6287. 'city': '宁德市',
  6288. 'code': '350900',
  6289. 'initial': 'N',
  6290. 'short': 'Ningde' },
  6291. {
  6292. 'id': '124',
  6293. 'provincecode': '360000',
  6294. 'city': '南昌市',
  6295. 'code': '360100',
  6296. 'initial': 'N',
  6297. 'short': 'Nanchang' },
  6298. {
  6299. 'id': '164',
  6300. 'provincecode': '410000',
  6301. 'city': '南阳市',
  6302. 'code': '411300',
  6303. 'initial': 'N',
  6304. 'short': 'Nanyang' },
  6305. {
  6306. 'id': '218',
  6307. 'provincecode': '450000',
  6308. 'city': '南宁市',
  6309. 'code': '450100',
  6310. 'initial': 'N',
  6311. 'short': 'Nanning' },
  6312. {
  6313. 'id': '246',
  6314. 'provincecode': '510000',
  6315. 'city': '内江市',
  6316. 'code': '511000',
  6317. 'initial': 'N',
  6318. 'short': 'Neijiang' },
  6319. {
  6320. 'id': '248',
  6321. 'provincecode': '510000',
  6322. 'city': '南充市',
  6323. 'code': '511300',
  6324. 'initial': 'N',
  6325. 'short': 'Nanchong' },
  6326. {
  6327. 'id': '282',
  6328. 'provincecode': '530000',
  6329. 'city': '怒江傈僳族自治州',
  6330. 'code': '533300',
  6331. 'initial': 'N',
  6332. 'short': 'Nujiang' },
  6333. {
  6334. 'id': '288',
  6335. 'provincecode': '540000',
  6336. 'city': '那曲地区',
  6337. 'code': '542400',
  6338. 'initial': 'N',
  6339. 'short': 'Naqu' },
  6340. {
  6341. 'id': '46',
  6342. 'provincecode': '210000',
  6343. 'city': '盘锦市',
  6344. 'code': '211100',
  6345. 'initial': 'P',
  6346. 'short': 'Panjin' },
  6347. {
  6348. 'id': '117',
  6349. 'provincecode': '350000',
  6350. 'city': '莆田市',
  6351. 'code': '350300',
  6352. 'initial': 'P',
  6353. 'short': 'Putian' },
  6354. {
  6355. 'id': '126',
  6356. 'provincecode': '360000',
  6357. 'city': '萍乡市',
  6358. 'code': '360300',
  6359. 'initial': 'P',
  6360. 'short': 'Pingxiang' },
  6361. {
  6362. 'id': '155',
  6363. 'provincecode': '410000',
  6364. 'city': '平顶山市',
  6365. 'code': '410400',
  6366. 'initial': 'P',
  6367. 'short': 'Pingdingshan' },
  6368. {
  6369. 'id': '160',
  6370. 'provincecode': '410000',
  6371. 'city': '濮阳市',
  6372. 'code': '410900',
  6373. 'initial': 'P',
  6374. 'short': 'Puyang' },
  6375. {
  6376. 'id': '240',
  6377. 'provincecode': '510000',
  6378. 'city': '攀枝花市',
  6379. 'code': '510400',
  6380. 'initial': 'P',
  6381. 'short': 'Panzhihua' },
  6382. {
  6383. 'id': '308',
  6384. 'provincecode': '620000',
  6385. 'city': '平凉市',
  6386. 'code': '620800',
  6387. 'initial': 'P',
  6388. 'short': 'Pingliang' },
  6389. {
  6390. 'id': '4',
  6391. 'provincecode': '130000',
  6392. 'city': '秦皇岛市',
  6393. 'code': '130300',
  6394. 'initial': 'Q',
  6395. 'short': 'Qinhuangdao' },
  6396. {
  6397. 'id': '60',
  6398. 'provincecode': '230000',
  6399. 'city': '齐齐哈尔市',
  6400. 'code': '230200',
  6401. 'initial': 'Q',
  6402. 'short': 'Qiqihaer' },
  6403. {
  6404. 'id': '67',
  6405. 'provincecode': '230000',
  6406. 'city': '七台河市',
  6407. 'code': '230900',
  6408. 'initial': 'Q',
  6409. 'short': 'Qitaihe' },
  6410. {
  6411. 'id': '94',
  6412. 'provincecode': '330000',
  6413. 'city': '衢州市',
  6414. 'code': '330800',
  6415. 'initial': 'Q',
  6416. 'short': 'Quzhou' },
  6417. {
  6418. 'id': '119',
  6419. 'provincecode': '350000',
  6420. 'city': '泉州市',
  6421. 'code': '350500',
  6422. 'initial': 'Q',
  6423. 'short': 'Quanzhou' },
  6424. {
  6425. 'id': '136',
  6426. 'provincecode': '370000',
  6427. 'city': '青岛市',
  6428. 'code': '370200',
  6429. 'initial': 'Q',
  6430. 'short': 'Qingdao' },
  6431. {
  6432. 'id': '212',
  6433. 'provincecode': '440000',
  6434. 'city': '清远市',
  6435. 'code': '441800',
  6436. 'initial': 'Q',
  6437. 'short': 'Qingyuan' },
  6438. {
  6439. 'id': '224',
  6440. 'provincecode': '450000',
  6441. 'city': '钦州市',
  6442. 'code': '450700',
  6443. 'initial': 'Q',
  6444. 'short': 'Qinzhou' },
  6445. {
  6446. 'id': '264',
  6447. 'provincecode': '520000',
  6448. 'city': '黔西南布依族苗族自治州',
  6449. 'code': '522300',
  6450. 'initial': 'Q',
  6451. 'short': 'Qianxinan' },
  6452. {
  6453. 'id': '266',
  6454. 'provincecode': '520000',
  6455. 'city': '黔东南苗族侗族自治州',
  6456. 'code': '522600',
  6457. 'initial': 'Q',
  6458. 'short': 'Qiandong' },
  6459. {
  6460. 'id': '267',
  6461. 'provincecode': '520000',
  6462. 'city': '黔南布依族苗族自治州',
  6463. 'code': '522700',
  6464. 'initial': 'Q',
  6465. 'short': 'Qiannan' },
  6466. {
  6467. 'id': '269',
  6468. 'provincecode': '530000',
  6469. 'city': '曲靖市',
  6470. 'code': '530300',
  6471. 'initial': 'Q',
  6472. 'short': 'Qujing' },
  6473. {
  6474. 'id': '310',
  6475. 'provincecode': '620000',
  6476. 'city': '庆阳市',
  6477. 'code': '621000',
  6478. 'initial': 'Q',
  6479. 'short': 'Qingyang' },
  6480. {
  6481. 'id': '145',
  6482. 'provincecode': '370000',
  6483. 'city': '日照市',
  6484. 'code': '371100',
  6485. 'initial': 'R',
  6486. 'short': 'Rizhao' },
  6487. {
  6488. 'id': '287',
  6489. 'provincecode': '540000',
  6490. 'city': '日喀则地区',
  6491. 'code': '542300',
  6492. 'initial': 'R',
  6493. 'short': 'Rikaze' },
  6494. {
  6495. 'id': '2',
  6496. 'provincecode': '130000',
  6497. 'city': '石家庄市',
  6498. 'code': '130100',
  6499. 'initial': 'S',
  6500. 'short': 'Shijiazhuang' },
  6501. {
  6502. 'id': '',
  6503. 'provincecode': '310100',
  6504. 'city': '上海市',
  6505. 'code': '310100',
  6506. 'initial': 'S',
  6507. 'short': 'Shanghai' },
  6508. {
  6509. 'id': '18',
  6510. 'provincecode': '140000',
  6511. 'city': '朔州市',
  6512. 'code': '140600',
  6513. 'initial': 'S',
  6514. 'short': 'Shuozhou' },
  6515. {
  6516. 'id': '36',
  6517. 'provincecode': '210000',
  6518. 'city': '沈阳市',
  6519. 'code': '210100',
  6520. 'initial': 'S',
  6521. 'short': 'Shenyang' },
  6522. {
  6523. 'id': '',
  6524. 'provincecode': '530000',
  6525. 'city': '普洱市',
  6526. 'code': '530800',
  6527. 'initial': 'P',
  6528. 'short': 'Puer' },
  6529. {
  6530. 'id': '52',
  6531. 'provincecode': '220000',
  6532. 'city': '四平市',
  6533. 'code': '220300',
  6534. 'initial': 'S',
  6535. 'short': 'Siping' },
  6536. {
  6537. 'id': '56',
  6538. 'provincecode': '220000',
  6539. 'city': '松原市',
  6540. 'code': '220700',
  6541. 'initial': 'S',
  6542. 'short': 'Songyuan' },
  6543. {
  6544. 'id': '63',
  6545. 'provincecode': '230000',
  6546. 'city': '双鸭山市',
  6547. 'code': '230500',
  6548. 'initial': 'S',
  6549. 'short': 'Shuangyashan' },
  6550. {
  6551. 'id': '70',
  6552. 'provincecode': '230000',
  6553. 'city': '绥化市',
  6554. 'code': '231200',
  6555. 'initial': 'S',
  6556. 'short': 'Suihua' },
  6557. {
  6558. 'id': '78',
  6559. 'provincecode': '320000',
  6560. 'city': '苏州市',
  6561. 'code': '320500',
  6562. 'initial': 'S',
  6563. 'short': 'Suzhou' },
  6564. {
  6565. 'id': '86',
  6566. 'provincecode': '320000',
  6567. 'city': '宿迁市',
  6568. 'code': '321300',
  6569. 'initial': 'S',
  6570. 'short': 'Suqian' },
  6571. {
  6572. 'id': '92',
  6573. 'provincecode': '330000',
  6574. 'city': '绍兴市',
  6575. 'code': '330600',
  6576. 'initial': 'S',
  6577. 'short': 'Shaoxing' },
  6578. {
  6579. 'id': '109',
  6580. 'provincecode': '340000',
  6581. 'city': '宿州市',
  6582. 'code': '341300',
  6583. 'initial': 'S',
  6584. 'short': 'Suzhou' },
  6585. {
  6586. 'id': '118',
  6587. 'provincecode': '350000',
  6588. 'city': '三明市',
  6589. 'code': '350400',
  6590. 'initial': 'S',
  6591. 'short': 'Sanming' },
  6592. {
  6593. 'id': '134',
  6594. 'provincecode': '360000',
  6595. 'city': '上饶市',
  6596. 'code': '361100',
  6597. 'initial': 'S',
  6598. 'short': 'Shangrao' },
  6599. {
  6600. 'id': '163',
  6601. 'provincecode': '410000',
  6602. 'city': '三门峡市',
  6603. 'code': '411200',
  6604. 'initial': 'S',
  6605. 'short': 'Sanmenxia' },
  6606. {
  6607. 'id': '165',
  6608. 'provincecode': '410000',
  6609. 'city': '商丘市',
  6610. 'code': '411400',
  6611. 'initial': 'S',
  6612. 'short': 'Shangqiu' },
  6613. {
  6614. 'id': '171',
  6615. 'provincecode': '420000',
  6616. 'city': '十堰市',
  6617. 'code': '420300',
  6618. 'initial': 'S',
  6619. 'short': 'Shiyan' },
  6620. {
  6621. 'id': '180',
  6622. 'provincecode': '420000',
  6623. 'city': '随州市',
  6624. 'code': '421300',
  6625. 'initial': 'S',
  6626. 'short': 'Suizhou' },
  6627. {
  6628. 'id': '187',
  6629. 'provincecode': '430000',
  6630. 'city': '邵阳市',
  6631. 'code': '430500',
  6632. 'initial': 'S',
  6633. 'short': 'Shaoyang' },
  6634. {
  6635. 'id': '198',
  6636. 'provincecode': '440000',
  6637. 'city': '韶关市',
  6638. 'code': '440200',
  6639. 'initial': 'S',
  6640. 'short': 'Shaoguan' },
  6641. {
  6642. 'id': '199',
  6643. 'provincecode': '440000',
  6644. 'city': '深圳市',
  6645. 'code': '440300',
  6646. 'initial': 'S',
  6647. 'short': 'Shenzhen' },
  6648. {
  6649. 'id': '201',
  6650. 'provincecode': '440000',
  6651. 'city': '汕头市',
  6652. 'code': '440500',
  6653. 'initial': 'S',
  6654. 'short': 'Shantou' },
  6655. {
  6656. 'id': '209',
  6657. 'provincecode': '440000',
  6658. 'city': '汕尾市',
  6659. 'code': '441500',
  6660. 'initial': 'S',
  6661. 'short': 'Shanwei' },
  6662. {
  6663. 'id': '233',
  6664. 'provincecode': '460000',
  6665. 'city': '三亚市',
  6666. 'code': '460200',
  6667. 'initial': 'S',
  6668. 'short': 'Sanya' },
  6669. {
  6670. 'id': '245',
  6671. 'provincecode': '510000',
  6672. 'city': '遂宁市',
  6673. 'code': '510900',
  6674. 'initial': 'S',
  6675. 'short': 'Suining' },
  6676. {
  6677. 'id': '286',
  6678. 'provincecode': '540000',
  6679. 'city': '山南地区',
  6680. 'code': '542200',
  6681. 'initial': 'S',
  6682. 'short': 'Shannan' },
  6683. {
  6684. 'id': '300',
  6685. 'provincecode': '610000',
  6686. 'city': '商洛市',
  6687. 'code': '611000',
  6688. 'initial': 'S',
  6689. 'short': 'Shangluo' },
  6690. {
  6691. 'id': '324',
  6692. 'provincecode': '640000',
  6693. 'city': '石嘴山市',
  6694. 'code': '640200',
  6695. 'initial': 'S',
  6696. 'short': 'Shizuishan' },
  6697. {
  6698. 'id': '3',
  6699. 'provincecode': '130000',
  6700. 'city': '唐山市',
  6701. 'code': '130200',
  6702. 'initial': 'T',
  6703. 'short': 'Tangshan' },
  6704. {
  6705. 'id': '13',
  6706. 'provincecode': '140000',
  6707. 'city': '太原市',
  6708. 'code': '140100',
  6709. 'initial': 'T',
  6710. 'short': 'Taiyuan' },
  6711. {
  6712. 'id': '28',
  6713. 'provincecode': '150000',
  6714. 'city': '通辽市',
  6715. 'code': '150500',
  6716. 'initial': 'T',
  6717. 'short': 'Tongliao' },
  6718. {
  6719. 'id': '47',
  6720. 'provincecode': '210000',
  6721. 'city': '铁岭市',
  6722. 'code': '211200',
  6723. 'initial': 'T',
  6724. 'short': 'Tieling' },
  6725. {
  6726. 'id': '54',
  6727. 'provincecode': '220000',
  6728. 'city': '通化市',
  6729. 'code': '220500',
  6730. 'initial': 'T',
  6731. 'short': 'Tonghua' },
  6732. {
  6733. 'id': '85',
  6734. 'provincecode': '320000',
  6735. 'city': '泰州市',
  6736. 'code': '321200',
  6737. 'initial': 'T',
  6738. 'short': 'Taizhou' },
  6739. {
  6740. 'id': '96',
  6741. 'provincecode': '330000',
  6742. 'city': '台州市',
  6743. 'code': '331000',
  6744. 'initial': 'T',
  6745. 'short': 'Taizhou' },
  6746. {
  6747. 'id': '104',
  6748. 'provincecode': '340000',
  6749. 'city': '铜陵市',
  6750. 'code': '340700',
  6751. 'initial': 'T',
  6752. 'short': 'Tongling' },
  6753. {
  6754. 'id': '143',
  6755. 'provincecode': '370000',
  6756. 'city': '泰安市',
  6757. 'code': '370900',
  6758. 'initial': 'T',
  6759. 'short': 'Taian' },
  6760. {
  6761. 'id': '263',
  6762. 'provincecode': '520000',
  6763. 'city': '铜仁地区',
  6764. 'code': '522200',
  6765. 'initial': 'T',
  6766. 'short': 'Tongren' },
  6767. {
  6768. 'id': '292',
  6769. 'provincecode': '610000',
  6770. 'city': '铜川市',
  6771. 'code': '610200',
  6772. 'initial': 'T',
  6773. 'short': 'Tongchuan' },
  6774. {
  6775. 'id': '305',
  6776. 'provincecode': '620000',
  6777. 'city': '天水市',
  6778. 'code': '620500',
  6779. 'initial': 'T',
  6780. 'short': 'Tianshui' },
  6781. {
  6782. 'id': '330',
  6783. 'provincecode': '650000',
  6784. 'city': '吐鲁番地区',
  6785. 'code': '652100',
  6786. 'initial': 'T',
  6787. 'short': 'Tulufan' },
  6788. {
  6789. 'id': '340',
  6790. 'provincecode': '650000',
  6791. 'city': '塔城地区',
  6792. 'code': '654200',
  6793. 'initial': 'T',
  6794. 'short': 'Tachengdi' },
  6795. {
  6796. 'id': '343',
  6797. 'provincecode': '120100',
  6798. 'city': '天津市',
  6799. 'code': '120100',
  6800. 'initial': 'T',
  6801. 'short': 'Tianjin' },
  6802. {
  6803. 'id': '26',
  6804. 'provincecode': '150000',
  6805. 'city': '乌海市',
  6806. 'code': '150300',
  6807. 'initial': 'W',
  6808. 'short': 'Wuhai' },
  6809. {
  6810. 'id': '32',
  6811. 'provincecode': '150000',
  6812. 'city': '乌兰察布市',
  6813. 'code': '150900',
  6814. 'initial': 'W',
  6815. 'short': 'Wulanchabu' },
  6816. {
  6817. 'id': '75',
  6818. 'provincecode': '320000',
  6819. 'city': '无锡市',
  6820. 'code': '320200',
  6821. 'initial': 'W',
  6822. 'short': 'Wuxi' },
  6823. {
  6824. 'id': '89',
  6825. 'provincecode': '330000',
  6826. 'city': '温州市',
  6827. 'code': '330300',
  6828. 'initial': 'W',
  6829. 'short': 'Wenzhou' },
  6830. {
  6831. 'id': '99',
  6832. 'provincecode': '340000',
  6833. 'city': '芜湖市',
  6834. 'code': '340200',
  6835. 'initial': 'W',
  6836. 'short': 'Wuhu' },
  6837. {
  6838. 'id': '141',
  6839. 'provincecode': '370000',
  6840. 'city': '潍坊市',
  6841. 'code': '370700',
  6842. 'initial': 'W',
  6843. 'short': 'Weifang' },
  6844. {
  6845. 'id': '144',
  6846. 'provincecode': '370000',
  6847. 'city': '威海市',
  6848. 'code': '371000',
  6849. 'initial': 'W',
  6850. 'short': 'Weihai' },
  6851. {
  6852. 'id': '169',
  6853. 'provincecode': '420000',
  6854. 'city': '武汉市',
  6855. 'code': '420100',
  6856. 'initial': 'W',
  6857. 'short': 'Wuhan' },
  6858. {
  6859. 'id': '221',
  6860. 'provincecode': '450000',
  6861. 'city': '梧州市',
  6862. 'code': '450400',
  6863. 'initial': 'W',
  6864. 'short': 'Wuzhou' },
  6865. {
  6866. 'id': '278',
  6867. 'provincecode': '530000',
  6868. 'city': '文山壮族苗族自治州',
  6869. 'code': '532600',
  6870. 'initial': 'W',
  6871. 'short': 'Wenshan' },
  6872. {
  6873. 'id': '295',
  6874. 'provincecode': '610000',
  6875. 'city': '渭南市',
  6876. 'code': '610500',
  6877. 'initial': 'W',
  6878. 'short': 'Weinan' },
  6879. {
  6880. 'id': '306',
  6881. 'provincecode': '620000',
  6882. 'city': '武威市',
  6883. 'code': '620600',
  6884. 'initial': 'W',
  6885. 'short': 'Wuwei' },
  6886. {
  6887. 'id': '325',
  6888. 'provincecode': '640000',
  6889. 'city': '吴忠市',
  6890. 'code': '640300',
  6891. 'initial': 'W',
  6892. 'short': 'Wuzhong' },
  6893. {
  6894. 'id': '328',
  6895. 'provincecode': '650000',
  6896. 'city': '乌鲁木齐市',
  6897. 'code': '650100',
  6898. 'initial': 'W',
  6899. 'short': 'Wulumuqi' },
  6900. {
  6901. 'id': '6',
  6902. 'provincecode': '130000',
  6903. 'city': '邢台市',
  6904. 'code': '130500',
  6905. 'initial': 'X',
  6906. 'short': 'Xingtai' },
  6907. {
  6908. 'id': '21',
  6909. 'provincecode': '140000',
  6910. 'city': '忻州市',
  6911. 'code': '140900',
  6912. 'initial': 'X',
  6913. 'short': 'Xinzhou' },
  6914. {
  6915. 'id': '33',
  6916. 'provincecode': '150000',
  6917. 'city': '兴安盟',
  6918. 'code': '152200',
  6919. 'initial': 'X',
  6920. 'short': 'Xinganmeng' },
  6921. {
  6922. 'id': '34',
  6923. 'provincecode': '150000',
  6924. 'city': '锡林郭勒盟',
  6925. 'code': '152500',
  6926. 'initial': 'X',
  6927. 'short': 'Xilinguolemeng' },
  6928. {
  6929. 'id': '76',
  6930. 'provincecode': '320000',
  6931. 'city': '徐州市',
  6932. 'code': '320300',
  6933. 'initial': 'X',
  6934. 'short': 'Xuzhou' },
  6935. {
  6936. 'id': '114',
  6937. 'provincecode': '340000',
  6938. 'city': '宣城市',
  6939. 'code': '341800',
  6940. 'initial': 'X',
  6941. 'short': 'Xuancheng' },
  6942. {
  6943. 'id': '116',
  6944. 'provincecode': '350000',
  6945. 'city': '厦门市',
  6946. 'code': '350200',
  6947. 'initial': 'X',
  6948. 'short': 'Xiamen' },
  6949. {
  6950. 'id': '128',
  6951. 'provincecode': '360000',
  6952. 'city': '新余市',
  6953. 'code': '360500',
  6954. 'initial': 'X',
  6955. 'short': 'Xinyu' },
  6956. {
  6957. 'id': '158',
  6958. 'provincecode': '410000',
  6959. 'city': '新乡市',
  6960. 'code': '410700',
  6961. 'initial': 'X',
  6962. 'short': 'Xinxiang' },
  6963. {
  6964. 'id': '161',
  6965. 'provincecode': '410000',
  6966. 'city': '许昌市',
  6967. 'code': '411000',
  6968. 'initial': 'X',
  6969. 'short': 'Xuchang' },
  6970. {
  6971. 'id': '166',
  6972. 'provincecode': '410000',
  6973. 'city': '信阳市',
  6974. 'code': '411500',
  6975. 'initial': 'X',
  6976. 'short': 'Xinyang' },
  6977. {
  6978. 'id': '173',
  6979. 'provincecode': '420000',
  6980. 'city': '襄樊市',
  6981. 'code': '420600',
  6982. 'initial': 'X',
  6983. 'short': 'Xiangfan' },
  6984. {
  6985. 'id': '176',
  6986. 'provincecode': '420000',
  6987. 'city': '孝感市',
  6988. 'code': '420900',
  6989. 'initial': 'X',
  6990. 'short': 'Xiaogan' },
  6991. {
  6992. 'id': '179',
  6993. 'provincecode': '420000',
  6994. 'city': '咸宁市',
  6995. 'code': '421200',
  6996. 'initial': 'X',
  6997. 'short': 'Xianning' },
  6998. {
  6999. 'id': '185',
  7000. 'provincecode': '430000',
  7001. 'city': '湘潭市',
  7002. 'code': '430300',
  7003. 'initial': 'X',
  7004. 'short': 'Xiangtan' },
  7005. {
  7006. 'id': '196',
  7007. 'provincecode': '430000',
  7008. 'city': '湘西土家族苗族自治州',
  7009. 'code': '433100',
  7010. 'initial': 'X',
  7011. 'short': 'Xiangxi' },
  7012. {
  7013. 'id': '279',
  7014. 'provincecode': '530000',
  7015. 'city': '西双版纳傣族自治州',
  7016. 'code': '532800',
  7017. 'initial': 'X',
  7018. 'short': 'Xishuangbanna' },
  7019. {
  7020. 'id': '291',
  7021. 'provincecode': '610000',
  7022. 'city': '西安市',
  7023. 'code': '610100',
  7024. 'initial': 'X',
  7025. 'short': 'Xian' },
  7026. {
  7027. 'id': '294',
  7028. 'provincecode': '610000',
  7029. 'city': '咸阳市',
  7030. 'code': '610400',
  7031. 'initial': 'X',
  7032. 'short': 'Xianyang' },
  7033. {
  7034. 'id': '315',
  7035. 'provincecode': '630000',
  7036. 'city': '西宁市',
  7037. 'code': '630100',
  7038. 'initial': 'X',
  7039. 'short': 'Xining' },
  7040. {
  7041. 'id': '15',
  7042. 'provincecode': '140000',
  7043. 'city': '阳泉市',
  7044. 'code': '140300',
  7045. 'initial': 'Y',
  7046. 'short': 'Yangquan' },
  7047. {
  7048. 'id': '20',
  7049. 'provincecode': '140000',
  7050. 'city': '运城市',
  7051. 'code': '140800',
  7052. 'initial': 'Y',
  7053. 'short': 'Yuncheng' },
  7054. {
  7055. 'id': '43',
  7056. 'provincecode': '210000',
  7057. 'city': '营口市',
  7058. 'code': '210800',
  7059. 'initial': 'Y',
  7060. 'short': 'Yingkou' },
  7061. {
  7062. 'id': '58',
  7063. 'provincecode': '220000',
  7064. 'city': '延边朝鲜族自治州',
  7065. 'code': '222400',
  7066. 'initial': 'Y',
  7067. 'short': 'Yanbian' },
  7068. {
  7069. 'id': '65',
  7070. 'provincecode': '230000',
  7071. 'city': '伊春市',
  7072. 'code': '230700',
  7073. 'initial': 'Y',
  7074. 'short': 'Yichun' },
  7075. {
  7076. 'id': '82',
  7077. 'provincecode': '320000',
  7078. 'city': '盐城市',
  7079. 'code': '320900',
  7080. 'initial': 'Y',
  7081. 'short': 'Yancheng' },
  7082. {
  7083. 'id': '83',
  7084. 'provincecode': '320000',
  7085. 'city': '扬州市',
  7086. 'code': '321000',
  7087. 'initial': 'Y',
  7088. 'short': 'Yangzhou' },
  7089. {
  7090. 'id': '129',
  7091. 'provincecode': '360000',
  7092. 'city': '鹰潭市',
  7093. 'code': '360600',
  7094. 'initial': 'Y',
  7095. 'short': 'Yingtan' },
  7096. {
  7097. 'id': '132',
  7098. 'provincecode': '360000',
  7099. 'city': '宜春市',
  7100. 'code': '360900',
  7101. 'initial': 'Y',
  7102. 'short': 'Yichun' },
  7103. {
  7104. 'id': '140',
  7105. 'provincecode': '370000',
  7106. 'city': '烟台市',
  7107. 'code': '370600',
  7108. 'initial': 'Y',
  7109. 'short': 'Yantai' },
  7110. {
  7111. 'id': '172',
  7112. 'provincecode': '420000',
  7113. 'city': '宜昌市',
  7114. 'code': '420500',
  7115. 'initial': 'Y',
  7116. 'short': 'Yichang' },
  7117. {
  7118. 'id': '188',
  7119. 'provincecode': '430000',
  7120. 'city': '岳阳市',
  7121. 'code': '430600',
  7122. 'initial': 'Y',
  7123. 'short': 'Yueyang' },
  7124. {
  7125. 'id': '191',
  7126. 'provincecode': '430000',
  7127. 'city': '益阳市',
  7128. 'code': '430900',
  7129. 'initial': 'Y',
  7130. 'short': 'Yiyang' },
  7131. {
  7132. 'id': '193',
  7133. 'provincecode': '430000',
  7134. 'city': '永州市',
  7135. 'code': '431100',
  7136. 'initial': 'Y',
  7137. 'short': 'Yongzhou' },
  7138. {
  7139. 'id': '211',
  7140. 'provincecode': '440000',
  7141. 'city': '阳江市',
  7142. 'code': '441700',
  7143. 'initial': 'Y',
  7144. 'short': 'Yangjiang' },
  7145. {
  7146. 'id': '217',
  7147. 'provincecode': '440000',
  7148. 'city': '云浮市',
  7149. 'code': '445300',
  7150. 'initial': 'Y',
  7151. 'short': 'Yunfu' },
  7152. {
  7153. 'id': '226',
  7154. 'provincecode': '450000',
  7155. 'city': '玉林市',
  7156. 'code': '450900',
  7157. 'initial': 'Y',
  7158. 'short': 'Yulin' },
  7159. {
  7160. 'id': '250',
  7161. 'provincecode': '510000',
  7162. 'city': '宜宾市',
  7163. 'code': '511500',
  7164. 'initial': 'Y',
  7165. 'short': 'Yibin' },
  7166. {
  7167. 'id': '253',
  7168. 'provincecode': '510000',
  7169. 'city': '雅安市',
  7170. 'code': '511800',
  7171. 'initial': 'Y',
  7172. 'short': 'Yaan' },
  7173. {
  7174. 'id': '270',
  7175. 'provincecode': '530000',
  7176. 'city': '玉溪市',
  7177. 'code': '530400',
  7178. 'initial': 'Y',
  7179. 'short': 'Yuxi' },
  7180. {
  7181. 'id': '296',
  7182. 'provincecode': '610000',
  7183. 'city': '延安市',
  7184. 'code': '610600',
  7185. 'initial': 'Y',
  7186. 'short': 'Yanan' },
  7187. {
  7188. 'id': '298',
  7189. 'provincecode': '610000',
  7190. 'city': '榆林市',
  7191. 'code': '610800',
  7192. 'initial': 'Y',
  7193. 'short': 'Yulin' },
  7194. {
  7195. 'id': '321',
  7196. 'provincecode': '630000',
  7197. 'city': '玉树藏族自治州',
  7198. 'code': '632700',
  7199. 'initial': 'Y',
  7200. 'short': 'Yushu' },
  7201. {
  7202. 'id': '323',
  7203. 'provincecode': '640000',
  7204. 'city': '银川市',
  7205. 'code': '640100',
  7206. 'initial': 'Y',
  7207. 'short': 'Yinchuan' },
  7208. {
  7209. 'id': '339',
  7210. 'provincecode': '650000',
  7211. 'city': '伊犁哈萨克自治州',
  7212. 'code': '654000',
  7213. 'initial': 'Y',
  7214. 'short': 'Yilihasake' },
  7215. {
  7216. 'id': '8',
  7217. 'provincecode': '130000',
  7218. 'city': '张家口市',
  7219. 'code': '130700',
  7220. 'initial': 'Z',
  7221. 'short': 'Zhangjiakou' },
  7222. {
  7223. 'id': '84',
  7224. 'provincecode': '320000',
  7225. 'city': '镇江市',
  7226. 'code': '321100',
  7227. 'initial': 'Z',
  7228. 'short': 'Zhenjiang' },
  7229. {
  7230. 'id': '95',
  7231. 'provincecode': '330000',
  7232. 'city': '舟山市',
  7233. 'code': '330900',
  7234. 'initial': 'Z',
  7235. 'short': 'Zhoushan' },
  7236. {
  7237. 'id': '120',
  7238. 'provincecode': '350000',
  7239. 'city': '漳州市',
  7240. 'code': '350600',
  7241. 'initial': 'Z',
  7242. 'short': 'Zhangzhou' },
  7243. {
  7244. 'id': '137',
  7245. 'provincecode': '370000',
  7246. 'city': '淄博市',
  7247. 'code': '370300',
  7248. 'initial': 'Z',
  7249. 'short': 'Zibo' },
  7250. {
  7251. 'id': '138',
  7252. 'provincecode': '370000',
  7253. 'city': '枣庄市',
  7254. 'code': '370400',
  7255. 'initial': 'Z',
  7256. 'short': 'Zaozhuang' },
  7257. {
  7258. 'id': '152',
  7259. 'provincecode': '410000',
  7260. 'city': '郑州市',
  7261. 'code': '410100',
  7262. 'initial': 'Z',
  7263. 'short': 'Zhengzhou' },
  7264. {
  7265. 'id': '167',
  7266. 'provincecode': '410000',
  7267. 'city': '周口市',
  7268. 'code': '411600',
  7269. 'initial': 'Z',
  7270. 'short': 'Zhoukou' },
  7271. {
  7272. 'id': '168',
  7273. 'provincecode': '410000',
  7274. 'city': '驻马店市',
  7275. 'code': '411700',
  7276. 'initial': 'Z',
  7277. 'short': 'Zhumadian' },
  7278. {
  7279. 'id': '184',
  7280. 'provincecode': '430000',
  7281. 'city': '株洲市',
  7282. 'code': '430200',
  7283. 'initial': 'Z',
  7284. 'short': 'Zhuzhou' },
  7285. {
  7286. 'id': '190',
  7287. 'provincecode': '430000',
  7288. 'city': '张家界市',
  7289. 'code': '430800',
  7290. 'initial': 'Z',
  7291. 'short': 'Zhangjiajie' },
  7292. {
  7293. 'id': '200',
  7294. 'provincecode': '440000',
  7295. 'city': '珠海市',
  7296. 'code': '440400',
  7297. 'initial': 'Z',
  7298. 'short': 'Zhuhai' },
  7299. {
  7300. 'id': '204',
  7301. 'provincecode': '440000',
  7302. 'city': '湛江市',
  7303. 'code': '440800',
  7304. 'initial': 'Z',
  7305. 'short': 'Zhanjiang' },
  7306. {
  7307. 'id': '206',
  7308. 'provincecode': '440000',
  7309. 'city': '肇庆市',
  7310. 'code': '441200',
  7311. 'initial': 'Z',
  7312. 'short': 'Zhaoqing' },
  7313. {
  7314. 'id': '214',
  7315. 'provincecode': '440000',
  7316. 'city': '中山市',
  7317. 'code': '442000',
  7318. 'initial': 'Z',
  7319. 'short': 'Zhongshan' },
  7320. {
  7321. 'id': '239',
  7322. 'provincecode': '510000',
  7323. 'city': '自贡市',
  7324. 'code': '510300',
  7325. 'initial': 'Z',
  7326. 'short': 'Zigong' },
  7327. {
  7328. 'id': '255',
  7329. 'provincecode': '510000',
  7330. 'city': '资阳市',
  7331. 'code': '512000',
  7332. 'initial': 'Z',
  7333. 'short': 'Ziyang' },
  7334. {
  7335. 'id': '261',
  7336. 'provincecode': '520000',
  7337. 'city': '遵义市',
  7338. 'code': '520300',
  7339. 'initial': 'Z',
  7340. 'short': 'Zunyi' },
  7341. {
  7342. 'id': '272',
  7343. 'provincecode': '530000',
  7344. 'city': '昭通市',
  7345. 'code': '530600',
  7346. 'initial': 'Z',
  7347. 'short': 'Zhaotong' },
  7348. {
  7349. 'id': '307',
  7350. 'provincecode': '620000',
  7351. 'city': '张掖市',
  7352. 'code': '620700',
  7353. 'initial': 'Z',
  7354. 'short': 'Zhangye' },
  7355. {
  7356. 'id': '327',
  7357. 'provincecode': '640000',
  7358. 'city': '中卫市',
  7359. 'code': '640500',
  7360. 'initial': 'Z',
  7361. 'short': 'Zhongwei' }];
  7362. // 城市检索的首字母
  7363. var searchLetter = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X',
  7364. 'Y', 'Z'];
  7365. // function searchLetter() {
  7366. // return searchLetter;
  7367. // }
  7368. // 对城市信息进行分组
  7369. function cityList() {
  7370. var tempArr = [];
  7371. searchLetter.map(
  7372. function (initial) {
  7373. var tempObj = {};
  7374. // let cityInfo = [];
  7375. tempObj.initial = initial;
  7376. tempObj.cityInfo = cityObj.filter(
  7377. function (city) {return city.initial === initial;});
  7378. tempArr.push(tempObj);
  7379. });
  7380. // console.log(JSON.stringify(tempArr));
  7381. return tempArr;
  7382. }
  7383. // function pushCity() {
  7384. // }
  7385. module.exports = {
  7386. searchLetter: searchLetter,
  7387. cityList: cityList,
  7388. cityObjs: cityObjs };
  7389. /***/ }),
  7390. /***/ 212:
  7391. /*!********************************************************************!*\
  7392. !*** D:/workspace/project_forwork/bizdbKLY_app/common/district.js ***!
  7393. \********************************************************************/
  7394. /*! no static exports found */
  7395. /***/ (function(module, exports, __webpack_require__) {
  7396. "use strict";
  7397. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; // 所有区县县级市
  7398. var _default =
  7399. {
  7400. "0": {
  7401. "110000": "北京",
  7402. "120000": "天津",
  7403. "130000": "河北省",
  7404. "140000": "山西省",
  7405. "150000": "内蒙古自治区",
  7406. "210000": "辽宁省",
  7407. "220000": "吉林省",
  7408. "230000": "黑龙江省",
  7409. "310000": "上海",
  7410. "320000": "江苏省",
  7411. "330000": "浙江省",
  7412. "340000": "安徽省",
  7413. "350000": "福建省",
  7414. "360000": "江西省",
  7415. "370000": "山东省",
  7416. "410000": "河南省",
  7417. "420000": "湖北省",
  7418. "430000": "湖南省",
  7419. "440000": "广东省",
  7420. "450000": "广西壮族自治区",
  7421. "460000": "海南省",
  7422. "500000": "重庆",
  7423. "510000": "四川省",
  7424. "520000": "贵州省",
  7425. "530000": "云南省",
  7426. "540000": "西藏自治区",
  7427. "610000": "陕西省",
  7428. "620000": "甘肃省",
  7429. "630000": "青海省",
  7430. "640000": "宁夏回族自治区",
  7431. "650000": "新疆维吾尔自治区",
  7432. "710000": "台湾省",
  7433. "810000": "香港特别行政区",
  7434. "820000": "澳门特别行政区",
  7435. "990000": "海外" },
  7436. "0,110000": {
  7437. "110100": "北京市" },
  7438. "0,110000,110100": {
  7439. "110101": "东城区",
  7440. "110102": "西城区",
  7441. "110105": "朝阳区",
  7442. "110106": "丰台区",
  7443. "110107": "石景山区",
  7444. "110108": "海淀区",
  7445. "110109": "门头沟区",
  7446. "110111": "房山区",
  7447. "110112": "通州区",
  7448. "110113": "顺义区",
  7449. "110114": "昌平区",
  7450. "110115": "大兴区",
  7451. "110116": "怀柔区",
  7452. "110117": "平谷区",
  7453. "110228": "密云区",
  7454. "110229": "延庆区" },
  7455. "0,120000": {
  7456. "120100": "天津市" },
  7457. "0,120000,120100": {
  7458. "120101": "和平区",
  7459. "120102": "河东区",
  7460. "120103": "河西区",
  7461. "120104": "南开区",
  7462. "120105": "河北区",
  7463. "120106": "红桥区",
  7464. "120110": "东丽区",
  7465. "120111": "西青区",
  7466. "120112": "津南区",
  7467. "120113": "北辰区",
  7468. "120114": "武清区",
  7469. "120115": "宝坻区",
  7470. "120116": "滨海新区",
  7471. "120221": "宁河区",
  7472. "120223": "静海区",
  7473. "120225": "蓟州区" },
  7474. "0,130000": {
  7475. "130100": "石家庄市",
  7476. "130200": "唐山市",
  7477. "130300": "秦皇岛市",
  7478. "130400": "邯郸市",
  7479. "130500": "邢台市",
  7480. "130600": "保定市",
  7481. "130700": "张家口市",
  7482. "130800": "承德市",
  7483. "130900": "沧州市",
  7484. "131000": "廊坊市",
  7485. "131100": "衡水市" },
  7486. "0,130000,130100": {
  7487. "130102": "长安区",
  7488. "130103": "桥东区",
  7489. "130104": "桥西区",
  7490. "130105": "新华区",
  7491. "130107": "井陉矿区",
  7492. "130108": "裕华区",
  7493. "130121": "井陉县",
  7494. "130123": "正定县",
  7495. "130124": "栾城县",
  7496. "130125": "行唐县",
  7497. "130126": "灵寿县",
  7498. "130127": "高邑县",
  7499. "130128": "深泽县",
  7500. "130129": "赞皇县",
  7501. "130130": "无极县",
  7502. "130131": "平山县",
  7503. "130132": "元氏县",
  7504. "130133": "赵县",
  7505. "130181": "辛集市",
  7506. "130182": "藁城市",
  7507. "130183": "晋州市",
  7508. "130184": "新乐市",
  7509. "130185": "鹿泉市",
  7510. "130186": "其它区" },
  7511. "0,130000,130200": {
  7512. "130202": "路南区",
  7513. "130203": "路北区",
  7514. "130204": "古冶区",
  7515. "130205": "开平区",
  7516. "130207": "丰南区",
  7517. "130208": "丰润区",
  7518. "130223": "滦县",
  7519. "130224": "滦南县",
  7520. "130225": "乐亭县",
  7521. "130227": "迁西县",
  7522. "130229": "玉田县",
  7523. "130230": "唐海县",
  7524. "130281": "遵化市",
  7525. "130283": "迁安市",
  7526. "130284": "其它区" },
  7527. "0,130000,130300": {
  7528. "130302": "海港区",
  7529. "130303": "山海关区",
  7530. "130304": "北戴河区",
  7531. "130321": "青龙满族自治县",
  7532. "130322": "昌黎县",
  7533. "130323": "抚宁县",
  7534. "130324": "卢龙县",
  7535. "130398": "其它区",
  7536. "130399": "经济技术开发区" },
  7537. "0,130000,130400": {
  7538. "130402": "邯山区",
  7539. "130403": "丛台区",
  7540. "130404": "复兴区",
  7541. "130406": "峰峰矿区",
  7542. "130421": "邯郸县",
  7543. "130423": "临漳县",
  7544. "130424": "成安县",
  7545. "130425": "大名县",
  7546. "130426": "涉县",
  7547. "130427": "磁县",
  7548. "130428": "肥乡县",
  7549. "130429": "永年县",
  7550. "130430": "邱县",
  7551. "130431": "鸡泽县",
  7552. "130432": "广平县",
  7553. "130433": "馆陶县",
  7554. "130434": "魏县",
  7555. "130435": "曲周县",
  7556. "130481": "武安市",
  7557. "130482": "其它区" },
  7558. "0,130000,130500": {
  7559. "130502": "桥东区",
  7560. "130503": "桥西区",
  7561. "130521": "邢台县",
  7562. "130522": "临城县",
  7563. "130523": "内丘县",
  7564. "130524": "柏乡县",
  7565. "130525": "隆尧县",
  7566. "130526": "任县",
  7567. "130527": "南和县",
  7568. "130528": "宁晋县",
  7569. "130529": "巨鹿县",
  7570. "130530": "新河县",
  7571. "130531": "广宗县",
  7572. "130532": "平乡县",
  7573. "130533": "威县",
  7574. "130534": "清河县",
  7575. "130535": "临西县",
  7576. "130581": "南宫市",
  7577. "130582": "沙河市",
  7578. "130583": "其它区" },
  7579. "0,130000,130600": {
  7580. "130602": "新市区",
  7581. "130603": "北市区",
  7582. "130604": "南市区",
  7583. "130621": "满城县",
  7584. "130622": "清苑县",
  7585. "130623": "涞水县",
  7586. "130624": "阜平县",
  7587. "130625": "徐水县",
  7588. "130626": "定兴县",
  7589. "130627": "唐县",
  7590. "130628": "高阳县",
  7591. "130629": "容城县",
  7592. "130630": "涞源县",
  7593. "130631": "望都县",
  7594. "130632": "安新县",
  7595. "130633": "易县",
  7596. "130634": "曲阳县",
  7597. "130635": "蠡县",
  7598. "130636": "顺平县",
  7599. "130637": "博野县",
  7600. "130638": "雄县",
  7601. "130681": "涿州市",
  7602. "130682": "定州市",
  7603. "130683": "安国市",
  7604. "130684": "高碑店市",
  7605. "130698": "高开区",
  7606. "130699": "其它区" },
  7607. "0,130000,130700": {
  7608. "130702": "桥东区",
  7609. "130703": "桥西区",
  7610. "130705": "宣化区",
  7611. "130706": "下花园区",
  7612. "130721": "宣化县",
  7613. "130722": "张北县",
  7614. "130723": "康保县",
  7615. "130724": "沽源县",
  7616. "130725": "尚义县",
  7617. "130726": "蔚县",
  7618. "130727": "阳原县",
  7619. "130728": "怀安县",
  7620. "130729": "万全县",
  7621. "130730": "怀来县",
  7622. "130731": "涿鹿县",
  7623. "130732": "赤城县",
  7624. "130733": "崇礼县",
  7625. "130734": "其它区" },
  7626. "0,130000,130800": {
  7627. "130802": "双桥区",
  7628. "130803": "双滦区",
  7629. "130804": "鹰手营子矿区",
  7630. "130821": "承德县",
  7631. "130822": "兴隆县",
  7632. "130823": "平泉县",
  7633. "130824": "滦平县",
  7634. "130825": "隆化县",
  7635. "130826": "丰宁满族自治县",
  7636. "130827": "宽城满族自治县",
  7637. "130828": "围场满族蒙古族自治县",
  7638. "130829": "其它区" },
  7639. "0,130000,130900": {
  7640. "130902": "新华区",
  7641. "130903": "运河区",
  7642. "130921": "沧县",
  7643. "130922": "青县",
  7644. "130923": "东光县",
  7645. "130924": "海兴县",
  7646. "130925": "盐山县",
  7647. "130926": "肃宁县",
  7648. "130927": "南皮县",
  7649. "130928": "吴桥县",
  7650. "130929": "献县",
  7651. "130930": "孟村回族自治县",
  7652. "130981": "泊头市",
  7653. "130982": "任丘市",
  7654. "130983": "黄骅市",
  7655. "130984": "河间市",
  7656. "130985": "其它区" },
  7657. "0,130000,131000": {
  7658. "131002": "安次区",
  7659. "131003": "广阳区",
  7660. "131022": "固安县",
  7661. "131023": "永清县",
  7662. "131024": "香河县",
  7663. "131025": "大城县",
  7664. "131026": "文安县",
  7665. "131028": "大厂回族自治县",
  7666. "131051": "开发区",
  7667. "131052": "燕郊经济技术开发区",
  7668. "131081": "霸州市",
  7669. "131082": "三河市",
  7670. "131083": "其它区" },
  7671. "0,130000,131100": {
  7672. "131102": "桃城区",
  7673. "131121": "枣强县",
  7674. "131122": "武邑县",
  7675. "131123": "武强县",
  7676. "131124": "饶阳县",
  7677. "131125": "安平县",
  7678. "131126": "故城县",
  7679. "131127": "景县",
  7680. "131128": "阜城县",
  7681. "131181": "冀州市",
  7682. "131182": "深州市",
  7683. "131183": "其它区" },
  7684. "0,140000": {
  7685. "140100": "太原市",
  7686. "140200": "大同市",
  7687. "140300": "阳泉市",
  7688. "140400": "长治市",
  7689. "140500": "晋城市",
  7690. "140600": "朔州市",
  7691. "140700": "晋中市",
  7692. "140800": "运城市",
  7693. "140900": "忻州市",
  7694. "141000": "临汾市",
  7695. "141100": "吕梁市" },
  7696. "0,140000,140100": {
  7697. "140105": "小店区",
  7698. "140106": "迎泽区",
  7699. "140107": "杏花岭区",
  7700. "140108": "尖草坪区",
  7701. "140109": "万柏林区",
  7702. "140110": "晋源区",
  7703. "140121": "清徐县",
  7704. "140122": "阳曲县",
  7705. "140123": "娄烦县",
  7706. "140181": "古交市",
  7707. "140182": "其它区" },
  7708. "0,140000,140200": {
  7709. "140202": "城区",
  7710. "140203": "矿区",
  7711. "140211": "南郊区",
  7712. "140212": "新荣区",
  7713. "140221": "阳高县",
  7714. "140222": "天镇县",
  7715. "140223": "广灵县",
  7716. "140224": "灵丘县",
  7717. "140225": "浑源县",
  7718. "140226": "左云县",
  7719. "140227": "大同县",
  7720. "140228": "其它区" },
  7721. "0,140000,140300": {
  7722. "140302": "城区",
  7723. "140303": "矿区",
  7724. "140311": "郊区",
  7725. "140321": "平定县",
  7726. "140322": "盂县",
  7727. "140323": "其它区" },
  7728. "0,140000,140400": {
  7729. "140421": "长治县",
  7730. "140423": "襄垣县",
  7731. "140424": "屯留县",
  7732. "140425": "平顺县",
  7733. "140426": "黎城县",
  7734. "140427": "壶关县",
  7735. "140428": "长子县",
  7736. "140429": "武乡县",
  7737. "140430": "沁县",
  7738. "140431": "沁源县",
  7739. "140481": "潞城市",
  7740. "140482": "城区",
  7741. "140483": "郊区",
  7742. "140484": "高新区",
  7743. "140485": "其它区" },
  7744. "0,140000,140500": {
  7745. "140502": "城区",
  7746. "140521": "沁水县",
  7747. "140522": "阳城县",
  7748. "140524": "陵川县",
  7749. "140525": "泽州县",
  7750. "140581": "高平市",
  7751. "140582": "其它区" },
  7752. "0,140000,140600": {
  7753. "140602": "朔城区",
  7754. "140603": "平鲁区",
  7755. "140621": "山阴县",
  7756. "140622": "应县",
  7757. "140623": "右玉县",
  7758. "140624": "怀仁县",
  7759. "140625": "其它区" },
  7760. "0,140000,140700": {
  7761. "140702": "榆次区",
  7762. "140721": "榆社县",
  7763. "140722": "左权县",
  7764. "140723": "和顺县",
  7765. "140724": "昔阳县",
  7766. "140725": "寿阳县",
  7767. "140726": "太谷县",
  7768. "140727": "祁县",
  7769. "140728": "平遥县",
  7770. "140729": "灵石县",
  7771. "140781": "介休市",
  7772. "140782": "其它区" },
  7773. "0,140000,140800": {
  7774. "140802": "盐湖区",
  7775. "140821": "临猗县",
  7776. "140822": "万荣县",
  7777. "140823": "闻喜县",
  7778. "140824": "稷山县",
  7779. "140825": "新绛县",
  7780. "140826": "绛县",
  7781. "140827": "垣曲县",
  7782. "140828": "夏县",
  7783. "140829": "平陆县",
  7784. "140830": "芮城县",
  7785. "140881": "永济市",
  7786. "140882": "河津市",
  7787. "140883": "其它区" },
  7788. "0,140000,140900": {
  7789. "140902": "忻府区",
  7790. "140921": "定襄县",
  7791. "140922": "五台县",
  7792. "140923": "代县",
  7793. "140924": "繁峙县",
  7794. "140925": "宁武县",
  7795. "140926": "静乐县",
  7796. "140927": "神池县",
  7797. "140928": "五寨县",
  7798. "140929": "岢岚县",
  7799. "140930": "河曲县",
  7800. "140931": "保德县",
  7801. "140932": "偏关县",
  7802. "140981": "原平市",
  7803. "140982": "其它区" },
  7804. "0,140000,141000": {
  7805. "141002": "尧都区",
  7806. "141021": "曲沃县",
  7807. "141022": "翼城县",
  7808. "141023": "襄汾县",
  7809. "141024": "洪洞县",
  7810. "141025": "古县",
  7811. "141026": "安泽县",
  7812. "141027": "浮山县",
  7813. "141028": "吉县",
  7814. "141029": "乡宁县",
  7815. "141030": "大宁县",
  7816. "141031": "隰县",
  7817. "141032": "永和县",
  7818. "141033": "蒲县",
  7819. "141034": "汾西县",
  7820. "141081": "侯马市",
  7821. "141082": "霍州市",
  7822. "141083": "其它区" },
  7823. "0,140000,141100": {
  7824. "141102": "离石区",
  7825. "141121": "文水县",
  7826. "141122": "交城县",
  7827. "141123": "兴县",
  7828. "141124": "临县",
  7829. "141125": "柳林县",
  7830. "141126": "石楼县",
  7831. "141127": "岚县",
  7832. "141128": "方山县",
  7833. "141129": "中阳县",
  7834. "141130": "交口县",
  7835. "141181": "孝义市",
  7836. "141182": "汾阳市",
  7837. "141183": "其它区" },
  7838. "0,150000": {
  7839. "150100": "呼和浩特市",
  7840. "150200": "包头市",
  7841. "150300": "乌海市",
  7842. "150400": "赤峰市",
  7843. "150500": "通辽市",
  7844. "150600": "鄂尔多斯市",
  7845. "150700": "呼伦贝尔市",
  7846. "150800": "巴彦淖尔市",
  7847. "150900": "乌兰察布市",
  7848. "152200": "兴安盟",
  7849. "152500": "锡林郭勒盟",
  7850. "152900": "阿拉善盟" },
  7851. "0,150000,150100": {
  7852. "150102": "新城区",
  7853. "150103": "回民区",
  7854. "150104": "玉泉区",
  7855. "150105": "赛罕区",
  7856. "150121": "土默特左旗",
  7857. "150122": "托克托县",
  7858. "150123": "和林格尔县",
  7859. "150124": "清水河县",
  7860. "150125": "武川县",
  7861. "150126": "其它区" },
  7862. "0,150000,150200": {
  7863. "150202": "东河区",
  7864. "150203": "昆都仑区",
  7865. "150204": "青山区",
  7866. "150205": "石拐区",
  7867. "150206": "白云矿区",
  7868. "150207": "九原区",
  7869. "150221": "土默特右旗",
  7870. "150222": "固阳县",
  7871. "150223": "达尔罕茂明安联合旗",
  7872. "150224": "其它区" },
  7873. "0,150000,150300": {
  7874. "150302": "海勃湾区",
  7875. "150303": "海南区",
  7876. "150304": "乌达区",
  7877. "150305": "其它区" },
  7878. "0,150000,150400": {
  7879. "150402": "红山区",
  7880. "150403": "元宝山区",
  7881. "150404": "松山区",
  7882. "150421": "阿鲁科尔沁旗",
  7883. "150422": "巴林左旗",
  7884. "150423": "巴林右旗",
  7885. "150424": "林西县",
  7886. "150425": "克什克腾旗",
  7887. "150426": "翁牛特旗",
  7888. "150428": "喀喇沁旗",
  7889. "150429": "宁城县",
  7890. "150430": "敖汉旗",
  7891. "150431": "其它区" },
  7892. "0,150000,150500": {
  7893. "150502": "科尔沁区",
  7894. "150521": "科尔沁左翼中旗",
  7895. "150522": "科尔沁左翼后旗",
  7896. "150523": "开鲁县",
  7897. "150524": "库伦旗",
  7898. "150525": "奈曼旗",
  7899. "150526": "扎鲁特旗",
  7900. "150581": "霍林郭勒市",
  7901. "150582": "其它区" },
  7902. "0,150000,150600": {
  7903. "150602": "东胜区",
  7904. "150621": "达拉特旗",
  7905. "150622": "准格尔旗",
  7906. "150623": "鄂托克前旗",
  7907. "150624": "鄂托克旗",
  7908. "150625": "杭锦旗",
  7909. "150626": "乌审旗",
  7910. "150627": "伊金霍洛旗",
  7911. "150628": "其它区" },
  7912. "0,150000,150700": {
  7913. "150702": "海拉尔区",
  7914. "150721": "阿荣旗",
  7915. "150722": "莫力达瓦达斡尔族自治旗",
  7916. "150723": "鄂伦春自治旗",
  7917. "150724": "鄂温克族自治旗",
  7918. "150725": "陈巴尔虎旗",
  7919. "150726": "新巴尔虎左旗",
  7920. "150727": "新巴尔虎右旗",
  7921. "150781": "满洲里市",
  7922. "150782": "牙克石市",
  7923. "150783": "扎兰屯市",
  7924. "150784": "额尔古纳市",
  7925. "150785": "根河市",
  7926. "150786": "其它区" },
  7927. "0,150000,150800": {
  7928. "150802": "临河区",
  7929. "150821": "五原县",
  7930. "150822": "磴口县",
  7931. "150823": "乌拉特前旗",
  7932. "150824": "乌拉特中旗",
  7933. "150825": "乌拉特后旗",
  7934. "150826": "杭锦后旗",
  7935. "150827": "其它区" },
  7936. "0,150000,150900": {
  7937. "150902": "集宁区",
  7938. "150921": "卓资县",
  7939. "150922": "化德县",
  7940. "150923": "商都县",
  7941. "150924": "兴和县",
  7942. "150925": "凉城县",
  7943. "150926": "察哈尔右翼前旗",
  7944. "150927": "察哈尔右翼中旗",
  7945. "150928": "察哈尔右翼后旗",
  7946. "150929": "四子王旗",
  7947. "150981": "丰镇市",
  7948. "150982": "其它区" },
  7949. "0,150000,152200": {
  7950. "152201": "乌兰浩特市",
  7951. "152202": "阿尔山市",
  7952. "152221": "科尔沁右翼前旗",
  7953. "152222": "科尔沁右翼中旗",
  7954. "152223": "扎赉特旗",
  7955. "152224": "突泉县",
  7956. "152225": "其它区" },
  7957. "0,150000,152500": {
  7958. "152501": "二连浩特市",
  7959. "152502": "锡林浩特市",
  7960. "152522": "阿巴嘎旗",
  7961. "152523": "苏尼特左旗",
  7962. "152524": "苏尼特右旗",
  7963. "152525": "东乌珠穆沁旗",
  7964. "152526": "西乌珠穆沁旗",
  7965. "152527": "太仆寺旗",
  7966. "152528": "镶黄旗",
  7967. "152529": "正镶白旗",
  7968. "152530": "正蓝旗",
  7969. "152531": "多伦县",
  7970. "152532": "其它区" },
  7971. "0,150000,152900": {
  7972. "152921": "阿拉善左旗",
  7973. "152922": "阿拉善右旗",
  7974. "152923": "额济纳旗",
  7975. "152924": "其它区" },
  7976. "0,210000": {
  7977. "210100": "沈阳市",
  7978. "210200": "大连市",
  7979. "210300": "鞍山市",
  7980. "210400": "抚顺市",
  7981. "210500": "本溪市",
  7982. "210600": "丹东市",
  7983. "210700": "锦州市",
  7984. "210800": "营口市",
  7985. "210900": "阜新市",
  7986. "211000": "辽阳市",
  7987. "211100": "盘锦市",
  7988. "211200": "铁岭市",
  7989. "211300": "朝阳市",
  7990. "211400": "葫芦岛市" },
  7991. "0,210000,210100": {
  7992. "210102": "和平区",
  7993. "210103": "沈河区",
  7994. "210104": "大东区",
  7995. "210105": "皇姑区",
  7996. "210106": "铁西区",
  7997. "210111": "苏家屯区",
  7998. "210112": "东陵区",
  7999. "210113": "新城子区",
  8000. "210114": "于洪区",
  8001. "210122": "辽中县",
  8002. "210123": "康平县",
  8003. "210124": "法库县",
  8004. "210181": "新民市",
  8005. "210182": "浑南新区",
  8006. "210183": "张士开发区",
  8007. "210184": "沈北新区",
  8008. "210185": "其它区" },
  8009. "0,210000,210200": {
  8010. "210202": "中山区",
  8011. "210203": "西岗区",
  8012. "210204": "沙河口区",
  8013. "210211": "甘井子区",
  8014. "210212": "旅顺口区",
  8015. "210213": "金州区",
  8016. "210224": "长海县",
  8017. "210251": "开发区",
  8018. "210281": "瓦房店市",
  8019. "210282": "普兰店市",
  8020. "210283": "庄河市",
  8021. "210297": "岭前区",
  8022. "210298": "其它区" },
  8023. "0,210000,210300": {
  8024. "210302": "铁东区",
  8025. "210303": "铁西区",
  8026. "210304": "立山区",
  8027. "210311": "千山区",
  8028. "210321": "台安县",
  8029. "210323": "岫岩满族自治县",
  8030. "210351": "高新区",
  8031. "210381": "海城市",
  8032. "210382": "其它区" },
  8033. "0,210000,210400": {
  8034. "210402": "新抚区",
  8035. "210403": "东洲区",
  8036. "210404": "望花区",
  8037. "210411": "顺城区",
  8038. "210421": "抚顺县",
  8039. "210422": "新宾满族自治县",
  8040. "210423": "清原满族自治县",
  8041. "210424": "其它区" },
  8042. "0,210000,210500": {
  8043. "210502": "平山区",
  8044. "210503": "溪湖区",
  8045. "210504": "明山区",
  8046. "210505": "南芬区",
  8047. "210521": "本溪满族自治县",
  8048. "210522": "桓仁满族自治县",
  8049. "210523": "其它区" },
  8050. "0,210000,210600": {
  8051. "210602": "元宝区",
  8052. "210603": "振兴区",
  8053. "210604": "振安区",
  8054. "210624": "宽甸满族自治县",
  8055. "210681": "东港市",
  8056. "210682": "凤城市",
  8057. "210683": "其它区" },
  8058. "0,210000,210700": {
  8059. "210702": "古塔区",
  8060. "210703": "凌河区",
  8061. "210711": "太和区",
  8062. "210726": "黑山县",
  8063. "210727": "义县",
  8064. "210781": "凌海市",
  8065. "210782": "北镇市",
  8066. "210783": "其它区" },
  8067. "0,210000,210800": {
  8068. "210802": "站前区",
  8069. "210803": "西市区",
  8070. "210804": "鲅鱼圈区",
  8071. "210811": "老边区",
  8072. "210881": "盖州市",
  8073. "210882": "大石桥市",
  8074. "210883": "其它区" },
  8075. "0,210000,210900": {
  8076. "210902": "海州区",
  8077. "210903": "新邱区",
  8078. "210904": "太平区",
  8079. "210905": "清河门区",
  8080. "210911": "细河区",
  8081. "210921": "阜新蒙古族自治县",
  8082. "210922": "彰武县",
  8083. "210923": "其它区" },
  8084. "0,210000,211000": {
  8085. "211002": "白塔区",
  8086. "211003": "文圣区",
  8087. "211004": "宏伟区",
  8088. "211005": "弓长岭区",
  8089. "211011": "太子河区",
  8090. "211021": "辽阳县",
  8091. "211081": "灯塔市",
  8092. "211082": "其它区" },
  8093. "0,210000,211100": {
  8094. "211102": "双台子区",
  8095. "211103": "兴隆台区",
  8096. "211121": "大洼县",
  8097. "211122": "盘山县",
  8098. "211123": "其它区" },
  8099. "0,210000,211200": {
  8100. "211202": "银州区",
  8101. "211204": "清河区",
  8102. "211221": "铁岭县",
  8103. "211223": "西丰县",
  8104. "211224": "昌图县",
  8105. "211281": "调兵山市",
  8106. "211282": "开原市",
  8107. "211283": "其它区" },
  8108. "0,210000,211300": {
  8109. "211302": "双塔区",
  8110. "211303": "龙城区",
  8111. "211321": "朝阳县",
  8112. "211322": "建平县",
  8113. "211324": "喀喇沁左翼蒙古族自治县",
  8114. "211381": "北票市",
  8115. "211382": "凌源市",
  8116. "211383": "其它区" },
  8117. "0,210000,211400": {
  8118. "211402": "连山区",
  8119. "211403": "龙港区",
  8120. "211404": "南票区",
  8121. "211421": "绥中县",
  8122. "211422": "建昌县",
  8123. "211481": "兴城市",
  8124. "211482": "其它区" },
  8125. "0,220000": {
  8126. "220100": "长春市",
  8127. "220200": "吉林市",
  8128. "220300": "四平市",
  8129. "220400": "辽源市",
  8130. "220500": "通化市",
  8131. "220600": "白山市",
  8132. "220700": "松原市",
  8133. "220800": "白城市",
  8134. "222400": "延边朝鲜族自治州" },
  8135. "0,220000,220100": {
  8136. "220102": "南关区",
  8137. "220103": "宽城区",
  8138. "220104": "朝阳区",
  8139. "220105": "二道区",
  8140. "220106": "绿园区",
  8141. "220112": "双阳区",
  8142. "220122": "农安县",
  8143. "220181": "九台市",
  8144. "220182": "榆树市",
  8145. "220183": "德惠市",
  8146. "220184": "高新技术产业开发区",
  8147. "220185": "汽车产业开发区",
  8148. "220186": "经济技术开发区",
  8149. "220187": "净月旅游开发区",
  8150. "220188": "其它区" },
  8151. "0,220000,220200": {
  8152. "220202": "昌邑区",
  8153. "220203": "龙潭区",
  8154. "220204": "船营区",
  8155. "220211": "丰满区",
  8156. "220221": "永吉县",
  8157. "220281": "蛟河市",
  8158. "220282": "桦甸市",
  8159. "220283": "舒兰市",
  8160. "220284": "磐石市",
  8161. "220285": "其它区" },
  8162. "0,220000,220300": {
  8163. "220302": "铁西区",
  8164. "220303": "铁东区",
  8165. "220322": "梨树县",
  8166. "220323": "伊通满族自治县",
  8167. "220381": "公主岭市",
  8168. "220382": "双辽市",
  8169. "220383": "其它区" },
  8170. "0,220000,220400": {
  8171. "220402": "龙山区",
  8172. "220403": "西安区",
  8173. "220421": "东丰县",
  8174. "220422": "东辽县",
  8175. "220423": "其它区" },
  8176. "0,220000,220500": {
  8177. "220502": "东昌区",
  8178. "220503": "二道江区",
  8179. "220521": "通化县",
  8180. "220523": "辉南县",
  8181. "220524": "柳河县",
  8182. "220581": "梅河口市",
  8183. "220582": "集安市",
  8184. "220583": "其它区" },
  8185. "0,220000,220600": {
  8186. "220602": "八道江区",
  8187. "220621": "抚松县",
  8188. "220622": "靖宇县",
  8189. "220623": "长白朝鲜族自治县",
  8190. "220625": "江源市",
  8191. "220681": "临江市",
  8192. "220682": "其它区" },
  8193. "0,220000,220700": {
  8194. "220702": "宁江区",
  8195. "220721": "前郭尔罗斯蒙古族自治县",
  8196. "220722": "长岭县",
  8197. "220723": "乾安县",
  8198. "220724": "扶余县",
  8199. "220725": "其它区" },
  8200. "0,220000,220800": {
  8201. "220802": "洮北区",
  8202. "220821": "镇赉县",
  8203. "220822": "通榆县",
  8204. "220881": "洮南市",
  8205. "220882": "大安市",
  8206. "220883": "其它区" },
  8207. "0,220000,222400": {
  8208. "222401": "延吉市",
  8209. "222402": "图们市",
  8210. "222403": "敦化市",
  8211. "222404": "珲春市",
  8212. "222405": "龙井市",
  8213. "222406": "和龙市",
  8214. "222424": "汪清县",
  8215. "222426": "安图县",
  8216. "222427": "其它区" },
  8217. "0,230000": {
  8218. "230100": "哈尔滨市",
  8219. "230200": "齐齐哈尔市",
  8220. "230300": "鸡西市",
  8221. "230400": "鹤岗市",
  8222. "230500": "双鸭山市",
  8223. "230600": "大庆市",
  8224. "230700": "伊春市",
  8225. "230800": "佳木斯市",
  8226. "230900": "七台河市",
  8227. "231000": "牡丹江市",
  8228. "231100": "黑河市",
  8229. "231200": "绥化市",
  8230. "232700": "大兴安岭地区" },
  8231. "0,230000,230100": {
  8232. "230102": "道里区",
  8233. "230103": "南岗区",
  8234. "230104": "道外区",
  8235. "230106": "香坊区",
  8236. "230107": "动力区",
  8237. "230108": "平房区",
  8238. "230109": "松北区",
  8239. "230111": "呼兰区",
  8240. "230123": "依兰县",
  8241. "230124": "方正县",
  8242. "230125": "宾县",
  8243. "230126": "巴彦县",
  8244. "230127": "木兰县",
  8245. "230128": "通河县",
  8246. "230129": "延寿县",
  8247. "230181": "阿城市",
  8248. "230182": "双城市",
  8249. "230183": "尚志市",
  8250. "230184": "五常市",
  8251. "230185": "阿城市",
  8252. "230186": "其它区" },
  8253. "0,230000,230200": {
  8254. "230202": "龙沙区",
  8255. "230203": "建华区",
  8256. "230204": "铁锋区",
  8257. "230205": "昂昂溪区",
  8258. "230206": "富拉尔基区",
  8259. "230207": "碾子山区",
  8260. "230208": "梅里斯达斡尔族区",
  8261. "230221": "龙江县",
  8262. "230223": "依安县",
  8263. "230224": "泰来县",
  8264. "230225": "甘南县",
  8265. "230227": "富裕县",
  8266. "230229": "克山县",
  8267. "230230": "克东县",
  8268. "230231": "拜泉县",
  8269. "230281": "讷河市",
  8270. "230282": "其它区" },
  8271. "0,230000,230300": {
  8272. "230302": "鸡冠区",
  8273. "230303": "恒山区",
  8274. "230304": "滴道区",
  8275. "230305": "梨树区",
  8276. "230306": "城子河区",
  8277. "230307": "麻山区",
  8278. "230321": "鸡东县",
  8279. "230381": "虎林市",
  8280. "230382": "密山市",
  8281. "230383": "其它区" },
  8282. "0,230000,230400": {
  8283. "230402": "向阳区",
  8284. "230403": "工农区",
  8285. "230404": "南山区",
  8286. "230405": "兴安区",
  8287. "230406": "东山区",
  8288. "230407": "兴山区",
  8289. "230421": "萝北县",
  8290. "230422": "绥滨县",
  8291. "230423": "其它区" },
  8292. "0,230000,230500": {
  8293. "230502": "尖山区",
  8294. "230503": "岭东区",
  8295. "230505": "四方台区",
  8296. "230506": "宝山区",
  8297. "230521": "集贤县",
  8298. "230522": "友谊县",
  8299. "230523": "宝清县",
  8300. "230524": "饶河县",
  8301. "230525": "其它区" },
  8302. "0,230000,230600": {
  8303. "230602": "萨尔图区",
  8304. "230603": "龙凤区",
  8305. "230604": "让胡路区",
  8306. "230605": "红岗区",
  8307. "230606": "大同区",
  8308. "230621": "肇州县",
  8309. "230622": "肇源县",
  8310. "230623": "林甸县",
  8311. "230624": "杜尔伯特蒙古族自治县",
  8312. "230625": "其它区" },
  8313. "0,230000,230700": {
  8314. "230702": "伊春区",
  8315. "230703": "南岔区",
  8316. "230704": "友好区",
  8317. "230705": "西林区",
  8318. "230706": "翠峦区",
  8319. "230707": "新青区",
  8320. "230708": "美溪区",
  8321. "230709": "金山屯区",
  8322. "230710": "五营区",
  8323. "230711": "乌马河区",
  8324. "230712": "汤旺河区",
  8325. "230713": "带岭区",
  8326. "230714": "乌伊岭区",
  8327. "230715": "红星区",
  8328. "230716": "上甘岭区",
  8329. "230722": "嘉荫县",
  8330. "230781": "铁力市",
  8331. "230782": "其它区" },
  8332. "0,230000,230800": {
  8333. "230802": "永红区",
  8334. "230803": "向阳区",
  8335. "230804": "前进区",
  8336. "230805": "东风区",
  8337. "230811": "郊区",
  8338. "230822": "桦南县",
  8339. "230826": "桦川县",
  8340. "230828": "汤原县",
  8341. "230833": "抚远县",
  8342. "230881": "同江市",
  8343. "230882": "富锦市",
  8344. "230883": "其它区" },
  8345. "0,230000,230900": {
  8346. "230902": "新兴区",
  8347. "230903": "桃山区",
  8348. "230904": "茄子河区",
  8349. "230921": "勃利县",
  8350. "230922": "其它区" },
  8351. "0,230000,231000": {
  8352. "231002": "东安区",
  8353. "231003": "阳明区",
  8354. "231004": "爱民区",
  8355. "231005": "西安区",
  8356. "231024": "东宁县",
  8357. "231025": "林口县",
  8358. "231081": "绥芬河市",
  8359. "231083": "海林市",
  8360. "231084": "宁安市",
  8361. "231085": "穆棱市",
  8362. "231086": "其它区" },
  8363. "0,230000,231100": {
  8364. "231102": "爱辉区",
  8365. "231121": "嫩江县",
  8366. "231123": "逊克县",
  8367. "231124": "孙吴县",
  8368. "231181": "北安市",
  8369. "231182": "五大连池市",
  8370. "231183": "其它区" },
  8371. "0,230000,231200": {
  8372. "231202": "北林区",
  8373. "231221": "望奎县",
  8374. "231222": "兰西县",
  8375. "231223": "青冈县",
  8376. "231224": "庆安县",
  8377. "231225": "明水县",
  8378. "231226": "绥棱县",
  8379. "231281": "安达市",
  8380. "231282": "肇东市",
  8381. "231283": "海伦市",
  8382. "231284": "其它区" },
  8383. "0,230000,232700": {
  8384. "232721": "呼玛县",
  8385. "232722": "塔河县",
  8386. "232723": "漠河县",
  8387. "232724": "加格达奇区",
  8388. "232725": "其它区" },
  8389. "0,310000": {
  8390. "310100": "上海市" },
  8391. "0,310000,310100": {
  8392. "310101": "黄浦区",
  8393. "310103": "卢湾区",
  8394. "310104": "徐汇区",
  8395. "310105": "长宁区",
  8396. "310106": "静安区",
  8397. "310107": "普陀区",
  8398. "310108": "闸北区",
  8399. "310109": "虹口区",
  8400. "310110": "杨浦区",
  8401. "310112": "闵行区",
  8402. "310113": "宝山区",
  8403. "310114": "嘉定区",
  8404. "310115": "浦东新区",
  8405. "310116": "金山区",
  8406. "310117": "松江区",
  8407. "310118": "青浦区",
  8408. "310119": "南汇区",
  8409. "310120": "奉贤区",
  8410. "310152": "川沙区",
  8411. "310230": "崇明县",
  8412. "310231": "其它区" },
  8413. "0,320000": {
  8414. "320100": "南京市",
  8415. "320200": "无锡市",
  8416. "320300": "徐州市",
  8417. "320400": "常州市",
  8418. "320500": "苏州市",
  8419. "320600": "南通市",
  8420. "320700": "连云港市",
  8421. "320800": "淮安市",
  8422. "320900": "盐城市",
  8423. "321000": "扬州市",
  8424. "321100": "镇江市",
  8425. "321200": "泰州市",
  8426. "321300": "宿迁市" },
  8427. "0,320000,320100": {
  8428. "320102": "玄武区",
  8429. "320103": "白下区",
  8430. "320104": "秦淮区",
  8431. "320105": "建邺区",
  8432. "320106": "鼓楼区",
  8433. "320107": "下关区",
  8434. "320111": "浦口区",
  8435. "320113": "栖霞区",
  8436. "320114": "雨花台区",
  8437. "320115": "江宁区",
  8438. "320116": "六合区",
  8439. "320124": "溧水县",
  8440. "320125": "高淳县",
  8441. "320126": "其它区" },
  8442. "0,320000,320200": {
  8443. "320202": "崇安区",
  8444. "320203": "南长区",
  8445. "320204": "北塘区",
  8446. "320205": "锡山区",
  8447. "320206": "惠山区",
  8448. "320211": "滨湖区",
  8449. "320281": "江阴市",
  8450. "320282": "宜兴市",
  8451. "320296": "新区",
  8452. "320297": "其它区" },
  8453. "0,320000,320300": {
  8454. "320302": "鼓楼区",
  8455. "320303": "云龙区",
  8456. "320304": "九里区",
  8457. "320305": "贾汪区",
  8458. "320311": "泉山区",
  8459. "320321": "丰县",
  8460. "320322": "沛县",
  8461. "320323": "铜山县",
  8462. "320324": "睢宁县",
  8463. "320381": "新沂市",
  8464. "320382": "邳州市",
  8465. "320383": "其它区" },
  8466. "0,320000,320400": {
  8467. "320402": "天宁区",
  8468. "320404": "钟楼区",
  8469. "320405": "戚墅堰区",
  8470. "320411": "新北区",
  8471. "320412": "武进区",
  8472. "320481": "溧阳市",
  8473. "320482": "金坛市",
  8474. "320483": "其它区" },
  8475. "0,320000,320500": {
  8476. "320502": "沧浪区",
  8477. "320503": "平江区",
  8478. "320504": "金阊区",
  8479. "320505": "虎丘区",
  8480. "320506": "吴中区",
  8481. "320507": "相城区",
  8482. "320581": "常熟市",
  8483. "320582": "张家港市",
  8484. "320583": "昆山市",
  8485. "320584": "吴江市",
  8486. "320585": "太仓市",
  8487. "320594": "新区",
  8488. "320595": "园区",
  8489. "320596": "其它区" },
  8490. "0,320000,320600": {
  8491. "320602": "崇川区",
  8492. "320611": "港闸区",
  8493. "320612": "通州区",
  8494. "320621": "海安县",
  8495. "320623": "如东县",
  8496. "320681": "启东市",
  8497. "320682": "如皋市",
  8498. "320683": "通州市",
  8499. "320684": "海门市",
  8500. "320693": "开发区",
  8501. "320694": "其它区" },
  8502. "0,320000,320700": {
  8503. "320703": "连云区",
  8504. "320705": "新浦区",
  8505. "320706": "海州区",
  8506. "320721": "赣榆县",
  8507. "320722": "东海县",
  8508. "320723": "灌云县",
  8509. "320724": "灌南县",
  8510. "320725": "其它区" },
  8511. "0,320000,320800": {
  8512. "320802": "清河区",
  8513. "320803": "楚州区",
  8514. "320804": "淮阴区",
  8515. "320811": "清浦区",
  8516. "320826": "涟水县",
  8517. "320829": "洪泽县",
  8518. "320830": "盱眙县",
  8519. "320831": "金湖县",
  8520. "320832": "其它区" },
  8521. "0,320000,320900": {
  8522. "320902": "亭湖区",
  8523. "320903": "盐都区",
  8524. "320921": "响水县",
  8525. "320922": "滨海县",
  8526. "320923": "阜宁县",
  8527. "320924": "射阳县",
  8528. "320925": "建湖县",
  8529. "320981": "东台市",
  8530. "320982": "大丰市",
  8531. "320983": "其它区" },
  8532. "0,320000,321000": {
  8533. "321002": "广陵区",
  8534. "321003": "邗江区",
  8535. "321011": "维扬区",
  8536. "321023": "宝应县",
  8537. "321081": "仪征市",
  8538. "321084": "高邮市",
  8539. "321088": "江都市",
  8540. "321092": "经济开发区",
  8541. "321093": "其它区" },
  8542. "0,320000,321100": {
  8543. "321102": "京口区",
  8544. "321111": "润州区",
  8545. "321112": "丹徒区",
  8546. "321181": "丹阳市",
  8547. "321182": "扬中市",
  8548. "321183": "句容市",
  8549. "321184": "其它区" },
  8550. "0,320000,321200": {
  8551. "321202": "海陵区",
  8552. "321203": "高港区",
  8553. "321281": "兴化市",
  8554. "321282": "靖江市",
  8555. "321283": "泰兴市",
  8556. "321284": "姜堰市",
  8557. "321285": "其它区" },
  8558. "0,320000,321300": {
  8559. "321302": "宿城区",
  8560. "321311": "宿豫区",
  8561. "321322": "沭阳县",
  8562. "321323": "泗阳县",
  8563. "321324": "泗洪县",
  8564. "321325": "其它区" },
  8565. "0,330000": {
  8566. "330100": "杭州市",
  8567. "330200": "宁波市",
  8568. "330300": "温州市",
  8569. "330400": "嘉兴市",
  8570. "330500": "湖州市",
  8571. "330600": "绍兴市",
  8572. "330700": "金华市",
  8573. "330800": "衢州市",
  8574. "330900": "舟山市",
  8575. "331000": "台州市",
  8576. "331100": "丽水市" },
  8577. "0,330000,330100": {
  8578. "330102": "上城区",
  8579. "330103": "下城区",
  8580. "330104": "江干区",
  8581. "330105": "拱墅区",
  8582. "330106": "西湖区",
  8583. "330108": "滨江区",
  8584. "330109": "萧山区",
  8585. "330110": "余杭区",
  8586. "330122": "桐庐县",
  8587. "330127": "淳安县",
  8588. "330182": "建德市",
  8589. "330183": "富阳市",
  8590. "330185": "临安市",
  8591. "330186": "其它区" },
  8592. "0,330000,330200": {
  8593. "330203": "海曙区",
  8594. "330204": "江东区",
  8595. "330205": "江北区",
  8596. "330206": "北仑区",
  8597. "330211": "镇海区",
  8598. "330212": "鄞州区",
  8599. "330225": "象山县",
  8600. "330226": "宁海县",
  8601. "330281": "余姚市",
  8602. "330282": "慈溪市",
  8603. "330283": "奉化市",
  8604. "330284": "其它区" },
  8605. "0,330000,330300": {
  8606. "330302": "鹿城区",
  8607. "330303": "龙湾区",
  8608. "330304": "瓯海区",
  8609. "330322": "洞头县",
  8610. "330324": "永嘉县",
  8611. "330326": "平阳县",
  8612. "330327": "苍南县",
  8613. "330328": "文成县",
  8614. "330329": "泰顺县",
  8615. "330381": "瑞安市",
  8616. "330382": "乐清市",
  8617. "330383": "其它区" },
  8618. "0,330000,330400": {
  8619. "330402": "南湖区",
  8620. "330411": "秀洲区",
  8621. "330421": "嘉善县",
  8622. "330424": "海盐县",
  8623. "330481": "海宁市",
  8624. "330482": "平湖市",
  8625. "330483": "桐乡市",
  8626. "330484": "其它区" },
  8627. "0,330000,330500": {
  8628. "330502": "吴兴区",
  8629. "330503": "南浔区",
  8630. "330521": "德清县",
  8631. "330522": "长兴县",
  8632. "330523": "安吉县",
  8633. "330524": "其它区" },
  8634. "0,330000,330600": {
  8635. "330602": "越城区",
  8636. "330621": "绍兴县",
  8637. "330624": "新昌县",
  8638. "330681": "诸暨市",
  8639. "330682": "上虞市",
  8640. "330683": "嵊州市",
  8641. "330684": "其它区" },
  8642. "0,330000,330700": {
  8643. "330702": "婺城区",
  8644. "330703": "金东区",
  8645. "330723": "武义县",
  8646. "330726": "浦江县",
  8647. "330727": "磐安县",
  8648. "330781": "兰溪市",
  8649. "330782": "义乌市",
  8650. "330783": "东阳市",
  8651. "330784": "永康市",
  8652. "330785": "其它区" },
  8653. "0,330000,330800": {
  8654. "330802": "柯城区",
  8655. "330803": "衢江区",
  8656. "330822": "常山县",
  8657. "330824": "开化县",
  8658. "330825": "龙游县",
  8659. "330881": "江山市",
  8660. "330882": "其它区" },
  8661. "0,330000,330900": {
  8662. "330902": "定海区",
  8663. "330903": "普陀区",
  8664. "330921": "岱山县",
  8665. "330922": "嵊泗县",
  8666. "330923": "其它区" },
  8667. "0,330000,331000": {
  8668. "331002": "椒江区",
  8669. "331003": "黄岩区",
  8670. "331004": "路桥区",
  8671. "331021": "玉环县",
  8672. "331022": "三门县",
  8673. "331023": "天台县",
  8674. "331024": "仙居县",
  8675. "331081": "温岭市",
  8676. "331082": "临海市",
  8677. "331083": "其它区" },
  8678. "0,330000,331100": {
  8679. "331102": "莲都区",
  8680. "331121": "青田县",
  8681. "331122": "缙云县",
  8682. "331123": "遂昌县",
  8683. "331124": "松阳县",
  8684. "331125": "云和县",
  8685. "331126": "庆元县",
  8686. "331127": "景宁畲族自治县",
  8687. "331181": "龙泉市",
  8688. "331182": "其它区" },
  8689. "0,340000": {
  8690. "340100": "合肥市",
  8691. "340200": "芜湖市",
  8692. "340300": "蚌埠市",
  8693. "340400": "淮南市",
  8694. "340500": "马鞍山市",
  8695. "340600": "淮北市",
  8696. "340700": "铜陵市",
  8697. "340800": "安庆市",
  8698. "341000": "黄山市",
  8699. "341100": "滁州市",
  8700. "341200": "阜阳市",
  8701. "341300": "宿州市",
  8702. "341500": "六安市",
  8703. "341600": "亳州市",
  8704. "341700": "池州市",
  8705. "341800": "宣城市" },
  8706. "0,340000,340100": {
  8707. "340102": "瑶海区",
  8708. "340103": "庐阳区",
  8709. "340104": "蜀山区",
  8710. "340111": "包河区",
  8711. "340121": "长丰县",
  8712. "340122": "肥东县",
  8713. "340123": "肥西县",
  8714. "340151": "高新区",
  8715. "340191": "中区",
  8716. "340192": "其它区",
  8717. "341400": "巢湖市",
  8718. "341402": "居巢区",
  8719. "341421": "庐江县" },
  8720. "0,340000,340200": {
  8721. "340202": "镜湖区",
  8722. "340203": "弋江区",
  8723. "340207": "鸠江区",
  8724. "340208": "三山区",
  8725. "340221": "芜湖县",
  8726. "340222": "繁昌县",
  8727. "340223": "南陵县",
  8728. "340224": "其它区",
  8729. "341422": "无为县" },
  8730. "0,340000,340300": {
  8731. "340302": "龙子湖区",
  8732. "340303": "蚌山区",
  8733. "340304": "禹会区",
  8734. "340311": "淮上区",
  8735. "340321": "怀远县",
  8736. "340322": "五河县",
  8737. "340323": "固镇县",
  8738. "340324": "其它区" },
  8739. "0,340000,340400": {
  8740. "340402": "大通区",
  8741. "340403": "田家庵区",
  8742. "340404": "谢家集区",
  8743. "340405": "八公山区",
  8744. "340406": "潘集区",
  8745. "340421": "凤台县",
  8746. "340422": "其它区" },
  8747. "0,340000,340500": {
  8748. "340502": "金家庄区",
  8749. "340503": "花山区",
  8750. "340504": "雨山区",
  8751. "340521": "当涂县",
  8752. "340522": "其它区",
  8753. "341423": "含山县",
  8754. "341424": "和县" },
  8755. "0,340000,340600": {
  8756. "340602": "杜集区",
  8757. "340603": "相山区",
  8758. "340604": "烈山区",
  8759. "340621": "濉溪县",
  8760. "340622": "其它区" },
  8761. "0,340000,340700": {
  8762. "340702": "铜官山区",
  8763. "340703": "狮子山区",
  8764. "340711": "郊区",
  8765. "340721": "铜陵县",
  8766. "340722": "其它区" },
  8767. "0,340000,340800": {
  8768. "340802": "迎江区",
  8769. "340803": "大观区",
  8770. "340811": "宜秀区",
  8771. "340822": "怀宁县",
  8772. "340823": "枞阳县",
  8773. "340824": "潜山县",
  8774. "340825": "太湖县",
  8775. "340826": "宿松县",
  8776. "340827": "望江县",
  8777. "340828": "岳西县",
  8778. "340881": "桐城市",
  8779. "340882": "其它区" },
  8780. "0,340000,341000": {
  8781. "341002": "屯溪区",
  8782. "341003": "黄山区",
  8783. "341004": "徽州区",
  8784. "341021": "歙县",
  8785. "341022": "休宁县",
  8786. "341023": "黟县",
  8787. "341024": "祁门县",
  8788. "341025": "其它区" },
  8789. "0,340000,341100": {
  8790. "341102": "琅琊区",
  8791. "341103": "南谯区",
  8792. "341122": "来安县",
  8793. "341124": "全椒县",
  8794. "341125": "定远县",
  8795. "341126": "凤阳县",
  8796. "341181": "天长市",
  8797. "341182": "明光市",
  8798. "341183": "其它区" },
  8799. "0,340000,341200": {
  8800. "341202": "颍州区",
  8801. "341203": "颍东区",
  8802. "341204": "颍泉区",
  8803. "341221": "临泉县",
  8804. "341222": "太和县",
  8805. "341225": "阜南县",
  8806. "341226": "颍上县",
  8807. "341282": "界首市",
  8808. "341283": "其它区" },
  8809. "0,340000,341300": {
  8810. "341302": "埇桥区",
  8811. "341321": "砀山县",
  8812. "341322": "萧县",
  8813. "341323": "灵璧县",
  8814. "341324": "泗县",
  8815. "341325": "其它区" },
  8816. "0,340000,341500": {
  8817. "341502": "金安区",
  8818. "341503": "裕安区",
  8819. "341521": "寿县",
  8820. "341522": "霍邱县",
  8821. "341523": "舒城县",
  8822. "341524": "金寨县",
  8823. "341525": "霍山县",
  8824. "341526": "其它区" },
  8825. "0,340000,341600": {
  8826. "341602": "谯城区",
  8827. "341621": "涡阳县",
  8828. "341622": "蒙城县",
  8829. "341623": "利辛县",
  8830. "341624": "其它区" },
  8831. "0,340000,341700": {
  8832. "341702": "贵池区",
  8833. "341721": "东至县",
  8834. "341722": "石台县",
  8835. "341723": "青阳县",
  8836. "341724": "其它区" },
  8837. "0,340000,341800": {
  8838. "341802": "宣州区",
  8839. "341821": "郎溪县",
  8840. "341822": "广德县",
  8841. "341823": "泾县",
  8842. "341824": "绩溪县",
  8843. "341825": "旌德县",
  8844. "341881": "宁国市",
  8845. "341882": "其它区" },
  8846. "0,350000": {
  8847. "350100": "福州市",
  8848. "350200": "厦门市",
  8849. "350300": "莆田市",
  8850. "350400": "三明市",
  8851. "350500": "泉州市",
  8852. "350600": "漳州市",
  8853. "350700": "南平市",
  8854. "350800": "龙岩市",
  8855. "350900": "宁德市" },
  8856. "0,350000,350100": {
  8857. "350102": "鼓楼区",
  8858. "350103": "台江区",
  8859. "350104": "仓山区",
  8860. "350105": "马尾区",
  8861. "350111": "晋安区",
  8862. "350121": "闽侯县",
  8863. "350122": "连江县",
  8864. "350123": "罗源县",
  8865. "350124": "闽清县",
  8866. "350125": "永泰县",
  8867. "350128": "平潭县",
  8868. "350181": "福清市",
  8869. "350182": "长乐市",
  8870. "350183": "其它区" },
  8871. "0,350000,350200": {
  8872. "350203": "思明区",
  8873. "350205": "海沧区",
  8874. "350206": "湖里区",
  8875. "350211": "集美区",
  8876. "350212": "同安区",
  8877. "350213": "翔安区",
  8878. "350214": "其它区" },
  8879. "0,350000,350300": {
  8880. "350302": "城厢区",
  8881. "350303": "涵江区",
  8882. "350304": "荔城区",
  8883. "350305": "秀屿区",
  8884. "350322": "仙游县",
  8885. "350323": "其它区" },
  8886. "0,350000,350400": {
  8887. "350402": "梅列区",
  8888. "350403": "三元区",
  8889. "350421": "明溪县",
  8890. "350423": "清流县",
  8891. "350424": "宁化县",
  8892. "350425": "大田县",
  8893. "350426": "尤溪县",
  8894. "350427": "沙县",
  8895. "350428": "将乐县",
  8896. "350429": "泰宁县",
  8897. "350430": "建宁县",
  8898. "350481": "永安市",
  8899. "350482": "其它区" },
  8900. "0,350000,350500": {
  8901. "350502": "鲤城区",
  8902. "350503": "丰泽区",
  8903. "350504": "洛江区",
  8904. "350505": "泉港区",
  8905. "350521": "惠安县",
  8906. "350524": "安溪县",
  8907. "350525": "永春县",
  8908. "350526": "德化县",
  8909. "350527": "金门县",
  8910. "350581": "石狮市",
  8911. "350582": "晋江市",
  8912. "350583": "南安市",
  8913. "350584": "其它区" },
  8914. "0,350000,350600": {
  8915. "350602": "芗城区",
  8916. "350603": "龙文区",
  8917. "350622": "云霄县",
  8918. "350623": "漳浦县",
  8919. "350624": "诏安县",
  8920. "350625": "长泰县",
  8921. "350626": "东山县",
  8922. "350627": "南靖县",
  8923. "350628": "平和县",
  8924. "350629": "华安县",
  8925. "350681": "龙海市",
  8926. "350682": "其它区" },
  8927. "0,350000,350700": {
  8928. "350702": "延平区",
  8929. "350721": "顺昌县",
  8930. "350722": "浦城县",
  8931. "350723": "光泽县",
  8932. "350724": "松溪县",
  8933. "350725": "政和县",
  8934. "350781": "邵武市",
  8935. "350782": "武夷山市",
  8936. "350783": "建瓯市",
  8937. "350784": "建阳市",
  8938. "350785": "其它区" },
  8939. "0,350000,350800": {
  8940. "350802": "新罗区",
  8941. "350821": "长汀县",
  8942. "350822": "永定县",
  8943. "350823": "上杭县",
  8944. "350824": "武平县",
  8945. "350825": "连城县",
  8946. "350881": "漳平市",
  8947. "350882": "其它区" },
  8948. "0,350000,350900": {
  8949. "350902": "蕉城区",
  8950. "350921": "霞浦县",
  8951. "350922": "古田县",
  8952. "350923": "屏南县",
  8953. "350924": "寿宁县",
  8954. "350925": "周宁县",
  8955. "350926": "柘荣县",
  8956. "350981": "福安市",
  8957. "350982": "福鼎市",
  8958. "350983": "其它区" },
  8959. "0,360000": {
  8960. "360100": "南昌市",
  8961. "360200": "景德镇市",
  8962. "360300": "萍乡市",
  8963. "360400": "九江市",
  8964. "360500": "新余市",
  8965. "360600": "鹰潭市",
  8966. "360700": "赣州市",
  8967. "360800": "吉安市",
  8968. "360900": "宜春市",
  8969. "361000": "抚州市",
  8970. "361100": "上饶市" },
  8971. "0,360000,360100": {
  8972. "360102": "东湖区",
  8973. "360103": "西湖区",
  8974. "360104": "青云谱区",
  8975. "360105": "湾里区",
  8976. "360111": "青山湖区",
  8977. "360121": "南昌县",
  8978. "360122": "新建县",
  8979. "360123": "安义县",
  8980. "360124": "进贤县",
  8981. "360125": "红谷滩新区",
  8982. "360126": "经济技术开发区",
  8983. "360127": "昌北区",
  8984. "360128": "其它区" },
  8985. "0,360000,360200": {
  8986. "360202": "昌江区",
  8987. "360203": "珠山区",
  8988. "360222": "浮梁县",
  8989. "360281": "乐平市",
  8990. "360282": "其它区" },
  8991. "0,360000,360300": {
  8992. "360302": "安源区",
  8993. "360313": "湘东区",
  8994. "360321": "莲花县",
  8995. "360322": "上栗县",
  8996. "360323": "芦溪县",
  8997. "360324": "其它区" },
  8998. "0,360000,360400": {
  8999. "360402": "庐山区",
  9000. "360403": "浔阳区",
  9001. "360421": "九江县",
  9002. "360423": "武宁县",
  9003. "360424": "修水县",
  9004. "360425": "永修县",
  9005. "360426": "德安县",
  9006. "360427": "星子县",
  9007. "360428": "都昌县",
  9008. "360429": "湖口县",
  9009. "360430": "彭泽县",
  9010. "360481": "瑞昌市",
  9011. "360482": "其它区" },
  9012. "0,360000,360500": {
  9013. "360502": "渝水区",
  9014. "360521": "分宜县",
  9015. "360522": "其它区" },
  9016. "0,360000,360600": {
  9017. "360602": "月湖区",
  9018. "360622": "余江县",
  9019. "360681": "贵溪市",
  9020. "360682": "其它区" },
  9021. "0,360000,360700": {
  9022. "360702": "章贡区",
  9023. "360721": "赣县",
  9024. "360722": "信丰县",
  9025. "360723": "大余县",
  9026. "360724": "上犹县",
  9027. "360725": "崇义县",
  9028. "360726": "安远县",
  9029. "360727": "龙南县",
  9030. "360728": "定南县",
  9031. "360729": "全南县",
  9032. "360730": "宁都县",
  9033. "360731": "于都县",
  9034. "360732": "兴国县",
  9035. "360733": "会昌县",
  9036. "360734": "寻乌县",
  9037. "360735": "石城县",
  9038. "360751": "黄金区",
  9039. "360781": "瑞金市",
  9040. "360782": "南康市",
  9041. "360783": "其它区" },
  9042. "0,360000,360800": {
  9043. "360802": "吉州区",
  9044. "360803": "青原区",
  9045. "360821": "吉安县",
  9046. "360822": "吉水县",
  9047. "360823": "峡江县",
  9048. "360824": "新干县",
  9049. "360825": "永丰县",
  9050. "360826": "泰和县",
  9051. "360827": "遂川县",
  9052. "360828": "万安县",
  9053. "360829": "安福县",
  9054. "360830": "永新县",
  9055. "360881": "井冈山市",
  9056. "360882": "其它区" },
  9057. "0,360000,360900": {
  9058. "360902": "袁州区",
  9059. "360921": "奉新县",
  9060. "360922": "万载县",
  9061. "360923": "上高县",
  9062. "360924": "宜丰县",
  9063. "360925": "靖安县",
  9064. "360926": "铜鼓县",
  9065. "360981": "丰城市",
  9066. "360982": "樟树市",
  9067. "360983": "高安市",
  9068. "360984": "其它区" },
  9069. "0,360000,361000": {
  9070. "361002": "临川区",
  9071. "361021": "南城县",
  9072. "361022": "黎川县",
  9073. "361023": "南丰县",
  9074. "361024": "崇仁县",
  9075. "361025": "乐安县",
  9076. "361026": "宜黄县",
  9077. "361027": "金溪县",
  9078. "361028": "资溪县",
  9079. "361029": "东乡县",
  9080. "361030": "广昌县",
  9081. "361031": "其它区" },
  9082. "0,360000,361100": {
  9083. "361102": "信州区",
  9084. "361121": "上饶县",
  9085. "361122": "广丰县",
  9086. "361123": "玉山县",
  9087. "361124": "铅山县",
  9088. "361125": "横峰县",
  9089. "361126": "弋阳县",
  9090. "361127": "余干县",
  9091. "361128": "鄱阳县",
  9092. "361129": "万年县",
  9093. "361130": "婺源县",
  9094. "361181": "德兴市",
  9095. "361182": "其它区" },
  9096. "0,370000": {
  9097. "370100": "济南市",
  9098. "370200": "青岛市",
  9099. "370300": "淄博市",
  9100. "370400": "枣庄市",
  9101. "370500": "东营市",
  9102. "370600": "烟台市",
  9103. "370700": "潍坊市",
  9104. "370800": "济宁市",
  9105. "370900": "泰安市",
  9106. "371000": "威海市",
  9107. "371100": "日照市",
  9108. "371200": "莱芜市",
  9109. "371300": "临沂市",
  9110. "371400": "德州市",
  9111. "371500": "聊城市",
  9112. "371600": "滨州市",
  9113. "371700": "菏泽市" },
  9114. "0,370000,370100": {
  9115. "370102": "历下区",
  9116. "370103": "市中区",
  9117. "370104": "槐荫区",
  9118. "370105": "天桥区",
  9119. "370112": "历城区",
  9120. "370113": "长清区",
  9121. "370124": "平阴县",
  9122. "370125": "济阳县",
  9123. "370126": "商河县",
  9124. "370181": "章丘市",
  9125. "370182": "其它区" },
  9126. "0,370000,370200": {
  9127. "370202": "市南区",
  9128. "370203": "市北区",
  9129. "370205": "四方区",
  9130. "370211": "黄岛区",
  9131. "370212": "崂山区",
  9132. "370213": "李沧区",
  9133. "370214": "城阳区",
  9134. "370251": "开发区",
  9135. "370281": "胶州市",
  9136. "370282": "即墨市",
  9137. "370283": "平度市",
  9138. "370284": "胶南市",
  9139. "370285": "莱西市",
  9140. "370286": "其它区" },
  9141. "0,370000,370300": {
  9142. "370302": "淄川区",
  9143. "370303": "张店区",
  9144. "370304": "博山区",
  9145. "370305": "临淄区",
  9146. "370306": "周村区",
  9147. "370321": "桓台县",
  9148. "370322": "高青县",
  9149. "370323": "沂源县",
  9150. "370324": "其它区" },
  9151. "0,370000,370400": {
  9152. "370402": "市中区",
  9153. "370403": "薛城区",
  9154. "370404": "峄城区",
  9155. "370405": "台儿庄区",
  9156. "370406": "山亭区",
  9157. "370481": "滕州市",
  9158. "370482": "其它区" },
  9159. "0,370000,370500": {
  9160. "370502": "东营区",
  9161. "370503": "河口区",
  9162. "370521": "垦利县",
  9163. "370522": "利津县",
  9164. "370523": "广饶县",
  9165. "370589": "西城区",
  9166. "370590": "东城区",
  9167. "370591": "其它区" },
  9168. "0,370000,370600": {
  9169. "370602": "芝罘区",
  9170. "370611": "福山区",
  9171. "370612": "牟平区",
  9172. "370613": "莱山区",
  9173. "370634": "长岛县",
  9174. "370681": "龙口市",
  9175. "370682": "莱阳市",
  9176. "370683": "莱州市",
  9177. "370684": "蓬莱市",
  9178. "370685": "招远市",
  9179. "370686": "栖霞市",
  9180. "370687": "海阳市",
  9181. "370688": "其它区" },
  9182. "0,370000,370700": {
  9183. "370702": "潍城区",
  9184. "370703": "寒亭区",
  9185. "370704": "坊子区",
  9186. "370705": "奎文区",
  9187. "370724": "临朐县",
  9188. "370725": "昌乐县",
  9189. "370751": "开发区",
  9190. "370781": "青州市",
  9191. "370782": "诸城市",
  9192. "370783": "寿光市",
  9193. "370784": "安丘市",
  9194. "370785": "高密市",
  9195. "370786": "昌邑市",
  9196. "370787": "其它区" },
  9197. "0,370000,370800": {
  9198. "370802": "市中区",
  9199. "370811": "任城区",
  9200. "370826": "微山县",
  9201. "370827": "鱼台县",
  9202. "370828": "金乡县",
  9203. "370829": "嘉祥县",
  9204. "370830": "汶上县",
  9205. "370831": "泗水县",
  9206. "370832": "梁山县",
  9207. "370881": "曲阜市",
  9208. "370882": "兖州市",
  9209. "370883": "邹城市",
  9210. "370884": "其它区" },
  9211. "0,370000,370900": {
  9212. "370902": "泰山区",
  9213. "370903": "岱岳区",
  9214. "370921": "宁阳县",
  9215. "370923": "东平县",
  9216. "370982": "新泰市",
  9217. "370983": "肥城市",
  9218. "370984": "其它区" },
  9219. "0,370000,371000": {
  9220. "371002": "环翠区",
  9221. "371081": "文登市",
  9222. "371082": "荣成市",
  9223. "371083": "乳山市",
  9224. "371084": "其它区" },
  9225. "0,370000,371100": {
  9226. "371102": "东港区",
  9227. "371103": "岚山区",
  9228. "371121": "五莲县",
  9229. "371122": "莒县",
  9230. "371123": "其它区" },
  9231. "0,370000,371200": {
  9232. "371202": "莱城区",
  9233. "371203": "钢城区",
  9234. "371204": "其它区" },
  9235. "0,370000,371300": {
  9236. "371302": "兰山区",
  9237. "371311": "罗庄区",
  9238. "371312": "河东区",
  9239. "371321": "沂南县",
  9240. "371322": "郯城县",
  9241. "371323": "沂水县",
  9242. "371324": "苍山县",
  9243. "371325": "费县",
  9244. "371326": "平邑县",
  9245. "371327": "莒南县",
  9246. "371328": "蒙阴县",
  9247. "371329": "临沭县",
  9248. "371330": "其它区" },
  9249. "0,370000,371400": {
  9250. "371402": "德城区",
  9251. "371421": "陵县",
  9252. "371422": "宁津县",
  9253. "371423": "庆云县",
  9254. "371424": "临邑县",
  9255. "371425": "齐河县",
  9256. "371426": "平原县",
  9257. "371427": "夏津县",
  9258. "371428": "武城县",
  9259. "371451": "开发区",
  9260. "371481": "乐陵市",
  9261. "371482": "禹城市",
  9262. "371483": "其它区" },
  9263. "0,370000,371500": {
  9264. "371502": "东昌府区",
  9265. "371521": "阳谷县",
  9266. "371522": "莘县",
  9267. "371523": "茌平县",
  9268. "371524": "东阿县",
  9269. "371525": "冠县",
  9270. "371526": "高唐县",
  9271. "371581": "临清市",
  9272. "371582": "其它区" },
  9273. "0,370000,371600": {
  9274. "371602": "滨城区",
  9275. "371621": "惠民县",
  9276. "371622": "阳信县",
  9277. "371623": "无棣县",
  9278. "371624": "沾化县",
  9279. "371625": "博兴县",
  9280. "371626": "邹平县",
  9281. "371627": "其它区" },
  9282. "0,370000,371700": {
  9283. "371702": "牡丹区",
  9284. "371721": "曹县",
  9285. "371722": "单县",
  9286. "371723": "成武县",
  9287. "371724": "巨野县",
  9288. "371725": "郓城县",
  9289. "371726": "鄄城县",
  9290. "371727": "定陶县",
  9291. "371728": "东明县",
  9292. "371729": "其它区" },
  9293. "0,410000": {
  9294. "410100": "郑州市",
  9295. "410200": "开封市",
  9296. "410300": "洛阳市",
  9297. "410400": "平顶山市",
  9298. "410500": "安阳市",
  9299. "410600": "鹤壁市",
  9300. "410700": "新乡市",
  9301. "410800": "焦作市",
  9302. "410881": "济源市",
  9303. "410900": "濮阳市",
  9304. "411000": "许昌市",
  9305. "411100": "漯河市",
  9306. "411200": "三门峡市",
  9307. "411300": "南阳市",
  9308. "411400": "商丘市",
  9309. "411500": "信阳市",
  9310. "411600": "周口市",
  9311. "411700": "驻马店市" },
  9312. "0,410000,410100": {
  9313. "410102": "中原区",
  9314. "410103": "二七区",
  9315. "410104": "管城回族区",
  9316. "410105": "金水区",
  9317. "410106": "上街区",
  9318. "410108": "惠济区",
  9319. "410122": "中牟县",
  9320. "410181": "巩义市",
  9321. "410182": "荥阳市",
  9322. "410183": "新密市",
  9323. "410184": "新郑市",
  9324. "410185": "登封市",
  9325. "410186": "郑东新区",
  9326. "410187": "高新区",
  9327. "410188": "其它区" },
  9328. "0,410000,410200": {
  9329. "410202": "龙亭区",
  9330. "410203": "顺河回族区",
  9331. "410204": "鼓楼区",
  9332. "410205": "禹王台区",
  9333. "410211": "金明区",
  9334. "410221": "杞县",
  9335. "410222": "通许县",
  9336. "410223": "尉氏县",
  9337. "410224": "开封县",
  9338. "410225": "兰考县",
  9339. "410226": "其它区" },
  9340. "0,410000,410300": {
  9341. "410302": "老城区",
  9342. "410303": "西工区",
  9343. "410304": "廛河回族区",
  9344. "410305": "涧西区",
  9345. "410306": "吉利区",
  9346. "410307": "洛龙区",
  9347. "410322": "孟津县",
  9348. "410323": "新安县",
  9349. "410324": "栾川县",
  9350. "410325": "嵩县",
  9351. "410326": "汝阳县",
  9352. "410327": "宜阳县",
  9353. "410328": "洛宁县",
  9354. "410329": "伊川县",
  9355. "410381": "偃师市",
  9356. "471004": "高新区",
  9357. "471005": "其它区" },
  9358. "0,410000,410400": {
  9359. "410402": "新华区",
  9360. "410403": "卫东区",
  9361. "410404": "石龙区",
  9362. "410411": "湛河区",
  9363. "410421": "宝丰县",
  9364. "410422": "叶县",
  9365. "410423": "鲁山县",
  9366. "410425": "郏县",
  9367. "410481": "舞钢市",
  9368. "410482": "汝州市",
  9369. "410483": "其它区" },
  9370. "0,410000,410500": {
  9371. "410502": "文峰区",
  9372. "410503": "北关区",
  9373. "410505": "殷都区",
  9374. "410506": "龙安区",
  9375. "410522": "安阳县",
  9376. "410523": "汤阴县",
  9377. "410526": "滑县",
  9378. "410527": "内黄县",
  9379. "410581": "林州市",
  9380. "410582": "其它区" },
  9381. "0,410000,410600": {
  9382. "410602": "鹤山区",
  9383. "410603": "山城区",
  9384. "410611": "淇滨区",
  9385. "410621": "浚县",
  9386. "410622": "淇县",
  9387. "410623": "其它区" },
  9388. "0,410000,410700": {
  9389. "410702": "红旗区",
  9390. "410703": "卫滨区",
  9391. "410704": "凤泉区",
  9392. "410711": "牧野区",
  9393. "410721": "新乡县",
  9394. "410724": "获嘉县",
  9395. "410725": "原阳县",
  9396. "410726": "延津县",
  9397. "410727": "封丘县",
  9398. "410728": "长垣县",
  9399. "410781": "卫辉市",
  9400. "410782": "辉县市",
  9401. "410783": "其它区" },
  9402. "0,410000,410800": {
  9403. "410802": "解放区",
  9404. "410803": "中站区",
  9405. "410804": "马村区",
  9406. "410811": "山阳区",
  9407. "410821": "修武县",
  9408. "410822": "博爱县",
  9409. "410823": "武陟县",
  9410. "410825": "温县",
  9411. "410882": "沁阳市",
  9412. "410883": "孟州市",
  9413. "410884": "其它区" },
  9414. "0,410000,410881": [],
  9415. "0,410000,410900": {
  9416. "410902": "华龙区",
  9417. "410922": "清丰县",
  9418. "410923": "南乐县",
  9419. "410926": "范县",
  9420. "410927": "台前县",
  9421. "410928": "濮阳县",
  9422. "410929": "其它区" },
  9423. "0,410000,411000": {
  9424. "411002": "魏都区",
  9425. "411023": "许昌县",
  9426. "411024": "鄢陵县",
  9427. "411025": "襄城县",
  9428. "411081": "禹州市",
  9429. "411082": "长葛市",
  9430. "411083": "其它区" },
  9431. "0,410000,411100": {
  9432. "411102": "源汇区",
  9433. "411103": "郾城区",
  9434. "411104": "召陵区",
  9435. "411121": "舞阳县",
  9436. "411122": "临颍县",
  9437. "411123": "其它区" },
  9438. "0,410000,411200": {
  9439. "411202": "湖滨区",
  9440. "411221": "渑池县",
  9441. "411222": "陕县",
  9442. "411224": "卢氏县",
  9443. "411281": "义马市",
  9444. "411282": "灵宝市",
  9445. "411283": "其它区" },
  9446. "0,410000,411300": {
  9447. "411302": "宛城区",
  9448. "411303": "卧龙区",
  9449. "411321": "南召县",
  9450. "411322": "方城县",
  9451. "411323": "西峡县",
  9452. "411324": "镇平县",
  9453. "411325": "内乡县",
  9454. "411326": "淅川县",
  9455. "411327": "社旗县",
  9456. "411328": "唐河县",
  9457. "411329": "新野县",
  9458. "411330": "桐柏县",
  9459. "411381": "邓州市",
  9460. "411382": "其它区" },
  9461. "0,410000,411400": {
  9462. "411402": "梁园区",
  9463. "411403": "睢阳区",
  9464. "411421": "民权县",
  9465. "411422": "睢县",
  9466. "411423": "宁陵县",
  9467. "411424": "柘城县",
  9468. "411425": "虞城县",
  9469. "411426": "夏邑县",
  9470. "411481": "永城市",
  9471. "411482": "其它区" },
  9472. "0,410000,411500": {
  9473. "411502": "浉河区",
  9474. "411503": "平桥区",
  9475. "411521": "罗山县",
  9476. "411522": "光山县",
  9477. "411523": "新县",
  9478. "411524": "商城县",
  9479. "411525": "固始县",
  9480. "411526": "潢川县",
  9481. "411527": "淮滨县",
  9482. "411528": "息县",
  9483. "411529": "其它区" },
  9484. "0,410000,411600": {
  9485. "411602": "川汇区",
  9486. "411621": "扶沟县",
  9487. "411622": "西华县",
  9488. "411623": "商水县",
  9489. "411624": "沈丘县",
  9490. "411625": "郸城县",
  9491. "411626": "淮阳县",
  9492. "411627": "太康县",
  9493. "411628": "鹿邑县",
  9494. "411681": "项城市",
  9495. "411682": "其它区" },
  9496. "0,410000,411700": {
  9497. "411702": "驿城区",
  9498. "411721": "西平县",
  9499. "411722": "上蔡县",
  9500. "411723": "平舆县",
  9501. "411724": "正阳县",
  9502. "411725": "确山县",
  9503. "411726": "泌阳县",
  9504. "411727": "汝南县",
  9505. "411728": "遂平县",
  9506. "411729": "新蔡县",
  9507. "411730": "其它区" },
  9508. "0,420000": {
  9509. "420100": "武汉市",
  9510. "420200": "黄石市",
  9511. "420300": "十堰市",
  9512. "420500": "宜昌市",
  9513. "420600": "襄阳市",
  9514. "420700": "鄂州市",
  9515. "420800": "荆门市",
  9516. "420900": "孝感市",
  9517. "421000": "荆州市",
  9518. "421100": "黄冈市",
  9519. "421200": "咸宁市",
  9520. "421300": "随州市",
  9521. "422800": "恩施土家族苗族自治州",
  9522. "429004": "仙桃市",
  9523. "429005": "潜江市",
  9524. "429006": "天门市",
  9525. "429021": "神农架林区" },
  9526. "0,420000,420100": {
  9527. "420102": "江岸区",
  9528. "420103": "江汉区",
  9529. "420104": "硚口区",
  9530. "420105": "汉阳区",
  9531. "420106": "武昌区",
  9532. "420107": "青山区",
  9533. "420111": "洪山区",
  9534. "420112": "东西湖区",
  9535. "420113": "汉南区",
  9536. "420114": "蔡甸区",
  9537. "420115": "江夏区",
  9538. "420116": "黄陂区",
  9539. "420117": "新洲区",
  9540. "420118": "其它区" },
  9541. "0,420000,420200": {
  9542. "420202": "黄石港区",
  9543. "420203": "西塞山区",
  9544. "420204": "下陆区",
  9545. "420205": "铁山区",
  9546. "420222": "阳新县",
  9547. "420281": "大冶市",
  9548. "420282": "其它区" },
  9549. "0,420000,420300": {
  9550. "420302": "茅箭区",
  9551. "420303": "张湾区",
  9552. "420321": "郧县",
  9553. "420322": "郧西县",
  9554. "420323": "竹山县",
  9555. "420324": "竹溪县",
  9556. "420325": "房县",
  9557. "420381": "丹江口市",
  9558. "420382": "城区",
  9559. "420383": "其它区" },
  9560. "0,420000,420500": {
  9561. "420502": "西陵区",
  9562. "420503": "伍家岗区",
  9563. "420504": "点军区",
  9564. "420505": "猇亭区",
  9565. "420506": "夷陵区",
  9566. "420525": "远安县",
  9567. "420526": "兴山县",
  9568. "420527": "秭归县",
  9569. "420528": "长阳土家族自治县",
  9570. "420529": "五峰土家族自治县",
  9571. "420551": "葛洲坝区",
  9572. "420552": "开发区",
  9573. "420581": "宜都市",
  9574. "420582": "当阳市",
  9575. "420583": "枝江市",
  9576. "420584": "其它区" },
  9577. "0,420000,420600": {
  9578. "420602": "襄城区",
  9579. "420606": "樊城区",
  9580. "420607": "襄州区",
  9581. "420624": "南漳县",
  9582. "420625": "谷城县",
  9583. "420626": "保康县",
  9584. "420682": "老河口市",
  9585. "420683": "枣阳市",
  9586. "420684": "宜城市",
  9587. "420685": "其它区" },
  9588. "0,420000,420700": {
  9589. "420702": "梁子湖区",
  9590. "420703": "华容区",
  9591. "420704": "鄂城区",
  9592. "420705": "其它区" },
  9593. "0,420000,420800": {
  9594. "420802": "东宝区",
  9595. "420804": "掇刀区",
  9596. "420821": "京山县",
  9597. "420822": "沙洋县",
  9598. "420881": "钟祥市",
  9599. "420882": "其它区" },
  9600. "0,420000,420900": {
  9601. "420902": "孝南区",
  9602. "420921": "孝昌县",
  9603. "420922": "大悟县",
  9604. "420923": "云梦县",
  9605. "420981": "应城市",
  9606. "420982": "安陆市",
  9607. "420984": "汉川市",
  9608. "420985": "其它区" },
  9609. "0,420000,421000": {
  9610. "421002": "沙市区",
  9611. "421003": "荆州区",
  9612. "421022": "公安县",
  9613. "421023": "监利县",
  9614. "421024": "江陵县",
  9615. "421081": "石首市",
  9616. "421083": "洪湖市",
  9617. "421087": "松滋市",
  9618. "421088": "其它区" },
  9619. "0,420000,421100": {
  9620. "421102": "黄州区",
  9621. "421121": "团风县",
  9622. "421122": "红安县",
  9623. "421123": "罗田县",
  9624. "421124": "英山县",
  9625. "421125": "浠水县",
  9626. "421126": "蕲春县",
  9627. "421127": "黄梅县",
  9628. "421181": "麻城市",
  9629. "421182": "武穴市",
  9630. "421183": "其它区" },
  9631. "0,420000,421200": {
  9632. "421202": "咸安区",
  9633. "421221": "嘉鱼县",
  9634. "421222": "通城县",
  9635. "421223": "崇阳县",
  9636. "421224": "通山县",
  9637. "421281": "赤壁市",
  9638. "421282": "温泉城区",
  9639. "421283": "其它区" },
  9640. "0,420000,421300": {
  9641. "421302": "曾都区",
  9642. "421321": "随县",
  9643. "421381": "广水市",
  9644. "421382": "其它区" },
  9645. "0,420000,422800": {
  9646. "422801": "恩施市",
  9647. "422802": "利川市",
  9648. "422822": "建始县",
  9649. "422823": "巴东县",
  9650. "422825": "宣恩县",
  9651. "422826": "咸丰县",
  9652. "422827": "来凤县",
  9653. "422828": "鹤峰县",
  9654. "422829": "其它区" },
  9655. "0,420000,429004": [],
  9656. "0,420000,429005": [],
  9657. "0,420000,429006": [],
  9658. "0,420000,429021": [],
  9659. "0,430000": {
  9660. "430100": "长沙市",
  9661. "430200": "株洲市",
  9662. "430300": "湘潭市",
  9663. "430400": "衡阳市",
  9664. "430500": "邵阳市",
  9665. "430600": "岳阳市",
  9666. "430700": "常德市",
  9667. "430800": "张家界市",
  9668. "430900": "益阳市",
  9669. "431000": "郴州市",
  9670. "431100": "永州市",
  9671. "431200": "怀化市",
  9672. "431300": "娄底市",
  9673. "433100": "湘西土家族苗族自治州" },
  9674. "0,430000,430100": {
  9675. "430102": "芙蓉区",
  9676. "430103": "天心区",
  9677. "430104": "岳麓区",
  9678. "430105": "开福区",
  9679. "430111": "雨花区",
  9680. "430121": "长沙县",
  9681. "430122": "望城县",
  9682. "430124": "宁乡县",
  9683. "430181": "浏阳市",
  9684. "430182": "其它区" },
  9685. "0,430000,430200": {
  9686. "430202": "荷塘区",
  9687. "430203": "芦淞区",
  9688. "430204": "石峰区",
  9689. "430211": "天元区",
  9690. "430221": "株洲县",
  9691. "430223": "攸县",
  9692. "430224": "茶陵县",
  9693. "430225": "炎陵县",
  9694. "430281": "醴陵市",
  9695. "430282": "其它区" },
  9696. "0,430000,430300": {
  9697. "430302": "雨湖区",
  9698. "430304": "岳塘区",
  9699. "430321": "湘潭县",
  9700. "430381": "湘乡市",
  9701. "430382": "韶山市",
  9702. "430383": "其它区" },
  9703. "0,430000,430400": {
  9704. "430405": "珠晖区",
  9705. "430406": "雁峰区",
  9706. "430407": "石鼓区",
  9707. "430408": "蒸湘区",
  9708. "430412": "南岳区",
  9709. "430421": "衡阳县",
  9710. "430422": "衡南县",
  9711. "430423": "衡山县",
  9712. "430424": "衡东县",
  9713. "430426": "祁东县",
  9714. "430481": "耒阳市",
  9715. "430482": "常宁市",
  9716. "430483": "其它区" },
  9717. "0,430000,430500": {
  9718. "430502": "双清区",
  9719. "430503": "大祥区",
  9720. "430511": "北塔区",
  9721. "430521": "邵东县",
  9722. "430522": "新邵县",
  9723. "430523": "邵阳县",
  9724. "430524": "隆回县",
  9725. "430525": "洞口县",
  9726. "430527": "绥宁县",
  9727. "430528": "新宁县",
  9728. "430529": "城步苗族自治县",
  9729. "430581": "武冈市",
  9730. "430582": "其它区" },
  9731. "0,430000,430600": {
  9732. "430602": "岳阳楼区",
  9733. "430603": "云溪区",
  9734. "430611": "君山区",
  9735. "430621": "岳阳县",
  9736. "430623": "华容县",
  9737. "430624": "湘阴县",
  9738. "430626": "平江县",
  9739. "430681": "汨罗市",
  9740. "430682": "临湘市",
  9741. "430683": "其它区" },
  9742. "0,430000,430700": {
  9743. "430702": "武陵区",
  9744. "430703": "鼎城区",
  9745. "430721": "安乡县",
  9746. "430722": "汉寿县",
  9747. "430723": "澧县",
  9748. "430724": "临澧县",
  9749. "430725": "桃源县",
  9750. "430726": "石门县",
  9751. "430781": "津市市",
  9752. "430782": "其它区" },
  9753. "0,430000,430800": {
  9754. "430802": "永定区",
  9755. "430811": "武陵源区",
  9756. "430821": "慈利县",
  9757. "430822": "桑植县",
  9758. "430823": "其它区" },
  9759. "0,430000,430900": {
  9760. "430902": "资阳区",
  9761. "430903": "赫山区",
  9762. "430921": "南县",
  9763. "430922": "桃江县",
  9764. "430923": "安化县",
  9765. "430981": "沅江市",
  9766. "430982": "其它区" },
  9767. "0,430000,431000": {
  9768. "431002": "北湖区",
  9769. "431003": "苏仙区",
  9770. "431021": "桂阳县",
  9771. "431022": "宜章县",
  9772. "431023": "永兴县",
  9773. "431024": "嘉禾县",
  9774. "431025": "临武县",
  9775. "431026": "汝城县",
  9776. "431027": "桂东县",
  9777. "431028": "安仁县",
  9778. "431081": "资兴市",
  9779. "431082": "其它区" },
  9780. "0,430000,431100": {
  9781. "431102": "零陵区",
  9782. "431103": "冷水滩区",
  9783. "431121": "祁阳县",
  9784. "431122": "东安县",
  9785. "431123": "双牌县",
  9786. "431124": "道县",
  9787. "431125": "江永县",
  9788. "431126": "宁远县",
  9789. "431127": "蓝山县",
  9790. "431128": "新田县",
  9791. "431129": "江华瑶族自治县",
  9792. "431130": "其它区" },
  9793. "0,430000,431200": {
  9794. "431202": "鹤城区",
  9795. "431221": "中方县",
  9796. "431222": "沅陵县",
  9797. "431223": "辰溪县",
  9798. "431224": "溆浦县",
  9799. "431225": "会同县",
  9800. "431226": "麻阳苗族自治县",
  9801. "431227": "新晃侗族自治县",
  9802. "431228": "芷江侗族自治县",
  9803. "431229": "靖州苗族侗族自治县",
  9804. "431230": "通道侗族自治县",
  9805. "431281": "洪江市",
  9806. "431282": "其它区" },
  9807. "0,430000,431300": {
  9808. "431302": "娄星区",
  9809. "431321": "双峰县",
  9810. "431322": "新化县",
  9811. "431381": "冷水江市",
  9812. "431382": "涟源市",
  9813. "431383": "其它区" },
  9814. "0,430000,433100": {
  9815. "433101": "吉首市",
  9816. "433122": "泸溪县",
  9817. "433123": "凤凰县",
  9818. "433124": "花垣县",
  9819. "433125": "保靖县",
  9820. "433126": "古丈县",
  9821. "433127": "永顺县",
  9822. "433130": "龙山县",
  9823. "433131": "其它区" },
  9824. "0,440000": {
  9825. "440100": "广州市",
  9826. "440200": "韶关市",
  9827. "440300": "深圳市",
  9828. "440400": "珠海市",
  9829. "440500": "汕头市",
  9830. "440600": "佛山市",
  9831. "440700": "江门市",
  9832. "440800": "湛江市",
  9833. "440900": "茂名市",
  9834. "441200": "肇庆市",
  9835. "441300": "惠州市",
  9836. "441400": "梅州市",
  9837. "441500": "汕尾市",
  9838. "441600": "河源市",
  9839. "441700": "阳江市",
  9840. "441800": "清远市",
  9841. "441900": "东莞市",
  9842. "442000": "中山市",
  9843. "445100": "潮州市",
  9844. "445200": "揭阳市",
  9845. "445300": "云浮市" },
  9846. "0,440000,440100": {
  9847. "440103": "荔湾区",
  9848. "440104": "越秀区",
  9849. "440105": "海珠区",
  9850. "440106": "天河区",
  9851. "440111": "白云区",
  9852. "440112": "黄埔区",
  9853. "440113": "番禺区",
  9854. "440114": "花都区",
  9855. "440115": "南沙区",
  9856. "440116": "萝岗区",
  9857. "440183": "增城市",
  9858. "440184": "从化市",
  9859. "440188": "东山区",
  9860. "440189": "其它区" },
  9861. "0,440000,440200": {
  9862. "440203": "武江区",
  9863. "440204": "浈江区",
  9864. "440205": "曲江区",
  9865. "440222": "始兴县",
  9866. "440224": "仁化县",
  9867. "440229": "翁源县",
  9868. "440232": "乳源瑶族自治县",
  9869. "440233": "新丰县",
  9870. "440281": "乐昌市",
  9871. "440282": "南雄市",
  9872. "440283": "其它区" },
  9873. "0,440000,440300": {
  9874. "1032697": "光明新区",
  9875. "1032698": "坪山新区",
  9876. "1032699": "大鹏新区",
  9877. "1032700": "龙华新区",
  9878. "440303": "罗湖区",
  9879. "440304": "福田区",
  9880. "440305": "南山区",
  9881. "440306": "宝安区",
  9882. "440307": "龙岗区",
  9883. "440308": "盐田区",
  9884. "440309": "其它区" },
  9885. "0,440000,440400": {
  9886. "440402": "香洲区",
  9887. "440403": "斗门区",
  9888. "440404": "金湾区",
  9889. "440486": "金唐区",
  9890. "440487": "南湾区",
  9891. "440488": "其它区" },
  9892. "0,440000,440500": {
  9893. "440507": "龙湖区",
  9894. "440511": "金平区",
  9895. "440512": "濠江区",
  9896. "440513": "潮阳区",
  9897. "440514": "潮南区",
  9898. "440515": "澄海区",
  9899. "440523": "南澳县",
  9900. "440524": "其它区" },
  9901. "0,440000,440600": {
  9902. "440604": "禅城区",
  9903. "440605": "南海区",
  9904. "440606": "顺德区",
  9905. "440607": "三水区",
  9906. "440608": "高明区",
  9907. "440609": "其它区" },
  9908. "0,440000,440700": {
  9909. "440703": "蓬江区",
  9910. "440704": "江海区",
  9911. "440705": "新会区",
  9912. "440781": "台山市",
  9913. "440783": "开平市",
  9914. "440784": "鹤山市",
  9915. "440785": "恩平市",
  9916. "440786": "其它区" },
  9917. "0,440000,440800": {
  9918. "440802": "赤坎区",
  9919. "440803": "霞山区",
  9920. "440804": "坡头区",
  9921. "440811": "麻章区",
  9922. "440823": "遂溪县",
  9923. "440825": "徐闻县",
  9924. "440881": "廉江市",
  9925. "440882": "雷州市",
  9926. "440883": "吴川市",
  9927. "440884": "其它区" },
  9928. "0,440000,440900": {
  9929. "440902": "茂南区",
  9930. "440903": "茂港区",
  9931. "440923": "电白县",
  9932. "440981": "高州市",
  9933. "440982": "化州市",
  9934. "440983": "信宜市",
  9935. "440984": "其它区" },
  9936. "0,440000,441200": {
  9937. "441202": "端州区",
  9938. "441203": "鼎湖区",
  9939. "441223": "广宁县",
  9940. "441224": "怀集县",
  9941. "441225": "封开县",
  9942. "441226": "德庆县",
  9943. "441283": "高要市",
  9944. "441284": "四会市",
  9945. "441285": "其它区" },
  9946. "0,440000,441300": {
  9947. "441302": "惠城区",
  9948. "441303": "惠阳区",
  9949. "441322": "博罗县",
  9950. "441323": "惠东县",
  9951. "441324": "龙门县",
  9952. "441325": "其它区" },
  9953. "0,440000,441400": {
  9954. "441402": "梅江区",
  9955. "441421": "梅县",
  9956. "441422": "大埔县",
  9957. "441423": "丰顺县",
  9958. "441424": "五华县",
  9959. "441426": "平远县",
  9960. "441427": "蕉岭县",
  9961. "441481": "兴宁市",
  9962. "441482": "其它区" },
  9963. "0,440000,441500": {
  9964. "441502": "城区",
  9965. "441521": "海丰县",
  9966. "441523": "陆河县",
  9967. "441581": "陆丰市",
  9968. "441582": "其它区" },
  9969. "0,440000,441600": {
  9970. "441602": "源城区",
  9971. "441621": "紫金县",
  9972. "441622": "龙川县",
  9973. "441623": "连平县",
  9974. "441624": "和平县",
  9975. "441625": "东源县",
  9976. "441626": "其它区" },
  9977. "0,440000,441700": {
  9978. "441702": "江城区",
  9979. "441721": "阳西县",
  9980. "441723": "阳东县",
  9981. "441781": "阳春市",
  9982. "441782": "其它区" },
  9983. "0,440000,441800": {
  9984. "441802": "清城区",
  9985. "441821": "佛冈县",
  9986. "441823": "阳山县",
  9987. "441825": "连山壮族瑶族自治县",
  9988. "441826": "连南瑶族自治县",
  9989. "441827": "清新县",
  9990. "441881": "英德市",
  9991. "441882": "连州市",
  9992. "441883": "其它区" },
  9993. "0,440000,441900": [],
  9994. "0,440000,442000": [],
  9995. "0,440000,445100": {
  9996. "445102": "湘桥区",
  9997. "445121": "潮安县",
  9998. "445122": "饶平县",
  9999. "445185": "枫溪区",
  10000. "445186": "其它区" },
  10001. "0,440000,445200": {
  10002. "445202": "榕城区",
  10003. "445221": "揭东县",
  10004. "445222": "揭西县",
  10005. "445224": "惠来县",
  10006. "445281": "普宁市",
  10007. "445284": "东山区",
  10008. "445285": "其它区" },
  10009. "0,440000,445300": {
  10010. "445302": "云城区",
  10011. "445321": "新兴县",
  10012. "445322": "郁南县",
  10013. "445323": "云安县",
  10014. "445381": "罗定市",
  10015. "445382": "其它区" },
  10016. "0,450000": {
  10017. "450100": "南宁市",
  10018. "450200": "柳州市",
  10019. "450300": "桂林市",
  10020. "450400": "梧州市",
  10021. "450500": "北海市",
  10022. "450600": "防城港市",
  10023. "450700": "钦州市",
  10024. "450800": "贵港市",
  10025. "450900": "玉林市",
  10026. "451000": "百色市",
  10027. "451100": "贺州市",
  10028. "451200": "河池市",
  10029. "451300": "来宾市",
  10030. "451400": "崇左市" },
  10031. "0,450000,450100": {
  10032. "450102": "兴宁区",
  10033. "450103": "青秀区",
  10034. "450105": "江南区",
  10035. "450107": "西乡塘区",
  10036. "450108": "良庆区",
  10037. "450109": "邕宁区",
  10038. "450122": "武鸣县",
  10039. "450123": "隆安县",
  10040. "450124": "马山县",
  10041. "450125": "上林县",
  10042. "450126": "宾阳县",
  10043. "450127": "横县",
  10044. "450128": "其它区" },
  10045. "0,450000,450200": {
  10046. "450202": "城中区",
  10047. "450203": "鱼峰区",
  10048. "450204": "柳南区",
  10049. "450205": "柳北区",
  10050. "450221": "柳江县",
  10051. "450222": "柳城县",
  10052. "450223": "鹿寨县",
  10053. "450224": "融安县",
  10054. "450225": "融水苗族自治县",
  10055. "450226": "三江侗族自治县",
  10056. "450227": "其它区" },
  10057. "0,450000,450300": {
  10058. "450302": "秀峰区",
  10059. "450303": "叠彩区",
  10060. "450304": "象山区",
  10061. "450305": "七星区",
  10062. "450311": "雁山区",
  10063. "450321": "阳朔县",
  10064. "450322": "临桂县",
  10065. "450323": "灵川县",
  10066. "450324": "全州县",
  10067. "450325": "兴安县",
  10068. "450326": "永福县",
  10069. "450327": "灌阳县",
  10070. "450328": "龙胜各族自治县",
  10071. "450329": "资源县",
  10072. "450330": "平乐县",
  10073. "450331": "荔浦县",
  10074. "450332": "恭城瑶族自治县",
  10075. "450333": "其它区" },
  10076. "0,450000,450400": {
  10077. "450403": "万秀区",
  10078. "450404": "蝶山区",
  10079. "450405": "长洲区",
  10080. "450421": "苍梧县",
  10081. "450422": "藤县",
  10082. "450423": "蒙山县",
  10083. "450481": "岑溪市",
  10084. "450482": "其它区" },
  10085. "0,450000,450500": {
  10086. "450502": "海城区",
  10087. "450503": "银海区",
  10088. "450512": "铁山港区",
  10089. "450521": "合浦县",
  10090. "450522": "其它区" },
  10091. "0,450000,450600": {
  10092. "450602": "港口区",
  10093. "450603": "防城区",
  10094. "450621": "上思县",
  10095. "450681": "东兴市",
  10096. "450682": "其它区" },
  10097. "0,450000,450700": {
  10098. "450702": "钦南区",
  10099. "450703": "钦北区",
  10100. "450721": "灵山县",
  10101. "450722": "浦北县",
  10102. "450723": "其它区" },
  10103. "0,450000,450800": {
  10104. "450802": "港北区",
  10105. "450803": "港南区",
  10106. "450804": "覃塘区",
  10107. "450821": "平南县",
  10108. "450881": "桂平市",
  10109. "450882": "其它区" },
  10110. "0,450000,450900": {
  10111. "450902": "玉州区",
  10112. "450921": "容县",
  10113. "450922": "陆川县",
  10114. "450923": "博白县",
  10115. "450924": "兴业县",
  10116. "450981": "北流市",
  10117. "450982": "其它区" },
  10118. "0,450000,451000": {
  10119. "451002": "右江区",
  10120. "451021": "田阳县",
  10121. "451022": "田东县",
  10122. "451023": "平果县",
  10123. "451024": "德保县",
  10124. "451025": "靖西县",
  10125. "451026": "那坡县",
  10126. "451027": "凌云县",
  10127. "451028": "乐业县",
  10128. "451029": "田林县",
  10129. "451030": "西林县",
  10130. "451031": "隆林各族自治县",
  10131. "451032": "其它区" },
  10132. "0,450000,451100": {
  10133. "451102": "八步区",
  10134. "451121": "昭平县",
  10135. "451122": "钟山县",
  10136. "451123": "富川瑶族自治县",
  10137. "451124": "其它区" },
  10138. "0,450000,451200": {
  10139. "451202": "金城江区",
  10140. "451221": "南丹县",
  10141. "451222": "天峨县",
  10142. "451223": "凤山县",
  10143. "451224": "东兰县",
  10144. "451225": "罗城仫佬族自治县",
  10145. "451226": "环江毛南族自治县",
  10146. "451227": "巴马瑶族自治县",
  10147. "451228": "都安瑶族自治县",
  10148. "451229": "大化瑶族自治县",
  10149. "451281": "宜州市",
  10150. "451282": "其它区" },
  10151. "0,450000,451300": {
  10152. "451302": "兴宾区",
  10153. "451321": "忻城县",
  10154. "451322": "象州县",
  10155. "451323": "武宣县",
  10156. "451324": "金秀瑶族自治县",
  10157. "451381": "合山市",
  10158. "451382": "其它区" },
  10159. "0,450000,451400": {
  10160. "451402": "江洲区",
  10161. "451421": "扶绥县",
  10162. "451422": "宁明县",
  10163. "451423": "龙州县",
  10164. "451424": "大新县",
  10165. "451425": "天等县",
  10166. "451481": "凭祥市",
  10167. "451482": "其它区" },
  10168. "0,460000": {
  10169. "460100": "海口市",
  10170. "460200": "三亚市",
  10171. "469001": "五指山市",
  10172. "469002": "琼海市",
  10173. "469003": "儋州市",
  10174. "469005": "文昌市",
  10175. "469006": "万宁市",
  10176. "469007": "东方市",
  10177. "469025": "定安县",
  10178. "469026": "屯昌县",
  10179. "469027": "澄迈县",
  10180. "469028": "临高县",
  10181. "469030": "白沙黎族自治县",
  10182. "469031": "昌江黎族自治县",
  10183. "469033": "乐东黎族自治县",
  10184. "469034": "陵水黎族自治县",
  10185. "469035": "保亭黎族苗族自治县",
  10186. "469036": "琼中黎族苗族自治县",
  10187. "469037": "西沙群岛",
  10188. "469038": "南沙群岛",
  10189. "469039": "中沙群岛的岛礁及其海域" },
  10190. "0,460000,460100": {
  10191. "460105": "秀英区",
  10192. "460106": "龙华区",
  10193. "460107": "琼山区",
  10194. "460108": "美兰区",
  10195. "460109": "其它区" },
  10196. "0,460000,460200": [],
  10197. "0,460000,469001": [],
  10198. "0,460000,469002": [],
  10199. "0,460000,469003": [],
  10200. "0,460000,469005": [],
  10201. "0,460000,469006": [],
  10202. "0,460000,469007": [],
  10203. "0,460000,469025": [],
  10204. "0,460000,469026": [],
  10205. "0,460000,469027": [],
  10206. "0,460000,469028": [],
  10207. "0,460000,469030": [],
  10208. "0,460000,469031": [],
  10209. "0,460000,469033": [],
  10210. "0,460000,469034": [],
  10211. "0,460000,469035": [],
  10212. "0,460000,469036": [],
  10213. "0,460000,469037": [],
  10214. "0,460000,469038": [],
  10215. "0,460000,469039": [],
  10216. "0,500000": {
  10217. "500100": "重庆市" },
  10218. "0,500000,500100": {
  10219. "500101": "万州区",
  10220. "500102": "涪陵区",
  10221. "500103": "渝中区",
  10222. "500104": "大渡口区",
  10223. "500105": "江北区",
  10224. "500106": "沙坪坝区",
  10225. "500107": "九龙坡区",
  10226. "500108": "南岸区",
  10227. "500109": "北碚区",
  10228. "500110": "万盛区",
  10229. "500111": "双桥区",
  10230. "500112": "渝北区",
  10231. "500113": "巴南区",
  10232. "500114": "黔江区",
  10233. "500115": "长寿区",
  10234. "500222": "綦江县",
  10235. "500223": "潼南县",
  10236. "500224": "铜梁县",
  10237. "500225": "大足县",
  10238. "500226": "荣昌县",
  10239. "500227": "璧山县",
  10240. "500228": "梁平县",
  10241. "500229": "城口县",
  10242. "500230": "丰都县",
  10243. "500231": "垫江县",
  10244. "500232": "武隆县",
  10245. "500233": "忠县",
  10246. "500234": "开县",
  10247. "500235": "云阳县",
  10248. "500236": "奉节县",
  10249. "500237": "巫山县",
  10250. "500238": "巫溪县",
  10251. "500240": "石柱土家族自治县",
  10252. "500241": "秀山土家族苗族自治县",
  10253. "500242": "酉阳土家族苗族自治县",
  10254. "500243": "彭水苗族土家族自治县",
  10255. "500381": "江津区",
  10256. "500382": "合川区",
  10257. "500383": "永川区",
  10258. "500384": "南川区",
  10259. "500385": "其它区" },
  10260. "0,510000": {
  10261. "510100": "成都市",
  10262. "510300": "自贡市",
  10263. "510400": "攀枝花市",
  10264. "510500": "泸州市",
  10265. "510600": "德阳市",
  10266. "510700": "绵阳市",
  10267. "510800": "广元市",
  10268. "510900": "遂宁市",
  10269. "511000": "内江市",
  10270. "511100": "乐山市",
  10271. "511300": "南充市",
  10272. "511400": "眉山市",
  10273. "511500": "宜宾市",
  10274. "511600": "广安市",
  10275. "511700": "达州市",
  10276. "511800": "雅安市",
  10277. "511900": "巴中市",
  10278. "512000": "资阳市",
  10279. "513200": "阿坝藏族羌族自治州",
  10280. "513300": "甘孜藏族自治州",
  10281. "513400": "凉山彝族自治州" },
  10282. "0,510000,510100": {
  10283. "510104": "锦江区",
  10284. "510105": "青羊区",
  10285. "510106": "金牛区",
  10286. "510107": "武侯区",
  10287. "510108": "成华区",
  10288. "510112": "龙泉驿区",
  10289. "510113": "青白江区",
  10290. "510114": "新都区",
  10291. "510115": "温江区",
  10292. "510121": "金堂县",
  10293. "510122": "双流县",
  10294. "510124": "郫县",
  10295. "510129": "大邑县",
  10296. "510131": "蒲江县",
  10297. "510132": "新津县",
  10298. "510181": "都江堰市",
  10299. "510182": "彭州市",
  10300. "510183": "邛崃市",
  10301. "510184": "崇州市",
  10302. "510185": "其它区" },
  10303. "0,510000,510300": {
  10304. "510302": "自流井区",
  10305. "510303": "贡井区",
  10306. "510304": "大安区",
  10307. "510311": "沿滩区",
  10308. "510321": "荣县",
  10309. "510322": "富顺县",
  10310. "510323": "其它区" },
  10311. "0,510000,510400": {
  10312. "510402": "东区",
  10313. "510403": "西区",
  10314. "510411": "仁和区",
  10315. "510421": "米易县",
  10316. "510422": "盐边县",
  10317. "510423": "其它区" },
  10318. "0,510000,510500": {
  10319. "510502": "江阳区",
  10320. "510503": "纳溪区",
  10321. "510504": "龙马潭区",
  10322. "510521": "泸县",
  10323. "510522": "合江县",
  10324. "510524": "叙永县",
  10325. "510525": "古蔺县",
  10326. "510526": "其它区" },
  10327. "0,510000,510600": {
  10328. "510603": "旌阳区",
  10329. "510623": "中江县",
  10330. "510626": "罗江县",
  10331. "510681": "广汉市",
  10332. "510682": "什邡市",
  10333. "510683": "绵竹市",
  10334. "510684": "其它区" },
  10335. "0,510000,510700": {
  10336. "510703": "涪城区",
  10337. "510704": "游仙区",
  10338. "510722": "三台县",
  10339. "510723": "盐亭县",
  10340. "510724": "安县",
  10341. "510725": "梓潼县",
  10342. "510726": "北川羌族自治县",
  10343. "510727": "平武县",
  10344. "510751": "高新区",
  10345. "510781": "江油市",
  10346. "510782": "其它区" },
  10347. "0,510000,510800": {
  10348. "510802": "利州区",
  10349. "510811": "元坝区",
  10350. "510812": "朝天区",
  10351. "510821": "旺苍县",
  10352. "510822": "青川县",
  10353. "510823": "剑阁县",
  10354. "510824": "苍溪县",
  10355. "510825": "其它区" },
  10356. "0,510000,510900": {
  10357. "510903": "船山区",
  10358. "510904": "安居区",
  10359. "510921": "蓬溪县",
  10360. "510922": "射洪县",
  10361. "510923": "大英县",
  10362. "510924": "其它区" },
  10363. "0,510000,511000": {
  10364. "511002": "市中区",
  10365. "511011": "东兴区",
  10366. "511024": "威远县",
  10367. "511025": "资中县",
  10368. "511028": "隆昌县",
  10369. "511029": "其它区" },
  10370. "0,510000,511100": {
  10371. "511102": "市中区",
  10372. "511111": "沙湾区",
  10373. "511112": "五通桥区",
  10374. "511113": "金口河区",
  10375. "511123": "犍为县",
  10376. "511124": "井研县",
  10377. "511126": "夹江县",
  10378. "511129": "沐川县",
  10379. "511132": "峨边彝族自治县",
  10380. "511133": "马边彝族自治县",
  10381. "511181": "峨眉山市",
  10382. "511182": "其它区" },
  10383. "0,510000,511300": {
  10384. "511302": "顺庆区",
  10385. "511303": "高坪区",
  10386. "511304": "嘉陵区",
  10387. "511321": "南部县",
  10388. "511322": "营山县",
  10389. "511323": "蓬安县",
  10390. "511324": "仪陇县",
  10391. "511325": "西充县",
  10392. "511381": "阆中市",
  10393. "511382": "其它区" },
  10394. "0,510000,511400": {
  10395. "511402": "东坡区",
  10396. "511421": "仁寿县",
  10397. "511422": "彭山县",
  10398. "511423": "洪雅县",
  10399. "511424": "丹棱县",
  10400. "511425": "青神县",
  10401. "511426": "其它区" },
  10402. "0,510000,511500": {
  10403. "511502": "翠屏区",
  10404. "511521": "宜宾县",
  10405. "511522": "南溪县",
  10406. "511523": "江安县",
  10407. "511524": "长宁县",
  10408. "511525": "高县",
  10409. "511526": "珙县",
  10410. "511527": "筠连县",
  10411. "511528": "兴文县",
  10412. "511529": "屏山县",
  10413. "511530": "其它区" },
  10414. "0,510000,511600": {
  10415. "511602": "广安区",
  10416. "511621": "岳池县",
  10417. "511622": "武胜县",
  10418. "511623": "邻水县",
  10419. "511681": "华蓥市",
  10420. "511682": "市辖区",
  10421. "511683": "其它区" },
  10422. "0,510000,511700": {
  10423. "511702": "通川区",
  10424. "511721": "达县",
  10425. "511722": "宣汉县",
  10426. "511723": "开江县",
  10427. "511724": "大竹县",
  10428. "511725": "渠县",
  10429. "511781": "万源市",
  10430. "511782": "其它区" },
  10431. "0,510000,511800": {
  10432. "511802": "雨城区",
  10433. "511821": "名山县",
  10434. "511822": "荥经县",
  10435. "511823": "汉源县",
  10436. "511824": "石棉县",
  10437. "511825": "天全县",
  10438. "511826": "芦山县",
  10439. "511827": "宝兴县",
  10440. "511828": "其它区" },
  10441. "0,510000,511900": {
  10442. "511902": "巴州区",
  10443. "511921": "通江县",
  10444. "511922": "南江县",
  10445. "511923": "平昌县",
  10446. "511924": "其它区" },
  10447. "0,510000,512000": {
  10448. "512002": "雁江区",
  10449. "512021": "安岳县",
  10450. "512022": "乐至县",
  10451. "512081": "简阳市",
  10452. "512082": "其它区" },
  10453. "0,510000,513200": {
  10454. "513221": "汶川县",
  10455. "513222": "理县",
  10456. "513223": "茂县",
  10457. "513224": "松潘县",
  10458. "513225": "九寨沟县",
  10459. "513226": "金川县",
  10460. "513227": "小金县",
  10461. "513228": "黑水县",
  10462. "513229": "马尔康县",
  10463. "513230": "壤塘县",
  10464. "513231": "阿坝县",
  10465. "513232": "若尔盖县",
  10466. "513233": "红原县",
  10467. "513234": "其它区" },
  10468. "0,510000,513300": {
  10469. "513321": "康定县",
  10470. "513322": "泸定县",
  10471. "513323": "丹巴县",
  10472. "513324": "九龙县",
  10473. "513325": "雅江县",
  10474. "513326": "道孚县",
  10475. "513327": "炉霍县",
  10476. "513328": "甘孜县",
  10477. "513329": "新龙县",
  10478. "513330": "德格县",
  10479. "513331": "白玉县",
  10480. "513332": "石渠县",
  10481. "513333": "色达县",
  10482. "513334": "理塘县",
  10483. "513335": "巴塘县",
  10484. "513336": "乡城县",
  10485. "513337": "稻城县",
  10486. "513338": "得荣县",
  10487. "513339": "其它区" },
  10488. "0,510000,513400": {
  10489. "513401": "西昌市",
  10490. "513422": "木里藏族自治县",
  10491. "513423": "盐源县",
  10492. "513424": "德昌县",
  10493. "513425": "会理县",
  10494. "513426": "会东县",
  10495. "513427": "宁南县",
  10496. "513428": "普格县",
  10497. "513429": "布拖县",
  10498. "513430": "金阳县",
  10499. "513431": "昭觉县",
  10500. "513432": "喜德县",
  10501. "513433": "冕宁县",
  10502. "513434": "越西县",
  10503. "513435": "甘洛县",
  10504. "513436": "美姑县",
  10505. "513437": "雷波县",
  10506. "513438": "其它区" },
  10507. "0,520000": {
  10508. "520100": "贵阳市",
  10509. "520200": "六盘水市",
  10510. "520300": "遵义市",
  10511. "520400": "安顺市",
  10512. "522200": "铜仁地区",
  10513. "522300": "黔西南布依族苗族自治州",
  10514. "522400": "毕节地区",
  10515. "522600": "黔东南苗族侗族自治州",
  10516. "522700": "黔南布依族苗族自治州" },
  10517. "0,520000,520100": {
  10518. "520102": "南明区",
  10519. "520103": "云岩区",
  10520. "520111": "花溪区",
  10521. "520112": "乌当区",
  10522. "520113": "白云区",
  10523. "520114": "小河区",
  10524. "520121": "开阳县",
  10525. "520122": "息烽县",
  10526. "520123": "修文县",
  10527. "520151": "金阳开发区",
  10528. "520181": "清镇市",
  10529. "520182": "其它区" },
  10530. "0,520000,520200": {
  10531. "520201": "钟山区",
  10532. "520203": "六枝特区",
  10533. "520221": "水城县",
  10534. "520222": "盘县",
  10535. "520223": "其它区" },
  10536. "0,520000,520300": {
  10537. "520302": "红花岗区",
  10538. "520303": "汇川区",
  10539. "520321": "遵义县",
  10540. "520322": "桐梓县",
  10541. "520323": "绥阳县",
  10542. "520324": "正安县",
  10543. "520325": "道真仡佬族苗族自治县",
  10544. "520326": "务川仡佬族苗族自治县",
  10545. "520327": "凤冈县",
  10546. "520328": "湄潭县",
  10547. "520329": "余庆县",
  10548. "520330": "习水县",
  10549. "520381": "赤水市",
  10550. "520382": "仁怀市",
  10551. "520383": "其它区" },
  10552. "0,520000,520400": {
  10553. "520402": "西秀区",
  10554. "520421": "平坝县",
  10555. "520422": "普定县",
  10556. "520423": "镇宁布依族苗族自治县",
  10557. "520424": "关岭布依族苗族自治县",
  10558. "520425": "紫云苗族布依族自治县",
  10559. "520426": "其它区" },
  10560. "0,520000,522200": {
  10561. "522201": "铜仁市",
  10562. "522222": "江口县",
  10563. "522223": "玉屏侗族自治县",
  10564. "522224": "石阡县",
  10565. "522225": "思南县",
  10566. "522226": "印江土家族苗族自治县",
  10567. "522227": "德江县",
  10568. "522228": "沿河土家族自治县",
  10569. "522229": "松桃苗族自治县",
  10570. "522230": "万山特区",
  10571. "522231": "其它区" },
  10572. "0,520000,522300": {
  10573. "522301": "兴义市",
  10574. "522322": "兴仁县",
  10575. "522323": "普安县",
  10576. "522324": "晴隆县",
  10577. "522325": "贞丰县",
  10578. "522326": "望谟县",
  10579. "522327": "册亨县",
  10580. "522328": "安龙县",
  10581. "522329": "其它区" },
  10582. "0,520000,522400": {
  10583. "522401": "毕节市",
  10584. "522422": "大方县",
  10585. "522423": "黔西县",
  10586. "522424": "金沙县",
  10587. "522425": "织金县",
  10588. "522426": "纳雍县",
  10589. "522427": "威宁彝族回族苗族自治县",
  10590. "522428": "赫章县",
  10591. "522429": "其它区" },
  10592. "0,520000,522600": {
  10593. "522601": "凯里市",
  10594. "522622": "黄平县",
  10595. "522623": "施秉县",
  10596. "522624": "三穗县",
  10597. "522625": "镇远县",
  10598. "522626": "岑巩县",
  10599. "522627": "天柱县",
  10600. "522628": "锦屏县",
  10601. "522629": "剑河县",
  10602. "522630": "台江县",
  10603. "522631": "黎平县",
  10604. "522632": "榕江县",
  10605. "522633": "从江县",
  10606. "522634": "雷山县",
  10607. "522635": "麻江县",
  10608. "522636": "丹寨县",
  10609. "522637": "其它区" },
  10610. "0,520000,522700": {
  10611. "522701": "都匀市",
  10612. "522702": "福泉市",
  10613. "522722": "荔波县",
  10614. "522723": "贵定县",
  10615. "522725": "瓮安县",
  10616. "522726": "独山县",
  10617. "522727": "平塘县",
  10618. "522728": "罗甸县",
  10619. "522729": "长顺县",
  10620. "522730": "龙里县",
  10621. "522731": "惠水县",
  10622. "522732": "三都水族自治县",
  10623. "522733": "其它区" },
  10624. "0,530000": {
  10625. "530100": "昆明市",
  10626. "530300": "曲靖市",
  10627. "530400": "玉溪市",
  10628. "530500": "保山市",
  10629. "530600": "昭通市",
  10630. "530700": "丽江市",
  10631. "530800": "普洱市",
  10632. "530900": "临沧市",
  10633. "532300": "楚雄彝族自治州",
  10634. "532500": "红河哈尼族彝族自治州",
  10635. "532600": "文山壮族苗族自治州",
  10636. "532800": "西双版纳傣族自治州",
  10637. "532900": "大理白族自治州",
  10638. "533100": "德宏傣族景颇族自治州",
  10639. "533300": "怒江傈僳族自治州",
  10640. "533400": "迪庆藏族自治州" },
  10641. "0,530000,530100": {
  10642. "530102": "五华区",
  10643. "530103": "盘龙区",
  10644. "530111": "官渡区",
  10645. "530112": "西山区",
  10646. "530113": "东川区",
  10647. "530121": "呈贡县",
  10648. "530122": "晋宁县",
  10649. "530124": "富民县",
  10650. "530125": "宜良县",
  10651. "530126": "石林彝族自治县",
  10652. "530127": "嵩明县",
  10653. "530128": "禄劝彝族苗族自治县",
  10654. "530129": "寻甸回族彝族自治县",
  10655. "530181": "安宁市",
  10656. "530182": "其它区" },
  10657. "0,530000,530300": {
  10658. "530302": "麒麟区",
  10659. "530321": "马龙县",
  10660. "530322": "陆良县",
  10661. "530323": "师宗县",
  10662. "530324": "罗平县",
  10663. "530325": "富源县",
  10664. "530326": "会泽县",
  10665. "530328": "沾益县",
  10666. "530381": "宣威市",
  10667. "530382": "其它区" },
  10668. "0,530000,530400": {
  10669. "530402": "红塔区",
  10670. "530421": "江川县",
  10671. "530422": "澄江县",
  10672. "530423": "通海县",
  10673. "530424": "华宁县",
  10674. "530425": "易门县",
  10675. "530426": "峨山彝族自治县",
  10676. "530427": "新平彝族傣族自治县",
  10677. "530428": "元江哈尼族彝族傣族自治县",
  10678. "530429": "其它区" },
  10679. "0,530000,530500": {
  10680. "530502": "隆阳区",
  10681. "530521": "施甸县",
  10682. "530522": "腾冲县",
  10683. "530523": "龙陵县",
  10684. "530524": "昌宁县",
  10685. "530525": "其它区" },
  10686. "0,530000,530600": {
  10687. "530602": "昭阳区",
  10688. "530621": "鲁甸县",
  10689. "530622": "巧家县",
  10690. "530623": "盐津县",
  10691. "530624": "大关县",
  10692. "530625": "永善县",
  10693. "530626": "绥江县",
  10694. "530627": "镇雄县",
  10695. "530628": "彝良县",
  10696. "530629": "威信县",
  10697. "530630": "水富县",
  10698. "530631": "其它区" },
  10699. "0,530000,530700": {
  10700. "530702": "古城区",
  10701. "530721": "玉龙纳西族自治县",
  10702. "530722": "永胜县",
  10703. "530723": "华坪县",
  10704. "530724": "宁蒗彝族自治县",
  10705. "530725": "其它区" },
  10706. "0,530000,530800": {
  10707. "530802": "思茅区",
  10708. "530821": "宁洱哈尼族彝族自治县",
  10709. "530822": "墨江哈尼族自治县",
  10710. "530823": "景东彝族自治县",
  10711. "530824": "景谷傣族彝族自治县",
  10712. "530825": "镇沅彝族哈尼族拉祜族自治县",
  10713. "530826": "江城哈尼族彝族自治县",
  10714. "530827": "孟连傣族拉祜族佤族自治县",
  10715. "530828": "澜沧拉祜族自治县",
  10716. "530829": "西盟佤族自治县",
  10717. "530830": "其它区" },
  10718. "0,530000,530900": {
  10719. "530902": "临翔区",
  10720. "530921": "凤庆县",
  10721. "530922": "云县",
  10722. "530923": "永德县",
  10723. "530924": "镇康县",
  10724. "530925": "双江拉祜族佤族布朗族傣族自治县",
  10725. "530926": "耿马傣族佤族自治县",
  10726. "530927": "沧源佤族自治县",
  10727. "530928": "其它区" },
  10728. "0,530000,532300": {
  10729. "532301": "楚雄市",
  10730. "532322": "双柏县",
  10731. "532323": "牟定县",
  10732. "532324": "南华县",
  10733. "532325": "姚安县",
  10734. "532326": "大姚县",
  10735. "532327": "永仁县",
  10736. "532328": "元谋县",
  10737. "532329": "武定县",
  10738. "532331": "禄丰县",
  10739. "532332": "其它区" },
  10740. "0,530000,532500": {
  10741. "532501": "个旧市",
  10742. "532502": "开远市",
  10743. "532522": "蒙自县",
  10744. "532523": "屏边苗族自治县",
  10745. "532524": "建水县",
  10746. "532525": "石屏县",
  10747. "532526": "弥勒县",
  10748. "532527": "泸西县",
  10749. "532528": "元阳县",
  10750. "532529": "红河县",
  10751. "532530": "金平苗族瑶族傣族自治县",
  10752. "532531": "绿春县",
  10753. "532532": "河口瑶族自治县",
  10754. "532533": "其它区" },
  10755. "0,530000,532600": {
  10756. "532621": "文山县",
  10757. "532622": "砚山县",
  10758. "532623": "西畴县",
  10759. "532624": "麻栗坡县",
  10760. "532625": "马关县",
  10761. "532626": "丘北县",
  10762. "532627": "广南县",
  10763. "532628": "富宁县",
  10764. "532629": "其它区" },
  10765. "0,530000,532800": {
  10766. "532801": "景洪市",
  10767. "532822": "勐海县",
  10768. "532823": "勐腊县",
  10769. "532824": "其它区" },
  10770. "0,530000,532900": {
  10771. "532901": "大理市",
  10772. "532922": "漾濞彝族自治县",
  10773. "532923": "祥云县",
  10774. "532924": "宾川县",
  10775. "532925": "弥渡县",
  10776. "532926": "南涧彝族自治县",
  10777. "532927": "巍山彝族回族自治县",
  10778. "532928": "永平县",
  10779. "532929": "云龙县",
  10780. "532930": "洱源县",
  10781. "532931": "剑川县",
  10782. "532932": "鹤庆县",
  10783. "532933": "其它区" },
  10784. "0,530000,533100": {
  10785. "533102": "瑞丽市",
  10786. "533103": "潞西市",
  10787. "533122": "梁河县",
  10788. "533123": "盈江县",
  10789. "533124": "陇川县",
  10790. "533125": "其它区" },
  10791. "0,530000,533300": {
  10792. "533321": "泸水县",
  10793. "533323": "福贡县",
  10794. "533324": "贡山独龙族怒族自治县",
  10795. "533325": "兰坪白族普米族自治县",
  10796. "533326": "其它区" },
  10797. "0,530000,533400": {
  10798. "533421": "香格里拉县",
  10799. "533422": "德钦县",
  10800. "533423": "维西傈僳族自治县",
  10801. "533424": "其它区" },
  10802. "0,540000": {
  10803. "540100": "拉萨市",
  10804. "542100": "昌都地区",
  10805. "542200": "山南地区",
  10806. "542300": "日喀则地区",
  10807. "542400": "那曲地区",
  10808. "542500": "阿里地区",
  10809. "542600": "林芝地区" },
  10810. "0,540000,540100": {
  10811. "540102": "城关区",
  10812. "540121": "林周县",
  10813. "540122": "当雄县",
  10814. "540123": "尼木县",
  10815. "540124": "曲水县",
  10816. "540125": "堆龙德庆县",
  10817. "540126": "达孜县",
  10818. "540127": "墨竹工卡县",
  10819. "540128": "其它区" },
  10820. "0,540000,542100": {
  10821. "542121": "昌都县",
  10822. "542122": "江达县",
  10823. "542123": "贡觉县",
  10824. "542124": "类乌齐县",
  10825. "542125": "丁青县",
  10826. "542126": "察雅县",
  10827. "542127": "八宿县",
  10828. "542128": "左贡县",
  10829. "542129": "芒康县",
  10830. "542132": "洛隆县",
  10831. "542133": "边坝县",
  10832. "542134": "其它区" },
  10833. "0,540000,542200": {
  10834. "542221": "乃东县",
  10835. "542222": "扎囊县",
  10836. "542223": "贡嘎县",
  10837. "542224": "桑日县",
  10838. "542225": "琼结县",
  10839. "542226": "曲松县",
  10840. "542227": "措美县",
  10841. "542228": "洛扎县",
  10842. "542229": "加查县",
  10843. "542231": "隆子县",
  10844. "542232": "错那县",
  10845. "542233": "浪卡子县",
  10846. "542234": "其它区" },
  10847. "0,540000,542300": {
  10848. "542301": "日喀则市",
  10849. "542322": "南木林县",
  10850. "542323": "江孜县",
  10851. "542324": "定日县",
  10852. "542325": "萨迦县",
  10853. "542326": "拉孜县",
  10854. "542327": "昂仁县",
  10855. "542328": "谢通门县",
  10856. "542329": "白朗县",
  10857. "542330": "仁布县",
  10858. "542331": "康马县",
  10859. "542332": "定结县",
  10860. "542333": "仲巴县",
  10861. "542334": "亚东县",
  10862. "542335": "吉隆县",
  10863. "542336": "聂拉木县",
  10864. "542337": "萨嘎县",
  10865. "542338": "岗巴县",
  10866. "542339": "其它区" },
  10867. "0,540000,542400": {
  10868. "542421": "那曲县",
  10869. "542422": "嘉黎县",
  10870. "542423": "比如县",
  10871. "542424": "聂荣县",
  10872. "542425": "安多县",
  10873. "542426": "申扎县",
  10874. "542427": "索县",
  10875. "542428": "班戈县",
  10876. "542429": "巴青县",
  10877. "542430": "尼玛县",
  10878. "542431": "其它区" },
  10879. "0,540000,542500": {
  10880. "542521": "普兰县",
  10881. "542522": "札达县",
  10882. "542523": "噶尔县",
  10883. "542524": "日土县",
  10884. "542525": "革吉县",
  10885. "542526": "改则县",
  10886. "542527": "措勤县",
  10887. "542528": "其它区" },
  10888. "0,540000,542600": {
  10889. "542621": "林芝县",
  10890. "542622": "工布江达县",
  10891. "542623": "米林县",
  10892. "542624": "墨脱县",
  10893. "542625": "波密县",
  10894. "542626": "察隅县",
  10895. "542627": "朗县",
  10896. "542628": "其它区" },
  10897. "0,610000": {
  10898. "610100": "西安市",
  10899. "610200": "铜川市",
  10900. "610300": "宝鸡市",
  10901. "610400": "咸阳市",
  10902. "610500": "渭南市",
  10903. "610600": "延安市",
  10904. "610700": "汉中市",
  10905. "610800": "榆林市",
  10906. "610900": "安康市",
  10907. "611000": "商洛市" },
  10908. "0,610000,610100": {
  10909. "610102": "新城区",
  10910. "610103": "碑林区",
  10911. "610104": "莲湖区",
  10912. "610111": "灞桥区",
  10913. "610112": "未央区",
  10914. "610113": "雁塔区",
  10915. "610114": "阎良区",
  10916. "610115": "临潼区",
  10917. "610116": "长安区",
  10918. "610122": "蓝田县",
  10919. "610124": "周至县",
  10920. "610125": "户县",
  10921. "610126": "高陵县",
  10922. "610127": "其它区" },
  10923. "0,610000,610200": {
  10924. "610202": "王益区",
  10925. "610203": "印台区",
  10926. "610204": "耀州区",
  10927. "610222": "宜君县",
  10928. "610223": "其它区" },
  10929. "0,610000,610300": {
  10930. "610302": "渭滨区",
  10931. "610303": "金台区",
  10932. "610304": "陈仓区",
  10933. "610322": "凤翔县",
  10934. "610323": "岐山县",
  10935. "610324": "扶风县",
  10936. "610326": "眉县",
  10937. "610327": "陇县",
  10938. "610328": "千阳县",
  10939. "610329": "麟游县",
  10940. "610330": "凤县",
  10941. "610331": "太白县",
  10942. "610332": "其它区" },
  10943. "0,610000,610400": {
  10944. "610402": "秦都区",
  10945. "610403": "杨陵区",
  10946. "610404": "渭城区",
  10947. "610422": "三原县",
  10948. "610423": "泾阳县",
  10949. "610424": "乾县",
  10950. "610425": "礼泉县",
  10951. "610426": "永寿县",
  10952. "610427": "彬县",
  10953. "610428": "长武县",
  10954. "610429": "旬邑县",
  10955. "610430": "淳化县",
  10956. "610431": "武功县",
  10957. "610481": "兴平市",
  10958. "610482": "其它区" },
  10959. "0,610000,610500": {
  10960. "610502": "临渭区",
  10961. "610521": "华县",
  10962. "610522": "潼关县",
  10963. "610523": "大荔县",
  10964. "610524": "合阳县",
  10965. "610525": "澄城县",
  10966. "610526": "蒲城县",
  10967. "610527": "白水县",
  10968. "610528": "富平县",
  10969. "610581": "韩城市",
  10970. "610582": "华阴市",
  10971. "610583": "其它区" },
  10972. "0,610000,610600": {
  10973. "610602": "宝塔区",
  10974. "610621": "延长县",
  10975. "610622": "延川县",
  10976. "610623": "子长县",
  10977. "610624": "安塞县",
  10978. "610625": "志丹县",
  10979. "610626": "吴起县",
  10980. "610627": "甘泉县",
  10981. "610628": "富县",
  10982. "610629": "洛川县",
  10983. "610630": "宜川县",
  10984. "610631": "黄龙县",
  10985. "610632": "黄陵县",
  10986. "610633": "其它区" },
  10987. "0,610000,610700": {
  10988. "610702": "汉台区",
  10989. "610721": "南郑县",
  10990. "610722": "城固县",
  10991. "610723": "洋县",
  10992. "610724": "西乡县",
  10993. "610725": "勉县",
  10994. "610726": "宁强县",
  10995. "610727": "略阳县",
  10996. "610728": "镇巴县",
  10997. "610729": "留坝县",
  10998. "610730": "佛坪县",
  10999. "610731": "其它区" },
  11000. "0,610000,610800": {
  11001. "610802": "榆阳区",
  11002. "610821": "神木县",
  11003. "610822": "府谷县",
  11004. "610823": "横山县",
  11005. "610824": "靖边县",
  11006. "610825": "定边县",
  11007. "610826": "绥德县",
  11008. "610827": "米脂县",
  11009. "610828": "佳县",
  11010. "610829": "吴堡县",
  11011. "610830": "清涧县",
  11012. "610831": "子洲县",
  11013. "610832": "其它区" },
  11014. "0,610000,610900": {
  11015. "610902": "汉滨区",
  11016. "610921": "汉阴县",
  11017. "610922": "石泉县",
  11018. "610923": "宁陕县",
  11019. "610924": "紫阳县",
  11020. "610925": "岚皋县",
  11021. "610926": "平利县",
  11022. "610927": "镇坪县",
  11023. "610928": "旬阳县",
  11024. "610929": "白河县",
  11025. "610930": "其它区" },
  11026. "0,610000,611000": {
  11027. "611002": "商州区",
  11028. "611021": "洛南县",
  11029. "611022": "丹凤县",
  11030. "611023": "商南县",
  11031. "611024": "山阳县",
  11032. "611025": "镇安县",
  11033. "611026": "柞水县",
  11034. "611027": "其它区" },
  11035. "0,620000": {
  11036. "620100": "兰州市",
  11037. "620200": "嘉峪关市",
  11038. "620300": "金昌市",
  11039. "620400": "白银市",
  11040. "620500": "天水市",
  11041. "620600": "武威市",
  11042. "620700": "张掖市",
  11043. "620800": "平凉市",
  11044. "620900": "酒泉市",
  11045. "621000": "庆阳市",
  11046. "621100": "定西市",
  11047. "621200": "陇南市",
  11048. "622900": "临夏回族自治州",
  11049. "623000": "甘南藏族自治州" },
  11050. "0,620000,620100": {
  11051. "620102": "城关区",
  11052. "620103": "七里河区",
  11053. "620104": "西固区",
  11054. "620105": "安宁区",
  11055. "620111": "红古区",
  11056. "620121": "永登县",
  11057. "620122": "皋兰县",
  11058. "620123": "榆中县",
  11059. "620124": "其它区" },
  11060. "0,620000,620200": [],
  11061. "0,620000,620300": {
  11062. "620302": "金川区",
  11063. "620321": "永昌县",
  11064. "620322": "其它区" },
  11065. "0,620000,620400": {
  11066. "620402": "白银区",
  11067. "620403": "平川区",
  11068. "620421": "靖远县",
  11069. "620422": "会宁县",
  11070. "620423": "景泰县",
  11071. "620424": "其它区" },
  11072. "0,620000,620500": {
  11073. "620502": "秦州区",
  11074. "620503": "麦积区",
  11075. "620521": "清水县",
  11076. "620522": "秦安县",
  11077. "620523": "甘谷县",
  11078. "620524": "武山县",
  11079. "620525": "张家川回族自治县",
  11080. "620526": "其它区" },
  11081. "0,620000,620600": {
  11082. "620602": "凉州区",
  11083. "620621": "民勤县",
  11084. "620622": "古浪县",
  11085. "620623": "天祝藏族自治县",
  11086. "620624": "其它区" },
  11087. "0,620000,620700": {
  11088. "620702": "甘州区",
  11089. "620721": "肃南裕固族自治县",
  11090. "620722": "民乐县",
  11091. "620723": "临泽县",
  11092. "620724": "高台县",
  11093. "620725": "山丹县",
  11094. "620726": "其它区" },
  11095. "0,620000,620800": {
  11096. "620802": "崆峒区",
  11097. "620821": "泾川县",
  11098. "620822": "灵台县",
  11099. "620823": "崇信县",
  11100. "620824": "华亭县",
  11101. "620825": "庄浪县",
  11102. "620826": "静宁县",
  11103. "620827": "其它区" },
  11104. "0,620000,620900": {
  11105. "620902": "肃州区",
  11106. "620921": "金塔县",
  11107. "620922": "安西县",
  11108. "620923": "肃北蒙古族自治县",
  11109. "620924": "阿克塞哈萨克族自治县",
  11110. "620981": "玉门市",
  11111. "620982": "敦煌市",
  11112. "620983": "其它区" },
  11113. "0,620000,621000": {
  11114. "621002": "西峰区",
  11115. "621021": "庆城县",
  11116. "621022": "环县",
  11117. "621023": "华池县",
  11118. "621024": "合水县",
  11119. "621025": "正宁县",
  11120. "621026": "宁县",
  11121. "621027": "镇原县",
  11122. "621028": "其它区" },
  11123. "0,620000,621100": {
  11124. "621102": "安定区",
  11125. "621121": "通渭县",
  11126. "621122": "陇西县",
  11127. "621123": "渭源县",
  11128. "621124": "临洮县",
  11129. "621125": "漳县",
  11130. "621126": "岷县",
  11131. "621127": "其它区" },
  11132. "0,620000,621200": {
  11133. "621202": "武都区",
  11134. "621221": "成县",
  11135. "621222": "文县",
  11136. "621223": "宕昌县",
  11137. "621224": "康县",
  11138. "621225": "西和县",
  11139. "621226": "礼县",
  11140. "621227": "徽县",
  11141. "621228": "两当县",
  11142. "621229": "其它区" },
  11143. "0,620000,622900": {
  11144. "622901": "临夏市",
  11145. "622921": "临夏县",
  11146. "622922": "康乐县",
  11147. "622923": "永靖县",
  11148. "622924": "广河县",
  11149. "622925": "和政县",
  11150. "622926": "东乡族自治县",
  11151. "622927": "积石山保安族东乡族撒拉族自治县",
  11152. "622928": "其它区" },
  11153. "0,620000,623000": {
  11154. "623001": "合作市",
  11155. "623021": "临潭县",
  11156. "623022": "卓尼县",
  11157. "623023": "舟曲县",
  11158. "623024": "迭部县",
  11159. "623025": "玛曲县",
  11160. "623026": "碌曲县",
  11161. "623027": "夏河县",
  11162. "623028": "其它区" },
  11163. "0,630000": {
  11164. "630100": "西宁市",
  11165. "632100": "海东地区",
  11166. "632200": "海北藏族自治州",
  11167. "632300": "黄南藏族自治州",
  11168. "632500": "海南藏族自治州",
  11169. "632600": "果洛藏族自治州",
  11170. "632700": "玉树藏族自治州",
  11171. "632800": "海西蒙古族藏族自治州" },
  11172. "0,630000,630100": {
  11173. "630102": "城东区",
  11174. "630103": "城中区",
  11175. "630104": "城西区",
  11176. "630105": "城北区",
  11177. "630121": "大通回族土族自治县",
  11178. "630122": "湟中县",
  11179. "630123": "湟源县",
  11180. "630124": "其它区" },
  11181. "0,630000,632100": {
  11182. "632121": "平安县",
  11183. "632122": "民和回族土族自治县",
  11184. "632123": "乐都县",
  11185. "632126": "互助土族自治县",
  11186. "632127": "化隆回族自治县",
  11187. "632128": "循化撒拉族自治县",
  11188. "632129": "其它区" },
  11189. "0,630000,632200": {
  11190. "632221": "门源回族自治县",
  11191. "632222": "祁连县",
  11192. "632223": "海晏县",
  11193. "632224": "刚察县",
  11194. "632225": "其它区" },
  11195. "0,630000,632300": {
  11196. "632321": "同仁县",
  11197. "632322": "尖扎县",
  11198. "632323": "泽库县",
  11199. "632324": "河南蒙古族自治县",
  11200. "632325": "其它区" },
  11201. "0,630000,632500": {
  11202. "632521": "共和县",
  11203. "632522": "同德县",
  11204. "632523": "贵德县",
  11205. "632524": "兴海县",
  11206. "632525": "贵南县",
  11207. "632526": "其它区" },
  11208. "0,630000,632600": {
  11209. "632621": "玛沁县",
  11210. "632622": "班玛县",
  11211. "632623": "甘德县",
  11212. "632624": "达日县",
  11213. "632625": "久治县",
  11214. "632626": "玛多县",
  11215. "632627": "其它区" },
  11216. "0,630000,632700": {
  11217. "632721": "玉树县",
  11218. "632722": "杂多县",
  11219. "632723": "称多县",
  11220. "632724": "治多县",
  11221. "632725": "囊谦县",
  11222. "632726": "曲麻莱县",
  11223. "632727": "其它区" },
  11224. "0,630000,632800": {
  11225. "632801": "格尔木市",
  11226. "632802": "德令哈市",
  11227. "632821": "乌兰县",
  11228. "632822": "都兰县",
  11229. "632823": "天峻县",
  11230. "632824": "其它区" },
  11231. "0,640000": {
  11232. "640100": "银川市",
  11233. "640200": "石嘴山市",
  11234. "640300": "吴忠市",
  11235. "640400": "固原市",
  11236. "640500": "中卫市" },
  11237. "0,640000,640100": {
  11238. "640104": "兴庆区",
  11239. "640105": "西夏区",
  11240. "640106": "金凤区",
  11241. "640121": "永宁县",
  11242. "640122": "贺兰县",
  11243. "640181": "灵武市",
  11244. "640182": "其它区" },
  11245. "0,640000,640200": {
  11246. "640202": "大武口区",
  11247. "640205": "惠农区",
  11248. "640221": "平罗县",
  11249. "640222": "其它区" },
  11250. "0,640000,640300": {
  11251. "640302": "利通区",
  11252. "640303": "红寺堡区",
  11253. "640323": "盐池县",
  11254. "640324": "同心县",
  11255. "640381": "青铜峡市",
  11256. "640382": "其它区" },
  11257. "0,640000,640400": {
  11258. "640402": "原州区",
  11259. "640422": "西吉县",
  11260. "640423": "隆德县",
  11261. "640424": "泾源县",
  11262. "640425": "彭阳县",
  11263. "640426": "其它区" },
  11264. "0,640000,640500": {
  11265. "640502": "沙坡头区",
  11266. "640521": "中宁县",
  11267. "640522": "海原县",
  11268. "640523": "其它区" },
  11269. "0,650000": {
  11270. "650100": "乌鲁木齐市",
  11271. "650200": "克拉玛依市",
  11272. "652100": "吐鲁番地区",
  11273. "652200": "哈密地区",
  11274. "652300": "昌吉回族自治州",
  11275. "652700": "博尔塔拉蒙古自治州",
  11276. "652800": "巴音郭楞蒙古自治州",
  11277. "652900": "阿克苏地区",
  11278. "653000": "克孜勒苏柯尔克孜自治州",
  11279. "653100": "喀什地区",
  11280. "653200": "和田地区",
  11281. "654000": "伊犁哈萨克自治州",
  11282. "654200": "塔城地区",
  11283. "654300": "阿勒泰地区",
  11284. "659001": "石河子市",
  11285. "659002": "阿拉尔市",
  11286. "659003": "图木舒克市",
  11287. "659004": "五家渠市" },
  11288. "0,650000,650100": {
  11289. "650102": "天山区",
  11290. "650103": "沙依巴克区",
  11291. "650104": "新市区",
  11292. "650105": "水磨沟区",
  11293. "650106": "头屯河区",
  11294. "650107": "达坂城区",
  11295. "650108": "东山区",
  11296. "650109": "米东区",
  11297. "650121": "乌鲁木齐县",
  11298. "650122": "其它区" },
  11299. "0,650000,650200": {
  11300. "650202": "独山子区",
  11301. "650203": "克拉玛依区",
  11302. "650204": "白碱滩区",
  11303. "650205": "乌尔禾区",
  11304. "650206": "其它区" },
  11305. "0,650000,652100": {
  11306. "652101": "吐鲁番市",
  11307. "652122": "鄯善县",
  11308. "652123": "托克逊县",
  11309. "652124": "其它区" },
  11310. "0,650000,652200": {
  11311. "652201": "哈密市",
  11312. "652222": "巴里坤哈萨克自治县",
  11313. "652223": "伊吾县",
  11314. "652224": "其它区" },
  11315. "0,650000,652300": {
  11316. "652301": "昌吉市",
  11317. "652302": "阜康市",
  11318. "652303": "米泉市",
  11319. "652323": "呼图壁县",
  11320. "652324": "玛纳斯县",
  11321. "652325": "奇台县",
  11322. "652327": "吉木萨尔县",
  11323. "652328": "木垒哈萨克自治县",
  11324. "652329": "其它区" },
  11325. "0,650000,652700": {
  11326. "652701": "博乐市",
  11327. "652722": "精河县",
  11328. "652723": "温泉县",
  11329. "652724": "其它区" },
  11330. "0,650000,652800": {
  11331. "652801": "库尔勒市",
  11332. "652822": "轮台县",
  11333. "652823": "尉犁县",
  11334. "652824": "若羌县",
  11335. "652825": "且末县",
  11336. "652826": "焉耆回族自治县",
  11337. "652827": "和静县",
  11338. "652828": "和硕县",
  11339. "652829": "博湖县",
  11340. "652830": "其它区" },
  11341. "0,650000,652900": {
  11342. "652901": "阿克苏市",
  11343. "652922": "温宿县",
  11344. "652923": "库车县",
  11345. "652924": "沙雅县",
  11346. "652925": "新和县",
  11347. "652926": "拜城县",
  11348. "652927": "乌什县",
  11349. "652928": "阿瓦提县",
  11350. "652929": "柯坪县",
  11351. "652930": "其它区" },
  11352. "0,650000,653000": {
  11353. "653001": "阿图什市",
  11354. "653022": "阿克陶县",
  11355. "653023": "阿合奇县",
  11356. "653024": "乌恰县",
  11357. "653025": "其它区" },
  11358. "0,650000,653100": {
  11359. "653101": "喀什市",
  11360. "653121": "疏附县",
  11361. "653122": "疏勒县",
  11362. "653123": "英吉沙县",
  11363. "653124": "泽普县",
  11364. "653125": "莎车县",
  11365. "653126": "叶城县",
  11366. "653127": "麦盖提县",
  11367. "653128": "岳普湖县",
  11368. "653129": "伽师县",
  11369. "653130": "巴楚县",
  11370. "653131": "塔什库尔干塔吉克自治县",
  11371. "653132": "其它区" },
  11372. "0,650000,653200": {
  11373. "653201": "和田市",
  11374. "653221": "和田县",
  11375. "653222": "墨玉县",
  11376. "653223": "皮山县",
  11377. "653224": "洛浦县",
  11378. "653225": "策勒县",
  11379. "653226": "于田县",
  11380. "653227": "民丰县",
  11381. "653228": "其它区" },
  11382. "0,650000,654000": {
  11383. "654002": "伊宁市",
  11384. "654003": "奎屯市",
  11385. "654021": "伊宁县",
  11386. "654022": "察布查尔锡伯自治县",
  11387. "654023": "霍城县",
  11388. "654024": "巩留县",
  11389. "654025": "新源县",
  11390. "654026": "昭苏县",
  11391. "654027": "特克斯县",
  11392. "654028": "尼勒克县",
  11393. "654029": "其它区" },
  11394. "0,650000,654200": {
  11395. "654201": "塔城市",
  11396. "654202": "乌苏市",
  11397. "654221": "额敏县",
  11398. "654223": "沙湾县",
  11399. "654224": "托里县",
  11400. "654225": "裕民县",
  11401. "654226": "和布克赛尔蒙古自治县",
  11402. "654227": "其它区" },
  11403. "0,650000,654300": {
  11404. "654301": "阿勒泰市",
  11405. "654321": "布尔津县",
  11406. "654322": "富蕴县",
  11407. "654323": "福海县",
  11408. "654324": "哈巴河县",
  11409. "654325": "青河县",
  11410. "654326": "吉木乃县",
  11411. "654327": "其它区" },
  11412. "0,650000,659001": [],
  11413. "0,650000,659002": [],
  11414. "0,650000,659003": [],
  11415. "0,650000,659004": [],
  11416. "0,710000": {
  11417. "710100": "台北市",
  11418. "710200": "高雄市",
  11419. "710300": "台南市",
  11420. "710400": "台中市",
  11421. "710500": "金门县",
  11422. "710600": "南投县",
  11423. "710700": "基隆市",
  11424. "710800": "新竹市",
  11425. "710900": "嘉义市",
  11426. "711100": "新北市",
  11427. "711200": "宜兰县",
  11428. "711300": "新竹县",
  11429. "711400": "桃园县",
  11430. "711500": "苗栗县",
  11431. "711700": "彰化县",
  11432. "711900": "嘉义县",
  11433. "712100": "云林县",
  11434. "712400": "屏东县",
  11435. "712500": "台东县",
  11436. "712600": "花莲县",
  11437. "712700": "澎湖县" },
  11438. "0,710000,710100": {
  11439. "710101": "中正区",
  11440. "710102": "大同区",
  11441. "710103": "中山区",
  11442. "710104": "松山区",
  11443. "710105": "大安区",
  11444. "710106": "万华区",
  11445. "710107": "信义区",
  11446. "710108": "士林区",
  11447. "710109": "北投区",
  11448. "710110": "内湖区",
  11449. "710111": "南港区",
  11450. "710112": "文山区",
  11451. "710113": "其它区" },
  11452. "0,710000,710200": {
  11453. "710201": "新兴区",
  11454. "710202": "前金区",
  11455. "710203": "芩雅区",
  11456. "710204": "盐埕区",
  11457. "710205": "鼓山区",
  11458. "710206": "旗津区",
  11459. "710207": "前镇区",
  11460. "710208": "三民区",
  11461. "710209": "左营区",
  11462. "710210": "楠梓区",
  11463. "710211": "小港区",
  11464. "710212": "其它区" },
  11465. "0,710000,710300": {
  11466. "710301": "中西区",
  11467. "710302": "东区",
  11468. "710303": "南区",
  11469. "710304": "北区",
  11470. "710305": "安平区",
  11471. "710306": "安南区",
  11472. "710307": "其它区" },
  11473. "0,710000,710400": {
  11474. "710401": "中区",
  11475. "710402": "东区",
  11476. "710403": "南区",
  11477. "710404": "西区",
  11478. "710405": "北区",
  11479. "710406": "北屯区",
  11480. "710407": "西屯区",
  11481. "710408": "南屯区",
  11482. "710409": "其它区" },
  11483. "0,710000,710500": [],
  11484. "0,710000,710600": [],
  11485. "0,710000,710700": {
  11486. "710701": "仁爱区",
  11487. "710702": "信义区",
  11488. "710703": "中正区",
  11489. "710704": "中山区",
  11490. "710705": "安乐区",
  11491. "710706": "暖暖区",
  11492. "710707": "七堵区",
  11493. "710708": "其它区" },
  11494. "0,710000,710800": {
  11495. "710801": "东区",
  11496. "710802": "北区",
  11497. "710803": "香山区",
  11498. "710804": "其它区" },
  11499. "0,710000,710900": {
  11500. "710901": "东区",
  11501. "710902": "西区",
  11502. "710903": "其它区" },
  11503. "0,710000,711100": [],
  11504. "0,710000,711200": [],
  11505. "0,710000,711300": [],
  11506. "0,710000,711400": [],
  11507. "0,710000,711500": [],
  11508. "0,710000,711700": [],
  11509. "0,710000,711900": [],
  11510. "0,710000,712100": [],
  11511. "0,710000,712400": [],
  11512. "0,710000,712500": [],
  11513. "0,710000,712600": [],
  11514. "0,710000,712700": [],
  11515. "0,810000": {
  11516. "810100": "香港岛",
  11517. "810200": "九龙",
  11518. "810300": "新界" },
  11519. "0,810000,810100": {
  11520. "810101": "中西区",
  11521. "810102": "湾仔",
  11522. "810103": "东区",
  11523. "810104": "南区" },
  11524. "0,810000,810200": {
  11525. "810201": "九龙城区",
  11526. "810202": "油尖旺区",
  11527. "810203": "深水埗区",
  11528. "810204": "黄大仙区",
  11529. "810205": "观塘区" },
  11530. "0,810000,810300": {
  11531. "810301": "北区",
  11532. "810302": "大埔区",
  11533. "810303": "沙田区",
  11534. "810304": "西贡区",
  11535. "810305": "元朗区",
  11536. "810306": "屯门区",
  11537. "810307": "荃湾区",
  11538. "810308": "葵青区",
  11539. "810309": "离岛区" },
  11540. "0,820000": {
  11541. "820100": "澳门半岛",
  11542. "820200": "离岛" },
  11543. "0,820000,820100": [],
  11544. "0,820000,820200": [],
  11545. "0,990000": {
  11546. "990100": "海外" },
  11547. "0,990000,990100": [] };exports.default = _default;
  11548. /***/ }),
  11549. /***/ 3:
  11550. /*!*************************************************************!*\
  11551. !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***!
  11552. \*************************************************************/
  11553. /*! no static exports found */
  11554. /***/ (function(module, exports, __webpack_require__) {
  11555. "use strict";
  11556. /* WEBPACK VAR INJECTION */(function(uni, global) {Object.defineProperty(exports, "__esModule", { value: true });exports.compileI18nJsonStr = compileI18nJsonStr;exports.hasI18nJson = hasI18nJson;exports.initVueI18n = initVueI18n;exports.isI18nStr = isI18nStr;exports.normalizeLocale = normalizeLocale;exports.parseI18nJson = parseI18nJson;exports.resolveLocale = resolveLocale;exports.isString = exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var isArray = Array.isArray;
  11557. var isObject = function isObject(val) {return val !== null && typeof val === 'object';};
  11558. var defaultDelimiters = ['{', '}'];var
  11559. BaseFormatter = /*#__PURE__*/function () {
  11560. function BaseFormatter() {_classCallCheck(this, BaseFormatter);
  11561. this._caches = Object.create(null);
  11562. }_createClass(BaseFormatter, [{ key: "interpolate", value: function interpolate(
  11563. message, values) {var delimiters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDelimiters;
  11564. if (!values) {
  11565. return [message];
  11566. }
  11567. var tokens = this._caches[message];
  11568. if (!tokens) {
  11569. tokens = parse(message, delimiters);
  11570. this._caches[message] = tokens;
  11571. }
  11572. return compile(tokens, values);
  11573. } }]);return BaseFormatter;}();exports.Formatter = BaseFormatter;
  11574. var RE_TOKEN_LIST_VALUE = /^(?:\d)+/;
  11575. var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/;
  11576. function parse(format, _ref) {var _ref2 = _slicedToArray(_ref, 2),startDelimiter = _ref2[0],endDelimiter = _ref2[1];
  11577. var tokens = [];
  11578. var position = 0;
  11579. var text = '';
  11580. while (position < format.length) {
  11581. var char = format[position++];
  11582. if (char === startDelimiter) {
  11583. if (text) {
  11584. tokens.push({ type: 'text', value: text });
  11585. }
  11586. text = '';
  11587. var sub = '';
  11588. char = format[position++];
  11589. while (char !== undefined && char !== endDelimiter) {
  11590. sub += char;
  11591. char = format[position++];
  11592. }
  11593. var isClosed = char === endDelimiter;
  11594. var type = RE_TOKEN_LIST_VALUE.test(sub) ?
  11595. 'list' :
  11596. isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ?
  11597. 'named' :
  11598. 'unknown';
  11599. tokens.push({ value: sub, type: type });
  11600. }
  11601. // else if (char === '%') {
  11602. // // when found rails i18n syntax, skip text capture
  11603. // if (format[position] !== '{') {
  11604. // text += char
  11605. // }
  11606. // }
  11607. else {
  11608. text += char;
  11609. }
  11610. }
  11611. text && tokens.push({ type: 'text', value: text });
  11612. return tokens;
  11613. }
  11614. function compile(tokens, values) {
  11615. var compiled = [];
  11616. var index = 0;
  11617. var mode = isArray(values) ?
  11618. 'list' :
  11619. isObject(values) ?
  11620. 'named' :
  11621. 'unknown';
  11622. if (mode === 'unknown') {
  11623. return compiled;
  11624. }
  11625. while (index < tokens.length) {
  11626. var token = tokens[index];
  11627. switch (token.type) {
  11628. case 'text':
  11629. compiled.push(token.value);
  11630. break;
  11631. case 'list':
  11632. compiled.push(values[parseInt(token.value, 10)]);
  11633. break;
  11634. case 'named':
  11635. if (mode === 'named') {
  11636. compiled.push(values[token.value]);
  11637. } else
  11638. {
  11639. if (true) {
  11640. console.warn("Type of token '".concat(token.type, "' and format of value '").concat(mode, "' don't match!"));
  11641. }
  11642. }
  11643. break;
  11644. case 'unknown':
  11645. if (true) {
  11646. console.warn("Detect 'unknown' type of token!");
  11647. }
  11648. break;}
  11649. index++;
  11650. }
  11651. return compiled;
  11652. }
  11653. var LOCALE_ZH_HANS = 'zh-Hans';exports.LOCALE_ZH_HANS = LOCALE_ZH_HANS;
  11654. var LOCALE_ZH_HANT = 'zh-Hant';exports.LOCALE_ZH_HANT = LOCALE_ZH_HANT;
  11655. var LOCALE_EN = 'en';exports.LOCALE_EN = LOCALE_EN;
  11656. var LOCALE_FR = 'fr';exports.LOCALE_FR = LOCALE_FR;
  11657. var LOCALE_ES = 'es';exports.LOCALE_ES = LOCALE_ES;
  11658. var hasOwnProperty = Object.prototype.hasOwnProperty;
  11659. var hasOwn = function hasOwn(val, key) {return hasOwnProperty.call(val, key);};
  11660. var defaultFormatter = new BaseFormatter();
  11661. function include(str, parts) {
  11662. return !!parts.find(function (part) {return str.indexOf(part) !== -1;});
  11663. }
  11664. function startsWith(str, parts) {
  11665. return parts.find(function (part) {return str.indexOf(part) === 0;});
  11666. }
  11667. function normalizeLocale(locale, messages) {
  11668. if (!locale) {
  11669. return;
  11670. }
  11671. locale = locale.trim().replace(/_/g, '-');
  11672. if (messages && messages[locale]) {
  11673. return locale;
  11674. }
  11675. locale = locale.toLowerCase();
  11676. if (locale.indexOf('zh') === 0) {
  11677. if (locale.indexOf('-hans') > -1) {
  11678. return LOCALE_ZH_HANS;
  11679. }
  11680. if (locale.indexOf('-hant') > -1) {
  11681. return LOCALE_ZH_HANT;
  11682. }
  11683. if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {
  11684. return LOCALE_ZH_HANT;
  11685. }
  11686. return LOCALE_ZH_HANS;
  11687. }
  11688. var lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);
  11689. if (lang) {
  11690. return lang;
  11691. }
  11692. }var
  11693. I18n = /*#__PURE__*/function () {
  11694. function I18n(_ref3) {var locale = _ref3.locale,fallbackLocale = _ref3.fallbackLocale,messages = _ref3.messages,watcher = _ref3.watcher,formater = _ref3.formater;_classCallCheck(this, I18n);
  11695. this.locale = LOCALE_EN;
  11696. this.fallbackLocale = LOCALE_EN;
  11697. this.message = {};
  11698. this.messages = {};
  11699. this.watchers = [];
  11700. if (fallbackLocale) {
  11701. this.fallbackLocale = fallbackLocale;
  11702. }
  11703. this.formater = formater || defaultFormatter;
  11704. this.messages = messages || {};
  11705. this.setLocale(locale || LOCALE_EN);
  11706. if (watcher) {
  11707. this.watchLocale(watcher);
  11708. }
  11709. }_createClass(I18n, [{ key: "setLocale", value: function setLocale(
  11710. locale) {var _this = this;
  11711. var oldLocale = this.locale;
  11712. this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;
  11713. if (!this.messages[this.locale]) {
  11714. // 可能初始化时不存在
  11715. this.messages[this.locale] = {};
  11716. }
  11717. this.message = this.messages[this.locale];
  11718. // 仅发生变化时,通知
  11719. if (oldLocale !== this.locale) {
  11720. this.watchers.forEach(function (watcher) {
  11721. watcher(_this.locale, oldLocale);
  11722. });
  11723. }
  11724. } }, { key: "getLocale", value: function getLocale()
  11725. {
  11726. return this.locale;
  11727. } }, { key: "watchLocale", value: function watchLocale(
  11728. fn) {var _this2 = this;
  11729. var index = this.watchers.push(fn) - 1;
  11730. return function () {
  11731. _this2.watchers.splice(index, 1);
  11732. };
  11733. } }, { key: "add", value: function add(
  11734. locale, message) {var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  11735. var curMessages = this.messages[locale];
  11736. if (curMessages) {
  11737. if (override) {
  11738. Object.assign(curMessages, message);
  11739. } else
  11740. {
  11741. Object.keys(message).forEach(function (key) {
  11742. if (!hasOwn(curMessages, key)) {
  11743. curMessages[key] = message[key];
  11744. }
  11745. });
  11746. }
  11747. } else
  11748. {
  11749. this.messages[locale] = message;
  11750. }
  11751. } }, { key: "f", value: function f(
  11752. message, values, delimiters) {
  11753. return this.formater.interpolate(message, values, delimiters).join('');
  11754. } }, { key: "t", value: function t(
  11755. key, locale, values) {
  11756. var message = this.message;
  11757. if (typeof locale === 'string') {
  11758. locale = normalizeLocale(locale, this.messages);
  11759. locale && (message = this.messages[locale]);
  11760. } else
  11761. {
  11762. values = locale;
  11763. }
  11764. if (!hasOwn(message, key)) {
  11765. console.warn("Cannot translate the value of keypath ".concat(key, ". Use the value of keypath as default."));
  11766. return key;
  11767. }
  11768. return this.formater.interpolate(message[key], values).join('');
  11769. } }]);return I18n;}();exports.I18n = I18n;
  11770. function watchAppLocale(appVm, i18n) {
  11771. // 需要保证 watch 的触发在组件渲染之前
  11772. if (appVm.$watchLocale) {
  11773. // vue2
  11774. appVm.$watchLocale(function (newLocale) {
  11775. i18n.setLocale(newLocale);
  11776. });
  11777. } else
  11778. {
  11779. appVm.$watch(function () {return appVm.$locale;}, function (newLocale) {
  11780. i18n.setLocale(newLocale);
  11781. });
  11782. }
  11783. }
  11784. function getDefaultLocale() {
  11785. if (typeof uni !== 'undefined' && uni.getLocale) {
  11786. return uni.getLocale();
  11787. }
  11788. // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale
  11789. if (typeof global !== 'undefined' && global.getLocale) {
  11790. return global.getLocale();
  11791. }
  11792. return LOCALE_EN;
  11793. }
  11794. function initVueI18n(locale) {var messages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var fallbackLocale = arguments.length > 2 ? arguments[2] : undefined;var watcher = arguments.length > 3 ? arguments[3] : undefined;
  11795. // 兼容旧版本入参
  11796. if (typeof locale !== 'string') {var _ref4 =
  11797. [
  11798. messages,
  11799. locale];locale = _ref4[0];messages = _ref4[1];
  11800. }
  11801. if (typeof locale !== 'string') {
  11802. // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined
  11803. locale = getDefaultLocale();
  11804. }
  11805. if (typeof fallbackLocale !== 'string') {
  11806. fallbackLocale =
  11807. typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale ||
  11808. LOCALE_EN;
  11809. }
  11810. var i18n = new I18n({
  11811. locale: locale,
  11812. fallbackLocale: fallbackLocale,
  11813. messages: messages,
  11814. watcher: watcher });
  11815. var _t = function t(key, values) {
  11816. if (typeof getApp !== 'function') {
  11817. // app view
  11818. /* eslint-disable no-func-assign */
  11819. _t = function t(key, values) {
  11820. return i18n.t(key, values);
  11821. };
  11822. } else
  11823. {
  11824. var isWatchedAppLocale = false;
  11825. _t = function t(key, values) {
  11826. var appVm = getApp().$vm;
  11827. // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化
  11828. // options: {
  11829. // type: Array,
  11830. // default () {
  11831. // return [{
  11832. // icon: 'shop',
  11833. // text: t("uni-goods-nav.options.shop"),
  11834. // }, {
  11835. // icon: 'cart',
  11836. // text: t("uni-goods-nav.options.cart")
  11837. // }]
  11838. // }
  11839. // },
  11840. if (appVm) {
  11841. // 触发响应式
  11842. appVm.$locale;
  11843. if (!isWatchedAppLocale) {
  11844. isWatchedAppLocale = true;
  11845. watchAppLocale(appVm, i18n);
  11846. }
  11847. }
  11848. return i18n.t(key, values);
  11849. };
  11850. }
  11851. return _t(key, values);
  11852. };
  11853. return {
  11854. i18n: i18n,
  11855. f: function f(message, values, delimiters) {
  11856. return i18n.f(message, values, delimiters);
  11857. },
  11858. t: function t(key, values) {
  11859. return _t(key, values);
  11860. },
  11861. add: function add(locale, message) {var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  11862. return i18n.add(locale, message, override);
  11863. },
  11864. watch: function watch(fn) {
  11865. return i18n.watchLocale(fn);
  11866. },
  11867. getLocale: function getLocale() {
  11868. return i18n.getLocale();
  11869. },
  11870. setLocale: function setLocale(newLocale) {
  11871. return i18n.setLocale(newLocale);
  11872. } };
  11873. }
  11874. var isString = function isString(val) {return typeof val === 'string';};exports.isString = isString;
  11875. var formater;
  11876. function hasI18nJson(jsonObj, delimiters) {
  11877. if (!formater) {
  11878. formater = new BaseFormatter();
  11879. }
  11880. return walkJsonObj(jsonObj, function (jsonObj, key) {
  11881. var value = jsonObj[key];
  11882. if (isString(value)) {
  11883. if (isI18nStr(value, delimiters)) {
  11884. return true;
  11885. }
  11886. } else
  11887. {
  11888. return hasI18nJson(value, delimiters);
  11889. }
  11890. });
  11891. }
  11892. function parseI18nJson(jsonObj, values, delimiters) {
  11893. if (!formater) {
  11894. formater = new BaseFormatter();
  11895. }
  11896. walkJsonObj(jsonObj, function (jsonObj, key) {
  11897. var value = jsonObj[key];
  11898. if (isString(value)) {
  11899. if (isI18nStr(value, delimiters)) {
  11900. jsonObj[key] = compileStr(value, values, delimiters);
  11901. }
  11902. } else
  11903. {
  11904. parseI18nJson(value, values, delimiters);
  11905. }
  11906. });
  11907. return jsonObj;
  11908. }
  11909. function compileI18nJsonStr(jsonStr, _ref5) {var locale = _ref5.locale,locales = _ref5.locales,delimiters = _ref5.delimiters;
  11910. if (!isI18nStr(jsonStr, delimiters)) {
  11911. return jsonStr;
  11912. }
  11913. if (!formater) {
  11914. formater = new BaseFormatter();
  11915. }
  11916. var localeValues = [];
  11917. Object.keys(locales).forEach(function (name) {
  11918. if (name !== locale) {
  11919. localeValues.push({
  11920. locale: name,
  11921. values: locales[name] });
  11922. }
  11923. });
  11924. localeValues.unshift({ locale: locale, values: locales[locale] });
  11925. try {
  11926. return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);
  11927. }
  11928. catch (e) {}
  11929. return jsonStr;
  11930. }
  11931. function isI18nStr(value, delimiters) {
  11932. return value.indexOf(delimiters[0]) > -1;
  11933. }
  11934. function compileStr(value, values, delimiters) {
  11935. return formater.interpolate(value, values, delimiters).join('');
  11936. }
  11937. function compileValue(jsonObj, key, localeValues, delimiters) {
  11938. var value = jsonObj[key];
  11939. if (isString(value)) {
  11940. // 存在国际化
  11941. if (isI18nStr(value, delimiters)) {
  11942. jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);
  11943. if (localeValues.length > 1) {
  11944. // 格式化国际化语言
  11945. var valueLocales = jsonObj[key + 'Locales'] = {};
  11946. localeValues.forEach(function (localValue) {
  11947. valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);
  11948. });
  11949. }
  11950. }
  11951. } else
  11952. {
  11953. compileJsonObj(value, localeValues, delimiters);
  11954. }
  11955. }
  11956. function compileJsonObj(jsonObj, localeValues, delimiters) {
  11957. walkJsonObj(jsonObj, function (jsonObj, key) {
  11958. compileValue(jsonObj, key, localeValues, delimiters);
  11959. });
  11960. return jsonObj;
  11961. }
  11962. function walkJsonObj(jsonObj, walk) {
  11963. if (isArray(jsonObj)) {
  11964. for (var i = 0; i < jsonObj.length; i++) {
  11965. if (walk(jsonObj, i)) {
  11966. return true;
  11967. }
  11968. }
  11969. } else
  11970. if (isObject(jsonObj)) {
  11971. for (var key in jsonObj) {
  11972. if (walk(jsonObj, key)) {
  11973. return true;
  11974. }
  11975. }
  11976. }
  11977. return false;
  11978. }
  11979. function resolveLocale(locales) {
  11980. return function (locale) {
  11981. if (!locale) {
  11982. return locale;
  11983. }
  11984. locale = normalizeLocale(locale) || locale;
  11985. return resolveLocaleChain(locale).find(function (locale) {return locales.indexOf(locale) > -1;});
  11986. };
  11987. }
  11988. function resolveLocaleChain(locale) {
  11989. var chain = [];
  11990. var tokens = locale.split('-');
  11991. while (tokens.length) {
  11992. chain.push(tokens.join('-'));
  11993. tokens.pop();
  11994. }
  11995. return chain;
  11996. }
  11997. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"], __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 2)))
  11998. /***/ }),
  11999. /***/ 304:
  12000. /*!*************************************************************************************************************************!*\
  12001. !*** D:/workspace/project_forwork/bizdbKLY_app/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***!
  12002. \*************************************************************************************************************************/
  12003. /*! no static exports found */
  12004. /***/ (function(module, exports, __webpack_require__) {
  12005. "use strict";
  12006. /* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.createAnimation = createAnimation;function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;} // const defaultOption = {
  12007. // duration: 300,
  12008. // timingFunction: 'linear',
  12009. // delay: 0,
  12010. // transformOrigin: '50% 50% 0'
  12011. // }
  12012. var
  12013. MPAnimation = /*#__PURE__*/function () {
  12014. function MPAnimation(options, _this) {_classCallCheck(this, MPAnimation);
  12015. this.options = options;
  12016. this.animation = uni.createAnimation(options);
  12017. this.currentStepAnimates = {};
  12018. this.next = 0;
  12019. this.$ = _this;
  12020. }_createClass(MPAnimation, [{ key: "_nvuePushAnimates", value: function _nvuePushAnimates(
  12021. type, args) {
  12022. var aniObj = this.currentStepAnimates[this.next];
  12023. var styles = {};
  12024. if (!aniObj) {
  12025. styles = {
  12026. styles: {},
  12027. config: {} };
  12028. } else {
  12029. styles = aniObj;
  12030. }
  12031. if (animateTypes1.includes(type)) {
  12032. if (!styles.styles.transform) {
  12033. styles.styles.transform = '';
  12034. }
  12035. var unit = '';
  12036. if (type === 'rotate') {
  12037. unit = 'deg';
  12038. }
  12039. styles.styles.transform += "".concat(type, "(").concat(args + unit, ") ");
  12040. } else {
  12041. styles.styles[type] = "".concat(args);
  12042. }
  12043. this.currentStepAnimates[this.next] = styles;
  12044. } }, { key: "_animateRun", value: function _animateRun()
  12045. {var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  12046. var ref = this.$.$refs['ani'].ref;
  12047. if (!ref) return;
  12048. return new Promise(function (resolve, reject) {
  12049. nvueAnimation.transition(ref, _objectSpread({
  12050. styles: styles },
  12051. config),
  12052. function (res) {
  12053. resolve();
  12054. });
  12055. });
  12056. } }, { key: "_nvueNextAnimate", value: function _nvueNextAnimate(
  12057. animates) {var _this2 = this;var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;var fn = arguments.length > 2 ? arguments[2] : undefined;
  12058. var obj = animates[step];
  12059. if (obj) {var
  12060. styles =
  12061. obj.styles,config = obj.config;
  12062. this._animateRun(styles, config).then(function () {
  12063. step += 1;
  12064. _this2._nvueNextAnimate(animates, step, fn);
  12065. });
  12066. } else {
  12067. this.currentStepAnimates = {};
  12068. typeof fn === 'function' && fn();
  12069. this.isEnd = true;
  12070. }
  12071. } }, { key: "step", value: function step()
  12072. {var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  12073. this.animation.step(config);
  12074. return this;
  12075. } }, { key: "run", value: function run(
  12076. fn) {
  12077. this.$.animationData = this.animation.export();
  12078. this.$.timer = setTimeout(function () {
  12079. typeof fn === 'function' && fn();
  12080. }, this.$.durationTime);
  12081. } }]);return MPAnimation;}();
  12082. var animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
  12083. 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
  12084. 'translateZ'];
  12085. var animateTypes2 = ['opacity', 'backgroundColor'];
  12086. var animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];
  12087. animateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {
  12088. MPAnimation.prototype[type] = function () {var _this$animation;
  12089. (_this$animation = this.animation)[type].apply(_this$animation, arguments);
  12090. return this;
  12091. };
  12092. });
  12093. function createAnimation(option, _this) {
  12094. if (!_this) return;
  12095. clearTimeout(_this.timer);
  12096. return new MPAnimation(option, _this);
  12097. }
  12098. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
  12099. /***/ }),
  12100. /***/ 310:
  12101. /*!*****************************************************************************************************!*\
  12102. !*** D:/workspace/project_forwork/bizdbKLY_app/uni_modules/uni-icons/components/uni-icons/icons.js ***!
  12103. \*****************************************************************************************************/
  12104. /*! no static exports found */
  12105. /***/ (function(module, exports, __webpack_require__) {
  12106. "use strict";
  12107. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = {
  12108. "pulldown": "\uE588",
  12109. "refreshempty": "\uE461",
  12110. "back": "\uE471",
  12111. "forward": "\uE470",
  12112. "more": "\uE507",
  12113. "more-filled": "\uE537",
  12114. "scan": "\uE612",
  12115. "qq": "\uE264",
  12116. "weibo": "\uE260",
  12117. "weixin": "\uE261",
  12118. "pengyouquan": "\uE262",
  12119. "loop": "\uE565",
  12120. "refresh": "\uE407",
  12121. "refresh-filled": "\uE437",
  12122. "arrowthindown": "\uE585",
  12123. "arrowthinleft": "\uE586",
  12124. "arrowthinright": "\uE587",
  12125. "arrowthinup": "\uE584",
  12126. "undo-filled": "\uE7D6",
  12127. "undo": "\uE406",
  12128. "redo": "\uE405",
  12129. "redo-filled": "\uE7D9",
  12130. "bars": "\uE563",
  12131. "chatboxes": "\uE203",
  12132. "camera": "\uE301",
  12133. "chatboxes-filled": "\uE233",
  12134. "camera-filled": "\uE7EF",
  12135. "cart-filled": "\uE7F4",
  12136. "cart": "\uE7F5",
  12137. "checkbox-filled": "\uE442",
  12138. "checkbox": "\uE7FA",
  12139. "arrowleft": "\uE582",
  12140. "arrowdown": "\uE581",
  12141. "arrowright": "\uE583",
  12142. "smallcircle-filled": "\uE801",
  12143. "arrowup": "\uE580",
  12144. "circle": "\uE411",
  12145. "eye-filled": "\uE568",
  12146. "eye-slash-filled": "\uE822",
  12147. "eye-slash": "\uE823",
  12148. "eye": "\uE824",
  12149. "flag-filled": "\uE825",
  12150. "flag": "\uE508",
  12151. "gear-filled": "\uE532",
  12152. "reload": "\uE462",
  12153. "gear": "\uE502",
  12154. "hand-thumbsdown-filled": "\uE83B",
  12155. "hand-thumbsdown": "\uE83C",
  12156. "hand-thumbsup-filled": "\uE83D",
  12157. "heart-filled": "\uE83E",
  12158. "hand-thumbsup": "\uE83F",
  12159. "heart": "\uE840",
  12160. "home": "\uE500",
  12161. "info": "\uE504",
  12162. "home-filled": "\uE530",
  12163. "info-filled": "\uE534",
  12164. "circle-filled": "\uE441",
  12165. "chat-filled": "\uE847",
  12166. "chat": "\uE263",
  12167. "mail-open-filled": "\uE84D",
  12168. "email-filled": "\uE231",
  12169. "mail-open": "\uE84E",
  12170. "email": "\uE201",
  12171. "checkmarkempty": "\uE472",
  12172. "list": "\uE562",
  12173. "locked-filled": "\uE856",
  12174. "locked": "\uE506",
  12175. "map-filled": "\uE85C",
  12176. "map-pin": "\uE85E",
  12177. "map-pin-ellipse": "\uE864",
  12178. "map": "\uE364",
  12179. "minus-filled": "\uE440",
  12180. "mic-filled": "\uE332",
  12181. "minus": "\uE410",
  12182. "micoff": "\uE360",
  12183. "mic": "\uE302",
  12184. "clear": "\uE434",
  12185. "smallcircle": "\uE868",
  12186. "close": "\uE404",
  12187. "closeempty": "\uE460",
  12188. "paperclip": "\uE567",
  12189. "paperplane": "\uE503",
  12190. "paperplane-filled": "\uE86E",
  12191. "person-filled": "\uE131",
  12192. "contact-filled": "\uE130",
  12193. "person": "\uE101",
  12194. "contact": "\uE100",
  12195. "images-filled": "\uE87A",
  12196. "phone": "\uE200",
  12197. "images": "\uE87B",
  12198. "image": "\uE363",
  12199. "image-filled": "\uE877",
  12200. "location-filled": "\uE333",
  12201. "location": "\uE303",
  12202. "plus-filled": "\uE439",
  12203. "plus": "\uE409",
  12204. "plusempty": "\uE468",
  12205. "help-filled": "\uE535",
  12206. "help": "\uE505",
  12207. "navigate-filled": "\uE884",
  12208. "navigate": "\uE501",
  12209. "mic-slash-filled": "\uE892",
  12210. "search": "\uE466",
  12211. "settings": "\uE560",
  12212. "sound": "\uE590",
  12213. "sound-filled": "\uE8A1",
  12214. "spinner-cycle": "\uE465",
  12215. "download-filled": "\uE8A4",
  12216. "personadd-filled": "\uE132",
  12217. "videocam-filled": "\uE8AF",
  12218. "personadd": "\uE102",
  12219. "upload": "\uE402",
  12220. "upload-filled": "\uE8B1",
  12221. "starhalf": "\uE463",
  12222. "star-filled": "\uE438",
  12223. "star": "\uE408",
  12224. "trash": "\uE401",
  12225. "phone-filled": "\uE230",
  12226. "compose": "\uE400",
  12227. "videocam": "\uE300",
  12228. "trash-filled": "\uE8DC",
  12229. "download": "\uE403",
  12230. "chatbubble-filled": "\uE232",
  12231. "chatbubble": "\uE202",
  12232. "cloud-download": "\uE8E4",
  12233. "cloud-upload-filled": "\uE8E5",
  12234. "cloud-upload": "\uE8E6",
  12235. "cloud-download-filled": "\uE8E9",
  12236. "headphones": "\uE8BF",
  12237. "shop": "\uE609" };exports.default = _default;
  12238. /***/ }),
  12239. /***/ 318:
  12240. /*!************************************************************************************************************************!*\
  12241. !*** D:/workspace/project_forwork/bizdbKLY_app/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js ***!
  12242. \************************************************************************************************************************/
  12243. /*! no static exports found */
  12244. /***/ (function(module, exports, __webpack_require__) {
  12245. "use strict";
  12246. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _calendar = _interopRequireDefault(__webpack_require__(/*! ./calendar.js */ 319));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
  12247. Calendar = /*#__PURE__*/function () {
  12248. function Calendar()
  12249. {var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},date = _ref.date,selected = _ref.selected,startDate = _ref.startDate,endDate = _ref.endDate,range = _ref.range;_classCallCheck(this, Calendar);
  12250. // 当前日期
  12251. this.date = this.getDate(new Date()); // 当前初入日期
  12252. // 打点信息
  12253. this.selected = selected || [];
  12254. // 范围开始
  12255. this.startDate = startDate;
  12256. // 范围结束
  12257. this.endDate = endDate;
  12258. this.range = range;
  12259. // 多选状态
  12260. this.cleanMultipleStatus();
  12261. // 每周日期
  12262. this.weeks = {};
  12263. // this._getWeek(this.date.fullDate)
  12264. // this.multipleStatus = multipleStatus
  12265. this.lastHover = false;
  12266. }
  12267. /**
  12268. * 设置日期
  12269. * @param {Object} date
  12270. */_createClass(Calendar, [{ key: "setDate", value: function setDate(
  12271. date) {
  12272. this.selectDate = this.getDate(date);
  12273. this._getWeek(this.selectDate.fullDate);
  12274. }
  12275. /**
  12276. * 清理多选状态
  12277. */ }, { key: "cleanMultipleStatus", value: function cleanMultipleStatus()
  12278. {
  12279. this.multipleStatus = {
  12280. before: '',
  12281. after: '',
  12282. data: [] };
  12283. }
  12284. /**
  12285. * 重置开始日期
  12286. */ }, { key: "resetSatrtDate", value: function resetSatrtDate(
  12287. startDate) {
  12288. // 范围开始
  12289. this.startDate = startDate;
  12290. }
  12291. /**
  12292. * 重置结束日期
  12293. */ }, { key: "resetEndDate", value: function resetEndDate(
  12294. endDate) {
  12295. // 范围结束
  12296. this.endDate = endDate;
  12297. }
  12298. /**
  12299. * 获取任意时间
  12300. */ }, { key: "getDate", value: function getDate(
  12301. date) {var AddDayCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;var str = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'day';
  12302. if (!date) {
  12303. date = new Date();
  12304. }
  12305. if (typeof date !== 'object') {
  12306. date = date.replace(/-/g, '/');
  12307. }
  12308. var dd = new Date(date);
  12309. switch (str) {
  12310. case 'day':
  12311. dd.setDate(dd.getDate() + AddDayCount); // 获取AddDayCount天后的日期
  12312. break;
  12313. case 'month':
  12314. if (dd.getDate() === 31) {
  12315. dd.setDate(dd.getDate() + AddDayCount);
  12316. } else {
  12317. dd.setMonth(dd.getMonth() + AddDayCount); // 获取AddDayCount天后的日期
  12318. }
  12319. break;
  12320. case 'year':
  12321. dd.setFullYear(dd.getFullYear() + AddDayCount); // 获取AddDayCount天后的日期
  12322. break;}
  12323. var y = dd.getFullYear();
  12324. var m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1; // 获取当前月份的日期,不足10补0
  12325. var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate(); // 获取当前几号,不足10补0
  12326. return {
  12327. fullDate: y + '-' + m + '-' + d,
  12328. year: y,
  12329. month: m,
  12330. date: d,
  12331. day: dd.getDay() };
  12332. }
  12333. /**
  12334. * 获取上月剩余天数
  12335. */ }, { key: "_getLastMonthDays", value: function _getLastMonthDays(
  12336. firstDay, full) {
  12337. var dateArr = [];
  12338. for (var i = firstDay; i > 0; i--) {
  12339. var beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate();
  12340. dateArr.push({
  12341. date: beforeDate,
  12342. month: full.month - 1,
  12343. lunar: this.getlunar(full.year, full.month - 1, beforeDate),
  12344. disable: true });
  12345. }
  12346. return dateArr;
  12347. }
  12348. /**
  12349. * 获取本月天数
  12350. */ }, { key: "_currentMonthDys", value: function _currentMonthDys(
  12351. dateData, full) {var _this = this;
  12352. var dateArr = [];
  12353. var fullDate = this.date.fullDate;var _loop = function _loop(
  12354. i) {
  12355. var isinfo = false;
  12356. var nowDate = full.year + '-' + (full.month < 10 ?
  12357. full.month : full.month) + '-' + (i < 10 ?
  12358. '0' + i : i);
  12359. // 是否今天
  12360. var isDay = fullDate === nowDate;
  12361. // 获取打点信息
  12362. var info = _this.selected && _this.selected.find(function (item) {
  12363. if (_this.dateEqual(nowDate, item.date)) {
  12364. return item;
  12365. }
  12366. });
  12367. // 日期禁用
  12368. var disableBefore = true;
  12369. var disableAfter = true;
  12370. if (_this.startDate) {
  12371. // let dateCompBefore = this.dateCompare(this.startDate, fullDate)
  12372. // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate)
  12373. disableBefore = _this.dateCompare(_this.startDate, nowDate);
  12374. }
  12375. if (_this.endDate) {
  12376. // let dateCompAfter = this.dateCompare(fullDate, this.endDate)
  12377. // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate)
  12378. disableAfter = _this.dateCompare(nowDate, _this.endDate);
  12379. }
  12380. var multiples = _this.multipleStatus.data;
  12381. var checked = false;
  12382. var multiplesStatus = -1;
  12383. if (_this.range) {
  12384. if (multiples) {
  12385. multiplesStatus = multiples.findIndex(function (item) {
  12386. return _this.dateEqual(item, nowDate);
  12387. });
  12388. }
  12389. if (multiplesStatus !== -1) {
  12390. checked = true;
  12391. }
  12392. }
  12393. var data = {
  12394. fullDate: nowDate,
  12395. year: full.year,
  12396. date: i,
  12397. multiple: _this.range ? checked : false,
  12398. beforeMultiple: _this.dateEqual(_this.multipleStatus.before, nowDate),
  12399. afterMultiple: _this.dateEqual(_this.multipleStatus.after, nowDate),
  12400. month: full.month,
  12401. lunar: _this.getlunar(full.year, full.month, i),
  12402. disable: !(disableBefore && disableAfter),
  12403. isDay: isDay };
  12404. if (info) {
  12405. data.extraInfo = info;
  12406. }
  12407. dateArr.push(data);};for (var i = 1; i <= dateData; i++) {_loop(i);
  12408. }
  12409. return dateArr;
  12410. }
  12411. /**
  12412. * 获取下月天数
  12413. */ }, { key: "_getNextMonthDays", value: function _getNextMonthDays(
  12414. surplus, full) {
  12415. var dateArr = [];
  12416. for (var i = 1; i < surplus + 1; i++) {
  12417. dateArr.push({
  12418. date: i,
  12419. month: Number(full.month) + 1,
  12420. lunar: this.getlunar(full.year, Number(full.month) + 1, i),
  12421. disable: true });
  12422. }
  12423. return dateArr;
  12424. }
  12425. /**
  12426. * 获取当前日期详情
  12427. * @param {Object} date
  12428. */ }, { key: "getInfo", value: function getInfo(
  12429. date) {var _this2 = this;
  12430. if (!date) {
  12431. date = new Date();
  12432. }
  12433. var dateInfo = this.canlender.find(function (item) {return item.fullDate === _this2.getDate(date).fullDate;});
  12434. return dateInfo;
  12435. }
  12436. /**
  12437. * 比较时间大小
  12438. */ }, { key: "dateCompare", value: function dateCompare(
  12439. startDate, endDate) {
  12440. // 计算截止时间
  12441. startDate = new Date(startDate.replace('-', '/').replace('-', '/'));
  12442. // 计算详细项的截止时间
  12443. endDate = new Date(endDate.replace('-', '/').replace('-', '/'));
  12444. if (startDate <= endDate) {
  12445. return true;
  12446. } else {
  12447. return false;
  12448. }
  12449. }
  12450. /**
  12451. * 比较时间是否相等
  12452. */ }, { key: "dateEqual", value: function dateEqual(
  12453. before, after) {
  12454. // 计算截止时间
  12455. before = new Date(before.replace('-', '/').replace('-', '/'));
  12456. // 计算详细项的截止时间
  12457. after = new Date(after.replace('-', '/').replace('-', '/'));
  12458. if (before.getTime() - after.getTime() === 0) {
  12459. return true;
  12460. } else {
  12461. return false;
  12462. }
  12463. }
  12464. /**
  12465. * 获取日期范围内所有日期
  12466. * @param {Object} begin
  12467. * @param {Object} end
  12468. */ }, { key: "geDateAll", value: function geDateAll(
  12469. begin, end) {
  12470. var arr = [];
  12471. var ab = begin.split('-');
  12472. var ae = end.split('-');
  12473. var db = new Date();
  12474. db.setFullYear(ab[0], ab[1] - 1, ab[2]);
  12475. var de = new Date();
  12476. de.setFullYear(ae[0], ae[1] - 1, ae[2]);
  12477. var unixDb = db.getTime() - 24 * 60 * 60 * 1000;
  12478. var unixDe = de.getTime() - 24 * 60 * 60 * 1000;
  12479. for (var k = unixDb; k <= unixDe;) {
  12480. k = k + 24 * 60 * 60 * 1000;
  12481. arr.push(this.getDate(new Date(parseInt(k))).fullDate);
  12482. }
  12483. return arr;
  12484. }
  12485. /**
  12486. * 计算阴历日期显示
  12487. */ }, { key: "getlunar", value: function getlunar(
  12488. year, month, date) {
  12489. return _calendar.default.solar2lunar(year, month, date);
  12490. }
  12491. /**
  12492. * 设置打点
  12493. */ }, { key: "setSelectInfo", value: function setSelectInfo(
  12494. data, value) {
  12495. this.selected = value;
  12496. this._getWeek(data);
  12497. }
  12498. /**
  12499. * 获取多选状态
  12500. */ }, { key: "setMultiple", value: function setMultiple(
  12501. fullDate) {var _this$multipleStatus =
  12502. this.multipleStatus,before = _this$multipleStatus.before,after = _this$multipleStatus.after;
  12503. if (!this.range) return;
  12504. if (before && after) {
  12505. if (!this.lastHover) {
  12506. this.lastHover = true;
  12507. return;
  12508. }
  12509. this.multipleStatus.before = '';
  12510. this.multipleStatus.after = '';
  12511. this.multipleStatus.data = [];
  12512. this.multipleStatus.fulldate = '';
  12513. this.lastHover = false;
  12514. } else {
  12515. this.lastHover = false;
  12516. if (!before) {
  12517. this.multipleStatus.before = fullDate;
  12518. } else {
  12519. this.multipleStatus.after = fullDate;
  12520. if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) {
  12521. this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.
  12522. after);
  12523. } else {
  12524. this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.
  12525. before);
  12526. }
  12527. }
  12528. }
  12529. this._getWeek(fullDate);
  12530. }
  12531. /**
  12532. * 鼠标 hover 更新多选状态
  12533. */ }, { key: "setHoverMultiple", value: function setHoverMultiple(
  12534. fullDate) {var _this$multipleStatus2 =
  12535. this.multipleStatus,before = _this$multipleStatus2.before,after = _this$multipleStatus2.after;
  12536. if (!this.range) return;
  12537. if (this.lastHover) return;
  12538. if (!before) {
  12539. this.multipleStatus.before = fullDate;
  12540. } else {
  12541. this.multipleStatus.after = fullDate;
  12542. if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) {
  12543. this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after);
  12544. } else {
  12545. this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before);
  12546. }
  12547. }
  12548. this._getWeek(fullDate);
  12549. }
  12550. /**
  12551. * 更新默认值多选状态
  12552. */ }, { key: "setDefaultMultiple", value: function setDefaultMultiple(
  12553. before, after) {
  12554. this.multipleStatus.before = before;
  12555. this.multipleStatus.after = after;
  12556. if (before && after) {
  12557. if (this.dateCompare(before, after)) {
  12558. this.multipleStatus.data = this.geDateAll(before, after);
  12559. this._getWeek(after);
  12560. } else {
  12561. this.multipleStatus.data = this.geDateAll(after, before);
  12562. this._getWeek(before);
  12563. }
  12564. }
  12565. }
  12566. /**
  12567. * 获取每周数据
  12568. * @param {Object} dateData
  12569. */ }, { key: "_getWeek", value: function _getWeek(
  12570. dateData) {var _this$getDate =
  12571. this.getDate(dateData),fullDate = _this$getDate.fullDate,year = _this$getDate.year,month = _this$getDate.month,date = _this$getDate.date,day = _this$getDate.day;
  12572. var firstDay = new Date(year, month - 1, 1).getDay();
  12573. var currentDay = new Date(year, month, 0).getDate();
  12574. var dates = {
  12575. lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天
  12576. currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数
  12577. nextMonthDays: [], // 下个月开始几天
  12578. weeks: [] };
  12579. var canlender = [];
  12580. var surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length);
  12581. dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData));
  12582. canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays);
  12583. var weeks = {};
  12584. // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天
  12585. for (var i = 0; i < canlender.length; i++) {
  12586. if (i % 7 === 0) {
  12587. weeks[parseInt(i / 7)] = new Array(7);
  12588. }
  12589. weeks[parseInt(i / 7)][i % 7] = canlender[i];
  12590. }
  12591. this.canlender = canlender;
  12592. this.weeks = weeks;
  12593. }
  12594. //静态方法
  12595. // static init(date) {
  12596. // if (!this.instance) {
  12597. // this.instance = new Calendar(date);
  12598. // }
  12599. // return this.instance;
  12600. // }
  12601. }]);return Calendar;}();var _default =
  12602. Calendar;exports.default = _default;
  12603. /***/ }),
  12604. /***/ 319:
  12605. /*!****************************************************************************************************************************!*\
  12606. !*** D:/workspace/project_forwork/bizdbKLY_app/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.js ***!
  12607. \****************************************************************************************************************************/
  12608. /*! no static exports found */
  12609. /***/ (function(module, exports, __webpack_require__) {
  12610. "use strict";
  12611. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; /**
  12612. * @1900-2100区间内的公历、农历互转
  12613. * @charset UTF-8
  12614. * @github https://github.com/jjonline/calendar.js
  12615. * @Author Jea杨(JJonline@JJonline.Cn)
  12616. * @Time 2014-7-21
  12617. * @Time 2016-8-13 Fixed 2033hex、Attribution Annals
  12618. * @Time 2016-9-25 Fixed lunar LeapMonth Param Bug
  12619. * @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year
  12620. * @Version 1.0.3
  12621. * @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0]
  12622. * @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0]
  12623. */
  12624. /* eslint-disable */
  12625. var calendar = {
  12626. /**
  12627. * 农历1900-2100的润大小信息表
  12628. * @Array Of Property
  12629. * @return Hex
  12630. */
  12631. lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909
  12632. 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919
  12633. 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929
  12634. 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939
  12635. 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949
  12636. 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959
  12637. 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969
  12638. 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979
  12639. 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989
  12640. 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999
  12641. 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009
  12642. 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019
  12643. 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029
  12644. 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039
  12645. 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049
  12646. /** Add By JJonline@JJonline.Cn**/
  12647. 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059
  12648. 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069
  12649. 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079
  12650. 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089
  12651. 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099
  12652. 0x0d520], // 2100
  12653. /**
  12654. * 公历每个月份的天数普通表
  12655. * @Array Of Property
  12656. * @return Number
  12657. */
  12658. solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
  12659. /**
  12660. * 天干地支之天干速查表
  12661. * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
  12662. * @return Cn string
  12663. */
  12664. Gan: ["\u7532", "\u4E59", "\u4E19", "\u4E01", "\u620A", "\u5DF1", "\u5E9A", "\u8F9B", "\u58EC", "\u7678"],
  12665. /**
  12666. * 天干地支之地支速查表
  12667. * @Array Of Property
  12668. * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
  12669. * @return Cn string
  12670. */
  12671. Zhi: ["\u5B50", "\u4E11", "\u5BC5", "\u536F", "\u8FB0", "\u5DF3", "\u5348", "\u672A", "\u7533", "\u9149", "\u620C", "\u4EA5"],
  12672. /**
  12673. * 天干地支之地支速查表<=>生肖
  12674. * @Array Of Property
  12675. * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
  12676. * @return Cn string
  12677. */
  12678. Animals: ["\u9F20", "\u725B", "\u864E", "\u5154", "\u9F99", "\u86C7", "\u9A6C", "\u7F8A", "\u7334", "\u9E21", "\u72D7", "\u732A"],
  12679. /**
  12680. * 24节气速查表
  12681. * @Array Of Property
  12682. * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
  12683. * @return Cn string
  12684. */
  12685. solarTerm: ["\u5C0F\u5BD2", "\u5927\u5BD2", "\u7ACB\u6625", "\u96E8\u6C34", "\u60CA\u86F0", "\u6625\u5206", "\u6E05\u660E", "\u8C37\u96E8", "\u7ACB\u590F", "\u5C0F\u6EE1", "\u8292\u79CD", "\u590F\u81F3", "\u5C0F\u6691", "\u5927\u6691", "\u7ACB\u79CB", "\u5904\u6691", "\u767D\u9732", "\u79CB\u5206", "\u5BD2\u9732", "\u971C\u964D", "\u7ACB\u51AC", "\u5C0F\u96EA", "\u5927\u96EA", "\u51AC\u81F3"],
  12686. /**
  12687. * 1900-2100各年的24节气日期速查表
  12688. * @Array Of Property
  12689. * @return 0x string For splice
  12690. */
  12691. sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f',
  12692. '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  12693. '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa',
  12694. '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f',
  12695. 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f',
  12696. '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa',
  12697. '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2',
  12698. '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f',
  12699. '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  12700. '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  12701. '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722',
  12702. '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f',
  12703. '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  12704. '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  12705. '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722',
  12706. '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f',
  12707. '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
  12708. '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
  12709. '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722',
  12710. '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  12711. '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  12712. '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
  12713. '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722',
  12714. '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  12715. '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  12716. '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
  12717. '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722',
  12718. '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
  12719. '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
  12720. '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
  12721. '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
  12722. '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  12723. '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
  12724. '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
  12725. '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
  12726. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  12727. '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
  12728. '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
  12729. '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721',
  12730. '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2',
  12731. '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
  12732. '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  12733. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd',
  12734. '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
  12735. '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
  12736. '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  12737. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd',
  12738. '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
  12739. '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
  12740. '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721',
  12741. '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5',
  12742. '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722',
  12743. '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  12744. '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
  12745. '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35',
  12746. '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
  12747. '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721',
  12748. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd',
  12749. '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35',
  12750. '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
  12751. '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721',
  12752. '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5',
  12753. '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35',
  12754. '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  12755. '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
  12756. '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35',
  12757. '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'],
  12758. /**
  12759. * 数字转中文速查表
  12760. * @Array Of Property
  12761. * @trans ['日','一','二','三','四','五','六','七','八','九','十']
  12762. * @return Cn string
  12763. */
  12764. nStr1: ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D", "\u5341"],
  12765. /**
  12766. * 日期转农历称呼速查表
  12767. * @Array Of Property
  12768. * @trans ['初','十','廿','卅']
  12769. * @return Cn string
  12770. */
  12771. nStr2: ["\u521D", "\u5341", "\u5EFF", "\u5345"],
  12772. /**
  12773. * 月份转农历称呼速查表
  12774. * @Array Of Property
  12775. * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']
  12776. * @return Cn string
  12777. */
  12778. nStr3: ["\u6B63", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D", "\u5341", "\u51AC", "\u814A"],
  12779. /**
  12780. * 返回农历y年一整年的总天数
  12781. * @param lunar Year
  12782. * @return Number
  12783. * @eg:var count = calendar.lYearDays(1987) ;//count=387
  12784. */
  12785. lYearDays: function lYearDays(y) {
  12786. var i;var sum = 348;
  12787. for (i = 0x8000; i > 0x8; i >>= 1) {sum += this.lunarInfo[y - 1900] & i ? 1 : 0;}
  12788. return sum + this.leapDays(y);
  12789. },
  12790. /**
  12791. * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0
  12792. * @param lunar Year
  12793. * @return Number (0-12)
  12794. * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6
  12795. */
  12796. leapMonth: function leapMonth(y) {// 闰字编码 \u95f0
  12797. return this.lunarInfo[y - 1900] & 0xf;
  12798. },
  12799. /**
  12800. * 返回农历y年闰月的天数 若该年没有闰月则返回0
  12801. * @param lunar Year
  12802. * @return Number (0、29、30)
  12803. * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29
  12804. */
  12805. leapDays: function leapDays(y) {
  12806. if (this.leapMonth(y)) {
  12807. return this.lunarInfo[y - 1900] & 0x10000 ? 30 : 29;
  12808. }
  12809. return 0;
  12810. },
  12811. /**
  12812. * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
  12813. * @param lunar Year
  12814. * @return Number (-1、29、30)
  12815. * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29
  12816. */
  12817. monthDays: function monthDays(y, m) {
  12818. if (m > 12 || m < 1) {return -1;} // 月份参数从1至12,参数错误返回-1
  12819. return this.lunarInfo[y - 1900] & 0x10000 >> m ? 30 : 29;
  12820. },
  12821. /**
  12822. * 返回公历(!)y年m月的天数
  12823. * @param solar Year
  12824. * @return Number (-1、28、29、30、31)
  12825. * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30
  12826. */
  12827. solarDays: function solarDays(y, m) {
  12828. if (m > 12 || m < 1) {return -1;} // 若参数错误 返回-1
  12829. var ms = m - 1;
  12830. if (ms == 1) {// 2月份的闰平规律测算后确认返回28或29
  12831. return y % 4 == 0 && y % 100 != 0 || y % 400 == 0 ? 29 : 28;
  12832. } else {
  12833. return this.solarMonth[ms];
  12834. }
  12835. },
  12836. /**
  12837. * 农历年份转换为干支纪年
  12838. * @param lYear 农历年的年份数
  12839. * @return Cn string
  12840. */
  12841. toGanZhiYear: function toGanZhiYear(lYear) {
  12842. var ganKey = (lYear - 3) % 10;
  12843. var zhiKey = (lYear - 3) % 12;
  12844. if (ganKey == 0) ganKey = 10; // 如果余数为0则为最后一个天干
  12845. if (zhiKey == 0) zhiKey = 12; // 如果余数为0则为最后一个地支
  12846. return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1];
  12847. },
  12848. /**
  12849. * 公历月、日判断所属星座
  12850. * @param cMonth [description]
  12851. * @param cDay [description]
  12852. * @return Cn string
  12853. */
  12854. toAstro: function toAstro(cMonth, cDay) {
  12855. var s = "\u9B54\u7FAF\u6C34\u74F6\u53CC\u9C7C\u767D\u7F8A\u91D1\u725B\u53CC\u5B50\u5DE8\u87F9\u72EE\u5B50\u5904\u5973\u5929\u79E4\u5929\u874E\u5C04\u624B\u9B54\u7FAF";
  12856. var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22];
  12857. return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "\u5EA7"; // 座
  12858. },
  12859. /**
  12860. * 传入offset偏移量返回干支
  12861. * @param offset 相对甲子的偏移量
  12862. * @return Cn string
  12863. */
  12864. toGanZhi: function toGanZhi(offset) {
  12865. return this.Gan[offset % 10] + this.Zhi[offset % 12];
  12866. },
  12867. /**
  12868. * 传入公历(!)y年获得该年第n个节气的公历日期
  12869. * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起
  12870. * @return day Number
  12871. * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春
  12872. */
  12873. getTerm: function getTerm(y, n) {
  12874. if (y < 1900 || y > 2100) {return -1;}
  12875. if (n < 1 || n > 24) {return -1;}
  12876. var _table = this.sTermInfo[y - 1900];
  12877. var _info = [
  12878. parseInt('0x' + _table.substr(0, 5)).toString(),
  12879. parseInt('0x' + _table.substr(5, 5)).toString(),
  12880. parseInt('0x' + _table.substr(10, 5)).toString(),
  12881. parseInt('0x' + _table.substr(15, 5)).toString(),
  12882. parseInt('0x' + _table.substr(20, 5)).toString(),
  12883. parseInt('0x' + _table.substr(25, 5)).toString()];
  12884. var _calday = [
  12885. _info[0].substr(0, 1),
  12886. _info[0].substr(1, 2),
  12887. _info[0].substr(3, 1),
  12888. _info[0].substr(4, 2),
  12889. _info[1].substr(0, 1),
  12890. _info[1].substr(1, 2),
  12891. _info[1].substr(3, 1),
  12892. _info[1].substr(4, 2),
  12893. _info[2].substr(0, 1),
  12894. _info[2].substr(1, 2),
  12895. _info[2].substr(3, 1),
  12896. _info[2].substr(4, 2),
  12897. _info[3].substr(0, 1),
  12898. _info[3].substr(1, 2),
  12899. _info[3].substr(3, 1),
  12900. _info[3].substr(4, 2),
  12901. _info[4].substr(0, 1),
  12902. _info[4].substr(1, 2),
  12903. _info[4].substr(3, 1),
  12904. _info[4].substr(4, 2),
  12905. _info[5].substr(0, 1),
  12906. _info[5].substr(1, 2),
  12907. _info[5].substr(3, 1),
  12908. _info[5].substr(4, 2)];
  12909. return parseInt(_calday[n - 1]);
  12910. },
  12911. /**
  12912. * 传入农历数字月份返回汉语通俗表示法
  12913. * @param lunar month
  12914. * @return Cn string
  12915. * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月'
  12916. */
  12917. toChinaMonth: function toChinaMonth(m) {// 月 => \u6708
  12918. if (m > 12 || m < 1) {return -1;} // 若参数错误 返回-1
  12919. var s = this.nStr3[m - 1];
  12920. s += "\u6708"; // 加上月字
  12921. return s;
  12922. },
  12923. /**
  12924. * 传入农历日期数字返回汉字表示法
  12925. * @param lunar day
  12926. * @return Cn string
  12927. * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一'
  12928. */
  12929. toChinaDay: function toChinaDay(d) {// 日 => \u65e5
  12930. var s;
  12931. switch (d) {
  12932. case 10:
  12933. s = "\u521D\u5341";break;
  12934. case 20:
  12935. s = "\u4E8C\u5341";break;
  12936. break;
  12937. case 30:
  12938. s = "\u4E09\u5341";break;
  12939. break;
  12940. default:
  12941. s = this.nStr2[Math.floor(d / 10)];
  12942. s += this.nStr1[d % 10];}
  12943. return s;
  12944. },
  12945. /**
  12946. * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
  12947. * @param y year
  12948. * @return Cn string
  12949. * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔'
  12950. */
  12951. getAnimal: function getAnimal(y) {
  12952. return this.Animals[(y - 4) % 12];
  12953. },
  12954. /**
  12955. * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON
  12956. * @param y solar year
  12957. * @param m solar month
  12958. * @param d solar day
  12959. * @return JSON object
  12960. * @eg:console.log(calendar.solar2lunar(1987,11,01));
  12961. */
  12962. solar2lunar: function solar2lunar(y, m, d) {// 参数区间1900.1.31~2100.12.31
  12963. // 年份限定、上限
  12964. if (y < 1900 || y > 2100) {
  12965. return -1; // undefined转换为数字变为NaN
  12966. }
  12967. // 公历传参最下限
  12968. if (y == 1900 && m == 1 && d < 31) {
  12969. return -1;
  12970. }
  12971. // 未传参 获得当天
  12972. if (!y) {
  12973. var objDate = new Date();
  12974. } else {
  12975. var objDate = new Date(y, parseInt(m) - 1, d);
  12976. }
  12977. var i;var leap = 0;var temp = 0;
  12978. // 修正ymd参数
  12979. var y = objDate.getFullYear();
  12980. var m = objDate.getMonth() + 1;
  12981. var d = objDate.getDate();
  12982. var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000;
  12983. for (i = 1900; i < 2101 && offset > 0; i++) {
  12984. temp = this.lYearDays(i);
  12985. offset -= temp;
  12986. }
  12987. if (offset < 0) {
  12988. offset += temp;i--;
  12989. }
  12990. // 是否今天
  12991. var isTodayObj = new Date();
  12992. var isToday = false;
  12993. if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) {
  12994. isToday = true;
  12995. }
  12996. // 星期几
  12997. var nWeek = objDate.getDay();
  12998. var cWeek = this.nStr1[nWeek];
  12999. // 数字表示周几顺应天朝周一开始的惯例
  13000. if (nWeek == 0) {
  13001. nWeek = 7;
  13002. }
  13003. // 农历年
  13004. var year = i;
  13005. var leap = this.leapMonth(i); // 闰哪个月
  13006. var isLeap = false;
  13007. // 效验闰月
  13008. for (i = 1; i < 13 && offset > 0; i++) {
  13009. // 闰月
  13010. if (leap > 0 && i == leap + 1 && isLeap == false) {
  13011. --i;
  13012. isLeap = true;temp = this.leapDays(year); // 计算农历闰月天数
  13013. } else {
  13014. temp = this.monthDays(year, i); // 计算农历普通月天数
  13015. }
  13016. // 解除闰月
  13017. if (isLeap == true && i == leap + 1) {isLeap = false;}
  13018. offset -= temp;
  13019. }
  13020. // 闰月导致数组下标重叠取反
  13021. if (offset == 0 && leap > 0 && i == leap + 1) {
  13022. if (isLeap) {
  13023. isLeap = false;
  13024. } else {
  13025. isLeap = true;--i;
  13026. }
  13027. }
  13028. if (offset < 0) {
  13029. offset += temp;--i;
  13030. }
  13031. // 农历月
  13032. var month = i;
  13033. // 农历日
  13034. var day = offset + 1;
  13035. // 天干地支处理
  13036. var sm = m - 1;
  13037. var gzY = this.toGanZhiYear(year);
  13038. // 当月的两个节气
  13039. // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year`
  13040. var firstNode = this.getTerm(y, m * 2 - 1); // 返回当月「节」为几日开始
  13041. var secondNode = this.getTerm(y, m * 2); // 返回当月「节」为几日开始
  13042. // 依据12节气修正干支月
  13043. var gzM = this.toGanZhi((y - 1900) * 12 + m + 11);
  13044. if (d >= firstNode) {
  13045. gzM = this.toGanZhi((y - 1900) * 12 + m + 12);
  13046. }
  13047. // 传入的日期的节气与否
  13048. var isTerm = false;
  13049. var Term = null;
  13050. if (firstNode == d) {
  13051. isTerm = true;
  13052. Term = this.solarTerm[m * 2 - 2];
  13053. }
  13054. if (secondNode == d) {
  13055. isTerm = true;
  13056. Term = this.solarTerm[m * 2 - 1];
  13057. }
  13058. // 日柱 当月一日与 1900/1/1 相差天数
  13059. var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;
  13060. var gzD = this.toGanZhi(dayCyclical + d - 1);
  13061. // 该日期所属的星座
  13062. var astro = this.toAstro(m, d);
  13063. return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? "\u95F0" : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': "\u661F\u671F" + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro };
  13064. },
  13065. /**
  13066. * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON
  13067. * @param y lunar year
  13068. * @param m lunar month
  13069. * @param d lunar day
  13070. * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可]
  13071. * @return JSON object
  13072. * @eg:console.log(calendar.lunar2solar(1987,9,10));
  13073. */
  13074. lunar2solar: function lunar2solar(y, m, d, isLeapMonth) {// 参数区间1900.1.31~2100.12.1
  13075. var isLeapMonth = !!isLeapMonth;
  13076. var leapOffset = 0;
  13077. var leapMonth = this.leapMonth(y);
  13078. var leapDay = this.leapDays(y);
  13079. if (isLeapMonth && leapMonth != m) {return -1;} // 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同
  13080. if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) {return -1;} // 超出了最大极限值
  13081. var day = this.monthDays(y, m);
  13082. var _day = day;
  13083. // bugFix 2016-9-25
  13084. // if month is leap, _day use leapDays method
  13085. if (isLeapMonth) {
  13086. _day = this.leapDays(y, m);
  13087. }
  13088. if (y < 1900 || y > 2100 || d > _day) {return -1;} // 参数合法性效验
  13089. // 计算农历的时间差
  13090. var offset = 0;
  13091. for (var i = 1900; i < y; i++) {
  13092. offset += this.lYearDays(i);
  13093. }
  13094. var leap = 0;var isAdd = false;
  13095. for (var i = 1; i < m; i++) {
  13096. leap = this.leapMonth(y);
  13097. if (!isAdd) {// 处理闰月
  13098. if (leap <= i && leap > 0) {
  13099. offset += this.leapDays(y);isAdd = true;
  13100. }
  13101. }
  13102. offset += this.monthDays(y, i);
  13103. }
  13104. // 转换闰月农历 需补充该年闰月的前一个月的时差
  13105. if (isLeapMonth) {offset += day;}
  13106. // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点)
  13107. var stmap = Date.UTC(1900, 1, 30, 0, 0, 0);
  13108. var calObj = new Date((offset + d - 31) * 86400000 + stmap);
  13109. var cY = calObj.getUTCFullYear();
  13110. var cM = calObj.getUTCMonth() + 1;
  13111. var cD = calObj.getUTCDate();
  13112. return this.solar2lunar(cY, cM, cD);
  13113. } };var _default =
  13114. calendar;exports.default = _default;
  13115. /***/ }),
  13116. /***/ 4:
  13117. /*!******************************************************************************************!*\
  13118. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***!
  13119. \******************************************************************************************/
  13120. /*! exports provided: default */
  13121. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  13122. "use strict";
  13123. __webpack_require__.r(__webpack_exports__);
  13124. /* WEBPACK VAR INJECTION */(function(global) {/*!
  13125. * Vue.js v2.6.11
  13126. * (c) 2014-2022 Evan You
  13127. * Released under the MIT License.
  13128. */
  13129. /* */
  13130. var emptyObject = Object.freeze({});
  13131. // These helpers produce better VM code in JS engines due to their
  13132. // explicitness and function inlining.
  13133. function isUndef (v) {
  13134. return v === undefined || v === null
  13135. }
  13136. function isDef (v) {
  13137. return v !== undefined && v !== null
  13138. }
  13139. function isTrue (v) {
  13140. return v === true
  13141. }
  13142. function isFalse (v) {
  13143. return v === false
  13144. }
  13145. /**
  13146. * Check if value is primitive.
  13147. */
  13148. function isPrimitive (value) {
  13149. return (
  13150. typeof value === 'string' ||
  13151. typeof value === 'number' ||
  13152. // $flow-disable-line
  13153. typeof value === 'symbol' ||
  13154. typeof value === 'boolean'
  13155. )
  13156. }
  13157. /**
  13158. * Quick object check - this is primarily used to tell
  13159. * Objects from primitive values when we know the value
  13160. * is a JSON-compliant type.
  13161. */
  13162. function isObject (obj) {
  13163. return obj !== null && typeof obj === 'object'
  13164. }
  13165. /**
  13166. * Get the raw type string of a value, e.g., [object Object].
  13167. */
  13168. var _toString = Object.prototype.toString;
  13169. function toRawType (value) {
  13170. return _toString.call(value).slice(8, -1)
  13171. }
  13172. /**
  13173. * Strict object type check. Only returns true
  13174. * for plain JavaScript objects.
  13175. */
  13176. function isPlainObject (obj) {
  13177. return _toString.call(obj) === '[object Object]'
  13178. }
  13179. function isRegExp (v) {
  13180. return _toString.call(v) === '[object RegExp]'
  13181. }
  13182. /**
  13183. * Check if val is a valid array index.
  13184. */
  13185. function isValidArrayIndex (val) {
  13186. var n = parseFloat(String(val));
  13187. return n >= 0 && Math.floor(n) === n && isFinite(val)
  13188. }
  13189. function isPromise (val) {
  13190. return (
  13191. isDef(val) &&
  13192. typeof val.then === 'function' &&
  13193. typeof val.catch === 'function'
  13194. )
  13195. }
  13196. /**
  13197. * Convert a value to a string that is actually rendered.
  13198. */
  13199. function toString (val) {
  13200. return val == null
  13201. ? ''
  13202. : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
  13203. ? JSON.stringify(val, null, 2)
  13204. : String(val)
  13205. }
  13206. /**
  13207. * Convert an input value to a number for persistence.
  13208. * If the conversion fails, return original string.
  13209. */
  13210. function toNumber (val) {
  13211. var n = parseFloat(val);
  13212. return isNaN(n) ? val : n
  13213. }
  13214. /**
  13215. * Make a map and return a function for checking if a key
  13216. * is in that map.
  13217. */
  13218. function makeMap (
  13219. str,
  13220. expectsLowerCase
  13221. ) {
  13222. var map = Object.create(null);
  13223. var list = str.split(',');
  13224. for (var i = 0; i < list.length; i++) {
  13225. map[list[i]] = true;
  13226. }
  13227. return expectsLowerCase
  13228. ? function (val) { return map[val.toLowerCase()]; }
  13229. : function (val) { return map[val]; }
  13230. }
  13231. /**
  13232. * Check if a tag is a built-in tag.
  13233. */
  13234. var isBuiltInTag = makeMap('slot,component', true);
  13235. /**
  13236. * Check if an attribute is a reserved attribute.
  13237. */
  13238. var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
  13239. /**
  13240. * Remove an item from an array.
  13241. */
  13242. function remove (arr, item) {
  13243. if (arr.length) {
  13244. var index = arr.indexOf(item);
  13245. if (index > -1) {
  13246. return arr.splice(index, 1)
  13247. }
  13248. }
  13249. }
  13250. /**
  13251. * Check whether an object has the property.
  13252. */
  13253. var hasOwnProperty = Object.prototype.hasOwnProperty;
  13254. function hasOwn (obj, key) {
  13255. return hasOwnProperty.call(obj, key)
  13256. }
  13257. /**
  13258. * Create a cached version of a pure function.
  13259. */
  13260. function cached (fn) {
  13261. var cache = Object.create(null);
  13262. return (function cachedFn (str) {
  13263. var hit = cache[str];
  13264. return hit || (cache[str] = fn(str))
  13265. })
  13266. }
  13267. /**
  13268. * Camelize a hyphen-delimited string.
  13269. */
  13270. var camelizeRE = /-(\w)/g;
  13271. var camelize = cached(function (str) {
  13272. return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
  13273. });
  13274. /**
  13275. * Capitalize a string.
  13276. */
  13277. var capitalize = cached(function (str) {
  13278. return str.charAt(0).toUpperCase() + str.slice(1)
  13279. });
  13280. /**
  13281. * Hyphenate a camelCase string.
  13282. */
  13283. var hyphenateRE = /\B([A-Z])/g;
  13284. var hyphenate = cached(function (str) {
  13285. return str.replace(hyphenateRE, '-$1').toLowerCase()
  13286. });
  13287. /**
  13288. * Simple bind polyfill for environments that do not support it,
  13289. * e.g., PhantomJS 1.x. Technically, we don't need this anymore
  13290. * since native bind is now performant enough in most browsers.
  13291. * But removing it would mean breaking code that was able to run in
  13292. * PhantomJS 1.x, so this must be kept for backward compatibility.
  13293. */
  13294. /* istanbul ignore next */
  13295. function polyfillBind (fn, ctx) {
  13296. function boundFn (a) {
  13297. var l = arguments.length;
  13298. return l
  13299. ? l > 1
  13300. ? fn.apply(ctx, arguments)
  13301. : fn.call(ctx, a)
  13302. : fn.call(ctx)
  13303. }
  13304. boundFn._length = fn.length;
  13305. return boundFn
  13306. }
  13307. function nativeBind (fn, ctx) {
  13308. return fn.bind(ctx)
  13309. }
  13310. var bind = Function.prototype.bind
  13311. ? nativeBind
  13312. : polyfillBind;
  13313. /**
  13314. * Convert an Array-like object to a real Array.
  13315. */
  13316. function toArray (list, start) {
  13317. start = start || 0;
  13318. var i = list.length - start;
  13319. var ret = new Array(i);
  13320. while (i--) {
  13321. ret[i] = list[i + start];
  13322. }
  13323. return ret
  13324. }
  13325. /**
  13326. * Mix properties into target object.
  13327. */
  13328. function extend (to, _from) {
  13329. for (var key in _from) {
  13330. to[key] = _from[key];
  13331. }
  13332. return to
  13333. }
  13334. /**
  13335. * Merge an Array of Objects into a single Object.
  13336. */
  13337. function toObject (arr) {
  13338. var res = {};
  13339. for (var i = 0; i < arr.length; i++) {
  13340. if (arr[i]) {
  13341. extend(res, arr[i]);
  13342. }
  13343. }
  13344. return res
  13345. }
  13346. /* eslint-disable no-unused-vars */
  13347. /**
  13348. * Perform no operation.
  13349. * Stubbing args to make Flow happy without leaving useless transpiled code
  13350. * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
  13351. */
  13352. function noop (a, b, c) {}
  13353. /**
  13354. * Always return false.
  13355. */
  13356. var no = function (a, b, c) { return false; };
  13357. /* eslint-enable no-unused-vars */
  13358. /**
  13359. * Return the same value.
  13360. */
  13361. var identity = function (_) { return _; };
  13362. /**
  13363. * Check if two values are loosely equal - that is,
  13364. * if they are plain objects, do they have the same shape?
  13365. */
  13366. function looseEqual (a, b) {
  13367. if (a === b) { return true }
  13368. var isObjectA = isObject(a);
  13369. var isObjectB = isObject(b);
  13370. if (isObjectA && isObjectB) {
  13371. try {
  13372. var isArrayA = Array.isArray(a);
  13373. var isArrayB = Array.isArray(b);
  13374. if (isArrayA && isArrayB) {
  13375. return a.length === b.length && a.every(function (e, i) {
  13376. return looseEqual(e, b[i])
  13377. })
  13378. } else if (a instanceof Date && b instanceof Date) {
  13379. return a.getTime() === b.getTime()
  13380. } else if (!isArrayA && !isArrayB) {
  13381. var keysA = Object.keys(a);
  13382. var keysB = Object.keys(b);
  13383. return keysA.length === keysB.length && keysA.every(function (key) {
  13384. return looseEqual(a[key], b[key])
  13385. })
  13386. } else {
  13387. /* istanbul ignore next */
  13388. return false
  13389. }
  13390. } catch (e) {
  13391. /* istanbul ignore next */
  13392. return false
  13393. }
  13394. } else if (!isObjectA && !isObjectB) {
  13395. return String(a) === String(b)
  13396. } else {
  13397. return false
  13398. }
  13399. }
  13400. /**
  13401. * Return the first index at which a loosely equal value can be
  13402. * found in the array (if value is a plain object, the array must
  13403. * contain an object of the same shape), or -1 if it is not present.
  13404. */
  13405. function looseIndexOf (arr, val) {
  13406. for (var i = 0; i < arr.length; i++) {
  13407. if (looseEqual(arr[i], val)) { return i }
  13408. }
  13409. return -1
  13410. }
  13411. /**
  13412. * Ensure a function is called only once.
  13413. */
  13414. function once (fn) {
  13415. var called = false;
  13416. return function () {
  13417. if (!called) {
  13418. called = true;
  13419. fn.apply(this, arguments);
  13420. }
  13421. }
  13422. }
  13423. var ASSET_TYPES = [
  13424. 'component',
  13425. 'directive',
  13426. 'filter'
  13427. ];
  13428. var LIFECYCLE_HOOKS = [
  13429. 'beforeCreate',
  13430. 'created',
  13431. 'beforeMount',
  13432. 'mounted',
  13433. 'beforeUpdate',
  13434. 'updated',
  13435. 'beforeDestroy',
  13436. 'destroyed',
  13437. 'activated',
  13438. 'deactivated',
  13439. 'errorCaptured',
  13440. 'serverPrefetch'
  13441. ];
  13442. /* */
  13443. var config = ({
  13444. /**
  13445. * Option merge strategies (used in core/util/options)
  13446. */
  13447. // $flow-disable-line
  13448. optionMergeStrategies: Object.create(null),
  13449. /**
  13450. * Whether to suppress warnings.
  13451. */
  13452. silent: false,
  13453. /**
  13454. * Show production mode tip message on boot?
  13455. */
  13456. productionTip: "development" !== 'production',
  13457. /**
  13458. * Whether to enable devtools
  13459. */
  13460. devtools: "development" !== 'production',
  13461. /**
  13462. * Whether to record perf
  13463. */
  13464. performance: false,
  13465. /**
  13466. * Error handler for watcher errors
  13467. */
  13468. errorHandler: null,
  13469. /**
  13470. * Warn handler for watcher warns
  13471. */
  13472. warnHandler: null,
  13473. /**
  13474. * Ignore certain custom elements
  13475. */
  13476. ignoredElements: [],
  13477. /**
  13478. * Custom user key aliases for v-on
  13479. */
  13480. // $flow-disable-line
  13481. keyCodes: Object.create(null),
  13482. /**
  13483. * Check if a tag is reserved so that it cannot be registered as a
  13484. * component. This is platform-dependent and may be overwritten.
  13485. */
  13486. isReservedTag: no,
  13487. /**
  13488. * Check if an attribute is reserved so that it cannot be used as a component
  13489. * prop. This is platform-dependent and may be overwritten.
  13490. */
  13491. isReservedAttr: no,
  13492. /**
  13493. * Check if a tag is an unknown element.
  13494. * Platform-dependent.
  13495. */
  13496. isUnknownElement: no,
  13497. /**
  13498. * Get the namespace of an element
  13499. */
  13500. getTagNamespace: noop,
  13501. /**
  13502. * Parse the real tag name for the specific platform.
  13503. */
  13504. parsePlatformTagName: identity,
  13505. /**
  13506. * Check if an attribute must be bound using property, e.g. value
  13507. * Platform-dependent.
  13508. */
  13509. mustUseProp: no,
  13510. /**
  13511. * Perform updates asynchronously. Intended to be used by Vue Test Utils
  13512. * This will significantly reduce performance if set to false.
  13513. */
  13514. async: true,
  13515. /**
  13516. * Exposed for legacy reasons
  13517. */
  13518. _lifecycleHooks: LIFECYCLE_HOOKS
  13519. });
  13520. /* */
  13521. /**
  13522. * unicode letters used for parsing html tags, component names and property paths.
  13523. * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
  13524. * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
  13525. */
  13526. var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
  13527. /**
  13528. * Check if a string starts with $ or _
  13529. */
  13530. function isReserved (str) {
  13531. var c = (str + '').charCodeAt(0);
  13532. return c === 0x24 || c === 0x5F
  13533. }
  13534. /**
  13535. * Define a property.
  13536. */
  13537. function def (obj, key, val, enumerable) {
  13538. Object.defineProperty(obj, key, {
  13539. value: val,
  13540. enumerable: !!enumerable,
  13541. writable: true,
  13542. configurable: true
  13543. });
  13544. }
  13545. /**
  13546. * Parse simple path.
  13547. */
  13548. var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
  13549. function parsePath (path) {
  13550. if (bailRE.test(path)) {
  13551. return
  13552. }
  13553. var segments = path.split('.');
  13554. return function (obj) {
  13555. for (var i = 0; i < segments.length; i++) {
  13556. if (!obj) { return }
  13557. obj = obj[segments[i]];
  13558. }
  13559. return obj
  13560. }
  13561. }
  13562. /* */
  13563. // can we use __proto__?
  13564. var hasProto = '__proto__' in {};
  13565. // Browser environment sniffing
  13566. var inBrowser = typeof window !== 'undefined';
  13567. var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
  13568. var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
  13569. var UA = inBrowser && window.navigator.userAgent.toLowerCase();
  13570. var isIE = UA && /msie|trident/.test(UA);
  13571. var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
  13572. var isEdge = UA && UA.indexOf('edge/') > 0;
  13573. var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
  13574. var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
  13575. var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
  13576. var isPhantomJS = UA && /phantomjs/.test(UA);
  13577. var isFF = UA && UA.match(/firefox\/(\d+)/);
  13578. // Firefox has a "watch" function on Object.prototype...
  13579. var nativeWatch = ({}).watch;
  13580. if (inBrowser) {
  13581. try {
  13582. var opts = {};
  13583. Object.defineProperty(opts, 'passive', ({
  13584. get: function get () {
  13585. }
  13586. })); // https://github.com/facebook/flow/issues/285
  13587. window.addEventListener('test-passive', null, opts);
  13588. } catch (e) {}
  13589. }
  13590. // this needs to be lazy-evaled because vue may be required before
  13591. // vue-server-renderer can set VUE_ENV
  13592. var _isServer;
  13593. var isServerRendering = function () {
  13594. if (_isServer === undefined) {
  13595. /* istanbul ignore if */
  13596. if (!inBrowser && !inWeex && typeof global !== 'undefined') {
  13597. // detect presence of vue-server-renderer and avoid
  13598. // Webpack shimming the process
  13599. _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
  13600. } else {
  13601. _isServer = false;
  13602. }
  13603. }
  13604. return _isServer
  13605. };
  13606. // detect devtools
  13607. var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
  13608. /* istanbul ignore next */
  13609. function isNative (Ctor) {
  13610. return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
  13611. }
  13612. var hasSymbol =
  13613. typeof Symbol !== 'undefined' && isNative(Symbol) &&
  13614. typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
  13615. var _Set;
  13616. /* istanbul ignore if */ // $flow-disable-line
  13617. if (typeof Set !== 'undefined' && isNative(Set)) {
  13618. // use native Set when available.
  13619. _Set = Set;
  13620. } else {
  13621. // a non-standard Set polyfill that only works with primitive keys.
  13622. _Set = /*@__PURE__*/(function () {
  13623. function Set () {
  13624. this.set = Object.create(null);
  13625. }
  13626. Set.prototype.has = function has (key) {
  13627. return this.set[key] === true
  13628. };
  13629. Set.prototype.add = function add (key) {
  13630. this.set[key] = true;
  13631. };
  13632. Set.prototype.clear = function clear () {
  13633. this.set = Object.create(null);
  13634. };
  13635. return Set;
  13636. }());
  13637. }
  13638. /* */
  13639. var warn = noop;
  13640. var tip = noop;
  13641. var generateComponentTrace = (noop); // work around flow check
  13642. var formatComponentName = (noop);
  13643. if (true) {
  13644. var hasConsole = typeof console !== 'undefined';
  13645. var classifyRE = /(?:^|[-_])(\w)/g;
  13646. var classify = function (str) { return str
  13647. .replace(classifyRE, function (c) { return c.toUpperCase(); })
  13648. .replace(/[-_]/g, ''); };
  13649. warn = function (msg, vm) {
  13650. var trace = vm ? generateComponentTrace(vm) : '';
  13651. if (config.warnHandler) {
  13652. config.warnHandler.call(null, msg, vm, trace);
  13653. } else if (hasConsole && (!config.silent)) {
  13654. console.error(("[Vue warn]: " + msg + trace));
  13655. }
  13656. };
  13657. tip = function (msg, vm) {
  13658. if (hasConsole && (!config.silent)) {
  13659. console.warn("[Vue tip]: " + msg + (
  13660. vm ? generateComponentTrace(vm) : ''
  13661. ));
  13662. }
  13663. };
  13664. formatComponentName = function (vm, includeFile) {
  13665. if (vm.$root === vm) {
  13666. if (vm.$options && vm.$options.__file) { // fixed by xxxxxx
  13667. return ('') + vm.$options.__file
  13668. }
  13669. return '<Root>'
  13670. }
  13671. var options = typeof vm === 'function' && vm.cid != null
  13672. ? vm.options
  13673. : vm._isVue
  13674. ? vm.$options || vm.constructor.options
  13675. : vm;
  13676. var name = options.name || options._componentTag;
  13677. var file = options.__file;
  13678. if (!name && file) {
  13679. var match = file.match(/([^/\\]+)\.vue$/);
  13680. name = match && match[1];
  13681. }
  13682. return (
  13683. (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
  13684. (file && includeFile !== false ? (" at " + file) : '')
  13685. )
  13686. };
  13687. var repeat = function (str, n) {
  13688. var res = '';
  13689. while (n) {
  13690. if (n % 2 === 1) { res += str; }
  13691. if (n > 1) { str += str; }
  13692. n >>= 1;
  13693. }
  13694. return res
  13695. };
  13696. generateComponentTrace = function (vm) {
  13697. if (vm._isVue && vm.$parent) {
  13698. var tree = [];
  13699. var currentRecursiveSequence = 0;
  13700. while (vm && vm.$options.name !== 'PageBody') {
  13701. if (tree.length > 0) {
  13702. var last = tree[tree.length - 1];
  13703. if (last.constructor === vm.constructor) {
  13704. currentRecursiveSequence++;
  13705. vm = vm.$parent;
  13706. continue
  13707. } else if (currentRecursiveSequence > 0) {
  13708. tree[tree.length - 1] = [last, currentRecursiveSequence];
  13709. currentRecursiveSequence = 0;
  13710. }
  13711. }
  13712. !vm.$options.isReserved && tree.push(vm);
  13713. vm = vm.$parent;
  13714. }
  13715. return '\n\nfound in\n\n' + tree
  13716. .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
  13717. ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
  13718. : formatComponentName(vm))); })
  13719. .join('\n')
  13720. } else {
  13721. return ("\n\n(found in " + (formatComponentName(vm)) + ")")
  13722. }
  13723. };
  13724. }
  13725. /* */
  13726. var uid = 0;
  13727. /**
  13728. * A dep is an observable that can have multiple
  13729. * directives subscribing to it.
  13730. */
  13731. var Dep = function Dep () {
  13732. this.id = uid++;
  13733. this.subs = [];
  13734. };
  13735. Dep.prototype.addSub = function addSub (sub) {
  13736. this.subs.push(sub);
  13737. };
  13738. Dep.prototype.removeSub = function removeSub (sub) {
  13739. remove(this.subs, sub);
  13740. };
  13741. Dep.prototype.depend = function depend () {
  13742. if (Dep.SharedObject.target) {
  13743. Dep.SharedObject.target.addDep(this);
  13744. }
  13745. };
  13746. Dep.prototype.notify = function notify () {
  13747. // stabilize the subscriber list first
  13748. var subs = this.subs.slice();
  13749. if ( true && !config.async) {
  13750. // subs aren't sorted in scheduler if not running async
  13751. // we need to sort them now to make sure they fire in correct
  13752. // order
  13753. subs.sort(function (a, b) { return a.id - b.id; });
  13754. }
  13755. for (var i = 0, l = subs.length; i < l; i++) {
  13756. subs[i].update();
  13757. }
  13758. };
  13759. // The current target watcher being evaluated.
  13760. // This is globally unique because only one watcher
  13761. // can be evaluated at a time.
  13762. // fixed by xxxxxx (nvue shared vuex)
  13763. /* eslint-disable no-undef */
  13764. Dep.SharedObject = {};
  13765. Dep.SharedObject.target = null;
  13766. Dep.SharedObject.targetStack = [];
  13767. function pushTarget (target) {
  13768. Dep.SharedObject.targetStack.push(target);
  13769. Dep.SharedObject.target = target;
  13770. Dep.target = target;
  13771. }
  13772. function popTarget () {
  13773. Dep.SharedObject.targetStack.pop();
  13774. Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];
  13775. Dep.target = Dep.SharedObject.target;
  13776. }
  13777. /* */
  13778. var VNode = function VNode (
  13779. tag,
  13780. data,
  13781. children,
  13782. text,
  13783. elm,
  13784. context,
  13785. componentOptions,
  13786. asyncFactory
  13787. ) {
  13788. this.tag = tag;
  13789. this.data = data;
  13790. this.children = children;
  13791. this.text = text;
  13792. this.elm = elm;
  13793. this.ns = undefined;
  13794. this.context = context;
  13795. this.fnContext = undefined;
  13796. this.fnOptions = undefined;
  13797. this.fnScopeId = undefined;
  13798. this.key = data && data.key;
  13799. this.componentOptions = componentOptions;
  13800. this.componentInstance = undefined;
  13801. this.parent = undefined;
  13802. this.raw = false;
  13803. this.isStatic = false;
  13804. this.isRootInsert = true;
  13805. this.isComment = false;
  13806. this.isCloned = false;
  13807. this.isOnce = false;
  13808. this.asyncFactory = asyncFactory;
  13809. this.asyncMeta = undefined;
  13810. this.isAsyncPlaceholder = false;
  13811. };
  13812. var prototypeAccessors = { child: { configurable: true } };
  13813. // DEPRECATED: alias for componentInstance for backwards compat.
  13814. /* istanbul ignore next */
  13815. prototypeAccessors.child.get = function () {
  13816. return this.componentInstance
  13817. };
  13818. Object.defineProperties( VNode.prototype, prototypeAccessors );
  13819. var createEmptyVNode = function (text) {
  13820. if ( text === void 0 ) text = '';
  13821. var node = new VNode();
  13822. node.text = text;
  13823. node.isComment = true;
  13824. return node
  13825. };
  13826. function createTextVNode (val) {
  13827. return new VNode(undefined, undefined, undefined, String(val))
  13828. }
  13829. // optimized shallow clone
  13830. // used for static nodes and slot nodes because they may be reused across
  13831. // multiple renders, cloning them avoids errors when DOM manipulations rely
  13832. // on their elm reference.
  13833. function cloneVNode (vnode) {
  13834. var cloned = new VNode(
  13835. vnode.tag,
  13836. vnode.data,
  13837. // #7975
  13838. // clone children array to avoid mutating original in case of cloning
  13839. // a child.
  13840. vnode.children && vnode.children.slice(),
  13841. vnode.text,
  13842. vnode.elm,
  13843. vnode.context,
  13844. vnode.componentOptions,
  13845. vnode.asyncFactory
  13846. );
  13847. cloned.ns = vnode.ns;
  13848. cloned.isStatic = vnode.isStatic;
  13849. cloned.key = vnode.key;
  13850. cloned.isComment = vnode.isComment;
  13851. cloned.fnContext = vnode.fnContext;
  13852. cloned.fnOptions = vnode.fnOptions;
  13853. cloned.fnScopeId = vnode.fnScopeId;
  13854. cloned.asyncMeta = vnode.asyncMeta;
  13855. cloned.isCloned = true;
  13856. return cloned
  13857. }
  13858. /*
  13859. * not type checking this file because flow doesn't play well with
  13860. * dynamically accessing methods on Array prototype
  13861. */
  13862. var arrayProto = Array.prototype;
  13863. var arrayMethods = Object.create(arrayProto);
  13864. var methodsToPatch = [
  13865. 'push',
  13866. 'pop',
  13867. 'shift',
  13868. 'unshift',
  13869. 'splice',
  13870. 'sort',
  13871. 'reverse'
  13872. ];
  13873. /**
  13874. * Intercept mutating methods and emit events
  13875. */
  13876. methodsToPatch.forEach(function (method) {
  13877. // cache original method
  13878. var original = arrayProto[method];
  13879. def(arrayMethods, method, function mutator () {
  13880. var args = [], len = arguments.length;
  13881. while ( len-- ) args[ len ] = arguments[ len ];
  13882. var result = original.apply(this, args);
  13883. var ob = this.__ob__;
  13884. var inserted;
  13885. switch (method) {
  13886. case 'push':
  13887. case 'unshift':
  13888. inserted = args;
  13889. break
  13890. case 'splice':
  13891. inserted = args.slice(2);
  13892. break
  13893. }
  13894. if (inserted) { ob.observeArray(inserted); }
  13895. // notify change
  13896. ob.dep.notify();
  13897. return result
  13898. });
  13899. });
  13900. /* */
  13901. var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
  13902. /**
  13903. * In some cases we may want to disable observation inside a component's
  13904. * update computation.
  13905. */
  13906. var shouldObserve = true;
  13907. function toggleObserving (value) {
  13908. shouldObserve = value;
  13909. }
  13910. /**
  13911. * Observer class that is attached to each observed
  13912. * object. Once attached, the observer converts the target
  13913. * object's property keys into getter/setters that
  13914. * collect dependencies and dispatch updates.
  13915. */
  13916. var Observer = function Observer (value) {
  13917. this.value = value;
  13918. this.dep = new Dep();
  13919. this.vmCount = 0;
  13920. def(value, '__ob__', this);
  13921. if (Array.isArray(value)) {
  13922. if (hasProto) {
  13923. {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑
  13924. if(value.push !== value.__proto__.push){
  13925. copyAugment(value, arrayMethods, arrayKeys);
  13926. } else {
  13927. protoAugment(value, arrayMethods);
  13928. }
  13929. }
  13930. } else {
  13931. copyAugment(value, arrayMethods, arrayKeys);
  13932. }
  13933. this.observeArray(value);
  13934. } else {
  13935. this.walk(value);
  13936. }
  13937. };
  13938. /**
  13939. * Walk through all properties and convert them into
  13940. * getter/setters. This method should only be called when
  13941. * value type is Object.
  13942. */
  13943. Observer.prototype.walk = function walk (obj) {
  13944. var keys = Object.keys(obj);
  13945. for (var i = 0; i < keys.length; i++) {
  13946. defineReactive$$1(obj, keys[i]);
  13947. }
  13948. };
  13949. /**
  13950. * Observe a list of Array items.
  13951. */
  13952. Observer.prototype.observeArray = function observeArray (items) {
  13953. for (var i = 0, l = items.length; i < l; i++) {
  13954. observe(items[i]);
  13955. }
  13956. };
  13957. // helpers
  13958. /**
  13959. * Augment a target Object or Array by intercepting
  13960. * the prototype chain using __proto__
  13961. */
  13962. function protoAugment (target, src) {
  13963. /* eslint-disable no-proto */
  13964. target.__proto__ = src;
  13965. /* eslint-enable no-proto */
  13966. }
  13967. /**
  13968. * Augment a target Object or Array by defining
  13969. * hidden properties.
  13970. */
  13971. /* istanbul ignore next */
  13972. function copyAugment (target, src, keys) {
  13973. for (var i = 0, l = keys.length; i < l; i++) {
  13974. var key = keys[i];
  13975. def(target, key, src[key]);
  13976. }
  13977. }
  13978. /**
  13979. * Attempt to create an observer instance for a value,
  13980. * returns the new observer if successfully observed,
  13981. * or the existing observer if the value already has one.
  13982. */
  13983. function observe (value, asRootData) {
  13984. if (!isObject(value) || value instanceof VNode) {
  13985. return
  13986. }
  13987. var ob;
  13988. if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
  13989. ob = value.__ob__;
  13990. } else if (
  13991. shouldObserve &&
  13992. !isServerRendering() &&
  13993. (Array.isArray(value) || isPlainObject(value)) &&
  13994. Object.isExtensible(value) &&
  13995. !value._isVue
  13996. ) {
  13997. ob = new Observer(value);
  13998. }
  13999. if (asRootData && ob) {
  14000. ob.vmCount++;
  14001. }
  14002. return ob
  14003. }
  14004. /**
  14005. * Define a reactive property on an Object.
  14006. */
  14007. function defineReactive$$1 (
  14008. obj,
  14009. key,
  14010. val,
  14011. customSetter,
  14012. shallow
  14013. ) {
  14014. var dep = new Dep();
  14015. var property = Object.getOwnPropertyDescriptor(obj, key);
  14016. if (property && property.configurable === false) {
  14017. return
  14018. }
  14019. // cater for pre-defined getter/setters
  14020. var getter = property && property.get;
  14021. var setter = property && property.set;
  14022. if ((!getter || setter) && arguments.length === 2) {
  14023. val = obj[key];
  14024. }
  14025. var childOb = !shallow && observe(val);
  14026. Object.defineProperty(obj, key, {
  14027. enumerable: true,
  14028. configurable: true,
  14029. get: function reactiveGetter () {
  14030. var value = getter ? getter.call(obj) : val;
  14031. if (Dep.SharedObject.target) { // fixed by xxxxxx
  14032. dep.depend();
  14033. if (childOb) {
  14034. childOb.dep.depend();
  14035. if (Array.isArray(value)) {
  14036. dependArray(value);
  14037. }
  14038. }
  14039. }
  14040. return value
  14041. },
  14042. set: function reactiveSetter (newVal) {
  14043. var value = getter ? getter.call(obj) : val;
  14044. /* eslint-disable no-self-compare */
  14045. if (newVal === value || (newVal !== newVal && value !== value)) {
  14046. return
  14047. }
  14048. /* eslint-enable no-self-compare */
  14049. if ( true && customSetter) {
  14050. customSetter();
  14051. }
  14052. // #7981: for accessor properties without setter
  14053. if (getter && !setter) { return }
  14054. if (setter) {
  14055. setter.call(obj, newVal);
  14056. } else {
  14057. val = newVal;
  14058. }
  14059. childOb = !shallow && observe(newVal);
  14060. dep.notify();
  14061. }
  14062. });
  14063. }
  14064. /**
  14065. * Set a property on an object. Adds the new property and
  14066. * triggers change notification if the property doesn't
  14067. * already exist.
  14068. */
  14069. function set (target, key, val) {
  14070. if ( true &&
  14071. (isUndef(target) || isPrimitive(target))
  14072. ) {
  14073. warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
  14074. }
  14075. if (Array.isArray(target) && isValidArrayIndex(key)) {
  14076. target.length = Math.max(target.length, key);
  14077. target.splice(key, 1, val);
  14078. return val
  14079. }
  14080. if (key in target && !(key in Object.prototype)) {
  14081. target[key] = val;
  14082. return val
  14083. }
  14084. var ob = (target).__ob__;
  14085. if (target._isVue || (ob && ob.vmCount)) {
  14086. true && warn(
  14087. 'Avoid adding reactive properties to a Vue instance or its root $data ' +
  14088. 'at runtime - declare it upfront in the data option.'
  14089. );
  14090. return val
  14091. }
  14092. if (!ob) {
  14093. target[key] = val;
  14094. return val
  14095. }
  14096. defineReactive$$1(ob.value, key, val);
  14097. ob.dep.notify();
  14098. return val
  14099. }
  14100. /**
  14101. * Delete a property and trigger change if necessary.
  14102. */
  14103. function del (target, key) {
  14104. if ( true &&
  14105. (isUndef(target) || isPrimitive(target))
  14106. ) {
  14107. warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
  14108. }
  14109. if (Array.isArray(target) && isValidArrayIndex(key)) {
  14110. target.splice(key, 1);
  14111. return
  14112. }
  14113. var ob = (target).__ob__;
  14114. if (target._isVue || (ob && ob.vmCount)) {
  14115. true && warn(
  14116. 'Avoid deleting properties on a Vue instance or its root $data ' +
  14117. '- just set it to null.'
  14118. );
  14119. return
  14120. }
  14121. if (!hasOwn(target, key)) {
  14122. return
  14123. }
  14124. delete target[key];
  14125. if (!ob) {
  14126. return
  14127. }
  14128. ob.dep.notify();
  14129. }
  14130. /**
  14131. * Collect dependencies on array elements when the array is touched, since
  14132. * we cannot intercept array element access like property getters.
  14133. */
  14134. function dependArray (value) {
  14135. for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
  14136. e = value[i];
  14137. e && e.__ob__ && e.__ob__.dep.depend();
  14138. if (Array.isArray(e)) {
  14139. dependArray(e);
  14140. }
  14141. }
  14142. }
  14143. /* */
  14144. /**
  14145. * Option overwriting strategies are functions that handle
  14146. * how to merge a parent option value and a child option
  14147. * value into the final value.
  14148. */
  14149. var strats = config.optionMergeStrategies;
  14150. /**
  14151. * Options with restrictions
  14152. */
  14153. if (true) {
  14154. strats.el = strats.propsData = function (parent, child, vm, key) {
  14155. if (!vm) {
  14156. warn(
  14157. "option \"" + key + "\" can only be used during instance " +
  14158. 'creation with the `new` keyword.'
  14159. );
  14160. }
  14161. return defaultStrat(parent, child)
  14162. };
  14163. }
  14164. /**
  14165. * Helper that recursively merges two data objects together.
  14166. */
  14167. function mergeData (to, from) {
  14168. if (!from) { return to }
  14169. var key, toVal, fromVal;
  14170. var keys = hasSymbol
  14171. ? Reflect.ownKeys(from)
  14172. : Object.keys(from);
  14173. for (var i = 0; i < keys.length; i++) {
  14174. key = keys[i];
  14175. // in case the object is already observed...
  14176. if (key === '__ob__') { continue }
  14177. toVal = to[key];
  14178. fromVal = from[key];
  14179. if (!hasOwn(to, key)) {
  14180. set(to, key, fromVal);
  14181. } else if (
  14182. toVal !== fromVal &&
  14183. isPlainObject(toVal) &&
  14184. isPlainObject(fromVal)
  14185. ) {
  14186. mergeData(toVal, fromVal);
  14187. }
  14188. }
  14189. return to
  14190. }
  14191. /**
  14192. * Data
  14193. */
  14194. function mergeDataOrFn (
  14195. parentVal,
  14196. childVal,
  14197. vm
  14198. ) {
  14199. if (!vm) {
  14200. // in a Vue.extend merge, both should be functions
  14201. if (!childVal) {
  14202. return parentVal
  14203. }
  14204. if (!parentVal) {
  14205. return childVal
  14206. }
  14207. // when parentVal & childVal are both present,
  14208. // we need to return a function that returns the
  14209. // merged result of both functions... no need to
  14210. // check if parentVal is a function here because
  14211. // it has to be a function to pass previous merges.
  14212. return function mergedDataFn () {
  14213. return mergeData(
  14214. typeof childVal === 'function' ? childVal.call(this, this) : childVal,
  14215. typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
  14216. )
  14217. }
  14218. } else {
  14219. return function mergedInstanceDataFn () {
  14220. // instance merge
  14221. var instanceData = typeof childVal === 'function'
  14222. ? childVal.call(vm, vm)
  14223. : childVal;
  14224. var defaultData = typeof parentVal === 'function'
  14225. ? parentVal.call(vm, vm)
  14226. : parentVal;
  14227. if (instanceData) {
  14228. return mergeData(instanceData, defaultData)
  14229. } else {
  14230. return defaultData
  14231. }
  14232. }
  14233. }
  14234. }
  14235. strats.data = function (
  14236. parentVal,
  14237. childVal,
  14238. vm
  14239. ) {
  14240. if (!vm) {
  14241. if (childVal && typeof childVal !== 'function') {
  14242. true && warn(
  14243. 'The "data" option should be a function ' +
  14244. 'that returns a per-instance value in component ' +
  14245. 'definitions.',
  14246. vm
  14247. );
  14248. return parentVal
  14249. }
  14250. return mergeDataOrFn(parentVal, childVal)
  14251. }
  14252. return mergeDataOrFn(parentVal, childVal, vm)
  14253. };
  14254. /**
  14255. * Hooks and props are merged as arrays.
  14256. */
  14257. function mergeHook (
  14258. parentVal,
  14259. childVal
  14260. ) {
  14261. var res = childVal
  14262. ? parentVal
  14263. ? parentVal.concat(childVal)
  14264. : Array.isArray(childVal)
  14265. ? childVal
  14266. : [childVal]
  14267. : parentVal;
  14268. return res
  14269. ? dedupeHooks(res)
  14270. : res
  14271. }
  14272. function dedupeHooks (hooks) {
  14273. var res = [];
  14274. for (var i = 0; i < hooks.length; i++) {
  14275. if (res.indexOf(hooks[i]) === -1) {
  14276. res.push(hooks[i]);
  14277. }
  14278. }
  14279. return res
  14280. }
  14281. LIFECYCLE_HOOKS.forEach(function (hook) {
  14282. strats[hook] = mergeHook;
  14283. });
  14284. /**
  14285. * Assets
  14286. *
  14287. * When a vm is present (instance creation), we need to do
  14288. * a three-way merge between constructor options, instance
  14289. * options and parent options.
  14290. */
  14291. function mergeAssets (
  14292. parentVal,
  14293. childVal,
  14294. vm,
  14295. key
  14296. ) {
  14297. var res = Object.create(parentVal || null);
  14298. if (childVal) {
  14299. true && assertObjectType(key, childVal, vm);
  14300. return extend(res, childVal)
  14301. } else {
  14302. return res
  14303. }
  14304. }
  14305. ASSET_TYPES.forEach(function (type) {
  14306. strats[type + 's'] = mergeAssets;
  14307. });
  14308. /**
  14309. * Watchers.
  14310. *
  14311. * Watchers hashes should not overwrite one
  14312. * another, so we merge them as arrays.
  14313. */
  14314. strats.watch = function (
  14315. parentVal,
  14316. childVal,
  14317. vm,
  14318. key
  14319. ) {
  14320. // work around Firefox's Object.prototype.watch...
  14321. if (parentVal === nativeWatch) { parentVal = undefined; }
  14322. if (childVal === nativeWatch) { childVal = undefined; }
  14323. /* istanbul ignore if */
  14324. if (!childVal) { return Object.create(parentVal || null) }
  14325. if (true) {
  14326. assertObjectType(key, childVal, vm);
  14327. }
  14328. if (!parentVal) { return childVal }
  14329. var ret = {};
  14330. extend(ret, parentVal);
  14331. for (var key$1 in childVal) {
  14332. var parent = ret[key$1];
  14333. var child = childVal[key$1];
  14334. if (parent && !Array.isArray(parent)) {
  14335. parent = [parent];
  14336. }
  14337. ret[key$1] = parent
  14338. ? parent.concat(child)
  14339. : Array.isArray(child) ? child : [child];
  14340. }
  14341. return ret
  14342. };
  14343. /**
  14344. * Other object hashes.
  14345. */
  14346. strats.props =
  14347. strats.methods =
  14348. strats.inject =
  14349. strats.computed = function (
  14350. parentVal,
  14351. childVal,
  14352. vm,
  14353. key
  14354. ) {
  14355. if (childVal && "development" !== 'production') {
  14356. assertObjectType(key, childVal, vm);
  14357. }
  14358. if (!parentVal) { return childVal }
  14359. var ret = Object.create(null);
  14360. extend(ret, parentVal);
  14361. if (childVal) { extend(ret, childVal); }
  14362. return ret
  14363. };
  14364. strats.provide = mergeDataOrFn;
  14365. /**
  14366. * Default strategy.
  14367. */
  14368. var defaultStrat = function (parentVal, childVal) {
  14369. return childVal === undefined
  14370. ? parentVal
  14371. : childVal
  14372. };
  14373. /**
  14374. * Validate component names
  14375. */
  14376. function checkComponents (options) {
  14377. for (var key in options.components) {
  14378. validateComponentName(key);
  14379. }
  14380. }
  14381. function validateComponentName (name) {
  14382. if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
  14383. warn(
  14384. 'Invalid component name: "' + name + '". Component names ' +
  14385. 'should conform to valid custom element name in html5 specification.'
  14386. );
  14387. }
  14388. if (isBuiltInTag(name) || config.isReservedTag(name)) {
  14389. warn(
  14390. 'Do not use built-in or reserved HTML elements as component ' +
  14391. 'id: ' + name
  14392. );
  14393. }
  14394. }
  14395. /**
  14396. * Ensure all props option syntax are normalized into the
  14397. * Object-based format.
  14398. */
  14399. function normalizeProps (options, vm) {
  14400. var props = options.props;
  14401. if (!props) { return }
  14402. var res = {};
  14403. var i, val, name;
  14404. if (Array.isArray(props)) {
  14405. i = props.length;
  14406. while (i--) {
  14407. val = props[i];
  14408. if (typeof val === 'string') {
  14409. name = camelize(val);
  14410. res[name] = { type: null };
  14411. } else if (true) {
  14412. warn('props must be strings when using array syntax.');
  14413. }
  14414. }
  14415. } else if (isPlainObject(props)) {
  14416. for (var key in props) {
  14417. val = props[key];
  14418. name = camelize(key);
  14419. res[name] = isPlainObject(val)
  14420. ? val
  14421. : { type: val };
  14422. }
  14423. } else if (true) {
  14424. warn(
  14425. "Invalid value for option \"props\": expected an Array or an Object, " +
  14426. "but got " + (toRawType(props)) + ".",
  14427. vm
  14428. );
  14429. }
  14430. options.props = res;
  14431. }
  14432. /**
  14433. * Normalize all injections into Object-based format
  14434. */
  14435. function normalizeInject (options, vm) {
  14436. var inject = options.inject;
  14437. if (!inject) { return }
  14438. var normalized = options.inject = {};
  14439. if (Array.isArray(inject)) {
  14440. for (var i = 0; i < inject.length; i++) {
  14441. normalized[inject[i]] = { from: inject[i] };
  14442. }
  14443. } else if (isPlainObject(inject)) {
  14444. for (var key in inject) {
  14445. var val = inject[key];
  14446. normalized[key] = isPlainObject(val)
  14447. ? extend({ from: key }, val)
  14448. : { from: val };
  14449. }
  14450. } else if (true) {
  14451. warn(
  14452. "Invalid value for option \"inject\": expected an Array or an Object, " +
  14453. "but got " + (toRawType(inject)) + ".",
  14454. vm
  14455. );
  14456. }
  14457. }
  14458. /**
  14459. * Normalize raw function directives into object format.
  14460. */
  14461. function normalizeDirectives (options) {
  14462. var dirs = options.directives;
  14463. if (dirs) {
  14464. for (var key in dirs) {
  14465. var def$$1 = dirs[key];
  14466. if (typeof def$$1 === 'function') {
  14467. dirs[key] = { bind: def$$1, update: def$$1 };
  14468. }
  14469. }
  14470. }
  14471. }
  14472. function assertObjectType (name, value, vm) {
  14473. if (!isPlainObject(value)) {
  14474. warn(
  14475. "Invalid value for option \"" + name + "\": expected an Object, " +
  14476. "but got " + (toRawType(value)) + ".",
  14477. vm
  14478. );
  14479. }
  14480. }
  14481. /**
  14482. * Merge two option objects into a new one.
  14483. * Core utility used in both instantiation and inheritance.
  14484. */
  14485. function mergeOptions (
  14486. parent,
  14487. child,
  14488. vm
  14489. ) {
  14490. if (true) {
  14491. checkComponents(child);
  14492. }
  14493. if (typeof child === 'function') {
  14494. child = child.options;
  14495. }
  14496. normalizeProps(child, vm);
  14497. normalizeInject(child, vm);
  14498. normalizeDirectives(child);
  14499. // Apply extends and mixins on the child options,
  14500. // but only if it is a raw options object that isn't
  14501. // the result of another mergeOptions call.
  14502. // Only merged options has the _base property.
  14503. if (!child._base) {
  14504. if (child.extends) {
  14505. parent = mergeOptions(parent, child.extends, vm);
  14506. }
  14507. if (child.mixins) {
  14508. for (var i = 0, l = child.mixins.length; i < l; i++) {
  14509. parent = mergeOptions(parent, child.mixins[i], vm);
  14510. }
  14511. }
  14512. }
  14513. var options = {};
  14514. var key;
  14515. for (key in parent) {
  14516. mergeField(key);
  14517. }
  14518. for (key in child) {
  14519. if (!hasOwn(parent, key)) {
  14520. mergeField(key);
  14521. }
  14522. }
  14523. function mergeField (key) {
  14524. var strat = strats[key] || defaultStrat;
  14525. options[key] = strat(parent[key], child[key], vm, key);
  14526. }
  14527. return options
  14528. }
  14529. /**
  14530. * Resolve an asset.
  14531. * This function is used because child instances need access
  14532. * to assets defined in its ancestor chain.
  14533. */
  14534. function resolveAsset (
  14535. options,
  14536. type,
  14537. id,
  14538. warnMissing
  14539. ) {
  14540. /* istanbul ignore if */
  14541. if (typeof id !== 'string') {
  14542. return
  14543. }
  14544. var assets = options[type];
  14545. // check local registration variations first
  14546. if (hasOwn(assets, id)) { return assets[id] }
  14547. var camelizedId = camelize(id);
  14548. if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
  14549. var PascalCaseId = capitalize(camelizedId);
  14550. if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
  14551. // fallback to prototype chain
  14552. var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
  14553. if ( true && warnMissing && !res) {
  14554. warn(
  14555. 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
  14556. options
  14557. );
  14558. }
  14559. return res
  14560. }
  14561. /* */
  14562. function validateProp (
  14563. key,
  14564. propOptions,
  14565. propsData,
  14566. vm
  14567. ) {
  14568. var prop = propOptions[key];
  14569. var absent = !hasOwn(propsData, key);
  14570. var value = propsData[key];
  14571. // boolean casting
  14572. var booleanIndex = getTypeIndex(Boolean, prop.type);
  14573. if (booleanIndex > -1) {
  14574. if (absent && !hasOwn(prop, 'default')) {
  14575. value = false;
  14576. } else if (value === '' || value === hyphenate(key)) {
  14577. // only cast empty string / same name to boolean if
  14578. // boolean has higher priority
  14579. var stringIndex = getTypeIndex(String, prop.type);
  14580. if (stringIndex < 0 || booleanIndex < stringIndex) {
  14581. value = true;
  14582. }
  14583. }
  14584. }
  14585. // check default value
  14586. if (value === undefined) {
  14587. value = getPropDefaultValue(vm, prop, key);
  14588. // since the default value is a fresh copy,
  14589. // make sure to observe it.
  14590. var prevShouldObserve = shouldObserve;
  14591. toggleObserving(true);
  14592. observe(value);
  14593. toggleObserving(prevShouldObserve);
  14594. }
  14595. if (
  14596. true
  14597. ) {
  14598. assertProp(prop, key, value, vm, absent);
  14599. }
  14600. return value
  14601. }
  14602. /**
  14603. * Get the default value of a prop.
  14604. */
  14605. function getPropDefaultValue (vm, prop, key) {
  14606. // no default, return undefined
  14607. if (!hasOwn(prop, 'default')) {
  14608. return undefined
  14609. }
  14610. var def = prop.default;
  14611. // warn against non-factory defaults for Object & Array
  14612. if ( true && isObject(def)) {
  14613. warn(
  14614. 'Invalid default value for prop "' + key + '": ' +
  14615. 'Props with type Object/Array must use a factory function ' +
  14616. 'to return the default value.',
  14617. vm
  14618. );
  14619. }
  14620. // the raw prop value was also undefined from previous render,
  14621. // return previous default value to avoid unnecessary watcher trigger
  14622. if (vm && vm.$options.propsData &&
  14623. vm.$options.propsData[key] === undefined &&
  14624. vm._props[key] !== undefined
  14625. ) {
  14626. return vm._props[key]
  14627. }
  14628. // call factory function for non-Function types
  14629. // a value is Function if its prototype is function even across different execution context
  14630. return typeof def === 'function' && getType(prop.type) !== 'Function'
  14631. ? def.call(vm)
  14632. : def
  14633. }
  14634. /**
  14635. * Assert whether a prop is valid.
  14636. */
  14637. function assertProp (
  14638. prop,
  14639. name,
  14640. value,
  14641. vm,
  14642. absent
  14643. ) {
  14644. if (prop.required && absent) {
  14645. warn(
  14646. 'Missing required prop: "' + name + '"',
  14647. vm
  14648. );
  14649. return
  14650. }
  14651. if (value == null && !prop.required) {
  14652. return
  14653. }
  14654. var type = prop.type;
  14655. var valid = !type || type === true;
  14656. var expectedTypes = [];
  14657. if (type) {
  14658. if (!Array.isArray(type)) {
  14659. type = [type];
  14660. }
  14661. for (var i = 0; i < type.length && !valid; i++) {
  14662. var assertedType = assertType(value, type[i]);
  14663. expectedTypes.push(assertedType.expectedType || '');
  14664. valid = assertedType.valid;
  14665. }
  14666. }
  14667. if (!valid) {
  14668. warn(
  14669. getInvalidTypeMessage(name, value, expectedTypes),
  14670. vm
  14671. );
  14672. return
  14673. }
  14674. var validator = prop.validator;
  14675. if (validator) {
  14676. if (!validator(value)) {
  14677. warn(
  14678. 'Invalid prop: custom validator check failed for prop "' + name + '".',
  14679. vm
  14680. );
  14681. }
  14682. }
  14683. }
  14684. var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
  14685. function assertType (value, type) {
  14686. var valid;
  14687. var expectedType = getType(type);
  14688. if (simpleCheckRE.test(expectedType)) {
  14689. var t = typeof value;
  14690. valid = t === expectedType.toLowerCase();
  14691. // for primitive wrapper objects
  14692. if (!valid && t === 'object') {
  14693. valid = value instanceof type;
  14694. }
  14695. } else if (expectedType === 'Object') {
  14696. valid = isPlainObject(value);
  14697. } else if (expectedType === 'Array') {
  14698. valid = Array.isArray(value);
  14699. } else {
  14700. valid = value instanceof type;
  14701. }
  14702. return {
  14703. valid: valid,
  14704. expectedType: expectedType
  14705. }
  14706. }
  14707. /**
  14708. * Use function string name to check built-in types,
  14709. * because a simple equality check will fail when running
  14710. * across different vms / iframes.
  14711. */
  14712. function getType (fn) {
  14713. var match = fn && fn.toString().match(/^\s*function (\w+)/);
  14714. return match ? match[1] : ''
  14715. }
  14716. function isSameType (a, b) {
  14717. return getType(a) === getType(b)
  14718. }
  14719. function getTypeIndex (type, expectedTypes) {
  14720. if (!Array.isArray(expectedTypes)) {
  14721. return isSameType(expectedTypes, type) ? 0 : -1
  14722. }
  14723. for (var i = 0, len = expectedTypes.length; i < len; i++) {
  14724. if (isSameType(expectedTypes[i], type)) {
  14725. return i
  14726. }
  14727. }
  14728. return -1
  14729. }
  14730. function getInvalidTypeMessage (name, value, expectedTypes) {
  14731. var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
  14732. " Expected " + (expectedTypes.map(capitalize).join(', '));
  14733. var expectedType = expectedTypes[0];
  14734. var receivedType = toRawType(value);
  14735. var expectedValue = styleValue(value, expectedType);
  14736. var receivedValue = styleValue(value, receivedType);
  14737. // check if we need to specify expected value
  14738. if (expectedTypes.length === 1 &&
  14739. isExplicable(expectedType) &&
  14740. !isBoolean(expectedType, receivedType)) {
  14741. message += " with value " + expectedValue;
  14742. }
  14743. message += ", got " + receivedType + " ";
  14744. // check if we need to specify received value
  14745. if (isExplicable(receivedType)) {
  14746. message += "with value " + receivedValue + ".";
  14747. }
  14748. return message
  14749. }
  14750. function styleValue (value, type) {
  14751. if (type === 'String') {
  14752. return ("\"" + value + "\"")
  14753. } else if (type === 'Number') {
  14754. return ("" + (Number(value)))
  14755. } else {
  14756. return ("" + value)
  14757. }
  14758. }
  14759. function isExplicable (value) {
  14760. var explicitTypes = ['string', 'number', 'boolean'];
  14761. return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
  14762. }
  14763. function isBoolean () {
  14764. var args = [], len = arguments.length;
  14765. while ( len-- ) args[ len ] = arguments[ len ];
  14766. return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
  14767. }
  14768. /* */
  14769. function handleError (err, vm, info) {
  14770. // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
  14771. // See: https://github.com/vuejs/vuex/issues/1505
  14772. pushTarget();
  14773. try {
  14774. if (vm) {
  14775. var cur = vm;
  14776. while ((cur = cur.$parent)) {
  14777. var hooks = cur.$options.errorCaptured;
  14778. if (hooks) {
  14779. for (var i = 0; i < hooks.length; i++) {
  14780. try {
  14781. var capture = hooks[i].call(cur, err, vm, info) === false;
  14782. if (capture) { return }
  14783. } catch (e) {
  14784. globalHandleError(e, cur, 'errorCaptured hook');
  14785. }
  14786. }
  14787. }
  14788. }
  14789. }
  14790. globalHandleError(err, vm, info);
  14791. } finally {
  14792. popTarget();
  14793. }
  14794. }
  14795. function invokeWithErrorHandling (
  14796. handler,
  14797. context,
  14798. args,
  14799. vm,
  14800. info
  14801. ) {
  14802. var res;
  14803. try {
  14804. res = args ? handler.apply(context, args) : handler.call(context);
  14805. if (res && !res._isVue && isPromise(res) && !res._handled) {
  14806. res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
  14807. // issue #9511
  14808. // avoid catch triggering multiple times when nested calls
  14809. res._handled = true;
  14810. }
  14811. } catch (e) {
  14812. handleError(e, vm, info);
  14813. }
  14814. return res
  14815. }
  14816. function globalHandleError (err, vm, info) {
  14817. if (config.errorHandler) {
  14818. try {
  14819. return config.errorHandler.call(null, err, vm, info)
  14820. } catch (e) {
  14821. // if the user intentionally throws the original error in the handler,
  14822. // do not log it twice
  14823. if (e !== err) {
  14824. logError(e, null, 'config.errorHandler');
  14825. }
  14826. }
  14827. }
  14828. logError(err, vm, info);
  14829. }
  14830. function logError (err, vm, info) {
  14831. if (true) {
  14832. warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
  14833. }
  14834. /* istanbul ignore else */
  14835. if ((inBrowser || inWeex) && typeof console !== 'undefined') {
  14836. console.error(err);
  14837. } else {
  14838. throw err
  14839. }
  14840. }
  14841. /* */
  14842. var callbacks = [];
  14843. var pending = false;
  14844. function flushCallbacks () {
  14845. pending = false;
  14846. var copies = callbacks.slice(0);
  14847. callbacks.length = 0;
  14848. for (var i = 0; i < copies.length; i++) {
  14849. copies[i]();
  14850. }
  14851. }
  14852. // Here we have async deferring wrappers using microtasks.
  14853. // In 2.5 we used (macro) tasks (in combination with microtasks).
  14854. // However, it has subtle problems when state is changed right before repaint
  14855. // (e.g. #6813, out-in transitions).
  14856. // Also, using (macro) tasks in event handler would cause some weird behaviors
  14857. // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
  14858. // So we now use microtasks everywhere, again.
  14859. // A major drawback of this tradeoff is that there are some scenarios
  14860. // where microtasks have too high a priority and fire in between supposedly
  14861. // sequential events (e.g. #4521, #6690, which have workarounds)
  14862. // or even between bubbling of the same event (#6566).
  14863. var timerFunc;
  14864. // The nextTick behavior leverages the microtask queue, which can be accessed
  14865. // via either native Promise.then or MutationObserver.
  14866. // MutationObserver has wider support, however it is seriously bugged in
  14867. // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
  14868. // completely stops working after triggering a few times... so, if native
  14869. // Promise is available, we will use it:
  14870. /* istanbul ignore next, $flow-disable-line */
  14871. if (typeof Promise !== 'undefined' && isNative(Promise)) {
  14872. var p = Promise.resolve();
  14873. timerFunc = function () {
  14874. p.then(flushCallbacks);
  14875. // In problematic UIWebViews, Promise.then doesn't completely break, but
  14876. // it can get stuck in a weird state where callbacks are pushed into the
  14877. // microtask queue but the queue isn't being flushed, until the browser
  14878. // needs to do some other work, e.g. handle a timer. Therefore we can
  14879. // "force" the microtask queue to be flushed by adding an empty timer.
  14880. if (isIOS) { setTimeout(noop); }
  14881. };
  14882. } else if (!isIE && typeof MutationObserver !== 'undefined' && (
  14883. isNative(MutationObserver) ||
  14884. // PhantomJS and iOS 7.x
  14885. MutationObserver.toString() === '[object MutationObserverConstructor]'
  14886. )) {
  14887. // Use MutationObserver where native Promise is not available,
  14888. // e.g. PhantomJS, iOS7, Android 4.4
  14889. // (#6466 MutationObserver is unreliable in IE11)
  14890. var counter = 1;
  14891. var observer = new MutationObserver(flushCallbacks);
  14892. var textNode = document.createTextNode(String(counter));
  14893. observer.observe(textNode, {
  14894. characterData: true
  14895. });
  14896. timerFunc = function () {
  14897. counter = (counter + 1) % 2;
  14898. textNode.data = String(counter);
  14899. };
  14900. } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
  14901. // Fallback to setImmediate.
  14902. // Technically it leverages the (macro) task queue,
  14903. // but it is still a better choice than setTimeout.
  14904. timerFunc = function () {
  14905. setImmediate(flushCallbacks);
  14906. };
  14907. } else {
  14908. // Fallback to setTimeout.
  14909. timerFunc = function () {
  14910. setTimeout(flushCallbacks, 0);
  14911. };
  14912. }
  14913. function nextTick (cb, ctx) {
  14914. var _resolve;
  14915. callbacks.push(function () {
  14916. if (cb) {
  14917. try {
  14918. cb.call(ctx);
  14919. } catch (e) {
  14920. handleError(e, ctx, 'nextTick');
  14921. }
  14922. } else if (_resolve) {
  14923. _resolve(ctx);
  14924. }
  14925. });
  14926. if (!pending) {
  14927. pending = true;
  14928. timerFunc();
  14929. }
  14930. // $flow-disable-line
  14931. if (!cb && typeof Promise !== 'undefined') {
  14932. return new Promise(function (resolve) {
  14933. _resolve = resolve;
  14934. })
  14935. }
  14936. }
  14937. /* */
  14938. /* not type checking this file because flow doesn't play well with Proxy */
  14939. var initProxy;
  14940. if (true) {
  14941. var allowedGlobals = makeMap(
  14942. 'Infinity,undefined,NaN,isFinite,isNaN,' +
  14943. 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
  14944. 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
  14945. 'require' // for Webpack/Browserify
  14946. );
  14947. var warnNonPresent = function (target, key) {
  14948. warn(
  14949. "Property or method \"" + key + "\" is not defined on the instance but " +
  14950. 'referenced during render. Make sure that this property is reactive, ' +
  14951. 'either in the data option, or for class-based components, by ' +
  14952. 'initializing the property. ' +
  14953. 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
  14954. target
  14955. );
  14956. };
  14957. var warnReservedPrefix = function (target, key) {
  14958. warn(
  14959. "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
  14960. 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
  14961. 'prevent conflicts with Vue internals. ' +
  14962. 'See: https://vuejs.org/v2/api/#data',
  14963. target
  14964. );
  14965. };
  14966. var hasProxy =
  14967. typeof Proxy !== 'undefined' && isNative(Proxy);
  14968. if (hasProxy) {
  14969. var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
  14970. config.keyCodes = new Proxy(config.keyCodes, {
  14971. set: function set (target, key, value) {
  14972. if (isBuiltInModifier(key)) {
  14973. warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
  14974. return false
  14975. } else {
  14976. target[key] = value;
  14977. return true
  14978. }
  14979. }
  14980. });
  14981. }
  14982. var hasHandler = {
  14983. has: function has (target, key) {
  14984. var has = key in target;
  14985. var isAllowed = allowedGlobals(key) ||
  14986. (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
  14987. if (!has && !isAllowed) {
  14988. if (key in target.$data) { warnReservedPrefix(target, key); }
  14989. else { warnNonPresent(target, key); }
  14990. }
  14991. return has || !isAllowed
  14992. }
  14993. };
  14994. var getHandler = {
  14995. get: function get (target, key) {
  14996. if (typeof key === 'string' && !(key in target)) {
  14997. if (key in target.$data) { warnReservedPrefix(target, key); }
  14998. else { warnNonPresent(target, key); }
  14999. }
  15000. return target[key]
  15001. }
  15002. };
  15003. initProxy = function initProxy (vm) {
  15004. if (hasProxy) {
  15005. // determine which proxy handler to use
  15006. var options = vm.$options;
  15007. var handlers = options.render && options.render._withStripped
  15008. ? getHandler
  15009. : hasHandler;
  15010. vm._renderProxy = new Proxy(vm, handlers);
  15011. } else {
  15012. vm._renderProxy = vm;
  15013. }
  15014. };
  15015. }
  15016. /* */
  15017. var seenObjects = new _Set();
  15018. /**
  15019. * Recursively traverse an object to evoke all converted
  15020. * getters, so that every nested property inside the object
  15021. * is collected as a "deep" dependency.
  15022. */
  15023. function traverse (val) {
  15024. _traverse(val, seenObjects);
  15025. seenObjects.clear();
  15026. }
  15027. function _traverse (val, seen) {
  15028. var i, keys;
  15029. var isA = Array.isArray(val);
  15030. if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
  15031. return
  15032. }
  15033. if (val.__ob__) {
  15034. var depId = val.__ob__.dep.id;
  15035. if (seen.has(depId)) {
  15036. return
  15037. }
  15038. seen.add(depId);
  15039. }
  15040. if (isA) {
  15041. i = val.length;
  15042. while (i--) { _traverse(val[i], seen); }
  15043. } else {
  15044. keys = Object.keys(val);
  15045. i = keys.length;
  15046. while (i--) { _traverse(val[keys[i]], seen); }
  15047. }
  15048. }
  15049. var mark;
  15050. var measure;
  15051. if (true) {
  15052. var perf = inBrowser && window.performance;
  15053. /* istanbul ignore if */
  15054. if (
  15055. perf &&
  15056. perf.mark &&
  15057. perf.measure &&
  15058. perf.clearMarks &&
  15059. perf.clearMeasures
  15060. ) {
  15061. mark = function (tag) { return perf.mark(tag); };
  15062. measure = function (name, startTag, endTag) {
  15063. perf.measure(name, startTag, endTag);
  15064. perf.clearMarks(startTag);
  15065. perf.clearMarks(endTag);
  15066. // perf.clearMeasures(name)
  15067. };
  15068. }
  15069. }
  15070. /* */
  15071. var normalizeEvent = cached(function (name) {
  15072. var passive = name.charAt(0) === '&';
  15073. name = passive ? name.slice(1) : name;
  15074. var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
  15075. name = once$$1 ? name.slice(1) : name;
  15076. var capture = name.charAt(0) === '!';
  15077. name = capture ? name.slice(1) : name;
  15078. return {
  15079. name: name,
  15080. once: once$$1,
  15081. capture: capture,
  15082. passive: passive
  15083. }
  15084. });
  15085. function createFnInvoker (fns, vm) {
  15086. function invoker () {
  15087. var arguments$1 = arguments;
  15088. var fns = invoker.fns;
  15089. if (Array.isArray(fns)) {
  15090. var cloned = fns.slice();
  15091. for (var i = 0; i < cloned.length; i++) {
  15092. invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
  15093. }
  15094. } else {
  15095. // return handler return value for single handlers
  15096. return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler")
  15097. }
  15098. }
  15099. invoker.fns = fns;
  15100. return invoker
  15101. }
  15102. function updateListeners (
  15103. on,
  15104. oldOn,
  15105. add,
  15106. remove$$1,
  15107. createOnceHandler,
  15108. vm
  15109. ) {
  15110. var name, def$$1, cur, old, event;
  15111. for (name in on) {
  15112. def$$1 = cur = on[name];
  15113. old = oldOn[name];
  15114. event = normalizeEvent(name);
  15115. if (isUndef(cur)) {
  15116. true && warn(
  15117. "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
  15118. vm
  15119. );
  15120. } else if (isUndef(old)) {
  15121. if (isUndef(cur.fns)) {
  15122. cur = on[name] = createFnInvoker(cur, vm);
  15123. }
  15124. if (isTrue(event.once)) {
  15125. cur = on[name] = createOnceHandler(event.name, cur, event.capture);
  15126. }
  15127. add(event.name, cur, event.capture, event.passive, event.params);
  15128. } else if (cur !== old) {
  15129. old.fns = cur;
  15130. on[name] = old;
  15131. }
  15132. }
  15133. for (name in oldOn) {
  15134. if (isUndef(on[name])) {
  15135. event = normalizeEvent(name);
  15136. remove$$1(event.name, oldOn[name], event.capture);
  15137. }
  15138. }
  15139. }
  15140. /* */
  15141. /* */
  15142. // fixed by xxxxxx (mp properties)
  15143. function extractPropertiesFromVNodeData(data, Ctor, res, context) {
  15144. var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;
  15145. if (isUndef(propOptions)) {
  15146. return res
  15147. }
  15148. var externalClasses = Ctor.options.mpOptions.externalClasses || [];
  15149. var attrs = data.attrs;
  15150. var props = data.props;
  15151. if (isDef(attrs) || isDef(props)) {
  15152. for (var key in propOptions) {
  15153. var altKey = hyphenate(key);
  15154. var result = checkProp(res, props, key, altKey, true) ||
  15155. checkProp(res, attrs, key, altKey, false);
  15156. // externalClass
  15157. if (
  15158. result &&
  15159. res[key] &&
  15160. externalClasses.indexOf(altKey) !== -1 &&
  15161. context[camelize(res[key])]
  15162. ) {
  15163. // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)
  15164. res[key] = context[camelize(res[key])];
  15165. }
  15166. }
  15167. }
  15168. return res
  15169. }
  15170. function extractPropsFromVNodeData (
  15171. data,
  15172. Ctor,
  15173. tag,
  15174. context// fixed by xxxxxx
  15175. ) {
  15176. // we are only extracting raw values here.
  15177. // validation and default values are handled in the child
  15178. // component itself.
  15179. var propOptions = Ctor.options.props;
  15180. if (isUndef(propOptions)) {
  15181. // fixed by xxxxxx
  15182. return extractPropertiesFromVNodeData(data, Ctor, {}, context)
  15183. }
  15184. var res = {};
  15185. var attrs = data.attrs;
  15186. var props = data.props;
  15187. if (isDef(attrs) || isDef(props)) {
  15188. for (var key in propOptions) {
  15189. var altKey = hyphenate(key);
  15190. if (true) {
  15191. var keyInLowerCase = key.toLowerCase();
  15192. if (
  15193. key !== keyInLowerCase &&
  15194. attrs && hasOwn(attrs, keyInLowerCase)
  15195. ) {
  15196. tip(
  15197. "Prop \"" + keyInLowerCase + "\" is passed to component " +
  15198. (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
  15199. " \"" + key + "\". " +
  15200. "Note that HTML attributes are case-insensitive and camelCased " +
  15201. "props need to use their kebab-case equivalents when using in-DOM " +
  15202. "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
  15203. );
  15204. }
  15205. }
  15206. checkProp(res, props, key, altKey, true) ||
  15207. checkProp(res, attrs, key, altKey, false);
  15208. }
  15209. }
  15210. // fixed by xxxxxx
  15211. return extractPropertiesFromVNodeData(data, Ctor, res, context)
  15212. }
  15213. function checkProp (
  15214. res,
  15215. hash,
  15216. key,
  15217. altKey,
  15218. preserve
  15219. ) {
  15220. if (isDef(hash)) {
  15221. if (hasOwn(hash, key)) {
  15222. res[key] = hash[key];
  15223. if (!preserve) {
  15224. delete hash[key];
  15225. }
  15226. return true
  15227. } else if (hasOwn(hash, altKey)) {
  15228. res[key] = hash[altKey];
  15229. if (!preserve) {
  15230. delete hash[altKey];
  15231. }
  15232. return true
  15233. }
  15234. }
  15235. return false
  15236. }
  15237. /* */
  15238. // The template compiler attempts to minimize the need for normalization by
  15239. // statically analyzing the template at compile time.
  15240. //
  15241. // For plain HTML markup, normalization can be completely skipped because the
  15242. // generated render function is guaranteed to return Array<VNode>. There are
  15243. // two cases where extra normalization is needed:
  15244. // 1. When the children contains components - because a functional component
  15245. // may return an Array instead of a single root. In this case, just a simple
  15246. // normalization is needed - if any child is an Array, we flatten the whole
  15247. // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
  15248. // because functional components already normalize their own children.
  15249. function simpleNormalizeChildren (children) {
  15250. for (var i = 0; i < children.length; i++) {
  15251. if (Array.isArray(children[i])) {
  15252. return Array.prototype.concat.apply([], children)
  15253. }
  15254. }
  15255. return children
  15256. }
  15257. // 2. When the children contains constructs that always generated nested Arrays,
  15258. // e.g. <template>, <slot>, v-for, or when the children is provided by user
  15259. // with hand-written render functions / JSX. In such cases a full normalization
  15260. // is needed to cater to all possible types of children values.
  15261. function normalizeChildren (children) {
  15262. return isPrimitive(children)
  15263. ? [createTextVNode(children)]
  15264. : Array.isArray(children)
  15265. ? normalizeArrayChildren(children)
  15266. : undefined
  15267. }
  15268. function isTextNode (node) {
  15269. return isDef(node) && isDef(node.text) && isFalse(node.isComment)
  15270. }
  15271. function normalizeArrayChildren (children, nestedIndex) {
  15272. var res = [];
  15273. var i, c, lastIndex, last;
  15274. for (i = 0; i < children.length; i++) {
  15275. c = children[i];
  15276. if (isUndef(c) || typeof c === 'boolean') { continue }
  15277. lastIndex = res.length - 1;
  15278. last = res[lastIndex];
  15279. // nested
  15280. if (Array.isArray(c)) {
  15281. if (c.length > 0) {
  15282. c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
  15283. // merge adjacent text nodes
  15284. if (isTextNode(c[0]) && isTextNode(last)) {
  15285. res[lastIndex] = createTextVNode(last.text + (c[0]).text);
  15286. c.shift();
  15287. }
  15288. res.push.apply(res, c);
  15289. }
  15290. } else if (isPrimitive(c)) {
  15291. if (isTextNode(last)) {
  15292. // merge adjacent text nodes
  15293. // this is necessary for SSR hydration because text nodes are
  15294. // essentially merged when rendered to HTML strings
  15295. res[lastIndex] = createTextVNode(last.text + c);
  15296. } else if (c !== '') {
  15297. // convert primitive to vnode
  15298. res.push(createTextVNode(c));
  15299. }
  15300. } else {
  15301. if (isTextNode(c) && isTextNode(last)) {
  15302. // merge adjacent text nodes
  15303. res[lastIndex] = createTextVNode(last.text + c.text);
  15304. } else {
  15305. // default key for nested array children (likely generated by v-for)
  15306. if (isTrue(children._isVList) &&
  15307. isDef(c.tag) &&
  15308. isUndef(c.key) &&
  15309. isDef(nestedIndex)) {
  15310. c.key = "__vlist" + nestedIndex + "_" + i + "__";
  15311. }
  15312. res.push(c);
  15313. }
  15314. }
  15315. }
  15316. return res
  15317. }
  15318. /* */
  15319. function initProvide (vm) {
  15320. var provide = vm.$options.provide;
  15321. if (provide) {
  15322. vm._provided = typeof provide === 'function'
  15323. ? provide.call(vm)
  15324. : provide;
  15325. }
  15326. }
  15327. function initInjections (vm) {
  15328. var result = resolveInject(vm.$options.inject, vm);
  15329. if (result) {
  15330. toggleObserving(false);
  15331. Object.keys(result).forEach(function (key) {
  15332. /* istanbul ignore else */
  15333. if (true) {
  15334. defineReactive$$1(vm, key, result[key], function () {
  15335. warn(
  15336. "Avoid mutating an injected value directly since the changes will be " +
  15337. "overwritten whenever the provided component re-renders. " +
  15338. "injection being mutated: \"" + key + "\"",
  15339. vm
  15340. );
  15341. });
  15342. } else {}
  15343. });
  15344. toggleObserving(true);
  15345. }
  15346. }
  15347. function resolveInject (inject, vm) {
  15348. if (inject) {
  15349. // inject is :any because flow is not smart enough to figure out cached
  15350. var result = Object.create(null);
  15351. var keys = hasSymbol
  15352. ? Reflect.ownKeys(inject)
  15353. : Object.keys(inject);
  15354. for (var i = 0; i < keys.length; i++) {
  15355. var key = keys[i];
  15356. // #6574 in case the inject object is observed...
  15357. if (key === '__ob__') { continue }
  15358. var provideKey = inject[key].from;
  15359. var source = vm;
  15360. while (source) {
  15361. if (source._provided && hasOwn(source._provided, provideKey)) {
  15362. result[key] = source._provided[provideKey];
  15363. break
  15364. }
  15365. source = source.$parent;
  15366. }
  15367. if (!source) {
  15368. if ('default' in inject[key]) {
  15369. var provideDefault = inject[key].default;
  15370. result[key] = typeof provideDefault === 'function'
  15371. ? provideDefault.call(vm)
  15372. : provideDefault;
  15373. } else if (true) {
  15374. warn(("Injection \"" + key + "\" not found"), vm);
  15375. }
  15376. }
  15377. }
  15378. return result
  15379. }
  15380. }
  15381. /* */
  15382. /**
  15383. * Runtime helper for resolving raw children VNodes into a slot object.
  15384. */
  15385. function resolveSlots (
  15386. children,
  15387. context
  15388. ) {
  15389. if (!children || !children.length) {
  15390. return {}
  15391. }
  15392. var slots = {};
  15393. for (var i = 0, l = children.length; i < l; i++) {
  15394. var child = children[i];
  15395. var data = child.data;
  15396. // remove slot attribute if the node is resolved as a Vue slot node
  15397. if (data && data.attrs && data.attrs.slot) {
  15398. delete data.attrs.slot;
  15399. }
  15400. // named slots should only be respected if the vnode was rendered in the
  15401. // same context.
  15402. if ((child.context === context || child.fnContext === context) &&
  15403. data && data.slot != null
  15404. ) {
  15405. var name = data.slot;
  15406. var slot = (slots[name] || (slots[name] = []));
  15407. if (child.tag === 'template') {
  15408. slot.push.apply(slot, child.children || []);
  15409. } else {
  15410. slot.push(child);
  15411. }
  15412. } else {
  15413. // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page
  15414. if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){
  15415. (slots['page'] || (slots['page'] = [])).push(child);
  15416. }else{
  15417. (slots.default || (slots.default = [])).push(child);
  15418. }
  15419. }
  15420. }
  15421. // ignore slots that contains only whitespace
  15422. for (var name$1 in slots) {
  15423. if (slots[name$1].every(isWhitespace)) {
  15424. delete slots[name$1];
  15425. }
  15426. }
  15427. return slots
  15428. }
  15429. function isWhitespace (node) {
  15430. return (node.isComment && !node.asyncFactory) || node.text === ' '
  15431. }
  15432. /* */
  15433. function normalizeScopedSlots (
  15434. slots,
  15435. normalSlots,
  15436. prevSlots
  15437. ) {
  15438. var res;
  15439. var hasNormalSlots = Object.keys(normalSlots).length > 0;
  15440. var isStable = slots ? !!slots.$stable : !hasNormalSlots;
  15441. var key = slots && slots.$key;
  15442. if (!slots) {
  15443. res = {};
  15444. } else if (slots._normalized) {
  15445. // fast path 1: child component re-render only, parent did not change
  15446. return slots._normalized
  15447. } else if (
  15448. isStable &&
  15449. prevSlots &&
  15450. prevSlots !== emptyObject &&
  15451. key === prevSlots.$key &&
  15452. !hasNormalSlots &&
  15453. !prevSlots.$hasNormal
  15454. ) {
  15455. // fast path 2: stable scoped slots w/ no normal slots to proxy,
  15456. // only need to normalize once
  15457. return prevSlots
  15458. } else {
  15459. res = {};
  15460. for (var key$1 in slots) {
  15461. if (slots[key$1] && key$1[0] !== '$') {
  15462. res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
  15463. }
  15464. }
  15465. }
  15466. // expose normal slots on scopedSlots
  15467. for (var key$2 in normalSlots) {
  15468. if (!(key$2 in res)) {
  15469. res[key$2] = proxyNormalSlot(normalSlots, key$2);
  15470. }
  15471. }
  15472. // avoriaz seems to mock a non-extensible $scopedSlots object
  15473. // and when that is passed down this would cause an error
  15474. if (slots && Object.isExtensible(slots)) {
  15475. (slots)._normalized = res;
  15476. }
  15477. def(res, '$stable', isStable);
  15478. def(res, '$key', key);
  15479. def(res, '$hasNormal', hasNormalSlots);
  15480. return res
  15481. }
  15482. function normalizeScopedSlot(normalSlots, key, fn) {
  15483. var normalized = function () {
  15484. var res = arguments.length ? fn.apply(null, arguments) : fn({});
  15485. res = res && typeof res === 'object' && !Array.isArray(res)
  15486. ? [res] // single vnode
  15487. : normalizeChildren(res);
  15488. return res && (
  15489. res.length === 0 ||
  15490. (res.length === 1 && res[0].isComment) // #9658
  15491. ) ? undefined
  15492. : res
  15493. };
  15494. // this is a slot using the new v-slot syntax without scope. although it is
  15495. // compiled as a scoped slot, render fn users would expect it to be present
  15496. // on this.$slots because the usage is semantically a normal slot.
  15497. if (fn.proxy) {
  15498. Object.defineProperty(normalSlots, key, {
  15499. get: normalized,
  15500. enumerable: true,
  15501. configurable: true
  15502. });
  15503. }
  15504. return normalized
  15505. }
  15506. function proxyNormalSlot(slots, key) {
  15507. return function () { return slots[key]; }
  15508. }
  15509. /* */
  15510. /**
  15511. * Runtime helper for rendering v-for lists.
  15512. */
  15513. function renderList (
  15514. val,
  15515. render
  15516. ) {
  15517. var ret, i, l, keys, key;
  15518. if (Array.isArray(val) || typeof val === 'string') {
  15519. ret = new Array(val.length);
  15520. for (i = 0, l = val.length; i < l; i++) {
  15521. ret[i] = render(val[i], i, i, i); // fixed by xxxxxx
  15522. }
  15523. } else if (typeof val === 'number') {
  15524. ret = new Array(val);
  15525. for (i = 0; i < val; i++) {
  15526. ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx
  15527. }
  15528. } else if (isObject(val)) {
  15529. if (hasSymbol && val[Symbol.iterator]) {
  15530. ret = [];
  15531. var iterator = val[Symbol.iterator]();
  15532. var result = iterator.next();
  15533. while (!result.done) {
  15534. ret.push(render(result.value, ret.length, i, i++)); // fixed by xxxxxx
  15535. result = iterator.next();
  15536. }
  15537. } else {
  15538. keys = Object.keys(val);
  15539. ret = new Array(keys.length);
  15540. for (i = 0, l = keys.length; i < l; i++) {
  15541. key = keys[i];
  15542. ret[i] = render(val[key], key, i, i); // fixed by xxxxxx
  15543. }
  15544. }
  15545. }
  15546. if (!isDef(ret)) {
  15547. ret = [];
  15548. }
  15549. (ret)._isVList = true;
  15550. return ret
  15551. }
  15552. /* */
  15553. /**
  15554. * Runtime helper for rendering <slot>
  15555. */
  15556. function renderSlot (
  15557. name,
  15558. fallback,
  15559. props,
  15560. bindObject
  15561. ) {
  15562. var scopedSlotFn = this.$scopedSlots[name];
  15563. var nodes;
  15564. if (scopedSlotFn) { // scoped slot
  15565. props = props || {};
  15566. if (bindObject) {
  15567. if ( true && !isObject(bindObject)) {
  15568. warn(
  15569. 'slot v-bind without argument expects an Object',
  15570. this
  15571. );
  15572. }
  15573. props = extend(extend({}, bindObject), props);
  15574. }
  15575. // fixed by xxxxxx app-plus scopedSlot
  15576. nodes = scopedSlotFn(props, this, props._i) || fallback;
  15577. } else {
  15578. nodes = this.$slots[name] || fallback;
  15579. }
  15580. var target = props && props.slot;
  15581. if (target) {
  15582. return this.$createElement('template', { slot: target }, nodes)
  15583. } else {
  15584. return nodes
  15585. }
  15586. }
  15587. /* */
  15588. /**
  15589. * Runtime helper for resolving filters
  15590. */
  15591. function resolveFilter (id) {
  15592. return resolveAsset(this.$options, 'filters', id, true) || identity
  15593. }
  15594. /* */
  15595. function isKeyNotMatch (expect, actual) {
  15596. if (Array.isArray(expect)) {
  15597. return expect.indexOf(actual) === -1
  15598. } else {
  15599. return expect !== actual
  15600. }
  15601. }
  15602. /**
  15603. * Runtime helper for checking keyCodes from config.
  15604. * exposed as Vue.prototype._k
  15605. * passing in eventKeyName as last argument separately for backwards compat
  15606. */
  15607. function checkKeyCodes (
  15608. eventKeyCode,
  15609. key,
  15610. builtInKeyCode,
  15611. eventKeyName,
  15612. builtInKeyName
  15613. ) {
  15614. var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
  15615. if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
  15616. return isKeyNotMatch(builtInKeyName, eventKeyName)
  15617. } else if (mappedKeyCode) {
  15618. return isKeyNotMatch(mappedKeyCode, eventKeyCode)
  15619. } else if (eventKeyName) {
  15620. return hyphenate(eventKeyName) !== key
  15621. }
  15622. }
  15623. /* */
  15624. /**
  15625. * Runtime helper for merging v-bind="object" into a VNode's data.
  15626. */
  15627. function bindObjectProps (
  15628. data,
  15629. tag,
  15630. value,
  15631. asProp,
  15632. isSync
  15633. ) {
  15634. if (value) {
  15635. if (!isObject(value)) {
  15636. true && warn(
  15637. 'v-bind without argument expects an Object or Array value',
  15638. this
  15639. );
  15640. } else {
  15641. if (Array.isArray(value)) {
  15642. value = toObject(value);
  15643. }
  15644. var hash;
  15645. var loop = function ( key ) {
  15646. if (
  15647. key === 'class' ||
  15648. key === 'style' ||
  15649. isReservedAttribute(key)
  15650. ) {
  15651. hash = data;
  15652. } else {
  15653. var type = data.attrs && data.attrs.type;
  15654. hash = asProp || config.mustUseProp(tag, type, key)
  15655. ? data.domProps || (data.domProps = {})
  15656. : data.attrs || (data.attrs = {});
  15657. }
  15658. var camelizedKey = camelize(key);
  15659. var hyphenatedKey = hyphenate(key);
  15660. if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
  15661. hash[key] = value[key];
  15662. if (isSync) {
  15663. var on = data.on || (data.on = {});
  15664. on[("update:" + key)] = function ($event) {
  15665. value[key] = $event;
  15666. };
  15667. }
  15668. }
  15669. };
  15670. for (var key in value) loop( key );
  15671. }
  15672. }
  15673. return data
  15674. }
  15675. /* */
  15676. /**
  15677. * Runtime helper for rendering static trees.
  15678. */
  15679. function renderStatic (
  15680. index,
  15681. isInFor
  15682. ) {
  15683. var cached = this._staticTrees || (this._staticTrees = []);
  15684. var tree = cached[index];
  15685. // if has already-rendered static tree and not inside v-for,
  15686. // we can reuse the same tree.
  15687. if (tree && !isInFor) {
  15688. return tree
  15689. }
  15690. // otherwise, render a fresh tree.
  15691. tree = cached[index] = this.$options.staticRenderFns[index].call(
  15692. this._renderProxy,
  15693. null,
  15694. this // for render fns generated for functional component templates
  15695. );
  15696. markStatic(tree, ("__static__" + index), false);
  15697. return tree
  15698. }
  15699. /**
  15700. * Runtime helper for v-once.
  15701. * Effectively it means marking the node as static with a unique key.
  15702. */
  15703. function markOnce (
  15704. tree,
  15705. index,
  15706. key
  15707. ) {
  15708. markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
  15709. return tree
  15710. }
  15711. function markStatic (
  15712. tree,
  15713. key,
  15714. isOnce
  15715. ) {
  15716. if (Array.isArray(tree)) {
  15717. for (var i = 0; i < tree.length; i++) {
  15718. if (tree[i] && typeof tree[i] !== 'string') {
  15719. markStaticNode(tree[i], (key + "_" + i), isOnce);
  15720. }
  15721. }
  15722. } else {
  15723. markStaticNode(tree, key, isOnce);
  15724. }
  15725. }
  15726. function markStaticNode (node, key, isOnce) {
  15727. node.isStatic = true;
  15728. node.key = key;
  15729. node.isOnce = isOnce;
  15730. }
  15731. /* */
  15732. function bindObjectListeners (data, value) {
  15733. if (value) {
  15734. if (!isPlainObject(value)) {
  15735. true && warn(
  15736. 'v-on without argument expects an Object value',
  15737. this
  15738. );
  15739. } else {
  15740. var on = data.on = data.on ? extend({}, data.on) : {};
  15741. for (var key in value) {
  15742. var existing = on[key];
  15743. var ours = value[key];
  15744. on[key] = existing ? [].concat(existing, ours) : ours;
  15745. }
  15746. }
  15747. }
  15748. return data
  15749. }
  15750. /* */
  15751. function resolveScopedSlots (
  15752. fns, // see flow/vnode
  15753. res,
  15754. // the following are added in 2.6
  15755. hasDynamicKeys,
  15756. contentHashKey
  15757. ) {
  15758. res = res || { $stable: !hasDynamicKeys };
  15759. for (var i = 0; i < fns.length; i++) {
  15760. var slot = fns[i];
  15761. if (Array.isArray(slot)) {
  15762. resolveScopedSlots(slot, res, hasDynamicKeys);
  15763. } else if (slot) {
  15764. // marker for reverse proxying v-slot without scope on this.$slots
  15765. if (slot.proxy) {
  15766. slot.fn.proxy = true;
  15767. }
  15768. res[slot.key] = slot.fn;
  15769. }
  15770. }
  15771. if (contentHashKey) {
  15772. (res).$key = contentHashKey;
  15773. }
  15774. return res
  15775. }
  15776. /* */
  15777. function bindDynamicKeys (baseObj, values) {
  15778. for (var i = 0; i < values.length; i += 2) {
  15779. var key = values[i];
  15780. if (typeof key === 'string' && key) {
  15781. baseObj[values[i]] = values[i + 1];
  15782. } else if ( true && key !== '' && key !== null) {
  15783. // null is a special value for explicitly removing a binding
  15784. warn(
  15785. ("Invalid value for dynamic directive argument (expected string or null): " + key),
  15786. this
  15787. );
  15788. }
  15789. }
  15790. return baseObj
  15791. }
  15792. // helper to dynamically append modifier runtime markers to event names.
  15793. // ensure only append when value is already string, otherwise it will be cast
  15794. // to string and cause the type check to miss.
  15795. function prependModifier (value, symbol) {
  15796. return typeof value === 'string' ? symbol + value : value
  15797. }
  15798. /* */
  15799. function installRenderHelpers (target) {
  15800. target._o = markOnce;
  15801. target._n = toNumber;
  15802. target._s = toString;
  15803. target._l = renderList;
  15804. target._t = renderSlot;
  15805. target._q = looseEqual;
  15806. target._i = looseIndexOf;
  15807. target._m = renderStatic;
  15808. target._f = resolveFilter;
  15809. target._k = checkKeyCodes;
  15810. target._b = bindObjectProps;
  15811. target._v = createTextVNode;
  15812. target._e = createEmptyVNode;
  15813. target._u = resolveScopedSlots;
  15814. target._g = bindObjectListeners;
  15815. target._d = bindDynamicKeys;
  15816. target._p = prependModifier;
  15817. }
  15818. /* */
  15819. function FunctionalRenderContext (
  15820. data,
  15821. props,
  15822. children,
  15823. parent,
  15824. Ctor
  15825. ) {
  15826. var this$1 = this;
  15827. var options = Ctor.options;
  15828. // ensure the createElement function in functional components
  15829. // gets a unique context - this is necessary for correct named slot check
  15830. var contextVm;
  15831. if (hasOwn(parent, '_uid')) {
  15832. contextVm = Object.create(parent);
  15833. // $flow-disable-line
  15834. contextVm._original = parent;
  15835. } else {
  15836. // the context vm passed in is a functional context as well.
  15837. // in this case we want to make sure we are able to get a hold to the
  15838. // real context instance.
  15839. contextVm = parent;
  15840. // $flow-disable-line
  15841. parent = parent._original;
  15842. }
  15843. var isCompiled = isTrue(options._compiled);
  15844. var needNormalization = !isCompiled;
  15845. this.data = data;
  15846. this.props = props;
  15847. this.children = children;
  15848. this.parent = parent;
  15849. this.listeners = data.on || emptyObject;
  15850. this.injections = resolveInject(options.inject, parent);
  15851. this.slots = function () {
  15852. if (!this$1.$slots) {
  15853. normalizeScopedSlots(
  15854. data.scopedSlots,
  15855. this$1.$slots = resolveSlots(children, parent)
  15856. );
  15857. }
  15858. return this$1.$slots
  15859. };
  15860. Object.defineProperty(this, 'scopedSlots', ({
  15861. enumerable: true,
  15862. get: function get () {
  15863. return normalizeScopedSlots(data.scopedSlots, this.slots())
  15864. }
  15865. }));
  15866. // support for compiled functional template
  15867. if (isCompiled) {
  15868. // exposing $options for renderStatic()
  15869. this.$options = options;
  15870. // pre-resolve slots for renderSlot()
  15871. this.$slots = this.slots();
  15872. this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
  15873. }
  15874. if (options._scopeId) {
  15875. this._c = function (a, b, c, d) {
  15876. var vnode = createElement(contextVm, a, b, c, d, needNormalization);
  15877. if (vnode && !Array.isArray(vnode)) {
  15878. vnode.fnScopeId = options._scopeId;
  15879. vnode.fnContext = parent;
  15880. }
  15881. return vnode
  15882. };
  15883. } else {
  15884. this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
  15885. }
  15886. }
  15887. installRenderHelpers(FunctionalRenderContext.prototype);
  15888. function createFunctionalComponent (
  15889. Ctor,
  15890. propsData,
  15891. data,
  15892. contextVm,
  15893. children
  15894. ) {
  15895. var options = Ctor.options;
  15896. var props = {};
  15897. var propOptions = options.props;
  15898. if (isDef(propOptions)) {
  15899. for (var key in propOptions) {
  15900. props[key] = validateProp(key, propOptions, propsData || emptyObject);
  15901. }
  15902. } else {
  15903. if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
  15904. if (isDef(data.props)) { mergeProps(props, data.props); }
  15905. }
  15906. var renderContext = new FunctionalRenderContext(
  15907. data,
  15908. props,
  15909. children,
  15910. contextVm,
  15911. Ctor
  15912. );
  15913. var vnode = options.render.call(null, renderContext._c, renderContext);
  15914. if (vnode instanceof VNode) {
  15915. return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
  15916. } else if (Array.isArray(vnode)) {
  15917. var vnodes = normalizeChildren(vnode) || [];
  15918. var res = new Array(vnodes.length);
  15919. for (var i = 0; i < vnodes.length; i++) {
  15920. res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
  15921. }
  15922. return res
  15923. }
  15924. }
  15925. function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
  15926. // #7817 clone node before setting fnContext, otherwise if the node is reused
  15927. // (e.g. it was from a cached normal slot) the fnContext causes named slots
  15928. // that should not be matched to match.
  15929. var clone = cloneVNode(vnode);
  15930. clone.fnContext = contextVm;
  15931. clone.fnOptions = options;
  15932. if (true) {
  15933. (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
  15934. }
  15935. if (data.slot) {
  15936. (clone.data || (clone.data = {})).slot = data.slot;
  15937. }
  15938. return clone
  15939. }
  15940. function mergeProps (to, from) {
  15941. for (var key in from) {
  15942. to[camelize(key)] = from[key];
  15943. }
  15944. }
  15945. /* */
  15946. /* */
  15947. /* */
  15948. /* */
  15949. // inline hooks to be invoked on component VNodes during patch
  15950. var componentVNodeHooks = {
  15951. init: function init (vnode, hydrating) {
  15952. if (
  15953. vnode.componentInstance &&
  15954. !vnode.componentInstance._isDestroyed &&
  15955. vnode.data.keepAlive
  15956. ) {
  15957. // kept-alive components, treat as a patch
  15958. var mountedNode = vnode; // work around flow
  15959. componentVNodeHooks.prepatch(mountedNode, mountedNode);
  15960. } else {
  15961. var child = vnode.componentInstance = createComponentInstanceForVnode(
  15962. vnode,
  15963. activeInstance
  15964. );
  15965. child.$mount(hydrating ? vnode.elm : undefined, hydrating);
  15966. }
  15967. },
  15968. prepatch: function prepatch (oldVnode, vnode) {
  15969. var options = vnode.componentOptions;
  15970. var child = vnode.componentInstance = oldVnode.componentInstance;
  15971. updateChildComponent(
  15972. child,
  15973. options.propsData, // updated props
  15974. options.listeners, // updated listeners
  15975. vnode, // new parent vnode
  15976. options.children // new children
  15977. );
  15978. },
  15979. insert: function insert (vnode) {
  15980. var context = vnode.context;
  15981. var componentInstance = vnode.componentInstance;
  15982. if (!componentInstance._isMounted) {
  15983. callHook(componentInstance, 'onServiceCreated');
  15984. callHook(componentInstance, 'onServiceAttached');
  15985. componentInstance._isMounted = true;
  15986. callHook(componentInstance, 'mounted');
  15987. }
  15988. if (vnode.data.keepAlive) {
  15989. if (context._isMounted) {
  15990. // vue-router#1212
  15991. // During updates, a kept-alive component's child components may
  15992. // change, so directly walking the tree here may call activated hooks
  15993. // on incorrect children. Instead we push them into a queue which will
  15994. // be processed after the whole patch process ended.
  15995. queueActivatedComponent(componentInstance);
  15996. } else {
  15997. activateChildComponent(componentInstance, true /* direct */);
  15998. }
  15999. }
  16000. },
  16001. destroy: function destroy (vnode) {
  16002. var componentInstance = vnode.componentInstance;
  16003. if (!componentInstance._isDestroyed) {
  16004. if (!vnode.data.keepAlive) {
  16005. componentInstance.$destroy();
  16006. } else {
  16007. deactivateChildComponent(componentInstance, true /* direct */);
  16008. }
  16009. }
  16010. }
  16011. };
  16012. var hooksToMerge = Object.keys(componentVNodeHooks);
  16013. function createComponent (
  16014. Ctor,
  16015. data,
  16016. context,
  16017. children,
  16018. tag
  16019. ) {
  16020. if (isUndef(Ctor)) {
  16021. return
  16022. }
  16023. var baseCtor = context.$options._base;
  16024. // plain options object: turn it into a constructor
  16025. if (isObject(Ctor)) {
  16026. Ctor = baseCtor.extend(Ctor);
  16027. }
  16028. // if at this stage it's not a constructor or an async component factory,
  16029. // reject.
  16030. if (typeof Ctor !== 'function') {
  16031. if (true) {
  16032. warn(("Invalid Component definition: " + (String(Ctor))), context);
  16033. }
  16034. return
  16035. }
  16036. // async component
  16037. var asyncFactory;
  16038. if (isUndef(Ctor.cid)) {
  16039. asyncFactory = Ctor;
  16040. Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
  16041. if (Ctor === undefined) {
  16042. // return a placeholder node for async component, which is rendered
  16043. // as a comment node but preserves all the raw information for the node.
  16044. // the information will be used for async server-rendering and hydration.
  16045. return createAsyncPlaceholder(
  16046. asyncFactory,
  16047. data,
  16048. context,
  16049. children,
  16050. tag
  16051. )
  16052. }
  16053. }
  16054. data = data || {};
  16055. // resolve constructor options in case global mixins are applied after
  16056. // component constructor creation
  16057. resolveConstructorOptions(Ctor);
  16058. // transform component v-model data into props & events
  16059. if (isDef(data.model)) {
  16060. transformModel(Ctor.options, data);
  16061. }
  16062. // extract props
  16063. var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx
  16064. // functional component
  16065. if (isTrue(Ctor.options.functional)) {
  16066. return createFunctionalComponent(Ctor, propsData, data, context, children)
  16067. }
  16068. // extract listeners, since these needs to be treated as
  16069. // child component listeners instead of DOM listeners
  16070. var listeners = data.on;
  16071. // replace with listeners with .native modifier
  16072. // so it gets processed during parent component patch.
  16073. data.on = data.nativeOn;
  16074. if (isTrue(Ctor.options.abstract)) {
  16075. // abstract components do not keep anything
  16076. // other than props & listeners & slot
  16077. // work around flow
  16078. var slot = data.slot;
  16079. data = {};
  16080. if (slot) {
  16081. data.slot = slot;
  16082. }
  16083. }
  16084. // install component management hooks onto the placeholder node
  16085. installComponentHooks(data);
  16086. // return a placeholder vnode
  16087. var name = Ctor.options.name || tag;
  16088. var vnode = new VNode(
  16089. ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
  16090. data, undefined, undefined, undefined, context,
  16091. { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
  16092. asyncFactory
  16093. );
  16094. return vnode
  16095. }
  16096. function createComponentInstanceForVnode (
  16097. vnode, // we know it's MountedComponentVNode but flow doesn't
  16098. parent // activeInstance in lifecycle state
  16099. ) {
  16100. var options = {
  16101. _isComponent: true,
  16102. _parentVnode: vnode,
  16103. parent: parent
  16104. };
  16105. // check inline-template render functions
  16106. var inlineTemplate = vnode.data.inlineTemplate;
  16107. if (isDef(inlineTemplate)) {
  16108. options.render = inlineTemplate.render;
  16109. options.staticRenderFns = inlineTemplate.staticRenderFns;
  16110. }
  16111. return new vnode.componentOptions.Ctor(options)
  16112. }
  16113. function installComponentHooks (data) {
  16114. var hooks = data.hook || (data.hook = {});
  16115. for (var i = 0; i < hooksToMerge.length; i++) {
  16116. var key = hooksToMerge[i];
  16117. var existing = hooks[key];
  16118. var toMerge = componentVNodeHooks[key];
  16119. if (existing !== toMerge && !(existing && existing._merged)) {
  16120. hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
  16121. }
  16122. }
  16123. }
  16124. function mergeHook$1 (f1, f2) {
  16125. var merged = function (a, b) {
  16126. // flow complains about extra args which is why we use any
  16127. f1(a, b);
  16128. f2(a, b);
  16129. };
  16130. merged._merged = true;
  16131. return merged
  16132. }
  16133. // transform component v-model info (value and callback) into
  16134. // prop and event handler respectively.
  16135. function transformModel (options, data) {
  16136. var prop = (options.model && options.model.prop) || 'value';
  16137. var event = (options.model && options.model.event) || 'input'
  16138. ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;
  16139. var on = data.on || (data.on = {});
  16140. var existing = on[event];
  16141. var callback = data.model.callback;
  16142. if (isDef(existing)) {
  16143. if (
  16144. Array.isArray(existing)
  16145. ? existing.indexOf(callback) === -1
  16146. : existing !== callback
  16147. ) {
  16148. on[event] = [callback].concat(existing);
  16149. }
  16150. } else {
  16151. on[event] = callback;
  16152. }
  16153. }
  16154. /* */
  16155. var SIMPLE_NORMALIZE = 1;
  16156. var ALWAYS_NORMALIZE = 2;
  16157. // wrapper function for providing a more flexible interface
  16158. // without getting yelled at by flow
  16159. function createElement (
  16160. context,
  16161. tag,
  16162. data,
  16163. children,
  16164. normalizationType,
  16165. alwaysNormalize
  16166. ) {
  16167. if (Array.isArray(data) || isPrimitive(data)) {
  16168. normalizationType = children;
  16169. children = data;
  16170. data = undefined;
  16171. }
  16172. if (isTrue(alwaysNormalize)) {
  16173. normalizationType = ALWAYS_NORMALIZE;
  16174. }
  16175. return _createElement(context, tag, data, children, normalizationType)
  16176. }
  16177. function _createElement (
  16178. context,
  16179. tag,
  16180. data,
  16181. children,
  16182. normalizationType
  16183. ) {
  16184. if (isDef(data) && isDef((data).__ob__)) {
  16185. true && warn(
  16186. "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
  16187. 'Always create fresh vnode data objects in each render!',
  16188. context
  16189. );
  16190. return createEmptyVNode()
  16191. }
  16192. // object syntax in v-bind
  16193. if (isDef(data) && isDef(data.is)) {
  16194. tag = data.is;
  16195. }
  16196. if (!tag) {
  16197. // in case of component :is set to falsy value
  16198. return createEmptyVNode()
  16199. }
  16200. // warn against non-primitive key
  16201. if ( true &&
  16202. isDef(data) && isDef(data.key) && !isPrimitive(data.key)
  16203. ) {
  16204. {
  16205. warn(
  16206. 'Avoid using non-primitive value as key, ' +
  16207. 'use string/number value instead.',
  16208. context
  16209. );
  16210. }
  16211. }
  16212. // support single function children as default scoped slot
  16213. if (Array.isArray(children) &&
  16214. typeof children[0] === 'function'
  16215. ) {
  16216. data = data || {};
  16217. data.scopedSlots = { default: children[0] };
  16218. children.length = 0;
  16219. }
  16220. if (normalizationType === ALWAYS_NORMALIZE) {
  16221. children = normalizeChildren(children);
  16222. } else if (normalizationType === SIMPLE_NORMALIZE) {
  16223. children = simpleNormalizeChildren(children);
  16224. }
  16225. var vnode, ns;
  16226. if (typeof tag === 'string') {
  16227. var Ctor;
  16228. ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
  16229. if (config.isReservedTag(tag)) {
  16230. // platform built-in elements
  16231. if ( true && isDef(data) && isDef(data.nativeOn)) {
  16232. warn(
  16233. ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."),
  16234. context
  16235. );
  16236. }
  16237. vnode = new VNode(
  16238. config.parsePlatformTagName(tag), data, children,
  16239. undefined, undefined, context
  16240. );
  16241. } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
  16242. // component
  16243. vnode = createComponent(Ctor, data, context, children, tag);
  16244. } else {
  16245. // unknown or unlisted namespaced elements
  16246. // check at runtime because it may get assigned a namespace when its
  16247. // parent normalizes children
  16248. vnode = new VNode(
  16249. tag, data, children,
  16250. undefined, undefined, context
  16251. );
  16252. }
  16253. } else {
  16254. // direct component options / constructor
  16255. vnode = createComponent(tag, data, context, children);
  16256. }
  16257. if (Array.isArray(vnode)) {
  16258. return vnode
  16259. } else if (isDef(vnode)) {
  16260. if (isDef(ns)) { applyNS(vnode, ns); }
  16261. if (isDef(data)) { registerDeepBindings(data); }
  16262. return vnode
  16263. } else {
  16264. return createEmptyVNode()
  16265. }
  16266. }
  16267. function applyNS (vnode, ns, force) {
  16268. vnode.ns = ns;
  16269. if (vnode.tag === 'foreignObject') {
  16270. // use default namespace inside foreignObject
  16271. ns = undefined;
  16272. force = true;
  16273. }
  16274. if (isDef(vnode.children)) {
  16275. for (var i = 0, l = vnode.children.length; i < l; i++) {
  16276. var child = vnode.children[i];
  16277. if (isDef(child.tag) && (
  16278. isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
  16279. applyNS(child, ns, force);
  16280. }
  16281. }
  16282. }
  16283. }
  16284. // ref #5318
  16285. // necessary to ensure parent re-render when deep bindings like :style and
  16286. // :class are used on slot nodes
  16287. function registerDeepBindings (data) {
  16288. if (isObject(data.style)) {
  16289. traverse(data.style);
  16290. }
  16291. if (isObject(data.class)) {
  16292. traverse(data.class);
  16293. }
  16294. }
  16295. /* */
  16296. function initRender (vm) {
  16297. vm._vnode = null; // the root of the child tree
  16298. vm._staticTrees = null; // v-once cached trees
  16299. var options = vm.$options;
  16300. var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
  16301. var renderContext = parentVnode && parentVnode.context;
  16302. vm.$slots = resolveSlots(options._renderChildren, renderContext);
  16303. vm.$scopedSlots = emptyObject;
  16304. // bind the createElement fn to this instance
  16305. // so that we get proper render context inside it.
  16306. // args order: tag, data, children, normalizationType, alwaysNormalize
  16307. // internal version is used by render functions compiled from templates
  16308. vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
  16309. // normalization is always applied for the public version, used in
  16310. // user-written render functions.
  16311. vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
  16312. // $attrs & $listeners are exposed for easier HOC creation.
  16313. // they need to be reactive so that HOCs using them are always updated
  16314. var parentData = parentVnode && parentVnode.data;
  16315. /* istanbul ignore else */
  16316. if (true) {
  16317. defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
  16318. !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
  16319. }, true);
  16320. defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
  16321. !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
  16322. }, true);
  16323. } else {}
  16324. }
  16325. var currentRenderingInstance = null;
  16326. function renderMixin (Vue) {
  16327. // install runtime convenience helpers
  16328. installRenderHelpers(Vue.prototype);
  16329. Vue.prototype.$nextTick = function (fn) {
  16330. return nextTick(fn, this)
  16331. };
  16332. Vue.prototype._render = function () {
  16333. var vm = this;
  16334. var ref = vm.$options;
  16335. var render = ref.render;
  16336. var _parentVnode = ref._parentVnode;
  16337. if (_parentVnode) {
  16338. vm.$scopedSlots = normalizeScopedSlots(
  16339. _parentVnode.data.scopedSlots,
  16340. vm.$slots,
  16341. vm.$scopedSlots
  16342. );
  16343. }
  16344. // set parent vnode. this allows render functions to have access
  16345. // to the data on the placeholder node.
  16346. vm.$vnode = _parentVnode;
  16347. // render self
  16348. var vnode;
  16349. try {
  16350. // There's no need to maintain a stack because all render fns are called
  16351. // separately from one another. Nested component's render fns are called
  16352. // when parent component is patched.
  16353. currentRenderingInstance = vm;
  16354. vnode = render.call(vm._renderProxy, vm.$createElement);
  16355. } catch (e) {
  16356. handleError(e, vm, "render");
  16357. // return error render result,
  16358. // or previous vnode to prevent render error causing blank component
  16359. /* istanbul ignore else */
  16360. if ( true && vm.$options.renderError) {
  16361. try {
  16362. vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
  16363. } catch (e) {
  16364. handleError(e, vm, "renderError");
  16365. vnode = vm._vnode;
  16366. }
  16367. } else {
  16368. vnode = vm._vnode;
  16369. }
  16370. } finally {
  16371. currentRenderingInstance = null;
  16372. }
  16373. // if the returned array contains only a single node, allow it
  16374. if (Array.isArray(vnode) && vnode.length === 1) {
  16375. vnode = vnode[0];
  16376. }
  16377. // return empty vnode in case the render function errored out
  16378. if (!(vnode instanceof VNode)) {
  16379. if ( true && Array.isArray(vnode)) {
  16380. warn(
  16381. 'Multiple root nodes returned from render function. Render function ' +
  16382. 'should return a single root node.',
  16383. vm
  16384. );
  16385. }
  16386. vnode = createEmptyVNode();
  16387. }
  16388. // set parent
  16389. vnode.parent = _parentVnode;
  16390. return vnode
  16391. };
  16392. }
  16393. /* */
  16394. function ensureCtor (comp, base) {
  16395. if (
  16396. comp.__esModule ||
  16397. (hasSymbol && comp[Symbol.toStringTag] === 'Module')
  16398. ) {
  16399. comp = comp.default;
  16400. }
  16401. return isObject(comp)
  16402. ? base.extend(comp)
  16403. : comp
  16404. }
  16405. function createAsyncPlaceholder (
  16406. factory,
  16407. data,
  16408. context,
  16409. children,
  16410. tag
  16411. ) {
  16412. var node = createEmptyVNode();
  16413. node.asyncFactory = factory;
  16414. node.asyncMeta = { data: data, context: context, children: children, tag: tag };
  16415. return node
  16416. }
  16417. function resolveAsyncComponent (
  16418. factory,
  16419. baseCtor
  16420. ) {
  16421. if (isTrue(factory.error) && isDef(factory.errorComp)) {
  16422. return factory.errorComp
  16423. }
  16424. if (isDef(factory.resolved)) {
  16425. return factory.resolved
  16426. }
  16427. var owner = currentRenderingInstance;
  16428. if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
  16429. // already pending
  16430. factory.owners.push(owner);
  16431. }
  16432. if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
  16433. return factory.loadingComp
  16434. }
  16435. if (owner && !isDef(factory.owners)) {
  16436. var owners = factory.owners = [owner];
  16437. var sync = true;
  16438. var timerLoading = null;
  16439. var timerTimeout = null
  16440. ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
  16441. var forceRender = function (renderCompleted) {
  16442. for (var i = 0, l = owners.length; i < l; i++) {
  16443. (owners[i]).$forceUpdate();
  16444. }
  16445. if (renderCompleted) {
  16446. owners.length = 0;
  16447. if (timerLoading !== null) {
  16448. clearTimeout(timerLoading);
  16449. timerLoading = null;
  16450. }
  16451. if (timerTimeout !== null) {
  16452. clearTimeout(timerTimeout);
  16453. timerTimeout = null;
  16454. }
  16455. }
  16456. };
  16457. var resolve = once(function (res) {
  16458. // cache resolved
  16459. factory.resolved = ensureCtor(res, baseCtor);
  16460. // invoke callbacks only if this is not a synchronous resolve
  16461. // (async resolves are shimmed as synchronous during SSR)
  16462. if (!sync) {
  16463. forceRender(true);
  16464. } else {
  16465. owners.length = 0;
  16466. }
  16467. });
  16468. var reject = once(function (reason) {
  16469. true && warn(
  16470. "Failed to resolve async component: " + (String(factory)) +
  16471. (reason ? ("\nReason: " + reason) : '')
  16472. );
  16473. if (isDef(factory.errorComp)) {
  16474. factory.error = true;
  16475. forceRender(true);
  16476. }
  16477. });
  16478. var res = factory(resolve, reject);
  16479. if (isObject(res)) {
  16480. if (isPromise(res)) {
  16481. // () => Promise
  16482. if (isUndef(factory.resolved)) {
  16483. res.then(resolve, reject);
  16484. }
  16485. } else if (isPromise(res.component)) {
  16486. res.component.then(resolve, reject);
  16487. if (isDef(res.error)) {
  16488. factory.errorComp = ensureCtor(res.error, baseCtor);
  16489. }
  16490. if (isDef(res.loading)) {
  16491. factory.loadingComp = ensureCtor(res.loading, baseCtor);
  16492. if (res.delay === 0) {
  16493. factory.loading = true;
  16494. } else {
  16495. timerLoading = setTimeout(function () {
  16496. timerLoading = null;
  16497. if (isUndef(factory.resolved) && isUndef(factory.error)) {
  16498. factory.loading = true;
  16499. forceRender(false);
  16500. }
  16501. }, res.delay || 200);
  16502. }
  16503. }
  16504. if (isDef(res.timeout)) {
  16505. timerTimeout = setTimeout(function () {
  16506. timerTimeout = null;
  16507. if (isUndef(factory.resolved)) {
  16508. reject(
  16509. true
  16510. ? ("timeout (" + (res.timeout) + "ms)")
  16511. : undefined
  16512. );
  16513. }
  16514. }, res.timeout);
  16515. }
  16516. }
  16517. }
  16518. sync = false;
  16519. // return in case resolved synchronously
  16520. return factory.loading
  16521. ? factory.loadingComp
  16522. : factory.resolved
  16523. }
  16524. }
  16525. /* */
  16526. function isAsyncPlaceholder (node) {
  16527. return node.isComment && node.asyncFactory
  16528. }
  16529. /* */
  16530. function getFirstComponentChild (children) {
  16531. if (Array.isArray(children)) {
  16532. for (var i = 0; i < children.length; i++) {
  16533. var c = children[i];
  16534. if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
  16535. return c
  16536. }
  16537. }
  16538. }
  16539. }
  16540. /* */
  16541. /* */
  16542. function initEvents (vm) {
  16543. vm._events = Object.create(null);
  16544. vm._hasHookEvent = false;
  16545. // init parent attached events
  16546. var listeners = vm.$options._parentListeners;
  16547. if (listeners) {
  16548. updateComponentListeners(vm, listeners);
  16549. }
  16550. }
  16551. var target;
  16552. function add (event, fn) {
  16553. target.$on(event, fn);
  16554. }
  16555. function remove$1 (event, fn) {
  16556. target.$off(event, fn);
  16557. }
  16558. function createOnceHandler (event, fn) {
  16559. var _target = target;
  16560. return function onceHandler () {
  16561. var res = fn.apply(null, arguments);
  16562. if (res !== null) {
  16563. _target.$off(event, onceHandler);
  16564. }
  16565. }
  16566. }
  16567. function updateComponentListeners (
  16568. vm,
  16569. listeners,
  16570. oldListeners
  16571. ) {
  16572. target = vm;
  16573. updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
  16574. target = undefined;
  16575. }
  16576. function eventsMixin (Vue) {
  16577. var hookRE = /^hook:/;
  16578. Vue.prototype.$on = function (event, fn) {
  16579. var vm = this;
  16580. if (Array.isArray(event)) {
  16581. for (var i = 0, l = event.length; i < l; i++) {
  16582. vm.$on(event[i], fn);
  16583. }
  16584. } else {
  16585. (vm._events[event] || (vm._events[event] = [])).push(fn);
  16586. // optimize hook:event cost by using a boolean flag marked at registration
  16587. // instead of a hash lookup
  16588. if (hookRE.test(event)) {
  16589. vm._hasHookEvent = true;
  16590. }
  16591. }
  16592. return vm
  16593. };
  16594. Vue.prototype.$once = function (event, fn) {
  16595. var vm = this;
  16596. function on () {
  16597. vm.$off(event, on);
  16598. fn.apply(vm, arguments);
  16599. }
  16600. on.fn = fn;
  16601. vm.$on(event, on);
  16602. return vm
  16603. };
  16604. Vue.prototype.$off = function (event, fn) {
  16605. var vm = this;
  16606. // all
  16607. if (!arguments.length) {
  16608. vm._events = Object.create(null);
  16609. return vm
  16610. }
  16611. // array of events
  16612. if (Array.isArray(event)) {
  16613. for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
  16614. vm.$off(event[i$1], fn);
  16615. }
  16616. return vm
  16617. }
  16618. // specific event
  16619. var cbs = vm._events[event];
  16620. if (!cbs) {
  16621. return vm
  16622. }
  16623. if (!fn) {
  16624. vm._events[event] = null;
  16625. return vm
  16626. }
  16627. // specific handler
  16628. var cb;
  16629. var i = cbs.length;
  16630. while (i--) {
  16631. cb = cbs[i];
  16632. if (cb === fn || cb.fn === fn) {
  16633. cbs.splice(i, 1);
  16634. break
  16635. }
  16636. }
  16637. return vm
  16638. };
  16639. Vue.prototype.$emit = function (event) {
  16640. var vm = this;
  16641. if (true) {
  16642. var lowerCaseEvent = event.toLowerCase();
  16643. if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
  16644. tip(
  16645. "Event \"" + lowerCaseEvent + "\" is emitted in component " +
  16646. (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
  16647. "Note that HTML attributes are case-insensitive and you cannot use " +
  16648. "v-on to listen to camelCase events when using in-DOM templates. " +
  16649. "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
  16650. );
  16651. }
  16652. }
  16653. var cbs = vm._events[event];
  16654. if (cbs) {
  16655. cbs = cbs.length > 1 ? toArray(cbs) : cbs;
  16656. var args = toArray(arguments, 1);
  16657. var info = "event handler for \"" + event + "\"";
  16658. for (var i = 0, l = cbs.length; i < l; i++) {
  16659. invokeWithErrorHandling(cbs[i], vm, args, vm, info);
  16660. }
  16661. }
  16662. return vm
  16663. };
  16664. }
  16665. /* */
  16666. var activeInstance = null;
  16667. var isUpdatingChildComponent = false;
  16668. function setActiveInstance(vm) {
  16669. var prevActiveInstance = activeInstance;
  16670. activeInstance = vm;
  16671. return function () {
  16672. activeInstance = prevActiveInstance;
  16673. }
  16674. }
  16675. function initLifecycle (vm) {
  16676. var options = vm.$options;
  16677. // locate first non-abstract parent
  16678. var parent = options.parent;
  16679. if (parent && !options.abstract) {
  16680. while (parent.$options.abstract && parent.$parent) {
  16681. parent = parent.$parent;
  16682. }
  16683. parent.$children.push(vm);
  16684. }
  16685. vm.$parent = parent;
  16686. vm.$root = parent ? parent.$root : vm;
  16687. vm.$children = [];
  16688. vm.$refs = {};
  16689. vm._watcher = null;
  16690. vm._inactive = null;
  16691. vm._directInactive = false;
  16692. vm._isMounted = false;
  16693. vm._isDestroyed = false;
  16694. vm._isBeingDestroyed = false;
  16695. }
  16696. function lifecycleMixin (Vue) {
  16697. Vue.prototype._update = function (vnode, hydrating) {
  16698. var vm = this;
  16699. var prevEl = vm.$el;
  16700. var prevVnode = vm._vnode;
  16701. var restoreActiveInstance = setActiveInstance(vm);
  16702. vm._vnode = vnode;
  16703. // Vue.prototype.__patch__ is injected in entry points
  16704. // based on the rendering backend used.
  16705. if (!prevVnode) {
  16706. // initial render
  16707. vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
  16708. } else {
  16709. // updates
  16710. vm.$el = vm.__patch__(prevVnode, vnode);
  16711. }
  16712. restoreActiveInstance();
  16713. // update __vue__ reference
  16714. if (prevEl) {
  16715. prevEl.__vue__ = null;
  16716. }
  16717. if (vm.$el) {
  16718. vm.$el.__vue__ = vm;
  16719. }
  16720. // if parent is an HOC, update its $el as well
  16721. if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
  16722. vm.$parent.$el = vm.$el;
  16723. }
  16724. // updated hook is called by the scheduler to ensure that children are
  16725. // updated in a parent's updated hook.
  16726. };
  16727. Vue.prototype.$forceUpdate = function () {
  16728. var vm = this;
  16729. if (vm._watcher) {
  16730. vm._watcher.update();
  16731. }
  16732. };
  16733. Vue.prototype.$destroy = function () {
  16734. var vm = this;
  16735. if (vm._isBeingDestroyed) {
  16736. return
  16737. }
  16738. callHook(vm, 'beforeDestroy');
  16739. vm._isBeingDestroyed = true;
  16740. // remove self from parent
  16741. var parent = vm.$parent;
  16742. if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
  16743. remove(parent.$children, vm);
  16744. }
  16745. // teardown watchers
  16746. if (vm._watcher) {
  16747. vm._watcher.teardown();
  16748. }
  16749. var i = vm._watchers.length;
  16750. while (i--) {
  16751. vm._watchers[i].teardown();
  16752. }
  16753. // remove reference from data ob
  16754. // frozen object may not have observer.
  16755. if (vm._data.__ob__) {
  16756. vm._data.__ob__.vmCount--;
  16757. }
  16758. // call the last hook...
  16759. vm._isDestroyed = true;
  16760. // invoke destroy hooks on current rendered tree
  16761. vm.__patch__(vm._vnode, null);
  16762. // fire destroyed hook
  16763. callHook(vm, 'destroyed');
  16764. // turn off all instance listeners.
  16765. vm.$off();
  16766. // remove __vue__ reference
  16767. if (vm.$el) {
  16768. vm.$el.__vue__ = null;
  16769. }
  16770. // release circular reference (#6759)
  16771. if (vm.$vnode) {
  16772. vm.$vnode.parent = null;
  16773. }
  16774. };
  16775. }
  16776. function updateChildComponent (
  16777. vm,
  16778. propsData,
  16779. listeners,
  16780. parentVnode,
  16781. renderChildren
  16782. ) {
  16783. if (true) {
  16784. isUpdatingChildComponent = true;
  16785. }
  16786. // determine whether component has slot children
  16787. // we need to do this before overwriting $options._renderChildren.
  16788. // check if there are dynamic scopedSlots (hand-written or compiled but with
  16789. // dynamic slot names). Static scoped slots compiled from template has the
  16790. // "$stable" marker.
  16791. var newScopedSlots = parentVnode.data.scopedSlots;
  16792. var oldScopedSlots = vm.$scopedSlots;
  16793. var hasDynamicScopedSlot = !!(
  16794. (newScopedSlots && !newScopedSlots.$stable) ||
  16795. (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
  16796. (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
  16797. );
  16798. // Any static slot children from the parent may have changed during parent's
  16799. // update. Dynamic scoped slots may also have changed. In such cases, a forced
  16800. // update is necessary to ensure correctness.
  16801. var needsForceUpdate = !!(
  16802. renderChildren || // has new static slots
  16803. vm.$options._renderChildren || // has old static slots
  16804. hasDynamicScopedSlot
  16805. );
  16806. vm.$options._parentVnode = parentVnode;
  16807. vm.$vnode = parentVnode; // update vm's placeholder node without re-render
  16808. if (vm._vnode) { // update child tree's parent
  16809. vm._vnode.parent = parentVnode;
  16810. }
  16811. vm.$options._renderChildren = renderChildren;
  16812. // update $attrs and $listeners hash
  16813. // these are also reactive so they may trigger child update if the child
  16814. // used them during render
  16815. vm.$attrs = parentVnode.data.attrs || emptyObject;
  16816. vm.$listeners = listeners || emptyObject;
  16817. // update props
  16818. if (propsData && vm.$options.props) {
  16819. toggleObserving(false);
  16820. var props = vm._props;
  16821. var propKeys = vm.$options._propKeys || [];
  16822. for (var i = 0; i < propKeys.length; i++) {
  16823. var key = propKeys[i];
  16824. var propOptions = vm.$options.props; // wtf flow?
  16825. props[key] = validateProp(key, propOptions, propsData, vm);
  16826. }
  16827. toggleObserving(true);
  16828. // keep a copy of raw propsData
  16829. vm.$options.propsData = propsData;
  16830. }
  16831. // fixed by xxxxxx update properties(mp runtime)
  16832. vm._$updateProperties && vm._$updateProperties(vm);
  16833. // update listeners
  16834. listeners = listeners || emptyObject;
  16835. var oldListeners = vm.$options._parentListeners;
  16836. vm.$options._parentListeners = listeners;
  16837. updateComponentListeners(vm, listeners, oldListeners);
  16838. // resolve slots + force update if has children
  16839. if (needsForceUpdate) {
  16840. vm.$slots = resolveSlots(renderChildren, parentVnode.context);
  16841. vm.$forceUpdate();
  16842. }
  16843. if (true) {
  16844. isUpdatingChildComponent = false;
  16845. }
  16846. }
  16847. function isInInactiveTree (vm) {
  16848. while (vm && (vm = vm.$parent)) {
  16849. if (vm._inactive) { return true }
  16850. }
  16851. return false
  16852. }
  16853. function activateChildComponent (vm, direct) {
  16854. if (direct) {
  16855. vm._directInactive = false;
  16856. if (isInInactiveTree(vm)) {
  16857. return
  16858. }
  16859. } else if (vm._directInactive) {
  16860. return
  16861. }
  16862. if (vm._inactive || vm._inactive === null) {
  16863. vm._inactive = false;
  16864. for (var i = 0; i < vm.$children.length; i++) {
  16865. activateChildComponent(vm.$children[i]);
  16866. }
  16867. callHook(vm, 'activated');
  16868. }
  16869. }
  16870. function deactivateChildComponent (vm, direct) {
  16871. if (direct) {
  16872. vm._directInactive = true;
  16873. if (isInInactiveTree(vm)) {
  16874. return
  16875. }
  16876. }
  16877. if (!vm._inactive) {
  16878. vm._inactive = true;
  16879. for (var i = 0; i < vm.$children.length; i++) {
  16880. deactivateChildComponent(vm.$children[i]);
  16881. }
  16882. callHook(vm, 'deactivated');
  16883. }
  16884. }
  16885. function callHook (vm, hook) {
  16886. // #7573 disable dep collection when invoking lifecycle hooks
  16887. pushTarget();
  16888. var handlers = vm.$options[hook];
  16889. var info = hook + " hook";
  16890. if (handlers) {
  16891. for (var i = 0, j = handlers.length; i < j; i++) {
  16892. invokeWithErrorHandling(handlers[i], vm, null, vm, info);
  16893. }
  16894. }
  16895. if (vm._hasHookEvent) {
  16896. vm.$emit('hook:' + hook);
  16897. }
  16898. popTarget();
  16899. }
  16900. /* */
  16901. var MAX_UPDATE_COUNT = 100;
  16902. var queue = [];
  16903. var activatedChildren = [];
  16904. var has = {};
  16905. var circular = {};
  16906. var waiting = false;
  16907. var flushing = false;
  16908. var index = 0;
  16909. /**
  16910. * Reset the scheduler's state.
  16911. */
  16912. function resetSchedulerState () {
  16913. index = queue.length = activatedChildren.length = 0;
  16914. has = {};
  16915. if (true) {
  16916. circular = {};
  16917. }
  16918. waiting = flushing = false;
  16919. }
  16920. // Async edge case #6566 requires saving the timestamp when event listeners are
  16921. // attached. However, calling performance.now() has a perf overhead especially
  16922. // if the page has thousands of event listeners. Instead, we take a timestamp
  16923. // every time the scheduler flushes and use that for all event listeners
  16924. // attached during that flush.
  16925. var currentFlushTimestamp = 0;
  16926. // Async edge case fix requires storing an event listener's attach timestamp.
  16927. var getNow = Date.now;
  16928. // Determine what event timestamp the browser is using. Annoyingly, the
  16929. // timestamp can either be hi-res (relative to page load) or low-res
  16930. // (relative to UNIX epoch), so in order to compare time we have to use the
  16931. // same timestamp type when saving the flush timestamp.
  16932. // All IE versions use low-res event timestamps, and have problematic clock
  16933. // implementations (#9632)
  16934. if (inBrowser && !isIE) {
  16935. var performance = window.performance;
  16936. if (
  16937. performance &&
  16938. typeof performance.now === 'function' &&
  16939. getNow() > document.createEvent('Event').timeStamp
  16940. ) {
  16941. // if the event timestamp, although evaluated AFTER the Date.now(), is
  16942. // smaller than it, it means the event is using a hi-res timestamp,
  16943. // and we need to use the hi-res version for event listener timestamps as
  16944. // well.
  16945. getNow = function () { return performance.now(); };
  16946. }
  16947. }
  16948. /**
  16949. * Flush both queues and run the watchers.
  16950. */
  16951. function flushSchedulerQueue () {
  16952. currentFlushTimestamp = getNow();
  16953. flushing = true;
  16954. var watcher, id;
  16955. // Sort queue before flush.
  16956. // This ensures that:
  16957. // 1. Components are updated from parent to child. (because parent is always
  16958. // created before the child)
  16959. // 2. A component's user watchers are run before its render watcher (because
  16960. // user watchers are created before the render watcher)
  16961. // 3. If a component is destroyed during a parent component's watcher run,
  16962. // its watchers can be skipped.
  16963. queue.sort(function (a, b) { return a.id - b.id; });
  16964. // do not cache length because more watchers might be pushed
  16965. // as we run existing watchers
  16966. for (index = 0; index < queue.length; index++) {
  16967. watcher = queue[index];
  16968. if (watcher.before) {
  16969. watcher.before();
  16970. }
  16971. id = watcher.id;
  16972. has[id] = null;
  16973. watcher.run();
  16974. // in dev build, check and stop circular updates.
  16975. if ( true && has[id] != null) {
  16976. circular[id] = (circular[id] || 0) + 1;
  16977. if (circular[id] > MAX_UPDATE_COUNT) {
  16978. warn(
  16979. 'You may have an infinite update loop ' + (
  16980. watcher.user
  16981. ? ("in watcher with expression \"" + (watcher.expression) + "\"")
  16982. : "in a component render function."
  16983. ),
  16984. watcher.vm
  16985. );
  16986. break
  16987. }
  16988. }
  16989. }
  16990. // keep copies of post queues before resetting state
  16991. var activatedQueue = activatedChildren.slice();
  16992. var updatedQueue = queue.slice();
  16993. resetSchedulerState();
  16994. // call component updated and activated hooks
  16995. callActivatedHooks(activatedQueue);
  16996. callUpdatedHooks(updatedQueue);
  16997. // devtool hook
  16998. /* istanbul ignore if */
  16999. if (devtools && config.devtools) {
  17000. devtools.emit('flush');
  17001. }
  17002. }
  17003. function callUpdatedHooks (queue) {
  17004. var i = queue.length;
  17005. while (i--) {
  17006. var watcher = queue[i];
  17007. var vm = watcher.vm;
  17008. if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
  17009. callHook(vm, 'updated');
  17010. }
  17011. }
  17012. }
  17013. /**
  17014. * Queue a kept-alive component that was activated during patch.
  17015. * The queue will be processed after the entire tree has been patched.
  17016. */
  17017. function queueActivatedComponent (vm) {
  17018. // setting _inactive to false here so that a render function can
  17019. // rely on checking whether it's in an inactive tree (e.g. router-view)
  17020. vm._inactive = false;
  17021. activatedChildren.push(vm);
  17022. }
  17023. function callActivatedHooks (queue) {
  17024. for (var i = 0; i < queue.length; i++) {
  17025. queue[i]._inactive = true;
  17026. activateChildComponent(queue[i], true /* true */);
  17027. }
  17028. }
  17029. /**
  17030. * Push a watcher into the watcher queue.
  17031. * Jobs with duplicate IDs will be skipped unless it's
  17032. * pushed when the queue is being flushed.
  17033. */
  17034. function queueWatcher (watcher) {
  17035. var id = watcher.id;
  17036. if (has[id] == null) {
  17037. has[id] = true;
  17038. if (!flushing) {
  17039. queue.push(watcher);
  17040. } else {
  17041. // if already flushing, splice the watcher based on its id
  17042. // if already past its id, it will be run next immediately.
  17043. var i = queue.length - 1;
  17044. while (i > index && queue[i].id > watcher.id) {
  17045. i--;
  17046. }
  17047. queue.splice(i + 1, 0, watcher);
  17048. }
  17049. // queue the flush
  17050. if (!waiting) {
  17051. waiting = true;
  17052. if ( true && !config.async) {
  17053. flushSchedulerQueue();
  17054. return
  17055. }
  17056. nextTick(flushSchedulerQueue);
  17057. }
  17058. }
  17059. }
  17060. /* */
  17061. var uid$2 = 0;
  17062. /**
  17063. * A watcher parses an expression, collects dependencies,
  17064. * and fires callback when the expression value changes.
  17065. * This is used for both the $watch() api and directives.
  17066. */
  17067. var Watcher = function Watcher (
  17068. vm,
  17069. expOrFn,
  17070. cb,
  17071. options,
  17072. isRenderWatcher
  17073. ) {
  17074. this.vm = vm;
  17075. if (isRenderWatcher) {
  17076. vm._watcher = this;
  17077. }
  17078. vm._watchers.push(this);
  17079. // options
  17080. if (options) {
  17081. this.deep = !!options.deep;
  17082. this.user = !!options.user;
  17083. this.lazy = !!options.lazy;
  17084. this.sync = !!options.sync;
  17085. this.before = options.before;
  17086. } else {
  17087. this.deep = this.user = this.lazy = this.sync = false;
  17088. }
  17089. this.cb = cb;
  17090. this.id = ++uid$2; // uid for batching
  17091. this.active = true;
  17092. this.dirty = this.lazy; // for lazy watchers
  17093. this.deps = [];
  17094. this.newDeps = [];
  17095. this.depIds = new _Set();
  17096. this.newDepIds = new _Set();
  17097. this.expression = true
  17098. ? expOrFn.toString()
  17099. : undefined;
  17100. // parse expression for getter
  17101. if (typeof expOrFn === 'function') {
  17102. this.getter = expOrFn;
  17103. } else {
  17104. this.getter = parsePath(expOrFn);
  17105. if (!this.getter) {
  17106. this.getter = noop;
  17107. true && warn(
  17108. "Failed watching path: \"" + expOrFn + "\" " +
  17109. 'Watcher only accepts simple dot-delimited paths. ' +
  17110. 'For full control, use a function instead.',
  17111. vm
  17112. );
  17113. }
  17114. }
  17115. this.value = this.lazy
  17116. ? undefined
  17117. : this.get();
  17118. };
  17119. /**
  17120. * Evaluate the getter, and re-collect dependencies.
  17121. */
  17122. Watcher.prototype.get = function get () {
  17123. pushTarget(this);
  17124. var value;
  17125. var vm = this.vm;
  17126. try {
  17127. value = this.getter.call(vm, vm);
  17128. } catch (e) {
  17129. if (this.user) {
  17130. handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
  17131. } else {
  17132. throw e
  17133. }
  17134. } finally {
  17135. // "touch" every property so they are all tracked as
  17136. // dependencies for deep watching
  17137. if (this.deep) {
  17138. traverse(value);
  17139. }
  17140. popTarget();
  17141. this.cleanupDeps();
  17142. }
  17143. return value
  17144. };
  17145. /**
  17146. * Add a dependency to this directive.
  17147. */
  17148. Watcher.prototype.addDep = function addDep (dep) {
  17149. var id = dep.id;
  17150. if (!this.newDepIds.has(id)) {
  17151. this.newDepIds.add(id);
  17152. this.newDeps.push(dep);
  17153. if (!this.depIds.has(id)) {
  17154. dep.addSub(this);
  17155. }
  17156. }
  17157. };
  17158. /**
  17159. * Clean up for dependency collection.
  17160. */
  17161. Watcher.prototype.cleanupDeps = function cleanupDeps () {
  17162. var i = this.deps.length;
  17163. while (i--) {
  17164. var dep = this.deps[i];
  17165. if (!this.newDepIds.has(dep.id)) {
  17166. dep.removeSub(this);
  17167. }
  17168. }
  17169. var tmp = this.depIds;
  17170. this.depIds = this.newDepIds;
  17171. this.newDepIds = tmp;
  17172. this.newDepIds.clear();
  17173. tmp = this.deps;
  17174. this.deps = this.newDeps;
  17175. this.newDeps = tmp;
  17176. this.newDeps.length = 0;
  17177. };
  17178. /**
  17179. * Subscriber interface.
  17180. * Will be called when a dependency changes.
  17181. */
  17182. Watcher.prototype.update = function update () {
  17183. /* istanbul ignore else */
  17184. if (this.lazy) {
  17185. this.dirty = true;
  17186. } else if (this.sync) {
  17187. this.run();
  17188. } else {
  17189. queueWatcher(this);
  17190. }
  17191. };
  17192. /**
  17193. * Scheduler job interface.
  17194. * Will be called by the scheduler.
  17195. */
  17196. Watcher.prototype.run = function run () {
  17197. if (this.active) {
  17198. var value = this.get();
  17199. if (
  17200. value !== this.value ||
  17201. // Deep watchers and watchers on Object/Arrays should fire even
  17202. // when the value is the same, because the value may
  17203. // have mutated.
  17204. isObject(value) ||
  17205. this.deep
  17206. ) {
  17207. // set new value
  17208. var oldValue = this.value;
  17209. this.value = value;
  17210. if (this.user) {
  17211. try {
  17212. this.cb.call(this.vm, value, oldValue);
  17213. } catch (e) {
  17214. handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
  17215. }
  17216. } else {
  17217. this.cb.call(this.vm, value, oldValue);
  17218. }
  17219. }
  17220. }
  17221. };
  17222. /**
  17223. * Evaluate the value of the watcher.
  17224. * This only gets called for lazy watchers.
  17225. */
  17226. Watcher.prototype.evaluate = function evaluate () {
  17227. this.value = this.get();
  17228. this.dirty = false;
  17229. };
  17230. /**
  17231. * Depend on all deps collected by this watcher.
  17232. */
  17233. Watcher.prototype.depend = function depend () {
  17234. var i = this.deps.length;
  17235. while (i--) {
  17236. this.deps[i].depend();
  17237. }
  17238. };
  17239. /**
  17240. * Remove self from all dependencies' subscriber list.
  17241. */
  17242. Watcher.prototype.teardown = function teardown () {
  17243. if (this.active) {
  17244. // remove self from vm's watcher list
  17245. // this is a somewhat expensive operation so we skip it
  17246. // if the vm is being destroyed.
  17247. if (!this.vm._isBeingDestroyed) {
  17248. remove(this.vm._watchers, this);
  17249. }
  17250. var i = this.deps.length;
  17251. while (i--) {
  17252. this.deps[i].removeSub(this);
  17253. }
  17254. this.active = false;
  17255. }
  17256. };
  17257. /* */
  17258. var sharedPropertyDefinition = {
  17259. enumerable: true,
  17260. configurable: true,
  17261. get: noop,
  17262. set: noop
  17263. };
  17264. function proxy (target, sourceKey, key) {
  17265. sharedPropertyDefinition.get = function proxyGetter () {
  17266. return this[sourceKey][key]
  17267. };
  17268. sharedPropertyDefinition.set = function proxySetter (val) {
  17269. this[sourceKey][key] = val;
  17270. };
  17271. Object.defineProperty(target, key, sharedPropertyDefinition);
  17272. }
  17273. function initState (vm) {
  17274. vm._watchers = [];
  17275. var opts = vm.$options;
  17276. if (opts.props) { initProps(vm, opts.props); }
  17277. if (opts.methods) { initMethods(vm, opts.methods); }
  17278. if (opts.data) {
  17279. initData(vm);
  17280. } else {
  17281. observe(vm._data = {}, true /* asRootData */);
  17282. }
  17283. if (opts.computed) { initComputed(vm, opts.computed); }
  17284. if (opts.watch && opts.watch !== nativeWatch) {
  17285. initWatch(vm, opts.watch);
  17286. }
  17287. }
  17288. function initProps (vm, propsOptions) {
  17289. var propsData = vm.$options.propsData || {};
  17290. var props = vm._props = {};
  17291. // cache prop keys so that future props updates can iterate using Array
  17292. // instead of dynamic object key enumeration.
  17293. var keys = vm.$options._propKeys = [];
  17294. var isRoot = !vm.$parent;
  17295. // root instance props should be converted
  17296. if (!isRoot) {
  17297. toggleObserving(false);
  17298. }
  17299. var loop = function ( key ) {
  17300. keys.push(key);
  17301. var value = validateProp(key, propsOptions, propsData, vm);
  17302. /* istanbul ignore else */
  17303. if (true) {
  17304. var hyphenatedKey = hyphenate(key);
  17305. if (isReservedAttribute(hyphenatedKey) ||
  17306. config.isReservedAttr(hyphenatedKey)) {
  17307. warn(
  17308. ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
  17309. vm
  17310. );
  17311. }
  17312. defineReactive$$1(props, key, value, function () {
  17313. if (!isRoot && !isUpdatingChildComponent) {
  17314. {
  17315. if(vm.mpHost === 'mp-baidu' || vm.mpHost === 'mp-kuaishou' || vm.mpHost === 'mp-xhs'){//百度、快手、小红书 observer 在 setData callback 之后触发,直接忽略该 warn
  17316. return
  17317. }
  17318. //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警
  17319. if(
  17320. key === 'value' &&
  17321. Array.isArray(vm.$options.behaviors) &&
  17322. vm.$options.behaviors.indexOf('uni://form-field') !== -1
  17323. ){
  17324. return
  17325. }
  17326. if(vm._getFormData){
  17327. return
  17328. }
  17329. var $parent = vm.$parent;
  17330. while($parent){
  17331. if($parent.__next_tick_pending){
  17332. return
  17333. }
  17334. $parent = $parent.$parent;
  17335. }
  17336. }
  17337. warn(
  17338. "Avoid mutating a prop directly since the value will be " +
  17339. "overwritten whenever the parent component re-renders. " +
  17340. "Instead, use a data or computed property based on the prop's " +
  17341. "value. Prop being mutated: \"" + key + "\"",
  17342. vm
  17343. );
  17344. }
  17345. });
  17346. } else {}
  17347. // static props are already proxied on the component's prototype
  17348. // during Vue.extend(). We only need to proxy props defined at
  17349. // instantiation here.
  17350. if (!(key in vm)) {
  17351. proxy(vm, "_props", key);
  17352. }
  17353. };
  17354. for (var key in propsOptions) loop( key );
  17355. toggleObserving(true);
  17356. }
  17357. function initData (vm) {
  17358. var data = vm.$options.data;
  17359. data = vm._data = typeof data === 'function'
  17360. ? getData(data, vm)
  17361. : data || {};
  17362. if (!isPlainObject(data)) {
  17363. data = {};
  17364. true && warn(
  17365. 'data functions should return an object:\n' +
  17366. 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
  17367. vm
  17368. );
  17369. }
  17370. // proxy data on instance
  17371. var keys = Object.keys(data);
  17372. var props = vm.$options.props;
  17373. var methods = vm.$options.methods;
  17374. var i = keys.length;
  17375. while (i--) {
  17376. var key = keys[i];
  17377. if (true) {
  17378. if (methods && hasOwn(methods, key)) {
  17379. warn(
  17380. ("Method \"" + key + "\" has already been defined as a data property."),
  17381. vm
  17382. );
  17383. }
  17384. }
  17385. if (props && hasOwn(props, key)) {
  17386. true && warn(
  17387. "The data property \"" + key + "\" is already declared as a prop. " +
  17388. "Use prop default value instead.",
  17389. vm
  17390. );
  17391. } else if (!isReserved(key)) {
  17392. proxy(vm, "_data", key);
  17393. }
  17394. }
  17395. // observe data
  17396. observe(data, true /* asRootData */);
  17397. }
  17398. function getData (data, vm) {
  17399. // #7573 disable dep collection when invoking data getters
  17400. pushTarget();
  17401. try {
  17402. return data.call(vm, vm)
  17403. } catch (e) {
  17404. handleError(e, vm, "data()");
  17405. return {}
  17406. } finally {
  17407. popTarget();
  17408. }
  17409. }
  17410. var computedWatcherOptions = { lazy: true };
  17411. function initComputed (vm, computed) {
  17412. // $flow-disable-line
  17413. var watchers = vm._computedWatchers = Object.create(null);
  17414. // computed properties are just getters during SSR
  17415. var isSSR = isServerRendering();
  17416. for (var key in computed) {
  17417. var userDef = computed[key];
  17418. var getter = typeof userDef === 'function' ? userDef : userDef.get;
  17419. if ( true && getter == null) {
  17420. warn(
  17421. ("Getter is missing for computed property \"" + key + "\"."),
  17422. vm
  17423. );
  17424. }
  17425. if (!isSSR) {
  17426. // create internal watcher for the computed property.
  17427. watchers[key] = new Watcher(
  17428. vm,
  17429. getter || noop,
  17430. noop,
  17431. computedWatcherOptions
  17432. );
  17433. }
  17434. // component-defined computed properties are already defined on the
  17435. // component prototype. We only need to define computed properties defined
  17436. // at instantiation here.
  17437. if (!(key in vm)) {
  17438. defineComputed(vm, key, userDef);
  17439. } else if (true) {
  17440. if (key in vm.$data) {
  17441. warn(("The computed property \"" + key + "\" is already defined in data."), vm);
  17442. } else if (vm.$options.props && key in vm.$options.props) {
  17443. warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
  17444. }
  17445. }
  17446. }
  17447. }
  17448. function defineComputed (
  17449. target,
  17450. key,
  17451. userDef
  17452. ) {
  17453. var shouldCache = !isServerRendering();
  17454. if (typeof userDef === 'function') {
  17455. sharedPropertyDefinition.get = shouldCache
  17456. ? createComputedGetter(key)
  17457. : createGetterInvoker(userDef);
  17458. sharedPropertyDefinition.set = noop;
  17459. } else {
  17460. sharedPropertyDefinition.get = userDef.get
  17461. ? shouldCache && userDef.cache !== false
  17462. ? createComputedGetter(key)
  17463. : createGetterInvoker(userDef.get)
  17464. : noop;
  17465. sharedPropertyDefinition.set = userDef.set || noop;
  17466. }
  17467. if ( true &&
  17468. sharedPropertyDefinition.set === noop) {
  17469. sharedPropertyDefinition.set = function () {
  17470. warn(
  17471. ("Computed property \"" + key + "\" was assigned to but it has no setter."),
  17472. this
  17473. );
  17474. };
  17475. }
  17476. Object.defineProperty(target, key, sharedPropertyDefinition);
  17477. }
  17478. function createComputedGetter (key) {
  17479. return function computedGetter () {
  17480. var watcher = this._computedWatchers && this._computedWatchers[key];
  17481. if (watcher) {
  17482. if (watcher.dirty) {
  17483. watcher.evaluate();
  17484. }
  17485. if (Dep.SharedObject.target) {// fixed by xxxxxx
  17486. watcher.depend();
  17487. }
  17488. return watcher.value
  17489. }
  17490. }
  17491. }
  17492. function createGetterInvoker(fn) {
  17493. return function computedGetter () {
  17494. return fn.call(this, this)
  17495. }
  17496. }
  17497. function initMethods (vm, methods) {
  17498. var props = vm.$options.props;
  17499. for (var key in methods) {
  17500. if (true) {
  17501. if (typeof methods[key] !== 'function') {
  17502. warn(
  17503. "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
  17504. "Did you reference the function correctly?",
  17505. vm
  17506. );
  17507. }
  17508. if (props && hasOwn(props, key)) {
  17509. warn(
  17510. ("Method \"" + key + "\" has already been defined as a prop."),
  17511. vm
  17512. );
  17513. }
  17514. if ((key in vm) && isReserved(key)) {
  17515. warn(
  17516. "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
  17517. "Avoid defining component methods that start with _ or $."
  17518. );
  17519. }
  17520. }
  17521. vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
  17522. }
  17523. }
  17524. function initWatch (vm, watch) {
  17525. for (var key in watch) {
  17526. var handler = watch[key];
  17527. if (Array.isArray(handler)) {
  17528. for (var i = 0; i < handler.length; i++) {
  17529. createWatcher(vm, key, handler[i]);
  17530. }
  17531. } else {
  17532. createWatcher(vm, key, handler);
  17533. }
  17534. }
  17535. }
  17536. function createWatcher (
  17537. vm,
  17538. expOrFn,
  17539. handler,
  17540. options
  17541. ) {
  17542. if (isPlainObject(handler)) {
  17543. options = handler;
  17544. handler = handler.handler;
  17545. }
  17546. if (typeof handler === 'string') {
  17547. handler = vm[handler];
  17548. }
  17549. return vm.$watch(expOrFn, handler, options)
  17550. }
  17551. function stateMixin (Vue) {
  17552. // flow somehow has problems with directly declared definition object
  17553. // when using Object.defineProperty, so we have to procedurally build up
  17554. // the object here.
  17555. var dataDef = {};
  17556. dataDef.get = function () { return this._data };
  17557. var propsDef = {};
  17558. propsDef.get = function () { return this._props };
  17559. if (true) {
  17560. dataDef.set = function () {
  17561. warn(
  17562. 'Avoid replacing instance root $data. ' +
  17563. 'Use nested data properties instead.',
  17564. this
  17565. );
  17566. };
  17567. propsDef.set = function () {
  17568. warn("$props is readonly.", this);
  17569. };
  17570. }
  17571. Object.defineProperty(Vue.prototype, '$data', dataDef);
  17572. Object.defineProperty(Vue.prototype, '$props', propsDef);
  17573. Vue.prototype.$set = set;
  17574. Vue.prototype.$delete = del;
  17575. Vue.prototype.$watch = function (
  17576. expOrFn,
  17577. cb,
  17578. options
  17579. ) {
  17580. var vm = this;
  17581. if (isPlainObject(cb)) {
  17582. return createWatcher(vm, expOrFn, cb, options)
  17583. }
  17584. options = options || {};
  17585. options.user = true;
  17586. var watcher = new Watcher(vm, expOrFn, cb, options);
  17587. if (options.immediate) {
  17588. try {
  17589. cb.call(vm, watcher.value);
  17590. } catch (error) {
  17591. handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
  17592. }
  17593. }
  17594. return function unwatchFn () {
  17595. watcher.teardown();
  17596. }
  17597. };
  17598. }
  17599. /* */
  17600. var uid$3 = 0;
  17601. function initMixin (Vue) {
  17602. Vue.prototype._init = function (options) {
  17603. var vm = this;
  17604. // a uid
  17605. vm._uid = uid$3++;
  17606. var startTag, endTag;
  17607. /* istanbul ignore if */
  17608. if ( true && config.performance && mark) {
  17609. startTag = "vue-perf-start:" + (vm._uid);
  17610. endTag = "vue-perf-end:" + (vm._uid);
  17611. mark(startTag);
  17612. }
  17613. // a flag to avoid this being observed
  17614. vm._isVue = true;
  17615. // merge options
  17616. if (options && options._isComponent) {
  17617. // optimize internal component instantiation
  17618. // since dynamic options merging is pretty slow, and none of the
  17619. // internal component options needs special treatment.
  17620. initInternalComponent(vm, options);
  17621. } else {
  17622. vm.$options = mergeOptions(
  17623. resolveConstructorOptions(vm.constructor),
  17624. options || {},
  17625. vm
  17626. );
  17627. }
  17628. /* istanbul ignore else */
  17629. if (true) {
  17630. initProxy(vm);
  17631. } else {}
  17632. // expose real self
  17633. vm._self = vm;
  17634. initLifecycle(vm);
  17635. initEvents(vm);
  17636. initRender(vm);
  17637. callHook(vm, 'beforeCreate');
  17638. !vm._$fallback && initInjections(vm); // resolve injections before data/props
  17639. initState(vm);
  17640. !vm._$fallback && initProvide(vm); // resolve provide after data/props
  17641. !vm._$fallback && callHook(vm, 'created');
  17642. /* istanbul ignore if */
  17643. if ( true && config.performance && mark) {
  17644. vm._name = formatComponentName(vm, false);
  17645. mark(endTag);
  17646. measure(("vue " + (vm._name) + " init"), startTag, endTag);
  17647. }
  17648. if (vm.$options.el) {
  17649. vm.$mount(vm.$options.el);
  17650. }
  17651. };
  17652. }
  17653. function initInternalComponent (vm, options) {
  17654. var opts = vm.$options = Object.create(vm.constructor.options);
  17655. // doing this because it's faster than dynamic enumeration.
  17656. var parentVnode = options._parentVnode;
  17657. opts.parent = options.parent;
  17658. opts._parentVnode = parentVnode;
  17659. var vnodeComponentOptions = parentVnode.componentOptions;
  17660. opts.propsData = vnodeComponentOptions.propsData;
  17661. opts._parentListeners = vnodeComponentOptions.listeners;
  17662. opts._renderChildren = vnodeComponentOptions.children;
  17663. opts._componentTag = vnodeComponentOptions.tag;
  17664. if (options.render) {
  17665. opts.render = options.render;
  17666. opts.staticRenderFns = options.staticRenderFns;
  17667. }
  17668. }
  17669. function resolveConstructorOptions (Ctor) {
  17670. var options = Ctor.options;
  17671. if (Ctor.super) {
  17672. var superOptions = resolveConstructorOptions(Ctor.super);
  17673. var cachedSuperOptions = Ctor.superOptions;
  17674. if (superOptions !== cachedSuperOptions) {
  17675. // super option changed,
  17676. // need to resolve new options.
  17677. Ctor.superOptions = superOptions;
  17678. // check if there are any late-modified/attached options (#4976)
  17679. var modifiedOptions = resolveModifiedOptions(Ctor);
  17680. // update base extend options
  17681. if (modifiedOptions) {
  17682. extend(Ctor.extendOptions, modifiedOptions);
  17683. }
  17684. options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
  17685. if (options.name) {
  17686. options.components[options.name] = Ctor;
  17687. }
  17688. }
  17689. }
  17690. return options
  17691. }
  17692. function resolveModifiedOptions (Ctor) {
  17693. var modified;
  17694. var latest = Ctor.options;
  17695. var sealed = Ctor.sealedOptions;
  17696. for (var key in latest) {
  17697. if (latest[key] !== sealed[key]) {
  17698. if (!modified) { modified = {}; }
  17699. modified[key] = latest[key];
  17700. }
  17701. }
  17702. return modified
  17703. }
  17704. function Vue (options) {
  17705. if ( true &&
  17706. !(this instanceof Vue)
  17707. ) {
  17708. warn('Vue is a constructor and should be called with the `new` keyword');
  17709. }
  17710. this._init(options);
  17711. }
  17712. initMixin(Vue);
  17713. stateMixin(Vue);
  17714. eventsMixin(Vue);
  17715. lifecycleMixin(Vue);
  17716. renderMixin(Vue);
  17717. /* */
  17718. function initUse (Vue) {
  17719. Vue.use = function (plugin) {
  17720. var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
  17721. if (installedPlugins.indexOf(plugin) > -1) {
  17722. return this
  17723. }
  17724. // additional parameters
  17725. var args = toArray(arguments, 1);
  17726. args.unshift(this);
  17727. if (typeof plugin.install === 'function') {
  17728. plugin.install.apply(plugin, args);
  17729. } else if (typeof plugin === 'function') {
  17730. plugin.apply(null, args);
  17731. }
  17732. installedPlugins.push(plugin);
  17733. return this
  17734. };
  17735. }
  17736. /* */
  17737. function initMixin$1 (Vue) {
  17738. Vue.mixin = function (mixin) {
  17739. this.options = mergeOptions(this.options, mixin);
  17740. return this
  17741. };
  17742. }
  17743. /* */
  17744. function initExtend (Vue) {
  17745. /**
  17746. * Each instance constructor, including Vue, has a unique
  17747. * cid. This enables us to create wrapped "child
  17748. * constructors" for prototypal inheritance and cache them.
  17749. */
  17750. Vue.cid = 0;
  17751. var cid = 1;
  17752. /**
  17753. * Class inheritance
  17754. */
  17755. Vue.extend = function (extendOptions) {
  17756. extendOptions = extendOptions || {};
  17757. var Super = this;
  17758. var SuperId = Super.cid;
  17759. var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
  17760. if (cachedCtors[SuperId]) {
  17761. return cachedCtors[SuperId]
  17762. }
  17763. var name = extendOptions.name || Super.options.name;
  17764. if ( true && name) {
  17765. validateComponentName(name);
  17766. }
  17767. var Sub = function VueComponent (options) {
  17768. this._init(options);
  17769. };
  17770. Sub.prototype = Object.create(Super.prototype);
  17771. Sub.prototype.constructor = Sub;
  17772. Sub.cid = cid++;
  17773. Sub.options = mergeOptions(
  17774. Super.options,
  17775. extendOptions
  17776. );
  17777. Sub['super'] = Super;
  17778. // For props and computed properties, we define the proxy getters on
  17779. // the Vue instances at extension time, on the extended prototype. This
  17780. // avoids Object.defineProperty calls for each instance created.
  17781. if (Sub.options.props) {
  17782. initProps$1(Sub);
  17783. }
  17784. if (Sub.options.computed) {
  17785. initComputed$1(Sub);
  17786. }
  17787. // allow further extension/mixin/plugin usage
  17788. Sub.extend = Super.extend;
  17789. Sub.mixin = Super.mixin;
  17790. Sub.use = Super.use;
  17791. // create asset registers, so extended classes
  17792. // can have their private assets too.
  17793. ASSET_TYPES.forEach(function (type) {
  17794. Sub[type] = Super[type];
  17795. });
  17796. // enable recursive self-lookup
  17797. if (name) {
  17798. Sub.options.components[name] = Sub;
  17799. }
  17800. // keep a reference to the super options at extension time.
  17801. // later at instantiation we can check if Super's options have
  17802. // been updated.
  17803. Sub.superOptions = Super.options;
  17804. Sub.extendOptions = extendOptions;
  17805. Sub.sealedOptions = extend({}, Sub.options);
  17806. // cache constructor
  17807. cachedCtors[SuperId] = Sub;
  17808. return Sub
  17809. };
  17810. }
  17811. function initProps$1 (Comp) {
  17812. var props = Comp.options.props;
  17813. for (var key in props) {
  17814. proxy(Comp.prototype, "_props", key);
  17815. }
  17816. }
  17817. function initComputed$1 (Comp) {
  17818. var computed = Comp.options.computed;
  17819. for (var key in computed) {
  17820. defineComputed(Comp.prototype, key, computed[key]);
  17821. }
  17822. }
  17823. /* */
  17824. function initAssetRegisters (Vue) {
  17825. /**
  17826. * Create asset registration methods.
  17827. */
  17828. ASSET_TYPES.forEach(function (type) {
  17829. Vue[type] = function (
  17830. id,
  17831. definition
  17832. ) {
  17833. if (!definition) {
  17834. return this.options[type + 's'][id]
  17835. } else {
  17836. /* istanbul ignore if */
  17837. if ( true && type === 'component') {
  17838. validateComponentName(id);
  17839. }
  17840. if (type === 'component' && isPlainObject(definition)) {
  17841. definition.name = definition.name || id;
  17842. definition = this.options._base.extend(definition);
  17843. }
  17844. if (type === 'directive' && typeof definition === 'function') {
  17845. definition = { bind: definition, update: definition };
  17846. }
  17847. this.options[type + 's'][id] = definition;
  17848. return definition
  17849. }
  17850. };
  17851. });
  17852. }
  17853. /* */
  17854. function getComponentName (opts) {
  17855. return opts && (opts.Ctor.options.name || opts.tag)
  17856. }
  17857. function matches (pattern, name) {
  17858. if (Array.isArray(pattern)) {
  17859. return pattern.indexOf(name) > -1
  17860. } else if (typeof pattern === 'string') {
  17861. return pattern.split(',').indexOf(name) > -1
  17862. } else if (isRegExp(pattern)) {
  17863. return pattern.test(name)
  17864. }
  17865. /* istanbul ignore next */
  17866. return false
  17867. }
  17868. function pruneCache (keepAliveInstance, filter) {
  17869. var cache = keepAliveInstance.cache;
  17870. var keys = keepAliveInstance.keys;
  17871. var _vnode = keepAliveInstance._vnode;
  17872. for (var key in cache) {
  17873. var cachedNode = cache[key];
  17874. if (cachedNode) {
  17875. var name = getComponentName(cachedNode.componentOptions);
  17876. if (name && !filter(name)) {
  17877. pruneCacheEntry(cache, key, keys, _vnode);
  17878. }
  17879. }
  17880. }
  17881. }
  17882. function pruneCacheEntry (
  17883. cache,
  17884. key,
  17885. keys,
  17886. current
  17887. ) {
  17888. var cached$$1 = cache[key];
  17889. if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
  17890. cached$$1.componentInstance.$destroy();
  17891. }
  17892. cache[key] = null;
  17893. remove(keys, key);
  17894. }
  17895. var patternTypes = [String, RegExp, Array];
  17896. var KeepAlive = {
  17897. name: 'keep-alive',
  17898. abstract: true,
  17899. props: {
  17900. include: patternTypes,
  17901. exclude: patternTypes,
  17902. max: [String, Number]
  17903. },
  17904. created: function created () {
  17905. this.cache = Object.create(null);
  17906. this.keys = [];
  17907. },
  17908. destroyed: function destroyed () {
  17909. for (var key in this.cache) {
  17910. pruneCacheEntry(this.cache, key, this.keys);
  17911. }
  17912. },
  17913. mounted: function mounted () {
  17914. var this$1 = this;
  17915. this.$watch('include', function (val) {
  17916. pruneCache(this$1, function (name) { return matches(val, name); });
  17917. });
  17918. this.$watch('exclude', function (val) {
  17919. pruneCache(this$1, function (name) { return !matches(val, name); });
  17920. });
  17921. },
  17922. render: function render () {
  17923. var slot = this.$slots.default;
  17924. var vnode = getFirstComponentChild(slot);
  17925. var componentOptions = vnode && vnode.componentOptions;
  17926. if (componentOptions) {
  17927. // check pattern
  17928. var name = getComponentName(componentOptions);
  17929. var ref = this;
  17930. var include = ref.include;
  17931. var exclude = ref.exclude;
  17932. if (
  17933. // not included
  17934. (include && (!name || !matches(include, name))) ||
  17935. // excluded
  17936. (exclude && name && matches(exclude, name))
  17937. ) {
  17938. return vnode
  17939. }
  17940. var ref$1 = this;
  17941. var cache = ref$1.cache;
  17942. var keys = ref$1.keys;
  17943. var key = vnode.key == null
  17944. // same constructor may get registered as different local components
  17945. // so cid alone is not enough (#3269)
  17946. ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
  17947. : vnode.key;
  17948. if (cache[key]) {
  17949. vnode.componentInstance = cache[key].componentInstance;
  17950. // make current key freshest
  17951. remove(keys, key);
  17952. keys.push(key);
  17953. } else {
  17954. cache[key] = vnode;
  17955. keys.push(key);
  17956. // prune oldest entry
  17957. if (this.max && keys.length > parseInt(this.max)) {
  17958. pruneCacheEntry(cache, keys[0], keys, this._vnode);
  17959. }
  17960. }
  17961. vnode.data.keepAlive = true;
  17962. }
  17963. return vnode || (slot && slot[0])
  17964. }
  17965. };
  17966. var builtInComponents = {
  17967. KeepAlive: KeepAlive
  17968. };
  17969. /* */
  17970. function initGlobalAPI (Vue) {
  17971. // config
  17972. var configDef = {};
  17973. configDef.get = function () { return config; };
  17974. if (true) {
  17975. configDef.set = function () {
  17976. warn(
  17977. 'Do not replace the Vue.config object, set individual fields instead.'
  17978. );
  17979. };
  17980. }
  17981. Object.defineProperty(Vue, 'config', configDef);
  17982. // exposed util methods.
  17983. // NOTE: these are not considered part of the public API - avoid relying on
  17984. // them unless you are aware of the risk.
  17985. Vue.util = {
  17986. warn: warn,
  17987. extend: extend,
  17988. mergeOptions: mergeOptions,
  17989. defineReactive: defineReactive$$1
  17990. };
  17991. Vue.set = set;
  17992. Vue.delete = del;
  17993. Vue.nextTick = nextTick;
  17994. // 2.6 explicit observable API
  17995. Vue.observable = function (obj) {
  17996. observe(obj);
  17997. return obj
  17998. };
  17999. Vue.options = Object.create(null);
  18000. ASSET_TYPES.forEach(function (type) {
  18001. Vue.options[type + 's'] = Object.create(null);
  18002. });
  18003. // this is used to identify the "base" constructor to extend all plain-object
  18004. // components with in Weex's multi-instance scenarios.
  18005. Vue.options._base = Vue;
  18006. extend(Vue.options.components, builtInComponents);
  18007. initUse(Vue);
  18008. initMixin$1(Vue);
  18009. initExtend(Vue);
  18010. initAssetRegisters(Vue);
  18011. }
  18012. initGlobalAPI(Vue);
  18013. Object.defineProperty(Vue.prototype, '$isServer', {
  18014. get: isServerRendering
  18015. });
  18016. Object.defineProperty(Vue.prototype, '$ssrContext', {
  18017. get: function get () {
  18018. /* istanbul ignore next */
  18019. return this.$vnode && this.$vnode.ssrContext
  18020. }
  18021. });
  18022. // expose FunctionalRenderContext for ssr runtime helper installation
  18023. Object.defineProperty(Vue, 'FunctionalRenderContext', {
  18024. value: FunctionalRenderContext
  18025. });
  18026. Vue.version = '2.6.11';
  18027. /**
  18028. * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js
  18029. */
  18030. var ARRAYTYPE = '[object Array]';
  18031. var OBJECTTYPE = '[object Object]';
  18032. // const FUNCTIONTYPE = '[object Function]'
  18033. function diff(current, pre) {
  18034. var result = {};
  18035. syncKeys(current, pre);
  18036. _diff(current, pre, '', result);
  18037. return result
  18038. }
  18039. function syncKeys(current, pre) {
  18040. if (current === pre) { return }
  18041. var rootCurrentType = type(current);
  18042. var rootPreType = type(pre);
  18043. if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {
  18044. if(Object.keys(current).length >= Object.keys(pre).length){
  18045. for (var key in pre) {
  18046. var currentValue = current[key];
  18047. if (currentValue === undefined) {
  18048. current[key] = null;
  18049. } else {
  18050. syncKeys(currentValue, pre[key]);
  18051. }
  18052. }
  18053. }
  18054. } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {
  18055. if (current.length >= pre.length) {
  18056. pre.forEach(function (item, index) {
  18057. syncKeys(current[index], item);
  18058. });
  18059. }
  18060. }
  18061. }
  18062. function _diff(current, pre, path, result) {
  18063. if (current === pre) { return }
  18064. var rootCurrentType = type(current);
  18065. var rootPreType = type(pre);
  18066. if (rootCurrentType == OBJECTTYPE) {
  18067. if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {
  18068. setResult(result, path, current);
  18069. } else {
  18070. var loop = function ( key ) {
  18071. var currentValue = current[key];
  18072. var preValue = pre[key];
  18073. var currentType = type(currentValue);
  18074. var preType = type(preValue);
  18075. if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {
  18076. if (currentValue !== pre[key]) {
  18077. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  18078. }
  18079. } else if (currentType == ARRAYTYPE) {
  18080. if (preType != ARRAYTYPE) {
  18081. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  18082. } else {
  18083. if (currentValue.length < preValue.length) {
  18084. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  18085. } else {
  18086. currentValue.forEach(function (item, index) {
  18087. _diff(item, preValue[index], (path == '' ? '' : path + ".") + key + '[' + index + ']', result);
  18088. });
  18089. }
  18090. }
  18091. } else if (currentType == OBJECTTYPE) {
  18092. if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {
  18093. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  18094. } else {
  18095. for (var subKey in currentValue) {
  18096. _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + ".") + key + '.' + subKey, result);
  18097. }
  18098. }
  18099. }
  18100. };
  18101. for (var key in current) loop( key );
  18102. }
  18103. } else if (rootCurrentType == ARRAYTYPE) {
  18104. if (rootPreType != ARRAYTYPE) {
  18105. setResult(result, path, current);
  18106. } else {
  18107. if (current.length < pre.length) {
  18108. setResult(result, path, current);
  18109. } else {
  18110. current.forEach(function (item, index) {
  18111. _diff(item, pre[index], path + '[' + index + ']', result);
  18112. });
  18113. }
  18114. }
  18115. } else {
  18116. setResult(result, path, current);
  18117. }
  18118. }
  18119. function setResult(result, k, v) {
  18120. // if (type(v) != FUNCTIONTYPE) {
  18121. result[k] = v;
  18122. // }
  18123. }
  18124. function type(obj) {
  18125. return Object.prototype.toString.call(obj)
  18126. }
  18127. /* */
  18128. function flushCallbacks$1(vm) {
  18129. if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {
  18130. if (Object({"VUE_APP_NAME":"kuailaiyou","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
  18131. var mpInstance = vm.$scope;
  18132. console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
  18133. ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');
  18134. }
  18135. var copies = vm.__next_tick_callbacks.slice(0);
  18136. vm.__next_tick_callbacks.length = 0;
  18137. for (var i = 0; i < copies.length; i++) {
  18138. copies[i]();
  18139. }
  18140. }
  18141. }
  18142. function hasRenderWatcher(vm) {
  18143. return queue.find(function (watcher) { return vm._watcher === watcher; })
  18144. }
  18145. function nextTick$1(vm, cb) {
  18146. //1.nextTick 之前 已 setData 且 setData 还未回调完成
  18147. //2.nextTick 之前存在 render watcher
  18148. if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {
  18149. if(Object({"VUE_APP_NAME":"kuailaiyou","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
  18150. var mpInstance = vm.$scope;
  18151. console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
  18152. ']:nextVueTick');
  18153. }
  18154. return nextTick(cb, vm)
  18155. }else{
  18156. if(Object({"VUE_APP_NAME":"kuailaiyou","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
  18157. var mpInstance$1 = vm.$scope;
  18158. console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +
  18159. ']:nextMPTick');
  18160. }
  18161. }
  18162. var _resolve;
  18163. if (!vm.__next_tick_callbacks) {
  18164. vm.__next_tick_callbacks = [];
  18165. }
  18166. vm.__next_tick_callbacks.push(function () {
  18167. if (cb) {
  18168. try {
  18169. cb.call(vm);
  18170. } catch (e) {
  18171. handleError(e, vm, 'nextTick');
  18172. }
  18173. } else if (_resolve) {
  18174. _resolve(vm);
  18175. }
  18176. });
  18177. // $flow-disable-line
  18178. if (!cb && typeof Promise !== 'undefined') {
  18179. return new Promise(function (resolve) {
  18180. _resolve = resolve;
  18181. })
  18182. }
  18183. }
  18184. /* */
  18185. function cloneWithData(vm) {
  18186. // 确保当前 vm 所有数据被同步
  18187. var ret = Object.create(null);
  18188. var dataKeys = [].concat(
  18189. Object.keys(vm._data || {}),
  18190. Object.keys(vm._computedWatchers || {}));
  18191. dataKeys.reduce(function(ret, key) {
  18192. ret[key] = vm[key];
  18193. return ret
  18194. }, ret);
  18195. // vue-composition-api
  18196. var compositionApiState = vm.__composition_api_state__ || vm.__secret_vfa_state__;
  18197. var rawBindings = compositionApiState && compositionApiState.rawBindings;
  18198. if (rawBindings) {
  18199. Object.keys(rawBindings).forEach(function (key) {
  18200. ret[key] = vm[key];
  18201. });
  18202. }
  18203. //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据
  18204. Object.assign(ret, vm.$mp.data || {});
  18205. if (
  18206. Array.isArray(vm.$options.behaviors) &&
  18207. vm.$options.behaviors.indexOf('uni://form-field') !== -1
  18208. ) { //form-field
  18209. ret['name'] = vm.name;
  18210. ret['value'] = vm.value;
  18211. }
  18212. return JSON.parse(JSON.stringify(ret))
  18213. }
  18214. var patch = function(oldVnode, vnode) {
  18215. var this$1 = this;
  18216. if (vnode === null) { //destroy
  18217. return
  18218. }
  18219. if (this.mpType === 'page' || this.mpType === 'component') {
  18220. var mpInstance = this.$scope;
  18221. var data = Object.create(null);
  18222. try {
  18223. data = cloneWithData(this);
  18224. } catch (err) {
  18225. console.error(err);
  18226. }
  18227. data.__webviewId__ = mpInstance.data.__webviewId__;
  18228. var mpData = Object.create(null);
  18229. Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据
  18230. mpData[key] = mpInstance.data[key];
  18231. });
  18232. var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);
  18233. if (Object.keys(diffData).length) {
  18234. if (Object({"VUE_APP_NAME":"kuailaiyou","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
  18235. console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +
  18236. ']差量更新',
  18237. JSON.stringify(diffData));
  18238. }
  18239. this.__next_tick_pending = true;
  18240. mpInstance.setData(diffData, function () {
  18241. this$1.__next_tick_pending = false;
  18242. flushCallbacks$1(this$1);
  18243. });
  18244. } else {
  18245. flushCallbacks$1(this);
  18246. }
  18247. }
  18248. };
  18249. /* */
  18250. function createEmptyRender() {
  18251. }
  18252. function mountComponent$1(
  18253. vm,
  18254. el,
  18255. hydrating
  18256. ) {
  18257. if (!vm.mpType) {//main.js 中的 new Vue
  18258. return vm
  18259. }
  18260. if (vm.mpType === 'app') {
  18261. vm.$options.render = createEmptyRender;
  18262. }
  18263. if (!vm.$options.render) {
  18264. vm.$options.render = createEmptyRender;
  18265. if (true) {
  18266. /* istanbul ignore if */
  18267. if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
  18268. vm.$options.el || el) {
  18269. warn(
  18270. 'You are using the runtime-only build of Vue where the template ' +
  18271. 'compiler is not available. Either pre-compile the templates into ' +
  18272. 'render functions, or use the compiler-included build.',
  18273. vm
  18274. );
  18275. } else {
  18276. warn(
  18277. 'Failed to mount component: template or render function not defined.',
  18278. vm
  18279. );
  18280. }
  18281. }
  18282. }
  18283. !vm._$fallback && callHook(vm, 'beforeMount');
  18284. var updateComponent = function () {
  18285. vm._update(vm._render(), hydrating);
  18286. };
  18287. // we set this to vm._watcher inside the watcher's constructor
  18288. // since the watcher's initial patch may call $forceUpdate (e.g. inside child
  18289. // component's mounted hook), which relies on vm._watcher being already defined
  18290. new Watcher(vm, updateComponent, noop, {
  18291. before: function before() {
  18292. if (vm._isMounted && !vm._isDestroyed) {
  18293. callHook(vm, 'beforeUpdate');
  18294. }
  18295. }
  18296. }, true /* isRenderWatcher */);
  18297. hydrating = false;
  18298. return vm
  18299. }
  18300. /* */
  18301. function renderClass (
  18302. staticClass,
  18303. dynamicClass
  18304. ) {
  18305. if (isDef(staticClass) || isDef(dynamicClass)) {
  18306. return concat(staticClass, stringifyClass(dynamicClass))
  18307. }
  18308. /* istanbul ignore next */
  18309. return ''
  18310. }
  18311. function concat (a, b) {
  18312. return a ? b ? (a + ' ' + b) : a : (b || '')
  18313. }
  18314. function stringifyClass (value) {
  18315. if (Array.isArray(value)) {
  18316. return stringifyArray(value)
  18317. }
  18318. if (isObject(value)) {
  18319. return stringifyObject(value)
  18320. }
  18321. if (typeof value === 'string') {
  18322. return value
  18323. }
  18324. /* istanbul ignore next */
  18325. return ''
  18326. }
  18327. function stringifyArray (value) {
  18328. var res = '';
  18329. var stringified;
  18330. for (var i = 0, l = value.length; i < l; i++) {
  18331. if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
  18332. if (res) { res += ' '; }
  18333. res += stringified;
  18334. }
  18335. }
  18336. return res
  18337. }
  18338. function stringifyObject (value) {
  18339. var res = '';
  18340. for (var key in value) {
  18341. if (value[key]) {
  18342. if (res) { res += ' '; }
  18343. res += key;
  18344. }
  18345. }
  18346. return res
  18347. }
  18348. /* */
  18349. var parseStyleText = cached(function (cssText) {
  18350. var res = {};
  18351. var listDelimiter = /;(?![^(]*\))/g;
  18352. var propertyDelimiter = /:(.+)/;
  18353. cssText.split(listDelimiter).forEach(function (item) {
  18354. if (item) {
  18355. var tmp = item.split(propertyDelimiter);
  18356. tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
  18357. }
  18358. });
  18359. return res
  18360. });
  18361. // normalize possible array / string values into Object
  18362. function normalizeStyleBinding (bindingStyle) {
  18363. if (Array.isArray(bindingStyle)) {
  18364. return toObject(bindingStyle)
  18365. }
  18366. if (typeof bindingStyle === 'string') {
  18367. return parseStyleText(bindingStyle)
  18368. }
  18369. return bindingStyle
  18370. }
  18371. /* */
  18372. var MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];
  18373. function getTarget(obj, path) {
  18374. var parts = path.split('.');
  18375. var key = parts[0];
  18376. if (key.indexOf('__$n') === 0) { //number index
  18377. key = parseInt(key.replace('__$n', ''));
  18378. }
  18379. if (parts.length === 1) {
  18380. return obj[key]
  18381. }
  18382. return getTarget(obj[key], parts.slice(1).join('.'))
  18383. }
  18384. function internalMixin(Vue) {
  18385. Vue.config.errorHandler = function(err, vm, info) {
  18386. Vue.util.warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
  18387. console.error(err);
  18388. /* eslint-disable no-undef */
  18389. var app = typeof getApp === 'function' && getApp();
  18390. if (app && app.onError) {
  18391. app.onError(err);
  18392. }
  18393. };
  18394. var oldEmit = Vue.prototype.$emit;
  18395. Vue.prototype.$emit = function(event) {
  18396. if (this.$scope && event) {
  18397. (this.$scope['_triggerEvent'] || this.$scope['triggerEvent']).call(this.$scope, event, {
  18398. __args__: toArray(arguments, 1)
  18399. });
  18400. }
  18401. return oldEmit.apply(this, arguments)
  18402. };
  18403. Vue.prototype.$nextTick = function(fn) {
  18404. return nextTick$1(this, fn)
  18405. };
  18406. MP_METHODS.forEach(function (method) {
  18407. Vue.prototype[method] = function(args) {
  18408. if (this.$scope && this.$scope[method]) {
  18409. return this.$scope[method](args)
  18410. }
  18411. // mp-alipay
  18412. if (typeof my === 'undefined') {
  18413. return
  18414. }
  18415. if (method === 'createSelectorQuery') {
  18416. /* eslint-disable no-undef */
  18417. return my.createSelectorQuery(args)
  18418. } else if (method === 'createIntersectionObserver') {
  18419. /* eslint-disable no-undef */
  18420. return my.createIntersectionObserver(args)
  18421. }
  18422. // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent
  18423. };
  18424. });
  18425. Vue.prototype.__init_provide = initProvide;
  18426. Vue.prototype.__init_injections = initInjections;
  18427. Vue.prototype.__call_hook = function(hook, args) {
  18428. var vm = this;
  18429. // #7573 disable dep collection when invoking lifecycle hooks
  18430. pushTarget();
  18431. var handlers = vm.$options[hook];
  18432. var info = hook + " hook";
  18433. var ret;
  18434. if (handlers) {
  18435. for (var i = 0, j = handlers.length; i < j; i++) {
  18436. ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);
  18437. }
  18438. }
  18439. if (vm._hasHookEvent) {
  18440. vm.$emit('hook:' + hook, args);
  18441. }
  18442. popTarget();
  18443. return ret
  18444. };
  18445. Vue.prototype.__set_model = function(target, key, value, modifiers) {
  18446. if (Array.isArray(modifiers)) {
  18447. if (modifiers.indexOf('trim') !== -1) {
  18448. value = value.trim();
  18449. }
  18450. if (modifiers.indexOf('number') !== -1) {
  18451. value = this._n(value);
  18452. }
  18453. }
  18454. if (!target) {
  18455. target = this;
  18456. }
  18457. // 解决动态属性添加
  18458. Vue.set(target, key, value);
  18459. };
  18460. Vue.prototype.__set_sync = function(target, key, value) {
  18461. if (!target) {
  18462. target = this;
  18463. }
  18464. // 解决动态属性添加
  18465. Vue.set(target, key, value);
  18466. };
  18467. Vue.prototype.__get_orig = function(item) {
  18468. if (isPlainObject(item)) {
  18469. return item['$orig'] || item
  18470. }
  18471. return item
  18472. };
  18473. Vue.prototype.__get_value = function(dataPath, target) {
  18474. return getTarget(target || this, dataPath)
  18475. };
  18476. Vue.prototype.__get_class = function(dynamicClass, staticClass) {
  18477. return renderClass(staticClass, dynamicClass)
  18478. };
  18479. Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {
  18480. if (!dynamicStyle && !staticStyle) {
  18481. return ''
  18482. }
  18483. var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);
  18484. var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;
  18485. return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + ":" + (styleObj[name])); }).join(';')
  18486. };
  18487. Vue.prototype.__map = function(val, iteratee) {
  18488. //TODO 暂不考虑 string
  18489. var ret, i, l, keys, key;
  18490. if (Array.isArray(val)) {
  18491. ret = new Array(val.length);
  18492. for (i = 0, l = val.length; i < l; i++) {
  18493. ret[i] = iteratee(val[i], i);
  18494. }
  18495. return ret
  18496. } else if (isObject(val)) {
  18497. keys = Object.keys(val);
  18498. ret = Object.create(null);
  18499. for (i = 0, l = keys.length; i < l; i++) {
  18500. key = keys[i];
  18501. ret[key] = iteratee(val[key], key, i);
  18502. }
  18503. return ret
  18504. } else if (typeof val === 'number') {
  18505. ret = new Array(val);
  18506. for (i = 0, l = val; i < l; i++) {
  18507. // 第一个参数暂时仍和小程序一致
  18508. ret[i] = iteratee(i, i);
  18509. }
  18510. return ret
  18511. }
  18512. return []
  18513. };
  18514. }
  18515. /* */
  18516. var LIFECYCLE_HOOKS$1 = [
  18517. //App
  18518. 'onLaunch',
  18519. 'onShow',
  18520. 'onHide',
  18521. 'onUniNViewMessage',
  18522. 'onPageNotFound',
  18523. 'onThemeChange',
  18524. 'onError',
  18525. 'onUnhandledRejection',
  18526. //Page
  18527. 'onInit',
  18528. 'onLoad',
  18529. // 'onShow',
  18530. 'onReady',
  18531. // 'onHide',
  18532. 'onUnload',
  18533. 'onPullDownRefresh',
  18534. 'onReachBottom',
  18535. 'onTabItemTap',
  18536. 'onAddToFavorites',
  18537. 'onShareTimeline',
  18538. 'onShareAppMessage',
  18539. 'onResize',
  18540. 'onPageScroll',
  18541. 'onNavigationBarButtonTap',
  18542. 'onBackPress',
  18543. 'onNavigationBarSearchInputChanged',
  18544. 'onNavigationBarSearchInputConfirmed',
  18545. 'onNavigationBarSearchInputClicked',
  18546. //Component
  18547. // 'onReady', // 兼容旧版本,应该移除该事件
  18548. 'onPageShow',
  18549. 'onPageHide',
  18550. 'onPageResize'
  18551. ];
  18552. function lifecycleMixin$1(Vue) {
  18553. //fixed vue-class-component
  18554. var oldExtend = Vue.extend;
  18555. Vue.extend = function(extendOptions) {
  18556. extendOptions = extendOptions || {};
  18557. var methods = extendOptions.methods;
  18558. if (methods) {
  18559. Object.keys(methods).forEach(function (methodName) {
  18560. if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {
  18561. extendOptions[methodName] = methods[methodName];
  18562. delete methods[methodName];
  18563. }
  18564. });
  18565. }
  18566. return oldExtend.call(this, extendOptions)
  18567. };
  18568. var strategies = Vue.config.optionMergeStrategies;
  18569. var mergeHook = strategies.created;
  18570. LIFECYCLE_HOOKS$1.forEach(function (hook) {
  18571. strategies[hook] = mergeHook;
  18572. });
  18573. Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;
  18574. }
  18575. /* */
  18576. // install platform patch function
  18577. Vue.prototype.__patch__ = patch;
  18578. // public mount method
  18579. Vue.prototype.$mount = function(
  18580. el ,
  18581. hydrating
  18582. ) {
  18583. return mountComponent$1(this, el, hydrating)
  18584. };
  18585. lifecycleMixin$1(Vue);
  18586. internalMixin(Vue);
  18587. /* */
  18588. /* harmony default export */ __webpack_exports__["default"] = (Vue);
  18589. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 2)))
  18590. /***/ }),
  18591. /***/ 5:
  18592. /*!************************************************************!*\
  18593. !*** D:/workspace/project_forwork/bizdbKLY_app/pages.json ***!
  18594. \************************************************************/
  18595. /*! no static exports found */
  18596. /***/ (function(module, exports) {
  18597. /***/ }),
  18598. /***/ 9:
  18599. /*!**************************************************************!*\
  18600. !*** D:/workspace/project_forwork/bizdbKLY_app/commonFun.js ***!
  18601. \**************************************************************/
  18602. /*! no static exports found */
  18603. /***/ (function(module, exports, __webpack_require__) {
  18604. "use strict";
  18605. /* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
  18606. var _goeasy224Min = _interopRequireDefault(__webpack_require__(/*! ./lib/goeasy-2.2.4.min.js */ 10));
  18607. var _imservice = _interopRequireDefault(__webpack_require__(/*! ./lib/imservice */ 11));
  18608. var _commonData = _interopRequireDefault(__webpack_require__(/*! ./commonData.js */ 13));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}
  18609. /*线上使用*/
  18610. // 静态图片路径
  18611. //const serverUrl = 'https://api.kuailaiyou.top/prjcenter/prjKLY/fileroot/images/front/';
  18612. // 请求URL路径
  18613. //const serverUrlReq = 'https://api.kuailaiyou.top/';
  18614. // const serverUrlReq = 'https://zpwebapi.kaidekuai.com/';
  18615. // 请求webviewURL路径
  18616. //const webviewServerUrlReq = 'https://admin.kuailaiyou.top/';
  18617. /*本地测试*/
  18618. // 静态图片路径
  18619. var serverUrl = 'http://api.bizdbKLY.com/prjcenter/prjKLY/fileroot/images/front/';
  18620. // 请求URL路径
  18621. var serverUrlReq = 'http://api.bizdbKLY.com/';
  18622. // 请求webviewURL路径
  18623. var webviewServerUrlReq = 'http://admin.bizdbKLY.com/';
  18624. // request数据
  18625. var requestUrl = function requestUrl(url, data, callback) {var auto_change_params = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;var Trader2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
  18626. // 改造URL
  18627. var url_new = Trader2 ? url : _commonData.default.sys_role == 1 ? url.replace('Worker', 'Trader') : url.replace(
  18628. 'Trader', 'Worker');
  18629. console.log('原请求路径:' + url + ' 改造后请求路径:' + url_new);
  18630. var data_new = _objectSpread(_objectSpread(_objectSpread({},
  18631. data),
  18632. _commonData.default.data_token), {}, {
  18633. FOREND_TOKEN: uni.getStorageSync('FOREND_TOKEN'),
  18634. phone: data.phone ? data.phone : uni.getStorageSync('PHONE')
  18635. // FOREND_TOKEN: '0_16415187935b9011bc8aa3ce44cb0cf40dac3d48b4', //用户
  18636. // FOREND_TOKEN: '0_1641527485b098792a509f99b8c991030644125b2b', //商户
  18637. // phone: '17640181459',
  18638. });
  18639. // 改造参数
  18640. if (auto_change_params) {
  18641. if (data_new.bizCatalog) {
  18642. data_new.bizCatalog = _commonData.default.sys_role == 1 ? data_new.bizCatalog.replace('Worker', 'Trader') :
  18643. data_new.
  18644. bizCatalog.replace('Trader', 'Worker');
  18645. }
  18646. if (data_new.handleMode) {
  18647. data_new.handleMode = _commonData.default.sys_role == 1 ? data_new.handleMode.replace('Worker', 'Trader') :
  18648. data_new.
  18649. handleMode.replace('Trader', 'Worker');
  18650. }
  18651. }
  18652. var requestTask = uni.request({
  18653. url: serverUrlReq + 'ajaxEntryCenter.php?WsAjaxPrj=KLY' + url_new,
  18654. method: 'post',
  18655. header: {
  18656. 'content-type': 'application/json' },
  18657. data: _objectSpread({},
  18658. data_new),
  18659. success: function success(res) {
  18660. // 异常处理
  18661. if (res.data.ErrMsg) {
  18662. uni.hideLoading();
  18663. // res.data.ErrMsg为字符串时做一般处理
  18664. if (typeof res.data.ErrMsg == 'string') {
  18665. // FOREND_TOKEN异常处理
  18666. if (res.data.ErrMsg.indexOf('FOREND_TOKEN') != -1 || res.data.ErrMsg.indexOf(
  18667. 'phone') != -1) {
  18668. uni.showModal({
  18669. title: '当前未登录',
  18670. confirmText: '去登陆',
  18671. cancelText: '游客登录',
  18672. showCancel: _commonData.default.sys_role == 1 ? false : true,
  18673. success: function success(res) {
  18674. if (res.confirm) {
  18675. uni.navigateTo({
  18676. url: '/pages/login/index?need_back=1' });
  18677. } else {
  18678. // 设定游客模式
  18679. uni.setStorageSync('IS_TOURIST', '1');
  18680. }
  18681. callback({
  18682. status: false,
  18683. data: '未登录' });
  18684. } });
  18685. return;
  18686. }
  18687. // 其他异常处理
  18688. uni.showModal({
  18689. title: '操作失败',
  18690. content: JSON.stringify(res.data.ErrMsg),
  18691. showCancel: false,
  18692. success: function success(res2) {
  18693. callback({
  18694. status: false });
  18695. } });
  18696. } else {
  18697. // res.data.ErrMsg为非字符串时做特殊回调处理
  18698. callback({
  18699. status: false,
  18700. data: res.data });
  18701. }
  18702. } else {
  18703. // 非异常处理
  18704. callback({
  18705. status: true,
  18706. data: res.data });
  18707. }
  18708. },
  18709. fail: function fail(result) {
  18710. uni.hideLoading();
  18711. uni.showModal({
  18712. // title: '接口调用网路错误',
  18713. content: JSON.stringify(result.errMsg),
  18714. showCancel: false,
  18715. success: function success(res) {
  18716. callback({
  18717. status: false });
  18718. } });
  18719. } });
  18720. };
  18721. // 获取位置信息
  18722. var getPositionLocal = function getPositionLocal(callback) {
  18723. uni.getLocation({
  18724. type: 'wgs84',
  18725. success: function success(res) {
  18726. // console.log('位置信息')
  18727. // console.log(res)
  18728. var latitude = res.latitude;
  18729. var longitude = res.longitude;
  18730. // callback({
  18731. // status: true,
  18732. // city: '天津市',
  18733. // latitude,
  18734. // longitude,
  18735. // })
  18736. // return
  18737. requestUrl('&WsAjaxBiz=Public&WsAjaxAction=entityDataHandle', {
  18738. bizCatalog: 'LbsEntity',
  18739. handleMode: 'fetchAddressByLocation',
  18740. lat: latitude,
  18741. lng: longitude },
  18742. function (res) {
  18743. // console.log('根据经纬度返回城市名称')
  18744. // console.log(res)
  18745. if (res.status) {
  18746. callback({
  18747. status: true,
  18748. city: res.data.Result.city,
  18749. latitude: latitude,
  18750. longitude: longitude });
  18751. } else {
  18752. // uni.showModal({
  18753. // title: '获取位置失败',
  18754. // content: JSON.stringify(res),
  18755. // showCancel: false
  18756. // })
  18757. callback({
  18758. status: false });
  18759. }
  18760. });
  18761. },
  18762. fail: function fail(e) {
  18763. if (e.errMsg.indexOf('频繁调用') == -1) {
  18764. uni.showModal({
  18765. title: '获取位置信息失败',
  18766. content: JSON.stringify(e),
  18767. showCancel: false });
  18768. }
  18769. // console.log('获取位置信息失败')
  18770. // console.log(e)
  18771. callback({
  18772. status: false });
  18773. },
  18774. complete: function complete() {
  18775. uni.hideLoading();
  18776. } });
  18777. };
  18778. // 上传图片/视频到阿里云OSS
  18779. var uploadFileApiOSS = function uploadFileApiOSS(callback) {var fileType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'image';var allow_album = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  18780. if (fileType == 'image') {
  18781. uni.chooseImage({
  18782. count: 1,
  18783. sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
  18784. sourceType: allow_album ? ['album', 'camera'] : ['camera'], //从相册选择
  18785. success: function success(res) {
  18786. success_fun(res.tempFilePaths[0], callback);
  18787. },
  18788. fail: function fail(res) {
  18789. fail_fun(res, callback);
  18790. } });
  18791. } else {
  18792. uni.chooseVideo({
  18793. count: 1,
  18794. sourceType: ['camera', 'album'],
  18795. success: function success(res) {
  18796. success_fun(res.tempFilePath, callback);
  18797. },
  18798. fail: function fail(res) {
  18799. fail_fun(res, callback);
  18800. } });
  18801. }
  18802. // 成功回调
  18803. function success_fun(filePath, callback) {
  18804. uni.showLoading({
  18805. title: '上传中...',
  18806. mask: true });
  18807. var tiemr = new Date();
  18808. var address = tiemr.getFullYear() + '' + (tiemr.getMonth() + 1) + '' + tiemr.getDate();
  18809. address = 'zskp/userHead/' + address + '/';
  18810. var str = filePath.substr(filePath.lastIndexOf('.'));
  18811. var nameStr = address + tiemr.getTime() + str;
  18812. var ossUrl = 'https://goeasy-kuailaiyou.oss-cn-beijing.aliyuncs.com/';
  18813. uni.uploadFile({
  18814. url: ossUrl,
  18815. filePath: filePath,
  18816. fileType: fileType,
  18817. name: 'file',
  18818. formData: {
  18819. name: nameStr,
  18820. key: nameStr,
  18821. policy: 'eyJleHBpcmF0aW9uIjoiMjA1MC0wMS0wMVQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ==', // 输入你获取的的policy
  18822. OSSAccessKeyId: 'LTAI5tSQRXPMmcJbE3TGDPCr', // 输入你的AccessKeyId
  18823. success_action_status: '200', // 让服务端返回200,不然,默认会返回204
  18824. signature: 'sjxOXt7eILxUdyE/0idSJaCGrc8=' // 输入你获取的的signature
  18825. },
  18826. success: function success(res) {
  18827. uni.hideLoading();
  18828. if (res.statusCode == '200') {
  18829. callback({
  18830. status: true,
  18831. data: ossUrl + nameStr });
  18832. } else {
  18833. uni.showModal({
  18834. title: 'OSS文件上传失败',
  18835. content: JSON.stringify(res),
  18836. showCancel: false,
  18837. success: function success(res) {
  18838. callback({
  18839. status: false });
  18840. } });
  18841. }
  18842. } });
  18843. }
  18844. // 失败回调
  18845. function fail_fun(res, callback) {
  18846. // console.log(res.errMsg.indexOf('cancel'))
  18847. if (res.errMsg.indexOf('cancel') == -1) {
  18848. uni.showModal({
  18849. title: '文件选择失败',
  18850. content: JSON.stringify(res),
  18851. showCancel: false,
  18852. success: function success(res) {
  18853. callback({
  18854. status: false });
  18855. } });
  18856. }
  18857. }
  18858. };
  18859. // 上传文件到服务器
  18860. var uploadFileApi = function uploadFileApi(callback) {
  18861. uni.chooseImage({
  18862. count: 1,
  18863. sizeType: ['compressed'],
  18864. success: function success(chooseImageRes) {
  18865. uni.showLoading({
  18866. title: '上传中...',
  18867. mask: true });
  18868. var tempFilePaths = chooseImageRes.tempFilePaths;
  18869. uni.uploadFile({
  18870. url: serverUrlReq + 'ajaxEntryCenter.php?WsAjaxPrj=KLY' +
  18871. "&WsAjaxBiz=PublicAPP&WsAjaxAction=fileUpload",
  18872. filePath: tempFilePaths[0],
  18873. name: 'file',
  18874. formData: {
  18875. 'uploadfile': 'file' },
  18876. success: function success(uploadFileRes) {
  18877. console.log(uploadFileRes);
  18878. var res = JSON.parse(uploadFileRes.data);
  18879. uni.hideLoading();
  18880. if (res.ErrMsg) {
  18881. uni.showModal({
  18882. title: '文件上传失败',
  18883. content: res.ErrMsg,
  18884. showCancel: false,
  18885. success: function success(res) {
  18886. callback({
  18887. status: false });
  18888. } });
  18889. } else {
  18890. callback({
  18891. status: true,
  18892. data: res.Result });
  18893. }
  18894. },
  18895. fail: function fail(result) {
  18896. uni.hideLoading();
  18897. uni.showModal({
  18898. title: '文件上传fail',
  18899. content: JSON.stringify(result),
  18900. showCancel: false,
  18901. success: function success(res) {
  18902. callback({
  18903. status: false });
  18904. } });
  18905. } });
  18906. },
  18907. fail: function fail(res) {
  18908. uni.showModal({
  18909. title: '文件选择失败',
  18910. content: JSON.stringify(res),
  18911. showCancel: false,
  18912. success: function success(res) {
  18913. callback({
  18914. status: false });
  18915. } });
  18916. } });
  18917. };
  18918. // goEasy相关
  18919. var goEasy = _goeasy224Min.default.getInstance({
  18920. host: "hangzhou.goeasy.io", //应用所在的区域地址: 【hangzhou.goeasy.io |singapore.goeasy.io】
  18921. appkey: "BC-b1e650ef62484e08826652d48242b06b", // common key,
  18922. modules: ["im"],
  18923. // true表示支持通知栏提醒,false则表示不需要通知栏提醒
  18924. allowNotification: true //仅有效于app,小程序和H5将会被自动忽略
  18925. });
  18926. goEasy.onClickNotification(function (message) {
  18927. var currentUrl;
  18928. var routes = getCurrentPages();
  18929. if (routes && routes.length) {
  18930. var curRoute = routes[routes.length - 1].route;
  18931. var curParam = routes[routes.length - 1].options;
  18932. currentUrl = '/' + curRoute + "?to=".concat(curParam.to);
  18933. }
  18934. var newUrl;
  18935. switch (message.toType) {
  18936. case _goeasy224Min.default.IM_SCENE.PRIVATE:
  18937. newUrl = '/pages/message/chat?to=' + message.senderId;
  18938. break;
  18939. // case GoEasy.IM_SCENE.GROUP:
  18940. // newUrl = '/pages/chat/groupChat/groupChat?to=' + message.groupId;
  18941. // break;
  18942. }
  18943. if (currentUrl !== newUrl) {
  18944. uni.navigateTo({
  18945. url: newUrl });
  18946. }
  18947. });
  18948. var init_go_easy = function init_go_easy(user_info, type) {
  18949. var currentUser = {
  18950. "uuid": type + user_info.id,
  18951. "name": type == 'user_' ? user_info.true_name ? user_info.true_name : user_info.nickname : user_info.
  18952. company_name ? user_info.company_name : user_info.nickname ? user_info.nickname :
  18953. '商家名称',
  18954. "avatar": user_info.profile_photo != '' ? user_info.profile_photo : '/static/user.png' };
  18955. // console.log('初始化init_go_easy')
  18956. // console.log(currentUser)
  18957. uni.setStorageSync('currentUser', currentUser);
  18958. if (goEasy.getConnectionStatus() === 'disconnected') {
  18959. getApp().globalData.imService = new _imservice.default(goEasy, _goeasy224Min.default);
  18960. getApp().globalData.imService.connect(currentUser);
  18961. }
  18962. };
  18963. // 获取会话最新数据
  18964. var get_message_data = function get_message_data() {
  18965. //监听会话列表变化
  18966. goEasy.im.on(_goeasy224Min.default.IM_EVENT.CONVERSATIONS_UPDATED, function (content) {});
  18967. goEasy.im.latestConversations({
  18968. onSuccess: function onSuccess(result) {var _this = this;
  18969. var content = result.content;
  18970. // console.log('加载会话列表成功')
  18971. // console.log(content)
  18972. var unreadTotal = content.unreadTotal;
  18973. get_user_info(function (res) {
  18974. var ss_notice_unreaded = res.data.Result.ss_notice_unreaded;
  18975. _this.unreadTotal = Number(unreadTotal) + ss_notice_unreaded;
  18976. if (_this.unreadTotal > 0) {
  18977. uni.setTabBarBadge({
  18978. index: 1,
  18979. text: _this.unreadTotal.toString() });
  18980. } else {
  18981. uni.removeTabBarBadge({
  18982. index: 1 });
  18983. }
  18984. });
  18985. },
  18986. onFailed: function onFailed(error) {
  18987. console.log("获取最新会话列表失败:, code:" + error.code + " content:" + error.content);
  18988. } });
  18989. };
  18990. var formatDate = function formatDate(t) {
  18991. t = t || Date.now();
  18992. var time = new Date(t);
  18993. var str = time.getMonth() < 9 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1;
  18994. str += '-';
  18995. str += time.getDate() < 10 ? '0' + time.getDate() : time.getDate();
  18996. str += ' ';
  18997. str += time.getHours();
  18998. str += ':';
  18999. str += time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();
  19000. return str;
  19001. };
  19002. var formatDate2 = function formatDate2(now) {
  19003. var y = '';
  19004. var m = '';
  19005. var d = '';
  19006. var h = '';
  19007. var mi = '';
  19008. var s = '';
  19009. y = now.getFullYear();
  19010. m = now.getMonth() + 1;
  19011. d = now.getDate();
  19012. h = now.getHours();
  19013. mi = now.getMinutes();
  19014. s = now.getSeconds();
  19015. return y + '-' + (m < 10 ? "0" + m : m) + '-' + (d < 10 ? "0" + d : d);
  19016. };
  19017. function getNextDate(date, day) {
  19018. var dd = new Date(date);
  19019. dd.setDate(dd.getDate() + day);
  19020. var y = dd.getFullYear();
  19021. var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
  19022. var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
  19023. return y + "-" + m + "-" + d;
  19024. }
  19025. // 检测是否包括手机号码等敏感信息
  19026. var is_contain_sensitive_words = function is_contain_sensitive_words(str) {
  19027. str = String(str);
  19028. // 检测手机号码
  19029. if (str.length >= 11) {
  19030. for (var i = 0; i < str.length - 10; i++) {
  19031. var str_new = Number(str.slice(i, i + 11));
  19032. if (!isNaN(str_new)) {
  19033. if (str_new >= 13000000000 && str_new < 20000000000) {
  19034. return true;
  19035. }
  19036. }
  19037. }
  19038. }
  19039. // 检测是否包括敏感词汇
  19040. var sensitive_words = [
  19041. '共产党', '民进党', '民主进步党', '国民党', '中华民国', '蔡英文', '苏贞昌', '吴钊燮', '微信', '手机号', '电话号码'];
  19042. for (var _i in sensitive_words) {
  19043. if (str.indexOf(sensitive_words[_i]) !== -1) {
  19044. return true;
  19045. }
  19046. }
  19047. return false;
  19048. };
  19049. // 从数组中多选数组
  19050. var select_from_arr = function select_from_arr(data, index) {
  19051. var district = data[0];
  19052. var district_index_arr = data[1];
  19053. var index_of = district_index_arr.indexOf(index);
  19054. if (index_of === -1) {
  19055. district_index_arr.push(index);
  19056. return district_index_arr;
  19057. } else {
  19058. var district_index_new = [];
  19059. district_index_arr.map(function (item, index2) {
  19060. if (index2 !== index_of) {
  19061. district_index_new.push(item);
  19062. }
  19063. });
  19064. return district_index_new;
  19065. }
  19066. };
  19067. // 获取最新用户信息
  19068. var get_user_info = function get_user_info(callback) {
  19069. requestUrl('&WsAjaxBiz=Worker&WsAjaxAction=entityDataHandle', {
  19070. handleMode: 'fetch',
  19071. bizCatalog: 'WorkerEntity' },
  19072. function (res) {
  19073. callback(res);
  19074. });
  19075. };
  19076. // 从身份证中获取年龄
  19077. var get_age_from_id_num = function get_age_from_id_num(idcard) {return idcard && idcard.length == 18 && !isNaN(idcard.slice(6, 10)) ? new Date().
  19078. getFullYear() - Number(idcard.slice(6, 10)) : '';};
  19079. // 时间戳转换为时间
  19080. function getLocalTime(nS) {
  19081. return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ');
  19082. }
  19083. // 检测是否为身份证号码
  19084. function IsIdCard(str) {
  19085. var reg = /^[1-8][1-7]\d{4}(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/;
  19086. return reg.test(str);
  19087. }
  19088. // 核销/支付
  19089. var paySettleMer = function paySettleMer(workid) {var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};var handleMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'paySettle';
  19090. console.log(handleMode);
  19091. uni.showLoading({
  19092. title: '加载中...',
  19093. mask: true });
  19094. var params2 = {
  19095. bizCatalog: 'TodoWorkEntity',
  19096. handleMode: 'fetch',
  19097. workid: workid };
  19098. // 查询待支付金额
  19099. requestUrl('&WsAjaxBiz=Worker&WsAjaxAction=entityDataHandle', params2, function (res) {
  19100. if (res.status) {
  19101. console.log('查询待支付金额');
  19102. console.log(res.data);
  19103. uni.hideLoading();
  19104. uni.showModal({
  19105. title: '确认支付' + res.data.Result.btr_feetotal + '元?',
  19106. success: function success(res) {
  19107. if (res.confirm) {
  19108. uni.showLoading({
  19109. title: '加载中...',
  19110. mask: true });
  19111. uni.login({
  19112. success: function success(res) {
  19113. var params = {
  19114. bizCatalog: 'TodoWorkEntity',
  19115. handleMode: handleMode,
  19116. workid: workid,
  19117. minaCode: res.code,
  19118. todo: 'allow' };
  19119. console.log('paySettle处理请求参数');
  19120. console.log('支付参数', params);
  19121. requestUrl(
  19122. '&WsAjaxBiz=Trader&WsAjaxAction=entityDataHandle',
  19123. params,
  19124. function (res) {
  19125. console.log('paySettle处理获取参数');
  19126. console.log(res);
  19127. if (res.status) {
  19128. var prePayInfo = res.data.Result.
  19129. prePayInfo;
  19130. // 走支付
  19131. if (prePayInfo) {
  19132. console.log('prePayInfo');
  19133. console.log(prePayInfo);
  19134. uni.hideLoading();
  19135. uni.requestPayment(_objectSpread(_objectSpread({},
  19136. prePayInfo), {}, {
  19137. success: function success(res2) {
  19138. uni.showModal({
  19139. title: '支付成功',
  19140. showCancel: false,
  19141. success: function success(res) {
  19142. callback();
  19143. } });
  19144. },
  19145. fail: function fail(
  19146. res2) {
  19147. if (res2.
  19148. errMsg.
  19149. indexOf(
  19150. 'cancel') ==
  19151. -1)
  19152. {
  19153. uni.showModal({
  19154. title: '支付失败',
  19155. content: JSON.
  19156. stringify(
  19157. res2),
  19158. showCancel: false });
  19159. }
  19160. } }));
  19161. } else {
  19162. // 走余额
  19163. uni.showModal({
  19164. title: '支付成功',
  19165. showCancel: false,
  19166. success: function success(res) {
  19167. callback();
  19168. } });
  19169. uni.hideLoading();
  19170. return;
  19171. }
  19172. }
  19173. uni.hideLoading();
  19174. });
  19175. } });
  19176. }
  19177. } });
  19178. }
  19179. });
  19180. };
  19181. // 处理报名者假头像
  19182. var formate_enrolled_heads = function formate_enrolled_heads(enrolled_heads, num) {
  19183. var res_arr = [];
  19184. if (num > 0) {
  19185. num = num > 3 ? 3 : num;
  19186. var enrolled_heads_arr = enrolled_heads.split(',');
  19187. if (enrolled_heads_arr.length > 1) {
  19188. res_arr = enrolled_heads_arr.slice(0, num);
  19189. }
  19190. }
  19191. return res_arr;
  19192. };
  19193. // 计算时间
  19194. var calc_hours = function calc_hours(start_time, end_time) {
  19195. var h1 = start_time.slice(0, 2);
  19196. var min1 = start_time.slice(3, 5);
  19197. var h2 = end_time.slice(0, 2);
  19198. var min2 = end_time.slice(3, 5);
  19199. var res = Number(h2) - Number(h1) + (Number(min2) - Number(min1)) / 60;
  19200. return res < 0 ? '--' : res.toFixed(1);
  19201. };
  19202. // 计算日期
  19203. var calc_date = function calc_date(begin_datetime, finish_datetime) {
  19204. if (begin_datetime && finish_datetime) {
  19205. var total_date = (new Date(finish_datetime) - new Date(begin_datetime)) / (1000 * 3600 * 24) + 1;
  19206. if (total_date > 0) {
  19207. return total_date;
  19208. } else {
  19209. return '--';
  19210. }
  19211. } else {
  19212. return '--';
  19213. }
  19214. };
  19215. var formate_name_card = function formate_name_card(data) {
  19216. var res = _objectSpread({},
  19217. data);
  19218. var lawer_name = res.lawer_name;
  19219. var lawer_idcard = res.lawer_idcard;
  19220. var str = '';
  19221. for (var i = 0; i < lawer_name.length - 1; i++) {
  19222. str += '*';
  19223. }
  19224. res.lawer_name = str + lawer_name.slice(lawer_name.length - 1, lawer_name.length);
  19225. str = '';
  19226. for (var _i2 = 0; _i2 < 13; _i2++) {
  19227. str += '*';
  19228. }
  19229. res.lawer_idcard = lawer_idcard.slice(0, 3) + str + lawer_idcard.slice(16, 18);
  19230. return res;
  19231. };
  19232. var formate_name_card_mem = function formate_name_card_mem(data) {
  19233. var res = _objectSpread({},
  19234. data);
  19235. var true_name = res.true_name;
  19236. var idcard = res.idcard;
  19237. var str = '';
  19238. for (var i = 0; i < true_name.length - 1; i++) {
  19239. str += '*';
  19240. }
  19241. res.true_name = str + true_name.slice(true_name.length - 1, true_name.length);
  19242. str = '';
  19243. for (var _i3 = 0; _i3 < 13; _i3++) {
  19244. str += '*';
  19245. }
  19246. res.idcard = idcard.slice(0, 3) + str + idcard.slice(16, 18);
  19247. return res;
  19248. };var _default =
  19249. {
  19250. formate_name_card_mem: formate_name_card_mem,
  19251. formate_name_card: formate_name_card,
  19252. formatDate: formatDate,
  19253. init_go_easy: init_go_easy,
  19254. GoEasy: _goeasy224Min.default,
  19255. goEasy: goEasy,
  19256. serverUrl: serverUrl,
  19257. serverUrlReq: serverUrlReq,
  19258. webviewServerUrlReq: webviewServerUrlReq,
  19259. requestUrl: requestUrl,
  19260. select_from_arr: select_from_arr,
  19261. uploadFileApi: uploadFileApi,
  19262. uploadFileApiOSS: uploadFileApiOSS,
  19263. getPositionLocal: getPositionLocal,
  19264. get_user_info: get_user_info,
  19265. is_contain_sensitive_words: is_contain_sensitive_words,
  19266. get_age_from_id_num: get_age_from_id_num,
  19267. getLocalTime: getLocalTime,
  19268. IsIdCard: IsIdCard,
  19269. formatDate2: formatDate2,
  19270. paySettleMer: paySettleMer,
  19271. get_message_data: get_message_data,
  19272. formate_enrolled_heads: formate_enrolled_heads,
  19273. calc_hours: calc_hours,
  19274. calc_date: calc_date,
  19275. getNextDate: getNextDate };exports.default = _default;
  19276. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
  19277. /***/ })
  19278. }]);
  19279. //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map