From 118fb63b559095310b0977bef73977c827a040c9 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Mon, 17 Feb 2020 12:33:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/component/VAS/BuyQuota.js | 328 ++++++++++++++++++---------------- yarn.lock | 12 ++ 3 files changed, 191 insertions(+), 150 deletions(-) diff --git a/package.json b/package.json index 403b83e..1be1693 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "for-editor": "^0.3.5", "http-proxy-middleware": "^0.20.0", "mdi-material-ui": "^6.9.0", + "qrcode-react": "^0.1.16", "react": "^16.12.0", "react-addons-update": "^15.6.2", "react-content-loader": "^4.3.2", diff --git a/src/component/VAS/BuyQuota.js b/src/component/VAS/BuyQuota.js index b84c1e3..a5106b7 100644 --- a/src/component/VAS/BuyQuota.js +++ b/src/component/VAS/BuyQuota.js @@ -9,6 +9,7 @@ import SupervisedUserCircle from "@material-ui/icons/SupervisedUserCircle"; import StarIcon from "@material-ui/icons/StarBorder"; import LocalPlay from "@material-ui/icons/LocalPlay"; import API from "../../middleware/Api"; +import QRCode from "qrcode-react"; import { withStyles, @@ -34,12 +35,8 @@ import RadioGroup from "@material-ui/core/RadioGroup"; import FormLabel from "@material-ui/core/FormLabel"; import FormControlLabel from "@material-ui/core/FormControlLabel"; import Radio from "@material-ui/core/Radio"; -import Divider from "@material-ui/core/Divider"; -import InputLabel from "@material-ui/core/InputLabel"; -import FormControl from "@material-ui/core/FormControl"; -import MenuItem from "@material-ui/core/MenuItem"; -import Select from "@material-ui/core/Select"; -import {AccountBalanceWallet} from "@material-ui/icons"; +import { AccountBalanceWallet } from "@material-ui/icons"; +import pathHelper from "../../untils/page"; const styles = theme => ({ layout: { @@ -141,15 +138,15 @@ class BuyQuotaCompoment extends Component { selectedPack: -1, selectedGroup: -1, times: 1, - scoreNum:1, + scoreNum: 1, loading: false, redeemCode: "", dialog: null, payment: { type: "", - img: "", + img: "" }, - scorePrice:0, + scorePrice: 0, redeemInfo: null, packs: [], groups: [], @@ -167,7 +164,7 @@ class BuyQuotaCompoment extends Component { groups: response.data.groups, alipay: response.data.alipay, payjs: response.data.payjs, - scorePrice:response.data.score_price, + scorePrice: response.data.score_price }); }) .catch(error => { @@ -187,15 +184,12 @@ class BuyQuotaCompoment extends Component { this.setState({ loading: true }); - API - .post("/vas/redeem/" + this.state.redeemCode,) + API.post("/vas/redeem/" + this.state.redeemCode) .then(response => { - - this.setState({ - loading: false, - dialog: "success" - }); - + this.setState({ + loading: false, + dialog: "success" + }); }) .catch(error => { this.setState({ @@ -223,8 +217,7 @@ class BuyQuotaCompoment extends Component { this.setState({ loading: true }); - API - .get("/vas/redeem/" + this.state.redeemCode,) + API.get("/vas/redeem/" + this.state.redeemCode) .then(response => { this.setState({ loading: false, @@ -261,11 +254,16 @@ class BuyQuotaCompoment extends Component { API.post("/vas/order", { action: packType, method: this.state.packPayMethod, - id:packType === "score" ? 1 :(packType === "pack" - ? this.state.packs[this.state.selectedPack].id - : this.state.groups[this.state.selectedGroup].id) - , - num: packType === "score" ?parseInt(this.state.scoreNum) :parseInt(this.state.times) + id: + packType === "score" + ? 1 + : packType === "pack" + ? this.state.packs[this.state.selectedPack].id + : this.state.groups[this.state.selectedGroup].id, + num: + packType === "score" + ? parseInt(this.state.scoreNum) + : parseInt(this.state.times) }) .then(response => { if (!response.data.payment) { @@ -275,6 +273,26 @@ class BuyQuotaCompoment extends Component { }); return; } + if (response.data.qr_code) { + if (pathHelper.isMobile()) { + window.open(response.data.qr_code); + this.setState({ loading: false }); + } else { + this.setState({ + loading: false, + dialog: "qr", + payment: { + type: this.state.packPayMethod, + img: response.data.qr_code + } + }); + } + + this.IntervalId = window.setInterval(() => { + this.querryLoop(response.data.id); + }, 3000); + } + // if (response.data.error === 1) { // this.setState({ // loading: false @@ -325,11 +343,10 @@ class BuyQuotaCompoment extends Component { }; querryLoop = id => { - axios - .get("/Buy/querryStatus?id=" + id) + API + .get("/vas/order/" + id) .then(response => { - var data = eval("(" + response.data + ")"); - if (data.status === 1) { + if (response.data === 1) { this.setState({ dialog: "success" }); @@ -353,7 +370,7 @@ class BuyQuotaCompoment extends Component { this.state.packPayMethod === "score" ? null : this.state.packPayMethod - }); + }); this.setState({ value }); }; @@ -401,101 +418,99 @@ class BuyQuotaCompoment extends Component { render() { const { classes } = this.props; - const methodSelect = (