{"version":3,"sources":["components/order/index.js"],"names":["Item","OrderList","props","listData","list","map","item","index","is_coupon","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","Component","constructor","super","submitOrder","this","total","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","userAccount","user_account","discount","offset","toFixed","computedMoneyByCache","showInfo","prevState","publicGetData","course","user_info","fullRules","full_amount","cut_amount","publicLocalStorage","action","getItem","toCourseDetail","dispatch","componentDidMount","bargain","Promise","all","home","resList","courseInfo","orderInfo","newData","Object","assign","code","course_info","pdd_group_info","price","console","log","render","title","compute","courseId","align","marginRight","throttle","position","top","left","width","height","backgroundColor","zIndex","padding","margin","transform","direction","lineHeight","textAlign","borderRadius","border"],"mappings":"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","file":"mrstaticjs/Order.0b2838ef.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';\nimport {getCourses} from './../detail/actions';\n\nimport \"./order.scss\"\n\nconst Item = List.Item;\n\nfunction OrderList(props) {\n const listData = props.list;\n return (\n <div>\n {\n listData.map((item, index) => {\n const { is_coupon, course_id, image_name, price1, price0, simpledescription, course_title, coupon_num, coupon_desc} = 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 className='order-content' style={{ WebkitBoxOrient: 'vertical', WebkitLineClamp: '2', wordBreak: 'break-all', overflow: 'hidden', textOverflow: 'ellipsis', display: '-webkit-box' }}>{simpledescription}</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 {\n (props.locationState && (props.locationState.type || props.locationState.simple)) ? (\n <div className=\"order-prefer\">\n <List key={index}>\n <Item\n arrow=\"horizontal\"\n onClick={() => { }}\n >\n <Link to={{\n pathname: `/coupons`,\n search: `?id=${course_id}`,\n state: {\n from: '/order'\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 >优惠券</span>\n <span\n style={{\n fontSize: '14px',\n color: '#999999'\n }}\n >\n {!coupon_desc ? (coupon_num === 0 ? '无' : `${coupon_num}张可用`) : (coupon_desc)}\n </span>\n </Flex>\n </Link>\n </Item>\n </List>\n </div>\n ) : null\n }\n\n </OrderItem>\n )\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.00, // 账户余额\n total: 0.00, // 需要支付总金额\n discount: 0.00, //\n useBalance: false,\n orderList: [],\n info: false,\n offset: 0,\n full_amount: 0, // 满金额\n cut_amount: 0, // 减金额\n };\n }\n // 提交订单\n submitOrder = () => {\n const {total} = this.state;\n if (this.state.orderList.length === 0) {\n Toast.info('没有要提交的订单!');\n return;\n }\n if (!this.state.perfect) {\n Toast.info('请完善报名信息!');\n }\n const { location: { state ={} } } = this.props;\n\n if(state.group === 1) {\n let params = state.pdd_order_id? {\n course_id: getParam(\"id\"),\n ischeck: this.state.useBalance,\n pdd_order_id: state.pdd_order_id\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}`, {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 // 勾选取消勾选 是否使用余额\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.00,\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 componentDidMount() {\n let _this = this;\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 (this.props.location.state && (this.props.location.state.simple === 1 || this.props.location.state.bargain === 1)) {\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 (this.props.location.state && this.props.location.state.group === 1){\n // 获取一键开团的课程\n Promise.all([http.get(`${API.home}/m/course/detail/${getParam('id')}`),http.get(`${API['base-api']}/m/order/preorder`)]).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.groupPrice = orderInfo.data.data.course_info.pdd_group_info.price;\n // if(courseInfo.data.data.course.length === 0) {\n // courseInfo.data.data.course.push(orderInfo.data.data.course_info)\n // }\n this.publicGetData(newData);\n this.publicLocalStorage();\n });\n } else {\n // if(getParam('id')) {\n // Promise.all([http.get(`${API.home}/m/del_cart_order/${getParam('id')}`), http.get(`${API['base-api']}/m/order/preorder`)]).then(res => {\n // console.log(res);\n // let preorder = res[1],\n // orderList = preorder.data.data.course;\n // if(preorder.data.errno !== 200) {\n // Toast.info(preorder.data.msg, 2);\n // return;\n // }\n\n // this.publicGetData(preorder);\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 // else {\n // if(getParam('id')) {\n // Promise.all([http.get(`${API.home}/m/del_cart_order/${getParam('id')}`), http.get(`${API.home}/m/order/preorder`)]).then(res => {\n // console.log(res);\n // let preorder = res[1],\n // orderList = preorder.data.data.course;\n // if(preorder.data.errno !== 200) {\n // Toast.info(preorder.data.msg, 2);\n // return;\n // }\n //\n // this.publicGetData(preorder);\n // this.publicLocalStorage();\n // })\n // }else{\n // http.get(`${API.home}/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);\n // this.publicLocalStorage();\n // })\n // }\n // }\n };\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n // dispatch(getCourses(id, () => {\n history.push(`/detail?id=${id}`)\n // }));\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 {/*{*/}\n {/*!this.state.perfect &&*/}\n {/*<Link to={{*/}\n {/*pathname: '/orderinfo',*/}\n {/*state: {type: this.props.location.state ? this.props.location.state.type : null, id: getParam('id')}*/}\n {/*}}*/}\n {/*className=\"order-information\">*/}\n {/*<i className=\"iconfont iconiconfront-6 order-addsize\" />*/}\n {/*<div className=\"order-infotext\">完善报名信息</div>*/}\n {/*<i className=\"iconfont iconiconfront-70 order-next\" />*/}\n {/*</Link>*/}\n {/*}*/}\n {/*{*/}\n {/*this.state.perfect &&*/}\n {/*<div className=\"order-information2\">*/}\n {/*<WingBlank>*/}\n {/*<Link to={{*/}\n {/*pathname: '/orderinfo',*/}\n {/*state: {*/}\n {/*...this.state.perfect,*/}\n {/*...this.props.location.state,*/}\n {/*id: getParam('id')*/}\n {/*}*/}\n {/*}*/}\n {/*} >*/}\n {/*<Flex align='center' justify='between' style={{ height: '80px' }}>*/}\n {/*<i className=\"iconfont iconiconfront-20 user-icon\"></i>*/}\n\n {/*<Flex direction='column' justify='between' align='start' className=\"order-cell\">*/}\n {/*<div className=\"name\">{`姓名:${perfect.real_name}`}</div>*/}\n {/*<div>{`电话:${perfect.cellphone}`}</div>*/}\n {/*</Flex>*/}\n\n {/*<Flex align='start' className=\"order-cell\">*/}\n {/*<div>{`QQ:${perfect.qq}`}</div>*/}\n {/*</Flex>*/}\n\n {/*</Flex>*/}\n {/*</Link>*/}\n {/*</WingBlank>*/}\n {/*</div>*/}\n {/*}*/}\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\n className=\"order-prefer-text\"\n >\n <Flex justify='between'>\n <Flex align='center'>\n <span>余额抵扣</span>\n <span className=\"order-balanceprice\"> (余额: <i className=\"order-money\">{`${user_account}元`}</i>)</span>\n <i className=\"iconfont iconiconfront-22 question-mark\" onClick={this.showInfo}></i>\n </Flex>\n\n <Flex>\n {\n useBalance ? (\n <>\n <span style={{ color: '#FF2121', fontSize: '15px', marginRight: \"6px\" }}>{`-¥${offset}`}</span>\n <i className={`iconfont icondanseshixintubiao-5 balance-used`} onClick={throttle(this.useBalance, 600)}></i>\n </>\n ) : (\n <i className='circle-icon' onClick={throttle(this.useBalance, 600)}></i>\n )\n }\n </Flex>\n </Flex>\n </Item>\n </List>\n </div>\n {\n (full_amount > 0 && cut_amount > 0) ? (\n <>\n <div className=\"full__rules\">\n <WingBlank>\n <div className=\"money__off\">\n <span>满{full_amount}减{cut_amount}:</span>\n <span className='money'>{`-¥${cut_amount}`}</span>\n </div>\n </WingBlank>\n </div>\n </>\n ) : (null)\n }\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 {\n perfect ? (\n\n <button type=\"button\" className=\"order-button has-info\">\n <span className=\"order-button-text\" onClick={this.submitOrder}>提交订单</span>\n </button>\n ) : (\n\n <button type=\"button\" className=\"order-button\">\n <span className=\"order-button-text\" onClick={this.submitOrder}>提交订单</span>\n </button>\n )\n }\n </div>\n </Flex.Item>\n </Flex>\n {\n info ? (\n <div style={{ position: 'fixed', top: 0, left: 0, width: '100%', height: '100%', backgroundColor: 'rgba(0, 0, 0, 0.8)', zIndex: '99' }}>\n <div style={{ padding: '20px', backgroundColor: '#FFF', width: '300px', height: '170px', margin: '0 auto', position: 'absolute', left: '50%', top: '50%', transform: 'translate(-50%, -50%)' }}>\n <Flex direction='column' justify='between' align='center' style={{ height: '100%' }}>\n <p style={{ fontSize: '16px', color: '#333333' }}>余额抵扣说明</p>\n <p style={{ lineHeight: '20px', fontSize: '13px', color: '#666666' }}>分销课程或者参与七月在线的相关活动,可获得资金奖励。账户资金可直接提现,也可抵扣课程费用。</p>\n <div onClick={this.showInfo} style={{ width: '260px', height: '30px', lineHeight: '30px', textAlign: 'center', borderRadius: '3px', border: '1px solid #0099FF', color: '#0099FF', fontSize: '15px' }}>知道了</div>\n </Flex>\n </div>\n </div>\n ) : null\n }\n </div>\n\n )\n }\n\n}\n\nexport default Order;\n"],"sourceRoot":""}