App.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import React, {Component} from 'react';
  2. import {ActivityIndicator} from 'antd-mobile';
  3. import './App.css';
  4. import Manage from "./page/manage/Manage";
  5. import Customer from './page/customer/Customer';
  6. import {getCookie} from "./cookie";
  7. // import {setCookie} from "./cookie";
  8. import {userbyprops, createuser, userbypropsNum} from "./gql";
  9. import {Query} from "react-apollo";
  10. import gql from "graphql-tag";
  11. import {request} from 'graphql-request'
  12. import {graphqlFC} from './config';
  13. import {idGen} from "./func";
  14. class App extends Component {
  15. constructor(props) {
  16. super(props);
  17. this.state = {
  18. }
  19. }
  20. componentWillMount() {
  21. // 本地开发
  22. // 管理员
  23. // setCookie('openid', 'o2fcFvxE5nCQSb4BBHaB4kXcikSE');
  24. // 我
  25. // setCookie('openid', 'o2fcFv6Rh2-4rCh3d5_1uCWCT5Yc');
  26. // 用户
  27. // setCookie('openid', 'o2fcFv-h_CFKkNdEYgNkNp0Jt5TA');
  28. // 微信版
  29. let openid = getCookie("openid");
  30. console.log('get openid', openid);
  31. if (!openid) {
  32. window.location.href = "/subscribe";
  33. }
  34. }
  35. render() {
  36. let openid = getCookie("openid");
  37. return (
  38. <div className="App">
  39. <Query query={gql(userbypropsNum)} variables={{}}>
  40. {
  41. ({loading, error, data}) => {
  42. if (loading) {
  43. return (
  44. <div className="loading">
  45. <div className="align">
  46. <ActivityIndicator text="Loading..." size="large"/>
  47. </div>
  48. </div>
  49. )
  50. }
  51. if (error) {
  52. return 'error!';
  53. }
  54. let adminFist = false;
  55. if (data.userbyprops.length === 0) {
  56. adminFist = true;
  57. }
  58. return (
  59. <Query query={gql(userbyprops)} variables={{openid}}>
  60. {
  61. ({loading, error, data}) => {
  62. if (loading) {
  63. return (
  64. <div className="loading">
  65. <div className="align">
  66. <ActivityIndicator text="Loading..." size="large"/>
  67. </div>
  68. </div>
  69. )
  70. }
  71. if (error) {
  72. return 'error!';
  73. }
  74. let user;
  75. let userQueryNum = data.userbyprops.length;
  76. if (userQueryNum > 1) {
  77. user = {id: '', admin: 'false'};
  78. console.log('openid 出现多于一个');
  79. } else if (userQueryNum === 0) {
  80. let userObj = {
  81. id: idGen('user'),
  82. admin: adminFist ? 'true' : 'false',
  83. email: '',
  84. updatedAt: '',
  85. password: '',
  86. telephone: '',
  87. nickname: '',
  88. username: '',
  89. createdAt: new Date().getTime(),
  90. openid
  91. };
  92. request(graphqlFC, createuser, userObj).then(res => {
  93. console.log('注册成功');
  94. user = userObj
  95. });
  96. console.log('openid 为 0,尚未注册')
  97. } else {
  98. user = data.userbyprops[0];
  99. }
  100. let userID = user.id;
  101. let admin = user.admin;
  102. return (
  103. <div style={{position: 'fixed', height: '100%', width: '100%', top: 0}}>
  104. {
  105. admin === 'true' ?
  106. <Manage userID={userID}/>
  107. :
  108. <Customer userID={userID}/>
  109. }
  110. </div>
  111. )
  112. }
  113. }
  114. </Query>
  115. )
  116. }
  117. }
  118. </Query>
  119. </div>
  120. );
  121. }
  122. }
  123. export default App;