{"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":""}