import React, {Component} from 'react'; import {Layout, Menu, Button, Spin, Icon, LocaleProvider, Dropdown, Avatar, Badge} 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 QuantService from "./quantService/QuantService"; import TrialCase from "./graphqlService/TrialCase"; import UserCreate from "./graphqlService/UserCreate"; import WxTrialCase from "./wechatService/WxTrialCase"; import WxUserCreate from "./wechatService/WxUserCreate"; import Login from "../../login/Login"; import Ticket from '../../ticket/Ticket'; import './graphqlService/component/graphql/index.css'; import './index.css' import Create from "./graphqlService/component/schema/Create"; import WxCreate from "./wechatService/wxCreate/WxCreate"; import {CASE_AND_PROJECT, GET_USER} from "../../gql"; import axios from 'axios'; import {getCookie, setCookie} from "../../cookie"; import {logoutUrl} from "../../config"; import Graphiql from "./common/Graphiql"; axios.defaults.withCredentials = true; const {SubMenu} = Menu; const {Header, Sider} = Layout; moment.locale('en'); class DevelopVersion 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, userID: '', avatar: '' }; } 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]}); } } let userID = getCookie('user_id'); if (userID === undefined || '') { axios.get(this.state.getIdUrl) .then((res) => { if (res.data !== '') { setCookie("user_id", res.data); this.setState({ userID: res.data }) } }) .catch(function (err) { console.log(err); }); } else { this.setState({ userID }) } } 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; console.log(language); 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)} > { this.state.userID === '' ? : }
{(() => { switch (this.state.menuLevel1) { case 'graphql-service': return ( ); case 'wechat-service': return ( ); case 'quant-service': return ( this.switchMenu('sideBar', e)} selectedKeys={['quant-service']} style={{ borderRight: 0, overflow: 'auto', height: '100vh', left: '0', width: '200px', position: 'fixed' }} > }> quant case ); default: return ( ); } })()}
); } } export default DevelopVersion; class GraphqlSidebar extends Component { constructor(props) { super(props); this.state = { userID: getCookie('user_id'), } } render() { return ( { ({loading, error, data}) => { if (loading) return ( ); if (error) return 'error!'; // console.log('CASE_AND_PROJECT data', data); data.caseProject.forEach((project) => { switch (project.schema_id.schemaName) { case 'ecommerce' : localStorage.setItem('ecommerce', project.schema_id.schemaData); break; case 'order': localStorage.setItem('order', project.schema_id.schemaData); break; case 'bills': localStorage.setItem('bills', project.schema_id.schemaData); break; default: break; } }); return ( this.props.switchMenu('sideBar', e)} selectedKeys={[this.props.sideBar]} style={{ borderRight: 0, overflow: 'auto', height: '100vh', left: '0', width: '200px', position: 'fixed' }} > }> { data.caseProject.map((project) => ) } }> { data.project.map((project) => {project.projectName} ) } ) } } ) } } class WxConfigSiderbar extends Component { constructor(props) { super(props); this.state = { userID: getCookie('user_id'), } } render() { return ( { ({loading, error, data}) => { // console.log('CASE_WXCONFIG_AND_PROJECT data', 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' }} > }> { data.caseProject.map((project) => { if (project) { let appName = project.projectName; let configID = project.wxConfig_id.id; let projectID = project.id; return ( ) } return false; }) } }> { data.project.map((project) => { if (project) { let appName = project.projectName; let configID = project.wxConfig_id.id; let projectID = project.id; return ( {appName} ) } return false; }) } ) } } ) } } class User extends Component { constructor(props) { super(props); this.state = { show: false } } logout = () => { axios.get(logoutUrl) .then((res) => { console.log('logout success',res); setCookie("user_id", ''); }) .catch((err) => { }); }; render() { return ( { ({loading, error, data}) => { if (loading) { return } if (error) { return 'error!'; } let user = data.user_by_id; if (user !== null) { const menu = (

{user.nickname}

{user.email}

{ e.preventDefault(); this.props.changeLocale(e) }}>{this.props.languageButton}
{ e.preventDefault(); this.logout(); }}>
); return (
{}}>
{/**/}
) } } }
) } }