{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/js/ym.js","webpack:///./src/api/right.js","webpack:///./src/constant/PaymentMethods.js","webpack:///./src/assets/js/Urls.js","webpack:///./src/assets/js/sign.js","webpack:///./src/assets/js/axios.js","webpack:///./src/views/Result/Result.vue?0f74","webpack:///./src/App.vue?bd54","webpack:///./src/store/modules/auth.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/right.js","webpack:///./src/api/comment.js","webpack:///./src/store/modules/comment.js","webpack:///./src/store/modules/follow.js","webpack:///./src/store/modules/video.js","webpack:///./src/store/modules/live.js","webpack:///./src/store/index.js","webpack:///./src/assets/js/appInfo.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?98c8","webpack:///./src/App.vue?bff9","webpack:///./src/plugins/eventEmitter.js","webpack:///./src/plugins/log.js","webpack:///./src/main.js","webpack:///./src/api/account.js","webpack:///./src/views/Result/Result.vue","webpack:///src/views/Result/Result.vue","webpack:///./src/views/Result/Result.vue?f1c4","webpack:///./src/views/Result/Result.vue?9e67","webpack:///./src/router/index.js","webpack:///./src/api/service.js","webpack:///./src/api/http.js","webpack:///./src/api/vcurrency.js","webpack:///./src/api/order.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","WEB_CALLBACK","onSuccessCache","onFailCache","onSuccess","params","callbackParams","info","onFail","callbackProxy","callbackName","middlewareCallback","callback","json","JSON","parse","timeStr","Date","getTime","ym","this","openurl","url","indexOf","goods","search","location","replace","encodeURI","goback","closeWebPage","warn","text","showNotify","showTips","openApp","appInfo","platform","Android","stringify","pkg","encodeURIComponent","imageUrl","openImageBroswer","imgUrl","startX","startY","imgWidth","imgHeight","options","videoId","test","exec","category","videoName","float","stockids","stockid","codeIndex","openstocks","option","isGoodsAddedZxg","controlZxg","history","replaceState","go","getAllRightList","axios","Urls","DOMAIN_YKT","method","detail","catch","getRightGroups","PaymentMethods","unKnow","weXin","aliPay","caiBi","apple","process","VUE_APP_ENV","DOMAIN_STATIC","DOMAIN_YOUKANTOUWAP","HtmlApiKey","HtmlSecret","sign","config","header","valueOf","uuid","v1","signStr","md5","toLowerCase","interceptors","use","signValues","log","headers","store","state","auth","loginInfo","token","response","dispatch","namespaced","getters","isLogin","_isLogin","isWxLogin","localStorage","getItem","mutations","setLoginInfo","actions","login","logout","commit","root","ensureLogin","next","userInfo","balance","assetType","setUserInfo","setBalance","flush","getUserInfo","balances","getBalance","find","allRightList","hasRight","productId","findIndex","item","rightInfo","setAllRightList","Comment","commitComment","http","post","getComments","getSubComments","deleteComment","commentId","getCommentList","getLiveComments","commitLiveComment","comments","subComments","inputType","setComments","setSubComments","filter","id","deleteSubComment","setInputType","commentApi","res","pageSize","parseComments","list","items","map","createTime","dayjs","format","followResp","setfollowResp","resp","requestfollow","playInfo","currentVideo","String","respReport","playState","Boolean","setPlayState","setResp","setPlayInfo","setCurrentVideo","videoIdentity","setrespReport","setProgress","progress","requestVideo","requestUploadProgress","courses","page","v","requestDetail","streamObj","setStreamObj","Vue","Vuex","Store","user","right","comment","follow","video","live","plugins","createPersistedState","getParam","parseToInt","num","parseInt","isNaN","u","navigator","userAgent","iOS","Weixin","getQueryStringArgs","qs","substring","args","split","len","regx","RegExp","match","decodeURIComponent","refreshAppInfoCallbacks","getClientInfo","callbackMiddleware","forEach","WEB_CALLBACK_APPINFO","updateAppInfo","loadAppinfo","getAppInfo","app","element","toLocaleLowerCase","loginType","isPhoneNum","isBindPhone","isPhone","bindPhone","currentMv","compareMv","targetMv","isIncludeEqual","isSupport","mv","targetMvArr","currentMvArr","ar","css","render","_vm","_c","_self","attrs","model","show","$$v","expression","staticClass","_v","staticRenderFns","firstY","lastY","components","created","addEventListener","hengshuping","mounted","methods","orientation","component","eventList","onEventHandler","handler","offEventHandler","offAllEventHandler","emitEventHandler","evt","$onResume","isInit","resumeIndex","$offResume","$onPause","$offPause","emitResumeEventHandler","emitPauseEventHandler","onResume","onPause","$eventEmitter","on","off","offAll","emit","install","$log","pageView","Log","click","setDebug","$echarts","echarts","eventEmitter","VueCompositionApi","_List","_Swipe","_SwipeItem","_Dialog","_Lazyload","_Toast","_RadioGroup","_Radio","_Loading","_Empty","_CellGroup","_Cell","_Popup","unit","abs","digit","noNeed","absValue","Math","round","toFixed","FastClick","require","attach","body","productionTip","router","h","App","$mount","sendSmsCode","phone","imageKey","imageCode","accType","accId","getVerificationImage","password","appId","extendToken","appVersion","pwd","getExtendToken","_s","price","isCaiBi","_e","showPayResultInfo","IsPopMask","$event","openMp","payResultInfo","extend","goOrder","$route","query","payMethod","computed","goodsSetId","classList","remove","payResultTip","$store","pageId","goHome","tipInfo","GetPayResultInfo","$router","path","eventId","eventData","route","Router","base","scrollBehavior","to","from","savedPosition","x","y","routes","meta","title","redirect","children","Result","beforeEach","matched","some","needAuth","appid","channelId","source","fullPath","authUrl","afterEach","documentTitle","updateTitle","updateClientInfoCache","service","baseURL","signValue","status","statusText","Http","put","delete","getAllFaceValues","async","createRechargeOrder","tradeType","assetTypes","faceValueId","paymentMethod","queryOrderDetails","viewState"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAIxiC,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GAC5mBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OAChhCyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,MAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,mKCvQT,MAAM+F,EAAe,GACfC,EAAiB3G,OAAO8F,OAAO,MAC/Bc,EAAc5G,OAAO8F,OAAO,MAElCS,OAAOG,aAAeA,EAEtBH,OAAOM,UAAY,SAAUC,EAAQC,GACnCV,QAAQW,KAAK,YAAaF,EAAQC,GAC9BJ,EAAeI,IACjBJ,EAAeI,GAAgBD,IAInCP,OAAOU,OAAS,SAAUH,EAAQC,GAChCV,QAAQW,KAAK,SAAUF,EAAQC,GAC3BH,EAAYG,IACdH,EAAYG,GAAgBD,IAOhC,MAAMI,EAAgBA,CAACJ,EAAS,GAAIK,EAAe,cACjD,MAAMC,EAAqBN,EAAOO,UAAY,aAExCA,EAAWC,IACK,kBAATA,IACTA,EAAOC,KAAKC,MAAMF,IAGhBF,GACFA,EAAmBE,IAIvB,GAAIR,EAAOD,WAAaC,EAAOG,OAAQ,CACrC,MAAMQ,GAAU,IAAIC,MAAOC,UAAY,GACvCb,EAAOC,eAAiBU,EACxBd,EAAec,GAAWX,EAAOD,WAAa,aAC9CD,EAAYa,GAAWX,EAAOG,QAAU,kBAExCH,EAAOK,GAAiB,gBAAeT,EAAarG,KAAKgH,GAAY,KAWvE,OARIP,EAAOD,kBACFC,EAAOD,UAGZC,EAAOG,eACFH,EAAOG,OAGTH,GAgET,MAAMc,EAKJ,aAAa/E,EAAO,GAClBwD,QAAQW,KAAK,cACba,KAAKC,QAAS,wBAAuBjF,GAMvC,mBACEwD,QAAQW,KAAK,qBACba,KAAKC,QAAQ,uBAOf,eAAeC,EAAKxI,GAClB,GAAKwI,EAKL,IAAgC,IAA5BA,EAAIC,QAAQ,aAAkD,IAA7BD,EAAIC,QAAQ,YAKjD,GAA4B,qBAAjBzB,OAAO0B,OAAyB1B,OAAO0B,MAAMH,QAClDvI,EACFgH,OAAO0B,MAAMH,QAAQC,EAAKxI,GAE1BgH,OAAO0B,MAAMH,QAAQC,OAElB,CACL,MAAMG,EAASC,SAASD,OAEpBH,EAAIC,QAAQ,MAAQ,EACtBD,GAAYG,EAAOE,QAAQ,IAAK,KAEhCL,GAAYG,EAGdC,SAASlG,KAAO8F,OAnBhBI,SAASlG,KAAO8F,OALhB1B,QAAQjC,MAAM,eAgClB,mBAAmB2D,GACjBI,SAASlG,KAAQ,uCAAsCoG,UAAUN,GAMnE,gBACMxB,OAAO0B,MACL1B,OAAO0B,MAAMK,OACf/B,OAAO0B,MAAMK,SACJ/B,OAAO0B,MAAMM,aACtBhC,OAAO0B,MAAMM,eAEblC,QAAQW,KAAK,qDAGfX,QAAQmC,KAAK,sCAQjB,kBAAkBC,GACZlC,OAAO0B,MACL1B,OAAO0B,MAAMS,WACfnC,OAAO0B,MAAMS,WAAWD,GACflC,OAAO0B,MAAMU,SACtBpC,OAAO0B,MAAMU,SAASF,GAEtBpC,QAAQW,KAAK,qDAGfX,QAAQW,KAAK,0CAOjB,oBACMT,OAAO0B,OAAS1B,OAAO0B,MAAMW,SAAWC,OAAQC,SAASC,QAC3DxC,OAAO0B,MAAMW,QACXrB,KAAKyB,UAAU,CAAEC,IAAK,iBAAkBlB,IAAK,eAG/CI,SAASlG,KAAQ,uCAAsCiH,mBACrD,2DASN,wBAAwBC,GAClBA,IAEFA,EAAWA,EAASf,QAAQ,UAAW,UAGzC/B,QAAQW,KAAK,8BAA+BmC,GAExC5C,OAAO0B,OAAS1B,OAAO0B,MAAMmB,iBAC/B7C,OAAO0B,MAAMmB,iBACX7B,KAAKyB,UAAU,CACbK,OAAQF,EACRG,OAAQ,EACRC,OAAQ,EACRC,SAAU,IACVC,UAAW,OAIfpD,QAAQW,KAAK,gDAkBjB,iBAAiB0C,EAAS5C,GACxB,IAAI6C,EAAUD,EAAQC,QActB,GAZI,QAAQC,KAAKF,EAAQC,WACvBA,EAAU,iBAAiBE,KAAKH,EAAQC,SAAS,IAG/CD,EAAQI,WACVH,GAAY,aAAYD,EAAQI,UAG9BJ,EAAQK,YACVJ,GAAY,cAAaT,mBAAmBQ,EAAQK,WAAa,OAG/DjD,EACF,IAAK,MAAMf,KAAOe,EACZ9G,OAAOC,UAAUC,eAAeC,KAAK2G,EAAQf,KAC/C4D,GAAY,IAAG5D,KAAOe,EAAOf,MAKnC,MAAMgC,EAAO,0BAAyB4B,aAAmBD,EAAQM,cAAcN,EAAQ7G,MACrF,IAEFwD,QAAQW,KAAK,iBAAkBe,GAE/BI,SAASlG,KAAO8F,EAQlB,kBAAkBkC,EAAUC,GAC1B,IAAIC,EAAYF,EAASjC,QAAQkC,IAC7BC,EAAY,GAAKA,EAAYF,EAASlK,OAAS,KACjDoK,EAAY,GAGd,MAAMpC,EAAO,yBAAwBkC,WAAkBE,IACvD9D,QAAQW,KAAK,iBAAkBe,GAE/BI,SAASlG,KAAO8F,EAOlB,iBAAiBmC,GACfrC,KAAKuC,WAAW,CAACF,IAkBnB,uBAAuBG,GACjB9D,OAAO0B,OAAS1B,OAAO0B,MAAMqC,gBAC/B/D,OAAO0B,MAAMqC,gBAAgB/C,KAAKyB,UAAU9B,EAAcmD,KAE1DhE,QAAQW,KAAK,+CAgBjB,kBAAkBqD,GACZ9D,OAAO0B,OAAS1B,OAAO0B,MAAMsC,WAC/BhE,OAAO0B,MAAMsC,WAAWhD,KAAKyB,UAAU9B,EAAcmD,KAErDhE,QAAQW,KAAK,0CAQjB,gBAAgBe,GACVyC,QAAQC,cACVD,QAAQC,kBAAa9F,EAAW,GAAIoD,GACpCyC,QAAQE,GAAG,IAEXvC,SAASC,QAAQL,IAKD,qBAAXxB,SACTA,OAAOqB,GAAKA,GAGCA,U,kCCpYf,gGAOO,SAAS+C,IACd,OAAOC,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,kBACNC,OAAQ,QAEPpH,KAAKpE,GACwB,IAArBA,EAAKqB,OAAO0C,KAAa/D,EAAKyL,OAAS,MAE/CC,MAAM,IAAM,IAsBV,SAASC,IACd,OAAON,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,qBACNC,OAAQ,QAEPpH,KAAKpE,GACwB,IAArBA,EAAKqB,OAAO0C,KAAa/D,EAAO,MAExC0L,MAAM,IAAM,M,oCC7CjB,kCAIO,MAAME,EAAiB,CAI5BC,OAAQ,EAIRC,MAAO,EAIPC,OAAQ,EAIRC,MAAO,EAIPC,MAAO,I,oDCvBT,MAAMX,EAAO,CACXC,WAC8B,SAA5BW,+EAAYC,YACR,qCAC4B,YAA5BD,+EAAYC,YACZ,kCACA,4BACNC,cAC8B,SAA5BF,+EAAYC,YACR,wCAC4B,YAA5BD,+EAAYC,YACZ,qCACA,+BACNE,oBAC8B,SAA5BH,+EAAYC,YACR,0CAC4B,YAA5BD,+EAAYC,YACZ,uCACA,iCAGOb,U,mHCpBf,MAAMgB,EAAa,WACbC,EAAa,YAKbC,EAAOC,IACX,MAAMC,EAAS,CACb,eAAgBJ,EAChB,mBAAmB,IAAInE,MAAOwE,UAC9B,cAAeC,IAAKC,MAGhBC,EAAW,GAAEJ,EAAO,iBAAiBA,EAAO,qBAAqBH,IAEvE,OADAG,EAAO,cAAgBK,IAAID,GAASE,cAC7BN,GAGMF,QCffnB,IAAM4B,aAAavJ,QAAQwJ,IACzBT,IAME,IAAIU,EAAaX,EAAKC,GAStB,OARA3F,QAAQsG,IAAID,GACZV,EAAOY,QAAU,IACZZ,EAAOY,WACPF,EACH,YAAaG,OAAMC,MAAMC,KAAKC,UAC1BH,OAAMC,MAAMC,KAAKC,UAAUC,MAC3B,IAECjB,GAET5H,GAEStC,QAAQC,QAAQ,CACrBnB,OAAQ,CACN0C,MAAO,IACPc,YAORwG,IAAM4B,aAAaU,SAAST,IAC1B,EAAGlN,WAIwB,QAArBA,EAAKqB,OAAO0C,MAAuC,QAArB/D,EAAKqB,OAAO0C,MAC5CuJ,OAAMM,SAAS,eAEV5N,GAET6E,GACStC,QAAQC,QAAQ,CACrBnB,OAAQ,CACN0C,MAAO,IACPc,YAOOwG,SAAK,G,sDCxDpB,W,oCCAA,W,g6BCEO,MAAMwC,GAAa,EAEbN,EAAQA,KAAA,CACnBE,UAAW,OAGAK,EAAU,CAMrBC,QAASR,IACP,IAAIS,GAAW,EAMf,OAJIT,EAAME,WAAaF,EAAME,UAAUC,QACrCM,GAAW,GAGNA,GAETC,UAAWA,MACAC,aAAaC,QAAQ,YAIrBC,EAAY,CAMvBC,aAAad,EAAOE,GAClBF,EAAME,UAAYA,IAITa,EAAU,CAIrBC,UAMAC,QAAO,OAAEC,IACPA,EAAO,eAAgB,MACvBA,EAAO,mBAAoB,KAAM,CAAEC,MAAM,IAEzCzD,QAAQE,GAAG,IAEbwD,aAAY,SAAEf,EAAQ,QAAEE,GAAWhG,GACjC,IAAKgG,EAAQC,QAAS,CACpB,MAAMa,EAAOA,KACXhB,EAAS,UAGP9F,EACFA,EAAS8G,GAETA,IAIJ,OAAOd,EAAQC,U,4BCjEZ,MAAMF,GAAa,EAEbN,EAAQA,KAAA,CAInBsB,SAAU,KAIVC,QAAS,CAAEC,UAAW,EAAGD,QAAS,KAGvBhB,EAAU,CACrBe,SAAUtB,GACDA,EAAMsB,UAIJT,EAAY,CACvBY,YAAa,SAASzB,EAAOsB,GAC3BtB,EAAMsB,SAAWA,GAEnBI,WAAY,SAAS1B,EAAOuB,GAC1BvB,EAAMuB,QAAUA,IAIPR,EAAU,CACrB,mBAAkB,MAAEf,EAAK,OAAEkB,GAAUS,GAAQ,GAC3C,GAAIA,IAAU3B,EAAMsB,SAAU,CAC5B,MAAMA,QAAiBM,iBAEvBV,EAAO,cAAeI,KAG1B,kBAAiB,OAAEJ,IACjB,MAAMW,QAAiBC,iBAEjBP,EAAUM,EAASE,KAAKpJ,GAA6B,IAApBA,EAAM6I,WAE7CN,EAAO,aAAcK,K,gBC1ClB,MAAMjB,GAAa,EAEbN,EAAQA,KAAA,CACnBgC,aAAc,KAGHzB,EAAU,CACrB0B,SAAUjC,GAASkC,MACPlC,EAAMgC,aAAaG,UAAUC,GAAQA,EAAKF,YAAcA,GAEpEG,UAAWrC,GAASkC,GACXlC,EAAMgC,aAAaD,KAAKK,GAAQA,EAAKF,YAAcA,IAIjDrB,EAAY,CACvByB,gBAAiB,SAAStC,EAAOgC,GAC/BhC,EAAMgC,aAAeA,IAIZjB,EAAU,CACrB,uBAAsB,MAAEf,EAAK,OAAEkB,GAAUS,GAAQ,GAC/C,GAAIA,IAAU3B,EAAMgC,aAAc,CAChC,MAAMA,QAAqBnE,iBAE3BqD,EAAO,kBAAmBc,M,gBC1BhC,MAAMO,EACJC,cAAcxI,GACZ,IAAIiB,EAAM,oCACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAGxB2I,YAAY3I,EAAS,IACnB,IAAIiB,EAAM,iCACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAGxB4I,eAAe5I,EAAS,IACtB,IAAIiB,EAAM,oCACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAGxB6I,cAAcC,EAAY,IACxB,IAAI7H,EAAM,mCACNjB,EAAS,CACX8I,UAAWA,GAEb,OAAOL,OAAKC,KAAKzH,EAAKjB,GAGxB+I,eAAe/I,EAAS,IACtB,IAAIiB,EAAM,0BACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAIxBgJ,gBAAgBhJ,EAAS,IACvB,IAAIiB,EAAM,qBACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAIxBiJ,kBAAkBjJ,EAAS,IACzB,IAAIiB,EAAM,wBACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,IAIX,UAAIuI,E,qBCxCnB,MAAMvC,EAAQ,CACZkD,SAAU,GACVC,YAAa,GACbC,UAAW,GAGPvC,EAAY,CAChBwC,YAAaA,CAACrD,EAAOkD,KACnBlD,EAAMkD,SAAWA,GAEnBI,eAAgBA,CAACtD,EAAOkD,KACtBlD,EAAMmD,YAAcD,GAGtBL,cAAeA,CAAC7C,EAAO8C,KACrB,MAAMI,EAAWlD,EAAMkD,SAASK,OAAOnB,GAC9BA,EAAKoB,KAAOV,GAErB9C,EAAMkD,SAAWA,GAGnBO,iBAAkBA,CAACzD,EAAO8C,KACxB,MAAMI,EAAWlD,EAAMmD,YAAYI,OAAOnB,GACjCA,EAAKoB,KAAOV,GAErB9C,EAAMmD,YAAcD,GAGtBQ,aAAcA,CAAC1D,EAAOjK,KACpBiK,EAAMoD,UAAYrN,IAIhBgL,EAAU,CACdyB,eAAc,OAAEtB,GAAUlH,GAExB,OADAT,QAAQsG,IAAI,sBAAuBqB,GAC5ByC,EAAWnB,cAAcxI,GAAQnD,KAAK+M,GACpCA,EAAI9P,SAIf6O,aAAY,OAAEzB,GAAUlH,GAMtB,OALAA,EAAS,IACJA,EACH6J,SAAU,KAGLF,EAAWhB,YAAY3I,GAAQnD,KAAK+M,IACzC1C,EAAO,cAAe4C,EAAcF,EAAI1F,OAAO6F,OACxCH,KAIXhB,gBAAe,OAAE1B,GAAUlH,GAMzB,OALAA,EAAS,IACJA,EACH6J,SAAU,KAGLF,EAAWf,eAAe5I,GAAQnD,KAAK+M,IAC5C1C,EAAO,iBAAkB4C,EAAcF,EAAI1F,OAAO6F,UAItDlB,eAAc,OAAE3B,GAAU4B,GAExB,OADAvJ,QAAQsG,IAAI,sBAAuBqB,GAC5ByC,EAAWd,cAAcC,GAAWjM,KAAK+M,GACvCA,EAAI9P,SAGfiP,gBAAe,OAAE7B,GAAUlH,GAMzB,OALAA,EAAS,IACJA,EACH6J,SAAU,KAGLF,EAAWZ,eAAe/I,GAAQnD,KAAK+M,IAC5C1C,EAAO,cAAe4C,EAAcF,EAAI1F,OAAO6F,OACxCH,KAGXZ,iBAAgB,OAAE9B,GAAUlH,GAC1B,OAAO2J,EAAWX,gBAAgBhJ,GAAQnD,KAAK+M,GACtCA,IAGXX,mBAAkB,OAAE/B,GAAUlH,GAC5B,OAAO2J,EAAWV,kBAAkBjJ,GAAQnD,KAAK+M,GACxCA,KAKPE,EAAgBE,QACPnM,GAATmM,GAAsC,GAAhBA,EAAM/Q,OACvB,IAETsG,QAAQsG,IAAI,kBAAmBmE,GACxBA,EAAMC,IAAI7B,IACfA,EAAK8B,WAAaC,IAAM/B,EAAK8B,YAAYE,OAAO,eACzChC,KAII,OACb9B,YAAY,EACZN,MAAK,EACLa,UAAS,EACTE,QAAOA,GC9GT,MAAMf,EAAQ,CACZqE,WAAYnR,QAGR2N,EAAY,CAChByD,cAAeA,CAACtE,EAAOuE,KACrBvE,EAAMqE,WAAaE,IAIjBxD,EAAU,CACdyD,eAAc,OAAEtD,GAAUlH,GACxB,IAAIiB,EAAM,uBACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAAQnD,KAAK+M,IACjC1C,EAAO,gBAAiB0C,OAKf,OACbtD,YAAY,EACZN,MAAK,EACLa,UAAS,EACTE,QAAOA,GCvBT,MAAMf,EAAQA,KAAA,CACZuE,KAAMrR,OACNuR,SAAUvR,OACVwR,aAAcC,OACdC,WAAY1R,OACZ2R,UAAWC,UAGPjE,EAAY,CAChBkE,aAAcA,CAAC/E,EAAO6E,KACpB7E,EAAM6E,UAAYA,GAEpBG,QAASA,CAAChF,EAAOuE,KACfvE,EAAMuE,KAAOA,GAEfU,YAAaA,CAACjF,EAAOyE,KACnBzE,EAAMyE,SAAWA,GAEnBS,gBAAiBA,CAAClF,EAAOmF,KACvBnF,EAAM0E,aAAeS,GAEvBC,cAAeA,CAACpF,EAAO4E,KACrB5E,EAAM4E,WAAaA,GAErBS,YAAaA,CAACrF,EAAOsF,KACnBtF,EAAMsF,SAAWA,IAIfvE,EAAU,CACd5K,SAAQ,OAAE+K,GAAUlH,GAClB,IAAIiB,EAAM,wBACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAAQnD,KAAK+M,IACjC1C,EAAO,UAAW0C,MAGtB2B,cAAa,OAAErE,GAAUlH,GACvB,IAAIiB,EAAM,uBAEV,OADAiG,EAAO,kBAAmBlH,EAAOmL,eAC1B1C,OAAKC,KAAKzH,EAAKjB,GAAQnD,KAAK+M,IACjC1C,EAAO,cAAe0C,MAG1B4B,uBAAsB,OAAEtE,EAAM,MAAElB,GAAShG,GACvC,IAAIyL,EAAUzF,EAAMuE,KAAKrG,OAAOuH,QAAQC,KAAK3B,KAC7C,IAAK,IAAIhR,EAAI,EAAGA,EAAI0S,EAAQxS,OAAQF,IAAK,CACvC,IAAI4S,EAAIF,EAAQ1S,GACZ4S,EAAER,gBAAkBnL,EAAOmL,gBAC7BQ,EAAEL,SAAWtL,EAAOsL,UAGxBpE,EAAO,cAAelH,EAAOsL,UAE7B,IAAIrK,EAAM,0BACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAAQnD,KAAK0N,IACjCrD,EAAO,gBAAiBqD,MAI5BqB,eAAc,OAAE1E,GAAUlH,GACxB,IAAIiB,EAAM,8BACV,OAAOwH,OAAKC,KAAKzH,EAAKjB,GAAQnD,KAAK+M,IACjC1C,EAAO,UAAW0C,OAKT,OACbtD,YAAY,EACZN,MAAK,EACLa,UAAS,EACTE,QAAOA,GCzEF,MAAMT,GAAa,EAEbN,EAAQA,KAAA,CACnB6F,UAAW,KAGAtF,EAAU,CACrBsF,UAAW7F,GACFA,EAAM6F,WAIJhF,EAAY,CACvBiF,aAAc,SAAS9F,EAAO6F,GAC5B7F,EAAM6F,UAAYA,I,gBCFtBE,aAAIpG,IAAIqG,QAER,MAAMjG,EAAQ,IAAIiG,OAAKC,MAAM,CAC3BzS,QAAS,CACPyM,OACAiG,OACAC,QACAC,UACAC,SACAC,QACAC,QAEFvG,MAAOA,KAAA,IACPa,UAAW,GACX2F,QAAS,CACPC,eAAqB,CACnBxN,IACE,OACC8C,OAAQ2K,SAAS,UAChB/F,aAAaC,QAAQ,iBACrB,SAKKb,U,8DClCf,IAAIhE,EAAU7I,OAAO8F,OAAO,MAM5B,SAAS2N,EAAWC,GAClB,OAAKA,GACLA,EAAMC,SAASD,EAAK,IACbE,MAAMF,GAAO,GAAKA,GAFR,GAKnB,MAAM5K,EAAW,MACf,GAAsB,qBAAXvC,OACT,MAAO,GAGT,MAAMsN,EAAIC,UAAUC,UACpB,MAAO,CACLC,IAAK,mBAAmBpK,KAAKiK,GAC7B9K,QAAS,WAAWa,KAAKiK,GACzBI,OAAQ,kBAAkBrK,KAAKiK,KATlB,GAgBjB,SAASK,IACP,GAAsB,qBAAX3N,OACT,MAAO,GAGT,MAAM4N,EAAKhM,SAASD,OAAOnI,OAAS,EAAIoI,SAASD,OAAOkM,UAAU,GAAK,GACjEC,EAAO,GACPvD,EAAQqD,EAAGpU,OAASoU,EAAGG,MAAM,KAAO,GAC1C,IAAIpF,EAAO,KACPxK,EAAO,KACPe,EAAQ,KACR5F,EAAI,EACR,MAAM0U,EAAMzD,EAAM/Q,OACZyU,EAAO,IAAIC,OAAO,iBAAkB,KAE1C,IAAK5U,EAAI,EAAGA,EAAI0U,EAAK1U,IAAK,CAExB,GADAqP,EAAO4B,EAAMjR,GAAG6U,MAAMF,IACjBtF,EACH,SAGFxK,EAAOiQ,mBAAmBzF,EAAK,IAE/B,MAAM/N,EAAI+N,EAAK,GAAG9G,QAAQ,OAAQ,IAClC3C,EAAQkP,mBAAmBxT,GACvBuD,EAAK3E,SAAWsU,EAAK3P,KACvB2P,EAAK3P,GAAQe,GAIjB,OAAO4O,EAGT,MAAMO,EAA0B,GAMhC,SAASC,EAAcxN,EAAWA,UAChC,GAAsB,qBAAXd,OACT,OAKF,GAFAqO,EAAwBvU,KAAKgH,GAEzBuN,EAAwB7U,OAAS,EACnC,OAGF,MAAM+U,EAAqBlU,IACzBgU,EAAwBG,QAAQ1N,GAAYA,EAASzG,IACrDgU,EAAwB7U,OAAS,GAcnC,IAAIa,EAXJ2F,OAAOyO,qBAAuB1N,IAC5B,IAAI1G,EAAS0G,EACO,kBAATA,IACT1G,EAAS2G,KAAKC,MAAMF,IAGtB2N,EAAcrU,GAEdkU,EAAmBlU,IAKrB,MAAMsU,EAAcA,KAClB,GAAI3O,OAAO0B,MAAMkN,YAAc5O,OAAO0B,MAAM4M,cAAe,CACzD,IACMtO,OAAO0B,MAAM4M,cACftO,OAAO0B,MAAM4M,cAAc,wBAE3BjU,EAAS2F,OAAO0B,MAAMkN,WACpB5N,KAAKyB,UAAU,CACb3B,SAAU,0BAIhB,MAAOjE,GACPxC,EAAS2F,OAAO0B,MAAMkN,aAEpBvU,IACFA,EAA2B,kBAAXA,EAAsB2G,KAAKC,MAAM5G,GAAUA,EAC3DqU,EAAcrU,GACdkU,EAAmBlU,MAKrB2F,OAAO0B,MACTiN,IAEAJ,EAAmBlU,GAWvB,SAASqU,EAAc/R,GACrB,MAAMkS,EAAM,GAEZ,IAAK,MAAMrP,KAAO7C,EAChB,GAAIlD,OAAOE,eAAeC,KAAK+C,EAAQ6C,GAAM,CAC3C,MAAMsP,EAAUnS,EAAO6C,GACP,OAAZsP,GAAgC,KAAZA,IAEtBD,EAAIrP,EAAIwG,eAAiBrJ,EAAO6C,IAKtC8C,EAAU,IAAKA,KAAYuM,GAG7B,SAAS5B,EAAS9O,GAEhB,MAAM9D,EAASiI,EAAQnE,EAAK4Q,qBAC5B,YAAkB3Q,IAAX/D,EAAuBA,EAAS,GAIzCqU,EAAcf,KAEC,QAMb,cACE,MAAMqB,EAAY5B,SAASH,EAAS,aAAc,IAC5CgC,EAAahC,EAAS,cAE5B,OAAqB,IAAd+B,IAAoBC,GAA6B,KAAfA,IAK3C,cACE,MAAMD,EAAY1N,KAAK0N,UACvB,QAAuB,KAAdA,GAAkC,IAAdA,IAK/B,kBACE,OAA0B,IAAnB1N,KAAK0N,WAAmB/B,EAAS,iBAK1C,qBACE,IAAIiC,GAAc,EAQlB,OAPK5N,KAAKyF,QAGEzF,KAAK6N,SAAYlC,EAAS,kBACpC5L,OAAG+N,YACHF,GAAc,IAJd7N,OAAGkG,QACH2H,GAAc,GAKTA,GAKT,gBACE,OAA0B,IAAnB5N,KAAK0N,WAMd,mBACE,IAAItI,EAAQuG,EAAS,gBAErB,OAAKvG,GAIDnE,EAASC,UACXkE,EAAQ0H,mBAAmB1H,IAGtBA,GAPE,IAaX,kBACE,OAAOuG,EAAS,gBAAkBA,EAAS,UAM7C,YACE,MAAMvG,EAAQuG,EAAS,UAAYA,EAAS,eAE5C,OAAOvG,GAAS,IAMlB,SACE,MAAM2I,EAAYpC,EAAS,OAASA,EAAS,cAE7C,OAAOoC,GASTC,UAAUC,EAAUF,EAAWG,GAAiB,GAC9C,IAAKD,EAEH,YADAzP,QAAQmC,KAAK,oBAIU,mBAAdoN,IACTG,EAAiBH,EACjBA,OAAYjR,GAGd,IAAIqR,GAAY,EAGhB,GAFAJ,EAAYA,GAAa/N,KAAKoO,GAE1BH,IAAaF,EACfI,EAAYD,MACP,CACL,MAAMG,EAAcJ,EAASxB,MAAM,KAC7B6B,EAAeP,EAAUtB,MAAM,KACrC,GAAI6B,EAAapW,SAAWmW,EAAYnW,QACtC,IAAK,IAAIF,EAAI,EAAGA,EAAIsW,EAAapW,OAAQF,IACvC,GAAIsW,EAAatW,KAAOqW,EAAYrW,GAAI,CACtCmW,GAAaG,EAAatW,IAAMqW,EAAYrW,GAC5C,YAIJmW,EAAYG,EAAapW,OAASmW,EAAYnW,OAIlD,OAAOiW,GAST,SACE,OACEvC,EAAWD,EAAS,OAASA,EAAS,QAAUA,EAAS,WAAa,GAS1E,SACE,IAAI4C,EAAK5C,EAAS,MAClB,MAAM1K,EAAW0K,EAAS,YAM1B,OAJK4C,GAAMtN,IACTsN,EAAkB,YAAbtN,EAAyB,KAAO,KAGhC2K,EAAW2C,IAMpB,SACE,OAAO3C,EAAWD,EAAS,OAASA,EAAS,eAQ/C,gBACE,OAAOC,EAAWD,EAAS,eAO7B,cACE,MAAM6C,EAAM7C,EAAS,OACrB,MAAe,MAAR6C,GAAuB,UAARA,GAGxBvN,WACA0K,WACAyB,gBACAJ,kB,mYCzVEyB,EAAS,WAAkB,IAAIC,EAAI1O,KAAK2O,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,QAAQ,CAACF,EAAG,eAAeA,EAAG,YAAY,CAACE,MAAM,CAAC,0BAAyB,GAAOC,MAAM,CAAClR,MAAO8Q,EAAIK,KAAMvP,SAAS,SAAUwP,GAAMN,EAAIK,KAAKC,GAAKC,WAAW,SAAS,CAACN,EAAG,MAAM,CAACO,YAAY,QAAQ,CAACR,EAAIS,GAAG,cAAc,IAE/SC,EAAkB,GCYP,GACf1X,OACA,OACAqX,MAAA,EACAM,OAAA,EACAC,MAAA,IAGAC,WAAA,GACAC,UACA9Q,OAAA+Q,iBACA,wBAAA/Q,OAAA,6BACA,KAAAgR,aACA,IAGAC,YAoCAC,QAAA,CACAF,cACA,KAAAhR,OAAAmR,aAAA,GAAAnR,OAAAmR,cACA,KAAAd,MAAA,GAEA,IAAArQ,OAAAmR,cAAA,IAAAnR,OAAAmR,cACA,KAAAd,MAAA,MCxE6T,I,wBCQzTe,EAAY,eACd,EACArB,EACAW,GACA,EACA,KACA,KACA,MAIa,EAAAU,E,0CCff,IAAIC,EAAY5X,OAAO8F,OAAO,MAE9BS,OAAOqR,UAAYA,EAQnB,MAAMC,EAAiBA,CAACnT,EAAMoT,KAGxBF,EAAUlT,EAAK6H,iBAAmBqL,EAAUlT,EAAK6H,eAAiB,KAClElM,KAAKyX,GAAW,EAShBC,EAAkBA,CAACrT,EAAMoT,KAC7B,MAAM/R,EAAMrB,EAAK6H,cACbqL,EAAU7R,IACZ6R,EAAU7R,GAAK9E,OACM,kBAAZ6W,EACHA,EACAF,EAAU7R,GAAKiC,QAAQ8P,KAAa,EACxC,OACAnT,IAUAqT,EAAqBtT,IACzBA,EACKkT,EAAUlT,EAAK6H,eAAiB,GAChCqL,EAAY5X,OAAO8F,OAAO,OAM3BmS,EAAmBA,CAACvT,EAAMwT,MAC5BN,EAAUlT,EAAK6H,gBAAkB,IAAIwE,IAAI+G,GAAWA,GAAWA,EAAQI,KAQ9DC,EAAYA,CAACL,EAAS7T,EAAU,OAC3C,IAAImU,GAAS,EACb,MAAMhR,EAAqBA,KACzBgR,GAAUN,KAENO,EAAcR,EAAe,SAAUzQ,GAG7C,OAFAxC,WAAW,IAAOwT,GAAS,EAAOnU,GAE3BoU,GAEIC,EAAaR,GAAWC,EAAgB,SAAUD,GAElDS,EAAWT,GAAWD,EAAe,QAASC,GAC9CU,EAAYV,GAAWC,EAAgB,QAASD,GAEvDW,EAAyBA,KAC7BpS,QAAQW,KAAK,qBACbiR,EAAiB,WAEbS,EAAwBA,KAC5BrS,QAAQW,KAAK,oBACbiR,EAAiB,UAMnB1R,OAAOoS,SAAWpS,OAAOoS,UACpBR,EAAU5R,OAAOoS,UAAWF,GAC7BA,EAIJlS,OAAOqS,QAAUrS,OAAOqS,SACnBL,EAAShS,OAAOqS,SAAUF,GAC3BA,EAEG,MAAMG,EAAgB,CAC3BC,GAAIjB,EACJkB,IAAKhB,EACLiB,OAAQhB,EACRiB,KAAMhB,GAGO,OACbiB,QAAQrG,GAENA,EAAI5S,UAAU4Y,cAAgBA,EAE9BhG,EAAI5S,UAAUkY,UAAYA,EAC1BtF,EAAI5S,UAAUqY,WAAaA,EAE3BzF,EAAI5S,UAAUsY,SAAWA,EACzB1F,EAAI5S,UAAUuY,UAAYA,ICpHf,GACbU,QAAQrG,GACNA,EAAI5S,UAAUkZ,KAAO,CACnBC,SAAUtS,IACc,qBAAXP,QAA0BA,OAAO8S,KAC1C9S,OAAO8S,IAAID,SAAStS,IAGxBwS,MAAOxS,IACiB,qBAAXP,QAA0BA,OAAO8S,KAC1C9S,OAAO8S,IAAIC,MAAMxS,IAGrByS,SAAUA,KACc,qBAAXhT,QAA0BA,OAAO8S,MAC1C9S,OAAO8S,IAAIE,WACXlT,QAAQmC,KAAK,mC,6CCSvBqK,aAAI5S,UAAUuZ,SAAWC,IAEzB5G,aAAIpG,IAAIiN,GAER7G,aAAIpG,IAAIkN,QAER9G,aAAIpG,IAAIE,GAERkG,aAAIpG,IAAIqG,QAERD,aAAIpG,IAAGmN,QACP/G,aAAIpG,IAAGoN,QACPhH,aAAIpG,IAAGqN,QACPjH,aAAIpG,IAAGsN,QACPlH,aAAIpG,IAAGuN,QACPnH,aAAIpG,IAAGsN,QACPlH,aAAIpG,IAAGwN,QACPpH,aAAIpG,IAAGyN,QACPrH,aAAIpG,IAAG0N,QACPtH,aAAIpG,IAAG2N,QACPvH,aAAIpG,IAAG4N,QACPxH,aAAIpG,IAAG6N,QACPzH,aAAIpG,IAAG8N,QACP1H,aAAIpG,IAAG+N,QAEP3H,aAAIxC,OAAO,gBAAgB,SAAU5K,EAAOgV,EAAO,GAAIC,EAAKC,EAAQ,EAAGC,GAAS,GAC9E,QAAcjW,IAAVc,EAAqB,MAAO,KAMhC,IAAI7E,EAHU,MAAV6E,GAA0B,MAATgV,IACnBE,EAAQ,GAIV,MAAME,EAAWC,KAAKJ,IAAIjV,GAY1B,OATE7E,EADEia,GAAY,KACJC,KAAKC,MAAMtV,EAAQ,KAAO,KAAKuV,QAAQ,IAAMJ,EAAS,IAAM,IAC7DC,GAAY,KACXC,KAAKC,MAAMtV,EAAQ,KAAO,KAAKuV,QAAQ,IAAMJ,EAAS,IAAM,IAC7DF,EACAI,KAAKJ,IAAIjV,GAAOuV,QAAQL,GAAS,GAEjClV,EAAMuV,QAAQL,GAAS,GAG3B/Z,EAAS6Z,KAGlB,MAAMQ,EAAYC,EAAQ,QAC1BD,EAAUE,OAAO/Y,SAASgZ,MAE1BvI,aAAI7G,OAAOqP,eAAgB,EAE3B,IAAIxI,aAAI,CACNyI,cACAzO,aACAyJ,OAAQiF,GAAKA,EAAEC,KACdC,OAAO,S,kCCnFV,sMAOO,SAASC,EAAYC,EAAOC,EAAUC,GAC3C,OAAOjR,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,4BACNC,OAAQ,MACRjE,OAAQ,CACNgV,QAAS,EACTC,MAAOJ,EACPC,WACAC,eASC,SAASG,IACd,OAAOpR,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,qCACNC,OAAQ,QAQL,SAAS+C,EAAM6N,EAAOM,EAAUC,EAAQ,GAAIC,EAAaC,GAC9D,OAAOxR,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,sBACNC,OAAQ,MACRjE,OAAQ,CACNgV,QAAS,EACTC,MAAOJ,EACPU,IAAKJ,EACLC,MAAOA,EACPC,YAAaA,EACbC,gBA0BC,SAAS1N,IACd,OAAO9D,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,qBACNC,OAAQ,QAEPpH,KAAKpE,GACwB,IAArBA,EAAKqB,OAAO0C,KAAa/D,EAAKyL,OAAS,MAE/CC,MAAM,IAAM,MA0FV,SAASqR,EAAeJ,EAAQ,GAAI5Y,GAIzC,MAHc,KAAV4Y,IACFA,EAAQzO,aAAaC,QAAQ,iBAExB9C,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,iCACNC,OAAQ,MACRjE,OAAQ,CACNoV,MAAOA,EACP5Y,KAAMA,KAGPK,KAAKpE,GACwB,IAArBA,EAAKqB,OAAO0C,KAAa/D,EAAKyL,OAAS,MAE/CC,MAAM,IAAM,Q,2KCxLbqL,EAAS,WAAkB,IAAIC,EAAI1O,KAAK2O,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACO,YAAY,UAAU,CAACP,EAAG,MAAM,CAACO,YAAY,iBAAiBP,EAAG,MAAM,CAACO,YAAY,SAAS,CAACR,EAAIS,GAAG,UAAUR,EAAG,MAAM,CAACO,YAAY,SAAS,CAACP,EAAG,SAAS,CAACO,YAAY,UAAU,CAACR,EAAIS,GAAGT,EAAIgG,GAAGhG,EAAIiG,UAAWjG,EAAIkG,QAASjG,EAAG,OAAO,CAACO,YAAY,SAAS,CAACR,EAAIS,GAAG,QAAQT,EAAImG,OAAQnG,EAAIkG,SAAWlG,EAAIlI,QAASmI,EAAG,MAAM,CAACO,YAAY,SAAS,CAACR,EAAIS,GAAG,QAAQT,EAAIgG,GAAGhG,EAAIlI,YAAYkI,EAAImG,KAAOnG,EAAIoG,kBAAwIpG,EAAIqG,UAAiHpG,EAAG,MAAM,CAACO,YAAY,WAAW,CAACP,EAAG,IAAI,CAACsC,GAAG,CAAC,MAAQ,SAAS+D,GAAQ,OAAOtG,EAAIuG,OAAOvG,EAAIwG,cAAcC,WAAW,CAACxG,EAAG,MAAM,CAACO,YAAY,gBAAgBL,MAAM,CAAC,IAAMH,EAAIwG,cAAc1T,OAAO,IAAM,UAA/SmN,EAAG,MAAM,CAACA,EAAG,MAAM,CAACO,YAAY,kBAAkBL,MAAM,CAAC,IAAM,GAAG,IAAMH,EAAIwG,cAAc1T,YAA9NmN,EAAG,MAAM,CAACO,YAAY,iBAAiB,CAACP,EAAG,MAAM,CAACO,YAAY,SAAS+B,GAAG,CAAC,MAAQvC,EAAI0G,UAAU,CAAC1G,EAAIS,GAAG,aAE/kBC,EAAkB,G,gDC4BP,GACf1X,OACA,OACA8O,QAAA,EACAoO,QAAA,KAAAS,OAAAC,MAAAC,YAAAjS,OAAAI,MACAwR,cAAA,OAGAM,SAAA,CACAb,QACA,YAAAU,OAAAC,MAAAX,OAEAc,aACA,YAAAJ,OAAAC,MAAAG,YAEAX,oBACA,kBAAAI,eAEAH,YACA,YAAAG,eAAA,iBAAAA,cAAAla,OAGAwU,UACAjV,SAAAgZ,KAAAmC,UAAAC,OAAA,WAIA,KAAAC,eACA,KAAAC,OAAAvQ,SAAA,0BAEAqK,UACA6B,OAAAD,SAAA,CACAuE,OAAA,0BAGAlG,QAAA,CAIAmG,SACAhW,OAAAgW,UAGA,qBACA,QAAAN,WAAA,CACA,MAAAO,QAAAC,eAAA,KAAAR,YACAO,GAAA,IAAAA,EAAAjd,OAAA0C,MAAAua,EAAA7S,SACA,KAAA+R,cAAAc,EAAA7S,UAQAiS,UAMA,KAAAc,QAAA3V,QAAA,CAAA4V,KAAA,kBAGAlB,OAAAE,GACA3D,OAAAC,MAAA,CACA2E,QAAA,kBACAC,UAAA,CACAC,MAAAnB,EAAAmB,SAIAhW,SAAAlG,KAAA+a,EAAAmB,SCtG8V,I,wBCQ1VxG,EAAY,eACd,EACArB,EACAW,GACA,EACA,KACA,WACA,MAIa,EAAAU,E,oBCdf9E,aAAIpG,IAAI2R,QAER,MAAM9C,EAAS,IAAI8C,OAAO,CACxBzY,KAAM,UACN0Y,KAAM5S,MACN6S,eAAeC,EAAIC,EAAMC,GACvB,OAAIA,GAGK,CAAEC,EAAG,EAAGC,EAAG,IAGtBC,OAAQ,CACN,CACEZ,KAAM,IACNa,KAAM,CACJC,MAAO,OAETC,SAAUR,GAGD,YAGX,CACEP,KAAM,SACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,WAGX,CACEd,KAAM,WACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,MAETE,SAAU,CACR,CACEhB,KAAM,eACNrG,UAAWA,IAAM,iDAEnB,CACEqG,KAAM,yBACNrG,UAAWA,IAAM,mDAKvB,CAMEqG,KAAM,UACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,MAETE,SAAU,CACR,CACEhB,KAAM,cACNrG,UAAWA,IAAM,2GACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,qBACNtZ,KAAM,gBACNiT,UAAWA,IAAM,uJACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,uBACNtZ,KAAM,sBACNiT,UAAWA,IAAM,qFACjBkH,KAAM,CACJC,MAAO,aAKf,CACEd,KAAM,eACNrG,UAAWA,IAAM,2GACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,QACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OAGX,CACEd,KAAM,eACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,eACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,eACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,kBACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,iBACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,gBACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,QACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,KACP/R,MAAM,IAmBV,CACEiR,KAAM,mBACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,OACP/R,MAAM,IAGV,CACEiR,KAAM,YACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,KACP/R,MAAM,IAGV,CACEiR,KAAM,UACNtZ,KAAM,SACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,UACNrG,UAAWsH,EACXJ,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,YACNtZ,KAAM,WACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,YAGX,CACEd,KAAM,cACNtZ,KAAM,aACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,UAGX,CACEd,KAAM,eACNtZ,KAAM,cACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,QACNtZ,KAAM,OACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,kBACNtZ,KAAM,iBACNiT,UAAWA,IAAM,qFACjBkH,KAAM,CACJC,MAAO,OAIX,CACEd,KAAM,eACNtZ,KAAM,cACNiT,UAAWA,IAAM,2GACjBkH,KAAM,CACJC,MAAO,SAGX,CACEd,KAAM,mBACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,UAGX,CACEd,KAAM,gBACNrG,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,UAGX,CACEd,KAAM,eACNtZ,KAAM,cACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,WAGX,CACEd,KAAM,aACNtZ,KAAM,YACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,WAGX,CACEd,KAAM,gBACNtZ,KAAM,eACNiT,UAAWA,IAAM,gDACjBkH,KAAM,CACJC,MAAO,aASfxD,EAAO4D,WAAW,CAACX,EAAIC,EAAMrQ,KAC3B,GAAIoQ,EAAGY,QAAQC,KAAK9Z,GAAKA,EAAEuZ,KAAK9R,OAAUwR,EAAGpB,OAASoB,EAAGpB,MAAMkC,SAE7D,GADAhZ,QAAQsG,IAAIE,OAAMQ,QAAQ,gBAAiBkR,GACvC1R,OAAMQ,QAAQ,gBAChBc,QACK,CAEL,IAAImR,EAAQ7R,aAAaC,QAAQ,WAC7B6R,EAAY9R,aAAaC,QAAQ,cAAgB,GAErD,GAAKb,OAAMQ,QAAQ,kBASZ,CACL,IAAImS,EAASnX,UAAUkW,EAAGkB,UACtB1X,EACFI,SAASlG,KAAKqS,MAAM,MAAM,GAA1BnM,mBAGAE,UAAUmX,GACRE,EAAW,0HAAyHJ,eAAmBC,kBAA0BxX,oBACrLxB,OAAO4B,SAASC,QAAQsX,QAfxBvR,EAAK,CACH6P,KAAM,SACN5V,SAAS,EACT+U,MAAO,CACLqC,OAAQjB,EAAGkB,iBAenBtR,MAKJmN,EAAOqE,UAAUxB,IACf,IAAIyB,EAAgB,GAEpBzB,EAAMgB,QAAQpK,QAAQiJ,IAChBA,EAAKa,KAAKC,QACZc,EAAgB5B,EAAKa,KAAKC,SAI1Bc,IACFxd,SAAS0c,MAAQc,EAEbrZ,OAAO0B,OAAS1B,OAAO0B,MAAM4X,aAC/BtZ,OAAO0B,MAAM4X,YAAY,CAAEf,MAAOc,KAItC,MAAM5S,EAAYH,OAAMC,MAAMC,KAAKC,UAC/BA,GAEF8S,eAAsB,CACpB9S,YACAC,MAAOD,EAAUC,MAEjB+B,UAAW,OAKFsM,U,oHCtWf,MAAMzP,EAAa,WACbC,EAAa,YAEbiU,EAAUnV,OAAM9E,OAAO,CAC3Bka,QAASnV,OAAKC,WACd7G,QAAS,MAGX8b,EAAQvT,aAAavJ,QAAQwJ,IAC3BT,IACEA,EAAOzM,KAAOgI,KAAKyB,UAAUgD,EAAOzM,MACpC,MAAM0gB,EAAY,CAChB,eAAgBpU,EAChB,mBAAmB,IAAInE,MAAOwE,UAC9B,cAAeC,IAAKC,MAGhBC,EAAW,GAAE4T,EAAU,iBAAiBA,EAAU,qBAAqBnU,IAC7EmU,EAAU,cAAgB3T,IAAID,GAASE,cAEvCP,EAAOY,QAAU,IACZqT,EACH,eAAgB,oBAGlB,MAAMhT,EAAQJ,OAAMC,MAAMC,KAAKC,UAC3BH,OAAMC,MAAMC,KAAKC,UAAUC,MAC3B,GAKJ,OAJIA,IACFjB,EAAOY,QAAQ,aAAeK,GAGzBjB,GAET5H,IACEtC,QAAQE,OAAOoC,KAInB2b,EAAQvT,aAAaU,SAAST,IAC5BS,IACE7G,QAAQsG,IACN,WACAO,EAASlB,OAAOjE,IAChB,kBACAmF,EACA,eACAA,EAASlB,OAAOgU,SAEK,KAAnB9S,EAASgT,OACJhT,EAAS3N,KAEXuC,QAAQC,QAAQmL,EAASiT,aAElC/b,IACE,GAAIA,GAASA,EAAM8I,SACjB,OAAQ9I,EAAM8I,SAASgT,QACrB,KAAK,IACH9b,EAAMK,QAAU,OAChB,MACF,KAAK,IACHL,EAAMK,QAAU,YAChB,MACF,KAAK,IACHL,EAAMK,QAAU,OAChB,MACF,KAAK,IACHL,EAAMK,QAAU,cAChB,MACF,KAAK,IACHL,EAAMK,QAAU,UAChB,MACF,KAAK,IACHL,EAAMK,QAAU,OAChB,MACF,KAAK,IACHL,EAAMK,QAAU,SAChB,MACF,KAAK,IACHL,EAAMK,QAAU,QAChB,MACF,KAAK,IACHL,EAAMK,QAAU,OAChB,MACF,KAAK,IACHL,EAAMK,QAAU,QAChB,MACF,KAAK,IACHL,EAAMK,QAAU,OAChB,MACF,KAAK,IACHL,EAAMK,QAAU,eAChB,MACF,QACEL,EAAMK,QAAW,OAAML,EAAM8I,SAASgT,YAM1C9b,EAAMK,QAAU,UAElB,OAAO3C,QAAQC,QAAQqC,EAAM8I,YAIlB6S,QChHf,MAAMK,EACJ/a,IAAI0C,EAAKjB,GACP,MAAMkF,EAAS,CACbjB,OAAQ,MACRhD,IAAKA,GAGP,OADIjB,IAAQkF,EAAOlF,OAASA,GACrB7D,EAAQ+I,GAGjBwD,KAAKzH,EAAKjB,GACR,MAAMkF,EAAS,CACbjB,OAAQ,OACRhD,IAAKA,GAGP,OADIjB,IAAQkF,EAAOzM,KAAOuH,GACnB7D,EAAQ+I,GAGjBqU,IAAItY,EAAKjB,GACP,MAAMkF,EAAS,CACbjB,OAAQ,MACRhD,IAAKA,GAGP,OADIjB,IAAQkF,EAAOlF,OAASA,GACrB7D,EAAQ+I,GAGjBsU,OAAOvY,EAAKjB,GACV,MAAMkF,EAAS,CACbjB,OAAQ,SACRhD,IAAKA,GAGP,OADIjB,IAAQkF,EAAOlF,OAASA,GACrB7D,EAAQ+I,IAIJ,WAAIoU,G,kCCxCnB,kIAGO,SAASxR,IACd,OAAOhE,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,gCACNC,OAAQ,QAEPpH,KAAKpE,GACwB,IAArBA,EAAKqB,OAAO0C,KAAa/D,EAAKyL,OAAS,MAE/CC,MAAM,IAAM,MA+CV,SAASsV,IACd,OAAO3V,OACJvF,IAAOwF,OAAKC,WAAP,iCACLnH,KAAKpE,IACJ,IAAIyL,EAAS,GAKb,OAJyB,IAArBzL,EAAKqB,OAAO0C,OACd0H,EAASzL,EAAKyL,QAGTA,IAERC,MAAM,IAAM,IASVuV,eAAeC,EACpBnQ,EACA8M,EACAjB,EACAuE,EAAY,EACZxE,EAAQ,IAKR,OAAOtR,OAAMvF,IAAOwF,OAAKC,WAAP,uCAAyD,CACzEhE,OAAQ,CAIN6Z,WAAY,EACZC,YAAatQ,EACbuQ,cAAezD,EACfjB,cACAuE,YACAxE,a,kCClGN,gGAqHOsE,eAAe1C,EAAiBR,GACrC,OAAO1S,OAAMvF,IAAOwF,OAAKC,WAAP,2BAA6C,CAC7DhE,OAAQ,CACNwW,gBAqEC,SAASwD,EAAkB3D,EAAO4D,GACvC,OAAOnW,eAAM,CACX7C,IAAQ8C,OAAKC,WAAP,iCACNC,OAAQ,OACR6B,QAAS,CACP,gBAAiBmU,GAEnBxhB,KAAM4d,IAELxZ,KAAKpE,GACwB,IAArBA,EAAKqB,OAAO0C,KAAa/D,EAAO,MAExC0L,MAAM,IAAM","file":"js/app.f32bde30.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0e181b88\":\"438a66da\",\"chunk-12cf7cf9\":\"39fd299a\",\"chunk-381a4ac8\":\"7c52e2c0\",\"chunk-3f0e6da6\":\"b95d17a0\",\"chunk-4d4ce003\":\"b975103a\",\"chunk-ce5fad4e\":\"89cb647e\",\"chunk-46a54b27\":\"202eeda5\",\"chunk-70011c95\":\"635857da\",\"chunk-cf80b538\":\"46dabc54\",\"chunk-1fc2cab6\":\"b8aab46e\",\"chunk-17e59af6\":\"99f67ec0\",\"chunk-1b5286ce\":\"c286e27e\",\"chunk-1c01919f\":\"fefeb258\",\"chunk-1e142674\":\"2bd3b07f\",\"chunk-211901a0\":\"c3f6d3e3\",\"chunk-23bb39c2\":\"2ed5c627\",\"chunk-2d0cba2a\":\"1ed3382a\",\"chunk-2d209b24\":\"96bb92ea\",\"chunk-35fc5512\":\"b4a27955\",\"chunk-366caaca\":\"08a327bb\",\"chunk-39711067\":\"5ca077f4\",\"chunk-3b763142\":\"66105a1b\",\"chunk-48588634\":\"a2505014\",\"chunk-53e758de\":\"7b2c7af5\",\"chunk-73b7f018\":\"fbf97a22\",\"chunk-7b792013\":\"b0538860\",\"chunk-7f4423f6\":\"f61c3b5f\",\"chunk-8b386d74\":\"2bcfe285\",\"chunk-8b4e1e3c\":\"2b4e8b5a\",\"chunk-aa94f902\":\"21d5616d\",\"chunk-b1ab599e\":\"1e12c05f\",\"chunk-c132d132\":\"a5a1d94b\",\"chunk-16cf85a2\":\"fccb7cae\",\"chunk-e552f154\":\"c444a31c\",\"chunk-f7e34cd4\":\"d93d6484\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0e181b88\":1,\"chunk-12cf7cf9\":1,\"chunk-381a4ac8\":1,\"chunk-3f0e6da6\":1,\"chunk-4d4ce003\":1,\"chunk-ce5fad4e\":1,\"chunk-46a54b27\":1,\"chunk-70011c95\":1,\"chunk-cf80b538\":1,\"chunk-1fc2cab6\":1,\"chunk-17e59af6\":1,\"chunk-1b5286ce\":1,\"chunk-1c01919f\":1,\"chunk-1e142674\":1,\"chunk-211901a0\":1,\"chunk-23bb39c2\":1,\"chunk-35fc5512\":1,\"chunk-366caaca\":1,\"chunk-39711067\":1,\"chunk-3b763142\":1,\"chunk-48588634\":1,\"chunk-53e758de\":1,\"chunk-73b7f018\":1,\"chunk-7b792013\":1,\"chunk-7f4423f6\":1,\"chunk-8b386d74\":1,\"chunk-8b4e1e3c\":1,\"chunk-aa94f902\":1,\"chunk-b1ab599e\":1,\"chunk-c132d132\":1,\"chunk-e552f154\":1,\"chunk-f7e34cd4\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0e181b88\":\"8fa702e7\",\"chunk-12cf7cf9\":\"d24125c0\",\"chunk-381a4ac8\":\"8327d29f\",\"chunk-3f0e6da6\":\"0d644755\",\"chunk-4d4ce003\":\"b5620aa3\",\"chunk-ce5fad4e\":\"f0cb80c8\",\"chunk-46a54b27\":\"dca58a21\",\"chunk-70011c95\":\"d2b2f561\",\"chunk-cf80b538\":\"84328a49\",\"chunk-1fc2cab6\":\"18be7a90\",\"chunk-17e59af6\":\"9dd3ef61\",\"chunk-1b5286ce\":\"01e55dda\",\"chunk-1c01919f\":\"eae13bf3\",\"chunk-1e142674\":\"10ab0a83\",\"chunk-211901a0\":\"938905a8\",\"chunk-23bb39c2\":\"7b6a7ac5\",\"chunk-2d0cba2a\":\"31d6cfe0\",\"chunk-2d209b24\":\"31d6cfe0\",\"chunk-35fc5512\":\"13d04436\",\"chunk-366caaca\":\"50063f63\",\"chunk-39711067\":\"c12658aa\",\"chunk-3b763142\":\"7de19555\",\"chunk-48588634\":\"26d8da3d\",\"chunk-53e758de\":\"4a896b16\",\"chunk-73b7f018\":\"9f12b476\",\"chunk-7b792013\":\"0ec6f7f7\",\"chunk-7f4423f6\":\"04ca178b\",\"chunk-8b386d74\":\"d16fb334\",\"chunk-8b4e1e3c\":\"74e05f63\",\"chunk-aa94f902\":\"be1fd49e\",\"chunk-b1ab599e\":\"7f0a8dde\",\"chunk-c132d132\":\"fc6aadb6\",\"chunk-16cf85a2\":\"31d6cfe0\",\"chunk-e552f154\":\"b2d8a6d2\",\"chunk-f7e34cd4\":\"9e9e3007\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/m/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import appInfo from './appInfo'\r\n\r\n// 声明全局回调\r\nconst WEB_CALLBACK = []\r\nconst onSuccessCache = Object.create(null)\r\nconst onFailCache = Object.create(null)\r\n\r\nwindow.WEB_CALLBACK = WEB_CALLBACK\r\n\r\nwindow.onSuccess = function (params, callbackParams) {\r\n console.info('onSuccess', params, callbackParams)\r\n if (onSuccessCache[callbackParams]) {\r\n onSuccessCache[callbackParams](params)\r\n }\r\n}\r\n\r\nwindow.onFail = function (params, callbackParams) {\r\n console.info('onFail', params, callbackParams)\r\n if (onFailCache[callbackParams]) {\r\n onFailCache[callbackParams](params)\r\n }\r\n}\r\n\r\n/**\r\n * 回调函数代理\r\n */\r\nconst callbackProxy = (params = {}, callbackName = 'callback') => {\r\n const middlewareCallback = params.callback || function () { }\r\n\r\n const callback = json => {\r\n if (typeof json === 'string') {\r\n json = JSON.parse(json)\r\n }\r\n\r\n if (middlewareCallback) {\r\n middlewareCallback(json)\r\n }\r\n }\r\n\r\n if (params.onSuccess || params.onFail) {\r\n const timeStr = new Date().getTime() + ''\r\n params.callbackParams = timeStr\r\n onSuccessCache[timeStr] = params.onSuccess || function () { }\r\n onFailCache[timeStr] = params.onFail || function () { }\r\n } else {\r\n params[callbackName] = `WEB_CALLBACK[${WEB_CALLBACK.push(callback) - 1}]`\r\n }\r\n\r\n if (params.onSuccess) {\r\n delete params.onSuccess\r\n }\r\n\r\n if (params.onFail) {\r\n delete params.onFail\r\n }\r\n\r\n return params\r\n}\r\n\r\n/**\r\n * 和客户端的通用交互方法\r\n *\r\n * @param {string} name - 交互方法的名称\r\n * @param {object} [params={}] - 所传参数\r\n * @returns\r\n */\r\n/* eslint-disable no-unused-vars */\r\nconst EMJSBridge = (name, params = {}) => {\r\n return new Promise((resolve, reject) => {\r\n // 超时\r\n let timeout = null\r\n\r\n const executeNative = () => {\r\n clearTimeout(timeout)\r\n\r\n const middlewareCallback = params.callback || function () { }\r\n\r\n const callback = json => {\r\n let result = json\r\n\r\n if (typeof params === 'string') {\r\n result = JSON.parse(params)\r\n }\r\n\r\n if (middlewareCallback) {\r\n middlewareCallback(result)\r\n }\r\n resolve(result)\r\n }\r\n\r\n params.callback = `WEB_CALLBACK[${WEB_CALLBACK.push(callback) - 1}]`\r\n\r\n window.goods[name](JSON.stringify(params))\r\n }\r\n\r\n if (typeof goods !== 'undefined' && window.goods[name]) {\r\n executeNative()\r\n } else {\r\n const errorMsg = 'goods or goods.' + name + ' is undefined!'\r\n\r\n console.warn(errorMsg)\r\n\r\n const waitTime =\r\n typeof params.timeOut === 'undefined' ? 1000 : params.timeOut\r\n // 如果1s内未触发 goodsReady 事件,则视为失败\r\n timeout = setTimeout(() => {\r\n reject(errorMsg)\r\n }, waitTime)\r\n\r\n // 监听ios goodsReady事件\r\n document.addEventListener('goodsReady', executeNative)\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 与客户端的交互方法集合\r\n *\r\n * @class ym\r\n */\r\nclass ym {\r\n /**\r\n * 调用客户端的登录\r\n * @param {string} [url=location.href] - 登录成功后跳转的地址\r\n */\r\n static login(type = 2) {\r\n console.info('匿名用户跳转登录页面')\r\n this.openurl(`skstock://login?type=${type}`)\r\n }\r\n\r\n /**\r\n * 调用客户端的绑定手机号\r\n */\r\n static bindPhone() {\r\n console.info('实名未绑定手机号跳转绑定手机号页面')\r\n this.openurl('skstock://phonebind')\r\n }\r\n\r\n /**\r\n * 保留当前页面,在新的webview中打开页面\r\n * @param {string} url 要打开的页面地址\r\n */\r\n static openurl(url, data) {\r\n if (!url) {\r\n console.error('请传入要打开的页面地址')\r\n return\r\n }\r\n\r\n if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) {\r\n location.href = url\r\n return\r\n }\r\n\r\n if (typeof window.goods !== 'undefined' && window.goods.openurl) {\r\n if (data) {\r\n window.goods.openurl(url, data)\r\n } else {\r\n window.goods.openurl(url)\r\n }\r\n } else {\r\n const search = location.search\r\n // let url = params.url;\r\n if (url.indexOf('?') > -1) {\r\n url = url + search.replace('?', '&')\r\n } else {\r\n url = url + search\r\n }\r\n // 使用原生打开失败时,尝试使用location直接跳转\r\n location.href = url\r\n }\r\n }\r\n\r\n /**\r\n * 使用系统或第三方浏览器打开网页\r\n * @param {String} url 网页地址\r\n */\r\n static openBrowser(url) {\r\n location.href = `skstock://browser?thirdapp=true&url=${encodeURI(url)}`\r\n }\r\n\r\n /**\r\n * 关闭当前页面(webview)\r\n */\r\n static goback() {\r\n if (window.goods) {\r\n if (window.goods.goback) {\r\n window.goods.goback()\r\n } else if (window.goods.closeWebPage) {\r\n window.goods.closeWebPage()\r\n } else {\r\n console.info('goods.goback and goods.closeWebPage are undefined')\r\n }\r\n } else {\r\n console.warn('goods or goods.goback is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 轻提示(弹出类似于toast的提示框)\r\n * @param {string} text - 提示的内容\r\n */\r\n static showNotify(text) {\r\n if (window.goods) {\r\n if (window.goods.showNotify) {\r\n window.goods.showNotify(text)\r\n } else if (window.goods.showTips) {\r\n window.goods.showTips(text)\r\n } else {\r\n console.info('goods.showNotify and goods.showTips are undefined')\r\n }\r\n } else {\r\n console.info('goods or goods.showNotify is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 打开微信\r\n */\r\n static openWechat() {\r\n if (window.goods && window.goods.openApp && appInfo.platform.Android) {\r\n window.goods.openApp(\r\n JSON.stringify({ pkg: 'com.tencent.mm', url: 'weixin://' })\r\n )\r\n } else {\r\n location.href = `skstock://browser?thirdapp=true&url=${encodeURIComponent(\r\n 'https://appstatic.emoney.cn/html/open-wechat/index.html'\r\n )}`\r\n }\r\n }\r\n\r\n /**\r\n * 打开大图\r\n * @param {string} imageUrl 图片地址\r\n */\r\n static openImageBrowser(imageUrl) {\r\n if (imageUrl) {\r\n // 小图换成大图\r\n imageUrl = imageUrl.replace('_small.', '_big.')\r\n }\r\n\r\n console.info('[ym.openImageBrowser]: 打开大图', imageUrl)\r\n\r\n if (window.goods && window.goods.openImageBroswer) {\r\n window.goods.openImageBroswer(\r\n JSON.stringify({\r\n imgUrl: imageUrl,\r\n startX: 0,\r\n startY: 0,\r\n imgWidth: 100,\r\n imgHeight: 100\r\n })\r\n )\r\n } else {\r\n console.info('goods or goods.openImageBroswer is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * @typedef PlayVideoOptions\r\n * @property { string } videoId 视频id,如果为url,则会尝试自动从url中截取\r\n * @property { number } [type=0] 视屏类型(0:竖屏,1:横屏)\r\n * @property { string } [videoName] 视频名称,即视频播放页面的标题\r\n * @property { string } [category] 视频分类,用于识别并显示视频下面的网页url\r\n * @property { boolean } [float] 是否启用窗口播放\r\n */\r\n\r\n /**\r\n * 播放视频,使用原生播放器\r\n * @param { PlayVideoOptions } options\r\n * @param { Object } [params] 自定义参数\r\n */\r\n static playVideo(options, params) {\r\n let videoId = options.videoId\r\n\r\n if (/^http/.test(options.videoId)) {\r\n videoId = /-([a-z0-9]+)$/i.exec(options.videoId)[1]\r\n }\r\n\r\n if (options.category) {\r\n videoId += `,category:${options.category}`\r\n }\r\n\r\n if (options.videoName) {\r\n videoId += `,VideoName:${encodeURIComponent(options.videoName || '视频')}`\r\n }\r\n\r\n if (params) {\r\n for (const key in params) {\r\n if (Object.prototype.hasOwnProperty.call(params, key)) {\r\n videoId += `,${key}:${params[key]}`\r\n }\r\n }\r\n }\r\n\r\n const url = `skstock://playvideo?id=${videoId}&float=${!!options.float}&type=${options.type ||\r\n 0}`\r\n\r\n console.info('[native] 播放视频:', url)\r\n\r\n location.href = url\r\n }\r\n\r\n /**\r\n * 打开多个个股的行情\r\n * @param {Array} stockids 股票代码列表\r\n * @param {string|number} stockid 当前股票代码\r\n */\r\n static openstocks(stockids, stockid) {\r\n let codeIndex = stockids.indexOf(stockid)\r\n if (codeIndex < 0 || codeIndex > stockids.length - 1) {\r\n codeIndex = 0\r\n }\r\n\r\n const url = `skstock://stock?codes=${stockids}&index=${codeIndex}`\r\n console.info('[native] 打开股票:', url)\r\n\r\n location.href = url\r\n }\r\n\r\n /**\r\n * 打开个股行情\r\n * @param {string|number} stockid 股票代码\r\n */\r\n static openstock(stockid) {\r\n this.openstocks([stockid])\r\n }\r\n\r\n /**\r\n * @callback isGoodsAddedZxgCallback\r\n * @param {Array} goodsIds 加入自选股的股票代码jsonArray\r\n */\r\n\r\n /**\r\n * @typedef isGoodsAddedZxgOption\r\n * @property {Array} goodsIds 需要判断是否加入自选股的股票id,[600600, 600100, 600300]\r\n * @property {isGoodsAddedZxgCallback} callback 客户端判别之后的回调\r\n */\r\n\r\n /**\r\n * 是否已添加到自选股\r\n * @param {isGoodsAddedZxgOption} option\r\n */\r\n static isGoodsAddedZxg(option) {\r\n if (window.goods && window.goods.isGoodsAddedZxg) {\r\n window.goods.isGoodsAddedZxg(JSON.stringify(callbackProxy(option)))\r\n } else {\r\n console.info('goods or goods.isGoodsAddedZxg is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * @typedef controlZxgOption\r\n * @property {number} type 操作类型(1:增加, 2:删除)\r\n * @property {Array} goodsIds 股票id列表[600600, 600100, 600300]\r\n * @property {Function} onSuccess 成功回调\r\n * @property {Function} onFail 失败回调\r\n */\r\n\r\n /**\r\n * 添加/删除 自选股\r\n * @param {controlZxgOption} option\r\n */\r\n static controlZxg(option) {\r\n if (window.goods && window.goods.controlZxg) {\r\n window.goods.controlZxg(JSON.stringify(callbackProxy(option)))\r\n } else {\r\n console.info('goods or goods.controlZxg is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 重定向到指定页面\r\n * @param {string} url url地址\r\n */\r\n static redirect(url) {\r\n if (history.replaceState) {\r\n history.replaceState(undefined, '', url)\r\n history.go(0)\r\n } else {\r\n location.replace(url)\r\n }\r\n }\r\n}\r\n\r\nif (typeof window !== 'undefined') {\r\n window.ym = ym\r\n}\r\n\r\nexport default ym\r\n","import axios from '@/assets/js/axios'\r\nimport Urls from '@/assets/js/Urls'\r\n\r\n/**\r\n * 获取用户所有有效权限\r\n * @return {*}\r\n */\r\nexport function getAllRightList() {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Right/List/All`,\r\n method: 'get'\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => [])\r\n}\r\n\r\n/**\r\n * 获取用户某个产品的有效权限\r\n * @param {number} productId 产品id\r\n * @return {*}\r\n */\r\nexport function getRightByProductId(productId) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Right/List/Product`,\r\n method: 'get',\r\n params: {\r\n productId\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\nexport function getRightGroups() {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Right/List/Groups`,\r\n method: 'get'\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data : null\r\n })\r\n .catch(() => [])\r\n}\r\n","/**\r\n * 支付方式\r\n * @type {{aliPay: number, caiBi: number, weXin: number, unKnow: number}}\r\n */\r\nexport const PaymentMethods = {\r\n /**\r\n * 未知(此时一般用于创建订单尚未支付阶段,支付成功后更新状态)\r\n */\r\n unKnow: 0,\r\n /**\r\n * 微信\r\n */\r\n weXin: 1,\r\n /**\r\n * 支付宝\r\n */\r\n aliPay: 2,\r\n /**\r\n * 财币\r\n */\r\n caiBi: 3,\r\n /**\r\n * 苹果支付\r\n */\r\n apple: 4\r\n}\r\n","/* eslint-disable indent */\r\nconst Urls = {\r\n DOMAIN_YKT:\r\n process.env.VUE_APP_ENV === 'test'\r\n ? 'https://mobilelan.emoney.cn/yktapi'\r\n : process.env.VUE_APP_ENV === 'staging'\r\n ? 'https://yktpre.emoney.cn/yktapi'\r\n : 'https://yktapi.emoney.cn/',\r\n DOMAIN_STATIC:\r\n process.env.VUE_APP_ENV === 'test'\r\n ? 'https://mobilelan.emoney.cn/yktstatic'\r\n : process.env.VUE_APP_ENV === 'staging'\r\n ? 'https://yktpre.emoney.cn/yktstatic'\r\n : 'https://yktstatic.emoney.cn/',\r\n DOMAIN_YOUKANTOUWAP:\r\n process.env.VUE_APP_ENV === 'test'\r\n ? 'https://mobilelan.emoney.cn/youkantou/m'\r\n : process.env.VUE_APP_ENV === 'staging'\r\n ? 'https://yktpre.emoney.cn/youkantou/m'\r\n : 'https://youkantou.emoney.cn/m'\r\n}\r\n\r\nexport default Urls\r\n","import md5 from 'js-md5'\r\nimport uuid from 'node-uuid'\r\nconst HtmlApiKey = 'ykt.html'\r\nconst HtmlSecret = 'no.secret'\r\n/**\r\n * html加个简单的签名\r\n * @param {*} config 请求配置\r\n */\r\nconst sign = config => {\r\n const header = {\r\n 'Emapp-ApiKey': HtmlApiKey,\r\n 'Emapp-Timestamp': new Date().valueOf(),\r\n 'Emapp-Nonce': uuid.v1()\r\n }\r\n\r\n const signStr = `${header['Emapp-Nonce']}${header['Emapp-Timestamp']}${HtmlSecret}`\r\n header['Emapp-Sign'] = md5(signStr).toLowerCase()\r\n return header\r\n}\r\n\r\nexport default sign\r\n","import axios from 'axios'\r\nimport store from '@/store'\r\nimport sign from '@/assets/js/sign'\r\n\r\n// 请求发起前拦截器\r\naxios.interceptors.request.use(\r\n config => {\r\n // 拼接通用的参数\r\n // config.params = {\r\n // 'Ykt-Token': appInfo.token,\r\n // ...config.params\r\n // }\r\n var signValues = sign(config)\r\n console.log(signValues)\r\n config.headers = {\r\n ...config.headers,\r\n ...signValues,\r\n 'Ykt-Token': store.state.auth.loginInfo\r\n ? store.state.auth.loginInfo.token\r\n : ''\r\n }\r\n return config\r\n },\r\n error => {\r\n // 异常处理\r\n return Promise.resolve({\r\n result: {\r\n code: -100,\r\n error\r\n }\r\n })\r\n }\r\n)\r\n\r\n// 响应拦截\r\naxios.interceptors.response.use(\r\n ({ data }) => {\r\n // 这里返回的 response.data 是被 axios 包装过的一成,所以在这里抽取出来\r\n\r\n // 22200 token失效 22208未登录\r\n if (data.result.code === 22200 || data.result.code === 22208) {\r\n store.dispatch('auth/logout')\r\n }\r\n return data\r\n },\r\n error => {\r\n return Promise.resolve({\r\n result: {\r\n code: -100,\r\n error\r\n }\r\n })\r\n }\r\n)\r\n\r\n// 导出\r\nexport default axios\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Result.vue?vue&type=style&index=0&id=359eddb0&prod&lang=scss&scoped=true\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=716fded5&prod&lang=scss\"","// import UserLogin from '@/components/UserLogin'\r\n\r\nexport const namespaced = true\r\n\r\nexport const state = () => ({\r\n loginInfo: null\r\n})\r\n\r\nexport const getters = {\r\n /**\r\n * 是否登录\r\n * @param state\r\n * @return {boolean}\r\n */\r\n isLogin: state => {\r\n let _isLogin = false\r\n\r\n if (state.loginInfo && state.loginInfo.token) {\r\n _isLogin = true\r\n }\r\n\r\n return _isLogin\r\n },\r\n isWxLogin: () => {\r\n return !!localStorage.getItem('wxAppId')\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n /**\r\n * 设置登录信息\r\n * @param state\r\n * @param {Object} loginInfo 登录信息\r\n */\r\n setLoginInfo(state, loginInfo) {\r\n state.loginInfo = loginInfo\r\n }\r\n}\r\n\r\nexport const actions = {\r\n /**\r\n * 登录\r\n */\r\n login() {\r\n // UserLogin.show()\r\n },\r\n /**\r\n * 退出登录\r\n */\r\n logout({ commit }) {\r\n commit('setLoginInfo', null)\r\n commit('user/setUserInfo', null, { root: true })\r\n\r\n history.go(0)\r\n },\r\n ensureLogin({ dispatch, getters }, callback) {\r\n if (!getters.isLogin) {\r\n const next = () => {\r\n dispatch('login')\r\n }\r\n\r\n if (callback) {\r\n callback(next)\r\n } else {\r\n next()\r\n }\r\n }\r\n\r\n return getters.isLogin\r\n }\r\n}\r\n","import { getUserInfo } from '@/api/account'\r\nimport { getBalance } from '@/api/vcurrency'\r\n\r\nexport const namespaced = true\r\n\r\nexport const state = () => ({\r\n /**\r\n * 用户基础信息\r\n */\r\n userInfo: null,\r\n /**\r\n * 财币数量\r\n */\r\n balance: { assetType: 0, balance: 0 }\r\n})\r\n\r\nexport const getters = {\r\n userInfo: state => {\r\n return state.userInfo\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n setUserInfo: function(state, userInfo) {\r\n state.userInfo = userInfo\r\n },\r\n setBalance: function(state, balance) {\r\n state.balance = balance\r\n }\r\n}\r\n\r\nexport const actions = {\r\n async getUserInfo({ state, commit }, flush = true) {\r\n if (flush || !state.userInfo) {\r\n const userInfo = await getUserInfo()\r\n\r\n commit('setUserInfo', userInfo)\r\n }\r\n },\r\n async getBalance({ commit }) {\r\n const balances = await getBalance()\r\n\r\n const balance = balances.find(value => value.assetType === 0)\r\n\r\n commit('setBalance', balance)\r\n }\r\n}\r\n","import { getAllRightList } from '@/api/right'\r\n\r\nexport const namespaced = true\r\n\r\nexport const state = () => ({\r\n allRightList: []\r\n})\r\n\r\nexport const getters = {\r\n hasRight: state => productId => {\r\n return !!~state.allRightList.findIndex(item => item.productId === productId)\r\n },\r\n rightInfo: state => productId => {\r\n return state.allRightList.find(item => item.productId === productId)\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n setAllRightList: function(state, allRightList) {\r\n state.allRightList = allRightList\r\n }\r\n}\r\n\r\nexport const actions = {\r\n async getAllRightList({ state, commit }, flush = true) {\r\n if (flush || !state.allRightList) {\r\n const allRightList = await getAllRightList()\r\n\r\n commit('setAllRightList', allRightList)\r\n }\r\n }\r\n}\r\n","import http from './http'\r\n\r\nclass Comment {\r\n commitComment(params) {\r\n let url = '/Comments/Comments/CreateComments'\r\n return http.post(url, params)\r\n }\r\n\r\n getComments(params = {}) {\r\n let url = '/Comments/Comments/GetComments'\r\n return http.post(url, params)\r\n }\r\n\r\n getSubComments(params = {}) {\r\n let url = '/Comments/Comments/GetSubComments'\r\n return http.post(url, params)\r\n }\r\n\r\n deleteComment(commentId = '') {\r\n let url = '/Comments/Comments/DeleteComment'\r\n let params = {\r\n commentId: commentId\r\n }\r\n return http.post(url, params)\r\n }\r\n\r\n getCommentList(params = {}) {\r\n let url = '/Comments/Comments/List'\r\n return http.post(url, params)\r\n }\r\n\r\n //分页获取直播评论\r\n getLiveComments(params = {}) {\r\n let url = '/Comments/Api/Page'\r\n return http.post(url, params)\r\n }\r\n\r\n //直播评论\r\n commitLiveComment(params = {}) {\r\n let url = '/Comments/Api/Comment'\r\n return http.post(url, params)\r\n }\r\n}\r\n\r\nexport default new Comment()\r\n","// import api from '@/api/api'\r\nimport commentApi from '@/api/comment'\r\nimport dayjs from 'dayjs'\r\n\r\nconst state = {\r\n comments: [],\r\n subComments: [],\r\n inputType: 0\r\n}\r\n\r\nconst mutations = {\r\n setComments: (state, comments) => {\r\n state.comments = comments\r\n },\r\n setSubComments: (state, comments) => {\r\n state.subComments = comments\r\n },\r\n\r\n deleteComment: (state, commentId) => {\r\n const comments = state.comments.filter(item => {\r\n return item.id !== commentId\r\n })\r\n state.comments = comments\r\n },\r\n\r\n deleteSubComment: (state, commentId) => {\r\n const comments = state.subComments.filter(item => {\r\n return item.id !== commentId\r\n })\r\n state.subComments = comments\r\n },\r\n\r\n setInputType: (state, type) => {\r\n state.inputType = type\r\n }\r\n}\r\n\r\nconst actions = {\r\n commitComment({ commit }, params) {\r\n console.log('=====commit comment', commit)\r\n return commentApi.commitComment(params).then(res => {\r\n return res.result\r\n })\r\n },\r\n\r\n getComments({ commit }, params) {\r\n params = {\r\n ...params,\r\n pageSize: 1000\r\n }\r\n\r\n return commentApi.getComments(params).then(res => {\r\n commit('setComments', parseComments(res.detail.list))\r\n return res\r\n })\r\n },\r\n\r\n getSubComments({ commit }, params) {\r\n params = {\r\n ...params,\r\n pageSize: 1000\r\n }\r\n\r\n return commentApi.getSubComments(params).then(res => {\r\n commit('setSubComments', parseComments(res.detail.list))\r\n })\r\n },\r\n\r\n deleteComment({ commit }, commentId) {\r\n console.log('=====delete comment', commit)\r\n return commentApi.deleteComment(commentId).then(res => {\r\n return res.result\r\n })\r\n },\r\n getCommentList({ commit }, params) {\r\n params = {\r\n ...params,\r\n pageSize: 1000\r\n }\r\n\r\n return commentApi.getCommentList(params).then(res => {\r\n commit('setComments', parseComments(res.detail.list))\r\n return res\r\n })\r\n },\r\n getLiveComments({ commit }, params) {\r\n return commentApi.getLiveComments(params).then(res => {\r\n return res\r\n })\r\n },\r\n commitLiveComment({ commit }, params) {\r\n return commentApi.commitLiveComment(params).then(res => {\r\n return res\r\n })\r\n }\r\n}\r\n\r\nconst parseComments = items => {\r\n if (items == undefined || items.length == 0) {\r\n return []\r\n }\r\n console.log('=======comments', items)\r\n return items.map(item => {\r\n item.createTime = dayjs(item.createTime).format('MM-DD HH:mm')\r\n return item\r\n })\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n","import http from '@/api/http'\r\n\r\nconst state = {\r\n followResp: Object\r\n}\r\n\r\nconst mutations = {\r\n setfollowResp: (state, resp) => {\r\n state.followResp = resp\r\n }\r\n}\r\n\r\nconst actions = {\r\n requestfollow({ commit }, params) {\r\n let url = '/Account/User/Follow'\r\n return http.post(url, params).then(res => {\r\n commit('setfollowResp', res)\r\n })\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n","import http from '@/api/http'\r\n\r\nconst state = () => ({\r\n resp: Object,\r\n playInfo: Object,\r\n currentVideo: String,\r\n respReport: Object,\r\n playState: Boolean\r\n})\r\n\r\nconst mutations = {\r\n setPlayState: (state, playState) => {\r\n state.playState = playState\r\n },\r\n setResp: (state, resp) => {\r\n state.resp = resp\r\n },\r\n setPlayInfo: (state, playInfo) => {\r\n state.playInfo = playInfo\r\n },\r\n setCurrentVideo: (state, videoIdentity) => {\r\n state.currentVideo = videoIdentity\r\n },\r\n setrespReport: (state, respReport) => {\r\n state.respReport = respReport\r\n },\r\n setProgress: (state, progress) => {\r\n state.progress = progress\r\n }\r\n}\r\n\r\nconst actions = {\r\n request({ commit }, params) {\r\n let url = '/Course/api/SetDetail'\r\n return http.post(url, params).then(res => {\r\n commit('setResp', res)\r\n })\r\n },\r\n requestVideo({ commit }, params) {\r\n let url = '/Course/api/playinfo'\r\n commit('setCurrentVideo', params.videoIdentity)\r\n return http.post(url, params).then(res => {\r\n commit('setPlayInfo', res)\r\n })\r\n },\r\n requestUploadProgress({ commit, state }, params) {\r\n let courses = state.resp.detail.courses.page.list\r\n for (let i = 0; i < courses.length; i++) {\r\n let v = courses[i]\r\n if (v.videoIdentity === params.videoIdentity) {\r\n v.progress = params.progress\r\n }\r\n }\r\n commit('setProgress', params.progress)\r\n\r\n let url = '/Course/Progress/Report'\r\n return http.post(url, params).then(resp => {\r\n commit('setrespReport', resp)\r\n })\r\n },\r\n //订阅课\r\n requestDetail({ commit }, params) {\r\n let url = '/Course/Subscribe/SetDetail'\r\n return http.post(url, params).then(res => {\r\n commit('setResp', res)\r\n })\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n","export const namespaced = true\r\n\r\nexport const state = () => ({\r\n streamObj: {}\r\n})\r\n\r\nexport const getters = {\r\n streamObj: state => {\r\n return state.streamObj\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n setStreamObj: function(state, streamObj) {\r\n state.streamObj = streamObj\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport createPersistedState from 'vuex-persistedstate'\r\nimport * as auth from './modules/auth'\r\nimport * as user from './modules/user'\r\nimport * as right from './modules/right'\r\nimport comment from './modules/comment'\r\nimport follow from './modules/follow'\r\nimport video from './modules/video'\r\nimport * as live from './modules/live'\r\nimport appInfo from '@/assets/js/appInfo'\r\n\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n modules: {\r\n auth,\r\n user,\r\n right,\r\n comment,\r\n follow,\r\n video,\r\n live\r\n },\r\n state: () => ({}),\r\n mutations: {},\r\n plugins: [\r\n createPersistedState({\r\n key:\r\n 'ykt' +\r\n (appInfo.getParam('appId') ||\r\n localStorage.getItem('currentAppId') ||\r\n 33)\r\n })\r\n ]\r\n})\r\n\r\nexport default store\r\n","import ym from './ym'\r\n\r\n/* eslint-disable no-inner-declarations */\r\nlet appInfo = Object.create(null)\r\n\r\n/**\r\n * 转化为int类型\r\n * 如果不是无法转换为有效的int类型,则返回空字符串\r\n */\r\nfunction parseToInt(num) {\r\n if (!num) return ''\r\n num = parseInt(num, 10)\r\n return isNaN(num) ? '' : num\r\n}\r\n\r\nconst platform = (() => {\r\n if (typeof window === 'undefined') {\r\n return {}\r\n }\r\n\r\n const u = navigator.userAgent\r\n return {\r\n iOS: /ipad|iphone|mac/i.test(u),\r\n Android: /android/i.test(u),\r\n Weixin: /micromessenger/i.test(u)\r\n }\r\n})()\r\n\r\n/**\r\n * 解析url param\r\n */\r\nfunction getQueryStringArgs() {\r\n if (typeof window === 'undefined') {\r\n return {}\r\n }\r\n\r\n const qs = location.search.length > 0 ? location.search.substring(1) : ''\r\n const args = {}\r\n const items = qs.length ? qs.split('&') : []\r\n let item = null\r\n let name = null\r\n let value = null\r\n let i = 0\r\n const len = items.length\r\n const regx = new RegExp('(.*)=([^$].*)$', 'i')\r\n\r\n for (i = 0; i < len; i++) {\r\n item = items[i].match(regx)\r\n if (!item) {\r\n continue\r\n }\r\n // decodeURIComponent解码\r\n name = decodeURIComponent(item[1])\r\n // 移除某些版本的意外字符(换行符)\r\n const s = item[2].replace(/%0A/g, '')\r\n value = decodeURIComponent(s)\r\n if (name.length && !args[name]) {\r\n args[name] = value\r\n }\r\n }\r\n\r\n return args\r\n}\r\n\r\nconst refreshAppInfoCallbacks = []\r\n\r\n/**\r\n * 调用客户端的goods.getClientInfo方法,获取用户基础的信息\r\n * @param callback {Function} 用户信息刷新后的回调\r\n */\r\nfunction getClientInfo(callback = () => {}) {\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n\r\n refreshAppInfoCallbacks.push(callback)\r\n\r\n if (refreshAppInfoCallbacks.length > 1) {\r\n return\r\n }\r\n\r\n const callbackMiddleware = result => {\r\n refreshAppInfoCallbacks.forEach(callback => callback(result))\r\n refreshAppInfoCallbacks.length = 0\r\n }\r\n\r\n window.WEB_CALLBACK_APPINFO = json => {\r\n let result = json\r\n if (typeof json === 'string') {\r\n result = JSON.parse(json)\r\n }\r\n\r\n updateAppInfo(result)\r\n\r\n callbackMiddleware(result)\r\n }\r\n\r\n let result\r\n\r\n const loadAppinfo = () => {\r\n if (window.goods.getAppInfo || window.goods.getClientInfo) {\r\n try {\r\n if (window.goods.getClientInfo) {\r\n window.goods.getClientInfo('WEB_CALLBACK_APPINFO')\r\n } else {\r\n result = window.goods.getAppInfo(\r\n JSON.stringify({\r\n callback: 'WEB_CALLBACK_APPINFO'\r\n })\r\n )\r\n }\r\n } catch (err) {\r\n result = window.goods.getAppInfo()\r\n }\r\n if (result) {\r\n result = typeof result === 'string' ? JSON.parse(result) : result\r\n updateAppInfo(result)\r\n callbackMiddleware(result)\r\n }\r\n }\r\n }\r\n\r\n if (window.goods) {\r\n loadAppinfo()\r\n } else {\r\n callbackMiddleware(result)\r\n }\r\n}\r\n\r\n/**\r\n * 更新app信息\r\n *\r\n * @param {object} target\r\n *\r\n * @memberOf appInfo\r\n */\r\nfunction updateAppInfo(target) {\r\n const app = {}\r\n\r\n for (const key in target) {\r\n if (Object.hasOwnProperty.call(target, key)) {\r\n const element = target[key]\r\n if (element !== null && element !== '') {\r\n // 键值全部转换为小写,防止部分参数小写部分大写的异常情况\r\n app[key.toLowerCase()] = target[key]\r\n }\r\n }\r\n }\r\n\r\n appInfo = { ...appInfo, ...app }\r\n}\r\n\r\nfunction getParam(name) {\r\n // 键值全部转换为小写,防止部分参数小写部分大写的异常情况\r\n const result = appInfo[name.toLocaleLowerCase()]\r\n return result !== undefined ? result : ''\r\n}\r\n\r\n// 初始化参数\r\nupdateAppInfo(getQueryStringArgs())\r\n\r\nexport default {\r\n /**\r\n * 是否为手机号实名登陆\r\n *\r\n * @memberOf appInfo\r\n */\r\n get isPhone() {\r\n const loginType = parseInt(getParam('loginType'), 10)\r\n const isPhoneNum = getParam('isPhoneNum')\r\n\r\n return loginType === 2 && (isPhoneNum || isPhoneNum === '')\r\n },\r\n /**\r\n * 是否为实名登录\r\n */\r\n get isLogin() {\r\n const loginType = this.loginType\r\n return !(loginType === '' || loginType === 4)\r\n },\r\n /**\r\n * 是否已绑定手机号\r\n */\r\n get isBindPhone() {\r\n return this.loginType === 2 || getParam('hasBindPhone')\r\n },\r\n /**\r\n * 检查是否为手机号登录或者第三方绑定手机号,如果不是则自动跳转登录\r\n */\r\n get checkBindPhone() {\r\n let isBindPhone = true\r\n if (!this.isLogin) {\r\n ym.login()\r\n isBindPhone = false\r\n } else if (!this.isPhone && !getParam('hasBindPhone')) {\r\n ym.bindPhone()\r\n isBindPhone = false\r\n }\r\n return isBindPhone\r\n },\r\n /**\r\n * 是否为益盟号登录\r\n */\r\n get isEmLogin() {\r\n return this.loginType === 0\r\n },\r\n\r\n /**\r\n * 老版token\r\n */\r\n get webAuthToken() {\r\n let token = getParam('webAuthToken')\r\n\r\n if (!token) {\r\n return ''\r\n }\r\n\r\n if (platform.Android) {\r\n token = decodeURIComponent(token)\r\n }\r\n\r\n return token\r\n },\r\n\r\n /**\r\n * 新版token\r\n */\r\n get emoneyToken() {\r\n return getParam('emoneyToken') || getParam('token')\r\n },\r\n\r\n /**\r\n * 益盟股票token\r\n */\r\n get token() {\r\n const token = getParam('token') || getParam('emoneyToken')\r\n\r\n return token || ''\r\n },\r\n\r\n /**\r\n * 版本\r\n */\r\n get mv() {\r\n const currentMv = getParam('mv') || getParam('appVersion')\r\n\r\n return currentMv\r\n },\r\n\r\n /**\r\n * 比较当前版本是否大于或等于目标版本\r\n * @param {string} targetMv - 目标版本\r\n * @param {string} [currentMv] - 当前版本\r\n * @param {boolean} [isIncludeEqual] - 是否包含等于\r\n */\r\n compareMv(targetMv, currentMv, isIncludeEqual = true) {\r\n if (!targetMv) {\r\n console.warn('版本比对异常:请传入要比对的版本')\r\n return\r\n }\r\n\r\n if (typeof currentMv === 'boolean') {\r\n isIncludeEqual = currentMv\r\n currentMv = undefined\r\n }\r\n\r\n let isSupport = false\r\n currentMv = currentMv || this.mv\r\n\r\n if (targetMv === currentMv) {\r\n isSupport = isIncludeEqual\r\n } else {\r\n const targetMvArr = targetMv.split('.')\r\n const currentMvArr = currentMv.split('.')\r\n if (currentMvArr.length === targetMvArr.length) {\r\n for (let i = 0; i < currentMvArr.length; i++) {\r\n if (currentMvArr[i] !== targetMvArr[i]) {\r\n isSupport = +currentMvArr[i] > +targetMvArr[i]\r\n break\r\n }\r\n }\r\n } else {\r\n isSupport = currentMvArr.length > targetMvArr.length\r\n }\r\n }\r\n\r\n return isSupport\r\n },\r\n\r\n /**\r\n * 平台\r\n * 2 - 益盟经典版\r\n * 4 - 益盟股票\r\n * 15 - 益盟加强版\r\n */\r\n get pd() {\r\n return (\r\n parseToInt(getParam('pd') || getParam('pid') || getParam('appId')) || 4\r\n )\r\n },\r\n\r\n /**\r\n * 平台号\r\n * 9 - 安卓\r\n * 10 - 苹果\r\n */\r\n get ar() {\r\n let ar = getParam('ar')\r\n const platform = getParam('platform')\r\n\r\n if (!ar && platform) {\r\n ar = platform === 'android' ? '10' : '9'\r\n }\r\n\r\n return parseToInt(ar)\r\n },\r\n\r\n /**\r\n * 渠道号\r\n */\r\n get vd() {\r\n return parseToInt(getParam('vd') || getParam('channelId'))\r\n },\r\n\r\n /**\r\n * 登录类型\r\n * 2 - 手机号登录\r\n * 0 - 匿名登录\r\n */\r\n get loginType() {\r\n return parseToInt(getParam('loginType'))\r\n },\r\n\r\n /**\r\n * 是否为夜间模式\r\n * @returns {boolean} true-夜间模式\r\n */\r\n get isNight() {\r\n const css = getParam('css')\r\n return css === 'b' || css === 'night'\r\n },\r\n\r\n platform,\r\n getParam,\r\n updateAppInfo,\r\n getClientInfo\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view'),_c('van-popup',{attrs:{\"close-on-click-overlay\":false},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"tips\"},[_vm._v(\"请竖屏查看\")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=716fded5\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=716fded5&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\r\n * 自定义事件\r\n */\r\n\r\nlet eventList = Object.create(null)\r\n\r\nwindow.eventList = eventList\r\n\r\n/**\r\n * 监听事件\r\n * @param {string} name 事件名称\r\n * @param {function} handler 事件触发时的回调函数\r\n * @return {}\r\n */\r\nconst onEventHandler = (name, handler) => {\r\n return (\r\n (\r\n eventList[name.toLowerCase()] || (eventList[name.toLowerCase()] = [])\r\n ).push(handler) - 1\r\n )\r\n}\r\n\r\n/**\r\n * 取消监听事件\r\n * @param {string} name 事件名称\r\n * @param {number|function} handler\r\n */\r\nconst offEventHandler = (name, handler) => {\r\n const key = name.toLowerCase()\r\n if (eventList[key]) {\r\n eventList[key].splice(\r\n typeof handler === 'number'\r\n ? handler\r\n : eventList[key].indexOf(handler) >>> 0,\r\n 1,\r\n undefined\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * 取消全部的事件监听\r\n * 如name不为空,则取消所有name事件的监听\r\n * @param {string} [name] 事件名称\r\n */\r\nconst offAllEventHandler = name => {\r\n name\r\n ? (eventList[name.toLowerCase()] = [])\r\n : (eventList = Object.create(null))\r\n}\r\n\r\n/**\r\n * 触发事件\r\n */\r\nconst emitEventHandler = (name, evt) => {\r\n ;(eventList[name.toLowerCase()] || []).map(handler => handler && handler(evt))\r\n}\r\n\r\n/**\r\n * 监听页面激活事件\r\n * @param handler 页面激活时的回调\r\n * @param timeout 延迟监听的时长,默认为1000毫秒,防止页面加载时被执行\r\n */\r\nexport const $onResume = (handler, timeout = 1000) => {\r\n let isInit = false\r\n const middlewareCallback = () => {\r\n isInit && handler()\r\n }\r\n const resumeIndex = onEventHandler('resume', middlewareCallback)\r\n setTimeout(() => (isInit = true), timeout)\r\n\r\n return resumeIndex\r\n}\r\nexport const $offResume = handler => offEventHandler('resume', handler)\r\n\r\nexport const $onPause = handler => onEventHandler('pause', handler)\r\nexport const $offPause = handler => offEventHandler('pause', handler)\r\n\r\nconst emitResumeEventHandler = () => {\r\n console.info('onResume running!')\r\n emitEventHandler('resume')\r\n}\r\nconst emitPauseEventHandler = () => {\r\n console.info('onPause running!')\r\n emitEventHandler('pause')\r\n}\r\n\r\n/**\r\n * 页面激活时,由客户端调用\r\n */\r\nwindow.onResume = window.onResume\r\n ? ($onResume(window.onResume), emitResumeEventHandler)\r\n : emitResumeEventHandler\r\n/**\r\n * 离开页面时,由客户端调用\r\n */\r\nwindow.onPause = window.onPause\r\n ? ($onPause(window.onPause), emitPauseEventHandler)\r\n : emitPauseEventHandler\r\n\r\nexport const $eventEmitter = {\r\n on: onEventHandler,\r\n off: offEventHandler,\r\n offAll: offAllEventHandler,\r\n emit: emitEventHandler\r\n}\r\n\r\nexport default {\r\n install(Vue) {\r\n // 添加实例方法\r\n Vue.prototype.$eventEmitter = $eventEmitter\r\n\r\n Vue.prototype.$onResume = $onResume\r\n Vue.prototype.$offResume = $offResume\r\n\r\n Vue.prototype.$onPause = $onPause\r\n Vue.prototype.$offPause = $offPause\r\n }\r\n}\r\n","export default {\r\n install(Vue) {\r\n Vue.prototype.$log = {\r\n pageView: params => {\r\n if (typeof window !== 'undefined' && window.Log) {\r\n window.Log.pageView(params)\r\n }\r\n },\r\n click: params => {\r\n if (typeof window !== 'undefined' && window.Log) {\r\n window.Log.click(params)\r\n }\r\n },\r\n setDebug: () => {\r\n if (typeof window !== 'undefined' && window.Log) {\r\n window.Log.setDebug()\r\n console.warn('打点日志已经开启debug模式,生产环境下务必关闭!')\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from '@/store'\r\nimport eventEmitter from '@/plugins/eventEmitter.js'\r\nimport log from '@/plugins/log.js'\r\n\r\nimport {\r\n List,\r\n Swipe,\r\n SwipeItem,\r\n Lazyload,\r\n Dialog,\r\n Toast,\r\n RadioGroup,\r\n Radio,\r\n Loading,\r\n Empty,\r\n CellGroup,\r\n Cell,\r\n Popup\r\n} from 'vant'\r\nimport echarts from 'echarts'\r\nimport Vuex from 'vuex'\r\nimport VueCompositionApi from '@vue/composition-api'\r\nVue.prototype.$echarts = echarts\r\n// 引入自定义事件\r\nVue.use(eventEmitter)\r\n\r\nVue.use(VueCompositionApi)\r\n// 打点\r\nVue.use(log)\r\n\r\nVue.use(Vuex)\r\n\r\nVue.use(List)\r\nVue.use(Swipe)\r\nVue.use(SwipeItem)\r\nVue.use(Dialog)\r\nVue.use(Lazyload)\r\nVue.use(Dialog)\r\nVue.use(Toast)\r\nVue.use(RadioGroup)\r\nVue.use(Radio)\r\nVue.use(Loading)\r\nVue.use(Empty)\r\nVue.use(CellGroup)\r\nVue.use(Cell)\r\nVue.use(Popup)\r\n\r\nVue.filter('formatNumber', function (value, unit = '', abs, digit = 2, noNeed = true) {\r\n if (value === undefined) return '--'\r\n\r\n // 100%不要尾数\r\n if (value === 100 && unit === '%') {\r\n digit = 0\r\n }\r\n let result\r\n\r\n const absValue = Math.abs(value)\r\n\r\n if (absValue >= 1e8) {\r\n result = (Math.round(value / 1e6) / 100).toFixed(2) + (noNeed ? '亿' : '')\r\n } else if (absValue >= 1e4) {\r\n result = (Math.round(value / 1e2) / 100).toFixed(0) + (noNeed ? '万' : '')\r\n } else if (abs) {\r\n result = Math.abs(value).toFixed(digit) + ''\r\n } else {\r\n result = value.toFixed(digit) + ''\r\n }\r\n\r\n return result + unit\r\n})\r\n\r\nconst FastClick = require('@em/fastclick')\r\nFastClick.attach(document.body)\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","import axios from '@/assets/js/axios'\r\nimport Urls from '@/assets/js/Urls'\r\n\r\n/**\r\n * 获取登录验证码\r\n * @return {*}\r\n */\r\nexport function sendSmsCode(phone, imageKey, imageCode) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/Auth/SendSmsCode`,\r\n method: 'get',\r\n params: {\r\n accType: 2,\r\n accId: phone,\r\n imageKey,\r\n imageCode\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 获取登录验证码\r\n * @return {*}\r\n */\r\nexport function getVerificationImage() {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/Auth/getVerificationImage`,\r\n method: 'get'\r\n })\r\n}\r\n\r\n/**\r\n * 登录\r\n * @return {*}\r\n */\r\nexport function login(phone, password, appId = 28, extendToken, appVersion) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/Auth/Login`,\r\n method: 'get',\r\n params: {\r\n accType: 2,\r\n accId: phone,\r\n pwd: password,\r\n appId: appId,\r\n extendToken: extendToken,\r\n appVersion\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 获取热门管理人(又名讲师、大咖)\r\n * @return {*}\r\n */\r\nexport function getHotAuthors(limit = 0) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/Author/HotAuthors`,\r\n method: 'get',\r\n params: {\r\n limit: limit\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * 获取当前用户信息\r\n */\r\nexport function getUserInfo() {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/User/Info`,\r\n method: 'get'\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\nexport function updateUserNickAvatar(avatar, nick) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/User/Update`,\r\n method: 'post',\r\n data: {\r\n avatar: avatar,\r\n nick: nick\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * 关注\r\n * @param {string} authorId id\r\n * @param {number} follow 1 关注 0 取消关注\r\n * @return {Promise<* | null>}\r\n */\r\nexport function followAuthor(authorId, follow) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/User/Follow`,\r\n method: 'post',\r\n data: {\r\n authorId,\r\n follow\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : false\r\n })\r\n .catch(() => false)\r\n}\r\n\r\n/**\r\n * 获取明星大咖\r\n * @return {*}\r\n */\r\nexport function getStarAuthors(type) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/Author/GetStarAuthors`,\r\n method: 'get',\r\n params: {\r\n type: type\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * 获取微信授权重定向地址\r\n */\r\nexport function getAuthorizeUrl(appId = '', url = '', source = '') {\r\n if (appId === '') {\r\n appId = localStorage.getItem('currentAppId')\r\n }\r\n if (url === '') {\r\n const href = window.location.href\r\n const index = href.lastIndexOf('/')\r\n const url_start = href.substr(0, index)\r\n url = url_start + '/login'\r\n if (source != '') {\r\n url += '?source=' + encodeURI(source)\r\n }\r\n }\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/WeChat/GetAuthorizeUrl`,\r\n method: 'get',\r\n params: {\r\n appId: appId,\r\n url: url\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * code换取微信扩展token\r\n */\r\nexport function getExtendToken(appId = '', code) {\r\n if (appId === '') {\r\n appId = localStorage.getItem('currentAppId')\r\n }\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/WeChat/GetExtendToken`,\r\n method: 'get',\r\n params: {\r\n appId: appId,\r\n code: code\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * 获取微信appid\r\n */\r\nexport function getWeChatAppId(appId = '') {\r\n if (appId === '') {\r\n appId = localStorage.getItem('currentAppId')\r\n }\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Account/WeChat/GetWeChatAppId`,\r\n method: 'get',\r\n params: {\r\n appId: appId\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"result\"},[_c('div',{staticClass:\"icon-success\"}),_c('div',{staticClass:\"s7 t1\"},[_vm._v(\"支付成功\")]),_c('div',{staticClass:\"price\"},[_c('strong',{staticClass:\"s17 t1\"},[_vm._v(_vm._s(_vm.price))]),(_vm.isCaiBi)?_c('span',{staticClass:\"s4 t1\"},[_vm._v(\"财币\")]):_vm._e()]),(_vm.isCaiBi && _vm.balance)?_c('div',{staticClass:\"s6 t3\"},[_vm._v(\"剩余财币:\"+_vm._s(_vm.balance))]):_vm._e(),(!_vm.showPayResultInfo)?_c('div',{staticClass:\"buttons s8 t1\"},[_c('div',{staticClass:\"button\",on:{\"click\":_vm.goOrder}},[_vm._v(\"完成\")])]):(!_vm.IsPopMask)?_c('div',[_c('img',{staticClass:\"pay-result-info\",attrs:{\"alt\":\"\",\"src\":_vm.payResultInfo.imgUrl}})]):_c('div',{staticClass:\"popmask\"},[_c('a',{on:{\"click\":function($event){return _vm.openMp(_vm.payResultInfo.extend)}}},[_c('img',{staticClass:\"image_content\",attrs:{\"src\":_vm.payResultInfo.imgUrl,\"alt\":\"\"}})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Result.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Result.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Result.vue?vue&type=template&id=359eddb0&scoped=true\"\nimport script from \"./Result.vue?vue&type=script&lang=js\"\nexport * from \"./Result.vue?vue&type=script&lang=js\"\nimport style0 from \"./Result.vue?vue&type=style&index=0&id=359eddb0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"359eddb0\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport store from '@/store'\r\nimport Result from '@/views/Result'\r\nimport { updateClientInfoCache } from '@em/ym'\r\nVue.use(Router)\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n scrollBehavior(to, from, savedPosition) {\r\n if (savedPosition) {\r\n return savedPosition\r\n } else {\r\n return { x: 0, y: 0 }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/',\r\n meta: {\r\n title: '有看投'\r\n },\r\n redirect: to => {\r\n // 方法接收 目标路由 作为参数\r\n // return 重定向的 字符串路径/路径对象\r\n return '/jinNang'\r\n }\r\n },\r\n {\r\n path: '/login',\r\n component: () => import('@/views/Login'),\r\n meta: {\r\n title: '登录_有看投'\r\n }\r\n },\r\n {\r\n path: '/jinNang',\r\n component: () => import('@/views/JinNang/JinNang.vue'),\r\n meta: {\r\n title: '锦囊'\r\n },\r\n children: [\r\n {\r\n path: '/jinNang/:id',\r\n component: () => import('@/views/JinNang/JinNangDetail.vue')\r\n },\r\n {\r\n path: '/jinNangMoreDetail/:id',\r\n component: () => import('@/views/JinNang/JinNangMoreDetail.vue')\r\n }\r\n ]\r\n },\r\n\r\n {\r\n // path: '/course',\r\n // component: () => import('@/views/Course/Course.vue'),\r\n // meta: {\r\n // title: '课程'\r\n // },\r\n path: '/course',\r\n component: () => import('@/views/Course/CourseList.vue'),\r\n meta: {\r\n title: '课程'\r\n },\r\n children: [\r\n {\r\n path: '/course/:id',\r\n component: () => import('@/views/CourseDetail/Main.vue'),\r\n meta: {\r\n title: '课程详情'\r\n }\r\n },\r\n {\r\n path: '/course-detail/:id',\r\n name: 'course-detail',\r\n component: () => import('@/views/Course/CourseDetail.vue'),\r\n meta: {\r\n title: '课程详情'\r\n }\r\n },\r\n {\r\n path: '/course-video-detail',\r\n name: 'course-video-detail',\r\n component: () => import('@/views/Course/CourseVideoDetail.vue'),\r\n meta: {\r\n title: '课程视频详情'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/dianjin/:id',\r\n component: () => import('@/views/DianJin/Detail.vue'),\r\n meta: {\r\n title: '点金详情'\r\n }\r\n },\r\n {\r\n path: '/mine',\r\n component: () => import('@/views/Mine/Mine.vue'),\r\n meta: {\r\n title: '我的'\r\n }\r\n },\r\n {\r\n path: '/mine/follow',\r\n component: () => import('@/views/Mine/Follow.vue'),\r\n meta: {\r\n title: '我的关注',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/mine/orders',\r\n component: () => import('@/views/Mine/Orders.vue'),\r\n meta: {\r\n title: '我的订单',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/mine/rights',\r\n component: () => import('@/views/Mine/Rights.vue'),\r\n meta: {\r\n title: '我的权限',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/mine/favorites',\r\n component: () => import('@/views/Mine/Favorites.vue'),\r\n meta: {\r\n title: '我的收藏',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/mine/feedback',\r\n component: () => import('@/views/Mine/Feedback.vue'),\r\n meta: {\r\n title: '意见反馈',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/mine/contact',\r\n component: () => import('@/views/Mine/Contact.vue'),\r\n meta: {\r\n title: '联系客服',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/auth',\r\n component: () => import('@/views/Auth/Auth.vue'),\r\n meta: {\r\n title: '授权',\r\n auth: true\r\n }\r\n },\r\n // {\r\n // path: '/pay/payresult',\r\n // component: () => import('@/views/Pay/PayResult.vue'),\r\n // meta: {\r\n // title: '支付结果',\r\n // auth: true\r\n // }\r\n // },\r\n // {\r\n // path: '/pay/orderconfirm',\r\n // component: () => import('@/views/Pay/OrderConfirm.vue'),\r\n // meta: {\r\n // title: '订单确认',\r\n // auth: true\r\n // }\r\n // },\r\n {\r\n path: '/pay/cashierdesk',\r\n component: () => import('@/views/Pay/CashierDesk.vue'),\r\n meta: {\r\n title: '订单确认',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/recharge',\r\n component: () => import('@/views/Recharge/HRecharge.vue'),\r\n meta: {\r\n title: '充值',\r\n auth: true\r\n }\r\n },\r\n {\r\n path: '/record',\r\n name: 'record',\r\n component: () => import('@/views/Gold/GoldRecord.vue'),\r\n meta: {\r\n title: '充值记录'\r\n }\r\n },\r\n {\r\n path: '/result',\r\n component: Result,\r\n meta: {\r\n title: '支付结果'\r\n }\r\n },\r\n {\r\n path: '/saleData',\r\n name: 'saleData',\r\n component: () => import('@/views/SaleData/SaleData.vue'),\r\n meta: {\r\n title: '有看投业务总览'\r\n }\r\n },\r\n {\r\n path: '/popularize',\r\n name: 'popularize',\r\n component: () => import('@/views/Popularize'),\r\n meta: {\r\n title: '有看投推广'\r\n }\r\n },\r\n {\r\n path: '/competition',\r\n name: 'competition',\r\n component: () => import('@/views/Competition/Competition.vue'),\r\n meta: {\r\n title: '炒股大赛'\r\n }\r\n },\r\n {\r\n path: '/rule',\r\n name: 'rule',\r\n component: () => import('@/views/Rule/Rule.vue'),\r\n meta: {\r\n title: '赛事说明'\r\n }\r\n },\r\n {\r\n path: '/live-broadcast',\r\n name: 'live-broadcast',\r\n component: () => import('@/views/live/LiveBroadcast'),\r\n meta: {\r\n title: '直播'\r\n }\r\n },\r\n //直播详情\r\n {\r\n path: '/live-detail',\r\n name: 'live-detail',\r\n component: () => import('@/views/LiveDetail/LiveDetail'),\r\n meta: {\r\n title: '直播详情'\r\n }\r\n },\r\n {\r\n path: '/disabled-coupon',\r\n component: () => import('@/views/Coupon/DisabledCoupon.vue'),\r\n meta: {\r\n title: '无效优惠券'\r\n }\r\n },\r\n {\r\n path: '/valid-coupon',\r\n component: () => import('@/views/Coupon/ValidCoupon.vue'),\r\n meta: {\r\n title: '可用优惠券'\r\n }\r\n },\r\n {\r\n path: '/vote-detail',\r\n name: 'vote-detail',\r\n component: () => import('@/views/vote/vote-detail'),\r\n meta: {\r\n title: '人气嘉宾票选'\r\n }\r\n },\r\n {\r\n path: '/vote-rank',\r\n name: 'vote-rank',\r\n component: () => import('@/views/vote/vote-rank'),\r\n meta: {\r\n title: '人气嘉宾票选'\r\n }\r\n },\r\n {\r\n path: '/ticket-sales',\r\n name: 'ticket-sales',\r\n component: () => import('@/views/Activity/ticketSales/ticketSales'),\r\n meta: {\r\n title: '线下见面会'\r\n }\r\n }\r\n ]\r\n})\r\n\r\n/**\r\n * 权限验证\r\n */\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.matched.some(r => r.meta.auth) || (to.query && to.query.needAuth)) {\r\n console.log(store.getters['auth/isLogin'], to)\r\n if (store.getters['auth/isLogin']) {\r\n next()\r\n } else {\r\n // 未登录,跳转\r\n let appid = localStorage.getItem('wxAppId')\r\n let channelId = localStorage.getItem('channelId') || ''\r\n\r\n if (!store.getters['auth/isWxLogin']) {\r\n // 推广登录,这个字段为空,直接跳转登录页\r\n next({\r\n path: '/login',\r\n replace: true,\r\n query: {\r\n source: to.fullPath\r\n }\r\n })\r\n } else {\r\n let source = encodeURI(to.fullPath)\r\n let url =\r\n location.href.split('/m')[0] +\r\n '/m/login' +\r\n '?source=' +\r\n encodeURI(source)\r\n let authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?&response_type=code&scope=snsapi_userinfo&connect_redirect=1&appid=${appid}&channelId=${channelId}&redirect_uri=${url}#wechat_redirect`\r\n window.location.replace(authUrl)\r\n }\r\n }\r\n } else {\r\n next()\r\n }\r\n})\r\n\r\n// 使用afterEach钩子函数,保证路由跳转成功之后修改title\r\nrouter.afterEach(route => {\r\n let documentTitle = ''\r\n\r\n route.matched.forEach(path => {\r\n if (path.meta.title) {\r\n documentTitle = path.meta.title\r\n }\r\n })\r\n\r\n if (documentTitle) {\r\n document.title = documentTitle\r\n // 直接修改title,ios设备不能自动刷新,需要调用客户端的方法进行更新\r\n if (window.goods && window.goods.updateTitle) {\r\n window.goods.updateTitle({ title: documentTitle })\r\n }\r\n }\r\n\r\n const loginInfo = store.state.auth.loginInfo\r\n if (loginInfo) {\r\n // 更新当前用户token到clientInfo,以便打点时能正确获取到用户token\r\n updateClientInfoCache({\r\n loginInfo,\r\n token: loginInfo.token,\r\n // 指定产品id为有看投\r\n productId: 28\r\n })\r\n }\r\n})\r\n\r\nexport default router\r\n","// import axios from 'axios'\r\nimport axios from '@/assets/js/axios'\r\n// import config from './config'\r\nimport comm from '@/comm'\r\nimport md5 from 'js-md5'\r\nimport uuid from 'node-uuid'\r\nimport Urls from '@/assets/js/Urls'\r\nimport store from '@/store'\r\nconst HtmlApiKey = 'ykt.html'\r\nconst HtmlSecret = 'no.secret'\r\n\r\nconst service = axios.create({\r\n baseURL: Urls.DOMAIN_YKT,\r\n timeout: 3 * 1000\r\n})\r\n\r\nservice.interceptors.request.use(\r\n config => {\r\n config.data = JSON.stringify(config.data)\r\n const signValue = {\r\n 'Emapp-ApiKey': HtmlApiKey,\r\n 'Emapp-Timestamp': new Date().valueOf(),\r\n 'Emapp-Nonce': uuid.v1()\r\n }\r\n\r\n const signStr = `${signValue['Emapp-Nonce']}${signValue['Emapp-Timestamp']}${HtmlSecret}`\r\n signValue['Emapp-Sign'] = md5(signStr).toLowerCase()\r\n\r\n config.headers = {\r\n ...signValue,\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n const token = store.state.auth.loginInfo\r\n ? store.state.auth.loginInfo.token\r\n : ''\r\n if (token) {\r\n config.headers['Ykt-Token'] = token\r\n }\r\n\r\n return config\r\n },\r\n error => {\r\n Promise.reject(error)\r\n }\r\n)\r\n\r\nservice.interceptors.response.use(\r\n response => {\r\n console.log(\r\n '=====url',\r\n response.config.url,\r\n '\\n=====response',\r\n response,\r\n ',\\n baseUrl:',\r\n response.config.baseURL\r\n )\r\n if (response.status == 200) {\r\n return response.data\r\n }\r\n return Promise.resolve(response.statusText)\r\n },\r\n error => {\r\n if (error && error.response) {\r\n switch (error.response.status) {\r\n case 400:\r\n error.message = '错误请求'\r\n break\r\n case 401:\r\n error.message = '未授权,请重新登录'\r\n break\r\n case 403:\r\n error.message = '拒绝访问'\r\n break\r\n case 404:\r\n error.message = '请求错误,未找到该资源'\r\n break\r\n case 405:\r\n error.message = '请求方法未允许'\r\n break\r\n case 408:\r\n error.message = '请求超时'\r\n break\r\n case 500:\r\n error.message = '服务器端出错'\r\n break\r\n case 501:\r\n error.message = '网络未实现'\r\n break\r\n case 502:\r\n error.message = '网络错误'\r\n break\r\n case 503:\r\n error.message = '服务不可用'\r\n break\r\n case 504:\r\n error.message = '网络超时'\r\n break\r\n case 505:\r\n error.message = 'http版本不支持该请求'\r\n break\r\n default:\r\n error.message = `连接错误${error.response.status}`\r\n }\r\n } else {\r\n // if (JSON.stringify(error).includes('timeout')) {\r\n //\r\n // }\r\n error.message = '连接服务器失败'\r\n }\r\n return Promise.resolve(error.response)\r\n }\r\n)\r\n\r\nexport default service\r\n","import request from './service'\r\n\r\nclass Http {\r\n get(url, params) {\r\n const config = {\r\n method: 'get',\r\n url: url\r\n }\r\n if (params) config.params = params\r\n return request(config)\r\n }\r\n\r\n post(url, params) {\r\n const config = {\r\n method: 'post',\r\n url: url\r\n }\r\n if (params) config.data = params\r\n return request(config)\r\n }\r\n\r\n put(url, params) {\r\n const config = {\r\n method: 'put',\r\n url: url\r\n }\r\n if (params) config.params = params\r\n return request(config)\r\n }\r\n\r\n delete(url, params) {\r\n const config = {\r\n method: 'delete',\r\n url: url\r\n }\r\n if (params) config.params = params\r\n return request(config)\r\n }\r\n}\r\n\r\nexport default new Http()\r\n","import axios from '@/assets/js/axios'\r\nimport Urls from '@/assets/js/Urls'\r\n\r\nexport function getBalance() {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/VCurrency/Balance/GetBalance`,\r\n method: 'get'\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\nexport function getStastics() {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/VCurrency/Balance/GetStastics`,\r\n method: 'get'\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\nexport function getIncomeExpenditurePage(pageIndex, pageSize) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/VCurrency/Balance/GetIncomeExpenditurePage`,\r\n method: 'post',\r\n data: {\r\n indexPageRequest: {\r\n pageIndex: pageIndex,\r\n pageSize: pageSize\r\n }\r\n }\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data.detail : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * 查询充值状态\r\n * @param orderId\r\n * @return {Promise<*>}\r\n */\r\nexport async function getRechargeInfo(orderId) {\r\n return axios.get(`${Urls.DOMAIN_YKT}/VCurrency/Recharge/GetRechargeInfo`, {\r\n params: {\r\n id: orderId\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 获取财币充值列表\r\n * @return {*}\r\n */\r\nexport function getAllFaceValues() {\r\n return axios\r\n .get(`${Urls.DOMAIN_YKT}/VCurrency/Data/AllFaceValues`)\r\n .then(data => {\r\n let detail = []\r\n if (data.result.code === 0) {\r\n detail = data.detail\r\n }\r\n\r\n return detail\r\n })\r\n .catch(() => [])\r\n}\r\n\r\n/**\r\n * 创建充值订单\r\n * @param id\r\n * @param payMethod\r\n * @return {Promise<*>}\r\n */\r\nexport async function createRechargeOrder(\r\n id,\r\n payMethod,\r\n extendToken,\r\n tradeType = 2,\r\n appId = 31\r\n) {\r\n // if (appId === '') {\r\n // appId = localStorage.getItem('currentAppId')\r\n // }\r\n return axios.get(`${Urls.DOMAIN_YKT}/VCurrency/Recharge/RechargePayOrder`, {\r\n params: {\r\n /**\r\n * 资产类型\r\n */\r\n assetTypes: 0,\r\n faceValueId: id,\r\n paymentMethod: payMethod,\r\n extendToken,\r\n tradeType,\r\n appId\r\n }\r\n })\r\n}\r\n","import axios from '@/assets/js/axios'\r\nimport Urls from '@/assets/js/Urls'\r\n\r\n/**\r\n * 单个商品的信息\r\n * @typedef GoodsItem\r\n * @property {number} id 商品唯一id\r\n * @property {string} name 商品名称\r\n * @property {number} savePerMonth 每月节省的金额\r\n * @property {number} price 价格\r\n * @property {number} applePrice 苹果上的价格?\r\n */\r\n\r\n/**\r\n * 商品信息\r\n * @typedef GoodsInfo\r\n * @property {string} title 标题\r\n * @property {goodsId} goodsId 商品id\r\n * @property {Array<>} sets 商品列表\r\n */\r\n\r\n/**\r\n * 获取商品信息\r\n * @param goodsId 商品id\r\n * @param setId 子商品id\r\n * @return {Promise}\r\n */\r\nexport async function getGoods(goodsId, setId) {\r\n return axios\r\n .get(`${Urls.DOMAIN_YKT}/Shop/Data/Goods`, {\r\n params: {\r\n goodsId,\r\n setId\r\n }\r\n })\r\n .then(data => {\r\n let detail = null\r\n if (data.result.code === 0) {\r\n detail = data.detail\r\n }\r\n return detail\r\n })\r\n}\r\n\r\n/**\r\n * @typedef OrderInfo 订单信息\r\n * @property {string} [transactionCode] 账单流水号,支付成功后由支付系统生成\r\n * @property {string} orderId 订单号\r\n * @property {string} [productName] 商品名称\r\n * @property {Date} createTime 订单创建时间\r\n * @property {number} orderStatus 订单状态\r\n * @property {number} userId 用户Id\r\n * @property {number} amount 订单金额\r\n */\r\n\r\n/**\r\n * 创建订单\r\n * @param {number} productId 商品id\r\n * @param {string} source 订单来源\r\n * @param {number} quantity 购买数量,默认1\r\n */\r\nexport async function createOrder(productId, source, quantity = 1) {\r\n return axios\r\n .get(`${Urls.DOMAIN_YKT}/Order/Order/CreateOrder`, {\r\n params: {\r\n productId,\r\n source,\r\n quantity\r\n }\r\n })\r\n .then(data => {\r\n return data\r\n })\r\n}\r\n\r\n/**\r\n * 查询订单详情\r\n * @param {string} orderId 订单id\r\n * @return {Promise<*>}\r\n */\r\nexport async function getOrder(orderId) {\r\n return axios\r\n .get(`${Urls.DOMAIN_YKT}/Order/Order/GetOrder`, {\r\n params: {\r\n orderId\r\n }\r\n })\r\n .then(data => {\r\n let detail = null\r\n if (data.result.code === 0) {\r\n detail = data.detail\r\n }\r\n return detail\r\n })\r\n}\r\n\r\n/**\r\n * 创建支付订单\r\n * @param {string} payMethod 支付方式\r\n * @param {string} orderId 订单号\r\n * @param {string} {code} 短信验证码,紧财币支付需要\r\n */\r\nexport async function createPayOrder(payMethod, orderId, code) {\r\n return axios.get(`${Urls.DOMAIN_YKT}/Order/Order/PayOrder`, {\r\n params: {\r\n payMethod,\r\n orderId,\r\n code\r\n }\r\n })\r\n}\r\n\r\n/**\r\n *\r\n * @param {number} goodsSetId\r\n * @returns\r\n */\r\nexport async function GetPayResultInfo(goodsSetId) {\r\n return axios.get(`${Urls.DOMAIN_YKT}/Shop/Data/PayResultInfo`, {\r\n params: {\r\n goodsSetId\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 支付状态\r\n * @type {{paymentSuccess: number, paying: number, paymentFailed: number, unPaid: number}}\r\n */\r\nexport const PaymentStatus = {\r\n /**\r\n * 未支付\r\n */\r\n unPaid: 1,\r\n /**\r\n * 支付中\r\n */\r\n paying: 2,\r\n /**\r\n * 支付成功\r\n */\r\n paymentSuccess: 3,\r\n /**\r\n * 支付失败\r\n */\r\n paymentFailed: 4,\r\n /**\r\n *已关闭\r\n */\r\n isClosed: 5,\r\n /**\r\n * 取消\r\n */\r\n cancel: 6,\r\n /**\r\n * 已退款\r\n */\r\n isRefund: 7\r\n}\r\n\r\n/**\r\n * 查询订单支付状态\r\n * @param {string} orderId 订单id\r\n * @return {Promise} 支付状态\r\n */\r\nexport async function queryOrderStatus(orderId) {\r\n return axios\r\n .get(`${Urls.DOMAIN_YKT}/Order/Order/QueryOrderStatus`, {\r\n params: {\r\n orderId\r\n }\r\n })\r\n .then(data => {\r\n let paymentStatus = PaymentStatus.paymentFailed\r\n if (data.result.code === 0) {\r\n paymentStatus = data.detail\r\n }\r\n\r\n return paymentStatus\r\n })\r\n .catch(() => {\r\n return PaymentStatus.paymentFailed\r\n })\r\n}\r\n\r\n/**\r\n * 获取订单列表\r\n * @return {Promise} 获取订单列表\r\n */\r\nexport function queryOrderDetails(query, viewState) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Order/Order/QueryOrderDetails`,\r\n method: 'post',\r\n headers: {\r\n 'Ykt-ViewState': viewState\r\n },\r\n data: query\r\n })\r\n .then(data => {\r\n return data.result.code === 0 ? data : null\r\n })\r\n .catch(() => null)\r\n}\r\n\r\n/**\r\n * 发送财币支付短信验证码\r\n */\r\nexport function sendVCurrencyPaySms(orderId) {\r\n return axios({\r\n url: `${Urls.DOMAIN_YKT}/Order/Validate/SendVCurrencyPaySms`,\r\n method: 'post',\r\n data: {\r\n orderId\r\n }\r\n })\r\n}\r\n"],"sourceRoot":""}