App.js 5.9 KB

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