12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173 |
- if (typeof Promise !== "undefined" && !Promise.prototype.finally) {
- Promise.prototype.finally = function(callback) {
- const promise = this.constructor;
- return this.then(
- (value) => promise.resolve(callback()).then(() => value),
- (reason) => promise.resolve(callback()).then(() => {
- throw reason;
- })
- );
- };
- }
- ;
- if (typeof uni !== "undefined" && uni && uni.requireGlobal) {
- const global2 = uni.requireGlobal();
- ArrayBuffer = global2.ArrayBuffer;
- Int8Array = global2.Int8Array;
- Uint8Array = global2.Uint8Array;
- Uint8ClampedArray = global2.Uint8ClampedArray;
- Int16Array = global2.Int16Array;
- Uint16Array = global2.Uint16Array;
- Int32Array = global2.Int32Array;
- Uint32Array = global2.Uint32Array;
- Float32Array = global2.Float32Array;
- Float64Array = global2.Float64Array;
- BigInt64Array = global2.BigInt64Array;
- BigUint64Array = global2.BigUint64Array;
- }
- ;
- if (uni.restoreGlobal) {
- uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
- }
- (function(vue) {
- "use strict";
- const _export_sfc = (sfc, props) => {
- const target = sfc.__vccOpts || sfc;
- for (const [key, val] of props) {
- target[key] = val;
- }
- return target;
- };
- const _sfc_main$F = {
- name: "UniGridItem",
- inject: ["grid"],
- props: {
- index: {
- type: Number,
- default: 0
- }
- },
- data() {
- return {
- column: 0,
- showBorder: true,
- square: true,
- highlight: true,
- left: 0,
- top: 0,
- openNum: 2,
- width: 0,
- borderColor: "#e5e5e5"
- };
- },
- created() {
- this.column = this.grid.column;
- this.showBorder = this.grid.showBorder;
- this.square = this.grid.square;
- this.highlight = this.grid.highlight;
- this.top = this.hor === 0 ? this.grid.hor : this.hor;
- this.left = this.ver === 0 ? this.grid.ver : this.ver;
- this.borderColor = this.grid.borderColor;
- this.grid.children.push(this);
- this.width = this.grid.width;
- },
- beforeDestroy() {
- this.grid.children.forEach((item, index) => {
- if (item === this) {
- this.grid.children.splice(index, 1);
- }
- });
- },
- methods: {
- _onClick() {
- this.grid.change({
- detail: {
- index: this.index
- }
- });
- }
- }
- };
- function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
- return $data.width ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle("width:" + $data.width + ";" + ($data.square ? "height:" + $data.width : "")),
- class: "uni-grid-item"
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass([{ "uni-grid-item--border": $data.showBorder, "uni-grid-item--border-top": $data.showBorder && $props.index < $data.column, "uni-highlight": $data.highlight }, "uni-grid-item__box"]),
- style: vue.normalizeStyle({ "border-right-color": $data.borderColor, "border-bottom-color": $data.borderColor, "border-top-color": $data.borderColor }),
- onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args))
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_0$7 = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$E], ["__scopeId", "data-v-7a807eb7"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue"]]);
- const ON_SHOW = "onShow";
- const ON_HIDE = "onHide";
- const ON_LOAD = "onLoad";
- const ON_UNLOAD = "onUnload";
- const ON_BACK_PRESS = "onBackPress";
- const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap";
- function requireNativePlugin(name) {
- return weex.requireModule(name);
- }
- function formatAppLog(type, filename, ...args) {
- if (uni.__log__) {
- uni.__log__(type, filename, ...args);
- } else {
- console[type].apply(console, [...args, filename]);
- }
- }
- function resolveEasycom(component, easycom) {
- return typeof component === "string" ? easycom : component;
- }
- const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => {
- !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target);
- };
- const onShow = /* @__PURE__ */ createHook(ON_SHOW);
- const onHide = /* @__PURE__ */ createHook(ON_HIDE);
- const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
- const onUnload = /* @__PURE__ */ createHook(ON_UNLOAD);
- const onBackPress = /* @__PURE__ */ createHook(ON_BACK_PRESS);
- const onNavigationBarButtonTap = /* @__PURE__ */ createHook(ON_NAVIGATION_BAR_BUTTON_TAP);
- const _sfc_main$E = {
- name: "UniGrid",
- emits: ["change"],
- props: {
- // 每列显示个数
- column: {
- type: Number,
- default: 3
- },
- // 是否显示边框
- showBorder: {
- type: Boolean,
- default: true
- },
- // 边框颜色
- borderColor: {
- type: String,
- default: "#D2D2D2"
- },
- // 是否正方形显示,默认为 true
- square: {
- type: Boolean,
- default: true
- },
- highlight: {
- type: Boolean,
- default: true
- }
- },
- provide() {
- return {
- grid: this
- };
- },
- data() {
- const elId = `Uni_${Math.ceil(Math.random() * 1e6).toString(36)}`;
- return {
- elId,
- width: 0
- };
- },
- created() {
- this.children = [];
- },
- mounted() {
- this.$nextTick(() => {
- this.init();
- });
- },
- methods: {
- init() {
- setTimeout(() => {
- this._getSize((width) => {
- this.children.forEach((item, index) => {
- item.width = width;
- });
- });
- }, 50);
- },
- change(e2) {
- this.$emit("change", e2);
- },
- _getSize(fn) {
- uni.createSelectorQuery().in(this).select(`#${this.elId}`).boundingClientRect().exec((ret) => {
- this.width = parseInt((ret[0].width - 1) / this.column) + "px";
- fn(this.width);
- });
- }
- }
- };
- function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-grid-wrap" }, [
- vue.createElementVNode("view", {
- id: $data.elId,
- ref: "uni-grid",
- class: vue.normalizeClass(["uni-grid", { "uni-grid--border": $props.showBorder }]),
- style: vue.normalizeStyle({ "border-left-color": $props.borderColor })
- }, [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ], 14, ["id"])
- ]);
- }
- const __easycom_1$2 = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$D], ["__scopeId", "data-v-07acefee"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-grid/components/uni-grid/uni-grid.vue"]]);
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref(null);
- const user = vue.ref(null);
- const list = vue.ref([
- // {
- // url: '/pages/scan/index',
- // src: '/static/scan_fill.png',
- // text: '扫描入库'
- // },
- {
- url: "/pages/inbound/index",
- src: "/static/inbound.png",
- text: "入库"
- },
- {
- url: "/pages/weigh/index",
- src: "/static/weigh.png",
- text: "称重"
- },
- {
- url: "/pages/outbound/index",
- src: "/static/outbound.png",
- text: "出库"
- },
- {
- url: "/pages/warehouseScan/index",
- src: "/static/houscan.png",
- text: "仓库扫描"
- },
- {
- url: "/pages/printer/index",
- src: "/static/print.png",
- text: "打印"
- },
- {
- url: "/pages/scanLotno/index",
- src: "/static/link.png",
- text: "托盘/批次"
- },
- {
- url: "/pages/waybillNo/index",
- src: "/static/link.png",
- text: "库位绑定"
- }
- ]);
- onShow(() => {
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- formatAppLog("log", "at pages/home/index.vue:72", "show---", { token: token.value, user: user.value });
- });
- const itemClick = (url) => {
- formatAppLog("log", "at pages/home/index.vue:75", url);
- if (token.value) {
- uni.navigateTo({
- url
- });
- } else {
- uni.navigateTo({
- url: "/pages/login/index"
- });
- }
- };
- const change = () => {
- };
- const logout = () => {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- };
- const __returned__ = { token, user, list, itemClick, change, logout };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_grid_item = resolveEasycom(vue.resolveDynamicComponent("uni-grid-item"), __easycom_0$7);
- const _component_uni_grid = resolveEasycom(vue.resolveDynamicComponent("uni-grid"), __easycom_1$2);
- return vue.openBlock(), vue.createElementBlock("view", { class: "warp" }, [
- vue.createVNode(_component_uni_grid, {
- class: "grid",
- column: 3,
- "show-border": false,
- square: false,
- onChange: $setup.change
- }, {
- default: vue.withCtx(() => [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.list, (item, index) => {
- return vue.openBlock(), vue.createBlock(_component_uni_grid_item, {
- index,
- key: index
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", {
- class: "grid-item-box",
- onClick: ($event) => $setup.itemClick(item.url)
- }, [
- vue.createElementVNode("image", {
- class: "image",
- src: item.src,
- mode: "aspectFill"
- }, null, 8, ["src"]),
- vue.createElementVNode(
- "text",
- { class: "text" },
- vue.toDisplayString(item.text),
- 1
- /* TEXT */
- )
- ], 8, ["onClick"])
- ]),
- _: 2
- /* DYNAMIC */
- }, 1032, ["index"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- _: 1
- /* STABLE */
- })
- ]);
- }
- const PagesHomeIndex = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$C], ["__file", "E:/HBuilderProjects/yta/pages/home/index.vue"]]);
- const fontData = [
- {
- "font_class": "arrow-down",
- "unicode": ""
- },
- {
- "font_class": "arrow-left",
- "unicode": ""
- },
- {
- "font_class": "arrow-right",
- "unicode": ""
- },
- {
- "font_class": "arrow-up",
- "unicode": ""
- },
- {
- "font_class": "auth",
- "unicode": ""
- },
- {
- "font_class": "auth-filled",
- "unicode": ""
- },
- {
- "font_class": "back",
- "unicode": ""
- },
- {
- "font_class": "bars",
- "unicode": ""
- },
- {
- "font_class": "calendar",
- "unicode": ""
- },
- {
- "font_class": "calendar-filled",
- "unicode": ""
- },
- {
- "font_class": "camera",
- "unicode": ""
- },
- {
- "font_class": "camera-filled",
- "unicode": ""
- },
- {
- "font_class": "cart",
- "unicode": ""
- },
- {
- "font_class": "cart-filled",
- "unicode": ""
- },
- {
- "font_class": "chat",
- "unicode": ""
- },
- {
- "font_class": "chat-filled",
- "unicode": ""
- },
- {
- "font_class": "chatboxes",
- "unicode": ""
- },
- {
- "font_class": "chatboxes-filled",
- "unicode": ""
- },
- {
- "font_class": "chatbubble",
- "unicode": ""
- },
- {
- "font_class": "chatbubble-filled",
- "unicode": ""
- },
- {
- "font_class": "checkbox",
- "unicode": ""
- },
- {
- "font_class": "checkbox-filled",
- "unicode": ""
- },
- {
- "font_class": "checkmarkempty",
- "unicode": ""
- },
- {
- "font_class": "circle",
- "unicode": ""
- },
- {
- "font_class": "circle-filled",
- "unicode": ""
- },
- {
- "font_class": "clear",
- "unicode": ""
- },
- {
- "font_class": "close",
- "unicode": ""
- },
- {
- "font_class": "closeempty",
- "unicode": ""
- },
- {
- "font_class": "cloud-download",
- "unicode": ""
- },
- {
- "font_class": "cloud-download-filled",
- "unicode": ""
- },
- {
- "font_class": "cloud-upload",
- "unicode": ""
- },
- {
- "font_class": "cloud-upload-filled",
- "unicode": ""
- },
- {
- "font_class": "color",
- "unicode": ""
- },
- {
- "font_class": "color-filled",
- "unicode": ""
- },
- {
- "font_class": "compose",
- "unicode": ""
- },
- {
- "font_class": "contact",
- "unicode": ""
- },
- {
- "font_class": "contact-filled",
- "unicode": ""
- },
- {
- "font_class": "down",
- "unicode": ""
- },
- {
- "font_class": "bottom",
- "unicode": ""
- },
- {
- "font_class": "download",
- "unicode": ""
- },
- {
- "font_class": "download-filled",
- "unicode": ""
- },
- {
- "font_class": "email",
- "unicode": ""
- },
- {
- "font_class": "email-filled",
- "unicode": ""
- },
- {
- "font_class": "eye",
- "unicode": ""
- },
- {
- "font_class": "eye-filled",
- "unicode": ""
- },
- {
- "font_class": "eye-slash",
- "unicode": ""
- },
- {
- "font_class": "eye-slash-filled",
- "unicode": ""
- },
- {
- "font_class": "fire",
- "unicode": ""
- },
- {
- "font_class": "fire-filled",
- "unicode": ""
- },
- {
- "font_class": "flag",
- "unicode": ""
- },
- {
- "font_class": "flag-filled",
- "unicode": ""
- },
- {
- "font_class": "folder-add",
- "unicode": ""
- },
- {
- "font_class": "folder-add-filled",
- "unicode": ""
- },
- {
- "font_class": "font",
- "unicode": ""
- },
- {
- "font_class": "forward",
- "unicode": ""
- },
- {
- "font_class": "gear",
- "unicode": ""
- },
- {
- "font_class": "gear-filled",
- "unicode": ""
- },
- {
- "font_class": "gift",
- "unicode": ""
- },
- {
- "font_class": "gift-filled",
- "unicode": ""
- },
- {
- "font_class": "hand-down",
- "unicode": ""
- },
- {
- "font_class": "hand-down-filled",
- "unicode": ""
- },
- {
- "font_class": "hand-up",
- "unicode": ""
- },
- {
- "font_class": "hand-up-filled",
- "unicode": ""
- },
- {
- "font_class": "headphones",
- "unicode": ""
- },
- {
- "font_class": "heart",
- "unicode": ""
- },
- {
- "font_class": "heart-filled",
- "unicode": ""
- },
- {
- "font_class": "help",
- "unicode": ""
- },
- {
- "font_class": "help-filled",
- "unicode": ""
- },
- {
- "font_class": "home",
- "unicode": ""
- },
- {
- "font_class": "home-filled",
- "unicode": ""
- },
- {
- "font_class": "image",
- "unicode": ""
- },
- {
- "font_class": "image-filled",
- "unicode": ""
- },
- {
- "font_class": "images",
- "unicode": ""
- },
- {
- "font_class": "images-filled",
- "unicode": ""
- },
- {
- "font_class": "info",
- "unicode": ""
- },
- {
- "font_class": "info-filled",
- "unicode": ""
- },
- {
- "font_class": "left",
- "unicode": ""
- },
- {
- "font_class": "link",
- "unicode": ""
- },
- {
- "font_class": "list",
- "unicode": ""
- },
- {
- "font_class": "location",
- "unicode": ""
- },
- {
- "font_class": "location-filled",
- "unicode": ""
- },
- {
- "font_class": "locked",
- "unicode": ""
- },
- {
- "font_class": "locked-filled",
- "unicode": ""
- },
- {
- "font_class": "loop",
- "unicode": ""
- },
- {
- "font_class": "mail-open",
- "unicode": ""
- },
- {
- "font_class": "mail-open-filled",
- "unicode": ""
- },
- {
- "font_class": "map",
- "unicode": ""
- },
- {
- "font_class": "map-filled",
- "unicode": ""
- },
- {
- "font_class": "map-pin",
- "unicode": ""
- },
- {
- "font_class": "map-pin-ellipse",
- "unicode": ""
- },
- {
- "font_class": "medal",
- "unicode": ""
- },
- {
- "font_class": "medal-filled",
- "unicode": ""
- },
- {
- "font_class": "mic",
- "unicode": ""
- },
- {
- "font_class": "mic-filled",
- "unicode": ""
- },
- {
- "font_class": "micoff",
- "unicode": ""
- },
- {
- "font_class": "micoff-filled",
- "unicode": ""
- },
- {
- "font_class": "minus",
- "unicode": ""
- },
- {
- "font_class": "minus-filled",
- "unicode": ""
- },
- {
- "font_class": "more",
- "unicode": ""
- },
- {
- "font_class": "more-filled",
- "unicode": ""
- },
- {
- "font_class": "navigate",
- "unicode": ""
- },
- {
- "font_class": "navigate-filled",
- "unicode": ""
- },
- {
- "font_class": "notification",
- "unicode": ""
- },
- {
- "font_class": "notification-filled",
- "unicode": ""
- },
- {
- "font_class": "paperclip",
- "unicode": ""
- },
- {
- "font_class": "paperplane",
- "unicode": ""
- },
- {
- "font_class": "paperplane-filled",
- "unicode": ""
- },
- {
- "font_class": "person",
- "unicode": ""
- },
- {
- "font_class": "person-filled",
- "unicode": ""
- },
- {
- "font_class": "personadd",
- "unicode": ""
- },
- {
- "font_class": "personadd-filled",
- "unicode": ""
- },
- {
- "font_class": "personadd-filled-copy",
- "unicode": ""
- },
- {
- "font_class": "phone",
- "unicode": ""
- },
- {
- "font_class": "phone-filled",
- "unicode": ""
- },
- {
- "font_class": "plus",
- "unicode": ""
- },
- {
- "font_class": "plus-filled",
- "unicode": ""
- },
- {
- "font_class": "plusempty",
- "unicode": ""
- },
- {
- "font_class": "pulldown",
- "unicode": ""
- },
- {
- "font_class": "pyq",
- "unicode": ""
- },
- {
- "font_class": "qq",
- "unicode": ""
- },
- {
- "font_class": "redo",
- "unicode": ""
- },
- {
- "font_class": "redo-filled",
- "unicode": ""
- },
- {
- "font_class": "refresh",
- "unicode": ""
- },
- {
- "font_class": "refresh-filled",
- "unicode": ""
- },
- {
- "font_class": "refreshempty",
- "unicode": ""
- },
- {
- "font_class": "reload",
- "unicode": ""
- },
- {
- "font_class": "right",
- "unicode": ""
- },
- {
- "font_class": "scan",
- "unicode": ""
- },
- {
- "font_class": "search",
- "unicode": ""
- },
- {
- "font_class": "settings",
- "unicode": ""
- },
- {
- "font_class": "settings-filled",
- "unicode": ""
- },
- {
- "font_class": "shop",
- "unicode": ""
- },
- {
- "font_class": "shop-filled",
- "unicode": ""
- },
- {
- "font_class": "smallcircle",
- "unicode": ""
- },
- {
- "font_class": "smallcircle-filled",
- "unicode": ""
- },
- {
- "font_class": "sound",
- "unicode": ""
- },
- {
- "font_class": "sound-filled",
- "unicode": ""
- },
- {
- "font_class": "spinner-cycle",
- "unicode": ""
- },
- {
- "font_class": "staff",
- "unicode": ""
- },
- {
- "font_class": "staff-filled",
- "unicode": ""
- },
- {
- "font_class": "star",
- "unicode": ""
- },
- {
- "font_class": "star-filled",
- "unicode": ""
- },
- {
- "font_class": "starhalf",
- "unicode": ""
- },
- {
- "font_class": "trash",
- "unicode": ""
- },
- {
- "font_class": "trash-filled",
- "unicode": ""
- },
- {
- "font_class": "tune",
- "unicode": ""
- },
- {
- "font_class": "tune-filled",
- "unicode": ""
- },
- {
- "font_class": "undo",
- "unicode": ""
- },
- {
- "font_class": "undo-filled",
- "unicode": ""
- },
- {
- "font_class": "up",
- "unicode": ""
- },
- {
- "font_class": "top",
- "unicode": ""
- },
- {
- "font_class": "upload",
- "unicode": ""
- },
- {
- "font_class": "upload-filled",
- "unicode": ""
- },
- {
- "font_class": "videocam",
- "unicode": ""
- },
- {
- "font_class": "videocam-filled",
- "unicode": ""
- },
- {
- "font_class": "vip",
- "unicode": ""
- },
- {
- "font_class": "vip-filled",
- "unicode": ""
- },
- {
- "font_class": "wallet",
- "unicode": ""
- },
- {
- "font_class": "wallet-filled",
- "unicode": ""
- },
- {
- "font_class": "weibo",
- "unicode": ""
- },
- {
- "font_class": "weixin",
- "unicode": ""
- }
- ];
- const getVal = (val) => {
- const reg = /^[0-9]*$/g;
- return typeof val === "number" || reg.test(val) ? val + "px" : val;
- };
- const _sfc_main$C = {
- name: "UniIcons",
- emits: ["click"],
- props: {
- type: {
- type: String,
- default: ""
- },
- color: {
- type: String,
- default: "#333333"
- },
- size: {
- type: [Number, String],
- default: 16
- },
- customPrefix: {
- type: String,
- default: ""
- },
- fontFamily: {
- type: String,
- default: ""
- }
- },
- data() {
- return {
- icons: fontData
- };
- },
- computed: {
- unicode() {
- let code = this.icons.find((v2) => v2.font_class === this.type);
- if (code) {
- return code.unicode;
- }
- return "";
- },
- iconSize() {
- return getVal(this.size);
- },
- styleObj() {
- if (this.fontFamily !== "") {
- return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`;
- }
- return `color: ${this.color}; font-size: ${this.iconSize};`;
- }
- },
- methods: {
- _onClick() {
- this.$emit("click");
- }
- }
- };
- function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "text",
- {
- style: vue.normalizeStyle($options.styleObj),
- class: vue.normalizeClass(["uni-icons", ["uniui-" + $props.type, $props.customPrefix, $props.customPrefix ? $props.type : ""]]),
- onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args))
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_4 = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$B], ["__scopeId", "data-v-d31e1c47"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]);
- function obj2strClass(obj) {
- let classess = "";
- for (let key in obj) {
- const val = obj[key];
- if (val) {
- classess += `${key} `;
- }
- }
- return classess;
- }
- function obj2strStyle(obj) {
- let style = "";
- for (let key in obj) {
- const val = obj[key];
- style += `${key}:${val};`;
- }
- return style;
- }
- const _sfc_main$B = {
- name: "uni-easyinput",
- emits: ["click", "iconClick", "update:modelValue", "input", "focus", "blur", "confirm", "clear", "eyes", "change", "keyboardheightchange"],
- model: {
- prop: "modelValue",
- event: "update:modelValue"
- },
- options: {
- virtualHost: true
- },
- inject: {
- form: {
- from: "uniForm",
- default: null
- },
- formItem: {
- from: "uniFormItem",
- default: null
- }
- },
- props: {
- name: String,
- value: [Number, String],
- modelValue: [Number, String],
- type: {
- type: String,
- default: "text"
- },
- clearable: {
- type: Boolean,
- default: true
- },
- autoHeight: {
- type: Boolean,
- default: false
- },
- placeholder: {
- type: String,
- default: " "
- },
- placeholderStyle: String,
- focus: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- },
- maxlength: {
- type: [Number, String],
- default: 140
- },
- confirmType: {
- type: String,
- default: "done"
- },
- clearSize: {
- type: [Number, String],
- default: 24
- },
- inputBorder: {
- type: Boolean,
- default: true
- },
- prefixIcon: {
- type: String,
- default: ""
- },
- suffixIcon: {
- type: String,
- default: ""
- },
- trim: {
- type: [Boolean, String],
- default: false
- },
- cursorSpacing: {
- type: Number,
- default: 0
- },
- passwordIcon: {
- type: Boolean,
- default: true
- },
- primaryColor: {
- type: String,
- default: "#2979ff"
- },
- styles: {
- type: Object,
- default() {
- return {
- color: "#333",
- backgroundColor: "#fff",
- disableColor: "#F7F6F6",
- borderColor: "#e5e5e5"
- };
- }
- },
- errorMessage: {
- type: [String, Boolean],
- default: ""
- }
- },
- data() {
- return {
- focused: false,
- val: "",
- showMsg: "",
- border: false,
- isFirstBorder: false,
- showClearIcon: false,
- showPassword: false,
- focusShow: false,
- localMsg: "",
- isEnter: false
- // 用于判断当前是否是使用回车操作
- };
- },
- computed: {
- // 输入框内是否有值
- isVal() {
- const val = this.val;
- if (val || val === 0) {
- return true;
- }
- return false;
- },
- msg() {
- return this.localMsg || this.errorMessage;
- },
- // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值
- inputMaxlength() {
- return Number(this.maxlength);
- },
- // 处理外层样式的style
- boxStyle() {
- return `color:${this.inputBorder && this.msg ? "#e43d33" : this.styles.color};`;
- },
- // input 内容的类和样式处理
- inputContentClass() {
- return obj2strClass({
- "is-input-border": this.inputBorder,
- "is-input-error-border": this.inputBorder && this.msg,
- "is-textarea": this.type === "textarea",
- "is-disabled": this.disabled,
- "is-focused": this.focusShow
- });
- },
- inputContentStyle() {
- const focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;
- const borderColor = this.inputBorder && this.msg ? "#dd524d" : focusColor;
- return obj2strStyle({
- "border-color": borderColor || "#e5e5e5",
- "background-color": this.disabled ? this.styles.disableColor : this.styles.backgroundColor
- });
- },
- // input右侧样式
- inputStyle() {
- const paddingRight = this.type === "password" || this.clearable || this.prefixIcon ? "" : "10px";
- return obj2strStyle({
- "padding-right": paddingRight,
- "padding-left": this.prefixIcon ? "" : "10px"
- });
- }
- },
- watch: {
- value(newVal) {
- this.val = newVal;
- },
- modelValue(newVal) {
- this.val = newVal;
- },
- focus(newVal) {
- this.$nextTick(() => {
- this.focused = this.focus;
- this.focusShow = this.focus;
- });
- }
- },
- created() {
- this.init();
- if (this.form && this.formItem) {
- this.$watch("formItem.errMsg", (newVal) => {
- this.localMsg = newVal;
- });
- }
- },
- mounted() {
- this.$nextTick(() => {
- this.focused = this.focus;
- this.focusShow = this.focus;
- });
- },
- methods: {
- /**
- * 初始化变量值
- */
- init() {
- if (this.value || this.value === 0) {
- this.val = this.value;
- } else if (this.modelValue || this.modelValue === 0 || this.modelValue === "") {
- this.val = this.modelValue;
- } else {
- this.val = null;
- }
- },
- /**
- * 点击图标时触发
- * @param {Object} type
- */
- onClickIcon(type) {
- this.$emit("iconClick", type);
- },
- /**
- * 显示隐藏内容,密码框时生效
- */
- onEyes() {
- this.showPassword = !this.showPassword;
- this.$emit("eyes", this.showPassword);
- },
- /**
- * 输入时触发
- * @param {Object} event
- */
- onInput(event) {
- let value = event.detail.value;
- if (this.trim) {
- if (typeof this.trim === "boolean" && this.trim) {
- value = this.trimStr(value);
- }
- if (typeof this.trim === "string") {
- value = this.trimStr(value, this.trim);
- }
- }
- if (this.errMsg)
- this.errMsg = "";
- this.val = value;
- this.$emit("input", value);
- this.$emit("update:modelValue", value);
- },
- /**
- * 外部调用方法
- * 获取焦点时触发
- * @param {Object} event
- */
- onFocus() {
- this.$nextTick(() => {
- this.focused = true;
- });
- this.$emit("focus", null);
- },
- _Focus(event) {
- this.focusShow = true;
- this.$emit("focus", event);
- },
- /**
- * 外部调用方法
- * 失去焦点时触发
- * @param {Object} event
- */
- onBlur() {
- this.focused = false;
- this.$emit("focus", null);
- },
- _Blur(event) {
- event.detail.value;
- this.focusShow = false;
- this.$emit("blur", event);
- if (this.isEnter === false) {
- this.$emit("change", this.val);
- }
- if (this.form && this.formItem) {
- const { validateTrigger } = this.form;
- if (validateTrigger === "blur") {
- this.formItem.onFieldChange();
- }
- }
- },
- /**
- * 按下键盘的发送键
- * @param {Object} e
- */
- onConfirm(e2) {
- this.$emit("confirm", this.val);
- this.isEnter = true;
- this.$emit("change", this.val);
- this.$nextTick(() => {
- this.isEnter = false;
- });
- },
- /**
- * 清理内容
- * @param {Object} event
- */
- onClear(event) {
- this.val = "";
- this.$emit("input", "");
- this.$emit("update:modelValue", "");
- this.$emit("clear");
- },
- /**
- * 键盘高度发生变化的时候触发此事件
- * 兼容性:微信小程序2.7.0+、App 3.1.0+
- * @param {Object} event
- */
- onkeyboardheightchange(event) {
- this.$emit("keyboardheightchange", event);
- },
- /**
- * 去除空格
- */
- trimStr(str, pos = "both") {
- if (pos === "both") {
- return str.trim();
- } else if (pos === "left") {
- return str.trimLeft();
- } else if (pos === "right") {
- return str.trimRight();
- } else if (pos === "start") {
- return str.trimStart();
- } else if (pos === "end") {
- return str.trimEnd();
- } else if (pos === "all") {
- return str.replace(/\s+/g, "");
- } else if (pos === "none") {
- return str;
- }
- return str;
- }
- }
- };
- function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["uni-easyinput", { "uni-easyinput-error": $options.msg }]),
- style: vue.normalizeStyle($options.boxStyle)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-easyinput__content", $options.inputContentClass]),
- style: vue.normalizeStyle($options.inputContentStyle)
- },
- [
- $props.prefixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: "content-clear-icon",
- type: $props.prefixIcon,
- color: "#c0c4cc",
- onClick: _cache[0] || (_cache[0] = ($event) => $options.onClickIcon("prefix")),
- size: "22"
- }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true),
- $props.type === "textarea" ? (vue.openBlock(), vue.createElementBlock("textarea", {
- key: 1,
- class: vue.normalizeClass(["uni-easyinput__content-textarea", { "input-padding": $props.inputBorder }]),
- name: $props.name,
- value: $data.val,
- placeholder: $props.placeholder,
- placeholderStyle: $props.placeholderStyle,
- disabled: $props.disabled,
- "placeholder-class": "uni-easyinput__placeholder-class",
- maxlength: $options.inputMaxlength,
- focus: $data.focused,
- autoHeight: $props.autoHeight,
- "cursor-spacing": $props.cursorSpacing,
- onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),
- onBlur: _cache[2] || (_cache[2] = (...args) => $options._Blur && $options._Blur(...args)),
- onFocus: _cache[3] || (_cache[3] = (...args) => $options._Focus && $options._Focus(...args)),
- onConfirm: _cache[4] || (_cache[4] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
- onKeyboardheightchange: _cache[5] || (_cache[5] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
- }, null, 42, ["name", "value", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "autoHeight", "cursor-spacing"])) : (vue.openBlock(), vue.createElementBlock("input", {
- key: 2,
- type: $props.type === "password" ? "text" : $props.type,
- class: "uni-easyinput__content-input",
- style: vue.normalizeStyle($options.inputStyle),
- name: $props.name,
- value: $data.val,
- password: !$data.showPassword && $props.type === "password",
- placeholder: $props.placeholder,
- placeholderStyle: $props.placeholderStyle,
- "placeholder-class": "uni-easyinput__placeholder-class",
- disabled: $props.disabled,
- maxlength: $options.inputMaxlength,
- focus: $data.focused,
- confirmType: $props.confirmType,
- "cursor-spacing": $props.cursorSpacing,
- onFocus: _cache[6] || (_cache[6] = (...args) => $options._Focus && $options._Focus(...args)),
- onBlur: _cache[7] || (_cache[7] = (...args) => $options._Blur && $options._Blur(...args)),
- onInput: _cache[8] || (_cache[8] = (...args) => $options.onInput && $options.onInput(...args)),
- onConfirm: _cache[9] || (_cache[9] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
- onKeyboardheightchange: _cache[10] || (_cache[10] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
- }, null, 44, ["type", "name", "value", "password", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "confirmType", "cursor-spacing"])),
- $props.type === "password" && $props.passwordIcon ? (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 3 },
- [
- vue.createCommentVNode(" 开启密码时显示小眼睛 "),
- $options.isVal ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
- type: $data.showPassword ? "eye-slash-filled" : "eye-filled",
- size: 22,
- color: $data.focusShow ? $props.primaryColor : "#c0c4cc",
- onClick: $options.onEyes
- }, null, 8, ["class", "type", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )) : $props.suffixIcon ? (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 4 },
- [
- $props.suffixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: "content-clear-icon",
- type: $props.suffixIcon,
- color: "#c0c4cc",
- onClick: _cache[11] || (_cache[11] = ($event) => $options.onClickIcon("suffix")),
- size: "22"
- }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )) : (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 5 },
- [
- $props.clearable && $options.isVal && !$props.disabled && $props.type !== "textarea" ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
- type: "clear",
- size: $props.clearSize,
- color: $options.msg ? "#dd524d" : $data.focusShow ? $props.primaryColor : "#c0c4cc",
- onClick: $options.onClear
- }, null, 8, ["class", "size", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )),
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$A], ["__scopeId", "data-v-09fd5285"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue"]]);
- const _sfc_main$A = {
- name: "uniFormsItem",
- options: {
- virtualHost: true
- },
- provide() {
- return {
- uniFormItem: this
- };
- },
- inject: {
- form: {
- from: "uniForm",
- default: null
- }
- },
- props: {
- // 表单校验规则
- rules: {
- type: Array,
- default() {
- return null;
- }
- },
- // 表单域的属性名,在使用校验规则时必填
- name: {
- type: [String, Array],
- default: ""
- },
- required: {
- type: Boolean,
- default: false
- },
- label: {
- type: String,
- default: ""
- },
- // label的宽度
- labelWidth: {
- type: [String, Number],
- default: ""
- },
- // label 居中方式,默认 left 取值 left/center/right
- labelAlign: {
- type: String,
- default: ""
- },
- // 强制显示错误信息
- errorMessage: {
- type: [String, Boolean],
- default: ""
- },
- // 1.4.0 弃用,统一使用 form 的校验时机
- // validateTrigger: {
- // type: String,
- // default: ''
- // },
- // 1.4.0 弃用,统一使用 form 的label 位置
- // labelPosition: {
- // type: String,
- // default: ''
- // },
- // 1.4.0 以下属性已经废弃,请使用 #label 插槽代替
- leftIcon: String,
- iconColor: {
- type: String,
- default: "#606266"
- }
- },
- data() {
- return {
- errMsg: "",
- userRules: null,
- localLabelAlign: "left",
- localLabelWidth: "70px",
- localLabelPos: "left",
- border: false,
- isFirstBorder: false
- };
- },
- computed: {
- // 处理错误信息
- msg() {
- return this.errorMessage || this.errMsg;
- }
- },
- watch: {
- // 规则发生变化通知子组件更新
- "form.formRules"(val) {
- this.init();
- },
- "form.labelWidth"(val) {
- this.localLabelWidth = this._labelWidthUnit(val);
- },
- "form.labelPosition"(val) {
- this.localLabelPos = this._labelPosition();
- },
- "form.labelAlign"(val) {
- }
- },
- created() {
- this.init(true);
- if (this.name && this.form) {
- this.$watch(
- () => {
- const val = this.form._getDataValue(this.name, this.form.localData);
- return val;
- },
- (value, oldVal) => {
- const isEqual2 = this.form._isEqual(value, oldVal);
- if (!isEqual2) {
- const val = this.itemSetValue(value);
- this.onFieldChange(val, false);
- }
- },
- {
- immediate: false
- }
- );
- }
- },
- unmounted() {
- this.__isUnmounted = true;
- this.unInit();
- },
- methods: {
- /**
- * 外部调用方法
- * 设置规则 ,主要用于小程序自定义检验规则
- * @param {Array} rules 规则源数据
- */
- setRules(rules = null) {
- this.userRules = rules;
- this.init(false);
- },
- // 兼容老版本表单组件
- setValue() {
- },
- /**
- * 外部调用方法
- * 校验数据
- * @param {any} value 需要校验的数据
- * @param {boolean} 是否立即校验
- * @return {Array|null} 校验内容
- */
- async onFieldChange(value, formtrigger = true) {
- const {
- formData,
- localData,
- errShowType,
- validateCheck,
- validateTrigger,
- _isRequiredField,
- _realName
- } = this.form;
- const name = _realName(this.name);
- if (!value) {
- value = this.form.formData[name];
- }
- const ruleLen = this.itemRules.rules && this.itemRules.rules.length;
- if (!this.validator || !ruleLen || ruleLen === 0)
- return;
- const isRequiredField2 = _isRequiredField(this.itemRules.rules || []);
- let result = null;
- if (validateTrigger === "bind" || formtrigger) {
- result = await this.validator.validateUpdate(
- {
- [name]: value
- },
- formData
- );
- if (!isRequiredField2 && (value === void 0 || value === "")) {
- result = null;
- }
- if (result && result.errorMessage) {
- if (errShowType === "undertext") {
- this.errMsg = !result ? "" : result.errorMessage;
- }
- if (errShowType === "toast") {
- uni.showToast({
- title: result.errorMessage || "校验错误",
- icon: "none"
- });
- }
- if (errShowType === "modal") {
- uni.showModal({
- title: "提示",
- content: result.errorMessage || "校验错误"
- });
- }
- } else {
- this.errMsg = "";
- }
- validateCheck(result ? result : null);
- } else {
- this.errMsg = "";
- }
- return result ? result : null;
- },
- /**
- * 初始组件数据
- */
- init(type = false) {
- const {
- validator,
- formRules,
- childrens,
- formData,
- localData,
- _realName,
- labelWidth,
- _getDataValue,
- _setDataValue
- } = this.form || {};
- this.localLabelAlign = this._justifyContent();
- this.localLabelWidth = this._labelWidthUnit(labelWidth);
- this.localLabelPos = this._labelPosition();
- this.form && type && childrens.push(this);
- if (!validator || !formRules)
- return;
- if (!this.form.isFirstBorder) {
- this.form.isFirstBorder = true;
- this.isFirstBorder = true;
- }
- if (this.group) {
- if (!this.group.isFirstBorder) {
- this.group.isFirstBorder = true;
- this.isFirstBorder = true;
- }
- }
- this.border = this.form.border;
- const name = _realName(this.name);
- const itemRule = this.userRules || this.rules;
- if (typeof formRules === "object" && itemRule) {
- formRules[name] = {
- rules: itemRule
- };
- validator.updateSchema(formRules);
- }
- const itemRules = formRules[name] || {};
- this.itemRules = itemRules;
- this.validator = validator;
- this.itemSetValue(_getDataValue(this.name, localData));
- },
- unInit() {
- if (this.form) {
- const {
- childrens,
- formData,
- _realName
- } = this.form;
- childrens.forEach((item, index) => {
- if (item === this) {
- this.form.childrens.splice(index, 1);
- delete formData[_realName(item.name)];
- }
- });
- }
- },
- // 设置item 的值
- itemSetValue(value) {
- const name = this.form._realName(this.name);
- const rules = this.itemRules.rules || [];
- const val = this.form._getValue(name, value, rules);
- this.form._setDataValue(name, this.form.formData, val);
- return val;
- },
- /**
- * 移除该表单项的校验结果
- */
- clearValidate() {
- this.errMsg = "";
- },
- // 是否显示星号
- _isRequired() {
- return this.required;
- },
- // 处理对齐方式
- _justifyContent() {
- if (this.form) {
- const {
- labelAlign
- } = this.form;
- let labelAli = this.labelAlign ? this.labelAlign : labelAlign;
- if (labelAli === "left")
- return "flex-start";
- if (labelAli === "center")
- return "center";
- if (labelAli === "right")
- return "flex-end";
- }
- return "flex-start";
- },
- // 处理 label宽度单位 ,继承父元素的值
- _labelWidthUnit(labelWidth) {
- return this.num2px(this.labelWidth ? this.labelWidth : labelWidth || (this.label ? 70 : "auto"));
- },
- // 处理 label 位置
- _labelPosition() {
- if (this.form)
- return this.form.labelPosition || "left";
- return "left";
- },
- /**
- * 触发时机
- * @param {Object} rule 当前规则内时机
- * @param {Object} itemRlue 当前组件时机
- * @param {Object} parentRule 父组件时机
- */
- isTrigger(rule, itemRlue, parentRule) {
- if (rule === "submit" || !rule) {
- if (rule === void 0) {
- if (itemRlue !== "bind") {
- if (!itemRlue) {
- return parentRule === "" ? "bind" : "submit";
- }
- return "submit";
- }
- return "bind";
- }
- return "submit";
- }
- return "bind";
- },
- num2px(num) {
- if (typeof num === "number") {
- return `${num}px`;
- }
- return num;
- }
- }
- };
- function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["uni-forms-item", ["is-direction-" + $data.localLabelPos, $data.border ? "uni-forms-item--border" : "", $data.border && $data.isFirstBorder ? "is-first-border" : ""]])
- },
- [
- vue.renderSlot(_ctx.$slots, "label", {}, () => [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-forms-item__label", { "no-label": !$props.label && !$props.required }]),
- style: vue.normalizeStyle({ width: $data.localLabelWidth, justifyContent: $data.localLabelAlign })
- },
- [
- $props.required ? (vue.openBlock(), vue.createElementBlock("text", {
- key: 0,
- class: "is-required"
- }, "*")) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($props.label),
- 1
- /* TEXT */
- )
- ],
- 6
- /* CLASS, STYLE */
- )
- ], true),
- vue.createElementVNode("view", { class: "uni-forms-item__content" }, [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-forms-item__error", { "msg--active": $options.msg }])
- },
- [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($options.msg),
- 1
- /* TEXT */
- )
- ],
- 2
- /* CLASS */
- )
- ])
- ],
- 2
- /* CLASS */
- );
- }
- const __easycom_2$1 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$z], ["__scopeId", "data-v-462874dd"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue"]]);
- var pattern = {
- email: /^\S+?@\S+?\.\S+?$/,
- idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
- url: new RegExp(
- "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$",
- "i"
- )
- };
- const FORMAT_MAPPING = {
- "int": "integer",
- "bool": "boolean",
- "double": "number",
- "long": "number",
- "password": "string"
- // "fileurls": 'array'
- };
- function formatMessage(args, resources = "") {
- var defaultMessage = ["label"];
- defaultMessage.forEach((item) => {
- if (args[item] === void 0) {
- args[item] = "";
- }
- });
- let str = resources;
- for (let key in args) {
- let reg = new RegExp("{" + key + "}");
- str = str.replace(reg, args[key]);
- }
- return str;
- }
- function isEmptyValue(value, type) {
- if (value === void 0 || value === null) {
- return true;
- }
- if (typeof value === "string" && !value) {
- return true;
- }
- if (Array.isArray(value) && !value.length) {
- return true;
- }
- if (type === "object" && !Object.keys(value).length) {
- return true;
- }
- return false;
- }
- const types = {
- integer(value) {
- return types.number(value) && parseInt(value, 10) === value;
- },
- string(value) {
- return typeof value === "string";
- },
- number(value) {
- if (isNaN(value)) {
- return false;
- }
- return typeof value === "number";
- },
- "boolean": function(value) {
- return typeof value === "boolean";
- },
- "float": function(value) {
- return types.number(value) && !types.integer(value);
- },
- array(value) {
- return Array.isArray(value);
- },
- object(value) {
- return typeof value === "object" && !types.array(value);
- },
- date(value) {
- return value instanceof Date;
- },
- timestamp(value) {
- if (!this.integer(value) || Math.abs(value).toString().length > 16) {
- return false;
- }
- return true;
- },
- file(value) {
- return typeof value.url === "string";
- },
- email(value) {
- return typeof value === "string" && !!value.match(pattern.email) && value.length < 255;
- },
- url(value) {
- return typeof value === "string" && !!value.match(pattern.url);
- },
- pattern(reg, value) {
- try {
- return new RegExp(reg).test(value);
- } catch (e2) {
- return false;
- }
- },
- method(value) {
- return typeof value === "function";
- },
- idcard(value) {
- return typeof value === "string" && !!value.match(pattern.idcard);
- },
- "url-https"(value) {
- return this.url(value) && value.startsWith("https://");
- },
- "url-scheme"(value) {
- return value.startsWith("://");
- },
- "url-web"(value) {
- return false;
- }
- };
- class RuleValidator {
- constructor(message) {
- this._message = message;
- }
- async validateRule(fieldKey, fieldValue, value, data, allData) {
- var result = null;
- let rules = fieldValue.rules;
- let hasRequired = rules.findIndex((item) => {
- return item.required;
- });
- if (hasRequired < 0) {
- if (value === null || value === void 0) {
- return result;
- }
- if (typeof value === "string" && !value.length) {
- return result;
- }
- }
- var message = this._message;
- if (rules === void 0) {
- return message["default"];
- }
- for (var i2 = 0; i2 < rules.length; i2++) {
- let rule = rules[i2];
- let vt2 = this._getValidateType(rule);
- Object.assign(rule, {
- label: fieldValue.label || `["${fieldKey}"]`
- });
- if (RuleValidatorHelper[vt2]) {
- result = RuleValidatorHelper[vt2](rule, value, message);
- if (result != null) {
- break;
- }
- }
- if (rule.validateExpr) {
- let now = Date.now();
- let resultExpr = rule.validateExpr(value, allData, now);
- if (resultExpr === false) {
- result = this._getMessage(rule, rule.errorMessage || this._message["default"]);
- break;
- }
- }
- if (rule.validateFunction) {
- result = await this.validateFunction(rule, value, data, allData, vt2);
- if (result !== null) {
- break;
- }
- }
- }
- if (result !== null) {
- result = message.TAG + result;
- }
- return result;
- }
- async validateFunction(rule, value, data, allData, vt2) {
- let result = null;
- try {
- let callbackMessage = null;
- const res = await rule.validateFunction(rule, value, allData || data, (message) => {
- callbackMessage = message;
- });
- if (callbackMessage || typeof res === "string" && res || res === false) {
- result = this._getMessage(rule, callbackMessage || res, vt2);
- }
- } catch (e2) {
- result = this._getMessage(rule, e2.message, vt2);
- }
- return result;
- }
- _getMessage(rule, message, vt2) {
- return formatMessage(rule, message || rule.errorMessage || this._message[vt2] || message["default"]);
- }
- _getValidateType(rule) {
- var result = "";
- if (rule.required) {
- result = "required";
- } else if (rule.format) {
- result = "format";
- } else if (rule.arrayType) {
- result = "arrayTypeFormat";
- } else if (rule.range) {
- result = "range";
- } else if (rule.maximum !== void 0 || rule.minimum !== void 0) {
- result = "rangeNumber";
- } else if (rule.maxLength !== void 0 || rule.minLength !== void 0) {
- result = "rangeLength";
- } else if (rule.pattern) {
- result = "pattern";
- } else if (rule.validateFunction) {
- result = "validateFunction";
- }
- return result;
- }
- }
- const RuleValidatorHelper = {
- required(rule, value, message) {
- if (rule.required && isEmptyValue(value, rule.format || typeof value)) {
- return formatMessage(rule, rule.errorMessage || message.required);
- }
- return null;
- },
- range(rule, value, message) {
- const {
- range,
- errorMessage
- } = rule;
- let list = new Array(range.length);
- for (let i2 = 0; i2 < range.length; i2++) {
- const item = range[i2];
- if (types.object(item) && item.value !== void 0) {
- list[i2] = item.value;
- } else {
- list[i2] = item;
- }
- }
- let result = false;
- if (Array.isArray(value)) {
- result = new Set(value.concat(list)).size === list.length;
- } else {
- if (list.indexOf(value) > -1) {
- result = true;
- }
- }
- if (!result) {
- return formatMessage(rule, errorMessage || message["enum"]);
- }
- return null;
- },
- rangeNumber(rule, value, message) {
- if (!types.number(value)) {
- return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);
- }
- let {
- minimum,
- maximum,
- exclusiveMinimum,
- exclusiveMaximum
- } = rule;
- let min = exclusiveMinimum ? value <= minimum : value < minimum;
- let max = exclusiveMaximum ? value >= maximum : value > maximum;
- if (minimum !== void 0 && min) {
- return formatMessage(rule, rule.errorMessage || message["number"][exclusiveMinimum ? "exclusiveMinimum" : "minimum"]);
- } else if (maximum !== void 0 && max) {
- return formatMessage(rule, rule.errorMessage || message["number"][exclusiveMaximum ? "exclusiveMaximum" : "maximum"]);
- } else if (minimum !== void 0 && maximum !== void 0 && (min || max)) {
- return formatMessage(rule, rule.errorMessage || message["number"].range);
- }
- return null;
- },
- rangeLength(rule, value, message) {
- if (!types.string(value) && !types.array(value)) {
- return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);
- }
- let min = rule.minLength;
- let max = rule.maxLength;
- let val = value.length;
- if (min !== void 0 && val < min) {
- return formatMessage(rule, rule.errorMessage || message["length"].minLength);
- } else if (max !== void 0 && val > max) {
- return formatMessage(rule, rule.errorMessage || message["length"].maxLength);
- } else if (min !== void 0 && max !== void 0 && (val < min || val > max)) {
- return formatMessage(rule, rule.errorMessage || message["length"].range);
- }
- return null;
- },
- pattern(rule, value, message) {
- if (!types["pattern"](rule.pattern, value)) {
- return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);
- }
- return null;
- },
- format(rule, value, message) {
- var customTypes = Object.keys(types);
- var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : rule.format || rule.arrayType;
- if (customTypes.indexOf(format) > -1) {
- if (!types[format](value)) {
- return formatMessage(rule, rule.errorMessage || message.typeError);
- }
- }
- return null;
- },
- arrayTypeFormat(rule, value, message) {
- if (!Array.isArray(value)) {
- return formatMessage(rule, rule.errorMessage || message.typeError);
- }
- for (let i2 = 0; i2 < value.length; i2++) {
- const element = value[i2];
- let formatResult = this.format(rule, element, message);
- if (formatResult !== null) {
- return formatResult;
- }
- }
- return null;
- }
- };
- class SchemaValidator extends RuleValidator {
- constructor(schema, options) {
- super(SchemaValidator.message);
- this._schema = schema;
- this._options = options || null;
- }
- updateSchema(schema) {
- this._schema = schema;
- }
- async validate(data, allData) {
- let result = this._checkFieldInSchema(data);
- if (!result) {
- result = await this.invokeValidate(data, false, allData);
- }
- return result.length ? result[0] : null;
- }
- async validateAll(data, allData) {
- let result = this._checkFieldInSchema(data);
- if (!result) {
- result = await this.invokeValidate(data, true, allData);
- }
- return result;
- }
- async validateUpdate(data, allData) {
- let result = this._checkFieldInSchema(data);
- if (!result) {
- result = await this.invokeValidateUpdate(data, false, allData);
- }
- return result.length ? result[0] : null;
- }
- async invokeValidate(data, all, allData) {
- let result = [];
- let schema = this._schema;
- for (let key in schema) {
- let value = schema[key];
- let errorMessage = await this.validateRule(key, value, data[key], data, allData);
- if (errorMessage != null) {
- result.push({
- key,
- errorMessage
- });
- if (!all)
- break;
- }
- }
- return result;
- }
- async invokeValidateUpdate(data, all, allData) {
- let result = [];
- for (let key in data) {
- let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData);
- if (errorMessage != null) {
- result.push({
- key,
- errorMessage
- });
- if (!all)
- break;
- }
- }
- return result;
- }
- _checkFieldInSchema(data) {
- var keys = Object.keys(data);
- var keys2 = Object.keys(this._schema);
- if (new Set(keys.concat(keys2)).size === keys2.length) {
- return "";
- }
- var noExistFields = keys.filter((key) => {
- return keys2.indexOf(key) < 0;
- });
- var errorMessage = formatMessage({
- field: JSON.stringify(noExistFields)
- }, SchemaValidator.message.TAG + SchemaValidator.message["defaultInvalid"]);
- return [{
- key: "invalid",
- errorMessage
- }];
- }
- }
- function Message() {
- return {
- TAG: "",
- default: "验证错误",
- defaultInvalid: "提交的字段{field}在数据库中并不存在",
- validateFunction: "验证无效",
- required: "{label}必填",
- "enum": "{label}超出范围",
- timestamp: "{label}格式无效",
- whitespace: "{label}不能为空",
- typeError: "{label}类型无效",
- date: {
- format: "{label}日期{value}格式无效",
- parse: "{label}日期无法解析,{value}无效",
- invalid: "{label}日期{value}无效"
- },
- length: {
- minLength: "{label}长度不能少于{minLength}",
- maxLength: "{label}长度不能超过{maxLength}",
- range: "{label}必须介于{minLength}和{maxLength}之间"
- },
- number: {
- minimum: "{label}不能小于{minimum}",
- maximum: "{label}不能大于{maximum}",
- exclusiveMinimum: "{label}不能小于等于{minimum}",
- exclusiveMaximum: "{label}不能大于等于{maximum}",
- range: "{label}必须介于{minimum}and{maximum}之间"
- },
- pattern: {
- mismatch: "{label}格式不匹配"
- }
- };
- }
- SchemaValidator.message = new Message();
- const deepCopy = (val) => {
- return JSON.parse(JSON.stringify(val));
- };
- const typeFilter = (format) => {
- return format === "int" || format === "double" || format === "number" || format === "timestamp";
- };
- const getValue = (key, value, rules) => {
- const isRuleNumType = rules.find((val) => val.format && typeFilter(val.format));
- const isRuleBoolType = rules.find((val) => val.format && val.format === "boolean" || val.format === "bool");
- if (!!isRuleNumType) {
- if (!value && value !== 0) {
- value = null;
- } else {
- value = isNumber(Number(value)) ? Number(value) : value;
- }
- }
- if (!!isRuleBoolType) {
- value = isBoolean(value) ? value : false;
- }
- return value;
- };
- const setDataValue = (field, formdata, value) => {
- formdata[field] = value;
- return value || "";
- };
- const getDataValue = (field, data) => {
- return objGet(data, field);
- };
- const realName = (name, data = {}) => {
- const base_name = _basePath(name);
- if (typeof base_name === "object" && Array.isArray(base_name) && base_name.length > 1) {
- const realname = base_name.reduce((a2, b2) => a2 += `#${b2}`, "_formdata_");
- return realname;
- }
- return base_name[0] || name;
- };
- const isRealName = (name) => {
- const reg = /^_formdata_#*/;
- return reg.test(name);
- };
- const rawData = (object = {}, name) => {
- let newData = JSON.parse(JSON.stringify(object));
- let formData = {};
- for (let i2 in newData) {
- let path = name2arr(i2);
- objSet(formData, path, newData[i2]);
- }
- return formData;
- };
- const name2arr = (name) => {
- let field = name.replace("_formdata_#", "");
- field = field.split("#").map((v2) => isNumber(v2) ? Number(v2) : v2);
- return field;
- };
- const objSet = (object, path, value) => {
- if (typeof object !== "object")
- return object;
- _basePath(path).reduce((o2, k, i2, _2) => {
- if (i2 === _2.length - 1) {
- o2[k] = value;
- return null;
- } else if (k in o2) {
- return o2[k];
- } else {
- o2[k] = /^[0-9]{1,}$/.test(_2[i2 + 1]) ? [] : {};
- return o2[k];
- }
- }, object);
- return object;
- };
- function _basePath(path) {
- if (Array.isArray(path))
- return path;
- return path.replace(/\[/g, ".").replace(/\]/g, "").split(".");
- }
- const objGet = (object, path, defaultVal = "undefined") => {
- let newPath = _basePath(path);
- let val = newPath.reduce((o2, k) => {
- return (o2 || {})[k];
- }, object);
- return !val || val !== void 0 ? val : defaultVal;
- };
- const isNumber = (num) => {
- return !isNaN(Number(num));
- };
- const isBoolean = (bool) => {
- return typeof bool === "boolean";
- };
- const isRequiredField = (rules) => {
- let isNoField = false;
- for (let i2 = 0; i2 < rules.length; i2++) {
- const ruleData = rules[i2];
- if (ruleData.required) {
- isNoField = true;
- break;
- }
- }
- return isNoField;
- };
- const isEqual = (a2, b2) => {
- if (a2 === b2) {
- return a2 !== 0 || 1 / a2 === 1 / b2;
- }
- if (a2 == null || b2 == null) {
- return a2 === b2;
- }
- var classNameA = toString.call(a2), classNameB = toString.call(b2);
- if (classNameA !== classNameB) {
- return false;
- }
- switch (classNameA) {
- case "[object RegExp]":
- case "[object String]":
- return "" + a2 === "" + b2;
- case "[object Number]":
- if (+a2 !== +a2) {
- return +b2 !== +b2;
- }
- return +a2 === 0 ? 1 / +a2 === 1 / b2 : +a2 === +b2;
- case "[object Date]":
- case "[object Boolean]":
- return +a2 === +b2;
- }
- if (classNameA == "[object Object]") {
- var propsA = Object.getOwnPropertyNames(a2), propsB = Object.getOwnPropertyNames(b2);
- if (propsA.length != propsB.length) {
- return false;
- }
- for (var i2 = 0; i2 < propsA.length; i2++) {
- var propName = propsA[i2];
- if (a2[propName] !== b2[propName]) {
- return false;
- }
- }
- return true;
- }
- if (classNameA == "[object Array]") {
- if (a2.toString() == b2.toString()) {
- return true;
- }
- return false;
- }
- };
- const _sfc_main$z = {
- name: "uniForms",
- emits: ["validate", "submit"],
- options: {
- virtualHost: true
- },
- props: {
- // 即将弃用
- value: {
- type: Object,
- default() {
- return null;
- }
- },
- // vue3 替换 value 属性
- modelValue: {
- type: Object,
- default() {
- return null;
- }
- },
- // 1.4.0 开始将不支持 v-model ,且废弃 value 和 modelValue
- model: {
- type: Object,
- default() {
- return null;
- }
- },
- // 表单校验规则
- rules: {
- type: Object,
- default() {
- return {};
- }
- },
- //校验错误信息提示方式 默认 undertext 取值 [undertext|toast|modal]
- errShowType: {
- type: String,
- default: "undertext"
- },
- // 校验触发器方式 默认 bind 取值 [bind|submit]
- validateTrigger: {
- type: String,
- default: "submit"
- },
- // label 位置,默认 left 取值 top/left
- labelPosition: {
- type: String,
- default: "left"
- },
- // label 宽度
- labelWidth: {
- type: [String, Number],
- default: ""
- },
- // label 居中方式,默认 left 取值 left/center/right
- labelAlign: {
- type: String,
- default: "left"
- },
- border: {
- type: Boolean,
- default: false
- }
- },
- provide() {
- return {
- uniForm: this
- };
- },
- data() {
- return {
- // 表单本地值的记录,不应该与传如的值进行关联
- formData: {},
- formRules: {}
- };
- },
- computed: {
- // 计算数据源变化的
- localData() {
- const localVal = this.model || this.modelValue || this.value;
- if (localVal) {
- return deepCopy(localVal);
- }
- return {};
- }
- },
- watch: {
- // 监听数据变化 ,暂时不使用,需要单独赋值
- // localData: {},
- // 监听规则变化
- rules: {
- handler: function(val, oldVal) {
- this.setRules(val);
- },
- deep: true,
- immediate: true
- }
- },
- created() {
- let getbinddata = getApp().$vm.$.appContext.config.globalProperties.binddata;
- if (!getbinddata) {
- getApp().$vm.$.appContext.config.globalProperties.binddata = function(name, value, formName) {
- if (formName) {
- this.$refs[formName].setValue(name, value);
- } else {
- let formVm;
- for (let i2 in this.$refs) {
- const vm = this.$refs[i2];
- if (vm && vm.$options && vm.$options.name === "uniForms") {
- formVm = vm;
- break;
- }
- }
- if (!formVm)
- return formatAppLog("error", "at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:182", "当前 uni-froms 组件缺少 ref 属性");
- formVm.setValue(name, value);
- }
- };
- }
- this.childrens = [];
- this.inputChildrens = [];
- this.setRules(this.rules);
- },
- methods: {
- /**
- * 外部调用方法
- * 设置规则 ,主要用于小程序自定义检验规则
- * @param {Array} rules 规则源数据
- */
- setRules(rules) {
- this.formRules = Object.assign({}, this.formRules, rules);
- this.validator = new SchemaValidator(rules);
- },
- /**
- * 外部调用方法
- * 设置数据,用于设置表单数据,公开给用户使用 , 不支持在动态表单中使用
- * @param {Object} key
- * @param {Object} value
- */
- setValue(key, value) {
- let example = this.childrens.find((child) => child.name === key);
- if (!example)
- return null;
- this.formData[key] = getValue(key, value, this.formRules[key] && this.formRules[key].rules || []);
- return example.onFieldChange(this.formData[key]);
- },
- /**
- * 外部调用方法
- * 手动提交校验表单
- * 对整个表单进行校验的方法,参数为一个回调函数。
- * @param {Array} keepitem 保留不参与校验的字段
- * @param {type} callback 方法回调
- */
- validate(keepitem, callback) {
- return this.checkAll(this.formData, keepitem, callback);
- },
- /**
- * 外部调用方法
- * 部分表单校验
- * @param {Array|String} props 需要校验的字段
- * @param {Function} 回调函数
- */
- validateField(props = [], callback) {
- props = [].concat(props);
- let invalidFields = {};
- this.childrens.forEach((item) => {
- const name = realName(item.name);
- if (props.indexOf(name) !== -1) {
- invalidFields = Object.assign({}, invalidFields, {
- [name]: this.formData[name]
- });
- }
- });
- return this.checkAll(invalidFields, [], callback);
- },
- /**
- * 外部调用方法
- * 移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果
- * @param {Array|String} props 需要移除校验的字段 ,不填为所有
- */
- clearValidate(props = []) {
- props = [].concat(props);
- this.childrens.forEach((item) => {
- if (props.length === 0) {
- item.errMsg = "";
- } else {
- const name = realName(item.name);
- if (props.indexOf(name) !== -1) {
- item.errMsg = "";
- }
- }
- });
- },
- /**
- * 外部调用方法 ,即将废弃
- * 手动提交校验表单
- * 对整个表单进行校验的方法,参数为一个回调函数。
- * @param {Array} keepitem 保留不参与校验的字段
- * @param {type} callback 方法回调
- */
- submit(keepitem, callback, type) {
- for (let i2 in this.dataValue) {
- const itemData = this.childrens.find((v2) => v2.name === i2);
- if (itemData) {
- if (this.formData[i2] === void 0) {
- this.formData[i2] = this._getValue(i2, this.dataValue[i2]);
- }
- }
- }
- if (!type) {
- formatAppLog("warn", "at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:289", "submit 方法即将废弃,请使用validate方法代替!");
- }
- return this.checkAll(this.formData, keepitem, callback, "submit");
- },
- // 校验所有
- async checkAll(invalidFields, keepitem, callback, type) {
- if (!this.validator)
- return;
- let childrens = [];
- for (let i2 in invalidFields) {
- const item = this.childrens.find((v2) => realName(v2.name) === i2);
- if (item) {
- childrens.push(item);
- }
- }
- if (!callback && typeof keepitem === "function") {
- callback = keepitem;
- }
- let promise;
- if (!callback && typeof callback !== "function" && Promise) {
- promise = new Promise((resolve, reject) => {
- callback = function(valid, invalidFields2) {
- !valid ? resolve(invalidFields2) : reject(valid);
- };
- });
- }
- let results = [];
- let tempFormData = JSON.parse(JSON.stringify(invalidFields));
- for (let i2 in childrens) {
- const child = childrens[i2];
- let name = realName(child.name);
- const result = await child.onFieldChange(tempFormData[name]);
- if (result) {
- results.push(result);
- if (this.errShowType === "toast" || this.errShowType === "modal")
- break;
- }
- }
- if (Array.isArray(results)) {
- if (results.length === 0)
- results = null;
- }
- if (Array.isArray(keepitem)) {
- keepitem.forEach((v2) => {
- let vName = realName(v2);
- let value = getDataValue(v2, this.localData);
- if (value !== void 0) {
- tempFormData[vName] = value;
- }
- });
- }
- if (type === "submit") {
- this.$emit("submit", {
- detail: {
- value: tempFormData,
- errors: results
- }
- });
- } else {
- this.$emit("validate", results);
- }
- let resetFormData = {};
- resetFormData = rawData(tempFormData, this.name);
- callback && typeof callback === "function" && callback(results, resetFormData);
- if (promise && callback) {
- return promise;
- } else {
- return null;
- }
- },
- /**
- * 返回validate事件
- * @param {Object} result
- */
- validateCheck(result) {
- this.$emit("validate", result);
- },
- _getValue: getValue,
- _isRequiredField: isRequiredField,
- _setDataValue: setDataValue,
- _getDataValue: getDataValue,
- _realName: realName,
- _isRealName: isRealName,
- _isEqual: isEqual
- }
- };
- function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-forms" }, [
- vue.createElementVNode("form", null, [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ])
- ]);
- }
- const __easycom_3$2 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$y], ["__scopeId", "data-v-9a1e3c32"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-forms/components/uni-forms/uni-forms.vue"]]);
- const popup = {
- data() {
- return {};
- },
- created() {
- this.popup = this.getParent();
- },
- methods: {
- /**
- * 获取父元素实例
- */
- getParent(name = "uniPopup") {
- let parent = this.$parent;
- let parentName = parent.$options.name;
- while (parentName !== name) {
- parent = parent.$parent;
- if (!parent)
- return false;
- parentName = parent.$options.name;
- }
- return parent;
- }
- }
- };
- const _sfc_main$y = {
- name: "uniPopupMessage",
- mixins: [popup],
- props: {
- /**
- * 主题 success/warning/info/error 默认 success
- */
- type: {
- type: String,
- default: "success"
- },
- /**
- * 消息文字
- */
- message: {
- type: String,
- default: ""
- },
- /**
- * 显示时间,设置为 0 则不会自动关闭
- */
- duration: {
- type: Number,
- default: 3e3
- },
- maskShow: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {};
- },
- created() {
- this.popup.maskShow = this.maskShow;
- this.popup.messageChild = this;
- },
- methods: {
- timerClose() {
- if (this.duration === 0)
- return;
- clearTimeout(this.timer);
- this.timer = setTimeout(() => {
- this.popup.close();
- }, this.duration);
- }
- }
- };
- function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-popup-message" }, [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-popup-message__box fixforpc-width", "uni-popup__" + $props.type])
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass(["uni-popup-message-text", "uni-popup__" + $props.type + "-text"])
- },
- vue.toDisplayString($props.message),
- 3
- /* TEXT, CLASS */
- )
- ], true)
- ],
- 2
- /* CLASS */
- )
- ]);
- }
- const __easycom_5 = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$x], ["__scopeId", "data-v-a4566996"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"]]);
- class MPAnimation {
- constructor(options, _this) {
- this.options = options;
- this.animation = uni.createAnimation({
- ...options
- });
- this.currentStepAnimates = {};
- this.next = 0;
- this.$ = _this;
- }
- _nvuePushAnimates(type, args) {
- let aniObj = this.currentStepAnimates[this.next];
- let styles = {};
- if (!aniObj) {
- styles = {
- styles: {},
- config: {}
- };
- } else {
- styles = aniObj;
- }
- if (animateTypes1.includes(type)) {
- if (!styles.styles.transform) {
- styles.styles.transform = "";
- }
- let unit = "";
- if (type === "rotate") {
- unit = "deg";
- }
- styles.styles.transform += `${type}(${args + unit}) `;
- } else {
- styles.styles[type] = `${args}`;
- }
- this.currentStepAnimates[this.next] = styles;
- }
- _animateRun(styles = {}, config = {}) {
- let ref = this.$.$refs["ani"].ref;
- if (!ref)
- return;
- return new Promise((resolve, reject) => {
- nvueAnimation.transition(ref, {
- styles,
- ...config
- }, (res) => {
- resolve();
- });
- });
- }
- _nvueNextAnimate(animates, step = 0, fn) {
- let obj = animates[step];
- if (obj) {
- let {
- styles,
- config
- } = obj;
- this._animateRun(styles, config).then(() => {
- step += 1;
- this._nvueNextAnimate(animates, step, fn);
- });
- } else {
- this.currentStepAnimates = {};
- typeof fn === "function" && fn();
- this.isEnd = true;
- }
- }
- step(config = {}) {
- this.animation.step(config);
- return this;
- }
- run(fn) {
- this.$.animationData = this.animation.export();
- this.$.timer = setTimeout(() => {
- typeof fn === "function" && fn();
- }, this.$.durationTime);
- }
- }
- const animateTypes1 = [
- "matrix",
- "matrix3d",
- "rotate",
- "rotate3d",
- "rotateX",
- "rotateY",
- "rotateZ",
- "scale",
- "scale3d",
- "scaleX",
- "scaleY",
- "scaleZ",
- "skew",
- "skewX",
- "skewY",
- "translate",
- "translate3d",
- "translateX",
- "translateY",
- "translateZ"
- ];
- const animateTypes2 = ["opacity", "backgroundColor"];
- const animateTypes3 = ["width", "height", "left", "right", "top", "bottom"];
- animateTypes1.concat(animateTypes2, animateTypes3).forEach((type) => {
- MPAnimation.prototype[type] = function(...args) {
- this.animation[type](...args);
- return this;
- };
- });
- function createAnimation(option, _this) {
- if (!_this)
- return;
- clearTimeout(_this.timer);
- return new MPAnimation(option, _this);
- }
- const _sfc_main$x = {
- name: "uniTransition",
- emits: ["click", "change"],
- props: {
- show: {
- type: Boolean,
- default: false
- },
- modeClass: {
- type: [Array, String],
- default() {
- return "fade";
- }
- },
- duration: {
- type: Number,
- default: 300
- },
- styles: {
- type: Object,
- default() {
- return {};
- }
- },
- customClass: {
- type: String,
- default: ""
- },
- onceRender: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {
- isShow: false,
- transform: "",
- opacity: 1,
- animationData: {},
- durationTime: 300,
- config: {}
- };
- },
- watch: {
- show: {
- handler(newVal) {
- if (newVal) {
- this.open();
- } else {
- if (this.isShow) {
- this.close();
- }
- }
- },
- immediate: true
- }
- },
- computed: {
- // 生成样式数据
- stylesObject() {
- let styles = {
- ...this.styles,
- "transition-duration": this.duration / 1e3 + "s"
- };
- let transform = "";
- for (let i2 in styles) {
- let line = this.toLine(i2);
- transform += line + ":" + styles[i2] + ";";
- }
- return transform;
- },
- // 初始化动画条件
- transformStyles() {
- return "transform:" + this.transform + ";opacity:" + this.opacity + ";" + this.stylesObject;
- }
- },
- created() {
- this.config = {
- duration: this.duration,
- timingFunction: "ease",
- transformOrigin: "50% 50%",
- delay: 0
- };
- this.durationTime = this.duration;
- },
- methods: {
- /**
- * ref 触发 初始化动画
- */
- init(obj = {}) {
- if (obj.duration) {
- this.durationTime = obj.duration;
- }
- this.animation = createAnimation(Object.assign(this.config, obj), this);
- },
- /**
- * 点击组件触发回调
- */
- onClick() {
- this.$emit("click", {
- detail: this.isShow
- });
- },
- /**
- * ref 触发 动画分组
- * @param {Object} obj
- */
- step(obj, config = {}) {
- if (!this.animation)
- return;
- for (let i2 in obj) {
- try {
- if (typeof obj[i2] === "object") {
- this.animation[i2](...obj[i2]);
- } else {
- this.animation[i2](obj[i2]);
- }
- } catch (e2) {
- formatAppLog("error", "at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:148", `方法 ${i2} 不存在`);
- }
- }
- this.animation.step(config);
- return this;
- },
- /**
- * ref 触发 执行动画
- */
- run(fn) {
- if (!this.animation)
- return;
- this.animation.run(fn);
- },
- // 开始过度动画
- open() {
- clearTimeout(this.timer);
- this.transform = "";
- this.isShow = true;
- let { opacity, transform } = this.styleInit(false);
- if (typeof opacity !== "undefined") {
- this.opacity = opacity;
- }
- this.transform = transform;
- this.$nextTick(() => {
- this.timer = setTimeout(() => {
- this.animation = createAnimation(this.config, this);
- this.tranfromInit(false).step();
- this.animation.run();
- this.$emit("change", {
- detail: this.isShow
- });
- }, 20);
- });
- },
- // 关闭过度动画
- close(type) {
- if (!this.animation)
- return;
- this.tranfromInit(true).step().run(() => {
- this.isShow = false;
- this.animationData = null;
- this.animation = null;
- let { opacity, transform } = this.styleInit(false);
- this.opacity = opacity || 1;
- this.transform = transform;
- this.$emit("change", {
- detail: this.isShow
- });
- });
- },
- // 处理动画开始前的默认样式
- styleInit(type) {
- let styles = {
- transform: ""
- };
- let buildStyle = (type2, mode) => {
- if (mode === "fade") {
- styles.opacity = this.animationType(type2)[mode];
- } else {
- styles.transform += this.animationType(type2)[mode] + " ";
- }
- };
- if (typeof this.modeClass === "string") {
- buildStyle(type, this.modeClass);
- } else {
- this.modeClass.forEach((mode) => {
- buildStyle(type, mode);
- });
- }
- return styles;
- },
- // 处理内置组合动画
- tranfromInit(type) {
- let buildTranfrom = (type2, mode) => {
- let aniNum = null;
- if (mode === "fade") {
- aniNum = type2 ? 0 : 1;
- } else {
- aniNum = type2 ? "-100%" : "0";
- if (mode === "zoom-in") {
- aniNum = type2 ? 0.8 : 1;
- }
- if (mode === "zoom-out") {
- aniNum = type2 ? 1.2 : 1;
- }
- if (mode === "slide-right") {
- aniNum = type2 ? "100%" : "0";
- }
- if (mode === "slide-bottom") {
- aniNum = type2 ? "100%" : "0";
- }
- }
- this.animation[this.animationMode()[mode]](aniNum);
- };
- if (typeof this.modeClass === "string") {
- buildTranfrom(type, this.modeClass);
- } else {
- this.modeClass.forEach((mode) => {
- buildTranfrom(type, mode);
- });
- }
- return this.animation;
- },
- animationType(type) {
- return {
- fade: type ? 1 : 0,
- "slide-top": `translateY(${type ? "0" : "-100%"})`,
- "slide-right": `translateX(${type ? "0" : "100%"})`,
- "slide-bottom": `translateY(${type ? "0" : "100%"})`,
- "slide-left": `translateX(${type ? "0" : "-100%"})`,
- "zoom-in": `scaleX(${type ? 1 : 0.8}) scaleY(${type ? 1 : 0.8})`,
- "zoom-out": `scaleX(${type ? 1 : 1.2}) scaleY(${type ? 1 : 1.2})`
- };
- },
- // 内置动画类型与实际动画对应字典
- animationMode() {
- return {
- fade: "opacity",
- "slide-top": "translateY",
- "slide-right": "translateX",
- "slide-bottom": "translateY",
- "slide-left": "translateX",
- "zoom-in": "scale",
- "zoom-out": "scale"
- };
- },
- // 驼峰转中横线
- toLine(name) {
- return name.replace(/([A-Z])/g, "-$1").toLowerCase();
- }
- }
- };
- function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("view", {
- ref: "ani",
- animation: $data.animationData,
- class: vue.normalizeClass($props.customClass),
- style: vue.normalizeStyle($options.transformStyles),
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- vue.renderSlot(_ctx.$slots, "default")
- ], 14, ["animation"])), [
- [vue.vShow, $data.isShow]
- ]);
- }
- const __easycom_0$6 = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$w], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
- const _sfc_main$w = {
- name: "uniPopup",
- components: {},
- emits: ["change", "maskClick"],
- props: {
- // 开启动画
- animation: {
- type: Boolean,
- default: true
- },
- // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层
- // message: 消息提示 ; dialog : 对话框
- type: {
- type: String,
- default: "center"
- },
- // maskClick
- isMaskClick: {
- type: Boolean,
- default: null
- },
- // TODO 2 个版本后废弃属性 ,使用 isMaskClick
- maskClick: {
- type: Boolean,
- default: null
- },
- backgroundColor: {
- type: String,
- default: "none"
- },
- safeArea: {
- type: Boolean,
- default: true
- },
- maskBackgroundColor: {
- type: String,
- default: "rgba(0, 0, 0, 0.4)"
- }
- },
- watch: {
- /**
- * 监听type类型
- */
- type: {
- handler: function(type) {
- if (!this.config[type])
- return;
- this[this.config[type]](true);
- },
- immediate: true
- },
- isDesktop: {
- handler: function(newVal) {
- if (!this.config[newVal])
- return;
- this[this.config[this.type]](true);
- },
- immediate: true
- },
- /**
- * 监听遮罩是否可点击
- * @param {Object} val
- */
- maskClick: {
- handler: function(val) {
- this.mkclick = val;
- },
- immediate: true
- },
- isMaskClick: {
- handler: function(val) {
- this.mkclick = val;
- },
- immediate: true
- },
- // H5 下禁止底部滚动
- showPopup(show) {
- }
- },
- data() {
- return {
- duration: 300,
- ani: [],
- showPopup: false,
- showTrans: false,
- popupWidth: 0,
- popupHeight: 0,
- config: {
- top: "top",
- bottom: "bottom",
- center: "center",
- left: "left",
- right: "right",
- message: "top",
- dialog: "center",
- share: "bottom"
- },
- maskClass: {
- position: "fixed",
- bottom: 0,
- top: 0,
- left: 0,
- right: 0,
- backgroundColor: "rgba(0, 0, 0, 0.4)"
- },
- transClass: {
- position: "fixed",
- left: 0,
- right: 0
- },
- maskShow: true,
- mkclick: true,
- popupstyle: "top"
- };
- },
- computed: {
- isDesktop() {
- return this.popupWidth >= 500 && this.popupHeight >= 500;
- },
- bg() {
- if (this.backgroundColor === "" || this.backgroundColor === "none") {
- return "transparent";
- }
- return this.backgroundColor;
- }
- },
- mounted() {
- const fixSize = () => {
- const {
- windowWidth,
- windowHeight,
- windowTop,
- safeArea,
- screenHeight,
- safeAreaInsets
- } = uni.getSystemInfoSync();
- this.popupWidth = windowWidth;
- this.popupHeight = windowHeight + (windowTop || 0);
- if (safeArea && this.safeArea) {
- this.safeAreaInsets = safeAreaInsets.bottom;
- } else {
- this.safeAreaInsets = 0;
- }
- };
- fixSize();
- },
- // TODO vue3
- unmounted() {
- this.setH5Visible();
- },
- created() {
- if (this.isMaskClick === null && this.maskClick === null) {
- this.mkclick = true;
- } else {
- this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;
- }
- if (this.animation) {
- this.duration = 300;
- } else {
- this.duration = 0;
- }
- this.messageChild = null;
- this.clearPropagation = false;
- this.maskClass.backgroundColor = this.maskBackgroundColor;
- },
- methods: {
- setH5Visible() {
- },
- /**
- * 公用方法,不显示遮罩层
- */
- closeMask() {
- this.maskShow = false;
- },
- /**
- * 公用方法,遮罩层禁止点击
- */
- disableMask() {
- this.mkclick = false;
- },
- // TODO nvue 取消冒泡
- clear(e2) {
- e2.stopPropagation();
- this.clearPropagation = true;
- },
- open(direction) {
- if (this.showPopup) {
- return;
- }
- let innerType = ["top", "center", "bottom", "left", "right", "message", "dialog", "share"];
- if (!(direction && innerType.indexOf(direction) !== -1)) {
- direction = this.type;
- }
- if (!this.config[direction]) {
- formatAppLog("error", "at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:279", "缺少类型:", direction);
- return;
- }
- this[this.config[direction]]();
- this.$emit("change", {
- show: true,
- type: direction
- });
- },
- close(type) {
- this.showTrans = false;
- this.$emit("change", {
- show: false,
- type: this.type
- });
- clearTimeout(this.timer);
- this.timer = setTimeout(() => {
- this.showPopup = false;
- }, 300);
- },
- // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容
- touchstart() {
- this.clearPropagation = false;
- },
- onTap() {
- if (this.clearPropagation) {
- this.clearPropagation = false;
- return;
- }
- this.$emit("maskClick");
- if (!this.mkclick)
- return;
- this.close();
- },
- /**
- * 顶部弹出样式处理
- */
- top(type) {
- this.popupstyle = this.isDesktop ? "fixforpc-top" : "top";
- this.ani = ["slide-top"];
- this.transClass = {
- position: "fixed",
- left: 0,
- right: 0,
- backgroundColor: this.bg
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- this.$nextTick(() => {
- if (this.messageChild && this.type === "message") {
- this.messageChild.timerClose();
- }
- });
- },
- /**
- * 底部弹出样式处理
- */
- bottom(type) {
- this.popupstyle = "bottom";
- this.ani = ["slide-bottom"];
- this.transClass = {
- position: "fixed",
- left: 0,
- right: 0,
- bottom: 0,
- paddingBottom: this.safeAreaInsets + "px",
- backgroundColor: this.bg
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- },
- /**
- * 中间弹出样式处理
- */
- center(type) {
- this.popupstyle = "center";
- this.ani = ["zoom-out", "fade"];
- this.transClass = {
- position: "fixed",
- display: "flex",
- flexDirection: "column",
- bottom: 0,
- left: 0,
- right: 0,
- top: 0,
- justifyContent: "center",
- alignItems: "center"
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- },
- left(type) {
- this.popupstyle = "left";
- this.ani = ["slide-left"];
- this.transClass = {
- position: "fixed",
- left: 0,
- bottom: 0,
- top: 0,
- backgroundColor: this.bg,
- display: "flex",
- flexDirection: "column"
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- },
- right(type) {
- this.popupstyle = "right";
- this.ani = ["slide-right"];
- this.transClass = {
- position: "fixed",
- bottom: 0,
- right: 0,
- top: 0,
- backgroundColor: this.bg,
- display: "flex",
- flexDirection: "column"
- };
- if (type)
- return;
- this.showPopup = true;
- this.showTrans = true;
- }
- }
- };
- function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$6);
- return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass(["uni-popup", [$data.popupstyle, $options.isDesktop ? "fixforpc-z-index" : ""]])
- },
- [
- vue.createElementVNode(
- "view",
- {
- onTouchstart: _cache[1] || (_cache[1] = (...args) => $options.touchstart && $options.touchstart(...args))
- },
- [
- $data.maskShow ? (vue.openBlock(), vue.createBlock(_component_uni_transition, {
- key: "1",
- name: "mask",
- "mode-class": "fade",
- styles: $data.maskClass,
- duration: $data.duration,
- show: $data.showTrans,
- onClick: $options.onTap
- }, null, 8, ["styles", "duration", "show", "onClick"])) : vue.createCommentVNode("v-if", true),
- vue.createVNode(_component_uni_transition, {
- key: "2",
- "mode-class": $data.ani,
- name: "content",
- styles: $data.transClass,
- duration: $data.duration,
- show: $data.showTrans,
- onClick: $options.onTap
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-popup__wrapper", [$data.popupstyle]]),
- style: vue.normalizeStyle({ backgroundColor: $options.bg }),
- onClick: _cache[0] || (_cache[0] = (...args) => $options.clear && $options.clear(...args))
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ]),
- _: 3
- /* FORWARDED */
- }, 8, ["mode-class", "styles", "duration", "show", "onClick"])
- ],
- 32
- /* NEED_HYDRATION */
- )
- ],
- 2
- /* CLASS */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_6 = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$v], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
- const isObject = (val) => val !== null && typeof val === "object";
- const defaultDelimiters = ["{", "}"];
- class BaseFormatter {
- constructor() {
- this._caches = /* @__PURE__ */ Object.create(null);
- }
- interpolate(message, values, delimiters = defaultDelimiters) {
- if (!values) {
- return [message];
- }
- let tokens = this._caches[message];
- if (!tokens) {
- tokens = parse(message, delimiters);
- this._caches[message] = tokens;
- }
- return compile(tokens, values);
- }
- }
- const RE_TOKEN_LIST_VALUE = /^(?:\d)+/;
- const RE_TOKEN_NAMED_VALUE = /^(?:\w)+/;
- function parse(format, [startDelimiter, endDelimiter]) {
- const tokens = [];
- let position = 0;
- let text = "";
- while (position < format.length) {
- let char = format[position++];
- if (char === startDelimiter) {
- if (text) {
- tokens.push({ type: "text", value: text });
- }
- text = "";
- let sub = "";
- char = format[position++];
- while (char !== void 0 && char !== endDelimiter) {
- sub += char;
- char = format[position++];
- }
- const isClosed = char === endDelimiter;
- const type = RE_TOKEN_LIST_VALUE.test(sub) ? "list" : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? "named" : "unknown";
- tokens.push({ value: sub, type });
- } else {
- text += char;
- }
- }
- text && tokens.push({ type: "text", value: text });
- return tokens;
- }
- function compile(tokens, values) {
- const compiled = [];
- let index = 0;
- const mode = Array.isArray(values) ? "list" : isObject(values) ? "named" : "unknown";
- if (mode === "unknown") {
- return compiled;
- }
- while (index < tokens.length) {
- const token = tokens[index];
- switch (token.type) {
- case "text":
- compiled.push(token.value);
- break;
- case "list":
- compiled.push(values[parseInt(token.value, 10)]);
- break;
- case "named":
- if (mode === "named") {
- compiled.push(values[token.value]);
- } else {
- {
- console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);
- }
- }
- break;
- case "unknown":
- {
- console.warn(`Detect 'unknown' type of token!`);
- }
- break;
- }
- index++;
- }
- return compiled;
- }
- const LOCALE_ZH_HANS = "zh-Hans";
- const LOCALE_ZH_HANT = "zh-Hant";
- const LOCALE_EN = "en";
- const LOCALE_FR = "fr";
- const LOCALE_ES = "es";
- const hasOwnProperty = Object.prototype.hasOwnProperty;
- const hasOwn = (val, key) => hasOwnProperty.call(val, key);
- const defaultFormatter = new BaseFormatter();
- function include(str, parts) {
- return !!parts.find((part) => str.indexOf(part) !== -1);
- }
- function startsWith(str, parts) {
- return parts.find((part) => str.indexOf(part) === 0);
- }
- function normalizeLocale(locale, messages2) {
- if (!locale) {
- return;
- }
- locale = locale.trim().replace(/_/g, "-");
- if (messages2 && messages2[locale]) {
- return locale;
- }
- locale = locale.toLowerCase();
- if (locale === "chinese") {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf("zh") === 0) {
- if (locale.indexOf("-hans") > -1) {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf("-hant") > -1) {
- return LOCALE_ZH_HANT;
- }
- if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) {
- return LOCALE_ZH_HANT;
- }
- return LOCALE_ZH_HANS;
- }
- let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];
- if (messages2 && Object.keys(messages2).length > 0) {
- locales = Object.keys(messages2);
- }
- const lang = startsWith(locale, locales);
- if (lang) {
- return lang;
- }
- }
- class I18n {
- constructor({ locale, fallbackLocale, messages: messages2, watcher, formater: formater2 }) {
- this.locale = LOCALE_EN;
- this.fallbackLocale = LOCALE_EN;
- this.message = {};
- this.messages = {};
- this.watchers = [];
- if (fallbackLocale) {
- this.fallbackLocale = fallbackLocale;
- }
- this.formater = formater2 || defaultFormatter;
- this.messages = messages2 || {};
- this.setLocale(locale || LOCALE_EN);
- if (watcher) {
- this.watchLocale(watcher);
- }
- }
- setLocale(locale) {
- const oldLocale = this.locale;
- this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;
- if (!this.messages[this.locale]) {
- this.messages[this.locale] = {};
- }
- this.message = this.messages[this.locale];
- if (oldLocale !== this.locale) {
- this.watchers.forEach((watcher) => {
- watcher(this.locale, oldLocale);
- });
- }
- }
- getLocale() {
- return this.locale;
- }
- watchLocale(fn) {
- const index = this.watchers.push(fn) - 1;
- return () => {
- this.watchers.splice(index, 1);
- };
- }
- add(locale, message, override = true) {
- const curMessages = this.messages[locale];
- if (curMessages) {
- if (override) {
- Object.assign(curMessages, message);
- } else {
- Object.keys(message).forEach((key) => {
- if (!hasOwn(curMessages, key)) {
- curMessages[key] = message[key];
- }
- });
- }
- } else {
- this.messages[locale] = message;
- }
- }
- f(message, values, delimiters) {
- return this.formater.interpolate(message, values, delimiters).join("");
- }
- t(key, locale, values) {
- let message = this.message;
- if (typeof locale === "string") {
- locale = normalizeLocale(locale, this.messages);
- locale && (message = this.messages[locale]);
- } else {
- values = locale;
- }
- if (!hasOwn(message, key)) {
- console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);
- return key;
- }
- return this.formater.interpolate(message[key], values).join("");
- }
- }
- function watchAppLocale(appVm, i18n) {
- if (appVm.$watchLocale) {
- appVm.$watchLocale((newLocale) => {
- i18n.setLocale(newLocale);
- });
- } else {
- appVm.$watch(() => appVm.$locale, (newLocale) => {
- i18n.setLocale(newLocale);
- });
- }
- }
- function getDefaultLocale() {
- if (typeof uni !== "undefined" && uni.getLocale) {
- return uni.getLocale();
- }
- if (typeof global !== "undefined" && global.getLocale) {
- return global.getLocale();
- }
- return LOCALE_EN;
- }
- function initVueI18n(locale, messages2 = {}, fallbackLocale, watcher) {
- if (typeof locale !== "string") {
- const options = [
- messages2,
- locale
- ];
- locale = options[0];
- messages2 = options[1];
- }
- if (typeof locale !== "string") {
- locale = getDefaultLocale();
- }
- if (typeof fallbackLocale !== "string") {
- fallbackLocale = typeof __uniConfig !== "undefined" && __uniConfig.fallbackLocale || LOCALE_EN;
- }
- const i18n = new I18n({
- locale,
- fallbackLocale,
- messages: messages2,
- watcher
- });
- let t2 = (key, values) => {
- if (typeof getApp !== "function") {
- t2 = function(key2, values2) {
- return i18n.t(key2, values2);
- };
- } else {
- let isWatchedAppLocale = false;
- t2 = function(key2, values2) {
- const appVm = getApp().$vm;
- if (appVm) {
- appVm.$locale;
- if (!isWatchedAppLocale) {
- isWatchedAppLocale = true;
- watchAppLocale(appVm, i18n);
- }
- }
- return i18n.t(key2, values2);
- };
- }
- return t2(key, values);
- };
- return {
- i18n,
- f(message, values, delimiters) {
- return i18n.f(message, values, delimiters);
- },
- t(key, values) {
- return t2(key, values);
- },
- add(locale2, message, override = true) {
- return i18n.add(locale2, message, override);
- },
- watch(fn) {
- return i18n.watchLocale(fn);
- },
- getLocale() {
- return i18n.getLocale();
- },
- setLocale(newLocale) {
- return i18n.setLocale(newLocale);
- }
- };
- }
- const en$1 = {
- "uni-popup.cancel": "cancel",
- "uni-popup.ok": "ok",
- "uni-popup.placeholder": "pleace enter",
- "uni-popup.title": "Hint",
- "uni-popup.shareTitle": "Share to"
- };
- const zhHans$1 = {
- "uni-popup.cancel": "取消",
- "uni-popup.ok": "确定",
- "uni-popup.placeholder": "请输入",
- "uni-popup.title": "提示",
- "uni-popup.shareTitle": "分享到"
- };
- const zhHant$1 = {
- "uni-popup.cancel": "取消",
- "uni-popup.ok": "確定",
- "uni-popup.placeholder": "請輸入",
- "uni-popup.title": "提示",
- "uni-popup.shareTitle": "分享到"
- };
- const messages$1 = {
- en: en$1,
- "zh-Hans": zhHans$1,
- "zh-Hant": zhHant$1
- };
- const { t: t$2 } = initVueI18n(messages$1);
- const _sfc_main$v = {
- name: "uniPopupDialog",
- mixins: [popup],
- emits: ["confirm", "close"],
- props: {
- inputType: {
- type: String,
- default: "text"
- },
- value: {
- type: [String, Number],
- default: ""
- },
- placeholder: {
- type: [String, Number],
- default: ""
- },
- type: {
- type: String,
- default: "error"
- },
- mode: {
- type: String,
- default: "base"
- },
- title: {
- type: String,
- default: ""
- },
- content: {
- type: String,
- default: ""
- },
- beforeClose: {
- type: Boolean,
- default: false
- },
- cancelText: {
- type: String,
- default: ""
- },
- confirmText: {
- type: String,
- default: ""
- }
- },
- data() {
- return {
- dialogType: "error",
- focus: false,
- val: ""
- };
- },
- computed: {
- okText() {
- return this.confirmText || t$2("uni-popup.ok");
- },
- closeText() {
- return this.cancelText || t$2("uni-popup.cancel");
- },
- placeholderText() {
- return this.placeholder || t$2("uni-popup.placeholder");
- },
- titleText() {
- return this.title || t$2("uni-popup.title");
- }
- },
- watch: {
- type(val) {
- this.dialogType = val;
- },
- mode(val) {
- if (val === "input") {
- this.dialogType = "info";
- }
- },
- value(val) {
- this.val = val;
- }
- },
- created() {
- this.popup.disableMask();
- if (this.mode === "input") {
- this.dialogType = "info";
- this.val = this.value;
- } else {
- this.dialogType = this.type;
- }
- },
- mounted() {
- this.focus = true;
- },
- methods: {
- /**
- * 点击确认按钮
- */
- onOk() {
- if (this.mode === "input") {
- this.$emit("confirm", this.val);
- } else {
- this.$emit("confirm");
- }
- if (this.beforeClose)
- return;
- this.popup.close();
- },
- /**
- * 点击取消按钮
- */
- closeDialog() {
- this.$emit("close");
- if (this.beforeClose)
- return;
- this.popup.close();
- },
- close() {
- this.popup.close();
- }
- }
- };
- function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-popup-dialog" }, [
- vue.createElementVNode("view", { class: "uni-dialog-title" }, [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass(["uni-dialog-title-text", ["uni-popup__" + $data.dialogType]])
- },
- vue.toDisplayString($options.titleText),
- 3
- /* TEXT, CLASS */
- )
- ]),
- $props.mode === "base" ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-dialog-content"
- }, [
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
- vue.createElementVNode(
- "text",
- { class: "uni-dialog-content-text" },
- vue.toDisplayString($props.content),
- 1
- /* TEXT */
- )
- ], true)
- ])) : (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "uni-dialog-content"
- }, [
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
- vue.withDirectives(vue.createElementVNode("input", {
- class: "uni-dialog-input",
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.val = $event),
- type: $props.inputType,
- placeholder: $options.placeholderText,
- focus: $data.focus
- }, null, 8, ["type", "placeholder", "focus"]), [
- [vue.vModelDynamic, $data.val]
- ])
- ], true)
- ])),
- vue.createElementVNode("view", { class: "uni-dialog-button-group" }, [
- vue.createElementVNode("view", {
- class: "uni-dialog-button",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.closeDialog && $options.closeDialog(...args))
- }, [
- vue.createElementVNode(
- "text",
- { class: "uni-dialog-button-text" },
- vue.toDisplayString($options.closeText),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", {
- class: "uni-dialog-button uni-border-left",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.onOk && $options.onOk(...args))
- }, [
- vue.createElementVNode(
- "text",
- { class: "uni-dialog-button-text uni-button-color" },
- vue.toDisplayString($options.okText),
- 1
- /* TEXT */
- )
- ])
- ])
- ]);
- }
- const __easycom_0$5 = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$u], ["__scopeId", "data-v-d78c88b7"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"]]);
- const pages = [
- {
- path: "pages/home/index",
- style: {
- navigationBarTitleText: "英途仓库"
- }
- },
- {
- path: "pages/weigh/index",
- style: {
- navigationBarTitleText: "称重",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/weigh/instockLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/inbound/index",
- style: {
- navigationBarTitleText: "入库",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/inbound/instockLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/outbound/index",
- style: {
- navigationBarTitleText: "出库",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/outbound/instockLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/profile/index",
- style: {
- navigationBarTitleText: "我的"
- }
- },
- {
- path: "pages/login/index",
- style: {
- navigationBarTitleText: "登录"
- }
- },
- {
- path: "pages/order/index",
- style: {
- navigationBarTitleText: "ORDER"
- }
- },
- {
- path: "pages/scanLotno/index",
- style: {
- navigationBarTitleText: "托盘/批次",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/scanLotno/lotnoLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/scanLotno/waybillsList",
- style: {
- navigationBarTitleText: "运单列表"
- }
- },
- {
- path: "pages/warehouseScan/index",
- style: {
- navigationBarTitleText: "仓库扫描",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/warehouseScan/warehouseLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/waybillNo/index",
- style: {
- navigationBarTitleText: "库位绑定",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "历史"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/waybillNo/waybillNoLog",
- style: {
- navigationBarTitleText: "录入历史"
- }
- },
- {
- path: "pages/waybillDeliveryOrder/index",
- style: {
- navigationBarTitleText: "派送单",
- "app-plus": {
- bounce: "none",
- titleNView: {
- buttons: [
- {
- fontSize: "16px",
- text: "筛选"
- }
- ],
- backButton: {
- background: "#00FF00"
- }
- }
- }
- }
- },
- {
- path: "pages/waybillDeliveryOrder/orderInfo",
- style: {
- navigationBarTitleText: "派送详情"
- }
- },
- {
- path: "pages/printer/index",
- style: {
- navigationBarTitleText: "打印"
- }
- },
- {
- path: "pages/printer/label",
- style: {
- navigationBarTitleText: "打印Label"
- }
- }
- ];
- const globalStyle = {
- navigationBarTextStyle: "black",
- navigationBarTitleText: "uni-app",
- navigationBarBackgroundColor: "#F8F8F8",
- backgroundColor: "#F8F8F8"
- };
- const tabBar = {
- color: "#7A7E83",
- selectedColor: "#007AFF",
- borderStyle: "black",
- backgroundColor: "#F8F8F8",
- list: [
- {
- pagePath: "pages/home/index",
- iconPath: "static/home.png",
- selectedIconPath: "static/home_fill.png",
- text: "首页"
- },
- {
- pagePath: "pages/profile/index",
- iconPath: "static/people.png",
- selectedIconPath: "static/people_fill.png",
- text: "我的"
- }
- ]
- };
- const uniIdRouter = {};
- const e = {
- pages,
- globalStyle,
- tabBar,
- uniIdRouter
- };
- var define_process_env_UNI_SECURE_NETWORK_CONFIG_default = [];
- function t$1(e2) {
- return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2;
- }
- function n(e2, t2, n2) {
- return e2(n2 = { path: t2, exports: {}, require: function(e3, t3) {
- return function() {
- throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
- }(null == t3 && n2.path);
- } }, n2.exports), n2.exports;
- }
- var s = n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = n2 || function(e3, t3) {
- var n3 = Object.create || /* @__PURE__ */ function() {
- function e4() {
- }
- return function(t4) {
- var n4;
- return e4.prototype = t4, n4 = new e4(), e4.prototype = null, n4;
- };
- }(), s2 = {}, r2 = s2.lib = {}, i2 = r2.Base = { extend: function(e4) {
- var t4 = n3(this);
- return e4 && t4.mixIn(e4), t4.hasOwnProperty("init") && this.init !== t4.init || (t4.init = function() {
- t4.$super.init.apply(this, arguments);
- }), t4.init.prototype = t4, t4.$super = this, t4;
- }, create: function() {
- var e4 = this.extend();
- return e4.init.apply(e4, arguments), e4;
- }, init: function() {
- }, mixIn: function(e4) {
- for (var t4 in e4)
- e4.hasOwnProperty(t4) && (this[t4] = e4[t4]);
- e4.hasOwnProperty("toString") && (this.toString = e4.toString);
- }, clone: function() {
- return this.init.prototype.extend(this);
- } }, o2 = r2.WordArray = i2.extend({ init: function(e4, n4) {
- e4 = this.words = e4 || [], this.sigBytes = n4 != t3 ? n4 : 4 * e4.length;
- }, toString: function(e4) {
- return (e4 || c2).stringify(this);
- }, concat: function(e4) {
- var t4 = this.words, n4 = e4.words, s3 = this.sigBytes, r3 = e4.sigBytes;
- if (this.clamp(), s3 % 4)
- for (var i3 = 0; i3 < r3; i3++) {
- var o3 = n4[i3 >>> 2] >>> 24 - i3 % 4 * 8 & 255;
- t4[s3 + i3 >>> 2] |= o3 << 24 - (s3 + i3) % 4 * 8;
- }
- else
- for (i3 = 0; i3 < r3; i3 += 4)
- t4[s3 + i3 >>> 2] = n4[i3 >>> 2];
- return this.sigBytes += r3, this;
- }, clamp: function() {
- var t4 = this.words, n4 = this.sigBytes;
- t4[n4 >>> 2] &= 4294967295 << 32 - n4 % 4 * 8, t4.length = e3.ceil(n4 / 4);
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4.words = this.words.slice(0), e4;
- }, random: function(t4) {
- for (var n4, s3 = [], r3 = function(t5) {
- var n5 = 987654321, s4 = 4294967295;
- return function() {
- var r4 = ((n5 = 36969 * (65535 & n5) + (n5 >> 16) & s4) << 16) + (t5 = 18e3 * (65535 & t5) + (t5 >> 16) & s4) & s4;
- return r4 /= 4294967296, (r4 += 0.5) * (e3.random() > 0.5 ? 1 : -1);
- };
- }, i3 = 0; i3 < t4; i3 += 4) {
- var a3 = r3(4294967296 * (n4 || e3.random()));
- n4 = 987654071 * a3(), s3.push(4294967296 * a3() | 0);
- }
- return new o2.init(s3, t4);
- } }), a2 = s2.enc = {}, c2 = a2.Hex = { stringify: function(e4) {
- for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) {
- var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255;
- s3.push((i3 >>> 4).toString(16)), s3.push((15 & i3).toString(16));
- }
- return s3.join("");
- }, parse: function(e4) {
- for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3 += 2)
- n4[s3 >>> 3] |= parseInt(e4.substr(s3, 2), 16) << 24 - s3 % 8 * 4;
- return new o2.init(n4, t4 / 2);
- } }, u2 = a2.Latin1 = { stringify: function(e4) {
- for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) {
- var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255;
- s3.push(String.fromCharCode(i3));
- }
- return s3.join("");
- }, parse: function(e4) {
- for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3++)
- n4[s3 >>> 2] |= (255 & e4.charCodeAt(s3)) << 24 - s3 % 4 * 8;
- return new o2.init(n4, t4);
- } }, h2 = a2.Utf8 = { stringify: function(e4) {
- try {
- return decodeURIComponent(escape(u2.stringify(e4)));
- } catch (e5) {
- throw new Error("Malformed UTF-8 data");
- }
- }, parse: function(e4) {
- return u2.parse(unescape(encodeURIComponent(e4)));
- } }, l2 = r2.BufferedBlockAlgorithm = i2.extend({ reset: function() {
- this._data = new o2.init(), this._nDataBytes = 0;
- }, _append: function(e4) {
- "string" == typeof e4 && (e4 = h2.parse(e4)), this._data.concat(e4), this._nDataBytes += e4.sigBytes;
- }, _process: function(t4) {
- var n4 = this._data, s3 = n4.words, r3 = n4.sigBytes, i3 = this.blockSize, a3 = r3 / (4 * i3), c3 = (a3 = t4 ? e3.ceil(a3) : e3.max((0 | a3) - this._minBufferSize, 0)) * i3, u3 = e3.min(4 * c3, r3);
- if (c3) {
- for (var h3 = 0; h3 < c3; h3 += i3)
- this._doProcessBlock(s3, h3);
- var l3 = s3.splice(0, c3);
- n4.sigBytes -= u3;
- }
- return new o2.init(l3, u3);
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4._data = this._data.clone(), e4;
- }, _minBufferSize: 0 });
- r2.Hasher = l2.extend({ cfg: i2.extend(), init: function(e4) {
- this.cfg = this.cfg.extend(e4), this.reset();
- }, reset: function() {
- l2.reset.call(this), this._doReset();
- }, update: function(e4) {
- return this._append(e4), this._process(), this;
- }, finalize: function(e4) {
- return e4 && this._append(e4), this._doFinalize();
- }, blockSize: 16, _createHelper: function(e4) {
- return function(t4, n4) {
- return new e4.init(n4).finalize(t4);
- };
- }, _createHmacHelper: function(e4) {
- return function(t4, n4) {
- return new d2.HMAC.init(e4, n4).finalize(t4);
- };
- } });
- var d2 = s2.algo = {};
- return s2;
- }(Math), n2);
- }), r = s, i = (n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, function(e3) {
- var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = [];
- !function() {
- for (var t4 = 0; t4 < 64; t4++)
- a2[t4] = 4294967296 * e3.abs(e3.sin(t4 + 1)) | 0;
- }();
- var c2 = o2.MD5 = i2.extend({ _doReset: function() {
- this._hash = new r2.init([1732584193, 4023233417, 2562383102, 271733878]);
- }, _doProcessBlock: function(e4, t4) {
- for (var n3 = 0; n3 < 16; n3++) {
- var s3 = t4 + n3, r3 = e4[s3];
- e4[s3] = 16711935 & (r3 << 8 | r3 >>> 24) | 4278255360 & (r3 << 24 | r3 >>> 8);
- }
- var i3 = this._hash.words, o3 = e4[t4 + 0], c3 = e4[t4 + 1], p2 = e4[t4 + 2], f2 = e4[t4 + 3], g2 = e4[t4 + 4], m2 = e4[t4 + 5], y2 = e4[t4 + 6], _2 = e4[t4 + 7], w2 = e4[t4 + 8], v2 = e4[t4 + 9], I2 = e4[t4 + 10], S2 = e4[t4 + 11], T2 = e4[t4 + 12], b2 = e4[t4 + 13], E2 = e4[t4 + 14], k2 = e4[t4 + 15], P2 = i3[0], C2 = i3[1], A2 = i3[2], O2 = i3[3];
- P2 = u2(P2, C2, A2, O2, o3, 7, a2[0]), O2 = u2(O2, P2, C2, A2, c3, 12, a2[1]), A2 = u2(A2, O2, P2, C2, p2, 17, a2[2]), C2 = u2(C2, A2, O2, P2, f2, 22, a2[3]), P2 = u2(P2, C2, A2, O2, g2, 7, a2[4]), O2 = u2(O2, P2, C2, A2, m2, 12, a2[5]), A2 = u2(A2, O2, P2, C2, y2, 17, a2[6]), C2 = u2(C2, A2, O2, P2, _2, 22, a2[7]), P2 = u2(P2, C2, A2, O2, w2, 7, a2[8]), O2 = u2(O2, P2, C2, A2, v2, 12, a2[9]), A2 = u2(A2, O2, P2, C2, I2, 17, a2[10]), C2 = u2(C2, A2, O2, P2, S2, 22, a2[11]), P2 = u2(P2, C2, A2, O2, T2, 7, a2[12]), O2 = u2(O2, P2, C2, A2, b2, 12, a2[13]), A2 = u2(A2, O2, P2, C2, E2, 17, a2[14]), P2 = h2(P2, C2 = u2(C2, A2, O2, P2, k2, 22, a2[15]), A2, O2, c3, 5, a2[16]), O2 = h2(O2, P2, C2, A2, y2, 9, a2[17]), A2 = h2(A2, O2, P2, C2, S2, 14, a2[18]), C2 = h2(C2, A2, O2, P2, o3, 20, a2[19]), P2 = h2(P2, C2, A2, O2, m2, 5, a2[20]), O2 = h2(O2, P2, C2, A2, I2, 9, a2[21]), A2 = h2(A2, O2, P2, C2, k2, 14, a2[22]), C2 = h2(C2, A2, O2, P2, g2, 20, a2[23]), P2 = h2(P2, C2, A2, O2, v2, 5, a2[24]), O2 = h2(O2, P2, C2, A2, E2, 9, a2[25]), A2 = h2(A2, O2, P2, C2, f2, 14, a2[26]), C2 = h2(C2, A2, O2, P2, w2, 20, a2[27]), P2 = h2(P2, C2, A2, O2, b2, 5, a2[28]), O2 = h2(O2, P2, C2, A2, p2, 9, a2[29]), A2 = h2(A2, O2, P2, C2, _2, 14, a2[30]), P2 = l2(P2, C2 = h2(C2, A2, O2, P2, T2, 20, a2[31]), A2, O2, m2, 4, a2[32]), O2 = l2(O2, P2, C2, A2, w2, 11, a2[33]), A2 = l2(A2, O2, P2, C2, S2, 16, a2[34]), C2 = l2(C2, A2, O2, P2, E2, 23, a2[35]), P2 = l2(P2, C2, A2, O2, c3, 4, a2[36]), O2 = l2(O2, P2, C2, A2, g2, 11, a2[37]), A2 = l2(A2, O2, P2, C2, _2, 16, a2[38]), C2 = l2(C2, A2, O2, P2, I2, 23, a2[39]), P2 = l2(P2, C2, A2, O2, b2, 4, a2[40]), O2 = l2(O2, P2, C2, A2, o3, 11, a2[41]), A2 = l2(A2, O2, P2, C2, f2, 16, a2[42]), C2 = l2(C2, A2, O2, P2, y2, 23, a2[43]), P2 = l2(P2, C2, A2, O2, v2, 4, a2[44]), O2 = l2(O2, P2, C2, A2, T2, 11, a2[45]), A2 = l2(A2, O2, P2, C2, k2, 16, a2[46]), P2 = d2(P2, C2 = l2(C2, A2, O2, P2, p2, 23, a2[47]), A2, O2, o3, 6, a2[48]), O2 = d2(O2, P2, C2, A2, _2, 10, a2[49]), A2 = d2(A2, O2, P2, C2, E2, 15, a2[50]), C2 = d2(C2, A2, O2, P2, m2, 21, a2[51]), P2 = d2(P2, C2, A2, O2, T2, 6, a2[52]), O2 = d2(O2, P2, C2, A2, f2, 10, a2[53]), A2 = d2(A2, O2, P2, C2, I2, 15, a2[54]), C2 = d2(C2, A2, O2, P2, c3, 21, a2[55]), P2 = d2(P2, C2, A2, O2, w2, 6, a2[56]), O2 = d2(O2, P2, C2, A2, k2, 10, a2[57]), A2 = d2(A2, O2, P2, C2, y2, 15, a2[58]), C2 = d2(C2, A2, O2, P2, b2, 21, a2[59]), P2 = d2(P2, C2, A2, O2, g2, 6, a2[60]), O2 = d2(O2, P2, C2, A2, S2, 10, a2[61]), A2 = d2(A2, O2, P2, C2, p2, 15, a2[62]), C2 = d2(C2, A2, O2, P2, v2, 21, a2[63]), i3[0] = i3[0] + P2 | 0, i3[1] = i3[1] + C2 | 0, i3[2] = i3[2] + A2 | 0, i3[3] = i3[3] + O2 | 0;
- }, _doFinalize: function() {
- var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes;
- n3[r3 >>> 5] |= 128 << 24 - r3 % 32;
- var i3 = e3.floor(s3 / 4294967296), o3 = s3;
- n3[15 + (r3 + 64 >>> 9 << 4)] = 16711935 & (i3 << 8 | i3 >>> 24) | 4278255360 & (i3 << 24 | i3 >>> 8), n3[14 + (r3 + 64 >>> 9 << 4)] = 16711935 & (o3 << 8 | o3 >>> 24) | 4278255360 & (o3 << 24 | o3 >>> 8), t4.sigBytes = 4 * (n3.length + 1), this._process();
- for (var a3 = this._hash, c3 = a3.words, u3 = 0; u3 < 4; u3++) {
- var h3 = c3[u3];
- c3[u3] = 16711935 & (h3 << 8 | h3 >>> 24) | 4278255360 & (h3 << 24 | h3 >>> 8);
- }
- return a3;
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4._hash = this._hash.clone(), e4;
- } });
- function u2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (t4 & n3 | ~t4 & s3) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- function h2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (t4 & s3 | n3 & ~s3) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- function l2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (t4 ^ n3 ^ s3) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- function d2(e4, t4, n3, s3, r3, i3, o3) {
- var a3 = e4 + (n3 ^ (t4 | ~s3)) + r3 + o3;
- return (a3 << i3 | a3 >>> 32 - i3) + t4;
- }
- t3.MD5 = i2._createHelper(c2), t3.HmacMD5 = i2._createHmacHelper(c2);
- }(Math), n2.MD5);
- }), n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, void function() {
- var e3 = n2, t3 = e3.lib.Base, s2 = e3.enc.Utf8;
- e3.algo.HMAC = t3.extend({ init: function(e4, t4) {
- e4 = this._hasher = new e4.init(), "string" == typeof t4 && (t4 = s2.parse(t4));
- var n3 = e4.blockSize, r2 = 4 * n3;
- t4.sigBytes > r2 && (t4 = e4.finalize(t4)), t4.clamp();
- for (var i2 = this._oKey = t4.clone(), o2 = this._iKey = t4.clone(), a2 = i2.words, c2 = o2.words, u2 = 0; u2 < n3; u2++)
- a2[u2] ^= 1549556828, c2[u2] ^= 909522486;
- i2.sigBytes = o2.sigBytes = r2, this.reset();
- }, reset: function() {
- var e4 = this._hasher;
- e4.reset(), e4.update(this._iKey);
- }, update: function(e4) {
- return this._hasher.update(e4), this;
- }, finalize: function(e4) {
- var t4 = this._hasher, n3 = t4.finalize(e4);
- return t4.reset(), t4.finalize(this._oKey.clone().concat(n3));
- } });
- }());
- }), n(function(e2, t2) {
- e2.exports = r.HmacMD5;
- })), o = n(function(e2, t2) {
- e2.exports = r.enc.Utf8;
- }), a = n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, function() {
- var e3 = n2, t3 = e3.lib.WordArray;
- function s2(e4, n3, s3) {
- for (var r2 = [], i2 = 0, o2 = 0; o2 < n3; o2++)
- if (o2 % 4) {
- var a2 = s3[e4.charCodeAt(o2 - 1)] << o2 % 4 * 2, c2 = s3[e4.charCodeAt(o2)] >>> 6 - o2 % 4 * 2;
- r2[i2 >>> 2] |= (a2 | c2) << 24 - i2 % 4 * 8, i2++;
- }
- return t3.create(r2, i2);
- }
- e3.enc.Base64 = { stringify: function(e4) {
- var t4 = e4.words, n3 = e4.sigBytes, s3 = this._map;
- e4.clamp();
- for (var r2 = [], i2 = 0; i2 < n3; i2 += 3)
- for (var o2 = (t4[i2 >>> 2] >>> 24 - i2 % 4 * 8 & 255) << 16 | (t4[i2 + 1 >>> 2] >>> 24 - (i2 + 1) % 4 * 8 & 255) << 8 | t4[i2 + 2 >>> 2] >>> 24 - (i2 + 2) % 4 * 8 & 255, a2 = 0; a2 < 4 && i2 + 0.75 * a2 < n3; a2++)
- r2.push(s3.charAt(o2 >>> 6 * (3 - a2) & 63));
- var c2 = s3.charAt(64);
- if (c2)
- for (; r2.length % 4; )
- r2.push(c2);
- return r2.join("");
- }, parse: function(e4) {
- var t4 = e4.length, n3 = this._map, r2 = this._reverseMap;
- if (!r2) {
- r2 = this._reverseMap = [];
- for (var i2 = 0; i2 < n3.length; i2++)
- r2[n3.charCodeAt(i2)] = i2;
- }
- var o2 = n3.charAt(64);
- if (o2) {
- var a2 = e4.indexOf(o2);
- -1 !== a2 && (t4 = a2);
- }
- return s2(e4, t4, r2);
- }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" };
- }(), n2.enc.Base64);
- });
- const c = "uni_id_token", u = "uni_id_token_expired", h = "uniIdToken", l = { DEFAULT: "FUNCTION", FUNCTION: "FUNCTION", OBJECT: "OBJECT", CLIENT_DB: "CLIENT_DB" }, d = "pending", p = "fulfilled", f = "rejected";
- function g(e2) {
- return Object.prototype.toString.call(e2).slice(8, -1).toLowerCase();
- }
- function m(e2) {
- return "object" === g(e2);
- }
- function y(e2) {
- return "function" == typeof e2;
- }
- function _(e2) {
- return function() {
- try {
- return e2.apply(e2, arguments);
- } catch (e3) {
- console.error(e3);
- }
- };
- }
- const w = "REJECTED", v = "NOT_PENDING";
- class I {
- constructor({ createPromise: e2, retryRule: t2 = w } = {}) {
- this.createPromise = e2, this.status = null, this.promise = null, this.retryRule = t2;
- }
- get needRetry() {
- if (!this.status)
- return true;
- switch (this.retryRule) {
- case w:
- return this.status === f;
- case v:
- return this.status !== d;
- }
- }
- exec() {
- return this.needRetry ? (this.status = d, this.promise = this.createPromise().then((e2) => (this.status = p, Promise.resolve(e2)), (e2) => (this.status = f, Promise.reject(e2))), this.promise) : this.promise;
- }
- }
- class S {
- constructor() {
- this._callback = {};
- }
- addListener(e2, t2) {
- this._callback[e2] || (this._callback[e2] = []), this._callback[e2].push(t2);
- }
- on(e2, t2) {
- return this.addListener(e2, t2);
- }
- removeListener(e2, t2) {
- if (!t2)
- throw new Error('The "listener" argument must be of type function. Received undefined');
- const n2 = this._callback[e2];
- if (!n2)
- return;
- const s2 = function(e3, t3) {
- for (let n3 = e3.length - 1; n3 >= 0; n3--)
- if (e3[n3] === t3)
- return n3;
- return -1;
- }(n2, t2);
- n2.splice(s2, 1);
- }
- off(e2, t2) {
- return this.removeListener(e2, t2);
- }
- removeAllListener(e2) {
- delete this._callback[e2];
- }
- emit(e2, ...t2) {
- const n2 = this._callback[e2];
- if (n2)
- for (let e3 = 0; e3 < n2.length; e3++)
- n2[e3](...t2);
- }
- }
- function T(e2) {
- return e2 && "string" == typeof e2 ? JSON.parse(e2) : e2;
- }
- const b = true, E = "app", P = T(define_process_env_UNI_SECURE_NETWORK_CONFIG_default), C = E, A = T(""), O = T("[]") || [];
- let N = "";
- try {
- N = "__UNI__EE98A34";
- } catch (e2) {
- }
- let R, L = {};
- function U(e2, t2 = {}) {
- var n2, s2;
- return n2 = L, s2 = e2, Object.prototype.hasOwnProperty.call(n2, s2) || (L[e2] = t2), L[e2];
- }
- function D() {
- return R || (R = function() {
- if ("undefined" != typeof globalThis)
- return globalThis;
- if ("undefined" != typeof self)
- return self;
- if ("undefined" != typeof window)
- return window;
- function e2() {
- return this;
- }
- return void 0 !== e2() ? e2() : new Function("return this")();
- }(), R);
- }
- L = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {};
- const M = ["invoke", "success", "fail", "complete"], q = U("_globalUniCloudInterceptor");
- function F(e2, t2) {
- q[e2] || (q[e2] = {}), m(t2) && Object.keys(t2).forEach((n2) => {
- M.indexOf(n2) > -1 && function(e3, t3, n3) {
- let s2 = q[e3][t3];
- s2 || (s2 = q[e3][t3] = []), -1 === s2.indexOf(n3) && y(n3) && s2.push(n3);
- }(e2, n2, t2[n2]);
- });
- }
- function K(e2, t2) {
- q[e2] || (q[e2] = {}), m(t2) ? Object.keys(t2).forEach((n2) => {
- M.indexOf(n2) > -1 && function(e3, t3, n3) {
- const s2 = q[e3][t3];
- if (!s2)
- return;
- const r2 = s2.indexOf(n3);
- r2 > -1 && s2.splice(r2, 1);
- }(e2, n2, t2[n2]);
- }) : delete q[e2];
- }
- function j(e2, t2) {
- return e2 && 0 !== e2.length ? e2.reduce((e3, n2) => e3.then(() => n2(t2)), Promise.resolve()) : Promise.resolve();
- }
- function $(e2, t2) {
- return q[e2] && q[e2][t2] || [];
- }
- function B(e2) {
- F("callObject", e2);
- }
- const W = U("_globalUniCloudListener"), H = { RESPONSE: "response", NEED_LOGIN: "needLogin", REFRESH_TOKEN: "refreshToken" }, J = { CLIENT_DB: "clientdb", CLOUD_FUNCTION: "cloudfunction", CLOUD_OBJECT: "cloudobject" };
- function z(e2) {
- return W[e2] || (W[e2] = []), W[e2];
- }
- function V(e2, t2) {
- const n2 = z(e2);
- n2.includes(t2) || n2.push(t2);
- }
- function G(e2, t2) {
- const n2 = z(e2), s2 = n2.indexOf(t2);
- -1 !== s2 && n2.splice(s2, 1);
- }
- function Y(e2, t2) {
- const n2 = z(e2);
- for (let e3 = 0; e3 < n2.length; e3++) {
- (0, n2[e3])(t2);
- }
- }
- let Q, X = false;
- function Z() {
- return Q || (Q = new Promise((e2) => {
- X && e2(), function t2() {
- if ("function" == typeof getCurrentPages) {
- const t3 = getCurrentPages();
- t3 && t3[0] && (X = true, e2());
- }
- X || setTimeout(() => {
- t2();
- }, 30);
- }();
- }), Q);
- }
- function ee(e2) {
- const t2 = {};
- for (const n2 in e2) {
- const s2 = e2[n2];
- y(s2) && (t2[n2] = _(s2));
- }
- return t2;
- }
- class te extends Error {
- constructor(e2) {
- super(e2.message), this.errMsg = e2.message || e2.errMsg || "unknown system error", this.code = this.errCode = e2.code || e2.errCode || "SYSTEM_ERROR", this.errSubject = this.subject = e2.subject || e2.errSubject, this.cause = e2.cause, this.requestId = e2.requestId;
- }
- toJson(e2 = 0) {
- if (!(e2 >= 10))
- return e2++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e2) : this.cause };
- }
- }
- var ne = { request: (e2) => uni.request(e2), uploadFile: (e2) => uni.uploadFile(e2), setStorageSync: (e2, t2) => uni.setStorageSync(e2, t2), getStorageSync: (e2) => uni.getStorageSync(e2), removeStorageSync: (e2) => uni.removeStorageSync(e2), clearStorageSync: () => uni.clearStorageSync(), connectSocket: (e2) => uni.connectSocket(e2) };
- function se(e2) {
- return e2 && se(e2.__v_raw) || e2;
- }
- function re() {
- return { token: ne.getStorageSync(c) || ne.getStorageSync(h), tokenExpired: ne.getStorageSync(u) };
- }
- function ie({ token: e2, tokenExpired: t2 } = {}) {
- e2 && ne.setStorageSync(c, e2), t2 && ne.setStorageSync(u, t2);
- }
- let oe, ae;
- function ce() {
- return oe || (oe = uni.getSystemInfoSync()), oe;
- }
- function ue() {
- let e2, t2;
- try {
- if (uni.getLaunchOptionsSync) {
- if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1)
- return;
- const { scene: n2, channel: s2 } = uni.getLaunchOptionsSync();
- e2 = s2, t2 = n2;
- }
- } catch (e3) {
- }
- return { channel: e2, scene: t2 };
- }
- let he = {};
- function le() {
- const e2 = uni.getLocale && uni.getLocale() || "en";
- if (ae)
- return { ...he, ...ae, locale: e2, LOCALE: e2 };
- const t2 = ce(), { deviceId: n2, osName: s2, uniPlatform: r2, appId: i2 } = t2, o2 = ["appId", "appLanguage", "appName", "appVersion", "appVersionCode", "appWgtVersion", "browserName", "browserVersion", "deviceBrand", "deviceId", "deviceModel", "deviceType", "osName", "osVersion", "romName", "romVersion", "ua", "hostName", "hostVersion", "uniPlatform", "uniRuntimeVersion", "uniRuntimeVersionCode", "uniCompilerVersion", "uniCompilerVersionCode"];
- for (const e3 in t2)
- Object.hasOwnProperty.call(t2, e3) && -1 === o2.indexOf(e3) && delete t2[e3];
- return ae = { PLATFORM: r2, OS: s2, APPID: i2, DEVICEID: n2, ...ue(), ...t2 }, { ...he, ...ae, locale: e2, LOCALE: e2 };
- }
- var de = { sign: function(e2, t2) {
- let n2 = "";
- return Object.keys(e2).sort().forEach(function(t3) {
- e2[t3] && (n2 = n2 + "&" + t3 + "=" + e2[t3]);
- }), n2 = n2.slice(1), i(n2, t2).toString();
- }, wrappedRequest: function(e2, t2) {
- return new Promise((n2, s2) => {
- t2(Object.assign(e2, { complete(e3) {
- e3 || (e3 = {});
- const t3 = e3.data && e3.data.header && e3.data.header["x-serverless-request-id"] || e3.header && e3.header["request-id"];
- if (!e3.statusCode || e3.statusCode >= 400) {
- const n3 = e3.data && e3.data.error && e3.data.error.code || "SYS_ERR", r3 = e3.data && e3.data.error && e3.data.error.message || e3.errMsg || "request:fail";
- return s2(new te({ code: n3, message: r3, requestId: t3 }));
- }
- const r2 = e3.data;
- if (r2.error)
- return s2(new te({ code: r2.error.code, message: r2.error.message, requestId: t3 }));
- r2.result = r2.data, r2.requestId = t3, delete r2.data, n2(r2);
- } }));
- });
- }, toBase64: function(e2) {
- return a.stringify(o.parse(e2));
- } };
- var pe = class {
- constructor(e2) {
- ["spaceId", "clientSecret"].forEach((t2) => {
- if (!Object.prototype.hasOwnProperty.call(e2, t2))
- throw new Error(`${t2} required`);
- }), this.config = Object.assign({}, { endpoint: 0 === e2.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e2), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = ne, this._getAccessTokenPromiseHub = new I({ createPromise: () => this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then((e3) => {
- if (!e3.result || !e3.result.accessToken)
- throw new te({ code: "AUTH_FAILED", message: "获取accessToken失败" });
- this.setAccessToken(e3.result.accessToken);
- }), retryRule: v });
- }
- get hasAccessToken() {
- return !!this.accessToken;
- }
- setAccessToken(e2) {
- this.accessToken = e2;
- }
- requestWrapped(e2) {
- return de.wrappedRequest(e2, this.adapter.request);
- }
- requestAuth(e2) {
- return this.requestWrapped(e2);
- }
- request(e2, t2) {
- return Promise.resolve().then(() => this.hasAccessToken ? t2 ? this.requestWrapped(e2) : this.requestWrapped(e2).catch((t3) => new Promise((e3, n2) => {
- !t3 || "GATEWAY_INVALID_TOKEN" !== t3.code && "InvalidParameter.InvalidToken" !== t3.code ? n2(t3) : e3();
- }).then(() => this.getAccessToken()).then(() => {
- const t4 = this.rebuildRequest(e2);
- return this.request(t4, true);
- })) : this.getAccessToken().then(() => {
- const t3 = this.rebuildRequest(e2);
- return this.request(t3, true);
- }));
- }
- rebuildRequest(e2) {
- const t2 = Object.assign({}, e2);
- return t2.data.token = this.accessToken, t2.header["x-basement-token"] = this.accessToken, t2.header["x-serverless-sign"] = de.sign(t2.data, this.config.clientSecret), t2;
- }
- setupRequest(e2, t2) {
- const n2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), s2 = { "Content-Type": "application/json" };
- return "auth" !== t2 && (n2.token = this.accessToken, s2["x-basement-token"] = this.accessToken), s2["x-serverless-sign"] = de.sign(n2, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n2, dataType: "json", header: s2 };
- }
- getAccessToken() {
- return this._getAccessTokenPromiseHub.exec();
- }
- async authorize() {
- await this.getAccessToken();
- }
- callFunction(e2) {
- const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) };
- return this.request({ ...this.setupRequest(t2), timeout: e2.timeout });
- }
- getOSSUploadOptionsFromPath(e2) {
- const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) };
- return this.request(this.setupRequest(t2));
- }
- uploadFileToOSS({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, onUploadProgress: i2 }) {
- return new Promise((o2, a2) => {
- const c2 = this.adapter.uploadFile({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, header: { "X-OSS-server-side-encrpytion": "AES256" }, success(e3) {
- e3 && e3.statusCode < 400 ? o2(e3) : a2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }, fail(e3) {
- a2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" }));
- } });
- "function" == typeof i2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => {
- i2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend });
- });
- });
- }
- reportOSSUpload(e2) {
- const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) };
- return this.request(this.setupRequest(t2));
- }
- async uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", cloudPathAsRealPath: s2 = false, onUploadProgress: r2, config: i2 }) {
- if ("string" !== g(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" });
- if (!(t2 = t2.trim()))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" });
- if (/:\/\//.test(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" });
- const o2 = i2 && i2.envType || this.config.envType;
- if (s2 && ("/" !== t2[0] && (t2 = "/" + t2), t2.indexOf("\\") > -1))
- throw new te({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" });
- const a2 = (await this.getOSSUploadOptionsFromPath({ env: o2, filename: s2 ? t2.split("/").pop() : t2, fileId: s2 ? t2 : void 0 })).result, c2 = "https://" + a2.cdnDomain + "/" + a2.ossPath, { securityToken: u2, accessKeyId: h2, signature: l2, host: d2, ossPath: p2, id: f2, policy: m2, ossCallbackUrl: y2 } = a2, _2 = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: h2, Signature: l2, host: d2, id: f2, key: p2, policy: m2, success_action_status: 200 };
- if (u2 && (_2["x-oss-security-token"] = u2), y2) {
- const e3 = JSON.stringify({ callbackUrl: y2, callbackBody: JSON.stringify({ fileId: f2, spaceId: this.config.spaceId }), callbackBodyType: "application/json" });
- _2.callback = de.toBase64(e3);
- }
- const w2 = { url: "https://" + a2.host, formData: _2, fileName: "file", name: "file", filePath: e2, fileType: n2 };
- if (await this.uploadFileToOSS(Object.assign({}, w2, { onUploadProgress: r2 })), y2)
- return { success: true, filePath: e2, fileID: c2 };
- if ((await this.reportOSSUpload({ id: f2 })).success)
- return { success: true, filePath: e2, fileID: c2 };
- throw new te({ code: "UPLOAD_FAILED", message: "文件上传失败" });
- }
- getTempFileURL({ fileList: e2 } = {}) {
- return new Promise((t2, n2) => {
- Array.isArray(e2) && 0 !== e2.length || n2(new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t2({ fileList: e2.map((e3) => ({ fileID: e3, tempFileURL: e3 })) });
- });
- }
- async getFileInfo({ fileList: e2 } = {}) {
- if (!Array.isArray(e2) || 0 === e2.length)
- throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" });
- const t2 = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e2.map((e3) => e3.split("?")[0]).join(",") }) };
- return { fileList: (await this.request(this.setupRequest(t2))).result };
- }
- };
- var fe = { init(e2) {
- const t2 = new pe(e2), n2 = { signInAnonymously: function() {
- return t2.authorize();
- }, getLoginState: function() {
- return Promise.resolve(false);
- } };
- return t2.auth = function() {
- return n2;
- }, t2.customAuth = t2.auth, t2;
- } };
- const ge = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:";
- var me;
- !function(e2) {
- e2.local = "local", e2.none = "none", e2.session = "session";
- }(me || (me = {}));
- var ye = function() {
- }, _e = n(function(e2, t2) {
- var n2;
- e2.exports = (n2 = r, function(e3) {
- var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = [], c2 = [];
- !function() {
- function t4(t5) {
- for (var n4 = e3.sqrt(t5), s4 = 2; s4 <= n4; s4++)
- if (!(t5 % s4))
- return false;
- return true;
- }
- function n3(e4) {
- return 4294967296 * (e4 - (0 | e4)) | 0;
- }
- for (var s3 = 2, r3 = 0; r3 < 64; )
- t4(s3) && (r3 < 8 && (a2[r3] = n3(e3.pow(s3, 0.5))), c2[r3] = n3(e3.pow(s3, 1 / 3)), r3++), s3++;
- }();
- var u2 = [], h2 = o2.SHA256 = i2.extend({ _doReset: function() {
- this._hash = new r2.init(a2.slice(0));
- }, _doProcessBlock: function(e4, t4) {
- for (var n3 = this._hash.words, s3 = n3[0], r3 = n3[1], i3 = n3[2], o3 = n3[3], a3 = n3[4], h3 = n3[5], l2 = n3[6], d2 = n3[7], p2 = 0; p2 < 64; p2++) {
- if (p2 < 16)
- u2[p2] = 0 | e4[t4 + p2];
- else {
- var f2 = u2[p2 - 15], g2 = (f2 << 25 | f2 >>> 7) ^ (f2 << 14 | f2 >>> 18) ^ f2 >>> 3, m2 = u2[p2 - 2], y2 = (m2 << 15 | m2 >>> 17) ^ (m2 << 13 | m2 >>> 19) ^ m2 >>> 10;
- u2[p2] = g2 + u2[p2 - 7] + y2 + u2[p2 - 16];
- }
- var _2 = s3 & r3 ^ s3 & i3 ^ r3 & i3, w2 = (s3 << 30 | s3 >>> 2) ^ (s3 << 19 | s3 >>> 13) ^ (s3 << 10 | s3 >>> 22), v2 = d2 + ((a3 << 26 | a3 >>> 6) ^ (a3 << 21 | a3 >>> 11) ^ (a3 << 7 | a3 >>> 25)) + (a3 & h3 ^ ~a3 & l2) + c2[p2] + u2[p2];
- d2 = l2, l2 = h3, h3 = a3, a3 = o3 + v2 | 0, o3 = i3, i3 = r3, r3 = s3, s3 = v2 + (w2 + _2) | 0;
- }
- n3[0] = n3[0] + s3 | 0, n3[1] = n3[1] + r3 | 0, n3[2] = n3[2] + i3 | 0, n3[3] = n3[3] + o3 | 0, n3[4] = n3[4] + a3 | 0, n3[5] = n3[5] + h3 | 0, n3[6] = n3[6] + l2 | 0, n3[7] = n3[7] + d2 | 0;
- }, _doFinalize: function() {
- var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes;
- return n3[r3 >>> 5] |= 128 << 24 - r3 % 32, n3[14 + (r3 + 64 >>> 9 << 4)] = e3.floor(s3 / 4294967296), n3[15 + (r3 + 64 >>> 9 << 4)] = s3, t4.sigBytes = 4 * n3.length, this._process(), this._hash;
- }, clone: function() {
- var e4 = i2.clone.call(this);
- return e4._hash = this._hash.clone(), e4;
- } });
- t3.SHA256 = i2._createHelper(h2), t3.HmacSHA256 = i2._createHmacHelper(h2);
- }(Math), n2.SHA256);
- }), we = _e, ve = n(function(e2, t2) {
- e2.exports = r.HmacSHA256;
- });
- const Ie = () => {
- let e2;
- if (!Promise) {
- e2 = () => {
- }, e2.promise = {};
- const t3 = () => {
- throw new te({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' });
- };
- return Object.defineProperty(e2.promise, "then", { get: t3 }), Object.defineProperty(e2.promise, "catch", { get: t3 }), e2;
- }
- const t2 = new Promise((t3, n2) => {
- e2 = (e3, s2) => e3 ? n2(e3) : t3(s2);
- });
- return e2.promise = t2, e2;
- };
- function Se(e2) {
- return void 0 === e2;
- }
- function Te(e2) {
- return "[object Null]" === Object.prototype.toString.call(e2);
- }
- function be(e2 = "") {
- return e2.replace(/([\s\S]+)\s+(请前往云开发AI小助手查看问题:.*)/, "$1");
- }
- function Ee(e2 = 32) {
- const t2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- let n2 = "";
- for (let s2 = 0; s2 < e2; s2++)
- n2 += t2.charAt(Math.floor(62 * Math.random()));
- return n2;
- }
- var ke;
- function Pe(e2) {
- const t2 = (n2 = e2, "[object Array]" === Object.prototype.toString.call(n2) ? e2 : [e2]);
- var n2;
- for (const e3 of t2) {
- const { isMatch: t3, genAdapter: n3, runtime: s2 } = e3;
- if (t3())
- return { adapter: n3(), runtime: s2 };
- }
- }
- !function(e2) {
- e2.WEB = "web", e2.WX_MP = "wx_mp";
- }(ke || (ke = {}));
- const Ce = { adapter: null, runtime: void 0 }, Ae = ["anonymousUuidKey"];
- class Oe extends ye {
- constructor() {
- super(), Ce.adapter.root.tcbObject || (Ce.adapter.root.tcbObject = {});
- }
- setItem(e2, t2) {
- Ce.adapter.root.tcbObject[e2] = t2;
- }
- getItem(e2) {
- return Ce.adapter.root.tcbObject[e2];
- }
- removeItem(e2) {
- delete Ce.adapter.root.tcbObject[e2];
- }
- clear() {
- delete Ce.adapter.root.tcbObject;
- }
- }
- function xe(e2, t2) {
- switch (e2) {
- case "local":
- return t2.localStorage || new Oe();
- case "none":
- return new Oe();
- default:
- return t2.sessionStorage || new Oe();
- }
- }
- class Ne {
- constructor(e2) {
- if (!this._storage) {
- this._persistence = Ce.adapter.primaryStorage || e2.persistence, this._storage = xe(this._persistence, Ce.adapter);
- const t2 = `access_token_${e2.env}`, n2 = `access_token_expire_${e2.env}`, s2 = `refresh_token_${e2.env}`, r2 = `anonymous_uuid_${e2.env}`, i2 = `login_type_${e2.env}`, o2 = "device_id", a2 = `token_type_${e2.env}`, c2 = `user_info_${e2.env}`;
- this.keys = { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2, anonymousUuidKey: r2, loginTypeKey: i2, userInfoKey: c2, deviceIdKey: o2, tokenTypeKey: a2 };
- }
- }
- updatePersistence(e2) {
- if (e2 === this._persistence)
- return;
- const t2 = "local" === this._persistence;
- this._persistence = e2;
- const n2 = xe(e2, Ce.adapter);
- for (const e3 in this.keys) {
- const s2 = this.keys[e3];
- if (t2 && Ae.includes(e3))
- continue;
- const r2 = this._storage.getItem(s2);
- Se(r2) || Te(r2) || (n2.setItem(s2, r2), this._storage.removeItem(s2));
- }
- this._storage = n2;
- }
- setStore(e2, t2, n2) {
- if (!this._storage)
- return;
- const s2 = { version: n2 || "localCachev1", content: t2 }, r2 = JSON.stringify(s2);
- try {
- this._storage.setItem(e2, r2);
- } catch (e3) {
- throw e3;
- }
- }
- getStore(e2, t2) {
- try {
- if (!this._storage)
- return;
- } catch (e3) {
- return "";
- }
- t2 = t2 || "localCachev1";
- const n2 = this._storage.getItem(e2);
- if (!n2)
- return "";
- if (n2.indexOf(t2) >= 0) {
- return JSON.parse(n2).content;
- }
- return "";
- }
- removeStore(e2) {
- this._storage.removeItem(e2);
- }
- }
- const Re = {}, Le = {};
- function Ue(e2) {
- return Re[e2];
- }
- class De {
- constructor(e2, t2) {
- this.data = t2 || null, this.name = e2;
- }
- }
- class Me extends De {
- constructor(e2, t2) {
- super("error", { error: e2, data: t2 }), this.error = e2;
- }
- }
- const qe = new class {
- constructor() {
- this._listeners = {};
- }
- on(e2, t2) {
- return function(e3, t3, n2) {
- n2[e3] = n2[e3] || [], n2[e3].push(t3);
- }(e2, t2, this._listeners), this;
- }
- off(e2, t2) {
- return function(e3, t3, n2) {
- if (n2 && n2[e3]) {
- const s2 = n2[e3].indexOf(t3);
- -1 !== s2 && n2[e3].splice(s2, 1);
- }
- }(e2, t2, this._listeners), this;
- }
- fire(e2, t2) {
- if (e2 instanceof Me)
- return console.error(e2.error), this;
- const n2 = "string" == typeof e2 ? new De(e2, t2 || {}) : e2;
- const s2 = n2.name;
- if (this._listens(s2)) {
- n2.target = this;
- const e3 = this._listeners[s2] ? [...this._listeners[s2]] : [];
- for (const t3 of e3)
- t3.call(this, n2);
- }
- return this;
- }
- _listens(e2) {
- return this._listeners[e2] && this._listeners[e2].length > 0;
- }
- }();
- function Fe(e2, t2) {
- qe.on(e2, t2);
- }
- function Ke(e2, t2 = {}) {
- qe.fire(e2, t2);
- }
- function je(e2, t2) {
- qe.off(e2, t2);
- }
- const $e = "loginStateChanged", Be = "loginStateExpire", We = "loginTypeChanged", He = "anonymousConverted", Je = "refreshAccessToken";
- var ze;
- !function(e2) {
- e2.ANONYMOUS = "ANONYMOUS", e2.WECHAT = "WECHAT", e2.WECHAT_PUBLIC = "WECHAT-PUBLIC", e2.WECHAT_OPEN = "WECHAT-OPEN", e2.CUSTOM = "CUSTOM", e2.EMAIL = "EMAIL", e2.USERNAME = "USERNAME", e2.NULL = "NULL";
- }(ze || (ze = {}));
- class Ve {
- constructor() {
- this._fnPromiseMap = /* @__PURE__ */ new Map();
- }
- async run(e2, t2) {
- let n2 = this._fnPromiseMap.get(e2);
- return n2 || (n2 = new Promise(async (n3, s2) => {
- try {
- await this._runIdlePromise();
- const e3 = t2();
- n3(await e3);
- } catch (e3) {
- s2(e3);
- } finally {
- this._fnPromiseMap.delete(e2);
- }
- }), this._fnPromiseMap.set(e2, n2)), n2;
- }
- _runIdlePromise() {
- return Promise.resolve();
- }
- }
- class Ge {
- constructor(e2) {
- this._singlePromise = new Ve(), this._cache = Ue(e2.env), this._baseURL = `https://${e2.env}.ap-shanghai.tcb-api.tencentcloudapi.com`, this._reqClass = new Ce.adapter.reqClass({ timeout: e2.timeout, timeoutMsg: `请求在${e2.timeout / 1e3}s内未完成,已中断`, restrictedMethods: ["post"] });
- }
- _getDeviceId() {
- if (this._deviceID)
- return this._deviceID;
- const { deviceIdKey: e2 } = this._cache.keys;
- let t2 = this._cache.getStore(e2);
- return "string" == typeof t2 && t2.length >= 16 && t2.length <= 48 || (t2 = Ee(), this._cache.setStore(e2, t2)), this._deviceID = t2, t2;
- }
- async _request(e2, t2, n2 = {}) {
- const s2 = { "x-request-id": Ee(), "x-device-id": this._getDeviceId() };
- if (n2.withAccessToken) {
- const { tokenTypeKey: e3 } = this._cache.keys, t3 = await this.getAccessToken(), n3 = this._cache.getStore(e3);
- s2.authorization = `${n3} ${t3}`;
- }
- return this._reqClass["get" === n2.method ? "get" : "post"]({ url: `${this._baseURL}${e2}`, data: t2, headers: s2 });
- }
- async _fetchAccessToken() {
- const { loginTypeKey: e2, accessTokenKey: t2, accessTokenExpireKey: n2, tokenTypeKey: s2 } = this._cache.keys, r2 = this._cache.getStore(e2);
- if (r2 && r2 !== ze.ANONYMOUS)
- throw new te({ code: "INVALID_OPERATION", message: "非匿名登录不支持刷新 access token" });
- const i2 = await this._singlePromise.run("fetchAccessToken", async () => (await this._request("/auth/v1/signin/anonymously", {}, { method: "post" })).data), { access_token: o2, expires_in: a2, token_type: c2 } = i2;
- return this._cache.setStore(s2, c2), this._cache.setStore(t2, o2), this._cache.setStore(n2, Date.now() + 1e3 * a2), o2;
- }
- isAccessTokenExpired(e2, t2) {
- let n2 = true;
- return e2 && t2 && (n2 = t2 < Date.now()), n2;
- }
- async getAccessToken() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2), s2 = this._cache.getStore(t2);
- return this.isAccessTokenExpired(n2, s2) ? this._fetchAccessToken() : n2;
- }
- async refreshAccessToken() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2, loginTypeKey: n2 } = this._cache.keys;
- return this._cache.removeStore(e2), this._cache.removeStore(t2), this._cache.setStore(n2, ze.ANONYMOUS), this.getAccessToken();
- }
- async getUserInfo() {
- return this._singlePromise.run("getUserInfo", async () => (await this._request("/auth/v1/user/me", {}, { withAccessToken: true, method: "get" })).data);
- }
- }
- const Ye = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], Qe = { "X-SDK-Version": "1.3.5" };
- function Xe(e2, t2, n2) {
- const s2 = e2[t2];
- e2[t2] = function(t3) {
- const r2 = {}, i2 = {};
- n2.forEach((n3) => {
- const { data: s3, headers: o3 } = n3.call(e2, t3);
- Object.assign(r2, s3), Object.assign(i2, o3);
- });
- const o2 = t3.data;
- return o2 && (() => {
- var e3;
- if (e3 = o2, "[object FormData]" !== Object.prototype.toString.call(e3))
- t3.data = { ...o2, ...r2 };
- else
- for (const e4 in r2)
- o2.append(e4, r2[e4]);
- })(), t3.headers = { ...t3.headers || {}, ...i2 }, s2.call(e2, t3);
- };
- }
- function Ze() {
- const e2 = Math.random().toString(16).slice(2);
- return { data: { seqId: e2 }, headers: { ...Qe, "x-seqid": e2 } };
- }
- class et {
- constructor(e2 = {}) {
- var t2;
- this.config = e2, this._reqClass = new Ce.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: `请求在${this.config.timeout / 1e3}s内未完成,已中断`, restrictedMethods: ["post"] }), this._cache = Ue(this.config.env), this._localCache = (t2 = this.config.env, Le[t2]), this.oauth = new Ge(this.config), Xe(this._reqClass, "post", [Ze]), Xe(this._reqClass, "upload", [Ze]), Xe(this._reqClass, "download", [Ze]);
- }
- async post(e2) {
- return await this._reqClass.post(e2);
- }
- async upload(e2) {
- return await this._reqClass.upload(e2);
- }
- async download(e2) {
- return await this._reqClass.download(e2);
- }
- async refreshAccessToken() {
- let e2, t2;
- this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken());
- try {
- e2 = await this._refreshAccessTokenPromise;
- } catch (e3) {
- t2 = e3;
- }
- if (this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t2)
- throw t2;
- return e2;
- }
- async _refreshAccessToken() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2, loginTypeKey: s2, anonymousUuidKey: r2 } = this._cache.keys;
- this._cache.removeStore(e2), this._cache.removeStore(t2);
- let i2 = this._cache.getStore(n2);
- if (!i2)
- throw new te({ message: "未登录CloudBase" });
- const o2 = { refresh_token: i2 }, a2 = await this.request("auth.fetchAccessTokenWithRefreshToken", o2);
- if (a2.data.code) {
- const { code: e3 } = a2.data;
- if ("SIGN_PARAM_INVALID" === e3 || "REFRESH_TOKEN_EXPIRED" === e3 || "INVALID_REFRESH_TOKEN" === e3) {
- if (this._cache.getStore(s2) === ze.ANONYMOUS && "INVALID_REFRESH_TOKEN" === e3) {
- const e4 = this._cache.getStore(r2), t3 = this._cache.getStore(n2), s3 = await this.send("auth.signInAnonymously", { anonymous_uuid: e4, refresh_token: t3 });
- return this.setRefreshToken(s3.refresh_token), this._refreshAccessToken();
- }
- Ke(Be), this._cache.removeStore(n2);
- }
- throw new te({ code: a2.data.code, message: `刷新access token失败:${a2.data.code}` });
- }
- if (a2.data.access_token)
- return Ke(Je), this._cache.setStore(e2, a2.data.access_token), this._cache.setStore(t2, a2.data.access_token_expire + Date.now()), { accessToken: a2.data.access_token, accessTokenExpire: a2.data.access_token_expire };
- a2.data.refresh_token && (this._cache.removeStore(n2), this._cache.setStore(n2, a2.data.refresh_token), this._refreshAccessToken());
- }
- async getAccessToken() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2 } = this._cache.keys;
- if (!this._cache.getStore(n2))
- throw new te({ message: "refresh token不存在,登录状态异常" });
- let s2 = this._cache.getStore(e2), r2 = this._cache.getStore(t2), i2 = true;
- return this._shouldRefreshAccessTokenHook && !await this._shouldRefreshAccessTokenHook(s2, r2) && (i2 = false), (!s2 || !r2 || r2 < Date.now()) && i2 ? this.refreshAccessToken() : { accessToken: s2, accessTokenExpire: r2 };
- }
- async request(e2, t2, n2) {
- const s2 = `x-tcb-trace_${this.config.env}`;
- let r2 = "application/x-www-form-urlencoded";
- const i2 = { action: e2, env: this.config.env, dataVersion: "2019-08-16", ...t2 };
- let o2;
- if (-1 === Ye.indexOf(e2) && (this._cache.keys, i2.access_token = await this.oauth.getAccessToken()), "storage.uploadFile" === e2) {
- o2 = new FormData();
- for (let e3 in o2)
- o2.hasOwnProperty(e3) && void 0 !== o2[e3] && o2.append(e3, i2[e3]);
- r2 = "multipart/form-data";
- } else {
- r2 = "application/json", o2 = {};
- for (let e3 in i2)
- void 0 !== i2[e3] && (o2[e3] = i2[e3]);
- }
- let a2 = { headers: { "content-type": r2 } };
- n2 && n2.timeout && (a2.timeout = n2.timeout), n2 && n2.onUploadProgress && (a2.onUploadProgress = n2.onUploadProgress);
- const c2 = this._localCache.getStore(s2);
- c2 && (a2.headers["X-TCB-Trace"] = c2);
- const { parse: u2, inQuery: h2, search: l2 } = t2;
- let d2 = { env: this.config.env };
- u2 && (d2.parse = true), h2 && (d2 = { ...h2, ...d2 });
- let p2 = function(e3, t3, n3 = {}) {
- const s3 = /\?/.test(t3);
- let r3 = "";
- for (let e4 in n3)
- "" === r3 ? !s3 && (t3 += "?") : r3 += "&", r3 += `${e4}=${encodeURIComponent(n3[e4])}`;
- return /^http(s)?\:\/\//.test(t3 += r3) ? t3 : `${e3}${t3}`;
- }(ge, "//tcb-api.tencentcloudapi.com/web", d2);
- l2 && (p2 += l2);
- const f2 = await this.post({ url: p2, data: o2, ...a2 }), g2 = f2.header && f2.header["x-tcb-trace"];
- if (g2 && this._localCache.setStore(s2, g2), 200 !== Number(f2.status) && 200 !== Number(f2.statusCode) || !f2.data)
- throw new te({ code: "NETWORK_ERROR", message: "network request error" });
- return f2;
- }
- async send(e2, t2 = {}, n2 = {}) {
- const s2 = await this.request(e2, t2, { ...n2, onUploadProgress: t2.onUploadProgress });
- if (("ACCESS_TOKEN_DISABLED" === s2.data.code || "ACCESS_TOKEN_EXPIRED" === s2.data.code) && -1 === Ye.indexOf(e2)) {
- await this.oauth.refreshAccessToken();
- const s3 = await this.request(e2, t2, { ...n2, onUploadProgress: t2.onUploadProgress });
- if (s3.data.code)
- throw new te({ code: s3.data.code, message: be(s3.data.message) });
- return s3.data;
- }
- if (s2.data.code)
- throw new te({ code: s2.data.code, message: be(s2.data.message) });
- return s2.data;
- }
- setRefreshToken(e2) {
- const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys;
- this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2);
- }
- }
- const tt = {};
- function nt(e2) {
- return tt[e2];
- }
- class st {
- constructor(e2) {
- this.config = e2, this._cache = Ue(e2.env), this._request = nt(e2.env);
- }
- setRefreshToken(e2) {
- const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys;
- this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2);
- }
- setAccessToken(e2, t2) {
- const { accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys;
- this._cache.setStore(n2, e2), this._cache.setStore(s2, t2);
- }
- async refreshUserInfo() {
- const { data: e2 } = await this._request.send("auth.getUserInfo", {});
- return this.setLocalUserInfo(e2), e2;
- }
- setLocalUserInfo(e2) {
- const { userInfoKey: t2 } = this._cache.keys;
- this._cache.setStore(t2, e2);
- }
- }
- class rt {
- constructor(e2) {
- if (!e2)
- throw new te({ code: "PARAM_ERROR", message: "envId is not defined" });
- this._envId = e2, this._cache = Ue(this._envId), this._request = nt(this._envId), this.setUserInfo();
- }
- linkWithTicket(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "ticket must be string" });
- return this._request.send("auth.linkWithTicket", { ticket: e2 });
- }
- linkWithRedirect(e2) {
- e2.signInWithRedirect();
- }
- updatePassword(e2, t2) {
- return this._request.send("auth.updatePassword", { oldPassword: t2, newPassword: e2 });
- }
- updateEmail(e2) {
- return this._request.send("auth.updateEmail", { newEmail: e2 });
- }
- updateUsername(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "username must be a string" });
- return this._request.send("auth.updateUsername", { username: e2 });
- }
- async getLinkedUidList() {
- const { data: e2 } = await this._request.send("auth.getLinkedUidList", {});
- let t2 = false;
- const { users: n2 } = e2;
- return n2.forEach((e3) => {
- e3.wxOpenId && e3.wxPublicId && (t2 = true);
- }), { users: n2, hasPrimaryUid: t2 };
- }
- setPrimaryUid(e2) {
- return this._request.send("auth.setPrimaryUid", { uid: e2 });
- }
- unlink(e2) {
- return this._request.send("auth.unlink", { platform: e2 });
- }
- async update(e2) {
- const { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 } = e2, { data: a2 } = await this._request.send("auth.updateUserInfo", { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 });
- this.setLocalUserInfo(a2);
- }
- async refresh() {
- const e2 = await this._request.oauth.getUserInfo();
- return this.setLocalUserInfo(e2), e2;
- }
- setUserInfo() {
- const { userInfoKey: e2 } = this._cache.keys, t2 = this._cache.getStore(e2);
- ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach((e3) => {
- this[e3] = t2[e3];
- }), this.location = { country: t2.country, province: t2.province, city: t2.city };
- }
- setLocalUserInfo(e2) {
- const { userInfoKey: t2 } = this._cache.keys;
- this._cache.setStore(t2, e2), this.setUserInfo();
- }
- }
- class it {
- constructor(e2) {
- if (!e2)
- throw new te({ code: "PARAM_ERROR", message: "envId is not defined" });
- this._cache = Ue(e2);
- const { refreshTokenKey: t2, accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys, r2 = this._cache.getStore(t2), i2 = this._cache.getStore(n2), o2 = this._cache.getStore(s2);
- this.credential = { refreshToken: r2, accessToken: i2, accessTokenExpire: o2 }, this.user = new rt(e2);
- }
- get isAnonymousAuth() {
- return this.loginType === ze.ANONYMOUS;
- }
- get isCustomAuth() {
- return this.loginType === ze.CUSTOM;
- }
- get isWeixinAuth() {
- return this.loginType === ze.WECHAT || this.loginType === ze.WECHAT_OPEN || this.loginType === ze.WECHAT_PUBLIC;
- }
- get loginType() {
- return this._cache.getStore(this._cache.keys.loginTypeKey);
- }
- }
- class ot extends st {
- async signIn() {
- this._cache.updatePersistence("local"), await this._request.oauth.getAccessToken(), Ke($e), Ke(We, { env: this.config.env, loginType: ze.ANONYMOUS, persistence: "local" });
- const e2 = new it(this.config.env);
- return await e2.user.refresh(), e2;
- }
- async linkAndRetrieveDataWithTicket(e2) {
- const { anonymousUuidKey: t2, refreshTokenKey: n2 } = this._cache.keys, s2 = this._cache.getStore(t2), r2 = this._cache.getStore(n2), i2 = await this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s2, refresh_token: r2, ticket: e2 });
- if (i2.refresh_token)
- return this._clearAnonymousUUID(), this.setRefreshToken(i2.refresh_token), await this._request.refreshAccessToken(), Ke(He, { env: this.config.env }), Ke(We, { loginType: ze.CUSTOM, persistence: "local" }), { credential: { refreshToken: i2.refresh_token } };
- throw new te({ message: "匿名转化失败" });
- }
- _setAnonymousUUID(e2) {
- const { anonymousUuidKey: t2, loginTypeKey: n2 } = this._cache.keys;
- this._cache.removeStore(t2), this._cache.setStore(t2, e2), this._cache.setStore(n2, ze.ANONYMOUS);
- }
- _clearAnonymousUUID() {
- this._cache.removeStore(this._cache.keys.anonymousUuidKey);
- }
- }
- class at extends st {
- async signIn(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "ticket must be a string" });
- const { refreshTokenKey: t2 } = this._cache.keys, n2 = await this._request.send("auth.signInWithTicket", { ticket: e2, refresh_token: this._cache.getStore(t2) || "" });
- if (n2.refresh_token)
- return this.setRefreshToken(n2.refresh_token), await this._request.refreshAccessToken(), Ke($e), Ke(We, { env: this.config.env, loginType: ze.CUSTOM, persistence: this.config.persistence }), await this.refreshUserInfo(), new it(this.config.env);
- throw new te({ message: "自定义登录失败" });
- }
- }
- class ct extends st {
- async signIn(e2, t2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "email must be a string" });
- const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: "EMAIL", email: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token: i2, access_token_expire: o2 } = s2;
- if (r2)
- return this.setRefreshToken(r2), i2 && o2 ? this.setAccessToken(i2, o2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), Ke($e), Ke(We, { env: this.config.env, loginType: ze.EMAIL, persistence: this.config.persistence }), new it(this.config.env);
- throw s2.code ? new te({ code: s2.code, message: `邮箱登录失败: ${s2.message}` }) : new te({ message: "邮箱登录失败" });
- }
- async activate(e2) {
- return this._request.send("auth.activateEndUserMail", { token: e2 });
- }
- async resetPasswordWithToken(e2, t2) {
- return this._request.send("auth.resetPasswordWithToken", { token: e2, newPassword: t2 });
- }
- }
- class ut extends st {
- async signIn(e2, t2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "username must be a string" });
- "string" != typeof t2 && (t2 = "", console.warn("password is empty"));
- const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: ze.USERNAME, username: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token_expire: i2, access_token: o2 } = s2;
- if (r2)
- return this.setRefreshToken(r2), o2 && i2 ? this.setAccessToken(o2, i2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), Ke($e), Ke(We, { env: this.config.env, loginType: ze.USERNAME, persistence: this.config.persistence }), new it(this.config.env);
- throw s2.code ? new te({ code: s2.code, message: `用户名密码登录失败: ${s2.message}` }) : new te({ message: "用户名密码登录失败" });
- }
- }
- class ht {
- constructor(e2) {
- this.config = e2, this._cache = Ue(e2.env), this._request = nt(e2.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), Fe(We, this._onLoginTypeChanged);
- }
- get currentUser() {
- const e2 = this.hasLoginState();
- return e2 && e2.user || null;
- }
- get loginType() {
- return this._cache.getStore(this._cache.keys.loginTypeKey);
- }
- anonymousAuthProvider() {
- return new ot(this.config);
- }
- customAuthProvider() {
- return new at(this.config);
- }
- emailAuthProvider() {
- return new ct(this.config);
- }
- usernameAuthProvider() {
- return new ut(this.config);
- }
- async signInAnonymously() {
- return new ot(this.config).signIn();
- }
- async signInWithEmailAndPassword(e2, t2) {
- return new ct(this.config).signIn(e2, t2);
- }
- signInWithUsernameAndPassword(e2, t2) {
- return new ut(this.config).signIn(e2, t2);
- }
- async linkAndRetrieveDataWithTicket(e2) {
- this._anonymousAuthProvider || (this._anonymousAuthProvider = new ot(this.config)), Fe(He, this._onAnonymousConverted);
- return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e2);
- }
- async signOut() {
- if (this.loginType === ze.ANONYMOUS)
- throw new te({ message: "匿名用户不支持登出操作" });
- const { refreshTokenKey: e2, accessTokenKey: t2, accessTokenExpireKey: n2 } = this._cache.keys, s2 = this._cache.getStore(e2);
- if (!s2)
- return;
- const r2 = await this._request.send("auth.logout", { refresh_token: s2 });
- return this._cache.removeStore(e2), this._cache.removeStore(t2), this._cache.removeStore(n2), Ke($e), Ke(We, { env: this.config.env, loginType: ze.NULL, persistence: this.config.persistence }), r2;
- }
- async signUpWithEmailAndPassword(e2, t2) {
- return this._request.send("auth.signUpWithEmailAndPassword", { email: e2, password: t2 });
- }
- async sendPasswordResetEmail(e2) {
- return this._request.send("auth.sendPasswordResetEmail", { email: e2 });
- }
- onLoginStateChanged(e2) {
- Fe($e, () => {
- const t3 = this.hasLoginState();
- e2.call(this, t3);
- });
- const t2 = this.hasLoginState();
- e2.call(this, t2);
- }
- onLoginStateExpired(e2) {
- Fe(Be, e2.bind(this));
- }
- onAccessTokenRefreshed(e2) {
- Fe(Je, e2.bind(this));
- }
- onAnonymousConverted(e2) {
- Fe(He, e2.bind(this));
- }
- onLoginTypeChanged(e2) {
- Fe(We, () => {
- const t2 = this.hasLoginState();
- e2.call(this, t2);
- });
- }
- async getAccessToken() {
- return { accessToken: (await this._request.getAccessToken()).accessToken, env: this.config.env };
- }
- hasLoginState() {
- const { accessTokenKey: e2, accessTokenExpireKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2), s2 = this._cache.getStore(t2);
- return this._request.oauth.isAccessTokenExpired(n2, s2) ? null : new it(this.config.env);
- }
- async isUsernameRegistered(e2) {
- if ("string" != typeof e2)
- throw new te({ code: "PARAM_ERROR", message: "username must be a string" });
- const { data: t2 } = await this._request.send("auth.isUsernameRegistered", { username: e2 });
- return t2 && t2.isRegistered;
- }
- getLoginState() {
- return Promise.resolve(this.hasLoginState());
- }
- async signInWithTicket(e2) {
- return new at(this.config).signIn(e2);
- }
- shouldRefreshAccessToken(e2) {
- this._request._shouldRefreshAccessTokenHook = e2.bind(this);
- }
- getUserInfo() {
- return this._request.send("auth.getUserInfo", {}).then((e2) => e2.code ? e2 : { ...e2.data, requestId: e2.seqId });
- }
- getAuthHeader() {
- const { refreshTokenKey: e2, accessTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2);
- return { "x-cloudbase-credentials": this._cache.getStore(t2) + "/@@/" + n2 };
- }
- _onAnonymousConverted(e2) {
- const { env: t2 } = e2.data;
- t2 === this.config.env && this._cache.updatePersistence(this.config.persistence);
- }
- _onLoginTypeChanged(e2) {
- const { loginType: t2, persistence: n2, env: s2 } = e2.data;
- s2 === this.config.env && (this._cache.updatePersistence(n2), this._cache.setStore(this._cache.keys.loginTypeKey, t2));
- }
- }
- const lt = function(e2, t2) {
- t2 = t2 || Ie();
- const n2 = nt(this.config.env), { cloudPath: s2, filePath: r2, onUploadProgress: i2, fileType: o2 = "image" } = e2;
- return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => {
- const { data: { url: a2, authorization: c2, token: u2, fileId: h2, cosFileId: l2 }, requestId: d2 } = e3, p2 = { key: s2, signature: c2, "x-cos-meta-fileid": l2, success_action_status: "201", "x-cos-security-token": u2 };
- n2.upload({ url: a2, data: p2, file: r2, name: s2, fileType: o2, onUploadProgress: i2 }).then((e4) => {
- 201 === e4.statusCode ? t2(null, { fileID: h2, requestId: d2 }) : t2(new te({ code: "STORAGE_REQUEST_FAIL", message: `STORAGE_REQUEST_FAIL: ${e4.data}` }));
- }).catch((e4) => {
- t2(e4);
- });
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, dt = function(e2, t2) {
- t2 = t2 || Ie();
- const n2 = nt(this.config.env), { cloudPath: s2 } = e2;
- return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => {
- t2(null, e3);
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, pt = function({ fileList: e2 }, t2) {
- if (t2 = t2 || Ie(), !e2 || !Array.isArray(e2))
- return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" };
- for (let t3 of e2)
- if (!t3 || "string" != typeof t3)
- return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" };
- const n2 = { fileid_list: e2 };
- return nt(this.config.env).send("storage.batchDeleteFile", n2).then((e3) => {
- e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.delete_list, requestId: e3.requestId });
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, ft = function({ fileList: e2 }, t2) {
- t2 = t2 || Ie(), e2 && Array.isArray(e2) || t2(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" });
- let n2 = [];
- for (let s3 of e2)
- "object" == typeof s3 ? (s3.hasOwnProperty("fileID") && s3.hasOwnProperty("maxAge") || t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n2.push({ fileid: s3.fileID, max_age: s3.maxAge })) : "string" == typeof s3 ? n2.push({ fileid: s3 }) : t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" });
- const s2 = { file_list: n2 };
- return nt(this.config.env).send("storage.batchGetDownloadUrl", s2).then((e3) => {
- e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.download_list, requestId: e3.requestId });
- }).catch((e3) => {
- t2(e3);
- }), t2.promise;
- }, gt = async function({ fileID: e2 }, t2) {
- const n2 = (await ft.call(this, { fileList: [{ fileID: e2, maxAge: 600 }] })).fileList[0];
- if ("SUCCESS" !== n2.code)
- return t2 ? t2(n2) : new Promise((e3) => {
- e3(n2);
- });
- const s2 = nt(this.config.env);
- let r2 = n2.download_url;
- if (r2 = encodeURI(r2), !t2)
- return s2.download({ url: r2 });
- t2(await s2.download({ url: r2 }));
- }, mt = function({ name: e2, data: t2, query: n2, parse: s2, search: r2, timeout: i2 }, o2) {
- const a2 = o2 || Ie();
- let c2;
- try {
- c2 = t2 ? JSON.stringify(t2) : "";
- } catch (e3) {
- return Promise.reject(e3);
- }
- if (!e2)
- return Promise.reject(new te({ code: "PARAM_ERROR", message: "函数名不能为空" }));
- const u2 = { inQuery: n2, parse: s2, search: r2, function_name: e2, request_data: c2 };
- return nt(this.config.env).send("functions.invokeFunction", u2, { timeout: i2 }).then((e3) => {
- if (e3.code)
- a2(null, e3);
- else {
- let t3 = e3.data.response_data;
- if (s2)
- a2(null, { result: t3, requestId: e3.requestId });
- else
- try {
- t3 = JSON.parse(e3.data.response_data), a2(null, { result: t3, requestId: e3.requestId });
- } catch (e4) {
- a2(new te({ message: "response data must be json" }));
- }
- }
- return a2.promise;
- }).catch((e3) => {
- a2(e3);
- }), a2.promise;
- }, yt = { timeout: 15e3, persistence: "session" }, _t = 6e5, wt = {};
- class vt {
- constructor(e2) {
- this.config = e2 || this.config, this.authObj = void 0;
- }
- init(e2) {
- switch (Ce.adapter || (this.requestClient = new Ce.adapter.reqClass({ timeout: e2.timeout || 5e3, timeoutMsg: `请求在${(e2.timeout || 5e3) / 1e3}s内未完成,已中断` })), this.config = { ...yt, ...e2 }, true) {
- case this.config.timeout > _t:
- console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = _t;
- break;
- case this.config.timeout < 100:
- console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100;
- }
- return new vt(this.config);
- }
- auth({ persistence: e2 } = {}) {
- if (this.authObj)
- return this.authObj;
- const t2 = e2 || Ce.adapter.primaryStorage || yt.persistence;
- var n2;
- return t2 !== this.config.persistence && (this.config.persistence = t2), function(e3) {
- const { env: t3 } = e3;
- Re[t3] = new Ne(e3), Le[t3] = new Ne({ ...e3, persistence: "local" });
- }(this.config), n2 = this.config, tt[n2.env] = new et(n2), this.authObj = new ht(this.config), this.authObj;
- }
- on(e2, t2) {
- return Fe.apply(this, [e2, t2]);
- }
- off(e2, t2) {
- return je.apply(this, [e2, t2]);
- }
- callFunction(e2, t2) {
- return mt.apply(this, [e2, t2]);
- }
- deleteFile(e2, t2) {
- return pt.apply(this, [e2, t2]);
- }
- getTempFileURL(e2, t2) {
- return ft.apply(this, [e2, t2]);
- }
- downloadFile(e2, t2) {
- return gt.apply(this, [e2, t2]);
- }
- uploadFile(e2, t2) {
- return lt.apply(this, [e2, t2]);
- }
- getUploadMetadata(e2, t2) {
- return dt.apply(this, [e2, t2]);
- }
- registerExtension(e2) {
- wt[e2.name] = e2;
- }
- async invokeExtension(e2, t2) {
- const n2 = wt[e2];
- if (!n2)
- throw new te({ message: `扩展${e2} 必须先注册` });
- return await n2.invoke(t2, this);
- }
- useAdapters(e2) {
- const { adapter: t2, runtime: n2 } = Pe(e2) || {};
- t2 && (Ce.adapter = t2), n2 && (Ce.runtime = n2);
- }
- }
- var It = new vt();
- function St(e2, t2, n2) {
- void 0 === n2 && (n2 = {});
- var s2 = /\?/.test(t2), r2 = "";
- for (var i2 in n2)
- "" === r2 ? !s2 && (t2 += "?") : r2 += "&", r2 += i2 + "=" + encodeURIComponent(n2[i2]);
- return /^http(s)?:\/\//.test(t2 += r2) ? t2 : "" + e2 + t2;
- }
- class Tt {
- get(e2) {
- const { url: t2, data: n2, headers: s2, timeout: r2 } = e2;
- return new Promise((e3, i2) => {
- ne.request({ url: St("https:", t2), data: n2, method: "GET", header: s2, timeout: r2, success(t3) {
- e3(t3);
- }, fail(e4) {
- i2(e4);
- } });
- });
- }
- post(e2) {
- const { url: t2, data: n2, headers: s2, timeout: r2 } = e2;
- return new Promise((e3, i2) => {
- ne.request({ url: St("https:", t2), data: n2, method: "POST", header: s2, timeout: r2, success(t3) {
- e3(t3);
- }, fail(e4) {
- i2(e4);
- } });
- });
- }
- upload(e2) {
- return new Promise((t2, n2) => {
- const { url: s2, file: r2, data: i2, headers: o2, fileType: a2 } = e2, c2 = ne.uploadFile({ url: St("https:", s2), name: "file", formData: Object.assign({}, i2), filePath: r2, fileType: a2, header: o2, success(e3) {
- const n3 = { statusCode: e3.statusCode, data: e3.data || {} };
- 200 === e3.statusCode && i2.success_action_status && (n3.statusCode = parseInt(i2.success_action_status, 10)), t2(n3);
- }, fail(e3) {
- n2(new Error(e3.errMsg || "uploadFile:fail"));
- } });
- "function" == typeof e2.onUploadProgress && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((t3) => {
- e2.onUploadProgress({ loaded: t3.totalBytesSent, total: t3.totalBytesExpectedToSend });
- });
- });
- }
- }
- const bt = { setItem(e2, t2) {
- ne.setStorageSync(e2, t2);
- }, getItem: (e2) => ne.getStorageSync(e2), removeItem(e2) {
- ne.removeStorageSync(e2);
- }, clear() {
- ne.clearStorageSync();
- } };
- var Et = { genAdapter: function() {
- return { root: {}, reqClass: Tt, localStorage: bt, primaryStorage: "local" };
- }, isMatch: function() {
- return true;
- }, runtime: "uni_app" };
- It.useAdapters(Et);
- const kt = It, Pt = kt.init;
- kt.init = function(e2) {
- e2.env = e2.spaceId;
- const t2 = Pt.call(this, e2);
- t2.config.provider = "tencent", t2.config.spaceId = e2.spaceId;
- const n2 = t2.auth;
- return t2.auth = function(e3) {
- const t3 = n2.call(this, e3);
- return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach((e4) => {
- var n3;
- t3[e4] = (n3 = t3[e4], function(e5) {
- e5 = e5 || {};
- const { success: t4, fail: s2, complete: r2 } = ee(e5);
- if (!(t4 || s2 || r2))
- return n3.call(this, e5);
- n3.call(this, e5).then((e6) => {
- t4 && t4(e6), r2 && r2(e6);
- }, (e6) => {
- s2 && s2(e6), r2 && r2(e6);
- });
- }).bind(t3);
- }), t3;
- }, t2.customAuth = t2.auth, t2;
- };
- var Ct = kt;
- async function At(e2, t2) {
- const n2 = `http://${e2}:${t2}/system/ping`;
- try {
- const e3 = await (s2 = { url: n2, timeout: 500 }, new Promise((e4, t3) => {
- ne.request({ ...s2, success(t4) {
- e4(t4);
- }, fail(e5) {
- t3(e5);
- } });
- }));
- return !(!e3.data || 0 !== e3.data.code);
- } catch (e3) {
- return false;
- }
- var s2;
- }
- async function Ot(e2, t2) {
- let n2;
- for (let s2 = 0; s2 < e2.length; s2++) {
- const r2 = e2[s2];
- if (await At(r2, t2)) {
- n2 = r2;
- break;
- }
- }
- return { address: n2, port: t2 };
- }
- const xt = { "serverless.file.resource.generateProximalSign": "storage/generate-proximal-sign", "serverless.file.resource.report": "storage/report", "serverless.file.resource.delete": "storage/delete", "serverless.file.resource.getTempFileURL": "storage/get-temp-file-url" };
- var Nt = class {
- constructor(e2) {
- if (["spaceId", "clientSecret"].forEach((t2) => {
- if (!Object.prototype.hasOwnProperty.call(e2, t2))
- throw new Error(`${t2} required`);
- }), !e2.endpoint)
- throw new Error("集群空间未配置ApiEndpoint,配置后需要重新关联服务空间后生效");
- this.config = Object.assign({}, e2), this.config.provider = "dcloud", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.adapter = ne;
- }
- async request(e2, t2 = true) {
- const n2 = t2;
- return e2 = n2 ? await this.setupLocalRequest(e2) : this.setupRequest(e2), Promise.resolve().then(() => n2 ? this.requestLocal(e2) : de.wrappedRequest(e2, this.adapter.request));
- }
- requestLocal(e2) {
- return new Promise((t2, n2) => {
- this.adapter.request(Object.assign(e2, { complete(e3) {
- if (e3 || (e3 = {}), !e3.statusCode || e3.statusCode >= 400) {
- const t3 = e3.data && e3.data.code || "SYS_ERR", s2 = e3.data && e3.data.message || "request:fail";
- return n2(new te({ code: t3, message: s2 }));
- }
- t2({ success: true, result: e3.data });
- } }));
- });
- }
- setupRequest(e2) {
- const t2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), n2 = { "Content-Type": "application/json" };
- n2["x-serverless-sign"] = de.sign(t2, this.config.clientSecret);
- const s2 = le();
- n2["x-client-info"] = encodeURIComponent(JSON.stringify(s2));
- const { token: r2 } = re();
- return n2["x-client-token"] = r2, { url: this.config.requestUrl, method: "POST", data: t2, dataType: "json", header: JSON.parse(JSON.stringify(n2)) };
- }
- async setupLocalRequest(e2) {
- const t2 = le(), { token: n2 } = re(), s2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now(), clientInfo: t2, token: n2 }), { address: r2, servePort: i2 } = this.__dev__ && this.__dev__.debugInfo || {}, { address: o2 } = await Ot(r2, i2);
- return { url: `http://${o2}:${i2}/${xt[e2.method]}`, method: "POST", data: s2, dataType: "json", header: JSON.parse(JSON.stringify({ "Content-Type": "application/json" })) };
- }
- callFunction(e2) {
- const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) };
- return this.request(t2, false);
- }
- getUploadFileOptions(e2) {
- const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) };
- return this.request(t2);
- }
- reportUploadFile(e2) {
- const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) };
- return this.request(t2);
- }
- uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", onUploadProgress: s2 }) {
- if (!t2)
- throw new te({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" });
- let r2;
- return this.getUploadFileOptions({ cloudPath: t2 }).then((t3) => {
- const { url: i2, formData: o2, name: a2 } = t3.result;
- return r2 = t3.result.fileUrl, new Promise((t4, r3) => {
- const c2 = this.adapter.uploadFile({ url: i2, formData: o2, name: a2, filePath: e2, fileType: n2, success(e3) {
- e3 && e3.statusCode < 400 ? t4(e3) : r3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }, fail(e3) {
- r3(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" }));
- } });
- "function" == typeof s2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => {
- s2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend });
- });
- });
- }).then(() => this.reportUploadFile({ cloudPath: t2 })).then((t3) => new Promise((n3, s3) => {
- t3.success ? n3({ success: true, filePath: e2, fileID: r2 }) : s3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }));
- }
- deleteFile({ fileList: e2 }) {
- const t2 = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e2 }) };
- return this.request(t2).then((e3) => {
- if (e3.success)
- return e3.result;
- throw new te({ code: "DELETE_FILE_FAILED", message: "删除文件失败" });
- });
- }
- getTempFileURL({ fileList: e2, maxAge: t2 } = {}) {
- if (!Array.isArray(e2) || 0 === e2.length)
- throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" });
- const n2 = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e2, maxAge: t2 }) };
- return this.request(n2).then((e3) => {
- if (e3.success)
- return { fileList: e3.result.fileList.map((e4) => ({ fileID: e4.fileID, tempFileURL: e4.tempFileURL })) };
- throw new te({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" });
- });
- }
- };
- var Rt = { init(e2) {
- const t2 = new Nt(e2), n2 = { signInAnonymously: function() {
- return Promise.resolve();
- }, getLoginState: function() {
- return Promise.resolve(false);
- } };
- return t2.auth = function() {
- return n2;
- }, t2.customAuth = t2.auth, t2;
- } }, Lt = n(function(e2, t2) {
- e2.exports = r.enc.Hex;
- });
- function Ut() {
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e2) {
- var t2 = 16 * Math.random() | 0;
- return ("x" === e2 ? t2 : 3 & t2 | 8).toString(16);
- });
- }
- function Dt(e2 = "", t2 = {}) {
- const { data: n2, functionName: s2, method: r2, headers: i2, signHeaderKeys: o2 = [], config: a2 } = t2, c2 = String(Date.now()), u2 = Ut(), h2 = Object.assign({}, i2, { "x-from-app-id": a2.spaceAppId, "x-from-env-id": a2.spaceId, "x-to-env-id": a2.spaceId, "x-from-instance-id": c2, "x-from-function-name": s2, "x-client-timestamp": c2, "x-alipay-source": "client", "x-request-id": u2, "x-alipay-callid": u2, "x-trace-id": u2 }), l2 = ["x-from-app-id", "x-from-env-id", "x-to-env-id", "x-from-instance-id", "x-from-function-name", "x-client-timestamp"].concat(o2), [d2 = "", p2 = ""] = e2.split("?") || [], f2 = function(e3) {
- const t3 = "HMAC-SHA256", n3 = e3.signedHeaders.join(";"), s3 = e3.signedHeaders.map((t4) => `${t4.toLowerCase()}:${e3.headers[t4]}
- `).join(""), r3 = we(e3.body).toString(Lt), i3 = `${e3.method.toUpperCase()}
- ${e3.path}
- ${e3.query}
- ${s3}
- ${n3}
- ${r3}
- `, o3 = we(i3).toString(Lt), a3 = `${t3}
- ${e3.timestamp}
- ${o3}
- `, c3 = ve(a3, e3.secretKey).toString(Lt);
- return `${t3} Credential=${e3.secretId}, SignedHeaders=${n3}, Signature=${c3}`;
- }({ path: d2, query: p2, method: r2, headers: h2, timestamp: c2, body: JSON.stringify(n2), secretId: a2.accessKey, secretKey: a2.secretKey, signedHeaders: l2.sort() });
- return { url: `${a2.endpoint}${e2}`, headers: Object.assign({}, h2, { Authorization: f2 }) };
- }
- function Mt({ url: e2, data: t2, method: n2 = "POST", headers: s2 = {}, timeout: r2 }) {
- return new Promise((i2, o2) => {
- ne.request({ url: e2, method: n2, data: "object" == typeof t2 ? JSON.stringify(t2) : t2, header: s2, dataType: "json", timeout: r2, complete: (e3 = {}) => {
- const t3 = s2["x-trace-id"] || "";
- if (!e3.statusCode || e3.statusCode >= 400) {
- const { message: n3, errMsg: s3, trace_id: r3 } = e3.data || {};
- return o2(new te({ code: "SYS_ERR", message: n3 || s3 || "request:fail", requestId: r3 || t3 }));
- }
- i2({ status: e3.statusCode, data: e3.data, headers: e3.header, requestId: t3 });
- } });
- });
- }
- function qt(e2, t2) {
- const { path: n2, data: s2, method: r2 = "GET" } = e2, { url: i2, headers: o2 } = Dt(n2, { functionName: "", data: s2, method: r2, headers: { "x-alipay-cloud-mode": "oss", "x-data-api-type": "oss", "x-expire-timestamp": Date.now() + 6e4 }, signHeaderKeys: ["x-data-api-type", "x-expire-timestamp"], config: t2 });
- return Mt({ url: i2, data: s2, method: r2, headers: o2 }).then((e3) => {
- const t3 = e3.data || {};
- if (!t3.success)
- throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId });
- return t3.data || {};
- }).catch((e3) => {
- throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId });
- });
- }
- function Ft(e2 = "") {
- const t2 = e2.trim().replace(/^cloud:\/\//, ""), n2 = t2.indexOf("/");
- if (n2 <= 0)
- throw new te({ code: "INVALID_PARAM", message: "fileID不合法" });
- const s2 = t2.substring(0, n2), r2 = t2.substring(n2 + 1);
- return s2 !== this.config.spaceId && console.warn("file ".concat(e2, " does not belong to env ").concat(this.config.spaceId)), r2;
- }
- function Kt(e2 = "") {
- return "cloud://".concat(this.config.spaceId, "/").concat(e2.replace(/^\/+/, ""));
- }
- class jt {
- constructor(e2) {
- this.config = e2;
- }
- signedURL(e2, t2 = {}) {
- const n2 = `/ws/function/${e2}`, s2 = this.config.wsEndpoint.replace(/^ws(s)?:\/\//, ""), r2 = Object.assign({}, t2, { accessKeyId: this.config.accessKey, signatureNonce: Ut(), timestamp: "" + Date.now() }), i2 = [n2, ["accessKeyId", "authorization", "signatureNonce", "timestamp"].sort().map(function(e3) {
- return r2[e3] ? "".concat(e3, "=").concat(r2[e3]) : null;
- }).filter(Boolean).join("&"), `host:${s2}`].join("\n"), o2 = ["HMAC-SHA256", we(i2).toString(Lt)].join("\n"), a2 = ve(o2, this.config.secretKey).toString(Lt), c2 = Object.keys(r2).map((e3) => `${e3}=${encodeURIComponent(r2[e3])}`).join("&");
- return `${this.config.wsEndpoint}${n2}?${c2}&signature=${a2}`;
- }
- }
- var $t = class {
- constructor(e2) {
- if (["spaceId", "spaceAppId", "accessKey", "secretKey"].forEach((t2) => {
- if (!Object.prototype.hasOwnProperty.call(e2, t2))
- throw new Error(`${t2} required`);
- }), e2.endpoint) {
- if ("string" != typeof e2.endpoint)
- throw new Error("endpoint must be string");
- if (!/^https:\/\//.test(e2.endpoint))
- throw new Error("endpoint must start with https://");
- e2.endpoint = e2.endpoint.replace(/\/$/, "");
- }
- this.config = Object.assign({}, e2, { endpoint: e2.endpoint || `https://${e2.spaceId}.api-hz.cloudbasefunction.cn`, wsEndpoint: e2.wsEndpoint || `wss://${e2.spaceId}.api-hz.cloudbasefunction.cn` }), this._websocket = new jt(this.config);
- }
- callFunction(e2) {
- return function(e3, t2) {
- const { name: n2, data: s2, async: r2 = false, timeout: i2 } = e3, o2 = "POST", a2 = { "x-to-function-name": n2 };
- r2 && (a2["x-function-invoke-type"] = "async");
- const { url: c2, headers: u2 } = Dt("/functions/invokeFunction", { functionName: n2, data: s2, method: o2, headers: a2, signHeaderKeys: ["x-to-function-name"], config: t2 });
- return Mt({ url: c2, data: s2, method: o2, headers: u2, timeout: i2 }).then((e4) => {
- let t3 = 0;
- if (r2) {
- const n3 = e4.data || {};
- t3 = "200" === n3.errCode ? 0 : n3.errCode, e4.data = n3.data || {}, e4.errMsg = n3.errMsg;
- }
- if (0 !== t3)
- throw new te({ code: t3, message: e4.errMsg, requestId: e4.requestId });
- return { errCode: t3, success: 0 === t3, requestId: e4.requestId, result: e4.data };
- }).catch((e4) => {
- throw new te({ code: e4.errCode, message: e4.errMsg, requestId: e4.requestId });
- });
- }(e2, this.config);
- }
- uploadFileToOSS({ url: e2, filePath: t2, fileType: n2, formData: s2, onUploadProgress: r2 }) {
- return new Promise((i2, o2) => {
- const a2 = ne.uploadFile({ url: e2, filePath: t2, fileType: n2, formData: s2, name: "file", success(e3) {
- e3 && e3.statusCode < 400 ? i2(e3) : o2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }));
- }, fail(e3) {
- o2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" }));
- } });
- "function" == typeof r2 && a2 && "function" == typeof a2.onProgressUpdate && a2.onProgressUpdate((e3) => {
- r2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend });
- });
- });
- }
- async uploadFile({ filePath: e2, cloudPath: t2 = "", fileType: n2 = "image", onUploadProgress: s2 }) {
- if ("string" !== g(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" });
- if (!(t2 = t2.trim()))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" });
- if (/:\/\//.test(t2))
- throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" });
- const r2 = await qt({ path: "/".concat(t2.replace(/^\//, ""), "?post_url") }, this.config), { file_id: i2, upload_url: o2, form_data: a2 } = r2, c2 = a2 && a2.reduce((e3, t3) => (e3[t3.key] = t3.value, e3), {});
- return this.uploadFileToOSS({ url: o2, filePath: e2, fileType: n2, formData: c2, onUploadProgress: s2 }).then(() => ({ fileID: i2 }));
- }
- async getTempFileURL({ fileList: e2 }) {
- return new Promise((t2, n2) => {
- (!e2 || e2.length < 0) && t2({ code: "INVALID_PARAM", message: "fileList不能为空数组" }), e2.length > 50 && t2({ code: "INVALID_PARAM", message: "fileList数组长度不能超过50" });
- const s2 = [];
- for (const n3 of e2) {
- let e3;
- "string" !== g(n3) && t2({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" });
- try {
- e3 = Ft.call(this, n3);
- } catch (t3) {
- console.warn(t3.errCode, t3.errMsg), e3 = n3;
- }
- s2.push({ file_id: e3, expire: 600 });
- }
- qt({ path: "/?download_url", data: { file_list: s2 }, method: "POST" }, this.config).then((e3) => {
- const { file_list: n3 = [] } = e3;
- t2({ fileList: n3.map((e4) => ({ fileID: Kt.call(this, e4.file_id), tempFileURL: e4.download_url })) });
- }).catch((e3) => n2(e3));
- });
- }
- async connectWebSocket(e2) {
- const { name: t2, query: n2 } = e2;
- return ne.connectSocket({ url: this._websocket.signedURL(t2, n2), complete: () => {
- } });
- }
- };
- var Bt = { init: (e2) => {
- e2.provider = "alipay";
- const t2 = new $t(e2);
- return t2.auth = function() {
- return { signInAnonymously: function() {
- return Promise.resolve();
- }, getLoginState: function() {
- return Promise.resolve(true);
- } };
- }, t2;
- } };
- function Wt({ data: e2 }) {
- let t2;
- t2 = le();
- const n2 = JSON.parse(JSON.stringify(e2 || {}));
- if (Object.assign(n2, { clientInfo: t2 }), !n2.uniIdToken) {
- const { token: e3 } = re();
- e3 && (n2.uniIdToken = e3);
- }
- return n2;
- }
- async function Ht(e2 = {}) {
- await this.__dev__.initLocalNetwork();
- const { localAddress: t2, localPort: n2 } = this.__dev__, s2 = { aliyun: "aliyun", tencent: "tcb", alipay: "alipay", dcloud: "dcloud" }[this.config.provider], r2 = this.config.spaceId, i2 = `http://${t2}:${n2}/system/check-function`, o2 = `http://${t2}:${n2}/cloudfunctions/${e2.name}`;
- return new Promise((t3, n3) => {
- ne.request({ method: "POST", url: i2, data: { name: e2.name, platform: C, provider: s2, spaceId: r2 }, timeout: 3e3, success(e3) {
- t3(e3);
- }, fail() {
- t3({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } });
- } });
- }).then(({ data: e3 } = {}) => {
- const { code: t3, message: n3 } = e3 || {};
- return { code: 0 === t3 ? 0 : t3 || "SYS_ERR", message: n3 || "SYS_ERR" };
- }).then(({ code: t3, message: n3 }) => {
- if (0 !== t3) {
- switch (t3) {
- case "MODULE_ENCRYPTED":
- console.error(`此云函数(${e2.name})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);
- break;
- case "FUNCTION_ENCRYPTED":
- console.error(`此云函数(${e2.name})已加密不可本地调试,自动切换为云端已部署的云函数`);
- break;
- case "ACTION_ENCRYPTED":
- console.error(n3 || "需要访问加密的uni-clientDB-action,自动切换为云端环境");
- break;
- case "NETWORK_ERROR":
- console.error(n3 || "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下");
- break;
- case "SWITCH_TO_CLOUD":
- break;
- default: {
- const e3 = `检测本地调试服务出现错误:${n3},请检查网络环境或重启客户端再试`;
- throw console.error(e3), new Error(e3);
- }
- }
- return this._callCloudFunction(e2);
- }
- return new Promise((t4, n4) => {
- const r3 = Wt.call(this, { data: e2.data });
- ne.request({ method: "POST", url: o2, data: { provider: s2, platform: C, param: r3 }, timeout: e2.timeout, success: ({ statusCode: e3, data: s3 } = {}) => !e3 || e3 >= 400 ? n4(new te({ code: s3.code || "SYS_ERR", message: s3.message || "request:fail" })) : t4({ result: s3 }), fail(e3) {
- n4(new te({ code: e3.code || e3.errCode || "SYS_ERR", message: e3.message || e3.errMsg || "request:fail" }));
- } });
- });
- });
- }
- const Jt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }];
- var zt = /[\\^$.*+?()[\]{}|]/g, Vt = RegExp(zt.source);
- function Gt(e2, t2, n2) {
- return e2.replace(new RegExp((s2 = t2) && Vt.test(s2) ? s2.replace(zt, "\\$&") : s2, "g"), n2);
- var s2;
- }
- const Yt = { NONE: "none", REQUEST: "request", RESPONSE: "response", BOTH: "both" }, Qt = "_globalUniCloudStatus", Xt = "_globalUniCloudSecureNetworkCache__{spaceId}";
- const Un = "uni-secure-network", Dn = { SYSTEM_ERROR: { code: 2e4, message: "System error" }, APP_INFO_INVALID: { code: 20101, message: "Invalid client" }, GET_ENCRYPT_KEY_FAILED: { code: 20102, message: "Get encrypt key failed" } };
- function qn(e2) {
- const { errSubject: t2, subject: n2, errCode: s2, errMsg: r2, code: i2, message: o2, cause: a2 } = e2 || {};
- return new te({ subject: t2 || n2 || Un, code: s2 || i2 || Dn.SYSTEM_ERROR.code, message: r2 || o2, cause: a2 });
- }
- let Kn;
- function Hn({ secretType: e2 } = {}) {
- return e2 === Yt.REQUEST || e2 === Yt.RESPONSE || e2 === Yt.BOTH;
- }
- function Jn({ name: e2, data: t2 = {} } = {}) {
- return "DCloud-clientDB" === e2 && "encryption" === t2.redirectTo && "getAppClientKey" === t2.action;
- }
- function zn({ provider: e2, spaceId: t2, functionName: n2 } = {}) {
- const { appId: s2, uniPlatform: r2, osName: i2 } = ce();
- let o2 = r2;
- "app" === r2 && (o2 = i2);
- const a2 = function({ provider: e3, spaceId: t3 } = {}) {
- const n3 = P;
- if (!n3)
- return {};
- e3 = /* @__PURE__ */ function(e4) {
- return "tencent" === e4 ? "tcb" : e4;
- }(e3);
- const s3 = n3.find((n4) => n4.provider === e3 && n4.spaceId === t3);
- return s3 && s3.config;
- }({ provider: e2, spaceId: t2 });
- if (!a2 || !a2.accessControl || !a2.accessControl.enable)
- return false;
- const c2 = a2.accessControl.function || {}, u2 = Object.keys(c2);
- if (0 === u2.length)
- return true;
- const h2 = function(e3, t3) {
- let n3, s3, r3;
- for (let i3 = 0; i3 < e3.length; i3++) {
- const o3 = e3[i3];
- o3 !== t3 ? "*" !== o3 ? o3.split(",").map((e4) => e4.trim()).indexOf(t3) > -1 && (s3 = o3) : r3 = o3 : n3 = o3;
- }
- return n3 || s3 || r3;
- }(u2, n2);
- if (!h2)
- return false;
- if ((c2[h2] || []).find((e3 = {}) => e3.appId === s2 && (e3.platform || "").toLowerCase() === o2.toLowerCase()))
- return true;
- throw console.error(`此应用[appId: ${s2}, platform: ${o2}]不在云端配置的允许访问的应用列表内,参考:https://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client`), qn(Dn.APP_INFO_INVALID);
- }
- function Vn({ functionName: e2, result: t2, logPvd: n2 }) {
- if (this.__dev__.debugLog && t2 && t2.requestId) {
- const s2 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e2, requestId: t2.requestId });
- console.log(`[${n2}-request]${s2}[/${n2}-request]`);
- }
- }
- function Gn(e2) {
- const t2 = e2.callFunction, n2 = function(n3) {
- const s2 = n3.name;
- n3.data = Wt.call(e2, { data: n3.data });
- const r2 = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb", alipay: "alipay", dcloud: "dcloud" }[this.config.provider], i2 = Hn(n3), o2 = Jn(n3), a2 = i2 || o2;
- return t2.call(this, n3).then((e3) => (e3.errCode = 0, !a2 && Vn.call(this, { functionName: s2, result: e3, logPvd: r2 }), Promise.resolve(e3)), (e3) => (!a2 && Vn.call(this, { functionName: s2, result: e3, logPvd: r2 }), e3 && e3.message && (e3.message = function({ message: e4 = "", extraInfo: t3 = {}, formatter: n4 = [] } = {}) {
- for (let s3 = 0; s3 < n4.length; s3++) {
- const { rule: r3, content: i3, mode: o3 } = n4[s3], a3 = e4.match(r3);
- if (!a3)
- continue;
- let c2 = i3;
- for (let e5 = 1; e5 < a3.length; e5++)
- c2 = Gt(c2, `{$${e5}}`, a3[e5]);
- for (const e5 in t3)
- c2 = Gt(c2, `{${e5}}`, t3[e5]);
- return "replace" === o3 ? c2 : e4 + c2;
- }
- return e4;
- }({ message: `[${n3.name}]: ${e3.message}`, formatter: Jt, extraInfo: { functionName: s2 } })), Promise.reject(e3)));
- };
- e2.callFunction = function(t3) {
- const { provider: s2, spaceId: r2 } = e2.config, i2 = t3.name;
- let o2, a2;
- if (t3.data = t3.data || {}, e2.__dev__.debugInfo && !e2.__dev__.debugInfo.forceRemote && O ? (e2._callCloudFunction || (e2._callCloudFunction = n2, e2._callLocalFunction = Ht), o2 = Ht) : o2 = n2, o2 = o2.bind(e2), Jn(t3))
- a2 = n2.call(e2, t3);
- else if (Hn(t3)) {
- a2 = new Kn({ secretType: t3.secretType, uniCloudIns: e2 }).wrapEncryptDataCallFunction(n2.bind(e2))(t3);
- } else if (zn({ provider: s2, spaceId: r2, functionName: i2 })) {
- a2 = new Kn({ secretType: t3.secretType, uniCloudIns: e2 }).wrapVerifyClientCallFunction(n2.bind(e2))(t3);
- } else
- a2 = o2(t3);
- return Object.defineProperty(a2, "result", { get: () => (console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}) }), a2.then((e3) => ("undefined" != typeof UTSJSONObject && (e3.result = new UTSJSONObject(e3.result)), e3));
- };
- }
- Kn = class {
- constructor() {
- throw qn({ message: `Platform ${C} is not enabled, please check whether secure network module is enabled in your manifest.json` });
- }
- };
- const Yn = Symbol("CLIENT_DB_INTERNAL");
- function Qn(e2, t2) {
- return e2.then = "DoNotReturnProxyWithAFunctionNamedThen", e2._internalType = Yn, e2.inspect = null, e2.__v_raw = void 0, new Proxy(e2, { get(e3, n2, s2) {
- if ("_uniClient" === n2)
- return null;
- if ("symbol" == typeof n2)
- return e3[n2];
- if (n2 in e3 || "string" != typeof n2) {
- const t3 = e3[n2];
- return "function" == typeof t3 ? t3.bind(e3) : t3;
- }
- return t2.get(e3, n2, s2);
- } });
- }
- function Xn(e2) {
- return { on: (t2, n2) => {
- e2[t2] = e2[t2] || [], e2[t2].indexOf(n2) > -1 || e2[t2].push(n2);
- }, off: (t2, n2) => {
- e2[t2] = e2[t2] || [];
- const s2 = e2[t2].indexOf(n2);
- -1 !== s2 && e2[t2].splice(s2, 1);
- } };
- }
- const Zn = ["db.Geo", "db.command", "command.aggregate"];
- function es(e2, t2) {
- return Zn.indexOf(`${e2}.${t2}`) > -1;
- }
- function ts(e2) {
- switch (g(e2 = se(e2))) {
- case "array":
- return e2.map((e3) => ts(e3));
- case "object":
- return e2._internalType === Yn || Object.keys(e2).forEach((t2) => {
- e2[t2] = ts(e2[t2]);
- }), e2;
- case "regexp":
- return { $regexp: { source: e2.source, flags: e2.flags } };
- case "date":
- return { $date: e2.toISOString() };
- default:
- return e2;
- }
- }
- function ns(e2) {
- return e2 && e2.content && e2.content.$method;
- }
- class ss {
- constructor(e2, t2, n2) {
- this.content = e2, this.prevStage = t2 || null, this.udb = null, this._database = n2;
- }
- toJSON() {
- let e2 = this;
- const t2 = [e2.content];
- for (; e2.prevStage; )
- e2 = e2.prevStage, t2.push(e2.content);
- return { $db: t2.reverse().map((e3) => ({ $method: e3.$method, $param: ts(e3.$param) })) };
- }
- toString() {
- return JSON.stringify(this.toJSON());
- }
- getAction() {
- const e2 = this.toJSON().$db.find((e3) => "action" === e3.$method);
- return e2 && e2.$param && e2.$param[0];
- }
- getCommand() {
- return { $db: this.toJSON().$db.filter((e2) => "action" !== e2.$method) };
- }
- get isAggregate() {
- let e2 = this;
- for (; e2; ) {
- const t2 = ns(e2), n2 = ns(e2.prevStage);
- if ("aggregate" === t2 && "collection" === n2 || "pipeline" === t2)
- return true;
- e2 = e2.prevStage;
- }
- return false;
- }
- get isCommand() {
- let e2 = this;
- for (; e2; ) {
- if ("command" === ns(e2))
- return true;
- e2 = e2.prevStage;
- }
- return false;
- }
- get isAggregateCommand() {
- let e2 = this;
- for (; e2; ) {
- const t2 = ns(e2), n2 = ns(e2.prevStage);
- if ("aggregate" === t2 && "command" === n2)
- return true;
- e2 = e2.prevStage;
- }
- return false;
- }
- getNextStageFn(e2) {
- const t2 = this;
- return function() {
- return rs({ $method: e2, $param: ts(Array.from(arguments)) }, t2, t2._database);
- };
- }
- get count() {
- return this.isAggregate ? this.getNextStageFn("count") : function() {
- return this._send("count", Array.from(arguments));
- };
- }
- get remove() {
- return this.isCommand ? this.getNextStageFn("remove") : function() {
- return this._send("remove", Array.from(arguments));
- };
- }
- get() {
- return this._send("get", Array.from(arguments));
- }
- get add() {
- return this.isCommand ? this.getNextStageFn("add") : function() {
- return this._send("add", Array.from(arguments));
- };
- }
- update() {
- return this._send("update", Array.from(arguments));
- }
- end() {
- return this._send("end", Array.from(arguments));
- }
- get set() {
- return this.isCommand ? this.getNextStageFn("set") : function() {
- throw new Error("JQL禁止使用set方法");
- };
- }
- _send(e2, t2) {
- const n2 = this.getAction(), s2 = this.getCommand();
- if (s2.$db.push({ $method: e2, $param: ts(t2) }), b) {
- const e3 = s2.$db.find((e4) => "collection" === e4.$method), t3 = e3 && e3.$param;
- t3 && 1 === t3.length && "string" == typeof e3.$param[0] && e3.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。");
- }
- return this._database._callCloudFunction({ action: n2, command: s2 });
- }
- }
- function rs(e2, t2, n2) {
- return Qn(new ss(e2, t2, n2), { get(e3, t3) {
- let s2 = "db";
- return e3 && e3.content && (s2 = e3.content.$method), es(s2, t3) ? rs({ $method: t3 }, e3, n2) : function() {
- return rs({ $method: t3, $param: ts(Array.from(arguments)) }, e3, n2);
- };
- } });
- }
- function is({ path: e2, method: t2 }) {
- return class {
- constructor() {
- this.param = Array.from(arguments);
- }
- toJSON() {
- return { $newDb: [...e2.map((e3) => ({ $method: e3 })), { $method: t2, $param: this.param }] };
- }
- toString() {
- return JSON.stringify(this.toJSON());
- }
- };
- }
- class os {
- constructor({ uniClient: e2 = {}, isJQL: t2 = false } = {}) {
- this._uniClient = e2, this._authCallBacks = {}, this._dbCallBacks = {}, e2._isDefault && (this._dbCallBacks = U("_globalUniCloudDatabaseCallback")), t2 || (this.auth = Xn(this._authCallBacks)), this._isJQL = t2, Object.assign(this, Xn(this._dbCallBacks)), this.env = Qn({}, { get: (e3, t3) => ({ $env: t3 }) }), this.Geo = Qn({}, { get: (e3, t3) => is({ path: ["Geo"], method: t3 }) }), this.serverDate = is({ path: [], method: "serverDate" }), this.RegExp = is({ path: [], method: "RegExp" });
- }
- getCloudEnv(e2) {
- if ("string" != typeof e2 || !e2.trim())
- throw new Error("getCloudEnv参数错误");
- return { $env: e2.replace("$cloudEnv_", "") };
- }
- _callback(e2, t2) {
- const n2 = this._dbCallBacks;
- n2[e2] && n2[e2].forEach((e3) => {
- e3(...t2);
- });
- }
- _callbackAuth(e2, t2) {
- const n2 = this._authCallBacks;
- n2[e2] && n2[e2].forEach((e3) => {
- e3(...t2);
- });
- }
- multiSend() {
- const e2 = Array.from(arguments), t2 = e2.map((e3) => {
- const t3 = e3.getAction(), n2 = e3.getCommand();
- if ("getTemp" !== n2.$db[n2.$db.length - 1].$method)
- throw new Error("multiSend只支持子命令内使用getTemp");
- return { action: t3, command: n2 };
- });
- return this._callCloudFunction({ multiCommand: t2, queryList: e2 });
- }
- }
- function as(e2, t2 = {}) {
- return Qn(new e2(t2), { get: (e3, t3) => es("db", t3) ? rs({ $method: t3 }, null, e3) : function() {
- return rs({ $method: t3, $param: ts(Array.from(arguments)) }, null, e3);
- } });
- }
- class cs extends os {
- _parseResult(e2) {
- return this._isJQL ? e2.result : e2;
- }
- _callCloudFunction({ action: e2, command: t2, multiCommand: n2, queryList: s2 }) {
- function r2(e3, t3) {
- if (n2 && s2)
- for (let n3 = 0; n3 < s2.length; n3++) {
- const r3 = s2[n3];
- r3.udb && "function" == typeof r3.udb.setResult && (t3 ? r3.udb.setResult(t3) : r3.udb.setResult(e3.result.dataList[n3]));
- }
- }
- const i2 = this, o2 = this._isJQL ? "databaseForJQL" : "database";
- function a2(e3) {
- return i2._callback("error", [e3]), j($(o2, "fail"), e3).then(() => j($(o2, "complete"), e3)).then(() => (r2(null, e3), Y(H.RESPONSE, { type: J.CLIENT_DB, content: e3 }), Promise.reject(e3)));
- }
- const c2 = j($(o2, "invoke")), u2 = this._uniClient;
- return c2.then(() => u2.callFunction({ name: "DCloud-clientDB", type: l.CLIENT_DB, data: { action: e2, command: t2, multiCommand: n2 } })).then((e3) => {
- const { code: t3, message: n3, token: s3, tokenExpired: c3, systemInfo: u3 = [] } = e3.result;
- if (u3)
- for (let e4 = 0; e4 < u3.length; e4++) {
- const { level: t4, message: n4, detail: s4 } = u3[e4];
- let r3 = "[System Info]" + n4;
- s4 && (r3 = `${r3}
- 详细信息:${s4}`), (console["warn" === t4 ? "error" : t4] || console.log)(r3);
- }
- if (t3) {
- return a2(new te({ code: t3, message: n3, requestId: e3.requestId }));
- }
- e3.result.errCode = e3.result.errCode || e3.result.code, e3.result.errMsg = e3.result.errMsg || e3.result.message, s3 && c3 && (ie({ token: s3, tokenExpired: c3 }), this._callbackAuth("refreshToken", [{ token: s3, tokenExpired: c3 }]), this._callback("refreshToken", [{ token: s3, tokenExpired: c3 }]), Y(H.REFRESH_TOKEN, { token: s3, tokenExpired: c3 }));
- const h2 = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }];
- for (let t4 = 0; t4 < h2.length; t4++) {
- const { prop: n4, tips: s4 } = h2[t4];
- if (n4 in e3.result) {
- const t5 = e3.result[n4];
- Object.defineProperty(e3.result, n4, { get: () => (console.warn(s4), t5) });
- }
- }
- return function(e4) {
- return j($(o2, "success"), e4).then(() => j($(o2, "complete"), e4)).then(() => {
- r2(e4, null);
- const t4 = i2._parseResult(e4);
- return Y(H.RESPONSE, { type: J.CLIENT_DB, content: t4 }), Promise.resolve(t4);
- });
- }(e3);
- }, (e3) => {
- /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e3.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB");
- return a2(new te({ code: e3.code || "SYSTEM_ERROR", message: e3.message, requestId: e3.requestId }));
- });
- }
- }
- const us = "token无效,跳转登录页面", hs = "token过期,跳转登录页面", ls = { TOKEN_INVALID_TOKEN_EXPIRED: hs, TOKEN_INVALID_INVALID_CLIENTID: us, TOKEN_INVALID: us, TOKEN_INVALID_WRONG_TOKEN: us, TOKEN_INVALID_ANONYMOUS_USER: us }, ds = { "uni-id-token-expired": hs, "uni-id-check-token-failed": us, "uni-id-token-not-exist": us, "uni-id-check-device-feature-failed": us };
- function ps(e2, t2) {
- let n2 = "";
- return n2 = e2 ? `${e2}/${t2}` : t2, n2.replace(/^\//, "");
- }
- function fs(e2 = [], t2 = "") {
- const n2 = [], s2 = [];
- return e2.forEach((e3) => {
- true === e3.needLogin ? n2.push(ps(t2, e3.path)) : false === e3.needLogin && s2.push(ps(t2, e3.path));
- }), { needLoginPage: n2, notNeedLoginPage: s2 };
- }
- function gs(e2) {
- return e2.split("?")[0].replace(/^\//, "");
- }
- function ms() {
- return function(e2) {
- let t2 = e2 && e2.$page && e2.$page.fullPath || "";
- return t2 ? ("/" !== t2.charAt(0) && (t2 = "/" + t2), t2) : t2;
- }(function() {
- const e2 = getCurrentPages();
- return e2[e2.length - 1];
- }());
- }
- function ys() {
- return gs(ms());
- }
- function _s(e2 = "", t2 = {}) {
- if (!e2)
- return false;
- if (!(t2 && t2.list && t2.list.length))
- return false;
- const n2 = t2.list, s2 = gs(e2);
- return n2.some((e3) => e3.pagePath === s2);
- }
- const ws = !!e.uniIdRouter;
- const { loginPage: vs, routerNeedLogin: Is, resToLogin: Ss, needLoginPage: Ts, notNeedLoginPage: bs, loginPageInTabBar: Es } = function({ pages: t2 = [], subPackages: n2 = [], uniIdRouter: s2 = {}, tabBar: r2 = {} } = e) {
- const { loginPage: i2, needLogin: o2 = [], resToLogin: a2 = true } = s2, { needLoginPage: c2, notNeedLoginPage: u2 } = fs(t2), { needLoginPage: h2, notNeedLoginPage: l2 } = function(e2 = []) {
- const t3 = [], n3 = [];
- return e2.forEach((e3) => {
- const { root: s3, pages: r3 = [] } = e3, { needLoginPage: i3, notNeedLoginPage: o3 } = fs(r3, s3);
- t3.push(...i3), n3.push(...o3);
- }), { needLoginPage: t3, notNeedLoginPage: n3 };
- }(n2);
- return { loginPage: i2, routerNeedLogin: o2, resToLogin: a2, needLoginPage: [...c2, ...h2], notNeedLoginPage: [...u2, ...l2], loginPageInTabBar: _s(i2, r2) };
- }();
- if (Ts.indexOf(vs) > -1)
- throw new Error(`Login page [${vs}] should not be "needLogin", please check your pages.json`);
- function ks(e2) {
- const t2 = ys();
- if ("/" === e2.charAt(0))
- return e2;
- const [n2, s2] = e2.split("?"), r2 = n2.replace(/^\//, "").split("/"), i2 = t2.split("/");
- i2.pop();
- for (let e3 = 0; e3 < r2.length; e3++) {
- const t3 = r2[e3];
- ".." === t3 ? i2.pop() : "." !== t3 && i2.push(t3);
- }
- return "" === i2[0] && i2.shift(), "/" + i2.join("/") + (s2 ? "?" + s2 : "");
- }
- function Ps(e2) {
- const t2 = gs(ks(e2));
- return !(bs.indexOf(t2) > -1) && (Ts.indexOf(t2) > -1 || Is.some((t3) => function(e3, t4) {
- return new RegExp(t4).test(e3);
- }(e2, t3)));
- }
- function Cs({ redirect: e2 }) {
- const t2 = gs(e2), n2 = gs(vs);
- return ys() !== n2 && t2 !== n2;
- }
- function As({ api: e2, redirect: t2 } = {}) {
- if (!t2 || !Cs({ redirect: t2 }))
- return;
- const n2 = function(e3, t3) {
- return "/" !== e3.charAt(0) && (e3 = "/" + e3), t3 ? e3.indexOf("?") > -1 ? e3 + `&uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3 + `?uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3;
- }(vs, t2);
- Es ? "navigateTo" !== e2 && "redirectTo" !== e2 || (e2 = "switchTab") : "switchTab" === e2 && (e2 = "navigateTo");
- const s2 = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch };
- setTimeout(() => {
- s2[e2]({ url: n2 });
- }, 0);
- }
- function Os({ url: e2 } = {}) {
- const t2 = { abortLoginPageJump: false, autoToLoginPage: false }, n2 = function() {
- const { token: e3, tokenExpired: t3 } = re();
- let n3;
- if (e3) {
- if (t3 < Date.now()) {
- const e4 = "uni-id-token-expired";
- n3 = { errCode: e4, errMsg: ds[e4] };
- }
- } else {
- const e4 = "uni-id-check-token-failed";
- n3 = { errCode: e4, errMsg: ds[e4] };
- }
- return n3;
- }();
- if (Ps(e2) && n2) {
- n2.uniIdRedirectUrl = e2;
- if (z(H.NEED_LOGIN).length > 0)
- return setTimeout(() => {
- Y(H.NEED_LOGIN, n2);
- }, 0), t2.abortLoginPageJump = true, t2;
- t2.autoToLoginPage = true;
- }
- return t2;
- }
- function xs() {
- !function() {
- const e3 = ms(), { abortLoginPageJump: t2, autoToLoginPage: n2 } = Os({ url: e3 });
- t2 || n2 && As({ api: "redirectTo", redirect: e3 });
- }();
- const e2 = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
- for (let t2 = 0; t2 < e2.length; t2++) {
- const n2 = e2[t2];
- uni.addInterceptor(n2, { invoke(e3) {
- const { abortLoginPageJump: t3, autoToLoginPage: s2 } = Os({ url: e3.url });
- return t3 ? e3 : s2 ? (As({ api: n2, redirect: ks(e3.url) }), false) : e3;
- } });
- }
- }
- function Ns() {
- this.onResponse((e2) => {
- const { type: t2, content: n2 } = e2;
- let s2 = false;
- switch (t2) {
- case "cloudobject":
- s2 = function(e3) {
- if ("object" != typeof e3)
- return false;
- const { errCode: t3 } = e3 || {};
- return t3 in ds;
- }(n2);
- break;
- case "clientdb":
- s2 = function(e3) {
- if ("object" != typeof e3)
- return false;
- const { errCode: t3 } = e3 || {};
- return t3 in ls;
- }(n2);
- }
- s2 && function(e3 = {}) {
- const t3 = z(H.NEED_LOGIN);
- Z().then(() => {
- const n3 = ms();
- if (n3 && Cs({ redirect: n3 }))
- return t3.length > 0 ? Y(H.NEED_LOGIN, Object.assign({ uniIdRedirectUrl: n3 }, e3)) : void (vs && As({ api: "navigateTo", redirect: n3 }));
- });
- }(n2);
- });
- }
- function Rs(e2) {
- !function(e3) {
- e3.onResponse = function(e4) {
- V(H.RESPONSE, e4);
- }, e3.offResponse = function(e4) {
- G(H.RESPONSE, e4);
- };
- }(e2), function(e3) {
- e3.onNeedLogin = function(e4) {
- V(H.NEED_LOGIN, e4);
- }, e3.offNeedLogin = function(e4) {
- G(H.NEED_LOGIN, e4);
- }, ws && (U(Qt).needLoginInit || (U(Qt).needLoginInit = true, Z().then(() => {
- xs.call(e3);
- }), Ss && Ns.call(e3)));
- }(e2), function(e3) {
- e3.onRefreshToken = function(e4) {
- V(H.REFRESH_TOKEN, e4);
- }, e3.offRefreshToken = function(e4) {
- G(H.REFRESH_TOKEN, e4);
- };
- }(e2);
- }
- let Ls;
- const Us = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", Ds = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
- function Ms() {
- const e2 = re().token || "", t2 = e2.split(".");
- if (!e2 || 3 !== t2.length)
- return { uid: null, role: [], permission: [], tokenExpired: 0 };
- let n2;
- try {
- n2 = JSON.parse((s2 = t2[1], decodeURIComponent(Ls(s2).split("").map(function(e3) {
- return "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2);
- }).join(""))));
- } catch (e3) {
- throw new Error("获取当前用户信息出错,详细错误信息为:" + e3.message);
- }
- var s2;
- return n2.tokenExpired = 1e3 * n2.exp, delete n2.exp, delete n2.iat, n2;
- }
- Ls = "function" != typeof atob ? function(e2) {
- if (e2 = String(e2).replace(/[\t\n\f\r ]+/g, ""), !Ds.test(e2))
- throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
- var t2;
- e2 += "==".slice(2 - (3 & e2.length));
- for (var n2, s2, r2 = "", i2 = 0; i2 < e2.length; )
- t2 = Us.indexOf(e2.charAt(i2++)) << 18 | Us.indexOf(e2.charAt(i2++)) << 12 | (n2 = Us.indexOf(e2.charAt(i2++))) << 6 | (s2 = Us.indexOf(e2.charAt(i2++))), r2 += 64 === n2 ? String.fromCharCode(t2 >> 16 & 255) : 64 === s2 ? String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255) : String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255, 255 & t2);
- return r2;
- } : atob;
- var qs = n(function(e2, t2) {
- Object.defineProperty(t2, "__esModule", { value: true });
- const n2 = "chooseAndUploadFile:ok", s2 = "chooseAndUploadFile:fail";
- function r2(e3, t3) {
- return e3.tempFiles.forEach((e4, n3) => {
- e4.name || (e4.name = e4.path.substring(e4.path.lastIndexOf("/") + 1)), t3 && (e4.fileType = t3), e4.cloudPath = Date.now() + "_" + n3 + e4.name.substring(e4.name.lastIndexOf("."));
- }), e3.tempFilePaths || (e3.tempFilePaths = e3.tempFiles.map((e4) => e4.path)), e3;
- }
- function i2(e3, t3, { onChooseFile: s3, onUploadProgress: r3 }) {
- return t3.then((e4) => {
- if (s3) {
- const t4 = s3(e4);
- if (void 0 !== t4)
- return Promise.resolve(t4).then((t5) => void 0 === t5 ? e4 : t5);
- }
- return e4;
- }).then((t4) => false === t4 ? { errMsg: n2, tempFilePaths: [], tempFiles: [] } : function(e4, t5, s4 = 5, r4) {
- (t5 = Object.assign({}, t5)).errMsg = n2;
- const i3 = t5.tempFiles, o2 = i3.length;
- let a2 = 0;
- return new Promise((n3) => {
- for (; a2 < s4; )
- c2();
- function c2() {
- const s5 = a2++;
- if (s5 >= o2)
- return void (!i3.find((e5) => !e5.url && !e5.errMsg) && n3(t5));
- const u2 = i3[s5];
- e4.uploadFile({ provider: u2.provider, filePath: u2.path, cloudPath: u2.cloudPath, fileType: u2.fileType, cloudPathAsRealPath: u2.cloudPathAsRealPath, onUploadProgress(e5) {
- e5.index = s5, e5.tempFile = u2, e5.tempFilePath = u2.path, r4 && r4(e5);
- } }).then((e5) => {
- u2.url = e5.fileID, s5 < o2 && c2();
- }).catch((e5) => {
- u2.errMsg = e5.errMsg || e5.message, s5 < o2 && c2();
- });
- }
- });
- }(e3, t4, 5, r3));
- }
- t2.initChooseAndUploadFile = function(e3) {
- return function(t3 = { type: "all" }) {
- return "image" === t3.type ? i2(e3, function(e4) {
- const { count: t4, sizeType: n3, sourceType: i3 = ["album", "camera"], extension: o2 } = e4;
- return new Promise((e5, a2) => {
- uni.chooseImage({ count: t4, sizeType: n3, sourceType: i3, extension: o2, success(t5) {
- e5(r2(t5, "image"));
- }, fail(e6) {
- a2({ errMsg: e6.errMsg.replace("chooseImage:fail", s2) });
- } });
- });
- }(t3), t3) : "video" === t3.type ? i2(e3, function(e4) {
- const { camera: t4, compressed: n3, maxDuration: i3, sourceType: o2 = ["album", "camera"], extension: a2 } = e4;
- return new Promise((e5, c2) => {
- uni.chooseVideo({ camera: t4, compressed: n3, maxDuration: i3, sourceType: o2, extension: a2, success(t5) {
- const { tempFilePath: n4, duration: s3, size: i4, height: o3, width: a3 } = t5;
- e5(r2({ errMsg: "chooseVideo:ok", tempFilePaths: [n4], tempFiles: [{ name: t5.tempFile && t5.tempFile.name || "", path: n4, size: i4, type: t5.tempFile && t5.tempFile.type || "", width: a3, height: o3, duration: s3, fileType: "video", cloudPath: "" }] }, "video"));
- }, fail(e6) {
- c2({ errMsg: e6.errMsg.replace("chooseVideo:fail", s2) });
- } });
- });
- }(t3), t3) : i2(e3, function(e4) {
- const { count: t4, extension: n3 } = e4;
- return new Promise((e5, i3) => {
- let o2 = uni.chooseFile;
- if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o2 = wx.chooseMessageFile), "function" != typeof o2)
- return i3({ errMsg: s2 + " 请指定 type 类型,该平台仅支持选择 image 或 video。" });
- o2({ type: "all", count: t4, extension: n3, success(t5) {
- e5(r2(t5));
- }, fail(e6) {
- i3({ errMsg: e6.errMsg.replace("chooseFile:fail", s2) });
- } });
- });
- }(t3), t3);
- };
- };
- }), Fs = t$1(qs);
- const Ks = { auto: "auto", onready: "onready", manual: "manual" };
- function js(e2) {
- return { props: { localdata: { type: Array, default: () => [] }, options: { type: [Object, Array], default: () => ({}) }, spaceInfo: { type: Object, default: () => ({}) }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: false }, gettree: { type: [Boolean, String], default: false }, gettreepath: { type: [Boolean, String], default: false }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: false }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: false } }, data: () => ({ mixinDatacomLoading: false, mixinDatacomHasMore: false, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {}, mixinDatacomError: null }), created() {
- this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(() => {
- var e3 = [];
- return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach((t2) => {
- e3.push(this[t2]);
- }), e3;
- }, (e3, t2) => {
- if (this.loadtime === Ks.manual)
- return;
- let n2 = false;
- const s2 = [];
- for (let r2 = 2; r2 < e3.length; r2++)
- e3[r2] !== t2[r2] && (s2.push(e3[r2]), n2 = true);
- e3[0] !== t2[0] && (this.mixinDatacomPage.current = this.pageCurrent), this.mixinDatacomPage.size = this.pageSize, this.onMixinDatacomPropsChange(n2, s2);
- });
- }, methods: { onMixinDatacomPropsChange(e3, t2) {
- }, mixinDatacomEasyGet({ getone: e3 = false, success: t2, fail: n2 } = {}) {
- this.mixinDatacomLoading || (this.mixinDatacomLoading = true, this.mixinDatacomErrorMessage = "", this.mixinDatacomError = null, this.mixinDatacomGet().then((n3) => {
- this.mixinDatacomLoading = false;
- const { data: s2, count: r2 } = n3.result;
- this.getcount && (this.mixinDatacomPage.count = r2), this.mixinDatacomHasMore = s2.length < this.pageSize;
- const i2 = e3 ? s2.length ? s2[0] : void 0 : s2;
- this.mixinDatacomResData = i2, t2 && t2(i2);
- }).catch((e4) => {
- this.mixinDatacomLoading = false, this.mixinDatacomErrorMessage = e4, this.mixinDatacomError = e4, n2 && n2(e4);
- }));
- }, mixinDatacomGet(t2 = {}) {
- let n2;
- t2 = t2 || {}, n2 = "undefined" != typeof __uniX && __uniX ? e2.databaseForJQL(this.spaceInfo) : e2.database(this.spaceInfo);
- const s2 = t2.action || this.action;
- s2 && (n2 = n2.action(s2));
- const r2 = t2.collection || this.collection;
- n2 = Array.isArray(r2) ? n2.collection(...r2) : n2.collection(r2);
- const i2 = t2.where || this.where;
- i2 && Object.keys(i2).length && (n2 = n2.where(i2));
- const o2 = t2.field || this.field;
- o2 && (n2 = n2.field(o2));
- const a2 = t2.foreignKey || this.foreignKey;
- a2 && (n2 = n2.foreignKey(a2));
- const c2 = t2.groupby || this.groupby;
- c2 && (n2 = n2.groupBy(c2));
- const u2 = t2.groupField || this.groupField;
- u2 && (n2 = n2.groupField(u2));
- true === (void 0 !== t2.distinct ? t2.distinct : this.distinct) && (n2 = n2.distinct());
- const h2 = t2.orderby || this.orderby;
- h2 && (n2 = n2.orderBy(h2));
- const l2 = void 0 !== t2.pageCurrent ? t2.pageCurrent : this.mixinDatacomPage.current, d2 = void 0 !== t2.pageSize ? t2.pageSize : this.mixinDatacomPage.size, p2 = void 0 !== t2.getcount ? t2.getcount : this.getcount, f2 = void 0 !== t2.gettree ? t2.gettree : this.gettree, g2 = void 0 !== t2.gettreepath ? t2.gettreepath : this.gettreepath, m2 = { getCount: p2 }, y2 = { limitLevel: void 0 !== t2.limitlevel ? t2.limitlevel : this.limitlevel, startWith: void 0 !== t2.startwith ? t2.startwith : this.startwith };
- return f2 && (m2.getTree = y2), g2 && (m2.getTreePath = y2), n2 = n2.skip(d2 * (l2 - 1)).limit(d2).get(m2), n2;
- } } };
- }
- function $s(e2) {
- return function(t2, n2 = {}) {
- n2 = function(e3, t3 = {}) {
- return e3.customUI = t3.customUI || e3.customUI, e3.parseSystemError = t3.parseSystemError || e3.parseSystemError, Object.assign(e3.loadingOptions, t3.loadingOptions), Object.assign(e3.errorOptions, t3.errorOptions), "object" == typeof t3.secretMethods && (e3.secretMethods = t3.secretMethods), e3;
- }({ customUI: false, loadingOptions: { title: "加载中...", mask: true }, errorOptions: { type: "modal", retry: false } }, n2);
- const { customUI: s2, loadingOptions: r2, errorOptions: i2, parseSystemError: o2 } = n2, a2 = !s2;
- return new Proxy({}, { get(s3, c2) {
- switch (c2) {
- case "toString":
- return "[object UniCloudObject]";
- case "toJSON":
- return {};
- }
- return function({ fn: e3, interceptorName: t3, getCallbackArgs: n3 } = {}) {
- return async function(...s4) {
- const r3 = n3 ? n3({ params: s4 }) : {};
- let i3, o3;
- try {
- return await j($(t3, "invoke"), { ...r3 }), i3 = await e3(...s4), await j($(t3, "success"), { ...r3, result: i3 }), i3;
- } catch (e4) {
- throw o3 = e4, await j($(t3, "fail"), { ...r3, error: o3 }), o3;
- } finally {
- await j($(t3, "complete"), o3 ? { ...r3, error: o3 } : { ...r3, result: i3 });
- }
- };
- }({ fn: async function s4(...u2) {
- let h2;
- a2 && uni.showLoading({ title: r2.title, mask: r2.mask });
- const d2 = { name: t2, type: l.OBJECT, data: { method: c2, params: u2 } };
- "object" == typeof n2.secretMethods && function(e3, t3) {
- const n3 = t3.data.method, s5 = e3.secretMethods || {}, r3 = s5[n3] || s5["*"];
- r3 && (t3.secretType = r3);
- }(n2, d2);
- let p2 = false;
- try {
- h2 = await e2.callFunction(d2);
- } catch (e3) {
- p2 = true, h2 = { result: new te(e3) };
- }
- const { errSubject: f2, errCode: g2, errMsg: m2, newToken: y2 } = h2.result || {};
- if (a2 && uni.hideLoading(), y2 && y2.token && y2.tokenExpired && (ie(y2), Y(H.REFRESH_TOKEN, { ...y2 })), g2) {
- let e3 = m2;
- if (p2 && o2) {
- e3 = (await o2({ objectName: t2, methodName: c2, params: u2, errSubject: f2, errCode: g2, errMsg: m2 })).errMsg || m2;
- }
- if (a2)
- if ("toast" === i2.type)
- uni.showToast({ title: e3, icon: "none" });
- else {
- if ("modal" !== i2.type)
- throw new Error(`Invalid errorOptions.type: ${i2.type}`);
- {
- const { confirm: t3 } = await async function({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3 } = {}) {
- return new Promise((i3, o3) => {
- uni.showModal({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3, success(e5) {
- i3(e5);
- }, fail() {
- i3({ confirm: false, cancel: true });
- } });
- });
- }({ title: "提示", content: e3, showCancel: i2.retry, cancelText: "取消", confirmText: i2.retry ? "重试" : "确定" });
- if (i2.retry && t3)
- return s4(...u2);
- }
- }
- const n3 = new te({ subject: f2, code: g2, message: m2, requestId: h2.requestId });
- throw n3.detail = h2.result, Y(H.RESPONSE, { type: J.CLOUD_OBJECT, content: n3 }), n3;
- }
- return Y(H.RESPONSE, { type: J.CLOUD_OBJECT, content: h2.result }), h2.result;
- }, interceptorName: "callObject", getCallbackArgs: function({ params: e3 } = {}) {
- return { objectName: t2, methodName: c2, params: e3 };
- } });
- } });
- };
- }
- function Bs(e2) {
- return U(Xt.replace("{spaceId}", e2.config.spaceId));
- }
- async function Ws({ openid: e2, callLoginByWeixin: t2 = false } = {}) {
- Bs(this);
- throw new Error(`[SecureNetwork] API \`initSecureNetworkByWeixin\` is not supported on platform \`${C}\``);
- }
- async function Hs(e2) {
- const t2 = Bs(this);
- return t2.initPromise || (t2.initPromise = Ws.call(this, e2).then((e3) => e3).catch((e3) => {
- throw delete t2.initPromise, e3;
- })), t2.initPromise;
- }
- function Js(e2) {
- return function({ openid: t2, callLoginByWeixin: n2 = false } = {}) {
- return Hs.call(e2, { openid: t2, callLoginByWeixin: n2 });
- };
- }
- function zs(e2) {
- !function(e3) {
- he = e3;
- }(e2);
- }
- function Vs(e2) {
- const t2 = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId };
- return function(n2) {
- return new Promise((s2, r2) => {
- t2[e2]({ ...n2, success(e3) {
- s2(e3);
- }, fail(e3) {
- r2(e3);
- } });
- });
- };
- }
- class Gs extends S {
- constructor() {
- super(), this._uniPushMessageCallback = this._receivePushMessage.bind(this), this._currentMessageId = -1, this._payloadQueue = [];
- }
- init() {
- return Promise.all([Vs("getSystemInfo")(), Vs("getPushClientId")()]).then(([{ appId: e2 } = {}, { cid: t2 } = {}] = []) => {
- if (!e2)
- throw new Error("Invalid appId, please check the manifest.json file");
- if (!t2)
- throw new Error("Invalid push client id");
- this._appId = e2, this._pushClientId = t2, this._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), this.emit("open"), this._initMessageListener();
- }, (e2) => {
- throw this.emit("error", e2), this.close(), e2;
- });
- }
- async open() {
- return this.init();
- }
- _isUniCloudSSE(e2) {
- if ("receive" !== e2.type)
- return false;
- const t2 = e2 && e2.data && e2.data.payload;
- return !(!t2 || "UNI_CLOUD_SSE" !== t2.channel || t2.seqId !== this._seqId);
- }
- _receivePushMessage(e2) {
- if (!this._isUniCloudSSE(e2))
- return;
- const t2 = e2 && e2.data && e2.data.payload, { action: n2, messageId: s2, message: r2 } = t2;
- this._payloadQueue.push({ action: n2, messageId: s2, message: r2 }), this._consumMessage();
- }
- _consumMessage() {
- for (; ; ) {
- const e2 = this._payloadQueue.find((e3) => e3.messageId === this._currentMessageId + 1);
- if (!e2)
- break;
- this._currentMessageId++, this._parseMessagePayload(e2);
- }
- }
- _parseMessagePayload(e2) {
- const { action: t2, messageId: n2, message: s2 } = e2;
- "end" === t2 ? this._end({ messageId: n2, message: s2 }) : "message" === t2 && this._appendMessage({ messageId: n2, message: s2 });
- }
- _appendMessage({ messageId: e2, message: t2 } = {}) {
- this.emit("message", t2);
- }
- _end({ messageId: e2, message: t2 } = {}) {
- this.emit("end", t2), this.close();
- }
- _initMessageListener() {
- uni.onPushMessage(this._uniPushMessageCallback);
- }
- _destroy() {
- uni.offPushMessage(this._uniPushMessageCallback);
- }
- toJSON() {
- return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId };
- }
- close() {
- this._destroy(), this.emit("close");
- }
- }
- async function Ys(e2) {
- {
- const { osName: e3, osVersion: t3 } = ce();
- "ios" === e3 && function(e4) {
- if (!e4 || "string" != typeof e4)
- return 0;
- const t4 = e4.match(/^(\d+)./);
- return t4 && t4[1] ? parseInt(t4[1]) : 0;
- }(t3) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)");
- }
- const t2 = e2.__dev__;
- if (!t2.debugInfo)
- return;
- const { address: n2, servePort: s2 } = t2.debugInfo, { address: r2 } = await Ot(n2, s2);
- if (r2)
- return t2.localAddress = r2, void (t2.localPort = s2);
- const i2 = console["error"];
- let o2 = "";
- if ("remote" === t2.debugInfo.initialLaunchType ? (t2.debugInfo.forceRemote = true, o2 = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o2 = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o2 += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", 0 === C.indexOf("mp-") && (o2 += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t2.debugInfo.forceRemote)
- throw new Error(o2);
- i2(o2);
- }
- function Qs(e2) {
- e2._initPromiseHub || (e2._initPromiseHub = new I({ createPromise: function() {
- let t2 = Promise.resolve();
- var n2;
- n2 = 1, t2 = new Promise((e3) => {
- setTimeout(() => {
- e3();
- }, n2);
- });
- const s2 = e2.auth();
- return t2.then(() => s2.getLoginState()).then((e3) => e3 ? Promise.resolve() : s2.signInAnonymously());
- } }));
- }
- const Xs = { tcb: Ct, tencent: Ct, aliyun: fe, private: Rt, dcloud: Rt, alipay: Bt };
- let Zs = new class {
- init(e2) {
- let t2 = {};
- const n2 = Xs[e2.provider];
- if (!n2)
- throw new Error("未提供正确的provider参数");
- t2 = n2.init(e2), function(e3) {
- const t3 = {};
- e3.__dev__ = t3, t3.debugLog = "app" === C;
- const n3 = A;
- n3 && !n3.code && (t3.debugInfo = n3);
- const s2 = new I({ createPromise: function() {
- return Ys(e3);
- } });
- t3.initLocalNetwork = function() {
- return s2.exec();
- };
- }(t2), Qs(t2), Gn(t2), function(e3) {
- const t3 = e3.uploadFile;
- e3.uploadFile = function(e4) {
- return t3.call(this, e4);
- };
- }(t2), function(e3) {
- e3.database = function(t3) {
- if (t3 && Object.keys(t3).length > 0)
- return e3.init(t3).database();
- if (this._database)
- return this._database;
- const n3 = as(cs, { uniClient: e3 });
- return this._database = n3, n3;
- }, e3.databaseForJQL = function(t3) {
- if (t3 && Object.keys(t3).length > 0)
- return e3.init(t3).databaseForJQL();
- if (this._databaseForJQL)
- return this._databaseForJQL;
- const n3 = as(cs, { uniClient: e3, isJQL: true });
- return this._databaseForJQL = n3, n3;
- };
- }(t2), function(e3) {
- e3.getCurrentUserInfo = Ms, e3.chooseAndUploadFile = Fs.initChooseAndUploadFile(e3), Object.assign(e3, { get mixinDatacom() {
- return js(e3);
- } }), e3.SSEChannel = Gs, e3.initSecureNetworkByWeixin = Js(e3), e3.setCustomClientInfo = zs, e3.importObject = $s(e3);
- }(t2);
- return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach((e3) => {
- if (!t2[e3])
- return;
- const n3 = t2[e3];
- t2[e3] = function() {
- return n3.apply(t2, Array.from(arguments));
- }, t2[e3] = (/* @__PURE__ */ function(e4, t3) {
- return function(n4) {
- let s2 = false;
- if ("callFunction" === t3) {
- const e5 = n4 && n4.type || l.DEFAULT;
- s2 = e5 !== l.DEFAULT;
- }
- const r2 = "callFunction" === t3 && !s2, i2 = this._initPromiseHub.exec();
- n4 = n4 || {};
- const { success: o2, fail: a2, complete: c2 } = ee(n4), u2 = i2.then(() => s2 ? Promise.resolve() : j($(t3, "invoke"), n4)).then(() => e4.call(this, n4)).then((e5) => s2 ? Promise.resolve(e5) : j($(t3, "success"), e5).then(() => j($(t3, "complete"), e5)).then(() => (r2 && Y(H.RESPONSE, { type: J.CLOUD_FUNCTION, content: e5 }), Promise.resolve(e5))), (e5) => s2 ? Promise.reject(e5) : j($(t3, "fail"), e5).then(() => j($(t3, "complete"), e5)).then(() => (Y(H.RESPONSE, { type: J.CLOUD_FUNCTION, content: e5 }), Promise.reject(e5))));
- if (!(o2 || a2 || c2))
- return u2;
- u2.then((e5) => {
- o2 && o2(e5), c2 && c2(e5), r2 && Y(H.RESPONSE, { type: J.CLOUD_FUNCTION, content: e5 });
- }, (e5) => {
- a2 && a2(e5), c2 && c2(e5), r2 && Y(H.RESPONSE, { type: J.CLOUD_FUNCTION, content: e5 });
- });
- };
- }(t2[e3], e3)).bind(t2);
- }), t2.init = this.init, t2;
- }
- }();
- (() => {
- const e2 = O;
- let t2 = {};
- if (e2 && 1 === e2.length)
- t2 = e2[0], Zs = Zs.init(t2), Zs._isDefault = true;
- else {
- const t3 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"];
- let n2;
- n2 = e2 && e2.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : "应用未关联服务空间,请在uniCloud目录右键关联服务空间", t3.forEach((e3) => {
- Zs[e3] = function() {
- return console.error(n2), Promise.reject(new te({ code: "SYS_ERR", message: n2 }));
- };
- });
- }
- if (Object.assign(Zs, { get mixinDatacom() {
- return js(Zs);
- } }), Rs(Zs), Zs.addInterceptor = F, Zs.removeInterceptor = K, Zs.interceptObject = B, uni.__uniCloud = Zs, "app" === C) {
- const e3 = D();
- e3.uniCloud = Zs, e3.UniCloudError = te;
- }
- })();
- var er = Zs;
- const en = {
- "uni-load-more.contentdown": "Pull up to show more",
- "uni-load-more.contentrefresh": "loading...",
- "uni-load-more.contentnomore": "No more data"
- };
- const zhHans = {
- "uni-load-more.contentdown": "上拉显示更多",
- "uni-load-more.contentrefresh": "正在加载...",
- "uni-load-more.contentnomore": "没有更多数据了"
- };
- const zhHant = {
- "uni-load-more.contentdown": "上拉顯示更多",
- "uni-load-more.contentrefresh": "正在加載...",
- "uni-load-more.contentnomore": "沒有更多數據了"
- };
- const messages = {
- en,
- "zh-Hans": zhHans,
- "zh-Hant": zhHant
- };
- let platform;
- setTimeout(() => {
- platform = uni.getSystemInfoSync().platform;
- }, 16);
- const {
- t
- } = initVueI18n(messages);
- const _sfc_main$u = {
- name: "UniLoadMore",
- emits: ["clickLoadMore"],
- props: {
- status: {
- // 上拉的状态:more-loading前;loading-loading中;noMore-没有更多了
- type: String,
- default: "more"
- },
- showIcon: {
- type: Boolean,
- default: true
- },
- iconType: {
- type: String,
- default: "auto"
- },
- iconSize: {
- type: Number,
- default: 24
- },
- color: {
- type: String,
- default: "#777777"
- },
- contentText: {
- type: Object,
- default() {
- return {
- contentdown: "",
- contentrefresh: "",
- contentnomore: ""
- };
- }
- },
- showText: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- webviewHide: false,
- platform,
- imgBase64: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZVHb98LM+F5bHL8khA1iSeiyQBCRM+YGqKUnnJTDLGI0BGZlKDIU2MMglUiDApEZvSsZnQtBRJtKwQNKQMFYeRDR10WOLd8ljYXdh+v8v5fR3Od+797t1dnOnO/Ofce77z+J//+b/P+ZqtXbs2sJ9MJhNUV1cHJ06cCJo3bx7EPc2aNcvpy7pWrVoF+/fvDyoqKoI2bdoE9fX1F7TjN8a+EXBn/fkfvw942Tf+wYMHg9mzZwfjxo0LDhw4EPa1x2MbFw/fOGfPng1qa2tzcCkILsLDydq2bRsunpOTMM7TD/W/tZDZhPdeKD+yGxHhdu3aBV27dg3OnDlzMVANMheLAO3btw8KCwuDmpoaX5OxbgUIMEq7K8IcPnw4KCsrC/r37x8cP378/4cAXAB3vqSkJMuiDhTkw+XcuXNhOWbMmKBly5YhUT8xArhyFvP0BfwRsAuwxJZJsm/nzp2DTp06he/OU+cZ64K6o0ePBkOHDg2GDx8e6gEbJ5Q/NHNuAJQ1hgBeHUDlR7nVTkY8rQAvAi4z34vR/mPs1FoRsaCgIJThI0eOBC1atEiFGGV+5MiRoS45efJkqFjJFXV1dQuA012m2WcwTw98fy6CqBdsaiIO4CScrGPHjvk4odhavPquRtFWXEC25VgkREKOCh/qDSq+vn37htzD/mZTOmOc5U7zKzBPEedygWshcDyWvs30igAbU+6oyMgJBCFhwQE0fccxN60Ay9iebbjoDh06hMowjQxT4fXq1SskArmHZpkArvixp/kWzHdMeArExSJEaiXIjjRjRJ4DaAGWpibLzXN3Fm1vA5teBgh3j1Rv3bp1YgKwPdmf2p9zcyNYYgPKMfY0T5f5nNYdw158nJ8QawW4CLKwiOBSEgO/hok2eBydR+3dYH+PLxA5J8Vv0KBBwenTp0P2JWAx6+yFEBfs8lMY+y0SWMBNI9E4ThKi58VKTg3FQZS1RQF1cz27eC0QHMu+3E0SkUowjhVt5VdaWhp07949ZHv2Qd1EjDXM2cla1M0nl3GxAs3J9yREzyTdFVKVFOaE9qRA8GM0WebRuo9JGZKA7Mv2SeS/Z8+eoQ9BArMfFrLGo6jvxbhHbJZnKX2Rzz1O7QhJJ9Cs2ZMaWIyq/zhdeqPNfIoHd58clIQD+JSXl4dKlyIAuBdVXZwFVWKspSSoxE++h8x4k3uCnEhE4I5KwRiFWGOU0QWKiCYLbdoRMRKAu2kQ9vkfLU6dOhX06NEjlH+yMRZSinnuyWnYosVcji8CEA/6Cg2JF+IIUBqnGKUTCNwtwBN4f89RiK1R96DEgO2o0NDmtEdvVFdVVYV+P3UAPUEs6GFwV3PHmXkD4vh74iDFJysVI/MlaQhwKeBNTLYX5VuA8T4/gZxA4MRGFxDB6R7OmYPfyykGRJbyie+XnGYnQIC/coH9+vULiYrxrkL9ZA9+0ykaHIfEpM7ge8TiJ2CsHYwyMfafAF1yCGBHYIbCVDjDjKt7BeB51D+LgQa6OkG7IDYEEtvQ7lnXLKLtLdLuJBpE4gPUXcW2+PkZwOex+4cGDhwYDBkyRL7/HFcEwUGPo/8uWRUpYnfxGHco8HkewLHLyYmAawAPuIFZxhOpDfJQ8gbUv41yORAptMWBNr6oqMhWird5+u+iHmBb2nhjDV7HWBNQTgK8y11l5NetWzc5ULscAtSj7nbNI0skhWeUZCc0W4nyH/jO4Vz0u1IeYhbk4AiwM6tjxIWByHsoZ9qcIBPJd/y+DwPfBESOmCa/QF3WiZHucLlEDpNxcNhmheEOPgdQNx6/VZFQzFZ5TN08AHXQt2Ii3EdyFuUsPtTcGPhW5iMiCNELvz+Gdn9huG4HUJaW/w3g0wxV0XaG7arG2WeKiUWYM4Y7GO5ezshTARbbWGw/DvXkpp/ivVvE0JVoMxN4rpGzJMhE5Pl+xlATsDIqikP9F9D2z3h9nOksEUFhK+qO4rcPkoalMQ/HqJLIyb3F3JdjrCcw1yZ8joyJLR5gCo54etlag7qIoeNh1N1BRYj3DTFJ0elotxPlVzkGuYAmL0VSJVGAJA41c4Z6A3BzTLfn0HYwYKEI6CUAMzZEWvLsIcQOo1AmmyyM72nHJCfYsogflGV6jEk9vyQZXSuq6w4c16NsGcGZbwOPr+H1RkOk2LEzjNepxQkihHSCQ4ynAYNRx2zMKV92CQMWqj8J0BRE8EShxRFN6YrfCRhC0x3r/Zm4IbQCcmJoV0kMamllccR6FjHqUC5F2R/wS2dcymOlfAKOS4KmzQb5cpNC2MC7JhVn5wjXoJ44rYhLh8n0eXOCorJxa7POjbSlCGVczr34/RsAmrcvo9s+wGp3tzVhntxiXiJ4nvEYb4FJkf0O8HocAePmLvCxnL0AORraVekJk6TYjDabRVXfRE2lCN1h6ZQRN1+InUbsCpKwoBZHh0dODN9JBCUffItXxEavTQkUtnfTVAplCWL3JISz29h4NjotnuSsQKJCk8dF+kJR6RARjrqFVmfPnj3ZbK8cIJ0msd6jgHPGtfVTQ8VLmlvh4mct9sobRmPic0DyDQQnx/NlfYUgyz59+oScsH379pAwXABD32nTpoUHIToESeI5mnbE/UqDdyLcafEBf2MCqgC7NwxIbMREJQ0g4D4sfJwnD+AmRrII05cfMWJE+L1169bQr+fip06dGp4oJ83lmYd5wj/EmMa4TaHivo4EeCguYZBnkB5g2aWA69OIEnUHOaGysjIYMGBAMGnSpODYsWPZwCpFmm4lNq+4gSLQA7jcX8DwtjEyRC8wjabnXEx9kfWnTJkSJkAo90xpJVV+FmcVNeYAF5zWngS4C4O91MBxmAv8blLEpbjI5sz9MTdAhcgkCT1RO8mZkAjfiYpTEvStAS53Uw1vAiUGgZ3GpuQEYvoiBqlIan7kSDHnTwJQFNiPu0+5VxCVYhcZIjNrdXUDdp+Eq5AZ3Gkg8QAyVZRZIk4Tl4QAbF9cXJxNYZMAtAokgs4BrNxEpCtteXg7DDTMDKYNSuQdKsnJBek7HxewvxaosWxLYXtw+cJp18217wql4aKCfBNoEu0O5VU+PhctJ0YeXD4C6JQpyrlpSLTojpGGGN5YwNziChdIZLk4lvLcFJ9jMX3QdiImY9bmGQU+TRUL5CHITTRlgF8D9ouD1MfmLoEPl5xokIumZ2cfgMpHt47IW9N64Hsh7wQYYjyIugWuF5fCqYncXRd5vPMWyizzvhi/32+nvG0dZc9vR6fZOu0md5e+uC408FvKSIOZwXlGvxPv95izA2Vtvg1xKFWARI+vMX66HUhpQQb643uW1bSjuTWyw2SBvDrBvjFic1eGGlz5esq3ko9uSIlBRqPuFcCv8F4WIcN12nVaBd0SaYwI6PDDImR11JkqgHcPmQssjxIn6bUshygDFJUTxPMpHk+jfjPgupgdnYV2R/g7xSjtpah8RJBewhwf0gGK6XI92u4wXFEU40afJ4DN4h5LcAd+40HI3JgJecuT0c062W0i2hQJUTcxan3/CMW1PF2K6bbA+Daz4xRs1D3Br1Cm0OihKCqizW78/nXAF/G5TXrEcVzaNMH6CyMswqsAHqDyDLEyou8lwOXnKF8DjI6KjV3KzMBiXkDH8ij/H214J5A596ekrZ3F0zXlWeL7+P5eUrNo3/QwC15uxthuzidy7DzKRwEDaAViiDgKbTbz7CJnzo0bN7pIfIiid8SuPwn25o3QCmpnyjlZkyxPP8EomCJzrGb7GJMx7tNsq4MT2xMUYaiErZOluTzKsnz3gwCeCZyVRZJfYplNEokEjwrPtxlxjeYAk+F1F74VAzPxQRNYYdtpOUvWs8J1sGhBJMNsb7igN8plJs1eSmLIhLKE4rvaCX27gOhLpLOsIzJ7qn/i+wZzcvSOZ23/du8TZjwV8zHIXoP4R3ifBxiFz1dcVpa3aPntPE+c6TmIWE9EtcMmAcPdWAhYhAXxcLOQi9L1WhD1Sc8p1d2oL7XGiRKp8F4A2i8K/nfI+y/gsTDJ/YC/8+AD5Uh04KHiGl+cIFPnBDDrPMjwRGkLXyxO4VGbfQWnDH2v0bVWE3C9QOXlepbgjEfIJQI6XDG3z5ahD9cw2pS78ipB85wyScNTvsVzlzzhL8/jRrnmVjfFJK/m3m4nj9vbgQTguT8XZTjsm672R5uJKEaQmBI/c58gyus8ZDagLpEVSJBIyHp4jn++xqPV71OgQgJYEWOtZ/haxRtKmWOBu8xdBLftWltsY84zE6WIEy/eIOWL+BaayMx+KHtL7EAkqdNDLiEXmEMUHniedtJqg9HmZtfvt26vNi0BdG3Ft3g8ZOf7PAu59TxtzivLNIekyi+wD1i8CuUiD9FXAa8C+/xS3JPmZnomyc7H+fb4/Se0bk41Fel621r4cgVxbq91V4jVqwB7HTe2M7jgB+QWHavZkDRPmZcASoZEmBx6i75bGjPcMdL4/VKGFAGWZkGzPG0XAbdL9A81G5LOmUnC9hHKJeO7dcUMjblSl12867ElFTtaGl20xvvLGPdVz/8TVuU7y0x1PG7vtNg24oz9Uo/Z412++VFWI7Fcog9tu9Lm6gvRmIPv9x1xmQAu6RDkXtbOtlGEmpgD5Nvnyc0dcv0EE6cfdi1HmhMf9wDF3k3gtRvEedhxjpgfqPb9PU9iEJHnyOUA7bQUXh6kq/D7l2iTjWv7XOD530BDr8jIrus+srXjt4MzumJMHuTsBa63YKE1+RR5lBjEikCCnWKWiHdzOgKO+nRIBAF88za/IFmJ3eMZov4CYxGBabcpGL8EYx+SeMXJeRwHNsV/h+vdxeuhEpN3ZyNY78Gm2fknJxVGhyjixPiQvVkNzT1elD9Py/aTAL64Hb9vcYmC9zfdXdT/C1LeGbg4rnBaAihDFJH12W5ulfNCNe/xTsP3bp8ikzJs5BF+5PNfAQYAPaseTdsEcaYAAAAASUVORK5CYII="
- };
- },
- computed: {
- iconSnowWidth() {
- return (Math.floor(this.iconSize / 24) || 1) * 2;
- },
- contentdownText() {
- return this.contentText.contentdown || t("uni-load-more.contentdown");
- },
- contentrefreshText() {
- return this.contentText.contentrefresh || t("uni-load-more.contentrefresh");
- },
- contentnomoreText() {
- return this.contentText.contentnomore || t("uni-load-more.contentnomore");
- }
- },
- mounted() {
- var pages2 = getCurrentPages();
- var page = pages2[pages2.length - 1];
- var currentWebview = page.$getAppWebview();
- currentWebview.addEventListener("hide", () => {
- this.webviewHide = true;
- });
- currentWebview.addEventListener("show", () => {
- this.webviewHide = false;
- });
- },
- methods: {
- onClick() {
- this.$emit("clickLoadMore", {
- detail: {
- status: this.status
- }
- });
- }
- }
- };
- function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "uni-load-more",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- !$data.webviewHide && ($props.iconType === "circle" || $props.iconType === "auto" && $data.platform === "android") && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
- class: "uni-load-more__img uni-load-more__img--android-MP"
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : !$data.webviewHide && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
- class: "uni-load-more__img uni-load-more__img--ios-H5"
- },
- [
- vue.createElementVNode("image", {
- src: $data.imgBase64,
- mode: "widthFix"
- }, null, 8, ["src"])
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- $props.showText ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 2,
- class: "uni-load-more__text",
- style: vue.normalizeStyle({ color: $props.color })
- },
- vue.toDisplayString($props.status === "more" ? $options.contentdownText : $props.status === "loading" ? $options.contentrefreshText : $options.contentnomoreText),
- 5
- /* TEXT, STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const __easycom_0$4 = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$t], ["__scopeId", "data-v-9245e42c"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"]]);
- const _sfc_main$t = {
- name: "uniDataChecklist",
- mixins: [er.mixinDatacom || {}],
- emits: ["input", "update:modelValue", "change"],
- props: {
- mode: {
- type: String,
- default: "default"
- },
- multiple: {
- type: Boolean,
- default: false
- },
- value: {
- type: [Array, String, Number],
- default() {
- return "";
- }
- },
- // TODO vue3
- modelValue: {
- type: [Array, String, Number],
- default() {
- return "";
- }
- },
- localdata: {
- type: Array,
- default() {
- return [];
- }
- },
- min: {
- type: [Number, String],
- default: ""
- },
- max: {
- type: [Number, String],
- default: ""
- },
- wrap: {
- type: Boolean,
- default: false
- },
- icon: {
- type: String,
- default: "left"
- },
- selectedColor: {
- type: String,
- default: ""
- },
- selectedTextColor: {
- type: String,
- default: ""
- },
- emptyText: {
- type: String,
- default: "暂无数据"
- },
- disabled: {
- type: Boolean,
- default: false
- },
- map: {
- type: Object,
- default() {
- return {
- text: "text",
- value: "value"
- };
- }
- }
- },
- watch: {
- localdata: {
- handler(newVal) {
- this.range = newVal;
- this.dataList = this.getDataList(this.getSelectedValue(newVal));
- },
- deep: true
- },
- mixinDatacomResData(newVal) {
- this.range = newVal;
- this.dataList = this.getDataList(this.getSelectedValue(newVal));
- },
- value(newVal) {
- this.dataList = this.getDataList(newVal);
- },
- modelValue(newVal) {
- this.dataList = this.getDataList(newVal);
- }
- },
- data() {
- return {
- dataList: [],
- range: [],
- contentText: {
- contentdown: "查看更多",
- contentrefresh: "加载中",
- contentnomore: "没有更多"
- },
- isLocal: true,
- styles: {
- selectedColor: "#2979ff",
- selectedTextColor: "#666"
- },
- isTop: 0
- };
- },
- computed: {
- dataValue() {
- if (this.value === "")
- return this.modelValue;
- if (this.modelValue === "")
- return this.value;
- return this.value;
- }
- },
- created() {
- if (this.localdata && this.localdata.length !== 0) {
- this.isLocal = true;
- this.range = this.localdata;
- this.dataList = this.getDataList(this.getSelectedValue(this.range));
- } else {
- if (this.collection) {
- this.isLocal = false;
- this.loadData();
- }
- }
- },
- methods: {
- loadData() {
- this.mixinDatacomGet().then((res) => {
- this.mixinDatacomResData = res.result.data;
- if (this.mixinDatacomResData.length === 0) {
- this.isLocal = false;
- this.mixinDatacomErrorMessage = this.emptyText;
- } else {
- this.isLocal = true;
- }
- }).catch((err) => {
- this.mixinDatacomErrorMessage = err.message;
- });
- },
- /**
- * 获取父元素实例
- */
- getForm(name = "uniForms") {
- let parent = this.$parent;
- let parentName = parent.$options.name;
- while (parentName !== name) {
- parent = parent.$parent;
- if (!parent)
- return false;
- parentName = parent.$options.name;
- }
- return parent;
- },
- change(e2) {
- const values = e2.detail.value;
- let detail = {
- value: [],
- data: []
- };
- if (this.multiple) {
- this.range.forEach((item) => {
- if (values.includes(item[this.map.value] + "")) {
- detail.value.push(item[this.map.value]);
- detail.data.push(item);
- }
- });
- } else {
- const range = this.range.find((item) => item[this.map.value] + "" === values);
- if (range) {
- detail = {
- value: range[this.map.value],
- data: range
- };
- }
- }
- this.$emit("input", detail.value);
- this.$emit("update:modelValue", detail.value);
- this.$emit("change", {
- detail
- });
- if (this.multiple) {
- this.dataList = this.getDataList(detail.value, true);
- } else {
- this.dataList = this.getDataList(detail.value);
- }
- },
- /**
- * 获取渲染的新数组
- * @param {Object} value 选中内容
- */
- getDataList(value) {
- let dataList = JSON.parse(JSON.stringify(this.range));
- let list = [];
- if (this.multiple) {
- if (!Array.isArray(value)) {
- value = [];
- }
- }
- dataList.forEach((item, index) => {
- item.disabled = item.disable || item.disabled || false;
- if (this.multiple) {
- if (value.length > 0) {
- let have = value.find((val) => val === item[this.map.value]);
- item.selected = have !== void 0;
- } else {
- item.selected = false;
- }
- } else {
- item.selected = value === item[this.map.value];
- }
- list.push(item);
- });
- return this.setRange(list);
- },
- /**
- * 处理最大最小值
- * @param {Object} list
- */
- setRange(list) {
- let selectList = list.filter((item) => item.selected);
- let min = Number(this.min) || 0;
- let max = Number(this.max) || "";
- list.forEach((item, index) => {
- if (this.multiple) {
- if (selectList.length <= min) {
- let have = selectList.find((val) => val[this.map.value] === item[this.map.value]);
- if (have !== void 0) {
- item.disabled = true;
- }
- }
- if (selectList.length >= max && max !== "") {
- let have = selectList.find((val) => val[this.map.value] === item[this.map.value]);
- if (have === void 0) {
- item.disabled = true;
- }
- }
- }
- this.setStyles(item, index);
- list[index] = item;
- });
- return list;
- },
- /**
- * 设置 class
- * @param {Object} item
- * @param {Object} index
- */
- setStyles(item, index) {
- item.styleBackgroud = this.setStyleBackgroud(item);
- item.styleIcon = this.setStyleIcon(item);
- item.styleIconText = this.setStyleIconText(item);
- item.styleRightIcon = this.setStyleRightIcon(item);
- },
- /**
- * 获取选中值
- * @param {Object} range
- */
- getSelectedValue(range) {
- if (!this.multiple)
- return this.dataValue;
- let selectedArr = [];
- range.forEach((item) => {
- if (item.selected) {
- selectedArr.push(item[this.map.value]);
- }
- });
- return this.dataValue.length > 0 ? this.dataValue : selectedArr;
- },
- /**
- * 设置背景样式
- */
- setStyleBackgroud(item) {
- let styles = {};
- let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff";
- if (this.selectedColor) {
- if (this.mode !== "list") {
- styles["border-color"] = item.selected ? selectedColor : "#DCDFE6";
- }
- if (this.mode === "tag") {
- styles["background-color"] = item.selected ? selectedColor : "#f5f5f5";
- }
- }
- let classles = "";
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- },
- setStyleIcon(item) {
- let styles = {};
- let classles = "";
- if (this.selectedColor) {
- let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff";
- styles["background-color"] = item.selected ? selectedColor : "#fff";
- styles["border-color"] = item.selected ? selectedColor : "#DCDFE6";
- if (!item.selected && item.disabled) {
- styles["background-color"] = "#F2F6FC";
- styles["border-color"] = item.selected ? selectedColor : "#DCDFE6";
- }
- }
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- },
- setStyleIconText(item) {
- let styles = {};
- let classles = "";
- if (this.selectedColor) {
- let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff";
- if (this.mode === "tag") {
- styles.color = item.selected ? this.selectedTextColor ? this.selectedTextColor : "#fff" : "#666";
- } else {
- styles.color = item.selected ? this.selectedTextColor ? this.selectedTextColor : selectedColor : "#666";
- }
- if (!item.selected && item.disabled) {
- styles.color = "#999";
- }
- }
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- },
- setStyleRightIcon(item) {
- let styles = {};
- let classles = "";
- if (this.mode === "list") {
- styles["border-color"] = item.selected ? this.styles.selectedColor : "#DCDFE6";
- }
- for (let i2 in styles) {
- classles += `${i2}:${styles[i2]};`;
- }
- return classles;
- }
- }
- };
- function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$4);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: "uni-data-checklist",
- style: vue.normalizeStyle({ "margin-top": $data.isTop + "px" })
- },
- [
- !$data.isLocal ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-data-loading"
- }, [
- !_ctx.mixinDatacomErrorMessage ? (vue.openBlock(), vue.createBlock(_component_uni_load_more, {
- key: 0,
- status: "loading",
- iconType: "snow",
- iconSize: 18,
- "content-text": $data.contentText
- }, null, 8, ["content-text"])) : (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- vue.toDisplayString(_ctx.mixinDatacomErrorMessage),
- 1
- /* TEXT */
- ))
- ])) : (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 1 },
- [
- $props.multiple ? (vue.openBlock(), vue.createElementBlock(
- "checkbox-group",
- {
- key: 0,
- class: vue.normalizeClass(["checklist-group", { "is-list": $props.mode === "list" || $props.wrap }]),
- onChange: _cache[0] || (_cache[0] = (...args) => $options.change && $options.change(...args))
- },
- [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($data.dataList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock(
- "label",
- {
- class: vue.normalizeClass(["checklist-box", ["is--" + $props.mode, item.selected ? "is-checked" : "", $props.disabled || !!item.disabled ? "is-disable" : "", index !== 0 && $props.mode === "list" ? "is-list-border" : ""]]),
- style: vue.normalizeStyle(item.styleBackgroud),
- key: index
- },
- [
- vue.createElementVNode("checkbox", {
- class: "hidden",
- hidden: "",
- disabled: $props.disabled || !!item.disabled,
- value: item[$props.map.value] + "",
- checked: item.selected
- }, null, 8, ["disabled", "value", "checked"]),
- $props.mode !== "tag" && $props.mode !== "list" || $props.mode === "list" && $props.icon === "left" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "checkbox__inner",
- style: vue.normalizeStyle(item.styleIcon)
- },
- [
- vue.createElementVNode("view", { class: "checkbox__inner-icon" })
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["checklist-content", { "list-content": $props.mode === "list" && $props.icon === "left" }])
- },
- [
- vue.createElementVNode(
- "text",
- {
- class: "checklist-text",
- style: vue.normalizeStyle(item.styleIconText)
- },
- vue.toDisplayString(item[$props.map.text]),
- 5
- /* TEXT, STYLE */
- ),
- $props.mode === "list" && $props.icon === "right" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "checkobx__list",
- style: vue.normalizeStyle(item.styleBackgroud)
- },
- null,
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ],
- 34
- /* CLASS, NEED_HYDRATION */
- )) : (vue.openBlock(), vue.createElementBlock(
- "radio-group",
- {
- key: 1,
- class: vue.normalizeClass(["checklist-group", { "is-list": $props.mode === "list", "is-wrap": $props.wrap }]),
- onChange: _cache[1] || (_cache[1] = (...args) => $options.change && $options.change(...args))
- },
- [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($data.dataList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock(
- "label",
- {
- class: vue.normalizeClass(["checklist-box", ["is--" + $props.mode, item.selected ? "is-checked" : "", $props.disabled || !!item.disabled ? "is-disable" : "", index !== 0 && $props.mode === "list" ? "is-list-border" : ""]]),
- style: vue.normalizeStyle(item.styleBackgroud),
- key: index
- },
- [
- vue.createElementVNode("radio", {
- class: "hidden",
- hidden: "",
- disabled: $props.disabled || item.disabled,
- value: item[$props.map.value] + "",
- checked: item.selected
- }, null, 8, ["disabled", "value", "checked"]),
- $props.mode !== "tag" && $props.mode !== "list" || $props.mode === "list" && $props.icon === "left" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "radio__inner",
- style: vue.normalizeStyle(item.styleBackgroud)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: "radio__inner-icon",
- style: vue.normalizeStyle(item.styleIcon)
- },
- null,
- 4
- /* STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["checklist-content", { "list-content": $props.mode === "list" && $props.icon === "left" }])
- },
- [
- vue.createElementVNode(
- "text",
- {
- class: "checklist-text",
- style: vue.normalizeStyle(item.styleIconText)
- },
- vue.toDisplayString(item[$props.map.text]),
- 5
- /* TEXT, STYLE */
- ),
- $props.mode === "list" && $props.icon === "right" ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle(item.styleRightIcon),
- class: "checkobx__list"
- },
- null,
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ],
- 34
- /* CLASS, NEED_HYDRATION */
- ))
- ],
- 64
- /* STABLE_FRAGMENT */
- ))
- ],
- 4
- /* STYLE */
- );
- }
- const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$s], ["__scopeId", "data-v-2f788efd"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue"]]);
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
- function getDefaultExportFromCjs(x) {
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
- }
- var dayjs_min = { exports: {} };
- (function(module, exports) {
- !function(t2, e2) {
- module.exports = e2();
- }(commonjsGlobal, function() {
- var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u2 = "hour", a2 = "day", o2 = "week", c2 = "month", f2 = "quarter", h2 = "year", d2 = "date", l2 = "Invalid Date", $2 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y2 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M2 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) {
- var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100;
- return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]";
- } }, m2 = function(t3, e3, n3) {
- var r3 = String(t3);
- return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3;
- }, v2 = { s: m2, z: function(t3) {
- var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i3 = n3 % 60;
- return (e3 <= 0 ? "+" : "-") + m2(r3, 2, "0") + ":" + m2(i3, 2, "0");
- }, m: function t3(e3, n3) {
- if (e3.date() < n3.date())
- return -t3(n3, e3);
- var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i3 = e3.clone().add(r3, c2), s3 = n3 - i3 < 0, u3 = e3.clone().add(r3 + (s3 ? -1 : 1), c2);
- return +(-(r3 + (n3 - i3) / (s3 ? i3 - u3 : u3 - i3)) || 0);
- }, a: function(t3) {
- return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3);
- }, p: function(t3) {
- return { M: c2, y: h2, w: o2, d: a2, D: d2, h: u2, m: s2, s: i2, ms: r2, Q: f2 }[t3] || String(t3 || "").toLowerCase().replace(/s$/, "");
- }, u: function(t3) {
- return void 0 === t3;
- } }, g2 = "en", D2 = {};
- D2[g2] = M2;
- var p2 = "$isDayjsObject", S2 = function(t3) {
- return t3 instanceof _2 || !(!t3 || !t3[p2]);
- }, w2 = function t3(e3, n3, r3) {
- var i3;
- if (!e3)
- return g2;
- if ("string" == typeof e3) {
- var s3 = e3.toLowerCase();
- D2[s3] && (i3 = s3), n3 && (D2[s3] = n3, i3 = s3);
- var u3 = e3.split("-");
- if (!i3 && u3.length > 1)
- return t3(u3[0]);
- } else {
- var a3 = e3.name;
- D2[a3] = e3, i3 = a3;
- }
- return !r3 && i3 && (g2 = i3), i3 || !r3 && g2;
- }, O2 = function(t3, e3) {
- if (S2(t3))
- return t3.clone();
- var n3 = "object" == typeof e3 ? e3 : {};
- return n3.date = t3, n3.args = arguments, new _2(n3);
- }, b2 = v2;
- b2.l = w2, b2.i = S2, b2.w = function(t3, e3) {
- return O2(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset });
- };
- var _2 = function() {
- function M3(t3) {
- this.$L = w2(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p2] = true;
- }
- var m3 = M3.prototype;
- return m3.parse = function(t3) {
- this.$d = function(t4) {
- var e3 = t4.date, n3 = t4.utc;
- if (null === e3)
- return /* @__PURE__ */ new Date(NaN);
- if (b2.u(e3))
- return /* @__PURE__ */ new Date();
- if (e3 instanceof Date)
- return new Date(e3);
- if ("string" == typeof e3 && !/Z$/i.test(e3)) {
- var r3 = e3.match($2);
- if (r3) {
- var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3);
- return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3);
- }
- }
- return new Date(e3);
- }(t3), this.init();
- }, m3.init = function() {
- var t3 = this.$d;
- this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds();
- }, m3.$utils = function() {
- return b2;
- }, m3.isValid = function() {
- return !(this.$d.toString() === l2);
- }, m3.isSame = function(t3, e3) {
- var n3 = O2(t3);
- return this.startOf(e3) <= n3 && n3 <= this.endOf(e3);
- }, m3.isAfter = function(t3, e3) {
- return O2(t3) < this.startOf(e3);
- }, m3.isBefore = function(t3, e3) {
- return this.endOf(e3) < O2(t3);
- }, m3.$g = function(t3, e3, n3) {
- return b2.u(t3) ? this[e3] : this.set(n3, t3);
- }, m3.unix = function() {
- return Math.floor(this.valueOf() / 1e3);
- }, m3.valueOf = function() {
- return this.$d.getTime();
- }, m3.startOf = function(t3, e3) {
- var n3 = this, r3 = !!b2.u(e3) || e3, f3 = b2.p(t3), l3 = function(t4, e4) {
- var i3 = b2.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3);
- return r3 ? i3 : i3.endOf(a2);
- }, $3 = function(t4, e4) {
- return b2.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3);
- }, y3 = this.$W, M4 = this.$M, m4 = this.$D, v3 = "set" + (this.$u ? "UTC" : "");
- switch (f3) {
- case h2:
- return r3 ? l3(1, 0) : l3(31, 11);
- case c2:
- return r3 ? l3(1, M4) : l3(0, M4 + 1);
- case o2:
- var g3 = this.$locale().weekStart || 0, D3 = (y3 < g3 ? y3 + 7 : y3) - g3;
- return l3(r3 ? m4 - D3 : m4 + (6 - D3), M4);
- case a2:
- case d2:
- return $3(v3 + "Hours", 0);
- case u2:
- return $3(v3 + "Minutes", 1);
- case s2:
- return $3(v3 + "Seconds", 2);
- case i2:
- return $3(v3 + "Milliseconds", 3);
- default:
- return this.clone();
- }
- }, m3.endOf = function(t3) {
- return this.startOf(t3, false);
- }, m3.$set = function(t3, e3) {
- var n3, o3 = b2.p(t3), f3 = "set" + (this.$u ? "UTC" : ""), l3 = (n3 = {}, n3[a2] = f3 + "Date", n3[d2] = f3 + "Date", n3[c2] = f3 + "Month", n3[h2] = f3 + "FullYear", n3[u2] = f3 + "Hours", n3[s2] = f3 + "Minutes", n3[i2] = f3 + "Seconds", n3[r2] = f3 + "Milliseconds", n3)[o3], $3 = o3 === a2 ? this.$D + (e3 - this.$W) : e3;
- if (o3 === c2 || o3 === h2) {
- var y3 = this.clone().set(d2, 1);
- y3.$d[l3]($3), y3.init(), this.$d = y3.set(d2, Math.min(this.$D, y3.daysInMonth())).$d;
- } else
- l3 && this.$d[l3]($3);
- return this.init(), this;
- }, m3.set = function(t3, e3) {
- return this.clone().$set(t3, e3);
- }, m3.get = function(t3) {
- return this[b2.p(t3)]();
- }, m3.add = function(r3, f3) {
- var d3, l3 = this;
- r3 = Number(r3);
- var $3 = b2.p(f3), y3 = function(t3) {
- var e3 = O2(l3);
- return b2.w(e3.date(e3.date() + Math.round(t3 * r3)), l3);
- };
- if ($3 === c2)
- return this.set(c2, this.$M + r3);
- if ($3 === h2)
- return this.set(h2, this.$y + r3);
- if ($3 === a2)
- return y3(1);
- if ($3 === o2)
- return y3(7);
- var M4 = (d3 = {}, d3[s2] = e2, d3[u2] = n2, d3[i2] = t2, d3)[$3] || 1, m4 = this.$d.getTime() + r3 * M4;
- return b2.w(m4, this);
- }, m3.subtract = function(t3, e3) {
- return this.add(-1 * t3, e3);
- }, m3.format = function(t3) {
- var e3 = this, n3 = this.$locale();
- if (!this.isValid())
- return n3.invalidDate || l2;
- var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i3 = b2.z(this), s3 = this.$H, u3 = this.$m, a3 = this.$M, o3 = n3.weekdays, c3 = n3.months, f3 = n3.meridiem, h3 = function(t4, n4, i4, s4) {
- return t4 && (t4[n4] || t4(e3, r3)) || i4[n4].slice(0, s4);
- }, d3 = function(t4) {
- return b2.s(s3 % 12 || 12, t4, "0");
- }, $3 = f3 || function(t4, e4, n4) {
- var r4 = t4 < 12 ? "AM" : "PM";
- return n4 ? r4.toLowerCase() : r4;
- };
- return r3.replace(y2, function(t4, r4) {
- return r4 || function(t5) {
- switch (t5) {
- case "YY":
- return String(e3.$y).slice(-2);
- case "YYYY":
- return b2.s(e3.$y, 4, "0");
- case "M":
- return a3 + 1;
- case "MM":
- return b2.s(a3 + 1, 2, "0");
- case "MMM":
- return h3(n3.monthsShort, a3, c3, 3);
- case "MMMM":
- return h3(c3, a3);
- case "D":
- return e3.$D;
- case "DD":
- return b2.s(e3.$D, 2, "0");
- case "d":
- return String(e3.$W);
- case "dd":
- return h3(n3.weekdaysMin, e3.$W, o3, 2);
- case "ddd":
- return h3(n3.weekdaysShort, e3.$W, o3, 3);
- case "dddd":
- return o3[e3.$W];
- case "H":
- return String(s3);
- case "HH":
- return b2.s(s3, 2, "0");
- case "h":
- return d3(1);
- case "hh":
- return d3(2);
- case "a":
- return $3(s3, u3, true);
- case "A":
- return $3(s3, u3, false);
- case "m":
- return String(u3);
- case "mm":
- return b2.s(u3, 2, "0");
- case "s":
- return String(e3.$s);
- case "ss":
- return b2.s(e3.$s, 2, "0");
- case "SSS":
- return b2.s(e3.$ms, 3, "0");
- case "Z":
- return i3;
- }
- return null;
- }(t4) || i3.replace(":", "");
- });
- }, m3.utcOffset = function() {
- return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
- }, m3.diff = function(r3, d3, l3) {
- var $3, y3 = this, M4 = b2.p(d3), m4 = O2(r3), v3 = (m4.utcOffset() - this.utcOffset()) * e2, g3 = this - m4, D3 = function() {
- return b2.m(y3, m4);
- };
- switch (M4) {
- case h2:
- $3 = D3() / 12;
- break;
- case c2:
- $3 = D3();
- break;
- case f2:
- $3 = D3() / 3;
- break;
- case o2:
- $3 = (g3 - v3) / 6048e5;
- break;
- case a2:
- $3 = (g3 - v3) / 864e5;
- break;
- case u2:
- $3 = g3 / n2;
- break;
- case s2:
- $3 = g3 / e2;
- break;
- case i2:
- $3 = g3 / t2;
- break;
- default:
- $3 = g3;
- }
- return l3 ? $3 : b2.a($3);
- }, m3.daysInMonth = function() {
- return this.endOf(c2).$D;
- }, m3.$locale = function() {
- return D2[this.$L];
- }, m3.locale = function(t3, e3) {
- if (!t3)
- return this.$L;
- var n3 = this.clone(), r3 = w2(t3, e3, true);
- return r3 && (n3.$L = r3), n3;
- }, m3.clone = function() {
- return b2.w(this.$d, this);
- }, m3.toDate = function() {
- return new Date(this.valueOf());
- }, m3.toJSON = function() {
- return this.isValid() ? this.toISOString() : null;
- }, m3.toISOString = function() {
- return this.$d.toISOString();
- }, m3.toString = function() {
- return this.$d.toUTCString();
- }, M3;
- }(), k = _2.prototype;
- return O2.prototype = k, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", c2], ["$y", h2], ["$D", d2]].forEach(function(t3) {
- k[t3[1]] = function(e3) {
- return this.$g(e3, t3[0], t3[1]);
- };
- }), O2.extend = function(t3, e3) {
- return t3.$i || (t3(e3, _2, O2), t3.$i = true), O2;
- }, O2.locale = w2, O2.isDayjs = S2, O2.unix = function(t3) {
- return O2(1e3 * t3);
- }, O2.en = D2[g2], O2.Ls = D2, O2.p = {}, O2;
- });
- })(dayjs_min);
- var dayjs_minExports = dayjs_min.exports;
- const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
- var isIOS;
- function album() {
- var result = 0;
- var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");
- var authStatus = PHPhotoLibrary.authorizationStatus();
- if (authStatus === 0) {
- result = null;
- } else if (authStatus == 3) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(PHPhotoLibrary);
- return result;
- }
- function camera() {
- var result = 0;
- var AVCaptureDevice = plus.ios.import("AVCaptureDevice");
- var authStatus = AVCaptureDevice.authorizationStatusForMediaType("vide");
- if (authStatus === 0) {
- result = null;
- } else if (authStatus == 3) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(AVCaptureDevice);
- return result;
- }
- function location$1() {
- var result = 0;
- var cllocationManger = plus.ios.import("CLLocationManager");
- var enable = cllocationManger.locationServicesEnabled();
- var status = cllocationManger.authorizationStatus();
- if (!enable) {
- result = 2;
- } else if (status === 0) {
- result = null;
- } else if (status === 3 || status === 4) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(cllocationManger);
- return result;
- }
- function push() {
- var result = 0;
- var UIApplication = plus.ios.import("UIApplication");
- var app = UIApplication.sharedApplication();
- var enabledTypes = 0;
- if (app.currentUserNotificationSettings) {
- var settings = app.currentUserNotificationSettings();
- enabledTypes = settings.plusGetAttribute("types");
- if (enabledTypes == 0) {
- result = 0;
- formatAppLog("log", "at common/permission.js:63", "推送权限没有开启");
- } else {
- result = 1;
- formatAppLog("log", "at common/permission.js:66", "已经开启推送功能!");
- }
- plus.ios.deleteObject(settings);
- } else {
- enabledTypes = app.enabledRemoteNotificationTypes();
- if (enabledTypes == 0) {
- result = 3;
- formatAppLog("log", "at common/permission.js:73", "推送权限没有开启!");
- } else {
- result = 4;
- formatAppLog("log", "at common/permission.js:76", "已经开启推送功能!");
- }
- }
- plus.ios.deleteObject(app);
- plus.ios.deleteObject(UIApplication);
- return result;
- }
- function contact() {
- var result = 0;
- var CNContactStore = plus.ios.import("CNContactStore");
- var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0);
- if (cnAuthStatus === 0) {
- result = null;
- } else if (cnAuthStatus == 3) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(CNContactStore);
- return result;
- }
- function record() {
- var result = null;
- var avaudiosession = plus.ios.import("AVAudioSession");
- var avaudio = avaudiosession.sharedInstance();
- var status = avaudio.recordPermission();
- formatAppLog("log", "at common/permission.js:104", "permissionStatus:" + status);
- if (status === 1970168948) {
- result = null;
- } else if (status === 1735552628) {
- result = 1;
- } else {
- result = 0;
- }
- plus.ios.deleteObject(avaudiosession);
- return result;
- }
- function calendar() {
- var result = null;
- var EKEventStore = plus.ios.import("EKEventStore");
- var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0);
- if (ekAuthStatus == 3) {
- result = 1;
- formatAppLog("log", "at common/permission.js:122", "日历权限已经开启");
- } else {
- formatAppLog("log", "at common/permission.js:124", "日历权限没有开启");
- }
- plus.ios.deleteObject(EKEventStore);
- return result;
- }
- function memo() {
- var result = null;
- var EKEventStore = plus.ios.import("EKEventStore");
- var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1);
- if (ekAuthStatus == 3) {
- result = 1;
- formatAppLog("log", "at common/permission.js:136", "备忘录权限已经开启");
- } else {
- formatAppLog("log", "at common/permission.js:138", "备忘录权限没有开启");
- }
- plus.ios.deleteObject(EKEventStore);
- return result;
- }
- function requestIOS(permissionID) {
- return new Promise((resolve, reject) => {
- switch (permissionID) {
- case "push":
- resolve(push());
- break;
- case "location":
- resolve(location$1());
- break;
- case "record":
- resolve(record());
- break;
- case "camera":
- resolve(camera());
- break;
- case "album":
- resolve(album());
- break;
- case "contact":
- resolve(contact());
- break;
- case "calendar":
- resolve(calendar());
- break;
- case "memo":
- resolve(memo());
- break;
- default:
- resolve(0);
- break;
- }
- });
- }
- function requestAndroid(permissionID) {
- return new Promise((resolve, reject) => {
- plus.android.requestPermissions(
- [permissionID],
- function(resultObj) {
- var result = 0;
- for (var i2 = 0; i2 < resultObj.granted.length; i2++) {
- var grantedPermission = resultObj.granted[i2];
- formatAppLog("log", "at common/permission.js:187", "已获取的权限:" + grantedPermission);
- result = 1;
- }
- for (var i2 = 0; i2 < resultObj.deniedPresent.length; i2++) {
- var deniedPresentPermission = resultObj.deniedPresent[i2];
- formatAppLog("log", "at common/permission.js:192", "拒绝本次申请的权限:" + deniedPresentPermission);
- result = 0;
- }
- for (var i2 = 0; i2 < resultObj.deniedAlways.length; i2++) {
- var deniedAlwaysPermission = resultObj.deniedAlways[i2];
- formatAppLog("log", "at common/permission.js:197", "永久拒绝申请的权限:" + deniedAlwaysPermission);
- result = -1;
- }
- resolve(result);
- },
- function(error) {
- formatAppLog("log", "at common/permission.js:203", "result error: " + error.message);
- resolve({
- code: error.code,
- message: error.message
- });
- }
- );
- });
- }
- function gotoAppPermissionSetting() {
- if (permission.isIOS) {
- var UIApplication = plus.ios.import("UIApplication");
- var application2 = UIApplication.sharedApplication();
- var NSURL2 = plus.ios.import("NSURL");
- var setting2 = NSURL2.URLWithString("app-settings:");
- application2.openURL(setting2);
- plus.ios.deleteObject(setting2);
- plus.ios.deleteObject(NSURL2);
- plus.ios.deleteObject(application2);
- } else {
- var Intent = plus.android.importClass("android.content.Intent");
- var Settings = plus.android.importClass("android.provider.Settings");
- var Uri = plus.android.importClass("android.net.Uri");
- var mainActivity = plus.android.runtimeMainActivity();
- var intent = new Intent();
- intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
- var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
- intent.setData(uri);
- mainActivity.startActivity(intent);
- }
- }
- const permission = {
- get isIOS() {
- return typeof isIOS === "boolean" ? isIOS : isIOS = uni.getSystemInfoSync().platform === "ios";
- },
- requestIOS,
- requestAndroid,
- gotoAppSetting: gotoAppPermissionSetting
- };
- const baseURL = "http://dsg.tms.api.aibasil.cn";
- const warehouseScanURL = baseURL + "/admin/order.sheetOrder/warehouseScan";
- const instockScanURL = baseURL + "/admin/order.ScanOrder/instock";
- const outStockScanURL = baseURL + "/admin/order.scanOrder/outStock";
- const orderInfoURL = baseURL + "/admin/order.scanOrder/getOrderInfo";
- const companyListURL = baseURL + "/admin/expressCompany/index";
- const checkWaybillGoodsURL = baseURL + "/admin/order.scanOrder/checkWaybillGoods";
- const getWarehouseSpaceURL = baseURL + "/admin/order.ScanOrder/getWarehouseSpace";
- const weighScanURL = baseURL + "/admin/order.ScanOrder/weigh";
- const getBindParamsURL = baseURL + "/admin/order.scanOrder/getBindParams";
- const getPrinterListURL = baseURL + "/admin/printer//getPrinterList";
- const bindShippingURL = baseURL + "/admin/order.scanOrder/bindShipping";
- const getWaybillsURL = baseURL + "/admin/order.scanOrder/getWaybills";
- const printWaybillLabelURL = baseURL + "/admin/order.ScanOrder/printWaybillLabel";
- const printCustomerLabelURL = baseURL + "/admin/order.ScanOrder/printCustomerLabel";
- const loginURL = baseURL + "/admin/index/login";
- const getcaptchaURL = baseURL + "/api/common/captcha";
- const pickupWaybillDeliveryOrderURL = baseURL + "/admin/pickup.waybillDeliveryOrder";
- const addWaybillNoURL = baseURL + "/admin/warehouse.waybillNo/add";
- const waybillNoOptions = baseURL + "/admin/warehouse.waybillNo/getOptions";
- const sendOutURL = baseURL + "/admin/pickup.waybillDeliveryOrder/sendOut";
- const deliveredURL = baseURL + "/admin/pickup.waybillDeliveryOrder/delivered";
- const refuseURL = baseURL + "/admin/pickup.waybillDeliveryOrder/refuse";
- const createTrackPodURL = baseURL + "/admin/pickup.waybillDeliveryOrder/createTrackPod";
- const cancelFedExPickUpURL = baseURL + "/admin/pickup.waybillDeliveryOrder/cancelFedExPickUp";
- const getAliyunOssSignatureUrl = baseURL + "/admin/Config/getAliyunOssSignature";
- const hexList = [];
- for (let i2 = 0; i2 <= 15; i2++) {
- hexList[i2] = i2.toString(16);
- }
- function uuid() {
- let uuid2 = "";
- for (let i2 = 1; i2 <= 36; i2++) {
- if (i2 === 9 || i2 === 14 || i2 === 19 || i2 === 24) {
- uuid2 += "-";
- } else if (i2 === 15) {
- uuid2 += 4;
- } else if (i2 === 20) {
- uuid2 += hexList[Math.random() * 4 | 8];
- } else {
- uuid2 += hexList[Math.random() * 16 | 0];
- }
- }
- return uuid2;
- }
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const alertDialog = vue.ref();
- const message = vue.ref();
- const valiForm = vue.ref();
- const printerDialog = vue.ref();
- const token = vue.ref(null);
- const user = vue.ref(null);
- const loading = vue.ref(false);
- const images = vue.ref([]);
- const messageType = vue.ref("");
- const messageText = vue.ref("");
- const batchOptions = vue.ref([]);
- const spaces = vue.ref([]);
- const previewImage = vue.ref(null);
- const maxImages = vue.ref(6);
- const printerList = vue.ref({});
- const historyList = vue.ref([]);
- const printers = vue.ref([]);
- const sendToPeinter = vue.ref([1]);
- const selectPrinter = vue.ref(0);
- const subLoading = vue.ref(false);
- const focusType = vue.ref(true);
- const result = vue.ref();
- const valiFormData = vue.reactive({
- images: [],
- orderNum: "",
- batch_number: "",
- space_code: "",
- weight: "",
- typing: true
- });
- const rules = vue.computed(() => {
- return {
- orderNum: {
- rules: [
- {
- required: true,
- errorMessage: "单号不能为空"
- }
- ]
- },
- weight: {
- rules: [
- {
- required: true,
- errorMessage: "重量不能为空"
- },
- {
- format: "number",
- errorMessage: "重量只能输入数字"
- }
- ]
- }
- };
- });
- const spaceRes = vue.computed(() => {
- try {
- const res = spaces.value.find((item) => item.value === valiFormData.space_code);
- return res == null ? void 0 : res.text;
- } catch (e2) {
- formatAppLog("log", "at pages/weigh/index.vue:201", e2);
- return "";
- }
- });
- onShow(() => {
- focusType.value = true;
- loading.value = false;
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- getWarehouseSpace();
- getBindParams();
- getPrinterList();
- });
- onHide(() => {
- focusType.value = false;
- loading.value = false;
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/weigh/instockLog"
- });
- }
- });
- const getWarehouseSpace = () => {
- uni.request({
- url: getWarehouseSpaceURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- code: ""
- },
- success: (res) => {
- if (res.data.code === 1) {
- spaces.value = res.data.data.spaces.map((item) => {
- return {
- text: item.name,
- value: item.code
- };
- });
- }
- }
- });
- };
- const getBindParams = () => {
- uni.request({
- url: getBindParamsURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- batchOptions.value = res.data.data.batch_number.map((item) => {
- return {
- text: item.name,
- value: item.id
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/weigh/index.vue:267", "fail--", e2);
- }
- });
- };
- const getPrinterList = () => {
- uni.request({
- url: getPrinterListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- printerList.value = res.data.data.printers;
- printers.value = Object.values(printerList.value).map((item) => {
- return {
- text: item.name,
- value: item.value
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/weigh/index.vue:291", "fail--", e2);
- }
- });
- };
- const reset = () => {
- loading.value = false;
- focusType.value = false;
- images.value = [];
- valiFormData.orderNum = "";
- valiFormData.batch_number = "";
- valiFormData.weight = "";
- valiFormData.typing = true;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const scan = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- result.value = res.result;
- valiFormData.orderNum = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- let st2;
- const warehouseScan = async () => {
- st2 && clearTimeout(st2);
- await checkWaybillGoods();
- };
- const checkWaybillGoods = async () => {
- loading.value = true;
- uni.request({
- url: checkWaybillGoodsURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum
- },
- success: (res) => {
- if (res.data.code === 1 && res.data.data.is_goods_empty) {
- alertDialog.value.open();
- } else {
- weighScan(0);
- }
- }
- });
- };
- const weighScan = (is_save_goods) => {
- const images2 = getImages();
- formatAppLog("log", "at pages/weigh/index.vue:376", "images--", images2);
- let allImgVerify = true;
- for (var i2 = 0; i2 < images2.length; i2++) {
- if (!images2[i2].savePath) {
- allImgVerify = false;
- }
- }
- if (!allImgVerify) {
- messageType.value = "error";
- messageText.value = "图片还没上传完毕,请稍后...";
- message.value.open();
- loading.value = false;
- return;
- }
- uni.request({
- url: weighScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- weight: valiFormData.weight,
- is_save_goods,
- images: images2
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- message.value.open();
- formatAppLog("log", "at pages/weigh/index.vue:408", "res.data.data---", res.data.data);
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- space: spaceRes.value,
- type: "称重",
- status: true
- };
- historyList.value.unshift(historyItem);
- uni.setStorageSync("weighHistory", historyList.value);
- getHistory();
- if (res.data.data.express_label) {
- formatAppLog("log", "at pages/weigh/index.vue:422", "有打印面单");
- } else {
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- space: spaceRes.value,
- type: "称重",
- status: false
- };
- historyList.value.unshift(historyItem);
- uni.setStorageSync("weighHistory", historyList.value);
- getHistory();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- }
- });
- };
- const close = () => {
- printerDialog.value.close();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- };
- const dialogConfirm = () => {
- weighScan(1);
- };
- const dialogClose = () => {
- weighScan(0);
- };
- const sendToPeinterFun = (res) => {
- if (!res.detail.value.length > 0) {
- selectPrinter.value = 0;
- } else {
- selectPrinter.value = printers.value[0].value;
- }
- };
- const printConfirm = () => {
- subLoading.value = true;
- uni.request({
- url: printWaybillLabelURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- printer_code: selectPrinter
- },
- success: (res) => {
- close();
- subLoading.value = false;
- formatAppLog("log", "at pages/weigh/index.vue:490", "打印成功", res);
- messageType.value = "success";
- messageText.value = "打印成功";
- message.value.open();
- }
- });
- };
- const onsubmit = () => {
- valiForm.value.validate().then((res) => {
- warehouseScan();
- }).catch((err) => {
- formatAppLog("log", "at pages/weigh/index.vue:504", "err", err);
- });
- };
- const getHistory = () => {
- historyList.value = uni.getStorageSync("weighHistory");
- };
- const getImages = () => {
- const res = images.value.map((item) => {
- return {
- name: item.name,
- savePath: item.serverUrl,
- fileSize: item.size,
- mimeType: item.type
- };
- });
- formatAppLog("log", "at pages/weigh/index.vue:519", "res22 ", res);
- return res;
- };
- const getAliyunOssSignature = (rawFiles) => {
- uni.request({
- url: getAliyunOssSignatureUrl,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: ({ data }) => {
- const signature = data.data.signature;
- const uploadPromises = rawFiles.map((image) => {
- return upLoadFile(signature, image);
- });
- Promise.all(uploadPromises).then((results) => {
- formatAppLog("log", "at pages/weigh/index.vue:540", "所有图片加载成功:", results);
- uni.showToast({
- title: "加载成功",
- icon: "success"
- });
- }).catch((error) => {
- formatAppLog("error", "at pages/weigh/index.vue:547", "加载失败:", error);
- uni.showToast({
- title: "加载失败",
- icon: "none"
- });
- });
- },
- fail: (err) => {
- formatAppLog("log", "at pages/weigh/index.vue:555", err);
- }
- });
- };
- const upLoadFile = (signature, image) => {
- const fileData = {
- policy: signature.policy,
- signature: signature.signature,
- ossaccessKeyId: signature.ossAccessKeyId,
- key: signature.dir + dayjs().format("YYYYMMDD") + "/" + uuid() + "_" + image.name,
- dir: signature.dir,
- host: signature.host,
- file: image.file
- };
- return new Promise((resolve, reject) => {
- let name = image.name;
- name = "file";
- const uploadTask = uni.uploadFile({
- url: signature.host,
- // 你的上传接口地址
- filePath: image.path,
- name,
- // 这里根据后端需要的字段来定义
- formData: fileData,
- success: (uploadFileRes) => {
- if (uploadFileRes.statusCode === 204 || uploadFileRes.statusCode === 200) {
- image.serverUrl = fileData.key;
- resolve(uploadFileRes);
- } else {
- reject(uploadFileRes);
- }
- },
- fail: (error) => {
- formatAppLog("log", "at pages/weigh/index.vue:588", "error++", error);
- reject(error);
- },
- // 更新上传进度
- complete: () => {
- formatAppLog("log", "at pages/weigh/index.vue:593", "complete---");
- image.progress = 100;
- }
- });
- uploadTask.onProgressUpdate((progressEvent) => {
- image.progress = progressEvent.progress;
- });
- });
- };
- const chooseImage = () => {
- uni.chooseImage({
- count: maxImages.value - images.value.length,
- success: (res) => {
- images.value = images.value.concat(
- res.tempFiles.map((item) => {
- const res2 = {
- size: item.size,
- path: item.path,
- name: item.name,
- type: item.type,
- progress: 0,
- file: item
- };
- const suffix = item.path.substring(item.path.lastIndexOf(".") + 1);
- const fileName = item.path.substring(item.path.lastIndexOf("/") + 1);
- res2.name = fileName;
- res2.type = suffix;
- return res2;
- })
- );
- const paddingImages = images.value.filter((image) => image.progress === 0);
- vue.nextTick(() => {
- getAliyunOssSignature(paddingImages);
- });
- },
- fail: (err) => {
- formatAppLog("error", "at pages/weigh/index.vue:638", err);
- }
- });
- };
- const deleteImage = (index) => {
- images.value.splice(index, 1);
- };
- const openPreview = (image) => {
- previewImage.value = image;
- };
- const closePreview = () => {
- previewImage.value = null;
- };
- const __returned__ = { alertDialog, message, valiForm, printerDialog, token, user, loading, images, messageType, messageText, batchOptions, spaces, previewImage, maxImages, printerList, historyList, printers, sendToPeinter, selectPrinter, subLoading, focusType, result, valiFormData, rules, spaceRes, getWarehouseSpace, getBindParams, getPrinterList, reset, scan, checkPermission, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, warehouseScan, checkWaybillGoods, weighScan, close, dialogConfirm, dialogClose, sendToPeinterFun, printConfirm, onsubmit, getHistory, getImages, getAliyunOssSignature, upLoadFile, chooseImage, deleteImage, openPreview, closePreview };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- const _component_uni_popup_dialog = resolveEasycom(vue.resolveDynamicComponent("uni-popup-dialog"), __easycom_0$5);
- const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$3);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createElementVNode("view", { class: "example" }, [
- vue.createCommentVNode(" 基础表单校验 "),
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单号",
- required: true,
- name: "orderNum"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.orderNum,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scan
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "重量",
- required: "",
- name: "weight"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.weight,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.weight = $event),
- placeholder: "请输入重量",
- oninput: "value=value.replace(/[^\\d.]/g,'').replace(/^\\./g, '').replace(/\\.{2,}/g, '').replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.').match(/^\\d*(\\.?\\d{0,2})/g)[0] || null"
- }, {
- right: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "weight-right" }, "KG")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "图片",
- name: "images"
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "upload-container" }, [
- vue.createElementVNode("view", { class: "preview" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.images, (img, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- key: index,
- class: "image-container"
- }, [
- vue.createElementVNode("image", {
- src: img.path,
- class: "preview-image",
- mode: "aspectFill",
- onClick: ($event) => $setup.openPreview(img.path)
- }, null, 8, ["src", "onClick"]),
- vue.createElementVNode("progress", {
- percent: img.progress || 0,
- activeColor: Number(img.progress || 0) === 100 ? "#00ff00" : "#10AEFF",
- "stroke-width": "3"
- }, null, 8, ["percent", "activeColor"]),
- img.status === "success" ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, "1")) : vue.createCommentVNode("v-if", true),
- vue.createVNode(_component_uni_icons, {
- class: "delete-icon",
- onClick: ($event) => $setup.deleteImage(index),
- type: "clear",
- size: "20",
- color: "red"
- }, null, 8, ["onClick"])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.images.length < $setup.maxImages ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "choose-image-container",
- onClick: $setup.chooseImage
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "plusempty",
- size: "40",
- color: "#ccc"
- })
- ])) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("text", { style: { "padding-top": "8px" } }, "最多选择6张图片"),
- vue.createCommentVNode(" 放大预览 "),
- $setup.previewImage ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "preview-modal",
- onClick: $setup.closePreview
- }, [
- vue.createElementVNode("image", {
- src: $setup.previewImage,
- class: "preview-large",
- mode: "aspectFit",
- onClick: vue.withModifiers($setup.closePreview, ["stop"])
- }, null, 8, ["src"])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ])
- ]),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.historyList.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "message",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "alertDialog",
- type: "dialog"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_dialog, {
- type: "info",
- cancelText: "否",
- confirmText: "是",
- title: "提示",
- content: "是否按默认申报(默认申报为:衣服,10件,单价1)",
- onConfirm: $setup.dialogConfirm,
- onClose: $setup.dialogClose
- })
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "printerDialog",
- type: "dialog",
- "is-mask-click": false
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [
- vue.createElementVNode("view", {
- class: "",
- style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" }
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [
- vue.createElementVNode("text", null, "打印尾程面单")
- ]),
- vue.createElementVNode("view", null, [
- $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- multiple: "",
- modelValue: $setup.sendToPeinter,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.sendToPeinter = $event),
- localdata: [
- {
- text: "发送到标签打印机打印",
- value: 1
- }
- ],
- onChange: $setup.sendToPeinterFun
- }, {
- default: vue.withCtx(() => [
- vue.createTextVNode(" > ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"]),
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: $setup.sendToPeinter.length === 0,
- modelValue: $setup.selectPrinter,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.selectPrinter = $event),
- localdata: $setup.printers
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [
- vue.createElementVNode("button", {
- onClick: $setup.close,
- style: { "width": "35%" }
- }, "关闭"),
- vue.createElementVNode("button", {
- onClick: $setup.printConfirm,
- "hover-stay-time": 500,
- loading: $setup.subLoading,
- disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading,
- class: "my-bt-bg",
- style: { "width": "35%" }
- }, " 打印 ", 8, ["loading", "disabled"])
- ])
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWeighIndex = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$r], ["__scopeId", "data-v-14676f1a"], ["__file", "E:/HBuilderProjects/yta/pages/weigh/index.vue"]]);
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
- __name: "instockLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const historyList = vue.ref([]);
- const getHistory = () => {
- historyList.value = uni.getStorageSync("weighHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { historyList, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.historyList, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", { class: "item" }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 256
- /* UNKEYED_FRAGMENT */
- )),
- $setup.historyList.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesWeighInstockLog = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$q], ["__scopeId", "data-v-f9ce4ab0"], ["__file", "E:/HBuilderProjects/yta/pages/weigh/instockLog.vue"]]);
- const _sfc_main$q = {
- name: "uni-data-select",
- mixins: [er.mixinDatacom || {}],
- props: {
- localdata: {
- type: Array,
- default() {
- return [];
- }
- },
- value: {
- type: [String, Number],
- default: ""
- },
- modelValue: {
- type: [String, Number],
- default: ""
- },
- label: {
- type: String,
- default: ""
- },
- placeholder: {
- type: String,
- default: "请选择"
- },
- emptyTips: {
- type: String,
- default: "无选项"
- },
- clear: {
- type: Boolean,
- default: true
- },
- defItem: {
- type: Number,
- default: 0
- },
- disabled: {
- type: Boolean,
- default: false
- },
- // 格式化输出 用法 field="_id as value, version as text, uni_platform as label" format="{label} - {text}"
- format: {
- type: String,
- default: ""
- },
- placement: {
- type: String,
- default: "bottom"
- }
- },
- data() {
- return {
- showSelector: false,
- current: "",
- mixinDatacomResData: [],
- apps: [],
- channels: [],
- cacheKey: "uni-data-select-lastSelectedValue"
- };
- },
- created() {
- this.debounceGet = this.debounce(() => {
- this.query();
- }, 300);
- if (this.collection && !this.localdata.length) {
- this.debounceGet();
- }
- },
- computed: {
- typePlaceholder() {
- const text = {
- "opendb-stat-app-versions": "版本",
- "opendb-app-channels": "渠道",
- "opendb-app-list": "应用"
- };
- const common = this.placeholder;
- const placeholder = text[this.collection];
- return placeholder ? common + placeholder : common;
- },
- valueCom() {
- return this.modelValue;
- },
- textShow() {
- let text = this.current;
- if (text.length > 10) {
- return text.slice(0, 25) + "...";
- }
- return text;
- },
- getOffsetByPlacement() {
- switch (this.placement) {
- case "top":
- return "bottom:calc(100% + 12px);";
- case "bottom":
- return "top:calc(100% + 12px);";
- }
- }
- },
- watch: {
- localdata: {
- immediate: true,
- handler(val, old) {
- if (Array.isArray(val) && old !== val) {
- this.mixinDatacomResData = val;
- }
- }
- },
- valueCom(val, old) {
- this.initDefVal();
- },
- mixinDatacomResData: {
- immediate: true,
- handler(val) {
- if (val.length) {
- this.initDefVal();
- }
- }
- }
- },
- methods: {
- debounce(fn, time = 100) {
- let timer = null;
- return function(...args) {
- if (timer)
- clearTimeout(timer);
- timer = setTimeout(() => {
- fn.apply(this, args);
- }, time);
- };
- },
- // 执行数据库查询
- query() {
- this.mixinDatacomEasyGet();
- },
- // 监听查询条件变更事件
- onMixinDatacomPropsChange() {
- if (this.collection) {
- this.debounceGet();
- }
- },
- initDefVal() {
- let defValue = "";
- if ((this.valueCom || this.valueCom === 0) && !this.isDisabled(this.valueCom)) {
- defValue = this.valueCom;
- } else {
- let strogeValue;
- if (this.collection) {
- strogeValue = this.getCache();
- }
- if (strogeValue || strogeValue === 0) {
- defValue = strogeValue;
- } else {
- let defItem = "";
- if (this.defItem > 0 && this.defItem <= this.mixinDatacomResData.length) {
- defItem = this.mixinDatacomResData[this.defItem - 1].value;
- }
- defValue = defItem;
- }
- if (defValue || defValue === 0) {
- this.emit(defValue);
- }
- }
- const def = this.mixinDatacomResData.find((item) => item.value === defValue);
- this.current = def ? this.formatItemName(def) : "";
- },
- /**
- * @param {[String, Number]} value
- * 判断用户给的 value 是否同时为禁用状态
- */
- isDisabled(value) {
- let isDisabled = false;
- this.mixinDatacomResData.forEach((item) => {
- if (item.value === value) {
- isDisabled = item.disable;
- }
- });
- return isDisabled;
- },
- clearVal() {
- this.emit("");
- if (this.collection) {
- this.removeCache();
- }
- },
- change(item) {
- if (!item.disable) {
- this.showSelector = false;
- this.current = this.formatItemName(item);
- this.emit(item.value);
- }
- },
- emit(val) {
- this.$emit("input", val);
- this.$emit("update:modelValue", val);
- this.$emit("change", val);
- if (this.collection) {
- this.setCache(val);
- }
- },
- toggleSelector() {
- if (this.disabled) {
- return;
- }
- this.showSelector = !this.showSelector;
- },
- formatItemName(item) {
- let {
- text,
- value,
- channel_code
- } = item;
- channel_code = channel_code ? `(${channel_code})` : "";
- if (this.format) {
- let str = "";
- str = this.format;
- for (let key in item) {
- str = str.replace(new RegExp(`{${key}}`, "g"), item[key]);
- }
- return str;
- } else {
- return this.collection.indexOf("app-list") > 0 ? `${text}(${value})` : text ? text : `未命名${channel_code}`;
- }
- },
- // 获取当前加载的数据
- getLoadData() {
- return this.mixinDatacomResData;
- },
- // 获取当前缓存key
- getCurrentCacheKey() {
- return this.collection;
- },
- // 获取缓存
- getCache(name = this.getCurrentCacheKey()) {
- let cacheData = uni.getStorageSync(this.cacheKey) || {};
- return cacheData[name];
- },
- // 设置缓存
- setCache(value, name = this.getCurrentCacheKey()) {
- let cacheData = uni.getStorageSync(this.cacheKey) || {};
- cacheData[name] = value;
- uni.setStorageSync(this.cacheKey, cacheData);
- },
- // 删除缓存
- removeCache(name = this.getCurrentCacheKey()) {
- let cacheData = uni.getStorageSync(this.cacheKey) || {};
- delete cacheData[name];
- uni.setStorageSync(this.cacheKey, cacheData);
- }
- }
- };
- function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-stat__select" }, [
- $props.label ? (vue.openBlock(), vue.createElementBlock(
- "span",
- {
- key: 0,
- class: "uni-label-text hide-on-phone"
- },
- vue.toDisplayString($props.label + ":"),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-stat-box", { "uni-stat__actived": $data.current }])
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-select", { "uni-select--disabled": $props.disabled }])
- },
- [
- vue.createElementVNode("view", {
- class: "uni-select__input-box",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleSelector && $options.toggleSelector(...args))
- }, [
- $data.current ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: "uni-select__input-text"
- },
- vue.toDisplayString($options.textShow),
- 1
- /* TEXT */
- )) : (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- class: "uni-select__input-text uni-select__input-placeholder"
- },
- vue.toDisplayString($options.typePlaceholder),
- 1
- /* TEXT */
- )),
- $data.current && $props.clear && !$props.disabled ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 2,
- onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clearVal && $options.clearVal(...args), ["stop"]))
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "clear",
- color: "#c0c4cc",
- size: "24"
- })
- ])) : (vue.openBlock(), vue.createElementBlock("view", { key: 3 }, [
- vue.createVNode(_component_uni_icons, {
- type: $data.showSelector ? "top" : "bottom",
- size: "14",
- color: "#999"
- }, null, 8, ["type"])
- ]))
- ]),
- $data.showSelector ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-select--mask",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.toggleSelector && $options.toggleSelector(...args))
- })) : vue.createCommentVNode("v-if", true),
- $data.showSelector ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- class: "uni-select__selector",
- style: vue.normalizeStyle($options.getOffsetByPlacement)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass($props.placement == "bottom" ? "uni-popper__arrow_bottom" : "uni-popper__arrow_top")
- },
- null,
- 2
- /* CLASS */
- ),
- vue.createElementVNode("scroll-view", {
- "scroll-y": "true",
- class: "uni-select__selector-scroll"
- }, [
- $data.mixinDatacomResData.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-select__selector-empty"
- }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($props.emptyTips),
- 1
- /* TEXT */
- )
- ])) : (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- { key: 1 },
- vue.renderList($data.mixinDatacomResData, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "uni-select__selector-item",
- key: index,
- onClick: ($event) => $options.change(item)
- }, [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass({ "uni-select__selector__disabled": item.disable })
- },
- vue.toDisplayString($options.formatItemName(item)),
- 3
- /* TEXT, CLASS */
- )
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ],
- 2
- /* CLASS */
- )
- ]);
- }
- const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$p], ["__scopeId", "data-v-ddf9e0a2"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue"]]);
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const message = vue.ref();
- const valiForm = vue.ref();
- const printerDialog = vue.ref();
- const token = vue.ref(null);
- const user = vue.ref(null);
- const loading = vue.ref(false);
- const images = vue.ref([]);
- const messageType = vue.ref("");
- const messageText = vue.ref("");
- const batchOptions = vue.ref([]);
- const spaces = vue.ref([]);
- const previewImage = vue.ref(null);
- const maxImages = vue.ref(6);
- const printerList = vue.ref({});
- const historyList = vue.ref([]);
- const printers = vue.ref([]);
- const sendToPeinter = vue.ref([1]);
- const selectPrinter = vue.ref(0);
- const subLoading = vue.ref(false);
- const focusType = vue.ref(true);
- const result = vue.ref();
- const valiFormData = vue.reactive({
- images: [],
- orderNum: "",
- batch_number: "",
- space_code: "",
- weight: "",
- search_pkg: true,
- typing: true,
- search_order: true,
- search_order_choice: 1
- });
- const rules = vue.computed(() => {
- return {
- orderNum: {
- rules: [
- {
- required: true,
- errorMessage: "单号不能为空"
- }
- ]
- },
- weight: {
- rules: [
- {
- required: true,
- errorMessage: "重量不能为空"
- },
- {
- format: "number",
- errorMessage: "重量只能输入数字"
- }
- ]
- }
- };
- });
- const spaceRes = vue.computed(() => {
- try {
- const res = spaces.value.find((item) => item.value === valiFormData.space_code);
- return res == null ? void 0 : res.text;
- } catch (e2) {
- formatAppLog("log", "at pages/inbound/index.vue:182", e2);
- return "";
- }
- });
- onShow(() => {
- focusType.value = true;
- loading.value = false;
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- getWarehouseSpace();
- getBindParams();
- getPrinterList();
- });
- onHide(() => {
- focusType.value = false;
- loading.value = false;
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/inbound/instockLog"
- });
- }
- });
- const getWarehouseSpace = () => {
- uni.request({
- url: getWarehouseSpaceURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- code: ""
- },
- success: (res) => {
- if (res.data.code === 1) {
- spaces.value = res.data.data.spaces.map((item) => {
- return {
- text: item.name,
- value: item.code
- };
- });
- }
- }
- });
- };
- const getBindParams = () => {
- uni.request({
- url: getBindParamsURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- batchOptions.value = res.data.data.batch_number.map((item) => {
- return {
- text: item.name,
- value: item.id
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/inbound/index.vue:248", "fail--", e2);
- }
- });
- };
- const getPrinterList = () => {
- uni.request({
- url: getPrinterListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- printerList.value = res.data.data.printers;
- printers.value = Object.values(printerList.value).map((item) => {
- return {
- text: item.name,
- value: item.value
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/inbound/index.vue:272", "fail--", e2);
- }
- });
- };
- const reset = () => {
- loading.value = false;
- focusType.value = false;
- images.value = [];
- valiFormData.orderNum = "";
- valiFormData.batch_number = "";
- valiFormData.weight = "";
- valiFormData.search_pkg = true;
- valiFormData.typing = true;
- valiFormData.search_order = true;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const scan = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- result.value = res.result;
- valiFormData.orderNum = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- let st2;
- const warehouseScan = async () => {
- st2 && clearTimeout(st2);
- instockScan();
- };
- const instockScan = () => {
- const images2 = getImages();
- formatAppLog("log", "at pages/inbound/index.vue:339", "images--", images2);
- let allImgVerify = true;
- for (var i2 = 0; i2 < images2.length; i2++) {
- if (!images2[i2].savePath) {
- allImgVerify = false;
- }
- }
- if (!allImgVerify) {
- messageType.value = "error";
- messageText.value = "图片还没上传完毕,请稍后...";
- message.value.open();
- loading.value = false;
- return;
- }
- uni.request({
- url: instockScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- space_code: valiFormData.space_code,
- images: images2
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- message.value.open();
- formatAppLog("log", "at pages/inbound/index.vue:370", "res.data.data---", res.data.data);
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- space: spaceRes.value,
- type: "入库",
- status: true
- };
- historyList.value.unshift(historyItem);
- uni.setStorageSync("inboundHistory", historyList.value);
- getHistory();
- if (res.data.data.express_label) {
- formatAppLog("log", "at pages/inbound/index.vue:384", "有打印面单");
- } else {
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- space: spaceRes.value,
- type: "入库",
- status: false
- };
- historyList.value.unshift(historyItem);
- uni.setStorageSync("inboundHistory", historyList.value);
- getHistory();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- }
- });
- };
- const close = () => {
- printerDialog.value.close();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- };
- const sendToPeinterFun = (res) => {
- if (!res.detail.value.length > 0) {
- selectPrinter.value = 0;
- } else {
- selectPrinter.value = printers.value[0].value;
- }
- };
- const printConfirm = () => {
- subLoading.value = true;
- uni.request({
- url: printWaybillLabelURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- printer_code: selectPrinter
- },
- success: (res) => {
- close();
- subLoading.value = false;
- formatAppLog("log", "at pages/inbound/index.vue:446", "打印成功", res);
- messageType.value = "success";
- messageText.value = "打印成功";
- message.value.open();
- }
- });
- };
- const onsubmit = () => {
- valiForm.value.validate().then((res) => {
- warehouseScan();
- }).catch((err) => {
- formatAppLog("log", "at pages/inbound/index.vue:460", "err", err);
- });
- };
- const getHistory = () => {
- historyList.value = uni.getStorageSync("inboundHistory");
- };
- const getImages = () => {
- const res = images.value.map((item) => {
- return {
- name: item.name,
- savePath: item.serverUrl,
- fileSize: item.size,
- mimeType: item.type
- };
- });
- formatAppLog("log", "at pages/inbound/index.vue:475", "res22 ", res);
- return res;
- };
- const getAliyunOssSignature = (rawFiles) => {
- uni.request({
- url: getAliyunOssSignatureUrl,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: ({ data }) => {
- const signature = data.data.signature;
- const uploadPromises = rawFiles.map((image) => {
- return upLoadFile(signature, image);
- });
- Promise.all(uploadPromises).then((results) => {
- formatAppLog("log", "at pages/inbound/index.vue:496", "所有图片加载成功:", results);
- uni.showToast({
- title: "加载成功",
- icon: "success"
- });
- }).catch((error) => {
- formatAppLog("error", "at pages/inbound/index.vue:503", "加载失败:", error);
- uni.showToast({
- title: "加载失败",
- icon: "none"
- });
- });
- },
- fail: (err) => {
- formatAppLog("log", "at pages/inbound/index.vue:511", err);
- }
- });
- };
- const upLoadFile = (signature, image) => {
- const fileData = {
- policy: signature.policy,
- signature: signature.signature,
- ossaccessKeyId: signature.ossAccessKeyId,
- key: signature.dir + dayjs().format("YYYYMMDD") + "/" + uuid() + "_" + image.name,
- dir: signature.dir,
- host: signature.host,
- file: image.file
- };
- return new Promise((resolve, reject) => {
- let name = image.name;
- name = "file";
- const uploadTask = uni.uploadFile({
- url: signature.host,
- // 你的上传接口地址
- filePath: image.path,
- name,
- // 这里根据后端需要的字段来定义
- formData: fileData,
- success: (uploadFileRes) => {
- if (uploadFileRes.statusCode === 204 || uploadFileRes.statusCode === 200) {
- image.serverUrl = fileData.key;
- resolve(uploadFileRes);
- } else {
- reject(uploadFileRes);
- }
- },
- fail: (error) => {
- formatAppLog("log", "at pages/inbound/index.vue:544", "error++", error);
- reject(error);
- },
- // 更新上传进度
- complete: () => {
- formatAppLog("log", "at pages/inbound/index.vue:549", "complete---");
- image.progress = 100;
- }
- });
- uploadTask.onProgressUpdate((progressEvent) => {
- image.progress = progressEvent.progress;
- });
- });
- };
- const chooseImage = () => {
- uni.chooseImage({
- count: maxImages.value - images.value.length,
- success: (res) => {
- images.value = images.value.concat(
- res.tempFiles.map((item) => {
- const res2 = {
- size: item.size,
- path: item.path,
- name: item.name,
- type: item.type,
- progress: 0,
- file: item
- };
- const suffix = item.path.substring(item.path.lastIndexOf(".") + 1);
- const fileName = item.path.substring(item.path.lastIndexOf("/") + 1);
- res2.name = fileName;
- res2.type = suffix;
- return res2;
- })
- );
- const paddingImages = images.value.filter((image) => image.progress === 0);
- vue.nextTick(() => {
- getAliyunOssSignature(paddingImages);
- });
- },
- fail: (err) => {
- formatAppLog("error", "at pages/inbound/index.vue:594", err);
- }
- });
- };
- const deleteImage = (index) => {
- images.value.splice(index, 1);
- };
- const openPreview = (image) => {
- previewImage.value = image;
- };
- const closePreview = () => {
- previewImage.value = null;
- };
- const __returned__ = { message, valiForm, printerDialog, token, user, loading, images, messageType, messageText, batchOptions, spaces, previewImage, maxImages, printerList, historyList, printers, sendToPeinter, selectPrinter, subLoading, focusType, result, valiFormData, rules, spaceRes, getWarehouseSpace, getBindParams, getPrinterList, reset, scan, checkPermission, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, warehouseScan, instockScan, close, sendToPeinterFun, printConfirm, onsubmit, getHistory, getImages, getAliyunOssSignature, upLoadFile, chooseImage, deleteImage, openPreview, closePreview };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$3);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createElementVNode("view", { class: "example" }, [
- vue.createCommentVNode(" 基础表单校验 "),
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单号",
- required: true,
- name: "orderNum"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.orderNum,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scan
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "仓位编码",
- name: "space_code"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_data_select, {
- modelValue: $setup.valiFormData.space_code,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.space_code = $event),
- localdata: $setup.spaces,
- placeholder: "请选择仓位编码"
- }, null, 8, ["modelValue", "localdata"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "图片",
- name: "images"
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "upload-container" }, [
- vue.createElementVNode("view", { class: "preview" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.images, (img, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- key: index,
- class: "image-container"
- }, [
- vue.createElementVNode("image", {
- src: img.path,
- class: "preview-image",
- mode: "aspectFill",
- onClick: ($event) => $setup.openPreview(img.path)
- }, null, 8, ["src", "onClick"]),
- vue.createElementVNode("progress", {
- percent: img.progress || 0,
- activeColor: Number(img.progress || 0) === 100 ? "#00ff00" : "#10AEFF",
- "stroke-width": "3"
- }, null, 8, ["percent", "activeColor"]),
- img.status === "success" ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, "1")) : vue.createCommentVNode("v-if", true),
- vue.createVNode(_component_uni_icons, {
- class: "delete-icon",
- onClick: ($event) => $setup.deleteImage(index),
- type: "clear",
- size: "20",
- color: "red"
- }, null, 8, ["onClick"])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.images.length < $setup.maxImages ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "choose-image-container",
- onClick: $setup.chooseImage
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "plusempty",
- size: "40",
- color: "#ccc"
- })
- ])) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("text", { style: { "padding-top": "8px" } }, "最多选择6张图片"),
- vue.createCommentVNode(" 放大预览 "),
- $setup.previewImage ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "preview-modal",
- onClick: $setup.closePreview
- }, [
- vue.createElementVNode("image", {
- src: $setup.previewImage,
- class: "preview-large",
- mode: "aspectFit",
- onClick: vue.withModifiers($setup.closePreview, ["stop"])
- }, null, 8, ["src"])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ])
- ]),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.historyList.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "message",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "printerDialog",
- type: "dialog",
- "is-mask-click": false
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [
- vue.createElementVNode("view", {
- class: "",
- style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" }
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [
- vue.createElementVNode("text", null, "打印尾程面单")
- ]),
- vue.createElementVNode("view", null, [
- $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- multiple: "",
- modelValue: $setup.sendToPeinter,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.sendToPeinter = $event),
- localdata: [
- {
- text: "发送到标签打印机打印",
- value: 1
- }
- ],
- onChange: $setup.sendToPeinterFun
- }, {
- default: vue.withCtx(() => [
- vue.createTextVNode(" > ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"]),
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: $setup.sendToPeinter.length === 0,
- modelValue: $setup.selectPrinter,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.selectPrinter = $event),
- localdata: $setup.printers
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [
- vue.createElementVNode("button", {
- onClick: $setup.close,
- style: { "width": "35%" }
- }, "关闭"),
- vue.createElementVNode("button", {
- onClick: $setup.printConfirm,
- "hover-stay-time": 500,
- loading: $setup.subLoading,
- disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading,
- class: "my-bt-bg",
- style: { "width": "35%" }
- }, " 打印 ", 8, ["loading", "disabled"])
- ])
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesInboundIndex = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$o], ["__scopeId", "data-v-d5a684ce"], ["__file", "E:/HBuilderProjects/yta/pages/inbound/index.vue"]]);
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
- __name: "instockLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const historyList = vue.ref([]);
- const getHistory = () => {
- historyList.value = uni.getStorageSync("inboundHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { historyList, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.historyList, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", { class: "item" }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 256
- /* UNKEYED_FRAGMENT */
- )),
- $setup.historyList.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesInboundInstockLog = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$n], ["__scopeId", "data-v-9c131049"], ["__file", "E:/HBuilderProjects/yta/pages/inbound/instockLog.vue"]]);
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const message = vue.ref();
- const valiForm = vue.ref();
- const printerDialog = vue.ref();
- const token = vue.ref(null);
- const user = vue.ref(null);
- const loading = vue.ref(false);
- const messageType = vue.ref("");
- const messageText = vue.ref("");
- const batchOptions = vue.ref([]);
- const companyOptions = vue.ref([]);
- const orderInfo = vue.ref({});
- const printerList = vue.ref({});
- const historyList = vue.ref([]);
- const printers = vue.ref([]);
- const sendToPeinter = vue.ref([1]);
- const selectPrinter = vue.ref(0);
- const subLoading = vue.ref(false);
- const focusType = vue.ref(true);
- const result = vue.ref();
- const valiFormData = vue.reactive({
- orderNum: "",
- batch_number: "",
- typing: true,
- express_company_id: "",
- express_no: "",
- express_tracking_number: ""
- });
- const rules = vue.computed(() => {
- return {
- orderNum: {
- rules: [
- {
- required: false,
- errorMessage: "单号不能为空"
- }
- ]
- }
- };
- });
- onShow(() => {
- focusType.value = true;
- loading.value = false;
- token.value = uni.getStorageSync("token");
- user.value = uni.getStorageSync("user");
- getBindParams();
- getCompanyList();
- getPrinterList();
- });
- onHide(() => {
- focusType.value = false;
- loading.value = false;
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/outbound/instockLog"
- });
- }
- });
- const getBindParams = () => {
- uni.request({
- url: getBindParamsURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- batchOptions.value = res.data.data.batch_number.map((item) => {
- return {
- text: item.name,
- value: item.id
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/outbound/index.vue:204", "fail--", e2);
- }
- });
- };
- const getCompanyList = () => {
- uni.request({
- url: companyListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- data: {
- limit: 100,
- order: "id,desc"
- },
- success: (res) => {
- if (res.data.code === 1) {
- companyOptions.value = res.data.data.list.map((item) => {
- return {
- text: item.name,
- value: item.id
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/outbound/index.vue:231", "fail--", e2);
- }
- });
- };
- const getPrinterList = () => {
- uni.request({
- url: getPrinterListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- printerList.value = res.data.data.printers;
- printers.value = Object.values(printerList.value).map((item) => {
- return {
- text: item.name,
- value: item.value
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/outbound/index.vue:255", "fail--", e2);
- }
- });
- };
- let st2;
- const orderChange = (res) => {
- valiFormData.orderNum = res;
- st2 && clearTimeout(st2);
- st2 = setTimeout(() => {
- getOrderInfoURL();
- clearTimeout(st2);
- }, 800);
- };
- const getOrderInfoURL = () => {
- if (valiFormData.orderNum.length === 0) {
- return;
- }
- uni.request({
- url: orderInfoURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum
- },
- success: (res) => {
- if (res.data.code === 1) {
- orderInfo.value = res.data.data;
- } else {
- orderInfo.value = {};
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/outbound/index.vue:301", "fail--", e2);
- }
- });
- };
- const batchText = (batch_number) => {
- var _a;
- return (_a = batchOptions.value.find((item) => item.value === batch_number)) == null ? void 0 : _a.text;
- };
- const reset = () => {
- loading.value = false;
- focusType.value = false;
- valiFormData.orderNum = "";
- valiFormData.batch_number = "";
- valiFormData.typing = true;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const scan = async (key) => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- result.value = res.result;
- valiFormData[key] = res.result;
- orderChange(res.result);
- },
- fail: (err) => {
- }
- });
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- let st3;
- const warehouseScan = async () => {
- st3 && clearTimeout(st3);
- scanOutstock();
- };
- const scanOutstock = () => {
- formatAppLog("log", "at pages/outbound/index.vue:367", valiFormData.orderNum, valiFormData.batch_number);
- if (valiFormData.orderNum.length === 0 && valiFormData.batch_number.length === 0) {
- messageType.value = "error";
- messageText.value = "单号或批次号至少填一个";
- message.value.open();
- return;
- }
- loading.value = true;
- uni.request({
- url: outStockScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- batch_number: valiFormData.batch_number,
- express_company_id: valiFormData.express_company_id,
- express_no: valiFormData.express_no,
- express_tracking_number: valiFormData.express_tracking_number
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- batch_text: batchText(valiFormData.batch_number),
- createTime: /* @__PURE__ */ new Date(),
- type: "出库",
- status: true
- };
- historyList.value.unshift(historyItem);
- historyList.value.length > 10 && (historyList.value.length = 10);
- uni.setStorageSync("outboundHistory", historyList.value);
- getHistory();
- if (res.data.data.labels && res.data.data.labels.length > 0) {
- formatAppLog("log", "at pages/outbound/index.vue:407", "有打印面单");
- } else {
- st3 = setTimeout(() => {
- reset();
- st3 && clearTimeout(st3);
- }, 700);
- }
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- message.value.open();
- const historyItem = {
- orderNum: valiFormData.orderNum,
- batch_text: batchText(valiFormData.batch_number),
- createTime: /* @__PURE__ */ new Date(),
- type: "出库",
- status: false
- };
- historyList.value.unshift(historyItem);
- historyList.value.length > 10 && (historyList.value.length = 10);
- uni.setStorageSync("outboundHistory", historyList.value);
- getHistory();
- st3 = setTimeout(() => {
- reset();
- st3 && clearTimeout(st3);
- }, 700);
- }
- }
- });
- };
- const close = () => {
- printerDialog.value.close();
- st3 = setTimeout(() => {
- reset();
- st3 && clearTimeout(st3);
- }, 700);
- };
- const sendToPeinterFun = (res) => {
- if (!res.detail.value.length > 0) {
- selectPrinter.value = 0;
- } else {
- selectPrinter.value = printers.value[0].value;
- }
- };
- const printConfirm = () => {
- subLoading.value = true;
- uni.request({
- url: printWaybillLabelURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.orderNum,
- printer_code: selectPrinter
- },
- success: (res) => {
- close();
- subLoading.value = false;
- formatAppLog("log", "at pages/outbound/index.vue:470", "打印成功", res);
- messageType.value = "success";
- messageText.value = "打印成功";
- message.value.open();
- }
- });
- };
- const onsubmit = () => {
- valiForm.value.validate().then((res) => {
- warehouseScan();
- }).catch((err) => {
- formatAppLog("log", "at pages/outbound/index.vue:484", "err", err);
- });
- };
- const getHistory = () => {
- historyList.value = uni.getStorageSync("outboundHistory");
- };
- const __returned__ = { message, valiForm, printerDialog, token, user, loading, messageType, messageText, batchOptions, companyOptions, orderInfo, printerList, historyList, printers, sendToPeinter, selectPrinter, subLoading, focusType, result, valiFormData, rules, getBindParams, getCompanyList, getPrinterList, get st2() {
- return st2;
- }, set st2(v2) {
- st2 = v2;
- }, orderChange, getOrderInfoURL, batchText, reset, scan, checkPermission, get st() {
- return st3;
- }, set st(v2) {
- st3 = v2;
- }, warehouseScan, scanOutstock, close, sendToPeinterFun, printConfirm, onsubmit, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$2);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$3);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createElementVNode("view", { class: "example" }, [
- vue.createCommentVNode(" 基础表单校验 "),
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单号",
- required: true,
- name: "orderNum"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.orderNum,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: _cache[1] || (_cache[1] = ($event) => $setup.scan("orderNum")),
- onInput: $setup.orderChange
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "批次号",
- name: "batch_number"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_data_select, {
- modelValue: $setup.valiFormData.batch_number,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.batch_number = $event),
- localdata: $setup.batchOptions,
- placeholder: "请选择批次号"
- }, null, 8, ["modelValue", "localdata"])
- ]),
- _: 1
- /* STABLE */
- }),
- $setup.orderInfo.order_id ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- !$setup.orderInfo.express_sn ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createVNode(_component_uni_forms_item, {
- label: "物流公司",
- name: "express_company_id"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_data_select, {
- modelValue: $setup.valiFormData.express_company_id,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.valiFormData.express_company_id = $event),
- localdata: $setup.companyOptions,
- placeholder: "请选择物流公司"
- }, null, 8, ["modelValue", "localdata"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "物流单号",
- name: "express_no"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.express_no,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $setup.valiFormData.express_no = $event),
- placeholder: "请输入物流单号",
- suffixIcon: "scan",
- onIconClick: _cache[5] || (_cache[5] = ($event) => $setup.scan("express_no"))
- }, null, 8, ["modelValue"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "追踪单号",
- name: "express_tracking_number"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.express_tracking_number,
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $setup.valiFormData.express_tracking_number = $event),
- placeholder: "请输入追踪单号",
- suffixIcon: "scan",
- onIconClick: _cache[7] || (_cache[7] = ($event) => $setup.scan("express_tracking_number"))
- }, null, 8, ["modelValue"])
- ]),
- _: 1
- /* STABLE */
- })
- ])) : vue.createCommentVNode("v-if", true)
- ])) : vue.createCommentVNode("v-if", true)
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ])
- ]),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.historyList.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "message",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "printerDialog",
- type: "dialog",
- "is-mask-click": false
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [
- vue.createElementVNode("view", {
- class: "",
- style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" }
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [
- vue.createElementVNode("text", null, "打印尾程面单")
- ]),
- vue.createElementVNode("view", null, [
- $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- multiple: "",
- modelValue: $setup.sendToPeinter,
- "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => $setup.sendToPeinter = $event),
- localdata: [
- {
- text: "发送到标签打印机打印",
- value: 1
- }
- ],
- onChange: $setup.sendToPeinterFun
- }, {
- default: vue.withCtx(() => [
- vue.createTextVNode(" > ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"]),
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: $setup.sendToPeinter.length === 0,
- modelValue: $setup.selectPrinter,
- "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => $setup.selectPrinter = $event),
- localdata: $setup.printers
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [
- vue.createElementVNode("button", {
- onClick: $setup.close,
- style: { "width": "35%" }
- }, "关闭"),
- vue.createElementVNode("button", {
- onClick: $setup.printConfirm,
- "hover-stay-time": 500,
- loading: $setup.subLoading,
- disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading,
- class: "my-bt-bg",
- style: { "width": "35%" }
- }, " 打印 ", 8, ["loading", "disabled"])
- ])
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesOutboundIndex = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$m], ["__scopeId", "data-v-e24b5023"], ["__file", "E:/HBuilderProjects/yta/pages/outbound/index.vue"]]);
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
- __name: "instockLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const historyList = vue.ref([]);
- const getHistory = () => {
- historyList.value = uni.getStorageSync("outboundHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { historyList, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.historyList, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", { class: "item" }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- [
- vue.createTextVNode(
- vue.toDisplayString(item.orderNum) + " ",
- 1
- /* TEXT */
- ),
- item.batch_text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 0 },
- "批次号: " + vue.toDisplayString(item.batch_text),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- item.space ? (vue.openBlock(), vue.createElementBlock(
- "text",
- { key: 1 },
- "仓位编码: " + vue.toDisplayString(item.space),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.type),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 256
- /* UNKEYED_FRAGMENT */
- )),
- $setup.historyList.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesOutboundInstockLog = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$l], ["__scopeId", "data-v-059bddb5"], ["__file", "E:/HBuilderProjects/yta/pages/outbound/instockLog.vue"]]);
- const _imports_0$2 = "/static/user.png";
- const _sfc_main$l = {
- data() {
- const token = vue.ref(null);
- const user = vue.ref(null);
- return {
- token,
- user
- };
- },
- onLoad() {
- },
- onShow() {
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- methods: {
- avatarClick() {
- if (this.token)
- ;
- else {
- uni.navigateTo({
- url: "/pages/login/index"
- });
- }
- },
- logout() {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- dialogToggle() {
- this.$refs.alertDialog.open();
- }
- }
- };
- function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_popup_dialog = resolveEasycom(vue.resolveDynamicComponent("uni-popup-dialog"), __easycom_0$5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [
- vue.createElementVNode("view", {
- class: "user-v",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.avatarClick && $options.avatarClick(...args))
- }, [
- !$data.user.avatar ? (vue.openBlock(), vue.createElementBlock("image", {
- key: 0,
- class: "user-icon",
- src: _imports_0$2
- })) : (vue.openBlock(), vue.createElementBlock("image", {
- key: 1,
- class: "user-icon",
- src: $data.user.avatar
- }, null, 8, ["src"]))
- ]),
- vue.createElementVNode("view", { class: "text-area" }, [
- vue.createElementVNode(
- "text",
- { class: "title" },
- vue.toDisplayString($data.user.username),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", { class: "login-btn" }, [
- !$data.token ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 0,
- type: "primary",
- plain: "true",
- size: "mini",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.avatarClick && $options.avatarClick(...args))
- }, "登录")) : (vue.openBlock(), vue.createElementBlock("button", {
- key: 1,
- type: "default",
- plain: "true",
- size: "mini",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.dialogToggle && $options.dialogToggle(...args))
- }, "注销"))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "alertDialog",
- type: "dialog"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_dialog, {
- type: "info",
- cancelText: "取消",
- confirmText: "注销",
- title: "注销",
- content: "确定是要注销吗?",
- onConfirm: $options.logout
- }, null, 8, ["onConfirm"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesProfileIndex = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$k], ["__file", "E:/HBuilderProjects/yta/pages/profile/index.vue"]]);
- const _imports_0$1 = "/static/logo.png";
- const _sfc_main$k = {
- data() {
- return {
- messageText: "",
- captcha_id: "f2dd39ce-0d3e-4c1e-916c-b50090a7590s",
- verifyCodeImg: "",
- //验证码图片
- verifyCodeToken: "",
- //图形验证码的验证token
- isVerifyCodeTure: false,
- //验证码输入是否正确
- valiFormData: {
- account: "",
- password: "",
- captcha: ""
- },
- rules: {
- name: {
- rules: [{
- required: true,
- errorMessage: "姓名不能为空"
- }]
- }
- }
- };
- },
- onLoad() {
- this.getVerifyCodeImg();
- },
- methods: {
- getVerifyCodeImg() {
- uni.request({
- url: `${getcaptchaURL}?server=1&id=${this.captcha_id}&m=` + Math.random(),
- method: "GET",
- responseType: "arraybuffer",
- //设置响应类型
- success: (res) => {
- const arrayBuffer = new Uint8Array(res.data);
- const base64 = "data:image/png;base64," + uni.arrayBufferToBase64(
- arrayBuffer
- );
- this.verifyCodeImg = base64;
- this.verifyCodeToken = res.header["Set-Cookie"];
- }
- });
- },
- formSubmit() {
- uni.request({
- //api地址
- url: loginURL,
- data: {
- "username": this.valiFormData.account,
- "password": this.valiFormData.password,
- "captcha": this.valiFormData.captcha,
- "keep": false,
- "loading": true,
- "captcha_id": this.captcha_id
- },
- //请求类型
- method: "POST",
- success: (res) => {
- formatAppLog("log", "at pages/login/index.vue:100", res);
- if (res.data.code == 1) {
- const userInfo = res.data.data.userInfo;
- uni.setStorage({
- key: "token",
- data: userInfo.token,
- success() {
- uni.setStorage({
- key: "user",
- data: userInfo,
- success() {
- uni.navigateBack();
- }
- });
- }
- });
- } else {
- formatAppLog("log", "at pages/login/index.vue:120", res);
- this.messageText = res.data.msg;
- this.$refs.message.open();
- }
- }
- });
- }
- }
- };
- function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "contaier" }, [
- vue.createElementVNode("view", { class: "top-bg" }, [
- vue.createElementVNode("image", {
- class: "logo-icon",
- src: _imports_0$1
- })
- ]),
- vue.createElementVNode("view", { class: "input-box padding-lr" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- rules: $data.rules,
- modelValue: $data.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "cu-form-group margin-top" }, [
- vue.createVNode(_component_uni_icons, {
- class: "uni-icon",
- type: "person",
- size: "30",
- color: "#999"
- }),
- vue.createVNode(_component_uni_easyinput, {
- placeholder: "账号",
- modelValue: $data.valiFormData.account,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.valiFormData.account = $event)
- }, null, 8, ["modelValue"])
- ]),
- vue.createElementVNode("view", { class: "cu-form-group" }, [
- vue.createVNode(_component_uni_icons, {
- class: "uni-icon",
- type: "locked",
- size: "30",
- color: "#999"
- }),
- vue.createVNode(_component_uni_easyinput, {
- placeholder: "密码",
- type: "password",
- modelValue: $data.valiFormData.password,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.valiFormData.password = $event)
- }, null, 8, ["modelValue"])
- ]),
- vue.createElementVNode("view", { class: "cu-form-group solid-bottom" }, [
- vue.createVNode(_component_uni_icons, {
- class: "uni-icon",
- type: "more-filled",
- size: "30",
- color: "#999"
- }),
- vue.createVNode(_component_uni_easyinput, {
- placeholder: "验证码",
- modelValue: $data.valiFormData.captcha,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.valiFormData.captcha = $event)
- }, null, 8, ["modelValue"]),
- vue.createCommentVNode(" <button class='cu-btn bg-login-zl shadow'>验证码</button> "),
- vue.createElementVNode("image", {
- class: "cu-btn captchaImg",
- src: $data.verifyCodeImg,
- onClick: _cache[3] || (_cache[3] = (...args) => $options.getVerifyCodeImg && $options.getVerifyCodeImg(...args))
- }, null, 8, ["src"])
- ])
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"])
- ]),
- vue.createElementVNode("view", { class: "padding-lr margin-top-xs" }, [
- vue.createElementVNode("button", {
- class: "cu-btn block round bg-login-zl margin-tb-sm lg",
- onClick: _cache[4] || (_cache[4] = ($event) => $options.formSubmit("valiForm"))
- }, "立即登录")
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "message",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: "error",
- message: $data.messageText,
- duration: 2e3
- }, null, 8, ["message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesLoginIndex = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$j], ["__scopeId", "data-v-d08ef7d4"], ["__file", "E:/HBuilderProjects/yta/pages/login/index.vue"]]);
- const _sfc_main$j = {
- data() {
- const token = vue.ref(null);
- const user = vue.ref(null);
- return {
- token,
- user
- };
- },
- onLoad() {
- },
- onShow() {
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- methods: {
- avatarClick() {
- if (this.token)
- ;
- else {
- uni.navigateTo({
- url: "/pages/login/index"
- });
- }
- },
- logout() {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- this.token = uni.getStorageSync("token");
- this.user = uni.getStorageSync("user");
- },
- dialogToggle() {
- this.$refs.alertDialog.open();
- }
- }
- };
- function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "content" });
- }
- const PagesOrderIndex = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$i], ["__file", "E:/HBuilderProjects/yta/pages/order/index.vue"]]);
- const dataPicker = {
- props: {
- localdata: {
- type: [Array, Object],
- default() {
- return [];
- }
- },
- spaceInfo: {
- type: Object,
- default() {
- return {};
- }
- },
- collection: {
- type: String,
- default: ""
- },
- action: {
- type: String,
- default: ""
- },
- field: {
- type: String,
- default: ""
- },
- orderby: {
- type: String,
- default: ""
- },
- where: {
- type: [String, Object],
- default: ""
- },
- pageData: {
- type: String,
- default: "add"
- },
- pageCurrent: {
- type: Number,
- default: 1
- },
- pageSize: {
- type: Number,
- default: 500
- },
- getcount: {
- type: [Boolean, String],
- default: false
- },
- getone: {
- type: [Boolean, String],
- default: false
- },
- gettree: {
- type: [Boolean, String],
- default: false
- },
- manual: {
- type: Boolean,
- default: false
- },
- value: {
- type: [Array, String, Number],
- default() {
- return [];
- }
- },
- modelValue: {
- type: [Array, String, Number],
- default() {
- return [];
- }
- },
- preload: {
- type: Boolean,
- default: false
- },
- stepSearh: {
- type: Boolean,
- default: true
- },
- selfField: {
- type: String,
- default: ""
- },
- parentField: {
- type: String,
- default: ""
- },
- multiple: {
- type: Boolean,
- default: false
- },
- map: {
- type: Object,
- default() {
- return {
- text: "text",
- value: "value"
- };
- }
- }
- },
- data() {
- return {
- loading: false,
- errorMessage: "",
- loadMore: {
- contentdown: "",
- contentrefresh: "",
- contentnomore: ""
- },
- dataList: [],
- selected: [],
- selectedIndex: 0,
- page: {
- current: this.pageCurrent,
- size: this.pageSize,
- count: 0
- }
- };
- },
- computed: {
- isLocalData() {
- return !this.collection.length;
- },
- isCloudData() {
- return this.collection.length > 0;
- },
- isCloudDataList() {
- return this.isCloudData && (!this.parentField && !this.selfField);
- },
- isCloudDataTree() {
- return this.isCloudData && this.parentField && this.selfField;
- },
- dataValue() {
- let isModelValue = Array.isArray(this.modelValue) ? this.modelValue.length > 0 : this.modelValue !== null || this.modelValue !== void 0;
- return isModelValue ? this.modelValue : this.value;
- },
- hasValue() {
- if (typeof this.dataValue === "number") {
- return true;
- }
- return this.dataValue != null && this.dataValue.length > 0;
- }
- },
- created() {
- this.$watch(() => {
- var al = [];
- [
- "pageCurrent",
- "pageSize",
- "spaceInfo",
- "value",
- "modelValue",
- "localdata",
- "collection",
- "action",
- "field",
- "orderby",
- "where",
- "getont",
- "getcount",
- "gettree"
- ].forEach((key) => {
- al.push(this[key]);
- });
- return al;
- }, (newValue, oldValue) => {
- for (let i2 = 2; i2 < newValue.length; i2++) {
- if (newValue[i2] != oldValue[i2]) {
- break;
- }
- }
- if (newValue[0] != oldValue[0]) {
- this.page.current = this.pageCurrent;
- }
- this.page.size = this.pageSize;
- this.onPropsChange();
- });
- this._treeData = [];
- },
- methods: {
- onPropsChange() {
- this._treeData = [];
- },
- // 填充 pickview 数据
- async loadData() {
- if (this.isLocalData) {
- this.loadLocalData();
- } else if (this.isCloudDataList) {
- this.loadCloudDataList();
- } else if (this.isCloudDataTree) {
- this.loadCloudDataTree();
- }
- },
- // 加载本地数据
- async loadLocalData() {
- this._treeData = [];
- this._extractTree(this.localdata, this._treeData);
- let inputValue = this.dataValue;
- if (inputValue === void 0) {
- return;
- }
- if (Array.isArray(inputValue)) {
- inputValue = inputValue[inputValue.length - 1];
- if (typeof inputValue === "object" && inputValue[this.map.value]) {
- inputValue = inputValue[this.map.value];
- }
- }
- this.selected = this._findNodePath(inputValue, this.localdata);
- },
- // 加载 Cloud 数据 (单列)
- async loadCloudDataList() {
- if (this.loading) {
- return;
- }
- this.loading = true;
- try {
- let response = await this.getCommand();
- let responseData = response.result.data;
- this._treeData = responseData;
- this._updateBindData();
- this._updateSelected();
- this.onDataChange();
- } catch (e2) {
- this.errorMessage = e2;
- } finally {
- this.loading = false;
- }
- },
- // 加载 Cloud 数据 (树形)
- async loadCloudDataTree() {
- if (this.loading) {
- return;
- }
- this.loading = true;
- try {
- let commandOptions = {
- field: this._cloudDataPostField(),
- where: this._cloudDataTreeWhere()
- };
- if (this.gettree) {
- commandOptions.startwith = `${this.selfField}=='${this.dataValue}'`;
- }
- let response = await this.getCommand(commandOptions);
- let responseData = response.result.data;
- this._treeData = responseData;
- this._updateBindData();
- this._updateSelected();
- this.onDataChange();
- } catch (e2) {
- this.errorMessage = e2;
- } finally {
- this.loading = false;
- }
- },
- // 加载 Cloud 数据 (节点)
- async loadCloudDataNode(callback) {
- if (this.loading) {
- return;
- }
- this.loading = true;
- try {
- let commandOptions = {
- field: this._cloudDataPostField(),
- where: this._cloudDataNodeWhere()
- };
- let response = await this.getCommand(commandOptions);
- let responseData = response.result.data;
- callback(responseData);
- } catch (e2) {
- this.errorMessage = e2;
- } finally {
- this.loading = false;
- }
- },
- // 回显 Cloud 数据
- getCloudDataValue() {
- if (this.isCloudDataList) {
- return this.getCloudDataListValue();
- }
- if (this.isCloudDataTree) {
- return this.getCloudDataTreeValue();
- }
- },
- // 回显 Cloud 数据 (单列)
- getCloudDataListValue() {
- let where = [];
- let whereField = this._getForeignKeyByField();
- if (whereField) {
- where.push(`${whereField} == '${this.dataValue}'`);
- }
- where = where.join(" || ");
- if (this.where) {
- where = `(${this.where}) && (${where})`;
- }
- return this.getCommand({
- field: this._cloudDataPostField(),
- where
- }).then((res) => {
- this.selected = res.result.data;
- return res.result.data;
- });
- },
- // 回显 Cloud 数据 (树形)
- getCloudDataTreeValue() {
- return this.getCommand({
- field: this._cloudDataPostField(),
- getTreePath: {
- startWith: `${this.selfField}=='${this.dataValue}'`
- }
- }).then((res) => {
- let treePath = [];
- this._extractTreePath(res.result.data, treePath);
- this.selected = treePath;
- return treePath;
- });
- },
- getCommand(options = {}) {
- let db = er.database(this.spaceInfo);
- const action = options.action || this.action;
- if (action) {
- db = db.action(action);
- }
- const collection = options.collection || this.collection;
- db = db.collection(collection);
- const where = options.where || this.where;
- if (!(!where || !Object.keys(where).length)) {
- db = db.where(where);
- }
- const field = options.field || this.field;
- if (field) {
- db = db.field(field);
- }
- const orderby = options.orderby || this.orderby;
- if (orderby) {
- db = db.orderBy(orderby);
- }
- const current = options.pageCurrent !== void 0 ? options.pageCurrent : this.page.current;
- const size = options.pageSize !== void 0 ? options.pageSize : this.page.size;
- const getCount = options.getcount !== void 0 ? options.getcount : this.getcount;
- const getTree = options.gettree !== void 0 ? options.gettree : this.gettree;
- const getOptions = {
- getCount,
- getTree
- };
- if (options.getTreePath) {
- getOptions.getTreePath = options.getTreePath;
- }
- db = db.skip(size * (current - 1)).limit(size).get(getOptions);
- return db;
- },
- _cloudDataPostField() {
- let fields = [this.field];
- if (this.parentField) {
- fields.push(`${this.parentField} as parent_value`);
- }
- return fields.join(",");
- },
- _cloudDataTreeWhere() {
- let result = [];
- let selected = this.selected;
- let parentField = this.parentField;
- if (parentField) {
- result.push(`${parentField} == null || ${parentField} == ""`);
- }
- if (selected.length) {
- for (var i2 = 0; i2 < selected.length - 1; i2++) {
- result.push(`${parentField} == '${selected[i2].value}'`);
- }
- }
- let where = [];
- if (this.where) {
- where.push(`(${this.where})`);
- }
- if (result.length) {
- where.push(`(${result.join(" || ")})`);
- }
- return where.join(" && ");
- },
- _cloudDataNodeWhere() {
- let where = [];
- let selected = this.selected;
- if (selected.length) {
- where.push(`${this.parentField} == '${selected[selected.length - 1].value}'`);
- }
- where = where.join(" || ");
- if (this.where) {
- return `(${this.where}) && (${where})`;
- }
- return where;
- },
- _getWhereByForeignKey() {
- let result = [];
- let whereField = this._getForeignKeyByField();
- if (whereField) {
- result.push(`${whereField} == '${this.dataValue}'`);
- }
- if (this.where) {
- return `(${this.where}) && (${result.join(" || ")})`;
- }
- return result.join(" || ");
- },
- _getForeignKeyByField() {
- let fields = this.field.split(",");
- let whereField = null;
- for (let i2 = 0; i2 < fields.length; i2++) {
- const items = fields[i2].split("as");
- if (items.length < 2) {
- continue;
- }
- if (items[1].trim() === "value") {
- whereField = items[0].trim();
- break;
- }
- }
- return whereField;
- },
- _updateBindData(node) {
- const {
- dataList,
- hasNodes
- } = this._filterData(this._treeData, this.selected);
- let isleaf = this._stepSearh === false && !hasNodes;
- if (node) {
- node.isleaf = isleaf;
- }
- this.dataList = dataList;
- this.selectedIndex = dataList.length - 1;
- if (!isleaf && this.selected.length < dataList.length) {
- this.selected.push({
- value: null,
- text: "请选择"
- });
- }
- return {
- isleaf,
- hasNodes
- };
- },
- _updateSelected() {
- let dl = this.dataList;
- let sl = this.selected;
- let textField = this.map.text;
- let valueField = this.map.value;
- for (let i2 = 0; i2 < sl.length; i2++) {
- let value = sl[i2].value;
- let dl2 = dl[i2];
- for (let j2 = 0; j2 < dl2.length; j2++) {
- let item2 = dl2[j2];
- if (item2[valueField] === value) {
- sl[i2].text = item2[textField];
- break;
- }
- }
- }
- },
- _filterData(data, paths) {
- let dataList = [];
- let hasNodes = true;
- dataList.push(data.filter((item) => {
- return item.parent_value === null || item.parent_value === void 0 || item.parent_value === "";
- }));
- for (let i2 = 0; i2 < paths.length; i2++) {
- let value = paths[i2].value;
- let nodes = data.filter((item) => {
- return item.parent_value === value;
- });
- if (nodes.length) {
- dataList.push(nodes);
- } else {
- hasNodes = false;
- }
- }
- return {
- dataList,
- hasNodes
- };
- },
- _extractTree(nodes, result, parent_value) {
- let valueField = this.map.value;
- for (let i2 = 0; i2 < nodes.length; i2++) {
- let node = nodes[i2];
- let child = {};
- for (let key in node) {
- if (key !== "children") {
- child[key] = node[key];
- }
- }
- if (parent_value !== null && parent_value !== void 0 && parent_value !== "") {
- child.parent_value = parent_value;
- }
- result.push(child);
- let children = node.children;
- if (children) {
- this._extractTree(children, result, node[valueField]);
- }
- }
- },
- _extractTreePath(nodes, result) {
- for (let i2 = 0; i2 < nodes.length; i2++) {
- let node = nodes[i2];
- let child = {};
- for (let key in node) {
- if (key !== "children") {
- child[key] = node[key];
- }
- }
- result.push(child);
- let children = node.children;
- if (children) {
- this._extractTreePath(children, result);
- }
- }
- },
- _findNodePath(key, nodes, path = []) {
- let textField = this.map.text;
- let valueField = this.map.value;
- for (let i2 = 0; i2 < nodes.length; i2++) {
- let node = nodes[i2];
- let children = node.children;
- let text = node[textField];
- let value = node[valueField];
- path.push({
- value,
- text
- });
- if (value === key) {
- return path;
- }
- if (children) {
- const p2 = this._findNodePath(key, children, path);
- if (p2.length) {
- return p2;
- }
- }
- path.pop();
- }
- return [];
- }
- }
- };
- const _sfc_main$i = {
- name: "UniDataPickerView",
- emits: ["nodeclick", "change", "datachange", "update:modelValue"],
- mixins: [dataPicker],
- props: {
- managedMode: {
- type: Boolean,
- default: false
- },
- ellipsis: {
- type: Boolean,
- default: true
- }
- },
- created() {
- if (!this.managedMode) {
- this.$nextTick(() => {
- this.loadData();
- });
- }
- },
- methods: {
- onPropsChange() {
- this._treeData = [];
- this.selectedIndex = 0;
- this.$nextTick(() => {
- this.loadData();
- });
- },
- handleSelect(index) {
- this.selectedIndex = index;
- },
- handleNodeClick(item, i2, j2) {
- if (item.disable) {
- return;
- }
- const node = this.dataList[i2][j2];
- const text = node[this.map.text];
- const value = node[this.map.value];
- if (i2 < this.selected.length - 1) {
- this.selected.splice(i2, this.selected.length - i2);
- this.selected.push({
- text,
- value
- });
- } else if (i2 === this.selected.length - 1) {
- this.selected.splice(i2, 1, {
- text,
- value
- });
- }
- if (node.isleaf) {
- this.onSelectedChange(node, node.isleaf);
- return;
- }
- const {
- isleaf,
- hasNodes
- } = this._updateBindData();
- if (this.isLocalData) {
- this.onSelectedChange(node, !hasNodes || isleaf);
- } else if (this.isCloudDataList) {
- this.onSelectedChange(node, true);
- } else if (this.isCloudDataTree) {
- if (isleaf) {
- this.onSelectedChange(node, node.isleaf);
- } else if (!hasNodes) {
- this.loadCloudDataNode((data) => {
- if (!data.length) {
- node.isleaf = true;
- } else {
- this._treeData.push(...data);
- this._updateBindData(node);
- }
- this.onSelectedChange(node, node.isleaf);
- });
- }
- }
- },
- updateData(data) {
- this._treeData = data.treeData;
- this.selected = data.selected;
- if (!this._treeData.length) {
- this.loadData();
- } else {
- this._updateBindData();
- }
- },
- onDataChange() {
- this.$emit("datachange");
- },
- onSelectedChange(node, isleaf) {
- if (isleaf) {
- this._dispatchEvent();
- }
- if (node) {
- this.$emit("nodeclick", node);
- }
- },
- _dispatchEvent() {
- this.$emit("change", this.selected.slice(0));
- }
- }
- };
- function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-data-pickerview" }, [
- !_ctx.isCloudDataList ? (vue.openBlock(), vue.createElementBlock("scroll-view", {
- key: 0,
- class: "selected-area",
- "scroll-x": "true"
- }, [
- vue.createElementVNode("view", { class: "selected-list" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(_ctx.selected, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: vue.normalizeClass(["selected-item", {
- "selected-item-active": index == _ctx.selectedIndex
- }]),
- key: index,
- onClick: ($event) => $options.handleSelect(index)
- }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.text || ""),
- 1
- /* TEXT */
- )
- ], 10, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "tab-c" }, [
- vue.createElementVNode("scroll-view", {
- class: "list",
- "scroll-y": true
- }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(_ctx.dataList[_ctx.selectedIndex], (item, j2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: vue.normalizeClass(["item", { "is-disabled": !!item.disable }]),
- key: j2,
- onClick: ($event) => $options.handleNodeClick(item, _ctx.selectedIndex, j2)
- }, [
- vue.createElementVNode(
- "text",
- { class: "item-text" },
- vue.toDisplayString(item[_ctx.map.text]),
- 1
- /* TEXT */
- ),
- _ctx.selected.length > _ctx.selectedIndex && item[_ctx.map.value] == _ctx.selected[_ctx.selectedIndex].value ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "check"
- })) : vue.createCommentVNode("v-if", true)
- ], 10, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- _ctx.loading ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "loading-cover"
- }, [
- vue.createVNode(_component_uni_load_more, {
- class: "load-more",
- contentText: _ctx.loadMore,
- status: "loading"
- }, null, 8, ["contentText"])
- ])) : vue.createCommentVNode("v-if", true),
- _ctx.errorMessage ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "error-message"
- }, [
- vue.createElementVNode(
- "text",
- { class: "error-text" },
- vue.toDisplayString(_ctx.errorMessage),
- 1
- /* TEXT */
- )
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]);
- }
- const DataPickerView = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h], ["__scopeId", "data-v-91ec6a82"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue"]]);
- const _sfc_main$h = {
- name: "UniDataPicker",
- emits: ["popupopened", "popupclosed", "nodeclick", "input", "change", "update:modelValue", "inputclick"],
- mixins: [dataPicker],
- components: {
- DataPickerView
- },
- props: {
- options: {
- type: [Object, Array],
- default() {
- return {};
- }
- },
- popupTitle: {
- type: String,
- default: "请选择"
- },
- placeholder: {
- type: String,
- default: "请选择"
- },
- heightMobile: {
- type: String,
- default: ""
- },
- readonly: {
- type: Boolean,
- default: false
- },
- clearIcon: {
- type: Boolean,
- default: true
- },
- border: {
- type: Boolean,
- default: true
- },
- split: {
- type: String,
- default: "/"
- },
- ellipsis: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- isOpened: false,
- inputSelected: []
- };
- },
- created() {
- this.$nextTick(() => {
- this.load();
- });
- },
- watch: {
- localdata: {
- handler() {
- this.load();
- },
- deep: true
- }
- },
- methods: {
- clear() {
- this._dispatchEvent([]);
- },
- onPropsChange() {
- this._treeData = [];
- this.selectedIndex = 0;
- this.load();
- },
- load() {
- if (this.readonly) {
- this._processReadonly(this.localdata, this.dataValue);
- return;
- }
- if (this.isLocalData) {
- this.loadData();
- this.inputSelected = this.selected.slice(0);
- } else if (this.isCloudDataList || this.isCloudDataTree) {
- this.loading = true;
- this.getCloudDataValue().then((res) => {
- this.loading = false;
- this.inputSelected = res;
- }).catch((err) => {
- this.loading = false;
- this.errorMessage = err;
- });
- }
- },
- show() {
- this.isOpened = true;
- setTimeout(() => {
- this.$refs.pickerView.updateData({
- treeData: this._treeData,
- selected: this.selected,
- selectedIndex: this.selectedIndex
- });
- }, 200);
- this.$emit("popupopened");
- },
- hide() {
- this.isOpened = false;
- this.$emit("popupclosed");
- },
- handleInput() {
- if (this.readonly) {
- this.$emit("inputclick");
- return;
- }
- this.show();
- },
- handleClose(e2) {
- this.hide();
- },
- onnodeclick(e2) {
- this.$emit("nodeclick", e2);
- },
- ondatachange(e2) {
- this._treeData = this.$refs.pickerView._treeData;
- },
- onchange(e2) {
- this.hide();
- this.$nextTick(() => {
- this.inputSelected = e2;
- });
- this._dispatchEvent(e2);
- },
- _processReadonly(dataList, value) {
- var isTree = dataList.findIndex((item2) => {
- return item2.children;
- });
- if (isTree > -1) {
- let inputValue;
- if (Array.isArray(value)) {
- inputValue = value[value.length - 1];
- if (typeof inputValue === "object" && inputValue.value) {
- inputValue = inputValue.value;
- }
- } else {
- inputValue = value;
- }
- this.inputSelected = this._findNodePath(inputValue, this.localdata);
- return;
- }
- if (!this.hasValue) {
- this.inputSelected = [];
- return;
- }
- let result = [];
- for (let i2 = 0; i2 < value.length; i2++) {
- var val = value[i2];
- var item = dataList.find((v2) => {
- return v2.value == val;
- });
- if (item) {
- result.push(item);
- }
- }
- if (result.length) {
- this.inputSelected = result;
- }
- },
- _filterForArray(data, valueArray) {
- var result = [];
- for (let i2 = 0; i2 < valueArray.length; i2++) {
- var value = valueArray[i2];
- var found = data.find((item) => {
- return item.value == value;
- });
- if (found) {
- result.push(found);
- }
- }
- return result;
- },
- _dispatchEvent(selected) {
- let item = {};
- if (selected.length) {
- var value = new Array(selected.length);
- for (var i2 = 0; i2 < selected.length; i2++) {
- value[i2] = selected[i2].value;
- }
- item = selected[selected.length - 1];
- } else {
- item.value = "";
- }
- if (this.formItem) {
- this.formItem.setValue(item.value);
- }
- this.$emit("input", item.value);
- this.$emit("update:modelValue", item.value);
- this.$emit("change", {
- detail: {
- value: selected
- }
- });
- }
- }
- };
- function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$4);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_data_picker_view = vue.resolveComponent("data-picker-view");
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-data-tree" }, [
- vue.createElementVNode("view", {
- class: "uni-data-tree-input",
- onClick: _cache[1] || (_cache[1] = (...args) => $options.handleInput && $options.handleInput(...args))
- }, [
- vue.renderSlot(_ctx.$slots, "default", {
- options: $props.options,
- data: $data.inputSelected,
- error: _ctx.errorMessage
- }, () => [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["input-value", { "input-value-border": $props.border }])
- },
- [
- _ctx.errorMessage ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- class: "selected-area error-text"
- },
- vue.toDisplayString(_ctx.errorMessage),
- 1
- /* TEXT */
- )) : _ctx.loading && !$data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "selected-area"
- }, [
- vue.createVNode(_component_uni_load_more, {
- class: "load-more",
- contentText: _ctx.loadMore,
- status: "loading"
- }, null, 8, ["contentText"])
- ])) : $data.inputSelected.length ? (vue.openBlock(), vue.createElementBlock("scroll-view", {
- key: 2,
- class: "selected-area",
- "scroll-x": "true"
- }, [
- vue.createElementVNode("view", { class: "selected-list" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($data.inputSelected, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "selected-item",
- key: index
- }, [
- vue.createElementVNode(
- "text",
- { class: "text-color" },
- vue.toDisplayString(item.text),
- 1
- /* TEXT */
- ),
- index < $data.inputSelected.length - 1 ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- class: "input-split-line"
- },
- vue.toDisplayString($props.split),
- 1
- /* TEXT */
- )) : vue.createCommentVNode("v-if", true)
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ])) : (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 3,
- class: "selected-area placeholder"
- },
- vue.toDisplayString($props.placeholder),
- 1
- /* TEXT */
- )),
- $props.clearIcon && !$props.readonly && $data.inputSelected.length ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 4,
- class: "icon-clear",
- onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clear && $options.clear(...args), ["stop"]))
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "clear",
- color: "#c0c4cc",
- size: "24"
- })
- ])) : vue.createCommentVNode("v-if", true),
- (!$props.clearIcon || !$data.inputSelected.length) && !$props.readonly ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 5,
- class: "arrow-area"
- }, [
- vue.createElementVNode("view", { class: "input-arrow" })
- ])) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )
- ], true)
- ]),
- $data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "uni-data-tree-cover",
- onClick: _cache[2] || (_cache[2] = (...args) => $options.handleClose && $options.handleClose(...args))
- })) : vue.createCommentVNode("v-if", true),
- $data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "uni-data-tree-dialog"
- }, [
- vue.createElementVNode("view", { class: "uni-popper__arrow" }),
- vue.createElementVNode("view", { class: "dialog-caption" }, [
- vue.createElementVNode("view", { class: "title-area" }, [
- vue.createElementVNode(
- "text",
- { class: "dialog-title" },
- vue.toDisplayString($props.popupTitle),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", {
- class: "dialog-close",
- onClick: _cache[3] || (_cache[3] = (...args) => $options.handleClose && $options.handleClose(...args))
- }, [
- vue.createElementVNode("view", {
- class: "dialog-close-plus",
- "data-id": "close"
- }),
- vue.createElementVNode("view", {
- class: "dialog-close-plus dialog-close-rotate",
- "data-id": "close"
- })
- ])
- ]),
- vue.createVNode(_component_data_picker_view, {
- class: "picker-view",
- ref: "pickerView",
- modelValue: _ctx.dataValue,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.dataValue = $event),
- localdata: _ctx.localdata,
- preload: _ctx.preload,
- collection: _ctx.collection,
- field: _ctx.field,
- orderby: _ctx.orderby,
- where: _ctx.where,
- "step-searh": _ctx.stepSearh,
- "self-field": _ctx.selfField,
- "parent-field": _ctx.parentField,
- "managed-mode": true,
- map: _ctx.map,
- ellipsis: $props.ellipsis,
- onChange: $options.onchange,
- onDatachange: $options.ondatachange,
- onNodeclick: $options.onnodeclick
- }, null, 8, ["modelValue", "localdata", "preload", "collection", "field", "orderby", "where", "step-searh", "self-field", "parent-field", "map", "ellipsis", "onChange", "onDatachange", "onNodeclick"])
- ])) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const __easycom_3$1 = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g], ["__scopeId", "data-v-2653531e"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue"]]);
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const editBatchNum = vue.ref(false);
- const editPalletNum = vue.ref(false);
- const lotnoLogHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- orderNum: "",
- weight: "",
- batchNum: "",
- palletNum: ""
- });
- const rules = vue.reactive({
- orderNum: {
- rules: [
- {
- required: true,
- errorMessage: "单号不能为空"
- }
- ]
- }
- });
- const options = vue.reactive({
- batch: [],
- pallet: []
- });
- const onnodeclick = () => {
- };
- const onpopupopened = () => {
- };
- const onpopupclosed = () => {
- };
- const onchange = () => {
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.orderNum = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.orderNum = "";
- valiFormData.value.weight = "";
- };
- const submitBatchNum = () => {
- if (valiFormData.value.batchNum) {
- editBatchNum.value = true;
- } else {
- messageType.value = "error";
- messageText.value = "请选择批次号";
- messageRef.value.open();
- }
- };
- const batchNum = vue.computed(() => {
- const res = options.batch.find((item) => item.value === valiFormData.value.batchNum);
- return res == null ? void 0 : res.text;
- });
- const submitPalletNum = () => {
- if (valiFormData.value.palletNum) {
- editPalletNum.value = true;
- } else {
- messageType.value = "error";
- messageText.value = "请选择托盘号";
- messageRef.value.open();
- }
- };
- const palletNum = vue.computed(() => {
- function findTextByValue(arr, targetValue) {
- for (let item of arr) {
- if (item.value === targetValue) {
- return item.text;
- }
- if (item.children && item.children.length > 0) {
- const result = findTextByValue(item.children, targetValue);
- if (result) {
- return `${item.text}/${result}`;
- }
- }
- }
- return null;
- }
- const textPath = findTextByValue(options.pallet, valiFormData.value.palletNum);
- return textPath;
- });
- const checkOrder = () => {
- loading.value = true;
- uni.setStorageSync("waybills", []);
- uni.request({
- url: getWaybillsURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.value.orderNum,
- batch_number: valiFormData.value.batchNum,
- pallet_number: valiFormData.value.palletNum ? findPalletNumIdByValue(options.pallet, valiFormData.value.palletNum) : ""
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- uni.setStorageSync("waybills", res.data.data.waybills);
- uni.navigateTo({
- url: "/pages/scanLotno/waybillsList"
- });
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- }
- }
- });
- };
- const findPalletNumIdByValue = (data, targetValue) => {
- for (let i2 = 0; i2 < data.length; i2++) {
- const item = data[i2];
- if (item.id === targetValue || item.value === targetValue) {
- return [item.id];
- } else if (item.children && item.children.length > 0) {
- const childId = findPalletNumIdByValue(item.children, targetValue);
- if (childId !== null) {
- return childId;
- }
- }
- }
- return null;
- };
- const onsubmit = () => {
- st2 && clearTimeout(st2);
- loading.value = true;
- uni.request({
- url: bindShippingURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_no: valiFormData.value.orderNum,
- reweighting: valiFormData.value.weight,
- batch_number: valiFormData.value.batchNum,
- pallet_number: valiFormData.value.palletNum ? findPalletNumIdByValue(options.pallet, valiFormData.value.palletNum) : ""
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- if (res.data.data.labels && res.data.data.labels.length > 0) {
- formatAppLog("log", "at pages/scanLotno/index.vue:278", "有打印面单");
- }
- const historyItem = {
- orderNum: valiFormData.value.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- type: valiFormData.value.batchNum ? "绑定批次" : "绑定托盘",
- status: true
- };
- formatAppLog("log", "at pages/scanLotno/index.vue:290", "lotnoLogHistory--", lotnoLogHistory);
- lotnoLogHistory.value.unshift(historyItem);
- uni.setStorageSync("lotnoLogHistory", lotnoLogHistory.value);
- getHistory();
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- orderNum: valiFormData.value.orderNum,
- createTime: /* @__PURE__ */ new Date(),
- type: valiFormData.value.batchNum ? "绑定批次" : "绑定托盘",
- status: false
- };
- lotnoLogHistory.value.unshift(historyItem);
- uni.setStorageSync("lotnoLogHistory", lotnoLogHistory.value);
- getHistory();
- }
- st2 = setTimeout(() => {
- reset();
- setFocus();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- });
- };
- const getHistory = () => {
- lotnoLogHistory.value = uni.getStorageSync("lotnoLogHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/scanLotno/index.vue:321", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- hidePage.value = false;
- token.value = uni.getStorageSync("token");
- getBindParams();
- getHistory();
- });
- const setFocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const getBindParams = () => {
- uni.request({
- url: getBindParamsURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- let transformData = function(data) {
- return data.map((item) => {
- const { id, value, label, ...rest } = item;
- return {
- id: id || value,
- value,
- text: label,
- ...rest,
- children: item.children ? transformData(item.children) : []
- };
- });
- };
- options.batch = res.data.data.batch_number.map((item) => {
- return { text: item.name, value: item.id };
- });
- const shipping = transformData(res.data.data.shipping);
- options.pallet = shipping;
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/scanLotno/index.vue:411", "fail--", e2);
- }
- });
- };
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/scanLotno/lotnoLog"
- });
- }
- });
- const __returned__ = { token, loading, hidePage, focusType, editBatchNum, editPalletNum, lotnoLogHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, options, onnodeclick, onpopupopened, onpopupclosed, onchange, checkPermission, scanInput, reset, submitBatchNum, batchNum, submitPalletNum, palletNum, checkOrder, findPalletNumIdByValue, onsubmit, getHistory, keypress, setFocus, getBindParams };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$2);
- const _component_uni_data_picker = resolveEasycom(vue.resolveDynamicComponent("uni-data-picker"), __easycom_3$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "运单号码",
- required: "",
- name: "orderNum"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.orderNum,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "复称重量",
- name: "weight"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.weight,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.weight = $event),
- placeholder: "请输入复称重量",
- oninput: "value=value.replace(/[^\\d.]/g,'').replace(/^\\./g, '').replace(/\\.{2,}/g, '').replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.').match(/^\\d*(\\.?\\d{0,2})/g)[0] || null"
- }, {
- right: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "weight-right" }, "KG")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createCommentVNode(" <text class='weight-tip'>复称重量作用是确保句惠完整,防止工作人员计费称車后进行的其他操作引起的物品丢失问题</text> "),
- vue.createCommentVNode(' <uni-section title="绑定批托盘号" type="line" padding style="height: calc(100vh - 100px)"> '),
- vue.createVNode(_component_uni_forms_item, {
- label: "绑定批次号",
- name: "batchNum",
- class: "select-item"
- }, {
- default: vue.withCtx(() => [
- !$setup.editBatchNum ? (vue.openBlock(), vue.createBlock(_component_uni_data_select, {
- key: 0,
- modelValue: $setup.valiFormData.batchNum,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.batchNum = $event),
- placeholder: "请选择批次号",
- localdata: $setup.options.batch,
- clear: false
- }, null, 8, ["modelValue", "localdata"])) : vue.createCommentVNode("v-if", true),
- $setup.editBatchNum ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, {
- key: 1,
- value: $setup.batchNum,
- disabled: $setup.editBatchNum
- }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true),
- !$setup.editBatchNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 2,
- type: "primary",
- onClick: $setup.submitBatchNum
- }, "确认")) : vue.createCommentVNode("v-if", true),
- $setup.editBatchNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 3,
- type: "primary",
- onClick: _cache[3] || (_cache[3] = ($event) => $setup.editBatchNum = false)
- }, "修改")) : vue.createCommentVNode("v-if", true)
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createVNode(_component_uni_forms_item, {
- label: "绑定托盘号",
- name: "palletNum",
- class: "select-item"
- }, {
- default: vue.withCtx(() => [
- !$setup.editPalletNum ? (vue.openBlock(), vue.createBlock(_component_uni_data_picker, {
- key: 0,
- placeholder: "请选择托盘号",
- "popup-title": "绑定托盘号",
- localdata: $setup.options.pallet,
- modelValue: $setup.valiFormData.palletNum,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $setup.valiFormData.palletNum = $event),
- onChange: $setup.onchange,
- onNodeclick: $setup.onnodeclick,
- onPopupopened: $setup.onpopupopened,
- onPopupclosed: $setup.onpopupclosed
- }, null, 8, ["localdata", "modelValue"])) : vue.createCommentVNode("v-if", true),
- $setup.editPalletNum ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, {
- key: 1,
- value: $setup.palletNum,
- disabled: $setup.editPalletNum
- }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true),
- !$setup.editPalletNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 2,
- type: "primary",
- onClick: $setup.submitPalletNum
- }, "确认")) : vue.createCommentVNode("v-if", true),
- $setup.editPalletNum ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 3,
- type: "primary",
- onClick: _cache[5] || (_cache[5] = ($event) => $setup.editPalletNum = false)
- }, "修改")) : vue.createCommentVNode("v-if", true)
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createCommentVNode(" </uni-section> ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "default",
- onClick: $setup.checkOrder,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "search",
- size: "18"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 查看运单 ")
- ], 8, ["loading"]),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ]),
- $setup.lotnoLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.lotnoLogHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.type),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.orderNum),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesScanLotnoIndex = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f], ["__file", "E:/HBuilderProjects/yta/pages/scanLotno/index.vue"]]);
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
- __name: "lotnoLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const lotnoLogHistory = vue.ref([]);
- const getHistory = () => {
- lotnoLogHistory.value = uni.getStorageSync("lotnoLogHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { lotnoLogHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.lotnoLogHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.type),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.orderNum),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.lotnoLogHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesScanLotnoLotnoLog = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__scopeId", "data-v-d86d23fe"], ["__file", "E:/HBuilderProjects/yta/pages/scanLotno/lotnoLog.vue"]]);
- const _sfc_main$e = {
- name: "UniSection",
- emits: ["click"],
- props: {
- type: {
- type: String,
- default: ""
- },
- title: {
- type: String,
- required: true,
- default: ""
- },
- titleFontSize: {
- type: String,
- default: "14px"
- },
- titleColor: {
- type: String,
- default: "#333"
- },
- subTitle: {
- type: String,
- default: ""
- },
- subTitleFontSize: {
- type: String,
- default: "12px"
- },
- subTitleColor: {
- type: String,
- default: "#999"
- },
- padding: {
- type: [Boolean, String],
- default: false
- }
- },
- computed: {
- _padding() {
- if (typeof this.padding === "string") {
- return this.padding;
- }
- return this.padding ? "10px" : "";
- }
- },
- watch: {
- title(newVal) {
- if (uni.report && newVal !== "") {
- uni.report("title", newVal);
- }
- }
- },
- methods: {
- onClick() {
- this.$emit("click");
- }
- }
- };
- function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", { class: "uni-section" }, [
- vue.createElementVNode("view", {
- class: "uni-section-header",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- $props.type ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass(["uni-section-header__decoration", $props.type])
- },
- null,
- 2
- /* CLASS */
- )) : vue.renderSlot(_ctx.$slots, "decoration", { key: 1 }, void 0, true),
- vue.createElementVNode("view", { class: "uni-section-header__content" }, [
- vue.createElementVNode(
- "text",
- {
- style: vue.normalizeStyle({ "font-size": $props.titleFontSize, "color": $props.titleColor }),
- class: vue.normalizeClass(["uni-section__content-title", { "distraction": !$props.subTitle }])
- },
- vue.toDisplayString($props.title),
- 7
- /* TEXT, CLASS, STYLE */
- ),
- $props.subTitle ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- style: vue.normalizeStyle({ "font-size": $props.subTitleFontSize, "color": $props.subTitleColor }),
- class: "uni-section-header__content-sub"
- },
- vue.toDisplayString($props.subTitle),
- 5
- /* TEXT, STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("view", { class: "uni-section-header__slot-right" }, [
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
- ])
- ]),
- vue.createElementVNode(
- "view",
- {
- class: "uni-section-content",
- style: vue.normalizeStyle({ padding: $options._padding })
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 4
- /* STYLE */
- )
- ]);
- }
- const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d], ["__scopeId", "data-v-637fd36b"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-section/components/uni-section/uni-section.vue"]]);
- const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
- __name: "waybillsList",
- setup(__props, { expose: __expose }) {
- __expose();
- const waybills = vue.ref([]);
- const getHistory = () => {
- waybills.value = uni.getStorageSync("waybills");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { waybills, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_section = resolveEasycom(vue.resolveDynamicComponent("uni-section"), __easycom_0$1);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- vue.createVNode(_component_uni_section, {
- title: "数量: " + $setup.waybills.length
- }, null, 8, ["title"]),
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybills, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: { color: "#666" }
- },
- vue.toDisplayString(item.order_box_no),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- { class: "type" },
- "重量: " + vue.toDisplayString(item.weight) + "KG",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("view", { class: "sub-items" }, [
- vue.createElementVNode("view", { class: "sub-item" }, [
- vue.createElementVNode("text", { class: "type" }, "批次/船航/托盘"),
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.batch_shipping_pallet),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", { class: "sub-item" }, [
- vue.createElementVNode("text", { class: "type" }, "末公里运单号"),
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.tracking_number || "无"),
- 1
- /* TEXT */
- )
- ])
- ])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.waybills.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无运单")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesScanLotnoWaybillsList = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__scopeId", "data-v-ef3fda20"], ["__file", "E:/HBuilderProjects/yta/pages/scanLotno/waybillsList.vue"]]);
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const warehouseLogHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- order_code: ""
- });
- const rules = vue.reactive({
- order_code: {
- rules: [
- {
- required: true,
- errorMessage: "单据编号不能为空"
- }
- ]
- }
- });
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.order_code = res.result;
- onsubmit();
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.order_code = "";
- };
- const setfocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const onsubmit = () => {
- st2 && clearTimeout(st2);
- loading.value = true;
- uni.request({
- url: warehouseScanURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- order_code: valiFormData.value.order_code
- },
- success: (res) => {
- loading.value = false;
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type: "单据扫描",
- status: true
- };
- warehouseLogHistory.value.unshift(historyItem);
- uni.setStorageSync("warehouseLogHistory", warehouseLogHistory.value);
- getHistory();
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type: "单据扫描",
- status: false
- };
- warehouseLogHistory.value.unshift(historyItem);
- uni.setStorageSync("warehouseLogHistory", warehouseLogHistory.value);
- getHistory();
- }
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- });
- };
- const getHistory = () => {
- warehouseLogHistory.value = uni.getStorageSync("warehouseLogHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/warehouseScan/index.vue:179", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- token.value = uni.getStorageSync("token");
- hidePage.value = false;
- getHistory();
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/warehouseScan/warehouseLog"
- });
- }
- });
- const __returned__ = { token, loading, hidePage, focusType, warehouseLogHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, checkPermission, scanInput, reset, setfocus, onsubmit, getHistory, keypress };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单据编号",
- required: "",
- name: "order_code"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.order_code,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.order_code = $event),
- placeholder: "请输入单据编号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput,
- onBlur: $setup.setfocus,
- onConfirm: $setup.onsubmit
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ]),
- $setup.warehouseLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.warehouseLogHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.order_code),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWarehouseScanIndex = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-c64ca80c"], ["__file", "E:/HBuilderProjects/yta/pages/warehouseScan/index.vue"]]);
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
- __name: "warehouseLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const warehouseLogHistory = vue.ref([]);
- const getHistory = () => {
- warehouseLogHistory.value = uni.getStorageSync("warehouseLogHistory");
- };
- onLoad(() => {
- getHistory();
- });
- const __returned__ = { warehouseLogHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.warehouseLogHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- { class: "type" },
- vue.toDisplayString(item.type),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.order_code),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.warehouseLogHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesWarehouseScanWarehouseLog = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-dadaa086"], ["__file", "E:/HBuilderProjects/yta/pages/warehouseScan/warehouseLog.vue"]]);
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const editSpaceNo = vue.ref(false);
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const waybillNoHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- code: "",
- space_id: ""
- });
- const rules = vue.reactive({
- code: {
- rules: [
- {
- required: true,
- errorMessage: "单号不能为空"
- }
- ]
- }
- });
- const options = vue.reactive({
- space: []
- });
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.code = res.result;
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.code = "";
- };
- const submitSpace = () => {
- if (valiFormData.value.space_id) {
- editSpaceNo.value = true;
- setFocus();
- } else {
- messageType.value = "error";
- messageText.value = "请选择库位";
- messageRef.value.open();
- }
- };
- const space = vue.computed(() => {
- const res = options.space.find((item) => item.value === valiFormData.value.space_id);
- return res == null ? void 0 : res.text;
- });
- const findPalletNumIdByValue = (data, targetValue) => {
- for (let i2 = 0; i2 < data.length; i2++) {
- const item = data[i2];
- if (item.id === targetValue || item.value === targetValue) {
- return [item.id];
- } else if (item.children && item.children.length > 0) {
- const childId = findPalletNumIdByValue(item.children, targetValue);
- if (childId !== null) {
- return childId;
- }
- }
- }
- return null;
- };
- const onsubmit = () => {
- if (valiFormData.value.space_id && valiFormData.value.code) {
- st2 && clearTimeout(st2);
- loading.value = true;
- uni.request({
- url: addWaybillNoURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data: {
- code: valiFormData.value.code,
- space_id: valiFormData.value.space_id
- },
- success: (res) => {
- loading.value = false;
- const space2 = options.space.find((item) => item.value === valiFormData.value.space_id);
- if (res.data.code == 1) {
- messageType.value = "success";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- code: valiFormData.value.code,
- createTime: /* @__PURE__ */ new Date(),
- type: "运单号",
- space: space2.text,
- status: true
- };
- waybillNoHistory.value.unshift(historyItem);
- uni.setStorageSync("waybillNoHistory", waybillNoHistory.value);
- getHistory();
- } else {
- messageType.value = "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- code: valiFormData.value.code,
- createTime: /* @__PURE__ */ new Date(),
- type: "运单号",
- space: space2.text,
- status: false
- };
- waybillNoHistory.value.unshift(historyItem);
- uni.setStorageSync("waybillNoHistory", waybillNoHistory.value);
- getHistory();
- }
- st2 = setTimeout(() => {
- reset();
- setFocus();
- st2 && clearTimeout(st2);
- }, 1e3);
- }
- });
- } else {
- if (!valiFormData.value.space_id) {
- messageType.value = "error";
- messageText.value = "请选择库位";
- messageRef.value.open();
- }
- if (!valiFormData.value.code) {
- messageType.value = "error";
- messageText.value = "请填写运单号";
- messageRef.value.open();
- }
- }
- };
- const getHistory = () => {
- waybillNoHistory.value = uni.getStorageSync("waybillNoHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/waybillNo/index.vue:240", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- hidePage.value = false;
- token.value = uni.getStorageSync("token");
- getOptions();
- getHistory();
- });
- const getOptions = () => {
- uni.request({
- url: waybillNoOptions,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- formatAppLog("log", "at pages/waybillNo/index.vue:300", res);
- if (res.data.code === 1) {
- for (let key in res.data.data.space_id) {
- if (res.data.data.space_id.hasOwnProperty(key)) {
- options.space.push({ text: res.data.data.space_id[key], value: key });
- }
- }
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/waybillNo/index.vue:310", "fail--", e2);
- }
- });
- };
- const setFocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/waybillNo/waybillNoLog"
- });
- }
- });
- const __returned__ = { token, editSpaceNo, loading, hidePage, focusType, waybillNoHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, options, checkPermission, scanInput, reset, submitSpace, space, findPalletNumIdByValue, onsubmit, getHistory, keypress, getOptions, setFocus };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$2);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "space-select" }, [
- !$setup.editSpaceNo ? (vue.openBlock(), vue.createBlock(_component_uni_data_select, {
- key: 0,
- modelValue: $setup.valiFormData.space_id,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.space_id = $event),
- placeholder: "请选择库位",
- localdata: $setup.options.space,
- clear: false
- }, null, 8, ["modelValue", "localdata"])) : vue.createCommentVNode("v-if", true),
- $setup.editSpaceNo ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, {
- key: 1,
- value: $setup.space,
- disabled: $setup.editSpaceNo
- }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true),
- !$setup.editSpaceNo ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 2,
- type: "primary",
- onClick: $setup.submitSpace
- }, "确认")) : vue.createCommentVNode("v-if", true),
- $setup.editSpaceNo ? (vue.openBlock(), vue.createElementBlock("button", {
- key: 3,
- type: "primary",
- onClick: _cache[1] || (_cache[1] = ($event) => $setup.editSpaceNo = false)
- }, "修改")) : vue.createCommentVNode("v-if", true)
- ]),
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.code,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.code = $event),
- placeholder: "请输入运单号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput
- }, null, 8, ["modelValue", "focus"])
- ])
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 提交 ")
- ], 8, ["loading"])
- ]),
- $setup.waybillNoHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybillNoHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "库位"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.space),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "单号"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.code),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", { class: "space-time" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.createTime),
- 1
- /* TEXT */
- )
- ])
- ]),
- vue.createElementVNode("view", null, [
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F"))
- ])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWaybillNoIndex = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__file", "E:/HBuilderProjects/yta/pages/waybillNo/index.vue"]]);
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
- __name: "waybillNoLog",
- setup(__props, { expose: __expose }) {
- __expose();
- const waybillNoHistory = vue.ref([]);
- const getHistory = async () => {
- waybillNoHistory.value = await uni.getStorageSync("waybillNoHistory");
- };
- onLoad(async () => {
- await getHistory();
- });
- const __returned__ = { waybillNoHistory, getHistory };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybillNoHistory, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "库位"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.space),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "type" }, "单号"),
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.code),
- 5
- /* TEXT, STYLE */
- )
- ]),
- vue.createElementVNode("view", { class: "space-time" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.createTime),
- 1
- /* TEXT */
- )
- ])
- ]),
- vue.createElementVNode("view", null, [
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F"))
- ])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.waybillNoHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无历史")) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const PagesWaybillNoWaybillNoLog = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-2f55e896"], ["__file", "E:/HBuilderProjects/yta/pages/waybillNo/waybillNoLog.vue"]]);
- const _sfc_main$8 = {
- name: "UniDrawer",
- components: {},
- emits: ["change"],
- props: {
- /**
- * 显示模式(左、右),只在初始化生效
- */
- mode: {
- type: String,
- default: ""
- },
- /**
- * 蒙层显示状态
- */
- mask: {
- type: Boolean,
- default: true
- },
- /**
- * 遮罩是否可点击关闭
- */
- maskClick: {
- type: Boolean,
- default: true
- },
- /**
- * 抽屉宽度
- */
- width: {
- type: Number,
- default: 220
- }
- },
- data() {
- return {
- visibleSync: false,
- showDrawer: false,
- rightMode: false,
- watchTimer: null,
- drawerWidth: 220
- };
- },
- created() {
- this.drawerWidth = this.width;
- this.rightMode = this.mode === "right";
- },
- methods: {
- clear() {
- },
- close(type) {
- if (type === "mask" && !this.maskClick || !this.visibleSync)
- return;
- this._change("showDrawer", "visibleSync", false);
- },
- open() {
- if (this.visibleSync)
- return;
- this._change("visibleSync", "showDrawer", true);
- },
- _change(param1, param2, status) {
- this[param1] = status;
- if (this.watchTimer) {
- clearTimeout(this.watchTimer);
- }
- this.watchTimer = setTimeout(() => {
- this[param2] = status;
- this.$emit("change", status);
- }, status ? 50 : 300);
- }
- }
- };
- function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
- return $data.visibleSync ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass([{ "uni-drawer--visible": $data.showDrawer }, "uni-drawer"]),
- onTouchmove: _cache[1] || (_cache[1] = vue.withModifiers((...args) => $options.clear && $options.clear(...args), ["stop", "prevent"]))
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-drawer__mask", { "uni-drawer__mask--visible": $data.showDrawer && $props.mask }]),
- onClick: _cache[0] || (_cache[0] = ($event) => $options.close("mask"))
- },
- null,
- 2
- /* CLASS */
- ),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-drawer__content", { "uni-drawer--right": $data.rightMode, "uni-drawer--left": !$data.rightMode, "uni-drawer__content--visible": $data.showDrawer }]),
- style: vue.normalizeStyle({ width: $data.drawerWidth + "px" })
- },
- [
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 34
- /* CLASS, NEED_HYDRATION */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_3 = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-f7c32d22"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue"]]);
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const loading = vue.ref(false);
- const loadingBtn = vue.ref(false);
- const token = vue.ref();
- const searchValue = vue.ref();
- const waybillDelivery = vue.ref([]);
- const messageType = vue.ref();
- const messageText = vue.ref();
- const messageRef = vue.ref();
- const showRightRef = vue.ref();
- const resetForm = () => {
- };
- const confirmForm = () => {
- showRightRef.value.close();
- };
- const copyOrderNo = (order_no) => {
- uni.setClipboardData({
- data: order_no,
- success: function() {
- uni.showToast({
- title: "复制成功",
- icon: "success",
- duration: 2e3
- });
- },
- fail: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:85", "复制失败");
- }
- });
- };
- const callPhone = (phoneNumber) => {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:91", phoneNumber);
- uni.makePhoneCall({
- phoneNumber,
- success: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:96", "拨打电话成功!");
- },
- fail: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:99", "拨打电话失败!");
- }
- });
- };
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- },
- fail: (err) => {
- }
- });
- };
- const itemClick = (item) => {
- uni.setStorageSync("selectItem", item);
- uni.navigateTo({
- url: "/pages/waybillDeliveryOrder/orderInfo?id=" + item.id
- });
- };
- const onButtonClick = async (row, value) => {
- if (value === "send_out") {
- sendOut({ id: row.id });
- } else if (value === "delivered") {
- updateDelivered({ id: row.id });
- } else if (value === "refuse") {
- updateRefuse({ id: row.id });
- } else if (value === "create_track_pod") {
- createTrackPod({ id: row.id });
- } else if (value === "edit")
- ;
- else if (value === "generate_label")
- ;
- else if (value === "fedex_appointment_pick_up")
- ;
- else if (value === "print_get_back_label")
- ;
- else if (value === "fedex_cancel_pick_up") {
- cancelFedExPickUp({ id: row.id });
- }
- };
- const sendOut = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: sendOutURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "发出成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "发出失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const updateDelivered = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: deliveredURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "确认送达成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "确认送达失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const updateRefuse = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: refuseURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "已拒绝签收";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "修改失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const createTrackPod = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: createTrackPodURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "同步成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "同步失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const cancelFedExPickUp = (data) => {
- loadingBtn.value = true;
- uni.request({
- url: cancelFedExPickUpURL,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: ({ data: data2 }) => {
- loadingBtn.value = false;
- messageType.value = "success";
- messageText.value = "操作成功";
- messageRef.value.open();
- },
- fail: (err) => {
- loadingBtn.value = false;
- messageType.value = "error";
- messageText.value = "操作失败,请稍后重试";
- messageRef.value.open();
- }
- });
- };
- const getList = () => {
- loading.value = true;
- uni.request({
- url: pickupWaybillDeliveryOrderURL + "/index",
- method: "GET",
- header: {
- batoken: token.value
- },
- success: ({ data }) => {
- loading.value = false;
- formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:319", data);
- if (data.code == 1) {
- waybillDelivery.value = data.data.list;
- } else {
- messageType.value = "error";
- messageText.value = data.msg;
- messageRef.value.open();
- }
- },
- fail: (err) => {
- loading.value = false;
- }
- });
- };
- onLoad(() => {
- token.value = uni.getStorageSync("token");
- getList();
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- showRightRef.value.open();
- }
- });
- const __returned__ = { loading, loadingBtn, token, searchValue, waybillDelivery, messageType, messageText, messageRef, showRightRef, resetForm, confirmForm, copyOrderNo, callPhone, checkPermission, scanInput, itemClick, onButtonClick, sendOut, updateDelivered, updateRefuse, createTrackPod, cancelFedExPickUp, getList };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- const _imports_0 = "/static/copy.png";
- const _imports_1 = "/static/call.png";
- function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- const _component_uni_drawer = resolveEasycom(vue.resolveDynamicComponent("uni-drawer"), __easycom_3);
- return vue.openBlock(), vue.createElementBlock("view", { class: "list" }, [
- vue.createCommentVNode(' <uni-search-bar @confirm="search" :focus="true" v-model="searchValue" @blur="blur" @focus="focus" @input="input" @cancel="cancel" @clear="clear"></uni-search-bar> '),
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.searchValue,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.searchValue = $event),
- placeholder: "请输入单号",
- suffixIcon: "scan",
- onIconClick: $setup.scanInput
- }, null, 8, ["modelValue"]),
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.waybillDelivery, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2,
- onClick: ($event) => $setup.itemClick(item)
- }, [
- vue.createElementVNode("view", { class: "order-no" }, [
- vue.createElementVNode(
- "text",
- null,
- " 派送单号: " + vue.toDisplayString(item.order_no),
- 1
- /* TEXT */
- ),
- vue.createElementVNode("image", {
- onClick: ($event) => $setup.copyOrderNo(item.order_no),
- class: "icon",
- src: _imports_0,
- mode: "aspectFill"
- }, null, 8, ["onClick"])
- ]),
- vue.createElementVNode("view", { class: "address-info" }, [
- vue.createElementVNode("view", { class: "info" }, [
- vue.createElementVNode("view", { class: "user" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.address.first_name + " " + item.address.last_name) + " " + vue.toDisplayString("+" + item.address.mobile_code + " " + item.address.mobile),
- 1
- /* TEXT */
- ),
- vue.createElementVNode("image", {
- onClick: ($event) => $setup.callPhone(item.address.mobile_code + " " + item.address.mobile),
- class: "icon",
- src: _imports_1,
- mode: "aspectFill"
- }, null, 8, ["onClick"])
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("text", { class: "address" }, [
- vue.createElementVNode(
- "text",
- { class: "city" },
- vue.toDisplayString(item.address.city),
- 1
- /* TEXT */
- ),
- vue.createTextVNode(
- " " + vue.toDisplayString(item.address.zip_code),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("image", {
- onClick: ($event) => $setup.copyOrderNo(item.address.zip_code),
- class: "icon",
- src: _imports_0,
- mode: "aspectFill"
- }, null, 8, ["onClick"])
- ])
- ]),
- vue.createElementVNode("view", { class: "info" })
- ]),
- vue.createElementVNode("view"),
- vue.createElementVNode("view", { class: "operations" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(item.operations, (operation, i22) => {
- return vue.openBlock(), vue.createElementBlock("button", {
- key: i22,
- onClick: ($event) => $setup.onButtonClick(item, operation.value),
- type: "info",
- size: "mini"
- }, vue.toDisplayString(operation.text), 9, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- $setup.waybillDelivery.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "is-empty"
- }, "暂无派送单")) : vue.createCommentVNode("v-if", true),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_drawer,
- {
- ref: "showRightRef",
- mode: "right",
- "mask-click": true
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("scroll-view", {
- style: { "height": "100%" },
- "scroll-y": "true"
- }, [
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- onClick: $setup.resetForm,
- type: "info"
- }, "重置"),
- vue.createElementVNode("button", {
- onClick: $setup.confirmForm,
- type: "primary"
- }, "确认")
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWaybillDeliveryOrderIndex = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-e43ee4da"], ["__file", "E:/HBuilderProjects/yta/pages/waybillDeliveryOrder/index.vue"]]);
- const _sfc_main$6 = {
- name: "UniSegmentedControl",
- emits: ["clickItem"],
- props: {
- current: {
- type: Number,
- default: 0
- },
- values: {
- type: Array,
- default() {
- return [];
- }
- },
- activeColor: {
- type: String,
- default: "#2979FF"
- },
- inActiveColor: {
- type: String,
- default: "transparent"
- },
- styleType: {
- type: String,
- default: "button"
- }
- },
- data() {
- return {
- currentIndex: 0
- };
- },
- watch: {
- current(val) {
- if (val !== this.currentIndex) {
- this.currentIndex = val;
- }
- }
- },
- computed: {},
- created() {
- this.currentIndex = this.current;
- },
- methods: {
- _onClick(index) {
- if (this.currentIndex !== index) {
- this.currentIndex = index;
- this.$emit("clickItem", {
- currentIndex: index
- });
- }
- }
- }
- };
- function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass([[$props.styleType === "text" ? "segmented-control--text" : "segmented-control--button"], "segmented-control"]),
- style: vue.normalizeStyle({ borderColor: $props.styleType === "text" ? "" : $props.activeColor })
- },
- [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($props.values, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: vue.normalizeClass([[
- $props.styleType === "text" ? "" : "segmented-control__item--button",
- index === 0 && $props.styleType === "button" ? "segmented-control__item--button--first" : "",
- index === $props.values.length - 1 && $props.styleType === "button" ? "segmented-control__item--button--last" : ""
- ], "segmented-control__item"]),
- key: index,
- style: vue.normalizeStyle({ backgroundColor: index === $data.currentIndex && $props.styleType === "button" ? $props.activeColor : $props.styleType === "button" ? $props.inActiveColor : "transparent", borderColor: index === $data.currentIndex && $props.styleType === "text" || $props.styleType === "button" ? $props.activeColor : $props.inActiveColor }),
- onClick: ($event) => $options._onClick(index)
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode(
- "text",
- {
- style: vue.normalizeStyle({ color: index === $data.currentIndex ? $props.styleType === "text" ? $props.activeColor : "#fff" : $props.styleType === "text" ? "#000" : $props.activeColor }),
- class: vue.normalizeClass(["segmented-control__text", $props.styleType === "text" && index === $data.currentIndex ? "segmented-control__item--text" : ""])
- },
- vue.toDisplayString(item),
- 7
- /* TEXT, CLASS, STYLE */
- )
- ])
- ], 14, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-86aa1171"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue"]]);
- const _sfc_main$5 = {
- name: "UniTag",
- emits: ["click"],
- props: {
- type: {
- // 标签类型default、primary、success、warning、error、royal
- type: String,
- default: "default"
- },
- size: {
- // 标签大小 normal, small
- type: String,
- default: "normal"
- },
- // 标签内容
- text: {
- type: String,
- default: ""
- },
- disabled: {
- // 是否为禁用状态
- type: [Boolean, String],
- default: false
- },
- inverted: {
- // 是否为空心
- type: [Boolean, String],
- default: false
- },
- circle: {
- // 是否为圆角样式
- type: [Boolean, String],
- default: false
- },
- mark: {
- // 是否为标记样式
- type: [Boolean, String],
- default: false
- },
- customStyle: {
- type: String,
- default: ""
- }
- },
- computed: {
- classes() {
- const {
- type,
- disabled,
- inverted,
- circle,
- mark,
- size,
- isTrue
- } = this;
- const classArr = [
- "uni-tag--" + type,
- "uni-tag--" + size,
- isTrue(disabled) ? "uni-tag--disabled" : "",
- isTrue(inverted) ? "uni-tag--" + type + "--inverted" : "",
- isTrue(circle) ? "uni-tag--circle" : "",
- isTrue(mark) ? "uni-tag--mark" : "",
- // type === 'default' ? 'uni-tag--default' : 'uni-tag-text',
- isTrue(inverted) ? "uni-tag--inverted uni-tag-text--" + type : "",
- size === "small" ? "uni-tag-text--small" : ""
- ];
- return classArr.join(" ");
- }
- },
- methods: {
- isTrue(value) {
- return value === true || value === "true";
- },
- onClick() {
- if (this.isTrue(this.disabled))
- return;
- this.$emit("click");
- }
- }
- };
- function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
- return $props.text ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 0,
- class: vue.normalizeClass(["uni-tag", $options.classes]),
- style: vue.normalizeStyle($props.customStyle),
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- },
- vue.toDisplayString($props.text),
- 7
- /* TEXT, CLASS, STYLE */
- )) : vue.createCommentVNode("v-if", true);
- }
- const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-1f94d070"], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"]]);
- function pad(str, length = 2) {
- str += "";
- while (str.length < length) {
- str = "0" + str;
- }
- return str.slice(-length);
- }
- const parser = {
- yyyy: (dateObj) => {
- return pad(dateObj.year, 4);
- },
- yy: (dateObj) => {
- return pad(dateObj.year);
- },
- MM: (dateObj) => {
- return pad(dateObj.month);
- },
- M: (dateObj) => {
- return dateObj.month;
- },
- dd: (dateObj) => {
- return pad(dateObj.day);
- },
- d: (dateObj) => {
- return dateObj.day;
- },
- hh: (dateObj) => {
- return pad(dateObj.hour);
- },
- h: (dateObj) => {
- return dateObj.hour;
- },
- mm: (dateObj) => {
- return pad(dateObj.minute);
- },
- m: (dateObj) => {
- return dateObj.minute;
- },
- ss: (dateObj) => {
- return pad(dateObj.second);
- },
- s: (dateObj) => {
- return dateObj.second;
- },
- SSS: (dateObj) => {
- return pad(dateObj.millisecond, 3);
- },
- S: (dateObj) => {
- return dateObj.millisecond;
- }
- };
- function getDate(time) {
- if (time instanceof Date) {
- return time;
- }
- switch (typeof time) {
- case "string": {
- if (time.indexOf("T") > -1) {
- return new Date(time);
- }
- return new Date(time.replace(/-/g, "/"));
- }
- default:
- return new Date(time);
- }
- }
- function formatDate(date, format = "yyyy/MM/dd hh:mm:ss") {
- if (!date && date !== 0) {
- return "";
- }
- date = getDate(date);
- const dateObj = {
- year: date.getFullYear(),
- month: date.getMonth() + 1,
- day: date.getDate(),
- hour: date.getHours(),
- minute: date.getMinutes(),
- second: date.getSeconds(),
- millisecond: date.getMilliseconds()
- };
- const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/;
- let flag = true;
- let result = format;
- while (flag) {
- flag = false;
- result = result.replace(tokenRegExp, function(matched) {
- flag = true;
- return parser[matched](dateObj);
- });
- }
- return result;
- }
- function friendlyDate(time, {
- locale = "zh",
- threshold = [6e4, 36e5],
- format = "yyyy/MM/dd hh:mm:ss"
- }) {
- if (time === "-") {
- return time;
- }
- if (!time && time !== 0) {
- return "";
- }
- const localeText = {
- zh: {
- year: "年",
- month: "月",
- day: "天",
- hour: "小时",
- minute: "分钟",
- second: "秒",
- ago: "前",
- later: "后",
- justNow: "刚刚",
- soon: "马上",
- template: "{num}{unit}{suffix}"
- },
- en: {
- year: "year",
- month: "month",
- day: "day",
- hour: "hour",
- minute: "minute",
- second: "second",
- ago: "ago",
- later: "later",
- justNow: "just now",
- soon: "soon",
- template: "{num} {unit} {suffix}"
- }
- };
- const text = localeText[locale] || localeText.zh;
- let date = getDate(time);
- let ms2 = date.getTime() - Date.now();
- let absMs = Math.abs(ms2);
- if (absMs < threshold[0]) {
- return ms2 < 0 ? text.justNow : text.soon;
- }
- if (absMs >= threshold[1]) {
- return formatDate(date, format);
- }
- let num;
- let unit;
- let suffix = text.later;
- if (ms2 < 0) {
- suffix = text.ago;
- ms2 = -ms2;
- }
- const seconds = Math.floor(ms2 / 1e3);
- const minutes = Math.floor(seconds / 60);
- const hours = Math.floor(minutes / 60);
- const days = Math.floor(hours / 24);
- const months = Math.floor(days / 30);
- const years = Math.floor(months / 12);
- switch (true) {
- case years > 0:
- num = years;
- unit = text.year;
- break;
- case months > 0:
- num = months;
- unit = text.month;
- break;
- case days > 0:
- num = days;
- unit = text.day;
- break;
- case hours > 0:
- num = hours;
- unit = text.hour;
- break;
- case minutes > 0:
- num = minutes;
- unit = text.minute;
- break;
- default:
- num = seconds;
- unit = text.second;
- break;
- }
- if (locale === "en") {
- if (num === 1) {
- num = "a";
- } else {
- unit += "s";
- }
- }
- return text.template.replace(/{\s*num\s*}/g, num + "").replace(/{\s*unit\s*}/g, unit).replace(
- /{\s*suffix\s*}/g,
- suffix
- );
- }
- const _sfc_main$4 = {
- name: "uniDateformat",
- props: {
- date: {
- type: [Object, String, Number],
- default() {
- return "-";
- }
- },
- locale: {
- type: String,
- default: "zh"
- },
- threshold: {
- type: Array,
- default() {
- return [0, 0];
- }
- },
- format: {
- type: String,
- default: "yyyy/MM/dd hh:mm:ss"
- },
- // refreshRate使用不当可能导致性能问题,谨慎使用
- refreshRate: {
- type: [Number, String],
- default: 0
- }
- },
- data() {
- return {
- refreshMark: 0
- };
- },
- computed: {
- dateShow() {
- this.refreshMark;
- return friendlyDate(this.date, {
- locale: this.locale,
- threshold: this.threshold,
- format: this.format
- });
- }
- },
- watch: {
- refreshRate: {
- handler() {
- this.setAutoRefresh();
- },
- immediate: true
- }
- },
- methods: {
- refresh() {
- this.refreshMark++;
- },
- setAutoRefresh() {
- clearInterval(this.refreshInterval);
- if (this.refreshRate) {
- this.refreshInterval = setInterval(() => {
- this.refresh();
- }, parseInt(this.refreshRate));
- }
- }
- }
- };
- function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock(
- "text",
- null,
- vue.toDisplayString($options.dateShow),
- 1
- /* TEXT */
- );
- }
- const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "E:/HBuilderProjects/yta/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"]]);
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
- __name: "orderInfo",
- setup(__props, { expose: __expose }) {
- __expose();
- const current = vue.ref(0);
- const items = vue.ref(["基本信息", "运单详情"]);
- const loading = vue.ref(false);
- const token = vue.ref();
- const waybillDelivery = vue.ref([]);
- const messageType = vue.ref();
- const messageText = vue.ref();
- const messageRef = vue.ref();
- const item = vue.ref();
- const deliveryOrderOptions = vue.ref({});
- const delivery_type = vue.ref({
- "1": "英途派送",
- "2": "第三方物流"
- });
- onLoad((query) => {
- token.value = uni.getStorageSync("token");
- item.value = uni.getStorageSync("selectItem");
- deliveryOrderOptions.value = uni.getStorageSync("deliveryOrderOptions");
- formatAppLog("log", "at pages/waybillDeliveryOrder/orderInfo.vue:128", item.value);
- });
- const onClickItem = (e2) => {
- if (current.value != e2.currentIndex) {
- current.value = e2.currentIndex;
- }
- };
- const copyString = (str) => {
- uni.setClipboardData({
- data: str,
- success: function() {
- uni.showToast({
- title: "复制成功",
- icon: "success",
- duration: 2e3
- });
- },
- fail: function() {
- formatAppLog("log", "at pages/waybillDeliveryOrder/orderInfo.vue:149", "复制失败");
- }
- });
- };
- const __returned__ = { current, items, loading, token, waybillDelivery, messageType, messageText, messageRef, item, deliveryOrderOptions, delivery_type, onClickItem, copyString };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_segmented_control = resolveEasycom(vue.resolveDynamicComponent("uni-segmented-control"), __easycom_0);
- const _component_uni_tag = resolveEasycom(vue.resolveDynamicComponent("uni-tag"), __easycom_1);
- const _component_uni_dateformat = resolveEasycom(vue.resolveDynamicComponent("uni-dateformat"), __easycom_2);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "info" }, [
- vue.createVNode(_component_uni_segmented_control, {
- current: $setup.current,
- values: $setup.items,
- onClickItem: $setup.onClickItem,
- styleType: "text",
- activeColor: "#007aff"
- }, null, 8, ["current", "values"]),
- vue.createElementVNode("view", { class: "content" }, [
- vue.withDirectives(vue.createElementVNode(
- "view",
- null,
- [
- vue.createElementVNode("view", { class: "order-no" }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode(
- "text",
- null,
- "派送单号: " + vue.toDisplayString($setup.item.order_no),
- 1
- /* TEXT */
- ),
- vue.createElementVNode("image", {
- onClick: _cache[0] || (_cache[0] = ($event) => $setup.copyString($setup.item.order_no)),
- class: "icon",
- src: _imports_0,
- mode: "aspectFill"
- })
- ]),
- vue.createVNode(_component_uni_tag, {
- text: $setup.item.status_text,
- type: "primary",
- circle: ""
- }, null, 8, ["text"])
- ]),
- vue.createElementVNode("view", { class: "box-card" }, [
- vue.createElementVNode("view", { class: "label-icon" }, [
- vue.createElementVNode("text", { class: "label-title" }, "地址信息")
- ]),
- vue.createElementVNode("view", { class: "label-content" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString($setup.item.address.first_name + " " + $setup.item.address.last_name),
- 1
- /* TEXT */
- ),
- $setup.item.address.mobile ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, [
- vue.createTextVNode(
- " +" + vue.toDisplayString($setup.item.address.mobile_code + " " + $setup.item.address.mobile) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- $setup.item.address.email ? (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.email) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.address_line_1) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- $setup.item.address.address_line_2 ? (vue.openBlock(), vue.createElementBlock("text", { key: 2 }, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.address_line_2) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- $setup.item.address.address_line_3 ? (vue.openBlock(), vue.createElementBlock("text", { key: 3 }, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.address_line_3) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.city + " " + $setup.item.address.district) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.province) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- vue.toDisplayString($setup.item.address.zip_code) + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])
- ])
- ]),
- vue.createElementVNode("view", { class: "box-card" }, [
- vue.createElementVNode("text", null, [
- vue.createTextVNode("客户派送日期: "),
- $setup.item.delivery_date ? (vue.openBlock(), vue.createBlock(_component_uni_dateformat, {
- key: 0,
- date: $setup.item.delivery_date,
- format: "yyyy-MM-dd"
- }, null, 8, ["date"])) : (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, "无")),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode(
- "text",
- null,
- "备注: " + vue.toDisplayString($setup.item.remark || "无"),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode("view", { class: "box-card" }, [
- vue.createElementVNode("view", { class: "label-icon" }, [
- vue.createElementVNode("text", { class: "label-title" }, "物流信息")
- ]),
- vue.createElementVNode("view", { class: "label-content" }, [
- vue.createElementVNode("text", null, [
- vue.createTextVNode("派送渠道类型: "),
- vue.createVNode(_component_uni_tag, {
- text: $setup.delivery_type[$setup.item.delivery_type],
- type: "primary"
- }, null, 8, ["text"]),
- vue.createElementVNode("br")
- ]),
- Number($setup.item.delivery_type) === 1 ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, [
- vue.createTextVNode(
- "司机: " + vue.toDisplayString($setup.deliveryOrderOptions["driver_id"][$setup.item.driver_id] || "无") + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- Number($setup.item.delivery_type) === 2 ? (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, [
- vue.createTextVNode("快递公司: "),
- vue.createVNode(_component_uni_tag, {
- text: $setup.item.express.name || "无",
- type: "success",
- size: "small",
- circle: ""
- }, null, 8, ["text"]),
- vue.createElementVNode("br")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("text", null, [
- vue.createTextVNode(
- "物流单号: " + vue.toDisplayString($setup.item.express_no || "无") + " ",
- 1
- /* TEXT */
- ),
- vue.createElementVNode("br")
- ]),
- vue.createElementVNode(
- "text",
- null,
- "追踪单号: " + vue.toDisplayString($setup.item.express_tracking_number || "无"),
- 1
- /* TEXT */
- )
- ])
- ])
- ],
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, $setup.current === 0]
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- null,
- " 选项卡2的内容 ",
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, $setup.current === 1]
- ])
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesWaybillDeliveryOrderOrderInfo = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-a28459fe"], ["__file", "E:/HBuilderProjects/yta/pages/waybillDeliveryOrder/orderInfo.vue"]]);
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
- __name: "index",
- setup(__props, { expose: __expose }) {
- __expose();
- const token = vue.ref();
- const loading = vue.ref(false);
- const hidePage = vue.ref(false);
- const focusType = vue.ref(true);
- const selectType = vue.ref(1);
- const printType = vue.ref([
- {
- text: "打印尾程面单",
- value: 1
- },
- {
- text: "打印客户联(详细)",
- value: 2
- },
- {
- text: "打印客户联(简单)",
- value: 3
- }
- ]);
- const printerDialog = vue.ref();
- const subLoading = vue.ref(false);
- const printerList = vue.ref([]);
- const printers = vue.ref([]);
- const downloadFile = vue.ref([]);
- const sendToPeinter = vue.ref([1]);
- const selectPrinter = vue.ref(0);
- const printLogHistory = vue.ref([]);
- const messageRef = vue.ref();
- const messageType = vue.ref();
- const messageText = vue.ref();
- let st2;
- const valiFormData = vue.ref({
- order_code: ""
- });
- const rules = vue.reactive({
- order_code: {
- rules: [
- {
- required: true,
- errorMessage: "单据编号不能为空"
- }
- ]
- }
- });
- const checkPermission = async () => {
- let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA");
- if (status === null || status === 1) {
- status = 1;
- } else {
- uni.showModal({
- content: "Camera permission required",
- confirmText: "Setting",
- success: function(res) {
- if (res.confirm) {
- permission.gotoAppSetting();
- }
- }
- });
- }
- return status;
- };
- const scanInput = async () => {
- let status = await checkPermission();
- if (status !== 1) {
- return;
- }
- uni.scanCode({
- success: (res) => {
- valiFormData.value.order_code = res.result;
- onsubmit();
- },
- fail: (err) => {
- }
- });
- };
- const reset = () => {
- loading.value = false;
- valiFormData.value.order_code = "";
- };
- const setfocus = () => {
- if (hidePage.value) {
- return;
- }
- focusType.value = false;
- vue.nextTick(() => {
- focusType.value = true;
- });
- };
- const close = () => {
- printerDialog.value.close();
- st2 = setTimeout(() => {
- reset();
- st2 && clearTimeout(st2);
- }, 700);
- };
- const sendToPeinterFun = (res) => {
- if (res.detail.value.length === 0) {
- selectPrinter.value = 0;
- } else {
- selectPrinter.value = printers.value[0].value;
- }
- };
- const printConfirm = () => {
- subLoading.value = true;
- const url = selectType.value === 1 ? printWaybillLabelURL : printCustomerLabelURL;
- let data = {
- order_no: valiFormData.value.order_code,
- printer_code: selectPrinter.value
- };
- let type = "尾程面单打印";
- if (selectType.value === 2) {
- data.style = "detail";
- type = "打印客户联(详细)";
- }
- if (selectType.value === 3) {
- data.style = "simple";
- type = "打印客户联(简单)";
- }
- uni.request({
- url,
- method: "POST",
- header: {
- batoken: token.value
- },
- data,
- success: (res) => {
- subLoading.value = false;
- formatAppLog("log", "at pages/printer/index.vue:233", "打印成功", res);
- messageType.value = res.data.code ? "success" : "error";
- messageText.value = res.data.msg;
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type,
- status: res.data.code
- };
- printLogHistory.value.unshift(historyItem);
- uni.setStorageSync("printLogHistory", printLogHistory.value);
- getHistory();
- close();
- },
- fail: (err) => {
- subLoading.value = false;
- formatAppLog("log", "at pages/printer/index.vue:251", "打印失败", err);
- messageType.value = "error";
- messageText.value = "打印失败";
- messageRef.value.open();
- const historyItem = {
- order_code: valiFormData.value.order_code,
- createTime: /* @__PURE__ */ new Date(),
- type,
- status: false
- };
- printLogHistory.value.unshift(historyItem);
- uni.setStorageSync("printLogHistory", printLogHistory.value);
- getHistory();
- close();
- }
- });
- };
- const getPrinterList = () => {
- uni.request({
- url: getPrinterListURL,
- method: "GET",
- header: {
- batoken: token.value
- },
- success: (res) => {
- if (res.data.code === 1) {
- printerList.value = res.data.data.printers;
- printers.value = Object.values(printerList.value).map((item) => {
- return {
- text: item.name,
- value: item.value
- };
- });
- }
- },
- fail(e2) {
- formatAppLog("log", "at pages/printer/index.vue:288", "fail--", e2);
- }
- });
- };
- const onsubmit = () => {
- if (valiFormData.value.order_code) {
- loading.value = true;
- st2 && clearTimeout(st2);
- selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0;
- printerDialog.value.open();
- loading.value = false;
- } else {
- messageType.value = "error";
- messageText.value = "请填写运单号";
- messageRef.value.open();
- }
- };
- const getHistory = () => {
- printLogHistory.value = uni.getStorageSync("printLogHistory") || [];
- };
- const keypress = (e2) => {
- formatAppLog("log", "at pages/printer/index.vue:311", e2, "按键码");
- if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104)
- ;
- if (e2.keyCode == 66) {
- onsubmit();
- }
- };
- onLoad(() => {
- plus.key.addEventListener("keyup", keypress);
- });
- onUnload(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onHide(() => {
- hidePage.value = true;
- plus.key.removeEventListener("keyup", keypress);
- });
- onBackPress(() => {
- plus.key.removeEventListener("keyup", keypress);
- });
- onShow(() => {
- token.value = uni.getStorageSync("token");
- hidePage.value = false;
- getHistory();
- getPrinterList();
- });
- onNavigationBarButtonTap((event) => {
- if (event.index === 0) {
- uni.navigateTo({
- url: "/pages/warehouseScan/warehouseLog"
- });
- }
- });
- const __returned__ = { token, loading, hidePage, focusType, selectType, printType, printerDialog, subLoading, printerList, printers, downloadFile, sendToPeinter, selectPrinter, printLogHistory, messageRef, messageType, messageText, get st() {
- return st2;
- }, set st(v2) {
- st2 = v2;
- }, valiFormData, rules, checkPermission, scanInput, reset, setfocus, close, sendToPeinterFun, printConfirm, getPrinterList, onsubmit, getHistory, keypress };
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
- return __returned__;
- }
- });
- function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$3);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1);
- const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1);
- const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2);
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4);
- const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6);
- return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
- vue.createElementVNode("view", { class: "checkbox" }, [
- vue.createVNode(_component_uni_data_checkbox, {
- modelValue: $setup.selectType,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.selectType = $event),
- localdata: $setup.printType
- }, null, 8, ["modelValue", "localdata"])
- ]),
- vue.createVNode(_component_uni_forms, {
- ref: "valiForm",
- "label-align": "right",
- "label-width": 80,
- rules: $setup.rules,
- modelValue: $setup.valiFormData
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_forms_item, {
- label: "单据编号",
- required: "",
- name: "order_code"
- }, {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_easyinput, {
- modelValue: $setup.valiFormData.order_code,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.order_code = $event),
- placeholder: "请输入单据编号",
- suffixIcon: "scan",
- focus: $setup.focusType,
- onIconClick: $setup.scanInput,
- onBlur: $setup.setfocus,
- onConfirm: $setup.onsubmit
- }, null, 8, ["modelValue", "focus"])
- ]),
- _: 1
- /* STABLE */
- })
- ]),
- _: 1
- /* STABLE */
- }, 8, ["rules", "modelValue"]),
- vue.createElementVNode("view", { class: "button-group" }, [
- vue.createElementVNode("button", {
- type: "info",
- onClick: $setup.reset
- }, "重置"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: $setup.onsubmit,
- loading: $setup.loading
- }, [
- !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- size: "18",
- color: "white"
- })) : vue.createCommentVNode("v-if", true),
- vue.createTextVNode(" 打印 ")
- ], 8, ["loading"])
- ]),
- $setup.printLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "history"
- }, [
- vue.createElementVNode("text", { class: "title" }, "记录(最近5条)")
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "history" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.printLogHistory.slice(0, 5), (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode(
- "text",
- {
- class: "code",
- style: vue.normalizeStyle({ color: item.status ? "green" : "#666" })
- },
- vue.toDisplayString(item.type) + " " + vue.toDisplayString(item.order_code),
- 5
- /* TEXT, STYLE */
- ),
- item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "checkmarkempty",
- class: "status",
- size: "16",
- color: "green"
- })) : (vue.openBlock(), vue.createElementBlock("text", {
- key: 1,
- class: "status fail"
- }, "F")),
- vue.createElementVNode(
- "text",
- { style: { "margin-left": "10rpx", "font-weight": "300" } },
- vue.toDisplayString("\r\n" + item.createTime),
- 1
- /* TEXT */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "messageRef",
- type: "message"
- },
- {
- default: vue.withCtx(() => [
- vue.createVNode(_component_uni_popup_message, {
- type: $setup.messageType,
- message: $setup.messageText,
- duration: 2e3
- }, null, 8, ["type", "message"])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- ),
- vue.createVNode(
- _component_uni_popup,
- {
- ref: "printerDialog",
- type: "dialog",
- "is-mask-click": false
- },
- {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [
- vue.createElementVNode("view", {
- class: "",
- style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" }
- }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [
- vue.createElementVNode("text", null, "打印尾程面单")
- ]),
- vue.createElementVNode("view", null, [
- $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
- vue.createElementVNode("view", null, [
- vue.createVNode(_component_uni_data_checkbox, {
- multiple: "",
- modelValue: $setup.sendToPeinter,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.sendToPeinter = $event),
- localdata: [
- {
- text: "发送到标签打印机打印",
- value: 1
- }
- ],
- onChange: $setup.sendToPeinterFun
- }, {
- default: vue.withCtx(() => [
- vue.createTextVNode(" > ")
- ]),
- _: 1
- /* STABLE */
- }, 8, ["modelValue"]),
- vue.createVNode(_component_uni_data_checkbox, {
- disabled: $setup.sendToPeinter.length === 0,
- modelValue: $setup.selectPrinter,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.selectPrinter = $event),
- localdata: $setup.printers
- }, null, 8, ["disabled", "modelValue", "localdata"])
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ]),
- vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [
- vue.createElementVNode("button", {
- onClick: $setup.close,
- style: { "width": "35%" }
- }, "关闭"),
- vue.createElementVNode("button", {
- onClick: $setup.printConfirm,
- "hover-stay-time": 500,
- loading: $setup.subLoading,
- disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading,
- class: "my-bt-bg",
- style: { "width": "35%" }
- }, " 打印 ", 8, ["loading", "disabled"])
- ])
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- },
- 512
- /* NEED_PATCH */
- )
- ]);
- }
- const PagesPrinterIndex = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-b2c0c306"], ["__file", "E:/HBuilderProjects/yta/pages/printer/index.vue"]]);
- const modal = requireNativePlugin("modal");
- var AutoReplyPrintUniModule = requireNativePlugin("AutoReplyPrintUniModule");
- var hPrinter = 0;
- var isEnumeratingBT2 = false;
- var isEnumeratingNET = false;
- var selectedPortType = "rbBT2";
- const _sfc_main$1 = {
- data() {
- return {
- udsBT2Value: 0,
- udsBT2Range: [],
- udsNETValue: 0,
- udsNETRange: [],
- udsUSBValue: 0,
- udsUSBRange: [],
- udsCOMValue: 0,
- udsCOMRange: [],
- udsCOMBaudrateValue: 9600,
- udsCOMBaudrateRange: [
- {
- text: "9600",
- value: 9600
- },
- {
- text: "19200",
- value: 19200
- },
- {
- text: "38400",
- value: 38400
- },
- {
- text: "57600",
- value: 57600
- },
- {
- text: "115200",
- value: 115200
- },
- {
- text: "230400",
- value: 230400
- },
- {
- text: "256000",
- value: 256e3
- },
- {
- text: "500000",
- value: 5e5
- }
- ],
- udsCOMFlowControlValue: 0,
- udsCOMFlowControlRange: [
- {
- text: "NoFlowControl",
- value: 0
- },
- {
- text: "Hardware",
- value: 2
- }
- ],
- btnOpenPortDisabled: false,
- btnClosePortDisabled: true
- };
- },
- onLoad() {
- uni.setNavigationBarTitle({
- title: "SampleLabel " + AutoReplyPrintUniModule.CP_Library_Version()
- });
- },
- onReady() {
- },
- methods: {
- radioChange: function(evt) {
- selectedPortType = evt.detail.value;
- },
- enumPort() {
- var newComRange = new Array();
- var comNameList = AutoReplyPrintUniModule.CP_Port_EnumCom();
- if (comNameList != null) {
- for (var i2 = 0; i2 < comNameList.length; i2++) {
- var tmp = {
- text: comNameList[i2],
- value: i2
- };
- formatAppLog("log", "at pages/printer/label.vue:173", tmp);
- newComRange.push(tmp);
- }
- }
- this.udsCOMRange = newComRange;
- var newUsbRange = new Array();
- var usbNameList = AutoReplyPrintUniModule.CP_Port_EnumUsb();
- if (usbNameList != null) {
- for (var i2 = 0; i2 < usbNameList.length; i2++) {
- var tmp = {
- text: usbNameList[i2],
- value: i2
- };
- formatAppLog("log", "at pages/printer/label.vue:187", tmp);
- newUsbRange.push(tmp);
- }
- }
- this.udsUSBRange = newUsbRange;
- if (!isEnumeratingBT2) {
- isEnumeratingBT2 = true;
- formatAppLog("log", "at pages/printer/label.vue:195", "isEnumeratingBT2");
- AutoReplyPrintUniModule.CP_Port_EnumBtDevice(
- 12e3,
- (ret) => {
- var text = ret.device_address + "(" + ret.device_name + ")";
- for (var i3 = 0; i3 < this.udsBT2Range.length; i3++) {
- if (this.udsBT2Range[i3].text == text) {
- return;
- }
- }
- var tmp2 = {
- text,
- value: this.udsBT2Range.length
- };
- formatAppLog("log", "at pages/printer/label.vue:210", tmp2);
- this.udsBT2Range.push(tmp2);
- },
- (ret) => {
- isEnumeratingBT2 = false;
- formatAppLog("log", "at pages/printer/label.vue:215", "finishedEnumeratingBT2");
- }
- );
- }
- if (!isEnumeratingNET) {
- isEnumeratingNET = true;
- formatAppLog("log", "at pages/printer/label.vue:222", "isEnumeratingNET");
- AutoReplyPrintUniModule.CP_Port_EnumNetPrinter(
- 12e3,
- (ret) => {
- var text = ret.discovered_ip + "(" + ret.discovered_name + ")";
- for (var i3 = 0; i3 < this.udsNETRange.length; i3++) {
- if (this.udsNETRange[i3].text == text) {
- return;
- }
- }
- var tmp2 = {
- text,
- value: this.udsNETRange.length
- };
- formatAppLog("log", "at pages/printer/label.vue:237", tmp2);
- this.udsNETRange.push(tmp2);
- },
- (ret) => {
- isEnumeratingNET = false;
- formatAppLog("log", "at pages/printer/label.vue:242", "finishedEnumeratingNET");
- }
- );
- }
- },
- openPort() {
- if (hPrinter == 0) {
- if (selectedPortType == "rbBT2") {
- var text = this.udsBT2Range[this.udsBT2Value].text;
- var btAddress = text.substring(0, text.indexOf("("));
- modal.toast({
- message: "Connecting: " + btAddress + " ......",
- duration: 1.5
- });
- formatAppLog("log", "at pages/printer/label.vue:257", "Connecting: " + btAddress + " ......");
- hPrinter = AutoReplyPrintUniModule.CP_Port_OpenBtSpp(btAddress, 1);
- formatAppLog("log", "at pages/printer/label.vue:259", "hPrinter: " + hPrinter);
- } else if (selectedPortType == "rbNET") {
- var text = this.udsNETRange[this.udsNETValue].text;
- var ipAddress = text.substring(0, text.indexOf("("));
- modal.toast({
- message: "Connecting: " + ipAddress + " ......",
- duration: 1.5
- });
- formatAppLog("log", "at pages/printer/label.vue:267", "Connecting: " + ipAddress + " ......");
- hPrinter = AutoReplyPrintUniModule.CP_Port_OpenTcp(null, ipAddress, 9100, 5e3, 1);
- formatAppLog("log", "at pages/printer/label.vue:269", "hPrinter: " + hPrinter);
- } else if (selectedPortType == "rbUSB") {
- var usbName = this.udsUSBRange[this.udsUSBValue].text;
- modal.toast({
- message: "Connecting: " + usbName + " ......",
- duration: 1.5
- });
- formatAppLog("log", "at pages/printer/label.vue:276", "Connecting: " + usbName + " ......");
- hPrinter = AutoReplyPrintUniModule.CP_Port_OpenUsb(usbName, 1);
- formatAppLog("log", "at pages/printer/label.vue:278", "hPrinter: " + hPrinter);
- } else if (selectedPortType == "rbCOM") {
- var comName = this.udsCOMRange[this.udsCOMValue].text;
- var comBaudrate = this.udsCOMBaudrateValue;
- var comFlowControl = this.udsCOMFlowControlValue;
- modal.toast({
- message: "Connecting: " + comName + "," + comBaudrate + "," + comFlowControl + " ......",
- duration: 1.5
- });
- formatAppLog("log", "at pages/printer/label.vue:288", "Connecting: " + comName + "," + comBaudrate + "," + comFlowControl + "......");
- hPrinter = AutoReplyPrintUniModule.CP_Port_OpenCom(
- comName,
- comBaudrate,
- 8,
- 0,
- 0,
- comFlowControl,
- 1
- );
- formatAppLog("log", "at pages/printer/label.vue:291", "hPrinter: " + hPrinter);
- }
- modal.toast({
- message: hPrinter != 0 ? "Connected" : "Failed",
- duration: 1.5
- });
- }
- this.btnOpenPortDisabled = hPrinter != 0;
- this.btnClosePortDisabled = hPrinter == 0;
- },
- closePort() {
- if (hPrinter != 0) {
- AutoReplyPrintUniModule.CP_Port_Close(hPrinter);
- hPrinter = 0;
- }
- this.btnOpenPortDisabled = hPrinter != 0;
- this.btnClosePortDisabled = hPrinter == 0;
- },
- Test_Label_SampleTicket_58MM_1() {
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteMode(hPrinter);
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteEncoding(hPrinter, 1);
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 240, 0);
- AutoReplyPrintUniModule.CP_Label_DrawText(hPrinter, 10, 10, 24, 0, "型号:P58A+");
- AutoReplyPrintUniModule.CP_Label_DrawText(hPrinter, 10, 40, 24, 0, "MFG :00");
- AutoReplyPrintUniModule.CP_Label_DrawBarcode(hPrinter, 10, 70, 8, 2, 60, 2, 0, "No.123456");
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- var printResult = AutoReplyPrintUniModule.CP_Pos_QueryPrintResult(hPrinter, 1e4);
- modal.toast({
- message: printResult ? "Print Success" : "Print Failed",
- duration: 1.5
- });
- },
- Test_Label_SampleTicket_80MM_1() {
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteMode(hPrinter);
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteEncoding(hPrinter, 1);
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 576, 240, 0);
- AutoReplyPrintUniModule.CP_Label_DrawText(hPrinter, 10, 10, 24, 0, "型号:P80A+");
- AutoReplyPrintUniModule.CP_Label_DrawText(hPrinter, 10, 40, 24, 0, "MFG :00");
- AutoReplyPrintUniModule.CP_Label_DrawBarcode(hPrinter, 10, 70, 8, 2, 60, 4, 0, "No.123456");
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- var printResult = AutoReplyPrintUniModule.CP_Pos_QueryPrintResult(hPrinter, 1e4);
- modal.toast({
- message: printResult ? "Print Success" : "Print Failed",
- duration: 1.5
- });
- },
- GetPrinterResolutionInfo() {
- var ret = AutoReplyPrintUniModule.CP_Printer_GetPrinterResolutionInfo(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- GetPrinterFirmwareVersion() {
- var ret = AutoReplyPrintUniModule.CP_Printer_GetPrinterFirmwareVersion(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- GetPrinterStatusInfo() {
- var ret = AutoReplyPrintUniModule.CP_Printer_GetPrinterStatusInfo(hPrinter);
- var status_time = new Date(ret.timestamp_ms);
- var printer_error_status = ret.printer_error_status;
- var status_str = "";
- if (printer_error_status != 0) {
- status_str += "ERROR_OCCURED\n";
- if ((printer_error_status & 1) != 0) {
- status_str += "ERROR_CUTTER\n";
- }
- if ((printer_error_status & 2) != 0) {
- status_str += "ERROR_FLASH\n";
- }
- if ((printer_error_status & 4) != 0) {
- status_str += "ERROR_NOPAPER\n";
- }
- if ((printer_error_status & 8) != 0) {
- status_str += "ERROR_VOLTAGE\n";
- }
- if ((printer_error_status & 16) != 0) {
- status_str += "ERROR_MARKER\n";
- }
- if ((printer_error_status & 32) != 0) {
- status_str += "ERROR_ENGINE\n";
- }
- if ((printer_error_status & 64) != 0) {
- status_str += "ERROR_OVERHEAT\n";
- }
- if ((printer_error_status & 128) != 0) {
- status_str += "ERROR_COVERUP\n";
- }
- if ((printer_error_status & 256) != 0) {
- status_str += "ERROR_MOTOR\n";
- }
- } else {
- status_str += "Status OK\n";
- }
- modal.toast({
- message: "" + status_time + "\n" + status_str,
- duration: 1.5
- });
- },
- CP_Pos_KickOutDrawer() {
- var ret = AutoReplyPrintUniModule.CP_Pos_KickOutDrawer(hPrinter, 0, 100, 100);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_Beep() {
- var ret = AutoReplyPrintUniModule.CP_Pos_Beep(hPrinter, 3, 500);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_PrintSelfTestPage() {
- var ret = AutoReplyPrintUniModule.CP_Pos_PrintSelfTestPage(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_ResetPrinter() {
- var ret = AutoReplyPrintUniModule.CP_Pos_ResetPrinter(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_SetPrintSpeed_100() {
- var ret = AutoReplyPrintUniModule.CP_Pos_SetPrintSpeed(hPrinter, 100);
- AutoReplyPrintUniModule.CP_Pos_PrintSelfTestPage(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_SetPrintSpeed_150() {
- var ret = AutoReplyPrintUniModule.CP_Pos_SetPrintSpeed(hPrinter, 150);
- AutoReplyPrintUniModule.CP_Pos_PrintSelfTestPage(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_SetPrintDensity_7() {
- var ret = AutoReplyPrintUniModule.CP_Pos_SetPrintDensity(hPrinter, 7);
- AutoReplyPrintUniModule.CP_Pos_PrintSelfTestPage(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Pos_SetPrintDensity_15() {
- var ret = AutoReplyPrintUniModule.CP_Pos_SetPrintDensity(hPrinter, 15);
- AutoReplyPrintUniModule.CP_Pos_PrintSelfTestPage(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_EnableLabelMode() {
- var ret = AutoReplyPrintUniModule.CP_Label_EnableLabelMode(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DisableLabelMode() {
- var ret = AutoReplyPrintUniModule.CP_Label_DisableLabelMode(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_CalibrateLabel() {
- var ret = AutoReplyPrintUniModule.CP_Label_CalibrateLabel(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_FeedLabel() {
- var ret = AutoReplyPrintUniModule.CP_Label_FeedLabel(hPrinter);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_PageBegin() {
- var ret = AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_PagePrint() {
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawText() {
- var str = "$$$123哈哈哈";
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteMode(hPrinter);
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteEncoding(hPrinter, 1);
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawText(hPrinter, 10, 10, 24, 0, str);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawTextInUTF8() {
- var str = "$$$123哈哈哈";
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteMode(hPrinter);
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteEncoding(hPrinter, 1);
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawTextInUTF8(hPrinter, 10, 10, 24, 0, str);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawTextInGBK() {
- var str = "$$$123哈哈哈";
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteMode(hPrinter);
- AutoReplyPrintUniModule.CP_Pos_SetMultiByteEncoding(hPrinter, 0);
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawTextInGBK(hPrinter, 10, 10, 24, 0, str);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawBarcode() {
- var str = "01234567890";
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawBarcode(hPrinter, 10, 10, 0, 2, 60, 2, 0, str);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawQRCode() {
- var str = "Hello 你好";
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawQRCode(hPrinter, 10, 10, 0, 1, 8, 0, str);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawPDF417Code() {
- var str = "Hello 你好";
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawPDF417Code(hPrinter, 10, 10, 3, 3, 0, 3, 0, str);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawImageFromFile() {
- uni.chooseImage({
- count: 1,
- //默认9
- sizeType: ["original", "compressed"],
- //可以指定是原图还是压缩图,默认二者都有
- sourceType: ["album"],
- //从相册选择
- success: function(res) {
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawImageFromFile(
- hPrinter,
- 0,
- 0,
- 384,
- 0,
- res.tempFilePaths[0],
- 2,
- 0
- );
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- }
- });
- },
- CP_Label_DrawImageFromPixels() {
- var image_width = 100;
- var image_height = 100;
- var image_pixels_array = new Uint8Array(image_width * image_height * 4);
- for (let y2 = 0; y2 < image_height; ++y2) {
- for (let x = 0; x < image_width; ++x) {
- var offset = y2 * image_width * 4 + x * 4;
- if (x == y2) {
- image_pixels_array[offset] = 0;
- image_pixels_array[offset + 1] = 0;
- image_pixels_array[offset + 2] = 0;
- image_pixels_array[offset + 3] = 255;
- } else {
- image_pixels_array[offset] = 255;
- image_pixels_array[offset + 1] = 255;
- image_pixels_array[offset + 2] = 255;
- image_pixels_array[offset + 3] = 255;
- }
- }
- }
- var image_pixels_base64 = uni.arrayBufferToBase64(image_pixels_array);
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawImageFromPixels(
- hPrinter,
- 0,
- 0,
- image_pixels_base64,
- image_width,
- image_height,
- image_width * 4,
- 7,
- 2,
- 0
- );
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawLine() {
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawLine(hPrinter, 20, 20, 100, 300, 1, 1);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawRect() {
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawRect(hPrinter, 20, 20, 200, 10, 1);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- },
- CP_Label_DrawBox() {
- AutoReplyPrintUniModule.CP_Label_PageBegin(hPrinter, 0, 0, 384, 400, 0);
- AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 0, 0, 383, 399, 1, 1);
- var ret = AutoReplyPrintUniModule.CP_Label_DrawBox(hPrinter, 30, 30, 300, 200, 1, 1);
- AutoReplyPrintUniModule.CP_Label_PagePrint(hPrinter, 1);
- modal.toast({
- message: ret,
- duration: 1.5
- });
- }
- }
- };
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$2);
- return vue.openBlock(), vue.createElementBlock("view", null, [
- vue.createElementVNode(
- "radio-group",
- {
- onChange: _cache[6] || (_cache[6] = (...args) => $options.radioChange && $options.radioChange(...args))
- },
- [
- vue.createElementVNode("label", { class: "uni-list-cell uni-list-cell-pd" }, [
- vue.createElementVNode("label", { class: "radio" }, [
- vue.createElementVNode("radio", {
- value: "rbBT2",
- checked: "true"
- }),
- vue.createTextVNode("BT2.0 ")
- ]),
- vue.createVNode(_component_uni_data_select, {
- modelValue: $data.udsBT2Value,
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.udsBT2Value = $event),
- localdata: $data.udsBT2Range
- }, null, 8, ["modelValue", "localdata"])
- ]),
- vue.createElementVNode("label", { class: "uni-list-cell uni-list-cell-pd" }, [
- vue.createElementVNode("label", { class: "radio" }, [
- vue.createElementVNode("radio", { value: "rbNET" }),
- vue.createTextVNode("NET ")
- ]),
- vue.createVNode(_component_uni_data_select, {
- modelValue: $data.udsNETValue,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.udsNETValue = $event),
- localdata: $data.udsNETRange
- }, null, 8, ["modelValue", "localdata"])
- ]),
- vue.createElementVNode("label", { class: "uni-list-cell uni-list-cell-pd" }, [
- vue.createElementVNode("label", { class: "radio" }, [
- vue.createElementVNode("radio", { value: "rbUSB" }),
- vue.createTextVNode("USB ")
- ]),
- vue.createVNode(_component_uni_data_select, {
- modelValue: $data.udsUSBValue,
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.udsUSBValue = $event),
- localdata: $data.udsUSBRange
- }, null, 8, ["modelValue", "localdata"])
- ]),
- vue.createElementVNode("label", { class: "uni-list-cell uni-list-cell-pd" }, [
- vue.createElementVNode("label", { class: "radio" }, [
- vue.createElementVNode("radio", { value: "rbCOM" }),
- vue.createTextVNode("COM ")
- ]),
- vue.createVNode(_component_uni_data_select, {
- modelValue: $data.udsCOMValue,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.udsCOMValue = $event),
- localdata: $data.udsCOMRange
- }, null, 8, ["modelValue", "localdata"]),
- vue.createVNode(_component_uni_data_select, {
- modelValue: $data.udsCOMBaudrateValue,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $data.udsCOMBaudrateValue = $event),
- localdata: $data.udsCOMBaudrateRange
- }, null, 8, ["modelValue", "localdata"]),
- vue.createVNode(_component_uni_data_select, {
- modelValue: $data.udsCOMFlowControlValue,
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => $data.udsCOMFlowControlValue = $event),
- localdata: $data.udsCOMFlowControlRange
- }, null, 8, ["modelValue", "localdata"])
- ])
- ],
- 32
- /* NEED_HYDRATION */
- ),
- vue.createElementVNode("view", { class: "uni-flex uni-row" }, [
- vue.createElementVNode("button", {
- type: "default",
- onClick: _cache[7] || (_cache[7] = (...args) => $options.enumPort && $options.enumPort(...args))
- }, "Enum Port"),
- vue.createElementVNode("button", {
- type: "default",
- onClick: _cache[8] || (_cache[8] = (...args) => $options.openPort && $options.openPort(...args)),
- disabled: $data.btnOpenPortDisabled
- }, "Open Port", 8, ["disabled"]),
- vue.createElementVNode("button", {
- type: "default",
- onClick: _cache[9] || (_cache[9] = (...args) => $options.closePort && $options.closePort(...args)),
- disabled: $data.btnClosePortDisabled
- }, "Close Port", 8, ["disabled"])
- ]),
- vue.createElementVNode("view", null, [
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[10] || (_cache[10] = (...args) => $options.Test_Label_SampleTicket_58MM_1 && $options.Test_Label_SampleTicket_58MM_1(...args))
- }, "Test_Label_SampleTicket_58MM_1"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[11] || (_cache[11] = (...args) => $options.Test_Label_SampleTicket_80MM_1 && $options.Test_Label_SampleTicket_80MM_1(...args))
- }, "Test_Label_SampleTicket_80MM_1"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[12] || (_cache[12] = (...args) => $options.GetPrinterResolutionInfo && $options.GetPrinterResolutionInfo(...args))
- }, "GetPrinterResolutionInfo"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[13] || (_cache[13] = (...args) => $options.GetPrinterFirmwareVersion && $options.GetPrinterFirmwareVersion(...args))
- }, "GetPrinterFirmwareVersion"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[14] || (_cache[14] = (...args) => $options.GetPrinterStatusInfo && $options.GetPrinterStatusInfo(...args))
- }, "GetPrinterStatusInfo"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[15] || (_cache[15] = (...args) => $options.CP_Pos_KickOutDrawer && $options.CP_Pos_KickOutDrawer(...args))
- }, "CP_Pos_KickOutDrawer"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[16] || (_cache[16] = (...args) => $options.CP_Pos_Beep && $options.CP_Pos_Beep(...args))
- }, "CP_Pos_Beep"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[17] || (_cache[17] = (...args) => $options.CP_Pos_PrintSelfTestPage && $options.CP_Pos_PrintSelfTestPage(...args))
- }, "CP_Pos_PrintSelfTestPage"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[18] || (_cache[18] = (...args) => $options.CP_Pos_ResetPrinter && $options.CP_Pos_ResetPrinter(...args))
- }, "CP_Pos_ResetPrinter"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[19] || (_cache[19] = (...args) => $options.CP_Pos_SetPrintSpeed_100 && $options.CP_Pos_SetPrintSpeed_100(...args))
- }, "CP_Pos_SetPrintSpeed_100"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[20] || (_cache[20] = (...args) => $options.CP_Pos_SetPrintSpeed_150 && $options.CP_Pos_SetPrintSpeed_150(...args))
- }, "CP_Pos_SetPrintSpeed_150"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[21] || (_cache[21] = (...args) => $options.CP_Pos_SetPrintDensity_7 && $options.CP_Pos_SetPrintDensity_7(...args))
- }, "CP_Pos_SetPrintDensity_7"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[22] || (_cache[22] = (...args) => $options.CP_Pos_SetPrintDensity_15 && $options.CP_Pos_SetPrintDensity_15(...args))
- }, "CP_Pos_SetPrintDensity_15"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[23] || (_cache[23] = (...args) => $options.CP_Label_EnableLabelMode && $options.CP_Label_EnableLabelMode(...args))
- }, "CP_Label_EnableLabelMode"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[24] || (_cache[24] = (...args) => $options.CP_Label_DisableLabelMode && $options.CP_Label_DisableLabelMode(...args))
- }, "CP_Label_DisableLabelMode"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[25] || (_cache[25] = (...args) => $options.CP_Label_CalibrateLabel && $options.CP_Label_CalibrateLabel(...args))
- }, "CP_Label_CalibrateLabel"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[26] || (_cache[26] = (...args) => $options.CP_Label_FeedLabel && $options.CP_Label_FeedLabel(...args))
- }, "CP_Label_FeedLabel"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[27] || (_cache[27] = (...args) => $options.CP_Label_PageBegin && $options.CP_Label_PageBegin(...args))
- }, "CP_Label_PageBegin"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[28] || (_cache[28] = (...args) => $options.CP_Label_PagePrint && $options.CP_Label_PagePrint(...args))
- }, "CP_Label_PagePrint"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[29] || (_cache[29] = (...args) => $options.CP_Label_DrawText && $options.CP_Label_DrawText(...args))
- }, "CP_Label_DrawText"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[30] || (_cache[30] = (...args) => $options.CP_Label_DrawTextInUTF8 && $options.CP_Label_DrawTextInUTF8(...args))
- }, "CP_Label_DrawTextInUTF8"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[31] || (_cache[31] = (...args) => $options.CP_Label_DrawTextInGBK && $options.CP_Label_DrawTextInGBK(...args))
- }, "CP_Label_DrawTextInGBK"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[32] || (_cache[32] = (...args) => $options.CP_Label_DrawBarcode && $options.CP_Label_DrawBarcode(...args))
- }, "CP_Label_DrawBarcode"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[33] || (_cache[33] = (...args) => $options.CP_Label_DrawQRCode && $options.CP_Label_DrawQRCode(...args))
- }, "CP_Label_DrawQRCode"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[34] || (_cache[34] = (...args) => $options.CP_Label_DrawPDF417Code && $options.CP_Label_DrawPDF417Code(...args))
- }, "CP_Label_DrawPDF417Code"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[35] || (_cache[35] = (...args) => $options.CP_Label_DrawImageFromFile && $options.CP_Label_DrawImageFromFile(...args))
- }, "CP_Label_DrawImageFromFile"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[36] || (_cache[36] = (...args) => $options.CP_Label_DrawImageFromPixels && $options.CP_Label_DrawImageFromPixels(...args))
- }, "CP_Label_DrawImageFromPixels"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[37] || (_cache[37] = (...args) => $options.CP_Label_DrawLine && $options.CP_Label_DrawLine(...args))
- }, "CP_Label_DrawLine"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[38] || (_cache[38] = (...args) => $options.CP_Label_DrawRect && $options.CP_Label_DrawRect(...args))
- }, "CP_Label_DrawRect"),
- vue.createElementVNode("button", {
- type: "primary",
- onClick: _cache[39] || (_cache[39] = (...args) => $options.CP_Label_DrawBox && $options.CP_Label_DrawBox(...args))
- }, "CP_Label_DrawBox")
- ])
- ]);
- }
- const PagesPrinterLabel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "E:/HBuilderProjects/yta/pages/printer/label.vue"]]);
- __definePage("pages/home/index", PagesHomeIndex);
- __definePage("pages/weigh/index", PagesWeighIndex);
- __definePage("pages/weigh/instockLog", PagesWeighInstockLog);
- __definePage("pages/inbound/index", PagesInboundIndex);
- __definePage("pages/inbound/instockLog", PagesInboundInstockLog);
- __definePage("pages/outbound/index", PagesOutboundIndex);
- __definePage("pages/outbound/instockLog", PagesOutboundInstockLog);
- __definePage("pages/profile/index", PagesProfileIndex);
- __definePage("pages/login/index", PagesLoginIndex);
- __definePage("pages/order/index", PagesOrderIndex);
- __definePage("pages/scanLotno/index", PagesScanLotnoIndex);
- __definePage("pages/scanLotno/lotnoLog", PagesScanLotnoLotnoLog);
- __definePage("pages/scanLotno/waybillsList", PagesScanLotnoWaybillsList);
- __definePage("pages/warehouseScan/index", PagesWarehouseScanIndex);
- __definePage("pages/warehouseScan/warehouseLog", PagesWarehouseScanWarehouseLog);
- __definePage("pages/waybillNo/index", PagesWaybillNoIndex);
- __definePage("pages/waybillNo/waybillNoLog", PagesWaybillNoWaybillNoLog);
- __definePage("pages/waybillDeliveryOrder/index", PagesWaybillDeliveryOrderIndex);
- __definePage("pages/waybillDeliveryOrder/orderInfo", PagesWaybillDeliveryOrderOrderInfo);
- __definePage("pages/printer/index", PagesPrinterIndex);
- __definePage("pages/printer/label", PagesPrinterLabel);
- const _sfc_main = {
- onLaunch: function() {
- formatAppLog("log", "at App.vue:4", "App Launch");
- },
- onShow: function() {
- formatAppLog("log", "at App.vue:7", "App Show");
- },
- onHide: function() {
- formatAppLog("log", "at App.vue:10", "App Hide");
- }
- };
- const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "E:/HBuilderProjects/yta/App.vue"]]);
- function createApp() {
- const app = vue.createVueApp(App);
- return {
- app
- };
- }
- const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp();
- uni.Vuex = __Vuex__;
- uni.Pinia = __Pinia__;
- __app__.provide("__globalStyles", __uniConfig.styles);
- __app__._component.mpType = "app";
- __app__._component.render = () => {
- };
- __app__.mount("#app");
- })(Vue);
|