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