{"version":3,"sources":["components/order/deposit/deposit-pay-order/index.js","components/order/deposit/final-order/index.js","common/v-list-base/index.js"],"names":["mockData","RadioItem","browser","isWeixin","value","label","icon","PayOrder","props","onChange","setState","payType","checkPeriod","huabei","pay","state","orderId","agree","alipayPay","weixinPay","window","location","href","encodeURIComponent","toLowerCase","http","get","API","then","res","data","errno","url","info","msg","isweixinPay","_this","weixin_code","getParam","undefined","onBridgeReady","WeixinJSBridge","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","intervalPayStatus","setInterval","clearInterval","history","replace","alert","document","addEventListener","attachEvent","payCallback","onBridgeReady1","BridgeData","changeAgreement","prevState","pay_amount","stageNumber","singleMoney","periodNumber","fenqiList","qishu","lilv","everyMoney","feiyong","categoryList","this","post","order_id","course_info","salePrice","sale_price","className","title","arrow","size","justify","align","style","height","map","item","index","Info","to","course_id","course_title","simpledescription","key","img","image_name","id","renderHeader","i","thumb","checked","direction","width","marginTop","paddingRight","color","fontSize","Item","AgreeItem","classnames","onClick","Component","WithFullSize","OrderList","courses","toggleSelectedCourse","wrap","length","course","coupon_desc","coupon_num","deduction_amount","coupon_amount","price1","Fragment","defaultChecked","handleClick","pathname","search","from","FinalDepositOrder","submit","createOrder","pay_jump","push","selectedCourses","useBalance","appliedMoneyOffRule","course_ids","cut_amount","is_deduction","getBalanceOffset","plat_form","source","showInfo","findIndex","splice","totalPrice","getTotalPrice","offset","moneyOffRules","getOriginTotalPrice","moneyOff","parseFloat","user_account","toFixed","rules","sort","a","b","full_amount","result","rule","reduce","accu","originalTotalPrice","currentPrice","finalEndTime","marginRight","position","top","left","backgroundColor","zIndex","padding","margin","transform","lineHeight","textAlign","borderRadius","border","VList","bind","status","src","alt","tab"],"mappings":"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","file":"mrstaticjs/deposit-pay-order.c0098e56.chunk.js","sourcesContent":["import React, { Component } from \"react\"\nimport {\n  Flex,\n  WingBlank,\n  WhiteSpace,\n  List,\n  Radio,\n  Toast,\n  Checkbox,\n} from \"antd-mobile\"\nimport { http, getParam, browser } from \"src/utils\"\nimport { HeaderBar } from \"src/common/index\"\nimport { Link } from \"react-router-dom\"\nimport \"./index.scss\"\nimport { VList } from \"src/common\"\nimport { WithFullSize } from \"src/HOCs\"\nimport classnames from \"classnames\"\n\nconst RadioItem = Radio.RadioItem\n\nlet mockData\nif (browser.isWeixin) {\n  mockData = [{ value: 1, label: \"微信支付\", icon: \"iconweixinzhifu\" }]\n} else {\n  mockData = [\n    { value: 1, label: \"微信支付\", icon: \"iconweixinzhifu\" },\n    { value: 0, label: \"支付宝\", icon: \"iconalipay\" },\n  ]\n}\n\nclass PayOrder extends Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      pay_amount: 0,\n      payType: 1,\n      stageNumber: 0,\n      checkPeriod: false,\n      singleMoney: 0,\n      periodNumber: 0,\n      orderId: getParam(\"oid\"),\n      huabei: false,\n      fenqiList: [\n        {\n          value: \"zhifubao\",\n          qishu: \"3\",\n          lilv: \"2.30%\",\n          everyMoney: 300,\n          feiyong: 2.3,\n        },\n        {\n          value: \"weixin\",\n          qishu: \"6\",\n          lilv: \"4.50%\",\n          everyMoney: 150,\n          feiyong: 4.5,\n        },\n        {\n          value: \"huabei\",\n          qishu: \"9\",\n          lilv: \"7.50%\",\n          everyMoney: 100,\n          feiyong: 7.5,\n        },\n      ],\n      categoryList: [],\n      agree: false,\n    }\n  }\n\n  onChange = (value) => {\n    this.setState({\n      payType: value,\n      checkPeriod: false,\n    })\n    if (value === 2) {\n      this.setState({\n        huabei: true,\n      })\n    }\n  }\n  // 确定购买\n  pay = () => {\n    const { payType, orderId } = this.state\n    if (!this.state.agree) {\n      return\n    }\n    if (payType === 0) {\n      this.alipayPay(orderId)\n    } else if (payType === 1) {\n      this.weixinPay(orderId)\n    }\n  }\n  // 微信支付\n  weixinPay = (orderId) => {\n    // 微信内部-支付\n    if (browser.isWeixin) {\n      window.location.href =\n        \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" +\n        encodeURIComponent(window.location.href + \"&aa=bb\").toLowerCase() +\n        \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\"\n    } else {\n      // 微信外部-支付\n      http\n        .get(`${API[\"base-api\"]}/pay/wxpay/wap_charge/oid/${orderId}`)\n        .then((res) => {\n          if (res.data.errno === 0) {\n            window.location.href =\n              res.data.data.url +\n              \"&redirect_url=\" +\n              encodeURIComponent(\n                window.location.href + \"&weixinpay=1\"\n              ).toLowerCase()\n          } else {\n            Toast.info(res.data.msg, 2)\n          }\n        })\n    }\n  }\n  // 微信内部支付\n  isweixinPay = () => {\n    let _this = this\n    let weixin_code = getParam(\"code\")\n    if (weixin_code) {\n      if (getParam(\"oid\") !== undefined) {\n        http\n          .get(\n            `${API[\"base-api\"]}/pay/wxpay/pub_charge/oid/${getParam(\n              \"oid\"\n            )}/code/${weixin_code}`\n          )\n          .then((res) => {\n            if (res.data.errno === 0) {\n              let data = res.data.data\n\n              function onBridgeReady() {\n                WeixinJSBridge.invoke(\n                  \"getBrandWCPayRequest\",\n                  {\n                    appId: data.appId, //公众号名称,由商户传入\n                    timeStamp: data.timeStamp, //时间戳,自1970年以来的秒数\n                    nonceStr: data.nonceStr, //随机串\n                    package: data.package,\n                    signType: data.signType, //微信签名方式:\n                    paySign: data.paySign, //微信签名\n                  },\n                  function (res) {\n                    // eslint-disable-next-line eqeqeq\n                    if (res.err_msg == \"get_brand_wcpay_request:ok\") {\n                      Toast.info(\"支付成功\", 2)\n                      _this.intervalPayStatus = setInterval(function () {\n                        http\n                          .get(\n                            `${API[\"base-api\"]}/m/orderState/oid/${getParam(\n                              \"oid\"\n                            )}`\n                          )\n                          .then((res) => {\n                            if (res.data.errno === 401) {\n                              clearInterval(_this.intervalPayStatus)\n                              _this.intervalPayStatus = null\n                              _this.props.history.replace(\n                                `/expand/callback?order_id=${getParam(\"oid\")}`\n                              )\n                            }\n                          })\n                      }, 1000)\n                    } else {\n                      alert(\"支付失败\")\n                    }\n                  }\n                )\n              }\n\n              if (typeof WeixinJSBridge == \"undefined\") {\n                if (document.addEventListener) {\n                  document.addEventListener(\n                    \"WeixinJSBridgeReady\",\n                    onBridgeReady,\n                    false\n                  )\n                } else if (document.attachEvent) {\n                  document.attachEvent(\"WeixinJSBridgeReady\", onBridgeReady)\n                  document.attachEvent(\"onWeixinJSBridgeReady\", onBridgeReady)\n                }\n              } else {\n                onBridgeReady()\n              }\n            } else {\n              Toast.info(res.data.msg, 2)\n            }\n          })\n      }\n    }\n  }\n  // 支付完成之后获取状态\n  payCallback = () => {\n    const _this = this\n    // 支付回调\n    // 定时器轮训获取订单状态\n    _this.intervalPayStatus = setInterval(function () {\n      http\n        .get(`${API[\"base-api\"]}/m/orderState/oid/${getParam(\"oid\")}`)\n        .then((res) => {\n          if (res.data.errno === 401) {\n            clearInterval(_this.intervalPayStatus)\n            _this.intervalPayStatus = null\n            window.location.href =\n              \"/expand/callback?order_id=\" + getParam(\"oid\")\n          }\n        })\n    }, 1000)\n  }\n\n  onBridgeReady1 = (data) => {\n    let _this = this\n    data = data || _this.BridgeData\n\n    /* eslint-disable-next-line no-undef */\n    WeixinJSBridge.invoke(\n      \"getBrandWCPayRequest\",\n      {\n        appId: \"wx23dac6775ac82877\", //公众号名称,由商户传入\n        timeStamp: data.timeStamp, //时间戳,自1970年以来的秒数\n        nonceStr: data.nonceStr, //随机串\n        package: data.package,\n        signType: data.signType, //微信签名方式:\n        paySign: data.paySign, //微信签名\n      },\n      function (res) {\n        // eslint-disable-next-line eqeqeq\n        if (res.err_msg == \"get_brand_wcpay_request:ok\") {\n          Toast.info(\"支付成功\", 2)\n          _this.payCallback()\n        } else {\n          alert(\"支付失败\")\n        }\n      }\n    )\n  }\n  // 支付宝支付\n  alipayPay = (orderId) => {\n    http\n      .get(`${API[\"base-api\"]}/pay/alipay/wap_charge_new/oid/${orderId}`)\n      .then((res) => {\n        if (res.data.errno === 0) {\n          this.payCallback()\n          window.location = res.data.data.url\n        } else {\n          Toast.info(res.data.msg, 2)\n        }\n      })\n  }\n\n  componentDidMount() {\n    if (getParam(\"weixinpay\")) {\n      this.payCallback()\n    }\n\n    if (browser.isWeixin) {\n      this.isweixinPay(getParam(\"oid\"))\n    }\n\n    http\n      .post(`${API[\"base-api\"]}/m/deposit/detail`, {\n        order_id: this.state.orderId,\n      })\n      .then((res) => {\n        const { data } = res\n        // eslint-disable-next-line eqeqeq\n        if (data.errno == 200) {\n          this.setState({\n            categoryList: [data.data.course_info],\n            salePrice: data.data.course_info.sale_price,\n          })\n        } else {\n          Toast.info(data.msg)\n        }\n      })\n  }\n\n  changeAgreement = () => {\n    this.setState((prevState) => ({ agree: !prevState.agree }))\n  }\n\n  render() {\n    const {\n      orderId,\n      salePrice,\n      payType,\n      checkPeriod,\n      singleMoney,\n      periodNumber,\n      categoryList,\n      agree,\n    } = this.state\n    return (\n      <div className=\"pay-order\">\n        <HeaderBar title=\"确认支付\" arrow={true}></HeaderBar>\n        <WhiteSpace size=\"sm\"></WhiteSpace>\n        <div className=\"order-number\">\n          <WingBlank>\n            <Flex justify=\"between\" align=\"center\" style={{ height: \"44px\" }}>\n              <span>订单号</span>\n              <span className=\"number\">{orderId}</span>\n            </Flex>\n          </WingBlank>\n        </div>\n        <WhiteSpace size=\"md\"></WhiteSpace>\n        {categoryList.map((item, index) => {\n          const Info = (\n            <div className=\"order-info\">\n              <p className=\"order-title text-overflow-one\">\n                <Link to={`/detail?id=${item.course_id}`}>\n                  {item.course_title}\n                </Link>\n              </p>\n              <p className=\"order-content text-overflow-2\">\n                {item.simpledescription}\n              </p>\n              <p className=\"order-des\">\n                <span className=\"order-newprice\">¥{item.sale_price}</span>\n                <span className={\"price-des\"}>(预付定金)</span>\n              </p>\n            </div>\n          )\n          return (\n            <VList\n              key={index}\n              img={item.image_name}\n              id={item.course_id}\n              info={Info}\n            ></VList>\n          )\n        })}\n        <WhiteSpace size=\"md\"></WhiteSpace>\n        <div className=\"order-number\">\n          <WingBlank>\n            <Flex justify=\"between\" align=\"center\" style={{ height: \"44px\" }}>\n              <span>支付金额</span>\n              <span className=\"money\">{`¥${salePrice}`}</span>\n            </Flex>\n          </WingBlank>\n        </div>\n\n        <WhiteSpace size=\"md\"></WhiteSpace>\n        <List renderHeader={() => \"支付方式\"} className=\"pay-type-list\">\n          {mockData.map((i) => (\n            <RadioItem\n              thumb={\n                <i\n                  className={`iconfont ${i.icon} ${\n                    payType === i.value ? \"checked\" : \"\"\n                  }`}\n                ></i>\n              }\n              key={i.value}\n              checked={payType === i.value}\n              onChange={() => this.onChange(i.value)}\n            >\n              {i.value === 2 ? (\n                <Flex\n                  direction=\"column\"\n                  align=\"start\"\n                  style={{ width: \"100%\", marginTop: \"6px\" }}\n                >\n                  <Flex\n                    direction=\"row\"\n                    justify=\"between\"\n                    style={{ width: \"100%\", paddingRight: \"30px\" }}\n                  >\n                    <span style={{ color: \"#555555\", fontSize: \"14px\" }}>\n                      {i.label}\n                    </span>\n                    {checkPeriod ? (\n                      <span\n                        style={{\n                          color: \"#333333\",\n                          fontSize: \"12px\",\n                        }}\n                      >{`${singleMoney}元 × ${periodNumber}期`}</span>\n                    ) : null}\n                  </Flex>\n                  <Flex justify=\"start\">\n                    <span style={{ color: \"#999999\", fontSize: \"12px\" }}>\n                      支付上限受限于您的花呗额度\n                    </span>\n                  </Flex>\n                </Flex>\n              ) : (\n                i.label\n              )}\n            </RadioItem>\n          ))}\n        </List>\n        <Flex>\n          <Flex.Item className={\"agreement\"}>\n            <Checkbox.AgreeItem onChange={this.changeAgreement}>\n              我已同意定金不退\n            </Checkbox.AgreeItem>\n          </Flex.Item>\n        </Flex>\n        {/*<div className='pay-tip'>请在15分钟内完成支付,否则届时系统将关闭该订单。</div>*/}\n\n        <div\n          className={classnames([\"pay-button\", !agree && \"invalid\"])}\n          onClick={this.pay}\n        >\n          确认支付\n        </div>\n      </div>\n    )\n  }\n}\n\nexport default WithFullSize(PayOrder)\n","import React, { Component } from \"react\"\nimport {\n  Checkbox,\n  Flex,\n  List,\n  Radio,\n  Toast,\n  WhiteSpace,\n  WingBlank,\n} from \"antd-mobile\"\nimport { browser, getParam, http } from \"src/utils\"\nimport { HeaderBar } from \"src/common/index\"\nimport VlistBase from \"src/common/v-list-base\"\nimport \"./index.scss\"\nimport { WithFullSize } from \"src/HOCs\"\nimport { Link } from \"react-router-dom\"\n\nconst RadioItem = Radio.RadioItem\nconst Item = Flex.Item\n\nfunction OrderList({ courses, toggleSelectedCourse }) {\n  return (\n    <Flex wrap={\"wrap\"}>\n      {courses.length &&\n        courses.map((course) => {\n          const { image_name: img, course_id, coupon_desc, coupon_num } = course\n          const info = (\n            <div className=\"info\">\n              <div className=\"title\">{course.course_title}</div>\n              <div className=\"des\">\n                <div className={\"deposit-discount\"}>\n                  定金折扣:\n                  <span className={\"price\"}>-¥{course.deduction_amount}</span>\n                </div>\n                {\n                  // eslint-disable-next-line eqeqeq\n                  course.coupon_amount != 0 && (\n                    <div className={\"coupon-amount\"}>\n                      使用优惠券:\n                      <span className={\"price\"}>-¥{course.coupon_amount}</span>\n                    </div>\n                  )\n                }\n              </div>\n              <div className=\"prices\">\n                <span className={\"sale-price price\"}>¥{course.sale_price}</span>\n                <span className={\"former-price\"}>¥{course.price1}</span>\n              </div>\n            </div>\n          )\n          return (\n            <React.Fragment key={course.course_id}>\n              <Item className={\"order-item\"}>\n                <Flex className=\"select-bar\" justify={\"between\"}>\n                  <Item>\n                    <Checkbox\n                      defaultChecked\n                      onChange={() => {\n                        toggleSelectedCourse(course)\n                      }}\n                    />\n                  </Item>\n                  <Item className={\"final-payment-hint\"}>待付尾款</Item>\n                </Flex>\n                <VlistBase img={img} handleClick={() => {}} info={info} />\n              </Item>\n              <div className=\"order-prefer\">\n                <List key={course_id}>\n                  <List.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                      <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                  </List.Item>\n                </List>\n              </div>\n            </React.Fragment>\n          )\n        })}\n    </Flex>\n  )\n}\n\nlet mockData\nif (browser.isWeixin) {\n  mockData = [{ value: 1, label: \"微信支付\", icon: \"iconweixinzhifu\" }]\n} else {\n  mockData = [\n    { value: 1, label: \"微信支付\", icon: \"iconweixinzhifu\" },\n    { value: 0, label: \"支付宝\", icon: \"iconalipay\" },\n  ]\n}\n\nclass FinalDepositOrder extends Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      pay_amount: 0,\n      payType: 1,\n      stageNumber: 0,\n      orderId: getParam(\"oid\"),\n      categoryList: [],\n      selectedCourses: [],\n      salePrice: \"\",\n      user_account: \"\",\n      useBalance: false,\n      info: false,\n      order_id: \"\",\n      moneyOffRules: [],\n      finalEndTime: \"\",\n      offset: 0,\n      appliedMoneyOffRule: {},\n    }\n  }\n\n  onChange = (value) => {\n    this.setState({\n      payType: value,\n      checkPeriod: false,\n    })\n    if (value === 2) {\n      this.setState({\n        huabei: true,\n      })\n    }\n  }\n  // 确定购买\n  pay = () => {\n    const { payType, order_id } = this.state\n    if (payType === 0) {\n      this.alipayPay(order_id)\n    } else if (payType === 1) {\n      this.weixinPay(order_id)\n    }\n  }\n\n  //提交\n  submit = () => {\n    this.createOrder().then((res) => {\n      if (res.data.errno === 200) {\n        this.setState(\n          {\n            order_id: res.data.data.order_id,\n          },\n          () => {\n            if (res.data.data.pay_jump === 1) {\n              this.props.history.push(\"/purchased\")\n            } else {\n              this.pay()\n            }\n          }\n        )\n      } else {\n        Toast.info(res.data.msg)\n      }\n    })\n  }\n\n  //创建订单\n  createOrder = () => {\n    const {\n      selectedCourses,\n      salePrice,\n      useBalance,\n      appliedMoneyOffRule,\n    } = this.state\n    return http.post(`${API[\"base-api\"]}/m/deposit/final/create`, {\n      course_ids: selectedCourses.map((item) => item.course_id),\n      cut_amount: appliedMoneyOffRule.cut_amount || 0,\n      pay_amount: salePrice,\n      is_deduction: useBalance ? 1 : 0,\n      deduction_amount: useBalance ? this.getBalanceOffset() : 0,\n      plat_form: 5,\n      source: getParam(\"source\"),\n    })\n  }\n  // 微信支付\n  weixinPay = (orderId) => {\n    // 微信内部-支付\n    if (browser.isWeixin) {\n      window.location.href =\n        \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" +\n        encodeURIComponent(window.location.href + \"&aa=bb\").toLowerCase() +\n        \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\"\n    } else {\n      // 微信外部-支付\n      http\n        .get(`${API[\"base-api\"]}/pay/wxpay/wap_charge/oid/${orderId}`)\n        .then((res) => {\n          if (res.data.errno === 0) {\n            window.location.href =\n              res.data.data.url +\n              \"&redirect_url=\" +\n              encodeURIComponent(\n                window.location.href + \"&weixinpay=1\"\n              ).toLowerCase()\n          } else {\n            Toast.info(res.data.msg, 2)\n          }\n        })\n    }\n  }\n\n  // 微信内部支付\n  isweixinPay = () => {\n    let _this = this\n    let weixin_code = getParam(\"code\")\n    if (weixin_code) {\n      if (getParam(\"oid\") !== undefined) {\n        http\n          .get(\n            `${API[\"base-api\"]}/pay/wxpay/pub_charge/oid/${getParam(\n              \"oid\"\n            )}/code/${weixin_code}`\n          )\n          .then((res) => {\n            if (res.data.errno === 0) {\n              let data = res.data.data\n\n              function onBridgeReady() {\n                /* eslint-disable-next-line no-undef */\n                WeixinJSBridge.invoke(\n                  \"getBrandWCPayRequest\",\n                  {\n                    appId: data.appId, //公众号名称,由商户传入\n                    timeStamp: data.timeStamp, //时间戳,自1970年以来的秒数\n                    nonceStr: data.nonceStr, //随机串\n                    package: data.package,\n                    signType: data.signType, //微信签名方式:\n                    paySign: data.paySign, //微信签名\n                  },\n                  function (res) {\n                    if (res.err_msg === \"get_brand_wcpay_request:ok\") {\n                      Toast.info(\"支付成功\", 2)\n                      _this.intervalPayStatus = setInterval(function () {\n                        http\n                          .get(\n                            `${API[\"base-api\"]}/m/orderState/oid/${getParam(\n                              \"oid\"\n                            )}`\n                          )\n                          .then((res) => {\n                            if (res.data.errno === 401) {\n                              clearInterval(_this.intervalPayStatus)\n                              _this.intervalPayStatus = null\n                              _this.props.history.replace(\n                                `/expand/callback?order_id=${getParam(\"oid\")}`\n                              )\n                            }\n                          })\n                      }, 1000)\n                    } else {\n                      alert(\"支付失败\")\n                    }\n                  }\n                )\n              }\n\n              if (typeof WeixinJSBridge == \"undefined\") {\n                if (document.addEventListener) {\n                  document.addEventListener(\n                    \"WeixinJSBridgeReady\",\n                    onBridgeReady,\n                    false\n                  )\n                } else if (document.attachEvent) {\n                  document.attachEvent(\"WeixinJSBridgeReady\", onBridgeReady)\n                  document.attachEvent(\"onWeixinJSBridgeReady\", onBridgeReady)\n                }\n              } else {\n                onBridgeReady()\n              }\n            } else {\n              Toast.info(res.data.msg, 2)\n            }\n          })\n      }\n    }\n  }\n\n  // 支付完成之后获取状态\n  payCallback = () => {\n    const _this = this\n    // 支付回调\n    // 定时器轮训获取订单状态\n    _this.intervalPayStatus = setInterval(function () {\n      http\n        .get(`${API[\"base-api\"]}/m/orderState/oid/${getParam(\"oid\")}`)\n        .then((res) => {\n          if (res.data.errno === 401) {\n            clearInterval(_this.intervalPayStatus)\n            _this.intervalPayStatus = null\n            window.location.href =\n              \"/expand/callback?order_id=\" + getParam(\"oid\")\n          }\n        })\n    }, 1000)\n  }\n\n  // 支付宝支付\n  alipayPay = (orderId) => {\n    http\n      .get(`${API[\"base-api\"]}/pay/alipay/wap_charge_new/oid/${orderId}`)\n      .then((res) => {\n        if (res.data.errno === 0) {\n          this.payCallback()\n          window.location = res.data.data.url\n        } else {\n          Toast.info(res.data.msg, 2)\n        }\n      })\n  }\n\n  componentDidMount() {\n    if (getParam(\"weixinpay\")) {\n      this.payCallback()\n    }\n\n    if (browser.isWeixin) {\n      this.isweixinPay(getParam(\"oid\"))\n    }\n\n    http.get(`${API[\"base-api\"]}/m/deposit/final/preorder`).then((res) => {\n      const { data } = res\n      if (data.errno === 200) {\n        this.setState({\n          categoryList: [...data.data.courses],\n          salePrice: this.getTotalPrice({\n            courses: [...data.data.courses],\n            moneyOffRules: data.data[\"full_rule\"],\n          }),\n          selectedCourses: [...data.data.courses],\n          user_account: data.data.user_account,\n          moneyOffRules: data.data[\"full_rule\"],\n          finalEndTime: data.data[\"final_end_time\"],\n        })\n      } else {\n        Toast.info(data.msg)\n      }\n    })\n  }\n\n  // 展示余额抵扣规则\n  showInfo = () => {\n    this.setState((prevState) => ({\n      info: !prevState.info,\n    }))\n  }\n\n  toggleSelectedCourse = (course) => {\n    this.setState((prevState) => {\n      const { selectedCourses } = prevState\n      let index = prevState.selectedCourses.findIndex(\n        (item) => item.course_id === course.course_id\n      )\n      if (index === -1) {\n        selectedCourses.push(course)\n      } else {\n        selectedCourses.splice(index, 1)\n      }\n      let totalPrice = this.getTotalPrice(selectedCourses)\n      return {\n        selectedCourses,\n        salePrice: totalPrice,\n        offset: this.getBalanceOffset(totalPrice),\n      }\n    })\n  }\n\n  //获取支付价格\n  getTotalPrice = ({\n    courses = this.state.selectedCourses,\n    useBalance = this.state.useBalance,\n    moneyOffRules = this.state.moneyOffRules,\n  } = {}) => {\n    let totalPrice = this.getOriginTotalPrice({ courses })\n    totalPrice = this.moneyOff(totalPrice, moneyOffRules)\n    if (useBalance) {\n      totalPrice -= parseFloat(this.state.user_account)\n    }\n    return totalPrice < 0 ? 0 : totalPrice.toFixed(2)\n  }\n\n  //满减计算\n  moneyOff = (totalPrice, moneyOffRules = this.state.moneyOffRules) => {\n    let rules = moneyOffRules.sort((a, b) => b.full_amount - a.full_amount)\n    let result = parseFloat(totalPrice)\n    for (let i = 0; i < rules.length; i++) {\n      let rule = rules[i]\n      if (result >= rule.full_amount) {\n        this.setState({\n          appliedMoneyOffRule: rule,\n        })\n        return result - parseFloat(rule.cut_amount)\n      }\n    }\n    return result\n  }\n\n  //使用余额\n  useBalance = () => {\n    this.setState((prevState) => {\n      const useBalance = !prevState.useBalance\n      let totalPrice = this.getTotalPrice({ useBalance })\n      return {\n        useBalance,\n        salePrice: totalPrice,\n        offset: this.getBalanceOffset(totalPrice),\n      }\n    })\n  }\n\n  getOriginTotalPrice = ({ courses = this.state.selectedCourses } = {}) => {\n    return courses.reduce((accu, item) => {\n      return accu + parseFloat(item[\"sale_price\"])\n    }, 0)\n  }\n\n  getBalanceOffset = () => {\n    let originalTotalPrice = this.getOriginTotalPrice()\n    let currentPrice = this.moneyOff(originalTotalPrice)\n    let offset = parseFloat(this.state.user_account) - parseFloat(currentPrice)\n    offset = offset >= 0 ? currentPrice : this.state.user_account\n    return offset\n  }\n\n  render() {\n    const {\n      salePrice,\n      payType,\n      categoryList,\n      user_account,\n      useBalance,\n      info,\n      finalEndTime,\n      offset,\n      appliedMoneyOffRule,\n    } = this.state\n    return (\n      <div className=\"deposit-pay-order\">\n        <HeaderBar title=\"课程报名\" arrow={true}></HeaderBar>\n        <WhiteSpace size=\"sm\" />\n        {/*<div className='order-number'>\n                    <WingBlank>\n                        <Flex justify='between' align='center' style={{height: '44px'}}>\n                            <span>订单号</span>\n                            <span className='number'>{orderId}</span>\n                        </Flex>\n                    </WingBlank>\n                </div>*/}\n        <WhiteSpace size=\"md\" />\n\n        <div className={\"order-list\"}>\n          <OrderList\n            courses={categoryList}\n            toggleSelectedCourse={this.toggleSelectedCourse}\n          />\n        </div>\n\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                    <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                <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={this.useBalance}\n                      />\n                    </>\n                  ) : (\n                    <i className=\"circle-icon\" onClick={this.useBalance}></i>\n                  )}\n                </Flex>\n              </Flex>\n            </Item>\n          </List>\n        </div>\n\n        <WhiteSpace size=\"md\"></WhiteSpace>\n        <div className=\"order-number\">\n          <WingBlank>\n            <Flex justify=\"between\" align=\"center\" style={{ height: \"44px\" }}>\n              <span>支付金额</span>\n              <span className=\"money\">{`¥${salePrice}`}</span>\n            </Flex>\n          </WingBlank>\n        </div>\n        <WhiteSpace />\n        {appliedMoneyOffRule.full_amount && (\n          <div className=\"money-off\">\n            <WingBlank>\n              <Flex justify=\"end\" align=\"center\" style={{ height: \"44px\" }}>\n                <span>\n                  满{appliedMoneyOffRule.full_amount}减\n                  {appliedMoneyOffRule.cut_amount}:\n                </span>\n                <span className=\"money\">{`-¥${appliedMoneyOffRule.cut_amount}`}</span>\n              </Flex>\n            </WingBlank>\n          </div>\n        )}\n\n        <WhiteSpace size=\"md\"></WhiteSpace>\n        <List renderHeader={() => \"支付方式\"} className=\"pay-type-list\">\n          {mockData.map((i) => (\n            <RadioItem\n              thumb={\n                <i\n                  className={`iconfont ${i.icon} ${\n                    payType === i.value ? \"checked\" : \"\"\n                  }`}\n                ></i>\n              }\n              key={i.value}\n              checked={payType === i.value}\n              onChange={() => this.onChange(i.value)}\n            >\n              {i.label}\n            </RadioItem>\n          ))}\n        </List>\n        <div className=\"pay-tip\">{`${finalEndTime}结束支付尾款`}</div>\n\n        <div className=\"pay-button\" onClick={this.submit}>\n          确认支付\n        </div>\n\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 WithFullSize(FinalDepositOrder)\n","import React from \"react\"\nimport \"./index.scss\"\n\nconst VList = (props) => {\n  return (\n    <li\n      className=\"v-list-base-item\"\n      onClick={props.handleClick.bind(this, props.id, props.item)}\n    >\n      <div className=\"content\">\n        <div className=\"cover\">\n          {props.status}\n          <img src={props.img} alt=\"\" />\n        </div>\n        {props.info}\n      </div>\n      {props.tab}\n    </li>\n  )\n}\n\nexport default VList\n"],"sourceRoot":""}