kulley 7 роки тому
батько
коміт
ae5d99abd5
57 змінених файлів з 802 додано та 793 видалено
  1. 1 1
      public/index.html
  2. 32 671
      src/app/App.jsx
  3. 0 53
      src/app/Home.jsx
  4. 1 1
      src/app/basicVersion/BasicVersion.jsx
  5. 3 1
      src/app/basicVersion/exampleShow/ExampleShow.jsx
  6. 692 0
      src/app/developVersion/DevelopVersion.jsx
  7. 0 0
      src/app/developVersion/common/Graphiql.jsx
  8. 0 0
      src/app/developVersion/common/deploy/Deploy.jsx
  9. 0 0
      src/app/developVersion/common/deploy/ali/AliConfig.jsx
  10. 0 0
      src/app/developVersion/common/deploy/amazon/AmazonConfig.js
  11. 0 0
      src/app/developVersion/common/deploy/huawei/HuaweiConfig.jsx
  12. 0 0
      src/app/developVersion/common/deploy/index.css
  13. 3 3
      src/app/developVersion/common/deploy/tencent/TencentConfig.js
  14. 2 2
      src/app/developVersion/common/deploy/tencent/apiGroupCard/APIGroupCardFetch.js
  15. 4 4
      src/app/developVersion/common/deploy/tencent/apiGroupCard/APIGroupCardRender.js
  16. 2 2
      src/app/developVersion/common/deploy/tencent/apiPathCard/APIPathCardFetch.js
  17. 3 3
      src/app/developVersion/common/deploy/tencent/apiPathCard/APIPathCardRender.js
  18. 2 2
      src/app/developVersion/common/deploy/tencent/deployCard/DeployCardFetch.js
  19. 4 4
      src/app/developVersion/common/deploy/tencent/deployCard/DeployCardRender.js
  20. 2 2
      src/app/developVersion/common/deploy/tencent/notificationCard/NotificationCardFetch.js
  21. 3 3
      src/app/developVersion/common/deploy/tencent/notificationCard/NotificationCardRender.js
  22. 0 0
      src/app/developVersion/common/manage/AliyunResult.js
  23. 0 0
      src/app/developVersion/common/manage/AmazonResult.js
  24. 0 0
      src/app/developVersion/common/manage/Manage.jsx
  25. 2 2
      src/app/developVersion/common/manage/TencentResult.js
  26. 1 1
      src/app/developVersion/graphqlService/TrialCase.jsx
  27. 1 1
      src/app/developVersion/graphqlService/UserCreate.jsx
  28. 3 3
      src/app/developVersion/graphqlService/component/application/Application.js
  29. 0 0
      src/app/developVersion/graphqlService/component/caseMetabase/CaseMetabase.jsx
  30. 0 0
      src/app/developVersion/graphqlService/component/caseMetabase/index.css
  31. 1 1
      src/app/developVersion/graphqlService/component/generateJs/GenerateJs.jsx
  32. 0 0
      src/app/developVersion/graphqlService/component/generateJs/index.css
  33. 1 1
      src/app/developVersion/graphqlService/component/graphql/Graphql.jsx
  34. 0 0
      src/app/developVersion/graphqlService/component/graphql/index.css
  35. 3 3
      src/app/developVersion/graphqlService/component/schema/Create.js
  36. 4 5
      src/app/developVersion/graphqlService/component/schema/Schema.jsx
  37. 4 4
      src/app/developVersion/graphqlService/component/schema/Table.js
  38. 0 0
      src/app/developVersion/graphqlService/component/schema/index.css
  39. 0 0
      src/app/developVersion/graphqlService/dataAnalysis/DataAnalysis.jsx
  40. 0 0
      src/app/developVersion/graphqlService/dataAnalysis/metabase/Metabase.jsx
  41. 0 0
      src/app/developVersion/graphqlService/dataStorage/DataStorage.jsx
  42. 0 0
      src/app/developVersion/graphqlService/dataStorage/databaseSetting/DatabaseSetting.jsx
  43. 1 1
      src/app/developVersion/index.css
  44. 0 0
      src/app/developVersion/quantService/QuantService.jsx
  45. 0 0
      src/app/developVersion/quantService/quantConfig/QuantConfig.jsx
  46. 0 0
      src/app/developVersion/quantService/quantManage/QuantManage.jsx
  47. 0 0
      src/app/developVersion/wechatService/WxTrialCase.js
  48. 1 1
      src/app/developVersion/wechatService/WxUserCreate.js
  49. 2 2
      src/app/developVersion/wechatService/wxConfig/WxConfig.jsx
  50. 0 0
      src/app/developVersion/wechatService/wxConfig/index.css
  51. 3 3
      src/app/developVersion/wechatService/wxCreate/WxCreate.js
  52. 0 0
      src/app/developVersion/wechatService/wxCreate/index.css
  53. 7 7
      src/case/ShopApp/src/App.js
  54. 1 1
      src/case/ShopApp/src/components/HomePage/HomePage.jsx
  55. 3 3
      src/index.js
  56. 5 1
      src/language/en_US.js
  57. 5 1
      src/language/zh_CN.js

+ 1 - 1
public/index.html

@@ -17,7 +17,7 @@
         document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>');
       }
     </script>
-    <title>React App</title>
+    <title>React DevelopVersion</title>
   </head>
   <body>
 

+ 32 - 671
src/app/App.jsx

@@ -1,692 +1,53 @@
 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";
+import {Layout,Button} from 'antd';
+import {withRouter} from "react-router-dom";
 
-axios.defaults.withCredentials = true;
-
-const {SubMenu} = Menu;
-const {Header, Sider} = Layout;
-moment.locale('en');
+import './developVersion/index.css';
+const {Header, Footer, Content} = Layout;
 
 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,
-            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;
-        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 (
-            <Layout style={{minHeight: '100vh'}}>
-                <Header className="header" style={{position: 'fixed', zIndex: 1, width: '100%'}}>
-                    <Link to="/"
-                          onClick={() => this.setState({menuLevel1: "graphql-service", sideBar: "ecommerce"})}>
+            <div>
+                <Layout className="layout">
+                    <Header>
                         <div className="logo-wrapper">
                             <div className='logo'/>
                         </div>
-                    </Link>
-                    <Menu
-                        theme="dark"
-                        mode="horizontal"
-                        selectedKeys={[this.state.menuLevel1]}
-                        style={{lineHeight: '64px'}}
-                        onClick={(e) => this.switchMenuTab('menuLevel1', e)}
-                    >
-                        <Menu.Item key="graphql-service">
-                            <Link to="/developer/graphql-service/trial-case/index"><FormattedMessage
-                                id="Graphql Service"/></Link>
-                        </Menu.Item>
-                        <Menu.Item key="wechat-service">
-                            <Link to="/developer/wechat-service/trial-case/index"><FormattedMessage
-                                id="Wechat Service"/></Link>
-                        </Menu.Item>
-                        <Menu.Item key="quant-service">
-                            <Link to="/developer/quant-service/trial-case/index"><FormattedMessage id="Quantization Service"/></Link>
-                        </Menu.Item>
-                    </Menu>
-
-                    {
-                        this.state.userID === '' ?
-                            <Link to="/developer/login">
-                                <Button className='login-button' type='primary'
-                                        onClick={() => this.switchMenuLevel('menuLevel1', 'user')}>
-                                    <FormattedMessage id="Login"/></Button>
-                            </Link>
-                            :
-                            <User
-                                userID={this.state.userID}
-                                languageButton={this.state.languageButton}
-                                changeLocale={this.changeLocale}
-                                switchMenuLevel={this.switchMenuLevel}
-                            />
-                    }
-
-                </Header>
-
-
-                {(() => {
-                    switch (this.state.menuLevel1) {
-                        case 'graphql-service':
-                            return (
-                                <Sider
-                                    width={200}
-                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
-                                    collapsible
-                                    collapsed={this.state.collapsed}
-                                    onCollapse={this.onCollapse}
-                                >
-                                    <GraphqlSidebar inlineCollapsed={this.state.inlineCollapsed}
-                                                    sideBar={this.state.sideBar} switchMenu={this.switchMenu}
-                                                    showModal={this.showModal}/>
-
-                                </Sider>
-                            );
-                        case 'wechat-service':
-                            return (
-                                <Sider
-                                    width={200}
-                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
-                                    collapsible
-                                    collapsed={this.state.collapsed}
-                                    onCollapse={this.onCollapse}
-                                >
-                                    <WxConfigSiderbar inlineCollapsed={this.state.inlineCollapsed}
-                                                      sideBar={this.state.sideBar} switchMenu={this.switchMenu}
-                                                      wxShowModal={this.wxShowModal}/>
-                                </Sider>
-                            );
-                        case 'quant-service':
-                            return (
-                                <Sider
-                                    width={200}
-                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
-                                    collapsible
-                                    collapsed={this.state.collapsed}
-                                    onCollapse={this.onCollapse}
-                                >
-                                    <Menu
-                                        theme="dark"
-                                        mode="inline"
-                                        inlineCollapsed={this.state.inlineCollapsed}
-                                        defaultSelectedKeys={['quant-service']}
-                                        defaultOpenKeys={['trial-case']}
-                                        // openKeys={['cloud-function']}
-                                        onClick={(e) => this.switchMenu('sideBar', e)}
-                                        selectedKeys={['quant-service']}
-                                        style={{
-                                            borderRight: 0,
-                                            overflow: 'auto',
-                                            height: '100vh',
-                                            left: '0',
-                                            width: '200px',
-                                            position: 'fixed'
-                                        }}
-                                    >
-                                        <SubMenu key="trial-case"
-                                                 title={<span><Icon type="appstore" theme="twoTone"/>
-                                                         <span><FormattedMessage id="Case Show"/></span></span>}>
-                                            <Menu.Item key="quant-service">
-                                                <Link to="/developer/quant-service/trial-case/quant case">quant case</Link>
-                                            </Menu.Item>
-                                        </SubMenu>
-
-                                        <Menu.Item key="instructions">
-                                            <a href="https://ioobot-document.netlify.com/" title="instructions"
-                                               target="instructions">
-                                                <Icon type="file-text" theme="twoTone"/>
-                                                <span><FormattedMessage id="Instructions"/></span>
-                                            </a>
-                                        </Menu.Item>
-                                    </Menu>
-                                </Sider>
-                            );
-                        case 'user':
-                            return (
-                                <Sider
-                                    width={200}
-                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
-                                    collapsible
-                                    collapsed={this.state.collapsed}
-                                    onCollapse={this.onCollapse}
-                                >
-                                    <Menu
-                                        theme="dark"
-                                        defaultSelectedKeys={['cloud-settings']}
-                                        onClick={(e) => this.switchMenu('sideBar', e)}
-                                        selectedKeys={[this.state.sideBar]}
-                                        style={{
-                                            borderRight: 0,
-                                            overflow: 'auto',
-                                            height: '100vh',
-                                            left: '0',
-                                            width: '200px',
-                                            position: 'fixed'
-                                        }}
-                                    >
-                                        <Menu.Item key="account">
-                                            <Icon type="setting" theme="twoTone"/>
-                                            <span><FormattedMessage id="Account center"/></span>
-                                            <Link to="/developer/login/account"/>
-                                        </Menu.Item>
-
-                                        <Menu.Item key="cloud-settings">
-                                            <Icon type="cloud" theme="twoTone"/>
-                                            <span><FormattedMessage id="Cloud settings"/></span>
-                                            <Link to="/developer/login/cloud"/>
-                                        </Menu.Item>
-                                    </Menu>
-                                </Sider>
-                            );
-                        case 'ticket':
-                            return (
-                                ''
-                            );
-                        default:
-                            return (
-                                <Sider
-                                    width={200}
-                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
-                                    collapsible
-                                    collapsed={this.state.collapsed}
-                                    onCollapse={this.onCollapse}
-                                >
-                                    <GraphqlSidebar inlineCollapsed={this.state.inlineCollapsed}
-                                                    sideBar={this.state.sideBar} switchMenu={this.switchMenu}
-                                                    showModal={this.showModal}/>
-                                </Sider>
-                            );
-                    }
-                })()}
-                <Create visible={visible} hideModal={this.hideModal} switchSidebar={this.switchSidebar}/>
-                <WxCreate visible={wxVisible} hideModal={this.wxHideModal} switchSidebar={this.switchSidebar}/>
-
-                <LocaleProvider locale={locale}>
-                    <Layout style={{marginTop: '64px', zIndex: '0'}}
-                            key={locale ? locale.locale : 'en'/* Have to refresh for production environment */}>
-                        <Switch>
-                            <Route path="/developer" exact component={TrialCase}/>
-                            <Route path="/developer/graphql-service/trial-case/:case" component={TrialCase}/>
-                            <Route path="/developer/graphql-service/my-create/:case" component={UserCreate}/>
-                            <Route path="/developer/wechat-service/trial-case/:case" component={WxTrialCase}/>
-                            <Route path="/developer/wechat-service/my-create/:case" component={WxUserCreate}/>
-                            <Route path="/developer/quant-service/:sidebar/:case" component={QuantService}/>
-                            <Route path="/developer/login/:setting" component={Login}/>
-                            <Route path="/developer/login" component={Login}/>
-                            <Route path="/developer/ticket" component={Ticket}/>
-                            <Route path="/developer/graphiql" component={Graphiql}/>
-                            <Redirect path="*" to="/"/>
-                        </Switch>
-                    </Layout>
-                </LocaleProvider>
-            </Layout>
-        );
-    }
-}
-
-export default App;
-
-class GraphqlSidebar extends Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            userID: getCookie('user_id'),
-        }
-    }
-
-    render() {
-        return (
-            <Query query={gql(CASE_AND_PROJECT)} variables={{projectType: 'graphql', user_id: this.state.userID}}>
-                {
-                    ({loading, error, data}) => {
-                        if (loading) return <Spin style={{marginLeft: 3}}/>;
-                        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 (
-                            <Menu
-                                theme="dark"
-                                mode="inline"
-                                inlineCollapsed={this.props.inlineCollapsed}
-                                defaultSelectedKeys={['ecommerce']}
-                                defaultOpenKeys={['trial-case', 'my-create']}
-                                // openKeys={['trial-case', 'my-create']}
-                                onClick={(e) => this.props.switchMenu('sideBar', e)}
-                                selectedKeys={[this.props.sideBar]}
-                                style={{
-                                    borderRight: 0,
-                                    overflow: 'auto',
-                                    height: '100vh',
-                                    left: '0',
-                                    width: '200px',
-                                    position: 'fixed'
-                                }}
-                            >
-                                <SubMenu
-                                    key="trial-case"
-                                    title={<span><Icon type="appstore" theme="twoTone"/><span><FormattedMessage
-                                        id="Case Show"/></span></span>}>
-                                    {
-                                        data.caseProject.map((project) =>
-                                            <Menu.Item key={project.projectName}>
-                                                <Link to={{
-                                                    pathname: `/developer/graphql-service/trial-case/${project.projectName}`,
-                                                    state: {
-                                                        schemaName: project.projectName,
-                                                        schemaID: project.schema_id.id,
-                                                        projectID: project.id
-                                                    }
-                                                }}><FormattedMessage id={project.projectName}/></Link>
-                                            </Menu.Item>)
-                                    }
-                                </SubMenu>
-
-                                <Menu.Item key="create-graphql" onClick={this.props.showModal}>
-                                    <Icon type="edit" theme="twoTone"/>
-                                    <span><FormattedMessage id="Create"/></span>
-                                    <Icon type="plus" style={{
-                                        position: 'absolute',
-                                        top: '35%',
-                                        right: '6px',
-                                        color: 'white'
-                                    }}/>
-                                </Menu.Item>
-
-                                <SubMenu
-                                    key="my-create"
-                                    title={<span><Icon type="user" theme="outlined"/><span><FormattedMessage
-                                        id="My Create"/></span></span>}>
-                                    {
-                                        data.project.map((project) =>
-                                            <Menu.Item key={project.projectName}>
-                                                <Link to={{
-                                                    pathname: `/developer/graphql-service/my-create/${project.projectName}`,
-                                                    state: {
-                                                        schemaName: project.projectName,
-                                                        schemaID: project.schema_id.id,
-                                                        projectID: project.id
-                                                    }
-                                                }}>{project.projectName}</Link>
-                                            </Menu.Item>)
-                                    }
-                                </SubMenu>
-
-                                <Menu.Item key="instructions">
-                                    <a href="https://ioobot-document.netlify.com/" title="instructions" target="_blank"
-                                       rel="noopener noreferrer">
-                                        <Icon type="file-text" theme="twoTone"/>
-                                        <span><FormattedMessage id="Instructions"/></span>
-                                    </a>
-                                </Menu.Item>
-
-                            </Menu>
-                        )
-                    }
-                }
-            </Query>
-        )
-    }
-}
-
-class WxConfigSiderbar extends Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            userID: getCookie('user_id'),
-        }
-    }
-
-    render() {
-        return (
-            <Query query={gql(CASE_AND_PROJECT)} variables={{projectType: 'wx', user_id: this.state.userID}}>
-                {
-                    ({loading, error, data}) => {
-                        // console.log('CASE_WXCONFIG_AND_PROJECT data', data);
-                        if (loading) return <Spin style={{marginLeft: 3}}/>;
-                        if (error) return 'error!';
-                        return (
-                            <Menu
-                                theme="dark"
-                                mode="inline"
-                                inlineCollapsed={this.props.inlineCollapsed}
-                                // defaultSelectedKeys={['my-wechat']}
-                                defaultOpenKeys={['trial-case', 'my-create']}
-                                // openKeys={['trial-case', 'my-create']}
-                                onClick={(e) => this.props.switchMenu('sideBar', e)}
-                                selectedKeys={[this.props.sideBar]}
-                                style={{
-                                    borderRight: 0,
-                                    overflow: 'auto',
-                                    height: '100vh',
-                                    left: '0',
-                                    width: '200px',
-                                    position: 'fixed'
-                                }}
-                            >
-                                <SubMenu key="trial-case" title={<span><Icon type="appstore" theme="twoTone"/>
-                                    <span><FormattedMessage id="Case Show"/></span>
-                                </span>}>
-                                    {
-                                        data.caseProject.map((project) => {
-                                            if (project) {
-                                                let appName = project.projectName;
-                                                let configID = project.wxConfig_id.id;
-                                                let projectID = project.id;
-                                                return (
-                                                    <Menu.Item key={appName}>
-                                                        <Link to={{
-                                                            pathname: `/developer/wechat-service/trial-case/${appName}`,
-                                                            state: {
-                                                                appName,
-                                                                configID,
-                                                                projectID
-                                                            }
-                                                        }}><FormattedMessage id={appName}/></Link>
-                                                    </Menu.Item>
-                                                )
-                                            }
-                                            return false;
-                                        })
-                                    }
-                                </SubMenu>
-
-                                <Menu.Item key="create-config" onClick={this.props.wxShowModal}>
-                                    <Icon type="edit" theme="twoTone"/>
-                                    <span><FormattedMessage id="Create"/></span>
-                                    <Icon type="plus" style={{
-                                        position: 'absolute',
-                                        top: '35%',
-                                        right: '6px',
-                                        color: 'white'
-                                    }}/>
-                                </Menu.Item>
-
-                                <SubMenu key="my-create" title={<span><Icon type="user" theme="outlined"/>
-                                    <span><FormattedMessage id="My Create"/></span>
-                                </span>}>
-                                    {
-                                        data.project.map((project) => {
-                                            if (project) {
-                                                let appName = project.projectName;
-                                                let configID = project.wxConfig_id.id;
-                                                let projectID = project.id;
-                                                return (
-                                                    <Menu.Item key={appName}>
-                                                        <Link to={{
-                                                            pathname: `/developer/wechat-service/my-create/${appName}`,
-                                                            state: {
-                                                                appName,
-                                                                configID,
-                                                                projectID
-                                                            }
-                                                        }}>{appName}</Link>
-                                                    </Menu.Item>
-                                                )
-                                            }
-                                            return false;
-                                        })
-                                    }
-                                </SubMenu>
-
-                                <Menu.Item key="instructions">
-                                    <a href="https://ioobot-document.netlify.com/" title="instructions" target="_blank"
-                                       rel="noopener noreferrer">
-                                        <Icon type="file-text" theme="twoTone"/>
-                                        <span><FormattedMessage id="Instructions"/></span>
-                                    </a>
-                                </Menu.Item>
-
-                            </Menu>
-
-                        )
-                    }
-                }
-            </Query>
+                    </Header>
+                    <Content style={{ padding: '30px 50px 0', minHeight: '780px' }}>
+                        <div className="home-btn">
+                            <Button type="primary" size='large'
+                                    style={{marginRight:'10px'}}
+                                    onClick={()=>{
+                                        this.props.history.push({
+                                            pathname: `/common`
+                                        })}}>用户版
+                            </Button>
+                            <Button size='large'
+                                    style={{marginLeft:'10px'}}
+                                    onClick={()=>{
+                                        this.props.history.push({
+                                            pathname: `/developer`
+                                        })}}>开发者版
+                            </Button>
+                        </div>
+                    </Content>
+                    <Footer style={{ textAlign: 'center' }}>
+                        All right ©2019 Created by Ioobot
+                    </Footer>
+                </Layout>
+            </div>
         )
     }
 }
 
-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 (
-            <Query query={gql(GET_USER)} variables={{id: this.props.userID}}>
-                {
-                    ({loading, error, data}) => {
-                        if (loading) {
-                            return <Spin style={{marginLeft: 3}}/>
-                        }
-                        if (error) {
-                            return 'error!';
-                        }
-                        let user = data.user_by_id;
-                        if (user !== null) {
-                            const menu = (
-                                <Menu className={'user-detail'}>
-                                    <Menu.Item className={'user-info'}>
-                                        <p className={'user-info-nickname'}>{user.nickname}</p>
-                                        <p className={'user-info-email'}>{user.email}</p>
-                                    </Menu.Item>
-                                    <Menu.Item>
-                                        <a href='https://www.ioobot.com' onClick={(e) => {
-                                            e.preventDefault();
-                                            this.props.changeLocale(e)
-                                        }}>{this.props.languageButton}</a>
-                                    </Menu.Item>
-                                    <Menu.Item>
-                                        <Link to="/developer/login">
-                                            <div onClick={() => this.props.switchMenuLevel('menuLevel1', 'user')}>
-                                                <FormattedMessage id="Account center"/>
-                                            </div>
-                                        </Link>
-                                    </Menu.Item>
-                                    <Menu.Item>
-                                        <Link to="/developer/ticket">
-                                            <div onClick={() => this.props.switchMenuLevel('menuLevel1', 'ticket')}>
-                                                <FormattedMessage id="Submit Support Ticket"/>
-                                            </div>
-                                        </Link>
-                                    </Menu.Item>
-                                    <Menu.Item className={'login-out'}>
-                                        <a href='https://www.ioobot.com' onClick={(e) => {
-                                            e.preventDefault();
-                                            this.logout();
-                                        }}><FormattedMessage id="exit"/></a>
-                                    </Menu.Item>
-                                </Menu>
-                            );
-                            return (
-                                <div className='login-nickname' onClick={()=>{}}>
-                                    <Dropdown overlay={menu} placement="bottomRight" trigger={['click']}>
-                                        <div>
-                                            <span style={{ marginRight: 5 }}>
-                                                <Badge dot><Avatar shape="user" icon="user" /></Badge>
-                                            </span>
-                                            {/*<Icon type="down" />*/}
-                                        </div>
-                                    </Dropdown>
-                                </div>
-                            )
-                        }
-                    }
-                }
-            </Query>
-        )
-    }
-}
+export default withRouter(App);

+ 0 - 53
src/app/Home.jsx

@@ -1,53 +0,0 @@
-import React, {Component} from 'react';
-import {FormattedMessage} from 'react-intl';
-import {Layout,Button} from 'antd';
-import {withRouter} from "react-router-dom";
-
-import './index.css';
-const {Header, Footer, Content} = Layout;
-
-class Home extends Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-
-        }
-    }
-
-    render() {
-        return (
-            <div>
-                <Layout className="layout">
-                    <Header>
-                        <div className="logo-wrapper">
-                            <div className='logo'/>
-                        </div>
-                    </Header>
-                    <Content style={{ padding: '30px 50px 0', minHeight: '780px' }}>
-                        <div className="home-btn">
-                            <Button type="primary" size='large'
-                                    style={{marginRight:'10px'}}
-                                    onClick={()=>{
-                                        this.props.history.push({
-                                            pathname: `/common`
-                                        })}}>用户版
-                            </Button>
-                            <Button size='large'
-                                    style={{marginLeft:'10px'}}
-                                    onClick={()=>{
-                                        this.props.history.push({
-                                            pathname: `/developer`
-                                        })}}>开发者版
-                            </Button>
-                        </div>
-                    </Content>
-                    <Footer style={{ textAlign: 'center' }}>
-                        All right ©2019 Created by Ioobot
-                    </Footer>
-                </Layout>
-            </div>
-        )
-    }
-}
-
-export default withRouter(Home);

+ 1 - 1
src/app/basicVersion/BasicVersion.jsx

@@ -3,7 +3,7 @@ import {FormattedMessage} from 'react-intl';
 import {Route, Link, Switch, Redirect} from "react-router-dom";
 import {Layout, Menu, Button, Spin, Icon, LocaleProvider, Dropdown, Avatar, Badge} from 'antd';
 
-import '../index.css';
+import '../developVersion/index.css';
 import ExampleShow from "./exampleShow/ExampleShow";
 import MyDeploy from "./myDeploy/MyDeploy";
 import Communication from "./communication/Communication";

+ 3 - 1
src/app/basicVersion/exampleShow/ExampleShow.jsx

@@ -31,7 +31,9 @@ class ExampleShow extends Component {
                         style={{ width: 300 }}
                         cover={<img alt="example" src="https://gw.alipayobjects.com/zos/rmsportal/JiqGstEfoWAOHiTxclqi.png" />}
                         actions={[<Icon type="setting" />, <Icon type="edit" />,
-                            <Button type="primary">部署</Button>
+                            <Button type="primary" onClick={()=>{
+                                console.log('部署')
+                            }}>部署</Button>
                         ]}
                     >
                         <Meta

+ 692 - 0
src/app/developVersion/DevelopVersion.jsx

@@ -0,0 +1,692 @@
+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;
+        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 (
+            <Layout style={{minHeight: '100vh'}}>
+                <Header className="header" style={{position: 'fixed', zIndex: 1, width: '100%'}}>
+                    <Link to="../"
+                          onClick={() => this.setState({menuLevel1: "graphql-service", sideBar: "ecommerce"})}>
+                        <div className="logo-wrapper">
+                            <div className='logo'/>
+                        </div>
+                    </Link>
+                    <Menu
+                        theme="dark"
+                        mode="horizontal"
+                        selectedKeys={[this.state.menuLevel1]}
+                        style={{lineHeight: '64px'}}
+                        onClick={(e) => this.switchMenuTab('menuLevel1', e)}
+                    >
+                        <Menu.Item key="graphql-service">
+                            <Link to="/developer/graphql-service/trial-case/index"><FormattedMessage
+                                id="Graphql Service"/></Link>
+                        </Menu.Item>
+                        <Menu.Item key="wechat-service">
+                            <Link to="/developer/wechat-service/trial-case/index"><FormattedMessage
+                                id="Wechat Service"/></Link>
+                        </Menu.Item>
+                        <Menu.Item key="quant-service">
+                            <Link to="/developer/quant-service/trial-case/index"><FormattedMessage id="Quantization Service"/></Link>
+                        </Menu.Item>
+                    </Menu>
+
+                    {
+                        this.state.userID === '' ?
+                            <Link to="/developer/login">
+                                <Button className='login-button' type='primary'
+                                        onClick={() => this.switchMenuLevel('menuLevel1', 'user')}>
+                                    <FormattedMessage id="Login"/></Button>
+                            </Link>
+                            :
+                            <User
+                                userID={this.state.userID}
+                                languageButton={this.state.languageButton}
+                                changeLocale={this.changeLocale}
+                                switchMenuLevel={this.switchMenuLevel}
+                            />
+                    }
+
+                </Header>
+
+
+                {(() => {
+                    switch (this.state.menuLevel1) {
+                        case 'graphql-service':
+                            return (
+                                <Sider
+                                    width={200}
+                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
+                                    collapsible
+                                    collapsed={this.state.collapsed}
+                                    onCollapse={this.onCollapse}
+                                >
+                                    <GraphqlSidebar inlineCollapsed={this.state.inlineCollapsed}
+                                                    sideBar={this.state.sideBar} switchMenu={this.switchMenu}
+                                                    showModal={this.showModal}/>
+
+                                </Sider>
+                            );
+                        case 'wechat-service':
+                            return (
+                                <Sider
+                                    width={200}
+                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
+                                    collapsible
+                                    collapsed={this.state.collapsed}
+                                    onCollapse={this.onCollapse}
+                                >
+                                    <WxConfigSiderbar inlineCollapsed={this.state.inlineCollapsed}
+                                                      sideBar={this.state.sideBar} switchMenu={this.switchMenu}
+                                                      wxShowModal={this.wxShowModal}/>
+                                </Sider>
+                            );
+                        case 'quant-service':
+                            return (
+                                <Sider
+                                    width={200}
+                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
+                                    collapsible
+                                    collapsed={this.state.collapsed}
+                                    onCollapse={this.onCollapse}
+                                >
+                                    <Menu
+                                        theme="dark"
+                                        mode="inline"
+                                        inlineCollapsed={this.state.inlineCollapsed}
+                                        defaultSelectedKeys={['quant-service']}
+                                        defaultOpenKeys={['trial-case']}
+                                        // openKeys={['cloud-function']}
+                                        onClick={(e) => this.switchMenu('sideBar', e)}
+                                        selectedKeys={['quant-service']}
+                                        style={{
+                                            borderRight: 0,
+                                            overflow: 'auto',
+                                            height: '100vh',
+                                            left: '0',
+                                            width: '200px',
+                                            position: 'fixed'
+                                        }}
+                                    >
+                                        <SubMenu key="trial-case"
+                                                 title={<span><Icon type="appstore" theme="twoTone"/>
+                                                         <span><FormattedMessage id="Case Show"/></span></span>}>
+                                            <Menu.Item key="quant-service">
+                                                <Link to="/developer/quant-service/trial-case/quant case">quant case</Link>
+                                            </Menu.Item>
+                                        </SubMenu>
+
+                                        <Menu.Item key="instructions">
+                                            <a href="https://ioobot-document.netlify.com/" title="instructions"
+                                               target="instructions">
+                                                <Icon type="file-text" theme="twoTone"/>
+                                                <span><FormattedMessage id="Instructions"/></span>
+                                            </a>
+                                        </Menu.Item>
+                                    </Menu>
+                                </Sider>
+                            );
+                        case 'user':
+                            return (
+                                <Sider
+                                    width={200}
+                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
+                                    collapsible
+                                    collapsed={this.state.collapsed}
+                                    onCollapse={this.onCollapse}
+                                >
+                                    <Menu
+                                        theme="dark"
+                                        defaultSelectedKeys={['cloud-settings']}
+                                        onClick={(e) => this.switchMenu('sideBar', e)}
+                                        selectedKeys={[this.state.sideBar]}
+                                        style={{
+                                            borderRight: 0,
+                                            overflow: 'auto',
+                                            height: '100vh',
+                                            left: '0',
+                                            width: '200px',
+                                            position: 'fixed'
+                                        }}
+                                    >
+                                        <Menu.Item key="account">
+                                            <Icon type="setting" theme="twoTone"/>
+                                            <span><FormattedMessage id="Account center"/></span>
+                                            <Link to="/developer/login/account"/>
+                                        </Menu.Item>
+
+                                        <Menu.Item key="cloud-settings">
+                                            <Icon type="cloud" theme="twoTone"/>
+                                            <span><FormattedMessage id="Cloud settings"/></span>
+                                            <Link to="/developer/login/cloud"/>
+                                        </Menu.Item>
+                                    </Menu>
+                                </Sider>
+                            );
+                        case 'ticket':
+                            return (
+                                ''
+                            );
+                        default:
+                            return (
+                                <Sider
+                                    width={200}
+                                    style={{background: '#fff', marginTop: '64px', zIndex: '0'}}
+                                    collapsible
+                                    collapsed={this.state.collapsed}
+                                    onCollapse={this.onCollapse}
+                                >
+                                    <GraphqlSidebar inlineCollapsed={this.state.inlineCollapsed}
+                                                    sideBar={this.state.sideBar} switchMenu={this.switchMenu}
+                                                    showModal={this.showModal}/>
+                                </Sider>
+                            );
+                    }
+                })()}
+                <Create visible={visible} hideModal={this.hideModal} switchSidebar={this.switchSidebar}/>
+                <WxCreate visible={wxVisible} hideModal={this.wxHideModal} switchSidebar={this.switchSidebar}/>
+
+                <LocaleProvider locale={locale}>
+                    <Layout style={{marginTop: '64px', zIndex: '0'}}
+                            key={locale ? locale.locale : 'en'/* Have to refresh for production environment */}>
+                        <Switch>
+                            <Route path="/developer" exact component={TrialCase}/>
+                            <Route path="/developer/graphql-service/trial-case/:case" component={TrialCase}/>
+                            <Route path="/developer/graphql-service/my-create/:case" component={UserCreate}/>
+                            <Route path="/developer/wechat-service/trial-case/:case" component={WxTrialCase}/>
+                            <Route path="/developer/wechat-service/my-create/:case" component={WxUserCreate}/>
+                            <Route path="/developer/quant-service/:sidebar/:case" component={QuantService}/>
+                            <Route path="/developer/login/:setting" component={Login}/>
+                            <Route path="/developer/login" component={Login}/>
+                            <Route path="/developer/ticket" component={Ticket}/>
+                            <Route path="/developer/graphiql" component={Graphiql}/>
+                            <Redirect path="*" to="/"/>
+                        </Switch>
+                    </Layout>
+                </LocaleProvider>
+            </Layout>
+        );
+    }
+}
+
+export default DevelopVersion;
+
+class GraphqlSidebar extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            userID: getCookie('user_id'),
+        }
+    }
+
+    render() {
+        return (
+            <Query query={gql(CASE_AND_PROJECT)} variables={{projectType: 'graphql', user_id: this.state.userID}}>
+                {
+                    ({loading, error, data}) => {
+                        if (loading) return <Spin style={{marginLeft: 3}}/>;
+                        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 (
+                            <Menu
+                                theme="dark"
+                                mode="inline"
+                                inlineCollapsed={this.props.inlineCollapsed}
+                                defaultSelectedKeys={['ecommerce']}
+                                defaultOpenKeys={['trial-case', 'my-create']}
+                                // openKeys={['trial-case', 'my-create']}
+                                onClick={(e) => this.props.switchMenu('sideBar', e)}
+                                selectedKeys={[this.props.sideBar]}
+                                style={{
+                                    borderRight: 0,
+                                    overflow: 'auto',
+                                    height: '100vh',
+                                    left: '0',
+                                    width: '200px',
+                                    position: 'fixed'
+                                }}
+                            >
+                                <SubMenu
+                                    key="trial-case"
+                                    title={<span><Icon type="appstore" theme="twoTone"/><span><FormattedMessage
+                                        id="Case Show"/></span></span>}>
+                                    {
+                                        data.caseProject.map((project) =>
+                                            <Menu.Item key={project.projectName}>
+                                                <Link to={{
+                                                    pathname: `/developer/graphql-service/trial-case/${project.projectName}`,
+                                                    state: {
+                                                        schemaName: project.projectName,
+                                                        schemaID: project.schema_id.id,
+                                                        projectID: project.id
+                                                    }
+                                                }}><FormattedMessage id={project.projectName}/></Link>
+                                            </Menu.Item>)
+                                    }
+                                </SubMenu>
+
+                                <Menu.Item key="create-graphql" onClick={this.props.showModal}>
+                                    <Icon type="edit" theme="twoTone"/>
+                                    <span><FormattedMessage id="Create"/></span>
+                                    <Icon type="plus" style={{
+                                        position: 'absolute',
+                                        top: '35%',
+                                        right: '6px',
+                                        color: 'white'
+                                    }}/>
+                                </Menu.Item>
+
+                                <SubMenu
+                                    key="my-create"
+                                    title={<span><Icon type="user" theme="outlined"/><span><FormattedMessage
+                                        id="My Create"/></span></span>}>
+                                    {
+                                        data.project.map((project) =>
+                                            <Menu.Item key={project.projectName}>
+                                                <Link to={{
+                                                    pathname: `/developer/graphql-service/my-create/${project.projectName}`,
+                                                    state: {
+                                                        schemaName: project.projectName,
+                                                        schemaID: project.schema_id.id,
+                                                        projectID: project.id
+                                                    }
+                                                }}>{project.projectName}</Link>
+                                            </Menu.Item>)
+                                    }
+                                </SubMenu>
+
+                                <Menu.Item key="instructions">
+                                    <a href="https://ioobot-document.netlify.com/" title="instructions" target="_blank"
+                                       rel="noopener noreferrer">
+                                        <Icon type="file-text" theme="twoTone"/>
+                                        <span><FormattedMessage id="Instructions"/></span>
+                                    </a>
+                                </Menu.Item>
+
+                            </Menu>
+                        )
+                    }
+                }
+            </Query>
+        )
+    }
+}
+
+class WxConfigSiderbar extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            userID: getCookie('user_id'),
+        }
+    }
+
+    render() {
+        return (
+            <Query query={gql(CASE_AND_PROJECT)} variables={{projectType: 'wx', user_id: this.state.userID}}>
+                {
+                    ({loading, error, data}) => {
+                        // console.log('CASE_WXCONFIG_AND_PROJECT data', data);
+                        if (loading) return <Spin style={{marginLeft: 3}}/>;
+                        if (error) return 'error!';
+                        return (
+                            <Menu
+                                theme="dark"
+                                mode="inline"
+                                inlineCollapsed={this.props.inlineCollapsed}
+                                // defaultSelectedKeys={['my-wechat']}
+                                defaultOpenKeys={['trial-case', 'my-create']}
+                                // openKeys={['trial-case', 'my-create']}
+                                onClick={(e) => this.props.switchMenu('sideBar', e)}
+                                selectedKeys={[this.props.sideBar]}
+                                style={{
+                                    borderRight: 0,
+                                    overflow: 'auto',
+                                    height: '100vh',
+                                    left: '0',
+                                    width: '200px',
+                                    position: 'fixed'
+                                }}
+                            >
+                                <SubMenu key="trial-case" title={<span><Icon type="appstore" theme="twoTone"/>
+                                    <span><FormattedMessage id="Case Show"/></span>
+                                </span>}>
+                                    {
+                                        data.caseProject.map((project) => {
+                                            if (project) {
+                                                let appName = project.projectName;
+                                                let configID = project.wxConfig_id.id;
+                                                let projectID = project.id;
+                                                return (
+                                                    <Menu.Item key={appName}>
+                                                        <Link to={{
+                                                            pathname: `/developer/wechat-service/trial-case/${appName}`,
+                                                            state: {
+                                                                appName,
+                                                                configID,
+                                                                projectID
+                                                            }
+                                                        }}><FormattedMessage id={appName}/></Link>
+                                                    </Menu.Item>
+                                                )
+                                            }
+                                            return false;
+                                        })
+                                    }
+                                </SubMenu>
+
+                                <Menu.Item key="create-config" onClick={this.props.wxShowModal}>
+                                    <Icon type="edit" theme="twoTone"/>
+                                    <span><FormattedMessage id="Create"/></span>
+                                    <Icon type="plus" style={{
+                                        position: 'absolute',
+                                        top: '35%',
+                                        right: '6px',
+                                        color: 'white'
+                                    }}/>
+                                </Menu.Item>
+
+                                <SubMenu key="my-create" title={<span><Icon type="user" theme="outlined"/>
+                                    <span><FormattedMessage id="My Create"/></span>
+                                </span>}>
+                                    {
+                                        data.project.map((project) => {
+                                            if (project) {
+                                                let appName = project.projectName;
+                                                let configID = project.wxConfig_id.id;
+                                                let projectID = project.id;
+                                                return (
+                                                    <Menu.Item key={appName}>
+                                                        <Link to={{
+                                                            pathname: `/developer/wechat-service/my-create/${appName}`,
+                                                            state: {
+                                                                appName,
+                                                                configID,
+                                                                projectID
+                                                            }
+                                                        }}>{appName}</Link>
+                                                    </Menu.Item>
+                                                )
+                                            }
+                                            return false;
+                                        })
+                                    }
+                                </SubMenu>
+
+                                <Menu.Item key="instructions">
+                                    <a href="https://ioobot-document.netlify.com/" title="instructions" target="_blank"
+                                       rel="noopener noreferrer">
+                                        <Icon type="file-text" theme="twoTone"/>
+                                        <span><FormattedMessage id="Instructions"/></span>
+                                    </a>
+                                </Menu.Item>
+
+                            </Menu>
+
+                        )
+                    }
+                }
+            </Query>
+        )
+    }
+}
+
+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 (
+            <Query query={gql(GET_USER)} variables={{id: this.props.userID}}>
+                {
+                    ({loading, error, data}) => {
+                        if (loading) {
+                            return <Spin style={{marginLeft: 3}}/>
+                        }
+                        if (error) {
+                            return 'error!';
+                        }
+                        let user = data.user_by_id;
+                        if (user !== null) {
+                            const menu = (
+                                <Menu className={'user-detail'}>
+                                    <Menu.Item className={'user-info'}>
+                                        <p className={'user-info-nickname'}>{user.nickname}</p>
+                                        <p className={'user-info-email'}>{user.email}</p>
+                                    </Menu.Item>
+                                    <Menu.Item>
+                                        <a href='https://www.ioobot.com' onClick={(e) => {
+                                            e.preventDefault();
+                                            this.props.changeLocale(e)
+                                        }}>{this.props.languageButton}</a>
+                                    </Menu.Item>
+                                    <Menu.Item>
+                                        <Link to="/developer/login">
+                                            <div onClick={() => this.props.switchMenuLevel('menuLevel1', 'user')}>
+                                                <FormattedMessage id="Account center"/>
+                                            </div>
+                                        </Link>
+                                    </Menu.Item>
+                                    <Menu.Item>
+                                        <Link to="/developer/ticket">
+                                            <div onClick={() => this.props.switchMenuLevel('menuLevel1', 'ticket')}>
+                                                <FormattedMessage id="Submit Support Ticket"/>
+                                            </div>
+                                        </Link>
+                                    </Menu.Item>
+                                    <Menu.Item className={'login-out'}>
+                                        <a href='https://www.ioobot.com' onClick={(e) => {
+                                            e.preventDefault();
+                                            this.logout();
+                                        }}><FormattedMessage id="exit"/></a>
+                                    </Menu.Item>
+                                </Menu>
+                            );
+                            return (
+                                <div className='login-nickname' onClick={()=>{}}>
+                                    <Dropdown overlay={menu} placement="bottomRight" trigger={['click']}>
+                                        <div>
+                                            <span style={{ marginRight: 5 }}>
+                                                <Badge dot><Avatar shape="user" icon="user" /></Badge>
+                                            </span>
+                                            {/*<Icon type="down" />*/}
+                                        </div>
+                                    </Dropdown>
+                                </div>
+                            )
+                        }
+                    }
+                }
+            </Query>
+        )
+    }
+}

+ 0 - 0
src/app/common/Graphiql.jsx → src/app/developVersion/common/Graphiql.jsx


+ 0 - 0
src/app/common/deploy/Deploy.jsx → src/app/developVersion/common/deploy/Deploy.jsx


+ 0 - 0
src/app/common/deploy/ali/AliConfig.jsx → src/app/developVersion/common/deploy/ali/AliConfig.jsx


+ 0 - 0
src/app/common/deploy/amazon/AmazonConfig.js → src/app/developVersion/common/deploy/amazon/AmazonConfig.js


+ 0 - 0
src/app/common/deploy/huawei/HuaweiConfig.jsx → src/app/developVersion/common/deploy/huawei/HuaweiConfig.jsx


+ 0 - 0
src/app/common/deploy/index.css → src/app/developVersion/common/deploy/index.css


+ 3 - 3
src/app/common/deploy/tencent/TencentConfig.js → src/app/developVersion/common/deploy/tencent/TencentConfig.js

@@ -6,8 +6,8 @@ import APIPathCardFetch from './apiPathCard/APIPathCardFetch';
 import DeployCardFetch from './deployCard/DeployCardFetch';
 import NotificationCardFetch from './notificationCard/NotificationCardFetch';
 
-import {GET_PROJECT, SHOW_APIGWPATH, UPDATE_PROJECT_ONLY_STATUS} from "../../../../gql";
-import {deployUrl, graphqlUrl} from "../../../../config";
+import {GET_PROJECT, SHOW_APIGWPATH, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../gql";
+import {deployUrl, graphqlUrl} from "../../../../../config";
 import {FormattedMessage} from 'react-intl';
 import {request} from 'graphql-request'
 
@@ -219,7 +219,7 @@ class TencentConfig extends Component {
                                     projectStatus: 'deploying'
                                 });
 
-                                console.log(data);
+                                // console.log(data);
                                 let api = data.apiGWPath_by_props[0].id;
                                 console.log('schema', schema);
                                 console.log('deploy', deploy);

+ 2 - 2
src/app/common/deploy/tencent/apiGroupCard/APIGroupCardFetch.js → src/app/developVersion/common/deploy/tencent/apiGroupCard/APIGroupCardFetch.js

@@ -1,10 +1,10 @@
 import React, {Component} from 'react';
 import {Spin} from 'antd';
-import {GET_PROJECT} from "../../../../../gql";
+import {GET_PROJECT} from "../../../../../../gql";
 import {Query} from "react-apollo";
 import gql from "graphql-tag";
 import APIGroupCardRender from "./APIGroupCardRender";
-import {removeSpace} from "../../../../../func";
+import {removeSpace} from "../../../../../../func";
 
 class APIGroupCardFetch extends Component {
     constructor(props) {

+ 4 - 4
src/app/common/deploy/tencent/apiGroupCard/APIGroupCardRender.js → src/app/developVersion/common/deploy/tencent/apiGroupCard/APIGroupCardRender.js

@@ -1,11 +1,11 @@
 import React, {Component} from 'react';
 import {Input, Collapse, Button, Radio, Icon, Tooltip} from 'antd';
-import {idGen} from "../../../../../func";
-import {graphqlUrl, manageUsers} from "../../../../../config";
+import {idGen} from "../../../../../../func";
+import {graphqlUrl, manageUsers} from "../../../../../../config";
 import {FormattedMessage} from 'react-intl';
-import {ADD_APIGROUP, UPDATE_APIGROUP, UPDATE_PROJECT_GROUP, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../gql";
+import {ADD_APIGROUP, UPDATE_APIGROUP, UPDATE_PROJECT_GROUP, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../../gql";
 import {request} from 'graphql-request'
-import {removePrefix, shiftPrefix} from "../../../../../func";
+import {removePrefix, shiftPrefix} from "../../../../../../func";
 
 const Panel = Collapse.Panel;
 

+ 2 - 2
src/app/common/deploy/tencent/apiPathCard/APIPathCardFetch.js → src/app/developVersion/common/deploy/tencent/apiPathCard/APIPathCardFetch.js

@@ -1,10 +1,10 @@
 import React, {Component} from 'react';
 import {Collapse, Spin} from 'antd';
-import {GET_PROJECT, SHOW_APIGWPATH} from "../../../../../gql";
+import {GET_PROJECT, SHOW_APIGWPATH} from "../../../../../../gql";
 import gql from "graphql-tag";
 import {Query} from "react-apollo";
 import APIPathCardRender from "./APIPathCardRender";
-import {removeSpace} from "../../../../../func";
+import {removeSpace} from "../../../../../../func";
 
 const Panel = Collapse.Panel;
 

+ 3 - 3
src/app/common/deploy/tencent/apiPathCard/APIPathCardRender.js → src/app/developVersion/common/deploy/tencent/apiPathCard/APIPathCardRender.js

@@ -1,9 +1,9 @@
 import React, {Component} from 'react';
 import {FormattedMessage} from 'react-intl';
 import {Input, Radio, Collapse, Button, Icon, Tooltip} from 'antd';
-import {idGen} from "../../../../../func";
-import {graphqlUrl, manageUsers} from "../../../../../config";
-import {ADD_APIGWPATH, UPDATE_APIGWPATH, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../gql";
+import {idGen} from "../../../../../../func";
+import {graphqlUrl, manageUsers} from "../../../../../../config";
+import {ADD_APIGWPATH, UPDATE_APIGWPATH, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../../gql";
 import {request} from 'graphql-request'
 
 const Panel = Collapse.Panel;

+ 2 - 2
src/app/common/deploy/tencent/deployCard/DeployCardFetch.js → src/app/developVersion/common/deploy/tencent/deployCard/DeployCardFetch.js

@@ -1,10 +1,10 @@
 import React, {Component} from 'react';
 import {Spin} from 'antd';
-import {GET_PROJECT} from "../../../../../gql";
+import {GET_PROJECT} from "../../../../../../gql";
 import {Query} from "react-apollo";
 import gql from "graphql-tag";
 import DeployCardRender from "./DeployCardRender";
-import {removeSpace} from "../../../../../func";
+import {removeSpace} from "../../../../../../func";
 
 const removePrefix = (prefix, value) => {
     let r = new RegExp(prefix);

+ 4 - 4
src/app/common/deploy/tencent/deployCard/DeployCardRender.js → src/app/developVersion/common/deploy/tencent/deployCard/DeployCardRender.js

@@ -1,16 +1,16 @@
 import React, {Component} from 'react';
 import {FormattedMessage} from 'react-intl';
 import {Input, Radio, Collapse, Button, Icon, Tooltip} from 'antd';
-import {idGen} from "../../../../../func";
-import {graphqlUrl, manageUsers} from "../../../../../config";
+import {idGen} from "../../../../../../func";
+import {graphqlUrl, manageUsers} from "../../../../../../config";
 import {
     ADD_DEPLOY,
     UPDATE_DEPLOY,
     UPDATE_PROJECT_DEPLOY_AND_CLOUD,
     UPDATE_PROJECT_ONLY_STATUS
-} from "../../../../../gql";
+} from "../../../../../../gql";
 import {request} from 'graphql-request'
-import {removePrefix, shiftPrefix, pushPostfix} from "../../../../../func";
+import {removePrefix, shiftPrefix, pushPostfix} from "../../../../../../func";
 
 const Panel = Collapse.Panel;
 

+ 2 - 2
src/app/common/deploy/tencent/notificationCard/NotificationCardFetch.js → src/app/developVersion/common/deploy/tencent/notificationCard/NotificationCardFetch.js

@@ -1,9 +1,9 @@
 import React, {Component} from 'react';
 import {Spin} from 'antd';
-import {GET_PROJECT} from "../../../../../gql";
+import {GET_PROJECT} from "../../../../../../gql";
 import {Query} from "react-apollo";
 import gql from "graphql-tag";
-import {removeSpace} from "../../../../../func";
+import {removeSpace} from "../../../../../../func";
 import NotificationCardRender from './NotificationCardRender';
 import DeployCardRender from "../deployCard/DeployCardRender";
 

+ 3 - 3
src/app/common/deploy/tencent/notificationCard/NotificationCardRender.js → src/app/developVersion/common/deploy/tencent/notificationCard/NotificationCardRender.js

@@ -1,10 +1,10 @@
 import React, {Component} from 'react';
 import {FormattedMessage} from 'react-intl';
 import {Input, Tooltip, Icon, Button} from 'antd';
-import {graphqlUrl, manageUsers} from "../../../../../config";
-import {ADD_NOTIFICATION, UPDATE_NOTIFICATION, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../gql";
+import {graphqlUrl, manageUsers} from "../../../../../../config";
+import {ADD_NOTIFICATION, UPDATE_NOTIFICATION, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../../gql";
 import {request} from 'graphql-request'
-import {idGen} from "../../../../../func";
+import {idGen} from "../../../../../../func";
 
 const valueToKey = {
     'dingding webhook': 'dingding webhook',

+ 0 - 0
src/app/common/manage/AliyunResult.js → src/app/developVersion/common/manage/AliyunResult.js


+ 0 - 0
src/app/common/manage/AmazonResult.js → src/app/developVersion/common/manage/AmazonResult.js


+ 0 - 0
src/app/common/manage/Manage.jsx → src/app/developVersion/common/manage/Manage.jsx


+ 2 - 2
src/app/common/manage/TencentResult.js → src/app/developVersion/common/manage/TencentResult.js

@@ -8,13 +8,13 @@ import {
     SHOW_APIGWPATH,
     UPDATE_APIGROUP,
     UPDATE_PROJECT_ONLY_STATUS
-} from "../../../gql";
+} from "../../../../gql";
 import {request} from 'graphql-request'
 import gql from "graphql-tag";
 import {Query, Mutation} from "react-apollo";
 import copy from 'copy-to-clipboard';
 import axios from 'axios';
-import {removeAPI, graphqlUrl} from "../../../config";
+import {removeAPI, graphqlUrl} from "../../../../config";
 
 axios.defaults.withCredentials = true;
 

+ 1 - 1
src/app/graphqlService/TrialCase.jsx → src/app/developVersion/graphqlService/TrialCase.jsx

@@ -10,7 +10,7 @@ import Graphql from "./component/graphql/Graphql";
 import CaseMetabase from "./component/caseMetabase/CaseMetabase";
 import Application from "./component/application/Application";
 import axios from 'axios';
-import {getIdUrl} from "../../config";
+import {getIdUrl} from "../../../config";
 import classnames from 'classnames';
 
 axios.defaults.withCredentials = true;

+ 1 - 1
src/app/graphqlService/UserCreate.jsx → src/app/developVersion/graphqlService/UserCreate.jsx

@@ -9,7 +9,7 @@ import Schema from './component/schema/Schema';
 import Graphql from "./component/graphql/Graphql";
 import CaseMetabase from "./component/caseMetabase/CaseMetabase";
 import axios from 'axios';
-import {getIdUrl} from "../../config";
+import {getIdUrl} from "../../../config";
 import Application from "./component/application/Application";
 
 axios.defaults.withCredentials = true;

+ 3 - 3
src/app/graphqlService/component/application/Application.js → src/app/developVersion/graphqlService/component/application/Application.js

@@ -1,7 +1,7 @@
 import React, {Component} from 'react';
-import ShopApp from '../../../../case/ShopApp/src/App'
-import BillApp from '../../../../case/BillApp/src/App'
-import OrderApp from '../../../../case/OrderApp/src/index'
+import ShopApp from '../../../../../case/ShopApp/src/App'
+import BillApp from '../../../../../case/BillApp/src/App'
+import OrderApp from '../../../../../case/OrderApp/src/index'
 class Application extends Component {
 
     render() {

+ 0 - 0
src/app/graphqlService/component/caseMetabase/CaseMetabase.jsx → src/app/developVersion/graphqlService/component/caseMetabase/CaseMetabase.jsx


+ 0 - 0
src/app/graphqlService/component/caseMetabase/index.css → src/app/developVersion/graphqlService/component/caseMetabase/index.css


+ 1 - 1
src/app/graphqlService/component/generateJs/GenerateJs.jsx → src/app/developVersion/graphqlService/component/generateJs/GenerateJs.jsx

@@ -4,7 +4,7 @@ import axios from 'axios';
 import {BackTop, Tabs, Button, Spin, Alert} from 'antd';
 import saveAs from 'file-saver';
 import beautify from 'js-beautify';
-import {genJsUrl} from '../../../../config';
+import {genJsUrl} from '../../../../../config';
 
 import './index.css';
 

+ 0 - 0
src/app/graphqlService/component/generateJs/index.css → src/app/developVersion/graphqlService/component/generateJs/index.css


+ 1 - 1
src/app/graphqlService/component/graphql/Graphql.jsx → src/app/developVersion/graphqlService/component/graphql/Graphql.jsx

@@ -5,7 +5,7 @@ import fetch from "isomorphic-fetch";
 import gql from "graphql-tag";
 import {Query} from "react-apollo";
 
-import {GET_PROJECT} from "../../../../gql";
+import {GET_PROJECT} from "../../../../../gql";
 
 class Graphql extends Component {
     constructor(props) {

+ 0 - 0
src/app/graphqlService/component/graphql/index.css → src/app/developVersion/graphqlService/component/graphql/index.css


+ 3 - 3
src/app/graphqlService/component/schema/Create.js → src/app/developVersion/graphqlService/component/schema/Create.js

@@ -3,10 +3,10 @@ import {withRouter} from "react-router-dom";
 import {Modal, Input, notification, Spin} from 'antd';
 import {Mutation} from "react-apollo";
 import gql from "graphql-tag";
-import {ADD_PROJECT_AND_SCHEMA, SHOW_PROJECT} from '../../../../gql'
+import {ADD_PROJECT_AND_SCHEMA, SHOW_PROJECT} from '../../../../../gql'
 import './index.css';
-import {getCookie} from "../../../../cookie";
-import {idGen, removeSpace} from "../../../../func";
+import {getCookie} from "../../../../../cookie";
+import {idGen, removeSpace} from "../../../../../func";
 import {FormattedMessage} from 'react-intl';
 
 class Create extends Component {

+ 4 - 5
src/app/graphqlService/component/schema/Schema.jsx → src/app/developVersion/graphqlService/component/schema/Schema.jsx

@@ -12,13 +12,12 @@ import {
     UPDATE_SCHEMA_PROJECT_NAME,
     SEARCH_SCHEMA,ADD_PROJECT_AND_SCHEMA,
     ADD_SCHEMA, SHOW_PROJECT
-} from '../../../../gql'
+} from '../../../../../gql'
 import Table from "./Table";
 import {request} from 'graphql-request'
-import {getCookie} from "../../../../cookie";
-import {idGen, removeSpace} from "../../../../func";
-import {graphqlUrl} from "../../../../config";
-import {manageUsers} from "../../../../config";
+import {idGen, removeSpace} from "../../../../../func";
+import {graphqlUrl} from "../../../../../config";
+import {manageUsers} from "../../../../../config";
 import {FormattedMessage} from 'react-intl';
 
 const confirm = Modal.confirm;

+ 4 - 4
src/app/graphqlService/component/schema/Table.js → src/app/developVersion/graphqlService/component/schema/Table.js

@@ -2,14 +2,14 @@ import React, {Component} from 'react';
 import axios from 'axios';
 
 import {Layout, Select, Input, Icon, Button, notification, Spin, Modal} from 'antd';
-import {UPDATE_SCHEMA, SHOW_SCHEMA, SHOW_TABLE} from "../../../../gql";
+import {UPDATE_SCHEMA, SHOW_SCHEMA, SHOW_TABLE} from "../../../../../gql";
 import gql from "graphql-tag";
 import {FormattedMessage} from 'react-intl';
 
 import {Mutation, Query} from "react-apollo";
-import {getCookie} from "../../../../cookie";
-import {manageUsers} from "../../../../config";
-import {checkSchemaUrl} from '../../../../config';
+import {getCookie} from "../../../../../cookie";
+import {manageUsers} from "../../../../../config";
+import {checkSchemaUrl} from '../../../../../config';
 
 const Option = Select.Option;
 const {Content} = Layout;

+ 0 - 0
src/app/graphqlService/component/schema/index.css → src/app/developVersion/graphqlService/component/schema/index.css


+ 0 - 0
src/app/graphqlService/dataAnalysis/DataAnalysis.jsx → src/app/developVersion/graphqlService/dataAnalysis/DataAnalysis.jsx


+ 0 - 0
src/app/graphqlService/dataAnalysis/metabase/Metabase.jsx → src/app/developVersion/graphqlService/dataAnalysis/metabase/Metabase.jsx


+ 0 - 0
src/app/graphqlService/dataStorage/DataStorage.jsx → src/app/developVersion/graphqlService/dataStorage/DataStorage.jsx


+ 0 - 0
src/app/graphqlService/dataStorage/databaseSetting/DatabaseSetting.jsx → src/app/developVersion/graphqlService/dataStorage/databaseSetting/DatabaseSetting.jsx


+ 1 - 1
src/app/index.css → src/app/developVersion/index.css

@@ -6,7 +6,7 @@
 }
 
 .logo {
-    background-image: url("../images/logo.png");
+    background-image: url("../../images/logo.png");
     background-repeat:no-repeat;
     background-size:100% 100%;
 }

+ 0 - 0
src/app/quantService/QuantService.jsx → src/app/developVersion/quantService/QuantService.jsx


+ 0 - 0
src/app/quantService/quantConfig/QuantConfig.jsx → src/app/developVersion/quantService/quantConfig/QuantConfig.jsx


+ 0 - 0
src/app/quantService/quantManage/QuantManage.jsx → src/app/developVersion/quantService/quantManage/QuantManage.jsx


+ 0 - 0
src/app/wechatService/WxTrialCase.js → src/app/developVersion/wechatService/WxTrialCase.js


+ 1 - 1
src/app/wechatService/WxUserCreate.js → src/app/developVersion/wechatService/WxUserCreate.js

@@ -2,7 +2,7 @@ import React, {Component} from 'react';
 
 import {Layout, Menu} from 'antd';
 
-import {getIdUrl} from '../../config'
+import {getIdUrl} from '../../../config'
 
 import WxConfig from "./wxConfig/WxConfig";
 import WxDeploy from "../common/deploy/Deploy";

+ 2 - 2
src/app/wechatService/wxConfig/WxConfig.jsx → src/app/developVersion/wechatService/wxConfig/WxConfig.jsx

@@ -1,10 +1,10 @@
 import React, {Component} from 'react';
 import {Input, Spin, Button, Icon, Modal, Tooltip} from 'antd';
 import './index.css';
-import {UPDATE_WXCONFIG, SHOW_WXCONTENT, DELETE_WXCONFIG, SHOW_WXCONFIG,DELETE_PROJECT,SHOW_PROJECT} from "../../../gql";
+import {UPDATE_WXCONFIG, SHOW_WXCONTENT, DELETE_WXCONFIG, SHOW_WXCONFIG,DELETE_PROJECT,SHOW_PROJECT} from "../../../../gql";
 import gql from "graphql-tag";
 import {Mutation, Query} from "react-apollo";
-import {getCookie} from "../../../cookie";
+import {getCookie} from "../../../../cookie";
 import {FormattedMessage} from 'react-intl';
 const confirm = Modal.confirm;
 

+ 0 - 0
src/app/wechatService/wxConfig/index.css → src/app/developVersion/wechatService/wxConfig/index.css


+ 3 - 3
src/app/wechatService/wxCreate/WxCreate.js → src/app/developVersion/wechatService/wxCreate/WxCreate.js

@@ -5,10 +5,10 @@ import {Modal, Input, notification, Spin} from 'antd';
 import {Mutation, Query} from "react-apollo";
 import gql from "graphql-tag";
 
-import {ADD_PROJECT_AND_WX, SHOW_PROJECT} from '../../../gql'
+import {ADD_PROJECT_AND_WX, SHOW_PROJECT} from '../../../../gql'
 import './index.css';
-import {getCookie} from "../../../cookie";
-import {idGen} from "../../../func";
+import {getCookie} from "../../../../cookie";
+import {idGen} from "../../../../func";
 
 class WxCreate extends Component {
     constructor(props) {

+ 0 - 0
src/app/wechatService/wxCreate/index.css → src/app/developVersion/wechatService/wxCreate/index.css


+ 7 - 7
src/case/ShopApp/src/App.js

@@ -49,7 +49,7 @@ class ShopApp extends Component {
     //获取数据
     getGoods(variables = {}) {
         return graphqls(getProductByProps, variables).then((data) => {
-            console.log("data", data)
+            // console.log("data", data)
             let products = data.productbyprops || []
             sessionStorage.setItem("products", JSON.stringify(products))
         })
@@ -96,7 +96,7 @@ class ShopApp extends Component {
 
     //根据条件渲染页面
     renderPage(page = "") {
-        console.log('renderPage', page)
+        // console.log('renderPage', page)
         const setNum = this.setNum.bind(this)
 
         switch (page) {
@@ -115,7 +115,7 @@ class ShopApp extends Component {
                 )
 
             case('shopCar'):
-                console.log('shopCar 渲染了')
+                // console.log('shopCar 渲染了')
                 return (
                     <div>
                         <div className="pageWrap">
@@ -126,7 +126,7 @@ class ShopApp extends Component {
                 )
 
             case('user'):
-                console.log('user 渲染了')
+                // console.log('user 渲染了')
                 return (
                     <div>
                         <div className="pageWrap">
@@ -136,7 +136,7 @@ class ShopApp extends Component {
                     </div>
                 )
             case('index'):
-                console.log('index 渲染了')
+                // console.log('index 渲染了')
                 return (
                     <div>
                         <div className="pageWrap indexPage">
@@ -146,14 +146,14 @@ class ShopApp extends Component {
                     </div>
                 )
             case('orderCenter'):
-                console.log('orderCenter 渲染了')
+                // console.log('orderCenter 渲染了')
                 return (
                     <div className="pageWrap">
                         <OrderCenterPage/>
                     </div>
                 )
             case('addressPage'):
-                console.log('addressPage 渲染了')
+                // console.log('addressPage 渲染了')
                 return (
                     <div className="pageWrap">
                         <AddressPage

+ 1 - 1
src/case/ShopApp/src/components/HomePage/HomePage.jsx

@@ -30,7 +30,7 @@ class HomePage extends Component{
     //获取所有商品
     getGoods(variables={}){
         return graphqls(getProductByProps,variables).then((data)=>{
-            console.log(data)
+            // console.log(data)
             let products=data.productbyprops||[]
             let arr=products.map((item)=>{
               return item.category

+ 3 - 3
src/index.js

@@ -1,8 +1,8 @@
 import React, {Component} from 'react';
 import ReactDOM from 'react-dom';
 import './index.css';
+import DevelopVersion from './app/developVersion/DevelopVersion';
 import App from './app/App';
-import Home from './app/Home';
 import * as serviceWorker from './serviceWorker';
 import {BrowserRouter as Router, Route, Link, Switch, Redirect} from "react-router-dom";
 
@@ -74,8 +74,8 @@ class MainApp extends Component {
                 <IntlProvider locale={locale} messages={messages}>
                     <Router>
                         <Switch>
-                            <Route exact path="/" component={Home} />
-                            <Route path="/developer" component={App} />
+                            <Route exact path="/" component={App} />
+                            <Route path="/developer" component={DevelopVersion} />
                             {/*<Route path="/developer" component={<App language={language} changeLanguage={this.changeLanguage}/>} />*/}
                             <Route path="/common" component={BasicVersion} />
                         </Switch>

+ 5 - 1
src/language/en_US.js

@@ -156,6 +156,10 @@ const en_US = {
     'previous-step': 'previous',
     "next-step":"next",
 
-    'Submit Support Ticket': 'Submit Support Ticket'
+    'Submit Support Ticket': 'Submit Support Ticket',
+
+    'Example': 'Example',
+    'My deploy': 'My deploy',
+    'Communication': 'Communication'
 };
 export default en_US;

+ 5 - 1
src/language/zh_CN.js

@@ -157,6 +157,10 @@ const zh_CN = {
     'previous-step': '上一步',
     "next-step":"下一步",
 
-    'Submit Support Ticket': '提交工单'
+    'Submit Support Ticket': '提交工单',
+
+    'Example': '例子',
+    'My deploy': '我的部署',
+    'Communication': '交流'
 };
 export default zh_CN;