{"version":3,"sources":["components/bargainMiddlePage/barcode/index.js","components/bargainMiddlePage/index.js","components/bargainMiddlePage/image/kanjia_icon.png","components/bargainMiddlePage/ranking/index.js","components/detail/overlay/index.js","components/bargainMiddlePage/image/kanjia_cg_icon.png","components/bargainMiddlePage/image/kanjia_no_iccon.png"],"names":["FollowBarcode","Component","constructor","props","super","this","state","url","codeUrl","componentDidMount","console","log","userInfo","uid","http","get","API","then","res","data","errno","setState","_this","Promise","resolve","QRCode","toDataURL","err","render","firendBaigainPrice","avatar","money","className","style","backgroundImage","src","alt","BargainMiddlePage","connect","user","getBargainInfo","home","getParam","code","isOriginator","is_originator","originatorUid","originator_uid","course","limitPeople","limit_people","bargainData","bargain","width","bargain_price","total_price","toFixed","expire_time","date","now","Date","clearInterval","timer","setInterval","_d","s","differenceInSeconds","m","differenceInMinutes","h","differenceInHours","d","differenceInDays","hour","min","sec","day","info","msg","getBargainCourse","courseList","getBargainRankList","id","type","courseId","bargain_code","post","arr","newList","out_list","map","item","i","rank","list","outList","toCart","history","push","toCartBottom","getMore","isShowMore","boxHide","val","toArtifact","course_id","isShowOverlay","status","useArtifact","toKanjia","parent_uid","amount","is_success","browser","isWeixin","redirectURI","window","location","href","includes","index","lastIndexOf","substr","assign","encodeURIComponent","friendBargainFirst","friendBargainSecond","shareFriendBargain","isshowYindao","wxShare","title","desc","link","encodeURI","imgUrl","course_img","close","toCourseDetail","dispatch","kanjiaIcon","require","isLoaidng","imglink","componentDidUpdate","prevProps","prevUser","hasError","thirdRow","btn","is_artifact","invite_num","onClick","assist_status","bargain_status","bargainBtn","arrow","cart","toHref","img","CourseDes","String","padStart","length","key","avatar_file","user_name","image_name","course_title","toDetail","bottom","CourseBottom","bind","to","icon","BargainSuccess","BargainFirst","bargainSecond","BargainSecond","NotBargain","Artifact","UseArtifact","allMoney","course_price","pay_price","price1","price","Buttons","v_course_id","classnames","price0","color","withRouter","module","exports","Ranking","closeMore","MoreList","root","document","body","documentElement","events","Overlay","preventScroll","e","preventDefault","overlayBox","forEach","addEventListener","passive","componentWillUnmount","removeEventListener","ReactDom","createPortal","ref","el","top","scrollY","children"],"mappings":"mUAKA,MAAMA,UAAsBC,YAE1BC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQ,CACXC,IAAK,GACLC,QAAS,IAIbC,oBACEC,QAAQC,IAAIN,KAAKF,OADC,QAEiBE,KAAKF,MAAhCS,SAAYC,WAFF,MAEQ,GAFR,EAGfA,GACDC,IAAKC,IAAL,UAAYC,IAAI,YAAhB,qCAAwDH,IAAOI,KAAMC,IAAS,MAAD,EACnDA,EAAIC,KAApBC,EADmE,EACnEA,MAAOD,EAD4D,EAC5DA,KAEf,GADAT,QAAQC,IAAIO,GACC,GAATE,EAAY,CACdf,KAAKgB,SAAS,CACZd,IAAKY,EAAKZ,MAEZ,MAAMe,EAAQjB,KACd,OAAO,IAAIkB,QAAQC,IACjBC,IAAOC,UAAUP,EAAKZ,IAAK,IAAI,SAAUoB,EAAKpB,GAC5Ce,EAAMD,SAAS,CACbb,QAASD,OAGbiB,SAOVI,SAAU,MACApB,EAAYH,KAAKC,MAAjBE,QADD,EAEqDH,KAAKF,MAAzD0B,EAFD,EAECA,mBAAgCC,EAFjC,EAEqBlB,SAAYkB,OAAUC,EAF3C,EAE2CA,MAClD,OACE,yBAAKC,UAAU,0BACb,uBAAGA,UAAU,wBAAwBC,MAAO,CAACC,gBAAgB,OAAD,OAASJ,EAAT,QAE1DD,GACA,uBAAGG,UAAU,wBAAb,6CAA4CD,EAA5C,gBAEF,uBAAGC,UAAU,uBAAb,mFACA,yBAAKA,UAAU,wBAAwBG,IAAK3B,EAAS4B,IAAI,OAMlDpC,I,EAAAA,I,ICtCTqC,EAHLC,YAAQhC,IAAK,CACViC,KAAMjC,EAAMiC,O,GADhB,cAGgCtC,YAI5BC,YAAYC,GACRC,MAAMD,GADS,KA8CnBqC,eAAiB,KAEb1B,IAAKC,IAAL,UAAYC,IAAIyB,KAAhB,uCAAmDC,YAAS,eAA5D,0BAA4FA,YAAS,mBAAoBzB,KAAMC,IACrG,MAAlBA,EAAIC,KAAKwB,KACTtC,KAAKgB,SACD,CACIF,KAAMD,EAAIC,KAAKA,KACfyB,aAAc1B,EAAIC,KAAKA,KAAK0B,cAC5BC,cAAe5B,EAAIC,KAAKA,KAAK4B,eAC7BC,OAAQ9B,EAAIC,KAAKA,KAAK6B,OACtBC,YAAa/B,EAAIC,KAAKA,KAAK6B,OAAOE,aAClCC,YAAajC,EAAIC,KAAKA,KAAKiC,QAC3BC,MAA8F,KAAtFnC,EAAIC,KAAKA,KAAKiC,QAAQE,cAAgBpC,EAAIC,KAAKA,KAAKiC,QAAQG,aAAaC,QAAQ,GAAW,KAExG,KACI,GAAInD,KAAKC,MAAM6C,YAAYM,YAAa,CACpC,IAAIC,EAA4C,IAArCrD,KAAKC,MAAM6C,YAAYM,YAC9BE,EAAMC,KAAKD,MACfE,cAAcxD,KAAKyD,OACnBzD,KAAKyD,MAAQC,YAAY,KACrBL,GAAQ,IACR,IAAIM,EAAK,IAAIJ,KAAKF,GACdO,EAAIC,YAAoBF,EAAIL,GAAO,GACnCQ,EAAIC,YAAoBJ,EAAIL,GAAO,GACnCU,EAAIC,YAAkBN,EAAIL,GAAO,GACjCY,EAAIC,YAAiBR,EAAIL,GAAO,GACpCtD,KAAKgB,SAAS,CACVoD,KAAMJ,EACNK,IAAKP,EACLQ,IAAKV,EACLW,IAAKL,KAGV,QAKf,IAAMM,KAAK3D,EAAIC,KAAK2D,IAAK,MApFlB,KA0FnBC,iBAAmB,KACfjE,IAAKC,IAAL,UAAYC,IAAIyB,KAAhB,0BAA6CxB,KAAMC,IACzB,MAAlBA,EAAIC,KAAKwB,KACTtC,KAAKgB,SAAS,CACV2D,WAAY9D,EAAIC,KAAKA,OAGzB,IAAM0D,KAAK3D,EAAIC,KAAK2D,IAAK,MAjGlB,KAuGnBG,mBAAqB,CAACC,EAAK,GAAIC,KAE3B,IAAIhE,EAAO,CACPiE,SAAUF,EACVC,KAAMA,EACNE,aAJiB3C,YAAS,gBAAkB,IAMhD5B,IAAKwE,KAAL,UAAatE,IAAIyB,KAAjB,uBAA4CtB,GAAMF,KAAMC,IACpD,GAAsB,MAAlBA,EAAIC,KAAKwB,KAAc,CACvB,IAAI4C,EAAM,CAAC,eAAM,eAAM,gBACnBC,EAAUtE,EAAIC,KAAKA,KAAKsE,SAASC,IAAI,CAACC,EAAMC,IACrC,2BACAD,GADP,IAEIE,KAAMN,EAAIK,MAGlBvF,KAAKgB,SAAS,CACVyE,KAAM5E,EAAIC,KAAKA,KAAK2E,KACpBC,QAASP,SAEW,MAAjBtE,EAAIC,KAAKwB,MAAiC,MAAjBzB,EAAIC,KAAKwB,MAEzC,IAAMkC,KAAK3D,EAAIC,KAAK2D,IAAK,MA7HlB,KAmInBkB,OAAS,KAAO,MACJC,EAAY5F,KAAKF,MAAjB8F,QACRnF,IAAKC,IAAL,UAAYC,IAAI,YAAhB,kCAAqD0B,YAAS,MAA9D,MAAwEzB,KAAMC,IAAQ,MAAD,EAC1DA,EAAIC,KAAnBC,EADyE,EACzEA,MAAO0D,EADkE,EAClEA,IACD,IAAV1D,EACAf,KAAKF,MAAM8F,QAAQC,KAAnB,qBAAsCxD,YAAS,MAA/C,KAAyD,CAACU,QAAS,IACpD,OAAVhC,GAA4B,OAAVA,EACvB6E,EAAQC,KAAK,aAEb,IAAMrB,KAAKC,EAAK,MA5IT,KA4JnBqB,aAAgBjB,IACZpE,IAAKC,IAAL,UAAYC,IAAI,YAAhB,kCAAqDkE,EAArD,MAA4DjE,KAAMC,IACvC,IAAnBA,EAAIC,KAAKC,MACTf,KAAKF,MAAM8F,QAAQC,KAAnB,qBAAsCxD,YAAS,MAA/C,KAAyD,CAACU,QAAS,IAEnE,IAAMyB,KAAK3D,EAAIC,KAAK2D,IAAK,MAjKlB,KA8KnBsB,QAAU,KACN/F,KAAKgB,SAAS,CACVgF,YAAY,KAhLD,KAqLnBC,QAAWC,IACPlG,KAAKgB,SAAS,CAACgF,WAAYE,KAtLZ,KA0LnBC,WAAa,KAAO,MACRP,EAAY5F,KAAKF,MAAjB8F,QADO,EAEwB5F,KAAKC,MAApC0C,OAAUyD,iBAFH,MAEe,GAFf,EAGf,IAAItF,EAAO,CACPiE,SAAU1C,YAAS,MAAOA,YAAS,MAAQ+D,GAE/C3F,IAAKwE,KAAL,UAAatE,IAAIyB,KAAjB,2BAAgDtB,GAAMF,KAAMC,IAAS,MAAD,EAC1CA,EAAIC,KAAlBwB,EADwD,EACxDA,KAAMmC,EADkD,EAClDA,IACD,MAATnC,GACAtC,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,IAEZtG,KAAKmC,kBACS,OAATG,GAA0B,OAATA,EACtBsD,EAAQC,KAAK,aAEb,IAAMrB,KAAKC,EAAK,MA3MT,KAiNnB8B,YAAc,KAAO,MAAD,EACuBvG,KAAKC,MAApC0C,OAAUyD,iBADF,MACc,GADd,EAEVvB,EAAKxC,YAAS,MAAOA,YAAS,MAAQ+D,EAC5CpG,KAAKwG,SAAS3B,EAAI,EAAG,IApNN,KAwNnB2B,SAAW,CAAC3B,EAAIC,EAAMtE,KAClB,IAAIM,EAAO,CACPsF,UAAWvB,EACXC,KAAMA,EACN2B,WAAYjG,GAEhBC,IAAKwE,KAAL,UAAatE,IAAIyB,KAAjB,wBAA6CtB,GAAMF,KAAMC,IACrD,GAAsB,MAAlBA,EAAIC,KAAKwB,KAGTtC,KAAKgB,SAAS,CACV0F,OAAQ7F,EAAIC,KAAKA,KAAK4F,SAEb,IAAT5B,IACA9E,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,IAEZtG,KAAKmC,iBACLnC,KAAK4E,mBAAmB,GAAI,IAGC,IAA7B/D,EAAIC,KAAKA,KAAK6F,WACd3G,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,IAEwB,IAA7BzF,EAAIC,KAAKA,KAAK6F,WACR,IAAT7B,EACA9E,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,IAEI,IAATxB,GACP9E,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,EACR9E,oBAAoB,IAGQ,IAA7BX,EAAIC,KAAKA,KAAK6F,aACR,IAAT7B,EACA9E,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,IAEI,IAATxB,GACP9E,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,KAKpBtG,KAAKmC,iBACLnC,KAAK4E,mBAAmBvC,YAAS,MAAO,QAGrC,GAAqB,MAAjBxB,EAAIC,KAAKwB,MAAiC,MAAjBzB,EAAIC,KAAKwB,KACzC,GAAIsE,IAAQC,SAAU,CAClB,IAAIC,EAAcC,OAAOC,SAASC,KAClC,GAAIH,EAAYI,SAAS,UAAYJ,EAAYI,SAAS,eAAgB,CACtE,IAAIC,EAAQL,EAAYM,YAAY,SACpCN,EAAcA,EAAYO,OAAO,EAAGF,EAAQ,GAEhDJ,OAAOC,SAASM,OAAhB,oGAAoHC,mBAAmBT,GAAvI,+EAEA9G,KAAKF,MAAM8F,QAAQC,KAAK,kBAI5B,IAAMrB,KAAK3D,EAAIC,KAAK2D,IAAK,MA/RlB,KAsSnB+C,mBAAqB,KAAO,MAAD,EACgBxH,KAAKC,MAApC0C,OAAUyD,iBADK,MACO,GADP,EAEjBvB,EAAKxC,YAAS,MAAOA,YAAS,MAAQ+D,EAC5CpG,KAAKwG,SAAS3B,EAAI,EAAG7E,KAAKC,MAAMwC,gBAzSjB,KA6SnBgF,oBAAsB,KAAO,MAAD,EACezH,KAAKC,MAApC0C,OAAUyD,iBADM,MACM,GADN,EAElBvB,EAAKxC,YAAS,MAAOA,YAAS,MAAQ+D,EAC5CpG,KAAKwG,SAAS3B,EAAI,EAAG7E,KAAKC,MAAMwC,gBAhTjB,KAoTnBiF,mBAAqB,KACG1H,KAAKF,MAAjB8F,QACAC,KAAR,kCAAwCxD,YAAS,MAAjD,wBAAsEA,YAAS,eAA/E,qBACArC,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,EACRqB,eAAcf,IAAQC,WAG1Be,YAAQ,CACJC,MAAM,mGACNC,KAAK,iCAAD,OAAU9H,KAAKC,MAAM6C,YAAYG,cAAjC,0DACJ8E,KAAMC,UAAUhB,SAASC,MACzBgB,OAAQjI,KAAKC,MAAM0C,OAAOuF,cAjUf,KAsUnBC,MAAQ,KACJnI,KAAKgB,SAAS,CACVqF,eAAe,EACfC,OAAQ,MAzUG,KA6UnB8B,eAAkBvD,IAAQ,MAAD,EACO7E,KAAKF,MADZ,EACduI,SAGP,OAJqB,EACJzC,QAETC,KAAR,qBAA2BhB,KACpB,GA/UP7E,KAAKC,MAAQ,CACToG,eAAe,EACf9D,aAAc,GACd+F,WAAYC,EAAQ,KACpB5F,OAAQ,GACRgC,WAAY,GACZ7D,KAAM,GACNgC,YAAa,GACbF,YAAa,EACb8C,QAAS,GACTD,KAAM,GACNzC,MAAO,IACPgD,WAAY,GACZM,OAAQ,GACRlC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLmC,OAAQ,GACRlF,oBAAoB,EACpBmG,cAAc,EACda,WAAW,EACXC,QAAS,wEAIjBrI,oBACIJ,KAAK4E,mBAAmBvC,YAAS,MAAO,GACxCrC,KAAK0E,mBACL1E,KAAKmC,iBAGTuG,mBAAmBC,GAAY,IACtBzG,EAAQlC,KAAKF,MAAboC,KACM0G,EAAYD,EAAlBzG,KACDA,EAAK2G,UAAY3G,EAAK2G,WAAaD,EAASC,WAC5C7I,KAAK4E,mBAAmBvC,YAAS,MAAO,GACxCrC,KAAK0E,mBACL1E,KAAKmC,kBA6SbZ,SAEI,IAAIuH,EAAUC,EAE6B,IAAvC/I,KAAKC,MAAM6C,YAAYkG,YACvBF,EACI,kDAAQ,0BAAMnH,UAAW,aAAc3B,KAAKC,MAAM6C,YAAYmG,YAA9D,yDAAyF,0BACrFtH,UAAW,aAD0E,yCAE/C,IAAvC3B,KAAKC,MAAM6C,YAAYkG,aAC9BF,EAAW,8DAAU,0BAAMnH,UAAW,aAAjB,yCACrBoH,EAAM,4BAAQpH,UAAW,eAAgBuH,QAASlJ,KAAKmG,YAAjD,6BACwC,IAAvCnG,KAAKC,MAAM6C,YAAYkG,cAC9BF,EAAW,8DAAU,0BAAMnH,UAAW,aAAjB,yCACrBoH,EAAM,4BAAQpH,UAAW,eAAgBuH,QAASlJ,KAAKuG,aAAjD,6BAbL,QAgB0EvG,KAAKC,MAA5Ea,KAhBH,IAgBW0B,qBAhBX,MAgB2B,EAhB3B,MAgB8B2G,qBAhB9B,MAgB8C,EAhB9C,MAgBiDC,sBAhBjD,MAgBkE,EAhBlE,EAiBL,IAAIC,EAAa,GAkCjB,OA9BG7G,EAEK6G,EADkB,IAAnBD,EACc,4BAAQzH,UAAU,aAAauH,QAASlJ,KAAK0H,oBAA7C,wCAGA,4BAAQ/F,UAAW,eAAnB,4BAGI,IAAlBwH,GAA0C,IAAnBC,EACtBC,EAAa,4BAAQ1H,UAAU,aAAauH,QAASlJ,KAAKwH,oBAA7C,wCACW,IAAlB2B,GAA0C,IAAnBC,EAC7BC,EAAa,4BAAQ1H,UAAU,aAAauH,QAASlJ,KAAKyH,qBAA7C,4BACW,IAAlB0B,GAA0C,IAAnBC,EAC7BC,EAAa,4BAAQ1H,UAAW,eAAnB,wCACY,IAAnByH,IACNC,EAAa,4BAAQ1H,UAAW,eAAnB,6BAgBjB,yBAAKA,UAAW,uBACZ,kBAAC,IAAD,CAAWkG,MAAM,2BAAOyB,OAAO,EAAMC,MAAM,EAAMC,OAAQ,MAEzD,yBAAK7H,UAAU,OACX,yBAAKA,UAAU,gBAEqB,IAA5B3B,KAAKC,MAAMsC,cACX,uBAAGZ,UAAU,eAAb,wIAGJ,4BACI,kBAAC,IAAD,CACI8H,IAAKzJ,KAAKC,MAAM0C,OAAOuF,WACvB1D,KACI,kBAACkF,EAAD,CACInH,aAAcvC,KAAKC,MAAMsC,aACzBzB,KAAMd,KAAKC,MAAMa,KACjB6E,OAAQ3F,KAAK2F,YAI7B,yBAAKhE,UAAU,mBAE4B,GAAlC3B,KAAKC,MAAMa,KAAKsI,gBAAyD,GAAlCpJ,KAAKC,MAAMa,KAAKsI,iBACxD,6BACI,yBAAKzH,UAAU,OACX,4CACM,0BAAMA,UAAW,iBAAkB3B,KAAKC,MAAM6C,YAAYG,cAA1D,WAGiC,IAAnCjD,KAAKC,MAAMa,KAAKsI,gBAChB,6BACJ,0BACIzH,UAAW,aAAcgI,OAAO3J,KAAKC,MAAMmE,MAAMwF,SAAS,EAAG,IAF7D,SAGI,0BACIjI,UAAW,YAAagI,OAAO3J,KAAKC,MAAMoE,KAAKuF,SAAS,EAAG,IAJnE,SAKI,0BAAMjI,UAAW,YAAagI,OAAO3J,KAAKC,MAAMqE,KAAKsF,SAAS,EAAG,IACjE,0BAAMjI,UAAW,YAAjB,oCAI+B,IAAnC3B,KAAKC,MAAMa,KAAKsI,gBAAoD,IAA5BpJ,KAAKC,MAAMsC,cACnD,0BAAMZ,UAAW,YAAjB,6BAIR,yBAAKA,UAAU,UACX,0BAAMC,MAAO,CAACoB,MAAOhD,KAAKC,MAAM+C,WAKZ,IAA5BhD,KAAKC,MAAMsC,cAAyD,IAAnCvC,KAAKC,MAAMa,KAAKsI,gBACjD,6BACKN,EACAC,GAKuB,IAA5B/I,KAAKC,MAAMsC,cAAyD,IAAnCvC,KAAKC,MAAMa,KAAKsI,gBACjD,oEAEI,0BAAMzH,UAAW,aAAcgI,OAAO3J,KAAKC,MAAMsE,KAAKqF,SAAS,EAAG,IAAU,0BAC5EjI,UAAW,QADiE,YAE5E,0BAAMA,UAAW,YAAagI,OAAO3J,KAAKC,MAAMmE,MAAMwF,SAAS,EAAG,IAAU,0BAC5EjI,UAAW,QADiE,YAE5E,0BAAMA,UAAW,YAAagI,OAAO3J,KAAKC,MAAMoE,KAAKuF,SAAS,EAAG,IAAU,0BAC3EjI,UAAW,QADgE,UAN/E,sEAYJ,yBAAKA,UAAW,UACX0H,KAKb,yBAAK1H,UAAU,mBACX,yBAAKA,UAAU,SAAf,4BACA,4BAEQ3B,KAAKC,MAAMyF,SAAW1F,KAAKC,MAAMyF,QAAQmE,OAAS,GAAK7J,KAAKC,MAAMyF,QAAQL,IAAI,CAACC,EAAM6B,IAE7E,wBAAI2C,IAAK3C,GACL,yBAAKxF,UAAU,QACX,yBAAKA,UAAU,SAASG,IAAKwD,EAAKyE,YAAahI,IAAI,KACnD,0BAAMJ,UAAW,YAAa2D,EAAK0E,WACnC,0BAAMrI,UAAU,YAAY2D,EAAKE,OAErC,yBAAK7D,UAAU,SACX,yBAAKA,UAAU,cAAcG,IAAK9B,KAAKC,MAAMqI,WAAYvG,IAAI,KADjE,eAEM,0BAAMJ,UAAW,SAAU2D,EAAKoB,YAS1D,yBAAK/E,UAAU,OAAOuH,QAASlJ,KAAK+F,SAApC,gCAGR,yBAAKpE,UAAU,sBAAsBkD,GAAG,iBACpC,yBAAKlD,UAAU,iBACX,yBAAKA,UAAU,SAAf,4BACA,yBAAKA,UAAU,YAAf,eAA6B3B,KAAKC,MAAM2C,YAAxC,iHAEJ,4BAEQ5C,KAAKC,MAAM0E,YAAc3E,KAAKC,MAAM0E,WAAWkF,OAAS,GAAK7J,KAAKC,MAAM0E,WAAWU,IAAI,CAACC,EAAM6B,IACnF,kBAAC,IAAD,CACHxF,UAAW,kBACXmI,IAAK3C,EACLtC,GAAIS,EAAKc,UACTqD,IAAKnE,EAAK2E,WACVpC,MAAOvC,EAAK4E,aACZC,SAAUnK,KAAKoI,eACfgC,OACI,kBAACC,EAAD,CACInI,KAAMlC,KAAKF,MAAMoC,KACjBoD,KAAMA,EACNQ,aAAc9F,KAAK8F,aAAawE,KAAKtK,KAAMsF,EAAKc,WAChD+D,SAAUnK,KAAKoI,sBAQ3C,kBAAC,IAAD,CAAMmC,GAAI,YAAa5I,UAAW,gBAAlC,uDAIA,kBAAC,IAAD,CAAS8D,KAAMzF,KAAKC,MAAMwF,KAAM+E,KAAMxK,KAAKC,MAAMqI,WAAY1F,YAAa5C,KAAKC,MAAM2C,YAC5EoD,WAAYhG,KAAKC,MAAM+F,WAAYC,QAASjG,KAAKiG,UAItDjG,KAAKC,MAAMoG,eACX,kBAAC,IAAD,KACI,yBAAK1E,UAAU,0BAMW,IAAtB3B,KAAKC,MAAMqG,QACX,kBAACmE,EAAD,CAAgB9C,aAAc3H,KAAKC,MAAM0H,aAAc/E,YAAa5C,KAAKC,MAAM2C,YAC/DuF,MAAOnI,KAAKmI,QAaN,IAAtBnI,KAAKC,MAAMqG,QACX,kBAAC,EAAD,CACI/F,SAAUP,KAAKF,MAAMoC,KAAKpB,KAC1BY,MAAO1B,KAAKC,MAAMyG,OAClBlF,mBAAoBxB,KAAKC,MAAMuB,qBAMb,IAAtBxB,KAAKC,MAAMqG,QACX,kBAACoE,EAAD,CACIC,cAAe3K,KAAKyH,oBACpB/F,MAAO1B,KAAKC,MAAMyG,SAKA,IAAtB1G,KAAKC,MAAMqG,QACX,kBAACsE,EAAD,CAAezC,MAAOnI,KAAKmI,MAAOzG,MAAO1B,KAAKC,MAAMyG,SAI9B,IAAtB1G,KAAKC,MAAMqG,QACX,kBAACuE,EAAD,CAAY1C,MAAOnI,KAAKmI,MAAOvF,YAAa5C,KAAKC,MAAM2C,cAIjC,IAAtB5C,KAAKC,MAAMqG,QACX,kBAACwE,EAAD,CAAUvE,YAAavG,KAAKuG,cAIN,IAAtBvG,KAAKC,MAAMqG,QACX,kBAACyE,EAAD,CAAapF,OAAQ3F,KAAK2F,OAAQjE,MAAO1B,KAAKC,MAAMyG,OACvCsE,SAAUhL,KAAKC,MAAM6C,YAAYG,gBAIxB,IAAtBjD,KAAKC,MAAMqG,QACX,uBAAG4C,QAASlJ,KAAKmI,MAAOxG,UAAW,iE,EAc/D,SAAS+H,EAAU5J,GAAQ,MAAD,EAC2DA,EAAzEgB,KADc,IACNsI,sBADM,MACW,EADX,MACczG,cADd,MACuB,GADvB,MAC2BH,qBAD3B,MAC2C,EAD3C,EACgDmD,EAAW7F,EAAX6F,OACtE,OACI,yBAAKhE,UAAW,OACZ,yBAAKA,UAAU,gCACVgB,EAAOuH,cAEZ,yBAAKvI,UAAU,aACX,0BAAMA,UAAW,kBAAjB,SAAqCgB,EAAOsI,cAGtB,GAAjBzI,GAAuC,GAAjB4G,GACvB,4BAAQzH,UAAW,eAAgBuH,QAASvD,GAA5C,OACMhD,EAAOuI,UADb,sBAKkB,GAAjB1I,GAAwC,GAAlB4G,GACvB,0BAAMzH,UAAU,4BAAhB,wBAOpB,SAAS0I,EAAavK,GAAO,QAGmDA,EAAMwF,MAAQ,GAHjE,IAGlBc,iBAHkB,MAGN,GAHM,MAGFgD,sBAHE,MAGe,GAHf,MAGmB+B,cAHnB,MAG4B,GAH5B,MAGgCD,iBAHhC,MAG4C,GAH5C,IAIOpL,EAAxBoC,KAAQpB,KACVsK,EAA2B,IAAnBhC,EAAsB+B,EAASD,EAC7C,IAAIG,EA2DJ,OAvDQA,QAViB,MAIF,GAJE,GAOjB7K,IAC8B,IAA9BV,EAAMwF,KAAK8D,eAGP,yBAAKzH,UAAU,IACX,uBAAGuH,QAAS,IAAMpJ,EAAMqK,SAASrK,EAAMwF,KAAKc,WAAYzE,UAAW,yBAAnE,6BAIkB,IAAnByH,EACU,MAAdhD,EAEK,uBACI8C,QAAS,IAAMpJ,EAAMqK,SAASrK,EAAMwF,KAAKc,WACzCzE,UAAW,yBAFf,4BAOA,kBAAC,IAAD,CACI4I,GAAE,yBAAoBzK,EAAMwF,KAAKgG,aACjC3J,UAAW4J,IAAW,UAAW,kBAFrC,sBAQJ,yBAAK5J,UAAU,QAKY,IAAnByH,GACA,4BAAQzH,UAAU,WAAlB,4BAGmB,IAAnByH,GACA,uBAAGF,QAAS,IAAMpJ,EAAMqK,SAASrK,EAAMwF,KAAKc,WAAYzE,UAAW,eAAnE,4BAEJ,4BACIuH,QAAS,IAAMpJ,EAAMgG,aAAahG,EAAMwF,KAAKc,WAC7CzE,UAAW,gBAFf,OAIMyJ,EAJN,uBAYR,uBACIlC,QAAS,IAAMpJ,EAAMqK,SAASrK,EAAMwF,KAAKc,WACzCzE,UAAW,yBAFf,4BAQJ,yBAAKA,UAAU,iBACX,yBAAKA,UAAW,gBACZ,0BAAMA,UAAW,kBAAjB,OAAqC7B,EAAMwF,KAAK6F,QAChD,0BAAMxJ,UAAW,kBAAjB,OAAqC7B,EAAMwF,KAAKkG,SAEnDH,GAwBb,SAASX,EAAa5K,GAClB,OACI,yBAAK6B,UAAU,iBACX,yBAAKA,UAAU,UAAUG,IAAKyG,EAAQ,KAA+BxG,IAAI,KACzE,uBAAGJ,UAAU,gBAAb,6CAAmC,0BAAMA,UAAU,OAAO7B,EAAM4B,MAA7B,UAAnC,UACA,uBAAGC,UAAU,cAAb,uEACA,4BAAQA,UAAU,eAAeuH,QAASpJ,EAAM6K,eAAhD,6BAKZ,SAASC,EAAc9K,GACnB,OACI,yBAAK6B,UAAU,kBACX,yBAAKA,UAAU,UAAUG,IAAKyG,EAAQ,KAA+BxG,IAAI,KACzE,uBAAGJ,UAAU,gBAAb,+DAAsC,0BAAMA,UAAU,OAAO7B,EAAM4B,MAA7B,UAAtC,UACA,uBAAGC,UAAU,eAAesF,KAAK,iBAAiBiC,QAASpJ,EAAMqI,OAAjE,mCAKZ,SAAS0C,EAAW/K,GAChB,OACI,yBAAK6B,UAAU,eACX,yBAAKA,UAAU,aAAaG,IAAKyG,EAAQ,KAAgCxG,IAAI,KAC7E,uBAAGJ,UAAU,gBAAb,yGAA6C,6BAA7C,yCACA,uBAAGA,UAAU,cAAb,eAA6B7B,EAAM8C,YAAnC,gHACA,uBAAGjB,UAAU,eAAesF,KAAK,iBAAiBiC,QAASpJ,EAAMqI,OAAjE,mCAKZ,SAAS2C,EAAShL,GACd,OACI,yBAAK6B,UAAU,gBACX,uBAAGA,UAAU,WAAb,4EACA,uBAAGA,UAAU,cAAb,iCAEI,0BAAMA,UAAW,aAAjB,wCAFJ,4BAKA,4BAAQA,UAAU,eAAeuH,QAASpJ,EAAMyG,aAAhD,6BAKZ,SAASwE,EAAYjL,GACjB,OACI,yBAAK6B,UAAU,oBACX,yBAAKA,UAAU,UAAUG,IAAKyG,EAAQ,KAA+BxG,IAAI,KACzE,uBAAGJ,UAAU,WAAb,mDAAgC7B,EAAM4B,MAAtC,gBACA,uBAAGC,UAAU,cAAb,iCAEI,0BAAMA,UAAW,aAAc7B,EAAMkL,SAArC,UAFJ,mEAKA,uBAAGrJ,UAAU,WAAb,yCAGA,4BAAQA,UAAU,QAAQuH,QAASpJ,EAAM6F,QAAzC,uBAMZ,SAAS8E,EAAe3K,GACpB,OACI,6BACI,yBAAK6B,UAAU,wBAAwBuH,QAASpJ,EAAMqI,QAEtD,yBAAKxG,UAAU,mBAEP7B,EAAM6H,cACN,uBAAGhG,UAAU,wBAEjB,+HACA,0CAAM7B,EAAM8C,YAAZ,mDAAgC,0BAAMjB,UAAW,YAAaC,MAAO,CAAC6J,MAAO,YAA7C,wCAAhC,YAQDC,sBAAW1J,I,kBCv0B1B2J,EAAOC,QAAU,kzC,iCCAjB,2BAGA,MAAMC,UAAgBjM,YAElBC,YAAYC,GACRC,MAAMD,GADS,KAQnBgM,UAAY,KACR9L,KAAKF,MAAMmG,SAAQ,IAPnBjG,KAAKC,MAAQ,CACTqI,WAAYC,EAAQ,MAS5BhH,SACI,OACI,yBAAKI,UAAW,eAER3B,KAAKF,MAAMkG,YACX,kBAAC+F,EAAD,CAAUtG,KAAMzF,KAAKF,MAAM2F,KAAM7C,YAAa5C,KAAKF,MAAM8C,YAAakJ,UAAW9L,KAAK8L,UAC5ErC,IAAKzJ,KAAKF,MAAM0K,SAO9C,SAASuB,EAASjM,GACd,OACI,yBAAK6B,UAAU,WACX,yBAAKA,UAAU,WACX,yBAAKA,UAAU,aAAf,wCAGA,wBAAIA,UAAU,qBAEN7B,EAAM2F,MAAQ3F,EAAM2F,KAAKoE,OAAS,GAAK/J,EAAM2F,KAAKJ,IAAI,CAACC,EAAM6B,IAErD,wBAAI2C,IAAK3C,EAAOxF,UAAU,gBACtB,yBAAKA,UAAU,SAASG,IAAKwD,EAAKyE,YAAahI,IAAI,KACnD,uBAAGJ,UAAU,QAAQ2D,EAAK0E,WAC1B,uBAAGrI,UAAU,kBACT,yBAAKA,UAAU,cAAcG,IAAKhC,EAAM2J,IAAK1H,IAAI,KADrD,eAEM,0BAAMJ,UAAW,SAAU2D,EAAKoB,YAO1D,yBAAK/E,UAAU,oBAAf,eACO7B,EAAM8C,YADb,yFAIJ,uBAAGsG,QAASpJ,EAAMgM,UAAWnK,UAAW,oCAKrCkK,O,uDC9Df,4CAKA,MAAMG,EAAOC,SAASC,MAAQD,SAASE,gBAEjCC,EAAS,CAAC,YAAa,cAE7B,MAAMC,UAAgBzM,YAClBC,YAAYC,GACRC,MAAMD,GADS,KAKnBwM,cAAgBC,IACZA,EAAEC,kBAJFxM,KAAKyM,WAAa,KAOtBrM,oBACIgM,EAAOM,QAAQpH,IACXtF,KAAKyM,WAAWE,iBAAiBrH,EAAMtF,KAAKsM,cAAe,CACvDM,SAAS,MAKrBC,uBACIT,EAAOM,QAAQpH,IACXtF,KAAKyM,WAAWK,oBAAoBxH,EAAMtF,KAAKsM,iBAIvD/K,SACI,OAAOwL,IAASC,aACX,yBAAKrL,UAAW,UACXsL,IAAKC,GAAMlN,KAAKyM,WAAaS,EAC7BtL,MAAO,CAACuL,IAAI,GAAD,OAAKpG,OAAOqG,QAAZ,QACfpN,KAAKF,MAAMuN,UACbrB,IAKGK,O,0CC5CfV,EAAOC,QAAU,IAA0B,6C,8DCA3CD,EAAOC,QAAU","file":"mrstaticjs/BargainMiddlePage.748ccf39.chunk.js","sourcesContent":["import React, { Component } from 'react';\nimport QRCode from 'qrcode';\nimport { http } from \"src/utils\"\nimport './index.scss';\n\nclass FollowBarcode extends Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      url: '',\n      codeUrl: ''\n    }\n  }\n\n  componentDidMount() {\n    console.log(this.props);\n    const { userInfo: { uid = '' } } = this.props;\n    if(uid) {\n      http.get(`${API['base-api']}/wx/user_temporary_qrcode/${uid}`).then((res) => {\n        const { errno, data } = res.data;\n        console.log(res);\n        if (errno == 0) {\n          this.setState({\n            url: data.url\n          });\n          const _this = this;\n          return new Promise(resolve => {\n            QRCode.toDataURL(data.url, {}, function (err, url) {\n              _this.setState({\n                codeUrl: url\n              });\n            });\n            resolve();\n          });\n        }\n      });\n    }\n  }\n\n  render() {\n    const { codeUrl } = this.state;\n    const { firendBaigainPrice, userInfo: { avatar }, money } = this.props;\n    return (\n      <div className='bargain-popup__barcode'>\n        <i className='bargain-popup__avatar' style={{backgroundImage: `url(${avatar})`}} />\n        {\n          firendBaigainPrice &&\n          <p className='bargain-popup__title'>谢谢你帮我砍了{money}元!</p>\n        }\n        <p className='bargain-popup__desc'>关注公众号,可以再砍一刀哦~</p>\n        <img className=\"bargain-popup__imgage\" src={codeUrl} alt=\"\" />\n      </div>\n    );\n  }\n}\n\nexport default FollowBarcode;","import React, {Component} from 'react'\nimport './bargain-middle-page.scss'\nimport {HeaderBar, VList} from 'src/common'\nimport {Course} from 'src/common'\nimport {api, getParam, http, browser, wxShare} from \"src/utils\"\nimport {Toast} from \"antd-mobile\"\nimport {Link, withRouter} from \"react-router-dom\"\nimport Ranking from './ranking'\nimport {differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays} from \"date-fns\"\nimport Overlay from '../detail/overlay'\nimport {compose} from \"redux\"\nimport {connect} from \"react-redux\";\nimport {getCourses} from './../detail/actions';\nimport classnames from 'classnames';\nimport FollowBarcode from './barcode/index';\n\n@connect(state => ({\n    user: state.user\n}))\nclass BargainMiddlePage extends Component {\n\n    timer\n\n    constructor(props) {\n        super(props)\n        this.state = {\n            isShowOverlay: false,\n            isOriginator: '',\n            kanjiaIcon: require('./image/kanjia_icon.png'),\n            course: {}, // 当前砍价课程\n            courseList: [],  // 所有砍价课程\n            data: '',\n            bargainData: '',\n            limitPeople: 0,\n            outList: [],\n            list: [],\n            width: '0',\n            isShowMore: '',\n            status: '',\n            hour: '',\n            min: '',\n            sec: '',\n            day: '',\n            amount: '', // 每次砍掉的价格\n            firendBaigainPrice: true,\n            isshowYindao: false,\n            isLoaidng: true,\n            imglink: 'https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/',\n        }\n    }\n\n    componentDidMount() {\n        this.getBargainRankList(getParam('id'), 1)\n        this.getBargainCourse()\n        this.getBargainInfo()\n    }\n\n    componentDidUpdate(prevProps) {\n        let {user} = this.props\n        let {user: prevUser} = prevProps\n        if(!user.hasError && user.hasError !== prevUser.hasError){\n            this.getBargainRankList(getParam('id'), 1)\n            this.getBargainCourse()\n            this.getBargainInfo()\n        }\n    }\n\n\n    // 获取砍价信息\n    getBargainInfo = () => {\n        // is_originator 来源,0-PC端扫码 1-M端分享 2-APP端分享\n        http.get(`${API.home}/m/bargain/info?bargaincode=${getParam('bargaincode')}&is_originator=${getParam('is_originator')}`).then((res) => {\n            if (res.data.code === 200) {\n                this.setState(\n                    {\n                        data: res.data.data,\n                        isOriginator: res.data.data.is_originator,\n                        originatorUid: res.data.data.originator_uid,\n                        course: res.data.data.course,\n                        limitPeople: res.data.data.course.limit_people,\n                        bargainData: res.data.data.bargain,\n                        width: (res.data.data.bargain.bargain_price / res.data.data.bargain.total_price).toFixed(2) * 100 + '%'\n                    },\n                    () => {\n                        if (this.state.bargainData.expire_time) {\n                            let date = this.state.bargainData.expire_time * 1000\n                            let now = Date.now()\n                            clearInterval(this.timer)\n                            this.timer = setInterval(() => {\n                                date -= 1000\n                                let _d = new Date(date)\n                                let s = differenceInSeconds(_d, now) % 60,\n                                    m = differenceInMinutes(_d, now) % 60,\n                                    h = differenceInHours(_d, now) % 24,\n                                    d = differenceInDays(_d, now) % 24\n                                this.setState({\n                                    hour: h,\n                                    min: m,\n                                    sec: s,\n                                    day: d\n                                })\n\n                            }, 1000)\n                        }\n                    }\n                )\n            } else {\n                Toast.info(res.data.msg, 2)\n            }\n        })\n    }\n\n    // 获取砍价课程\n    getBargainCourse = () => {\n        http.get(`${API.home}/m/bargain/courseList`).then((res) => {\n            if (res.data.code === 200) {\n                this.setState({\n                    courseList: res.data.data\n                })\n            } else {\n                Toast.info(res.data.msg, 2)\n            }\n        })\n    }\n\n    // 获取助理好友\n    getBargainRankList = (id = '', type) => {\n        const bargain_code = getParam('bargaincode') || '';\n        let data = {\n            courseId: id,\n            type: type,\n            bargain_code\n        }\n        http.post(`${API.home}/m/bargain/rankList`, data).then((res) => {\n            if (res.data.code === 200) {\n                let arr = ['刀神', '刀王', '刀霸']\n                let newList = res.data.data.out_list.map((item, i) => {\n                    return {\n                        ...item,\n                        rank: arr[i]\n                    }\n                })\n                this.setState({\n                    list: res.data.data.list,\n                    outList: newList\n                })\n            } else if (res.data.code == 4030 || res.data.code == 4040) {\n            } else {\n                Toast.info(res.data.msg, 2)\n            }\n        })\n    }\n\n    // 直接支付\n    toCart = () => {\n        const { history } = this.props;\n        http.get(`${API['base-api']}/m/cart/addtopreorder/[${getParam('id')}]`).then((res) =>{\n            const { errno, msg } = res.data;\n            if (errno === 0) {\n                this.props.history.push(`/order?id=[${getParam('id')}]`, {bargain: 1});\n            }else if(errno === 4030 || errno === 4040) {\n                history.push('/passport');\n            } else {\n                Toast.info(msg, 2);\n            }\n        })\n        // let data = {\n        //     course_id: getParam('id')\n        // }\n        // http.post(`${API.home}/m/cart/add`, data).then((res) => {\n        //     if (res.data.code === 200 || res.data.code === 15001) {\n        //         this.props.history.push('/shopcart')\n        //     } else {\n        //         Toast.info(res.data.msg, 2);\n        //     }\n        // })\n    }\n\n    // 我要砍价列表的去支付\n    toCartBottom = (id) => {\n        http.get(`${API['base-api']}/m/cart/addtopreorder/[${id}]`).then((res) => {\n            if (res.data.errno === 0) {\n                this.props.history.push(`/order?id=[${getParam('id')}]`, {bargain: 1});\n            } else {\n                Toast.info(res.data.msg, 2);\n            }\n        })\n        // http.post(`${API.home}/m/cart/add`, data).then((res) => {\n        //     if (res.data.code === 200 || res.data.code === 15001) {\n        //         this.props.history.push('/shopcart')\n        //     } else {\n        //         Toast.info(res.data.msg, 2);\n        //     }\n        // })\n    }\n\n    // 查看更多\n    getMore = () => {\n        this.setState({\n            isShowMore: true\n        })\n    }\n\n    // 自组件传给父组件的boxHide\n    boxHide = (val) => {\n        this.setState({isShowMore: val})\n    }\n\n    // 领取砍价神器\n    toArtifact = () => {\n        const { history } = this.props;\n        const { course: { course_id = '' } } = this.state;\n        let data = {\n            courseId: getParam('id')? getParam('id') : course_id\n        }\n        http.post(`${API.home}/m/bargain/receiveLimit`, data).then((res) => {\n            const { code, msg } = res.data;\n            if (code === 200) {\n                this.setState({\n                    isShowOverlay: true,\n                    status: 5,\n                });\n                this.getBargainInfo();\n            }else if(code === 4030 || code === 4040) {\n                history.push('/passport');\n            } else {\n                Toast.info(msg, 2)\n            }\n        })\n    }\n\n    // 使用砍价神器\n    useArtifact = () => {\n        const { course: { course_id = '' } } = this.state;\n        const id = getParam('id')? getParam('id') : course_id;\n        this.toKanjia(id, 2, 0);\n    }\n\n    // 砍价接口\n    toKanjia = (id, type, uid) => {\n        let data = {\n            course_id: id,\n            type: type,  // 1 用户自己砍价 2 使用砍价神器 3 好友助力砍价 4 好友第二次助力\n            parent_uid: uid // 被助力人id 【自己本人操作传0】\n        }\n        http.post(`${API.home}/m/bargain/toBargain`, data).then((res) => {\n            if (res.data.code === 200) {\n\n                // is_success =0一切正常 =1 不能在砍了 =2关注公众号,可以再砍一刀!\n                this.setState({\n                    amount: res.data.data.amount\n                })\n                if (type === 2) {\n                    this.setState({\n                        isShowOverlay: true,\n                        status: 6\n                    });\n                    this.getBargainInfo();\n                    this.getBargainRankList('', 1);\n                }\n\n                if (res.data.data.is_success === 1) {\n                    this.setState({\n                        isShowOverlay: true,\n                        status: 4\n                    })\n                } else if (res.data.data.is_success === 2) {\n                    if (type === 3) {\n                        this.setState({\n                            isShowOverlay: true,\n                            status: 2\n                        })\n                    } else if (type === 4) {\n                        this.setState({\n                            isShowOverlay: true,\n                            status: 1,\n                            firendBaigainPrice: false\n                        })\n                    }\n                } else if (res.data.data.is_success === 0) {\n                    if (type === 3) {\n                        this.setState({\n                            isShowOverlay: true,\n                            status: 2\n                        })\n                    } else if (type === 4) {\n                        this.setState({\n                            isShowOverlay: true,\n                            status: 3\n                        })\n                    }\n                }\n\n                this.getBargainInfo()\n                this.getBargainRankList(getParam('id'), 1)\n\n\n            } else if (res.data.code == 4030 || res.data.code == 4040) {\n                if (browser.isWeixin) {\n                    let redirectURI = window.location.href\n                    if (redirectURI.includes('code=') && redirectURI.includes('state=STATE')) {\n                        let index = redirectURI.lastIndexOf('code=');\n                        redirectURI = redirectURI.substr(0, index - 1);\n                    }\n                    window.location.assign(`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=${encodeURIComponent(redirectURI)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`)\n                } else {\n                    this.props.history.push('/passport')\n                }\n\n            } else {\n                Toast.info(res.data.msg, 2)\n            }\n        })\n    }\n\n\n    // 帮好友砍价第一刀\n    friendBargainFirst = () => {\n        const { course: { course_id = '' } } = this.state;\n        const id = getParam('id')? getParam('id') : course_id;\n        this.toKanjia(id, 3, this.state.originatorUid);\n    }\n\n    // 帮好友砍价第二刀\n    friendBargainSecond = () => {\n        const { course: { course_id = '' } } = this.state;\n        const id = getParam('id')? getParam('id') : course_id;\n        this.toKanjia(id, 4, this.state.originatorUid);\n    }\n\n    // 邀请好友砍价\n    shareFriendBargain = () => {\n        const { history } = this.props;\n        history.push(`/bargain-middle-page?id=${getParam('id')}&bargaincode=${getParam('bargaincode')}&is_originator=1`);\n        this.setState({\n            isShowOverlay: true,\n            status: 7,\n            isshowYindao: browser.isWeixin ? true : false\n        });\n\n        wxShare({\n            title: `我发现一门好课,快来帮我砍价吧!`,\n            desc: `我已经砍了${this.state.bargainData.bargain_price}元,看看你能砍多少`,\n            link: encodeURI(location.href),\n            imgUrl: this.state.course.course_img,\n        });\n    }\n\n    // 关闭弹窗\n    close = () => {\n        this.setState({\n            isShowOverlay: false,\n            status: '',\n        });\n    }\n\n    toCourseDetail = (id) => {\n        const {dispatch, history} = this.props;\n        // dispatch(getCourses(id, () => {\n        history.push(`/detail?id=${id}`);\n        return false;\n        // }));\n    }\n\n    render() {\n        // console.log(this.props);\n        let thirdRow, btn\n        // is_artifact\t 0-再邀请多少人可以使用 1-可以使用未领取 2-已领取 3-已使用\n        if (this.state.bargainData.is_artifact === 0) {\n            thirdRow =\n                <div>再邀请<span className={'indicator'}>{this.state.bargainData.invite_num}</span>位好友助力即可获得<span\n                    className={'indicator'}>【砍价神器】</span></div>\n        } else if (this.state.bargainData.is_artifact === 1) {\n            thirdRow = <div>恭喜你获得<span className={'indicator'}>【砍价神器】</span></div>\n            btn = <button className={'artifact-btn'} onClick={this.toArtifact}>立即领取</button>\n        } else if (this.state.bargainData.is_artifact === 2) {\n            thirdRow = <div>恭喜你获得<span className={'indicator'}>【砍价神器】</span></div>\n            btn = <button className={'artifact-btn'} onClick={this.useArtifact}>立即使用</button>\n        }\n\n        const { data: { is_originator = 0, assist_status = 0, bargain_status = 0 } } = this.state;\n        let bargainBtn = '';\n        // assist_status 助力状态 0-未助力,1-已助力一次 2-已助力两次,不能再助力\n        // is_originator 是否发起人 0-否 1-是\n        // bargain_status 砍价状态 0-砍价中,1砍价结束,待支付,2砍价过期(没有砍价记录没有砍价信息),3已购买\n        if(is_originator) {\n            if(bargain_status === 0) {\n                bargainBtn = <button className='active-btn' onClick={this.shareFriendBargain}>邀请好友砍价</button>\n            }\n            else {\n                bargainBtn = <button className={'invalid-btn'}>砍价结束</button>\n            }\n        }else {\n            if(assist_status === 0 && bargain_status === 0) {\n                bargainBtn = <button className='active-btn' onClick={this.friendBargainFirst}>帮好友砍一刀</button>\n            }else if (assist_status === 1 && bargain_status === 0) {\n                bargainBtn = <button className='active-btn' onClick={this.friendBargainSecond}>再砍一刀</button>\n            }else if (assist_status === 2 && bargain_status === 0) {\n                bargainBtn = <button className={'invalid-btn'}>已帮好友助力</button>\n            }else if (bargain_status !== 0) {\n                bargainBtn = <button className={'invalid-btn'}>砍价结束</button>\n            }\n        }\n\n        // if (this.state.isOriginator !== 1 && this.state.data.assist_status === 0 && this.state.data.bargain_status === 0) {\n        //     bargainBtn = <button className='active-btn' onClick={this.friendBargainFirst}>帮好友砍一刀</button>\n        // } else if (this.state.isOriginator !== 1 && this.state.data.assist_status === 1) {\n        //     bargainBtn = <button className='active-btn' onClick={this.friendBargainSecond}>再砍一刀1</button>\n        // } else if (this.state.isOriginator !== 1 && this.state.data.assist_status === 2) {\n        //     bargainBtn = <button className={'invalid-btn'}>已帮好友助力</button>\n        // } else if (this.state.data.bargain_status === 1 || this.state.data.bargain_status === 2) {\n        //     bargainBtn = <button className={'invalid-btn'}>砍价结束</button>\n        // } else if (this.state.isOriginator === 1 && this.state.data.bargain_status === 0) {\n        //     bargainBtn = <button className='active-btn' onClick={this.shareFriendBargain}>邀请好友砍价</button>\n        // }\n        return (\n            <div className={'bargain-middle-page'}>\n                <HeaderBar title='砍价详情' arrow={true} cart={true} toHref={'/'}></HeaderBar>\n                {/*<Loading isLoading={this.state.isLoaidng}>*/}\n                <div className=\"top\">\n                    <div className=\"bargain-area\">\n                        {\n                            this.state.isOriginator !== 1 &&\n                            <p className='bargain-tip'>你的好友发现一门精品课程,快来一起帮他砍价:</p>\n                        }\n\n                        <ul>\n                            <VList\n                                img={this.state.course.course_img}\n                                info={\n                                    <CourseDes\n                                        isOriginator={this.state.isOriginator}\n                                        data={this.state.data}\n                                        toCart={this.toCart}/>\n                                }\n                            />\n                        </ul>\n                        <div className=\"bargain-detail\">\n                            {\n                                (this.state.data.bargain_status == 0 || this.state.data.bargain_status == 1) &&\n                                <div>\n                                    <div className=\"top\">\n                                        <div>\n                                            已砍<span className={'reduced-price'}>{this.state.bargainData.bargain_price}元</span>\n                                        </div>\n                                        {\n                                            this.state.data.bargain_status === 0 &&\n                                            <div>\n                                        <span\n                                            className={'time hour'}>{String(this.state.hour).padStart(2, 0)}</span> :&nbsp;\n                                                <span\n                                                    className={'time min'}>{String(this.state.min).padStart(2, 0)}</span> :&nbsp;\n                                                <span className={'time sec'}>{String(this.state.sec).padStart(2, 0)}</span>\n                                                <span className={'inactive'}> 后砍价结束</span>\n                                            </div>\n                                        }\n                                        {\n                                            this.state.data.bargain_status === 1 && this.state.isOriginator === 1 &&\n                                            <span className={'inactive'}>砍价结束</span>\n                                        }\n\n                                    </div>\n                                    <div className=\"middle\">\n                                        <span style={{width: this.state.width}}></span>\n                                    </div>\n                                </div>\n                            }\n                            {\n                                this.state.isOriginator === 1 && this.state.data.bargain_status === 0 &&\n                                <div>\n                                    {thirdRow}\n                                    {btn}\n                                </div>\n                            }\n\n                            {\n                                this.state.isOriginator === 1 && this.state.data.bargain_status === 1 &&\n                                <div>\n                                    砍价金额将于\n                                    <span className={'time hour'}>{String(this.state.day).padStart(2, 0)}</span><span\n                                    className={'unit'}> 天 </span>\n                                    <span className={'time min'}>{String(this.state.hour).padStart(2, 0)}</span><span\n                                    className={'unit'}> 时 </span>\n                                    <span className={'time sec'}>{String(this.state.min).padStart(2, 0)}</span><span\n                                    className={'unit'}>分</span>\n                                    后清零,请尽快完成支付\n                                </div>\n                            }\n\n                            <div className={'button'}>\n                                {bargainBtn}\n                            </div>\n\n                        </div>\n                    </div>\n                    <div className=\"bargain-records\">\n                        <div className=\"title\">砍价记录</div>\n                        <ul>\n                            {\n                                this.state.outList && this.state.outList.length > 0 && this.state.outList.map((item, index) => {\n                                    return (\n                                        <li key={index}>\n                                            <div className=\"left\">\n                                                <img className='avatar' src={item.avatar_file} alt=\"\"/>\n                                                <span className={'nickname'}>{item.user_name}</span>\n                                                <span className=\"rank-tag\">{item.rank}</span>\n                                            </div>\n                                            <div className=\"right\">\n                                                <img className='kanjia-icon' src={this.state.kanjiaIcon} alt=\"\"/>\n                                                砍掉<span className={'price'}>{item.amount}</span>\n                                            </div>\n                                        </li>\n                                    )\n                                })\n\n                            }\n\n                        </ul>\n                        <div className=\"more\" onClick={this.getMore}>查看更多&gt;&gt;</div>\n                    </div>\n                </div>\n                <div className=\"bargain-course-list\" id='bargainCourse'>\n                    <div className=\"title-wrapper\">\n                        <div className=\"title\">我要砍价</div>\n                        <div className=\"subtitle\">邀请{this.state.limitPeople}位以上好友帮忙砍价可获得【砍价神器】</div>\n                    </div>\n                    <ul>\n                        {\n                            this.state.courseList && this.state.courseList.length > 0 && this.state.courseList.map((item, index) => {\n                                return <Course\n                                    className={'text-overflow-2'}\n                                    key={index}\n                                    id={item.course_id}\n                                    img={item.image_name}\n                                    title={item.course_title}\n                                    toDetail={this.toCourseDetail}\n                                    bottom={\n                                        <CourseBottom\n                                            user={this.props.user}\n                                            item={item}\n                                            toCartBottom={this.toCartBottom.bind(this, item.course_id)}\n                                            toDetail={this.toCourseDetail}\n                                        />\n                                    }\n                                />\n                            })\n                        }\n                    </ul>\n                </div>\n                <Link to={'/classify'} className={'preferential'}>查看更多精品课程 &gt;&gt;</Link>\n\n\n                {/*更多好友砍价*/}\n                <Ranking list={this.state.list} icon={this.state.kanjiaIcon} limitPeople={this.state.limitPeople}\n                         isShowMore={this.state.isShowMore} boxHide={this.boxHide}></Ranking>\n\n\n                {\n                    this.state.isShowOverlay &&\n                    <Overlay>\n                        <div className=\"bargain-popup__content\">\n\n\n\n                        {/*砍价成功去分享*/}\n                        {\n                            this.state.status === 7 &&\n                            <BargainSuccess isshowYindao={this.state.isshowYindao} limitPeople={this.state.limitPeople}\n                                            close={this.close}/>\n                        }\n\n\n                        {/*引导关注公众号*/}\n                        {/* {\n                            this.state.status === 1 &&\n                            <PublicNumber\n                                money={this.state.amount}\n                                avatar={this.props.user.data.avatar}\n                                firendBaigainPrice={this.state.firendBaigainPrice}/>\n                        } */}\n                        {\n                            this.state.status === 1 &&\n                            <FollowBarcode\n                                userInfo={this.props.user.data}\n                                money={this.state.amount}\n                                firendBaigainPrice={this.state.firendBaigainPrice}\n                            />\n                        }\n\n                        {/*好友成功砍第一刀*/}\n                        {\n                            this.state.status === 2 &&\n                            <BargainFirst\n                                bargainSecond={this.friendBargainSecond}\n                                money={this.state.amount}\n                            />\n                        }\n                        {/*好友成功砍第二刀*/}\n                        {\n                            this.state.status === 3 &&\n                            <BargainSecond close={this.close} money={this.state.amount}/>\n                        }\n                        {/*不能在砍了*/}\n                        {\n                            this.state.status === 4 &&\n                            <NotBargain close={this.close} limitPeople={this.state.limitPeople}/>\n                        }\n                        {/*领取砍价神器*/}\n                        {\n                            this.state.status === 5 &&\n                            <Artifact useArtifact={this.useArtifact}/>\n                        }\n                        {/*使用砍价神器*/}\n                        {\n                            this.state.status === 6 &&\n                            <UseArtifact toCart={this.toCart} money={this.state.amount}\n                                         allMoney={this.state.bargainData.bargain_price}/>\n                        }\n\n                        {\n                            this.state.status !== 7 &&\n                            <i onClick={this.close} className={'iconfont iconiconfront-2 bargain-popup__button--close'}></i>\n                        }\n                        </div>\n                    </Overlay>\n\n                }\n                {/*</Loading>*/}\n\n            </div>\n        );\n    }\n}\n\n// 课程信息 -- 右侧\nfunction CourseDes(props) {\n    const { data: { bargain_status = 0, course = {}, is_originator = 0 }, toCart } = props;\n    return (\n        <div className={'des'}>\n            <div className=\"course-title text-overflow-2\">\n                {course.course_title}\n            </div>\n            <div className=\"price-bar\">\n                <span className={'discount-price'}>¥{course.course_price}</span>\n                {/* is_originator 是否发起人 0-否 1-是 */}\n                {\n                    (is_originator == 1 && bargain_status !=3) &&\n                    <button className={'purchase-btn'} onClick={toCart}>\n                        ¥{course.pay_price}去支付\n                    </button>\n                }\n                {\n                    (is_originator == 1 && bargain_status == 3) &&\n                    <span className=\"course-button__buy--done\">已购买</span>\n                }\n            </div>\n        </div>\n    );\n}\n\nfunction CourseBottom(props) {\n\n    // bargain_status 砍价状态 0-砍价中,1砍价结束,待支付,2砍价过期(没有砍价记录没有砍价信息),3已购买\n    const {course_id = '', bargain_status = '', price1 = '', pay_price = '' } = props.item || {};\n    const { user: { data = {} } } = props;\n    const price = bargain_status === 2? price1 : pay_price;\n    let Buttons\n    if(data.uid) {\n        if (props.item.bargain_status === 2) {\n            // Buttons = <Link to={`/detail?id=${props.item.course_id}`} className={'bargain'}>我要砍价</Link>\n            Buttons = (\n                <div className=\"\">\n                    <a onClick={() => props.toDetail(props.item.course_id)} className={'bargain bargian-study'}>我要砍价</a>\n                </div>\n\n            )\n        } else if (bargain_status === 3) {\n            if(course_id === 139) {\n                Buttons = (\n                    <a\n                        onClick={() => props.toDetail(props.item.course_id)}\n                        className={'bargain bargian-study'}\n                    >我要砍价</a>\n                );\n            }else {\n                Buttons = (\n                    <Link\n                        to={`/play/video?id=${props.item.v_course_id}`}\n                        className={classnames('bargain', 'button--study')}\n                    >去学习</Link>\n                );\n            }\n        } else {\n            Buttons = (\n                <div className=\"btns\">\n                    {/*<button className={classnames('bargain-btn', {invalid: props.item.bargain_status === 2})}>*/}\n                    {/*{props.item.bargain_status === 2 ? '砍价结束' : '继续砍价'}*/}\n                    {/*</button>*/}\n                    {\n                        bargain_status === 1 &&\n                        <button className='invalid'>砍价结束</button>\n                    }\n                    {\n                        bargain_status === 0 &&\n                        <a onClick={() => props.toDetail(props.item.course_id)} className={'bargain-btn'}>继续砍价</a>\n                    }\n                    <button\n                        onClick={() => props.toCartBottom(props.item.course_id)}\n                        className={'purchase-btn'}\n                    >\n                        ¥{price}去支付\n                    </button>\n                </div>\n            )\n        }\n\n    }else {\n        Buttons = (\n            <a\n                onClick={() => props.toDetail(props.item.course_id)}\n                className={'bargain bargian-study'}\n            >我要砍价</a>\n        );\n    }\n\n    return (\n        <div className=\"course-bottom\">\n            <div className={'course-price'}>\n                <span className={'discount-price'}>¥{props.item.price1}</span>\n                <span className={'original-price'}>¥{props.item.price0}</span>\n            </div>\n            {Buttons}\n        </div>\n    )\n}\n\n\nfunction PublicNumber(props) {\n    return (\n        <div className='bargain-public-number'>\n            <img className='avait' src={props.avatar} alt=\"\" />\n            {\n                props.firendBaigainPrice &&\n                <p className='status-title ff4'>谢谢你帮我砍了{props.money}元!</p>\n            }\n            <p className='status-dec'>关注公众号,可以再砍一刀哦~</p>\n            <img\n                className='public-number-img'\n                src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/tinypng-common/right_weixin.png\"\n                alt=\"\"\n            />\n        </div>\n    )\n}\n\nfunction BargainFirst(props) {\n    return (\n        <div className='bargain-first'>\n            <img className='top-img' src={require('./image/kanjia_cg_icon.png')} alt=\"\"/>\n            <p className='status-title'>谢谢你帮我砍了<span className='ff4'>{props.money}元</span>!</p>\n            <p className='status-dec'>你还可以帮我再砍一刀哦~</p>\n            <button className='bargain-href' onClick={props.bargainSecond}>再砍一刀</button>\n        </div>\n    )\n}\n\nfunction BargainSecond(props) {\n    return (\n        <div className='bargain-second'>\n            <img className='top-img' src={require('./image/kanjia_cg_icon.png')} alt=\"\"/>\n            <p className='status-title'>厉害了,又帮好友砍掉<span className='ff4'>{props.money}元</span>!</p>\n            <a className='bargain-href' href='#bargainCourse' onClick={props.close}>我也要砍价</a>\n        </div>\n    )\n}\n\nfunction NotBargain(props) {\n    return (\n        <div className='not-bargain'>\n            <img className='middle-img' src={require('./image/kanjia_no_iccon.png')} alt=\"\"/>\n            <p className='status-title'>你的好友用【砍价神器】把我砍蒙圈了<br/>不能再砍了哦~</p>\n            <p className='status-dec'>邀请{props.limitPeople}位以上好友帮忙砍价可获得【砍价神器】</p>\n            <a className='bargain-href' href='#bargainCourse' onClick={props.close}>我也要砍价</a>\n        </div>\n    )\n}\n\nfunction Artifact(props) {\n    return (\n        <div className='artifact-box'>\n            <p className='top-tip'>恭喜你获得【砍价神器】!</p>\n            <p className='middle-tip'>\n                您可以使用\n                <span className={'indicator'}>【砍价神器】</span>\n                再砍一刀\n            </p>\n            <button className='use-artifact' onClick={props.useArtifact}>立即使用</button>\n        </div>\n    )\n}\n\nfunction UseArtifact(props) {\n    return (\n        <div className='use-artifact-box'>\n            <img className='top-img' src={require('./image/kanjia_cg_icon.png')} alt=\"\"/>\n            <p className='top-tip'>厉害了,又砍掉了{props.money}元!</p>\n            <p className='middle-tip'>\n                你已经砍了\n                <span className={'indicator'}>{props.allMoney}元</span>\n                没见过你这么能砍的人...\n            </p>\n            <p className='btm-tip'>\n                不能再砍了哦~\n            </p>\n            <button className='tubuy' onClick={props.toCart}>去支付</button>\n        </div>\n    )\n}\n\n\nfunction BargainSuccess(props) {\n    return (\n        <div>\n            <div className='close-bargain-success' onClick={props.close}></div>\n\n            <div className=\"bargain-success\">\n                {\n                    props.isshowYindao &&\n                    <i className='iconfont iconyindao'></i>\n                }\n                <p>分享到微信群邀请更多好友帮忙砍价</p>\n                <p>超过{props.limitPeople}位好友助力可获得<span className={'indicator'} style={{color: '#FF4000'}}>【砍价神器】</span>哦\n                </p>\n            </div>\n        </div>\n    )\n}\n\n\nexport default withRouter(BargainMiddlePage);\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAA51BMVEUAAAD3yyr4zCr60jD61DT4zSz4zi360C770jL93jn94UH3yin4yyz4ziz4zi34zS361TX50i/50jD61DP72Dj61jP+4kH+4ED4zCv3zCz4zSz4zS350jL61jb61jT6zir50DH83Dz71DP83Dj+5ET2zDD50C77zyj93j/930H82zv3yir3yCj/6072xib3yyv/6kz2xiT/7lD/8FL2wyL2xCP/8VT/7E//8lb83T74zS32wiH/81b/6Er71zj94kT72zz50zP+5kj84EH/9Vj+5Uf61TX50TH83j/4zy//9Ff3xyb0vBpXStORAAAAK3RSTlMA8+yrk9q7gTsdBPfnysGyoJ+IhWhMFg3w5d7QvKSbmI9eWich+nxTRjARluH5lgAAAm5JREFUOMt1lddi4jAQRYVp6b1vspvdZKvG6pI7NjWQ7P9/T7BFQBBzXnjw0YyvxhJonZ1fzcODRuPgsNndQVvZPW9DCca4/Lk7e6rV/rUwIdiBcNy6+uz98DjgDYDffN/0WsTR3Kpf171j13MB3Vn38Fb0/cr7BpsdgeIl6uTD++16FDQhMQanu1okuv4JjpbAkMZm4JoEX9vGxFmNJ9Eoy1KGyeodaPJQelfUWZz0RpIJIYeEa0WAx7RaDrtz8Yw4TWIh/JIgm0b5hOayp6s8rbnoOQV5njK/QozGLJ+lr0NeFbhBaMeNzPsi8C1hL+E9IwcAlfkHdcGdbWSsxoTpFy+FEZlNoM/RsStC5NuKwYD1BybzBbMiv0df3NaQTM1H45hJwURmN/StjTx3KupFBkIGzJfFbFIWN2NSieCh/bURMynHPSl8EfmSlZULZR81UMMRk2nqh5P/UeiznJUvK8SMf4ie07hvAjPmhA8My6rs6VBji+eEIYTJQL5omvRNFZ6ZAMgi5R1qLieoopCFQ1Xu0kBW0UWs6aLIEeqSZWITCEF5uaQIfV+mWayW3c7sCG1jw8IiqeYwGYWSFW+cLsXL5UehpimTzL4TxMOoDwpWXmMPoUeySCzm81DUfudcu6ec6vLQ7gLYrWZm7Dx1AXhGc044xjpKWbU1dR5VTXu4MGCdj9hrrnEtBK4W1w7BfCZefcrrG6sLtOCUUB73KKe1om1sOQJMFKn39CFy6BBcD/CjPeRyuuXa0w9og4v9zyro/YuaG/wUr6uEw8kzquPp8dbe9fayv239RdvYu+x22vO/D6/dOb9cD/EONO7gZ+bVU9IAAAAASUVORK5CYII=\"","import React, {Component} from 'react'\nimport './index.scss'\n\nclass Ranking extends Component {\n\n    constructor(props) {\n        super(props)\n        this.state = {\n            kanjiaIcon: require('../image/kanjia_icon.png')\n        }\n    }\n\n    // 关闭更多窗口\n    closeMore = () => {\n        this.props.boxHide(false);\n    }\n\n    render() {\n        return (\n            <div className={'ranking-box'}>\n                {\n                    this.props.isShowMore &&\n                    <MoreList list={this.props.list} limitPeople={this.props.limitPeople} closeMore={this.closeMore}\n                              img={this.props.icon}/>\n                }\n            </div>\n        );\n    }\n}\n\nfunction MoreList(props) {\n    return (\n        <div className=\"moreMbc\">\n            <div className=\"content\">\n                <div className=\"title-box\">\n                    好友助力详情\n                </div>\n                <ul className='more-bargain-list'>\n                    {\n                        props.list && props.list.length > 0 && props.list.map((item, index) => {\n                            return (\n                                <li key={index} className='bargain-item'>\n                                    <img className='avatar' src={item.avatar_file} alt=\"\"/>\n                                    <p className='name'>{item.user_name}</p>\n                                    <p className='bargain-status'>\n                                        <img className='kanjia-icon' src={props.img} alt=\"\"/>\n                                        砍掉<span className={'price'}>{item.amount}</span>\n                                    </p>\n                                </li>\n                            )\n                        })\n                    }\n                </ul>\n                <div className='more-bargain-dec'>\n                    超过{props.limitPeople}位好友助力可获得【砍价神器】\n                </div>\n            </div>\n            <i onClick={props.closeMore} className={'iconfont iconiconfront-2 close'}></i>\n        </div>\n    )\n}\n\nexport default Ranking","import React, { Component } from 'react';\nimport ReactDom from \"react-dom\";\n\nimport './overlay.scss'\n\nconst root = document.body || document.documentElement\n\nconst events = ['touchmove', 'mousewheel']\n\nclass Overlay extends Component {\n    constructor(props) {\n        super(props);\n        this.overlayBox = null\n    }\n\n    preventScroll = e => {\n        e.preventDefault()\n    }\n\n    componentDidMount() {\n        events.forEach(item => {\n            this.overlayBox.addEventListener(item, this.preventScroll, {\n                passive: false\n            })\n        })\n    }\n\n    componentWillUnmount() {\n        events.forEach(item => {\n            this.overlayBox.removeEventListener(item, this.preventScroll)\n        })\n    }\n\n    render() {\n        return ReactDom.createPortal(\n            (<div className={'overlay'}\n                  ref={el => this.overlayBox = el}\n                  style={{top: `${window.scrollY}px`}}\n            >{this.props.children}</div>),\n            root\n        )\n    }\n}\n\nexport default Overlay;","module.exports = __webpack_public_path__ + \"mrstaticmedia/kanjia_cg_icon.81a489ac.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAABmCAMAAADlNq9TAAACSVBMVEUAAABeTUZoSDp2QytSUlL/1jRSUlJhTEL/1jRSUlJ2QytVUE780jP/1jRSUlL/1jT/1jR1QyxSUlJSUlJ2Qyv/1jRmSj3/1jR2QytSUlL/1jR3RCv/1jT/1jT/1jT/1jRcTkj/1jSPXS3/1jT/1jT/1jT/1jR1QytSUlJ2QytSUlJSUlL/1jRTUVD/1jR2Qyv/1jT/1jRSUlJ2QytSUlJ2Qyt8SixSUlL/1jT/1jRSUlL/1TR6Ryt2QytSUlJSUlJSUlJSUlL/1jT/1jR2Qyt2Qyv/1jT/1jR2Qyv/1jRSUlL/1jT/1jR2QyuUYy1+TCtyRC9SUlJ2Qyt2QyuTYS3dsTF2QyvovTK6jC9aTknKnjG8jjCKWSzzyTPNoDGldi5qSDiOXS3/1jR2QyvoVFRSUlLznJL+1DRXVlGVcUnqxjj40TWBdkmIe0igjUT+z0B7cUu6oUDKrj3yzDZrZU3Gqz7iwDn2zjX60TSwmkHuyTfvxTN7SCtfXFBbWVCNgEjStDznwjikdC6XZi2HVSxiXk+adkiYiEbdvDrWqjF/TCtmYU5vaE12bUyShEacikW1nkHitjLQojGlkkPTrDzZuTrHmTDDljC2iC+sfS6slkK9o0DHoT/OsTz2zDOebS6EUiy2kELApj/9yTfeszLarjHAkjDqXFPxg0imgUWuiETZtTvswTPovTKygy/0oIbxhmXveGDpWFTtbk33qj/0n3rqYVbsaFT2n0HBm0D5sj3huTq7jS/ykmzvekqfe0f0lkS7lkH7vjoJQEVHAAAAYnRSTlMABQv7ufmfH8etZBYUBpFwHvXsy8NFJ+/q3drNnGRRLxAK/vSslX52QTw399PStKuNh4BvbVZKST3owby0mWBZUjAn4d/UwqOGeXZcNTH+8KKGfj/s4tvG7u3r3NvOramXgxcNtvQAAAi0SURBVGjerNRLc9JQFAfwfx4kDbShkJZHKQVmRChIWwHbDpYWtO+H0+rCceFj7hmmH8GFrMSN3dWF4sa6UFdOP6MhlUwMt2Fa+W0yN4vzz5x7TjACU8v4L2K+rCj6ujgkhdYiuLWmUjtpFPLVUngDXtaIpF3xlhmyVoBFKLc8YxJk2lzGcI9c57RuFGBTwgFcyXDaKpGlLmKYbApO+fi+AJOatzoeKO7jyiwG+OmvzXkMMbMHh2q80KtdLmlK2FAByDIsE75DuKRj1Cfl4Gmc3XGcTkqqFVUVzCLxXoBeguWQBd39miKHRc+urbIZ2PZLAUDU5LR12mipZooBS5Lt4B+qGeK05TXTB8yHvpWwaobUFAGWSKsJyAos99k2HIRKiFxi8+CaSCWXxhibvTs3ad20tR2KLKChrPdCWwGkiw0gsxpcmmHRbHB6HBY1F6NB0gNwBKPMdu8Q0Gu90sWAoGm6GQBNM3sYFzJZH7MtTIrzT6eIT/KDY/JgaeExY9s7e9MZmJ+9AkBToMtCNS5g3VwV1XqXSmYfRpnv5fNXr9e2JHJrk60CvjkWhcWsClNNhiCW4000wgUIhn7k311MxIh+sXPiO+s6DjlwpdhYf81lmBpFWTaqonASjwjPSi/sL79kn4jv4gc5+PkT4JvtpxjWI90MAHlDWa7HSCJbh3WJr/tt+AhgLNnvWKuAK3nZeLPpbv5phzjana/nrPv+gyOGO9DB8f4KaOFyQY2slA3tOEQDPrZ5d/LlNzO9/dkhW0zltQy2vC7XNH0jFyKO78TX/nx65voLiBjqKEE3c/mOXBYxjF+iG3oyOHx+eBLqdHMX5BaKeIYc02gk4KFOo1LBtSo0MiH12umSaCS85yxBo/SH9brnTRsI4wAuNWOnSlHVsWKpmDq1U7u1UpcmUppmaafndDqLFwscHJnYaalxBKZJBEa1cVAxQoYJ8wn4cDV2gn3XIx7i32bJ5u+757k783lHD6Nc7fP76wPK11v+UHL2kV+VvHHOgCLiyL0yj1v1U92ZL1XVt3UNJZ6zIU/Su30vfCZQ1eXAdNy2hrK0FwFsKXZyoh2xKW/QVsFSIIUsrZE3RTsYujUBmrLeuZu93o7DIsChBKa9dvV2wZhuziytZxx4rmOqwDO4f6mXzGK5n7ADFXKgHnKXzBcUO1YAcoz5RKe8QpHvJH3n3BxMALKRgbNaLXxqpr/uJb3MlOUw+VFlYcT9Y0IWs3DXCBakfIv2fzrlBG2YSf0MpLmetokhGSH2JqAXNSc1wGMUekoVP35v2LL0UQAwWYxMAhnWmmET4usFl26cAIWK1P+qKMWHXLnsx0wxHnC+llGTsSvfgZzpCL1nzxaN7VrS7Yud4awEDyvNxI7Y73LqN0foHfvx4gGl3Kw0Wy1ZbOCaTGAnuSpKLalZw79vy8AgU7TPLkob0qRGk8S3Slf4+gz4ftVuTiFyVsWXMjBW6CSdchSmpPuQiBd/koshFmbAI/3opy4ucIcZtI9eMGMxIKUjdONpa9XHf8sgCbjOmy3cvyvgrC6fQ+kKV+kY0nvG1EWHxDh+/Pym0q//FIRhuSVg+f/pEioQUprXt2PxEldLpw3cAYq3948Qe1mRGojCADxPIS5c6d6lbyKKO//hp4q6hNy6YwJJOoumW3ObsQloDy0yCzfzksIMjDmxdb5dFuEU1Km/iiN6TPSx2m4VgKk8KAAmZJ/csjJYqDkBSPrQArABy6mpFov5dbk4L9d4dGINoKgckBkF5eiUZw1J6VIBKqwSKGOBnGURcWtlLy+ulwyPrhgAGBmvw05XgU1Kxg1pIKzZAYi5y4a00r6B406lcgN/iCrPLn/ij5wDgJZFysw4psWRDo5XyyotgB2jkSsbUJ/21Danw9wX8YKZ5zFipgAqFqSC8gzXLHHkCMGSBvC8CXkCIlZFy2nPFnMvL+aef5//rzkBHW80DZBpGmrkDCA5HoCAtWd0/xWF3BimMsrk8/UbZgL2Cjnb4+ah4wqmCHgLaUNtsNY8rCyAgXc9mxMHzL2Xg2GRL1nKEWpgmU/72LtmxYPddgoLA3uLSOtxsz8d0jjRHWotw+iDqPLxq9zZkoHCXeD9GBl86tqiThss2ZBhAnOs/ZDvFUZurnQM4a2o8uYzhHVLZ/BA1dtVH2T4W+bYbh4DQ0e1byC9k5PYa0jZqPVufV8w9IlSOEtFJd1JAUjGboLC0usL4RWWzLHXW+f9bo//sDeuqkLv6/OX0IvF7BpnqMJYPC0xGf7hNy11jIIwEERheBrBQtBGBBHBxlKwUzyCt3jNMrYBDXY2c4Itt9lyNycIKcSbqUEhEyxMYL8LTPEPb03KAUkcSVkgiR0pYyQxImWKFPakTZDChlpmSGBLLRt8mcqWD1egjzxTr7+kljU+7J0lBOESnV0jM0u0uYr/K/+NhZld7gM68+JsFOGQoTanttUAtUr4JcL6HlccHvxmG/uiDVEz3gnfKxNP6KzwcMws4dzIom2/AS/mApgcPRSZsaW7WZVF2eEvz1bqZ0VBKIrj+NkILhLdSBBpROZKhtoV7QyKmHmKw8GW81AudJfaX4Ji6MlmIqaUbveY9Vnd3ZffWdxwtduHWIoKAh3knY50FpfqdEHAQ9Yqo4toj7wpCDT4CF1lJ2Q1Kl0sjOhmO0dWG+4YyIkp7wdZLbjTYqdklLfhx5gVKjsq2iPHrnCx+DIhTdJIcjJmCygotyWidB2crc/vI3J8uKeiXER0CP4lREtkdEBghnJESXCT8pURCBjclk2Qs8jYig4iDkotD0FeEnMHq4GIr6BMvChU1jv2sxTro8yqWFmE7BQxzUOJ+XcRylnwiDHGd3HgsZqK7/GhgYyr4Bv0gWFMX+40TOAZvSG+YKhrUIpmOx2sRrU0KE8b9CfK04mZD0/TvqzupNz1FM9xzTZU1/YH9qfu9prOSPXG9Tr+UerDsaeOnGbP1S3bbNXggV9XIWYP5SLNCwAAAABJRU5ErkJggg==\""],"sourceRoot":""}