{"version":3,"sources":["components/order/index.js"],"names":["Item","OrderList","props","listData","list","map","item","index","course_id","image_name","price1","price0","simpledescription","course_title","coupon_num","coupon_desc","NewPrice","className","locationState","group","groupPrice","Info","style","overflow","textOverflow","whiteSpace","onClick","toDetail","WebkitBoxOrient","WebkitLineClamp","wordBreak","display","src","id","key","info","isaist","type","simple","arrow","to","pathname","search","state","from","justify","color","fontSize","Order","connect","submitOrder","orderList","length","perfect","location","params","pdd_order_id","getParam","ischeck","useBalance","http","post","API","then","res","Number","data","errno","msg","sessionStorage","removeItem","pay_jump","history","push","oid","url","get","is_free","replace","order_id","useBalanceFlag","setState","cacheObj","setItem","JSON","stringify","computedMoney","totalSale","parseFloat","total","userAccount","user_account","discount","offset","toFixed","computedMoneyByCache","showInfo","prevState","publicGetData","course","user_info","fullRules","full_amount","cut_amount","publicLocalStorage","action","getItem","toCourseDetail","this","bargain","Promise","all","home","resList","courseInfo","orderInfo","newData","Object","assign","code","course_info","pdd_group_info","price","console","log","title","compute","courseId","align","marginRight","throttle","position","top","left","width","height","backgroundColor","zIndex","padding","margin","transform","direction","lineHeight","textAlign","borderRadius","border","Component"],"mappings":"6TAWMA,G,OAAO,IAAKA,MAElB,SAASC,EAAUC,GACjB,IAAMC,EAAWD,EAAME,KACvB,OACE,6BACGD,EAASE,KAAI,SAACC,EAAMC,GAAW,IAE5BC,EAQEF,EARFE,UACAC,EAOEH,EAPFG,WACAC,EAMEJ,EANFI,OACAC,EAKEL,EALFK,OACAC,EAIEN,EAJFM,kBACAC,EAGEP,EAHFO,aACAC,EAEER,EAFFQ,WACAC,EACET,EADFS,YAEEC,EAAW,0BAAMC,UAAU,kBAAhB,OAAmCP,GAC9CR,EAAMgB,eAAiBhB,EAAMgB,cAAcC,QAC7CH,EAAW,0BAAMC,UAAU,kBAAhB,OAAmCf,EAAMkB,aAEtD,IAAMC,EACJ,yBAAKJ,UAAU,cAEb,uBACEA,UAAU,cACVK,MAAO,CACLC,SAAU,SACVC,aAAc,WACdC,WAAY,UAEdC,QAAS,kBAAMxB,EAAMyB,SAASnB,KAE7BK,GAGH,uBACEI,UAAU,gBACVK,MAAO,CACLM,gBAAiB,WACjBC,gBAAiB,IACjBC,UAAW,YACXP,SAAU,SACVC,aAAc,WACdO,QAAS,gBAGVnB,GAEH,uBAAGK,UAAU,aAKVD,EACD,0BAAMC,UAAU,eAAhB,OAAgCN,KAKtC,OACE,kBAAC,IAAD,iBACML,EADN,CAEE0B,IAAKvB,EACLwB,GAAIzB,EACJ0B,IAAK3B,EACL4B,KAAMd,EACNe,OAAQlC,EAAMkC,OACdT,SAAUzB,EAAMyB,WAEfzB,EAAMgB,gBACNhB,EAAMgB,cAAcmB,MAAQnC,EAAMgB,cAAcoB,QAC/C,yBAAKrB,UAAU,gBACb,uBAAMiB,IAAK3B,GACT,kBAACP,EAAD,CAAMuC,MAAM,aAAab,QAAS,cAChC,kBAAC,IAAD,CACEc,GAAI,CACFC,SAAS,WACTC,OAAO,OAAD,OAASlC,GACfmC,MAAO,CACLC,KAAM,YAKV,uBAAMC,QAAQ,WACZ,0BACEvB,MAAO,CACLwB,MAAO,OACPC,SAAU,SAHd,sBAQA,0BACEzB,MAAO,CACLyB,SAAU,OACVD,MAAO,YAGP/B,IACiB,IAAfD,EACE,SADF,UAEKA,EAFL,6BAUd,U,IASVkC,EADLC,a,qDAEC,WAAY/C,GAAQ,IAAD,8BACjB,cAAMA,IAiBRgD,YAAc,WACZ,GAAoC,IAAhC,EAAKP,MAAMQ,UAAUC,OAAzB,CAIK,EAAKT,MAAMU,SACd,IAAMlB,KAAK,oDANK,MAUd,EAAKjC,MADPoD,SAAYX,aATI,MASI,GATJ,EAYlB,GAAoB,IAAhBA,EAAMxB,MAAa,CACrB,IAAIoC,EAASZ,EAAMa,aACf,CACEhD,UAAWiD,YAAS,MACpBC,QAAS,EAAKf,MAAMgB,WACpBH,aAAcb,EAAMa,cAEtB,CACEhD,UAAWiD,YAAS,MACpBC,QAAS,EAAKf,MAAMgB,YAE1BC,IAAKC,KAAL,UAAaC,IAAI,YAAjB,UAAsCP,GAAQQ,MAAK,SAACC,GAClD,GAA+B,MAA3BC,OAAOD,EAAIE,KAAKC,OASb,OAA+B,IAA3BF,OAAOD,EAAIE,KAAKC,YACzB,IAAMhC,KAAK6B,EAAIE,KAAKA,KAAKE,IAAK,QAG9B,IAAMjC,KAAK6B,EAAIE,KAAKE,IAAK,GAZzBC,eAAeC,WAAW,oBACK,IAA3BN,EAAIE,KAAKA,KAAKK,SAIlB,EAAKrE,MAAMsE,QAAQC,KAAnB,wBAAyCT,EAAIE,KAAKA,KAAKQ,KAAO,CAC5DvD,MAAO,IAJP,EAAKjB,MAAMsE,QAAQC,KAAnB,sBAAuCT,EAAIE,KAAKA,KAAKQ,aActD,CACL,IAAIC,EAAG,UAAMb,IAAI,YAAV,qCAAkD,EAAKnB,MAAMgB,YAChE,EAAKzD,MAAMoD,SAASX,OAA4C,IAAnC,EAAKzC,MAAMoD,SAASX,MAAMN,OACzDsC,GAAO,WAETf,IAAKgB,IAAID,GAAKZ,MAAK,SAACC,GACK,IAAnBA,EAAIE,KAAKC,OAIbE,eAAeC,WAAW,oBACI,IAA1BN,EAAIE,KAAKA,KAAKW,QAIlB,EAAK3E,MAAMsE,QAAQM,QAAnB,wBAA4Cd,EAAIE,KAAKA,KAAKa,WAHxD,EAAK7E,MAAMsE,QAAQM,QAAnB,eALA,IAAM3C,KAAK6B,EAAIE,KAAKE,IAAK,YA9C7B,IAAMjC,KAAK,2DApBI,EA+EnBwB,WAAa,WACX,IAAIqB,EAAiB,EAAKrC,MAAMgB,WAChC,EAAKsB,SAAS,CACZtB,YAAaqB,IAEVA,EAMHX,eAAeC,WAAW,qBAL1B,EAAKY,SAAL,eACK,EAAKvC,OAEV0B,eAAec,QAAQ,mBAAoBC,KAAKC,UAAU,EAAK1C,SAIjE,EAAK2C,cAAcN,IA5FF,EA+FnBM,cAAgB,SAACN,GACf,IAAIO,EAAYC,WAAW,EAAKN,SAASO,OACvCC,EAAcF,WAAW,EAAKN,SAASS,cACjCC,EAAa,EAAKjD,MAAlBiD,SACHZ,EAeH,EAAKC,SAAS,CACZY,OAAQ,EAAKX,SAASW,OACtBJ,MAAO,EAAKP,SAASO,MACrBG,SAAU,EAAKV,SAASU,WAjBtBL,EAAYG,EACd,EAAKT,SAAS,CACZY,OAAQH,EAAYI,QAAQ,GAC5BL,OAAQF,EAAYG,GAAaI,QAAQ,GACzCF,UAAWF,EAAcF,WAAWI,IAAWE,QAAQ,KAGzD,EAAKb,SAAS,CACZY,OAAQN,EAAUO,QAAQ,GAC1BL,MAAO,EACPG,UAAWL,EAAYC,WAAWI,IAAWE,QAAQ,MA9G1C,EA0HnBC,qBAAuB,WACrB,IAAIR,EAAYC,WAAW,EAAKN,SAASO,OACvCC,EAAcF,WAAW,EAAKN,SAASS,cACvCC,EAAWJ,WAAW,EAAKN,SAASU,UAClCL,EAAYG,EACd,EAAKT,SAAS,CACZY,OAAQH,EAAYI,QAAQ,GAC5BL,OAAQF,EAAYG,GAAaI,QAAQ,GACzCF,UAAWA,EAAWF,GAAaI,QAAQ,KAG7C,EAAKb,SAAS,CACZY,OAAQN,EAAUO,QAAQ,GAC1BL,MAAO,EACPG,SAAUL,EAAUO,QAAQ,MAxIf,EA6InBE,SAAW,WACT,EAAKf,UAAS,SAACgB,GAAD,MAAgB,CAC5B9D,MAAO8D,EAAU9D,UA/IF,EAoJnB+D,cAAgB,SAAClC,GAAS,IAClBmC,EAAqDnC,EAArDmC,OAAQV,EAA6CzB,EAA7CyB,MAAOE,EAAsC3B,EAAtC2B,aAAcS,EAAwBpC,EAAxBoC,UAAWR,EAAa5B,EAAb4B,SAC1C,EAAK1F,MAAMoD,SAASX,OAA6C,IAApC,EAAKzC,MAAMoD,SAASX,MAAMxB,QACzDsE,EAAQ,EAAK9C,MAAMvB,YAErB,EAAK8D,SAAW,CACd7B,QAAS+C,EACTjD,UAAWgD,EACXR,eACAF,QACAG,YAEF,EAAKX,SAAS,CACZ5B,QAAS+C,EACTjD,UAAWgD,EACXR,eACAF,QACAG,cArKe,EAwKnBS,UAAY,SAACnC,GACX,EAAKe,SAAS,CACZqB,YAAapC,EAAKoC,YAClBC,WAAYrC,EAAKqC,cA3KF,EA+KnBC,mBAAqB,WACe,SAA9B,EAAKtG,MAAMsE,QAAQiC,QACrBpC,eAAeC,WAAW,oBAC1B,EAAKW,SAAS,CACZW,SAAU,KAIK,OADAvB,eAAeqC,QAAQ,sBAEtC,EAAKzB,SAAS,CACZtB,YAAY,IAEd,EAAKoC,yBA3LQ,EAwQnBY,eAAiB,SAAC1E,GACI,EAAK/B,MAAjBsE,QACAC,KAAR,qBAA2BxC,KAxQ3B,EAAKU,MAAQ,CACXvB,WAAY,GACZiC,QAAS,EAAKnD,MAAMoD,SAASX,MAC7BgD,aAAc,EACdF,MAAO,EACPG,SAAU,EACVjC,YAAY,EACZR,UAAW,GACXhB,MAAM,EACN0D,OAAQ,EACRS,YAAa,EACbC,WAAY,GAbG,E,gEAgME,IAAD,OAEdK,KAAK1G,MAAMoD,SAASX,OAA4C,IAAnCiE,KAAK1G,MAAMoD,SAASX,MAAMN,KACzDuB,IAAKgB,IAAL,UAAYd,IAAI,YAAhB,6BAAuDC,MAAK,SAACC,GACpC,MAAnBA,EAAIE,KAAKC,OACX,EAAK+B,cAAclC,EAAIE,KAAKA,MAC5B,EAAKsC,sBAEL,IAAMrE,KAAK6B,EAAIE,KAAKE,IAAK,OAI7BwC,KAAK1G,MAAMoD,SAASX,OACkB,IAArCiE,KAAK1G,MAAMoD,SAASX,MAAML,QACa,IAAtCsE,KAAK1G,MAAMoD,SAASX,MAAMkE,QAe5BD,KAAK1G,MAAMoD,SAASX,OACgB,IAApCiE,KAAK1G,MAAMoD,SAASX,MAAMxB,MAG1B2F,QAAQC,IAAI,CACVnD,IAAKgB,IAAL,UAAYd,IAAIkD,KAAhB,4BAAwCvD,YAAS,QACjDG,IAAKgB,IAAL,UAAYd,IAAI,YAAhB,wBACCC,MAAK,SAACkD,GACP,IAAIC,EAAaD,EAAQ,GACvBE,EAAYF,EAAQ,GAClBG,EAAU,GACe,MAAzBD,EAAUjD,KAAKC,OACjBiD,EAAUC,OAAOC,OAAO,GAAIH,EAAUjD,KAAKA,KAAM,CAAEiC,OAAQ,KAKhC,MAAzBe,EAAWhD,KAAKqD,MAClBH,EAAQjB,OAAO1B,KAAKyC,EAAWhD,KAAKA,KAAKsD,aACzC,EAAKvC,SAAS,CACZ7D,WAAY8F,EAAWhD,KAAKA,KAAKsD,YAAYC,eAAeC,QAMhE,EAAKxB,cAAckB,GACnB,EAAKZ,sBAJH,IAAMrE,KAAK+E,EAAWhD,KAAKE,IAAK,IAThC,IAAMjC,KAAKgF,EAAUjD,KAAKE,IAAK,MAgBnCR,IAAKgB,IAAL,UAAYd,IAAI,YAAhB,sBAAgDC,MAAK,SAACC,GACpD2D,QAAQC,IAAI,8FACW,MAAnB5D,EAAIE,KAAKC,OAKb,EAAK+B,cAAclC,EAAIE,KAAKA,MAC5B,EAAKsC,sBALH,IAAMrE,KAAK6B,EAAIE,KAAKE,IAAK,MA7C7BR,IAAKgB,IAAL,UAAYd,IAAI,YAAhB,sBAAgDC,MAAK,SAACC,GAC7B,MAAnBA,EAAIE,KAAKC,OACXwD,QAAQC,IAAI5D,EAAIE,KAAKA,MACrB,EAAKgC,cAAclC,EAAIE,KAAKA,MAC5B,EAAKsC,qBAEL,EAAKH,UAAUrC,EAAIE,KAAKA,OAExB,IAAM/B,KAAK6B,EAAIE,KAAKE,IAAK,Q,+BAoDvB,IAAD,EAaHwC,KAAKjE,MAXPU,EAFK,EAELA,QACAF,EAHK,EAGLA,UACAwC,EAJK,EAILA,aACAF,EALK,EAKLA,MACAG,EANK,EAMLA,SACAjC,EAPK,EAOLA,WACAxB,EARK,EAQLA,KACA0D,EATK,EASLA,OACAzE,EAVK,EAULA,WACAkF,EAXK,EAWLA,YACAC,EAZK,EAYLA,WAGF,OACE,yBAAKtF,UAAU,iBACb,2BACE,sBAAMjB,KAAN,KACE,kBAAC,IAAD,CAAW6H,MAAM,2BAAOtF,OAAO,IAC/B,yBAAKtB,UAAU,cACb,kBAAChB,EAAD,CACEG,KAAM+C,EACN2E,QAASlB,KAAKtB,cACdyC,SAAUtE,YAAS,MACnBvC,cAAe0F,KAAK1G,MAAMoD,SAASX,MACnCvB,WAAYA,EACZO,SAAUiF,KAAKD,kBAGnB,yBAAK1F,UAAU,iBACb,2BACE,kBAACjB,EAAD,CAAMiB,UAAU,qBACd,uBAAM4B,QAAQ,WACZ,uBAAMmF,MAAM,UACV,0DACA,0BAAM/G,UAAU,sBACb,IADH,iBAEO,IACL,uBAAGA,UAAU,eAAb,UAA+B0E,EAA/B,WAHF,KAKA,uBACE1E,UAAU,0CACVS,QAASkF,KAAKZ,YAIlB,2BACGrC,EACC,oCACE,0BACErC,MAAO,CACLwB,MAAO,UACPC,SAAU,OACVkF,YAAa,QAJjB,eAMOpC,IACP,uBACE5E,UAAS,gDACTS,QAASwG,mBAAStB,KAAKjD,WAAY,QAIvC,uBACE1C,UAAU,cACVS,QAASwG,mBAAStB,KAAKjD,WAAY,YAQhD2C,EAAc,GAAKC,EAAa,EAC/B,oCACE,yBAAKtF,UAAU,eACb,2BACE,yBAAKA,UAAU,cACb,uCACIqF,EADJ,SACkBC,EADlB,UAGA,0BAAMtF,UAAU,SAAhB,iBAA8BsF,QAKpC,KACJ,yBAAKtF,UAAU,aACb,yBAAKA,UAAU,gBACb,0BAAMA,UAAU,qBAAhB,UAAwCkC,EAAUC,OAAlD,wBAEF,yBAAKnC,UAAU,kBACb,yBAAKA,UAAU,gBACb,0BAAMA,UAAU,sBAAhB,iBACA,0BAAMA,UAAU,sBAAhB,gBAA0CwE,KAE5C,yBAAKxE,UAAU,kBACb,0BAAMA,UAAU,wBAAhB,uBACA,0BAAMA,UAAU,wBAAhB,cAA4C2E,MAG/CvC,EACC,4BAAQhB,KAAK,SAASpB,UAAU,yBAC9B,0BACEA,UAAU,oBACVS,QAASkF,KAAK1D,aAFhB,6BAQF,4BAAQb,KAAK,SAASpB,UAAU,gBAC9B,0BACEA,UAAU,oBACVS,QAASkF,KAAK1D,aAFhB,gCAWTf,EACC,yBACEb,MAAO,CACL6G,SAAU,QACVC,IAAK,EACLC,KAAM,EACNC,MAAO,OACPC,OAAQ,OACRC,gBAAiB,qBACjBC,OAAQ,OAGV,yBACEnH,MAAO,CACLoH,QAAS,OACTF,gBAAiB,OACjBF,MAAO,QACPC,OAAQ,QACRI,OAAQ,SACRR,SAAU,WACVE,KAAM,MACND,IAAK,MACLQ,UAAW,0BAGb,uBACEC,UAAU,SACVhG,QAAQ,UACRmF,MAAM,SACN1G,MAAO,CAAEiH,OAAQ,SAEjB,uBAAGjH,MAAO,CAAEyB,SAAU,OAAQD,MAAO,YAArC,wCAGA,uBACExB,MAAO,CACLwH,WAAY,OACZ/F,SAAU,OACVD,MAAO,YAJX,kRASA,yBACEpB,QAASkF,KAAKZ,SACd1E,MAAO,CACLgH,MAAO,QACPC,OAAQ,OACRO,WAAY,OACZC,UAAW,SACXC,aAAc,MACdC,OAAQ,oBACRnG,MAAO,UACPC,SAAU,SAVd,yBAkBJ,U,GAtcQmG,e,EA4cLlG,a","file":"mrstaticjs/Order.efd8055b.chunk.js","sourcesContent":["import React, { Component } from \"react\"\nimport { Flex, List, WingBlank, Toast } from \"antd-mobile\"\nimport { OrderItem } from \"src/common/index\"\nimport { Link } from \"react-router-dom\"\nimport { http, getParam } from \"src/utils\"\nimport { throttle } from \"lodash\"\nimport { HeaderBar } from \"../../common\"\nimport { connect } from \"react-redux\"\n\nimport \"./order.scss\"\n\nconst Item = List.Item\n\nfunction OrderList(props) {\n const listData = props.list\n return (\n <div>\n {listData.map((item, index) => {\n const {\n course_id,\n image_name,\n price1,\n price0,\n simpledescription,\n course_title,\n coupon_num,\n coupon_desc,\n } = item\n let NewPrice = <span className=\"order-newprice\">¥{price1}</span>\n if (props.locationState && props.locationState.group) {\n NewPrice = <span className=\"order-newprice\">¥{props.groupPrice}</span>\n }\n const Info = (\n <div className=\"order-info\">\n {/* <Link to={`/detail?id=${course_id}`}> */}\n <p\n className=\"order-title\"\n style={{\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n onClick={() => props.toDetail(course_id)}\n >\n {course_title}\n </p>\n {/* </Link> */}\n <p\n className=\"order-content\"\n style={{\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: \"2\",\n wordBreak: \"break-all\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n }}\n >\n {simpledescription}\n </p>\n <p className=\"order-des\">\n {/*// 这里根据类型判断 来显示什么价格 拼团还是砍价 还是特训营*/}\n {/*{*/}\n {/* props.courseId === undefined ? (<span className='order-newprice'>¥{price1}</span>) : (<span className='order-newprice'>¥{price0}</span>)*/}\n {/*}*/}\n {NewPrice}\n <span className=\"order-price\">¥{price0}</span>\n </p>\n </div>\n )\n\n return (\n <OrderItem\n {...item}\n src={image_name}\n id={course_id}\n key={index}\n info={Info}\n isaist={props.isaist}\n toDetail={props.toDetail}\n >\n {props.locationState &&\n (props.locationState.type || props.locationState.simple) ? (\n <div className=\"order-prefer\">\n <List key={index}>\n <Item arrow=\"horizontal\" onClick={() => {}}>\n <Link\n to={{\n pathname: `/coupons`,\n search: `?id=${course_id}`,\n state: {\n from: \"/order\",\n },\n }}\n >\n {/* <Link to='coupons' query={{id: course_id}} state={{from: '/order'}}> */}\n <Flex justify=\"between\">\n <span\n style={{\n color: \"#333\",\n fontSize: \"15px\",\n }}\n >\n 优惠券\n </span>\n <span\n style={{\n fontSize: \"14px\",\n color: \"#999999\",\n }}\n >\n {!coupon_desc\n ? coupon_num === 0\n ? \"无\"\n : `${coupon_num}张可用`\n : coupon_desc}\n </span>\n </Flex>\n </Link>\n </Item>\n </List>\n </div>\n ) : null}\n </OrderItem>\n )\n })}\n </div>\n )\n}\n\n@connect()\nclass Order extends Component {\n constructor(props) {\n super(props)\n this.state = {\n groupPrice: \"\",\n perfect: this.props.location.state,\n user_account: 0.0, // 账户余额\n total: 0.0, // 需要支付总金额\n discount: 0.0, //\n useBalance: false,\n orderList: [],\n info: false,\n offset: 0,\n full_amount: 0, // 满金额\n cut_amount: 0, // 减金额\n }\n }\n\n // 提交订单\n submitOrder = () => {\n if (this.state.orderList.length === 0) {\n Toast.info(\"没有要提交的订单!\")\n return\n }\n if (!this.state.perfect) {\n Toast.info(\"请完善报名信息!\")\n }\n const {\n location: { state = {} },\n } = this.props\n\n if (state.group === 1) {\n let params = state.pdd_order_id\n ? {\n course_id: getParam(\"id\"),\n ischeck: this.state.useBalance,\n pdd_order_id: state.pdd_order_id,\n }\n : {\n course_id: getParam(\"id\"),\n ischeck: this.state.useBalance,\n }\n http.post(`${API[\"base-api\"]}/pdd/m`, params).then((res) => {\n if (Number(res.data.errno) === 200) {\n sessionStorage.removeItem(\"orderUseCacheObj\")\n if (res.data.data.pay_jump === 1) {\n this.props.history.push(`/togroup?id=${res.data.data.oid}`)\n return\n }\n this.props.history.push(`/payorder?oid=${res.data.data.oid}`, {\n group: 1,\n })\n } else if (Number(res.data.errno) === 0) {\n Toast.info(res.data.data.msg, 2)\n return\n } else {\n Toast.info(res.data.msg, 2)\n return\n }\n })\n } else {\n let url = `${API[\"base-api\"]}/m/v34/cart/order?ischeck=${this.state.useBalance}`\n if (this.props.location.state && this.props.location.state.type === 1) {\n url += \"&type=1\"\n }\n http.get(url).then((res) => {\n if (res.data.errno !== 0) {\n Toast.info(res.data.msg, 2)\n return\n }\n sessionStorage.removeItem(\"orderUseCacheObj\")\n if (res.data.data.is_free === 1) {\n this.props.history.replace(`/purchased`)\n return\n }\n this.props.history.replace(`/payorder?oid=${res.data.data.order_id}`)\n })\n }\n }\n // 勾选取消勾选 是否使用余额\n useBalance = () => {\n let useBalanceFlag = this.state.useBalance\n this.setState({\n useBalance: !useBalanceFlag,\n })\n if (!useBalanceFlag) {\n this.cacheObj = {\n ...this.state,\n }\n sessionStorage.setItem(\"orderUseCacheObj\", JSON.stringify(this.state))\n } else {\n sessionStorage.removeItem(\"orderUseCacheObj\")\n }\n this.computedMoney(useBalanceFlag)\n }\n // 勾选取消勾选时:计算金额、优惠金额、优惠券等\n computedMoney = (useBalanceFlag) => {\n let totalSale = parseFloat(this.cacheObj.total),\n userAccount = parseFloat(this.cacheObj.user_account)\n const { discount } = this.state\n if (!useBalanceFlag) {\n if (totalSale > userAccount) {\n this.setState({\n offset: userAccount.toFixed(2),\n total: (totalSale - userAccount).toFixed(2),\n discount: (userAccount + parseFloat(discount)).toFixed(2),\n })\n } else {\n this.setState({\n offset: totalSale.toFixed(2),\n total: 0,\n discount: (totalSale + parseFloat(discount)).toFixed(2),\n })\n }\n } else {\n this.setState({\n offset: this.cacheObj.offset,\n total: this.cacheObj.total,\n discount: this.cacheObj.discount,\n })\n }\n }\n // 选择优惠券返回时根据是否勾选计算\n computedMoneyByCache = () => {\n let totalSale = parseFloat(this.cacheObj.total),\n userAccount = parseFloat(this.cacheObj.user_account),\n discount = parseFloat(this.cacheObj.discount)\n if (totalSale > userAccount) {\n this.setState({\n offset: userAccount.toFixed(2),\n total: (totalSale - userAccount).toFixed(2),\n discount: (discount + userAccount).toFixed(2),\n })\n } else {\n this.setState({\n offset: totalSale.toFixed(2),\n total: 0,\n discount: totalSale.toFixed(2),\n })\n }\n }\n // 展示余额抵扣规则\n showInfo = () => {\n this.setState((prevState) => ({\n info: !prevState.info,\n }))\n }\n\n // 公共方法 存储数据\n publicGetData = (res) => {\n let { course, total, user_account, user_info, discount } = res\n if (this.props.location.state && this.props.location.state.group === 1) {\n total = this.state.groupPrice\n }\n this.cacheObj = {\n perfect: user_info,\n orderList: course,\n user_account,\n total,\n discount,\n }\n this.setState({\n perfect: user_info,\n orderList: course,\n user_account,\n total,\n discount,\n })\n }\n fullRules = (data) => {\n this.setState({\n full_amount: data.full_amount,\n cut_amount: data.cut_amount,\n })\n }\n // 公共方法 本地存储\n publicLocalStorage = () => {\n if (this.props.history.action === \"PUSH\") {\n sessionStorage.removeItem(\"orderUseCacheObj\")\n this.setState({\n discount: 0.0,\n })\n } else {\n const cacheObj = sessionStorage.getItem(\"orderUseCacheObj\")\n if (cacheObj !== null) {\n this.setState({\n useBalance: true,\n })\n this.computedMoneyByCache()\n }\n }\n }\n\n componentDidMount() {\n // type: 1,返现课程,simple: 1,正常购买\n if (this.props.location.state && this.props.location.state.type === 1) {\n http.get(`${API[\"base-api\"]}/m/order/preorder?type=1`).then((res) => {\n if (res.data.errno === 200) {\n this.publicGetData(res.data.data)\n this.publicLocalStorage()\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n } else if (\n this.props.location.state &&\n (this.props.location.state.simple === 1 ||\n this.props.location.state.bargain === 1)\n ) {\n // 普通课程立即报名 不带 type = 1\n http.get(`${API[\"base-api\"]}/m/order/preorder`).then((res) => {\n if (res.data.errno === 200) {\n console.log(res.data.data)\n this.publicGetData(res.data.data)\n this.publicLocalStorage()\n\n this.fullRules(res.data.data)\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n } else if (\n this.props.location.state &&\n this.props.location.state.group === 1\n ) {\n // 获取一键开团的课程\n Promise.all([\n http.get(`${API.home}/m/course/detail/${getParam(\"id\")}`),\n http.get(`${API[\"base-api\"]}/m/order/preorder`),\n ]).then((resList) => {\n let courseInfo = resList[0],\n orderInfo = resList[1]\n let newData = {}\n if (orderInfo.data.errno === 200) {\n newData = Object.assign({}, orderInfo.data.data, { course: [] })\n } else {\n Toast.info(orderInfo.data.msg, 2)\n return\n }\n if (courseInfo.data.code === 200) {\n newData.course.push(courseInfo.data.data.course_info)\n this.setState({\n groupPrice: courseInfo.data.data.course_info.pdd_group_info.price,\n })\n } else {\n Toast.info(courseInfo.data.msg, 2)\n return\n }\n this.publicGetData(newData)\n this.publicLocalStorage()\n })\n } else {\n http.get(`${API[\"base-api\"]}/m/order/preorder`).then((res) => {\n console.log(\"为了验证什么条件下会走这段代码\")\n if (res.data.errno !== 200) {\n Toast.info(res.data.msg, 2)\n return\n }\n\n this.publicGetData(res.data.data)\n this.publicLocalStorage()\n })\n }\n }\n\n toCourseDetail = (id) => {\n const { history } = this.props\n history.push(`/detail?id=${id}`)\n }\n\n render() {\n const {\n perfect,\n orderList,\n user_account,\n total,\n discount,\n useBalance,\n info,\n offset,\n groupPrice,\n full_amount,\n cut_amount,\n } = this.state\n\n return (\n <div className=\"order-wrapper\">\n <Flex>\n <Flex.Item>\n <HeaderBar title=\"课程报名\" arrow={true} />\n <div className=\"order-list\">\n <OrderList\n list={orderList}\n compute={this.computedMoney}\n courseId={getParam(\"id\")}\n locationState={this.props.location.state}\n groupPrice={groupPrice}\n toDetail={this.toCourseDetail}\n />\n </div>\n <div className=\"order-balance\">\n <List>\n <Item className=\"order-prefer-text\">\n <Flex justify=\"between\">\n <Flex align=\"center\">\n <span>余额抵扣</span>\n <span className=\"order-balanceprice\">\n {\" \"}\n (余额:{\" \"}\n <i className=\"order-money\">{`${user_account}元`}</i>)\n </span>\n <i\n className=\"iconfont iconiconfront-22 question-mark\"\n onClick={this.showInfo}\n ></i>\n </Flex>\n\n <Flex>\n {useBalance ? (\n <>\n <span\n style={{\n color: \"#FF2121\",\n fontSize: \"15px\",\n marginRight: \"6px\",\n }}\n >{`-¥${offset}`}</span>\n <i\n className={`iconfont icondanseshixintubiao-5 balance-used`}\n onClick={throttle(this.useBalance, 600)}\n ></i>\n </>\n ) : (\n <i\n className=\"circle-icon\"\n onClick={throttle(this.useBalance, 600)}\n ></i>\n )}\n </Flex>\n </Flex>\n </Item>\n </List>\n </div>\n {full_amount > 0 && cut_amount > 0 ? (\n <>\n <div className=\"full__rules\">\n <WingBlank>\n <div className=\"money__off\">\n <span>\n 满{full_amount}减{cut_amount}:\n </span>\n <span className=\"money\">{`-¥${cut_amount}`}</span>\n </div>\n </WingBlank>\n </div>\n </>\n ) : null}\n <div className=\"order-bar\">\n <div className=\"order-course\">\n <span className=\"order-course-text\">{`${orderList.length}门课程`}</span>\n </div>\n <div className=\"order-bar-text\">\n <div className=\"order-amount\">\n <span className=\"order-amount-title\">合计:</span>\n <span className=\"order-amount-price\">{`¥${total}`}</span>\n </div>\n <div className=\"order-preprice\">\n <span className=\"order-preprice-title\">已优惠:</span>\n <span className=\"order-preprice-price\">{`¥${discount}`}</span>\n </div>\n </div>\n {perfect ? (\n <button type=\"button\" className=\"order-button has-info\">\n <span\n className=\"order-button-text\"\n onClick={this.submitOrder}\n >\n 提交订单\n </span>\n </button>\n ) : (\n <button type=\"button\" className=\"order-button\">\n <span\n className=\"order-button-text\"\n onClick={this.submitOrder}\n >\n 提交订单\n </span>\n </button>\n )}\n </div>\n </Flex.Item>\n </Flex>\n {info ? (\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n zIndex: \"99\",\n }}\n >\n <div\n style={{\n padding: \"20px\",\n backgroundColor: \"#FFF\",\n width: \"300px\",\n height: \"170px\",\n margin: \"0 auto\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n }}\n >\n <Flex\n direction=\"column\"\n justify=\"between\"\n align=\"center\"\n style={{ height: \"100%\" }}\n >\n <p style={{ fontSize: \"16px\", color: \"#333333\" }}>\n 余额抵扣说明\n </p>\n <p\n style={{\n lineHeight: \"20px\",\n fontSize: \"13px\",\n color: \"#666666\",\n }}\n >\n 分销课程或者参与七月在线的相关活动,可获得资金奖励。账户资金可直接提现,也可抵扣课程费用。\n </p>\n <div\n onClick={this.showInfo}\n style={{\n width: \"260px\",\n height: \"30px\",\n lineHeight: \"30px\",\n textAlign: \"center\",\n borderRadius: \"3px\",\n border: \"1px solid #0099FF\",\n color: \"#0099FF\",\n fontSize: \"15px\",\n }}\n >\n 知道了\n </div>\n </Flex>\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n}\n\nexport default Order\n"],"sourceRoot":""}