import React, {Component} from 'react'; import {Layout, Menu, Button, Spin, Icon, LocaleProvider} from 'antd'; import {BrowserRouter as Router, Route, Link, Switch, Redirect} from "react-router-dom"; import {Query} from "react-apollo"; import gql from "graphql-tag"; import moment from 'moment'; import 'moment/locale/zh-cn'; import {FormattedMessage} from 'react-intl'; import zhCN from 'antd/lib/locale-provider/zh_CN'; import WechatService from "./wechatService/WechatService"; import QuantService from "./quantService/QuantService"; import TrialCase from "./graphqlService/trialCase/TrialCase"; import UserCreate from "./graphqlService/userCreate/UserCreate"; import Login from "../login/Login"; import './graphqlService/common/graphql/index.css'; import './index.css' import Create from "./graphqlService/common/schema/Create"; import WxCreate from "./wechatService/WxCreate"; import {SHOW_ALL_SCHEMA, SHOW_ALL_WXCONFIG} from "../gql"; import axios from 'axios'; import {getCookie} from "../cookie"; axios.defaults.withCredentials = true; const {SubMenu} = Menu; const {Header, Sider} = Layout; moment.locale('en'); class App extends Component { constructor(props) { super(props); this.state = { menuLevel1: "graphql-service", sideBar: "ecommerce", collapsed: false, inlineCollapsed: false, language: props.language, locale: props.language === "中文" ? zhCN : undefined, languageButton: props.language === "中文" ? "English" : "中文", visible: false, wxVisible: false }; } componentWillMount() { let urlList = window.location.pathname.split("/"); let urlListLength = urlList.length; if (urlListLength > 2) { this.setState({menuLevel1: urlList[1]}); if (urlList[3] !== 'index') { this.setState({sideBar: urlList[3]}); } } } onCollapse = (collapsed) => { this.setState({collapsed}); }; switchMenu = (menuName, e) => { this.setState({ [menuName]: e.key, }); }; switchMenuTab = (menuName, e) => { this.setState({ [menuName]: e.key, }); if (e.key === "graphql-service") { this.setState({sideBar: "ecommerce"}); } }; switchSidebar = (value) => { this.setState({ sideBar: value, }); }; switchMenuLevel = (menuName, value) => { this.setState({ [menuName]: value, }); }; showModal = () => { this.setState({ visible: true, }); }; wxShowModal = () => { this.setState({ wxVisible: true, }); }; hideModal = () => { this.setState({ visible: false, }); }; wxHideModal = () => { this.setState({ wxVisible: false, }); }; changeLocale = (e) => { e.stopPropagation(); let {language} = this.state; // console.log('app language',language); let changeLanguage = language === "中文" ? "English" : "中文"; let local = language === "中文" ? undefined : zhCN; let languageButton = language === "中文" ? "中文" : "English"; sessionStorage.setItem("language", changeLanguage); this.props.changeLanguage(changeLanguage); this.setState({ language: changeLanguage, locale: local, languageButton: languageButton }); if (!local) { moment.locale('en'); } else { moment.locale('zh-cn'); } }; render() { const {locale, languageButton, visible, wxVisible} = this.state; return (
this.setState({menuLevel1: "graphql-service", sideBar: "ecommerce"})}>
this.switchMenuTab('menuLevel1', e)} >
{(() => { switch (this.state.menuLevel1) { case 'graphql-service': return ( ); case 'wechat-service': return ( ); case 'quant-service': return ( this.switchMenu('sideBar', e)} selectedKeys={[this.state.sideBar]} style={{ borderRight: 0, overflow: 'auto', height: '100vh', left: '0', width: '200px', position: 'fixed' }} > Case Show}> quant case Instructions ); case 'user': return ( this.switchMenu('sideBar', e)} selectedKeys={[this.state.sideBar]} style={{ borderRight: 0, overflow: 'auto', height: '100vh', left: '0', width: '200px', position: 'fixed' }} > Account center Cloud settings ); default: return ( ); } })()}
); } } export default App; class GraphqlSidebar extends Component { constructor(props) { super(props); this.state = { userID: getCookie('user_id'), } } render() { return ( { ({loading, error, data}) => { // console.log('user schema data',data); if (loading) return ; if (error) return 'error!'; localStorage.setItem('ecommerce', data.caseSchema.find(obj => obj.schemaName === 'ecommerce').schemaData); localStorage.setItem('subscribe', data.caseSchema.find(obj => obj.schemaName === 'subscribe').schemaData); localStorage.setItem('bills', data.caseSchema.find(obj => obj.schemaName === 'bills').schemaData); return ( this.props.switchMenu('sideBar', e)} selectedKeys={[this.props.sideBar]} style={{ borderRight: 0, overflow: 'auto', height: '100vh', left: '0', width: '200px', position: 'fixed' }} > Case Show}> { data.caseSchema.map((schema) => {schema.schemaName} ) } Create My Create}> { data.userSchema.map((schema) => {schema.schemaName} ) } Instructions ) } } ) } } class WxConfigSiderbar extends Component { constructor(props) { super(props); this.state = { userID: getCookie('user_id'), } } render() { return ( { ({loading, error, data}) => { if (loading) return ; if (error) return 'error!'; return ( this.props.switchMenu('sideBar', e)} selectedKeys={[this.props.sideBar]} style={{ borderRight: 0, overflow: 'auto', height: '100vh', left: '0', width: '200px', position: 'fixed' }} > Case Show}> { data.caseWxConfig.map((config) => {config.appName} ) } Create My Create}> { data.userWxConfig.map((config) => {config.appName} ) } Instructions ) } } ) } }