vendor.js 431 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743
  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. Object.defineProperty(exports, "__esModule", { value: true });exports.createApp = createApp;exports.createComponent = createComponent;exports.createPage = createPage;exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));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(n);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;}
  10. var _toString = Object.prototype.toString;
  11. var hasOwnProperty = Object.prototype.hasOwnProperty;
  12. function isFn(fn) {
  13. return typeof fn === 'function';
  14. }
  15. function isStr(str) {
  16. return typeof str === 'string';
  17. }
  18. function isPlainObject(obj) {
  19. return _toString.call(obj) === '[object Object]';
  20. }
  21. function hasOwn(obj, key) {
  22. return hasOwnProperty.call(obj, key);
  23. }
  24. function noop() {}
  25. /**
  26. * Create a cached version of a pure function.
  27. */
  28. function cached(fn) {
  29. var cache = Object.create(null);
  30. return function cachedFn(str) {
  31. var hit = cache[str];
  32. return hit || (cache[str] = fn(str));
  33. };
  34. }
  35. /**
  36. * Camelize a hyphen-delimited string.
  37. */
  38. var camelizeRE = /-(\w)/g;
  39. var camelize = cached(function (str) {
  40. return str.replace(camelizeRE, function (_, c) {return c ? c.toUpperCase() : '';});
  41. });
  42. var HOOKS = [
  43. 'invoke',
  44. 'success',
  45. 'fail',
  46. 'complete',
  47. 'returnValue'];
  48. var globalInterceptors = {};
  49. var scopedInterceptors = {};
  50. function mergeHook(parentVal, childVal) {
  51. var res = childVal ?
  52. parentVal ?
  53. parentVal.concat(childVal) :
  54. Array.isArray(childVal) ?
  55. childVal : [childVal] :
  56. parentVal;
  57. return res ?
  58. dedupeHooks(res) :
  59. res;
  60. }
  61. function dedupeHooks(hooks) {
  62. var res = [];
  63. for (var i = 0; i < hooks.length; i++) {
  64. if (res.indexOf(hooks[i]) === -1) {
  65. res.push(hooks[i]);
  66. }
  67. }
  68. return res;
  69. }
  70. function removeHook(hooks, hook) {
  71. var index = hooks.indexOf(hook);
  72. if (index !== -1) {
  73. hooks.splice(index, 1);
  74. }
  75. }
  76. function mergeInterceptorHook(interceptor, option) {
  77. Object.keys(option).forEach(function (hook) {
  78. if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {
  79. interceptor[hook] = mergeHook(interceptor[hook], option[hook]);
  80. }
  81. });
  82. }
  83. function removeInterceptorHook(interceptor, option) {
  84. if (!interceptor || !option) {
  85. return;
  86. }
  87. Object.keys(option).forEach(function (hook) {
  88. if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {
  89. removeHook(interceptor[hook], option[hook]);
  90. }
  91. });
  92. }
  93. function addInterceptor(method, option) {
  94. if (typeof method === 'string' && isPlainObject(option)) {
  95. mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);
  96. } else if (isPlainObject(method)) {
  97. mergeInterceptorHook(globalInterceptors, method);
  98. }
  99. }
  100. function removeInterceptor(method, option) {
  101. if (typeof method === 'string') {
  102. if (isPlainObject(option)) {
  103. removeInterceptorHook(scopedInterceptors[method], option);
  104. } else {
  105. delete scopedInterceptors[method];
  106. }
  107. } else if (isPlainObject(method)) {
  108. removeInterceptorHook(globalInterceptors, method);
  109. }
  110. }
  111. function wrapperHook(hook) {
  112. return function (data) {
  113. return hook(data) || data;
  114. };
  115. }
  116. function isPromise(obj) {
  117. return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
  118. }
  119. function queue(hooks, data) {
  120. var promise = false;
  121. for (var i = 0; i < hooks.length; i++) {
  122. var hook = hooks[i];
  123. if (promise) {
  124. promise = Promise.then(wrapperHook(hook));
  125. } else {
  126. var res = hook(data);
  127. if (isPromise(res)) {
  128. promise = Promise.resolve(res);
  129. }
  130. if (res === false) {
  131. return {
  132. then: function then() {} };
  133. }
  134. }
  135. }
  136. return promise || {
  137. then: function then(callback) {
  138. return callback(data);
  139. } };
  140. }
  141. function wrapperOptions(interceptor) {var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  142. ['success', 'fail', 'complete'].forEach(function (name) {
  143. if (Array.isArray(interceptor[name])) {
  144. var oldCallback = options[name];
  145. options[name] = function callbackInterceptor(res) {
  146. queue(interceptor[name], res).then(function (res) {
  147. /* eslint-disable no-mixed-operators */
  148. return isFn(oldCallback) && oldCallback(res) || res;
  149. });
  150. };
  151. }
  152. });
  153. return options;
  154. }
  155. function wrapperReturnValue(method, returnValue) {
  156. var returnValueHooks = [];
  157. if (Array.isArray(globalInterceptors.returnValue)) {
  158. returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(globalInterceptors.returnValue));
  159. }
  160. var interceptor = scopedInterceptors[method];
  161. if (interceptor && Array.isArray(interceptor.returnValue)) {
  162. returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(interceptor.returnValue));
  163. }
  164. returnValueHooks.forEach(function (hook) {
  165. returnValue = hook(returnValue) || returnValue;
  166. });
  167. return returnValue;
  168. }
  169. function getApiInterceptorHooks(method) {
  170. var interceptor = Object.create(null);
  171. Object.keys(globalInterceptors).forEach(function (hook) {
  172. if (hook !== 'returnValue') {
  173. interceptor[hook] = globalInterceptors[hook].slice();
  174. }
  175. });
  176. var scopedInterceptor = scopedInterceptors[method];
  177. if (scopedInterceptor) {
  178. Object.keys(scopedInterceptor).forEach(function (hook) {
  179. if (hook !== 'returnValue') {
  180. interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
  181. }
  182. });
  183. }
  184. return interceptor;
  185. }
  186. 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];}
  187. var interceptor = getApiInterceptorHooks(method);
  188. if (interceptor && Object.keys(interceptor).length) {
  189. if (Array.isArray(interceptor.invoke)) {
  190. var res = queue(interceptor.invoke, options);
  191. return res.then(function (options) {
  192. return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
  193. });
  194. } else {
  195. return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
  196. }
  197. }
  198. return api.apply(void 0, [options].concat(params));
  199. }
  200. var promiseInterceptor = {
  201. returnValue: function returnValue(res) {
  202. if (!isPromise(res)) {
  203. return res;
  204. }
  205. return res.then(function (res) {
  206. return res[1];
  207. }).catch(function (res) {
  208. return res[0];
  209. });
  210. } };
  211. var SYNC_API_RE =
  212. /^\$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
  213. var CONTEXT_API_RE = /^create|Manager$/;
  214. // Context例外情况
  215. var CONTEXT_API_RE_EXC = ['createBLEConnection'];
  216. // 同步例外情况
  217. var ASYNC_API = ['createBLEConnection'];
  218. var CALLBACK_API_RE = /^on|^off/;
  219. function isContextApi(name) {
  220. return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;
  221. }
  222. function isSyncApi(name) {
  223. return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;
  224. }
  225. function isCallbackApi(name) {
  226. return CALLBACK_API_RE.test(name) && name !== 'onPush';
  227. }
  228. function handlePromise(promise) {
  229. return promise.then(function (data) {
  230. return [null, data];
  231. }).
  232. catch(function (err) {return [err];});
  233. }
  234. function shouldPromise(name) {
  235. if (
  236. isContextApi(name) ||
  237. isSyncApi(name) ||
  238. isCallbackApi(name))
  239. {
  240. return false;
  241. }
  242. return true;
  243. }
  244. /* eslint-disable no-extend-native */
  245. if (!Promise.prototype.finally) {
  246. Promise.prototype.finally = function (callback) {
  247. var promise = this.constructor;
  248. return this.then(
  249. function (value) {return promise.resolve(callback()).then(function () {return value;});},
  250. function (reason) {return promise.resolve(callback()).then(function () {
  251. throw reason;
  252. });});
  253. };
  254. }
  255. function promisify(name, api) {
  256. if (!shouldPromise(name)) {
  257. return api;
  258. }
  259. 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];}
  260. if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {
  261. return wrapperReturnValue(name, invokeApi.apply(void 0, [name, api, options].concat(params)));
  262. }
  263. return wrapperReturnValue(name, handlePromise(new Promise(function (resolve, reject) {
  264. invokeApi.apply(void 0, [name, api, Object.assign({}, options, {
  265. success: resolve,
  266. fail: reject })].concat(
  267. params));
  268. })));
  269. };
  270. }
  271. var EPS = 1e-4;
  272. var BASE_DEVICE_WIDTH = 750;
  273. var isIOS = false;
  274. var deviceWidth = 0;
  275. var deviceDPR = 0;
  276. function checkDeviceWidth() {var _wx$getSystemInfoSync =
  277. wx.getSystemInfoSync(),platform = _wx$getSystemInfoSync.platform,pixelRatio = _wx$getSystemInfoSync.pixelRatio,windowWidth = _wx$getSystemInfoSync.windowWidth; // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni
  278. deviceWidth = windowWidth;
  279. deviceDPR = pixelRatio;
  280. isIOS = platform === 'ios';
  281. }
  282. function upx2px(number, newDeviceWidth) {
  283. if (deviceWidth === 0) {
  284. checkDeviceWidth();
  285. }
  286. number = Number(number);
  287. if (number === 0) {
  288. return 0;
  289. }
  290. var result = number / BASE_DEVICE_WIDTH * (newDeviceWidth || deviceWidth);
  291. if (result < 0) {
  292. result = -result;
  293. }
  294. result = Math.floor(result + EPS);
  295. if (result === 0) {
  296. if (deviceDPR === 1 || !isIOS) {
  297. result = 1;
  298. } else {
  299. result = 0.5;
  300. }
  301. }
  302. return number < 0 ? -result : result;
  303. }
  304. var interceptors = {
  305. promiseInterceptor: promiseInterceptor };
  306. var baseApi = /*#__PURE__*/Object.freeze({
  307. __proto__: null,
  308. upx2px: upx2px,
  309. addInterceptor: addInterceptor,
  310. removeInterceptor: removeInterceptor,
  311. interceptors: interceptors });
  312. var previewImage = {
  313. args: function args(fromArgs) {
  314. var currentIndex = parseInt(fromArgs.current);
  315. if (isNaN(currentIndex)) {
  316. return;
  317. }
  318. var urls = fromArgs.urls;
  319. if (!Array.isArray(urls)) {
  320. return;
  321. }
  322. var len = urls.length;
  323. if (!len) {
  324. return;
  325. }
  326. if (currentIndex < 0) {
  327. currentIndex = 0;
  328. } else if (currentIndex >= len) {
  329. currentIndex = len - 1;
  330. }
  331. if (currentIndex > 0) {
  332. fromArgs.current = urls[currentIndex];
  333. fromArgs.urls = urls.filter(
  334. function (item, index) {return index < currentIndex ? item !== urls[currentIndex] : true;});
  335. } else {
  336. fromArgs.current = urls[0];
  337. }
  338. return {
  339. indicator: false,
  340. loop: false };
  341. } };
  342. function addSafeAreaInsets(result) {
  343. if (result.safeArea) {
  344. var safeArea = result.safeArea;
  345. result.safeAreaInsets = {
  346. top: safeArea.top,
  347. left: safeArea.left,
  348. right: result.windowWidth - safeArea.right,
  349. bottom: result.windowHeight - safeArea.bottom };
  350. }
  351. }
  352. var protocols = {
  353. previewImage: previewImage,
  354. getSystemInfo: {
  355. returnValue: addSafeAreaInsets },
  356. getSystemInfoSync: {
  357. returnValue: addSafeAreaInsets } };
  358. var todos = [
  359. 'vibrate',
  360. 'preloadPage',
  361. 'unPreloadPage',
  362. 'loadSubPackage'];
  363. var canIUses = [];
  364. var CALLBACKS = ['success', 'fail', 'cancel', 'complete'];
  365. function processCallback(methodName, method, returnValue) {
  366. return function (res) {
  367. return method(processReturnValue(methodName, res, returnValue));
  368. };
  369. }
  370. 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;
  371. if (isPlainObject(fromArgs)) {// 一般 api 的参数解析
  372. var toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值
  373. if (isFn(argsOption)) {
  374. argsOption = argsOption(fromArgs, toArgs) || {};
  375. }
  376. for (var key in fromArgs) {
  377. if (hasOwn(argsOption, key)) {
  378. var keyOption = argsOption[key];
  379. if (isFn(keyOption)) {
  380. keyOption = keyOption(fromArgs[key], fromArgs, toArgs);
  381. }
  382. if (!keyOption) {// 不支持的参数
  383. console.warn("\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F ".concat(methodName, "\u6682\u4E0D\u652F\u6301").concat(key));
  384. } else if (isStr(keyOption)) {// 重写参数 key
  385. toArgs[keyOption] = fromArgs[key];
  386. } else if (isPlainObject(keyOption)) {// {name:newName,value:value}可重新指定参数 key:value
  387. toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;
  388. }
  389. } else if (CALLBACKS.indexOf(key) !== -1) {
  390. toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);
  391. } else {
  392. if (!keepFromArgs) {
  393. toArgs[key] = fromArgs[key];
  394. }
  395. }
  396. }
  397. return toArgs;
  398. } else if (isFn(fromArgs)) {
  399. fromArgs = processCallback(methodName, fromArgs, returnValue);
  400. }
  401. return fromArgs;
  402. }
  403. function processReturnValue(methodName, res, returnValue) {var keepReturnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
  404. if (isFn(protocols.returnValue)) {// 处理通用 returnValue
  405. res = protocols.returnValue(methodName, res);
  406. }
  407. return processArgs(methodName, res, returnValue, {}, keepReturnValue);
  408. }
  409. function wrapper(methodName, method) {
  410. if (hasOwn(protocols, methodName)) {
  411. var protocol = protocols[methodName];
  412. if (!protocol) {// 暂不支持的 api
  413. return function () {
  414. console.error("\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F \u6682\u4E0D\u652F\u6301".concat(methodName));
  415. };
  416. }
  417. return function (arg1, arg2) {// 目前 api 最多两个参数
  418. var options = protocol;
  419. if (isFn(protocol)) {
  420. options = protocol(arg1);
  421. }
  422. arg1 = processArgs(methodName, arg1, options.args, options.returnValue);
  423. var args = [arg1];
  424. if (typeof arg2 !== 'undefined') {
  425. args.push(arg2);
  426. }
  427. var returnValue = wx[options.name || methodName].apply(wx, args);
  428. if (isSyncApi(methodName)) {// 同步 api
  429. return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));
  430. }
  431. return returnValue;
  432. };
  433. }
  434. return method;
  435. }
  436. var todoApis = Object.create(null);
  437. var TODOS = [
  438. 'onTabBarMidButtonTap',
  439. 'subscribePush',
  440. 'unsubscribePush',
  441. 'onPush',
  442. 'offPush',
  443. 'share'];
  444. function createTodoApi(name) {
  445. return function todoApi(_ref)
  446. {var fail = _ref.fail,complete = _ref.complete;
  447. var res = {
  448. errMsg: "".concat(name, ":fail:\u6682\u4E0D\u652F\u6301 ").concat(name, " \u65B9\u6CD5") };
  449. isFn(fail) && fail(res);
  450. isFn(complete) && complete(res);
  451. };
  452. }
  453. TODOS.forEach(function (name) {
  454. todoApis[name] = createTodoApi(name);
  455. });
  456. var providers = {
  457. oauth: ['weixin'],
  458. share: ['weixin'],
  459. payment: ['wxpay'],
  460. push: ['weixin'] };
  461. function getProvider(_ref2)
  462. {var service = _ref2.service,success = _ref2.success,fail = _ref2.fail,complete = _ref2.complete;
  463. var res = false;
  464. if (providers[service]) {
  465. res = {
  466. errMsg: 'getProvider:ok',
  467. service: service,
  468. provider: providers[service] };
  469. isFn(success) && success(res);
  470. } else {
  471. res = {
  472. errMsg: 'getProvider:fail:服务[' + service + ']不存在' };
  473. isFn(fail) && fail(res);
  474. }
  475. isFn(complete) && complete(res);
  476. }
  477. var extraApi = /*#__PURE__*/Object.freeze({
  478. __proto__: null,
  479. getProvider: getProvider });
  480. var getEmitter = function () {
  481. if (typeof getUniEmitter === 'function') {
  482. /* eslint-disable no-undef */
  483. return getUniEmitter;
  484. }
  485. var Emitter;
  486. return function getUniEmitter() {
  487. if (!Emitter) {
  488. Emitter = new _vue.default();
  489. }
  490. return Emitter;
  491. };
  492. }();
  493. function apply(ctx, method, args) {
  494. return ctx[method].apply(ctx, args);
  495. }
  496. function $on() {
  497. return apply(getEmitter(), '$on', Array.prototype.slice.call(arguments));
  498. }
  499. function $off() {
  500. return apply(getEmitter(), '$off', Array.prototype.slice.call(arguments));
  501. }
  502. function $once() {
  503. return apply(getEmitter(), '$once', Array.prototype.slice.call(arguments));
  504. }
  505. function $emit() {
  506. return apply(getEmitter(), '$emit', Array.prototype.slice.call(arguments));
  507. }
  508. var eventApi = /*#__PURE__*/Object.freeze({
  509. __proto__: null,
  510. $on: $on,
  511. $off: $off,
  512. $once: $once,
  513. $emit: $emit });
  514. var api = /*#__PURE__*/Object.freeze({
  515. __proto__: null });
  516. var MPPage = Page;
  517. var MPComponent = Component;
  518. var customizeRE = /:/g;
  519. var customize = cached(function (str) {
  520. return camelize(str.replace(customizeRE, '-'));
  521. });
  522. function initTriggerEvent(mpInstance) {
  523. {
  524. if (!wx.canIUse('nextTick')) {
  525. return;
  526. }
  527. }
  528. var oldTriggerEvent = mpInstance.triggerEvent;
  529. mpInstance.triggerEvent = function (event) {for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {args[_key3 - 1] = arguments[_key3];}
  530. return oldTriggerEvent.apply(mpInstance, [customize(event)].concat(args));
  531. };
  532. }
  533. function initHook(name, options) {
  534. var oldHook = options[name];
  535. if (!oldHook) {
  536. options[name] = function () {
  537. initTriggerEvent(this);
  538. };
  539. } else {
  540. options[name] = function () {
  541. initTriggerEvent(this);for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {args[_key4] = arguments[_key4];}
  542. return oldHook.apply(this, args);
  543. };
  544. }
  545. }
  546. Page = function Page() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  547. initHook('onLoad', options);
  548. return MPPage(options);
  549. };
  550. Component = function Component() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  551. initHook('created', options);
  552. return MPComponent(options);
  553. };
  554. var PAGE_EVENT_HOOKS = [
  555. 'onPullDownRefresh',
  556. 'onReachBottom',
  557. 'onShareAppMessage',
  558. 'onPageScroll',
  559. 'onResize',
  560. 'onTabItemTap'];
  561. function initMocks(vm, mocks) {
  562. var mpInstance = vm.$mp[vm.mpType];
  563. mocks.forEach(function (mock) {
  564. if (hasOwn(mpInstance, mock)) {
  565. vm[mock] = mpInstance[mock];
  566. }
  567. });
  568. }
  569. function hasHook(hook, vueOptions) {
  570. if (!vueOptions) {
  571. return true;
  572. }
  573. if (_vue.default.options && Array.isArray(_vue.default.options[hook])) {
  574. return true;
  575. }
  576. vueOptions = vueOptions.default || vueOptions;
  577. if (isFn(vueOptions)) {
  578. if (isFn(vueOptions.extendOptions[hook])) {
  579. return true;
  580. }
  581. if (vueOptions.super &&
  582. vueOptions.super.options &&
  583. Array.isArray(vueOptions.super.options[hook])) {
  584. return true;
  585. }
  586. return false;
  587. }
  588. if (isFn(vueOptions[hook])) {
  589. return true;
  590. }
  591. var mixins = vueOptions.mixins;
  592. if (Array.isArray(mixins)) {
  593. return !!mixins.find(function (mixin) {return hasHook(hook, mixin);});
  594. }
  595. }
  596. function initHooks(mpOptions, hooks, vueOptions) {
  597. hooks.forEach(function (hook) {
  598. if (hasHook(hook, vueOptions)) {
  599. mpOptions[hook] = function (args) {
  600. return this.$vm && this.$vm.__call_hook(hook, args);
  601. };
  602. }
  603. });
  604. }
  605. function initVueComponent(Vue, vueOptions) {
  606. vueOptions = vueOptions.default || vueOptions;
  607. var VueComponent;
  608. if (isFn(vueOptions)) {
  609. VueComponent = vueOptions;
  610. } else {
  611. VueComponent = Vue.extend(vueOptions);
  612. }
  613. vueOptions = VueComponent.options;
  614. return [VueComponent, vueOptions];
  615. }
  616. function initSlots(vm, vueSlots) {
  617. if (Array.isArray(vueSlots) && vueSlots.length) {
  618. var $slots = Object.create(null);
  619. vueSlots.forEach(function (slotName) {
  620. $slots[slotName] = true;
  621. });
  622. vm.$scopedSlots = vm.$slots = $slots;
  623. }
  624. }
  625. function initVueIds(vueIds, mpInstance) {
  626. vueIds = (vueIds || '').split(',');
  627. var len = vueIds.length;
  628. if (len === 1) {
  629. mpInstance._$vueId = vueIds[0];
  630. } else if (len === 2) {
  631. mpInstance._$vueId = vueIds[0];
  632. mpInstance._$vuePid = vueIds[1];
  633. }
  634. }
  635. function initData(vueOptions, context) {
  636. var data = vueOptions.data || {};
  637. var methods = vueOptions.methods || {};
  638. if (typeof data === 'function') {
  639. try {
  640. data = data.call(context); // 支持 Vue.prototype 上挂的数据
  641. } catch (e) {
  642. if (Object({"NODE_ENV":"development","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
  643. console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);
  644. }
  645. }
  646. } else {
  647. try {
  648. // 对 data 格式化
  649. data = JSON.parse(JSON.stringify(data));
  650. } catch (e) {}
  651. }
  652. if (!isPlainObject(data)) {
  653. data = {};
  654. }
  655. Object.keys(methods).forEach(function (methodName) {
  656. if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {
  657. data[methodName] = methods[methodName];
  658. }
  659. });
  660. return data;
  661. }
  662. var PROP_TYPES = [String, Number, Boolean, Object, Array, null];
  663. function createObserver(name) {
  664. return function observer(newVal, oldVal) {
  665. if (this.$vm) {
  666. this.$vm[name] = newVal; // 为了触发其他非 render watcher
  667. }
  668. };
  669. }
  670. function initBehaviors(vueOptions, initBehavior) {
  671. var vueBehaviors = vueOptions.behaviors;
  672. var vueExtends = vueOptions.extends;
  673. var vueMixins = vueOptions.mixins;
  674. var vueProps = vueOptions.props;
  675. if (!vueProps) {
  676. vueOptions.props = vueProps = [];
  677. }
  678. var behaviors = [];
  679. if (Array.isArray(vueBehaviors)) {
  680. vueBehaviors.forEach(function (behavior) {
  681. behaviors.push(behavior.replace('uni://', "wx".concat("://")));
  682. if (behavior === 'uni://form-field') {
  683. if (Array.isArray(vueProps)) {
  684. vueProps.push('name');
  685. vueProps.push('value');
  686. } else {
  687. vueProps.name = {
  688. type: String,
  689. default: '' };
  690. vueProps.value = {
  691. type: [String, Number, Boolean, Array, Object, Date],
  692. default: '' };
  693. }
  694. }
  695. });
  696. }
  697. if (isPlainObject(vueExtends) && vueExtends.props) {
  698. behaviors.push(
  699. initBehavior({
  700. properties: initProperties(vueExtends.props, true) }));
  701. }
  702. if (Array.isArray(vueMixins)) {
  703. vueMixins.forEach(function (vueMixin) {
  704. if (isPlainObject(vueMixin) && vueMixin.props) {
  705. behaviors.push(
  706. initBehavior({
  707. properties: initProperties(vueMixin.props, true) }));
  708. }
  709. });
  710. }
  711. return behaviors;
  712. }
  713. function parsePropType(key, type, defaultValue, file) {
  714. // [String]=>String
  715. if (Array.isArray(type) && type.length === 1) {
  716. return type[0];
  717. }
  718. return type;
  719. }
  720. function initProperties(props) {var isBehavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
  721. var properties = {};
  722. if (!isBehavior) {
  723. properties.vueId = {
  724. type: String,
  725. value: '' };
  726. properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
  727. type: null,
  728. value: [],
  729. observer: function observer(newVal, oldVal) {
  730. var $slots = Object.create(null);
  731. newVal.forEach(function (slotName) {
  732. $slots[slotName] = true;
  733. });
  734. this.setData({
  735. $slots: $slots });
  736. } };
  737. }
  738. if (Array.isArray(props)) {// ['title']
  739. props.forEach(function (key) {
  740. properties[key] = {
  741. type: null,
  742. observer: createObserver(key) };
  743. });
  744. } else if (isPlainObject(props)) {// {title:{type:String,default:''},content:String}
  745. Object.keys(props).forEach(function (key) {
  746. var opts = props[key];
  747. if (isPlainObject(opts)) {// title:{type:String,default:''}
  748. var value = opts.default;
  749. if (isFn(value)) {
  750. value = value();
  751. }
  752. opts.type = parsePropType(key, opts.type);
  753. properties[key] = {
  754. type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,
  755. value: value,
  756. observer: createObserver(key) };
  757. } else {// content:String
  758. var type = parsePropType(key, opts);
  759. properties[key] = {
  760. type: PROP_TYPES.indexOf(type) !== -1 ? type : null,
  761. observer: createObserver(key) };
  762. }
  763. });
  764. }
  765. return properties;
  766. }
  767. function wrapper$1(event) {
  768. // TODO 又得兼容 mpvue 的 mp 对象
  769. try {
  770. event.mp = JSON.parse(JSON.stringify(event));
  771. } catch (e) {}
  772. event.stopPropagation = noop;
  773. event.preventDefault = noop;
  774. event.target = event.target || {};
  775. if (!hasOwn(event, 'detail')) {
  776. event.detail = {};
  777. }
  778. if (hasOwn(event, 'markerId')) {
  779. event.detail = typeof event.detail === 'object' ? event.detail : {};
  780. event.detail.markerId = event.markerId;
  781. }
  782. if (isPlainObject(event.detail)) {
  783. event.target = Object.assign({}, event.target, event.detail);
  784. }
  785. return event;
  786. }
  787. function getExtraValue(vm, dataPathsArray) {
  788. var context = vm;
  789. dataPathsArray.forEach(function (dataPathArray) {
  790. var dataPath = dataPathArray[0];
  791. var value = dataPathArray[2];
  792. if (dataPath || typeof value !== 'undefined') {// ['','',index,'disable']
  793. var propPath = dataPathArray[1];
  794. var valuePath = dataPathArray[3];
  795. var vFor = dataPath ? vm.__get_value(dataPath, context) : context;
  796. if (Number.isInteger(vFor)) {
  797. context = value;
  798. } else if (!propPath) {
  799. context = vFor[value];
  800. } else {
  801. if (Array.isArray(vFor)) {
  802. context = vFor.find(function (vForItem) {
  803. return vm.__get_value(propPath, vForItem) === value;
  804. });
  805. } else if (isPlainObject(vFor)) {
  806. context = Object.keys(vFor).find(function (vForKey) {
  807. return vm.__get_value(propPath, vFor[vForKey]) === value;
  808. });
  809. } else {
  810. console.error('v-for 暂不支持循环数据:', vFor);
  811. }
  812. }
  813. if (valuePath) {
  814. context = vm.__get_value(valuePath, context);
  815. }
  816. }
  817. });
  818. return context;
  819. }
  820. function processEventExtra(vm, extra, event) {
  821. var extraObj = {};
  822. if (Array.isArray(extra) && extra.length) {
  823. /**
  824. *[
  825. * ['data.items', 'data.id', item.data.id],
  826. * ['metas', 'id', meta.id]
  827. *],
  828. *[
  829. * ['data.items', 'data.id', item.data.id],
  830. * ['metas', 'id', meta.id]
  831. *],
  832. *'test'
  833. */
  834. extra.forEach(function (dataPath, index) {
  835. if (typeof dataPath === 'string') {
  836. if (!dataPath) {// model,prop.sync
  837. extraObj['$' + index] = vm;
  838. } else {
  839. if (dataPath === '$event') {// $event
  840. extraObj['$' + index] = event;
  841. } else if (dataPath.indexOf('$event.') === 0) {// $event.target.value
  842. extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);
  843. } else {
  844. extraObj['$' + index] = vm.__get_value(dataPath);
  845. }
  846. }
  847. } else {
  848. extraObj['$' + index] = getExtraValue(vm, dataPath);
  849. }
  850. });
  851. }
  852. return extraObj;
  853. }
  854. function getObjByArray(arr) {
  855. var obj = {};
  856. for (var i = 1; i < arr.length; i++) {
  857. var element = arr[i];
  858. obj[element[0]] = element[1];
  859. }
  860. return obj;
  861. }
  862. 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;
  863. var isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象
  864. if (isCustom) {// 自定义事件
  865. isCustomMPEvent = event.currentTarget &&
  866. event.currentTarget.dataset &&
  867. event.currentTarget.dataset.comType === 'wx';
  868. if (!args.length) {// 无参数,直接传入 event 或 detail 数组
  869. if (isCustomMPEvent) {
  870. return [event];
  871. }
  872. return event.detail.__args__ || event.detail;
  873. }
  874. }
  875. var extraObj = processEventExtra(vm, extra, event);
  876. var ret = [];
  877. args.forEach(function (arg) {
  878. if (arg === '$event') {
  879. if (methodName === '__set_model' && !isCustom) {// input v-model value
  880. ret.push(event.target.value);
  881. } else {
  882. if (isCustom && !isCustomMPEvent) {
  883. ret.push(event.detail.__args__[0]);
  884. } else {// wxcomponent 组件或内置组件
  885. ret.push(event);
  886. }
  887. }
  888. } else {
  889. if (Array.isArray(arg) && arg[0] === 'o') {
  890. ret.push(getObjByArray(arg));
  891. } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {
  892. ret.push(extraObj[arg]);
  893. } else {
  894. ret.push(arg);
  895. }
  896. }
  897. });
  898. return ret;
  899. }
  900. var ONCE = '~';
  901. var CUSTOM = '^';
  902. function isMatchEventType(eventType, optType) {
  903. return eventType === optType ||
  904. optType === 'regionchange' && (
  905. eventType === 'begin' ||
  906. eventType === 'end');
  907. }
  908. function handleEvent(event) {var _this = this;
  909. event = wrapper$1(event);
  910. // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]
  911. var dataset = (event.currentTarget || event.target).dataset;
  912. if (!dataset) {
  913. return console.warn('事件信息不存在');
  914. }
  915. var eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰
  916. if (!eventOpts) {
  917. return console.warn('事件信息不存在');
  918. }
  919. // [['handle',[1,2,a]],['handle1',[1,2,a]]]
  920. var eventType = event.type;
  921. var ret = [];
  922. eventOpts.forEach(function (eventOpt) {
  923. var type = eventOpt[0];
  924. var eventsArray = eventOpt[1];
  925. var isCustom = type.charAt(0) === CUSTOM;
  926. type = isCustom ? type.slice(1) : type;
  927. var isOnce = type.charAt(0) === ONCE;
  928. type = isOnce ? type.slice(1) : type;
  929. if (eventsArray && isMatchEventType(eventType, type)) {
  930. eventsArray.forEach(function (eventArray) {
  931. var methodName = eventArray[0];
  932. if (methodName) {
  933. var handlerCtx = _this.$vm;
  934. if (
  935. handlerCtx.$options.generic &&
  936. handlerCtx.$parent &&
  937. handlerCtx.$parent.$parent)
  938. {// mp-weixin,mp-toutiao 抽象节点模拟 scoped slots
  939. handlerCtx = handlerCtx.$parent.$parent;
  940. }
  941. if (methodName === '$emit') {
  942. handlerCtx.$emit.apply(handlerCtx,
  943. processEventArgs(
  944. _this.$vm,
  945. event,
  946. eventArray[1],
  947. eventArray[2],
  948. isCustom,
  949. methodName));
  950. return;
  951. }
  952. var handler = handlerCtx[methodName];
  953. if (!isFn(handler)) {
  954. throw new Error(" _vm.".concat(methodName, " is not a function"));
  955. }
  956. if (isOnce) {
  957. if (handler.once) {
  958. return;
  959. }
  960. handler.once = true;
  961. }
  962. ret.push(handler.apply(handlerCtx, processEventArgs(
  963. _this.$vm,
  964. event,
  965. eventArray[1],
  966. eventArray[2],
  967. isCustom,
  968. methodName)));
  969. }
  970. });
  971. }
  972. });
  973. if (
  974. eventType === 'input' &&
  975. ret.length === 1 &&
  976. typeof ret[0] !== 'undefined')
  977. {
  978. return ret[0];
  979. }
  980. }
  981. var hooks = [
  982. 'onShow',
  983. 'onHide',
  984. 'onError',
  985. 'onPageNotFound'];
  986. function parseBaseApp(vm, _ref3)
  987. {var mocks = _ref3.mocks,initRefs = _ref3.initRefs;
  988. if (vm.$options.store) {
  989. _vue.default.prototype.$store = vm.$options.store;
  990. }
  991. _vue.default.prototype.mpHost = "mp-weixin";
  992. _vue.default.mixin({
  993. beforeCreate: function beforeCreate() {
  994. if (!this.$options.mpType) {
  995. return;
  996. }
  997. this.mpType = this.$options.mpType;
  998. this.$mp = _defineProperty({
  999. data: {} },
  1000. this.mpType, this.$options.mpInstance);
  1001. this.$scope = this.$options.mpInstance;
  1002. delete this.$options.mpType;
  1003. delete this.$options.mpInstance;
  1004. if (this.mpType !== 'app') {
  1005. initRefs(this);
  1006. initMocks(this, mocks);
  1007. }
  1008. } });
  1009. var appOptions = {
  1010. onLaunch: function onLaunch(args) {
  1011. if (this.$vm) {// 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前
  1012. return;
  1013. }
  1014. {
  1015. if (!wx.canIUse('nextTick')) {// 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断
  1016. console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');
  1017. }
  1018. }
  1019. this.$vm = vm;
  1020. this.$vm.$mp = {
  1021. app: this };
  1022. this.$vm.$scope = this;
  1023. // vm 上也挂载 globalData
  1024. this.$vm.globalData = this.globalData;
  1025. this.$vm._isMounted = true;
  1026. this.$vm.__call_hook('mounted', args);
  1027. this.$vm.__call_hook('onLaunch', args);
  1028. } };
  1029. // 兼容旧版本 globalData
  1030. appOptions.globalData = vm.$options.globalData || {};
  1031. // 将 methods 中的方法挂在 getApp() 中
  1032. var methods = vm.$options.methods;
  1033. if (methods) {
  1034. Object.keys(methods).forEach(function (name) {
  1035. appOptions[name] = methods[name];
  1036. });
  1037. }
  1038. initHooks(appOptions, hooks);
  1039. return appOptions;
  1040. }
  1041. var mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];
  1042. function findVmByVueId(vm, vuePid) {
  1043. var $children = vm.$children;
  1044. // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)
  1045. for (var i = $children.length - 1; i >= 0; i--) {
  1046. var childVm = $children[i];
  1047. if (childVm.$scope._$vueId === vuePid) {
  1048. return childVm;
  1049. }
  1050. }
  1051. // 反向递归查找
  1052. var parentVm;
  1053. for (var _i = $children.length - 1; _i >= 0; _i--) {
  1054. parentVm = findVmByVueId($children[_i], vuePid);
  1055. if (parentVm) {
  1056. return parentVm;
  1057. }
  1058. }
  1059. }
  1060. function initBehavior(options) {
  1061. return Behavior(options);
  1062. }
  1063. function isPage() {
  1064. return !!this.route;
  1065. }
  1066. function initRelation(detail) {
  1067. this.triggerEvent('__l', detail);
  1068. }
  1069. function initRefs(vm) {
  1070. var mpInstance = vm.$scope;
  1071. Object.defineProperty(vm, '$refs', {
  1072. get: function get() {
  1073. var $refs = {};
  1074. var components = mpInstance.selectAllComponents('.vue-ref');
  1075. components.forEach(function (component) {
  1076. var ref = component.dataset.ref;
  1077. $refs[ref] = component.$vm || component;
  1078. });
  1079. var forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');
  1080. forComponents.forEach(function (component) {
  1081. var ref = component.dataset.ref;
  1082. if (!$refs[ref]) {
  1083. $refs[ref] = [];
  1084. }
  1085. $refs[ref].push(component.$vm || component);
  1086. });
  1087. return $refs;
  1088. } });
  1089. }
  1090. function handleLink(event) {var _ref4 =
  1091. event.detail || event.value,vuePid = _ref4.vuePid,vueOptions = _ref4.vueOptions; // detail 是微信,value 是百度(dipatch)
  1092. var parentVm;
  1093. if (vuePid) {
  1094. parentVm = findVmByVueId(this.$vm, vuePid);
  1095. }
  1096. if (!parentVm) {
  1097. parentVm = this.$vm;
  1098. }
  1099. vueOptions.parent = parentVm;
  1100. }
  1101. function parseApp(vm) {
  1102. return parseBaseApp(vm, {
  1103. mocks: mocks,
  1104. initRefs: initRefs });
  1105. }
  1106. function createApp(vm) {
  1107. App(parseApp(vm));
  1108. return vm;
  1109. }
  1110. function parseBaseComponent(vueComponentOptions)
  1111. {var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},isPage = _ref5.isPage,initRelation = _ref5.initRelation;var _initVueComponent =
  1112. initVueComponent(_vue.default, vueComponentOptions),_initVueComponent2 = _slicedToArray(_initVueComponent, 2),VueComponent = _initVueComponent2[0],vueOptions = _initVueComponent2[1];
  1113. var options = _objectSpread({
  1114. multipleSlots: true,
  1115. addGlobalClass: true },
  1116. vueOptions.options || {});
  1117. {
  1118. // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项
  1119. if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {
  1120. Object.assign(options, vueOptions['mp-weixin'].options);
  1121. }
  1122. }
  1123. var componentOptions = {
  1124. options: options,
  1125. data: initData(vueOptions, _vue.default.prototype),
  1126. behaviors: initBehaviors(vueOptions, initBehavior),
  1127. properties: initProperties(vueOptions.props, false, vueOptions.__file),
  1128. lifetimes: {
  1129. attached: function attached() {
  1130. var properties = this.properties;
  1131. var options = {
  1132. mpType: isPage.call(this) ? 'page' : 'component',
  1133. mpInstance: this,
  1134. propsData: properties };
  1135. initVueIds(properties.vueId, this);
  1136. // 处理父子关系
  1137. initRelation.call(this, {
  1138. vuePid: this._$vuePid,
  1139. vueOptions: options });
  1140. // 初始化 vue 实例
  1141. this.$vm = new VueComponent(options);
  1142. // 处理$slots,$scopedSlots(暂不支持动态变化$slots)
  1143. initSlots(this.$vm, properties.vueSlots);
  1144. // 触发首次 setData
  1145. this.$vm.$mount();
  1146. },
  1147. ready: function ready() {
  1148. // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发
  1149. // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800
  1150. if (this.$vm) {
  1151. this.$vm._isMounted = true;
  1152. this.$vm.__call_hook('mounted');
  1153. this.$vm.__call_hook('onReady');
  1154. }
  1155. },
  1156. detached: function detached() {
  1157. this.$vm && this.$vm.$destroy();
  1158. } },
  1159. pageLifetimes: {
  1160. show: function show(args) {
  1161. this.$vm && this.$vm.__call_hook('onPageShow', args);
  1162. },
  1163. hide: function hide() {
  1164. this.$vm && this.$vm.__call_hook('onPageHide');
  1165. },
  1166. resize: function resize(size) {
  1167. this.$vm && this.$vm.__call_hook('onPageResize', size);
  1168. } },
  1169. methods: {
  1170. __l: handleLink,
  1171. __e: handleEvent } };
  1172. // externalClasses
  1173. if (vueOptions.externalClasses) {
  1174. componentOptions.externalClasses = vueOptions.externalClasses;
  1175. }
  1176. if (Array.isArray(vueOptions.wxsCallMethods)) {
  1177. vueOptions.wxsCallMethods.forEach(function (callMethod) {
  1178. componentOptions.methods[callMethod] = function (args) {
  1179. return this.$vm[callMethod](args);
  1180. };
  1181. });
  1182. }
  1183. if (isPage) {
  1184. return componentOptions;
  1185. }
  1186. return [componentOptions, VueComponent];
  1187. }
  1188. function parseComponent(vueComponentOptions) {
  1189. return parseBaseComponent(vueComponentOptions, {
  1190. isPage: isPage,
  1191. initRelation: initRelation });
  1192. }
  1193. var hooks$1 = [
  1194. 'onShow',
  1195. 'onHide',
  1196. 'onUnload'];
  1197. hooks$1.push.apply(hooks$1, PAGE_EVENT_HOOKS);
  1198. function parseBasePage(vuePageOptions, _ref6)
  1199. {var isPage = _ref6.isPage,initRelation = _ref6.initRelation;
  1200. var pageOptions = parseComponent(vuePageOptions);
  1201. initHooks(pageOptions.methods, hooks$1, vuePageOptions);
  1202. pageOptions.methods.onLoad = function (args) {
  1203. this.$vm.$mp.query = args; // 兼容 mpvue
  1204. this.$vm.__call_hook('onLoad', args);
  1205. };
  1206. return pageOptions;
  1207. }
  1208. function parsePage(vuePageOptions) {
  1209. return parseBasePage(vuePageOptions, {
  1210. isPage: isPage,
  1211. initRelation: initRelation });
  1212. }
  1213. function createPage(vuePageOptions) {
  1214. {
  1215. return Component(parsePage(vuePageOptions));
  1216. }
  1217. }
  1218. function createComponent(vueOptions) {
  1219. {
  1220. return Component(parseComponent(vueOptions));
  1221. }
  1222. }
  1223. todos.forEach(function (todoApi) {
  1224. protocols[todoApi] = false;
  1225. });
  1226. canIUses.forEach(function (canIUseApi) {
  1227. var apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name :
  1228. canIUseApi;
  1229. if (!wx.canIUse(apiName)) {
  1230. protocols[canIUseApi] = false;
  1231. }
  1232. });
  1233. var uni = {};
  1234. if (typeof Proxy !== 'undefined' && "mp-weixin" !== 'app-plus') {
  1235. uni = new Proxy({}, {
  1236. get: function get(target, name) {
  1237. if (target[name]) {
  1238. return target[name];
  1239. }
  1240. if (baseApi[name]) {
  1241. return baseApi[name];
  1242. }
  1243. if (api[name]) {
  1244. return promisify(name, api[name]);
  1245. }
  1246. {
  1247. if (extraApi[name]) {
  1248. return promisify(name, extraApi[name]);
  1249. }
  1250. if (todoApis[name]) {
  1251. return promisify(name, todoApis[name]);
  1252. }
  1253. }
  1254. if (eventApi[name]) {
  1255. return eventApi[name];
  1256. }
  1257. if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {
  1258. return;
  1259. }
  1260. return promisify(name, wrapper(name, wx[name]));
  1261. },
  1262. set: function set(target, name, value) {
  1263. target[name] = value;
  1264. return true;
  1265. } });
  1266. } else {
  1267. Object.keys(baseApi).forEach(function (name) {
  1268. uni[name] = baseApi[name];
  1269. });
  1270. {
  1271. Object.keys(todoApis).forEach(function (name) {
  1272. uni[name] = promisify(name, todoApis[name]);
  1273. });
  1274. Object.keys(extraApi).forEach(function (name) {
  1275. uni[name] = promisify(name, todoApis[name]);
  1276. });
  1277. }
  1278. Object.keys(eventApi).forEach(function (name) {
  1279. uni[name] = eventApi[name];
  1280. });
  1281. Object.keys(api).forEach(function (name) {
  1282. uni[name] = promisify(name, api[name]);
  1283. });
  1284. Object.keys(wx).forEach(function (name) {
  1285. if (hasOwn(wx, name) || hasOwn(protocols, name)) {
  1286. uni[name] = promisify(name, wrapper(name, wx[name]));
  1287. }
  1288. });
  1289. }
  1290. wx.createApp = createApp;
  1291. wx.createPage = createPage;
  1292. wx.createComponent = createComponent;
  1293. var uni$1 = uni;var _default =
  1294. uni$1;exports.default = _default;
  1295. /***/ }),
  1296. /***/ 10:
  1297. /*!**********************************************************************************************************!*\
  1298. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
  1299. \**********************************************************************************************************/
  1300. /*! exports provided: default */
  1301. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1302. "use strict";
  1303. __webpack_require__.r(__webpack_exports__);
  1304. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
  1305. /* globals __VUE_SSR_CONTEXT__ */
  1306. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  1307. // This module is a runtime utility for cleaner component module output and will
  1308. // be included in the final webpack user bundle.
  1309. function normalizeComponent (
  1310. scriptExports,
  1311. render,
  1312. staticRenderFns,
  1313. functionalTemplate,
  1314. injectStyles,
  1315. scopeId,
  1316. moduleIdentifier, /* server only */
  1317. shadowMode, /* vue-cli only */
  1318. components, // fixed by xxxxxx auto components
  1319. renderjs // fixed by xxxxxx renderjs
  1320. ) {
  1321. // Vue.extend constructor export interop
  1322. var options = typeof scriptExports === 'function'
  1323. ? scriptExports.options
  1324. : scriptExports
  1325. // fixed by xxxxxx auto components
  1326. if (components) {
  1327. if (!options.components) {
  1328. options.components = {}
  1329. }
  1330. var hasOwn = Object.prototype.hasOwnProperty
  1331. for (var name in components) {
  1332. if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
  1333. options.components[name] = components[name]
  1334. }
  1335. }
  1336. }
  1337. // fixed by xxxxxx renderjs
  1338. if (renderjs) {
  1339. (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
  1340. this[renderjs.__module] = this
  1341. });
  1342. (options.mixins || (options.mixins = [])).push(renderjs)
  1343. }
  1344. // render functions
  1345. if (render) {
  1346. options.render = render
  1347. options.staticRenderFns = staticRenderFns
  1348. options._compiled = true
  1349. }
  1350. // functional template
  1351. if (functionalTemplate) {
  1352. options.functional = true
  1353. }
  1354. // scopedId
  1355. if (scopeId) {
  1356. options._scopeId = 'data-v-' + scopeId
  1357. }
  1358. var hook
  1359. if (moduleIdentifier) { // server build
  1360. hook = function (context) {
  1361. // 2.3 injection
  1362. context =
  1363. context || // cached call
  1364. (this.$vnode && this.$vnode.ssrContext) || // stateful
  1365. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  1366. // 2.2 with runInNewContext: true
  1367. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  1368. context = __VUE_SSR_CONTEXT__
  1369. }
  1370. // inject component styles
  1371. if (injectStyles) {
  1372. injectStyles.call(this, context)
  1373. }
  1374. // register component module identifier for async chunk inferrence
  1375. if (context && context._registeredComponents) {
  1376. context._registeredComponents.add(moduleIdentifier)
  1377. }
  1378. }
  1379. // used by ssr in case component is cached and beforeCreate
  1380. // never gets called
  1381. options._ssrRegister = hook
  1382. } else if (injectStyles) {
  1383. hook = shadowMode
  1384. ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
  1385. : injectStyles
  1386. }
  1387. if (hook) {
  1388. if (options.functional) {
  1389. // for template-only hot-reload because in that case the render fn doesn't
  1390. // go through the normalizer
  1391. options._injectStyles = hook
  1392. // register for functioal component in vue file
  1393. var originalRender = options.render
  1394. options.render = function renderWithStyleInjection (h, context) {
  1395. hook.call(context)
  1396. return originalRender(h, context)
  1397. }
  1398. } else {
  1399. // inject component registration as beforeCreate hook
  1400. var existing = options.beforeCreate
  1401. options.beforeCreate = existing
  1402. ? [].concat(existing, hook)
  1403. : [hook]
  1404. }
  1405. }
  1406. return {
  1407. exports: scriptExports,
  1408. options: options
  1409. }
  1410. }
  1411. /***/ }),
  1412. /***/ 11:
  1413. /*!*****************************************!*\
  1414. !*** D:/全部项目/刺兔/common/css/common.scss ***!
  1415. \*****************************************/
  1416. /*! no static exports found */
  1417. /***/ (function(module, exports, __webpack_require__) {
  1418. // extracted by mini-css-extract-plugin
  1419. if(false) { var cssReload; }
  1420. /***/ }),
  1421. /***/ 12:
  1422. /*!*********************************!*\
  1423. !*** D:/全部项目/刺兔/store/index.js ***!
  1424. \*********************************/
  1425. /*! no static exports found */
  1426. /***/ (function(module, exports, __webpack_require__) {
  1427. "use strict";
  1428. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
  1429. var _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 13));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
  1430. _vue.default.use(_vuex.default);
  1431. var store = new _vuex.default.Store({
  1432. state: {
  1433. tabbarIndex: 0,
  1434. searchDate: '',
  1435. storeId: '' },
  1436. mutations: {},
  1437. actions: {} });var _default =
  1438. store;exports.default = _default;
  1439. /***/ }),
  1440. /***/ 13:
  1441. /*!********************************************!*\
  1442. !*** ./node_modules/vuex/dist/vuex.esm.js ***!
  1443. \********************************************/
  1444. /*! exports provided: Store, install, mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers, default */
  1445. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1446. "use strict";
  1447. __webpack_require__.r(__webpack_exports__);
  1448. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return Store; });
  1449. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; });
  1450. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapState", function() { return mapState; });
  1451. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapMutations", function() { return mapMutations; });
  1452. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapGetters", function() { return mapGetters; });
  1453. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapActions", function() { return mapActions; });
  1454. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createNamespacedHelpers", function() { return createNamespacedHelpers; });
  1455. /**
  1456. * vuex v3.0.1
  1457. * (c) 2017 Evan You
  1458. * @license MIT
  1459. */
  1460. var applyMixin = function (Vue) {
  1461. var version = Number(Vue.version.split('.')[0]);
  1462. if (version >= 2) {
  1463. Vue.mixin({ beforeCreate: vuexInit });
  1464. } else {
  1465. // override init and inject vuex init procedure
  1466. // for 1.x backwards compatibility.
  1467. var _init = Vue.prototype._init;
  1468. Vue.prototype._init = function (options) {
  1469. if ( options === void 0 ) options = {};
  1470. options.init = options.init
  1471. ? [vuexInit].concat(options.init)
  1472. : vuexInit;
  1473. _init.call(this, options);
  1474. };
  1475. }
  1476. /**
  1477. * Vuex init hook, injected into each instances init hooks list.
  1478. */
  1479. function vuexInit () {
  1480. var options = this.$options;
  1481. // store injection
  1482. if (options.store) {
  1483. this.$store = typeof options.store === 'function'
  1484. ? options.store()
  1485. : options.store;
  1486. } else if (options.parent && options.parent.$store) {
  1487. this.$store = options.parent.$store;
  1488. }
  1489. }
  1490. };
  1491. var devtoolHook =
  1492. typeof window !== 'undefined' &&
  1493. window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
  1494. function devtoolPlugin (store) {
  1495. if (!devtoolHook) { return }
  1496. store._devtoolHook = devtoolHook;
  1497. devtoolHook.emit('vuex:init', store);
  1498. devtoolHook.on('vuex:travel-to-state', function (targetState) {
  1499. store.replaceState(targetState);
  1500. });
  1501. store.subscribe(function (mutation, state) {
  1502. devtoolHook.emit('vuex:mutation', mutation, state);
  1503. });
  1504. }
  1505. /**
  1506. * Get the first item that pass the test
  1507. * by second argument function
  1508. *
  1509. * @param {Array} list
  1510. * @param {Function} f
  1511. * @return {*}
  1512. */
  1513. /**
  1514. * Deep copy the given object considering circular structure.
  1515. * This function caches all nested objects and its copies.
  1516. * If it detects circular structure, use cached copy to avoid infinite loop.
  1517. *
  1518. * @param {*} obj
  1519. * @param {Array<Object>} cache
  1520. * @return {*}
  1521. */
  1522. /**
  1523. * forEach for object
  1524. */
  1525. function forEachValue (obj, fn) {
  1526. Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
  1527. }
  1528. function isObject (obj) {
  1529. return obj !== null && typeof obj === 'object'
  1530. }
  1531. function isPromise (val) {
  1532. return val && typeof val.then === 'function'
  1533. }
  1534. function assert (condition, msg) {
  1535. if (!condition) { throw new Error(("[vuex] " + msg)) }
  1536. }
  1537. var Module = function Module (rawModule, runtime) {
  1538. this.runtime = runtime;
  1539. this._children = Object.create(null);
  1540. this._rawModule = rawModule;
  1541. var rawState = rawModule.state;
  1542. this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
  1543. };
  1544. var prototypeAccessors$1 = { namespaced: { configurable: true } };
  1545. prototypeAccessors$1.namespaced.get = function () {
  1546. return !!this._rawModule.namespaced
  1547. };
  1548. Module.prototype.addChild = function addChild (key, module) {
  1549. this._children[key] = module;
  1550. };
  1551. Module.prototype.removeChild = function removeChild (key) {
  1552. delete this._children[key];
  1553. };
  1554. Module.prototype.getChild = function getChild (key) {
  1555. return this._children[key]
  1556. };
  1557. Module.prototype.update = function update (rawModule) {
  1558. this._rawModule.namespaced = rawModule.namespaced;
  1559. if (rawModule.actions) {
  1560. this._rawModule.actions = rawModule.actions;
  1561. }
  1562. if (rawModule.mutations) {
  1563. this._rawModule.mutations = rawModule.mutations;
  1564. }
  1565. if (rawModule.getters) {
  1566. this._rawModule.getters = rawModule.getters;
  1567. }
  1568. };
  1569. Module.prototype.forEachChild = function forEachChild (fn) {
  1570. forEachValue(this._children, fn);
  1571. };
  1572. Module.prototype.forEachGetter = function forEachGetter (fn) {
  1573. if (this._rawModule.getters) {
  1574. forEachValue(this._rawModule.getters, fn);
  1575. }
  1576. };
  1577. Module.prototype.forEachAction = function forEachAction (fn) {
  1578. if (this._rawModule.actions) {
  1579. forEachValue(this._rawModule.actions, fn);
  1580. }
  1581. };
  1582. Module.prototype.forEachMutation = function forEachMutation (fn) {
  1583. if (this._rawModule.mutations) {
  1584. forEachValue(this._rawModule.mutations, fn);
  1585. }
  1586. };
  1587. Object.defineProperties( Module.prototype, prototypeAccessors$1 );
  1588. var ModuleCollection = function ModuleCollection (rawRootModule) {
  1589. // register root module (Vuex.Store options)
  1590. this.register([], rawRootModule, false);
  1591. };
  1592. ModuleCollection.prototype.get = function get (path) {
  1593. return path.reduce(function (module, key) {
  1594. return module.getChild(key)
  1595. }, this.root)
  1596. };
  1597. ModuleCollection.prototype.getNamespace = function getNamespace (path) {
  1598. var module = this.root;
  1599. return path.reduce(function (namespace, key) {
  1600. module = module.getChild(key);
  1601. return namespace + (module.namespaced ? key + '/' : '')
  1602. }, '')
  1603. };
  1604. ModuleCollection.prototype.update = function update$1 (rawRootModule) {
  1605. update([], this.root, rawRootModule);
  1606. };
  1607. ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
  1608. var this$1 = this;
  1609. if ( runtime === void 0 ) runtime = true;
  1610. if (true) {
  1611. assertRawModule(path, rawModule);
  1612. }
  1613. var newModule = new Module(rawModule, runtime);
  1614. if (path.length === 0) {
  1615. this.root = newModule;
  1616. } else {
  1617. var parent = this.get(path.slice(0, -1));
  1618. parent.addChild(path[path.length - 1], newModule);
  1619. }
  1620. // register nested modules
  1621. if (rawModule.modules) {
  1622. forEachValue(rawModule.modules, function (rawChildModule, key) {
  1623. this$1.register(path.concat(key), rawChildModule, runtime);
  1624. });
  1625. }
  1626. };
  1627. ModuleCollection.prototype.unregister = function unregister (path) {
  1628. var parent = this.get(path.slice(0, -1));
  1629. var key = path[path.length - 1];
  1630. if (!parent.getChild(key).runtime) { return }
  1631. parent.removeChild(key);
  1632. };
  1633. function update (path, targetModule, newModule) {
  1634. if (true) {
  1635. assertRawModule(path, newModule);
  1636. }
  1637. // update target module
  1638. targetModule.update(newModule);
  1639. // update nested modules
  1640. if (newModule.modules) {
  1641. for (var key in newModule.modules) {
  1642. if (!targetModule.getChild(key)) {
  1643. if (true) {
  1644. console.warn(
  1645. "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
  1646. 'manual reload is needed'
  1647. );
  1648. }
  1649. return
  1650. }
  1651. update(
  1652. path.concat(key),
  1653. targetModule.getChild(key),
  1654. newModule.modules[key]
  1655. );
  1656. }
  1657. }
  1658. }
  1659. var functionAssert = {
  1660. assert: function (value) { return typeof value === 'function'; },
  1661. expected: 'function'
  1662. };
  1663. var objectAssert = {
  1664. assert: function (value) { return typeof value === 'function' ||
  1665. (typeof value === 'object' && typeof value.handler === 'function'); },
  1666. expected: 'function or object with "handler" function'
  1667. };
  1668. var assertTypes = {
  1669. getters: functionAssert,
  1670. mutations: functionAssert,
  1671. actions: objectAssert
  1672. };
  1673. function assertRawModule (path, rawModule) {
  1674. Object.keys(assertTypes).forEach(function (key) {
  1675. if (!rawModule[key]) { return }
  1676. var assertOptions = assertTypes[key];
  1677. forEachValue(rawModule[key], function (value, type) {
  1678. assert(
  1679. assertOptions.assert(value),
  1680. makeAssertionMessage(path, key, type, value, assertOptions.expected)
  1681. );
  1682. });
  1683. });
  1684. }
  1685. function makeAssertionMessage (path, key, type, value, expected) {
  1686. var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
  1687. if (path.length > 0) {
  1688. buf += " in module \"" + (path.join('.')) + "\"";
  1689. }
  1690. buf += " is " + (JSON.stringify(value)) + ".";
  1691. return buf
  1692. }
  1693. var Vue; // bind on install
  1694. var Store = function Store (options) {
  1695. var this$1 = this;
  1696. if ( options === void 0 ) options = {};
  1697. // Auto install if it is not done yet and `window` has `Vue`.
  1698. // To allow users to avoid auto-installation in some cases,
  1699. // this code should be placed here. See #731
  1700. if (!Vue && typeof window !== 'undefined' && window.Vue) {
  1701. install(window.Vue);
  1702. }
  1703. if (true) {
  1704. assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
  1705. assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
  1706. assert(this instanceof Store, "Store must be called with the new operator.");
  1707. }
  1708. var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
  1709. var strict = options.strict; if ( strict === void 0 ) strict = false;
  1710. var state = options.state; if ( state === void 0 ) state = {};
  1711. if (typeof state === 'function') {
  1712. state = state() || {};
  1713. }
  1714. // store internal state
  1715. this._committing = false;
  1716. this._actions = Object.create(null);
  1717. this._actionSubscribers = [];
  1718. this._mutations = Object.create(null);
  1719. this._wrappedGetters = Object.create(null);
  1720. this._modules = new ModuleCollection(options);
  1721. this._modulesNamespaceMap = Object.create(null);
  1722. this._subscribers = [];
  1723. this._watcherVM = new Vue();
  1724. // bind commit and dispatch to self
  1725. var store = this;
  1726. var ref = this;
  1727. var dispatch = ref.dispatch;
  1728. var commit = ref.commit;
  1729. this.dispatch = function boundDispatch (type, payload) {
  1730. return dispatch.call(store, type, payload)
  1731. };
  1732. this.commit = function boundCommit (type, payload, options) {
  1733. return commit.call(store, type, payload, options)
  1734. };
  1735. // strict mode
  1736. this.strict = strict;
  1737. // init root module.
  1738. // this also recursively registers all sub-modules
  1739. // and collects all module getters inside this._wrappedGetters
  1740. installModule(this, state, [], this._modules.root);
  1741. // initialize the store vm, which is responsible for the reactivity
  1742. // (also registers _wrappedGetters as computed properties)
  1743. resetStoreVM(this, state);
  1744. // apply plugins
  1745. plugins.forEach(function (plugin) { return plugin(this$1); });
  1746. if (Vue.config.devtools) {
  1747. devtoolPlugin(this);
  1748. }
  1749. };
  1750. var prototypeAccessors = { state: { configurable: true } };
  1751. prototypeAccessors.state.get = function () {
  1752. return this._vm._data.$$state
  1753. };
  1754. prototypeAccessors.state.set = function (v) {
  1755. if (true) {
  1756. assert(false, "Use store.replaceState() to explicit replace store state.");
  1757. }
  1758. };
  1759. Store.prototype.commit = function commit (_type, _payload, _options) {
  1760. var this$1 = this;
  1761. // check object-style commit
  1762. var ref = unifyObjectStyle(_type, _payload, _options);
  1763. var type = ref.type;
  1764. var payload = ref.payload;
  1765. var options = ref.options;
  1766. var mutation = { type: type, payload: payload };
  1767. var entry = this._mutations[type];
  1768. if (!entry) {
  1769. if (true) {
  1770. console.error(("[vuex] unknown mutation type: " + type));
  1771. }
  1772. return
  1773. }
  1774. this._withCommit(function () {
  1775. entry.forEach(function commitIterator (handler) {
  1776. handler(payload);
  1777. });
  1778. });
  1779. this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });
  1780. if (
  1781. true &&
  1782. options && options.silent
  1783. ) {
  1784. console.warn(
  1785. "[vuex] mutation type: " + type + ". Silent option has been removed. " +
  1786. 'Use the filter functionality in the vue-devtools'
  1787. );
  1788. }
  1789. };
  1790. Store.prototype.dispatch = function dispatch (_type, _payload) {
  1791. var this$1 = this;
  1792. // check object-style dispatch
  1793. var ref = unifyObjectStyle(_type, _payload);
  1794. var type = ref.type;
  1795. var payload = ref.payload;
  1796. var action = { type: type, payload: payload };
  1797. var entry = this._actions[type];
  1798. if (!entry) {
  1799. if (true) {
  1800. console.error(("[vuex] unknown action type: " + type));
  1801. }
  1802. return
  1803. }
  1804. this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });
  1805. return entry.length > 1
  1806. ? Promise.all(entry.map(function (handler) { return handler(payload); }))
  1807. : entry[0](payload)
  1808. };
  1809. Store.prototype.subscribe = function subscribe (fn) {
  1810. return genericSubscribe(fn, this._subscribers)
  1811. };
  1812. Store.prototype.subscribeAction = function subscribeAction (fn) {
  1813. return genericSubscribe(fn, this._actionSubscribers)
  1814. };
  1815. Store.prototype.watch = function watch (getter, cb, options) {
  1816. var this$1 = this;
  1817. if (true) {
  1818. assert(typeof getter === 'function', "store.watch only accepts a function.");
  1819. }
  1820. return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)
  1821. };
  1822. Store.prototype.replaceState = function replaceState (state) {
  1823. var this$1 = this;
  1824. this._withCommit(function () {
  1825. this$1._vm._data.$$state = state;
  1826. });
  1827. };
  1828. Store.prototype.registerModule = function registerModule (path, rawModule, options) {
  1829. if ( options === void 0 ) options = {};
  1830. if (typeof path === 'string') { path = [path]; }
  1831. if (true) {
  1832. assert(Array.isArray(path), "module path must be a string or an Array.");
  1833. assert(path.length > 0, 'cannot register the root module by using registerModule.');
  1834. }
  1835. this._modules.register(path, rawModule);
  1836. installModule(this, this.state, path, this._modules.get(path), options.preserveState);
  1837. // reset store to update getters...
  1838. resetStoreVM(this, this.state);
  1839. };
  1840. Store.prototype.unregisterModule = function unregisterModule (path) {
  1841. var this$1 = this;
  1842. if (typeof path === 'string') { path = [path]; }
  1843. if (true) {
  1844. assert(Array.isArray(path), "module path must be a string or an Array.");
  1845. }
  1846. this._modules.unregister(path);
  1847. this._withCommit(function () {
  1848. var parentState = getNestedState(this$1.state, path.slice(0, -1));
  1849. Vue.delete(parentState, path[path.length - 1]);
  1850. });
  1851. resetStore(this);
  1852. };
  1853. Store.prototype.hotUpdate = function hotUpdate (newOptions) {
  1854. this._modules.update(newOptions);
  1855. resetStore(this, true);
  1856. };
  1857. Store.prototype._withCommit = function _withCommit (fn) {
  1858. var committing = this._committing;
  1859. this._committing = true;
  1860. fn();
  1861. this._committing = committing;
  1862. };
  1863. Object.defineProperties( Store.prototype, prototypeAccessors );
  1864. function genericSubscribe (fn, subs) {
  1865. if (subs.indexOf(fn) < 0) {
  1866. subs.push(fn);
  1867. }
  1868. return function () {
  1869. var i = subs.indexOf(fn);
  1870. if (i > -1) {
  1871. subs.splice(i, 1);
  1872. }
  1873. }
  1874. }
  1875. function resetStore (store, hot) {
  1876. store._actions = Object.create(null);
  1877. store._mutations = Object.create(null);
  1878. store._wrappedGetters = Object.create(null);
  1879. store._modulesNamespaceMap = Object.create(null);
  1880. var state = store.state;
  1881. // init all modules
  1882. installModule(store, state, [], store._modules.root, true);
  1883. // reset vm
  1884. resetStoreVM(store, state, hot);
  1885. }
  1886. function resetStoreVM (store, state, hot) {
  1887. var oldVm = store._vm;
  1888. // bind store public getters
  1889. store.getters = {};
  1890. var wrappedGetters = store._wrappedGetters;
  1891. var computed = {};
  1892. forEachValue(wrappedGetters, function (fn, key) {
  1893. // use computed to leverage its lazy-caching mechanism
  1894. computed[key] = function () { return fn(store); };
  1895. Object.defineProperty(store.getters, key, {
  1896. get: function () { return store._vm[key]; },
  1897. enumerable: true // for local getters
  1898. });
  1899. });
  1900. // use a Vue instance to store the state tree
  1901. // suppress warnings just in case the user has added
  1902. // some funky global mixins
  1903. var silent = Vue.config.silent;
  1904. Vue.config.silent = true;
  1905. store._vm = new Vue({
  1906. data: {
  1907. $$state: state
  1908. },
  1909. computed: computed
  1910. });
  1911. Vue.config.silent = silent;
  1912. // enable strict mode for new vm
  1913. if (store.strict) {
  1914. enableStrictMode(store);
  1915. }
  1916. if (oldVm) {
  1917. if (hot) {
  1918. // dispatch changes in all subscribed watchers
  1919. // to force getter re-evaluation for hot reloading.
  1920. store._withCommit(function () {
  1921. oldVm._data.$$state = null;
  1922. });
  1923. }
  1924. Vue.nextTick(function () { return oldVm.$destroy(); });
  1925. }
  1926. }
  1927. function installModule (store, rootState, path, module, hot) {
  1928. var isRoot = !path.length;
  1929. var namespace = store._modules.getNamespace(path);
  1930. // register in namespace map
  1931. if (module.namespaced) {
  1932. store._modulesNamespaceMap[namespace] = module;
  1933. }
  1934. // set state
  1935. if (!isRoot && !hot) {
  1936. var parentState = getNestedState(rootState, path.slice(0, -1));
  1937. var moduleName = path[path.length - 1];
  1938. store._withCommit(function () {
  1939. Vue.set(parentState, moduleName, module.state);
  1940. });
  1941. }
  1942. var local = module.context = makeLocalContext(store, namespace, path);
  1943. module.forEachMutation(function (mutation, key) {
  1944. var namespacedType = namespace + key;
  1945. registerMutation(store, namespacedType, mutation, local);
  1946. });
  1947. module.forEachAction(function (action, key) {
  1948. var type = action.root ? key : namespace + key;
  1949. var handler = action.handler || action;
  1950. registerAction(store, type, handler, local);
  1951. });
  1952. module.forEachGetter(function (getter, key) {
  1953. var namespacedType = namespace + key;
  1954. registerGetter(store, namespacedType, getter, local);
  1955. });
  1956. module.forEachChild(function (child, key) {
  1957. installModule(store, rootState, path.concat(key), child, hot);
  1958. });
  1959. }
  1960. /**
  1961. * make localized dispatch, commit, getters and state
  1962. * if there is no namespace, just use root ones
  1963. */
  1964. function makeLocalContext (store, namespace, path) {
  1965. var noNamespace = namespace === '';
  1966. var local = {
  1967. dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
  1968. var args = unifyObjectStyle(_type, _payload, _options);
  1969. var payload = args.payload;
  1970. var options = args.options;
  1971. var type = args.type;
  1972. if (!options || !options.root) {
  1973. type = namespace + type;
  1974. if ( true && !store._actions[type]) {
  1975. console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
  1976. return
  1977. }
  1978. }
  1979. return store.dispatch(type, payload)
  1980. },
  1981. commit: noNamespace ? store.commit : function (_type, _payload, _options) {
  1982. var args = unifyObjectStyle(_type, _payload, _options);
  1983. var payload = args.payload;
  1984. var options = args.options;
  1985. var type = args.type;
  1986. if (!options || !options.root) {
  1987. type = namespace + type;
  1988. if ( true && !store._mutations[type]) {
  1989. console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
  1990. return
  1991. }
  1992. }
  1993. store.commit(type, payload, options);
  1994. }
  1995. };
  1996. // getters and state object must be gotten lazily
  1997. // because they will be changed by vm update
  1998. Object.defineProperties(local, {
  1999. getters: {
  2000. get: noNamespace
  2001. ? function () { return store.getters; }
  2002. : function () { return makeLocalGetters(store, namespace); }
  2003. },
  2004. state: {
  2005. get: function () { return getNestedState(store.state, path); }
  2006. }
  2007. });
  2008. return local
  2009. }
  2010. function makeLocalGetters (store, namespace) {
  2011. var gettersProxy = {};
  2012. var splitPos = namespace.length;
  2013. Object.keys(store.getters).forEach(function (type) {
  2014. // skip if the target getter is not match this namespace
  2015. if (type.slice(0, splitPos) !== namespace) { return }
  2016. // extract local getter type
  2017. var localType = type.slice(splitPos);
  2018. // Add a port to the getters proxy.
  2019. // Define as getter property because
  2020. // we do not want to evaluate the getters in this time.
  2021. Object.defineProperty(gettersProxy, localType, {
  2022. get: function () { return store.getters[type]; },
  2023. enumerable: true
  2024. });
  2025. });
  2026. return gettersProxy
  2027. }
  2028. function registerMutation (store, type, handler, local) {
  2029. var entry = store._mutations[type] || (store._mutations[type] = []);
  2030. entry.push(function wrappedMutationHandler (payload) {
  2031. handler.call(store, local.state, payload);
  2032. });
  2033. }
  2034. function registerAction (store, type, handler, local) {
  2035. var entry = store._actions[type] || (store._actions[type] = []);
  2036. entry.push(function wrappedActionHandler (payload, cb) {
  2037. var res = handler.call(store, {
  2038. dispatch: local.dispatch,
  2039. commit: local.commit,
  2040. getters: local.getters,
  2041. state: local.state,
  2042. rootGetters: store.getters,
  2043. rootState: store.state
  2044. }, payload, cb);
  2045. if (!isPromise(res)) {
  2046. res = Promise.resolve(res);
  2047. }
  2048. if (store._devtoolHook) {
  2049. return res.catch(function (err) {
  2050. store._devtoolHook.emit('vuex:error', err);
  2051. throw err
  2052. })
  2053. } else {
  2054. return res
  2055. }
  2056. });
  2057. }
  2058. function registerGetter (store, type, rawGetter, local) {
  2059. if (store._wrappedGetters[type]) {
  2060. if (true) {
  2061. console.error(("[vuex] duplicate getter key: " + type));
  2062. }
  2063. return
  2064. }
  2065. store._wrappedGetters[type] = function wrappedGetter (store) {
  2066. return rawGetter(
  2067. local.state, // local state
  2068. local.getters, // local getters
  2069. store.state, // root state
  2070. store.getters // root getters
  2071. )
  2072. };
  2073. }
  2074. function enableStrictMode (store) {
  2075. store._vm.$watch(function () { return this._data.$$state }, function () {
  2076. if (true) {
  2077. assert(store._committing, "Do not mutate vuex store state outside mutation handlers.");
  2078. }
  2079. }, { deep: true, sync: true });
  2080. }
  2081. function getNestedState (state, path) {
  2082. return path.length
  2083. ? path.reduce(function (state, key) { return state[key]; }, state)
  2084. : state
  2085. }
  2086. function unifyObjectStyle (type, payload, options) {
  2087. if (isObject(type) && type.type) {
  2088. options = payload;
  2089. payload = type;
  2090. type = type.type;
  2091. }
  2092. if (true) {
  2093. assert(typeof type === 'string', ("Expects string as the type, but found " + (typeof type) + "."));
  2094. }
  2095. return { type: type, payload: payload, options: options }
  2096. }
  2097. function install (_Vue) {
  2098. if (Vue && _Vue === Vue) {
  2099. if (true) {
  2100. console.error(
  2101. '[vuex] already installed. Vue.use(Vuex) should be called only once.'
  2102. );
  2103. }
  2104. return
  2105. }
  2106. Vue = _Vue;
  2107. applyMixin(Vue);
  2108. }
  2109. var mapState = normalizeNamespace(function (namespace, states) {
  2110. var res = {};
  2111. normalizeMap(states).forEach(function (ref) {
  2112. var key = ref.key;
  2113. var val = ref.val;
  2114. res[key] = function mappedState () {
  2115. var state = this.$store.state;
  2116. var getters = this.$store.getters;
  2117. if (namespace) {
  2118. var module = getModuleByNamespace(this.$store, 'mapState', namespace);
  2119. if (!module) {
  2120. return
  2121. }
  2122. state = module.context.state;
  2123. getters = module.context.getters;
  2124. }
  2125. return typeof val === 'function'
  2126. ? val.call(this, state, getters)
  2127. : state[val]
  2128. };
  2129. // mark vuex getter for devtools
  2130. res[key].vuex = true;
  2131. });
  2132. return res
  2133. });
  2134. var mapMutations = normalizeNamespace(function (namespace, mutations) {
  2135. var res = {};
  2136. normalizeMap(mutations).forEach(function (ref) {
  2137. var key = ref.key;
  2138. var val = ref.val;
  2139. res[key] = function mappedMutation () {
  2140. var args = [], len = arguments.length;
  2141. while ( len-- ) args[ len ] = arguments[ len ];
  2142. var commit = this.$store.commit;
  2143. if (namespace) {
  2144. var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
  2145. if (!module) {
  2146. return
  2147. }
  2148. commit = module.context.commit;
  2149. }
  2150. return typeof val === 'function'
  2151. ? val.apply(this, [commit].concat(args))
  2152. : commit.apply(this.$store, [val].concat(args))
  2153. };
  2154. });
  2155. return res
  2156. });
  2157. var mapGetters = normalizeNamespace(function (namespace, getters) {
  2158. var res = {};
  2159. normalizeMap(getters).forEach(function (ref) {
  2160. var key = ref.key;
  2161. var val = ref.val;
  2162. val = namespace + val;
  2163. res[key] = function mappedGetter () {
  2164. if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
  2165. return
  2166. }
  2167. if ( true && !(val in this.$store.getters)) {
  2168. console.error(("[vuex] unknown getter: " + val));
  2169. return
  2170. }
  2171. return this.$store.getters[val]
  2172. };
  2173. // mark vuex getter for devtools
  2174. res[key].vuex = true;
  2175. });
  2176. return res
  2177. });
  2178. var mapActions = normalizeNamespace(function (namespace, actions) {
  2179. var res = {};
  2180. normalizeMap(actions).forEach(function (ref) {
  2181. var key = ref.key;
  2182. var val = ref.val;
  2183. res[key] = function mappedAction () {
  2184. var args = [], len = arguments.length;
  2185. while ( len-- ) args[ len ] = arguments[ len ];
  2186. var dispatch = this.$store.dispatch;
  2187. if (namespace) {
  2188. var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
  2189. if (!module) {
  2190. return
  2191. }
  2192. dispatch = module.context.dispatch;
  2193. }
  2194. return typeof val === 'function'
  2195. ? val.apply(this, [dispatch].concat(args))
  2196. : dispatch.apply(this.$store, [val].concat(args))
  2197. };
  2198. });
  2199. return res
  2200. });
  2201. var createNamespacedHelpers = function (namespace) { return ({
  2202. mapState: mapState.bind(null, namespace),
  2203. mapGetters: mapGetters.bind(null, namespace),
  2204. mapMutations: mapMutations.bind(null, namespace),
  2205. mapActions: mapActions.bind(null, namespace)
  2206. }); };
  2207. function normalizeMap (map) {
  2208. return Array.isArray(map)
  2209. ? map.map(function (key) { return ({ key: key, val: key }); })
  2210. : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
  2211. }
  2212. function normalizeNamespace (fn) {
  2213. return function (namespace, map) {
  2214. if (typeof namespace !== 'string') {
  2215. map = namespace;
  2216. namespace = '';
  2217. } else if (namespace.charAt(namespace.length - 1) !== '/') {
  2218. namespace += '/';
  2219. }
  2220. return fn(namespace, map)
  2221. }
  2222. }
  2223. function getModuleByNamespace (store, helper, namespace) {
  2224. var module = store._modulesNamespaceMap[namespace];
  2225. if ( true && !module) {
  2226. console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
  2227. }
  2228. return module
  2229. }
  2230. var index_esm = {
  2231. Store: Store,
  2232. install: install,
  2233. version: '3.0.1',
  2234. mapState: mapState,
  2235. mapMutations: mapMutations,
  2236. mapGetters: mapGetters,
  2237. mapActions: mapActions,
  2238. createNamespacedHelpers: createNamespacedHelpers
  2239. };
  2240. /* harmony default export */ __webpack_exports__["default"] = (index_esm);
  2241. /***/ }),
  2242. /***/ 14:
  2243. /*!********************************************!*\
  2244. !*** D:/全部项目/刺兔/common/js/timeinterval.js ***!
  2245. \********************************************/
  2246. /*! no static exports found */
  2247. /***/ (function(module, exports, __webpack_require__) {
  2248. "use strict";
  2249. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var monthday = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  2250. var weekarea = new Array(7);
  2251. var nowdate = new Date();
  2252. var weekName = ['日', '六', '五', '四', '三', '二', '一'];
  2253. var timeinterval = {
  2254. //闰年判断
  2255. getRunnian: function getRunnian(yy) {
  2256. if (yy % 4 == 0 && yy % 100 !== 0 || yy % 400 == 0) {
  2257. monthday[1] = 29;
  2258. } else {
  2259. monthday[1] = 28;
  2260. }
  2261. },
  2262. /*
  2263. 几种情况:
  2264. 1.当月第一天是星期一
  2265. 2.当月最后一天是星期日
  2266. 3.同时满足 1,2 必是平年28天 4行
  2267. */
  2268. //获取月份区间
  2269. getMonthArea: function getMonthArea() {var yy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : nowdate.getFullYear();var mm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : nowdate.getMonth() + 1;var dd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : nowdate.getDate();
  2270. this.getRunnian(yy);
  2271. mm--;
  2272. var showday = monthday[mm];
  2273. var d1 = new Date(yy, mm, 1);
  2274. var firstday = d1.getDay();
  2275. var d2 = new Date(yy, mm, monthday[mm]);
  2276. var lastday = d2.getDay();
  2277. if (lastday == 0)
  2278. lastday = 7;
  2279. if (firstday == 0) {
  2280. firstday = 7;
  2281. }
  2282. if (firstday != 1) {
  2283. showday += firstday - 1;
  2284. }
  2285. if (lastday != 7) {
  2286. showday += 7 - lastday;
  2287. }
  2288. var hangshu = showday / 7;
  2289. var montharea = new Array(7 * hangshu);
  2290. for (var i = 0; i < 7 * hangshu; i++) {
  2291. var sm = mm,sd = dd,sy = yy;
  2292. //上个月尾部几天
  2293. if (firstday - 1 > i) {
  2294. sm--;
  2295. if (sm < 0) {
  2296. sm = 11;
  2297. sy--;
  2298. }
  2299. sd = monthday[sm] - (firstday - 2 - i);
  2300. }
  2301. if (i >= firstday - 1 && i < monthday[sm] + firstday - 1) {
  2302. sd = i - (firstday - 2);
  2303. }
  2304. if (i >= monthday[sm] + firstday - 1) {
  2305. sd = i - (monthday[sm] + firstday - 1) + 1;
  2306. sm++;
  2307. if (sm > 11) {
  2308. sm = 0;
  2309. sy++;
  2310. }
  2311. }
  2312. montharea[i] = { yy: sy, mm: sm + 1, dd: sd, xx: new Date(sy + '-' + (sm + 1 < 10 ? '0' + (sm + 1) : sm + 1) + '-' + (sd < 10 ? '0' + sd : sd)).getDay(), date: sy + '-' + (sm + 1 < 10 ? '0' + (sm + 1) : sm + 1) + '-' + (sd < 10 ? '0' + sd : sd) };
  2313. }
  2314. return montharea;
  2315. },
  2316. //获取周区间
  2317. getWeekArea: function getWeekArea() {var yy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : nowdate.getFullYear();var mm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : nowdate.getMonth() + 1;var dd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : nowdate.getDate();var xx = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : nowdate.getDay();
  2318. this.getRunnian(yy);
  2319. if (xx == 0) {
  2320. xx = 7;
  2321. }
  2322. var endday = dd + 7 - xx;
  2323. for (var i = 0; i < 7; i++) {
  2324. var sy = yy,sm = mm,sd = endday - i;
  2325. //上一个月
  2326. if (sd <= 0) {
  2327. sm--;
  2328. }
  2329. //下一个月
  2330. else if (sd > monthday[mm - 1]) {
  2331. sm++;
  2332. }
  2333. if (sm == 0) {
  2334. sm = 12;
  2335. sy--;
  2336. }
  2337. if (sm > 12) {
  2338. sm = 1;
  2339. sy++;
  2340. }
  2341. if (sd <= 0) {
  2342. sd = monthday[sm - 1] + sd;
  2343. } else
  2344. if (sd > monthday[mm - 1]) {
  2345. sd = sd - monthday[mm - 1];
  2346. }
  2347. weekarea[6 - i] = { yy: sy, mm: sm, dd: sd, date: sy + '-' + (sm < 10 ? '0' + sm : sm) + '-' + (sd < 10 ? '0' + sd : sd), xingqi: weekName[i] };
  2348. }
  2349. return weekarea;
  2350. },
  2351. //获取日期区间
  2352. getDayArea: function getDayArea() {var yy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : nowdate.getFullYear();var mm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : nowdate.getMonth() + 1;var dd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : nowdate.getDate();var xx = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : nowdate.getDay();
  2353. return { yy: yy, mm: mm, dd: dd, xx: xx, date: yy + '-' + (mm < 10 ? '0' + mm : mm) + '-' + (dd < 10 ? '0' + dd : dd) };
  2354. },
  2355. //获取当前月份天数
  2356. getMonthDayNum: function getMonthDayNum() {var yy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : nowdate.getFullYear();var mm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : nowdate.getMonth() + 1;
  2357. this.getRunnian(yy);
  2358. return monthday[mm - 1];
  2359. },
  2360. //上一周
  2361. beforeWeek: function beforeWeek(data) {var _this$before =
  2362. this.before(data),yy = _this$before.yy,mm = _this$before.mm,dd = _this$before.dd;
  2363. var d = new Date(yy, mm - 1, dd);
  2364. return this.getWeekArea(yy, mm, dd, d.getDay());
  2365. },
  2366. //下一周
  2367. afterWeek: function afterWeek(data) {var _this$after =
  2368. this.after(data),yy = _this$after.yy,mm = _this$after.mm,dd = _this$after.dd;
  2369. var d = new Date(yy, mm - 1, dd);
  2370. return this.getWeekArea(yy, mm, dd, d.getDay());
  2371. },
  2372. //上一月
  2373. beforeMouth: function beforeMouth(data) {var
  2374. yy = data.yy,mm = data.mm,dd = data.dd;
  2375. if (dd == 1) {
  2376. mm--;
  2377. if (mm == 0) {
  2378. mm = 12;
  2379. yy--;
  2380. }
  2381. }
  2382. var d = new Date(yy, mm - 1, dd);
  2383. return this.getMonthArea(yy, mm, dd);
  2384. },
  2385. //下一月
  2386. afterMouth: function afterMouth(data) {var
  2387. yy = data.yy,mm = data.mm,dd = data.dd;
  2388. this.getRunnian(yy);
  2389. if (dd == monthday[mm - 1]) {
  2390. dd = 1;
  2391. mm++;
  2392. if (mm == 13) {
  2393. mm = 1;
  2394. yy++;
  2395. }
  2396. }
  2397. var d = new Date(yy, mm - 1, dd);
  2398. return this.getMonthArea(yy, mm, dd);
  2399. },
  2400. //前一天
  2401. beforeDay: function beforeDay(data) {var _this$before2 =
  2402. this.before(data),yy = _this$before2.yy,mm = _this$before2.mm,dd = _this$before2.dd;
  2403. var d = new Date(yy, mm - 1, dd);
  2404. return this.getDayArea(yy, mm, dd, d.getDay());
  2405. },
  2406. //后一天
  2407. afterDay: function afterDay(data) {var _this$after2 =
  2408. this.after(data),yy = _this$after2.yy,mm = _this$after2.mm,dd = _this$after2.dd;
  2409. var d = new Date(yy, mm - 1, dd);
  2410. return this.getDayArea(yy, mm, dd, d.getDay());
  2411. },
  2412. //前
  2413. before: function before(data) {var
  2414. yy = data.yy,mm = data.mm,dd = data.dd;
  2415. dd--;
  2416. if (dd == 0) {
  2417. mm--;
  2418. if (mm == 0) {
  2419. mm = 12;
  2420. yy--;
  2421. }
  2422. this.getRunnian(yy);
  2423. dd = monthday[mm - 1];
  2424. }
  2425. return { yy: yy, mm: mm, dd: dd };
  2426. },
  2427. //后
  2428. after: function after(data) {var
  2429. yy = data.yy,mm = data.mm,dd = data.dd;
  2430. dd++;
  2431. if (dd > monthday[mm - 1]) {
  2432. dd = 1;
  2433. mm++;
  2434. if (mm == 13) {
  2435. mm = 1;
  2436. yy++;
  2437. }
  2438. }
  2439. return { yy: yy, mm: mm, dd: dd };
  2440. } };var _default =
  2441. timeinterval;exports.default = _default;
  2442. /***/ }),
  2443. /***/ 15:
  2444. /*!************************************!*\
  2445. !*** D:/全部项目/刺兔/common/js/date.js ***!
  2446. \************************************/
  2447. /*! no static exports found */
  2448. /***/ (function(module, exports, __webpack_require__) {
  2449. "use strict";
  2450. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _solarlunar = _interopRequireDefault(__webpack_require__(/*! ./solarlunar.js */ 16));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
  2451. var monthday = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  2452. var weekarea = new Array(7);
  2453. var nowdate = new Date();
  2454. var weekName = ['日', '六', '五', '四', '三', '二', '一'];
  2455. var xday = ['日', '一', '二', '三', '四', '五', '六'];
  2456. var dateInfo = {
  2457. //闰年判断
  2458. getRunnian: function getRunnian(yy) {
  2459. if (yy % 4 == 0 && yy % 100 !== 0 || yy % 400 == 0) {
  2460. monthday[1] = 29;
  2461. } else {
  2462. monthday[1] = 28;
  2463. }
  2464. },
  2465. getDayDate: function getDayDate() {var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { yy: nowdate.getFullYear(), mm: nowdate.getMonth() + 1, dd: nowdate.getDate() };var
  2466. yy =
  2467. date.yy,mm = date.mm,dd = date.dd;
  2468. date.xx = xday[this.getXingqi(yy, mm, dd)],
  2469. date.date = this.getDate(yy, mm, dd),
  2470. date.IDayCn = _solarlunar.default.solar2lunar(yy, mm, dd).IDayCn,
  2471. date.IMonthCn = _solarlunar.default.solar2lunar(yy, mm, dd).IMonthCn;
  2472. return date;
  2473. },
  2474. getWeekDate: function getWeekDate() {var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { yy: nowdate.getFullYear(), mm: nowdate.getMonth() + 1, dd: nowdate.getDate() };var
  2475. yy =
  2476. date.yy,mm = date.mm,dd = date.dd;
  2477. var weekList = [];
  2478. var xx = this.getXingqi(yy, mm, dd);
  2479. if (xx == 0) {
  2480. xx = 7;
  2481. }
  2482. var datetime = 0;
  2483. var dateString = '';
  2484. dateString = yy + '-' + mm + '-' + dd;
  2485. for (var i = 0; i < 7; i++) {
  2486. datetime = new Date(dateString).getTime() - (xx - i - 1) * 24 * 60 * 60 * 1000;
  2487. var sy = new Date(datetime).getFullYear(),
  2488. sm = new Date(datetime).getMonth() + 1,
  2489. sd = new Date(datetime).getDate();
  2490. weekList.push(this.getDayDate({ yy: sy, mm: sm, dd: sd }));
  2491. }
  2492. return weekList;
  2493. },
  2494. getMonthDate: function getMonthDate() {var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { yy: nowdate.getFullYear(), mm: nowdate.getMonth() + 1, dd: nowdate.getDate() };var
  2495. yy =
  2496. date.yy,mm = date.mm,dd = date.dd;
  2497. this.getRunnian(yy);
  2498. var monthList = [];
  2499. var datetime = 0;
  2500. var nowMonth_first_xq = this.getXingqi(yy, mm, 1),
  2501. nowMonth_last_xq = this.getXingqi(yy, mm, monthday[mm - 1]);
  2502. if (nowMonth_first_xq == 0) {
  2503. nowMonth_first_xq = 7;
  2504. }
  2505. if (nowMonth_last_xq == 0) {
  2506. nowMonth_last_xq = 7;
  2507. }
  2508. var dateString = '';
  2509. dateString = yy + '-' + mm + '-' + 1;
  2510. for (var i = 1 - nowMonth_first_xq; i < monthday[mm - 1] + (7 - nowMonth_last_xq); i++) {
  2511. datetime = new Date(dateString).getTime() + i * 24 * 60 * 60 * 1000;
  2512. var sy = new Date(datetime).getFullYear(),
  2513. sm = new Date(datetime).getMonth() + 1,
  2514. sd = new Date(datetime).getDate();
  2515. monthList.push(this.getDayDate({ yy: sy, mm: sm, dd: sd }));
  2516. }
  2517. return monthList;
  2518. },
  2519. getXingqi: function getXingqi(yy, mm, dd) {
  2520. return new Date(yy + '-' + (Number(mm) > 9 ? mm : '0' + Number(mm)) + '-' + (Number(dd) > 9 ? dd : '0' + Number(dd))).getDay();
  2521. },
  2522. getDate: function getDate(yy, mm, dd) {
  2523. return yy + '-' + (Number(mm) > 9 ? mm : '0' + Number(mm)) + '-' + (Number(dd) > 9 ? dd : '0' + Number(dd));
  2524. } };var _default =
  2525. dateInfo;exports.default = _default;
  2526. /***/ }),
  2527. /***/ 16:
  2528. /*!******************************************!*\
  2529. !*** D:/全部项目/刺兔/common/js/solarlunar.js ***!
  2530. \******************************************/
  2531. /*! no static exports found */
  2532. /***/ (function(module, exports, __webpack_require__) {
  2533. "use strict";
  2534. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; /**
  2535. * @1900-2100区间内的公历、农历互转
  2536. * @charset UTF-8
  2537. * @Author Jea杨(JJonline@JJonline.Cn)
  2538. * @Time 2014-7-21
  2539. * @Time 2016-8-13 Fixed 2033hex、Attribution Annals
  2540. * @Time 2016-9-25 Fixed lunar LeapMonth Param Bug
  2541. * @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year
  2542. * @Version 1.0.3
  2543. * @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0]
  2544. * @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0]
  2545. */
  2546. var calendar = {
  2547. /**
  2548. * 农历1900-2100的润大小信息表
  2549. * @Array Of Property
  2550. * @return Hex
  2551. */
  2552. lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, //1900-1909
  2553. 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, //1910-1919
  2554. 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, //1920-1929
  2555. 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, //1930-1939
  2556. 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, //1940-1949
  2557. 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, //1950-1959
  2558. 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, //1960-1969
  2559. 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, //1970-1979
  2560. 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, //1980-1989
  2561. 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, //1990-1999
  2562. 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, //2000-2009
  2563. 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, //2010-2019
  2564. 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, //2020-2029
  2565. 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, //2030-2039
  2566. 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, //2040-2049
  2567. /**Add By JJonline@JJonline.Cn**/
  2568. 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, //2050-2059
  2569. 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, //2060-2069
  2570. 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, //2070-2079
  2571. 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, //2080-2089
  2572. 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, //2090-2099
  2573. 0x0d520], //2100
  2574. /**
  2575. * 公历每个月份的天数普通表
  2576. * @Array Of Property
  2577. * @return Number
  2578. */
  2579. solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
  2580. /**
  2581. * 天干地支之天干速查表
  2582. * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
  2583. * @return Cn string
  2584. */
  2585. Gan: ["\u7532", "\u4E59", "\u4E19", "\u4E01", "\u620A", "\u5DF1", "\u5E9A", "\u8F9B", "\u58EC", "\u7678"],
  2586. /**
  2587. * 天干地支之地支速查表
  2588. * @Array Of Property
  2589. * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
  2590. * @return Cn string
  2591. */
  2592. Zhi: ["\u5B50", "\u4E11", "\u5BC5", "\u536F", "\u8FB0", "\u5DF3", "\u5348", "\u672A", "\u7533", "\u9149", "\u620C", "\u4EA5"],
  2593. /**
  2594. * 天干地支之地支速查表<=>生肖
  2595. * @Array Of Property
  2596. * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
  2597. * @return Cn string
  2598. */
  2599. Animals: ["\u9F20", "\u725B", "\u864E", "\u5154", "\u9F99", "\u86C7", "\u9A6C", "\u7F8A", "\u7334", "\u9E21", "\u72D7", "\u732A"],
  2600. /**
  2601. * 24节气速查表
  2602. * @Array Of Property
  2603. * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
  2604. * @return Cn string
  2605. */
  2606. 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"],
  2607. /**
  2608. * 1900-2100各年的24节气日期速查表
  2609. * @Array Of Property
  2610. * @return 0x string For splice
  2611. */
  2612. sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f',
  2613. '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  2614. '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa',
  2615. '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f',
  2616. 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f',
  2617. '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa',
  2618. '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2',
  2619. '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f',
  2620. '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  2621. '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  2622. '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722',
  2623. '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f',
  2624. '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  2625. '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  2626. '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722',
  2627. '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f',
  2628. '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
  2629. '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
  2630. '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722',
  2631. '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  2632. '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  2633. '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
  2634. '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722',
  2635. '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
  2636. '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  2637. '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
  2638. '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722',
  2639. '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
  2640. '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
  2641. '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
  2642. '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
  2643. '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  2644. '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
  2645. '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
  2646. '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
  2647. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
  2648. '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
  2649. '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
  2650. '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721',
  2651. '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2',
  2652. '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
  2653. '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  2654. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd',
  2655. '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
  2656. '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
  2657. '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  2658. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd',
  2659. '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
  2660. '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
  2661. '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721',
  2662. '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5',
  2663. '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722',
  2664. '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  2665. '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
  2666. '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35',
  2667. '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
  2668. '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721',
  2669. '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd',
  2670. '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35',
  2671. '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
  2672. '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721',
  2673. '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5',
  2674. '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35',
  2675. '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
  2676. '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
  2677. '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35',
  2678. '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'],
  2679. /**
  2680. * 数字转中文速查表
  2681. * @Array Of Property
  2682. * @trans ['日','一','二','三','四','五','六','七','八','九','十']
  2683. * @return Cn string
  2684. */
  2685. nStr1: ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D", "\u5341"],
  2686. /**
  2687. * 日期转农历称呼速查表
  2688. * @Array Of Property
  2689. * @trans ['初','十','廿','卅']
  2690. * @return Cn string
  2691. */
  2692. nStr2: ["\u521D", "\u5341", "\u5EFF", "\u5345"],
  2693. /**
  2694. * 月份转农历称呼速查表
  2695. * @Array Of Property
  2696. * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']
  2697. * @return Cn string
  2698. */
  2699. nStr3: ["\u6B63", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D", "\u5341", "\u51AC", "\u814A"],
  2700. /**
  2701. * 返回农历y年一整年的总天数
  2702. * @param lunar Year
  2703. * @return Number
  2704. * @eg:var count = calendar.lYearDays(1987) ;//count=387
  2705. */
  2706. lYearDays: function lYearDays(y) {
  2707. var i,sum = 348;
  2708. for (i = 0x8000; i > 0x8; i >>= 1) {sum += calendar.lunarInfo[y - 1900] & i ? 1 : 0;}
  2709. return sum + calendar.leapDays(y);
  2710. },
  2711. /**
  2712. * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0
  2713. * @param lunar Year
  2714. * @return Number (0-12)
  2715. * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6
  2716. */
  2717. leapMonth: function leapMonth(y) {//闰字编码 \u95f0
  2718. return calendar.lunarInfo[y - 1900] & 0xf;
  2719. },
  2720. /**
  2721. * 返回农历y年闰月的天数 若该年没有闰月则返回0
  2722. * @param lunar Year
  2723. * @return Number (0、29、30)
  2724. * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29
  2725. */
  2726. leapDays: function leapDays(y) {
  2727. if (calendar.leapMonth(y)) {
  2728. return calendar.lunarInfo[y - 1900] & 0x10000 ? 30 : 29;
  2729. }
  2730. return 0;
  2731. },
  2732. /**
  2733. * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
  2734. * @param lunar Year
  2735. * @return Number (-1、29、30)
  2736. * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29
  2737. */
  2738. monthDays: function monthDays(y, m) {
  2739. if (m > 12 || m < 1) {return -1;} //月份参数从1至12,参数错误返回-1
  2740. return calendar.lunarInfo[y - 1900] & 0x10000 >> m ? 30 : 29;
  2741. },
  2742. /**
  2743. * 返回公历(!)y年m月的天数
  2744. * @param solar Year
  2745. * @return Number (-1、28、29、30、31)
  2746. * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30
  2747. */
  2748. solarDays: function solarDays(y, m) {
  2749. if (m > 12 || m < 1) {return -1;} //若参数错误 返回-1
  2750. var ms = m - 1;
  2751. if (ms == 1) {//2月份的闰平规律测算后确认返回28或29
  2752. return y % 4 == 0 && y % 100 != 0 || y % 400 == 0 ? 29 : 28;
  2753. } else {
  2754. return calendar.solarMonth[ms];
  2755. }
  2756. },
  2757. /**
  2758. * 农历年份转换为干支纪年
  2759. * @param lYear 农历年的年份数
  2760. * @return Cn string
  2761. */
  2762. toGanZhiYear: function toGanZhiYear(lYear) {
  2763. var ganKey = (lYear - 3) % 10;
  2764. var zhiKey = (lYear - 3) % 12;
  2765. if (ganKey == 0) ganKey = 10; //如果余数为0则为最后一个天干
  2766. if (zhiKey == 0) zhiKey = 12; //如果余数为0则为最后一个地支
  2767. return calendar.Gan[ganKey - 1] + calendar.Zhi[zhiKey - 1];
  2768. },
  2769. /**
  2770. * 公历月、日判断所属星座
  2771. * @param cMonth [description]
  2772. * @param cDay [description]
  2773. * @return Cn string
  2774. */
  2775. toAstro: function toAstro(cMonth, cDay) {
  2776. 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";
  2777. var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22];
  2778. return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "\u5EA7"; //座
  2779. },
  2780. /**
  2781. * 传入offset偏移量返回干支
  2782. * @param offset 相对甲子的偏移量
  2783. * @return Cn string
  2784. */
  2785. toGanZhi: function toGanZhi(offset) {
  2786. return calendar.Gan[offset % 10] + calendar.Zhi[offset % 12];
  2787. },
  2788. /**
  2789. * 传入公历(!)y年获得该年第n个节气的公历日期
  2790. * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起
  2791. * @return day Number
  2792. * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春
  2793. */
  2794. getTerm: function getTerm(y, n) {
  2795. if (y < 1900 || y > 2100) {return -1;}
  2796. if (n < 1 || n > 24) {return -1;}
  2797. var _table = calendar.sTermInfo[y - 1900];
  2798. var _info = [
  2799. parseInt('0x' + _table.substr(0, 5)).toString(),
  2800. parseInt('0x' + _table.substr(5, 5)).toString(),
  2801. parseInt('0x' + _table.substr(10, 5)).toString(),
  2802. parseInt('0x' + _table.substr(15, 5)).toString(),
  2803. parseInt('0x' + _table.substr(20, 5)).toString(),
  2804. parseInt('0x' + _table.substr(25, 5)).toString()];
  2805. var _calday = [
  2806. _info[0].substr(0, 1),
  2807. _info[0].substr(1, 2),
  2808. _info[0].substr(3, 1),
  2809. _info[0].substr(4, 2),
  2810. _info[1].substr(0, 1),
  2811. _info[1].substr(1, 2),
  2812. _info[1].substr(3, 1),
  2813. _info[1].substr(4, 2),
  2814. _info[2].substr(0, 1),
  2815. _info[2].substr(1, 2),
  2816. _info[2].substr(3, 1),
  2817. _info[2].substr(4, 2),
  2818. _info[3].substr(0, 1),
  2819. _info[3].substr(1, 2),
  2820. _info[3].substr(3, 1),
  2821. _info[3].substr(4, 2),
  2822. _info[4].substr(0, 1),
  2823. _info[4].substr(1, 2),
  2824. _info[4].substr(3, 1),
  2825. _info[4].substr(4, 2),
  2826. _info[5].substr(0, 1),
  2827. _info[5].substr(1, 2),
  2828. _info[5].substr(3, 1),
  2829. _info[5].substr(4, 2)];
  2830. return parseInt(_calday[n - 1]);
  2831. },
  2832. /**
  2833. * 传入农历数字月份返回汉语通俗表示法
  2834. * @param lunar month
  2835. * @return Cn string
  2836. * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月'
  2837. */
  2838. toChinaMonth: function toChinaMonth(m) {// 月 => \u6708
  2839. if (m > 12 || m < 1) {return -1;} //若参数错误 返回-1
  2840. var s = calendar.nStr3[m - 1];
  2841. s += "\u6708"; //加上月字
  2842. return s;
  2843. },
  2844. /**
  2845. * 传入农历日期数字返回汉字表示法
  2846. * @param lunar day
  2847. * @return Cn string
  2848. * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一'
  2849. */
  2850. toChinaDay: function toChinaDay(d) {//日 => \u65e5
  2851. var s;
  2852. switch (d) {
  2853. case 10:
  2854. s = "\u521D\u5341";break;
  2855. case 20:
  2856. s = "\u4E8C\u5341";break;
  2857. break;
  2858. case 30:
  2859. s = "\u4E09\u5341";break;
  2860. break;
  2861. default:
  2862. s = calendar.nStr2[Math.floor(d / 10)];
  2863. s += calendar.nStr1[d % 10];}
  2864. return s;
  2865. },
  2866. /**
  2867. * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
  2868. * @param y year
  2869. * @return Cn string
  2870. * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔'
  2871. */
  2872. getAnimal: function getAnimal(y) {
  2873. return calendar.Animals[(y - 4) % 12];
  2874. },
  2875. /**
  2876. * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON
  2877. * @param y solar year
  2878. * @param m solar month
  2879. * @param d solar day
  2880. * @return JSON object
  2881. * @eg:console.log(calendar.solar2lunar(1987,11,01));
  2882. */
  2883. solar2lunar: function solar2lunar(y, m, d) {//参数区间1900.1.31~2100.12.31
  2884. //年份限定、上限
  2885. if (y < 1900 || y > 2100) {
  2886. return -1; // undefined转换为数字变为NaN
  2887. }
  2888. //公历传参最下限
  2889. if (y == 1900 && m == 1 && d < 31) {
  2890. return -1;
  2891. }
  2892. //未传参 获得当天
  2893. if (!y) {
  2894. var objDate = new Date();
  2895. } else {
  2896. var objDate = new Date(y, parseInt(m) - 1, d);
  2897. }
  2898. var i,leap = 0,temp = 0;
  2899. //修正ymd参数
  2900. var y = objDate.getFullYear(),
  2901. m = objDate.getMonth() + 1,
  2902. d = objDate.getDate();
  2903. var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000;
  2904. for (i = 1900; i < 2101 && offset > 0; i++) {
  2905. temp = calendar.lYearDays(i);
  2906. offset -= temp;
  2907. }
  2908. if (offset < 0) {
  2909. offset += temp;i--;
  2910. }
  2911. //是否今天
  2912. var isTodayObj = new Date(),
  2913. isToday = false;
  2914. if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) {
  2915. isToday = true;
  2916. }
  2917. //星期几
  2918. var nWeek = objDate.getDay(),
  2919. cWeek = calendar.nStr1[nWeek];
  2920. //数字表示周几顺应天朝周一开始的惯例
  2921. if (nWeek == 0) {
  2922. nWeek = 7;
  2923. }
  2924. //农历年
  2925. var year = i;
  2926. var leap = calendar.leapMonth(i); //闰哪个月
  2927. var isLeap = false;
  2928. //效验闰月
  2929. for (i = 1; i < 13 && offset > 0; i++) {
  2930. //闰月
  2931. if (leap > 0 && i == leap + 1 && isLeap == false) {
  2932. --i;
  2933. isLeap = true;temp = calendar.leapDays(year); //计算农历闰月天数
  2934. } else
  2935. {
  2936. temp = calendar.monthDays(year, i); //计算农历普通月天数
  2937. }
  2938. //解除闰月
  2939. if (isLeap == true && i == leap + 1) {isLeap = false;}
  2940. offset -= temp;
  2941. }
  2942. // 闰月导致数组下标重叠取反
  2943. if (offset == 0 && leap > 0 && i == leap + 1)
  2944. {
  2945. if (isLeap) {
  2946. isLeap = false;
  2947. } else {
  2948. isLeap = true;--i;
  2949. }
  2950. }
  2951. if (offset < 0)
  2952. {
  2953. offset += temp;--i;
  2954. }
  2955. //农历月
  2956. var month = i;
  2957. //农历日
  2958. var day = offset + 1;
  2959. //天干地支处理
  2960. var sm = m - 1;
  2961. var gzY = calendar.toGanZhiYear(year);
  2962. // 当月的两个节气
  2963. // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year`
  2964. var firstNode = calendar.getTerm(y, m * 2 - 1); //返回当月「节」为几日开始
  2965. var secondNode = calendar.getTerm(y, m * 2); //返回当月「节」为几日开始
  2966. // 依据12节气修正干支月
  2967. var gzM = calendar.toGanZhi((y - 1900) * 12 + m + 11);
  2968. if (d >= firstNode) {
  2969. gzM = calendar.toGanZhi((y - 1900) * 12 + m + 12);
  2970. }
  2971. //传入的日期的节气与否
  2972. var isTerm = false;
  2973. var Term = null;
  2974. if (firstNode == d) {
  2975. isTerm = true;
  2976. Term = calendar.solarTerm[m * 2 - 2];
  2977. }
  2978. if (secondNode == d) {
  2979. isTerm = true;
  2980. Term = calendar.solarTerm[m * 2 - 1];
  2981. }
  2982. //日柱 当月一日与 1900/1/1 相差天数
  2983. var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;
  2984. var gzD = calendar.toGanZhi(dayCyclical + d - 1);
  2985. //该日期所属的星座
  2986. var astro = calendar.toAstro(m, d);
  2987. return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': calendar.getAnimal(year), 'IMonthCn': (isLeap ? "\u95F0" : '') + calendar.toChinaMonth(month), 'IDayCn': calendar.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 };
  2988. },
  2989. /**
  2990. * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON
  2991. * @param y lunar year
  2992. * @param m lunar month
  2993. * @param d lunar day
  2994. * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可]
  2995. * @return JSON object
  2996. * @eg:console.log(calendar.lunar2solar(1987,9,10));
  2997. */
  2998. lunar2solar: function lunar2solar(y, m, d, isLeapMonth) {//参数区间1900.1.31~2100.12.1
  2999. var isLeapMonth = !!isLeapMonth;
  3000. var leapOffset = 0;
  3001. var leapMonth = calendar.leapMonth(y);
  3002. var leapDay = calendar.leapDays(y);
  3003. if (isLeapMonth && leapMonth != m) {return -1;} //传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同
  3004. if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) {return -1;} //超出了最大极限值
  3005. var day = calendar.monthDays(y, m);
  3006. var _day = day;
  3007. //bugFix 2016-9-25
  3008. //if month is leap, _day use leapDays method
  3009. if (isLeapMonth) {
  3010. _day = calendar.leapDays(y, m);
  3011. }
  3012. if (y < 1900 || y > 2100 || d > _day) {return -1;} //参数合法性效验
  3013. //计算农历的时间差
  3014. var offset = 0;
  3015. for (var i = 1900; i < y; i++) {
  3016. offset += calendar.lYearDays(i);
  3017. }
  3018. var leap = 0,isAdd = false;
  3019. for (var i = 1; i < m; i++) {
  3020. leap = calendar.leapMonth(y);
  3021. if (!isAdd) {//处理闰月
  3022. if (leap <= i && leap > 0) {
  3023. offset += calendar.leapDays(y);isAdd = true;
  3024. }
  3025. }
  3026. offset += calendar.monthDays(y, i);
  3027. }
  3028. //转换闰月农历 需补充该年闰月的前一个月的时差
  3029. if (isLeapMonth) {offset += day;}
  3030. //1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点)
  3031. var stmap = Date.UTC(1900, 1, 30, 0, 0, 0);
  3032. var calObj = new Date((offset + d - 31) * 86400000 + stmap);
  3033. var cY = calObj.getUTCFullYear();
  3034. var cM = calObj.getUTCMonth() + 1;
  3035. var cD = calObj.getUTCDate();
  3036. return calendar.solar2lunar(cY, cM, cD);
  3037. } };var _default =
  3038. calendar;exports.default = _default;
  3039. /***/ }),
  3040. /***/ 17:
  3041. /*!******************************************!*\
  3042. !*** D:/全部项目/刺兔/common/utils/request.js ***!
  3043. \******************************************/
  3044. /*! no static exports found */
  3045. /***/ (function(module, exports, __webpack_require__) {
  3046. "use strict";
  3047. var _App = _interopRequireDefault(__webpack_require__(/*! ../../App.vue */ 5));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
  3048. var baseurl = "http://api.order.ci2.cn/";
  3049. console.log(_App.default.globalData);
  3050. var request = function request(url, options) {
  3051. return new Promise(function (resolve, reject) {
  3052. wx.request({
  3053. url: "".concat(baseurl).concat(url),
  3054. method: options.method,
  3055. // data: options.method === 'GET' ? options.data : JSON.stringify(options.data),
  3056. data: options.data,
  3057. header: {
  3058. 'content-Type': 'application/json',
  3059. "Authorization": _App.default.globalData.authorization ? _App.default.globalData.authorization : '' },
  3060. success: function success(res) {
  3061. if (res.data.code === "success" || res.data.status) {
  3062. // 返回data
  3063. resolve(res.data);
  3064. } else {
  3065. reject(res.data);
  3066. }
  3067. },
  3068. fail: function fail(err) {
  3069. console.log(err);
  3070. reject(err.data);
  3071. } });
  3072. });
  3073. };
  3074. var get = function get(url) {var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  3075. return request(url, { method: 'GET', data: options });
  3076. };
  3077. var post = function post(url, options) {
  3078. return request(url, { method: 'POST', data: options });
  3079. };
  3080. var put = function put(url, options) {
  3081. return request(url, { method: 'PUT', data: options });
  3082. };
  3083. // 不能声明DELETE(关键字)
  3084. var remove = function remove(url, options) {
  3085. return request(url, { method: 'DELETE', data: options });
  3086. };
  3087. module.exports = {
  3088. get: get,
  3089. post: post,
  3090. put: put,
  3091. remove: remove };
  3092. /***/ }),
  3093. /***/ 2:
  3094. /*!******************************************************************************************!*\
  3095. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***!
  3096. \******************************************************************************************/
  3097. /*! exports provided: default */
  3098. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3099. "use strict";
  3100. __webpack_require__.r(__webpack_exports__);
  3101. /* WEBPACK VAR INJECTION */(function(global) {/*!
  3102. * Vue.js v2.6.11
  3103. * (c) 2014-2020 Evan You
  3104. * Released under the MIT License.
  3105. */
  3106. /* */
  3107. var emptyObject = Object.freeze({});
  3108. // These helpers produce better VM code in JS engines due to their
  3109. // explicitness and function inlining.
  3110. function isUndef (v) {
  3111. return v === undefined || v === null
  3112. }
  3113. function isDef (v) {
  3114. return v !== undefined && v !== null
  3115. }
  3116. function isTrue (v) {
  3117. return v === true
  3118. }
  3119. function isFalse (v) {
  3120. return v === false
  3121. }
  3122. /**
  3123. * Check if value is primitive.
  3124. */
  3125. function isPrimitive (value) {
  3126. return (
  3127. typeof value === 'string' ||
  3128. typeof value === 'number' ||
  3129. // $flow-disable-line
  3130. typeof value === 'symbol' ||
  3131. typeof value === 'boolean'
  3132. )
  3133. }
  3134. /**
  3135. * Quick object check - this is primarily used to tell
  3136. * Objects from primitive values when we know the value
  3137. * is a JSON-compliant type.
  3138. */
  3139. function isObject (obj) {
  3140. return obj !== null && typeof obj === 'object'
  3141. }
  3142. /**
  3143. * Get the raw type string of a value, e.g., [object Object].
  3144. */
  3145. var _toString = Object.prototype.toString;
  3146. function toRawType (value) {
  3147. return _toString.call(value).slice(8, -1)
  3148. }
  3149. /**
  3150. * Strict object type check. Only returns true
  3151. * for plain JavaScript objects.
  3152. */
  3153. function isPlainObject (obj) {
  3154. return _toString.call(obj) === '[object Object]'
  3155. }
  3156. function isRegExp (v) {
  3157. return _toString.call(v) === '[object RegExp]'
  3158. }
  3159. /**
  3160. * Check if val is a valid array index.
  3161. */
  3162. function isValidArrayIndex (val) {
  3163. var n = parseFloat(String(val));
  3164. return n >= 0 && Math.floor(n) === n && isFinite(val)
  3165. }
  3166. function isPromise (val) {
  3167. return (
  3168. isDef(val) &&
  3169. typeof val.then === 'function' &&
  3170. typeof val.catch === 'function'
  3171. )
  3172. }
  3173. /**
  3174. * Convert a value to a string that is actually rendered.
  3175. */
  3176. function toString (val) {
  3177. return val == null
  3178. ? ''
  3179. : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
  3180. ? JSON.stringify(val, null, 2)
  3181. : String(val)
  3182. }
  3183. /**
  3184. * Convert an input value to a number for persistence.
  3185. * If the conversion fails, return original string.
  3186. */
  3187. function toNumber (val) {
  3188. var n = parseFloat(val);
  3189. return isNaN(n) ? val : n
  3190. }
  3191. /**
  3192. * Make a map and return a function for checking if a key
  3193. * is in that map.
  3194. */
  3195. function makeMap (
  3196. str,
  3197. expectsLowerCase
  3198. ) {
  3199. var map = Object.create(null);
  3200. var list = str.split(',');
  3201. for (var i = 0; i < list.length; i++) {
  3202. map[list[i]] = true;
  3203. }
  3204. return expectsLowerCase
  3205. ? function (val) { return map[val.toLowerCase()]; }
  3206. : function (val) { return map[val]; }
  3207. }
  3208. /**
  3209. * Check if a tag is a built-in tag.
  3210. */
  3211. var isBuiltInTag = makeMap('slot,component', true);
  3212. /**
  3213. * Check if an attribute is a reserved attribute.
  3214. */
  3215. var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
  3216. /**
  3217. * Remove an item from an array.
  3218. */
  3219. function remove (arr, item) {
  3220. if (arr.length) {
  3221. var index = arr.indexOf(item);
  3222. if (index > -1) {
  3223. return arr.splice(index, 1)
  3224. }
  3225. }
  3226. }
  3227. /**
  3228. * Check whether an object has the property.
  3229. */
  3230. var hasOwnProperty = Object.prototype.hasOwnProperty;
  3231. function hasOwn (obj, key) {
  3232. return hasOwnProperty.call(obj, key)
  3233. }
  3234. /**
  3235. * Create a cached version of a pure function.
  3236. */
  3237. function cached (fn) {
  3238. var cache = Object.create(null);
  3239. return (function cachedFn (str) {
  3240. var hit = cache[str];
  3241. return hit || (cache[str] = fn(str))
  3242. })
  3243. }
  3244. /**
  3245. * Camelize a hyphen-delimited string.
  3246. */
  3247. var camelizeRE = /-(\w)/g;
  3248. var camelize = cached(function (str) {
  3249. return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
  3250. });
  3251. /**
  3252. * Capitalize a string.
  3253. */
  3254. var capitalize = cached(function (str) {
  3255. return str.charAt(0).toUpperCase() + str.slice(1)
  3256. });
  3257. /**
  3258. * Hyphenate a camelCase string.
  3259. */
  3260. var hyphenateRE = /\B([A-Z])/g;
  3261. var hyphenate = cached(function (str) {
  3262. return str.replace(hyphenateRE, '-$1').toLowerCase()
  3263. });
  3264. /**
  3265. * Simple bind polyfill for environments that do not support it,
  3266. * e.g., PhantomJS 1.x. Technically, we don't need this anymore
  3267. * since native bind is now performant enough in most browsers.
  3268. * But removing it would mean breaking code that was able to run in
  3269. * PhantomJS 1.x, so this must be kept for backward compatibility.
  3270. */
  3271. /* istanbul ignore next */
  3272. function polyfillBind (fn, ctx) {
  3273. function boundFn (a) {
  3274. var l = arguments.length;
  3275. return l
  3276. ? l > 1
  3277. ? fn.apply(ctx, arguments)
  3278. : fn.call(ctx, a)
  3279. : fn.call(ctx)
  3280. }
  3281. boundFn._length = fn.length;
  3282. return boundFn
  3283. }
  3284. function nativeBind (fn, ctx) {
  3285. return fn.bind(ctx)
  3286. }
  3287. var bind = Function.prototype.bind
  3288. ? nativeBind
  3289. : polyfillBind;
  3290. /**
  3291. * Convert an Array-like object to a real Array.
  3292. */
  3293. function toArray (list, start) {
  3294. start = start || 0;
  3295. var i = list.length - start;
  3296. var ret = new Array(i);
  3297. while (i--) {
  3298. ret[i] = list[i + start];
  3299. }
  3300. return ret
  3301. }
  3302. /**
  3303. * Mix properties into target object.
  3304. */
  3305. function extend (to, _from) {
  3306. for (var key in _from) {
  3307. to[key] = _from[key];
  3308. }
  3309. return to
  3310. }
  3311. /**
  3312. * Merge an Array of Objects into a single Object.
  3313. */
  3314. function toObject (arr) {
  3315. var res = {};
  3316. for (var i = 0; i < arr.length; i++) {
  3317. if (arr[i]) {
  3318. extend(res, arr[i]);
  3319. }
  3320. }
  3321. return res
  3322. }
  3323. /* eslint-disable no-unused-vars */
  3324. /**
  3325. * Perform no operation.
  3326. * Stubbing args to make Flow happy without leaving useless transpiled code
  3327. * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
  3328. */
  3329. function noop (a, b, c) {}
  3330. /**
  3331. * Always return false.
  3332. */
  3333. var no = function (a, b, c) { return false; };
  3334. /* eslint-enable no-unused-vars */
  3335. /**
  3336. * Return the same value.
  3337. */
  3338. var identity = function (_) { return _; };
  3339. /**
  3340. * Check if two values are loosely equal - that is,
  3341. * if they are plain objects, do they have the same shape?
  3342. */
  3343. function looseEqual (a, b) {
  3344. if (a === b) { return true }
  3345. var isObjectA = isObject(a);
  3346. var isObjectB = isObject(b);
  3347. if (isObjectA && isObjectB) {
  3348. try {
  3349. var isArrayA = Array.isArray(a);
  3350. var isArrayB = Array.isArray(b);
  3351. if (isArrayA && isArrayB) {
  3352. return a.length === b.length && a.every(function (e, i) {
  3353. return looseEqual(e, b[i])
  3354. })
  3355. } else if (a instanceof Date && b instanceof Date) {
  3356. return a.getTime() === b.getTime()
  3357. } else if (!isArrayA && !isArrayB) {
  3358. var keysA = Object.keys(a);
  3359. var keysB = Object.keys(b);
  3360. return keysA.length === keysB.length && keysA.every(function (key) {
  3361. return looseEqual(a[key], b[key])
  3362. })
  3363. } else {
  3364. /* istanbul ignore next */
  3365. return false
  3366. }
  3367. } catch (e) {
  3368. /* istanbul ignore next */
  3369. return false
  3370. }
  3371. } else if (!isObjectA && !isObjectB) {
  3372. return String(a) === String(b)
  3373. } else {
  3374. return false
  3375. }
  3376. }
  3377. /**
  3378. * Return the first index at which a loosely equal value can be
  3379. * found in the array (if value is a plain object, the array must
  3380. * contain an object of the same shape), or -1 if it is not present.
  3381. */
  3382. function looseIndexOf (arr, val) {
  3383. for (var i = 0; i < arr.length; i++) {
  3384. if (looseEqual(arr[i], val)) { return i }
  3385. }
  3386. return -1
  3387. }
  3388. /**
  3389. * Ensure a function is called only once.
  3390. */
  3391. function once (fn) {
  3392. var called = false;
  3393. return function () {
  3394. if (!called) {
  3395. called = true;
  3396. fn.apply(this, arguments);
  3397. }
  3398. }
  3399. }
  3400. var ASSET_TYPES = [
  3401. 'component',
  3402. 'directive',
  3403. 'filter'
  3404. ];
  3405. var LIFECYCLE_HOOKS = [
  3406. 'beforeCreate',
  3407. 'created',
  3408. 'beforeMount',
  3409. 'mounted',
  3410. 'beforeUpdate',
  3411. 'updated',
  3412. 'beforeDestroy',
  3413. 'destroyed',
  3414. 'activated',
  3415. 'deactivated',
  3416. 'errorCaptured',
  3417. 'serverPrefetch'
  3418. ];
  3419. /* */
  3420. var config = ({
  3421. /**
  3422. * Option merge strategies (used in core/util/options)
  3423. */
  3424. // $flow-disable-line
  3425. optionMergeStrategies: Object.create(null),
  3426. /**
  3427. * Whether to suppress warnings.
  3428. */
  3429. silent: false,
  3430. /**
  3431. * Show production mode tip message on boot?
  3432. */
  3433. productionTip: "development" !== 'production',
  3434. /**
  3435. * Whether to enable devtools
  3436. */
  3437. devtools: "development" !== 'production',
  3438. /**
  3439. * Whether to record perf
  3440. */
  3441. performance: false,
  3442. /**
  3443. * Error handler for watcher errors
  3444. */
  3445. errorHandler: null,
  3446. /**
  3447. * Warn handler for watcher warns
  3448. */
  3449. warnHandler: null,
  3450. /**
  3451. * Ignore certain custom elements
  3452. */
  3453. ignoredElements: [],
  3454. /**
  3455. * Custom user key aliases for v-on
  3456. */
  3457. // $flow-disable-line
  3458. keyCodes: Object.create(null),
  3459. /**
  3460. * Check if a tag is reserved so that it cannot be registered as a
  3461. * component. This is platform-dependent and may be overwritten.
  3462. */
  3463. isReservedTag: no,
  3464. /**
  3465. * Check if an attribute is reserved so that it cannot be used as a component
  3466. * prop. This is platform-dependent and may be overwritten.
  3467. */
  3468. isReservedAttr: no,
  3469. /**
  3470. * Check if a tag is an unknown element.
  3471. * Platform-dependent.
  3472. */
  3473. isUnknownElement: no,
  3474. /**
  3475. * Get the namespace of an element
  3476. */
  3477. getTagNamespace: noop,
  3478. /**
  3479. * Parse the real tag name for the specific platform.
  3480. */
  3481. parsePlatformTagName: identity,
  3482. /**
  3483. * Check if an attribute must be bound using property, e.g. value
  3484. * Platform-dependent.
  3485. */
  3486. mustUseProp: no,
  3487. /**
  3488. * Perform updates asynchronously. Intended to be used by Vue Test Utils
  3489. * This will significantly reduce performance if set to false.
  3490. */
  3491. async: true,
  3492. /**
  3493. * Exposed for legacy reasons
  3494. */
  3495. _lifecycleHooks: LIFECYCLE_HOOKS
  3496. });
  3497. /* */
  3498. /**
  3499. * unicode letters used for parsing html tags, component names and property paths.
  3500. * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
  3501. * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
  3502. */
  3503. 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/;
  3504. /**
  3505. * Check if a string starts with $ or _
  3506. */
  3507. function isReserved (str) {
  3508. var c = (str + '').charCodeAt(0);
  3509. return c === 0x24 || c === 0x5F
  3510. }
  3511. /**
  3512. * Define a property.
  3513. */
  3514. function def (obj, key, val, enumerable) {
  3515. Object.defineProperty(obj, key, {
  3516. value: val,
  3517. enumerable: !!enumerable,
  3518. writable: true,
  3519. configurable: true
  3520. });
  3521. }
  3522. /**
  3523. * Parse simple path.
  3524. */
  3525. var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
  3526. function parsePath (path) {
  3527. if (bailRE.test(path)) {
  3528. return
  3529. }
  3530. var segments = path.split('.');
  3531. return function (obj) {
  3532. for (var i = 0; i < segments.length; i++) {
  3533. if (!obj) { return }
  3534. obj = obj[segments[i]];
  3535. }
  3536. return obj
  3537. }
  3538. }
  3539. /* */
  3540. // can we use __proto__?
  3541. var hasProto = '__proto__' in {};
  3542. // Browser environment sniffing
  3543. var inBrowser = typeof window !== 'undefined';
  3544. var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
  3545. var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
  3546. var UA = inBrowser && window.navigator.userAgent.toLowerCase();
  3547. var isIE = UA && /msie|trident/.test(UA);
  3548. var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
  3549. var isEdge = UA && UA.indexOf('edge/') > 0;
  3550. var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
  3551. var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
  3552. var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
  3553. var isPhantomJS = UA && /phantomjs/.test(UA);
  3554. var isFF = UA && UA.match(/firefox\/(\d+)/);
  3555. // Firefox has a "watch" function on Object.prototype...
  3556. var nativeWatch = ({}).watch;
  3557. if (inBrowser) {
  3558. try {
  3559. var opts = {};
  3560. Object.defineProperty(opts, 'passive', ({
  3561. get: function get () {
  3562. }
  3563. })); // https://github.com/facebook/flow/issues/285
  3564. window.addEventListener('test-passive', null, opts);
  3565. } catch (e) {}
  3566. }
  3567. // this needs to be lazy-evaled because vue may be required before
  3568. // vue-server-renderer can set VUE_ENV
  3569. var _isServer;
  3570. var isServerRendering = function () {
  3571. if (_isServer === undefined) {
  3572. /* istanbul ignore if */
  3573. if (!inBrowser && !inWeex && typeof global !== 'undefined') {
  3574. // detect presence of vue-server-renderer and avoid
  3575. // Webpack shimming the process
  3576. _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
  3577. } else {
  3578. _isServer = false;
  3579. }
  3580. }
  3581. return _isServer
  3582. };
  3583. // detect devtools
  3584. var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
  3585. /* istanbul ignore next */
  3586. function isNative (Ctor) {
  3587. return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
  3588. }
  3589. var hasSymbol =
  3590. typeof Symbol !== 'undefined' && isNative(Symbol) &&
  3591. typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
  3592. var _Set;
  3593. /* istanbul ignore if */ // $flow-disable-line
  3594. if (typeof Set !== 'undefined' && isNative(Set)) {
  3595. // use native Set when available.
  3596. _Set = Set;
  3597. } else {
  3598. // a non-standard Set polyfill that only works with primitive keys.
  3599. _Set = /*@__PURE__*/(function () {
  3600. function Set () {
  3601. this.set = Object.create(null);
  3602. }
  3603. Set.prototype.has = function has (key) {
  3604. return this.set[key] === true
  3605. };
  3606. Set.prototype.add = function add (key) {
  3607. this.set[key] = true;
  3608. };
  3609. Set.prototype.clear = function clear () {
  3610. this.set = Object.create(null);
  3611. };
  3612. return Set;
  3613. }());
  3614. }
  3615. /* */
  3616. var warn = noop;
  3617. var tip = noop;
  3618. var generateComponentTrace = (noop); // work around flow check
  3619. var formatComponentName = (noop);
  3620. if (true) {
  3621. var hasConsole = typeof console !== 'undefined';
  3622. var classifyRE = /(?:^|[-_])(\w)/g;
  3623. var classify = function (str) { return str
  3624. .replace(classifyRE, function (c) { return c.toUpperCase(); })
  3625. .replace(/[-_]/g, ''); };
  3626. warn = function (msg, vm) {
  3627. var trace = vm ? generateComponentTrace(vm) : '';
  3628. if (config.warnHandler) {
  3629. config.warnHandler.call(null, msg, vm, trace);
  3630. } else if (hasConsole && (!config.silent)) {
  3631. console.error(("[Vue warn]: " + msg + trace));
  3632. }
  3633. };
  3634. tip = function (msg, vm) {
  3635. if (hasConsole && (!config.silent)) {
  3636. console.warn("[Vue tip]: " + msg + (
  3637. vm ? generateComponentTrace(vm) : ''
  3638. ));
  3639. }
  3640. };
  3641. formatComponentName = function (vm, includeFile) {
  3642. if (vm.$root === vm) {
  3643. if (vm.$options && vm.$options.__file) { // fixed by xxxxxx
  3644. return ('') + vm.$options.__file
  3645. }
  3646. return '<Root>'
  3647. }
  3648. var options = typeof vm === 'function' && vm.cid != null
  3649. ? vm.options
  3650. : vm._isVue
  3651. ? vm.$options || vm.constructor.options
  3652. : vm;
  3653. var name = options.name || options._componentTag;
  3654. var file = options.__file;
  3655. if (!name && file) {
  3656. var match = file.match(/([^/\\]+)\.vue$/);
  3657. name = match && match[1];
  3658. }
  3659. return (
  3660. (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
  3661. (file && includeFile !== false ? (" at " + file) : '')
  3662. )
  3663. };
  3664. var repeat = function (str, n) {
  3665. var res = '';
  3666. while (n) {
  3667. if (n % 2 === 1) { res += str; }
  3668. if (n > 1) { str += str; }
  3669. n >>= 1;
  3670. }
  3671. return res
  3672. };
  3673. generateComponentTrace = function (vm) {
  3674. if (vm._isVue && vm.$parent) {
  3675. var tree = [];
  3676. var currentRecursiveSequence = 0;
  3677. while (vm && vm.$options.name !== 'PageBody') {
  3678. if (tree.length > 0) {
  3679. var last = tree[tree.length - 1];
  3680. if (last.constructor === vm.constructor) {
  3681. currentRecursiveSequence++;
  3682. vm = vm.$parent;
  3683. continue
  3684. } else if (currentRecursiveSequence > 0) {
  3685. tree[tree.length - 1] = [last, currentRecursiveSequence];
  3686. currentRecursiveSequence = 0;
  3687. }
  3688. }
  3689. !vm.$options.isReserved && tree.push(vm);
  3690. vm = vm.$parent;
  3691. }
  3692. return '\n\nfound in\n\n' + tree
  3693. .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
  3694. ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
  3695. : formatComponentName(vm))); })
  3696. .join('\n')
  3697. } else {
  3698. return ("\n\n(found in " + (formatComponentName(vm)) + ")")
  3699. }
  3700. };
  3701. }
  3702. /* */
  3703. var uid = 0;
  3704. /**
  3705. * A dep is an observable that can have multiple
  3706. * directives subscribing to it.
  3707. */
  3708. var Dep = function Dep () {
  3709. // fixed by xxxxxx (nvue vuex)
  3710. /* eslint-disable no-undef */
  3711. if(typeof SharedObject !== 'undefined'){
  3712. this.id = SharedObject.uid++;
  3713. } else {
  3714. this.id = uid++;
  3715. }
  3716. this.subs = [];
  3717. };
  3718. Dep.prototype.addSub = function addSub (sub) {
  3719. this.subs.push(sub);
  3720. };
  3721. Dep.prototype.removeSub = function removeSub (sub) {
  3722. remove(this.subs, sub);
  3723. };
  3724. Dep.prototype.depend = function depend () {
  3725. if (Dep.SharedObject.target) {
  3726. Dep.SharedObject.target.addDep(this);
  3727. }
  3728. };
  3729. Dep.prototype.notify = function notify () {
  3730. // stabilize the subscriber list first
  3731. var subs = this.subs.slice();
  3732. if ( true && !config.async) {
  3733. // subs aren't sorted in scheduler if not running async
  3734. // we need to sort them now to make sure they fire in correct
  3735. // order
  3736. subs.sort(function (a, b) { return a.id - b.id; });
  3737. }
  3738. for (var i = 0, l = subs.length; i < l; i++) {
  3739. subs[i].update();
  3740. }
  3741. };
  3742. // The current target watcher being evaluated.
  3743. // This is globally unique because only one watcher
  3744. // can be evaluated at a time.
  3745. // fixed by xxxxxx (nvue shared vuex)
  3746. /* eslint-disable no-undef */
  3747. Dep.SharedObject = typeof SharedObject !== 'undefined' ? SharedObject : {};
  3748. Dep.SharedObject.target = null;
  3749. Dep.SharedObject.targetStack = [];
  3750. function pushTarget (target) {
  3751. Dep.SharedObject.targetStack.push(target);
  3752. Dep.SharedObject.target = target;
  3753. }
  3754. function popTarget () {
  3755. Dep.SharedObject.targetStack.pop();
  3756. Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];
  3757. }
  3758. /* */
  3759. var VNode = function VNode (
  3760. tag,
  3761. data,
  3762. children,
  3763. text,
  3764. elm,
  3765. context,
  3766. componentOptions,
  3767. asyncFactory
  3768. ) {
  3769. this.tag = tag;
  3770. this.data = data;
  3771. this.children = children;
  3772. this.text = text;
  3773. this.elm = elm;
  3774. this.ns = undefined;
  3775. this.context = context;
  3776. this.fnContext = undefined;
  3777. this.fnOptions = undefined;
  3778. this.fnScopeId = undefined;
  3779. this.key = data && data.key;
  3780. this.componentOptions = componentOptions;
  3781. this.componentInstance = undefined;
  3782. this.parent = undefined;
  3783. this.raw = false;
  3784. this.isStatic = false;
  3785. this.isRootInsert = true;
  3786. this.isComment = false;
  3787. this.isCloned = false;
  3788. this.isOnce = false;
  3789. this.asyncFactory = asyncFactory;
  3790. this.asyncMeta = undefined;
  3791. this.isAsyncPlaceholder = false;
  3792. };
  3793. var prototypeAccessors = { child: { configurable: true } };
  3794. // DEPRECATED: alias for componentInstance for backwards compat.
  3795. /* istanbul ignore next */
  3796. prototypeAccessors.child.get = function () {
  3797. return this.componentInstance
  3798. };
  3799. Object.defineProperties( VNode.prototype, prototypeAccessors );
  3800. var createEmptyVNode = function (text) {
  3801. if ( text === void 0 ) text = '';
  3802. var node = new VNode();
  3803. node.text = text;
  3804. node.isComment = true;
  3805. return node
  3806. };
  3807. function createTextVNode (val) {
  3808. return new VNode(undefined, undefined, undefined, String(val))
  3809. }
  3810. // optimized shallow clone
  3811. // used for static nodes and slot nodes because they may be reused across
  3812. // multiple renders, cloning them avoids errors when DOM manipulations rely
  3813. // on their elm reference.
  3814. function cloneVNode (vnode) {
  3815. var cloned = new VNode(
  3816. vnode.tag,
  3817. vnode.data,
  3818. // #7975
  3819. // clone children array to avoid mutating original in case of cloning
  3820. // a child.
  3821. vnode.children && vnode.children.slice(),
  3822. vnode.text,
  3823. vnode.elm,
  3824. vnode.context,
  3825. vnode.componentOptions,
  3826. vnode.asyncFactory
  3827. );
  3828. cloned.ns = vnode.ns;
  3829. cloned.isStatic = vnode.isStatic;
  3830. cloned.key = vnode.key;
  3831. cloned.isComment = vnode.isComment;
  3832. cloned.fnContext = vnode.fnContext;
  3833. cloned.fnOptions = vnode.fnOptions;
  3834. cloned.fnScopeId = vnode.fnScopeId;
  3835. cloned.asyncMeta = vnode.asyncMeta;
  3836. cloned.isCloned = true;
  3837. return cloned
  3838. }
  3839. /*
  3840. * not type checking this file because flow doesn't play well with
  3841. * dynamically accessing methods on Array prototype
  3842. */
  3843. var arrayProto = Array.prototype;
  3844. var arrayMethods = Object.create(arrayProto);
  3845. var methodsToPatch = [
  3846. 'push',
  3847. 'pop',
  3848. 'shift',
  3849. 'unshift',
  3850. 'splice',
  3851. 'sort',
  3852. 'reverse'
  3853. ];
  3854. /**
  3855. * Intercept mutating methods and emit events
  3856. */
  3857. methodsToPatch.forEach(function (method) {
  3858. // cache original method
  3859. var original = arrayProto[method];
  3860. def(arrayMethods, method, function mutator () {
  3861. var args = [], len = arguments.length;
  3862. while ( len-- ) args[ len ] = arguments[ len ];
  3863. var result = original.apply(this, args);
  3864. var ob = this.__ob__;
  3865. var inserted;
  3866. switch (method) {
  3867. case 'push':
  3868. case 'unshift':
  3869. inserted = args;
  3870. break
  3871. case 'splice':
  3872. inserted = args.slice(2);
  3873. break
  3874. }
  3875. if (inserted) { ob.observeArray(inserted); }
  3876. // notify change
  3877. ob.dep.notify();
  3878. return result
  3879. });
  3880. });
  3881. /* */
  3882. var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
  3883. /**
  3884. * In some cases we may want to disable observation inside a component's
  3885. * update computation.
  3886. */
  3887. var shouldObserve = true;
  3888. function toggleObserving (value) {
  3889. shouldObserve = value;
  3890. }
  3891. /**
  3892. * Observer class that is attached to each observed
  3893. * object. Once attached, the observer converts the target
  3894. * object's property keys into getter/setters that
  3895. * collect dependencies and dispatch updates.
  3896. */
  3897. var Observer = function Observer (value) {
  3898. this.value = value;
  3899. this.dep = new Dep();
  3900. this.vmCount = 0;
  3901. def(value, '__ob__', this);
  3902. if (Array.isArray(value)) {
  3903. if (hasProto) {
  3904. {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑
  3905. if(value.push !== value.__proto__.push){
  3906. copyAugment(value, arrayMethods, arrayKeys);
  3907. } else {
  3908. protoAugment(value, arrayMethods);
  3909. }
  3910. }
  3911. } else {
  3912. copyAugment(value, arrayMethods, arrayKeys);
  3913. }
  3914. this.observeArray(value);
  3915. } else {
  3916. this.walk(value);
  3917. }
  3918. };
  3919. /**
  3920. * Walk through all properties and convert them into
  3921. * getter/setters. This method should only be called when
  3922. * value type is Object.
  3923. */
  3924. Observer.prototype.walk = function walk (obj) {
  3925. var keys = Object.keys(obj);
  3926. for (var i = 0; i < keys.length; i++) {
  3927. defineReactive$$1(obj, keys[i]);
  3928. }
  3929. };
  3930. /**
  3931. * Observe a list of Array items.
  3932. */
  3933. Observer.prototype.observeArray = function observeArray (items) {
  3934. for (var i = 0, l = items.length; i < l; i++) {
  3935. observe(items[i]);
  3936. }
  3937. };
  3938. // helpers
  3939. /**
  3940. * Augment a target Object or Array by intercepting
  3941. * the prototype chain using __proto__
  3942. */
  3943. function protoAugment (target, src) {
  3944. /* eslint-disable no-proto */
  3945. target.__proto__ = src;
  3946. /* eslint-enable no-proto */
  3947. }
  3948. /**
  3949. * Augment a target Object or Array by defining
  3950. * hidden properties.
  3951. */
  3952. /* istanbul ignore next */
  3953. function copyAugment (target, src, keys) {
  3954. for (var i = 0, l = keys.length; i < l; i++) {
  3955. var key = keys[i];
  3956. def(target, key, src[key]);
  3957. }
  3958. }
  3959. /**
  3960. * Attempt to create an observer instance for a value,
  3961. * returns the new observer if successfully observed,
  3962. * or the existing observer if the value already has one.
  3963. */
  3964. function observe (value, asRootData) {
  3965. if (!isObject(value) || value instanceof VNode) {
  3966. return
  3967. }
  3968. var ob;
  3969. if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
  3970. ob = value.__ob__;
  3971. } else if (
  3972. shouldObserve &&
  3973. !isServerRendering() &&
  3974. (Array.isArray(value) || isPlainObject(value)) &&
  3975. Object.isExtensible(value) &&
  3976. !value._isVue
  3977. ) {
  3978. ob = new Observer(value);
  3979. }
  3980. if (asRootData && ob) {
  3981. ob.vmCount++;
  3982. }
  3983. return ob
  3984. }
  3985. /**
  3986. * Define a reactive property on an Object.
  3987. */
  3988. function defineReactive$$1 (
  3989. obj,
  3990. key,
  3991. val,
  3992. customSetter,
  3993. shallow
  3994. ) {
  3995. var dep = new Dep();
  3996. var property = Object.getOwnPropertyDescriptor(obj, key);
  3997. if (property && property.configurable === false) {
  3998. return
  3999. }
  4000. // cater for pre-defined getter/setters
  4001. var getter = property && property.get;
  4002. var setter = property && property.set;
  4003. if ((!getter || setter) && arguments.length === 2) {
  4004. val = obj[key];
  4005. }
  4006. var childOb = !shallow && observe(val);
  4007. Object.defineProperty(obj, key, {
  4008. enumerable: true,
  4009. configurable: true,
  4010. get: function reactiveGetter () {
  4011. var value = getter ? getter.call(obj) : val;
  4012. if (Dep.SharedObject.target) { // fixed by xxxxxx
  4013. dep.depend();
  4014. if (childOb) {
  4015. childOb.dep.depend();
  4016. if (Array.isArray(value)) {
  4017. dependArray(value);
  4018. }
  4019. }
  4020. }
  4021. return value
  4022. },
  4023. set: function reactiveSetter (newVal) {
  4024. var value = getter ? getter.call(obj) : val;
  4025. /* eslint-disable no-self-compare */
  4026. if (newVal === value || (newVal !== newVal && value !== value)) {
  4027. return
  4028. }
  4029. /* eslint-enable no-self-compare */
  4030. if ( true && customSetter) {
  4031. customSetter();
  4032. }
  4033. // #7981: for accessor properties without setter
  4034. if (getter && !setter) { return }
  4035. if (setter) {
  4036. setter.call(obj, newVal);
  4037. } else {
  4038. val = newVal;
  4039. }
  4040. childOb = !shallow && observe(newVal);
  4041. dep.notify();
  4042. }
  4043. });
  4044. }
  4045. /**
  4046. * Set a property on an object. Adds the new property and
  4047. * triggers change notification if the property doesn't
  4048. * already exist.
  4049. */
  4050. function set (target, key, val) {
  4051. if ( true &&
  4052. (isUndef(target) || isPrimitive(target))
  4053. ) {
  4054. warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
  4055. }
  4056. if (Array.isArray(target) && isValidArrayIndex(key)) {
  4057. target.length = Math.max(target.length, key);
  4058. target.splice(key, 1, val);
  4059. return val
  4060. }
  4061. if (key in target && !(key in Object.prototype)) {
  4062. target[key] = val;
  4063. return val
  4064. }
  4065. var ob = (target).__ob__;
  4066. if (target._isVue || (ob && ob.vmCount)) {
  4067. true && warn(
  4068. 'Avoid adding reactive properties to a Vue instance or its root $data ' +
  4069. 'at runtime - declare it upfront in the data option.'
  4070. );
  4071. return val
  4072. }
  4073. if (!ob) {
  4074. target[key] = val;
  4075. return val
  4076. }
  4077. defineReactive$$1(ob.value, key, val);
  4078. ob.dep.notify();
  4079. return val
  4080. }
  4081. /**
  4082. * Delete a property and trigger change if necessary.
  4083. */
  4084. function del (target, key) {
  4085. if ( true &&
  4086. (isUndef(target) || isPrimitive(target))
  4087. ) {
  4088. warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
  4089. }
  4090. if (Array.isArray(target) && isValidArrayIndex(key)) {
  4091. target.splice(key, 1);
  4092. return
  4093. }
  4094. var ob = (target).__ob__;
  4095. if (target._isVue || (ob && ob.vmCount)) {
  4096. true && warn(
  4097. 'Avoid deleting properties on a Vue instance or its root $data ' +
  4098. '- just set it to null.'
  4099. );
  4100. return
  4101. }
  4102. if (!hasOwn(target, key)) {
  4103. return
  4104. }
  4105. delete target[key];
  4106. if (!ob) {
  4107. return
  4108. }
  4109. ob.dep.notify();
  4110. }
  4111. /**
  4112. * Collect dependencies on array elements when the array is touched, since
  4113. * we cannot intercept array element access like property getters.
  4114. */
  4115. function dependArray (value) {
  4116. for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
  4117. e = value[i];
  4118. e && e.__ob__ && e.__ob__.dep.depend();
  4119. if (Array.isArray(e)) {
  4120. dependArray(e);
  4121. }
  4122. }
  4123. }
  4124. /* */
  4125. /**
  4126. * Option overwriting strategies are functions that handle
  4127. * how to merge a parent option value and a child option
  4128. * value into the final value.
  4129. */
  4130. var strats = config.optionMergeStrategies;
  4131. /**
  4132. * Options with restrictions
  4133. */
  4134. if (true) {
  4135. strats.el = strats.propsData = function (parent, child, vm, key) {
  4136. if (!vm) {
  4137. warn(
  4138. "option \"" + key + "\" can only be used during instance " +
  4139. 'creation with the `new` keyword.'
  4140. );
  4141. }
  4142. return defaultStrat(parent, child)
  4143. };
  4144. }
  4145. /**
  4146. * Helper that recursively merges two data objects together.
  4147. */
  4148. function mergeData (to, from) {
  4149. if (!from) { return to }
  4150. var key, toVal, fromVal;
  4151. var keys = hasSymbol
  4152. ? Reflect.ownKeys(from)
  4153. : Object.keys(from);
  4154. for (var i = 0; i < keys.length; i++) {
  4155. key = keys[i];
  4156. // in case the object is already observed...
  4157. if (key === '__ob__') { continue }
  4158. toVal = to[key];
  4159. fromVal = from[key];
  4160. if (!hasOwn(to, key)) {
  4161. set(to, key, fromVal);
  4162. } else if (
  4163. toVal !== fromVal &&
  4164. isPlainObject(toVal) &&
  4165. isPlainObject(fromVal)
  4166. ) {
  4167. mergeData(toVal, fromVal);
  4168. }
  4169. }
  4170. return to
  4171. }
  4172. /**
  4173. * Data
  4174. */
  4175. function mergeDataOrFn (
  4176. parentVal,
  4177. childVal,
  4178. vm
  4179. ) {
  4180. if (!vm) {
  4181. // in a Vue.extend merge, both should be functions
  4182. if (!childVal) {
  4183. return parentVal
  4184. }
  4185. if (!parentVal) {
  4186. return childVal
  4187. }
  4188. // when parentVal & childVal are both present,
  4189. // we need to return a function that returns the
  4190. // merged result of both functions... no need to
  4191. // check if parentVal is a function here because
  4192. // it has to be a function to pass previous merges.
  4193. return function mergedDataFn () {
  4194. return mergeData(
  4195. typeof childVal === 'function' ? childVal.call(this, this) : childVal,
  4196. typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
  4197. )
  4198. }
  4199. } else {
  4200. return function mergedInstanceDataFn () {
  4201. // instance merge
  4202. var instanceData = typeof childVal === 'function'
  4203. ? childVal.call(vm, vm)
  4204. : childVal;
  4205. var defaultData = typeof parentVal === 'function'
  4206. ? parentVal.call(vm, vm)
  4207. : parentVal;
  4208. if (instanceData) {
  4209. return mergeData(instanceData, defaultData)
  4210. } else {
  4211. return defaultData
  4212. }
  4213. }
  4214. }
  4215. }
  4216. strats.data = function (
  4217. parentVal,
  4218. childVal,
  4219. vm
  4220. ) {
  4221. if (!vm) {
  4222. if (childVal && typeof childVal !== 'function') {
  4223. true && warn(
  4224. 'The "data" option should be a function ' +
  4225. 'that returns a per-instance value in component ' +
  4226. 'definitions.',
  4227. vm
  4228. );
  4229. return parentVal
  4230. }
  4231. return mergeDataOrFn(parentVal, childVal)
  4232. }
  4233. return mergeDataOrFn(parentVal, childVal, vm)
  4234. };
  4235. /**
  4236. * Hooks and props are merged as arrays.
  4237. */
  4238. function mergeHook (
  4239. parentVal,
  4240. childVal
  4241. ) {
  4242. var res = childVal
  4243. ? parentVal
  4244. ? parentVal.concat(childVal)
  4245. : Array.isArray(childVal)
  4246. ? childVal
  4247. : [childVal]
  4248. : parentVal;
  4249. return res
  4250. ? dedupeHooks(res)
  4251. : res
  4252. }
  4253. function dedupeHooks (hooks) {
  4254. var res = [];
  4255. for (var i = 0; i < hooks.length; i++) {
  4256. if (res.indexOf(hooks[i]) === -1) {
  4257. res.push(hooks[i]);
  4258. }
  4259. }
  4260. return res
  4261. }
  4262. LIFECYCLE_HOOKS.forEach(function (hook) {
  4263. strats[hook] = mergeHook;
  4264. });
  4265. /**
  4266. * Assets
  4267. *
  4268. * When a vm is present (instance creation), we need to do
  4269. * a three-way merge between constructor options, instance
  4270. * options and parent options.
  4271. */
  4272. function mergeAssets (
  4273. parentVal,
  4274. childVal,
  4275. vm,
  4276. key
  4277. ) {
  4278. var res = Object.create(parentVal || null);
  4279. if (childVal) {
  4280. true && assertObjectType(key, childVal, vm);
  4281. return extend(res, childVal)
  4282. } else {
  4283. return res
  4284. }
  4285. }
  4286. ASSET_TYPES.forEach(function (type) {
  4287. strats[type + 's'] = mergeAssets;
  4288. });
  4289. /**
  4290. * Watchers.
  4291. *
  4292. * Watchers hashes should not overwrite one
  4293. * another, so we merge them as arrays.
  4294. */
  4295. strats.watch = function (
  4296. parentVal,
  4297. childVal,
  4298. vm,
  4299. key
  4300. ) {
  4301. // work around Firefox's Object.prototype.watch...
  4302. if (parentVal === nativeWatch) { parentVal = undefined; }
  4303. if (childVal === nativeWatch) { childVal = undefined; }
  4304. /* istanbul ignore if */
  4305. if (!childVal) { return Object.create(parentVal || null) }
  4306. if (true) {
  4307. assertObjectType(key, childVal, vm);
  4308. }
  4309. if (!parentVal) { return childVal }
  4310. var ret = {};
  4311. extend(ret, parentVal);
  4312. for (var key$1 in childVal) {
  4313. var parent = ret[key$1];
  4314. var child = childVal[key$1];
  4315. if (parent && !Array.isArray(parent)) {
  4316. parent = [parent];
  4317. }
  4318. ret[key$1] = parent
  4319. ? parent.concat(child)
  4320. : Array.isArray(child) ? child : [child];
  4321. }
  4322. return ret
  4323. };
  4324. /**
  4325. * Other object hashes.
  4326. */
  4327. strats.props =
  4328. strats.methods =
  4329. strats.inject =
  4330. strats.computed = function (
  4331. parentVal,
  4332. childVal,
  4333. vm,
  4334. key
  4335. ) {
  4336. if (childVal && "development" !== 'production') {
  4337. assertObjectType(key, childVal, vm);
  4338. }
  4339. if (!parentVal) { return childVal }
  4340. var ret = Object.create(null);
  4341. extend(ret, parentVal);
  4342. if (childVal) { extend(ret, childVal); }
  4343. return ret
  4344. };
  4345. strats.provide = mergeDataOrFn;
  4346. /**
  4347. * Default strategy.
  4348. */
  4349. var defaultStrat = function (parentVal, childVal) {
  4350. return childVal === undefined
  4351. ? parentVal
  4352. : childVal
  4353. };
  4354. /**
  4355. * Validate component names
  4356. */
  4357. function checkComponents (options) {
  4358. for (var key in options.components) {
  4359. validateComponentName(key);
  4360. }
  4361. }
  4362. function validateComponentName (name) {
  4363. if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
  4364. warn(
  4365. 'Invalid component name: "' + name + '". Component names ' +
  4366. 'should conform to valid custom element name in html5 specification.'
  4367. );
  4368. }
  4369. if (isBuiltInTag(name) || config.isReservedTag(name)) {
  4370. warn(
  4371. 'Do not use built-in or reserved HTML elements as component ' +
  4372. 'id: ' + name
  4373. );
  4374. }
  4375. }
  4376. /**
  4377. * Ensure all props option syntax are normalized into the
  4378. * Object-based format.
  4379. */
  4380. function normalizeProps (options, vm) {
  4381. var props = options.props;
  4382. if (!props) { return }
  4383. var res = {};
  4384. var i, val, name;
  4385. if (Array.isArray(props)) {
  4386. i = props.length;
  4387. while (i--) {
  4388. val = props[i];
  4389. if (typeof val === 'string') {
  4390. name = camelize(val);
  4391. res[name] = { type: null };
  4392. } else if (true) {
  4393. warn('props must be strings when using array syntax.');
  4394. }
  4395. }
  4396. } else if (isPlainObject(props)) {
  4397. for (var key in props) {
  4398. val = props[key];
  4399. name = camelize(key);
  4400. res[name] = isPlainObject(val)
  4401. ? val
  4402. : { type: val };
  4403. }
  4404. } else if (true) {
  4405. warn(
  4406. "Invalid value for option \"props\": expected an Array or an Object, " +
  4407. "but got " + (toRawType(props)) + ".",
  4408. vm
  4409. );
  4410. }
  4411. options.props = res;
  4412. }
  4413. /**
  4414. * Normalize all injections into Object-based format
  4415. */
  4416. function normalizeInject (options, vm) {
  4417. var inject = options.inject;
  4418. if (!inject) { return }
  4419. var normalized = options.inject = {};
  4420. if (Array.isArray(inject)) {
  4421. for (var i = 0; i < inject.length; i++) {
  4422. normalized[inject[i]] = { from: inject[i] };
  4423. }
  4424. } else if (isPlainObject(inject)) {
  4425. for (var key in inject) {
  4426. var val = inject[key];
  4427. normalized[key] = isPlainObject(val)
  4428. ? extend({ from: key }, val)
  4429. : { from: val };
  4430. }
  4431. } else if (true) {
  4432. warn(
  4433. "Invalid value for option \"inject\": expected an Array or an Object, " +
  4434. "but got " + (toRawType(inject)) + ".",
  4435. vm
  4436. );
  4437. }
  4438. }
  4439. /**
  4440. * Normalize raw function directives into object format.
  4441. */
  4442. function normalizeDirectives (options) {
  4443. var dirs = options.directives;
  4444. if (dirs) {
  4445. for (var key in dirs) {
  4446. var def$$1 = dirs[key];
  4447. if (typeof def$$1 === 'function') {
  4448. dirs[key] = { bind: def$$1, update: def$$1 };
  4449. }
  4450. }
  4451. }
  4452. }
  4453. function assertObjectType (name, value, vm) {
  4454. if (!isPlainObject(value)) {
  4455. warn(
  4456. "Invalid value for option \"" + name + "\": expected an Object, " +
  4457. "but got " + (toRawType(value)) + ".",
  4458. vm
  4459. );
  4460. }
  4461. }
  4462. /**
  4463. * Merge two option objects into a new one.
  4464. * Core utility used in both instantiation and inheritance.
  4465. */
  4466. function mergeOptions (
  4467. parent,
  4468. child,
  4469. vm
  4470. ) {
  4471. if (true) {
  4472. checkComponents(child);
  4473. }
  4474. if (typeof child === 'function') {
  4475. child = child.options;
  4476. }
  4477. normalizeProps(child, vm);
  4478. normalizeInject(child, vm);
  4479. normalizeDirectives(child);
  4480. // Apply extends and mixins on the child options,
  4481. // but only if it is a raw options object that isn't
  4482. // the result of another mergeOptions call.
  4483. // Only merged options has the _base property.
  4484. if (!child._base) {
  4485. if (child.extends) {
  4486. parent = mergeOptions(parent, child.extends, vm);
  4487. }
  4488. if (child.mixins) {
  4489. for (var i = 0, l = child.mixins.length; i < l; i++) {
  4490. parent = mergeOptions(parent, child.mixins[i], vm);
  4491. }
  4492. }
  4493. }
  4494. var options = {};
  4495. var key;
  4496. for (key in parent) {
  4497. mergeField(key);
  4498. }
  4499. for (key in child) {
  4500. if (!hasOwn(parent, key)) {
  4501. mergeField(key);
  4502. }
  4503. }
  4504. function mergeField (key) {
  4505. var strat = strats[key] || defaultStrat;
  4506. options[key] = strat(parent[key], child[key], vm, key);
  4507. }
  4508. return options
  4509. }
  4510. /**
  4511. * Resolve an asset.
  4512. * This function is used because child instances need access
  4513. * to assets defined in its ancestor chain.
  4514. */
  4515. function resolveAsset (
  4516. options,
  4517. type,
  4518. id,
  4519. warnMissing
  4520. ) {
  4521. /* istanbul ignore if */
  4522. if (typeof id !== 'string') {
  4523. return
  4524. }
  4525. var assets = options[type];
  4526. // check local registration variations first
  4527. if (hasOwn(assets, id)) { return assets[id] }
  4528. var camelizedId = camelize(id);
  4529. if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
  4530. var PascalCaseId = capitalize(camelizedId);
  4531. if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
  4532. // fallback to prototype chain
  4533. var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
  4534. if ( true && warnMissing && !res) {
  4535. warn(
  4536. 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
  4537. options
  4538. );
  4539. }
  4540. return res
  4541. }
  4542. /* */
  4543. function validateProp (
  4544. key,
  4545. propOptions,
  4546. propsData,
  4547. vm
  4548. ) {
  4549. var prop = propOptions[key];
  4550. var absent = !hasOwn(propsData, key);
  4551. var value = propsData[key];
  4552. // boolean casting
  4553. var booleanIndex = getTypeIndex(Boolean, prop.type);
  4554. if (booleanIndex > -1) {
  4555. if (absent && !hasOwn(prop, 'default')) {
  4556. value = false;
  4557. } else if (value === '' || value === hyphenate(key)) {
  4558. // only cast empty string / same name to boolean if
  4559. // boolean has higher priority
  4560. var stringIndex = getTypeIndex(String, prop.type);
  4561. if (stringIndex < 0 || booleanIndex < stringIndex) {
  4562. value = true;
  4563. }
  4564. }
  4565. }
  4566. // check default value
  4567. if (value === undefined) {
  4568. value = getPropDefaultValue(vm, prop, key);
  4569. // since the default value is a fresh copy,
  4570. // make sure to observe it.
  4571. var prevShouldObserve = shouldObserve;
  4572. toggleObserving(true);
  4573. observe(value);
  4574. toggleObserving(prevShouldObserve);
  4575. }
  4576. if (
  4577. true
  4578. ) {
  4579. assertProp(prop, key, value, vm, absent);
  4580. }
  4581. return value
  4582. }
  4583. /**
  4584. * Get the default value of a prop.
  4585. */
  4586. function getPropDefaultValue (vm, prop, key) {
  4587. // no default, return undefined
  4588. if (!hasOwn(prop, 'default')) {
  4589. return undefined
  4590. }
  4591. var def = prop.default;
  4592. // warn against non-factory defaults for Object & Array
  4593. if ( true && isObject(def)) {
  4594. warn(
  4595. 'Invalid default value for prop "' + key + '": ' +
  4596. 'Props with type Object/Array must use a factory function ' +
  4597. 'to return the default value.',
  4598. vm
  4599. );
  4600. }
  4601. // the raw prop value was also undefined from previous render,
  4602. // return previous default value to avoid unnecessary watcher trigger
  4603. if (vm && vm.$options.propsData &&
  4604. vm.$options.propsData[key] === undefined &&
  4605. vm._props[key] !== undefined
  4606. ) {
  4607. return vm._props[key]
  4608. }
  4609. // call factory function for non-Function types
  4610. // a value is Function if its prototype is function even across different execution context
  4611. return typeof def === 'function' && getType(prop.type) !== 'Function'
  4612. ? def.call(vm)
  4613. : def
  4614. }
  4615. /**
  4616. * Assert whether a prop is valid.
  4617. */
  4618. function assertProp (
  4619. prop,
  4620. name,
  4621. value,
  4622. vm,
  4623. absent
  4624. ) {
  4625. if (prop.required && absent) {
  4626. warn(
  4627. 'Missing required prop: "' + name + '"',
  4628. vm
  4629. );
  4630. return
  4631. }
  4632. if (value == null && !prop.required) {
  4633. return
  4634. }
  4635. var type = prop.type;
  4636. var valid = !type || type === true;
  4637. var expectedTypes = [];
  4638. if (type) {
  4639. if (!Array.isArray(type)) {
  4640. type = [type];
  4641. }
  4642. for (var i = 0; i < type.length && !valid; i++) {
  4643. var assertedType = assertType(value, type[i]);
  4644. expectedTypes.push(assertedType.expectedType || '');
  4645. valid = assertedType.valid;
  4646. }
  4647. }
  4648. if (!valid) {
  4649. warn(
  4650. getInvalidTypeMessage(name, value, expectedTypes),
  4651. vm
  4652. );
  4653. return
  4654. }
  4655. var validator = prop.validator;
  4656. if (validator) {
  4657. if (!validator(value)) {
  4658. warn(
  4659. 'Invalid prop: custom validator check failed for prop "' + name + '".',
  4660. vm
  4661. );
  4662. }
  4663. }
  4664. }
  4665. var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
  4666. function assertType (value, type) {
  4667. var valid;
  4668. var expectedType = getType(type);
  4669. if (simpleCheckRE.test(expectedType)) {
  4670. var t = typeof value;
  4671. valid = t === expectedType.toLowerCase();
  4672. // for primitive wrapper objects
  4673. if (!valid && t === 'object') {
  4674. valid = value instanceof type;
  4675. }
  4676. } else if (expectedType === 'Object') {
  4677. valid = isPlainObject(value);
  4678. } else if (expectedType === 'Array') {
  4679. valid = Array.isArray(value);
  4680. } else {
  4681. valid = value instanceof type;
  4682. }
  4683. return {
  4684. valid: valid,
  4685. expectedType: expectedType
  4686. }
  4687. }
  4688. /**
  4689. * Use function string name to check built-in types,
  4690. * because a simple equality check will fail when running
  4691. * across different vms / iframes.
  4692. */
  4693. function getType (fn) {
  4694. var match = fn && fn.toString().match(/^\s*function (\w+)/);
  4695. return match ? match[1] : ''
  4696. }
  4697. function isSameType (a, b) {
  4698. return getType(a) === getType(b)
  4699. }
  4700. function getTypeIndex (type, expectedTypes) {
  4701. if (!Array.isArray(expectedTypes)) {
  4702. return isSameType(expectedTypes, type) ? 0 : -1
  4703. }
  4704. for (var i = 0, len = expectedTypes.length; i < len; i++) {
  4705. if (isSameType(expectedTypes[i], type)) {
  4706. return i
  4707. }
  4708. }
  4709. return -1
  4710. }
  4711. function getInvalidTypeMessage (name, value, expectedTypes) {
  4712. var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
  4713. " Expected " + (expectedTypes.map(capitalize).join(', '));
  4714. var expectedType = expectedTypes[0];
  4715. var receivedType = toRawType(value);
  4716. var expectedValue = styleValue(value, expectedType);
  4717. var receivedValue = styleValue(value, receivedType);
  4718. // check if we need to specify expected value
  4719. if (expectedTypes.length === 1 &&
  4720. isExplicable(expectedType) &&
  4721. !isBoolean(expectedType, receivedType)) {
  4722. message += " with value " + expectedValue;
  4723. }
  4724. message += ", got " + receivedType + " ";
  4725. // check if we need to specify received value
  4726. if (isExplicable(receivedType)) {
  4727. message += "with value " + receivedValue + ".";
  4728. }
  4729. return message
  4730. }
  4731. function styleValue (value, type) {
  4732. if (type === 'String') {
  4733. return ("\"" + value + "\"")
  4734. } else if (type === 'Number') {
  4735. return ("" + (Number(value)))
  4736. } else {
  4737. return ("" + value)
  4738. }
  4739. }
  4740. function isExplicable (value) {
  4741. var explicitTypes = ['string', 'number', 'boolean'];
  4742. return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
  4743. }
  4744. function isBoolean () {
  4745. var args = [], len = arguments.length;
  4746. while ( len-- ) args[ len ] = arguments[ len ];
  4747. return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
  4748. }
  4749. /* */
  4750. function handleError (err, vm, info) {
  4751. // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
  4752. // See: https://github.com/vuejs/vuex/issues/1505
  4753. pushTarget();
  4754. try {
  4755. if (vm) {
  4756. var cur = vm;
  4757. while ((cur = cur.$parent)) {
  4758. var hooks = cur.$options.errorCaptured;
  4759. if (hooks) {
  4760. for (var i = 0; i < hooks.length; i++) {
  4761. try {
  4762. var capture = hooks[i].call(cur, err, vm, info) === false;
  4763. if (capture) { return }
  4764. } catch (e) {
  4765. globalHandleError(e, cur, 'errorCaptured hook');
  4766. }
  4767. }
  4768. }
  4769. }
  4770. }
  4771. globalHandleError(err, vm, info);
  4772. } finally {
  4773. popTarget();
  4774. }
  4775. }
  4776. function invokeWithErrorHandling (
  4777. handler,
  4778. context,
  4779. args,
  4780. vm,
  4781. info
  4782. ) {
  4783. var res;
  4784. try {
  4785. res = args ? handler.apply(context, args) : handler.call(context);
  4786. if (res && !res._isVue && isPromise(res) && !res._handled) {
  4787. res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
  4788. // issue #9511
  4789. // avoid catch triggering multiple times when nested calls
  4790. res._handled = true;
  4791. }
  4792. } catch (e) {
  4793. handleError(e, vm, info);
  4794. }
  4795. return res
  4796. }
  4797. function globalHandleError (err, vm, info) {
  4798. if (config.errorHandler) {
  4799. try {
  4800. return config.errorHandler.call(null, err, vm, info)
  4801. } catch (e) {
  4802. // if the user intentionally throws the original error in the handler,
  4803. // do not log it twice
  4804. if (e !== err) {
  4805. logError(e, null, 'config.errorHandler');
  4806. }
  4807. }
  4808. }
  4809. logError(err, vm, info);
  4810. }
  4811. function logError (err, vm, info) {
  4812. if (true) {
  4813. warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
  4814. }
  4815. /* istanbul ignore else */
  4816. if ((inBrowser || inWeex) && typeof console !== 'undefined') {
  4817. console.error(err);
  4818. } else {
  4819. throw err
  4820. }
  4821. }
  4822. /* */
  4823. var callbacks = [];
  4824. var pending = false;
  4825. function flushCallbacks () {
  4826. pending = false;
  4827. var copies = callbacks.slice(0);
  4828. callbacks.length = 0;
  4829. for (var i = 0; i < copies.length; i++) {
  4830. copies[i]();
  4831. }
  4832. }
  4833. // Here we have async deferring wrappers using microtasks.
  4834. // In 2.5 we used (macro) tasks (in combination with microtasks).
  4835. // However, it has subtle problems when state is changed right before repaint
  4836. // (e.g. #6813, out-in transitions).
  4837. // Also, using (macro) tasks in event handler would cause some weird behaviors
  4838. // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
  4839. // So we now use microtasks everywhere, again.
  4840. // A major drawback of this tradeoff is that there are some scenarios
  4841. // where microtasks have too high a priority and fire in between supposedly
  4842. // sequential events (e.g. #4521, #6690, which have workarounds)
  4843. // or even between bubbling of the same event (#6566).
  4844. var timerFunc;
  4845. // The nextTick behavior leverages the microtask queue, which can be accessed
  4846. // via either native Promise.then or MutationObserver.
  4847. // MutationObserver has wider support, however it is seriously bugged in
  4848. // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
  4849. // completely stops working after triggering a few times... so, if native
  4850. // Promise is available, we will use it:
  4851. /* istanbul ignore next, $flow-disable-line */
  4852. if (typeof Promise !== 'undefined' && isNative(Promise)) {
  4853. var p = Promise.resolve();
  4854. timerFunc = function () {
  4855. p.then(flushCallbacks);
  4856. // In problematic UIWebViews, Promise.then doesn't completely break, but
  4857. // it can get stuck in a weird state where callbacks are pushed into the
  4858. // microtask queue but the queue isn't being flushed, until the browser
  4859. // needs to do some other work, e.g. handle a timer. Therefore we can
  4860. // "force" the microtask queue to be flushed by adding an empty timer.
  4861. if (isIOS) { setTimeout(noop); }
  4862. };
  4863. } else if (!isIE && typeof MutationObserver !== 'undefined' && (
  4864. isNative(MutationObserver) ||
  4865. // PhantomJS and iOS 7.x
  4866. MutationObserver.toString() === '[object MutationObserverConstructor]'
  4867. )) {
  4868. // Use MutationObserver where native Promise is not available,
  4869. // e.g. PhantomJS, iOS7, Android 4.4
  4870. // (#6466 MutationObserver is unreliable in IE11)
  4871. var counter = 1;
  4872. var observer = new MutationObserver(flushCallbacks);
  4873. var textNode = document.createTextNode(String(counter));
  4874. observer.observe(textNode, {
  4875. characterData: true
  4876. });
  4877. timerFunc = function () {
  4878. counter = (counter + 1) % 2;
  4879. textNode.data = String(counter);
  4880. };
  4881. } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
  4882. // Fallback to setImmediate.
  4883. // Technically it leverages the (macro) task queue,
  4884. // but it is still a better choice than setTimeout.
  4885. timerFunc = function () {
  4886. setImmediate(flushCallbacks);
  4887. };
  4888. } else {
  4889. // Fallback to setTimeout.
  4890. timerFunc = function () {
  4891. setTimeout(flushCallbacks, 0);
  4892. };
  4893. }
  4894. function nextTick (cb, ctx) {
  4895. var _resolve;
  4896. callbacks.push(function () {
  4897. if (cb) {
  4898. try {
  4899. cb.call(ctx);
  4900. } catch (e) {
  4901. handleError(e, ctx, 'nextTick');
  4902. }
  4903. } else if (_resolve) {
  4904. _resolve(ctx);
  4905. }
  4906. });
  4907. if (!pending) {
  4908. pending = true;
  4909. timerFunc();
  4910. }
  4911. // $flow-disable-line
  4912. if (!cb && typeof Promise !== 'undefined') {
  4913. return new Promise(function (resolve) {
  4914. _resolve = resolve;
  4915. })
  4916. }
  4917. }
  4918. /* */
  4919. /* not type checking this file because flow doesn't play well with Proxy */
  4920. var initProxy;
  4921. if (true) {
  4922. var allowedGlobals = makeMap(
  4923. 'Infinity,undefined,NaN,isFinite,isNaN,' +
  4924. 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
  4925. 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
  4926. 'require' // for Webpack/Browserify
  4927. );
  4928. var warnNonPresent = function (target, key) {
  4929. warn(
  4930. "Property or method \"" + key + "\" is not defined on the instance but " +
  4931. 'referenced during render. Make sure that this property is reactive, ' +
  4932. 'either in the data option, or for class-based components, by ' +
  4933. 'initializing the property. ' +
  4934. 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
  4935. target
  4936. );
  4937. };
  4938. var warnReservedPrefix = function (target, key) {
  4939. warn(
  4940. "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
  4941. 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
  4942. 'prevent conflicts with Vue internals. ' +
  4943. 'See: https://vuejs.org/v2/api/#data',
  4944. target
  4945. );
  4946. };
  4947. var hasProxy =
  4948. typeof Proxy !== 'undefined' && isNative(Proxy);
  4949. if (hasProxy) {
  4950. var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
  4951. config.keyCodes = new Proxy(config.keyCodes, {
  4952. set: function set (target, key, value) {
  4953. if (isBuiltInModifier(key)) {
  4954. warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
  4955. return false
  4956. } else {
  4957. target[key] = value;
  4958. return true
  4959. }
  4960. }
  4961. });
  4962. }
  4963. var hasHandler = {
  4964. has: function has (target, key) {
  4965. var has = key in target;
  4966. var isAllowed = allowedGlobals(key) ||
  4967. (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
  4968. if (!has && !isAllowed) {
  4969. if (key in target.$data) { warnReservedPrefix(target, key); }
  4970. else { warnNonPresent(target, key); }
  4971. }
  4972. return has || !isAllowed
  4973. }
  4974. };
  4975. var getHandler = {
  4976. get: function get (target, key) {
  4977. if (typeof key === 'string' && !(key in target)) {
  4978. if (key in target.$data) { warnReservedPrefix(target, key); }
  4979. else { warnNonPresent(target, key); }
  4980. }
  4981. return target[key]
  4982. }
  4983. };
  4984. initProxy = function initProxy (vm) {
  4985. if (hasProxy) {
  4986. // determine which proxy handler to use
  4987. var options = vm.$options;
  4988. var handlers = options.render && options.render._withStripped
  4989. ? getHandler
  4990. : hasHandler;
  4991. vm._renderProxy = new Proxy(vm, handlers);
  4992. } else {
  4993. vm._renderProxy = vm;
  4994. }
  4995. };
  4996. }
  4997. /* */
  4998. var seenObjects = new _Set();
  4999. /**
  5000. * Recursively traverse an object to evoke all converted
  5001. * getters, so that every nested property inside the object
  5002. * is collected as a "deep" dependency.
  5003. */
  5004. function traverse (val) {
  5005. _traverse(val, seenObjects);
  5006. seenObjects.clear();
  5007. }
  5008. function _traverse (val, seen) {
  5009. var i, keys;
  5010. var isA = Array.isArray(val);
  5011. if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
  5012. return
  5013. }
  5014. if (val.__ob__) {
  5015. var depId = val.__ob__.dep.id;
  5016. if (seen.has(depId)) {
  5017. return
  5018. }
  5019. seen.add(depId);
  5020. }
  5021. if (isA) {
  5022. i = val.length;
  5023. while (i--) { _traverse(val[i], seen); }
  5024. } else {
  5025. keys = Object.keys(val);
  5026. i = keys.length;
  5027. while (i--) { _traverse(val[keys[i]], seen); }
  5028. }
  5029. }
  5030. var mark;
  5031. var measure;
  5032. if (true) {
  5033. var perf = inBrowser && window.performance;
  5034. /* istanbul ignore if */
  5035. if (
  5036. perf &&
  5037. perf.mark &&
  5038. perf.measure &&
  5039. perf.clearMarks &&
  5040. perf.clearMeasures
  5041. ) {
  5042. mark = function (tag) { return perf.mark(tag); };
  5043. measure = function (name, startTag, endTag) {
  5044. perf.measure(name, startTag, endTag);
  5045. perf.clearMarks(startTag);
  5046. perf.clearMarks(endTag);
  5047. // perf.clearMeasures(name)
  5048. };
  5049. }
  5050. }
  5051. /* */
  5052. var normalizeEvent = cached(function (name) {
  5053. var passive = name.charAt(0) === '&';
  5054. name = passive ? name.slice(1) : name;
  5055. var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
  5056. name = once$$1 ? name.slice(1) : name;
  5057. var capture = name.charAt(0) === '!';
  5058. name = capture ? name.slice(1) : name;
  5059. return {
  5060. name: name,
  5061. once: once$$1,
  5062. capture: capture,
  5063. passive: passive
  5064. }
  5065. });
  5066. function createFnInvoker (fns, vm) {
  5067. function invoker () {
  5068. var arguments$1 = arguments;
  5069. var fns = invoker.fns;
  5070. if (Array.isArray(fns)) {
  5071. var cloned = fns.slice();
  5072. for (var i = 0; i < cloned.length; i++) {
  5073. invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
  5074. }
  5075. } else {
  5076. // return handler return value for single handlers
  5077. return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler")
  5078. }
  5079. }
  5080. invoker.fns = fns;
  5081. return invoker
  5082. }
  5083. function updateListeners (
  5084. on,
  5085. oldOn,
  5086. add,
  5087. remove$$1,
  5088. createOnceHandler,
  5089. vm
  5090. ) {
  5091. var name, def$$1, cur, old, event;
  5092. for (name in on) {
  5093. def$$1 = cur = on[name];
  5094. old = oldOn[name];
  5095. event = normalizeEvent(name);
  5096. if (isUndef(cur)) {
  5097. true && warn(
  5098. "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
  5099. vm
  5100. );
  5101. } else if (isUndef(old)) {
  5102. if (isUndef(cur.fns)) {
  5103. cur = on[name] = createFnInvoker(cur, vm);
  5104. }
  5105. if (isTrue(event.once)) {
  5106. cur = on[name] = createOnceHandler(event.name, cur, event.capture);
  5107. }
  5108. add(event.name, cur, event.capture, event.passive, event.params);
  5109. } else if (cur !== old) {
  5110. old.fns = cur;
  5111. on[name] = old;
  5112. }
  5113. }
  5114. for (name in oldOn) {
  5115. if (isUndef(on[name])) {
  5116. event = normalizeEvent(name);
  5117. remove$$1(event.name, oldOn[name], event.capture);
  5118. }
  5119. }
  5120. }
  5121. /* */
  5122. /* */
  5123. // fixed by xxxxxx (mp properties)
  5124. function extractPropertiesFromVNodeData(data, Ctor, res, context) {
  5125. var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;
  5126. if (isUndef(propOptions)) {
  5127. return res
  5128. }
  5129. var externalClasses = Ctor.options.mpOptions.externalClasses || [];
  5130. var attrs = data.attrs;
  5131. var props = data.props;
  5132. if (isDef(attrs) || isDef(props)) {
  5133. for (var key in propOptions) {
  5134. var altKey = hyphenate(key);
  5135. var result = checkProp(res, props, key, altKey, true) ||
  5136. checkProp(res, attrs, key, altKey, false);
  5137. // externalClass
  5138. if (
  5139. result &&
  5140. res[key] &&
  5141. externalClasses.indexOf(altKey) !== -1 &&
  5142. context[camelize(res[key])]
  5143. ) {
  5144. // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)
  5145. res[key] = context[camelize(res[key])];
  5146. }
  5147. }
  5148. }
  5149. return res
  5150. }
  5151. function extractPropsFromVNodeData (
  5152. data,
  5153. Ctor,
  5154. tag,
  5155. context// fixed by xxxxxx
  5156. ) {
  5157. // we are only extracting raw values here.
  5158. // validation and default values are handled in the child
  5159. // component itself.
  5160. var propOptions = Ctor.options.props;
  5161. if (isUndef(propOptions)) {
  5162. // fixed by xxxxxx
  5163. return extractPropertiesFromVNodeData(data, Ctor, {}, context)
  5164. }
  5165. var res = {};
  5166. var attrs = data.attrs;
  5167. var props = data.props;
  5168. if (isDef(attrs) || isDef(props)) {
  5169. for (var key in propOptions) {
  5170. var altKey = hyphenate(key);
  5171. if (true) {
  5172. var keyInLowerCase = key.toLowerCase();
  5173. if (
  5174. key !== keyInLowerCase &&
  5175. attrs && hasOwn(attrs, keyInLowerCase)
  5176. ) {
  5177. tip(
  5178. "Prop \"" + keyInLowerCase + "\" is passed to component " +
  5179. (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
  5180. " \"" + key + "\". " +
  5181. "Note that HTML attributes are case-insensitive and camelCased " +
  5182. "props need to use their kebab-case equivalents when using in-DOM " +
  5183. "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
  5184. );
  5185. }
  5186. }
  5187. checkProp(res, props, key, altKey, true) ||
  5188. checkProp(res, attrs, key, altKey, false);
  5189. }
  5190. }
  5191. // fixed by xxxxxx
  5192. return extractPropertiesFromVNodeData(data, Ctor, res, context)
  5193. }
  5194. function checkProp (
  5195. res,
  5196. hash,
  5197. key,
  5198. altKey,
  5199. preserve
  5200. ) {
  5201. if (isDef(hash)) {
  5202. if (hasOwn(hash, key)) {
  5203. res[key] = hash[key];
  5204. if (!preserve) {
  5205. delete hash[key];
  5206. }
  5207. return true
  5208. } else if (hasOwn(hash, altKey)) {
  5209. res[key] = hash[altKey];
  5210. if (!preserve) {
  5211. delete hash[altKey];
  5212. }
  5213. return true
  5214. }
  5215. }
  5216. return false
  5217. }
  5218. /* */
  5219. // The template compiler attempts to minimize the need for normalization by
  5220. // statically analyzing the template at compile time.
  5221. //
  5222. // For plain HTML markup, normalization can be completely skipped because the
  5223. // generated render function is guaranteed to return Array<VNode>. There are
  5224. // two cases where extra normalization is needed:
  5225. // 1. When the children contains components - because a functional component
  5226. // may return an Array instead of a single root. In this case, just a simple
  5227. // normalization is needed - if any child is an Array, we flatten the whole
  5228. // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
  5229. // because functional components already normalize their own children.
  5230. function simpleNormalizeChildren (children) {
  5231. for (var i = 0; i < children.length; i++) {
  5232. if (Array.isArray(children[i])) {
  5233. return Array.prototype.concat.apply([], children)
  5234. }
  5235. }
  5236. return children
  5237. }
  5238. // 2. When the children contains constructs that always generated nested Arrays,
  5239. // e.g. <template>, <slot>, v-for, or when the children is provided by user
  5240. // with hand-written render functions / JSX. In such cases a full normalization
  5241. // is needed to cater to all possible types of children values.
  5242. function normalizeChildren (children) {
  5243. return isPrimitive(children)
  5244. ? [createTextVNode(children)]
  5245. : Array.isArray(children)
  5246. ? normalizeArrayChildren(children)
  5247. : undefined
  5248. }
  5249. function isTextNode (node) {
  5250. return isDef(node) && isDef(node.text) && isFalse(node.isComment)
  5251. }
  5252. function normalizeArrayChildren (children, nestedIndex) {
  5253. var res = [];
  5254. var i, c, lastIndex, last;
  5255. for (i = 0; i < children.length; i++) {
  5256. c = children[i];
  5257. if (isUndef(c) || typeof c === 'boolean') { continue }
  5258. lastIndex = res.length - 1;
  5259. last = res[lastIndex];
  5260. // nested
  5261. if (Array.isArray(c)) {
  5262. if (c.length > 0) {
  5263. c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
  5264. // merge adjacent text nodes
  5265. if (isTextNode(c[0]) && isTextNode(last)) {
  5266. res[lastIndex] = createTextVNode(last.text + (c[0]).text);
  5267. c.shift();
  5268. }
  5269. res.push.apply(res, c);
  5270. }
  5271. } else if (isPrimitive(c)) {
  5272. if (isTextNode(last)) {
  5273. // merge adjacent text nodes
  5274. // this is necessary for SSR hydration because text nodes are
  5275. // essentially merged when rendered to HTML strings
  5276. res[lastIndex] = createTextVNode(last.text + c);
  5277. } else if (c !== '') {
  5278. // convert primitive to vnode
  5279. res.push(createTextVNode(c));
  5280. }
  5281. } else {
  5282. if (isTextNode(c) && isTextNode(last)) {
  5283. // merge adjacent text nodes
  5284. res[lastIndex] = createTextVNode(last.text + c.text);
  5285. } else {
  5286. // default key for nested array children (likely generated by v-for)
  5287. if (isTrue(children._isVList) &&
  5288. isDef(c.tag) &&
  5289. isUndef(c.key) &&
  5290. isDef(nestedIndex)) {
  5291. c.key = "__vlist" + nestedIndex + "_" + i + "__";
  5292. }
  5293. res.push(c);
  5294. }
  5295. }
  5296. }
  5297. return res
  5298. }
  5299. /* */
  5300. function initProvide (vm) {
  5301. var provide = vm.$options.provide;
  5302. if (provide) {
  5303. vm._provided = typeof provide === 'function'
  5304. ? provide.call(vm)
  5305. : provide;
  5306. }
  5307. }
  5308. function initInjections (vm) {
  5309. var result = resolveInject(vm.$options.inject, vm);
  5310. if (result) {
  5311. toggleObserving(false);
  5312. Object.keys(result).forEach(function (key) {
  5313. /* istanbul ignore else */
  5314. if (true) {
  5315. defineReactive$$1(vm, key, result[key], function () {
  5316. warn(
  5317. "Avoid mutating an injected value directly since the changes will be " +
  5318. "overwritten whenever the provided component re-renders. " +
  5319. "injection being mutated: \"" + key + "\"",
  5320. vm
  5321. );
  5322. });
  5323. } else {}
  5324. });
  5325. toggleObserving(true);
  5326. }
  5327. }
  5328. function resolveInject (inject, vm) {
  5329. if (inject) {
  5330. // inject is :any because flow is not smart enough to figure out cached
  5331. var result = Object.create(null);
  5332. var keys = hasSymbol
  5333. ? Reflect.ownKeys(inject)
  5334. : Object.keys(inject);
  5335. for (var i = 0; i < keys.length; i++) {
  5336. var key = keys[i];
  5337. // #6574 in case the inject object is observed...
  5338. if (key === '__ob__') { continue }
  5339. var provideKey = inject[key].from;
  5340. var source = vm;
  5341. while (source) {
  5342. if (source._provided && hasOwn(source._provided, provideKey)) {
  5343. result[key] = source._provided[provideKey];
  5344. break
  5345. }
  5346. source = source.$parent;
  5347. }
  5348. if (!source) {
  5349. if ('default' in inject[key]) {
  5350. var provideDefault = inject[key].default;
  5351. result[key] = typeof provideDefault === 'function'
  5352. ? provideDefault.call(vm)
  5353. : provideDefault;
  5354. } else if (true) {
  5355. warn(("Injection \"" + key + "\" not found"), vm);
  5356. }
  5357. }
  5358. }
  5359. return result
  5360. }
  5361. }
  5362. /* */
  5363. /**
  5364. * Runtime helper for resolving raw children VNodes into a slot object.
  5365. */
  5366. function resolveSlots (
  5367. children,
  5368. context
  5369. ) {
  5370. if (!children || !children.length) {
  5371. return {}
  5372. }
  5373. var slots = {};
  5374. for (var i = 0, l = children.length; i < l; i++) {
  5375. var child = children[i];
  5376. var data = child.data;
  5377. // remove slot attribute if the node is resolved as a Vue slot node
  5378. if (data && data.attrs && data.attrs.slot) {
  5379. delete data.attrs.slot;
  5380. }
  5381. // named slots should only be respected if the vnode was rendered in the
  5382. // same context.
  5383. if ((child.context === context || child.fnContext === context) &&
  5384. data && data.slot != null
  5385. ) {
  5386. var name = data.slot;
  5387. var slot = (slots[name] || (slots[name] = []));
  5388. if (child.tag === 'template') {
  5389. slot.push.apply(slot, child.children || []);
  5390. } else {
  5391. slot.push(child);
  5392. }
  5393. } else {
  5394. // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page
  5395. if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){
  5396. (slots['page'] || (slots['page'] = [])).push(child);
  5397. }else{
  5398. (slots.default || (slots.default = [])).push(child);
  5399. }
  5400. }
  5401. }
  5402. // ignore slots that contains only whitespace
  5403. for (var name$1 in slots) {
  5404. if (slots[name$1].every(isWhitespace)) {
  5405. delete slots[name$1];
  5406. }
  5407. }
  5408. return slots
  5409. }
  5410. function isWhitespace (node) {
  5411. return (node.isComment && !node.asyncFactory) || node.text === ' '
  5412. }
  5413. /* */
  5414. function normalizeScopedSlots (
  5415. slots,
  5416. normalSlots,
  5417. prevSlots
  5418. ) {
  5419. var res;
  5420. var hasNormalSlots = Object.keys(normalSlots).length > 0;
  5421. var isStable = slots ? !!slots.$stable : !hasNormalSlots;
  5422. var key = slots && slots.$key;
  5423. if (!slots) {
  5424. res = {};
  5425. } else if (slots._normalized) {
  5426. // fast path 1: child component re-render only, parent did not change
  5427. return slots._normalized
  5428. } else if (
  5429. isStable &&
  5430. prevSlots &&
  5431. prevSlots !== emptyObject &&
  5432. key === prevSlots.$key &&
  5433. !hasNormalSlots &&
  5434. !prevSlots.$hasNormal
  5435. ) {
  5436. // fast path 2: stable scoped slots w/ no normal slots to proxy,
  5437. // only need to normalize once
  5438. return prevSlots
  5439. } else {
  5440. res = {};
  5441. for (var key$1 in slots) {
  5442. if (slots[key$1] && key$1[0] !== '$') {
  5443. res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
  5444. }
  5445. }
  5446. }
  5447. // expose normal slots on scopedSlots
  5448. for (var key$2 in normalSlots) {
  5449. if (!(key$2 in res)) {
  5450. res[key$2] = proxyNormalSlot(normalSlots, key$2);
  5451. }
  5452. }
  5453. // avoriaz seems to mock a non-extensible $scopedSlots object
  5454. // and when that is passed down this would cause an error
  5455. if (slots && Object.isExtensible(slots)) {
  5456. (slots)._normalized = res;
  5457. }
  5458. def(res, '$stable', isStable);
  5459. def(res, '$key', key);
  5460. def(res, '$hasNormal', hasNormalSlots);
  5461. return res
  5462. }
  5463. function normalizeScopedSlot(normalSlots, key, fn) {
  5464. var normalized = function () {
  5465. var res = arguments.length ? fn.apply(null, arguments) : fn({});
  5466. res = res && typeof res === 'object' && !Array.isArray(res)
  5467. ? [res] // single vnode
  5468. : normalizeChildren(res);
  5469. return res && (
  5470. res.length === 0 ||
  5471. (res.length === 1 && res[0].isComment) // #9658
  5472. ) ? undefined
  5473. : res
  5474. };
  5475. // this is a slot using the new v-slot syntax without scope. although it is
  5476. // compiled as a scoped slot, render fn users would expect it to be present
  5477. // on this.$slots because the usage is semantically a normal slot.
  5478. if (fn.proxy) {
  5479. Object.defineProperty(normalSlots, key, {
  5480. get: normalized,
  5481. enumerable: true,
  5482. configurable: true
  5483. });
  5484. }
  5485. return normalized
  5486. }
  5487. function proxyNormalSlot(slots, key) {
  5488. return function () { return slots[key]; }
  5489. }
  5490. /* */
  5491. /**
  5492. * Runtime helper for rendering v-for lists.
  5493. */
  5494. function renderList (
  5495. val,
  5496. render
  5497. ) {
  5498. var ret, i, l, keys, key;
  5499. if (Array.isArray(val) || typeof val === 'string') {
  5500. ret = new Array(val.length);
  5501. for (i = 0, l = val.length; i < l; i++) {
  5502. ret[i] = render(val[i], i, i, i); // fixed by xxxxxx
  5503. }
  5504. } else if (typeof val === 'number') {
  5505. ret = new Array(val);
  5506. for (i = 0; i < val; i++) {
  5507. ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx
  5508. }
  5509. } else if (isObject(val)) {
  5510. if (hasSymbol && val[Symbol.iterator]) {
  5511. ret = [];
  5512. var iterator = val[Symbol.iterator]();
  5513. var result = iterator.next();
  5514. while (!result.done) {
  5515. ret.push(render(result.value, ret.length, i++, i)); // fixed by xxxxxx
  5516. result = iterator.next();
  5517. }
  5518. } else {
  5519. keys = Object.keys(val);
  5520. ret = new Array(keys.length);
  5521. for (i = 0, l = keys.length; i < l; i++) {
  5522. key = keys[i];
  5523. ret[i] = render(val[key], key, i, i); // fixed by xxxxxx
  5524. }
  5525. }
  5526. }
  5527. if (!isDef(ret)) {
  5528. ret = [];
  5529. }
  5530. (ret)._isVList = true;
  5531. return ret
  5532. }
  5533. /* */
  5534. /**
  5535. * Runtime helper for rendering <slot>
  5536. */
  5537. function renderSlot (
  5538. name,
  5539. fallback,
  5540. props,
  5541. bindObject
  5542. ) {
  5543. var scopedSlotFn = this.$scopedSlots[name];
  5544. var nodes;
  5545. if (scopedSlotFn) { // scoped slot
  5546. props = props || {};
  5547. if (bindObject) {
  5548. if ( true && !isObject(bindObject)) {
  5549. warn(
  5550. 'slot v-bind without argument expects an Object',
  5551. this
  5552. );
  5553. }
  5554. props = extend(extend({}, bindObject), props);
  5555. }
  5556. // fixed by xxxxxx app-plus scopedSlot
  5557. nodes = scopedSlotFn(props, this, props._i) || fallback;
  5558. } else {
  5559. nodes = this.$slots[name] || fallback;
  5560. }
  5561. var target = props && props.slot;
  5562. if (target) {
  5563. return this.$createElement('template', { slot: target }, nodes)
  5564. } else {
  5565. return nodes
  5566. }
  5567. }
  5568. /* */
  5569. /**
  5570. * Runtime helper for resolving filters
  5571. */
  5572. function resolveFilter (id) {
  5573. return resolveAsset(this.$options, 'filters', id, true) || identity
  5574. }
  5575. /* */
  5576. function isKeyNotMatch (expect, actual) {
  5577. if (Array.isArray(expect)) {
  5578. return expect.indexOf(actual) === -1
  5579. } else {
  5580. return expect !== actual
  5581. }
  5582. }
  5583. /**
  5584. * Runtime helper for checking keyCodes from config.
  5585. * exposed as Vue.prototype._k
  5586. * passing in eventKeyName as last argument separately for backwards compat
  5587. */
  5588. function checkKeyCodes (
  5589. eventKeyCode,
  5590. key,
  5591. builtInKeyCode,
  5592. eventKeyName,
  5593. builtInKeyName
  5594. ) {
  5595. var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
  5596. if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
  5597. return isKeyNotMatch(builtInKeyName, eventKeyName)
  5598. } else if (mappedKeyCode) {
  5599. return isKeyNotMatch(mappedKeyCode, eventKeyCode)
  5600. } else if (eventKeyName) {
  5601. return hyphenate(eventKeyName) !== key
  5602. }
  5603. }
  5604. /* */
  5605. /**
  5606. * Runtime helper for merging v-bind="object" into a VNode's data.
  5607. */
  5608. function bindObjectProps (
  5609. data,
  5610. tag,
  5611. value,
  5612. asProp,
  5613. isSync
  5614. ) {
  5615. if (value) {
  5616. if (!isObject(value)) {
  5617. true && warn(
  5618. 'v-bind without argument expects an Object or Array value',
  5619. this
  5620. );
  5621. } else {
  5622. if (Array.isArray(value)) {
  5623. value = toObject(value);
  5624. }
  5625. var hash;
  5626. var loop = function ( key ) {
  5627. if (
  5628. key === 'class' ||
  5629. key === 'style' ||
  5630. isReservedAttribute(key)
  5631. ) {
  5632. hash = data;
  5633. } else {
  5634. var type = data.attrs && data.attrs.type;
  5635. hash = asProp || config.mustUseProp(tag, type, key)
  5636. ? data.domProps || (data.domProps = {})
  5637. : data.attrs || (data.attrs = {});
  5638. }
  5639. var camelizedKey = camelize(key);
  5640. var hyphenatedKey = hyphenate(key);
  5641. if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
  5642. hash[key] = value[key];
  5643. if (isSync) {
  5644. var on = data.on || (data.on = {});
  5645. on[("update:" + key)] = function ($event) {
  5646. value[key] = $event;
  5647. };
  5648. }
  5649. }
  5650. };
  5651. for (var key in value) loop( key );
  5652. }
  5653. }
  5654. return data
  5655. }
  5656. /* */
  5657. /**
  5658. * Runtime helper for rendering static trees.
  5659. */
  5660. function renderStatic (
  5661. index,
  5662. isInFor
  5663. ) {
  5664. var cached = this._staticTrees || (this._staticTrees = []);
  5665. var tree = cached[index];
  5666. // if has already-rendered static tree and not inside v-for,
  5667. // we can reuse the same tree.
  5668. if (tree && !isInFor) {
  5669. return tree
  5670. }
  5671. // otherwise, render a fresh tree.
  5672. tree = cached[index] = this.$options.staticRenderFns[index].call(
  5673. this._renderProxy,
  5674. null,
  5675. this // for render fns generated for functional component templates
  5676. );
  5677. markStatic(tree, ("__static__" + index), false);
  5678. return tree
  5679. }
  5680. /**
  5681. * Runtime helper for v-once.
  5682. * Effectively it means marking the node as static with a unique key.
  5683. */
  5684. function markOnce (
  5685. tree,
  5686. index,
  5687. key
  5688. ) {
  5689. markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
  5690. return tree
  5691. }
  5692. function markStatic (
  5693. tree,
  5694. key,
  5695. isOnce
  5696. ) {
  5697. if (Array.isArray(tree)) {
  5698. for (var i = 0; i < tree.length; i++) {
  5699. if (tree[i] && typeof tree[i] !== 'string') {
  5700. markStaticNode(tree[i], (key + "_" + i), isOnce);
  5701. }
  5702. }
  5703. } else {
  5704. markStaticNode(tree, key, isOnce);
  5705. }
  5706. }
  5707. function markStaticNode (node, key, isOnce) {
  5708. node.isStatic = true;
  5709. node.key = key;
  5710. node.isOnce = isOnce;
  5711. }
  5712. /* */
  5713. function bindObjectListeners (data, value) {
  5714. if (value) {
  5715. if (!isPlainObject(value)) {
  5716. true && warn(
  5717. 'v-on without argument expects an Object value',
  5718. this
  5719. );
  5720. } else {
  5721. var on = data.on = data.on ? extend({}, data.on) : {};
  5722. for (var key in value) {
  5723. var existing = on[key];
  5724. var ours = value[key];
  5725. on[key] = existing ? [].concat(existing, ours) : ours;
  5726. }
  5727. }
  5728. }
  5729. return data
  5730. }
  5731. /* */
  5732. function resolveScopedSlots (
  5733. fns, // see flow/vnode
  5734. res,
  5735. // the following are added in 2.6
  5736. hasDynamicKeys,
  5737. contentHashKey
  5738. ) {
  5739. res = res || { $stable: !hasDynamicKeys };
  5740. for (var i = 0; i < fns.length; i++) {
  5741. var slot = fns[i];
  5742. if (Array.isArray(slot)) {
  5743. resolveScopedSlots(slot, res, hasDynamicKeys);
  5744. } else if (slot) {
  5745. // marker for reverse proxying v-slot without scope on this.$slots
  5746. if (slot.proxy) {
  5747. slot.fn.proxy = true;
  5748. }
  5749. res[slot.key] = slot.fn;
  5750. }
  5751. }
  5752. if (contentHashKey) {
  5753. (res).$key = contentHashKey;
  5754. }
  5755. return res
  5756. }
  5757. /* */
  5758. function bindDynamicKeys (baseObj, values) {
  5759. for (var i = 0; i < values.length; i += 2) {
  5760. var key = values[i];
  5761. if (typeof key === 'string' && key) {
  5762. baseObj[values[i]] = values[i + 1];
  5763. } else if ( true && key !== '' && key !== null) {
  5764. // null is a special value for explicitly removing a binding
  5765. warn(
  5766. ("Invalid value for dynamic directive argument (expected string or null): " + key),
  5767. this
  5768. );
  5769. }
  5770. }
  5771. return baseObj
  5772. }
  5773. // helper to dynamically append modifier runtime markers to event names.
  5774. // ensure only append when value is already string, otherwise it will be cast
  5775. // to string and cause the type check to miss.
  5776. function prependModifier (value, symbol) {
  5777. return typeof value === 'string' ? symbol + value : value
  5778. }
  5779. /* */
  5780. function installRenderHelpers (target) {
  5781. target._o = markOnce;
  5782. target._n = toNumber;
  5783. target._s = toString;
  5784. target._l = renderList;
  5785. target._t = renderSlot;
  5786. target._q = looseEqual;
  5787. target._i = looseIndexOf;
  5788. target._m = renderStatic;
  5789. target._f = resolveFilter;
  5790. target._k = checkKeyCodes;
  5791. target._b = bindObjectProps;
  5792. target._v = createTextVNode;
  5793. target._e = createEmptyVNode;
  5794. target._u = resolveScopedSlots;
  5795. target._g = bindObjectListeners;
  5796. target._d = bindDynamicKeys;
  5797. target._p = prependModifier;
  5798. }
  5799. /* */
  5800. function FunctionalRenderContext (
  5801. data,
  5802. props,
  5803. children,
  5804. parent,
  5805. Ctor
  5806. ) {
  5807. var this$1 = this;
  5808. var options = Ctor.options;
  5809. // ensure the createElement function in functional components
  5810. // gets a unique context - this is necessary for correct named slot check
  5811. var contextVm;
  5812. if (hasOwn(parent, '_uid')) {
  5813. contextVm = Object.create(parent);
  5814. // $flow-disable-line
  5815. contextVm._original = parent;
  5816. } else {
  5817. // the context vm passed in is a functional context as well.
  5818. // in this case we want to make sure we are able to get a hold to the
  5819. // real context instance.
  5820. contextVm = parent;
  5821. // $flow-disable-line
  5822. parent = parent._original;
  5823. }
  5824. var isCompiled = isTrue(options._compiled);
  5825. var needNormalization = !isCompiled;
  5826. this.data = data;
  5827. this.props = props;
  5828. this.children = children;
  5829. this.parent = parent;
  5830. this.listeners = data.on || emptyObject;
  5831. this.injections = resolveInject(options.inject, parent);
  5832. this.slots = function () {
  5833. if (!this$1.$slots) {
  5834. normalizeScopedSlots(
  5835. data.scopedSlots,
  5836. this$1.$slots = resolveSlots(children, parent)
  5837. );
  5838. }
  5839. return this$1.$slots
  5840. };
  5841. Object.defineProperty(this, 'scopedSlots', ({
  5842. enumerable: true,
  5843. get: function get () {
  5844. return normalizeScopedSlots(data.scopedSlots, this.slots())
  5845. }
  5846. }));
  5847. // support for compiled functional template
  5848. if (isCompiled) {
  5849. // exposing $options for renderStatic()
  5850. this.$options = options;
  5851. // pre-resolve slots for renderSlot()
  5852. this.$slots = this.slots();
  5853. this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
  5854. }
  5855. if (options._scopeId) {
  5856. this._c = function (a, b, c, d) {
  5857. var vnode = createElement(contextVm, a, b, c, d, needNormalization);
  5858. if (vnode && !Array.isArray(vnode)) {
  5859. vnode.fnScopeId = options._scopeId;
  5860. vnode.fnContext = parent;
  5861. }
  5862. return vnode
  5863. };
  5864. } else {
  5865. this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
  5866. }
  5867. }
  5868. installRenderHelpers(FunctionalRenderContext.prototype);
  5869. function createFunctionalComponent (
  5870. Ctor,
  5871. propsData,
  5872. data,
  5873. contextVm,
  5874. children
  5875. ) {
  5876. var options = Ctor.options;
  5877. var props = {};
  5878. var propOptions = options.props;
  5879. if (isDef(propOptions)) {
  5880. for (var key in propOptions) {
  5881. props[key] = validateProp(key, propOptions, propsData || emptyObject);
  5882. }
  5883. } else {
  5884. if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
  5885. if (isDef(data.props)) { mergeProps(props, data.props); }
  5886. }
  5887. var renderContext = new FunctionalRenderContext(
  5888. data,
  5889. props,
  5890. children,
  5891. contextVm,
  5892. Ctor
  5893. );
  5894. var vnode = options.render.call(null, renderContext._c, renderContext);
  5895. if (vnode instanceof VNode) {
  5896. return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
  5897. } else if (Array.isArray(vnode)) {
  5898. var vnodes = normalizeChildren(vnode) || [];
  5899. var res = new Array(vnodes.length);
  5900. for (var i = 0; i < vnodes.length; i++) {
  5901. res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
  5902. }
  5903. return res
  5904. }
  5905. }
  5906. function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
  5907. // #7817 clone node before setting fnContext, otherwise if the node is reused
  5908. // (e.g. it was from a cached normal slot) the fnContext causes named slots
  5909. // that should not be matched to match.
  5910. var clone = cloneVNode(vnode);
  5911. clone.fnContext = contextVm;
  5912. clone.fnOptions = options;
  5913. if (true) {
  5914. (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
  5915. }
  5916. if (data.slot) {
  5917. (clone.data || (clone.data = {})).slot = data.slot;
  5918. }
  5919. return clone
  5920. }
  5921. function mergeProps (to, from) {
  5922. for (var key in from) {
  5923. to[camelize(key)] = from[key];
  5924. }
  5925. }
  5926. /* */
  5927. /* */
  5928. /* */
  5929. /* */
  5930. // inline hooks to be invoked on component VNodes during patch
  5931. var componentVNodeHooks = {
  5932. init: function init (vnode, hydrating) {
  5933. if (
  5934. vnode.componentInstance &&
  5935. !vnode.componentInstance._isDestroyed &&
  5936. vnode.data.keepAlive
  5937. ) {
  5938. // kept-alive components, treat as a patch
  5939. var mountedNode = vnode; // work around flow
  5940. componentVNodeHooks.prepatch(mountedNode, mountedNode);
  5941. } else {
  5942. var child = vnode.componentInstance = createComponentInstanceForVnode(
  5943. vnode,
  5944. activeInstance
  5945. );
  5946. child.$mount(hydrating ? vnode.elm : undefined, hydrating);
  5947. }
  5948. },
  5949. prepatch: function prepatch (oldVnode, vnode) {
  5950. var options = vnode.componentOptions;
  5951. var child = vnode.componentInstance = oldVnode.componentInstance;
  5952. updateChildComponent(
  5953. child,
  5954. options.propsData, // updated props
  5955. options.listeners, // updated listeners
  5956. vnode, // new parent vnode
  5957. options.children // new children
  5958. );
  5959. },
  5960. insert: function insert (vnode) {
  5961. var context = vnode.context;
  5962. var componentInstance = vnode.componentInstance;
  5963. if (!componentInstance._isMounted) {
  5964. callHook(componentInstance, 'onServiceCreated');
  5965. callHook(componentInstance, 'onServiceAttached');
  5966. componentInstance._isMounted = true;
  5967. callHook(componentInstance, 'mounted');
  5968. }
  5969. if (vnode.data.keepAlive) {
  5970. if (context._isMounted) {
  5971. // vue-router#1212
  5972. // During updates, a kept-alive component's child components may
  5973. // change, so directly walking the tree here may call activated hooks
  5974. // on incorrect children. Instead we push them into a queue which will
  5975. // be processed after the whole patch process ended.
  5976. queueActivatedComponent(componentInstance);
  5977. } else {
  5978. activateChildComponent(componentInstance, true /* direct */);
  5979. }
  5980. }
  5981. },
  5982. destroy: function destroy (vnode) {
  5983. var componentInstance = vnode.componentInstance;
  5984. if (!componentInstance._isDestroyed) {
  5985. if (!vnode.data.keepAlive) {
  5986. componentInstance.$destroy();
  5987. } else {
  5988. deactivateChildComponent(componentInstance, true /* direct */);
  5989. }
  5990. }
  5991. }
  5992. };
  5993. var hooksToMerge = Object.keys(componentVNodeHooks);
  5994. function createComponent (
  5995. Ctor,
  5996. data,
  5997. context,
  5998. children,
  5999. tag
  6000. ) {
  6001. if (isUndef(Ctor)) {
  6002. return
  6003. }
  6004. var baseCtor = context.$options._base;
  6005. // plain options object: turn it into a constructor
  6006. if (isObject(Ctor)) {
  6007. Ctor = baseCtor.extend(Ctor);
  6008. }
  6009. // if at this stage it's not a constructor or an async component factory,
  6010. // reject.
  6011. if (typeof Ctor !== 'function') {
  6012. if (true) {
  6013. warn(("Invalid Component definition: " + (String(Ctor))), context);
  6014. }
  6015. return
  6016. }
  6017. // async component
  6018. var asyncFactory;
  6019. if (isUndef(Ctor.cid)) {
  6020. asyncFactory = Ctor;
  6021. Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
  6022. if (Ctor === undefined) {
  6023. // return a placeholder node for async component, which is rendered
  6024. // as a comment node but preserves all the raw information for the node.
  6025. // the information will be used for async server-rendering and hydration.
  6026. return createAsyncPlaceholder(
  6027. asyncFactory,
  6028. data,
  6029. context,
  6030. children,
  6031. tag
  6032. )
  6033. }
  6034. }
  6035. data = data || {};
  6036. // resolve constructor options in case global mixins are applied after
  6037. // component constructor creation
  6038. resolveConstructorOptions(Ctor);
  6039. // transform component v-model data into props & events
  6040. if (isDef(data.model)) {
  6041. transformModel(Ctor.options, data);
  6042. }
  6043. // extract props
  6044. var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx
  6045. // functional component
  6046. if (isTrue(Ctor.options.functional)) {
  6047. return createFunctionalComponent(Ctor, propsData, data, context, children)
  6048. }
  6049. // extract listeners, since these needs to be treated as
  6050. // child component listeners instead of DOM listeners
  6051. var listeners = data.on;
  6052. // replace with listeners with .native modifier
  6053. // so it gets processed during parent component patch.
  6054. data.on = data.nativeOn;
  6055. if (isTrue(Ctor.options.abstract)) {
  6056. // abstract components do not keep anything
  6057. // other than props & listeners & slot
  6058. // work around flow
  6059. var slot = data.slot;
  6060. data = {};
  6061. if (slot) {
  6062. data.slot = slot;
  6063. }
  6064. }
  6065. // install component management hooks onto the placeholder node
  6066. installComponentHooks(data);
  6067. // return a placeholder vnode
  6068. var name = Ctor.options.name || tag;
  6069. var vnode = new VNode(
  6070. ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
  6071. data, undefined, undefined, undefined, context,
  6072. { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
  6073. asyncFactory
  6074. );
  6075. return vnode
  6076. }
  6077. function createComponentInstanceForVnode (
  6078. vnode, // we know it's MountedComponentVNode but flow doesn't
  6079. parent // activeInstance in lifecycle state
  6080. ) {
  6081. var options = {
  6082. _isComponent: true,
  6083. _parentVnode: vnode,
  6084. parent: parent
  6085. };
  6086. // check inline-template render functions
  6087. var inlineTemplate = vnode.data.inlineTemplate;
  6088. if (isDef(inlineTemplate)) {
  6089. options.render = inlineTemplate.render;
  6090. options.staticRenderFns = inlineTemplate.staticRenderFns;
  6091. }
  6092. return new vnode.componentOptions.Ctor(options)
  6093. }
  6094. function installComponentHooks (data) {
  6095. var hooks = data.hook || (data.hook = {});
  6096. for (var i = 0; i < hooksToMerge.length; i++) {
  6097. var key = hooksToMerge[i];
  6098. var existing = hooks[key];
  6099. var toMerge = componentVNodeHooks[key];
  6100. if (existing !== toMerge && !(existing && existing._merged)) {
  6101. hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
  6102. }
  6103. }
  6104. }
  6105. function mergeHook$1 (f1, f2) {
  6106. var merged = function (a, b) {
  6107. // flow complains about extra args which is why we use any
  6108. f1(a, b);
  6109. f2(a, b);
  6110. };
  6111. merged._merged = true;
  6112. return merged
  6113. }
  6114. // transform component v-model info (value and callback) into
  6115. // prop and event handler respectively.
  6116. function transformModel (options, data) {
  6117. var prop = (options.model && options.model.prop) || 'value';
  6118. var event = (options.model && options.model.event) || 'input'
  6119. ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;
  6120. var on = data.on || (data.on = {});
  6121. var existing = on[event];
  6122. var callback = data.model.callback;
  6123. if (isDef(existing)) {
  6124. if (
  6125. Array.isArray(existing)
  6126. ? existing.indexOf(callback) === -1
  6127. : existing !== callback
  6128. ) {
  6129. on[event] = [callback].concat(existing);
  6130. }
  6131. } else {
  6132. on[event] = callback;
  6133. }
  6134. }
  6135. /* */
  6136. var SIMPLE_NORMALIZE = 1;
  6137. var ALWAYS_NORMALIZE = 2;
  6138. // wrapper function for providing a more flexible interface
  6139. // without getting yelled at by flow
  6140. function createElement (
  6141. context,
  6142. tag,
  6143. data,
  6144. children,
  6145. normalizationType,
  6146. alwaysNormalize
  6147. ) {
  6148. if (Array.isArray(data) || isPrimitive(data)) {
  6149. normalizationType = children;
  6150. children = data;
  6151. data = undefined;
  6152. }
  6153. if (isTrue(alwaysNormalize)) {
  6154. normalizationType = ALWAYS_NORMALIZE;
  6155. }
  6156. return _createElement(context, tag, data, children, normalizationType)
  6157. }
  6158. function _createElement (
  6159. context,
  6160. tag,
  6161. data,
  6162. children,
  6163. normalizationType
  6164. ) {
  6165. if (isDef(data) && isDef((data).__ob__)) {
  6166. true && warn(
  6167. "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
  6168. 'Always create fresh vnode data objects in each render!',
  6169. context
  6170. );
  6171. return createEmptyVNode()
  6172. }
  6173. // object syntax in v-bind
  6174. if (isDef(data) && isDef(data.is)) {
  6175. tag = data.is;
  6176. }
  6177. if (!tag) {
  6178. // in case of component :is set to falsy value
  6179. return createEmptyVNode()
  6180. }
  6181. // warn against non-primitive key
  6182. if ( true &&
  6183. isDef(data) && isDef(data.key) && !isPrimitive(data.key)
  6184. ) {
  6185. {
  6186. warn(
  6187. 'Avoid using non-primitive value as key, ' +
  6188. 'use string/number value instead.',
  6189. context
  6190. );
  6191. }
  6192. }
  6193. // support single function children as default scoped slot
  6194. if (Array.isArray(children) &&
  6195. typeof children[0] === 'function'
  6196. ) {
  6197. data = data || {};
  6198. data.scopedSlots = { default: children[0] };
  6199. children.length = 0;
  6200. }
  6201. if (normalizationType === ALWAYS_NORMALIZE) {
  6202. children = normalizeChildren(children);
  6203. } else if (normalizationType === SIMPLE_NORMALIZE) {
  6204. children = simpleNormalizeChildren(children);
  6205. }
  6206. var vnode, ns;
  6207. if (typeof tag === 'string') {
  6208. var Ctor;
  6209. ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
  6210. if (config.isReservedTag(tag)) {
  6211. // platform built-in elements
  6212. if ( true && isDef(data) && isDef(data.nativeOn)) {
  6213. warn(
  6214. ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."),
  6215. context
  6216. );
  6217. }
  6218. vnode = new VNode(
  6219. config.parsePlatformTagName(tag), data, children,
  6220. undefined, undefined, context
  6221. );
  6222. } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
  6223. // component
  6224. vnode = createComponent(Ctor, data, context, children, tag);
  6225. } else {
  6226. // unknown or unlisted namespaced elements
  6227. // check at runtime because it may get assigned a namespace when its
  6228. // parent normalizes children
  6229. vnode = new VNode(
  6230. tag, data, children,
  6231. undefined, undefined, context
  6232. );
  6233. }
  6234. } else {
  6235. // direct component options / constructor
  6236. vnode = createComponent(tag, data, context, children);
  6237. }
  6238. if (Array.isArray(vnode)) {
  6239. return vnode
  6240. } else if (isDef(vnode)) {
  6241. if (isDef(ns)) { applyNS(vnode, ns); }
  6242. if (isDef(data)) { registerDeepBindings(data); }
  6243. return vnode
  6244. } else {
  6245. return createEmptyVNode()
  6246. }
  6247. }
  6248. function applyNS (vnode, ns, force) {
  6249. vnode.ns = ns;
  6250. if (vnode.tag === 'foreignObject') {
  6251. // use default namespace inside foreignObject
  6252. ns = undefined;
  6253. force = true;
  6254. }
  6255. if (isDef(vnode.children)) {
  6256. for (var i = 0, l = vnode.children.length; i < l; i++) {
  6257. var child = vnode.children[i];
  6258. if (isDef(child.tag) && (
  6259. isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
  6260. applyNS(child, ns, force);
  6261. }
  6262. }
  6263. }
  6264. }
  6265. // ref #5318
  6266. // necessary to ensure parent re-render when deep bindings like :style and
  6267. // :class are used on slot nodes
  6268. function registerDeepBindings (data) {
  6269. if (isObject(data.style)) {
  6270. traverse(data.style);
  6271. }
  6272. if (isObject(data.class)) {
  6273. traverse(data.class);
  6274. }
  6275. }
  6276. /* */
  6277. function initRender (vm) {
  6278. vm._vnode = null; // the root of the child tree
  6279. vm._staticTrees = null; // v-once cached trees
  6280. var options = vm.$options;
  6281. var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
  6282. var renderContext = parentVnode && parentVnode.context;
  6283. vm.$slots = resolveSlots(options._renderChildren, renderContext);
  6284. vm.$scopedSlots = emptyObject;
  6285. // bind the createElement fn to this instance
  6286. // so that we get proper render context inside it.
  6287. // args order: tag, data, children, normalizationType, alwaysNormalize
  6288. // internal version is used by render functions compiled from templates
  6289. vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
  6290. // normalization is always applied for the public version, used in
  6291. // user-written render functions.
  6292. vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
  6293. // $attrs & $listeners are exposed for easier HOC creation.
  6294. // they need to be reactive so that HOCs using them are always updated
  6295. var parentData = parentVnode && parentVnode.data;
  6296. /* istanbul ignore else */
  6297. if (true) {
  6298. defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
  6299. !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
  6300. }, true);
  6301. defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
  6302. !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
  6303. }, true);
  6304. } else {}
  6305. }
  6306. var currentRenderingInstance = null;
  6307. function renderMixin (Vue) {
  6308. // install runtime convenience helpers
  6309. installRenderHelpers(Vue.prototype);
  6310. Vue.prototype.$nextTick = function (fn) {
  6311. return nextTick(fn, this)
  6312. };
  6313. Vue.prototype._render = function () {
  6314. var vm = this;
  6315. var ref = vm.$options;
  6316. var render = ref.render;
  6317. var _parentVnode = ref._parentVnode;
  6318. if (_parentVnode) {
  6319. vm.$scopedSlots = normalizeScopedSlots(
  6320. _parentVnode.data.scopedSlots,
  6321. vm.$slots,
  6322. vm.$scopedSlots
  6323. );
  6324. }
  6325. // set parent vnode. this allows render functions to have access
  6326. // to the data on the placeholder node.
  6327. vm.$vnode = _parentVnode;
  6328. // render self
  6329. var vnode;
  6330. try {
  6331. // There's no need to maintain a stack because all render fns are called
  6332. // separately from one another. Nested component's render fns are called
  6333. // when parent component is patched.
  6334. currentRenderingInstance = vm;
  6335. vnode = render.call(vm._renderProxy, vm.$createElement);
  6336. } catch (e) {
  6337. handleError(e, vm, "render");
  6338. // return error render result,
  6339. // or previous vnode to prevent render error causing blank component
  6340. /* istanbul ignore else */
  6341. if ( true && vm.$options.renderError) {
  6342. try {
  6343. vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
  6344. } catch (e) {
  6345. handleError(e, vm, "renderError");
  6346. vnode = vm._vnode;
  6347. }
  6348. } else {
  6349. vnode = vm._vnode;
  6350. }
  6351. } finally {
  6352. currentRenderingInstance = null;
  6353. }
  6354. // if the returned array contains only a single node, allow it
  6355. if (Array.isArray(vnode) && vnode.length === 1) {
  6356. vnode = vnode[0];
  6357. }
  6358. // return empty vnode in case the render function errored out
  6359. if (!(vnode instanceof VNode)) {
  6360. if ( true && Array.isArray(vnode)) {
  6361. warn(
  6362. 'Multiple root nodes returned from render function. Render function ' +
  6363. 'should return a single root node.',
  6364. vm
  6365. );
  6366. }
  6367. vnode = createEmptyVNode();
  6368. }
  6369. // set parent
  6370. vnode.parent = _parentVnode;
  6371. return vnode
  6372. };
  6373. }
  6374. /* */
  6375. function ensureCtor (comp, base) {
  6376. if (
  6377. comp.__esModule ||
  6378. (hasSymbol && comp[Symbol.toStringTag] === 'Module')
  6379. ) {
  6380. comp = comp.default;
  6381. }
  6382. return isObject(comp)
  6383. ? base.extend(comp)
  6384. : comp
  6385. }
  6386. function createAsyncPlaceholder (
  6387. factory,
  6388. data,
  6389. context,
  6390. children,
  6391. tag
  6392. ) {
  6393. var node = createEmptyVNode();
  6394. node.asyncFactory = factory;
  6395. node.asyncMeta = { data: data, context: context, children: children, tag: tag };
  6396. return node
  6397. }
  6398. function resolveAsyncComponent (
  6399. factory,
  6400. baseCtor
  6401. ) {
  6402. if (isTrue(factory.error) && isDef(factory.errorComp)) {
  6403. return factory.errorComp
  6404. }
  6405. if (isDef(factory.resolved)) {
  6406. return factory.resolved
  6407. }
  6408. var owner = currentRenderingInstance;
  6409. if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
  6410. // already pending
  6411. factory.owners.push(owner);
  6412. }
  6413. if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
  6414. return factory.loadingComp
  6415. }
  6416. if (owner && !isDef(factory.owners)) {
  6417. var owners = factory.owners = [owner];
  6418. var sync = true;
  6419. var timerLoading = null;
  6420. var timerTimeout = null
  6421. ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
  6422. var forceRender = function (renderCompleted) {
  6423. for (var i = 0, l = owners.length; i < l; i++) {
  6424. (owners[i]).$forceUpdate();
  6425. }
  6426. if (renderCompleted) {
  6427. owners.length = 0;
  6428. if (timerLoading !== null) {
  6429. clearTimeout(timerLoading);
  6430. timerLoading = null;
  6431. }
  6432. if (timerTimeout !== null) {
  6433. clearTimeout(timerTimeout);
  6434. timerTimeout = null;
  6435. }
  6436. }
  6437. };
  6438. var resolve = once(function (res) {
  6439. // cache resolved
  6440. factory.resolved = ensureCtor(res, baseCtor);
  6441. // invoke callbacks only if this is not a synchronous resolve
  6442. // (async resolves are shimmed as synchronous during SSR)
  6443. if (!sync) {
  6444. forceRender(true);
  6445. } else {
  6446. owners.length = 0;
  6447. }
  6448. });
  6449. var reject = once(function (reason) {
  6450. true && warn(
  6451. "Failed to resolve async component: " + (String(factory)) +
  6452. (reason ? ("\nReason: " + reason) : '')
  6453. );
  6454. if (isDef(factory.errorComp)) {
  6455. factory.error = true;
  6456. forceRender(true);
  6457. }
  6458. });
  6459. var res = factory(resolve, reject);
  6460. if (isObject(res)) {
  6461. if (isPromise(res)) {
  6462. // () => Promise
  6463. if (isUndef(factory.resolved)) {
  6464. res.then(resolve, reject);
  6465. }
  6466. } else if (isPromise(res.component)) {
  6467. res.component.then(resolve, reject);
  6468. if (isDef(res.error)) {
  6469. factory.errorComp = ensureCtor(res.error, baseCtor);
  6470. }
  6471. if (isDef(res.loading)) {
  6472. factory.loadingComp = ensureCtor(res.loading, baseCtor);
  6473. if (res.delay === 0) {
  6474. factory.loading = true;
  6475. } else {
  6476. timerLoading = setTimeout(function () {
  6477. timerLoading = null;
  6478. if (isUndef(factory.resolved) && isUndef(factory.error)) {
  6479. factory.loading = true;
  6480. forceRender(false);
  6481. }
  6482. }, res.delay || 200);
  6483. }
  6484. }
  6485. if (isDef(res.timeout)) {
  6486. timerTimeout = setTimeout(function () {
  6487. timerTimeout = null;
  6488. if (isUndef(factory.resolved)) {
  6489. reject(
  6490. true
  6491. ? ("timeout (" + (res.timeout) + "ms)")
  6492. : undefined
  6493. );
  6494. }
  6495. }, res.timeout);
  6496. }
  6497. }
  6498. }
  6499. sync = false;
  6500. // return in case resolved synchronously
  6501. return factory.loading
  6502. ? factory.loadingComp
  6503. : factory.resolved
  6504. }
  6505. }
  6506. /* */
  6507. function isAsyncPlaceholder (node) {
  6508. return node.isComment && node.asyncFactory
  6509. }
  6510. /* */
  6511. function getFirstComponentChild (children) {
  6512. if (Array.isArray(children)) {
  6513. for (var i = 0; i < children.length; i++) {
  6514. var c = children[i];
  6515. if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
  6516. return c
  6517. }
  6518. }
  6519. }
  6520. }
  6521. /* */
  6522. /* */
  6523. function initEvents (vm) {
  6524. vm._events = Object.create(null);
  6525. vm._hasHookEvent = false;
  6526. // init parent attached events
  6527. var listeners = vm.$options._parentListeners;
  6528. if (listeners) {
  6529. updateComponentListeners(vm, listeners);
  6530. }
  6531. }
  6532. var target;
  6533. function add (event, fn) {
  6534. target.$on(event, fn);
  6535. }
  6536. function remove$1 (event, fn) {
  6537. target.$off(event, fn);
  6538. }
  6539. function createOnceHandler (event, fn) {
  6540. var _target = target;
  6541. return function onceHandler () {
  6542. var res = fn.apply(null, arguments);
  6543. if (res !== null) {
  6544. _target.$off(event, onceHandler);
  6545. }
  6546. }
  6547. }
  6548. function updateComponentListeners (
  6549. vm,
  6550. listeners,
  6551. oldListeners
  6552. ) {
  6553. target = vm;
  6554. updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
  6555. target = undefined;
  6556. }
  6557. function eventsMixin (Vue) {
  6558. var hookRE = /^hook:/;
  6559. Vue.prototype.$on = function (event, fn) {
  6560. var vm = this;
  6561. if (Array.isArray(event)) {
  6562. for (var i = 0, l = event.length; i < l; i++) {
  6563. vm.$on(event[i], fn);
  6564. }
  6565. } else {
  6566. (vm._events[event] || (vm._events[event] = [])).push(fn);
  6567. // optimize hook:event cost by using a boolean flag marked at registration
  6568. // instead of a hash lookup
  6569. if (hookRE.test(event)) {
  6570. vm._hasHookEvent = true;
  6571. }
  6572. }
  6573. return vm
  6574. };
  6575. Vue.prototype.$once = function (event, fn) {
  6576. var vm = this;
  6577. function on () {
  6578. vm.$off(event, on);
  6579. fn.apply(vm, arguments);
  6580. }
  6581. on.fn = fn;
  6582. vm.$on(event, on);
  6583. return vm
  6584. };
  6585. Vue.prototype.$off = function (event, fn) {
  6586. var vm = this;
  6587. // all
  6588. if (!arguments.length) {
  6589. vm._events = Object.create(null);
  6590. return vm
  6591. }
  6592. // array of events
  6593. if (Array.isArray(event)) {
  6594. for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
  6595. vm.$off(event[i$1], fn);
  6596. }
  6597. return vm
  6598. }
  6599. // specific event
  6600. var cbs = vm._events[event];
  6601. if (!cbs) {
  6602. return vm
  6603. }
  6604. if (!fn) {
  6605. vm._events[event] = null;
  6606. return vm
  6607. }
  6608. // specific handler
  6609. var cb;
  6610. var i = cbs.length;
  6611. while (i--) {
  6612. cb = cbs[i];
  6613. if (cb === fn || cb.fn === fn) {
  6614. cbs.splice(i, 1);
  6615. break
  6616. }
  6617. }
  6618. return vm
  6619. };
  6620. Vue.prototype.$emit = function (event) {
  6621. var vm = this;
  6622. if (true) {
  6623. var lowerCaseEvent = event.toLowerCase();
  6624. if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
  6625. tip(
  6626. "Event \"" + lowerCaseEvent + "\" is emitted in component " +
  6627. (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
  6628. "Note that HTML attributes are case-insensitive and you cannot use " +
  6629. "v-on to listen to camelCase events when using in-DOM templates. " +
  6630. "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
  6631. );
  6632. }
  6633. }
  6634. var cbs = vm._events[event];
  6635. if (cbs) {
  6636. cbs = cbs.length > 1 ? toArray(cbs) : cbs;
  6637. var args = toArray(arguments, 1);
  6638. var info = "event handler for \"" + event + "\"";
  6639. for (var i = 0, l = cbs.length; i < l; i++) {
  6640. invokeWithErrorHandling(cbs[i], vm, args, vm, info);
  6641. }
  6642. }
  6643. return vm
  6644. };
  6645. }
  6646. /* */
  6647. var activeInstance = null;
  6648. var isUpdatingChildComponent = false;
  6649. function setActiveInstance(vm) {
  6650. var prevActiveInstance = activeInstance;
  6651. activeInstance = vm;
  6652. return function () {
  6653. activeInstance = prevActiveInstance;
  6654. }
  6655. }
  6656. function initLifecycle (vm) {
  6657. var options = vm.$options;
  6658. // locate first non-abstract parent
  6659. var parent = options.parent;
  6660. if (parent && !options.abstract) {
  6661. while (parent.$options.abstract && parent.$parent) {
  6662. parent = parent.$parent;
  6663. }
  6664. parent.$children.push(vm);
  6665. }
  6666. vm.$parent = parent;
  6667. vm.$root = parent ? parent.$root : vm;
  6668. vm.$children = [];
  6669. vm.$refs = {};
  6670. vm._watcher = null;
  6671. vm._inactive = null;
  6672. vm._directInactive = false;
  6673. vm._isMounted = false;
  6674. vm._isDestroyed = false;
  6675. vm._isBeingDestroyed = false;
  6676. }
  6677. function lifecycleMixin (Vue) {
  6678. Vue.prototype._update = function (vnode, hydrating) {
  6679. var vm = this;
  6680. var prevEl = vm.$el;
  6681. var prevVnode = vm._vnode;
  6682. var restoreActiveInstance = setActiveInstance(vm);
  6683. vm._vnode = vnode;
  6684. // Vue.prototype.__patch__ is injected in entry points
  6685. // based on the rendering backend used.
  6686. if (!prevVnode) {
  6687. // initial render
  6688. vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
  6689. } else {
  6690. // updates
  6691. vm.$el = vm.__patch__(prevVnode, vnode);
  6692. }
  6693. restoreActiveInstance();
  6694. // update __vue__ reference
  6695. if (prevEl) {
  6696. prevEl.__vue__ = null;
  6697. }
  6698. if (vm.$el) {
  6699. vm.$el.__vue__ = vm;
  6700. }
  6701. // if parent is an HOC, update its $el as well
  6702. if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
  6703. vm.$parent.$el = vm.$el;
  6704. }
  6705. // updated hook is called by the scheduler to ensure that children are
  6706. // updated in a parent's updated hook.
  6707. };
  6708. Vue.prototype.$forceUpdate = function () {
  6709. var vm = this;
  6710. if (vm._watcher) {
  6711. vm._watcher.update();
  6712. }
  6713. };
  6714. Vue.prototype.$destroy = function () {
  6715. var vm = this;
  6716. if (vm._isBeingDestroyed) {
  6717. return
  6718. }
  6719. callHook(vm, 'beforeDestroy');
  6720. vm._isBeingDestroyed = true;
  6721. // remove self from parent
  6722. var parent = vm.$parent;
  6723. if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
  6724. remove(parent.$children, vm);
  6725. }
  6726. // teardown watchers
  6727. if (vm._watcher) {
  6728. vm._watcher.teardown();
  6729. }
  6730. var i = vm._watchers.length;
  6731. while (i--) {
  6732. vm._watchers[i].teardown();
  6733. }
  6734. // remove reference from data ob
  6735. // frozen object may not have observer.
  6736. if (vm._data.__ob__) {
  6737. vm._data.__ob__.vmCount--;
  6738. }
  6739. // call the last hook...
  6740. vm._isDestroyed = true;
  6741. // invoke destroy hooks on current rendered tree
  6742. vm.__patch__(vm._vnode, null);
  6743. // fire destroyed hook
  6744. callHook(vm, 'destroyed');
  6745. // turn off all instance listeners.
  6746. vm.$off();
  6747. // remove __vue__ reference
  6748. if (vm.$el) {
  6749. vm.$el.__vue__ = null;
  6750. }
  6751. // release circular reference (#6759)
  6752. if (vm.$vnode) {
  6753. vm.$vnode.parent = null;
  6754. }
  6755. };
  6756. }
  6757. function updateChildComponent (
  6758. vm,
  6759. propsData,
  6760. listeners,
  6761. parentVnode,
  6762. renderChildren
  6763. ) {
  6764. if (true) {
  6765. isUpdatingChildComponent = true;
  6766. }
  6767. // determine whether component has slot children
  6768. // we need to do this before overwriting $options._renderChildren.
  6769. // check if there are dynamic scopedSlots (hand-written or compiled but with
  6770. // dynamic slot names). Static scoped slots compiled from template has the
  6771. // "$stable" marker.
  6772. var newScopedSlots = parentVnode.data.scopedSlots;
  6773. var oldScopedSlots = vm.$scopedSlots;
  6774. var hasDynamicScopedSlot = !!(
  6775. (newScopedSlots && !newScopedSlots.$stable) ||
  6776. (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
  6777. (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
  6778. );
  6779. // Any static slot children from the parent may have changed during parent's
  6780. // update. Dynamic scoped slots may also have changed. In such cases, a forced
  6781. // update is necessary to ensure correctness.
  6782. var needsForceUpdate = !!(
  6783. renderChildren || // has new static slots
  6784. vm.$options._renderChildren || // has old static slots
  6785. hasDynamicScopedSlot
  6786. );
  6787. vm.$options._parentVnode = parentVnode;
  6788. vm.$vnode = parentVnode; // update vm's placeholder node without re-render
  6789. if (vm._vnode) { // update child tree's parent
  6790. vm._vnode.parent = parentVnode;
  6791. }
  6792. vm.$options._renderChildren = renderChildren;
  6793. // update $attrs and $listeners hash
  6794. // these are also reactive so they may trigger child update if the child
  6795. // used them during render
  6796. vm.$attrs = parentVnode.data.attrs || emptyObject;
  6797. vm.$listeners = listeners || emptyObject;
  6798. // update props
  6799. if (propsData && vm.$options.props) {
  6800. toggleObserving(false);
  6801. var props = vm._props;
  6802. var propKeys = vm.$options._propKeys || [];
  6803. for (var i = 0; i < propKeys.length; i++) {
  6804. var key = propKeys[i];
  6805. var propOptions = vm.$options.props; // wtf flow?
  6806. props[key] = validateProp(key, propOptions, propsData, vm);
  6807. }
  6808. toggleObserving(true);
  6809. // keep a copy of raw propsData
  6810. vm.$options.propsData = propsData;
  6811. }
  6812. // fixed by xxxxxx update properties(mp runtime)
  6813. vm._$updateProperties && vm._$updateProperties(vm);
  6814. // update listeners
  6815. listeners = listeners || emptyObject;
  6816. var oldListeners = vm.$options._parentListeners;
  6817. vm.$options._parentListeners = listeners;
  6818. updateComponentListeners(vm, listeners, oldListeners);
  6819. // resolve slots + force update if has children
  6820. if (needsForceUpdate) {
  6821. vm.$slots = resolveSlots(renderChildren, parentVnode.context);
  6822. vm.$forceUpdate();
  6823. }
  6824. if (true) {
  6825. isUpdatingChildComponent = false;
  6826. }
  6827. }
  6828. function isInInactiveTree (vm) {
  6829. while (vm && (vm = vm.$parent)) {
  6830. if (vm._inactive) { return true }
  6831. }
  6832. return false
  6833. }
  6834. function activateChildComponent (vm, direct) {
  6835. if (direct) {
  6836. vm._directInactive = false;
  6837. if (isInInactiveTree(vm)) {
  6838. return
  6839. }
  6840. } else if (vm._directInactive) {
  6841. return
  6842. }
  6843. if (vm._inactive || vm._inactive === null) {
  6844. vm._inactive = false;
  6845. for (var i = 0; i < vm.$children.length; i++) {
  6846. activateChildComponent(vm.$children[i]);
  6847. }
  6848. callHook(vm, 'activated');
  6849. }
  6850. }
  6851. function deactivateChildComponent (vm, direct) {
  6852. if (direct) {
  6853. vm._directInactive = true;
  6854. if (isInInactiveTree(vm)) {
  6855. return
  6856. }
  6857. }
  6858. if (!vm._inactive) {
  6859. vm._inactive = true;
  6860. for (var i = 0; i < vm.$children.length; i++) {
  6861. deactivateChildComponent(vm.$children[i]);
  6862. }
  6863. callHook(vm, 'deactivated');
  6864. }
  6865. }
  6866. function callHook (vm, hook) {
  6867. // #7573 disable dep collection when invoking lifecycle hooks
  6868. pushTarget();
  6869. var handlers = vm.$options[hook];
  6870. var info = hook + " hook";
  6871. if (handlers) {
  6872. for (var i = 0, j = handlers.length; i < j; i++) {
  6873. invokeWithErrorHandling(handlers[i], vm, null, vm, info);
  6874. }
  6875. }
  6876. if (vm._hasHookEvent) {
  6877. vm.$emit('hook:' + hook);
  6878. }
  6879. popTarget();
  6880. }
  6881. /* */
  6882. var MAX_UPDATE_COUNT = 100;
  6883. var queue = [];
  6884. var activatedChildren = [];
  6885. var has = {};
  6886. var circular = {};
  6887. var waiting = false;
  6888. var flushing = false;
  6889. var index = 0;
  6890. /**
  6891. * Reset the scheduler's state.
  6892. */
  6893. function resetSchedulerState () {
  6894. index = queue.length = activatedChildren.length = 0;
  6895. has = {};
  6896. if (true) {
  6897. circular = {};
  6898. }
  6899. waiting = flushing = false;
  6900. }
  6901. // Async edge case #6566 requires saving the timestamp when event listeners are
  6902. // attached. However, calling performance.now() has a perf overhead especially
  6903. // if the page has thousands of event listeners. Instead, we take a timestamp
  6904. // every time the scheduler flushes and use that for all event listeners
  6905. // attached during that flush.
  6906. var currentFlushTimestamp = 0;
  6907. // Async edge case fix requires storing an event listener's attach timestamp.
  6908. var getNow = Date.now;
  6909. // Determine what event timestamp the browser is using. Annoyingly, the
  6910. // timestamp can either be hi-res (relative to page load) or low-res
  6911. // (relative to UNIX epoch), so in order to compare time we have to use the
  6912. // same timestamp type when saving the flush timestamp.
  6913. // All IE versions use low-res event timestamps, and have problematic clock
  6914. // implementations (#9632)
  6915. if (inBrowser && !isIE) {
  6916. var performance = window.performance;
  6917. if (
  6918. performance &&
  6919. typeof performance.now === 'function' &&
  6920. getNow() > document.createEvent('Event').timeStamp
  6921. ) {
  6922. // if the event timestamp, although evaluated AFTER the Date.now(), is
  6923. // smaller than it, it means the event is using a hi-res timestamp,
  6924. // and we need to use the hi-res version for event listener timestamps as
  6925. // well.
  6926. getNow = function () { return performance.now(); };
  6927. }
  6928. }
  6929. /**
  6930. * Flush both queues and run the watchers.
  6931. */
  6932. function flushSchedulerQueue () {
  6933. currentFlushTimestamp = getNow();
  6934. flushing = true;
  6935. var watcher, id;
  6936. // Sort queue before flush.
  6937. // This ensures that:
  6938. // 1. Components are updated from parent to child. (because parent is always
  6939. // created before the child)
  6940. // 2. A component's user watchers are run before its render watcher (because
  6941. // user watchers are created before the render watcher)
  6942. // 3. If a component is destroyed during a parent component's watcher run,
  6943. // its watchers can be skipped.
  6944. queue.sort(function (a, b) { return a.id - b.id; });
  6945. // do not cache length because more watchers might be pushed
  6946. // as we run existing watchers
  6947. for (index = 0; index < queue.length; index++) {
  6948. watcher = queue[index];
  6949. if (watcher.before) {
  6950. watcher.before();
  6951. }
  6952. id = watcher.id;
  6953. has[id] = null;
  6954. watcher.run();
  6955. // in dev build, check and stop circular updates.
  6956. if ( true && has[id] != null) {
  6957. circular[id] = (circular[id] || 0) + 1;
  6958. if (circular[id] > MAX_UPDATE_COUNT) {
  6959. warn(
  6960. 'You may have an infinite update loop ' + (
  6961. watcher.user
  6962. ? ("in watcher with expression \"" + (watcher.expression) + "\"")
  6963. : "in a component render function."
  6964. ),
  6965. watcher.vm
  6966. );
  6967. break
  6968. }
  6969. }
  6970. }
  6971. // keep copies of post queues before resetting state
  6972. var activatedQueue = activatedChildren.slice();
  6973. var updatedQueue = queue.slice();
  6974. resetSchedulerState();
  6975. // call component updated and activated hooks
  6976. callActivatedHooks(activatedQueue);
  6977. callUpdatedHooks(updatedQueue);
  6978. // devtool hook
  6979. /* istanbul ignore if */
  6980. if (devtools && config.devtools) {
  6981. devtools.emit('flush');
  6982. }
  6983. }
  6984. function callUpdatedHooks (queue) {
  6985. var i = queue.length;
  6986. while (i--) {
  6987. var watcher = queue[i];
  6988. var vm = watcher.vm;
  6989. if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
  6990. callHook(vm, 'updated');
  6991. }
  6992. }
  6993. }
  6994. /**
  6995. * Queue a kept-alive component that was activated during patch.
  6996. * The queue will be processed after the entire tree has been patched.
  6997. */
  6998. function queueActivatedComponent (vm) {
  6999. // setting _inactive to false here so that a render function can
  7000. // rely on checking whether it's in an inactive tree (e.g. router-view)
  7001. vm._inactive = false;
  7002. activatedChildren.push(vm);
  7003. }
  7004. function callActivatedHooks (queue) {
  7005. for (var i = 0; i < queue.length; i++) {
  7006. queue[i]._inactive = true;
  7007. activateChildComponent(queue[i], true /* true */);
  7008. }
  7009. }
  7010. /**
  7011. * Push a watcher into the watcher queue.
  7012. * Jobs with duplicate IDs will be skipped unless it's
  7013. * pushed when the queue is being flushed.
  7014. */
  7015. function queueWatcher (watcher) {
  7016. var id = watcher.id;
  7017. if (has[id] == null) {
  7018. has[id] = true;
  7019. if (!flushing) {
  7020. queue.push(watcher);
  7021. } else {
  7022. // if already flushing, splice the watcher based on its id
  7023. // if already past its id, it will be run next immediately.
  7024. var i = queue.length - 1;
  7025. while (i > index && queue[i].id > watcher.id) {
  7026. i--;
  7027. }
  7028. queue.splice(i + 1, 0, watcher);
  7029. }
  7030. // queue the flush
  7031. if (!waiting) {
  7032. waiting = true;
  7033. if ( true && !config.async) {
  7034. flushSchedulerQueue();
  7035. return
  7036. }
  7037. nextTick(flushSchedulerQueue);
  7038. }
  7039. }
  7040. }
  7041. /* */
  7042. var uid$2 = 0;
  7043. /**
  7044. * A watcher parses an expression, collects dependencies,
  7045. * and fires callback when the expression value changes.
  7046. * This is used for both the $watch() api and directives.
  7047. */
  7048. var Watcher = function Watcher (
  7049. vm,
  7050. expOrFn,
  7051. cb,
  7052. options,
  7053. isRenderWatcher
  7054. ) {
  7055. this.vm = vm;
  7056. if (isRenderWatcher) {
  7057. vm._watcher = this;
  7058. }
  7059. vm._watchers.push(this);
  7060. // options
  7061. if (options) {
  7062. this.deep = !!options.deep;
  7063. this.user = !!options.user;
  7064. this.lazy = !!options.lazy;
  7065. this.sync = !!options.sync;
  7066. this.before = options.before;
  7067. } else {
  7068. this.deep = this.user = this.lazy = this.sync = false;
  7069. }
  7070. this.cb = cb;
  7071. this.id = ++uid$2; // uid for batching
  7072. this.active = true;
  7073. this.dirty = this.lazy; // for lazy watchers
  7074. this.deps = [];
  7075. this.newDeps = [];
  7076. this.depIds = new _Set();
  7077. this.newDepIds = new _Set();
  7078. this.expression = true
  7079. ? expOrFn.toString()
  7080. : undefined;
  7081. // parse expression for getter
  7082. if (typeof expOrFn === 'function') {
  7083. this.getter = expOrFn;
  7084. } else {
  7085. this.getter = parsePath(expOrFn);
  7086. if (!this.getter) {
  7087. this.getter = noop;
  7088. true && warn(
  7089. "Failed watching path: \"" + expOrFn + "\" " +
  7090. 'Watcher only accepts simple dot-delimited paths. ' +
  7091. 'For full control, use a function instead.',
  7092. vm
  7093. );
  7094. }
  7095. }
  7096. this.value = this.lazy
  7097. ? undefined
  7098. : this.get();
  7099. };
  7100. /**
  7101. * Evaluate the getter, and re-collect dependencies.
  7102. */
  7103. Watcher.prototype.get = function get () {
  7104. pushTarget(this);
  7105. var value;
  7106. var vm = this.vm;
  7107. try {
  7108. value = this.getter.call(vm, vm);
  7109. } catch (e) {
  7110. if (this.user) {
  7111. handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
  7112. } else {
  7113. throw e
  7114. }
  7115. } finally {
  7116. // "touch" every property so they are all tracked as
  7117. // dependencies for deep watching
  7118. if (this.deep) {
  7119. traverse(value);
  7120. }
  7121. popTarget();
  7122. this.cleanupDeps();
  7123. }
  7124. return value
  7125. };
  7126. /**
  7127. * Add a dependency to this directive.
  7128. */
  7129. Watcher.prototype.addDep = function addDep (dep) {
  7130. var id = dep.id;
  7131. if (!this.newDepIds.has(id)) {
  7132. this.newDepIds.add(id);
  7133. this.newDeps.push(dep);
  7134. if (!this.depIds.has(id)) {
  7135. dep.addSub(this);
  7136. }
  7137. }
  7138. };
  7139. /**
  7140. * Clean up for dependency collection.
  7141. */
  7142. Watcher.prototype.cleanupDeps = function cleanupDeps () {
  7143. var i = this.deps.length;
  7144. while (i--) {
  7145. var dep = this.deps[i];
  7146. if (!this.newDepIds.has(dep.id)) {
  7147. dep.removeSub(this);
  7148. }
  7149. }
  7150. var tmp = this.depIds;
  7151. this.depIds = this.newDepIds;
  7152. this.newDepIds = tmp;
  7153. this.newDepIds.clear();
  7154. tmp = this.deps;
  7155. this.deps = this.newDeps;
  7156. this.newDeps = tmp;
  7157. this.newDeps.length = 0;
  7158. };
  7159. /**
  7160. * Subscriber interface.
  7161. * Will be called when a dependency changes.
  7162. */
  7163. Watcher.prototype.update = function update () {
  7164. /* istanbul ignore else */
  7165. if (this.lazy) {
  7166. this.dirty = true;
  7167. } else if (this.sync) {
  7168. this.run();
  7169. } else {
  7170. queueWatcher(this);
  7171. }
  7172. };
  7173. /**
  7174. * Scheduler job interface.
  7175. * Will be called by the scheduler.
  7176. */
  7177. Watcher.prototype.run = function run () {
  7178. if (this.active) {
  7179. var value = this.get();
  7180. if (
  7181. value !== this.value ||
  7182. // Deep watchers and watchers on Object/Arrays should fire even
  7183. // when the value is the same, because the value may
  7184. // have mutated.
  7185. isObject(value) ||
  7186. this.deep
  7187. ) {
  7188. // set new value
  7189. var oldValue = this.value;
  7190. this.value = value;
  7191. if (this.user) {
  7192. try {
  7193. this.cb.call(this.vm, value, oldValue);
  7194. } catch (e) {
  7195. handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
  7196. }
  7197. } else {
  7198. this.cb.call(this.vm, value, oldValue);
  7199. }
  7200. }
  7201. }
  7202. };
  7203. /**
  7204. * Evaluate the value of the watcher.
  7205. * This only gets called for lazy watchers.
  7206. */
  7207. Watcher.prototype.evaluate = function evaluate () {
  7208. this.value = this.get();
  7209. this.dirty = false;
  7210. };
  7211. /**
  7212. * Depend on all deps collected by this watcher.
  7213. */
  7214. Watcher.prototype.depend = function depend () {
  7215. var i = this.deps.length;
  7216. while (i--) {
  7217. this.deps[i].depend();
  7218. }
  7219. };
  7220. /**
  7221. * Remove self from all dependencies' subscriber list.
  7222. */
  7223. Watcher.prototype.teardown = function teardown () {
  7224. if (this.active) {
  7225. // remove self from vm's watcher list
  7226. // this is a somewhat expensive operation so we skip it
  7227. // if the vm is being destroyed.
  7228. if (!this.vm._isBeingDestroyed) {
  7229. remove(this.vm._watchers, this);
  7230. }
  7231. var i = this.deps.length;
  7232. while (i--) {
  7233. this.deps[i].removeSub(this);
  7234. }
  7235. this.active = false;
  7236. }
  7237. };
  7238. /* */
  7239. var sharedPropertyDefinition = {
  7240. enumerable: true,
  7241. configurable: true,
  7242. get: noop,
  7243. set: noop
  7244. };
  7245. function proxy (target, sourceKey, key) {
  7246. sharedPropertyDefinition.get = function proxyGetter () {
  7247. return this[sourceKey][key]
  7248. };
  7249. sharedPropertyDefinition.set = function proxySetter (val) {
  7250. this[sourceKey][key] = val;
  7251. };
  7252. Object.defineProperty(target, key, sharedPropertyDefinition);
  7253. }
  7254. function initState (vm) {
  7255. vm._watchers = [];
  7256. var opts = vm.$options;
  7257. if (opts.props) { initProps(vm, opts.props); }
  7258. if (opts.methods) { initMethods(vm, opts.methods); }
  7259. if (opts.data) {
  7260. initData(vm);
  7261. } else {
  7262. observe(vm._data = {}, true /* asRootData */);
  7263. }
  7264. if (opts.computed) { initComputed(vm, opts.computed); }
  7265. if (opts.watch && opts.watch !== nativeWatch) {
  7266. initWatch(vm, opts.watch);
  7267. }
  7268. }
  7269. function initProps (vm, propsOptions) {
  7270. var propsData = vm.$options.propsData || {};
  7271. var props = vm._props = {};
  7272. // cache prop keys so that future props updates can iterate using Array
  7273. // instead of dynamic object key enumeration.
  7274. var keys = vm.$options._propKeys = [];
  7275. var isRoot = !vm.$parent;
  7276. // root instance props should be converted
  7277. if (!isRoot) {
  7278. toggleObserving(false);
  7279. }
  7280. var loop = function ( key ) {
  7281. keys.push(key);
  7282. var value = validateProp(key, propsOptions, propsData, vm);
  7283. /* istanbul ignore else */
  7284. if (true) {
  7285. var hyphenatedKey = hyphenate(key);
  7286. if (isReservedAttribute(hyphenatedKey) ||
  7287. config.isReservedAttr(hyphenatedKey)) {
  7288. warn(
  7289. ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
  7290. vm
  7291. );
  7292. }
  7293. defineReactive$$1(props, key, value, function () {
  7294. if (!isRoot && !isUpdatingChildComponent) {
  7295. {
  7296. if(vm.mpHost === 'mp-baidu'){//百度 observer 在 setData callback 之后触发,直接忽略该 warn
  7297. return
  7298. }
  7299. //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警
  7300. if(
  7301. key === 'value' &&
  7302. Array.isArray(vm.$options.behaviors) &&
  7303. vm.$options.behaviors.indexOf('uni://form-field') !== -1
  7304. ){
  7305. return
  7306. }
  7307. if(vm._getFormData){
  7308. return
  7309. }
  7310. var $parent = vm.$parent;
  7311. while($parent){
  7312. if($parent.__next_tick_pending){
  7313. return
  7314. }
  7315. $parent = $parent.$parent;
  7316. }
  7317. }
  7318. warn(
  7319. "Avoid mutating a prop directly since the value will be " +
  7320. "overwritten whenever the parent component re-renders. " +
  7321. "Instead, use a data or computed property based on the prop's " +
  7322. "value. Prop being mutated: \"" + key + "\"",
  7323. vm
  7324. );
  7325. }
  7326. });
  7327. } else {}
  7328. // static props are already proxied on the component's prototype
  7329. // during Vue.extend(). We only need to proxy props defined at
  7330. // instantiation here.
  7331. if (!(key in vm)) {
  7332. proxy(vm, "_props", key);
  7333. }
  7334. };
  7335. for (var key in propsOptions) loop( key );
  7336. toggleObserving(true);
  7337. }
  7338. function initData (vm) {
  7339. var data = vm.$options.data;
  7340. data = vm._data = typeof data === 'function'
  7341. ? getData(data, vm)
  7342. : data || {};
  7343. if (!isPlainObject(data)) {
  7344. data = {};
  7345. true && warn(
  7346. 'data functions should return an object:\n' +
  7347. 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
  7348. vm
  7349. );
  7350. }
  7351. // proxy data on instance
  7352. var keys = Object.keys(data);
  7353. var props = vm.$options.props;
  7354. var methods = vm.$options.methods;
  7355. var i = keys.length;
  7356. while (i--) {
  7357. var key = keys[i];
  7358. if (true) {
  7359. if (methods && hasOwn(methods, key)) {
  7360. warn(
  7361. ("Method \"" + key + "\" has already been defined as a data property."),
  7362. vm
  7363. );
  7364. }
  7365. }
  7366. if (props && hasOwn(props, key)) {
  7367. true && warn(
  7368. "The data property \"" + key + "\" is already declared as a prop. " +
  7369. "Use prop default value instead.",
  7370. vm
  7371. );
  7372. } else if (!isReserved(key)) {
  7373. proxy(vm, "_data", key);
  7374. }
  7375. }
  7376. // observe data
  7377. observe(data, true /* asRootData */);
  7378. }
  7379. function getData (data, vm) {
  7380. // #7573 disable dep collection when invoking data getters
  7381. pushTarget();
  7382. try {
  7383. return data.call(vm, vm)
  7384. } catch (e) {
  7385. handleError(e, vm, "data()");
  7386. return {}
  7387. } finally {
  7388. popTarget();
  7389. }
  7390. }
  7391. var computedWatcherOptions = { lazy: true };
  7392. function initComputed (vm, computed) {
  7393. // $flow-disable-line
  7394. var watchers = vm._computedWatchers = Object.create(null);
  7395. // computed properties are just getters during SSR
  7396. var isSSR = isServerRendering();
  7397. for (var key in computed) {
  7398. var userDef = computed[key];
  7399. var getter = typeof userDef === 'function' ? userDef : userDef.get;
  7400. if ( true && getter == null) {
  7401. warn(
  7402. ("Getter is missing for computed property \"" + key + "\"."),
  7403. vm
  7404. );
  7405. }
  7406. if (!isSSR) {
  7407. // create internal watcher for the computed property.
  7408. watchers[key] = new Watcher(
  7409. vm,
  7410. getter || noop,
  7411. noop,
  7412. computedWatcherOptions
  7413. );
  7414. }
  7415. // component-defined computed properties are already defined on the
  7416. // component prototype. We only need to define computed properties defined
  7417. // at instantiation here.
  7418. if (!(key in vm)) {
  7419. defineComputed(vm, key, userDef);
  7420. } else if (true) {
  7421. if (key in vm.$data) {
  7422. warn(("The computed property \"" + key + "\" is already defined in data."), vm);
  7423. } else if (vm.$options.props && key in vm.$options.props) {
  7424. warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
  7425. }
  7426. }
  7427. }
  7428. }
  7429. function defineComputed (
  7430. target,
  7431. key,
  7432. userDef
  7433. ) {
  7434. var shouldCache = !isServerRendering();
  7435. if (typeof userDef === 'function') {
  7436. sharedPropertyDefinition.get = shouldCache
  7437. ? createComputedGetter(key)
  7438. : createGetterInvoker(userDef);
  7439. sharedPropertyDefinition.set = noop;
  7440. } else {
  7441. sharedPropertyDefinition.get = userDef.get
  7442. ? shouldCache && userDef.cache !== false
  7443. ? createComputedGetter(key)
  7444. : createGetterInvoker(userDef.get)
  7445. : noop;
  7446. sharedPropertyDefinition.set = userDef.set || noop;
  7447. }
  7448. if ( true &&
  7449. sharedPropertyDefinition.set === noop) {
  7450. sharedPropertyDefinition.set = function () {
  7451. warn(
  7452. ("Computed property \"" + key + "\" was assigned to but it has no setter."),
  7453. this
  7454. );
  7455. };
  7456. }
  7457. Object.defineProperty(target, key, sharedPropertyDefinition);
  7458. }
  7459. function createComputedGetter (key) {
  7460. return function computedGetter () {
  7461. var watcher = this._computedWatchers && this._computedWatchers[key];
  7462. if (watcher) {
  7463. if (watcher.dirty) {
  7464. watcher.evaluate();
  7465. }
  7466. if (Dep.SharedObject.target) {// fixed by xxxxxx
  7467. watcher.depend();
  7468. }
  7469. return watcher.value
  7470. }
  7471. }
  7472. }
  7473. function createGetterInvoker(fn) {
  7474. return function computedGetter () {
  7475. return fn.call(this, this)
  7476. }
  7477. }
  7478. function initMethods (vm, methods) {
  7479. var props = vm.$options.props;
  7480. for (var key in methods) {
  7481. if (true) {
  7482. if (typeof methods[key] !== 'function') {
  7483. warn(
  7484. "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
  7485. "Did you reference the function correctly?",
  7486. vm
  7487. );
  7488. }
  7489. if (props && hasOwn(props, key)) {
  7490. warn(
  7491. ("Method \"" + key + "\" has already been defined as a prop."),
  7492. vm
  7493. );
  7494. }
  7495. if ((key in vm) && isReserved(key)) {
  7496. warn(
  7497. "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
  7498. "Avoid defining component methods that start with _ or $."
  7499. );
  7500. }
  7501. }
  7502. vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
  7503. }
  7504. }
  7505. function initWatch (vm, watch) {
  7506. for (var key in watch) {
  7507. var handler = watch[key];
  7508. if (Array.isArray(handler)) {
  7509. for (var i = 0; i < handler.length; i++) {
  7510. createWatcher(vm, key, handler[i]);
  7511. }
  7512. } else {
  7513. createWatcher(vm, key, handler);
  7514. }
  7515. }
  7516. }
  7517. function createWatcher (
  7518. vm,
  7519. expOrFn,
  7520. handler,
  7521. options
  7522. ) {
  7523. if (isPlainObject(handler)) {
  7524. options = handler;
  7525. handler = handler.handler;
  7526. }
  7527. if (typeof handler === 'string') {
  7528. handler = vm[handler];
  7529. }
  7530. return vm.$watch(expOrFn, handler, options)
  7531. }
  7532. function stateMixin (Vue) {
  7533. // flow somehow has problems with directly declared definition object
  7534. // when using Object.defineProperty, so we have to procedurally build up
  7535. // the object here.
  7536. var dataDef = {};
  7537. dataDef.get = function () { return this._data };
  7538. var propsDef = {};
  7539. propsDef.get = function () { return this._props };
  7540. if (true) {
  7541. dataDef.set = function () {
  7542. warn(
  7543. 'Avoid replacing instance root $data. ' +
  7544. 'Use nested data properties instead.',
  7545. this
  7546. );
  7547. };
  7548. propsDef.set = function () {
  7549. warn("$props is readonly.", this);
  7550. };
  7551. }
  7552. Object.defineProperty(Vue.prototype, '$data', dataDef);
  7553. Object.defineProperty(Vue.prototype, '$props', propsDef);
  7554. Vue.prototype.$set = set;
  7555. Vue.prototype.$delete = del;
  7556. Vue.prototype.$watch = function (
  7557. expOrFn,
  7558. cb,
  7559. options
  7560. ) {
  7561. var vm = this;
  7562. if (isPlainObject(cb)) {
  7563. return createWatcher(vm, expOrFn, cb, options)
  7564. }
  7565. options = options || {};
  7566. options.user = true;
  7567. var watcher = new Watcher(vm, expOrFn, cb, options);
  7568. if (options.immediate) {
  7569. try {
  7570. cb.call(vm, watcher.value);
  7571. } catch (error) {
  7572. handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
  7573. }
  7574. }
  7575. return function unwatchFn () {
  7576. watcher.teardown();
  7577. }
  7578. };
  7579. }
  7580. /* */
  7581. var uid$3 = 0;
  7582. function initMixin (Vue) {
  7583. Vue.prototype._init = function (options) {
  7584. var vm = this;
  7585. // a uid
  7586. vm._uid = uid$3++;
  7587. var startTag, endTag;
  7588. /* istanbul ignore if */
  7589. if ( true && config.performance && mark) {
  7590. startTag = "vue-perf-start:" + (vm._uid);
  7591. endTag = "vue-perf-end:" + (vm._uid);
  7592. mark(startTag);
  7593. }
  7594. // a flag to avoid this being observed
  7595. vm._isVue = true;
  7596. // merge options
  7597. if (options && options._isComponent) {
  7598. // optimize internal component instantiation
  7599. // since dynamic options merging is pretty slow, and none of the
  7600. // internal component options needs special treatment.
  7601. initInternalComponent(vm, options);
  7602. } else {
  7603. vm.$options = mergeOptions(
  7604. resolveConstructorOptions(vm.constructor),
  7605. options || {},
  7606. vm
  7607. );
  7608. }
  7609. /* istanbul ignore else */
  7610. if (true) {
  7611. initProxy(vm);
  7612. } else {}
  7613. // expose real self
  7614. vm._self = vm;
  7615. initLifecycle(vm);
  7616. initEvents(vm);
  7617. initRender(vm);
  7618. callHook(vm, 'beforeCreate');
  7619. !vm._$fallback && initInjections(vm); // resolve injections before data/props
  7620. initState(vm);
  7621. !vm._$fallback && initProvide(vm); // resolve provide after data/props
  7622. !vm._$fallback && callHook(vm, 'created');
  7623. /* istanbul ignore if */
  7624. if ( true && config.performance && mark) {
  7625. vm._name = formatComponentName(vm, false);
  7626. mark(endTag);
  7627. measure(("vue " + (vm._name) + " init"), startTag, endTag);
  7628. }
  7629. if (vm.$options.el) {
  7630. vm.$mount(vm.$options.el);
  7631. }
  7632. };
  7633. }
  7634. function initInternalComponent (vm, options) {
  7635. var opts = vm.$options = Object.create(vm.constructor.options);
  7636. // doing this because it's faster than dynamic enumeration.
  7637. var parentVnode = options._parentVnode;
  7638. opts.parent = options.parent;
  7639. opts._parentVnode = parentVnode;
  7640. var vnodeComponentOptions = parentVnode.componentOptions;
  7641. opts.propsData = vnodeComponentOptions.propsData;
  7642. opts._parentListeners = vnodeComponentOptions.listeners;
  7643. opts._renderChildren = vnodeComponentOptions.children;
  7644. opts._componentTag = vnodeComponentOptions.tag;
  7645. if (options.render) {
  7646. opts.render = options.render;
  7647. opts.staticRenderFns = options.staticRenderFns;
  7648. }
  7649. }
  7650. function resolveConstructorOptions (Ctor) {
  7651. var options = Ctor.options;
  7652. if (Ctor.super) {
  7653. var superOptions = resolveConstructorOptions(Ctor.super);
  7654. var cachedSuperOptions = Ctor.superOptions;
  7655. if (superOptions !== cachedSuperOptions) {
  7656. // super option changed,
  7657. // need to resolve new options.
  7658. Ctor.superOptions = superOptions;
  7659. // check if there are any late-modified/attached options (#4976)
  7660. var modifiedOptions = resolveModifiedOptions(Ctor);
  7661. // update base extend options
  7662. if (modifiedOptions) {
  7663. extend(Ctor.extendOptions, modifiedOptions);
  7664. }
  7665. options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
  7666. if (options.name) {
  7667. options.components[options.name] = Ctor;
  7668. }
  7669. }
  7670. }
  7671. return options
  7672. }
  7673. function resolveModifiedOptions (Ctor) {
  7674. var modified;
  7675. var latest = Ctor.options;
  7676. var sealed = Ctor.sealedOptions;
  7677. for (var key in latest) {
  7678. if (latest[key] !== sealed[key]) {
  7679. if (!modified) { modified = {}; }
  7680. modified[key] = latest[key];
  7681. }
  7682. }
  7683. return modified
  7684. }
  7685. function Vue (options) {
  7686. if ( true &&
  7687. !(this instanceof Vue)
  7688. ) {
  7689. warn('Vue is a constructor and should be called with the `new` keyword');
  7690. }
  7691. this._init(options);
  7692. }
  7693. initMixin(Vue);
  7694. stateMixin(Vue);
  7695. eventsMixin(Vue);
  7696. lifecycleMixin(Vue);
  7697. renderMixin(Vue);
  7698. /* */
  7699. function initUse (Vue) {
  7700. Vue.use = function (plugin) {
  7701. var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
  7702. if (installedPlugins.indexOf(plugin) > -1) {
  7703. return this
  7704. }
  7705. // additional parameters
  7706. var args = toArray(arguments, 1);
  7707. args.unshift(this);
  7708. if (typeof plugin.install === 'function') {
  7709. plugin.install.apply(plugin, args);
  7710. } else if (typeof plugin === 'function') {
  7711. plugin.apply(null, args);
  7712. }
  7713. installedPlugins.push(plugin);
  7714. return this
  7715. };
  7716. }
  7717. /* */
  7718. function initMixin$1 (Vue) {
  7719. Vue.mixin = function (mixin) {
  7720. this.options = mergeOptions(this.options, mixin);
  7721. return this
  7722. };
  7723. }
  7724. /* */
  7725. function initExtend (Vue) {
  7726. /**
  7727. * Each instance constructor, including Vue, has a unique
  7728. * cid. This enables us to create wrapped "child
  7729. * constructors" for prototypal inheritance and cache them.
  7730. */
  7731. Vue.cid = 0;
  7732. var cid = 1;
  7733. /**
  7734. * Class inheritance
  7735. */
  7736. Vue.extend = function (extendOptions) {
  7737. extendOptions = extendOptions || {};
  7738. var Super = this;
  7739. var SuperId = Super.cid;
  7740. var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
  7741. if (cachedCtors[SuperId]) {
  7742. return cachedCtors[SuperId]
  7743. }
  7744. var name = extendOptions.name || Super.options.name;
  7745. if ( true && name) {
  7746. validateComponentName(name);
  7747. }
  7748. var Sub = function VueComponent (options) {
  7749. this._init(options);
  7750. };
  7751. Sub.prototype = Object.create(Super.prototype);
  7752. Sub.prototype.constructor = Sub;
  7753. Sub.cid = cid++;
  7754. Sub.options = mergeOptions(
  7755. Super.options,
  7756. extendOptions
  7757. );
  7758. Sub['super'] = Super;
  7759. // For props and computed properties, we define the proxy getters on
  7760. // the Vue instances at extension time, on the extended prototype. This
  7761. // avoids Object.defineProperty calls for each instance created.
  7762. if (Sub.options.props) {
  7763. initProps$1(Sub);
  7764. }
  7765. if (Sub.options.computed) {
  7766. initComputed$1(Sub);
  7767. }
  7768. // allow further extension/mixin/plugin usage
  7769. Sub.extend = Super.extend;
  7770. Sub.mixin = Super.mixin;
  7771. Sub.use = Super.use;
  7772. // create asset registers, so extended classes
  7773. // can have their private assets too.
  7774. ASSET_TYPES.forEach(function (type) {
  7775. Sub[type] = Super[type];
  7776. });
  7777. // enable recursive self-lookup
  7778. if (name) {
  7779. Sub.options.components[name] = Sub;
  7780. }
  7781. // keep a reference to the super options at extension time.
  7782. // later at instantiation we can check if Super's options have
  7783. // been updated.
  7784. Sub.superOptions = Super.options;
  7785. Sub.extendOptions = extendOptions;
  7786. Sub.sealedOptions = extend({}, Sub.options);
  7787. // cache constructor
  7788. cachedCtors[SuperId] = Sub;
  7789. return Sub
  7790. };
  7791. }
  7792. function initProps$1 (Comp) {
  7793. var props = Comp.options.props;
  7794. for (var key in props) {
  7795. proxy(Comp.prototype, "_props", key);
  7796. }
  7797. }
  7798. function initComputed$1 (Comp) {
  7799. var computed = Comp.options.computed;
  7800. for (var key in computed) {
  7801. defineComputed(Comp.prototype, key, computed[key]);
  7802. }
  7803. }
  7804. /* */
  7805. function initAssetRegisters (Vue) {
  7806. /**
  7807. * Create asset registration methods.
  7808. */
  7809. ASSET_TYPES.forEach(function (type) {
  7810. Vue[type] = function (
  7811. id,
  7812. definition
  7813. ) {
  7814. if (!definition) {
  7815. return this.options[type + 's'][id]
  7816. } else {
  7817. /* istanbul ignore if */
  7818. if ( true && type === 'component') {
  7819. validateComponentName(id);
  7820. }
  7821. if (type === 'component' && isPlainObject(definition)) {
  7822. definition.name = definition.name || id;
  7823. definition = this.options._base.extend(definition);
  7824. }
  7825. if (type === 'directive' && typeof definition === 'function') {
  7826. definition = { bind: definition, update: definition };
  7827. }
  7828. this.options[type + 's'][id] = definition;
  7829. return definition
  7830. }
  7831. };
  7832. });
  7833. }
  7834. /* */
  7835. function getComponentName (opts) {
  7836. return opts && (opts.Ctor.options.name || opts.tag)
  7837. }
  7838. function matches (pattern, name) {
  7839. if (Array.isArray(pattern)) {
  7840. return pattern.indexOf(name) > -1
  7841. } else if (typeof pattern === 'string') {
  7842. return pattern.split(',').indexOf(name) > -1
  7843. } else if (isRegExp(pattern)) {
  7844. return pattern.test(name)
  7845. }
  7846. /* istanbul ignore next */
  7847. return false
  7848. }
  7849. function pruneCache (keepAliveInstance, filter) {
  7850. var cache = keepAliveInstance.cache;
  7851. var keys = keepAliveInstance.keys;
  7852. var _vnode = keepAliveInstance._vnode;
  7853. for (var key in cache) {
  7854. var cachedNode = cache[key];
  7855. if (cachedNode) {
  7856. var name = getComponentName(cachedNode.componentOptions);
  7857. if (name && !filter(name)) {
  7858. pruneCacheEntry(cache, key, keys, _vnode);
  7859. }
  7860. }
  7861. }
  7862. }
  7863. function pruneCacheEntry (
  7864. cache,
  7865. key,
  7866. keys,
  7867. current
  7868. ) {
  7869. var cached$$1 = cache[key];
  7870. if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
  7871. cached$$1.componentInstance.$destroy();
  7872. }
  7873. cache[key] = null;
  7874. remove(keys, key);
  7875. }
  7876. var patternTypes = [String, RegExp, Array];
  7877. var KeepAlive = {
  7878. name: 'keep-alive',
  7879. abstract: true,
  7880. props: {
  7881. include: patternTypes,
  7882. exclude: patternTypes,
  7883. max: [String, Number]
  7884. },
  7885. created: function created () {
  7886. this.cache = Object.create(null);
  7887. this.keys = [];
  7888. },
  7889. destroyed: function destroyed () {
  7890. for (var key in this.cache) {
  7891. pruneCacheEntry(this.cache, key, this.keys);
  7892. }
  7893. },
  7894. mounted: function mounted () {
  7895. var this$1 = this;
  7896. this.$watch('include', function (val) {
  7897. pruneCache(this$1, function (name) { return matches(val, name); });
  7898. });
  7899. this.$watch('exclude', function (val) {
  7900. pruneCache(this$1, function (name) { return !matches(val, name); });
  7901. });
  7902. },
  7903. render: function render () {
  7904. var slot = this.$slots.default;
  7905. var vnode = getFirstComponentChild(slot);
  7906. var componentOptions = vnode && vnode.componentOptions;
  7907. if (componentOptions) {
  7908. // check pattern
  7909. var name = getComponentName(componentOptions);
  7910. var ref = this;
  7911. var include = ref.include;
  7912. var exclude = ref.exclude;
  7913. if (
  7914. // not included
  7915. (include && (!name || !matches(include, name))) ||
  7916. // excluded
  7917. (exclude && name && matches(exclude, name))
  7918. ) {
  7919. return vnode
  7920. }
  7921. var ref$1 = this;
  7922. var cache = ref$1.cache;
  7923. var keys = ref$1.keys;
  7924. var key = vnode.key == null
  7925. // same constructor may get registered as different local components
  7926. // so cid alone is not enough (#3269)
  7927. ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
  7928. : vnode.key;
  7929. if (cache[key]) {
  7930. vnode.componentInstance = cache[key].componentInstance;
  7931. // make current key freshest
  7932. remove(keys, key);
  7933. keys.push(key);
  7934. } else {
  7935. cache[key] = vnode;
  7936. keys.push(key);
  7937. // prune oldest entry
  7938. if (this.max && keys.length > parseInt(this.max)) {
  7939. pruneCacheEntry(cache, keys[0], keys, this._vnode);
  7940. }
  7941. }
  7942. vnode.data.keepAlive = true;
  7943. }
  7944. return vnode || (slot && slot[0])
  7945. }
  7946. };
  7947. var builtInComponents = {
  7948. KeepAlive: KeepAlive
  7949. };
  7950. /* */
  7951. function initGlobalAPI (Vue) {
  7952. // config
  7953. var configDef = {};
  7954. configDef.get = function () { return config; };
  7955. if (true) {
  7956. configDef.set = function () {
  7957. warn(
  7958. 'Do not replace the Vue.config object, set individual fields instead.'
  7959. );
  7960. };
  7961. }
  7962. Object.defineProperty(Vue, 'config', configDef);
  7963. // exposed util methods.
  7964. // NOTE: these are not considered part of the public API - avoid relying on
  7965. // them unless you are aware of the risk.
  7966. Vue.util = {
  7967. warn: warn,
  7968. extend: extend,
  7969. mergeOptions: mergeOptions,
  7970. defineReactive: defineReactive$$1
  7971. };
  7972. Vue.set = set;
  7973. Vue.delete = del;
  7974. Vue.nextTick = nextTick;
  7975. // 2.6 explicit observable API
  7976. Vue.observable = function (obj) {
  7977. observe(obj);
  7978. return obj
  7979. };
  7980. Vue.options = Object.create(null);
  7981. ASSET_TYPES.forEach(function (type) {
  7982. Vue.options[type + 's'] = Object.create(null);
  7983. });
  7984. // this is used to identify the "base" constructor to extend all plain-object
  7985. // components with in Weex's multi-instance scenarios.
  7986. Vue.options._base = Vue;
  7987. extend(Vue.options.components, builtInComponents);
  7988. initUse(Vue);
  7989. initMixin$1(Vue);
  7990. initExtend(Vue);
  7991. initAssetRegisters(Vue);
  7992. }
  7993. initGlobalAPI(Vue);
  7994. Object.defineProperty(Vue.prototype, '$isServer', {
  7995. get: isServerRendering
  7996. });
  7997. Object.defineProperty(Vue.prototype, '$ssrContext', {
  7998. get: function get () {
  7999. /* istanbul ignore next */
  8000. return this.$vnode && this.$vnode.ssrContext
  8001. }
  8002. });
  8003. // expose FunctionalRenderContext for ssr runtime helper installation
  8004. Object.defineProperty(Vue, 'FunctionalRenderContext', {
  8005. value: FunctionalRenderContext
  8006. });
  8007. Vue.version = '2.6.11';
  8008. /**
  8009. * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js
  8010. */
  8011. var ARRAYTYPE = '[object Array]';
  8012. var OBJECTTYPE = '[object Object]';
  8013. // const FUNCTIONTYPE = '[object Function]'
  8014. function diff(current, pre) {
  8015. var result = {};
  8016. syncKeys(current, pre);
  8017. _diff(current, pre, '', result);
  8018. return result
  8019. }
  8020. function syncKeys(current, pre) {
  8021. if (current === pre) { return }
  8022. var rootCurrentType = type(current);
  8023. var rootPreType = type(pre);
  8024. if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {
  8025. if(Object.keys(current).length >= Object.keys(pre).length){
  8026. for (var key in pre) {
  8027. var currentValue = current[key];
  8028. if (currentValue === undefined) {
  8029. current[key] = null;
  8030. } else {
  8031. syncKeys(currentValue, pre[key]);
  8032. }
  8033. }
  8034. }
  8035. } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {
  8036. if (current.length >= pre.length) {
  8037. pre.forEach(function (item, index) {
  8038. syncKeys(current[index], item);
  8039. });
  8040. }
  8041. }
  8042. }
  8043. function _diff(current, pre, path, result) {
  8044. if (current === pre) { return }
  8045. var rootCurrentType = type(current);
  8046. var rootPreType = type(pre);
  8047. if (rootCurrentType == OBJECTTYPE) {
  8048. if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {
  8049. setResult(result, path, current);
  8050. } else {
  8051. var loop = function ( key ) {
  8052. var currentValue = current[key];
  8053. var preValue = pre[key];
  8054. var currentType = type(currentValue);
  8055. var preType = type(preValue);
  8056. if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {
  8057. if (currentValue != pre[key]) {
  8058. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  8059. }
  8060. } else if (currentType == ARRAYTYPE) {
  8061. if (preType != ARRAYTYPE) {
  8062. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  8063. } else {
  8064. if (currentValue.length < preValue.length) {
  8065. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  8066. } else {
  8067. currentValue.forEach(function (item, index) {
  8068. _diff(item, preValue[index], (path == '' ? '' : path + ".") + key + '[' + index + ']', result);
  8069. });
  8070. }
  8071. }
  8072. } else if (currentType == OBJECTTYPE) {
  8073. if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {
  8074. setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
  8075. } else {
  8076. for (var subKey in currentValue) {
  8077. _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + ".") + key + '.' + subKey, result);
  8078. }
  8079. }
  8080. }
  8081. };
  8082. for (var key in current) loop( key );
  8083. }
  8084. } else if (rootCurrentType == ARRAYTYPE) {
  8085. if (rootPreType != ARRAYTYPE) {
  8086. setResult(result, path, current);
  8087. } else {
  8088. if (current.length < pre.length) {
  8089. setResult(result, path, current);
  8090. } else {
  8091. current.forEach(function (item, index) {
  8092. _diff(item, pre[index], path + '[' + index + ']', result);
  8093. });
  8094. }
  8095. }
  8096. } else {
  8097. setResult(result, path, current);
  8098. }
  8099. }
  8100. function setResult(result, k, v) {
  8101. // if (type(v) != FUNCTIONTYPE) {
  8102. result[k] = v;
  8103. // }
  8104. }
  8105. function type(obj) {
  8106. return Object.prototype.toString.call(obj)
  8107. }
  8108. /* */
  8109. function flushCallbacks$1(vm) {
  8110. if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {
  8111. if (Object({"NODE_ENV":"development","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
  8112. var mpInstance = vm.$scope;
  8113. console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
  8114. ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');
  8115. }
  8116. var copies = vm.__next_tick_callbacks.slice(0);
  8117. vm.__next_tick_callbacks.length = 0;
  8118. for (var i = 0; i < copies.length; i++) {
  8119. copies[i]();
  8120. }
  8121. }
  8122. }
  8123. function hasRenderWatcher(vm) {
  8124. return queue.find(function (watcher) { return vm._watcher === watcher; })
  8125. }
  8126. function nextTick$1(vm, cb) {
  8127. //1.nextTick 之前 已 setData 且 setData 还未回调完成
  8128. //2.nextTick 之前存在 render watcher
  8129. if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {
  8130. if(Object({"NODE_ENV":"development","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
  8131. var mpInstance = vm.$scope;
  8132. console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
  8133. ']:nextVueTick');
  8134. }
  8135. return nextTick(cb, vm)
  8136. }else{
  8137. if(Object({"NODE_ENV":"development","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
  8138. var mpInstance$1 = vm.$scope;
  8139. console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +
  8140. ']:nextMPTick');
  8141. }
  8142. }
  8143. var _resolve;
  8144. if (!vm.__next_tick_callbacks) {
  8145. vm.__next_tick_callbacks = [];
  8146. }
  8147. vm.__next_tick_callbacks.push(function () {
  8148. if (cb) {
  8149. try {
  8150. cb.call(vm);
  8151. } catch (e) {
  8152. handleError(e, vm, 'nextTick');
  8153. }
  8154. } else if (_resolve) {
  8155. _resolve(vm);
  8156. }
  8157. });
  8158. // $flow-disable-line
  8159. if (!cb && typeof Promise !== 'undefined') {
  8160. return new Promise(function (resolve) {
  8161. _resolve = resolve;
  8162. })
  8163. }
  8164. }
  8165. /* */
  8166. function cloneWithData(vm) {
  8167. // 确保当前 vm 所有数据被同步
  8168. var ret = Object.create(null);
  8169. var dataKeys = [].concat(
  8170. Object.keys(vm._data || {}),
  8171. Object.keys(vm._computedWatchers || {}));
  8172. dataKeys.reduce(function(ret, key) {
  8173. ret[key] = vm[key];
  8174. return ret
  8175. }, ret);
  8176. //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据
  8177. Object.assign(ret, vm.$mp.data || {});
  8178. if (
  8179. Array.isArray(vm.$options.behaviors) &&
  8180. vm.$options.behaviors.indexOf('uni://form-field') !== -1
  8181. ) { //form-field
  8182. ret['name'] = vm.name;
  8183. ret['value'] = vm.value;
  8184. }
  8185. return JSON.parse(JSON.stringify(ret))
  8186. }
  8187. var patch = function(oldVnode, vnode) {
  8188. var this$1 = this;
  8189. if (vnode === null) { //destroy
  8190. return
  8191. }
  8192. if (this.mpType === 'page' || this.mpType === 'component') {
  8193. var mpInstance = this.$scope;
  8194. var data = Object.create(null);
  8195. try {
  8196. data = cloneWithData(this);
  8197. } catch (err) {
  8198. console.error(err);
  8199. }
  8200. data.__webviewId__ = mpInstance.data.__webviewId__;
  8201. var mpData = Object.create(null);
  8202. Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据
  8203. mpData[key] = mpInstance.data[key];
  8204. });
  8205. var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);
  8206. if (Object.keys(diffData).length) {
  8207. if (Object({"NODE_ENV":"development","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
  8208. console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +
  8209. ']差量更新',
  8210. JSON.stringify(diffData));
  8211. }
  8212. this.__next_tick_pending = true;
  8213. mpInstance.setData(diffData, function () {
  8214. this$1.__next_tick_pending = false;
  8215. flushCallbacks$1(this$1);
  8216. });
  8217. } else {
  8218. flushCallbacks$1(this);
  8219. }
  8220. }
  8221. };
  8222. /* */
  8223. function createEmptyRender() {
  8224. }
  8225. function mountComponent$1(
  8226. vm,
  8227. el,
  8228. hydrating
  8229. ) {
  8230. if (!vm.mpType) {//main.js 中的 new Vue
  8231. return vm
  8232. }
  8233. if (vm.mpType === 'app') {
  8234. vm.$options.render = createEmptyRender;
  8235. }
  8236. if (!vm.$options.render) {
  8237. vm.$options.render = createEmptyRender;
  8238. if (true) {
  8239. /* istanbul ignore if */
  8240. if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
  8241. vm.$options.el || el) {
  8242. warn(
  8243. 'You are using the runtime-only build of Vue where the template ' +
  8244. 'compiler is not available. Either pre-compile the templates into ' +
  8245. 'render functions, or use the compiler-included build.',
  8246. vm
  8247. );
  8248. } else {
  8249. warn(
  8250. 'Failed to mount component: template or render function not defined.',
  8251. vm
  8252. );
  8253. }
  8254. }
  8255. }
  8256. !vm._$fallback && callHook(vm, 'beforeMount');
  8257. var updateComponent = function () {
  8258. vm._update(vm._render(), hydrating);
  8259. };
  8260. // we set this to vm._watcher inside the watcher's constructor
  8261. // since the watcher's initial patch may call $forceUpdate (e.g. inside child
  8262. // component's mounted hook), which relies on vm._watcher being already defined
  8263. new Watcher(vm, updateComponent, noop, {
  8264. before: function before() {
  8265. if (vm._isMounted && !vm._isDestroyed) {
  8266. callHook(vm, 'beforeUpdate');
  8267. }
  8268. }
  8269. }, true /* isRenderWatcher */);
  8270. hydrating = false;
  8271. return vm
  8272. }
  8273. /* */
  8274. function renderClass (
  8275. staticClass,
  8276. dynamicClass
  8277. ) {
  8278. if (isDef(staticClass) || isDef(dynamicClass)) {
  8279. return concat(staticClass, stringifyClass(dynamicClass))
  8280. }
  8281. /* istanbul ignore next */
  8282. return ''
  8283. }
  8284. function concat (a, b) {
  8285. return a ? b ? (a + ' ' + b) : a : (b || '')
  8286. }
  8287. function stringifyClass (value) {
  8288. if (Array.isArray(value)) {
  8289. return stringifyArray(value)
  8290. }
  8291. if (isObject(value)) {
  8292. return stringifyObject(value)
  8293. }
  8294. if (typeof value === 'string') {
  8295. return value
  8296. }
  8297. /* istanbul ignore next */
  8298. return ''
  8299. }
  8300. function stringifyArray (value) {
  8301. var res = '';
  8302. var stringified;
  8303. for (var i = 0, l = value.length; i < l; i++) {
  8304. if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
  8305. if (res) { res += ' '; }
  8306. res += stringified;
  8307. }
  8308. }
  8309. return res
  8310. }
  8311. function stringifyObject (value) {
  8312. var res = '';
  8313. for (var key in value) {
  8314. if (value[key]) {
  8315. if (res) { res += ' '; }
  8316. res += key;
  8317. }
  8318. }
  8319. return res
  8320. }
  8321. /* */
  8322. var parseStyleText = cached(function (cssText) {
  8323. var res = {};
  8324. var listDelimiter = /;(?![^(]*\))/g;
  8325. var propertyDelimiter = /:(.+)/;
  8326. cssText.split(listDelimiter).forEach(function (item) {
  8327. if (item) {
  8328. var tmp = item.split(propertyDelimiter);
  8329. tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
  8330. }
  8331. });
  8332. return res
  8333. });
  8334. // normalize possible array / string values into Object
  8335. function normalizeStyleBinding (bindingStyle) {
  8336. if (Array.isArray(bindingStyle)) {
  8337. return toObject(bindingStyle)
  8338. }
  8339. if (typeof bindingStyle === 'string') {
  8340. return parseStyleText(bindingStyle)
  8341. }
  8342. return bindingStyle
  8343. }
  8344. /* */
  8345. var MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];
  8346. function getTarget(obj, path) {
  8347. var parts = path.split('.');
  8348. var key = parts[0];
  8349. if (key.indexOf('__$n') === 0) { //number index
  8350. key = parseInt(key.replace('__$n', ''));
  8351. }
  8352. if (parts.length === 1) {
  8353. return obj[key]
  8354. }
  8355. return getTarget(obj[key], parts.slice(1).join('.'))
  8356. }
  8357. function internalMixin(Vue ) {
  8358. Vue.config.errorHandler = function(err, vm, info) {
  8359. Vue.util.warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
  8360. console.error(err);
  8361. /* eslint-disable no-undef */
  8362. var app = getApp();
  8363. if (app && app.onError) {
  8364. app.onError(err);
  8365. }
  8366. };
  8367. var oldEmit = Vue.prototype.$emit;
  8368. Vue.prototype.$emit = function(event) {
  8369. if (this.$scope && event) {
  8370. this.$scope['triggerEvent'](event, {
  8371. __args__: toArray(arguments, 1)
  8372. });
  8373. }
  8374. return oldEmit.apply(this, arguments)
  8375. };
  8376. Vue.prototype.$nextTick = function(fn) {
  8377. return nextTick$1(this, fn)
  8378. };
  8379. MP_METHODS.forEach(function (method) {
  8380. Vue.prototype[method] = function(args) {
  8381. if (this.$scope && this.$scope[method]) {
  8382. return this.$scope[method](args)
  8383. }
  8384. // mp-alipay
  8385. if (typeof my === 'undefined') {
  8386. return
  8387. }
  8388. if (method === 'createSelectorQuery') {
  8389. /* eslint-disable no-undef */
  8390. return my.createSelectorQuery(args)
  8391. } else if (method === 'createIntersectionObserver') {
  8392. /* eslint-disable no-undef */
  8393. return my.createIntersectionObserver(args)
  8394. }
  8395. // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent
  8396. };
  8397. });
  8398. Vue.prototype.__init_provide = initProvide;
  8399. Vue.prototype.__init_injections = initInjections;
  8400. Vue.prototype.__call_hook = function(hook, args) {
  8401. var vm = this;
  8402. // #7573 disable dep collection when invoking lifecycle hooks
  8403. pushTarget();
  8404. var handlers = vm.$options[hook];
  8405. var info = hook + " hook";
  8406. var ret;
  8407. if (handlers) {
  8408. for (var i = 0, j = handlers.length; i < j; i++) {
  8409. ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);
  8410. }
  8411. }
  8412. if (vm._hasHookEvent) {
  8413. vm.$emit('hook:' + hook, args);
  8414. }
  8415. popTarget();
  8416. return ret
  8417. };
  8418. Vue.prototype.__set_model = function(target, key, value, modifiers) {
  8419. if (Array.isArray(modifiers)) {
  8420. if (modifiers.indexOf('trim') !== -1) {
  8421. value = value.trim();
  8422. }
  8423. if (modifiers.indexOf('number') !== -1) {
  8424. value = this._n(value);
  8425. }
  8426. }
  8427. if (!target) {
  8428. target = this;
  8429. }
  8430. target[key] = value;
  8431. };
  8432. Vue.prototype.__set_sync = function(target, key, value) {
  8433. if (!target) {
  8434. target = this;
  8435. }
  8436. target[key] = value;
  8437. };
  8438. Vue.prototype.__get_orig = function(item) {
  8439. if (isPlainObject(item)) {
  8440. return item['$orig'] || item
  8441. }
  8442. return item
  8443. };
  8444. Vue.prototype.__get_value = function(dataPath, target) {
  8445. return getTarget(target || this, dataPath)
  8446. };
  8447. Vue.prototype.__get_class = function(dynamicClass, staticClass) {
  8448. return renderClass(staticClass, dynamicClass)
  8449. };
  8450. Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {
  8451. if (!dynamicStyle && !staticStyle) {
  8452. return ''
  8453. }
  8454. var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);
  8455. var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;
  8456. return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + ":" + (styleObj[name])); }).join(';')
  8457. };
  8458. Vue.prototype.__map = function(val, iteratee) {
  8459. //TODO 暂不考虑 string,number
  8460. var ret, i, l, keys, key;
  8461. if (Array.isArray(val)) {
  8462. ret = new Array(val.length);
  8463. for (i = 0, l = val.length; i < l; i++) {
  8464. ret[i] = iteratee(val[i], i);
  8465. }
  8466. return ret
  8467. } else if (isObject(val)) {
  8468. keys = Object.keys(val);
  8469. ret = Object.create(null);
  8470. for (i = 0, l = keys.length; i < l; i++) {
  8471. key = keys[i];
  8472. ret[key] = iteratee(val[key], key, i);
  8473. }
  8474. return ret
  8475. }
  8476. return []
  8477. };
  8478. }
  8479. /* */
  8480. var LIFECYCLE_HOOKS$1 = [
  8481. //App
  8482. 'onLaunch',
  8483. 'onShow',
  8484. 'onHide',
  8485. 'onUniNViewMessage',
  8486. 'onError',
  8487. //Page
  8488. 'onLoad',
  8489. // 'onShow',
  8490. 'onReady',
  8491. // 'onHide',
  8492. 'onUnload',
  8493. 'onPullDownRefresh',
  8494. 'onReachBottom',
  8495. 'onTabItemTap',
  8496. 'onShareAppMessage',
  8497. 'onResize',
  8498. 'onPageScroll',
  8499. 'onNavigationBarButtonTap',
  8500. 'onBackPress',
  8501. 'onNavigationBarSearchInputChanged',
  8502. 'onNavigationBarSearchInputConfirmed',
  8503. 'onNavigationBarSearchInputClicked',
  8504. //Component
  8505. // 'onReady', // 兼容旧版本,应该移除该事件
  8506. 'onPageShow',
  8507. 'onPageHide',
  8508. 'onPageResize'
  8509. ];
  8510. function lifecycleMixin$1(Vue) {
  8511. //fixed vue-class-component
  8512. var oldExtend = Vue.extend;
  8513. Vue.extend = function(extendOptions) {
  8514. extendOptions = extendOptions || {};
  8515. var methods = extendOptions.methods;
  8516. if (methods) {
  8517. Object.keys(methods).forEach(function (methodName) {
  8518. if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {
  8519. extendOptions[methodName] = methods[methodName];
  8520. delete methods[methodName];
  8521. }
  8522. });
  8523. }
  8524. return oldExtend.call(this, extendOptions)
  8525. };
  8526. var strategies = Vue.config.optionMergeStrategies;
  8527. var mergeHook = strategies.created;
  8528. LIFECYCLE_HOOKS$1.forEach(function (hook) {
  8529. strategies[hook] = mergeHook;
  8530. });
  8531. Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;
  8532. }
  8533. /* */
  8534. // install platform patch function
  8535. Vue.prototype.__patch__ = patch;
  8536. // public mount method
  8537. Vue.prototype.$mount = function(
  8538. el ,
  8539. hydrating
  8540. ) {
  8541. return mountComponent$1(this, el, hydrating)
  8542. };
  8543. lifecycleMixin$1(Vue);
  8544. internalMixin(Vue);
  8545. /* */
  8546. /* harmony default export */ __webpack_exports__["default"] = (Vue);
  8547. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 3)))
  8548. /***/ }),
  8549. /***/ 3:
  8550. /*!***********************************!*\
  8551. !*** (webpack)/buildin/global.js ***!
  8552. \***********************************/
  8553. /*! no static exports found */
  8554. /***/ (function(module, exports) {
  8555. var g;
  8556. // This works in non-strict mode
  8557. g = (function() {
  8558. return this;
  8559. })();
  8560. try {
  8561. // This works if eval is allowed (see CSP)
  8562. g = g || new Function("return this")();
  8563. } catch (e) {
  8564. // This works if the window reference is available
  8565. if (typeof window === "object") g = window;
  8566. }
  8567. // g can still be undefined, but nothing to do about it...
  8568. // We return undefined, instead of nothing here, so it's
  8569. // easier to handle this case. if(!global) { ...}
  8570. module.exports = g;
  8571. /***/ }),
  8572. /***/ 339:
  8573. /*!*******************************!*\
  8574. !*** D:/全部项目/刺兔/utils/bus.js ***!
  8575. \*******************************/
  8576. /*! no static exports found */
  8577. /***/ (function(module, exports, __webpack_require__) {
  8578. "use strict";
  8579. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =
  8580. new _vue.default();exports.default = _default;
  8581. /***/ }),
  8582. /***/ 4:
  8583. /*!*****************************!*\
  8584. !*** D:/全部项目/刺兔/pages.json ***!
  8585. \*****************************/
  8586. /*! no static exports found */
  8587. /***/ (function(module, exports) {
  8588. /***/ }),
  8589. /***/ 433:
  8590. /*!***************************************!*\
  8591. !*** D:/全部项目/刺兔/static/nomessage.png ***!
  8592. \***************************************/
  8593. /*! no static exports found */
  8594. /***/ (function(module, exports) {
  8595. module.exports = "/static/nomessage.png";
  8596. /***/ }),
  8597. /***/ 434:
  8598. /*!**************************************!*\
  8599. !*** D:/全部项目/刺兔/static/norecord.png ***!
  8600. \**************************************/
  8601. /*! no static exports found */
  8602. /***/ (function(module, exports) {
  8603. module.exports = "/static/norecord.png";
  8604. /***/ }),
  8605. /***/ 566:
  8606. /*!***********************************************************!*\
  8607. !*** D:/全部项目/刺兔/components/w-picker/areadata/areadata.js ***!
  8608. \***********************************************************/
  8609. /*! no static exports found */
  8610. /***/ (function(module, exports, __webpack_require__) {
  8611. "use strict";
  8612. Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var cityData = [{ value: '110000', label: '北京市', children: [{ value: "110100", label: "北京市", children: [{ value: "110101", label: "东城区" }, { value: "110102", label: "西城区" }, { value: "110105", label: "朝阳区" }, { value: "110106", label: "丰台区" }, { value: "110107", label: "石景山区" }, { value: "110108", label: "海淀区" }, { value: "110109", label: "门头沟区" }, { value: "110111", label: "房山区" }, { value: "110112", label: "通州区" }, { value: "110113", label: "顺义区" }, { value: "110114", label: "昌平区" }, { value: "110115", label: "大兴区" }, { value: "110116", label: "怀柔区" }, { value: "110117", label: "平谷区" }, { value: "110118", label: "密云区" }, { value: "110119", label: "延庆区" }] }] }, { value: '120000', label: '天津市', children: [{ value: "120100", label: "天津市", children: [{ value: "120101", label: "和平区" }, { value: "120102", label: "河东区" }, { value: "120103", label: "河西区" }, { value: "120104", label: "南开区" }, { value: "120105", label: "河北区" }, { value: "120106", label: "红桥区" }, { value: "120110", label: "东丽区" }, { value: "120111", label: "西青区" }, { value: "120112", label: "津南区" }, { value: "120113", label: "北辰区" }, { value: "120114", label: "武清区" }, { value: "120115", label: "宝坻区" }, { value: "120116", label: "滨海新区" }, { value: "120117", label: "宁河区" }, { value: "120118", label: "静海区" }, { value: "120119", label: "蓟州区" }] }] }, { value: '130000', label: '河北省', children: [{ value: "130100", label: "石家庄市", children: [{ value: "130102", label: "长安区" }, { value: "130104", label: "桥西区" }, { value: "130105", label: "新华区" }, { value: "130107", label: "井陉矿区" }, { value: "130108", label: "裕华区" }, { value: "130109", label: "藁城区" }, { value: "130110", label: "鹿泉区" }, { value: "130111", label: "栾城区" }, { value: "130121", label: "井陉县" }, { value: "130123", label: "正定县" }, { value: "130125", label: "行唐县" }, { value: "130126", label: "灵寿县" }, { value: "130127", label: "高邑县" }, { value: "130128", label: "深泽县" }, { value: "130129", label: "赞皇县" }, { value: "130130", label: "无极县" }, { value: "130131", label: "平山县" }, { value: "130132", label: "元氏县" }, { value: "130133", label: "赵县" }, { value: "130181", label: "辛集市" }, { value: "130183", label: "晋州市" }, { value: "130184", label: "新乐市" }, { value: "130172", label: "石家庄循环化工园区" }, { value: "130171", label: "石家庄高新技术产业开发区" }] }, { value: "130200", label: "唐山市", children: [{ value: "130202", label: "路南区" }, { value: "130203", label: "路北区" }, { value: "130204", label: "古冶区" }, { value: "130205", label: "开平区" }, { value: "130207", label: "丰南区" }, { value: "130208", label: "丰润区" }, { value: "130209", label: "曹妃甸区" }, { value: "130223", label: "滦县" }, { value: "130224", label: "滦南县" }, { value: "130225", label: "乐亭县" }, { value: "130227", label: "迁西县" }, { value: "130229", label: "玉田县" }, { value: "130281", label: "遵化市" }, { value: "130283", label: "迁安市" }, { value: "130271", label: "唐山市芦台经济技术开发区" }, { value: "130272", label: "唐山市汉沽管理区" }, { value: "130273", label: "唐山高新技术产业开发区" }, { value: "130274", label: "河北唐山海港经济开发区" }] }, { value: "130300", label: "秦皇岛市", children: [{ value: "130302", label: "海港区" }, { value: "130303", label: "山海关区" }, { value: "130304", label: "北戴河区" }, { value: "130321", label: "青龙满族自治县" }, { value: "130322", label: "昌黎县" }, { value: "130306", label: "抚宁区" }, { value: "130324", label: "卢龙县" }, { value: "130371", label: "秦皇岛市经济技术开发区" }, { value: "130372", label: "北戴河新区" }] }, { value: "130400", label: "邯郸市", children: [{ value: "130402", label: "邯山区" }, { value: "130403", label: "丛台区" }, { value: "130404", label: "复兴区" }, { value: "130406", label: "峰峰矿区" }, { value: "130421", label: "邯郸县" }, { value: "130423", label: "临漳县" }, { value: "130424", label: "成安县" }, { value: "130425", label: "大名县" }, { value: "130426", label: "涉县" }, { value: "130427", label: "磁县" }, { value: "130407", label: "肥乡区" }, { value: "130408", label: "永年区" }, { value: "130430", label: "邱县" }, { value: "130431", label: "鸡泽县" }, { value: "130432", label: "广平县" }, { value: "130433", label: "馆陶县" }, { value: "130434", label: "魏县" }, { value: "130435", label: "曲周县" }, { value: "130481", label: "武安市" }, { value: "130471", label: "邯郸经济技术开发区" }, { value: "130473", label: "邯郸冀南新区" }] }, { value: "130500", label: "邢台市", children: [{ value: "130502", label: "桥东区" }, { value: "130503", label: "桥西区" }, { value: "130521", label: "邢台县" }, { value: "130522", label: "临城县" }, { value: "130523", label: "内丘县" }, { value: "130524", label: "柏乡县" }, { value: "130525", label: "隆尧县" }, { value: "130526", label: "任县" }, { value: "130527", label: "南和县" }, { value: "130528", label: "宁晋县" }, { value: "130529", label: "巨鹿县" }, { value: "130530", label: "新河县" }, { value: "130531", label: "广宗县" }, { value: "130532", label: "平乡县" }, { value: "130533", label: "威县" }, { value: "130534", label: "清河县" }, { value: "130535", label: "临西县" }, { value: "130581", label: "南宫市" }, { value: "130582", label: "沙河市" }, { value: "130571", label: "河北邢台经济开发区" }] }, { value: "130600", label: "保定市", children: [{ value: "130602", label: "竞秀区" }, { value: "130606", label: "莲池区" }, { value: "130607", label: "满城区" }, { value: "130608", label: "清苑区" }, { value: "130623", label: "涞水县" }, { value: "130624", label: "阜平县" }, { value: "130609", label: "徐水区" }, { value: "130626", label: "定兴县" }, { value: "130627", label: "唐县" }, { value: "130628", label: "高阳县" }, { value: "130629", label: "容城县" }, { value: "130630", label: "涞源县" }, { value: "130631", label: "望都县" }, { value: "130632", label: "安新县" }, { value: "130633", label: "易县" }, { value: "130634", label: "曲阳县" }, { value: "130635", label: "蠡县" }, { value: "130636", label: "顺平县" }, { value: "130637", label: "博野县" }, { value: "130638", label: "雄县" }, { value: "130681", label: "涿州市" }, { value: "130682", label: "定州市" }, { value: "130683", label: "安国市" }, { value: "130684", label: "高碑店市" }, { value: "130671", label: "保定高新技术产业开发区" }, { value: "130672", label: "保定白沟新城" }] }, { value: "130700", label: "张家口市", children: [{ value: "130702", label: "桥东区" }, { value: "130703", label: "桥西区" }, { value: "130705", label: "宣化区" }, { value: "130706", label: "下花园区" }, { value: "130708", label: "万全区" }, { value: "130709", label: "崇礼区" }, { value: "130722", label: "张北县" }, { value: "130723", label: "康保县" }, { value: "130724", label: "沽源县" }, { value: "130725", label: "尚义县" }, { value: "130726", label: "蔚县" }, { value: "130727", label: "阳原县" }, { value: "130728", label: "怀安县" }, { value: "130730", label: "怀来县" }, { value: "130731", label: "涿鹿县" }, { value: "130732", label: "赤城县" }, { value: "130733", label: "崇礼县" }, { value: "130771", label: "张家口市高新技术产业开发区" }, { value: "130772", label: "张家口市察北管理区" }, { value: "130773", label: "张家口市塞北管理区" }] }, { value: "130800", label: "承德市", children: [{ value: "130802", label: "双桥区" }, { value: "130803", label: "双滦区" }, { value: "130804", label: "鹰手营子矿区" }, { value: "130821", label: "承德县" }, { value: "130822", label: "兴隆县" }, { value: "130881", label: "平泉市" }, { value: "130824", label: "滦平县" }, { value: "130825", label: "隆化县" }, { value: "130826", label: "丰宁满族自治县" }, { value: "130827", label: "宽城满族自治县" }, { value: "130828", label: "围场满族蒙古族自治县" }, { value: "130871", label: "承德高新技术产业开发区" }] }, { value: "130900", label: "沧州市", children: [{ value: "130902", label: "新华区" }, { value: "130903", label: "运河区" }, { value: "130921", label: "沧县" }, { value: "130922", label: "青县" }, { value: "130923", label: "东光县" }, { value: "130924", label: "海兴县" }, { value: "130925", label: "盐山县" }, { value: "130926", label: "肃宁县" }, { value: "130927", label: "南皮县" }, { value: "130928", label: "吴桥县" }, { value: "130929", label: "献县" }, { value: "130930", label: "孟村回族自治县" }, { value: "130981", label: "泊头市" }, { value: "130982", label: "任丘市" }, { value: "130983", label: "黄骅市" }, { value: "130984", label: "河间市" }, { value: "130971", label: "河北沧州经济开发区" }, { value: "130972", label: "沧州高新技术产业开发区" }, { value: "130973", label: "沧州渤海新区" }] }, { value: "131000", label: "廊坊市", children: [{ value: "131002", label: "安次区" }, { value: "131003", label: "广阳区" }, { value: "131022", label: "固安县" }, { value: "131023", label: "永清县" }, { value: "131024", label: "香河县" }, { value: "131025", label: "大城县" }, { value: "131026", label: "文安县" }, { value: "131028", label: "大厂回族自治县" }, { value: "131071", label: "廊坊经济技术开发区" }, { value: "131081", label: "霸州市" }, { value: "131082", label: "三河市" }] }, { value: "131100", label: "衡水市", children: [{ value: "131102", label: "桃城区" }, { value: "131121", label: "枣强县" }, { value: "131122", label: "武邑县" }, { value: "131123", label: "武强县" }, { value: "131124", label: "饶阳县" }, { value: "131125", label: "安平县" }, { value: "131126", label: "故城县" }, { value: "131127", label: "景县" }, { value: "131128", label: "阜城县" }, { value: "131103", label: "冀州区" }, { value: "131182", label: "深州市" }, { value: "131172", label: "衡水滨湖新区" }, { value: "131171", label: "河北衡水经济开发区" }] }] }, { value: '140000', label: '山西省', children: [{ value: "140100", label: "太原市", children: [{ value: "140105", label: "小店区" }, { value: "140106", label: "迎泽区" }, { value: "140107", label: "杏花岭区" }, { value: "140108", label: "尖草坪区" }, { value: "140109", label: "万柏林区" }, { value: "140110", label: "晋源区" }, { value: "140121", label: "清徐县" }, { value: "140122", label: "阳曲县" }, { value: "140123", label: "娄烦县" }, { value: "140181", label: "古交市" }, { value: "140171", label: "山西转型综合改革示范区" }] }, { value: "140200", label: "大同市", children: [{ value: "140202", label: "城区" }, { value: "140203", label: "矿区" }, { value: "140211", label: "南郊区" }, { value: "140212", label: "新荣区" }, { value: "140221", label: "阳高县" }, { value: "140222", label: "天镇县" }, { value: "140223", label: "广灵县" }, { value: "140224", label: "灵丘县" }, { value: "140225", label: "浑源县" }, { value: "140226", label: "左云县" }, { value: "140227", label: "大同县" }, { value: "140271", label: "山西大同经济开发区" }] }, { value: "140300", label: "阳泉市", children: [{ value: "140302", label: "城区" }, { value: "140303", label: "矿区" }, { value: "140311", label: "郊区" }, { value: "140321", label: "平定县" }, { value: "140322", label: "盂县" }, { value: "140371", label: "山西阳泉经济开发区" }] }, { value: "140400", label: "长治市", children: [{ value: "140421", label: "长治县" }, { value: "140423", label: "襄垣县" }, { value: "140424", label: "屯留县" }, { value: "140425", label: "平顺县" }, { value: "140426", label: "黎城县" }, { value: "140427", label: "壶关县" }, { value: "140428", label: "长子县" }, { value: "140429", label: "武乡县" }, { value: "140430", label: "沁县" }, { value: "140431", label: "沁源县" }, { value: "140481", label: "潞城市" }, { value: "140402", label: "城区" }, { value: "140411", label: "郊区" }, { value: "140471", label: "山西长治高新技术产业园区" }] }, { value: "140500", label: "晋城市", children: [{ value: "140502", label: "城区" }, { value: "140521", label: "沁水县" }, { value: "140522", label: "阳城县" }, { value: "140524", label: "陵川县" }, { value: "140525", label: "泽州县" }, { value: "140581", label: "高平市" }] }, { value: "140600", label: "朔州市", children: [{ value: "140602", label: "朔城区" }, { value: "140603", label: "平鲁区" }, { value: "140621", label: "山阴县" }, { value: "140622", label: "应县" }, { value: "140623", label: "右玉县" }, { value: "140624", label: "怀仁县" }, { value: "140671", label: "山西朔州经济开发区" }] }, { value: "140700", label: "晋中市", children: [{ value: "140702", label: "榆次区" }, { value: "140721", label: "榆社县" }, { value: "140722", label: "左权县" }, { value: "140723", label: "和顺县" }, { value: "140724", label: "昔阳县" }, { value: "140725", label: "寿阳县" }, { value: "140726", label: "太谷县" }, { value: "140727", label: "祁县" }, { value: "140728", label: "平遥县" }, { value: "140729", label: "灵石县" }, { value: "140781", label: "介休市" }] }, { value: "140800", label: "运城市", children: [{ value: "140802", label: "盐湖区" }, { value: "140821", label: "临猗县" }, { value: "140822", label: "万荣县" }, { value: "140823", label: "闻喜县" }, { value: "140824", label: "稷山县" }, { value: "140825", label: "新绛县" }, { value: "140826", label: "绛县" }, { value: "140827", label: "垣曲县" }, { value: "140828", label: "夏县" }, { value: "140829", label: "平陆县" }, { value: "140830", label: "芮城县" }, { value: "140881", label: "永济市" }, { value: "140882", label: "河津市" }] }, { value: "140900", label: "忻州市", children: [{ value: "140902", label: "忻府区" }, { value: "140921", label: "定襄县" }, { value: "140922", label: "五台县" }, { value: "140923", label: "代县" }, { value: "140924", label: "繁峙县" }, { value: "140925", label: "宁武县" }, { value: "140926", label: "静乐县" }, { value: "140927", label: "神池县" }, { value: "140928", label: "五寨县" }, { value: "140929", label: "岢岚县" }, { value: "140930", label: "河曲县" }, { value: "140931", label: "保德县" }, { value: "140932", label: "偏关县" }, { value: "140981", label: "原平市" }, { value: "140971", label: "五台山风景名胜区" }] }, { value: "141000", label: "临汾市", children: [{ value: "141002", label: "尧都区" }, { value: "141021", label: "曲沃县" }, { value: "141022", label: "翼城县" }, { value: "141023", label: "襄汾县" }, { value: "141024", label: "洪洞县" }, { value: "141025", label: "古县" }, { value: "141026", label: "安泽县" }, { value: "141027", label: "浮山县" }, { value: "141028", label: "吉县" }, { value: "141029", label: "乡宁县" }, { value: "141030", label: "大宁县" }, { value: "141031", label: "隰县" }, { value: "141032", label: "永和县" }, { value: "141033", label: "蒲县" }, { value: "141034", label: "汾西县" }, { value: "141081", label: "侯马市" }, { value: "141082", label: "霍州市" }] }, { value: "141100", label: "吕梁市", children: [{ value: "141102", label: "离石区" }, { value: "141121", label: "文水县" }, { value: "141122", label: "交城县" }, { value: "141123", label: "兴县" }, { value: "141124", label: "临县" }, { value: "141125", label: "柳林县" }, { value: "141126", label: "石楼县" }, { value: "141127", label: "岚县" }, { value: "141128", label: "方山县" }, { value: "141129", label: "中阳县" }, { value: "141130", label: "交口县" }, { value: "141181", label: "孝义市" }, { value: "141182", label: "汾阳市" }] }] }, { value: '150000', label: '内蒙古', children: [{ value: "150100", label: "呼和浩特市", children: [{ value: "150102", label: "新城区" }, { value: "150103", label: "回民区" }, { value: "150104", label: "玉泉区" }, { value: "150105", label: "赛罕区" }, { value: "150121", label: "土默特左旗" }, { value: "150122", label: "托克托县" }, { value: "150123", label: "和林格尔县" }, { value: "150124", label: "清水河县" }, { value: "150125", label: "武川县" }, { value: "150171", label: "呼和浩特金海工业园区" }, { value: "150172", label: "呼和浩特经济技术开发区" }] }, { value: "150200", label: "包头市", children: [{ value: "150202", label: "东河区" }, { value: "150203", label: "昆都仑区" }, { value: "150204", label: "青山区" }, { value: "150205", label: "石拐区" }, { value: "150206", label: "白云矿区" }, { value: "150207", label: "九原区" }, { value: "150221", label: "土默特右旗" }, { value: "150222", label: "固阳县" }, { value: "150223", label: "达尔罕茂明安联合旗" }, { value: "150271", label: "包头稀土高新技术产业开发区" }] }, { value: "150300", label: "乌海市", children: [{ value: "150302", label: "海勃湾区" }, { value: "150303", label: "海南区" }, { value: "150304", label: "乌达区" }] }, { value: "150400", label: "赤峰市", children: [{ value: "150402", label: "红山区" }, { value: "150403", label: "元宝山区" }, { value: "150404", label: "松山区" }, { value: "150421", label: "阿鲁科尔沁旗" }, { value: "150422", label: "巴林左旗" }, { value: "150423", label: "巴林右旗" }, { value: "150424", label: "林西县" }, { value: "150425", label: "克什克腾旗" }, { value: "150426", label: "翁牛特旗" }, { value: "150428", label: "喀喇沁旗" }, { value: "150429", label: "宁城县" }, { value: "150430", label: "敖汉旗" }] }, { value: "150500", label: "通辽市", children: [{ value: "150502", label: "科尔沁区" }, { value: "150521", label: "科尔沁左翼中旗" }, { value: "150522", label: "科尔沁左翼后旗" }, { value: "150523", label: "开鲁县" }, { value: "150524", label: "库伦旗" }, { value: "150525", label: "奈曼旗" }, { value: "150526", label: "扎鲁特旗" }, { value: "150581", label: "霍林郭勒市" }, { value: "150571", label: "通辽经济技术开发区" }] }, { value: "150600", label: "鄂尔多斯市", children: [{ value: "150602", label: "东胜区" }, { value: "150621", label: "达拉特旗" }, { value: "150622", label: "准格尔旗" }, { value: "150623", label: "鄂托克前旗" }, { value: "150624", label: "鄂托克旗" }, { value: "150625", label: "杭锦旗" }, { value: "150626", label: "乌审旗" }, { value: "150627", label: "伊金霍洛旗" }, { value: "150603", label: "康巴什区" }] }, { value: "150700", label: "呼伦贝尔市", children: [{ value: "150702", label: "海拉尔区" }, { value: "150721", label: "阿荣旗" }, { value: "150722", label: "莫力达瓦达斡尔族自治旗" }, { value: "150723", label: "鄂伦春自治旗" }, { value: "150724", label: "鄂温克族自治旗" }, { value: "150725", label: "陈巴尔虎旗" }, { value: "150726", label: "新巴尔虎左旗" }, { value: "150727", label: "新巴尔虎右旗" }, { value: "150781", label: "满洲里市" }, { value: "150782", label: "牙克石市" }, { value: "150783", label: "扎兰屯市" }, { value: "150784", label: "额尔古纳市" }, { value: "150785", label: "根河市" }, { value: "150703", label: "扎赉诺尔区" }] }, { value: "150800", label: "巴彦淖尔市", children: [{ value: "150802", label: "临河区" }, { value: "150821", label: "五原县" }, { value: "150822", label: "磴口县" }, { value: "150823", label: "乌拉特前旗" }, { value: "150824", label: "乌拉特中旗" }, { value: "150825", label: "乌拉特后旗" }, { value: "150826", label: "杭锦后旗" }] }, { value: "150900", label: "乌兰察布市", children: [{ value: "150902", label: "集宁区" }, { value: "150921", label: "卓资县" }, { value: "150922", label: "化德县" }, { value: "150923", label: "商都县" }, { value: "150924", label: "兴和县" }, { value: "150925", label: "凉城县" }, { value: "150926", label: "察哈尔右翼前旗" }, { value: "150927", label: "察哈尔右翼中旗" }, { value: "150928", label: "察哈尔右翼后旗" }, { value: "150929", label: "四子王旗" }, { value: "150981", label: "丰镇市" }] }, { value: "152200", label: "兴安盟", children: [{ value: "152201", label: "乌兰浩特市" }, { value: "152202", label: "阿尔山市" }, { value: "152221", label: "科尔沁右翼前旗" }, { value: "152222", label: "科尔沁右翼中旗" }, { value: "152223", label: "扎赉特旗" }, { value: "152224", label: "突泉县" }] }, { value: "152500", label: "锡林郭勒盟", children: [{ value: "152501", label: "二连浩特市" }, { value: "152502", label: "锡林浩特市" }, { value: "152522", label: "阿巴嘎旗" }, { value: "152523", label: "苏尼特左旗" }, { value: "152524", label: "苏尼特右旗" }, { value: "152525", label: "东乌珠穆沁旗" }, { value: "152526", label: "西乌珠穆沁旗" }, { value: "152527", label: "太仆寺旗" }, { value: "152528", label: "镶黄旗" }, { value: "152529", label: "正镶白旗" }, { value: "152530", label: "正蓝旗" }, { value: "152531", label: "多伦县" }, { value: "152571", label: "乌拉盖管委会" }] }, { value: "152900", label: "阿拉善盟", children: [{ value: "152921", label: "阿拉善左旗" }, { value: "152922", label: "阿拉善右旗" }, { value: "152923", label: "额济纳旗" }, { value: "152971", label: "内蒙古阿拉善经济开发区" }] }] }, { value: '210000', label: '辽宁省', children: [{ value: "210100", label: "沈阳市", children: [{ value: "210102", label: "和平区" }, { value: "210103", label: "沈河区" }, { value: "210104", label: "大东区" }, { value: "210105", label: "皇姑区" }, { value: "210106", label: "铁西区" }, { value: "210111", label: "苏家屯区" }, { value: "210112", label: "东陵区" }, { value: "210113", label: "新城子区" }, { value: "210114", label: "于洪区" }, { value: "210115", label: "辽中区" }, { value: "210123", label: "康平县" }, { value: "210124", label: "法库县" }, { value: "210181", label: "新民市" }, { value: "210112", label: "浑南区" }, { value: "210113", label: "沈北新区" }] }, { value: "210200", label: "大连市", children: [{ value: "210202", label: "中山区" }, { value: "210203", label: "西岗区" }, { value: "210204", label: "沙河口区" }, { value: "210211", label: "甘井子区" }, { value: "210212", label: "旅顺口区" }, { value: "210213", label: "金州区" }, { value: "210224", label: "长海县" }, { value: "210251", label: "开发区" }, { value: "210281", label: "瓦房店市" }, { value: "210214", label: "普兰店区" }, { value: "210283", label: "庄河市" }] }, { value: "210300", label: "鞍山市", children: [{ value: "210302", label: "铁东区" }, { value: "210303", label: "铁西区" }, { value: "210304", label: "立山区" }, { value: "210311", label: "千山区" }, { value: "210321", label: "台安县" }, { value: "210323", label: "岫岩满族自治县" }, { value: "210381", label: "海城市" }] }, { value: "210400", label: "抚顺市", children: [{ value: "210402", label: "新抚区" }, { value: "210403", label: "东洲区" }, { value: "210404", label: "望花区" }, { value: "210411", label: "顺城区" }, { value: "210421", label: "抚顺县" }, { value: "210422", label: "新宾满族自治县" }, { value: "210423", label: "清原满族自治县" }] }, { value: "210500", label: "本溪市", children: [{ value: "210502", label: "平山区" }, { value: "210503", label: "溪湖区" }, { value: "210504", label: "明山区" }, { value: "210505", label: "南芬区" }, { value: "210521", label: "本溪满族自治县" }, { value: "210522", label: "桓仁满族自治县" }] }, { value: "210600", label: "丹东市", children: [{ value: "210602", label: "元宝区" }, { value: "210603", label: "振兴区" }, { value: "210604", label: "振安区" }, { value: "210624", label: "宽甸满族自治县" }, { value: "210681", label: "东港市" }, { value: "210682", label: "凤城市" }] }, { value: "210700", label: "锦州市", children: [{ value: "210702", label: "古塔区" }, { value: "210703", label: "凌河区" }, { value: "210711", label: "太和区" }, { value: "210726", label: "黑山县" }, { value: "210727", label: "义县" }, { value: "210781", label: "凌海市" }, { value: "210782", label: "北镇市" }] }, { value: "210800", label: "营口市", children: [{ value: "210802", label: "站前区" }, { value: "210803", label: "西市区" }, { value: "210804", label: "鲅鱼圈区" }, { value: "210811", label: "老边区" }, { value: "210881", label: "盖州市" }, { value: "210882", label: "大石桥市" }] }, { value: "210900", label: "阜新市", children: [{ value: "210902", label: "海州区" }, { value: "210903", label: "新邱区" }, { value: "210904", label: "太平区" }, { value: "210905", label: "清河门区" }, { value: "210911", label: "细河区" }, { value: "210921", label: "阜新蒙古族自治县" }, { value: "210922", label: "彰武县" }] }, { value: "211000", label: "辽阳市", children: [{ value: "211002", label: "白塔区" }, { value: "211003", label: "文圣区" }, { value: "211004", label: "宏伟区" }, { value: "211005", label: "弓长岭区" }, { value: "211011", label: "太子河区" }, { value: "211021", label: "辽阳县" }, { value: "211081", label: "灯塔市" }] }, { value: "211100", label: "盘锦市", children: [{ value: "211102", label: "双台子区" }, { value: "211103", label: "兴隆台区" }, { value: "211121", label: "大洼县" }, { value: "211122", label: "盘山县" }] }, { value: "211200", label: "铁岭市", children: [{ value: "211202", label: "银州区" }, { value: "211204", label: "清河区" }, { value: "211221", label: "铁岭县" }, { value: "211223", label: "西丰县" }, { value: "211224", label: "昌图县" }, { value: "211281", label: "调兵山市" }, { value: "211282", label: "开原市" }] }, { value: "211300", label: "朝阳市", children: [{ value: "211302", label: "双塔区" }, { value: "211303", label: "龙城区" }, { value: "211321", label: "朝阳县" }, { value: "211322", label: "建平县" }, { value: "211324", label: "喀喇沁左翼蒙古族自治县" }, { value: "211381", label: "北票市" }, { value: "211382", label: "凌源市" }] }, { value: "211400", label: "葫芦岛市", children: [{ value: "211402", label: "连山区" }, { value: "211403", label: "龙港区" }, { value: "211404", label: "南票区" }, { value: "211421", label: "绥中县" }, { value: "211422", label: "建昌县" }, { value: "211481", label: "兴城市" }] }] }, { value: '220000', label: '吉林省', children: [{ value: "220100", label: "长春市", children: [{ value: "220102", label: "南关区" }, { value: "220103", label: "宽城区" }, { value: "220104", label: "朝阳区" }, { value: "220105", label: "二道区" }, { value: "220106", label: "绿园区" }, { value: "220112", label: "双阳区" }, { value: "220122", label: "农安县" }, { value: "220181", label: "九台市" }, { value: "220182", label: "榆树市" }, { value: "220183", label: "德惠市" }, { value: "220171", label: "长春经济技术开发区" }, { value: "220172", label: "长春净月高新技术产业开发区" }, { value: "220173", label: "长春高新技术产业开发区" }, { value: "220174", label: "长春汽车经济技术开发区" }] }, { value: "220200", label: "吉林市", children: [{ value: "220202", label: "昌邑区" }, { value: "220203", label: "龙潭区" }, { value: "220204", label: "船营区" }, { value: "220211", label: "丰满区" }, { value: "220221", label: "永吉县" }, { value: "220281", label: "蛟河市" }, { value: "220282", label: "桦甸市" }, { value: "220283", label: "舒兰市" }, { value: "220284", label: "磐石市" }, { value: "220271", label: "吉林经济开发区" }, { value: "220272", label: "吉林高新技术产业开发区" }, { value: "220273", label: "吉林中国新加坡食品区" }] }, { value: "220300", label: "四平市", children: [{ value: "220302", label: "铁西区" }, { value: "220303", label: "铁东区" }, { value: "220322", label: "梨树县" }, { value: "220323", label: "伊通满族自治县" }, { value: "220381", label: "公主岭市" }, { value: "220382", label: "双辽市" }] }, { value: "220400", label: "辽源市", children: [{ value: "220402", label: "龙山区" }, { value: "220403", label: "西安区" }, { value: "220421", label: "东丰县" }, { value: "220422", label: "东辽县" }] }, { value: "220500", label: "通化市", children: [{ value: "220502", label: "东昌区" }, { value: "220503", label: "二道江区" }, { value: "220521", label: "通化县" }, { value: "220523", label: "辉南县" }, { value: "220524", label: "柳河县" }, { value: "220581", label: "梅河口市" }, { value: "220582", label: "集安市" }] }, { value: "220600", label: "白山市", children: [{ value: "220602", label: "八道江区" }, { value: "220621", label: "抚松县" }, { value: "220622", label: "靖宇县" }, { value: "220623", label: "长白朝鲜族自治县" }, { value: "220605", label: "江源区" }, { value: "220681", label: "临江市" }, { value: "220602", label: "浑江区" }] }, { value: "220700", label: "松原市", children: [{ value: "220702", label: "宁江区" }, { value: "220721", label: "前郭尔罗斯蒙古族自治县" }, { value: "220722", label: "长岭县" }, { value: "220723", label: "乾安县" }, { value: "220781", label: "扶余市" }, { value: "220771", label: "吉林松原经济开发区" }] }, { value: "220800", label: "白城市", children: [{ value: "220802", label: "洮北区" }, { value: "220821", label: "镇赉县" }, { value: "220822", label: "通榆县" }, { value: "220881", label: "洮南市" }, { value: "220882", label: "大安市" }, { value: "220871", label: "吉林白城经济开发区" }] }, { value: "222400", label: "延边朝鲜族自治州", children: [{ value: "222401", label: "延吉市" }, { value: "222402", label: "图们市" }, { value: "222403", label: "敦化市" }, { value: "222404", label: "珲春市" }, { value: "222405", label: "龙井市" }, { value: "222406", label: "和龙市" }, { value: "222424", label: "汪清县" }, { value: "222426", label: "安图县" }] }] }, { value: '230000', label: '黑龙江省', children: [{ value: "230100", label: "哈尔滨市", children: [{ value: "230102", label: "道里区" }, { value: "230103", label: "南岗区" }, { value: "230104", label: "道外区" }, { value: "230110", label: "香坊区" }, { value: "230107", label: "动力区" }, { value: "230108", label: "平房区" }, { value: "230109", label: "松北区" }, { value: "230111", label: "呼兰区" }, { value: "230123", label: "依兰县" }, { value: "230124", label: "方正县" }, { value: "230125", label: "宾县" }, { value: "230126", label: "巴彦县" }, { value: "230127", label: "木兰县" }, { value: "230128", label: "通河县" }, { value: "230129", label: "延寿县" }, { value: "230112", label: "阿城区" }, { value: "230113", label: "双城区" }, { value: "230183", label: "尚志市" }, { value: "230184", label: "五常市" }] }, { value: "230200", label: "齐齐哈尔市", children: [{ value: "230202", label: "龙沙区" }, { value: "230203", label: "建华区" }, { value: "230204", label: "铁锋区" }, { value: "230205", label: "昂昂溪区" }, { value: "230206", label: "富拉尔基区" }, { value: "230207", label: "碾子山区" }, { value: "230208", label: "梅里斯达斡尔族区" }, { value: "230221", label: "龙江县" }, { value: "230223", label: "依安县" }, { value: "230224", label: "泰来县" }, { value: "230225", label: "甘南县" }, { value: "230227", label: "富裕县" }, { value: "230229", label: "克山县" }, { value: "230230", label: "克东县" }, { value: "230231", label: "拜泉县" }, { value: "230281", label: "讷河市" }] }, { value: "230300", label: "鸡西市", children: [{ value: "230302", label: "鸡冠区" }, { value: "230303", label: "恒山区" }, { value: "230304", label: "滴道区" }, { value: "230305", label: "梨树区" }, { value: "230306", label: "城子河区" }, { value: "230307", label: "麻山区" }, { value: "230321", label: "鸡东县" }, { value: "230381", label: "虎林市" }, { value: "230382", label: "密山市" }] }, { value: "230400", label: "鹤岗市", children: [{ value: "230402", label: "向阳区" }, { value: "230403", label: "工农区" }, { value: "230404", label: "南山区" }, { value: "230405", label: "兴安区" }, { value: "230406", label: "东山区" }, { value: "230407", label: "兴山区" }, { value: "230421", label: "萝北县" }, { value: "230422", label: "绥滨县" }] }, { value: "230500", label: "双鸭山市", children: [{ value: "230502", label: "尖山区" }, { value: "230503", label: "岭东区" }, { value: "230505", label: "四方台区" }, { value: "230506", label: "宝山区" }, { value: "230521", label: "集贤县" }, { value: "230522", label: "友谊县" }, { value: "230523", label: "宝清县" }, { value: "230524", label: "饶河县" }] }, { value: "230600", label: "大庆市", children: [{ value: "230602", label: "萨尔图区" }, { value: "230603", label: "龙凤区" }, { value: "230604", label: "让胡路区" }, { value: "230605", label: "红岗区" }, { value: "230606", label: "大同区" }, { value: "230621", label: "肇州县" }, { value: "230622", label: "肇源县" }, { value: "230623", label: "林甸县" }, { value: "230624", label: "杜尔伯特蒙古族自治县" }, { value: "230671", label: "大庆高新技术产业开发区" }] }, { value: "230700", label: "伊春市", children: [{ value: "230702", label: "伊春区" }, { value: "230703", label: "南岔区" }, { value: "230704", label: "友好区" }, { value: "230705", label: "西林区" }, { value: "230706", label: "翠峦区" }, { value: "230707", label: "新青区" }, { value: "230708", label: "美溪区" }, { value: "230709", label: "金山屯区" }, { value: "230710", label: "五营区" }, { value: "230711", label: "乌马河区" }, { value: "230712", label: "汤旺河区" }, { value: "230713", label: "带岭区" }, { value: "230714", label: "乌伊岭区" }, { value: "230715", label: "红星区" }, { value: "230716", label: "上甘岭区" }, { value: "230722", label: "嘉荫县" }, { value: "230781", label: "铁力市" }] }, { value: "230800", label: "佳木斯市", children: [{ value: "230803", label: "向阳区" }, { value: "230804", label: "前进区" }, { value: "230805", label: "东风区" }, { value: "230811", label: "郊区" }, { value: "230822", label: "桦南县" }, { value: "230826", label: "桦川县" }, { value: "230828", label: "汤原县" }, { value: "230833", label: "抚远市" }, { value: "230881", label: "同江市" }, { value: "230882", label: "富锦市" }] }, { value: "230900", label: "七台河市", children: [{ value: "230902", label: "新兴区" }, { value: "230903", label: "桃山区" }, { value: "230904", label: "茄子河区" }, { value: "230921", label: "勃利县" }] }, { value: "231000", label: "牡丹江市", children: [{ value: "231002", label: "东安区" }, { value: "231003", label: "阳明区" }, { value: "231004", label: "爱民区" }, { value: "231005", label: "西安区" }, { value: "231086", label: "东宁市" }, { value: "231025", label: "林口县" }, { value: "231081", label: "绥芬河市" }, { value: "231083", label: "海林市" }, { value: "231084", label: "宁安市" }, { value: "231085", label: "穆棱市" }, { value: "231071", label: "牡丹江经济技术开发区" }] }, { value: "231100", label: "黑河市", children: [{ value: "231102", label: "爱辉区" }, { value: "231121", label: "嫩江县" }, { value: "231123", label: "逊克县" }, { value: "231124", label: "孙吴县" }, { value: "231181", label: "北安市" }, { value: "231182", label: "五大连池市" }] }, { value: "231200", label: "绥化市", children: [{ value: "231202", label: "北林区" }, { value: "231221", label: "望奎县" }, { value: "231222", label: "兰西县" }, { value: "231223", label: "青冈县" }, { value: "231224", label: "庆安县" }, { value: "231225", label: "明水县" }, { value: "231226", label: "绥棱县" }, { value: "231281", label: "安达市" }, { value: "231282", label: "肇东市" }, { value: "231283", label: "海伦市" }] }, { value: "232700", label: "大兴安岭地区", children: [{ value: "232721", label: "呼玛县" }, { value: "232722", label: "塔河县" }, { value: "232723", label: "漠河县" }, { value: "232701", label: "加格达奇区" }, { value: "232704", label: "呼中区" }, { value: "232703", label: "新林区" }] }] }, { value: '310000', label: '上海市', children: [{ value: '310100', label: '上海市', children: [{ value: "310101", label: "黄浦区" }, { value: "310104", label: "徐汇区" }, { value: "310105", label: "长宁区" }, { value: "310106", label: "静安区" }, { value: "310107", label: "普陀区" }, { value: "310109", label: "虹口区" }, { value: "310110", label: "杨浦区" }, { value: "310112", label: "闵行区" }, { value: "310113", label: "宝山区" }, { value: "310114", label: "嘉定区" }, { value: "310115", label: "浦东新区" }, { value: "310116", label: "金山区" }, { value: "310117", label: "松江区" }, { value: "310118", label: "青浦区" }, { value: "310120", label: "奉贤区" }, { value: "310151", label: "崇明区" }] }] }, { value: '320000', label: '江苏省', children: [{ value: "320100", label: "南京市", children: [{ value: "320102", label: "玄武区" }, { value: "320104", label: "秦淮区" }, { value: "320105", label: "建邺区" }, { value: "320106", label: "鼓楼区" }, { value: "320111", label: "浦口区" }, { value: "320113", label: "栖霞区" }, { value: "320114", label: "雨花台区" }, { value: "320115", label: "江宁区" }, { value: "320116", label: "六合区" }, { value: "320117", label: "溧水区" }, { value: "320118", label: "高淳区" }] }, { value: "320200", label: "无锡市", children: [{ value: "320205", label: "锡山区" }, { value: "320206", label: "惠山区" }, { value: "320211", label: "滨湖区" }, { value: "320281", label: "江阴市" }, { value: "320282", label: "宜兴市" }, { value: "320213", label: "梁溪区" }, { value: "320214", label: "新吴区" }] }, { value: "320300", label: "徐州市", children: [{ value: "320302", label: "鼓楼区" }, { value: "320303", label: "云龙区" }, { value: "320305", label: "贾汪区" }, { value: "320311", label: "泉山区" }, { value: "320321", label: "丰县" }, { value: "320322", label: "沛县" }, { value: "320324", label: "睢宁县" }, { value: "320381", label: "新沂市" }, { value: "320382", label: "邳州市" }, { value: "320371", label: "徐州经济技术开发区" }] }, { value: "320400", label: "常州市", children: [{ value: "320402", label: "天宁区" }, { value: "320404", label: "钟楼区" }, { value: "320411", label: "新北区" }, { value: "320412", label: "武进区" }, { value: "320481", label: "溧阳市" }, { value: "320413", label: "金坛区" }] }, { value: "320500", label: "苏州市", children: [{ value: "320505", label: "虎丘区" }, { value: "320506", label: "吴中区" }, { value: "320507", label: "相城区" }, { value: "320581", label: "常熟市" }, { value: "320582", label: "张家港市" }, { value: "320583", label: "昆山市" }, { value: "320509", label: "吴江区" }, { value: "320585", label: "太仓市" }, { value: "320508", label: "姑苏区" }, { value: "320571", label: "苏州工业园区" }] }, { value: "320600", label: "南通市", children: [{ value: "320602", label: "崇川区" }, { value: "320611", label: "港闸区" }, { value: "320612", label: "通州区" }, { value: "320621", label: "海安县" }, { value: "320623", label: "如东县" }, { value: "320681", label: "启东市" }, { value: "320682", label: "如皋市" }, { value: "320684", label: "海门市" }, { value: "320671", label: "南通经济技术开发区" }] }, { value: "320700", label: "连云港市", children: [{ value: "320703", label: "连云区" }, { value: "320706", label: "海州区" }, { value: "320707", label: "赣榆区" }, { value: "320722", label: "东海县" }, { value: "320723", label: "灌云县" }, { value: "320724", label: "灌南县" }, { value: "320771", label: "连云港经济技术开发区" }, { value: "320772", label: "连云港高新技术产业开发区" }] }, { value: "320800", label: "淮安市", children: [{ value: "320804", label: "淮阴区" }, { value: "320812", label: "清江浦区" }, { value: "320826", label: "涟水县" }, { value: "320813", label: "洪泽区" }, { value: "320830", label: "盱眙县" }, { value: "320831", label: "金湖县" }, { value: "320803", label: "淮安区" }, { value: "320871", label: "淮安经济技术开发区" }] }, { value: "320900", label: "盐城市", children: [{ value: "320902", label: "亭湖区" }, { value: "320903", label: "盐都区" }, { value: "320921", label: "响水县" }, { value: "320922", label: "滨海县" }, { value: "320904", label: "大丰区" }, { value: "320923", label: "阜宁县" }, { value: "320924", label: "射阳县" }, { value: "320925", label: "建湖县" }, { value: "320981", label: "东台市" }, { value: "320971", label: "盐城经济技术开发区" }] }, { value: "321000", label: "扬州市", children: [{ value: "321002", label: "广陵区" }, { value: "321003", label: "邗江区" }, { value: "321011", label: "维扬区" }, { value: "321023", label: "宝应县" }, { value: "321081", label: "仪征市" }, { value: "321084", label: "高邮市" }, { value: "321012", label: "江都区" }, { value: "321071", label: "扬州经济技术开发区" }] }, { value: "321100", label: "镇江市", children: [{ value: "321102", label: "京口区" }, { value: "321111", label: "润州区" }, { value: "321112", label: "丹徒区" }, { value: "321181", label: "丹阳市" }, { value: "321182", label: "扬中市" }, { value: "321183", label: "句容市" }, { value: "321171", label: "镇江新区" }] }, { value: "321200", label: "泰州市", children: [{ value: "321202", label: "海陵区" }, { value: "321203", label: "高港区" }, { value: "321281", label: "兴化市" }, { value: "321282", label: "靖江市" }, { value: "321283", label: "泰兴市" }, { value: "321204", label: "姜堰区" }, { value: "321271", label: "泰州医药高新技术产业开发区" }] }, { value: "321300", label: "宿迁市", children: [{ value: "321302", label: "宿城区" }, { value: "321311", label: "宿豫区" }, { value: "321322", label: "沭阳县" }, { value: "321323", label: "泗阳县" }, { value: "321324", label: "泗洪县" }] }] }, { value: '330000', label: '浙江省', children: [{ value: "330100", label: "杭州市", children: [{ value: "330102", label: "上城区" }, { value: "330103", label: "下城区" }, { value: "330104", label: "江干区" }, { value: "330105", label: "拱墅区" }, { value: "330106", label: "西湖区" }, { value: "330108", label: "滨江区" }, { value: "330109", label: "萧山区" }, { value: "330110", label: "余杭区" }, { value: "330122", label: "桐庐县" }, { value: "330127", label: "淳安县" }, { value: "330182", label: "建德市" }, { value: "330111", label: "富阳区" }, { value: "330112", label: "临安区" }, { value: "330186", label: "其它区" }] }, { value: "330200", label: "宁波市", children: [{ value: "330203", label: "海曙区" }, { value: "330205", label: "江北区" }, { value: "330206", label: "北仑区" }, { value: "330211", label: "镇海区" }, { value: "330212", label: "鄞州区" }, { value: "330225", label: "象山县" }, { value: "330226", label: "宁海县" }, { value: "330281", label: "余姚市" }, { value: "330282", label: "慈溪市" }, { value: "330213", label: "奉化区" }] }, { value: "330300", label: "温州市", children: [{ value: "330302", label: "鹿城区" }, { value: "330303", label: "龙湾区" }, { value: "330304", label: "瓯海区" }, { value: "330305", label: "洞头区" }, { value: "330324", label: "永嘉县" }, { value: "330326", label: "平阳县" }, { value: "330327", label: "苍南县" }, { value: "330328", label: "文成县" }, { value: "330329", label: "泰顺县" }, { value: "330381", label: "瑞安市" }, { value: "330382", label: "乐清市" }, { value: "330371", label: "温州经济技术开发区" }] }, { value: "330400", label: "嘉兴市", children: [{ value: "330402", label: "南湖区" }, { value: "330411", label: "秀洲区" }, { value: "330421", label: "嘉善县" }, { value: "330424", label: "海盐县" }, { value: "330481", label: "海宁市" }, { value: "330482", label: "平湖市" }, { value: "330483", label: "桐乡市" }] }, { value: "330500", label: "湖州市", children: [{ value: "330502", label: "吴兴区" }, { value: "330503", label: "南浔区" }, { value: "330521", label: "德清县" }, { value: "330522", label: "长兴县" }, { value: "330523", label: "安吉县" }] }, { value: "330600", label: "绍兴市", children: [{ value: "330602", label: "越城区" }, { value: "330621", label: "柯桥区" }, { value: "330681", label: "诸暨市" }, { value: "330604", label: "上虞区" }, { value: "330683", label: "嵊州市" }, { value: "330624", label: "新昌县" }] }, { value: "330700", label: "金华市", children: [{ value: "330702", label: "婺城区" }, { value: "330703", label: "金东区" }, { value: "330723", label: "武义县" }, { value: "330726", label: "浦江县" }, { value: "330727", label: "磐安县" }, { value: "330781", label: "兰溪市" }, { value: "330782", label: "义乌市" }, { value: "330783", label: "东阳市" }, { value: "330784", label: "永康市" }] }, { value: "330800", label: "衢州市", children: [{ value: "330802", label: "柯城区" }, { value: "330803", label: "衢江区" }, { value: "330822", label: "常山县" }, { value: "330824", label: "开化县" }, { value: "330825", label: "龙游县" }, { value: "330881", label: "江山市" }] }, { value: "330900", label: "舟山市", children: [{ value: "330902", label: "定海区" }, { value: "330903", label: "普陀区" }, { value: "330921", label: "岱山县" }, { value: "330922", label: "嵊泗县" }] }, { value: "331000", label: "台州市", children: [{ value: "331002", label: "椒江区" }, { value: "331003", label: "黄岩区" }, { value: "331004", label: "路桥区" }, { value: "331083", label: "玉环市" }, { value: "331022", label: "三门县" }, { value: "331023", label: "天台县" }, { value: "331024", label: "仙居县" }, { value: "331081", label: "温岭市" }, { value: "331082", label: "临海市" }] }, { value: "331100", label: "丽水市", children: [{ value: "331102", label: "莲都区" }, { value: "331121", label: "青田县" }, { value: "331122", label: "缙云县" }, { value: "331123", label: "遂昌县" }, { value: "331124", label: "松阳县" }, { value: "331125", label: "云和县" }, { value: "331126", label: "庆元县" }, { value: "331127", label: "景宁畲族自治县" }, { value: "331181", label: "龙泉市" }] }] }, { value: '340000', label: '安徽省', children: [{ value: "340100", label: "合肥市", children: [{ value: "340111", label: "包河区" }, { value: "340104", label: "蜀山区" }, { value: "340103", label: "庐阳区" }, { value: "340102", label: "瑶海区" }, { value: "340171", label: "合肥高新技术产业开发区" }, { value: "340172", label: "合肥经济技术开发区" }, { value: "340173", label: "合肥新站高新技术产业开发区" }, { value: "340121", label: "长丰县" }, { value: "340122", label: "肥东县" }, { value: "340123", label: "肥西县" }, { value: "340124", label: "庐江县" }, { value: "340181", label: "巢湖市" }] }, { value: "340200", label: "芜湖市", children: [{ value: "340202", label: "镜湖区" }, { value: "340203", label: "弋江区" }, { value: "340207", label: "鸠江区" }, { value: "340208", label: "三山区" }, { value: "340221", label: "芜湖县" }, { value: "340222", label: "繁昌县" }, { value: "340223", label: "南陵县" }, { value: "340225", label: "无为县" }, { value: "340272", label: "安徽芜湖长江大桥经济开发区" }, { value: "340271", label: "芜湖经济技术开发区" }] }, { value: "340300", label: "蚌埠市", children: [{ value: "340302", label: "龙子湖区" }, { value: "340303", label: "蚌山区" }, { value: "340304", label: "禹会区" }, { value: "340311", label: "淮上区" }, { value: "340321", label: "怀远县" }, { value: "340322", label: "五河县" }, { value: "340323", label: "固镇县" }, { value: "340371", label: "蚌埠市高新技术开发区" }, { value: "340372 ", label: "蚌埠市经济开发区" }] }, { value: "340400", label: "淮南市", children: [{ value: "340402", label: "大通区" }, { value: "340403", label: "田家庵区" }, { value: "340404", label: "谢家集区" }, { value: "340405", label: "八公山区" }, { value: "340406", label: "潘集区" }, { value: "340421", label: "凤台县" }, { value: "340422", label: "寿县" }] }, { value: "340500", label: "马鞍山市", children: [{ value: "340503", label: "花山区" }, { value: "340504", label: "雨山区" }, { value: "340521", label: "当涂县" }, { value: "340506", label: "博望区" }, { value: "340522", label: "含山县" }, { value: "340523", label: "和县" }] }, { value: "340600", label: "淮北市", children: [{ value: "340602", label: "杜集区" }, { value: "340603", label: "相山区" }, { value: "340604", label: "烈山区" }, { value: "340621", label: "濉溪县" }] }, { value: "340700", label: "铜陵市", children: [{ value: "340705", label: "铜官区" }, { value: "340706", label: "义安区" }, { value: "340711", label: "郊区" }, { value: "340722", label: "枞阳县" }] }, { value: "340800", label: "安庆市", children: [{ value: "340802", label: "迎江区" }, { value: "340803", label: "大观区" }, { value: "340811", label: "宜秀区" }, { value: "340822", label: "怀宁县" }, { value: "340824", label: "潜山县" }, { value: "340825", label: "太湖县" }, { value: "340826", label: "宿松县" }, { value: "340827", label: "望江县" }, { value: "340828", label: "岳西县" }, { value: "340881", label: "桐城市" }, { value: "340871", label: "安徽安庆经济开发区" }] }, { value: "341000", label: "黄山市", children: [{ value: "341002", label: "屯溪区" }, { value: "341003", label: "黄山区" }, { value: "341004", label: "徽州区" }, { value: "341021", label: "歙县" }, { value: "341022", label: "休宁县" }, { value: "341023", label: "黟县" }, { value: "341024", label: "祁门县" }] }, { value: "341100", label: "滁州市", children: [{ value: "341102", label: "琅琊区" }, { value: "341103", label: "南谯区" }, { value: "341122", label: "来安县" }, { value: "341124", label: "全椒县" }, { value: "341125", label: "定远县" }, { value: "341126", label: "凤阳县" }, { value: "341181", label: "天长市" }, { value: "341182", label: "明光市" }, { value: "341171", label: "苏滁现代产业园" }, { value: "341172", label: "滁州经济技术开发区" }] }, { value: "341200", label: "阜阳市", children: [{ value: "341202", label: "颍州区" }, { value: "341203", label: "颍东区" }, { value: "341204", label: "颍泉区" }, { value: "341221", label: "临泉县" }, { value: "341222", label: "太和县" }, { value: "341225", label: "阜南县" }, { value: "341226", label: "颍上县" }, { value: "341282", label: "界首市" }, { value: "341272", label: "阜阳经济技术开发区" }, { value: "341271", label: "阜阳合肥现代产业园区" }] }, { value: "341300", label: "宿州市", children: [{ value: "341302", label: "埇桥区" }, { value: "341321", label: "砀山县" }, { value: "341322", label: "萧县" }, { value: "341323", label: "灵璧县" }, { value: "341324", label: "泗县" }, { value: "341371", label: "宿州马鞍山现代产业园区" }, { value: "341372", label: "宿州经济技术开发区" }] }, { value: "341500", label: "六安市", children: [{ value: "341502", label: "金安区" }, { value: "341503", label: "裕安区" }, { value: "341504", label: "叶集区" }, { value: "341522", label: "霍邱县" }, { value: "341523", label: "舒城县" }, { value: "341524", label: "金寨县" }, { value: "341525", label: "霍山县" }] }, { value: "341600", label: "亳州市", children: [{ value: "341602", label: "谯城区" }, { value: "341621", label: "涡阳县" }, { value: "341622", label: "蒙城县" }, { value: "341623", label: "利辛县" }] }, { value: "341700", label: "池州市", children: [{ value: "341702", label: "贵池区" }, { value: "341721", label: "东至县" }, { value: "341722", label: "石台县" }, { value: "341723", label: "青阳县" }] }, { value: "341800", label: "宣城市", children: [{ value: "341802", label: "宣州区" }, { value: "341821", label: "郎溪县" }, { value: "341822", label: "广德县" }, { value: "341823", label: "泾县" }, { value: "341824", label: "绩溪县" }, { value: "341825", label: "旌德县" }, { value: "341881", label: "宁国市" }, { value: "341871", label: "宣城市经济开发区" }] }] }, { value: '350000', label: '福建省', children: [{ value: "350100", label: "福州市", children: [{ value: "350102", label: "鼓楼区" }, { value: "350103", label: "台江区" }, { value: "350104", label: "仓山区" }, { value: "350105", label: "马尾区" }, { value: "350111", label: "晋安区" }, { value: "350121", label: "闽侯县" }, { value: "350122", label: "连江县" }, { value: "350123", label: "罗源县" }, { value: "350124", label: "闽清县" }, { value: "350125", label: "永泰县" }, { value: "350128", label: "平潭县" }, { value: "350181", label: "福清市" }, { value: "350182", label: "长乐市" }] }, { value: "350200", label: "厦门市", children: [{ value: "350203", label: "思明区" }, { value: "350205", label: "海沧区" }, { value: "350206", label: "湖里区" }, { value: "350211", label: "集美区" }, { value: "350212", label: "同安区" }, { value: "350213", label: "翔安区" }] }, { value: "350300", label: "莆田市", children: [{ value: "350302", label: "城厢区" }, { value: "350303", label: "涵江区" }, { value: "350304", label: "荔城区" }, { value: "350305", label: "秀屿区" }, { value: "350322", label: "仙游县" }] }, { value: "350400", label: "三明市", children: [{ value: "350402", label: "梅列区" }, { value: "350403", label: "三元区" }, { value: "350421", label: "明溪县" }, { value: "350423", label: "清流县" }, { value: "350424", label: "宁化县" }, { value: "350425", label: "大田县" }, { value: "350426", label: "尤溪县" }, { value: "350427", label: "沙县" }, { value: "350428", label: "将乐县" }, { value: "350429", label: "泰宁县" }, { value: "350430", label: "建宁县" }, { value: "350481", label: "永安市" }] }, { value: "350500", label: "泉州市", children: [{ value: "350502", label: "鲤城区" }, { value: "350503", label: "丰泽区" }, { value: "350504", label: "洛江区" }, { value: "350505", label: "泉港区" }, { value: "350521", label: "惠安县" }, { value: "350524", label: "安溪县" }, { value: "350525", label: "永春县" }, { value: "350526", label: "德化县" }, { value: "350527", label: "金门县" }, { value: "350581", label: "石狮市" }, { value: "350582", label: "晋江市" }, { value: "350583", label: "南安市" }] }, { value: "350600", label: "漳州市", children: [{ value: "350602", label: "芗城区" }, { value: "350603", label: "龙文区" }, { value: "350622", label: "云霄县" }, { value: "350623", label: "漳浦县" }, { value: "350624", label: "诏安县" }, { value: "350625", label: "长泰县" }, { value: "350626", label: "东山县" }, { value: "350627", label: "南靖县" }, { value: "350628", label: "平和县" }, { value: "350629", label: "华安县" }, { value: "350681", label: "龙海市" }] }, { value: "350700", label: "南平市", children: [{ value: "350702", label: "延平区" }, { value: "350721", label: "顺昌县" }, { value: "350722", label: "浦城县" }, { value: "350723", label: "光泽县" }, { value: "350724", label: "松溪县" }, { value: "350725", label: "政和县" }, { value: "350781", label: "邵武市" }, { value: "350782", label: "武夷山市" }, { value: "350783", label: "建瓯市" }, { value: "350703", label: "建阳区" }] }, { value: "350800", label: "龙岩市", children: [{ value: "350802", label: "新罗区" }, { value: "350821", label: "长汀县" }, { value: "350803", label: "永定区" }, { value: "350823", label: "上杭县" }, { value: "350824", label: "武平县" }, { value: "350825", label: "连城县" }, { value: "350881", label: "漳平市" }] }, { value: "350900", label: "宁德市", children: [{ value: "350902", label: "蕉城区" }, { value: "350921", label: "霞浦县" }, { value: "350922", label: "古田县" }, { value: "350923", label: "屏南县" }, { value: "350924", label: "寿宁县" }, { value: "350925", label: "周宁县" }, { value: "350926", label: "柘荣县" }, { value: "350981", label: "福安市" }, { value: "350982", label: "福鼎市" }] }] }, { value: '360000', label: '江西省', children: [{ value: "360100", label: "南昌市", children: [{ value: "360102", label: "东湖区" }, { value: "360103", label: "西湖区" }, { value: "360104", label: "青云谱区" }, { value: "360105", label: "湾里区" }, { value: "360111", label: "青山湖区" }, { value: "360121", label: "南昌县" }, { value: "360112", label: "新建区" }, { value: "360123", label: "安义县" }, { value: "360124", label: "进贤县" }] }, { value: "360200", label: "景德镇市", children: [{ value: "360202", label: "昌江区" }, { value: "360203", label: "珠山区" }, { value: "360222", label: "浮梁县" }, { value: "360281", label: "乐平市" }] }, { value: "360300", label: "萍乡市", children: [{ value: "360302", label: "安源区" }, { value: "360313", label: "湘东区" }, { value: "360321", label: "莲花县" }, { value: "360322", label: "上栗县" }, { value: "360323", label: "芦溪县" }] }, { value: "360400", label: "九江市", children: [{ value: "360402", label: "濂溪区" }, { value: "360403", label: "浔阳区" }, { value: "360404", label: "柴桑区" }, { value: "360423", label: "武宁县" }, { value: "360424", label: "修水县" }, { value: "360425", label: "永修县" }, { value: "360426", label: "德安县" }, { value: "360428", label: "都昌县" }, { value: "360429", label: "湖口县" }, { value: "360430", label: "彭泽县" }, { value: "360481", label: "瑞昌市" }, { value: "360482", label: "共青城市" }, { value: "360483", label: "庐山市" }] }, { value: "360500", label: "新余市", children: [{ value: "360502", label: "渝水区" }, { value: "360521", label: "分宜县" }] }, { value: "360600", label: "鹰潭市", children: [{ value: "360602", label: "月湖区" }, { value: "360622", label: "余江县" }, { value: "360681", label: "贵溪市" }] }, { value: "360700", label: "赣州市", children: [{ value: "360702", label: "章贡区" }, { value: "360704", label: "赣县区" }, { value: "360722", label: "信丰县" }, { value: "360723", label: "大余县" }, { value: "360724", label: "上犹县" }, { value: "360725", label: "崇义县" }, { value: "360726", label: "安远县" }, { value: "360727", label: "龙南县" }, { value: "360728", label: "定南县" }, { value: "360729", label: "全南县" }, { value: "360730", label: "宁都县" }, { value: "360731", label: "于都县" }, { value: "360732", label: "兴国县" }, { value: "360733", label: "会昌县" }, { value: "360734", label: "寻乌县" }, { value: "360735", label: "石城县" }, { value: "360781", label: "瑞金市" }, { value: "360703", label: "南康区" }] }, { value: "360800", label: "吉安市", children: [{ value: "360802", label: "吉州区" }, { value: "360803", label: "青原区" }, { value: "360821", label: "吉安县" }, { value: "360822", label: "吉水县" }, { value: "360823", label: "峡江县" }, { value: "360824", label: "新干县" }, { value: "360825", label: "永丰县" }, { value: "360826", label: "泰和县" }, { value: "360827", label: "遂川县" }, { value: "360828", label: "万安县" }, { value: "360829", label: "安福县" }, { value: "360830", label: "永新县" }, { value: "360881", label: "井冈山市" }] }, { value: "360900", label: "宜春市", children: [{ value: "360902", label: "袁州区" }, { value: "360921", label: "奉新县" }, { value: "360922", label: "万载县" }, { value: "360923", label: "上高县" }, { value: "360924", label: "宜丰县" }, { value: "360925", label: "靖安县" }, { value: "360926", label: "铜鼓县" }, { value: "360981", label: "丰城市" }, { value: "360982", label: "樟树市" }, { value: "360983", label: "高安市" }] }, { value: "361000", label: "抚州市", children: [{ value: "361002", label: "临川区" }, { value: "361021", label: "南城县" }, { value: "361022", label: "黎川县" }, { value: "361023", label: "南丰县" }, { value: "361024", label: "崇仁县" }, { value: "361025", label: "乐安县" }, { value: "361026", label: "宜黄县" }, { value: "361027", label: "金溪县" }, { value: "361028", label: "资溪县" }, { value: "361003", label: "东乡区" }, { value: "361030", label: "广昌县" }] }, { value: "361100", label: "上饶市", children: [{ value: "361102", label: "信州区" }, { value: "361121", label: "上饶县" }, { value: "361103", label: "广丰区" }, { value: "361123", label: "玉山县" }, { value: "361124", label: "铅山县" }, { value: "361125", label: "横峰县" }, { value: "361126", label: "弋阳县" }, { value: "361127", label: "余干县" }, { value: "361128", label: "鄱阳县" }, { value: "361129", label: "万年县" }, { value: "361130", label: "婺源县" }, { value: "361181", label: "德兴市" }] }] }, { value: '370000', label: '山东省', children: [{ value: "370100", label: "济南市", children: [{ value: "370102", label: "历下区" }, { value: "370103", label: "市中区" }, { value: "370104", label: "槐荫区" }, { value: "370105", label: "天桥区" }, { value: "370112", label: "历城区" }, { value: "370113", label: "长清区" }, { value: "370124", label: "平阴县" }, { value: "370125", label: "济阳县" }, { value: "370126", label: "商河县" }, { value: "370114", label: "章丘区" }, { value: "370171", label: "济南高新技术产业开发区" }] }, { value: "370200", label: "青岛市", children: [{ value: "370202", label: "市南区" }, { value: "370203", label: "市北区" }, { value: "370211", label: "黄岛区" }, { value: "370212", label: "崂山区" }, { value: "370213", label: "李沧区" }, { value: "370214", label: "城阳区" }, { value: "370281", label: "胶州市" }, { value: "370215", label: "即墨区" }, { value: "370283", label: "平度市" }, { value: "370285", label: "莱西市" }, { value: "370271", label: "青岛高新技术产业开发区" }] }, { value: "370300", label: "淄博市", children: [{ value: "370302", label: "淄川区" }, { value: "370303", label: "张店区" }, { value: "370304", label: "博山区" }, { value: "370305", label: "临淄区" }, { value: "370306", label: "周村区" }, { value: "370321", label: "桓台县" }, { value: "370322", label: "高青县" }, { value: "370323", label: "沂源县" }] }, { value: "370400", label: "枣庄市", children: [{ value: "370402", label: "市中区" }, { value: "370403", label: "薛城区" }, { value: "370404", label: "峄城区" }, { value: "370405", label: "台儿庄区" }, { value: "370406", label: "山亭区" }, { value: "370481", label: "滕州市" }] }, { value: "370500", label: "东营市", children: [{ value: "370502", label: "东营区" }, { value: "370503", label: "河口区" }, { value: "370521", label: "垦利县" }, { value: "370522", label: "利津县" }, { value: "370523", label: "广饶县" }, { value: "370589", label: "西城区" }, { value: "370571", label: "东营经济技术开发区" }, { value: "370572", label: "东营港经济开发区" }] }, { value: "370600", label: "烟台市", children: [{ value: "370602", label: "芝罘区" }, { value: "370611", label: "福山区" }, { value: "370612", label: "牟平区" }, { value: "370613", label: "莱山区" }, { value: "370634", label: "长岛县" }, { value: "370681", label: "龙口市" }, { value: "370682", label: "莱阳市" }, { value: "370683", label: "莱州市" }, { value: "370684", label: "蓬莱市" }, { value: "370685", label: "招远市" }, { value: "370686", label: "栖霞市" }, { value: "370687", label: "海阳市" }, { value: "370671", label: "烟台高新技术产业开发区" }, { value: "370672", label: "烟台经济技术开发区" }] }, { value: "370700", label: "潍坊市", children: [{ value: "370702", label: "潍城区" }, { value: "370703", label: "寒亭区" }, { value: "370704", label: "坊子区" }, { value: "370705", label: "奎文区" }, { value: "370724", label: "临朐县" }, { value: "370725", label: "昌乐县" }, { value: "370772", label: "潍坊滨海经济技术开发区" }, { value: "370781", label: "青州市" }, { value: "370782", label: "诸城市" }, { value: "370783", label: "寿光市" }, { value: "370784", label: "安丘市" }, { value: "370785", label: "高密市" }, { value: "370786", label: "昌邑市" }] }, { value: "370800", label: "济宁市", children: [{ value: "370811", label: "任城区" }, { value: "370826", label: "微山县" }, { value: "370827", label: "鱼台县" }, { value: "370828", label: "金乡县" }, { value: "370829", label: "嘉祥县" }, { value: "370830", label: "汶上县" }, { value: "370831", label: "泗水县" }, { value: "370832", label: "梁山县" }, { value: "370881", label: "曲阜市" }, { value: "370812", label: "兖州区" }, { value: "370883", label: "邹城市" }, { value: "370871", label: "济宁高新技术产业开发区" }] }, { value: "370900", label: "泰安市", children: [{ value: "370902", label: "泰山区" }, { value: "370903", label: "岱岳区" }, { value: "370921", label: "宁阳县" }, { value: "370923", label: "东平县" }, { value: "370982", label: "新泰市" }, { value: "370983", label: "肥城市" }] }, { value: "371000", label: "威海市", children: [{ value: "371002", label: "环翠区" }, { value: "371003", label: "文登区" }, { value: "371082", label: "荣成市" }, { value: "371083", label: "乳山市" }, { value: "371071", label: "威海火炬高技术产业开发区" }, { value: "371072", label: "威海经济技术开发区" }, { value: "371073", label: "威海临港经济技术开发区" }] }, { value: "371100", label: "日照市", children: [{ value: "371102", label: "东港区" }, { value: "371103", label: "岚山区" }, { value: "371121", label: "五莲县" }, { value: "371122", label: "莒县" }, { value: "371171", label: "日照经济技术开发区" }, { value: "371172", label: "日照国际海洋城" }] }, { value: "371200", label: "莱芜市", children: [{ value: "371202", label: "莱城区" }, { value: "371203", label: "钢城区" }] }, { value: "371300", label: "临沂市", children: [{ value: "371302", label: "兰山区" }, { value: "371311", label: "罗庄区" }, { value: "371312", label: "河东区" }, { value: "371321", label: "沂南县" }, { value: "371322", label: "郯城县" }, { value: "371323", label: "沂水县" }, { value: "371324", label: "兰陵县" }, { value: "371325", label: "费县" }, { value: "371326", label: "平邑县" }, { value: "371327", label: "莒南县" }, { value: "371328", label: "蒙阴县" }, { value: "371329", label: "临沭县" }, { value: "371371", label: "临沂高新技术产业开发区" }, { value: "371373", label: "临沂临港经济开发区" }, { value: "371372", label: "临沂经济技术开发区" }] }, { value: "371400", label: "德州市", children: [{ value: "371402", label: "德城区" }, { value: "371403", label: "陵城区" }, { value: "371422", label: "宁津县" }, { value: "371423", label: "庆云县" }, { value: "371424", label: "临邑县" }, { value: "371425", label: "齐河县" }, { value: "371426", label: "平原县" }, { value: "371427", label: "夏津县" }, { value: "371428", label: "武城县" }, { value: "371481", label: "乐陵市" }, { value: "371482", label: "禹城市" }, { value: "371471", label: "德州经济技术开发区" }, { value: "371472", label: "德州运河经济开发区" }] }, { value: "371500", label: "聊城市", children: [{ value: "371502", label: "东昌府区" }, { value: "371521", label: "阳谷县" }, { value: "371522", label: "莘县" }, { value: "371523", label: "茌平县" }, { value: "371524", label: "东阿县" }, { value: "371525", label: "冠县" }, { value: "371526", label: "高唐县" }, { value: "371581", label: "临清市" }] }, { value: "371600", label: "滨州市", children: [{ value: "371602", label: "滨城区" }, { value: "371621", label: "惠民县" }, { value: "371622", label: "阳信县" }, { value: "371623", label: "无棣县" }, { value: "371603", label: "沾化区" }, { value: "371625", label: "博兴县" }, { value: "371626", label: "邹平县" }] }, { value: "371700", label: "菏泽市", children: [{ value: "371702", label: "牡丹区" }, { value: "371721", label: "曹县" }, { value: "371722", label: "单县" }, { value: "371723", label: "成武县" }, { value: "371724", label: "巨野县" }, { value: "371725", label: "郓城县" }, { value: "371726", label: "鄄城县" }, { value: "371727", label: "定陶区" }, { value: "371728", label: "东明县" }, { value: "371771", label: "菏泽经济技术开发区" }, { value: "371772", label: "菏泽高新技术开发区" }] }] }, { value: '410000', label: '河南省', children: [{ value: "410100", label: "郑州市", children: [{ value: "410102", label: "中原区" }, { value: "410103", label: "二七区" }, { value: "410104", label: "管城回族区" }, { value: "410105", label: "金水区" }, { value: "410106", label: "上街区" }, { value: "410108", label: "惠济区" }, { value: "410122", label: "中牟县" }, { value: "410181", label: "巩义市" }, { value: "410182", label: "荥阳市" }, { value: "410183", label: "新密市" }, { value: "410184", label: "新郑市" }, { value: "410185", label: "登封市" }, { value: "410171", label: "郑州经济技术开发区" }, { value: "410172", label: "郑州高新技术产业开发区" }, { value: "410173", label: "郑州航空港经济综合实验区" }] }, { value: "410200", label: "开封市", children: [{ value: "410202", label: "龙亭区" }, { value: "410203", label: "顺河回族区" }, { value: "410204", label: "鼓楼区" }, { value: "410205", label: "禹王台区" }, { value: "410211", label: "金明区" }, { value: "410221", label: "杞县" }, { value: "410222", label: "通许县" }, { value: "410223", label: "尉氏县" }, { value: "410225", label: "兰考县" }, { value: "410212", label: "祥符区" }] }, { value: "410300", label: "洛阳市", children: [{ value: "410302", label: "老城区" }, { value: "410303", label: "西工区" }, { value: "410304", label: "廛河回族区" }, { value: "410305", label: "涧西区" }, { value: "410306", label: "吉利区" }, { value: "410307", label: "洛龙区" }, { value: "410322", label: "孟津县" }, { value: "410323", label: "新安县" }, { value: "410324", label: "栾川县" }, { value: "410325", label: "嵩县" }, { value: "410326", label: "汝阳县" }, { value: "410327", label: "宜阳县" }, { value: "410328", label: "洛宁县" }, { value: "410329", label: "伊川县" }, { value: "410381", label: "偃师市" }, { value: "410371", label: "洛阳高新技术产业开发区" }, { value: "471005", label: "其它区" }] }, { value: "410400", label: "平顶山市", children: [{ value: "410402", label: "新华区" }, { value: "410403", label: "卫东区" }, { value: "410404", label: "石龙区" }, { value: "410411", label: "湛河区" }, { value: "410421", label: "宝丰县" }, { value: "410422", label: "叶县" }, { value: "410423", label: "鲁山县" }, { value: "410425", label: "郏县" }, { value: "410481", label: "舞钢市" }, { value: "410482", label: "汝州市" }, { value: "410471", label: "平顶山高新技术产业开发区" }, { value: "410472", label: "平顶山市新城区" }] }, { value: "410500", label: "安阳市", children: [{ value: "410502", label: "文峰区" }, { value: "410503", label: "北关区" }, { value: "410505", label: "殷都区" }, { value: "410506", label: "龙安区" }, { value: "410522", label: "安阳县" }, { value: "410523", label: "汤阴县" }, { value: "410526", label: "滑县" }, { value: "410527", label: "内黄县" }, { value: "410581", label: "林州市" }, { value: "410571", label: "安阳高新技术产业开发区" }] }, { value: "410600", label: "鹤壁市", children: [{ value: "410602", label: "鹤山区" }, { value: "410603", label: "山城区" }, { value: "410611", label: "淇滨区" }, { value: "410621", label: "浚县" }, { value: "410622", label: "淇县" }, { value: "410671", label: "鹤壁经济技术开发区" }] }, { value: "410700", label: "新乡市", children: [{ value: "410702", label: "红旗区" }, { value: "410703", label: "卫滨区" }, { value: "410704", label: "凤泉区" }, { value: "410711", label: "牧野区" }, { value: "410721", label: "新乡县" }, { value: "410724", label: "获嘉县" }, { value: "410725", label: "原阳县" }, { value: "410726", label: "延津县" }, { value: "410727", label: "封丘县" }, { value: "410728", label: "长垣县" }, { value: "410781", label: "卫辉市" }, { value: "410782", label: "辉县市" }, { value: "410771", label: "新乡高新技术产业开发区" }, { value: "410773", label: "新乡市平原城乡一体化示范区" }, { value: "410772", label: "新乡经济技术开发区" }] }, { value: "410800", label: "焦作市", children: [{ value: "410802", label: "解放区" }, { value: "410803", label: "中站区" }, { value: "410804", label: "马村区" }, { value: "410811", label: "山阳区" }, { value: "410821", label: "修武县" }, { value: "410822", label: "博爱县" }, { value: "410823", label: "武陟县" }, { value: "410825", label: "温县" }, { value: "410882", label: "沁阳市" }, { value: "410883", label: "孟州市" }, { value: "410871", label: "焦作城乡一体化示范区" }] }, { value: "410900", label: "濮阳市", children: [{ value: "410902", label: "华龙区" }, { value: "410922", label: "清丰县" }, { value: "410923", label: "南乐县" }, { value: "410926", label: "范县" }, { value: "410927", label: "台前县" }, { value: "410928", label: "濮阳县" }, { value: "410971", label: "河南濮阳工业园区" }, { value: "410972", label: "濮阳经济技术开发区" }] }, { value: "411000", label: "许昌市", children: [{ value: "411002", label: "魏都区" }, { value: "411003", label: "建安区" }, { value: "411024", label: "鄢陵县" }, { value: "411025", label: "襄城县" }, { value: "411081", label: "禹州市" }, { value: "411082", label: "长葛市" }, { value: "411071", label: "许昌经济技术开发区" }] }, { value: "411100", label: "漯河市", children: [{ value: "411102", label: "源汇区" }, { value: "411103", label: "郾城区" }, { value: "411104", label: "召陵区" }, { value: "411121", label: "舞阳县" }, { value: "411122", label: "临颍县" }, { value: "411171", label: "漯河经济技术开发区" }] }, { value: "411200", label: "三门峡市", children: [{ value: "411202", label: "湖滨区" }, { value: "411221", label: "渑池县" }, { value: "411222", label: "陕县" }, { value: "411224", label: "卢氏县" }, { value: "411281", label: "义马市" }, { value: "411282", label: "灵宝市" }, { value: "411203", label: "陕州区" }, { value: "411271", label: "河南三门峡经济开发区" }] }, { value: "411300", label: "南阳市", children: [{ value: "411302", label: "宛城区" }, { value: "411303", label: "卧龙区" }, { value: "411321", label: "南召县" }, { value: "411322", label: "方城县" }, { value: "411323", label: "西峡县" }, { value: "411324", label: "镇平县" }, { value: "411325", label: "内乡县" }, { value: "411326", label: "淅川县" }, { value: "411327", label: "社旗县" }, { value: "411328", label: "唐河县" }, { value: "411329", label: "新野县" }, { value: "411330", label: "桐柏县" }, { value: "411381", label: "邓州市" }, { value: "411371", label: "南阳高新技术产业开发区" }, { value: "411372", label: "南阳市城乡一体化示范区" }] }, { value: "411400", label: "商丘市", children: [{ value: "411402", label: "梁园区" }, { value: "411403", label: "睢阳区" }, { value: "411421", label: "民权县" }, { value: "411422", label: "睢县" }, { value: "411423", label: "宁陵县" }, { value: "411424", label: "柘城县" }, { value: "411425", label: "虞城县" }, { value: "411426", label: "夏邑县" }, { value: "411481", label: "永城市" }, { value: "411471", label: "豫东综合物流产业聚集区" }, { value: "411472", label: "河南商丘经济开发" }] }, { value: "411500", label: "信阳市", children: [{ value: "411502", label: "浉河区" }, { value: "411503", label: "平桥区" }, { value: "411521", label: "罗山县" }, { value: "411522", label: "光山县" }, { value: "411523", label: "新县" }, { value: "411524", label: "商城县" }, { value: "411525", label: "固始县" }, { value: "411526", label: "潢川县" }, { value: "411527", label: "淮滨县" }, { value: "411528", label: "息县" }, { value: "411571", label: "信阳高新技术产业开发区" }] }, { value: "411600", label: "周口市", children: [{ value: "411602", label: "川汇区" }, { value: "411621", label: "扶沟县" }, { value: "411622", label: "西华县" }, { value: "411623", label: "商水县" }, { value: "411624", label: "沈丘县" }, { value: "411625", label: "郸城县" }, { value: "411626", label: "淮阳县" }, { value: "411627", label: "太康县" }, { value: "411628", label: "鹿邑县" }, { value: "411681", label: "项城市" }, { value: "411671", label: "河南周口经济开发区" }] }, { value: "411700", label: "驻马店市", children: [{ value: "411702", label: "驿城区" }, { value: "411721", label: "西平县" }, { value: "411722", label: "上蔡县" }, { value: "411723", label: "平舆县" }, { value: "411724", label: "正阳县" }, { value: "411725", label: "确山县" }, { value: "411726", label: "泌阳县" }, { value: "411727", label: "汝南县" }, { value: "411628", label: "遂平县" }, { value: "411729", label: "新蔡县" }, { value: "411771", label: "河南驻马店经济开发区" }] }] }, { value: '420000', label: '湖北省', children: [{ value: "420100", label: "武汉市", children: [{ value: "420101", label: "市辖区" }, { value: "420102", label: "江岸区" }, { value: "420103", label: "江汉区" }, { value: "420104", label: "硚口区" }, { value: "420105", label: "汉阳区" }, { value: "420106", label: "武昌区" }, { value: "420107", label: "青山区" }, { value: "420111", label: "洪山区" }, { value: "420112", label: "东西湖区" }, { value: "420113", label: "汉南区" }, { value: "420114", label: "蔡甸区" }, { value: "420115", label: "江夏区" }, { value: "420116", label: "黄陂区" }, { value: "420117", label: "新洲区" }] }, { value: "420200", label: "黄石市", children: [{ value: "420201", label: "市辖区" }, { value: "420202", label: "黄石港区" }, { value: "420203", label: "西塞山区" }, { value: "420204", label: "下陆区" }, { value: "420205", label: "铁山区" }, { value: "420222", label: "阳新县" }, { value: "420281", label: "大冶市" }] }, { value: "420300", label: "十堰市", children: [{ value: "420301", label: "市辖区" }, { value: "420302", label: "茅箭区" }, { value: "420303", label: "张湾区" }, { value: "420304", label: "郧阳区" }, { value: "420322", label: "郧西县" }, { value: "420323", label: "竹山县" }, { value: "420324", label: "竹溪县" }, { value: "420325", label: "房县" }, { value: "420381", label: "丹江口市" }] }, { value: "420500", label: "宜昌市", children: [{ value: "420501", label: "市辖区" }, { value: "420502", label: "西陵区" }, { value: "420503", label: "伍家岗区" }, { value: "420504", label: "点军区" }, { value: "420505", label: "猇亭区" }, { value: "420506", label: "夷陵区" }, { value: "420525", label: "远安县" }, { value: "420526", label: "兴山县" }, { value: "420527", label: "秭归县" }, { value: "420528", label: "长阳土家族自治县" }, { value: "420529", label: "五峰土家族自治县" }, { value: "420581", label: "宜都市" }, { value: "420582", label: "当阳市" }, { value: "420583", label: "枝江市" }] }, { value: "420600", label: "襄阳市", children: [{ value: "420601", label: "市辖区" }, { value: "420602", label: "襄城区" }, { value: "420606", label: "樊城区" }, { value: "420607", label: "襄州区" }, { value: "420624", label: "南漳县" }, { value: "420625", label: "谷城县" }, { value: "420626", label: "保康县" }, { value: "420682", label: "老河口市" }, { value: "420683", label: "枣阳市" }, { value: "420684", label: "宜城市" }] }, { value: "420700", label: "鄂州市", children: [{ value: "420701", label: "市辖区" }, { value: "420702", label: "梁子湖区" }, { value: "420703", label: "华容区" }, { value: "420704", label: "鄂城区" }] }, { value: "420800", label: "荆门市", children: [{ value: "420801", label: "市辖区" }, { value: "420802", label: "东宝区" }, { value: "420804", label: "掇刀区" }, { value: "420821", label: "京山县" }, { value: "420822", label: "沙洋县" }, { value: "420881", label: "钟祥市" }] }, { value: "420900", label: "孝感市", children: [{ value: "420901", label: "市辖区" }, { value: "420902", label: "孝南区" }, { value: "420921", label: "孝昌县" }, { value: "420922", label: "大悟县" }, { value: "420923", label: "云梦县" }, { value: "420981", label: "应城市" }, { value: "420982", label: "安陆市" }, { value: "420984", label: "汉川市" }] }, { value: "421000", label: "荆州市", children: [{ value: "421001", label: "市辖区" }, { value: "421002", label: "沙市区" }, { value: "421003", label: "荆州区" }, { value: "421022", label: "公安县" }, { value: "421023", label: "监利县" }, { value: "421024", label: "江陵县" }, { value: "421071", label: "荆州经济技术开发区" }, { value: "421081", label: "石首市" }, { value: "421083", label: "洪湖市" }, { value: "421087", label: "松滋市" }] }, { value: "421100", label: "黄冈市", children: [{ value: "421101", label: "市辖区" }, { value: "421102", label: "黄州区" }, { value: "421121", label: "团风县" }, { value: "421122", label: "红安县" }, { value: "421123", label: "罗田县" }, { value: "421124", label: "英山县" }, { value: "421125", label: "浠水县" }, { value: "421126", label: "蕲春县" }, { value: "421127", label: "黄梅县" }, { value: "421171", label: "龙感湖管理区" }, { value: "421181", label: "麻城市" }, { value: "421182", label: "武穴市" }] }, { value: "421200", label: "咸宁市", children: [{ value: "421201", label: "市辖区" }, { value: "421202", label: "咸安区" }, { value: "421221", label: "嘉鱼县" }, { value: "421222", label: "通城县" }, { value: "421223", label: "崇阳县" }, { value: "421224", label: "通山县" }, { value: "421281", label: "赤壁市" }] }, { value: "421300", label: "随州市", children: [{ value: "421301", label: "市辖区" }, { value: "421303", label: "曾都区" }, { value: "421321", label: "随县" }, { value: "421381", label: "广水市" }] }, { value: "422800", label: "恩施土家族苗族自治州", children: [{ value: "422801", label: "恩施市" }, { value: "422802", label: "利川市" }, { value: "422822", label: "建始县" }, { value: "422823", label: "巴东县" }, { value: "422825", label: "宣恩县" }, { value: "422826", label: "咸丰县" }, { value: "422827", label: "来凤县" }, { value: "422828", label: "鹤峰县" }] }, { value: "429000", label: "省直辖县级行政区划", children: [{ value: "429004", label: "仙桃市" }, { value: "429005", label: "潜江市" }, { value: "429006", label: "天门市" }, { value: "429021", label: "神农架林区" }] }] }, { value: '430000', label: '湖南省', children: [{ value: "430100", label: "长沙市", children: [{ value: "430101", label: "市辖区" }, { value: "430102", label: "芙蓉区" }, { value: "430103", label: "天心区" }, { value: "430104", label: "岳麓区" }, { value: "430105", label: "开福区" }, { value: "430111", label: "雨花区" }, { value: "430112", label: "望城区" }, { value: "430121", label: "长沙县" }, { value: "430181", label: "浏阳市" }, { value: "430182", label: "宁乡市" }] }, { value: "430200", label: "株洲市", children: [{ value: "430201", label: "市辖区" }, { value: "430202", label: "荷塘区" }, { value: "430203", label: "芦淞区" }, { value: "430204", label: "石峰区" }, { value: "430211", label: "天元区" }, { value: "430221", label: "株洲县" }, { value: "430223", label: "攸县" }, { value: "430224", label: "茶陵县" }, { value: "430225", label: "炎陵县" }, { value: "430271", label: "云龙示范区" }, { value: "430281", label: "醴陵市" }] }, { value: "430300", label: "湘潭市", children: [{ value: "430301", label: "市辖区" }, { value: "430302", label: "雨湖区" }, { value: "430304", label: "岳塘区" }, { value: "430321", label: "湘潭县" }, { value: "430371", label: "湖南湘潭高新技术产业园区" }, { value: "430372", label: "湘潭昭山示范区" }, { value: "430373", label: "湘潭九华示范区" }, { value: "430381", label: "湘乡市" }, { value: "430382", label: "韶山市" }] }, { value: "430400", label: "衡阳市", children: [{ value: "430401", label: "市辖区" }, { value: "430405", label: "珠晖区" }, { value: "430406", label: "雁峰区" }, { value: "430407", label: "石鼓区" }, { value: "430408", label: "蒸湘区" }, { value: "430412", label: "南岳区" }, { value: "430421", label: "衡阳县" }, { value: "430422", label: "衡南县" }, { value: "430423", label: "衡山县" }, { value: "430424", label: "衡东县" }, { value: "430426", label: "祁东县" }, { value: "430471", label: "衡阳综合保税区" }, { value: "430472", label: "湖南衡阳高新技术产业园区" }, { value: "430473", label: "湖南衡阳松木经济开发区" }, { value: "430481", label: "耒阳市" }, { value: "430482", label: "常宁市" }] }, { value: "430500", label: "邵阳市", children: [{ value: "430501", label: "市辖区" }, { value: "430502", label: "双清区" }, { value: "430503", label: "大祥区" }, { value: "430511", label: "北塔区" }, { value: "430521", label: "邵东县" }, { value: "430522", label: "新邵县" }, { value: "430523", label: "邵阳县" }, { value: "430524", label: "隆回县" }, { value: "430525", label: "洞口县" }, { value: "430527", label: "绥宁县" }, { value: "430528", label: "新宁县" }, { value: "430529", label: "城步苗族自治县" }, { value: "430581", label: "武冈市" }] }, { value: "430600", label: "岳阳市", children: [{ value: "430601", label: "市辖区" }, { value: "430602", label: "岳阳楼区" }, { value: "430603", label: "云溪区" }, { value: "430611", label: "君山区" }, { value: "430621", label: "岳阳县" }, { value: "430623", label: "华容县" }, { value: "430624", label: "湘阴县" }, { value: "430626", label: "平江县" }, { value: "430671", label: "岳阳市屈原管理区" }, { value: "430681", label: "汨罗市" }, { value: "430682", label: "临湘市" }] }, { value: "430700", label: "常德市", children: [{ value: "430701", label: "市辖区" }, { value: "430702", label: "武陵区" }, { value: "430703", label: "鼎城区" }, { value: "430721", label: "安乡县" }, { value: "430722", label: "汉寿县" }, { value: "430723", label: "澧县" }, { value: "430724", label: "临澧县" }, { value: "430725", label: "桃源县" }, { value: "430726", label: "石门县" }, { value: "430771", label: "常德市西洞庭管理区" }, { value: "430781", label: "津市市" }] }, { value: "430800", label: "张家界市", children: [{ value: "430801", label: "市辖区" }, { value: "430802", label: "永定区" }, { value: "430811", label: "武陵源区" }, { value: "430821", label: "慈利县" }, { value: "430822", label: "桑植县" }] }, { value: "430900", label: "益阳市", children: [{ value: "430901", label: "市辖区" }, { value: "430902", label: "资阳区" }, { value: "430903", label: "赫山区" }, { value: "430921", label: "南县" }, { value: "430922", label: "桃江县" }, { value: "430923", label: "安化县" }, { value: "430971", label: "益阳市大通湖管理区" }, { value: "430972", label: "湖南益阳高新技术产业园区" }, { value: "430981", label: "沅江市" }] }, { value: "431000", label: "郴州市", children: [{ value: "431001", label: "市辖区" }, { value: "431002", label: "北湖区" }, { value: "431003", label: "苏仙区" }, { value: "431021", label: "桂阳县" }, { value: "431022", label: "宜章县" }, { value: "431023", label: "永兴县" }, { value: "431024", label: "嘉禾县" }, { value: "431025", label: "临武县" }, { value: "431026", label: "汝城县" }, { value: "431027", label: "桂东县" }, { value: "431028", label: "安仁县" }, { value: "431081", label: "资兴市" }] }, { value: "431100", label: "永州市", children: [{ value: "431101", label: "市辖区" }, { value: "431102", label: "零陵区" }, { value: "431103", label: "冷水滩区" }, { value: "431121", label: "祁阳县" }, { value: "431122", label: "东安县" }, { value: "431123", label: "双牌县" }, { value: "431124", label: "道县" }, { value: "431125", label: "江永县" }, { value: "431126", label: "宁远县" }, { value: "431127", label: "蓝山县" }, { value: "431128", label: "新田县" }, { value: "431129", label: "江华瑶族自治县" }, { value: "431171", label: "永州经济技术开发区" }, { value: "431172", label: "永州市金洞管理区" }, { value: "431173", label: "永州市回龙圩管理区" }] }, { value: "431200", label: "怀化市", children: [{ value: "431201", label: "市辖区" }, { value: "431202", label: "鹤城区" }, { value: "431221", label: "中方县" }, { value: "431222", label: "沅陵县" }, { value: "431223", label: "辰溪县" }, { value: "431224", label: "溆浦县" }, { value: "431225", label: "会同县" }, { value: "431226", label: "麻阳苗族自治县" }, { value: "431227", label: "新晃侗族自治县" }, { value: "431228", label: "芷江侗族自治县" }, { value: "431229", label: "靖州苗族侗族自治县" }, { value: "431230", label: "通道侗族自治县" }, { value: "431271", label: "怀化市洪江管理区" }, { value: "431281", label: "洪江市" }] }, { value: "431300", label: "娄底市", children: [{ value: "431301", label: "市辖区" }, { value: "431302", label: "娄星区" }, { value: "431321", label: "双峰县" }, { value: "431322", label: "新化县" }, { value: "431381", label: "冷水江市" }, { value: "431382", label: "涟源市" }] }, { value: "433100", label: "湘西土家族苗族自治州", children: [{ value: "433101", label: "吉首市" }, { value: "433122", label: "泸溪县" }, { value: "433123", label: "凤凰县" }, { value: "433124", label: "花垣县" }, { value: "433125", label: "保靖县" }, { value: "433126", label: "古丈县" }, { value: "433127", label: "永顺县" }, { value: "433130", label: "龙山县" }, { value: "433172", label: "湖南吉首经济开发区" }, { value: "433173", label: "湖南永顺经济开发区" }] }] }, { value: '440000', label: '广东省', children: [{ value: "440100", label: "广州市", children: [{ value: "440101", label: "市辖区" }, { value: "440103", label: "荔湾区" }, { value: "440104", label: "越秀区" }, { value: "440105", label: "海珠区" }, { value: "440106", label: "天河区" }, { value: "440111", label: "白云区" }, { value: "440112", label: "黄埔区" }, { value: "440113", label: "番禺区" }, { value: "440114", label: "花都区" }, { value: "440115", label: "南沙区" }, { value: "440117", label: "从化区" }, { value: "440118", label: "增城区" }] }, { value: "440200", label: "韶关市", children: [{ value: "440201", label: "市辖区" }, { value: "440203", label: "武江区" }, { value: "440204", label: "浈江区" }, { value: "440205", label: "曲江区" }, { value: "440222", label: "始兴县" }, { value: "440224", label: "仁化县" }, { value: "440229", label: "翁源县" }, { value: "440232", label: "乳源瑶族自治县" }, { value: "440233", label: "新丰县" }, { value: "440281", label: "乐昌市" }, { value: "440282", label: "南雄市" }] }, { value: "440300", label: "深圳市", children: [{ value: "440301", label: "市辖区" }, { value: "440303", label: "罗湖区" }, { value: "440304", label: "福田区" }, { value: "440305", label: "南山区" }, { value: "440306", label: "宝安区" }, { value: "440307", label: "龙岗区" }, { value: "440308", label: "盐田区" }, { value: "440309", label: "龙华区" }, { value: "440310", label: "坪山区" }] }, { value: "440400", label: "珠海市", children: [{ value: "440401", label: "市辖区" }, { value: "440402", label: "香洲区" }, { value: "440403", label: "斗门区" }, { value: "440404", label: "金湾区" }] }, { value: "440500", label: "汕头市", children: [{ value: "440501", label: "市辖区" }, { value: "440507", label: "龙湖区" }, { value: "440511", label: "金平区" }, { value: "440512", label: "濠江区" }, { value: "440513", label: "潮阳区" }, { value: "440514", label: "潮南区" }, { value: "440515", label: "澄海区" }, { value: "440523", label: "南澳县" }] }, { value: "440600", label: "佛山市", children: [{ value: "440601", label: "市辖区" }, { value: "440604", label: "禅城区" }, { value: "440605", label: "南海区" }, { value: "440606", label: "顺德区" }, { value: "440607", label: "三水区" }, { value: "440608", label: "高明区" }] }, { value: "440700", label: "江门市", children: [{ value: "440701", label: "市辖区" }, { value: "440703", label: "蓬江区" }, { value: "440704", label: "江海区" }, { value: "440705", label: "新会区" }, { value: "440781", label: "台山市" }, { value: "440783", label: "开平市" }, { value: "440784", label: "鹤山市" }, { value: "440785", label: "恩平市" }] }, { value: "440800", label: "湛江市", children: [{ value: "440801", label: "市辖区" }, { value: "440802", label: "赤坎区" }, { value: "440803", label: "霞山区" }, { value: "440804", label: "坡头区" }, { value: "440811", label: "麻章区" }, { value: "440823", label: "遂溪县" }, { value: "440825", label: "徐闻县" }, { value: "440881", label: "廉江市" }, { value: "440882", label: "雷州市" }, { value: "440883", label: "吴川市" }] }, { value: "440900", label: "茂名市", children: [{ value: "440901", label: "市辖区" }, { value: "440902", label: "茂南区" }, { value: "440904", label: "电白区" }, { value: "440981", label: "高州市" }, { value: "440982", label: "化州市" }, { value: "440983", label: "信宜市" }] }, { value: "441200", label: "肇庆市", children: [{ value: "441201", label: "市辖区" }, { value: "441202", label: "端州区" }, { value: "441203", label: "鼎湖区" }, { value: "441204", label: "高要区" }, { value: "441223", label: "广宁县" }, { value: "441224", label: "怀集县" }, { value: "441225", label: "封开县" }, { value: "441226", label: "德庆县" }, { value: "441284", label: "四会市" }] }, { value: "441300", label: "惠州市", children: [{ value: "441301", label: "市辖区" }, { value: "441302", label: "惠城区" }, { value: "441303", label: "惠阳区" }, { value: "441322", label: "博罗县" }, { value: "441323", label: "惠东县" }, { value: "441324", label: "龙门县" }] }, { value: "441400", label: "梅州市", children: [{ value: "441401", label: "市辖区" }, { value: "441402", label: "梅江区" }, { value: "441403", label: "梅县区" }, { value: "441422", label: "大埔县" }, { value: "441423", label: "丰顺县" }, { value: "441424", label: "五华县" }, { value: "441426", label: "平远县" }, { value: "441427", label: "蕉岭县" }, { value: "441481", label: "兴宁市" }] }, { value: "441500", label: "汕尾市", children: [{ value: "441501", label: "市辖区" }, { value: "441502", label: "城区" }, { value: "441521", label: "海丰县" }, { value: "441523", label: "陆河县" }, { value: "441581", label: "陆丰市" }] }, { value: "441600", label: "河源市", children: [{ value: "441601", label: "市辖区" }, { value: "441602", label: "源城区" }, { value: "441621", label: "紫金县" }, { value: "441622", label: "龙川县" }, { value: "441623", label: "连平县" }, { value: "441624", label: "和平县" }, { value: "441625", label: "东源县" }] }, { value: "441700", label: "阳江市", children: [{ value: "441701", label: "市辖区" }, { value: "441702", label: "江城区" }, { value: "441704", label: "阳东区" }, { value: "441721", label: "阳西县" }, { value: "441781", label: "阳春市" }] }, { value: "441800", label: "清远市", children: [{ value: "441801", label: "市辖区" }, { value: "441802", label: "清城区" }, { value: "441803", label: "清新区" }, { value: "441821", label: "佛冈县" }, { value: "441823", label: "阳山县" }, { value: "441825", label: "连山壮族瑶族自治县" }, { value: "441826", label: "连南瑶族自治县" }, { value: "441881", label: "英德市" }, { value: "441882", label: "连州市" }] }, { value: "441900", label: "东莞市" }, { value: "442000", label: "中山市" }, { value: "445100", label: "潮州市", children: [{ value: "445101", label: "市辖区" }, { value: "445102", label: "湘桥区" }, { value: "445103", label: "潮安区" }, { value: "445122", label: "饶平县" }] }, { value: "445200", label: "揭阳市", children: [{ value: "445201", label: "市辖区" }, { value: "445202", label: "榕城区" }, { value: "445203", label: "揭东区" }, { value: "445222", label: "揭西县" }, { value: "445224", label: "惠来县" }, { value: "445281", label: "普宁市" }] }, { value: "445300", label: "云浮市", children: [{ value: "445301", label: "市辖区" }, { value: "445302", label: "云城区" }, { value: "445303", label: "云安区" }, { value: "445321", label: "新兴县" }, { value: "445322", label: "郁南县" }, { value: "445381", label: "罗定市" }] }] }, { value: '450000', label: '广西壮族', children: [{ value: "450100", label: "南宁市", children: [{ value: "450101", label: "市辖区" }, { value: "450102", label: "兴宁区" }, { value: "450103", label: "青秀区" }, { value: "450105", label: "江南区" }, { value: "450107", label: "西乡塘区" }, { value: "450108", label: "良庆区" }, { value: "450109", label: "邕宁区" }, { value: "450110", label: "武鸣区" }, { value: "450123", label: "隆安县" }, { value: "450124", label: "马山县" }, { value: "450125", label: "上林县" }, { value: "450126", label: "宾阳县" }, { value: "450127", label: "横县" }] }, { value: "450200", label: "柳州市", children: [{ value: "450201", label: "市辖区" }, { value: "450202", label: "城中区" }, { value: "450203", label: "鱼峰区" }, { value: "450204", label: "柳南区" }, { value: "450205", label: "柳北区" }, { value: "450206", label: "柳江区" }, { value: "450222", label: "柳城县" }, { value: "450223", label: "鹿寨县" }, { value: "450224", label: "融安县" }, { value: "450225", label: "融水苗族自治县" }, { value: "450226", label: "三江侗族自治县" }] }, { value: "450300", label: "桂林市", children: [{ value: "450301", label: "市辖区" }, { value: "450302", label: "秀峰区" }, { value: "450303", label: "叠彩区" }, { value: "450304", label: "象山区" }, { value: "450305", label: "七星区" }, { value: "450311", label: "雁山区" }, { value: "450312", label: "临桂区" }, { value: "450321", label: "阳朔县" }, { value: "450323", label: "灵川县" }, { value: "450324", label: "全州县" }, { value: "450325", label: "兴安县" }, { value: "450326", label: "永福县" }, { value: "450327", label: "灌阳县" }, { value: "450328", label: "龙胜各族自治县" }, { value: "450329", label: "资源县" }, { value: "450330", label: "平乐县" }, { value: "450331", label: "荔浦县" }, { value: "450332", label: "恭城瑶族自治县" }] }, { value: "450400", label: "梧州市", children: [{ value: "450401", label: "市辖区" }, { value: "450403", label: "万秀区" }, { value: "450405", label: "长洲区" }, { value: "450406", label: "龙圩区" }, { value: "450421", label: "苍梧县" }, { value: "450422", label: "藤县" }, { value: "450423", label: "蒙山县" }, { value: "450481", label: "岑溪市" }] }, { value: "450500", label: "北海市", children: [{ value: "450501", label: "市辖区" }, { value: "450502", label: "海城区" }, { value: "450503", label: "银海区" }, { value: "450512", label: "铁山港区" }, { value: "450521", label: "合浦县" }] }, { value: "450600", label: "防城港市", children: [{ value: "450601", label: "市辖区" }, { value: "450602", label: "港口区" }, { value: "450603", label: "防城区" }, { value: "450621", label: "上思县" }, { value: "450681", label: "东兴市" }] }, { value: "450700", label: "钦州市", children: [{ value: "450701", label: "市辖区" }, { value: "450702", label: "钦南区" }, { value: "450703", label: "钦北区" }, { value: "450721", label: "灵山县" }, { value: "450722", label: "浦北县" }] }, { value: "450800", label: "贵港市", children: [{ value: "450801", label: "市辖区" }, { value: "450802", label: "港北区" }, { value: "450803", label: "港南区" }, { value: "450804", label: "覃塘区" }, { value: "450821", label: "平南县" }, { value: "450881", label: "桂平市" }] }, { value: "450900", label: "玉林市", children: [{ value: "450901", label: "市辖区" }, { value: "450902", label: "玉州区" }, { value: "450903", label: "福绵区" }, { value: "450921", label: "容县" }, { value: "450922", label: "陆川县" }, { value: "450923", label: "博白县" }, { value: "450924", label: "兴业县" }, { value: "450981", label: "北流市" }] }, { value: "451000", label: "百色市", children: [{ value: "451001", label: "市辖区" }, { value: "451002", label: "右江区" }, { value: "451021", label: "田阳县" }, { value: "451022", label: "田东县" }, { value: "451023", label: "平果县" }, { value: "451024", label: "德保县" }, { value: "451026", label: "那坡县" }, { value: "451027", label: "凌云县" }, { value: "451028", label: "乐业县" }, { value: "451029", label: "田林县" }, { value: "451030", label: "西林县" }, { value: "451031", label: "隆林各族自治县" }, { value: "451081", label: "靖西市" }] }, { value: "451100", label: "贺州市", children: [{ value: "451101", label: "市辖区" }, { value: "451102", label: "八步区" }, { value: "451103", label: "平桂区" }, { value: "451121", label: "昭平县" }, { value: "451122", label: "钟山县" }, { value: "451123", label: "富川瑶族自治县" }] }, { value: "451200", label: "河池市", children: [{ value: "451201", label: "市辖区" }, { value: "451202", label: "金城江区" }, { value: "451203", label: "宜州区" }, { value: "451221", label: "南丹县" }, { value: "451222", label: "天峨县" }, { value: "451223", label: "凤山县" }, { value: "451224", label: "东兰县" }, { value: "451225", label: "罗城仫佬族自治县" }, { value: "451226", label: "环江毛南族自治县" }, { value: "451227", label: "巴马瑶族自治县" }, { value: "451228", label: "都安瑶族自治县" }, { value: "451229", label: "大化瑶族自治县" }] }, { value: "451300", label: "来宾市", children: [{ value: "451301", label: "市辖区" }, { value: "451302", label: "兴宾区" }, { value: "451321", label: "忻城县" }, { value: "451322", label: "象州县" }, { value: "451323", label: "武宣县" }, { value: "451324", label: "金秀瑶族自治县" }, { value: "451381", label: "合山市" }] }, { value: "451400", label: "崇左市", children: [{ value: "451401", label: "市辖区" }, { value: "451402", label: "江州区" }, { value: "451421", label: "扶绥县" }, { value: "451422", label: "宁明县" }, { value: "451423", label: "龙州县" }, { value: "451424", label: "大新县" }, { value: "451425", label: "天等县" }, { value: "451481", label: "凭祥市" }] }] }, { value: '460000', label: '海南省', children: [{ value: "460100", label: "海口市", children: [{ value: "460101", label: "市辖区" }, { value: "460105", label: "秀英区" }, { value: "460106", label: "龙华区" }, { value: "460107", label: "琼山区" }, { value: "460108", label: "美兰区" }] }, { value: "460200", label: "三亚市", children: [{ value: "460201", label: "市辖区" }, { value: "460202", label: "海棠区" }, { value: "460203", label: "吉阳区" }, { value: "460204", label: "天涯区" }, { value: "460205", label: "崖州区" }] }, { value: "460300", label: "三沙市", children: [{ value: "460321", label: "西沙群岛" }, { value: "460322", label: "南沙群岛" }, { value: "460323", label: "中沙群岛的岛礁及其海域" }] }, { value: "460400", label: "儋州市" }, { value: "469000", label: "省直辖县级行政区划", children: [{ value: "469001", label: "五指山市" }, { value: "469002", label: "琼海市" }, { value: "469005", label: "文昌市" }, { value: "469006", label: "万宁市" }, { value: "469007", label: "东方市" }, { value: "469021", label: "定安县" }, { value: "469022", label: "屯昌县" }, { value: "469023", label: "澄迈县" }, { value: "469024", label: "临高县" }, { value: "469025", label: "白沙黎族自治县" }, { value: "469026", label: "昌江黎族自治县" }, { value: "469027", label: "乐东黎族自治县" }, { value: "469028", label: "陵水黎族自治县" }, { value: "469029", label: "保亭黎族苗族自治县" }, { value: "469030", label: "琼中黎族苗族自治县" }] }] }, { value: '500000', label: '重庆', children: [{ value: "500100", label: "市辖区", children: [{ value: "500101", label: "万州区" }, { value: "500102", label: "涪陵区" }, { value: "500103", label: "渝中区" }, { value: "500104", label: "大渡口区" }, { value: "500105", label: "江北区" }, { value: "500106", label: "沙坪坝区" }, { value: "500107", label: "九龙坡区" }, { value: "500108", label: "南岸区" }, { value: "500109", label: "北碚区" }, { value: "500110", label: "綦江区" }, { value: "500111", label: "大足区" }, { value: "500112", label: "渝北区" }, { value: "500113", label: "巴南区" }, { value: "500114", label: "黔江区" }, { value: "500115", label: "长寿区" }, { value: "500116", label: "江津区" }, { value: "500117", label: "合川区" }, { value: "500118", label: "永川区" }, { value: "500119", label: "南川区" }, { value: "500120", label: "璧山区" }, { value: "500151", label: "铜梁区" }, { value: "500152", label: "潼南区" }, { value: "500153", label: "荣昌区" }, { value: "500154", label: "开州区" }, { value: "500155", label: "梁平区" }, { value: "500156", label: "武隆区" }] }, { value: "500200", label: "县", children: [{ value: "500229", label: "城口县" }, { value: "500230", label: "丰都县" }, { value: "500231", label: "垫江县" }, { value: "500233", label: "忠县" }, { value: "500235", label: "云阳县" }, { value: "500236", label: "奉节县" }, { value: "500237", label: "巫山县" }, { value: "500238", label: "巫溪县" }, { value: "500240", label: "石柱土家族自治县" }, { value: "500241", label: "秀山土家族苗族自治县" }, { value: "500242", label: "酉阳土家族苗族自治县" }, { value: "500243", label: "彭水苗族土家族自治县" }] }] }, { value: '510000', label: '四川省', children: [{ value: "510100", label: "成都市", children: [{ value: "510101", label: "市辖区" }, { value: "510104", label: "锦江区" }, { value: "510105", label: "青羊区" }, { value: "510106", label: "金牛区" }, { value: "510107", label: "武侯区" }, { value: "510108", label: "成华区" }, { value: "510112", label: "龙泉驿区" }, { value: "510113", label: "青白江区" }, { value: "510114", label: "新都区" }, { value: "510115", label: "温江区" }, { value: "510116", label: "双流区" }, { value: "510117", label: "郫都区" }, { value: "510121", label: "金堂县" }, { value: "510129", label: "大邑县" }, { value: "510131", label: "蒲江县" }, { value: "510132", label: "新津县" }, { value: "510181", label: "都江堰市" }, { value: "510182", label: "彭州市" }, { value: "510183", label: "邛崃市" }, { value: "510184", label: "崇州市" }, { value: "510185", label: "简阳市" }] }, { value: "510300", label: "自贡市", children: [{ value: "510301", label: "市辖区" }, { value: "510302", label: "自流井区" }, { value: "510303", label: "贡井区" }, { value: "510304", label: "大安区" }, { value: "510311", label: "沿滩区" }, { value: "510321", label: "荣县" }, { value: "510322", label: "富顺县" }] }, { value: "510400", label: "攀枝花市", children: [{ value: "510401", label: "市辖区" }, { value: "510402", label: "东区" }, { value: "510403", label: "西区" }, { value: "510411", label: "仁和区" }, { value: "510421", label: "米易县" }, { value: "510422", label: "盐边县" }] }, { value: "510500", label: "泸州市", children: [{ value: "510501", label: "市辖区" }, { value: "510502", label: "江阳区" }, { value: "510503", label: "纳溪区" }, { value: "510504", label: "龙马潭区" }, { value: "510521", label: "泸县" }, { value: "510522", label: "合江县" }, { value: "510524", label: "叙永县" }, { value: "510525", label: "古蔺县" }] }, { value: "510600", label: "德阳市", children: [{ value: "510601", label: "市辖区" }, { value: "510603", label: "旌阳区" }, { value: "510604", label: "罗江区" }, { value: "510623", label: "中江县" }, { value: "510681", label: "广汉市" }, { value: "510682", label: "什邡市" }, { value: "510683", label: "绵竹市" }] }, { value: "510700", label: "绵阳市", children: [{ value: "510701", label: "市辖区" }, { value: "510703", label: "涪城区" }, { value: "510704", label: "游仙区" }, { value: "510705", label: "安州区" }, { value: "510722", label: "三台县" }, { value: "510723", label: "盐亭县" }, { value: "510725", label: "梓潼县" }, { value: "510726", label: "北川羌族自治县" }, { value: "510727", label: "平武县" }, { value: "510781", label: "江油市" }] }, { value: "510800", label: "广元市", children: [{ value: "510801", label: "市辖区" }, { value: "510802", label: "利州区" }, { value: "510811", label: "昭化区" }, { value: "510812", label: "朝天区" }, { value: "510821", label: "旺苍县" }, { value: "510822", label: "青川县" }, { value: "510823", label: "剑阁县" }, { value: "510824", label: "苍溪县" }] }, { value: "510900", label: "遂宁市", children: [{ value: "510901", label: "市辖区" }, { value: "510903", label: "船山区" }, { value: "510904", label: "安居区" }, { value: "510921", label: "蓬溪县" }, { value: "510922", label: "射洪县" }, { value: "510923", label: "大英县" }] }, { value: "511000", label: "内江市", children: [{ value: "511001", label: "市辖区" }, { value: "511002", label: "市中区" }, { value: "511011", label: "东兴区" }, { value: "511024", label: "威远县" }, { value: "511025", label: "资中县" }, { value: "511071", label: "内江经济开发区" }, { value: "511083", label: "隆昌市" }] }, { value: "511100", label: "乐山市", children: [{ value: "511101", label: "市辖区" }, { value: "511102", label: "市中区" }, { value: "511111", label: "沙湾区" }, { value: "511112", label: "五通桥区" }, { value: "511113", label: "金口河区" }, { value: "511123", label: "犍为县" }, { value: "511124", label: "井研县" }, { value: "511126", label: "夹江县" }, { value: "511129", label: "沐川县" }, { value: "511132", label: "峨边彝族自治县" }, { value: "511133", label: "马边彝族自治县" }, { value: "511181", label: "峨眉山市" }] }, { value: "511300", label: "南充市", children: [{ value: "511301", label: "市辖区" }, { value: "511302", label: "顺庆区" }, { value: "511303", label: "高坪区" }, { value: "511304", label: "嘉陵区" }, { value: "511321", label: "南部县" }, { value: "511322", label: "营山县" }, { value: "511323", label: "蓬安县" }, { value: "511324", label: "仪陇县" }, { value: "511325", label: "西充县" }, { value: "511381", label: "阆中市" }] }, { value: "511400", label: "眉山市", children: [{ value: "511401", label: "市辖区" }, { value: "511402", label: "东坡区" }, { value: "511403", label: "彭山区" }, { value: "511421", label: "仁寿县" }, { value: "511423", label: "洪雅县" }, { value: "511424", label: "丹棱县" }, { value: "511425", label: "青神县" }] }, { value: "511500", label: "宜宾市", children: [{ value: "511501", label: "市辖区" }, { value: "511502", label: "翠屏区" }, { value: "511503", label: "南溪区" }, { value: "511521", label: "宜宾县" }, { value: "511523", label: "江安县" }, { value: "511524", label: "长宁县" }, { value: "511525", label: "高县" }, { value: "511526", label: "珙县" }, { value: "511527", label: "筠连县" }, { value: "511528", label: "兴文县" }, { value: "511529", label: "屏山县" }] }, { value: "511600", label: "广安市", children: [{ value: "511601", label: "市辖区" }, { value: "511602", label: "广安区" }, { value: "511603", label: "前锋区" }, { value: "511621", label: "岳池县" }, { value: "511622", label: "武胜县" }, { value: "511623", label: "邻水县" }, { value: "511681", label: "华蓥市" }] }, { value: "511700", label: "达州市", children: [{ value: "511701", label: "市辖区" }, { value: "511702", label: "通川区" }, { value: "511703", label: "达川区" }, { value: "511722", label: "宣汉县" }, { value: "511723", label: "开江县" }, { value: "511724", label: "大竹县" }, { value: "511725", label: "渠县" }, { value: "511771", label: "达州经济开发区" }, { value: "511781", label: "万源市" }] }, { value: "511800", label: "雅安市", children: [{ value: "511801", label: "市辖区" }, { value: "511802", label: "雨城区" }, { value: "511803", label: "名山区" }, { value: "511822", label: "荥经县" }, { value: "511823", label: "汉源县" }, { value: "511824", label: "石棉县" }, { value: "511825", label: "天全县" }, { value: "511826", label: "芦山县" }, { value: "511827", label: "宝兴县" }] }, { value: "511900", label: "巴中市", children: [{ value: "511901", label: "市辖区" }, { value: "511902", label: "巴州区" }, { value: "511903", label: "恩阳区" }, { value: "511921", label: "通江县" }, { value: "511922", label: "南江县" }, { value: "511923", label: "平昌县" }, { value: "511971", label: "巴中经济开发区" }] }, { value: "512000", label: "资阳市", children: [{ value: "512001", label: "市辖区" }, { value: "512002", label: "雁江区" }, { value: "512021", label: "安岳县" }, { value: "512022", label: "乐至县" }] }, { value: "513200", label: "阿坝藏族羌族自治州", children: [{ value: "513201", label: "马尔康市" }, { value: "513221", label: "汶川县" }, { value: "513222", label: "理县" }, { value: "513223", label: "茂县" }, { value: "513224", label: "松潘县" }, { value: "513225", label: "九寨沟县" }, { value: "513226", label: "金川县" }, { value: "513227", label: "小金县" }, { value: "513228", label: "黑水县" }, { value: "513230", label: "壤塘县" }, { value: "513231", label: "阿坝县" }, { value: "513232", label: "若尔盖县" }, { value: "513233", label: "红原县" }] }, { value: "513300", label: "甘孜藏族自治州", children: [{ value: "513301", label: "康定市" }, { value: "513322", label: "泸定县" }, { value: "513323", label: "丹巴县" }, { value: "513324", label: "九龙县" }, { value: "513325", label: "雅江县" }, { value: "513326", label: "道孚县" }, { value: "513327", label: "炉霍县" }, { value: "513328", label: "甘孜县" }, { value: "513329", label: "新龙县" }, { value: "513330", label: "德格县" }, { value: "513331", label: "白玉县" }, { value: "513332", label: "石渠县" }, { value: "513333", label: "色达县" }, { value: "513334", label: "理塘县" }, { value: "513335", label: "巴塘县" }, { value: "513336", label: "乡城县" }, { value: "513337", label: "稻城县" }, { value: "513338", label: "得荣县" }] }, { value: "513400", label: "凉山彝族自治州", children: [{ value: "513401", label: "西昌市" }, { value: "513422", label: "木里藏族自治县" }, { value: "513423", label: "盐源县" }, { value: "513424", label: "德昌县" }, { value: "513425", label: "会理县" }, { value: "513426", label: "会东县" }, { value: "513427", label: "宁南县" }, { value: "513428", label: "普格县" }, { value: "513429", label: "布拖县" }, { value: "513430", label: "金阳县" }, { value: "513431", label: "昭觉县" }, { value: "513432", label: "喜德县" }, { value: "513433", label: "冕宁县" }, { value: "513434", label: "越西县" }, { value: "513435", label: "甘洛县" }, { value: "513436", label: "美姑县" }, { value: "513437", label: "雷波县" }] }] }, { value: '520000', label: '贵州省', children: [{ value: "520100", label: "贵阳市", children: [{ value: "520101", label: "市辖区" }, { value: "520102", label: "南明区" }, { value: "520103", label: "云岩区" }, { value: "520111", label: "花溪区" }, { value: "520112", label: "乌当区" }, { value: "520113", label: "白云区" }, { value: "520115", label: "观山湖区" }, { value: "520121", label: "开阳县" }, { value: "520122", label: "息烽县" }, { value: "520123", label: "修文县" }, { value: "520181", label: "清镇市" }] }, { value: "520200", label: "六盘水市", children: [{ value: "520201", label: "钟山区" }, { value: "520203", label: "六枝特区" }, { value: "520221", label: "水城县" }, { value: "520281", label: "盘州市" }] }, { value: "520300", label: "遵义市", children: [{ value: "520301", label: "市辖区" }, { value: "520302", label: "红花岗区" }, { value: "520303", label: "汇川区" }, { value: "520304", label: "播州区" }, { value: "520322", label: "桐梓县" }, { value: "520323", label: "绥阳县" }, { value: "520324", label: "正安县" }, { value: "520325", label: "道真仡佬族苗族自治县" }, { value: "520326", label: "务川仡佬族苗族自治县" }, { value: "520327", label: "凤冈县" }, { value: "520328", label: "湄潭县" }, { value: "520329", label: "余庆县" }, { value: "520330", label: "习水县" }, { value: "520381", label: "赤水市" }, { value: "520382", label: "仁怀市" }] }, { value: "520400", label: "安顺市", children: [{ value: "520401", label: "市辖区" }, { value: "520402", label: "西秀区" }, { value: "520403", label: "平坝区" }, { value: "520422", label: "普定县" }, { value: "520423", label: "镇宁布依族苗族自治县" }, { value: "520424", label: "关岭布依族苗族自治县" }, { value: "520425", label: "紫云苗族布依族自治县" }] }, { value: "520500", label: "毕节市", children: [{ value: "520501", label: "市辖区" }, { value: "520502", label: "七星关区" }, { value: "520521", label: "大方县" }, { value: "520522", label: "黔西县" }, { value: "520523", label: "金沙县" }, { value: "520524", label: "织金县" }, { value: "520525", label: "纳雍县" }, { value: "520526", label: "威宁彝族回族苗族自治县" }, { value: "520527", label: "赫章县" }] }, { value: "520600", label: "铜仁市", children: [{ value: "520601", label: "市辖区" }, { value: "520602", label: "碧江区" }, { value: "520603", label: "万山区" }, { value: "520621", label: "江口县" }, { value: "520622", label: "玉屏侗族自治县" }, { value: "520623", label: "石阡县" }, { value: "520624", label: "思南县" }, { value: "520625", label: "印江土家族苗族自治县" }, { value: "520626", label: "德江县" }, { value: "520627", label: "沿河土家族自治县" }, { value: "520628", label: "松桃苗族自治县" }] }, { value: "522300", label: "黔西南布依族苗族自治州", children: [{ value: "522301", label: "兴义市" }, { value: "522322", label: "兴仁县" }, { value: "522323", label: "普安县" }, { value: "522324", label: "晴隆县" }, { value: "522325", label: "贞丰县" }, { value: "522326", label: "望谟县" }, { value: "522327", label: "册亨县" }, { value: "522328", label: "安龙县" }] }, { value: "522600", label: "黔东南苗族侗族自治州", children: [{ value: "522601", label: "凯里市" }, { value: "522622", label: "黄平县" }, { value: "522623", label: "施秉县" }, { value: "522624", label: "三穗县" }, { value: "522625", label: "镇远县" }, { value: "522626", label: "岑巩县" }, { value: "522627", label: "天柱县" }, { value: "522628", label: "锦屏县" }, { value: "522629", label: "剑河县" }, { value: "522630", label: "台江县" }, { value: "522631", label: "黎平县" }, { value: "522632", label: "榕江县" }, { value: "522633", label: "从江县" }, { value: "522634", label: "雷山县" }, { value: "522635", label: "麻江县" }, { value: "522636", label: "丹寨县" }] }, { value: "522700", label: "黔南布依族苗族自治州", children: [{ value: "522701", label: "都匀市" }, { value: "522702", label: "福泉市" }, { value: "522722", label: "荔波县" }, { value: "522723", label: "贵定县" }, { value: "522725", label: "瓮安县" }, { value: "522726", label: "独山县" }, { value: "522727", label: "平塘县" }, { value: "522728", label: "罗甸县" }, { value: "522729", label: "长顺县" }, { value: "522730", label: "龙里县" }, { value: "522731", label: "惠水县" }, { value: "522732", label: "三都水族自治县" }] }] }, { value: '530000', label: '云南省', children: [{ value: "530100", label: "昆明市", children: [{ value: "530101", label: "市辖区" }, { value: "530102", label: "五华区" }, { value: "530103", label: "盘龙区" }, { value: "530111", label: "官渡区" }, { value: "530112", label: "西山区" }, { value: "530113", label: "东川区" }, { value: "530114", label: "呈贡区" }, { value: "530115", label: "晋宁区" }, { value: "530124", label: "富民县" }, { value: "530125", label: "宜良县" }, { value: "530126", label: "石林彝族自治县" }, { value: "530127", label: "嵩明县" }, { value: "530128", label: "禄劝彝族苗族自治县" }, { value: "530129", label: "寻甸回族彝族自治县" }, { value: "530181", label: "安宁市" }] }, { value: "530300", label: "曲靖市", children: [{ value: "530301", label: "市辖区" }, { value: "530302", label: "麒麟区" }, { value: "530303", label: "沾益区" }, { value: "530321", label: "马龙县" }, { value: "530322", label: "陆良县" }, { value: "530323", label: "师宗县" }, { value: "530324", label: "罗平县" }, { value: "530325", label: "富源县" }, { value: "530326", label: "会泽县" }, { value: "530381", label: "宣威市" }] }, { value: "530400", label: "玉溪市", children: [{ value: "530401", label: "市辖区" }, { value: "530402", label: "红塔区" }, { value: "530403", label: "江川区" }, { value: "530422", label: "澄江县" }, { value: "530423", label: "通海县" }, { value: "530424", label: "华宁县" }, { value: "530425", label: "易门县" }, { value: "530426", label: "峨山彝族自治县" }, { value: "530427", label: "新平彝族傣族自治县" }, { value: "530428", label: "元江哈尼族彝族傣族自治县" }] }, { value: "530500", label: "保山市", children: [{ value: "530501", label: "市辖区" }, { value: "530502", label: "隆阳区" }, { value: "530521", label: "施甸县" }, { value: "530523", label: "龙陵县" }, { value: "530524", label: "昌宁县" }, { value: "530581", label: "腾冲市" }] }, { value: "530600", label: "昭通市", children: [{ value: "530601", label: "市辖区" }, { value: "530602", label: "昭阳区" }, { value: "530621", label: "鲁甸县" }, { value: "530622", label: "巧家县" }, { value: "530623", label: "盐津县" }, { value: "530624", label: "大关县" }, { value: "530625", label: "永善县" }, { value: "530626", label: "绥江县" }, { value: "530627", label: "镇雄县" }, { value: "530628", label: "彝良县" }, { value: "530629", label: "威信县" }, { value: "530630", label: "水富县" }] }, { value: "530700", label: "丽江市", children: [{ value: "530701", label: "市辖区" }, { value: "530702", label: "古城区" }, { value: "530721", label: "玉龙纳西族自治县" }, { value: "530722", label: "永胜县" }, { value: "530723", label: "华坪县" }, { value: "530724", label: "宁蒗彝族自治县" }] }, { value: "530800", label: "普洱市", children: [{ value: "530801", label: "市辖区" }, { value: "530802", label: "思茅区" }, { value: "530821", label: "宁洱哈尼族彝族自治县" }, { value: "530822", label: "墨江哈尼族自治县" }, { value: "530823", label: "景东彝族自治县" }, { value: "530824", label: "景谷傣族彝族自治县" }, { value: "530825", label: "镇沅彝族哈尼族拉祜族自治县" }, { value: "530826", label: "江城哈尼族彝族自治县" }, { value: "530827", label: "孟连傣族拉祜族佤族自治县" }, { value: "530828", label: "澜沧拉祜族自治县" }, { value: "530829", label: "西盟佤族自治县" }] }, { value: "530900", label: "临沧市", children: [{ value: "530901", label: "市辖区" }, { value: "530902", label: "临翔区" }, { value: "530921", label: "凤庆县" }, { value: "530922", label: "云县" }, { value: "530923", label: "永德县" }, { value: "530924", label: "镇康县" }, { value: "530925", label: "双江拉祜族佤族布朗族傣族自治县" }, { value: "530926", label: "耿马傣族佤族自治县" }, { value: "530927", label: "沧源佤族自治县" }] }, { value: "532300", label: "楚雄彝族自治州", children: [{ value: "532301", label: "楚雄市" }, { value: "532322", label: "双柏县" }, { value: "532323", label: "牟定县" }, { value: "532324", label: "南华县" }, { value: "532325", label: "姚安县" }, { value: "532326", label: "大姚县" }, { value: "532327", label: "永仁县" }, { value: "532328", label: "元谋县" }, { value: "532329", label: "武定县" }, { value: "532331", label: "禄丰县" }] }, { value: "532500", label: "红河哈尼族彝族自治州", children: [{ value: "532501", label: "个旧市" }, { value: "532502", label: "开远市" }, { value: "532503", label: "蒙自市" }, { value: "532504", label: "弥勒市" }, { value: "532523", label: "屏边苗族自治县" }, { value: "532524", label: "建水县" }, { value: "532525", label: "石屏县" }, { value: "532527", label: "泸西县" }, { value: "532528", label: "元阳县" }, { value: "532529", label: "红河县" }, { value: "532530", label: "金平苗族瑶族傣族自治县" }, { value: "532531", label: "绿春县" }, { value: "532532", label: "河口瑶族自治县" }] }, { value: "532600", label: "文山壮族苗族自治州", children: [{ value: "532601", label: "文山市" }, { value: "532622", label: "砚山县" }, { value: "532623", label: "西畴县" }, { value: "532624", label: "麻栗坡县" }, { value: "532625", label: "马关县" }, { value: "532626", label: "丘北县" }, { value: "532627", label: "广南县" }, { value: "532628", label: "富宁县" }] }, { value: "532800", label: "西双版纳傣族自治州", children: [{ value: "532801", label: "景洪市" }, { value: "532822", label: "勐海县" }, { value: "532823", label: "勐腊县" }] }, { value: "532900", label: "大理白族自治州", children: [{ value: "532901", label: "大理市" }, { value: "532922", label: "漾濞彝族自治县" }, { value: "532923", label: "祥云县" }, { value: "532924", label: "宾川县" }, { value: "532925", label: "弥渡县" }, { value: "532926", label: "南涧彝族自治县" }, { value: "532927", label: "巍山彝族回族自治县" }, { value: "532928", label: "永平县" }, { value: "532929", label: "云龙县" }, { value: "532930", label: "洱源县" }, { value: "532931", label: "剑川县" }, { value: "532932", label: "鹤庆县" }] }, { value: "533100", label: "德宏傣族景颇族自治州", children: [{ value: "533102", label: "瑞丽市" }, { value: "533103", label: "芒市" }, { value: "533122", label: "梁河县" }, { value: "533123", label: "盈江县" }, { value: "533124", label: "陇川县" }] }, { value: "533300", label: "怒江傈僳族自治州", children: [{ value: "533301", label: "泸水市" }, { value: "533323", label: "福贡县" }, { value: "533324", label: "贡山独龙族怒族自治县" }, { value: "533325", label: "兰坪白族普米族自治县" }] }, { value: "533400", label: "迪庆藏族自治州", children: [{ value: "533401", label: "香格里拉市" }, { value: "533422", label: "德钦县" }, { value: "533423", label: "维西傈僳族自治县" }] }] }, { value: '540000', label: '西藏', children: [{ value: "540100", label: "拉萨市", children: [{ value: "540101", label: "市辖区" }, { value: "540102", label: "城关区" }, { value: "540103", label: "堆龙德庆区" }, { value: "540121", label: "林周县" }, { value: "540122", label: "当雄县" }, { value: "540123", label: "尼木县" }, { value: "540124", label: "曲水县" }, { value: "540126", label: "达孜县" }, { value: "540127", label: "墨竹工卡县" }, { value: "540171", label: "格尔木藏青工业园区" }, { value: "540172", label: "拉萨经济技术开发区" }, { value: "540173", label: "西藏文化旅游创意园区" }, { value: "540174", label: "达孜工业园区" }] }, { value: "540200", label: "日喀则市", children: [{ value: "540202", label: "桑珠孜区" }, { value: "540221", label: "南木林县" }, { value: "540222", label: "江孜县" }, { value: "540223", label: "定日县" }, { value: "540224", label: "萨迦县" }, { value: "540225", label: "拉孜县" }, { value: "540226", label: "昂仁县" }, { value: "540227", label: "谢通门县" }, { value: "540228", label: "白朗县" }, { value: "540229", label: "仁布县" }, { value: "540230", label: "康马县" }, { value: "540231", label: "定结县" }, { value: "540232", label: "仲巴县" }, { value: "540233", label: "亚东县" }, { value: "540234", label: "吉隆县" }, { value: "540235", label: "聂拉木县" }, { value: "540236", label: "萨嘎县" }, { value: "540237", label: "岗巴县" }] }, { value: "540300", label: "昌都市", children: [{ value: "540302", label: "卡若区" }, { value: "540321", label: "江达县" }, { value: "540322", label: "贡觉县" }, { value: "540323", label: "类乌齐县" }, { value: "540324", label: "丁青县" }, { value: "540325", label: "察雅县" }, { value: "540326", label: "八宿县" }, { value: "540327", label: "左贡县" }, { value: "540328", label: "芒康县" }, { value: "540329", label: "洛隆县" }, { value: "540330", label: "边坝县" }] }, { value: "540400", label: "林芝市", children: [{ value: "540402", label: "巴宜区" }, { value: "540421", label: "工布江达县" }, { value: "540422", label: "米林县" }, { value: "540423", label: "墨脱县" }, { value: "540424", label: "波密县" }, { value: "540425", label: "察隅县" }, { value: "540426", label: "朗县" }] }, { value: "540500", label: "山南市", children: [{ value: "540501", label: "市辖区" }, { value: "540502", label: "乃东区" }, { value: "540521", label: "扎囊县" }, { value: "540522", label: "贡嘎县" }, { value: "540523", label: "桑日县" }, { value: "540524", label: "琼结县" }, { value: "540525", label: "曲松县" }, { value: "540526", label: "措美县" }, { value: "540527", label: "洛扎县" }, { value: "540528", label: "加查县" }, { value: "540529", label: "隆子县" }, { value: "540530", label: "错那县" }, { value: "540531", label: "浪卡子县" }] }, { value: "542400", label: "那曲地区", children: [{ value: "542421", label: "那曲县" }, { value: "542422", label: "嘉黎县" }, { value: "542423", label: "比如县" }, { value: "542424", label: "聂荣县" }, { value: "542425", label: "安多县" }, { value: "542426", label: "申扎县" }, { value: "542427", label: "索县" }, { value: "542428", label: "班戈县" }, { value: "542429", label: "巴青县" }, { value: "542430", label: "尼玛县" }, { value: "542431", label: "双湖县" }] }, { value: "542500", label: "阿里地区", children: [{ value: "542521", label: "普兰县" }, { value: "542522", label: "札达县" }, { value: "542523", label: "噶尔县" }, { value: "542524", label: "日土县" }, { value: "542525", label: "革吉县" }, { value: "542526", label: "改则县" }, { value: "542527", label: "措勤县" }] }] }, { value: '610000', label: '陕西省', children: [{ value: "610100", label: "西安市", children: [{ value: "610101", label: "市辖区" }, { value: "610102", label: "新城区" }, { value: "610103", label: "碑林区" }, { value: "610104", label: "莲湖区" }, { value: "610111", label: "灞桥区" }, { value: "610112", label: "未央区" }, { value: "610113", label: "雁塔区" }, { value: "610114", label: "阎良区" }, { value: "610115", label: "临潼区" }, { value: "610116", label: "长安区" }, { value: "610117", label: "高陵区" }, { value: "610118", label: "鄠邑区" }, { value: "610122", label: "蓝田县" }, { value: "610124", label: "周至县" }] }, { value: "610200", label: "铜川市", children: [{ value: "610201", label: "市辖区" }, { value: "610202", label: "王益区" }, { value: "610203", label: "印台区" }, { value: "610204", label: "耀州区" }, { value: "610222", label: "宜君县" }] }, { value: "610300", label: "宝鸡市", children: [{ value: "610301", label: "市辖区" }, { value: "610302", label: "渭滨区" }, { value: "610303", label: "金台区" }, { value: "610304", label: "陈仓区" }, { value: "610322", label: "凤翔县" }, { value: "610323", label: "岐山县" }, { value: "610324", label: "扶风县" }, { value: "610326", label: "眉县" }, { value: "610327", label: "陇县" }, { value: "610328", label: "千阳县" }, { value: "610329", label: "麟游县" }, { value: "610330", label: "凤县" }, { value: "610331", label: "太白县" }] }, { value: "610400", label: "咸阳市", children: [{ value: "610401", label: "市辖区" }, { value: "610402", label: "秦都区" }, { value: "610403", label: "杨陵区" }, { value: "610404", label: "渭城区" }, { value: "610422", label: "三原县" }, { value: "610423", label: "泾阳县" }, { value: "610424", label: "乾县" }, { value: "610425", label: "礼泉县" }, { value: "610426", label: "永寿县" }, { value: "610427", label: "彬县" }, { value: "610428", label: "长武县" }, { value: "610429", label: "旬邑县" }, { value: "610430", label: "淳化县" }, { value: "610431", label: "武功县" }, { value: "610481", label: "兴平市" }] }, { value: "610500", label: "渭南市", children: [{ value: "610501", label: "市辖区" }, { value: "610502", label: "临渭区" }, { value: "610503", label: "华州区" }, { value: "610522", label: "潼关县" }, { value: "610523", label: "大荔县" }, { value: "610524", label: "合阳县" }, { value: "610525", label: "澄城县" }, { value: "610526", label: "蒲城县" }, { value: "610527", label: "白水县" }, { value: "610528", label: "富平县" }, { value: "610581", label: "韩城市" }, { value: "610582", label: "华阴市" }] }, { value: "610600", label: "延安市", children: [{ value: "610601", label: "市辖区" }, { value: "610602", label: "宝塔区" }, { value: "610603", label: "安塞区" }, { value: "610621", label: "延长县" }, { value: "610622", label: "延川县" }, { value: "610623", label: "子长县" }, { value: "610625", label: "志丹县" }, { value: "610626", label: "吴起县" }, { value: "610627", label: "甘泉县" }, { value: "610628", label: "富县" }, { value: "610629", label: "洛川县" }, { value: "610630", label: "宜川县" }, { value: "610631", label: "黄龙县" }, { value: "610632", label: "黄陵县" }] }, { value: "610700", label: "汉中市", children: [{ value: "610701", label: "市辖区" }, { value: "610702", label: "汉台区" }, { value: "610703", label: "南郑区" }, { value: "610722", label: "城固县" }, { value: "610723", label: "洋县" }, { value: "610724", label: "西乡县" }, { value: "610725", label: "勉县" }, { value: "610726", label: "宁强县" }, { value: "610727", label: "略阳县" }, { value: "610728", label: "镇巴县" }, { value: "610729", label: "留坝县" }, { value: "610730", label: "佛坪县" }] }, { value: "610800", label: "榆林市", children: [{ value: "610801", label: "市辖区" }, { value: "610802", label: "榆阳区" }, { value: "610803", label: "横山区" }, { value: "610822", label: "府谷县" }, { value: "610824", label: "靖边县" }, { value: "610825", label: "定边县" }, { value: "610826", label: "绥德县" }, { value: "610827", label: "米脂县" }, { value: "610828", label: "佳县" }, { value: "610829", label: "吴堡县" }, { value: "610830", label: "清涧县" }, { value: "610831", label: "子洲县" }, { value: "610881", label: "神木市" }] }, { value: "610900", label: "安康市", children: [{ value: "610901", label: "市辖区" }, { value: "610902", label: "汉滨区" }, { value: "610921", label: "汉阴县" }, { value: "610922", label: "石泉县" }, { value: "610923", label: "宁陕县" }, { value: "610924", label: "紫阳县" }, { value: "610925", label: "岚皋县" }, { value: "610926", label: "平利县" }, { value: "610927", label: "镇坪县" }, { value: "610928", label: "旬阳县" }, { value: "610929", label: "白河县" }] }, { value: "611000", label: "商洛市", children: [{ value: "611001", label: "市辖区" }, { value: "611002", label: "商州区" }, { value: "611021", label: "洛南县" }, { value: "611022", label: "丹凤县" }, { value: "611023", label: "商南县" }, { value: "611024", label: "山阳县" }, { value: "611025", label: "镇安县" }, { value: "611026", label: "柞水县" }] }] }, { value: '620000', label: '甘肃省', children: [{ value: "620100", label: "兰州市", children: [{ value: "620101", label: "市辖区" }, { value: "620102", label: "城关区" }, { value: "620103", label: "七里河区" }, { value: "620104", label: "西固区" }, { value: "620105", label: "安宁区" }, { value: "620111", label: "红古区" }, { value: "620121", label: "永登县" }, { value: "620122", label: "皋兰县" }, { value: "620123", label: "榆中县" }, { value: "620171", label: "兰州新区" }] }, { value: "620200", label: "嘉峪关市", children: [{ value: "620201", label: "市辖区" }] }, { value: "620300", label: "金昌市", children: [{ value: "620301", label: "市辖区" }, { value: "620302", label: "金川区" }, { value: "620321", label: "永昌县" }] }, { value: "620400", label: "白银市", children: [{ value: "620401", label: "市辖区" }, { value: "620402", label: "白银区" }, { value: "620403", label: "平川区" }, { value: "620421", label: "靖远县" }, { value: "620422", label: "会宁县" }, { value: "620423", label: "景泰县" }] }, { value: "620500", label: "天水市", children: [{ value: "620501", label: "市辖区" }, { value: "620502", label: "秦州区" }, { value: "620503", label: "麦积区" }, { value: "620521", label: "清水县" }, { value: "620522", label: "秦安县" }, { value: "620523", label: "甘谷县" }, { value: "620524", label: "武山县" }, { value: "620525", label: "张家川回族自治县" }] }, { value: "620600", label: "武威市", children: [{ value: "620601", label: "市辖区" }, { value: "620602", label: "凉州区" }, { value: "620621", label: "民勤县" }, { value: "620622", label: "古浪县" }, { value: "620623", label: "天祝藏族自治县" }] }, { value: "620700", label: "张掖市", children: [{ value: "620701", label: "市辖区" }, { value: "620702", label: "甘州区" }, { value: "620721", label: "肃南裕固族自治县" }, { value: "620722", label: "民乐县" }, { value: "620723", label: "临泽县" }, { value: "620724", label: "高台县" }, { value: "620725", label: "山丹县" }] }, { value: "620800", label: "平凉市", children: [{ value: "620801", label: "市辖区" }, { value: "620802", label: "崆峒区" }, { value: "620821", label: "泾川县" }, { value: "620822", label: "灵台县" }, { value: "620823", label: "崇信县" }, { value: "620824", label: "华亭县" }, { value: "620825", label: "庄浪县" }, { value: "620826", label: "静宁县" }, { value: "620871", label: "平凉工业园区" }] }, { value: "620900", label: "酒泉市", children: [{ value: "620901", label: "市辖区" }, { value: "620902", label: "肃州区" }, { value: "620921", label: "金塔县" }, { value: "620922", label: "瓜州县" }, { value: "620923", label: "肃北蒙古族自治县" }, { value: "620924", label: "阿克塞哈萨克族自治县" }, { value: "620981", label: "玉门市" }, { value: "620982", label: "敦煌市" }] }, { value: "621000", label: "庆阳市", children: [{ value: "621001", label: "市辖区" }, { value: "621002", label: "西峰区" }, { value: "621021", label: "庆城县" }, { value: "621022", label: "环县" }, { value: "621023", label: "华池县" }, { value: "621024", label: "合水县" }, { value: "621025", label: "正宁县" }, { value: "621026", label: "宁县" }, { value: "621027", label: "镇原县" }] }, { value: "621100", label: "定西市", children: [{ value: "621101", label: "市辖区" }, { value: "621102", label: "安定区" }, { value: "621121", label: "通渭县" }, { value: "621122", label: "陇西县" }, { value: "621123", label: "渭源县" }, { value: "621124", label: "临洮县" }, { value: "621125", label: "漳县" }, { value: "621126", label: "岷县" }] }, { value: "621200", label: "陇南市", children: [{ value: "621201", label: "市辖区" }, { value: "621202", label: "武都区" }, { value: "621221", label: "成县" }, { value: "621222", label: "文县" }, { value: "621223", label: "宕昌县" }, { value: "621224", label: "康县" }, { value: "621225", label: "西和县" }, { value: "621226", label: "礼县" }, { value: "621227", label: "徽县" }, { value: "621228", label: "两当县" }] }, { value: "622900", label: "临夏回族自治州", children: [{ value: "622901", label: "临夏市" }, { value: "622921", label: "临夏县" }, { value: "622922", label: "康乐县" }, { value: "622923", label: "永靖县" }, { value: "622924", label: "广河县" }, { value: "622925", label: "和政县" }, { value: "622926", label: "东乡族自治县" }, { value: "622927", label: "积石山保安族东乡族撒拉族自治县" }] }, { value: "623000", label: "甘南藏族自治州", children: [{ value: "623001", label: "合作市" }, { value: "623021", label: "临潭县" }, { value: "623022", label: "卓尼县" }, { value: "623023", label: "舟曲县" }, { value: "623024", label: "迭部县" }, { value: "623025", label: "玛曲县" }, { value: "623026", label: "碌曲县" }, { value: "623027", label: "夏河县" }] }] }, { value: '630000', label: '青海省', children: [{ value: "630100", label: "西宁市", children: [{ value: "630101", label: "市辖区" }, { value: "630102", label: "城东区" }, { value: "630103", label: "城中区" }, { value: "630104", label: "城西区" }, { value: "630105", label: "城北区" }, { value: "630121", label: "大通回族土族自治县" }, { value: "630122", label: "湟中县" }, { value: "630123", label: "湟源县" }] }, { value: "630200", label: "海东市", children: [{ value: "630202", label: "乐都区" }, { value: "630203", label: "平安区" }, { value: "630222", label: "民和回族土族自治县" }, { value: "630223", label: "互助土族自治县" }, { value: "630224", label: "化隆回族自治县" }, { value: "630225", label: "循化撒拉族自治县" }] }, { value: "632200", label: "海北藏族自治州", children: [{ value: "632221", label: "门源回族自治县" }, { value: "632222", label: "祁连县" }, { value: "632223", label: "海晏县" }, { value: "632224", label: "刚察县" }] }, { value: "632300", label: "黄南藏族自治州", children: [{ value: "632321", label: "同仁县" }, { value: "632322", label: "尖扎县" }, { value: "632323", label: "泽库县" }, { value: "632324", label: "河南蒙古族自治县" }] }, { value: "632500", label: "海南藏族自治州", children: [{ value: "632521", label: "共和县" }, { value: "632522", label: "同德县" }, { value: "632523", label: "贵德县" }, { value: "632524", label: "兴海县" }, { value: "632525", label: "贵南县" }] }, { value: "632600", label: "果洛藏族自治州", children: [{ value: "632621", label: "玛沁县" }, { value: "632622", label: "班玛县" }, { value: "632623", label: "甘德县" }, { value: "632624", label: "达日县" }, { value: "632625", label: "久治县" }, { value: "632626", label: "玛多县" }] }, { value: "632700", label: "玉树藏族自治州", children: [{ value: "632701", label: "玉树市" }, { value: "632722", label: "杂多县" }, { value: "632723", label: "称多县" }, { value: "632724", label: "治多县" }, { value: "632725", label: "囊谦县" }, { value: "632726", label: "曲麻莱县" }] }, { value: "632800", label: "海西蒙古族藏族自治州", children: [{ value: "632801", label: "格尔木市" }, { value: "632802", label: "德令哈市" }, { value: "632821", label: "乌兰县" }, { value: "632822", label: "都兰县" }, { value: "632823", label: "天峻县" }, { value: "632857", label: "大柴旦行政委员会" }, { value: "632858", label: "冷湖行政委员会" }, { value: "632859", label: "茫崖行政委员会" }] }] }, { value: '640000', label: '宁夏', children: [{ value: "640100", label: "银川市", children: [{ value: "640101", label: "市辖区" }, { value: "640104", label: "兴庆区" }, { value: "640105", label: "西夏区" }, { value: "640106", label: "金凤区" }, { value: "640121", label: "永宁县" }, { value: "640122", label: "贺兰县" }, { value: "640181", label: "灵武市" }] }, { value: "640200", label: "石嘴山市", children: [{ value: "640201", label: "市辖区" }, { value: "640202", label: "大武口区" }, { value: "640205", label: "惠农区" }, { value: "640221", label: "平罗县" }] }, { value: "640300", label: "吴忠市", children: [{ value: "640301", label: "市辖区" }, { value: "640302", label: "利通区" }, { value: "640303", label: "红寺堡区" }, { value: "640323", label: "盐池县" }, { value: "640324", label: "同心县" }, { value: "640381", label: "青铜峡市" }] }, { value: "640400", label: "固原市", children: [{ value: "640401", label: "市辖区" }, { value: "640402", label: "原州区" }, { value: "640422", label: "西吉县" }, { value: "640423", label: "隆德县" }, { value: "640424", label: "泾源县" }, { value: "640425", label: "彭阳县" }] }, { value: "640500", label: "中卫市", children: [{ value: "640501", label: "市辖区" }, { value: "640502", label: "沙坡头区" }, { value: "640521", label: "中宁县" }, { value: "640522", label: "海原县" }] }] }, { value: '650000', label: '新疆', children: [{ value: "650100", label: "乌鲁木齐市", children: [{ value: "650101", label: "市辖区" }, { value: "650102", label: "天山区" }, { value: "650103", label: "沙依巴克区" }, { value: "650104", label: "新市区" }, { value: "650105", label: "水磨沟区" }, { value: "650106", label: "头屯河区" }, { value: "650107", label: "达坂城区" }, { value: "650109", label: "米东区" }, { value: "650121", label: "乌鲁木齐县" }, { value: "650171", label: "乌鲁木齐经济技术开发区" }, { value: "650172", label: "乌鲁木齐高新技术产业开发区" }] }, { value: "650200", label: "克拉玛依市", children: [{ value: "650201", label: "市辖区" }, { value: "650202", label: "独山子区" }, { value: "650203", label: "克拉玛依区" }, { value: "650204", label: "白碱滩区" }, { value: "650205", label: "乌尔禾区" }] }, { value: "650400", label: "吐鲁番市", children: [{ value: "650402", label: "高昌区" }, { value: "650421", label: "鄯善县" }, { value: "650422", label: "托克逊县" }] }, { value: "650500", label: "哈密市", children: [{ value: "650502", label: "伊州区" }, { value: "650521", label: "巴里坤哈萨克自治县" }, { value: "650522", label: "伊吾县" }] }, { value: "652300", label: "昌吉回族自治州", children: [{ value: "652301", label: "昌吉市" }, { value: "652302", label: "阜康市" }, { value: "652323", label: "呼图壁县" }, { value: "652324", label: "玛纳斯县" }, { value: "652325", label: "奇台县" }, { value: "652327", label: "吉木萨尔县" }, { value: "652328", label: "木垒哈萨克自治县" }] }, { value: "652700", label: "博尔塔拉蒙古自治州", children: [{ value: "652701", label: "博乐市" }, { value: "652702", label: "阿拉山口市" }, { value: "652722", label: "精河县" }, { value: "652723", label: "温泉县" }] }, { value: "652800", label: "巴音郭楞蒙古自治州", children: [{ value: "652801", label: "库尔勒市" }, { value: "652822", label: "轮台县" }, { value: "652823", label: "尉犁县" }, { value: "652824", label: "若羌县" }, { value: "652825", label: "且末县" }, { value: "652826", label: "焉耆回族自治县" }, { value: "652827", label: "和静县" }, { value: "652828", label: "和硕县" }, { value: "652829", label: "博湖县" }, { value: "652871", label: "库尔勒经济技术开发区" }] }, { value: "652900", label: "阿克苏地区", children: [{ value: "652901", label: "阿克苏市" }, { value: "652922", label: "温宿县" }, { value: "652923", label: "库车县" }, { value: "652924", label: "沙雅县" }, { value: "652925", label: "新和县" }, { value: "652926", label: "拜城县" }, { value: "652927", label: "乌什县" }, { value: "652928", label: "阿瓦提县" }, { value: "652929", label: "柯坪县" }] }, { value: "653000", label: "克孜勒苏柯尔克孜自治州", children: [{ value: "653001", label: "阿图什市" }, { value: "653022", label: "阿克陶县" }, { value: "653023", label: "阿合奇县" }, { value: "653024", label: "乌恰县" }] }, { value: "653100", label: "喀什地区", children: [{ value: "653101", label: "喀什市" }, { value: "653121", label: "疏附县" }, { value: "653122", label: "疏勒县" }, { value: "653123", label: "英吉沙县" }, { value: "653124", label: "泽普县" }, { value: "653125", label: "莎车县" }, { value: "653126", label: "叶城县" }, { value: "653127", label: "麦盖提县" }, { value: "653128", label: "岳普湖县" }, { value: "653129", label: "伽师县" }, { value: "653130", label: "巴楚县" }, { value: "653131", label: "塔什库尔干塔吉克自治县" }] }, { value: "653200", label: "和田地区", children: [{ value: "653201", label: "和田市" }, { value: "653221", label: "和田县" }, { value: "653222", label: "墨玉县" }, { value: "653223", label: "皮山县" }, { value: "653224", label: "洛浦县" }, { value: "653225", label: "策勒县" }, { value: "653226", label: "于田县" }, { value: "653227", label: "民丰县" }] }, { value: "654000", label: "伊犁哈萨克自治州", children: [{ value: "654002", label: "伊宁市" }, { value: "654003", label: "奎屯市" }, { value: "654004", label: "霍尔果斯市" }, { value: "654021", label: "伊宁县" }, { value: "654022", label: "察布查尔锡伯自治县" }, { value: "654023", label: "霍城县" }, { value: "654024", label: "巩留县" }, { value: "654025", label: "新源县" }, { value: "654026", label: "昭苏县" }, { value: "654027", label: "特克斯县" }, { value: "654028", label: "尼勒克县" }] }, { value: "654200", label: "塔城地区", children: [{ value: "654201", label: "塔城市" }, { value: "654202", label: "乌苏市" }, { value: "654221", label: "额敏县" }, { value: "654223", label: "沙湾县" }, { value: "654224", label: "托里县" }, { value: "654225", label: "裕民县" }, { value: "654226", label: "和布克赛尔蒙古自治县" }] }, { value: "654300", label: "阿勒泰地区", children: [{ value: "654301", label: "阿勒泰市" }, { value: "654321", label: "布尔津县" }, { value: "654322", label: "富蕴县" }, { value: "654323", label: "福海县" }, { value: "654324", label: "哈巴河县" }, { value: "654325", label: "青河县" }, { value: "654326", label: "吉木乃县" }] }, { value: "659000", label: "自治区直辖县级行政区划", children: [{ value: "659001", label: "石河子市" }, { value: "659002", label: "阿拉尔市" }, { value: "659003", label: "图木舒克市" }, { value: "659004", label: "五家渠市" }, { value: "659006", label: "铁门关市" }] }] }, { value: '660000', label: '台湾省', children: [{ value: "660100", label: "台北市", children: [{ value: "660101", label: "中正区" }, { value: "660102", label: "大同区" }, { value: "660103", label: "中山区" }, { value: "660104", label: "松山区" }, { value: "660105", label: "大安区" }, { value: "660106", label: "万华区" }, { value: "660107", label: "信义区" }, { value: "660108", label: "士林区" }, { value: "660109", label: "北投区" }, { value: "660110", label: "内湖区" }, { value: "660111", label: "南港区" }, { value: "660112", label: "文山区" }] }, { value: "660200", label: "高雄市", children: [{ value: "660201", label: "新兴区" }, { value: "660202", label: "前金区" }, { value: "660203", label: "芩雅区" }, { value: "660204", label: "盐埕区" }, { value: "660205", label: "鼓山区" }, { value: "660206", label: "旗津区" }, { value: "660207", label: "前镇区" }, { value: "660208", label: "三民区" }, { value: "660209", label: "左营区" }, { value: "660210", label: "楠梓区" }, { value: "660211", label: "小港区" }] }, { value: "660300", label: "台南市", children: [{ value: "660301", label: "中西区" }, { value: "660302", label: "东区" }, { value: "660303", label: "南区" }, { value: "660304", label: "北区" }, { value: "660305", label: "安平区" }, { value: "660306", label: "安南区" }] }, { value: "660400", label: "台中市", children: [{ value: "660401", label: "中区" }, { value: "660402", label: "东区" }, { value: "660403", label: "南区" }, { value: "660404", label: "西区" }, { value: "660405", label: "北区" }, { value: "660406", label: "北屯区" }, { value: "660407", label: "西屯区" }, { value: "660408", label: "南屯区" }] }, { value: "660500", label: "金门县", children: [{ value: "660501", label: "金门县" }] }, { value: "660600", label: "南投县", children: [{ value: "660601", label: "南投县" }] }, { value: "660700", label: "基隆市", children: [{ value: "660701", label: "仁爱区" }, { value: "660702", label: "信义区" }, { value: "660703", label: "中正区" }, { value: "660704", label: "中山区" }, { value: "660705", label: "安乐区" }, { value: "660706", label: "暖暖区" }, { value: "660707", label: "七堵区" }] }, { value: "660800", label: "新竹市", children: [{ value: "660801", label: "东区" }, { value: "660802", label: "北区" }, { value: "660803", label: "香山区" }] }, { value: "660900", label: "嘉义市", children: [{ value: "660901", label: "东区" }, { value: "660902", label: "西区" }] }, { value: "661000", label: "新北市", children: [{ value: "661001", label: "新北市" }] }, { value: "661100", label: "宜兰县", children: [{ value: "661100", label: "宜兰县" }] }, { value: "661200", label: "新竹县", children: [{ value: "661201", label: "新竹县" }] }, { value: "661300", label: "桃园县", children: [{ value: "661301", label: "桃园县" }] }, { value: "661400", label: "苗栗县", children: [{ value: "661401", label: "苗栗县" }] }, { value: "661500", label: "彰化县", children: [{ value: "661501", label: "彰化县" }] }, { value: "661600", label: "嘉义县", children: [{ value: "661601", label: "嘉义县" }] }, { value: "661700", label: "云林县", children: [{ value: "661701", label: "云林县" }] }, { value: "661800", label: "屏东县", children: [{ value: "661801", label: "屏东县" }] }, { value: "661900", label: "台东县", children: [{ value: "661901", label: "台东县" }] }, { value: "662000", label: "花莲县", children: [{ value: "662001", label: "花莲县" }] }, { value: "662100", label: "澎湖县", children: [{ value: "662101", label: "澎湖县" }] }] }, { value: '670000', label: '香港', children: [{ value: "670100", label: "香港岛", children: [{ value: "670101", label: "中西区" }, { value: "670102", label: "湾仔区" }, { value: "670103", label: "东区" }, { value: "670104", label: "南区" }] }, { value: "670200", label: "九龙半岛", children: [{ value: "670201", label: "九龙城区" }, { value: "670202", label: "油尖旺区" }, { value: "670203", label: "深水埗区" }, { value: "670204", label: "黄大仙区" }, { value: "670205", label: "观塘区" }] }, { value: "670300", label: "新界", children: [{ value: "670301", label: "北区" }, { value: "670302", label: "大埔区" }, { value: "670303", label: "沙田区" }, { value: "670304", label: "西贡区" }, { value: "670305", label: "元朗区" }, { value: "670306", label: "屯门区" }, { value: "670307", label: "荃湾区" }, { value: "670308", label: "葵青区" }, { value: "670309", label: "离岛区" }] }] }, { value: '680000', label: '澳门', children: [{ value: "680100", label: "澳门半岛", children: [{ value: "680101", label: "花地玛堂区" }, { value: "680102", label: "圣安多尼堂区" }, { value: "680103", label: "大堂区" }, { value: "680104", label: "望德堂区" }, { value: "680105", label: "风顺堂区" }] }, { value: "680200", label: "离岛", children: [{ value: "680201", label: "嘉模堂区" }, { value: "680202", label: "圣方济各堂区" }] }] }];var _default = cityData;exports.default = _default;
  8613. /***/ })
  8614. }]);
  8615. //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map