index.tsx 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import './index.less'
  2. import React, { useEffect, useState } from "react";
  3. import { Link, useHistory } from 'react-router-dom';
  4. import kemu1 from './../../assets/images/ke_mu1.png'
  5. import kemu2 from './../../assets/images/ke_mu2.png'
  6. import kemu3 from './../../assets/images/ke_mu3.png'
  7. import kemu4 from './../../assets/images/ke_mu4.png'
  8. import blueArrow from './../../assets/images/更多@2x.png'
  9. import api from '~/api'
  10. import road from './../../assets/images/road.png'
  11. import WX from "weixin-js-sdk-ts";
  12. export const Home: React.FC = (props: any) => {
  13. const [list, setList] = useState([{
  14. image: kemu1,
  15. title: "科目一"
  16. }, {
  17. image: kemu2,
  18. title: "科目二"
  19. }, {
  20. image: kemu3,
  21. title: "科目三"
  22. }, {
  23. image: kemu4,
  24. title: "科目四"
  25. }])
  26. const [userInfo, setUserInfo] = useState({ "openid": "", "nickname": "未知用户", "sex": "0", "province": "", "city": "", "country": "", "headimgurl": "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKZYiaibphiayqRhARSnicqI2bHNYWfnuGTDLagIUfNSncS5H8m097t5qSHwkGeRLn8D0uV14ACfibVCZg/132", "privilege": [], "unionid": "" })
  27. const wxPay = () => {
  28. api.studentWxGzhPrepareOrder({
  29. "foreType": 2,
  30. "goodsId": 5,
  31. "goodsType": 1,
  32. "phoneType": 2
  33. }).then(res=>{
  34. console.log(res.data.data)
  35. WX.chooseWXPay({appId:'wx457ba48e0801c0b6',...res.data.data})
  36. })
  37. // wx.chooseWXPay()
  38. }
  39. useEffect(() => {
  40. document.title = ''
  41. let query = new URLSearchParams(window.location.search)
  42. if (query.get("state") == 'LOGIN') {
  43. api.loginGzhcode({
  44. authorizationCode: query.get("code") || ""
  45. }).then(res => {
  46. window.localStorage.setItem("token", res.data.data.token)
  47. window.localStorage.setItem("userInfo", JSON.stringify(res.data.data.thirdResult))
  48. window.location.replace('/')
  49. console.log(res.data.data.token)
  50. })
  51. }
  52. else {
  53. api.studentUserInfo().then(res => {
  54. })
  55. }
  56. setUserInfo(JSON.parse(window.localStorage.getItem('userInfo') || '{"openid":"","nickname":"未知用户","sex":"0","province":"","city":"","country":"","headimgurl":"https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKZYiaibphiayqRhARSnicqI2bHNYWfnuGTDLagIUfNSncS5H8m097t5qSHwkGeRLn8D0uV14ACfibVCZg/132","privilege":[],"unionid":""}'
  57. ) as {
  58. openid: string;
  59. nickname: string;
  60. sex: string;
  61. province: string;
  62. city: string;
  63. country: string;
  64. headimgurl: string;
  65. privilege: never[];
  66. unionid: string;
  67. })
  68. }, [])
  69. return (
  70. <div className="Home">
  71. <div className='user'>
  72. <img className='head' src={userInfo.headimgurl}></img>
  73. <div className='nickname'>{userInfo.nickname}</div>
  74. </div>
  75. <div className='road'>
  76. <div className='first'>
  77. <span className='left'>科三真实考场</span>
  78. <span className='right'>我的考场
  79. <img src={blueArrow}></img>
  80. </span>
  81. </div>
  82. <div className='sencond'>
  83. <div className='button'>社会化驾驶人考场</div>
  84. <img style={{
  85. marginTop: '0.66vw',
  86. width: '4.8vw'
  87. }} src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAOCAYAAABHN77IAAAAAXNSR0IArs4c6QAAATNJREFUSEvF1LtOAkEUBuD/zIISkWjwBfQV9B1kqQ0VFlrSUOClIyGh81bYUGqhlbFm13fQV9AXkGi4BJWdY2bjGlcXBmVHptvJzJlvi/8n+7izBVCDCClMcTGjD3CJlCF30F2lBF0TeHkaJgY98IA33P30nQ/yUSfPWYHEBYD8P6OaEoNNt7LQUu9+gnxEjYWd6VWJUAVgGYZ5zKg77bk6aiSDt8Kgj137qJ+D8C4JWDKBYuAR0io6uyn3+/xIkDq0fvi0YonkFQhrsaIYt558K9zsLd5HzR0KUofzpzyL124DgrZjQUk+w0y61CzTy7B5I0HBpUmrIYi0szN/rvuxsUCTVMPXSOswP1OmufGHaghFOnbQL6ohMtJmQJpqGBVpo6DIatBE2jgoVA3qQxPpcUDvkluDONeclCUAAAAASUVORK5CYII='></img>
  88. </div>
  89. <div className='third'>
  90. <img className='left' src={road}></img>
  91. <div className='right'>
  92. <span>
  93. <div>熟记考场</div>
  94. <div>考试不用慌</div>
  95. </span>
  96. <div onClick={wxPay} className='look'>去看考场</div>
  97. </div>
  98. </div>
  99. </div>
  100. <div className="list">
  101. {
  102. list.map((item, index) => {
  103. return (
  104. <Link key={index} to={
  105. './videoList/' + (index + 1)
  106. }>
  107. <div className="list-item" key={index}>
  108. <img className="list-item-img" src={item.image} alt="图片" />
  109. <span className="list-item-text top30 left60 ">{item.title}</span>
  110. <span className="list-item-text top88 left20">《视频讲解》</span>
  111. </div>
  112. </Link>
  113. )
  114. })
  115. }
  116. </div>
  117. </div>
  118. )
  119. }