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