{"version":3,"sources":["components/bargainMiddlePage/barcode/index.js","components/bargainMiddlePage/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","components/bargainMiddlePage/image/kanjia_icon.png","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/differenceInMinutes/index.js","../node_modules/date-fns/esm/differenceInHours/index.js","components/bargainMiddlePage/ranking/index.js","components/detail/overlay/index.js","components/bargainMiddlePage/image/kanjia_cg_icon.png","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","components/bargainMiddlePage/image/kanjia_no_iccon.png"],"names":["FollowBarcode","props","state","url","codeUrl","console","log","this","userInfo","uid","http","get","API","then","res","data","errno","setState","_this","Promise","resolve","QRCode","toDataURL","err","firendBaigainPrice","avatar","money","className","style","backgroundImage","src","alt","Component","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","bargain_code","courseId","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","kanjiaIcon","require","isLoaidng","imglink","prevProps","prevUser","hasError","thirdRow","btn","is_artifact","invite_num","onClick","assist_status","bargain_status","bargainBtn","arrow","cart","toHref","img","CourseDes","Number","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","Buttons","price1","price","v_course_id","classnames","price0","color","withRouter","differenceInMilliseconds","dirtyDateLeft","dirtyDateRight","requiredArgs","arguments","dateLeft","toDate","dateRight","getTime","startOfDay","dirtyDate","setHours","getDateMillisecondsPart","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","Math","ceil","getTimezoneOffset","setSeconds","module","exports","diff","floor","Ranking","closeMore","MoreList","root","document","body","documentElement","events","Overlay","preventScroll","e","preventDefault","overlayBox","forEach","addEventListener","passive","removeEventListener","ReactDom","createPortal","ref","el","top","scrollY","children","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","compareLocalAsc","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","sign","difference","abs","setDate","isLastDayNotFull","result"],"mappings":"mVAkEeA,G,yDA5Db,WAAYC,GAAQ,IAAD,8BACjB,cAAMA,IACDC,MAAQ,CACXC,IAAK,GACLC,QAAS,IAJM,E,gEAQE,IAAD,OAClBC,QAAQC,IAAIC,KAAKN,OADC,MAIdM,KAAKN,MADPO,SAAYC,WAHI,MAGE,GAHF,EAKdA,GACFC,IACGC,IADH,UACUC,IAAI,YADd,qCACsDH,IACnDI,MAAK,SAACC,GAAS,IAAD,EACWA,EAAIC,KAApBC,EADK,EACLA,MAAOD,EADF,EACEA,KAEf,GADAV,QAAQC,IAAIQ,GACE,IAAVE,EAAa,CACf,EAAKC,SAAS,CACZd,IAAKY,EAAKZ,MAEZ,IAAMe,EAAQ,EACd,OAAO,IAAIC,SAAQ,SAACC,GAClBC,IAAOC,UAAUP,EAAKZ,IAAK,IAAI,SAAUoB,EAAKpB,GAC5Ce,EAAMD,SAAS,CACbb,QAASD,OAGbiB,a,+BAOF,IACAhB,EAAYG,KAAKL,MAAjBE,QADD,EAMHG,KAAKN,MAHPuB,EAHK,EAGLA,mBACYC,EAJP,EAILjB,SAAYiB,OACZC,EALK,EAKLA,MAEF,OACE,yBAAKC,UAAU,0BACb,uBACEA,UAAU,wBACVC,MAAO,CAAEC,gBAAgB,OAAD,OAASJ,EAAT,QAEzBD,GACC,uBAAGG,UAAU,wBAAb,6CAA4CD,EAA5C,gBAEF,uBAAGC,UAAU,uBAAb,mFACA,yBAAKA,UAAU,wBAAwBG,IAAK1B,EAAS2B,IAAI,U,GAvDrCC,cCkBtBC,EAHLC,aAAQ,SAAChC,GAAD,MAAY,CACnBiC,KAAMjC,EAAMiC,Q,qDAKZ,WAAYlC,GAAQ,IAAD,8BACjB,cAAMA,IA6CRmC,eAAiB,WAEf1B,IACGC,IADH,UAEOC,IAAIyB,KAFX,uCAE8CC,YACxC,eAHN,0BAIuBA,YAAS,mBAE7BzB,MAAK,SAACC,GACiB,MAAlBA,EAAIC,KAAKwB,KACX,EAAKtB,SACH,CACEF,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,MAKI,KAHAnC,EAAIC,KAAKA,KAAKiC,QAAQE,cACtBpC,EAAIC,KAAKA,KAAKiC,QAAQG,aACtBC,QAAQ,GAEV,MAEJ,WACE,GAAI,EAAKlD,MAAM6C,YAAYM,YAAa,CACtC,IAAIC,EAA4C,IAArC,EAAKpD,MAAM6C,YAAYM,YAC9BE,EAAMC,KAAKD,MACfE,cAAc,EAAKC,OACnB,EAAKA,MAAQC,aAAY,WAEvB,IAAIC,EAAK,IAAIJ,KADbF,GAAQ,KAEJO,EAAIC,YAAoBF,EAAIL,GAAO,GACrCQ,EAAIC,YAAoBJ,EAAIL,GAAO,GACnCU,EAAIC,YAAkBN,EAAIL,GAAO,GACjCY,EAAIC,YAAiBR,EAAIL,GAAO,GAClC,EAAKtC,SAAS,CACZoD,KAAMJ,EACNK,IAAKP,EACLQ,IAAKV,EACLW,IAAKL,MAEN,SAKT,IAAMM,KAAK3D,EAAIC,KAAK2D,IAAK,OA/Fd,EAqGnBC,iBAAmB,WACjBjE,IAAKC,IAAL,UAAYC,IAAIyB,KAAhB,0BAA6CxB,MAAK,SAACC,GAC3B,MAAlBA,EAAIC,KAAKwB,KACX,EAAKtB,SAAS,CACZ2D,WAAY9D,EAAIC,KAAKA,OAGvB,IAAM0D,KAAK3D,EAAIC,KAAK2D,IAAK,OA5GZ,EAkHnBG,mBAAqB,WAAoB,IAAnBC,EAAkB,uDAAb,GAAIC,EAAS,uCAChCC,EAAe1C,YAAS,gBAAkB,GAC5CvB,EAAO,CACTkE,SAAUH,EACVC,KAAMA,EACNC,gBAEFtE,IAAKwE,KAAL,UAAatE,IAAIyB,KAAjB,uBAA4CtB,GAAMF,MAAK,SAACC,GACtD,GAAsB,MAAlBA,EAAIC,KAAKwB,KAAc,CACzB,IAAI4C,EAAM,CAAC,eAAM,eAAM,gBACnBC,EAAUtE,EAAIC,KAAKA,KAAKsE,SAASC,KAAI,SAACC,EAAMC,GAC9C,OAAO,2BACFD,GADL,IAEEE,KAAMN,EAAIK,QAGd,EAAKvE,SAAS,CACZyE,KAAM5E,EAAIC,KAAKA,KAAK2E,KACpBC,QAASP,SAEgB,OAAlBtE,EAAIC,KAAKwB,MAAmC,OAAlBzB,EAAIC,KAAKwB,MAE5C,IAAMkC,KAAK3D,EAAIC,KAAK2D,IAAK,OAxIZ,EA8InBkB,OAAS,WAAO,IACNC,EAAY,EAAK5F,MAAjB4F,QACRnF,IACGC,IADH,UACUC,IAAI,YADd,kCACmD0B,YAAS,MAD5D,MAEGzB,MAAK,SAACC,GAAS,IAAD,EACUA,EAAIC,KAAnBC,EADK,EACLA,MAAO0D,EADF,EACEA,IACD,IAAV1D,EACF,EAAKf,MAAM4F,QAAQC,KAAnB,qBAAsCxD,YAAS,MAA/C,KAAyD,CACvDU,QAAS,IAEQ,OAAVhC,GAA4B,OAAVA,EAC3B6E,EAAQC,KAAK,aAEb,IAAMrB,KAAKC,EAAK,OA3JL,EA2KnBqB,aAAe,SAACjB,GACdpE,IAAKC,IAAL,UAAYC,IAAI,YAAhB,kCAAqDkE,EAArD,MAA4DjE,MAAK,SAACC,GACzC,IAAnBA,EAAIC,KAAKC,MACX,EAAKf,MAAM4F,QAAQC,KAAnB,qBAAsCxD,YAAS,MAA/C,KAAyD,CACvDU,QAAS,IAGX,IAAMyB,KAAK3D,EAAIC,KAAK2D,IAAK,OAlLZ,EA+LnBsB,QAAU,WACR,EAAK/E,SAAS,CACZgF,YAAY,KAjMG,EAsMnBC,QAAU,SAACC,GACT,EAAKlF,SAAS,CAAEgF,WAAYE,KAvMX,EA2MnBC,WAAa,WAAO,IACVP,EAAY,EAAK5F,MAAjB4F,QADS,EAIb,EAAK3F,MADP0C,OAAUyD,iBAHK,MAGO,GAHP,EAKbtF,EAAO,CACTkE,SAAU3C,YAAS,MAAQA,YAAS,MAAQ+D,GAE9C3F,IAAKwE,KAAL,UAAatE,IAAIyB,KAAjB,2BAAgDtB,GAAMF,MAAK,SAACC,GAAS,IAAD,EAC5CA,EAAIC,KAAlBwB,EAD0D,EAC1DA,KAAMmC,EADoD,EACpDA,IACD,MAATnC,GACF,EAAKtB,SAAS,CACZqF,eAAe,EACfC,OAAQ,IAEV,EAAKnE,kBACa,OAATG,GAA0B,OAATA,EAC1BsD,EAAQC,KAAK,aAEb,IAAMrB,KAAKC,EAAK,OA9NH,EAoOnB8B,YAAc,WAAO,IAAD,EAGd,EAAKtG,MADP0C,OAAUyD,iBAFM,MAEM,GAFN,EAIZvB,EAAKxC,YAAS,MAAQA,YAAS,MAAQ+D,EAC7C,EAAKI,SAAS3B,EAAI,EAAG,IAzOJ,EA6OnB2B,SAAW,SAAC3B,EAAIC,EAAMtE,GACpB,IAAIM,EAAO,CACTsF,UAAWvB,EACXC,KAAMA,EACN2B,WAAYjG,GAEdC,IAAKwE,KAAL,UAAatE,IAAIyB,KAAjB,wBAA6CtB,GAAMF,MAAK,SAACC,GACvD,GAAsB,MAAlBA,EAAIC,KAAKwB,KAEX,EAAKtB,SAAS,CACZ0F,OAAQ7F,EAAIC,KAAKA,KAAK4F,SAEX,IAAT5B,IACF,EAAK9D,SAAS,CACZqF,eAAe,EACfC,OAAQ,IAEV,EAAKnE,iBACL,EAAKyC,mBAAmB,GAAI,IAGG,IAA7B/D,EAAIC,KAAKA,KAAK6F,WAChB,EAAK3F,SAAS,CACZqF,eAAe,EACfC,OAAQ,IAE4B,IAA7BzF,EAAIC,KAAKA,KAAK6F,WACV,IAAT7B,EACF,EAAK9D,SAAS,CACZqF,eAAe,EACfC,OAAQ,IAEQ,IAATxB,GACT,EAAK9D,SAAS,CACZqF,eAAe,EACfC,OAAQ,EACR/E,oBAAoB,IAGc,IAA7BV,EAAIC,KAAKA,KAAK6F,aACV,IAAT7B,EACF,EAAK9D,SAAS,CACZqF,eAAe,EACfC,OAAQ,IAEQ,IAATxB,GACT,EAAK9D,SAAS,CACZqF,eAAe,EACfC,OAAQ,KAKd,EAAKnE,iBACL,EAAKyC,mBAAmBvC,YAAS,MAAO,QACnC,GAAsB,OAAlBxB,EAAIC,KAAKwB,MAAmC,OAAlBzB,EAAIC,KAAKwB,KAC5C,GAAIsE,IAAQC,SAAU,CACpB,IAAIC,EAAcC,OAAOC,SAASC,KAClC,GACEH,EAAYI,SAAS,UACrBJ,EAAYI,SAAS,eACrB,CACA,IAAIC,EAAQL,EAAYM,YAAY,SACpCN,EAAcA,EAAYO,OAAO,EAAGF,EAAQ,GAE9CJ,OAAOC,SAASM,OAAhB,oGAC+FC,mBAC3FT,GAFJ,+EAMA,EAAK9G,MAAM4F,QAAQC,KAAK,kBAG1B,IAAMrB,KAAK3D,EAAIC,KAAK2D,IAAK,OAvTZ,EA6TnB+C,mBAAqB,WAAO,IAAD,EAGrB,EAAKvH,MADP0C,OAAUyD,iBAFa,MAED,GAFC,EAInBvB,EAAKxC,YAAS,MAAQA,YAAS,MAAQ+D,EAC7C,EAAKI,SAAS3B,EAAI,EAAG,EAAK5E,MAAMwC,gBAlUf,EAsUnBgF,oBAAsB,WAAO,IAAD,EAGtB,EAAKxH,MADP0C,OAAUyD,iBAFc,MAEF,GAFE,EAIpBvB,EAAKxC,YAAS,MAAQA,YAAS,MAAQ+D,EAC7C,EAAKI,SAAS3B,EAAI,EAAG,EAAK5E,MAAMwC,gBA3Uf,EA+UnBiF,mBAAqB,WACC,EAAK1H,MAAjB4F,QACAC,KAAR,kCAC6BxD,YAAS,MADtC,wBAC2DA,YACvD,eAFJ,qBAKA,EAAKrB,SAAS,CACZqF,eAAe,EACfC,OAAQ,EACRqB,eAAcf,IAAQC,WAGxBe,YAAQ,CACNC,MAAM,mGACNC,KAAK,iCAAD,OAAU,EAAK7H,MAAM6C,YAAYG,cAAjC,0DACJ8E,KAAMC,UAAUjB,OAAOC,SAASC,MAChCgB,OAAQ,EAAKhI,MAAM0C,OAAOuF,cAhWX,EAqWnBC,MAAQ,WACN,EAAKnH,SAAS,CACZqF,eAAe,EACfC,OAAQ,MAxWO,EA4WnB8B,eAAiB,SAACvD,GAGhB,OAFoB,EAAK7E,MAAjB4F,QACAC,KAAR,qBAA2BhB,KACpB,GA7WP,EAAK5E,MAAQ,CACXoG,eAAe,EACf9D,aAAc,GACd8F,WAAYC,EAAQ,KACpB3F,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,GACRnF,oBAAoB,EACpBoG,cAAc,EACdY,WAAW,EACXC,QACE,wEAzBa,E,gEA8BjBlI,KAAKsE,mBAAmBvC,YAAS,MAAO,GACxC/B,KAAKoE,mBACLpE,KAAK6B,mB,yCAGYsG,GAAY,IACvBvG,EAAS5B,KAAKN,MAAdkC,KACMwG,EAAaD,EAAnBvG,KACDA,EAAKyG,UAAYzG,EAAKyG,WAAaD,EAASC,WAC/CrI,KAAKsE,mBAAmBvC,YAAS,MAAO,GACxC/B,KAAKoE,mBACLpE,KAAK6B,oB,+BAyUC,IACJyG,EAAUC,EADP,OAGoC,IAAvCvI,KAAKL,MAAM6C,YAAYgG,YACzBF,EACE,kDAEE,0BAAMlH,UAAW,aACdpB,KAAKL,MAAM6C,YAAYiG,YAH5B,yDAKW,0BAAMrH,UAAW,aAAjB,yCAGmC,IAAvCpB,KAAKL,MAAM6C,YAAYgG,aAChCF,EACE,8DACO,0BAAMlH,UAAW,aAAjB,yCAGTmH,EACE,4BAAQnH,UAAW,eAAgBsH,QAAS1I,KAAK6F,YAAjD,6BAI8C,IAAvC7F,KAAKL,MAAM6C,YAAYgG,cAChCF,EACE,8DACO,0BAAMlH,UAAW,aAAjB,yCAGTmH,EACE,4BAAQnH,UAAW,eAAgBsH,QAAS1I,KAAKiG,aAAjD,6BA/BG,MAuCHjG,KAAKL,MADPa,KAtCK,IAsCG0B,qBAtCH,MAsCmB,EAtCnB,MAsCsByG,qBAtCtB,MAsCsC,EAtCtC,MAsCyCC,sBAtCzC,MAsC0D,EAtC1D,EAwCHC,EAAa,GA6CjB,OAzCI3G,EAEA2G,EADqB,IAAnBD,EAEA,4BAAQxH,UAAU,aAAasH,QAAS1I,KAAKoH,oBAA7C,wCAKW,4BAAQhG,UAAW,eAAnB,4BAGO,IAAlBuH,GAA0C,IAAnBC,EACzBC,EACE,4BAAQzH,UAAU,aAAasH,QAAS1I,KAAKkH,oBAA7C,wCAIyB,IAAlByB,GAA0C,IAAnBC,EAChCC,EACE,4BAAQzH,UAAU,aAAasH,QAAS1I,KAAKmH,qBAA7C,4BAIyB,IAAlBwB,GAA0C,IAAnBC,EAChCC,EAAa,4BAAQzH,UAAW,eAAnB,wCACe,IAAnBwH,IACTC,EAAa,4BAAQzH,UAAW,eAAnB,6BAgBf,yBAAKA,UAAW,uBACd,kBAAC,IAAD,CACEmG,MAAM,2BACNuB,OAAO,EACPC,MAAM,EACNC,OAAQ,MAGV,yBAAK5H,UAAU,OACb,yBAAKA,UAAU,gBACgB,IAA5BpB,KAAKL,MAAMsC,cACV,uBAAGb,UAAU,eAAb,wIAKF,4BACE,kBAAC,IAAD,CACE6H,IAAKjJ,KAAKL,MAAM0C,OAAOuF,WACvB1D,KACE,kBAACgF,EAAD,CACEjH,aAAcjC,KAAKL,MAAMsC,aACzBzB,KAAMR,KAAKL,MAAMa,KACjB6E,OAAQrF,KAAKqF,YAKrB,yBAAKjE,UAAU,mBACgC,IAA3C+H,OAAOnJ,KAAKL,MAAMa,KAAKoI,iBACoB,IAA3CO,OAAOnJ,KAAKL,MAAMa,KAAKoI,kBACvB,6BACE,yBAAKxH,UAAU,OACb,4CAEE,0BAAMA,UAAW,iBACdpB,KAAKL,MAAM6C,YAAYG,cAD1B,WAIkC,IAAnC3C,KAAKL,MAAMa,KAAKoI,gBACf,6BACE,0BAAMxH,UAAW,aACdgI,OAAOpJ,KAAKL,MAAMmE,MAAMuF,SAAS,EAAG,IAC/B,IAHV,QAKE,0BAAMjI,UAAW,YACdgI,OAAOpJ,KAAKL,MAAMoE,KAAKsF,SAAS,EAAG,IAC9B,IAPV,QASE,0BAAMjI,UAAW,YACdgI,OAAOpJ,KAAKL,MAAMqE,KAAKqF,SAAS,EAAG,IAEtC,0BAAMjI,UAAW,YAAjB,oCAGgC,IAAnCpB,KAAKL,MAAMa,KAAKoI,gBACa,IAA5B5I,KAAKL,MAAMsC,cACT,0BAAMb,UAAW,YAAjB,6BAGN,yBAAKA,UAAU,UACb,0BAAMC,MAAO,CAAEqB,MAAO1C,KAAKL,MAAM+C,WAIV,IAA5B1C,KAAKL,MAAMsC,cACyB,IAAnCjC,KAAKL,MAAMa,KAAKoI,gBACd,6BACGN,EACAC,GAIsB,IAA5BvI,KAAKL,MAAMsC,cACyB,IAAnCjC,KAAKL,MAAMa,KAAKoI,gBACd,oEAEE,0BAAMxH,UAAW,aACdgI,OAAOpJ,KAAKL,MAAMsE,KAAKoF,SAAS,EAAG,IAEtC,0BAAMjI,UAAW,QAAjB,YACA,0BAAMA,UAAW,YACdgI,OAAOpJ,KAAKL,MAAMmE,MAAMuF,SAAS,EAAG,IAEvC,0BAAMjI,UAAW,QAAjB,YACA,0BAAMA,UAAW,YACdgI,OAAOpJ,KAAKL,MAAMoE,KAAKsF,SAAS,EAAG,IAEtC,0BAAMjI,UAAW,QAAjB,UAbF,sEAkBJ,yBAAKA,UAAW,UAAWyH,KAG/B,yBAAKzH,UAAU,mBACb,yBAAKA,UAAU,SAAf,4BACA,4BACGpB,KAAKL,MAAMyF,SACVpF,KAAKL,MAAMyF,QAAQkE,OAAS,GAC5BtJ,KAAKL,MAAMyF,QAAQL,KAAI,SAACC,EAAM6B,GAC5B,OACE,wBAAI0C,IAAK1C,GACP,yBAAKzF,UAAU,QACb,yBAAKA,UAAU,SAASG,IAAKyD,EAAKwE,YAAahI,IAAI,KACnD,0BAAMJ,UAAW,YAAa4D,EAAKyE,WACnC,0BAAMrI,UAAU,YAAY4D,EAAKE,OAEnC,yBAAK9D,UAAU,SACb,yBACEA,UAAU,cACVG,IAAK,EAAK5B,MAAMoI,WAChBvG,IAAI,KAJR,eAMI,0BAAMJ,UAAW,SAAU4D,EAAKoB,cAM9C,yBAAKhF,UAAU,OAAOsH,QAAS1I,KAAKyF,SAApC,gCAKJ,yBAAKrE,UAAU,sBAAsBmD,GAAG,iBACtC,yBAAKnD,UAAU,iBACb,yBAAKA,UAAU,SAAf,4BACA,yBAAKA,UAAU,YAAf,eACKpB,KAAKL,MAAM2C,YADhB,iHAIF,4BACGtC,KAAKL,MAAM0E,YACVrE,KAAKL,MAAM0E,WAAWiF,OAAS,GAC/BtJ,KAAKL,MAAM0E,WAAWU,KAAI,SAACC,EAAM6B,GAC/B,OACE,kBAAC,IAAD,CACEzF,UAAW,kBACXmI,IAAK1C,EACLtC,GAAIS,EAAKc,UACTmD,IAAKjE,EAAK0E,WACVnC,MAAOvC,EAAK2E,aACZC,SAAU,EAAK9B,eACf+B,OACE,kBAACC,EAAD,CACElI,KAAM,EAAKlC,MAAMkC,KACjBoD,KAAMA,EACNQ,aAAc,EAAKA,aAAauE,KAC9B,EACA/E,EAAKc,WAEP8D,SAAU,EAAK9B,wBAQ/B,kBAAC,IAAD,CAAMkC,GAAI,YAAa5I,UAAW,gBAAlC,uDAKA,kBAAC,IAAD,CACE+D,KAAMnF,KAAKL,MAAMwF,KACjB8E,KAAMjK,KAAKL,MAAMoI,WACjBzF,YAAatC,KAAKL,MAAM2C,YACxBoD,WAAY1F,KAAKL,MAAM+F,WACvBC,QAAS3F,KAAK2F,UAGf3F,KAAKL,MAAMoG,eACV,kBAAC,IAAD,KACE,yBAAK3E,UAAU,0BAEU,IAAtBpB,KAAKL,MAAMqG,QACV,kBAACkE,EAAD,CACE7C,aAAcrH,KAAKL,MAAM0H,aACzB/E,YAAatC,KAAKL,MAAM2C,YACxBuF,MAAO7H,KAAK6H,QAYO,IAAtB7H,KAAKL,MAAMqG,QACV,kBAAC,EAAD,CACE/F,SAAUD,KAAKN,MAAMkC,KAAKpB,KAC1BW,MAAOnB,KAAKL,MAAMyG,OAClBnF,mBAAoBjB,KAAKL,MAAMsB,qBAKZ,IAAtBjB,KAAKL,MAAMqG,QACV,kBAACmE,EAAD,CACEC,cAAepK,KAAKmH,oBACpBhG,MAAOnB,KAAKL,MAAMyG,SAIC,IAAtBpG,KAAKL,MAAMqG,QACV,kBAACqE,EAAD,CAAexC,MAAO7H,KAAK6H,MAAO1G,MAAOnB,KAAKL,MAAMyG,SAG/B,IAAtBpG,KAAKL,MAAMqG,QACV,kBAACsE,EAAD,CACEzC,MAAO7H,KAAK6H,MACZvF,YAAatC,KAAKL,MAAM2C,cAIL,IAAtBtC,KAAKL,MAAMqG,QACV,kBAACuE,EAAD,CAAUtE,YAAajG,KAAKiG,cAGP,IAAtBjG,KAAKL,MAAMqG,QACV,kBAACwE,EAAD,CACEnF,OAAQrF,KAAKqF,OACblE,MAAOnB,KAAKL,MAAMyG,OAClBqE,SAAUzK,KAAKL,MAAM6C,YAAYG,gBAId,IAAtB3C,KAAKL,MAAMqG,QACV,uBACE0C,QAAS1I,KAAK6H,MACdzG,UACE,iE,GAxrBYK,e,EAssBhC,SAASyH,EAAUxJ,GAAQ,IAAD,EAIpBA,EAFFc,KAFsB,IAEdoI,sBAFc,MAEG,EAFH,MAEMvG,cAFN,MAEe,GAFf,MAEmBH,qBAFnB,MAEmC,EAFnC,EAGtBmD,EACE3F,EADF2F,OAEF,OACE,yBAAKjE,UAAW,OACd,yBAAKA,UAAU,gCAAgCiB,EAAOsH,cACtD,yBAAKvI,UAAU,aACb,0BAAMA,UAAW,kBAAjB,SAAqCiB,EAAOqI,cAEjB,IAA1BvB,OAAOjH,IAAmD,IAA3BiH,OAAOP,IACrC,4BAAQxH,UAAW,eAAgBsH,QAASrD,GAA5C,OACIhD,EAAOsI,UADX,sBAIyB,IAA1BxB,OAAOjH,IAAmD,IAA3BiH,OAAOP,IACrC,0BAAMxH,UAAU,4BAAhB,wBAOV,SAAS0I,EAAapK,GAAO,IAQvBkL,EARuB,EAGzBlL,EAAMsF,MAAQ,GAHW,IAEnBc,iBAFmB,MAEP,GAFO,MAEH8C,sBAFG,MAEc,GAFd,MAEkBiC,cAFlB,MAE2B,GAF3B,MAE+BF,iBAF/B,MAE2C,GAF3C,IAMvBjL,EADFkC,KAAQpB,KAEJsK,EAA2B,IAAnBlC,EAAuBiC,EAASF,EAwE9C,OAnEIC,QAZuB,MAKV,GALU,GASlB1K,IAC2B,IAA9BR,EAAMsF,KAAK4D,eAGX,yBAAKxH,UAAU,IACb,uBACEsH,QAAS,kBAAMhJ,EAAMkK,SAASlK,EAAMsF,KAAKc,YACzC1E,UAAW,yBAFb,6BAQwB,IAAnBwH,EACS,MAAd9C,EAEA,uBACE4C,QAAS,kBAAMhJ,EAAMkK,SAASlK,EAAMsF,KAAKc,YACzC1E,UAAW,yBAFb,4BASA,kBAAC,IAAD,CACE4I,GAAE,yBAAoBtK,EAAMsF,KAAK+F,aACjC3J,UAAW4J,IAAW,UAAW,kBAFnC,sBAUF,yBAAK5J,UAAU,QAIO,IAAnBwH,GACC,4BAAQxH,UAAU,WAAlB,4BAEkB,IAAnBwH,GACC,uBACEF,QAAS,kBAAMhJ,EAAMkK,SAASlK,EAAMsF,KAAKc,YACzC1E,UAAW,eAFb,4BAOF,4BACEsH,QAAS,kBAAMhJ,EAAM8F,aAAa9F,EAAMsF,KAAKc,YAC7C1E,UAAW,gBAFb,OAII0J,EAJJ,uBAWJ,uBACEpC,QAAS,kBAAMhJ,EAAMkK,SAASlK,EAAMsF,KAAKc,YACzC1E,UAAW,yBAFb,4BAUF,yBAAKA,UAAU,iBACb,yBAAKA,UAAW,gBACd,0BAAMA,UAAW,kBAAjB,OAAqC1B,EAAMsF,KAAK6F,QAChD,0BAAMzJ,UAAW,kBAAjB,OAAqC1B,EAAMsF,KAAKiG,SAEjDL,GAKP,SAAST,EAAazK,GACpB,OACE,yBAAK0B,UAAU,iBACb,yBACEA,UAAU,UACVG,IAAKyG,EAAQ,KACbxG,IAAI,KAEN,uBAAGJ,UAAU,gBAAb,6CACS,0BAAMA,UAAU,OAAO1B,EAAMyB,MAA7B,UADT,UAGA,uBAAGC,UAAU,cAAb,uEACA,4BAAQA,UAAU,eAAesH,QAAShJ,EAAM0K,eAAhD,6BAON,SAASC,EAAc3K,GACrB,OACE,yBAAK0B,UAAU,kBACb,yBACEA,UAAU,UACVG,IAAKyG,EAAQ,KACbxG,IAAI,KAEN,uBAAGJ,UAAU,gBAAb,+DACY,0BAAMA,UAAU,OAAO1B,EAAMyB,MAA7B,UADZ,UAGA,uBAAGC,UAAU,eAAeuF,KAAK,iBAAiB+B,QAAShJ,EAAMmI,OAAjE,mCAON,SAASyC,EAAW5K,GAClB,OACE,yBAAK0B,UAAU,eACb,yBACEA,UAAU,aACVG,IAAKyG,EAAQ,KACbxG,IAAI,KAEN,uBAAGJ,UAAU,gBAAb,yGAEE,6BAFF,yCAKA,uBAAGA,UAAU,cAAb,eACK1B,EAAM4C,YADX,gHAGA,uBAAGlB,UAAU,eAAeuF,KAAK,iBAAiB+B,QAAShJ,EAAMmI,OAAjE,mCAON,SAAS0C,EAAS7K,GAChB,OACE,yBAAK0B,UAAU,gBACb,uBAAGA,UAAU,WAAb,4EACA,uBAAGA,UAAU,cAAb,iCAEE,0BAAMA,UAAW,aAAjB,wCAFF,4BAKA,4BAAQA,UAAU,eAAesH,QAAShJ,EAAMuG,aAAhD,6BAON,SAASuE,EAAY9K,GACnB,OACE,yBAAK0B,UAAU,oBACb,yBACEA,UAAU,UACVG,IAAKyG,EAAQ,KACbxG,IAAI,KAEN,uBAAGJ,UAAU,WAAb,mDAAgC1B,EAAMyB,MAAtC,gBACA,uBAAGC,UAAU,cAAb,iCAEE,0BAAMA,UAAW,aAAc1B,EAAM+K,SAArC,UAFF,mEAKA,uBAAGrJ,UAAU,WAAb,yCACA,4BAAQA,UAAU,QAAQsH,QAAShJ,EAAM2F,QAAzC,uBAON,SAAS6E,EAAexK,GACtB,OACE,6BACE,yBAAK0B,UAAU,wBAAwBsH,QAAShJ,EAAMmI,QAEtD,yBAAKzG,UAAU,mBACZ1B,EAAM2H,cAAgB,uBAAGjG,UAAU,wBACpC,+HACA,0CACK1B,EAAM4C,YADX,mDAEE,0BAAMlB,UAAW,YAAaC,MAAO,CAAE6J,MAAO,YAA9C,wCAFF,YAYOC,sBAAWzJ,I,iCCr8B1B,uDA6Be,SAAS0J,EAAyBC,EAAeC,GAC9DC,YAAa,EAAGC,WAChB,IAAIC,EAAWC,YAAOL,GAClBM,EAAYD,YAAOJ,GACvB,OAAOG,EAASG,UAAYD,EAAUC,Y,iCCjCxC,uDAyBe,SAASC,EAAWC,GACjCP,YAAa,EAAGC,WAChB,IAAIzI,EAAO2I,YAAOI,GAElB,OADA/I,EAAKgJ,SAAS,EAAG,EAAG,EAAG,GAChBhJ,I,iCC7BT,kCAEA,SAASiJ,EAAwBjJ,GAC/B,OAAOA,EAAK6I,UAHe,IAkBd,SAASK,EAAgCH,GACtD,IAAI/I,EAAO,IAAIE,KAAK6I,EAAUF,WAC1BM,EAAqBC,KAAKC,KAAKrJ,EAAKsJ,qBAIxC,OAHAtJ,EAAKuJ,WAAW,EAAG,GArBQ,IAwBpBJ,GAFoBA,EAAqB,GAtBrB,IAuB6DF,EAAwBjJ,IAvBrF,IAuBuHiJ,EAAwBjJ,M,kBCvB5KwJ,EAAOC,QAAU,kzC,iCCAjB,uDA6Be,SAASjJ,EAAoB8H,EAAeC,GACzDC,YAAa,EAAGC,WAChB,IAAIiB,EAAOrB,YAAyBC,EAAeC,GAAkB,IACrE,OAAOmB,EAAO,EAAIN,KAAKO,MAAMD,GAAQN,KAAKC,KAAKK,K,iCChCjD,uDAqCe,SAAShJ,EAAoB4H,EAAeC,GACzDC,YAAa,EAAGC,WAChB,IAAIiB,EAAOrB,YAAyBC,EAAeC,GArCxB,IAsC3B,OAAOmB,EAAO,EAAIN,KAAKO,MAAMD,GAAQN,KAAKC,KAAKK,K,iCCxCjD,uDA6Be,SAAS9I,EAAkB0H,EAAeC,GACvDC,YAAa,EAAGC,WAChB,IAAIiB,EAAOrB,YAAyBC,EAAeC,GA7B1B,KA8BzB,OAAOmB,EAAO,EAAIN,KAAKO,MAAMD,GAAQN,KAAKC,KAAKK,K,iFC7B3CE,G,yDACJ,WAAYjN,GAAQ,IAAD,8BACjB,cAAMA,IAORkN,UAAY,WACV,EAAKlN,MAAMiG,SAAQ,IAPnB,EAAKhG,MAAQ,CACXoI,WAAYC,EAAQ,MAHL,E,qDAajB,OACE,yBAAK5G,UAAW,eACbpB,KAAKN,MAAMgG,YACV,kBAACmH,EAAD,CACE1H,KAAMnF,KAAKN,MAAMyF,KACjB7C,YAAatC,KAAKN,MAAM4C,YACxBsK,UAAW5M,KAAK4M,UAChB3D,IAAKjJ,KAAKN,MAAMuK,Y,GArBNxI,cA6BtB,SAASoL,EAASnN,GAChB,OACE,yBAAK0B,UAAU,WACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,aAAf,wCACA,wBAAIA,UAAU,qBACX1B,EAAMyF,MACLzF,EAAMyF,KAAKmE,OAAS,GACpB5J,EAAMyF,KAAKJ,KAAI,SAACC,EAAM6B,GACpB,OACE,wBAAI0C,IAAK1C,EAAOzF,UAAU,gBACxB,yBAAKA,UAAU,SAASG,IAAKyD,EAAKwE,YAAahI,IAAI,KACnD,uBAAGJ,UAAU,QAAQ4D,EAAKyE,WAC1B,uBAAGrI,UAAU,kBACX,yBAAKA,UAAU,cAAcG,IAAK7B,EAAMuJ,IAAKzH,IAAI,KADnD,eAEI,0BAAMJ,UAAW,SAAU4D,EAAKoB,cAM9C,yBAAKhF,UAAU,oBAAf,eACK1B,EAAM4C,YADX,yFAIF,uBACEoG,QAAShJ,EAAMkN,UACfxL,UAAW,oCAMJuL,O,wHC5DTG,G,OAAOC,SAASC,MAAQD,SAASE,iBAEjCC,EAAS,CAAC,YAAa,cAEvBC,E,kDACJ,WAAYzN,GAAQ,IAAD,8BACjB,cAAMA,IAIR0N,cAAgB,SAACC,GACfA,EAAEC,kBAJF,EAAKC,WAAa,KAFD,E,gEASE,IAAD,OAClBL,EAAOM,SAAQ,SAACxI,GACd,EAAKuI,WAAWE,iBAAiBzI,EAAM,EAAKoI,cAAe,CACzDM,SAAS,S,6CAKS,IAAD,OACrBR,EAAOM,SAAQ,SAACxI,GACd,EAAKuI,WAAWI,oBAAoB3I,EAAM,EAAKoI,oB,+BAIzC,IAAD,OACP,OAAOQ,IAASC,aACd,yBACEzM,UAAW,UACX0M,IAAK,SAACC,GAAD,OAAS,EAAKR,WAAaQ,GAChC1M,MAAO,CAAE2M,IAAI,GAAD,OAAKvH,OAAOwH,QAAZ,QAEXjO,KAAKN,MAAMwO,UAEdpB,O,GAjCgBrL,aAsCP0L,O,0CC/CfZ,EAAOC,QAAU,IAA0B,6C,0GCuC5B,SAAS2B,EAAyB9C,EAAeC,GAC9DC,YAAa,EAAGC,WAChB,IAAI4C,EAAiBvC,YAAWR,GAC5BgD,EAAkBxC,YAAWP,GAC7BgD,EAAgBF,EAAexC,UAAYK,YAAgCmC,GAC3EG,EAAiBF,EAAgBzC,UAAYK,YAAgCoC,GAIjF,OAAOlC,KAAKqC,OAAOF,EAAgBC,GA7CX,OCI1B,SAASE,EAAgBhD,EAAUE,GACjC,IAAIc,EAAOhB,EAASiD,cAAgB/C,EAAU+C,eAAiBjD,EAASkD,WAAahD,EAAUgD,YAAclD,EAASmD,UAAYjD,EAAUiD,WAAanD,EAASoD,WAAalD,EAAUkD,YAAcpD,EAASqD,aAAenD,EAAUmD,cAAgBrD,EAASsD,aAAepD,EAAUoD,cAAgBtD,EAASuD,kBAAoBrD,EAAUqD,kBAElV,OAAIvC,EAAO,GACD,EACCA,EAAO,EACT,EAEAA,EA0DI,SAAS5I,EAAiBwH,EAAeC,GACtDC,YAAa,EAAGC,WAChB,IAAIC,EAAWC,YAAOL,GAClBM,EAAYD,YAAOJ,GACnB2D,EAAOR,EAAgBhD,EAAUE,GACjCuD,EAAa/C,KAAKgD,IAAIhB,EAAyB1C,EAAUE,IAC7DF,EAAS2D,QAAQ3D,EAASmD,UAAYK,EAAOC,GAG7C,IAAIG,EAAmBZ,EAAgBhD,EAAUE,MAAgBsD,EAC7DK,EAASL,GAAQC,EAAaG,GAElC,OAAkB,IAAXC,EAAe,EAAIA,I,8DCrF5B/C,EAAOC,QAAU","file":"mrstaticjs/BargainMiddlePage.29345439.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  constructor(props) {\n    super(props)\n    this.state = {\n      url: \"\",\n      codeUrl: \"\",\n    }\n  }\n\n  componentDidMount() {\n    console.log(this.props)\n    const {\n      userInfo: { uid = \"\" },\n    } = this.props\n    if (uid) {\n      http\n        .get(`${API[\"base-api\"]}/wx/user_temporary_qrcode/${uid}`)\n        .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 {\n      firendBaigainPrice,\n      userInfo: { avatar },\n      money,\n    } = this.props\n    return (\n      <div className=\"bargain-popup__barcode\">\n        <i\n          className=\"bargain-popup__avatar\"\n          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\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { Component } from \"react\"\nimport \"./bargain-middle-page.scss\"\nimport { HeaderBar, VList } from \"src/common\"\nimport { Course } from \"src/common\"\nimport { getParam, http, browser, wxShare } from \"src/utils\"\nimport { Toast } from \"antd-mobile\"\nimport { Link, withRouter } from \"react-router-dom\"\nimport Ranking from \"./ranking\"\nimport {\n  differenceInSeconds,\n  differenceInMinutes,\n  differenceInHours,\n  differenceInDays,\n} from \"date-fns\"\nimport Overlay from \"../detail/overlay\"\nimport { connect } from \"react-redux\"\nimport classnames from \"classnames\"\nimport FollowBarcode from \"./barcode/index\"\n\n@connect((state) => ({\n  user: state.user,\n}))\nclass BargainMiddlePage extends Component {\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:\n        \"https://img-public.julyedu.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  getBargainInfo = () => {\n    // is_originator 来源,0-PC端扫码 1-M端分享 2-APP端分享\n    http\n      .get(\n        `${API.home}/m/bargain/info?bargaincode=${getParam(\n          \"bargaincode\"\n        )}&is_originator=${getParam(\"is_originator\")}`\n      )\n      .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:\n                (\n                  res.data.data.bargain.bargain_price /\n                  res.data.data.bargain.total_price\n                ).toFixed(2) *\n                  100 +\n                \"%\",\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                }, 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\n      .get(`${API[\"base-api\"]}/m/cart/addtopreorder/[${getParam(\"id\")}]`)\n      .then((res) => {\n        const { errno, msg } = res.data\n        if (errno === 0) {\n          this.props.history.push(`/order?id=[${getParam(\"id\")}]`, {\n            bargain: 1,\n          })\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\")}]`, {\n          bargain: 1,\n        })\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 {\n      course: { course_id = \"\" },\n    } = 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 {\n      course: { course_id = \"\" },\n    } = 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        // 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      } else if (res.data.code === 4030 || res.data.code === 4040) {\n        if (browser.isWeixin) {\n          let redirectURI = window.location.href\n          if (\n            redirectURI.includes(\"code=\") &&\n            redirectURI.includes(\"state=STATE\")\n          ) {\n            let index = redirectURI.lastIndexOf(\"code=\")\n            redirectURI = redirectURI.substr(0, index - 1)\n          }\n          window.location.assign(\n            `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=${encodeURIComponent(\n              redirectURI\n            )}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`\n          )\n        } else {\n          this.props.history.push(\"/passport\")\n        }\n      } else {\n        Toast.info(res.data.msg, 2)\n      }\n    })\n  }\n\n  // 帮好友砍价第一刀\n  friendBargainFirst = () => {\n    const {\n      course: { course_id = \"\" },\n    } = 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 {\n      course: { course_id = \"\" },\n    } = 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(\n      `/bargain-middle-page?id=${getParam(\"id\")}&bargaincode=${getParam(\n        \"bargaincode\"\n      )}&is_originator=1`\n    )\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(window.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 { history } = this.props\n    history.push(`/detail?id=${id}`)\n    return false\n  }\n\n  render() {\n    let thirdRow, btn\n    // is_artifact\t 0-再邀请多少人可以使用 1-可以使用未领取 2-已领取 3-已使用\n    if (this.state.bargainData.is_artifact === 0) {\n      thirdRow = (\n        <div>\n          再邀请\n          <span className={\"indicator\"}>\n            {this.state.bargainData.invite_num}\n          </span>\n          位好友助力即可获得<span className={\"indicator\"}>【砍价神器】</span>\n        </div>\n      )\n    } else if (this.state.bargainData.is_artifact === 1) {\n      thirdRow = (\n        <div>\n          恭喜你获得<span className={\"indicator\"}>【砍价神器】</span>\n        </div>\n      )\n      btn = (\n        <button className={\"artifact-btn\"} onClick={this.toArtifact}>\n          立即领取\n        </button>\n      )\n    } else if (this.state.bargainData.is_artifact === 2) {\n      thirdRow = (\n        <div>\n          恭喜你获得<span className={\"indicator\"}>【砍价神器】</span>\n        </div>\n      )\n      btn = (\n        <button className={\"artifact-btn\"} onClick={this.useArtifact}>\n          立即使用\n        </button>\n      )\n    }\n\n    const {\n      data: { is_originator = 0, assist_status = 0, bargain_status = 0 },\n    } = 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 = (\n          <button className=\"active-btn\" onClick={this.shareFriendBargain}>\n            邀请好友砍价\n          </button>\n        )\n      } else {\n        bargainBtn = <button className={\"invalid-btn\"}>砍价结束</button>\n      }\n    } else {\n      if (assist_status === 0 && bargain_status === 0) {\n        bargainBtn = (\n          <button className=\"active-btn\" onClick={this.friendBargainFirst}>\n            帮好友砍一刀\n          </button>\n        )\n      } else if (assist_status === 1 && bargain_status === 0) {\n        bargainBtn = (\n          <button className=\"active-btn\" onClick={this.friendBargainSecond}>\n            再砍一刀\n          </button>\n        )\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\n          title=\"砍价详情\"\n          arrow={true}\n          cart={true}\n          toHref={\"/\"}\n        ></HeaderBar>\n        {/*<Loading isLoading={this.state.isLoaidng}>*/}\n        <div className=\"top\">\n          <div className=\"bargain-area\">\n            {this.state.isOriginator !== 1 && (\n              <p className=\"bargain-tip\">\n                你的好友发现一门精品课程,快来一起帮他砍价:\n              </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              />\n            </ul>\n            <div className=\"bargain-detail\">\n              {(Number(this.state.data.bargain_status) === 0 ||\n                Number(this.state.data.bargain_status) === 1) && (\n                <div>\n                  <div className=\"top\">\n                    <div>\n                      已砍\n                      <span className={\"reduced-price\"}>\n                        {this.state.bargainData.bargain_price}元\n                      </span>\n                    </div>\n                    {this.state.data.bargain_status === 0 && (\n                      <div>\n                        <span className={\"time hour\"}>\n                          {String(this.state.hour).padStart(2, 0)}\n                        </span>{\" \"}\n                        :&nbsp;\n                        <span className={\"time min\"}>\n                          {String(this.state.min).padStart(2, 0)}\n                        </span>{\" \"}\n                        :&nbsp;\n                        <span className={\"time sec\"}>\n                          {String(this.state.sec).padStart(2, 0)}\n                        </span>\n                        <span className={\"inactive\"}> 后砍价结束</span>\n                      </div>\n                    )}\n                    {this.state.data.bargain_status === 1 &&\n                      this.state.isOriginator === 1 && (\n                        <span className={\"inactive\"}>砍价结束</span>\n                      )}\n                  </div>\n                  <div className=\"middle\">\n                    <span style={{ width: this.state.width }}></span>\n                  </div>\n                </div>\n              )}\n              {this.state.isOriginator === 1 &&\n                this.state.data.bargain_status === 0 && (\n                  <div>\n                    {thirdRow}\n                    {btn}\n                  </div>\n                )}\n\n              {this.state.isOriginator === 1 &&\n                this.state.data.bargain_status === 1 && (\n                  <div>\n                    砍价金额将于\n                    <span className={\"time hour\"}>\n                      {String(this.state.day).padStart(2, 0)}\n                    </span>\n                    <span className={\"unit\"}> 天 </span>\n                    <span className={\"time min\"}>\n                      {String(this.state.hour).padStart(2, 0)}\n                    </span>\n                    <span className={\"unit\"}> 时 </span>\n                    <span className={\"time sec\"}>\n                      {String(this.state.min).padStart(2, 0)}\n                    </span>\n                    <span className={\"unit\"}>分</span>\n                    后清零,请尽快完成支付\n                  </div>\n                )}\n\n              <div className={\"button\"}>{bargainBtn}</div>\n            </div>\n          </div>\n          <div className=\"bargain-records\">\n            <div className=\"title\">砍价记录</div>\n            <ul>\n              {this.state.outList &&\n                this.state.outList.length > 0 &&\n                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\n                          className=\"kanjia-icon\"\n                          src={this.state.kanjiaIcon}\n                          alt=\"\"\n                        />\n                        砍掉<span className={\"price\"}>{item.amount}</span>\n                      </div>\n                    </li>\n                  )\n                })}\n            </ul>\n            <div className=\"more\" onClick={this.getMore}>\n              查看更多&gt;&gt;\n            </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\">\n              邀请{this.state.limitPeople}位以上好友帮忙砍价可获得【砍价神器】\n            </div>\n          </div>\n          <ul>\n            {this.state.courseList &&\n              this.state.courseList.length > 0 &&\n              this.state.courseList.map((item, index) => {\n                return (\n                  <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(\n                          this,\n                          item.course_id\n                        )}\n                        toDetail={this.toCourseDetail}\n                      />\n                    }\n                  />\n                )\n              })}\n          </ul>\n        </div>\n        <Link to={\"/classify\"} className={\"preferential\"}>\n          查看更多精品课程 &gt;&gt;\n        </Link>\n\n        {/*更多好友砍价*/}\n        <Ranking\n          list={this.state.list}\n          icon={this.state.kanjiaIcon}\n          limitPeople={this.state.limitPeople}\n          isShowMore={this.state.isShowMore}\n          boxHide={this.boxHide}\n        ></Ranking>\n\n        {this.state.isShowOverlay && (\n          <Overlay>\n            <div className=\"bargain-popup__content\">\n              {/*砍价成功去分享*/}\n              {this.state.status === 7 && (\n                <BargainSuccess\n                  isshowYindao={this.state.isshowYindao}\n                  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              {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              {this.state.status === 2 && (\n                <BargainFirst\n                  bargainSecond={this.friendBargainSecond}\n                  money={this.state.amount}\n                />\n              )}\n              {/*好友成功砍第二刀*/}\n              {this.state.status === 3 && (\n                <BargainSecond close={this.close} money={this.state.amount} />\n              )}\n              {/*不能在砍了*/}\n              {this.state.status === 4 && (\n                <NotBargain\n                  close={this.close}\n                  limitPeople={this.state.limitPeople}\n                />\n              )}\n              {/*领取砍价神器*/}\n              {this.state.status === 5 && (\n                <Artifact useArtifact={this.useArtifact} />\n              )}\n              {/*使用砍价神器*/}\n              {this.state.status === 6 && (\n                <UseArtifact\n                  toCart={this.toCart}\n                  money={this.state.amount}\n                  allMoney={this.state.bargainData.bargain_price}\n                />\n              )}\n\n              {this.state.status !== 7 && (\n                <i\n                  onClick={this.close}\n                  className={\n                    \"iconfont iconiconfront-2 bargain-popup__button--close\"\n                  }\n                ></i>\n              )}\n            </div>\n          </Overlay>\n        )}\n        {/*</Loading>*/}\n      </div>\n    )\n  }\n}\n\n// 课程信息 -- 右侧\nfunction CourseDes(props) {\n  const {\n    data: { bargain_status = 0, course = {}, is_originator = 0 },\n    toCart,\n  } = props\n  return (\n    <div className={\"des\"}>\n      <div className=\"course-title text-overflow-2\">{course.course_title}</div>\n      <div className=\"price-bar\">\n        <span className={\"discount-price\"}>¥{course.course_price}</span>\n        {/* is_originator 是否发起人 0-否 1-是 */}\n        {Number(is_originator) === 1 && Number(bargain_status) !== 3 && (\n          <button className={\"purchase-btn\"} onClick={toCart}>\n            ¥{course.pay_price}去支付\n          </button>\n        )}\n        {Number(is_originator) === 1 && Number(bargain_status) === 3 && (\n          <span className=\"course-button__buy--done\">已购买</span>\n        )}\n      </div>\n    </div>\n  )\n}\n\nfunction CourseBottom(props) {\n  // bargain_status 砍价状态 0-砍价中,1砍价结束,待支付,2砍价过期(没有砍价记录没有砍价信息),3已购买\n  const { course_id = \"\", bargain_status = \"\", price1 = \"\", pay_price = \"\" } =\n    props.item || {}\n  const {\n    user: { data = {} },\n  } = 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\n            onClick={() => props.toDetail(props.item.course_id)}\n            className={\"bargain bargian-study\"}\n          >\n            我要砍价\n          </a>\n        </div>\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          >\n            我要砍价\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          >\n            去学习\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          {bargain_status === 1 && (\n            <button className=\"invalid\">砍价结束</button>\n          )}\n          {bargain_status === 0 && (\n            <a\n              onClick={() => props.toDetail(props.item.course_id)}\n              className={\"bargain-btn\"}\n            >\n              继续砍价\n            </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  } else {\n    Buttons = (\n      <a\n        onClick={() => props.toDetail(props.item.course_id)}\n        className={\"bargain bargian-study\"}\n      >\n        我要砍价\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\nfunction BargainFirst(props) {\n  return (\n    <div className=\"bargain-first\">\n      <img\n        className=\"top-img\"\n        src={require(\"./image/kanjia_cg_icon.png\")}\n        alt=\"\"\n      />\n      <p className=\"status-title\">\n        谢谢你帮我砍了<span className=\"ff4\">{props.money}元</span>!\n      </p>\n      <p className=\"status-dec\">你还可以帮我再砍一刀哦~</p>\n      <button className=\"bargain-href\" onClick={props.bargainSecond}>\n        再砍一刀\n      </button>\n    </div>\n  )\n}\n\nfunction BargainSecond(props) {\n  return (\n    <div className=\"bargain-second\">\n      <img\n        className=\"top-img\"\n        src={require(\"./image/kanjia_cg_icon.png\")}\n        alt=\"\"\n      />\n      <p className=\"status-title\">\n        厉害了,又帮好友砍掉<span className=\"ff4\">{props.money}元</span>!\n      </p>\n      <a className=\"bargain-href\" href=\"#bargainCourse\" onClick={props.close}>\n        我也要砍价\n      </a>\n    </div>\n  )\n}\n\nfunction NotBargain(props) {\n  return (\n    <div className=\"not-bargain\">\n      <img\n        className=\"middle-img\"\n        src={require(\"./image/kanjia_no_iccon.png\")}\n        alt=\"\"\n      />\n      <p className=\"status-title\">\n        你的好友用【砍价神器】把我砍蒙圈了\n        <br />\n        不能再砍了哦~\n      </p>\n      <p className=\"status-dec\">\n        邀请{props.limitPeople}位以上好友帮忙砍价可获得【砍价神器】\n      </p>\n      <a className=\"bargain-href\" href=\"#bargainCourse\" onClick={props.close}>\n        我也要砍价\n      </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}>\n        立即使用\n      </button>\n    </div>\n  )\n}\n\nfunction UseArtifact(props) {\n  return (\n    <div className=\"use-artifact-box\">\n      <img\n        className=\"top-img\"\n        src={require(\"./image/kanjia_cg_icon.png\")}\n        alt=\"\"\n      />\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\">不能再砍了哦~</p>\n      <button className=\"tubuy\" onClick={props.toCart}>\n        去支付\n      </button>\n    </div>\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        {props.isshowYindao && <i className=\"iconfont iconyindao\"></i>}\n        <p>分享到微信群邀请更多好友帮忙砍价</p>\n        <p>\n          超过{props.limitPeople}位好友助力可获得\n          <span className={\"indicator\"} style={{ color: \"#FF4000\" }}>\n            【砍价神器】\n          </span>\n          哦\n        </p>\n      </div>\n    </div>\n  )\n}\n\nexport default withRouter(BargainMiddlePage)\n","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n *   new Date(2014, 6, 2, 12, 30, 21, 700),\n *   new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  return dateLeft.getTime() - dateRight.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n  return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n  var date = new Date(dirtyDate.getTime());\n  var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n  date.setSeconds(0, 0);\n  var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n  var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n  return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\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 differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n *   new Date(2014, 6, 2, 12, 30, 20, 0),\n *   new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n *   new Date(2014, 6, 2, 12, 20, 0),\n *   new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are from 10:01:59 to 10:00:00\n * var result = differenceInMinutes(\n *   new Date(2000, 0, 1, 10, 0, 0),\n *   new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n *   new Date(2014, 6, 2, 19, 0),\n *   new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import React, { Component } from \"react\"\nimport \"./index.scss\"\n\nclass Ranking extends Component {\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        {this.props.isShowMore && (\n          <MoreList\n            list={this.props.list}\n            limitPeople={this.props.limitPeople}\n            closeMore={this.closeMore}\n            img={this.props.icon}\n          />\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\">好友助力详情</div>\n        <ul className=\"more-bargain-list\">\n          {props.list &&\n            props.list.length > 0 &&\n            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        </ul>\n        <div className=\"more-bargain-dec\">\n          超过{props.limitPeople}位好友助力可获得【砍价神器】\n        </div>\n      </div>\n      <i\n        onClick={props.closeMore}\n        className={\"iconfont iconiconfront-2 close\"}\n      ></i>\n    </div>\n  )\n}\n\nexport default Ranking\n","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\n        className={\"overlay\"}\n        ref={(el) => (this.overlayBox = el)}\n        style={{ top: `${window.scrollY}px` }}\n      >\n        {this.props.children}\n      </div>,\n      root\n    )\n  }\n}\n\nexport default Overlay\n","module.exports = __webpack_public_path__ + \"mrstaticmedia/kanjia_cg_icon.81a489ac.png\";","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var startOfDayLeft = startOfDay(dirtyDateLeft);\n  var startOfDayRight = startOfDay(dirtyDateRight);\n  var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n  var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n  var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n  if (diff < 0) {\n    return -1;\n  } else if (diff > 0) {\n    return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n  } else {\n    return diff;\n  }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * var result = differenceInDays(\n *   new Date(2020, 5, 1),\n *   new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  var sign = compareLocalAsc(dateLeft, dateRight);\n  var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n  dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n  // If so, result must be decreased by 1 in absolute value\n\n  var isLastDayNotFull = compareLocalAsc(dateLeft, dateRight) === -sign;\n  var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n  return result === 0 ? 0 : result;\n}","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}