Quellcode durchsuchen

Merge branch 'master' of http://gogs.ioobot.com:6680/xy/online

wly vor 7 Jahren
Ursprung
Commit
f5a03d89c2

+ 2063 - 0
src/all_graphql.txt

@@ -0,0 +1,2063 @@
+query userbyid($id: ID) {
+  userbyid: user_by_id(id: $id) {
+    email
+    updatedAt
+    password
+    telephone
+    nickname
+    username
+    createdAt
+    openid
+    id
+    avatar
+  }
+}
+
+query notificationbyprops($type: String, $webhook: String, $name: String) {
+  notificationbyprops: notification_by_props(type: $type webhook: $webhook name: $name) {
+    id
+    type
+    webhook
+    name
+  }
+}
+
+query deploybyprops($description: String, $updatedAt: String, $cosBucketName: String, $memorySize: Int, $fc_id: ID, $createdAt: String, $subnetId: String, $cosObjectName: String, $region: String, $vpcId: String, $cosBucketRegion: String, $cloud_id: ID, $user_id: ID, $serviceName: String, $timeout: Int, $handler: String, $functionName: String) {
+  deploybyprops: deploy_by_props(description: $description updatedAt: $updatedAt cosBucketName: $cosBucketName memorySize: $memorySize fc_id: $fc_id createdAt: $createdAt subnetId: $subnetId cosObjectName: $cosObjectName region: $region vpcId: $vpcId cosBucketRegion: $cosBucketRegion cloud_id: $cloud_id user_id: $user_id serviceName: $serviceName timeout: $timeout handler: $handler functionName: $functionName) {
+    description
+    updatedAt
+    cosBucketName
+    memorySize
+    fc_id {
+      id
+
+
+      fcType
+
+
+      createdAt
+      updatedAt
+    }
+    createdAt
+    subnetId
+    cosObjectName
+    region
+    vpcId
+    cosBucketRegion
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    serviceName
+    timeout
+    handler
+    functionName
+  }
+}
+
+query deploybyid($id: ID) {
+  deploybyid: deploy_by_id(id: $id) {
+    description
+    updatedAt
+    cosBucketName
+    memorySize
+    fc_id {
+      id
+
+
+      fcType
+
+
+      createdAt
+      updatedAt
+    }
+    createdAt
+    subnetId
+    cosObjectName
+    region
+    vpcId
+    cosBucketRegion
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    serviceName
+    timeout
+    handler
+    functionName
+  }
+}
+
+query databasebyid($id: ID) {
+  databasebyid: database_by_id(id: $id) {
+    dbPort
+    updatedAt
+    dbHost
+    dbUsername
+    dbPassword
+    createdAt
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    dbName
+  }
+}
+
+query notificationbyid($id: ID) {
+  notificationbyid: notification_by_id(id: $id) {
+    id
+    type
+    webhook
+    name
+  }
+}
+
+query apiGWGroupbyid($id: ID) {
+  apiGWGroupbyid: apiGWGroup_by_id(id: $id) {
+    environmentName
+    userStatus
+    defaultDomain
+    updatedAt
+    userDomain
+    groupName
+    createdAt
+    frontType
+    region
+    serviceId
+    status
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+  }
+}
+
+query fcbyprops($user_id: ID, $cloud_id: ID, $fcType: String, $schema_id: ID, $wxConfig_id: ID, $createdAt: String, $updatedAt: String) {
+  fcbyprops: fc_by_props(user_id: $user_id cloud_id: $cloud_id fcType: $fcType schema_id: $schema_id wxConfig_id: $wxConfig_id createdAt: $createdAt updatedAt: $updatedAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    fcType
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    createdAt
+    updatedAt
+  }
+}
+
+query apiGWGroupbyprops($environmentName: String, $userStatus: String, $defaultDomain: String, $updatedAt: String, $userDomain: String, $groupName: String, $createdAt: String, $frontType: String, $region: String, $serviceId: String, $status: String, $cloud_id: ID, $user_id: ID) {
+  apiGWGroupbyprops: apiGWGroup_by_props(environmentName: $environmentName userStatus: $userStatus defaultDomain: $defaultDomain updatedAt: $updatedAt userDomain: $userDomain groupName: $groupName createdAt: $createdAt frontType: $frontType region: $region serviceId: $serviceId status: $status cloud_id: $cloud_id user_id: $user_id) {
+    environmentName
+    userStatus
+    defaultDomain
+    updatedAt
+    userDomain
+    groupName
+    createdAt
+    frontType
+    region
+    serviceId
+    status
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+  }
+}
+
+query apiGWPathbyprops($apiGWName: String, $updatedAt: String, $apiGWGroup_id: ID, $createdAt: String, $deploy_id: ID, $serviceType: String, $apiGWPath: String, $user_id: ID, $timeout: Int, $apiGWDesc: String, $requestMethod: String, $apiId: String) {
+  apiGWPathbyprops: apiGWPath_by_props(apiGWName: $apiGWName updatedAt: $updatedAt apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt deploy_id: $deploy_id serviceType: $serviceType apiGWPath: $apiGWPath user_id: $user_id timeout: $timeout apiGWDesc: $apiGWDesc requestMethod: $requestMethod apiId: $apiId) {
+    apiGWName
+    updatedAt
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    serviceType
+    id
+    apiGWPath
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    timeout
+    apiGWDesc
+    requestMethod
+    apiId
+  }
+}
+
+query schemabyprops($updatedAt: String, $schemaState: String, $authWrite: String, $createdAt: String, $authRead: String, $schemaName: String, $reference: String, $schemaData: String, $authReadWrite: String, $user_id: ID) {
+  schemabyprops: schema_by_props(updatedAt: $updatedAt schemaState: $schemaState authWrite: $authWrite createdAt: $createdAt authRead: $authRead schemaName: $schemaName reference: $reference schemaData: $schemaData authReadWrite: $authReadWrite user_id: $user_id) {
+    updatedAt
+    schemaState
+    authWrite
+    authReadObjects
+    createdAt
+    authRead
+    schemaName
+    reference
+    id
+    schemaData
+    authReadWrite
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    authWriteObjects
+  }
+}
+
+query schemabyid($id: ID) {
+  schemabyid: schema_by_id(id: $id) {
+    updatedAt
+    schemaState
+    authWrite
+    authReadObjects
+    createdAt
+    authRead
+    schemaName
+    reference
+    id
+    schemaData
+    authReadWrite
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    authWriteObjects
+  }
+}
+
+query wxConfigbyid($id: ID) {
+  wxConfigbyid: wxConfig_by_id(id: $id) {
+    updatedAt
+    mch_id
+    appName
+    notify_url
+    appSecret
+    createdAt
+    appID
+    token
+    spbill_create_ip
+    enter_url
+    id
+    pay_api_key
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    body
+    welcome_words
+    attach
+  }
+}
+
+query projectbyid($id: ID) {
+  projectbyid: project_by_id(id: $id) {
+    updatedAt
+    database_id {
+      dbPort
+      updatedAt
+      dbHost
+      dbUsername
+      dbPassword
+      createdAt
+      id
+
+
+      dbName
+    }
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    projectStatus
+    projectName
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    notification_id {
+      id
+      type
+      webhook
+      name
+    }
+    id
+    projectType
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+  }
+}
+
+query cloudbyid($id: ID) {
+  cloudbyid: cloud_by_id(id: $id) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloudName
+    secretId
+    secretKey
+    appId
+    createdAt
+    updatedAt
+  }
+}
+
+query projectbyprops($updatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $createdAt: String, $projectStatus: String, $projectName: String, $deploy_id: ID, $notification_id: ID, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
+  projectbyprops: project_by_props(updatedAt: $updatedAt database_id: $database_id apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt projectStatus: $projectStatus projectName: $projectName deploy_id: $deploy_id notification_id: $notification_id projectType: $projectType cloud_id: $cloud_id user_id: $user_id wxConfig_id: $wxConfig_id schema_id: $schema_id) {
+    updatedAt
+    database_id {
+      dbPort
+      updatedAt
+      dbHost
+      dbUsername
+      dbPassword
+      createdAt
+      id
+
+
+      dbName
+    }
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    projectStatus
+    projectName
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    notification_id {
+      id
+      type
+      webhook
+      name
+    }
+    id
+    projectType
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+  }
+}
+
+query wxConfigbyprops($updatedAt: String, $mch_id: String, $appName: String, $notify_url: String, $appSecret: String, $createdAt: String, $appID: String, $token: String, $spbill_create_ip: String, $enter_url: String, $pay_api_key: String, $user_id: ID, $body: String, $welcome_words: String, $attach: String) {
+  wxConfigbyprops: wxConfig_by_props(updatedAt: $updatedAt mch_id: $mch_id appName: $appName notify_url: $notify_url appSecret: $appSecret createdAt: $createdAt appID: $appID token: $token spbill_create_ip: $spbill_create_ip enter_url: $enter_url pay_api_key: $pay_api_key user_id: $user_id body: $body welcome_words: $welcome_words attach: $attach) {
+    updatedAt
+    mch_id
+    appName
+    notify_url
+    appSecret
+    createdAt
+    appID
+    token
+    spbill_create_ip
+    enter_url
+    id
+    pay_api_key
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    body
+    welcome_words
+    attach
+  }
+}
+
+query apiGWPathbyid($id: ID) {
+  apiGWPathbyid: apiGWPath_by_id(id: $id) {
+    apiGWName
+    updatedAt
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    serviceType
+    id
+    apiGWPath
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    timeout
+    apiGWDesc
+    requestMethod
+    apiId
+  }
+}
+
+query orderbyid($id: ID) {
+  orderbyid: order_by_id(id: $id) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    createdAt
+  }
+}
+
+query cloudbyprops($user_id: ID, $cloudName: String, $secretId: String, $secretKey: String, $appId: String, $createdAt: String, $updatedAt: String) {
+  cloudbyprops: cloud_by_props(user_id: $user_id cloudName: $cloudName secretId: $secretId secretKey: $secretKey appId: $appId createdAt: $createdAt updatedAt: $updatedAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloudName
+    secretId
+    secretKey
+    appId
+    createdAt
+    updatedAt
+  }
+}
+
+query userbyprops($email: String, $updatedAt: String, $password: String, $telephone: String, $nickname: String, $username: String, $createdAt: String, $openid: String, $avatar: String) {
+  userbyprops: user_by_props(email: $email updatedAt: $updatedAt password: $password telephone: $telephone nickname: $nickname username: $username createdAt: $createdAt openid: $openid avatar: $avatar) {
+    email
+    updatedAt
+    password
+    telephone
+    nickname
+    username
+    createdAt
+    openid
+    id
+    avatar
+  }
+}
+
+query orderbyprops($user_id: ID, $createdAt: String) {
+  orderbyprops: order_by_props(user_id: $user_id createdAt: $createdAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    createdAt
+  }
+}
+
+query fcbyid($id: ID) {
+  fcbyid: fc_by_id(id: $id) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    fcType
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    createdAt
+    updatedAt
+  }
+}
+
+query databasebyprops($dbPort: String, $updatedAt: String, $dbHost: String, $dbUsername: String, $dbPassword: String, $createdAt: String, $user_id: ID, $schema_id: ID, $dbName: String) {
+  databasebyprops: database_by_props(dbPort: $dbPort updatedAt: $updatedAt dbHost: $dbHost dbUsername: $dbUsername dbPassword: $dbPassword createdAt: $createdAt user_id: $user_id schema_id: $schema_id dbName: $dbName) {
+    dbPort
+    updatedAt
+    dbHost
+    dbUsername
+    dbPassword
+    createdAt
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    dbName
+  }
+}
+
+mutation createuser($email: String, $updatedAt: String, $password: String, $telephone: String, $nickname: String, $username: String, $createdAt: String, $openid: String, $id: ID!, $avatar: String) {
+  createuser: create_user(email: $email updatedAt: $updatedAt password: $password telephone: $telephone nickname: $nickname username: $username createdAt: $createdAt openid: $openid id: $id avatar: $avatar) {
+    email
+    updatedAt
+    password
+    telephone
+    nickname
+    username
+    createdAt
+    openid
+    id
+    avatar
+  }
+}
+
+mutation createcloud($id: ID!, $user_id: ID, $cloudName: String, $secretId: String, $secretKey: String, $appId: String, $createdAt: String, $updatedAt: String) {
+  createcloud: create_cloud(id: $id user_id: $user_id cloudName: $cloudName secretId: $secretId secretKey: $secretKey appId: $appId createdAt: $createdAt updatedAt: $updatedAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloudName
+    secretId
+    secretKey
+    appId
+    createdAt
+    updatedAt
+  }
+}
+
+mutation updateschema($updatedAt: String, $schemaState: String, $authWrite: String, $authReadObjects: String, $createdAt: String, $authRead: String, $schemaName: String, $reference: String, $id: ID, $schemaData: String, $authReadWrite: String, $user_id: ID, $authWriteObjects: String) {
+  updateschema: update_schema(updatedAt: $updatedAt schemaState: $schemaState authWrite: $authWrite authReadObjects: $authReadObjects createdAt: $createdAt authRead: $authRead schemaName: $schemaName reference: $reference id: $id schemaData: $schemaData authReadWrite: $authReadWrite user_id: $user_id authWriteObjects: $authWriteObjects) {
+    updatedAt
+    schemaState
+    authWrite
+    authReadObjects
+    createdAt
+    authRead
+    schemaName
+    reference
+    id
+    schemaData
+    authReadWrite
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    authWriteObjects
+  }
+}
+
+mutation createapiGWPath($apiGWName: String, $updatedAt: String, $apiGWGroup_id: ID, $createdAt: String, $deploy_id: ID, $serviceType: String, $id: ID!, $apiGWPath: String, $user_id: ID, $timeout: Int, $apiGWDesc: String, $requestMethod: String, $apiId: String) {
+  createapiGWPath: create_apiGWPath(apiGWName: $apiGWName updatedAt: $updatedAt apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt deploy_id: $deploy_id serviceType: $serviceType id: $id apiGWPath: $apiGWPath user_id: $user_id timeout: $timeout apiGWDesc: $apiGWDesc requestMethod: $requestMethod apiId: $apiId) {
+    apiGWName
+    updatedAt
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    serviceType
+    id
+    apiGWPath
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    timeout
+    apiGWDesc
+    requestMethod
+    apiId
+  }
+}
+
+mutation createproject($updatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $createdAt: String, $projectStatus: String, $projectName: String, $deploy_id: ID, $notification_id: ID, $id: ID!, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
+  createproject: create_project(updatedAt: $updatedAt database_id: $database_id apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt projectStatus: $projectStatus projectName: $projectName deploy_id: $deploy_id notification_id: $notification_id id: $id projectType: $projectType cloud_id: $cloud_id user_id: $user_id wxConfig_id: $wxConfig_id schema_id: $schema_id) {
+    updatedAt
+    database_id {
+      dbPort
+      updatedAt
+      dbHost
+      dbUsername
+      dbPassword
+      createdAt
+      id
+
+
+      dbName
+    }
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    projectStatus
+    projectName
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    notification_id {
+      id
+      type
+      webhook
+      name
+    }
+    id
+    projectType
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+  }
+}
+
+mutation updatewxConfig($updatedAt: String, $mch_id: String, $appName: String, $notify_url: String, $appSecret: String, $createdAt: String, $appID: String, $token: String, $spbill_create_ip: String, $enter_url: String, $id: ID, $pay_api_key: String, $user_id: ID, $body: String, $welcome_words: String, $attach: String) {
+  updatewxConfig: update_wxConfig(updatedAt: $updatedAt mch_id: $mch_id appName: $appName notify_url: $notify_url appSecret: $appSecret createdAt: $createdAt appID: $appID token: $token spbill_create_ip: $spbill_create_ip enter_url: $enter_url id: $id pay_api_key: $pay_api_key user_id: $user_id body: $body welcome_words: $welcome_words attach: $attach) {
+    updatedAt
+    mch_id
+    appName
+    notify_url
+    appSecret
+    createdAt
+    appID
+    token
+    spbill_create_ip
+    enter_url
+    id
+    pay_api_key
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    body
+    welcome_words
+    attach
+  }
+}
+
+mutation deleteproject($updatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $createdAt: String, $projectStatus: String, $projectName: String, $deploy_id: ID, $notification_id: ID, $id: ID, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
+  deleteproject: delete_project(updatedAt: $updatedAt database_id: $database_id apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt projectStatus: $projectStatus projectName: $projectName deploy_id: $deploy_id notification_id: $notification_id id: $id projectType: $projectType cloud_id: $cloud_id user_id: $user_id wxConfig_id: $wxConfig_id schema_id: $schema_id)
+}
+
+mutation deleteapiGWGroup($environmentName: String, $userStatus: String, $defaultDomain: String, $updatedAt: String, $userDomain: String, $groupName: String, $createdAt: String, $frontType: String, $region: String, $serviceId: String, $status: String, $id: ID, $cloud_id: ID, $user_id: ID) {
+  deleteapiGWGroup: delete_apiGWGroup(environmentName: $environmentName userStatus: $userStatus defaultDomain: $defaultDomain updatedAt: $updatedAt userDomain: $userDomain groupName: $groupName createdAt: $createdAt frontType: $frontType region: $region serviceId: $serviceId status: $status id: $id cloud_id: $cloud_id user_id: $user_id)
+}
+
+mutation deletefc($id: ID, $user_id: ID, $cloud_id: ID, $fcType: String, $schema_id: ID, $wxConfig_id: ID, $createdAt: String, $updatedAt: String) {
+  deletefc: delete_fc(id: $id user_id: $user_id cloud_id: $cloud_id fcType: $fcType schema_id: $schema_id wxConfig_id: $wxConfig_id createdAt: $createdAt updatedAt: $updatedAt)
+}
+
+mutation updateuser($email: String, $updatedAt: String, $password: String, $telephone: String, $nickname: String, $username: String, $createdAt: String, $openid: String, $id: ID, $avatar: String) {
+  updateuser: update_user(email: $email updatedAt: $updatedAt password: $password telephone: $telephone nickname: $nickname username: $username createdAt: $createdAt openid: $openid id: $id avatar: $avatar) {
+    email
+    updatedAt
+    password
+    telephone
+    nickname
+    username
+    createdAt
+    openid
+    id
+    avatar
+  }
+}
+
+mutation updateproject($updatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $createdAt: String, $projectStatus: String, $projectName: String, $deploy_id: ID, $notification_id: ID, $id: ID, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
+  updateproject: update_project(updatedAt: $updatedAt database_id: $database_id apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt projectStatus: $projectStatus projectName: $projectName deploy_id: $deploy_id notification_id: $notification_id id: $id projectType: $projectType cloud_id: $cloud_id user_id: $user_id wxConfig_id: $wxConfig_id schema_id: $schema_id) {
+    updatedAt
+    database_id {
+      dbPort
+      updatedAt
+      dbHost
+      dbUsername
+      dbPassword
+      createdAt
+      id
+
+
+      dbName
+    }
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    projectStatus
+    projectName
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    notification_id {
+      id
+      type
+      webhook
+      name
+    }
+    id
+    projectType
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+  }
+}
+
+mutation updatefc($id: ID, $user_id: ID, $cloud_id: ID, $fcType: String, $schema_id: ID, $wxConfig_id: ID, $createdAt: String, $updatedAt: String) {
+  updatefc: update_fc(id: $id user_id: $user_id cloud_id: $cloud_id fcType: $fcType schema_id: $schema_id wxConfig_id: $wxConfig_id createdAt: $createdAt updatedAt: $updatedAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    fcType
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    createdAt
+    updatedAt
+  }
+}
+
+mutation createschema($updatedAt: String, $schemaState: String, $authWrite: String, $authReadObjects: String, $createdAt: String, $authRead: String, $schemaName: String, $reference: String, $id: ID!, $schemaData: String, $authReadWrite: String, $user_id: ID, $authWriteObjects: String) {
+  createschema: create_schema(updatedAt: $updatedAt schemaState: $schemaState authWrite: $authWrite authReadObjects: $authReadObjects createdAt: $createdAt authRead: $authRead schemaName: $schemaName reference: $reference id: $id schemaData: $schemaData authReadWrite: $authReadWrite user_id: $user_id authWriteObjects: $authWriteObjects) {
+    updatedAt
+    schemaState
+    authWrite
+    authReadObjects
+    createdAt
+    authRead
+    schemaName
+    reference
+    id
+    schemaData
+    authReadWrite
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    authWriteObjects
+  }
+}
+
+mutation deleteapiGWPath($apiGWName: String, $updatedAt: String, $apiGWGroup_id: ID, $createdAt: String, $deploy_id: ID, $serviceType: String, $id: ID, $apiGWPath: String, $user_id: ID, $timeout: Int, $apiGWDesc: String, $requestMethod: String, $apiId: String) {
+  deleteapiGWPath: delete_apiGWPath(apiGWName: $apiGWName updatedAt: $updatedAt apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt deploy_id: $deploy_id serviceType: $serviceType id: $id apiGWPath: $apiGWPath user_id: $user_id timeout: $timeout apiGWDesc: $apiGWDesc requestMethod: $requestMethod apiId: $apiId)
+}
+
+mutation updatedatabase($dbPort: String, $updatedAt: String, $dbHost: String, $dbUsername: String, $dbPassword: String, $createdAt: String, $id: ID, $user_id: ID, $schema_id: ID, $dbName: String) {
+  updatedatabase: update_database(dbPort: $dbPort updatedAt: $updatedAt dbHost: $dbHost dbUsername: $dbUsername dbPassword: $dbPassword createdAt: $createdAt id: $id user_id: $user_id schema_id: $schema_id dbName: $dbName) {
+    dbPort
+    updatedAt
+    dbHost
+    dbUsername
+    dbPassword
+    createdAt
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    dbName
+  }
+}
+
+mutation createapiGWGroup($environmentName: String, $userStatus: String, $defaultDomain: String, $updatedAt: String, $userDomain: String, $groupName: String, $createdAt: String, $frontType: String, $region: String, $serviceId: String, $status: String, $id: ID!, $cloud_id: ID, $user_id: ID) {
+  createapiGWGroup: create_apiGWGroup(environmentName: $environmentName userStatus: $userStatus defaultDomain: $defaultDomain updatedAt: $updatedAt userDomain: $userDomain groupName: $groupName createdAt: $createdAt frontType: $frontType region: $region serviceId: $serviceId status: $status id: $id cloud_id: $cloud_id user_id: $user_id) {
+    environmentName
+    userStatus
+    defaultDomain
+    updatedAt
+    userDomain
+    groupName
+    createdAt
+    frontType
+    region
+    serviceId
+    status
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+  }
+}
+
+mutation deletedatabase($dbPort: String, $updatedAt: String, $dbHost: String, $dbUsername: String, $dbPassword: String, $createdAt: String, $id: ID, $user_id: ID, $schema_id: ID, $dbName: String) {
+  deletedatabase: delete_database(dbPort: $dbPort updatedAt: $updatedAt dbHost: $dbHost dbUsername: $dbUsername dbPassword: $dbPassword createdAt: $createdAt id: $id user_id: $user_id schema_id: $schema_id dbName: $dbName)
+}
+
+mutation deletedeploy($description: String, $updatedAt: String, $cosBucketName: String, $memorySize: Int, $fc_id: ID, $createdAt: String, $subnetId: String, $cosObjectName: String, $region: String, $vpcId: String, $cosBucketRegion: String, $id: ID, $cloud_id: ID, $user_id: ID, $serviceName: String, $timeout: Int, $handler: String, $functionName: String) {
+  deletedeploy: delete_deploy(description: $description updatedAt: $updatedAt cosBucketName: $cosBucketName memorySize: $memorySize fc_id: $fc_id createdAt: $createdAt subnetId: $subnetId cosObjectName: $cosObjectName region: $region vpcId: $vpcId cosBucketRegion: $cosBucketRegion id: $id cloud_id: $cloud_id user_id: $user_id serviceName: $serviceName timeout: $timeout handler: $handler functionName: $functionName)
+}
+
+mutation createdatabase($dbPort: String, $updatedAt: String, $dbHost: String, $dbUsername: String, $dbPassword: String, $createdAt: String, $id: ID!, $user_id: ID, $schema_id: ID, $dbName: String) {
+  createdatabase: create_database(dbPort: $dbPort updatedAt: $updatedAt dbHost: $dbHost dbUsername: $dbUsername dbPassword: $dbPassword createdAt: $createdAt id: $id user_id: $user_id schema_id: $schema_id dbName: $dbName) {
+    dbPort
+    updatedAt
+    dbHost
+    dbUsername
+    dbPassword
+    createdAt
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    dbName
+  }
+}
+
+mutation deleteorder($id: ID, $user_id: ID, $createdAt: String) {
+  deleteorder: delete_order(id: $id user_id: $user_id createdAt: $createdAt)
+}
+
+mutation deletenotification($id: ID, $type: String, $webhook: String, $name: String) {
+  deletenotification: delete_notification(id: $id type: $type webhook: $webhook name: $name)
+}
+
+mutation deleteschema($updatedAt: String, $schemaState: String, $authWrite: String, $createdAt: String, $authRead: String, $schemaName: String, $reference: String, $id: ID, $schemaData: String, $authReadWrite: String, $user_id: ID) {
+  deleteschema: delete_schema(updatedAt: $updatedAt schemaState: $schemaState authWrite: $authWrite createdAt: $createdAt authRead: $authRead schemaName: $schemaName reference: $reference id: $id schemaData: $schemaData authReadWrite: $authReadWrite user_id: $user_id)
+}
+
+mutation deleteuser($email: String, $updatedAt: String, $password: String, $telephone: String, $nickname: String, $username: String, $createdAt: String, $openid: String, $id: ID, $avatar: String) {
+  deleteuser: delete_user(email: $email updatedAt: $updatedAt password: $password telephone: $telephone nickname: $nickname username: $username createdAt: $createdAt openid: $openid id: $id avatar: $avatar)
+}
+
+mutation createorder($id: ID!, $user_id: ID, $createdAt: String) {
+  createorder: create_order(id: $id user_id: $user_id createdAt: $createdAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    createdAt
+  }
+}
+
+mutation updateapiGWPath($apiGWName: String, $updatedAt: String, $apiGWGroup_id: ID, $createdAt: String, $deploy_id: ID, $serviceType: String, $id: ID, $apiGWPath: String, $user_id: ID, $timeout: Int, $apiGWDesc: String, $requestMethod: String, $apiId: String) {
+  updateapiGWPath: update_apiGWPath(apiGWName: $apiGWName updatedAt: $updatedAt apiGWGroup_id: $apiGWGroup_id createdAt: $createdAt deploy_id: $deploy_id serviceType: $serviceType id: $id apiGWPath: $apiGWPath user_id: $user_id timeout: $timeout apiGWDesc: $apiGWDesc requestMethod: $requestMethod apiId: $apiId) {
+    apiGWName
+    updatedAt
+    apiGWGroup_id {
+      environmentName
+      userStatus
+      defaultDomain
+      updatedAt
+      userDomain
+      groupName
+      createdAt
+      frontType
+      region
+      serviceId
+      status
+      id
+
+    }
+    createdAt
+    deploy_id {
+      description
+      updatedAt
+      cosBucketName
+      memorySize
+
+      createdAt
+      subnetId
+      cosObjectName
+      region
+      vpcId
+      cosBucketRegion
+      id
+
+
+      serviceName
+      timeout
+      handler
+      functionName
+    }
+    serviceType
+    id
+    apiGWPath
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    timeout
+    apiGWDesc
+    requestMethod
+    apiId
+  }
+}
+
+mutation createdeploy($description: String, $updatedAt: String, $cosBucketName: String, $memorySize: Int, $fc_id: ID, $createdAt: String, $subnetId: String, $cosObjectName: String, $region: String, $vpcId: String, $cosBucketRegion: String, $id: ID!, $cloud_id: ID, $user_id: ID, $serviceName: String, $timeout: Int, $handler: String, $functionName: String) {
+  createdeploy: create_deploy(description: $description updatedAt: $updatedAt cosBucketName: $cosBucketName memorySize: $memorySize fc_id: $fc_id createdAt: $createdAt subnetId: $subnetId cosObjectName: $cosObjectName region: $region vpcId: $vpcId cosBucketRegion: $cosBucketRegion id: $id cloud_id: $cloud_id user_id: $user_id serviceName: $serviceName timeout: $timeout handler: $handler functionName: $functionName) {
+    description
+    updatedAt
+    cosBucketName
+    memorySize
+    fc_id {
+      id
+
+
+      fcType
+
+
+      createdAt
+      updatedAt
+    }
+    createdAt
+    subnetId
+    cosObjectName
+    region
+    vpcId
+    cosBucketRegion
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    serviceName
+    timeout
+    handler
+    functionName
+  }
+}
+
+mutation createfc($id: ID!, $user_id: ID, $cloud_id: ID, $fcType: String, $schema_id: ID, $wxConfig_id: ID, $createdAt: String, $updatedAt: String) {
+  createfc: create_fc(id: $id user_id: $user_id cloud_id: $cloud_id fcType: $fcType schema_id: $schema_id wxConfig_id: $wxConfig_id createdAt: $createdAt updatedAt: $updatedAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    fcType
+    schema_id {
+      updatedAt
+      schemaState
+      authWrite
+      authReadObjects
+      createdAt
+      authRead
+      schemaName
+      reference
+      id
+      schemaData
+      authReadWrite
+
+      authWriteObjects
+    }
+    wxConfig_id {
+      updatedAt
+      mch_id
+      appName
+      notify_url
+      appSecret
+      createdAt
+      appID
+      token
+      spbill_create_ip
+      enter_url
+      id
+      pay_api_key
+
+      body
+      welcome_words
+      attach
+    }
+    createdAt
+    updatedAt
+  }
+}
+
+mutation updatecloud($id: ID, $user_id: ID, $cloudName: String, $secretId: String, $secretKey: String, $appId: String, $createdAt: String, $updatedAt: String) {
+  updatecloud: update_cloud(id: $id user_id: $user_id cloudName: $cloudName secretId: $secretId secretKey: $secretKey appId: $appId createdAt: $createdAt updatedAt: $updatedAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    cloudName
+    secretId
+    secretKey
+    appId
+    createdAt
+    updatedAt
+  }
+}
+
+mutation createnotification($id: ID!, $type: String, $webhook: String, $name: String) {
+  createnotification: create_notification(id: $id type: $type webhook: $webhook name: $name) {
+    id
+    type
+    webhook
+    name
+  }
+}
+
+mutation updatenotification($id: ID, $type: String, $webhook: String, $name: String) {
+  updatenotification: update_notification(id: $id type: $type webhook: $webhook name: $name) {
+    id
+    type
+    webhook
+    name
+  }
+}
+
+mutation updateorder($id: ID, $user_id: ID, $createdAt: String) {
+  updateorder: update_order(id: $id user_id: $user_id createdAt: $createdAt) {
+    id
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    createdAt
+  }
+}
+
+mutation deletecloud($id: ID, $user_id: ID, $cloudName: String, $secretId: String, $secretKey: String, $appId: String, $createdAt: String, $updatedAt: String) {
+  deletecloud: delete_cloud(id: $id user_id: $user_id cloudName: $cloudName secretId: $secretId secretKey: $secretKey appId: $appId createdAt: $createdAt updatedAt: $updatedAt)
+}
+
+mutation deletewxConfig($updatedAt: String, $mch_id: String, $appName: String, $notify_url: String, $appSecret: String, $createdAt: String, $appID: String, $token: String, $spbill_create_ip: String, $enter_url: String, $id: ID, $pay_api_key: String, $user_id: ID, $body: String, $welcome_words: String, $attach: String) {
+  deletewxConfig: delete_wxConfig(updatedAt: $updatedAt mch_id: $mch_id appName: $appName notify_url: $notify_url appSecret: $appSecret createdAt: $createdAt appID: $appID token: $token spbill_create_ip: $spbill_create_ip enter_url: $enter_url id: $id pay_api_key: $pay_api_key user_id: $user_id body: $body welcome_words: $welcome_words attach: $attach)
+}
+
+mutation updatedeploy($description: String, $updatedAt: String, $cosBucketName: String, $memorySize: Int, $fc_id: ID, $createdAt: String, $subnetId: String, $cosObjectName: String, $region: String, $vpcId: String, $cosBucketRegion: String, $id: ID, $cloud_id: ID, $user_id: ID, $serviceName: String, $timeout: Int, $handler: String, $functionName: String) {
+  updatedeploy: update_deploy(description: $description updatedAt: $updatedAt cosBucketName: $cosBucketName memorySize: $memorySize fc_id: $fc_id createdAt: $createdAt subnetId: $subnetId cosObjectName: $cosObjectName region: $region vpcId: $vpcId cosBucketRegion: $cosBucketRegion id: $id cloud_id: $cloud_id user_id: $user_id serviceName: $serviceName timeout: $timeout handler: $handler functionName: $functionName) {
+    description
+    updatedAt
+    cosBucketName
+    memorySize
+    fc_id {
+      id
+
+
+      fcType
+
+
+      createdAt
+      updatedAt
+    }
+    createdAt
+    subnetId
+    cosObjectName
+    region
+    vpcId
+    cosBucketRegion
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    serviceName
+    timeout
+    handler
+    functionName
+  }
+}
+
+mutation updateapiGWGroup($environmentName: String, $userStatus: String, $defaultDomain: String, $updatedAt: String, $userDomain: String, $groupName: String, $createdAt: String, $frontType: String, $region: String, $serviceId: String, $status: String, $id: ID, $cloud_id: ID, $user_id: ID) {
+  updateapiGWGroup: update_apiGWGroup(environmentName: $environmentName userStatus: $userStatus defaultDomain: $defaultDomain updatedAt: $updatedAt userDomain: $userDomain groupName: $groupName createdAt: $createdAt frontType: $frontType region: $region serviceId: $serviceId status: $status id: $id cloud_id: $cloud_id user_id: $user_id) {
+    environmentName
+    userStatus
+    defaultDomain
+    updatedAt
+    userDomain
+    groupName
+    createdAt
+    frontType
+    region
+    serviceId
+    status
+    id
+    cloud_id {
+      id
+
+      cloudName
+      secretId
+      secretKey
+      appId
+      createdAt
+      updatedAt
+    }
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+  }
+}
+
+mutation createwxConfig($updatedAt: String, $mch_id: String, $appName: String, $notify_url: String, $appSecret: String, $createdAt: String, $appID: String, $token: String, $spbill_create_ip: String, $enter_url: String, $id: ID!, $pay_api_key: String, $user_id: ID, $body: String, $welcome_words: String, $attach: String) {
+  createwxConfig: create_wxConfig(updatedAt: $updatedAt mch_id: $mch_id appName: $appName notify_url: $notify_url appSecret: $appSecret createdAt: $createdAt appID: $appID token: $token spbill_create_ip: $spbill_create_ip enter_url: $enter_url id: $id pay_api_key: $pay_api_key user_id: $user_id body: $body welcome_words: $welcome_words attach: $attach) {
+    updatedAt
+    mch_id
+    appName
+    notify_url
+    appSecret
+    createdAt
+    appID
+    token
+    spbill_create_ip
+    enter_url
+    id
+    pay_api_key
+    user_id {
+      email
+      updatedAt
+      password
+      telephone
+      nickname
+      username
+      createdAt
+      openid
+      id
+      avatar
+    }
+    body
+    welcome_words
+    attach
+  }
+}

+ 9 - 10
src/app/App.jsx

@@ -20,7 +20,6 @@ import './index.css'
 import Create from "./graphqlService/component/schema/Create";
 import WxCreate from "./wechatService/wxCreate/WxCreate";
 
-
 import {SHOW_ALL_SCHEMA, SHOW_CASE_SCHEMA, SHOW_PROJECT, CASE_AND_PROJECT} from "../gql";
 import axios from 'axios';
 import {getCookie, setCookie} from "../cookie";
@@ -370,8 +369,8 @@ class GraphqlSidebar extends Component {
                                 case 'ecommerce' :
                                     localStorage.setItem('ecommerce', project.schema_id.schemaData);
                                     break;
-                                case 'subscribe':
-                                    localStorage.setItem('subscribe', project.schema_id.schemaData);
+                                case 'order':
+                                    localStorage.setItem('order', project.schema_id.schemaData);
                                     break;
                                 case 'bills':
                                     localStorage.setItem('bills', project.schema_id.schemaData);
@@ -405,15 +404,15 @@ class GraphqlSidebar extends Component {
                                         id="Case Show"/></span></span>}>
                                     {
                                         data.caseProject.map((project) =>
-                                            <Menu.Item key={project.schema_id.schemaName}>
+                                            <Menu.Item key={project.projectName}>
                                                 <Link to={{
-                                                    pathname: `/graphql-service/trial-case/${project.schema_id.schemaName}`,
+                                                    pathname: `/graphql-service/trial-case/${project.projectName}`,
                                                     state: {
-                                                        schemaName: project.schema_id.schemaName,
+                                                        schemaName: project.projectName,
                                                         schemaID: project.schema_id.id,
                                                         projectID: project.id
                                                     }
-                                                }}>{project.schema_id.schemaName}</Link>
+                                                }}><FormattedMessage id={project.projectName}/></Link>
                                             </Menu.Item>)
                                     }
                                 </SubMenu>
@@ -506,7 +505,7 @@ class WxConfigSiderbar extends Component {
                                     {
                                         data.caseProject.map((project) => {
                                             if (project) {
-                                                let appName = project.wxConfig_id.appName;
+                                                let appName = project.projectName;
                                                 let configID = project.wxConfig_id.id;
                                                 let projectID = project.id;
                                                 return (
@@ -518,7 +517,7 @@ class WxConfigSiderbar extends Component {
                                                                 configID,
                                                                 projectID
                                                             }
-                                                        }}>{appName}</Link>
+                                                        }}><FormattedMessage id={appName}/></Link>
                                                     </Menu.Item>
                                                 )
                                             }
@@ -544,7 +543,7 @@ class WxConfigSiderbar extends Component {
                                     {
                                         data.project.map((project) => {
                                             if (project) {
-                                                let appName = project.wxConfig_id.appName;
+                                                let appName = project.projectName;
                                                 let configID = project.wxConfig_id.id;
                                                 let projectID = project.id;
                                                 return (

+ 196 - 167
src/app/common/deploy/tencent/APIGroupCard.js

@@ -1,11 +1,14 @@
 import React, {Component} from 'react';
-import {Input, Collapse, Button, Radio, Icon, Tooltip} from 'antd';
-import {ADD_APIGROUP, UPDATE_APIGROUP, UPDATE_PROJECT_GROUP} from "../../../../gql";
+import {Input, Collapse, Button, Radio, Icon, Tooltip, Spin} from 'antd';
+import {ADD_APIGROUP, GET_PROJECT, UPDATE_APIGROUP, UPDATE_PROJECT_GROUP} from "../../../../gql";
 import {request} from 'graphql-request'
 import {idGen} from "../../../../func";
 import {graphqlUrl} from "../../../../config";
 import {manageUsers} from "../../../../config";
 import {FormattedMessage} from 'react-intl';
+import {Query} from "react-apollo";
+import gql from "graphql-tag";
+
 const Panel = Collapse.Panel;
 
 // 如需改变显示,请在此处 value 处更改
@@ -54,7 +57,7 @@ const shiftPrefix = (prefix, value) => {
 class APIGroupCard extends Component {
     constructor(props) {
         super(props);
-        if(props.group !== '' && props.group !== null) {
+        if (props.group !== '' && props.group !== null) {
             let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = props.group;
             this.state = {
                 showOK: false,
@@ -81,19 +84,19 @@ class APIGroupCard extends Component {
     }
 
     componentWillReceiveProps(next) {
-        if(next.group !== '' && next.group !== null) {
+        if (next.group !== '' && next.group !== null) {
             let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = next.group;
-            this.setState( {
+            this.setState({
                 groupName,
                 environmentName,
                 defaultDomain,
                 frontType,
                 userDomain,
                 userStatus,
-                groupRegion: next.region === '' ? region: next.region
+                groupRegion: next.region === '' ? region : next.region
             })
         } else {
-            this.setState ( {
+            this.setState({
                 groupName: 'graphql_endpoint',
                 environmentName: 'test',
                 defaultDomain: '',
@@ -145,11 +148,11 @@ class APIGroupCard extends Component {
                             updatedAt: new Date().getTime(),
                             apiGWGroup_id: id
                         }).then(data => {
-                            if(data.update_project !== null)
+                            if (data.update_project !== null)
                                 this.props.stepByStep(2);
                         });
                     }
-                    setTimeout(()=>{
+                    setTimeout(() => {
                         this.setState({
                             showOK: false
                         })
@@ -177,7 +180,7 @@ class APIGroupCard extends Component {
                         });
                         this.props.stepByStep(2);
                     }
-                    setTimeout(()=>{
+                    setTimeout(() => {
                         this.setState({
                             showOK: false
                         })
@@ -197,172 +200,198 @@ class APIGroupCard extends Component {
         };
 
         return (
-            <div>
-                <div style={{marginBottom: 10}}>
-                            <span className='vice-title'>
-                                {
-                                    youMustFill['groupName']?
-                                        <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
-                                        :
-                                        ''
-                                }
-                                <FormattedMessage id={valueToKey['groupName']}/>
-                                &nbsp;
-                                <Tooltip placement="top" title={toolTipTitle['groupName']}>
-                                    <Icon type="question-circle"/>
-                                </Tooltip>
-                            </span>
-                    <Input value={this.state.groupName} style={{width: 400}}
-                           onChange={this.switchConfig('groupName')}/>
-                </div>
+            <Query query={gql(GET_PROJECT)} variables={{id: this.props.projectID}}>
+                {
+                    ({loading, error, data}) => {
+                        if (loading) {
+                            return <Spin style={{marginLeft: 3}}/>
+                        }
+                        if (error) {
+                            return 'error!';
+                        }
+                        return (
+                            <div>
+                                <div style={{marginBottom: 10}}>
+                                    <span className='vice-title'>
+                                        {
+                                            youMustFill['groupName'] ?
+                                                <span
+                                                    style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
+                                                :
+                                                ''
+                                        }
+                                        <FormattedMessage id={valueToKey['groupName']}/>
+                                        &nbsp;
+                                        <Tooltip placement="top" title={toolTipTitle['groupName']}>
+                                            <Icon type="question-circle"/>
+                                        </Tooltip>
+                                    </span>
+                                    <Input value={this.state.groupName} style={{width: 400}}
+                                           onChange={this.switchConfig('groupName')}/>
+                                </div>
 
-                <div style={{marginBottom: 10}}>
-                            <span className='vice-title'>
-                                {
-                                    youMustFill['region']?
-                                        <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
-                                        :
-                                        ''
-                                }
-                                <FormattedMessage id={valueToKey['region']}/>
-                                &nbsp;
-                                <Tooltip placement="top" title={toolTipTitle['region']}>
-                                    <Icon type="question-circle"/>
-                                </Tooltip>
-                            </span>
-                    <Radio.Group onChange={(e)=>{
-                        // 如果不想一变所有都变,就将 onchange 改成
-                        // onChange={this.switchConfig('groupRegion')}
-                        this.props.switchRegion(e);
-                    }} value={removePrefix('ap-', this.state.groupRegion)} buttonStyle="solid">
-                        <Radio.Button value="guangzhou"><FormattedMessage id="Guangzhou"/></Radio.Button>
-                        <Radio.Button value="shanghai"><FormattedMessage id="Shanghai"/></Radio.Button>
-                        <Radio.Button value="beijing"><FormattedMessage id="Beijing"/></Radio.Button>
-                        <Radio.Button value="chengdu"><FormattedMessage id="Chengdu"/></Radio.Button>
-                    </Radio.Group>
-                </div>
+                                <div style={{marginBottom: 10}}>
+                                    <span className='vice-title'>
+                                        {
+                                            youMustFill['region'] ?
+                                                <span
+                                                    style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
+                                                :
+                                                ''
+                                        }
+                                        <FormattedMessage id={valueToKey['region']}/>
+                                        &nbsp;
+                                        <Tooltip placement="top" title={toolTipTitle['region']}>
+                                            <Icon type="question-circle"/>
+                                        </Tooltip>
+                                    </span>
+                                    <Radio.Group onChange={(e) => {
+                                        // 如果不想一变所有都变,就将 onchange 改成
+                                        // onChange={this.switchConfig('groupRegion')}
+                                        this.props.switchRegion(e);
+                                    }} value={removePrefix('ap-', this.state.groupRegion)} buttonStyle="solid">
+                                        <Radio.Button value="guangzhou"><FormattedMessage id="Guangzhou"/></Radio.Button>
+                                        <Radio.Button value="shanghai"><FormattedMessage id="Shanghai"/></Radio.Button>
+                                        <Radio.Button value="beijing"><FormattedMessage id="Beijing"/></Radio.Button>
+                                        <Radio.Button value="chengdu"><FormattedMessage id="Chengdu"/></Radio.Button>
+                                    </Radio.Group>
+                                </div>
 
-                <div style={{marginBottom: 10}}>
-                            <span className='vice-title'>
-                                {
-                                    youMustFill['environmentName']?
-                                        <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
-                                        :
-                                        ''
-                                }
-                                <FormattedMessage id={valueToKey['environmentName']}/>
-                                &nbsp;
-                                <Tooltip placement="top" title={toolTipTitle['environmentName']}>
-                                    <Icon type="question-circle"/>
-                                </Tooltip>
-                            </span>
-                    <Radio.Group onChange={this.switchConfig('environmentName')} defaultValue={this.state.environmentName}
-                                 buttonStyle="solid">
-                        <Radio.Button value="test"><FormattedMessage id="test"/></Radio.Button>
-                        <Radio.Button value="prepub"><FormattedMessage id="prepub"/></Radio.Button>
-                        <Radio.Button value="release"><FormattedMessage id="release"/></Radio.Button>
-                    </Radio.Group>
-                </div>
-                <Collapse bordered={false}>
-                    <Panel header=<FormattedMessage id="Want more options?"/> style={customPanelStyle}>
+                                <div style={{marginBottom: 10}}>
+                                    <span className='vice-title'>
+                                        {
+                                            youMustFill['environmentName'] ?
+                                                <span
+                                                    style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
+                                                :
+                                                ''
+                                        }
+                                        <FormattedMessage id={valueToKey['environmentName']}/>
+                                        &nbsp;
+                                        <Tooltip placement="top" title={toolTipTitle['environmentName']}>
+                                            <Icon type="question-circle"/>
+                                        </Tooltip>
+                                    </span>
+                                    <Radio.Group onChange={this.switchConfig('environmentName')}
+                                                 defaultValue={this.state.environmentName}
+                                                 buttonStyle="solid">
+                                        <Radio.Button value="test"><FormattedMessage id="test"/></Radio.Button>
+                                        <Radio.Button value="prepub"><FormattedMessage id="prepub"/></Radio.Button>
+                                        <Radio.Button value="release"><FormattedMessage id="release"/></Radio.Button>
+                                    </Radio.Group>
+                                </div>
+                                <Collapse bordered={false}>
+                                    <Panel header={<FormattedMessage id="Want more options?"/>}
+                                           style={customPanelStyle}>
 
-                        <div style={{marginBottom: 10}}>
-                            <span className='vice-title'>
-                                {
-                                    youMustFill['frontType']?
-                                        <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
-                                        :
-                                        ''
-                                }
-                                <FormattedMessage id={valueToKey['frontType']}/>
-                                &nbsp;
-                                <Tooltip placement="top" title={toolTipTitle['frontType']}>
-                                    <Icon type="question-circle"/>
-                                </Tooltip>
-                            </span>
-                            <Radio.Group onChange={this.switchConfig('frontType')} defaultValue={this.state.frontType}
-                                         buttonStyle="solid">
-                                <Radio.Button value="http">http</Radio.Button>
-                                <Radio.Button value="https">https</Radio.Button>
-                                <Radio.Button value="http&https">http&https</Radio.Button>
-                            </Radio.Group>
-                        </div>
-                        {/*<div style={{marginBottom: 10}}>*/}
-                            {/*<span className='vice-title'>{valueToKey['defaultDomain']}*/}
-                                {/*&nbsp;*/}
-                                {/*<Tooltip placement="top" title={toolTipTitle['defaultDomain']}>*/}
-                                    {/*<Icon type="question-circle"/>*/}
-                                {/*</Tooltip>*/}
-                            {/*</span>*/}
-                            {/*<Input value={this.state.defaultDomain} style={{width: 400}} disabled/>*/}
-                        {/*</div>*/}
+                                        <div style={{marginBottom: 10}}>
+                                            <span className='vice-title'>
+                                                {
+                                                    youMustFill['frontType'] ?
+                                                        <span style={{
+                                                            color: 'red',
+                                                            display: 'inline',
+                                                            marginRight: 10
+                                                        }}>*</span>
+                                                        :
+                                                        ''
+                                                }
+                                                <FormattedMessage id={valueToKey['frontType']}/>
+                                                &nbsp;
+                                                <Tooltip placement="top" title={toolTipTitle['frontType']}>
+                                                    <Icon type="question-circle"/>
+                                                </Tooltip>
+                                            </span>
+                                            <Radio.Group onChange={this.switchConfig('frontType')}
+                                                         defaultValue={this.state.frontType}
+                                                         buttonStyle="solid">
+                                                <Radio.Button value="http">http</Radio.Button>
+                                                <Radio.Button value="https">https</Radio.Button>
+                                                <Radio.Button value="http&https">http&https</Radio.Button>
+                                            </Radio.Group>
+                                        </div>
+                                        {/*<div style={{marginBottom: 10}}>*/}
+                                        {/*<span className='vice-title'>{valueToKey['defaultDomain']}*/}
+                                        {/*&nbsp;*/}
+                                        {/*<Tooltip placement="top" title={toolTipTitle['defaultDomain']}>*/}
+                                        {/*<Icon type="question-circle"/>*/}
+                                        {/*</Tooltip>*/}
+                                        {/*</span>*/}
+                                        {/*<Input value={this.state.defaultDomain} style={{width: 400}} disabled/>*/}
+                                        {/*</div>*/}
 
-                        <div style={{marginBottom: 10}}>
-                            <span className='vice-title'>
-                                {
-                                    youMustFill['userDomain']?
-                                        <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
-                                        :
-                                        ''
-                                }
-                                <FormattedMessage id={valueToKey['userDomain']}/>
-                                &nbsp;
-                                <Tooltip placement="top" title={toolTipTitle['userDomain']}>
-                                    <Icon type="question-circle"/>
-                                </Tooltip>
-                            </span>
-                            <Input value={this.state.userDomain} style={{width: 400}}
-                                   onChange={this.switchConfig('userDomain')}/>
-                        </div>
-                        {/*<div style={{marginBottom: 10}}>*/}
-                            {/*<span className='vice-title'>{valueToKey['userStatus']}*/}
-                                {/*&nbsp;*/}
-                                {/*<Tooltip placement="top" title={toolTipTitle['userStatus']}>*/}
-                                    {/*<Icon type="question-circle"/>*/}
-                                {/*</Tooltip>*/}
-                            {/*</span>*/}
-                            {/*<Radio.Group onChange={this.switchConfig('userStatus')} defaultValue={this.state.userStatus}*/}
-                                         {/*buttonStyle="solid">*/}
-                                {/*<Radio.Button value="open">open</Radio.Button>*/}
-                                {/*<Radio.Button value="close">close</Radio.Button>*/}
-                            {/*</Radio.Group>*/}
-                        {/*</div>*/}
-                    </Panel>
-                </Collapse>
-                {
-                    manageUsers.includes(this.props.userID)?
-                        <div>
-                            <Button onClick={()=>{
-                                const id = idGen('group');
-                                this.ok(id);
-                                this.props.pass(id, 'group');
-                            }} type='primary'><FormattedMessage id="save"/></Button>
-                            {
-                                this.state.showOK === true?
-                                    <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
-                                    :
-                                    ''
-                            }
-                        </div>
-                        :
-                        this.props.trialcase?
-                            ''
-                            :
-                            <div>
-                                <Button onClick={()=>{
-                                    const id = idGen('group');
-                                    this.ok(id);
-                                    this.props.pass(id, 'group');
-                                }} type='primary'><FormattedMessage id="save"/></Button>
+                                        <div style={{marginBottom: 10}}>
+                                            <span className='vice-title'>
+                                                {
+                                                    youMustFill['userDomain'] ?
+                                                        <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
+                                                        :
+                                                        ''
+                                                }
+                                                <FormattedMessage id={valueToKey['userDomain']}/>
+                                                &nbsp;
+                                                <Tooltip placement="top" title={toolTipTitle['userDomain']}>
+                                                    <Icon type="question-circle"/>
+                                                </Tooltip>
+                                            </span>
+                                            <Input value={this.state.userDomain} style={{width: 400}}
+                                                   onChange={this.switchConfig('userDomain')}/>
+                                        </div>
+                                        {/*<div style={{marginBottom: 10}}>*/}
+                                        {/*<span className='vice-title'>{valueToKey['userStatus']}*/}
+                                        {/*&nbsp;*/}
+                                        {/*<Tooltip placement="top" title={toolTipTitle['userStatus']}>*/}
+                                        {/*<Icon type="question-circle"/>*/}
+                                        {/*</Tooltip>*/}
+                                        {/*</span>*/}
+                                        {/*<Radio.Group onChange={this.switchConfig('userStatus')} defaultValue={this.state.userStatus}*/}
+                                        {/*buttonStyle="solid">*/}
+                                        {/*<Radio.Button value="open">open</Radio.Button>*/}
+                                        {/*<Radio.Button value="close">close</Radio.Button>*/}
+                                        {/*</Radio.Group>*/}
+                                        {/*</div>*/}
+                                    </Panel>
+                                </Collapse>
                                 {
-                                    this.state.showOK === true?
-                                        <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
+                                    manageUsers.includes(this.props.userID) ?
+                                        <div>
+                                            <Button onClick={() => {
+                                                const id = idGen('group');
+                                                this.ok(id);
+                                                this.props.pass(id, 'group');
+                                            }} type='primary'><FormattedMessage id="save"/></Button>
+                                            {
+                                                this.state.showOK === true ?
+                                                    <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
+                                                    :
+                                                    ''
+                                            }
+                                        </div>
                                         :
-                                        ''
+                                        this.props.trialcase ?
+                                            ''
+                                            :
+                                            <div>
+                                                <Button onClick={() => {
+                                                    const id = idGen('group');
+                                                    this.ok(id);
+                                                    this.props.pass(id, 'group');
+                                                }} type='primary'><FormattedMessage id="save"/></Button>
+                                                {
+                                                    this.state.showOK === true ?
+                                                        <Icon type="check-circle" theme="twoTone"
+                                                              twoToneColor="#52c41a"/>
+                                                        :
+                                                        ''
+                                                }
+                                            </div>
                                 }
                             </div>
+                        )
+                    }
                 }
-            </div>
+            </Query>
+
         )
     }
 }

+ 1 - 1
src/app/common/deploy/tencent/APIPathCard.js

@@ -153,7 +153,7 @@ class APIPathCard extends Component {
         return (
             <div>
                 <Collapse bordered={false}>
-                    <Panel header=<FormattedMessage id="Want more options?"/> style={customPanelStyle}>
+                    <Panel header={<FormattedMessage id="Want more options?"/>} style={customPanelStyle}>
                         {
                             this.state.configs.map(config => (
                                 <div key={config} style={{marginBottom: 10}}>

+ 122 - 103
src/app/common/deploy/tencent/DeployCard.js

@@ -1,12 +1,13 @@
 import React, {Component} from 'react';
 import {FormattedMessage} from 'react-intl';
-import {Input, Radio, Collapse, Button, Icon, Tooltip} from 'antd';
-import {ADD_DEPLOY, UPDATE_DEPLOY, UPDATE_PROJECT_DEPLOY_AND_CLOUD} from "../../../../gql";
+import {Input, Radio, Collapse, Button, Icon, Tooltip, Spin} from 'antd';
+import {ADD_DEPLOY, GET_PROJECT, UPDATE_DEPLOY, UPDATE_PROJECT_DEPLOY_AND_CLOUD} from "../../../../gql";
 import {request} from 'graphql-request'
 import {idGen} from "../../../../func";
 import {graphqlUrl} from "../../../../config";
 import {manageUsers} from "../../../../config";
-
+import {Query} from "react-apollo";
+import gql from "graphql-tag";
 const Panel = Collapse.Panel;
 
 // 如需改变显示,请在此处 value 处更改
@@ -165,9 +166,9 @@ class DeployCard extends Component {
                             id: this.props.projectID,
                             updatedAt: new Date().getTime(),
                             deploy_id: id,
-                            cloud_id: this.props.cloudID
+                            cloud_id: this.props.cloudID,
+                            projectStatus: 'functioned'
                         }).then(data => {
-                            console.log('write back',data);
                             if(data.update_project !== null)
                                 this.props.stepByStep(1);
                         })
@@ -230,26 +231,36 @@ class DeployCard extends Component {
         };
 
         return (
-            <div>
-                <div style={{marginBottom: 10}}>
-                    <span className='vice-title'>
-                        {
-                            youMustFill['functionName']?
-                                <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
-                                :
-                                ''
+            <Query query={gql(GET_PROJECT)} variables={{id: this.props.projectID}}>
+                {
+                    ({loading, error, data}) => {
+                        if (loading) {
+                            return <Spin style={{marginLeft: 3}}/>
                         }
-                        <FormattedMessage id={valueToKey['functionName']}/>
-                        &nbsp;
-                        <Tooltip placement="top" title={toolTipTitle['functionName']}>
-                            <Icon type="question-circle"/>
-                        </Tooltip>
-                    </span>
-                    <Input value={this.state.functionName} style={{width: 400}}
-                           onChange={this.switchConfig('functionName')}/>
-                </div>
-                <div style={{marginBottom: 10}}>
-                    <span className='vice-title'>
+                        if (error) {
+                            return 'error!';
+                        }
+                        return (
+                            <div>
+                                <div style={{marginBottom: 10}}>
+                                    <span className='vice-title'>
+                                        {
+                                            youMustFill['functionName']?
+                                                <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
+                                                :
+                                                ''
+                                        }
+                                        <FormattedMessage id={valueToKey['functionName']}/>
+                                        &nbsp;
+                                        <Tooltip placement="top" title={toolTipTitle['functionName']}>
+                                            <Icon type="question-circle"/>
+                                        </Tooltip>
+                                    </span>
+                                    <Input value={this.state.functionName} style={{width: 400}}
+                                           onChange={this.switchConfig('functionName')}/>
+                                </div>
+                                <div style={{marginBottom: 10}}>
+                                    <span className='vice-title'>
                         {
                             youMustFill['region']?
                                 <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
@@ -262,20 +273,20 @@ class DeployCard extends Component {
                             <Icon type="question-circle"/>
                         </Tooltip>
                     </span>
-                    <Radio.Group onChange={(e) => {
-                        this.props.switchRegion(e);
-                    }} defaultValue={this.state.region} value={removePrefix('ap-', this.state.region)}
-                                 buttonStyle="solid">
-                        <Radio.Button value="guangzhou"><FormattedMessage id="Guangzhou"/></Radio.Button>
-                        <Radio.Button value="shanghai"><FormattedMessage id="Shanghai"/></Radio.Button>
-                        <Radio.Button value="beijing"><FormattedMessage id="Beijing"/></Radio.Button>
-                        <Radio.Button value="chengdu"><FormattedMessage id="Chengdu"/></Radio.Button>
-                    </Radio.Group>
-                </div>
-                <Collapse bordered={false}>
-                    <Panel header=<FormattedMessage id="Want more options?"/> style={customPanelStyle}>
-                        <div style={{marginBottom: 10}}>
-                            <span className='vice-title'>
+                                    <Radio.Group onChange={(e) => {
+                                        this.props.switchRegion(e);
+                                    }} defaultValue={this.state.region} value={removePrefix('ap-', this.state.region)}
+                                                 buttonStyle="solid">
+                                        <Radio.Button value="guangzhou"><FormattedMessage id="Guangzhou"/></Radio.Button>
+                                        <Radio.Button value="shanghai"><FormattedMessage id="Shanghai"/></Radio.Button>
+                                        <Radio.Button value="beijing"><FormattedMessage id="Beijing"/></Radio.Button>
+                                        <Radio.Button value="chengdu"><FormattedMessage id="Chengdu"/></Radio.Button>
+                                    </Radio.Group>
+                                </div>
+                                <Collapse bordered={false}>
+                                    <Panel header={<FormattedMessage id="Want more options?"/>} style={customPanelStyle}>
+                                    <div style={{marginBottom: 10}}>
+                                    <span className='vice-title'>
                                 {
                                     youMustFill['cosBucketRegion']?
                                         <span style={{color: 'red', display: 'inline', marginRight: 10}}>*</span>
@@ -288,32 +299,32 @@ class DeployCard extends Component {
                                     <Icon type="question-circle"/>
                                 </Tooltip>
                             </span>
-                            <Radio.Group onChange={(e) => {
-                                // 如果不想一变所有都变,就将 onchange 改成
-                                // onChange={this.switchConfig('cosBucketRegion')}
-                                this.props.switchRegion(e);
-                            }} defaultValue={this.state.region}
-                                         value={removePrefix('ap-', this.state.cosBucketRegion)} buttonStyle="solid">
-                                <Radio.Button value="guangzhou"><FormattedMessage id="Guangzhou"/></Radio.Button>
-                                <Radio.Button value="shanghai"><FormattedMessage id="Shanghai"/></Radio.Button>
-                                <Radio.Button value="beijing"><FormattedMessage id="Beijing"/></Radio.Button>
-                                <Radio.Button value="chengdu"><FormattedMessage id="Chengdu"/></Radio.Button>
-                            </Radio.Group>
-                        </div>
-                        {/*腾讯云为空字符串,不显示,这里未作区分*/}
-                        {/*<div style={{marginBottom: 10}}>*/}
-                        {/*<span className='vice-title'>{valueToKey['serviceName']}*/}
-                        {/*<span> </span>*/}
-                        {/*<Tooltip placement="top" title={toolTipTitle['serviceName']}>*/}
-                        {/*<Icon type="question-circle"/>*/}
-                        {/*</Tooltip>*/}
-                        {/*</span>*/}
-                        {/*<Input value={this.state.serviceName} style={{width: 200}} disabled*/}
-                        {/*onChange={this.switchConfig('serviceName')}/>*/}
-                        {/*</div>*/}
-                        {
-                            this.state.configs.map(config => (
-                                <div key={config} style={{marginBottom: 10}}>
+                                        <Radio.Group onChange={(e) => {
+                                            // 如果不想一变所有都变,就将 onchange 改成
+                                            // onChange={this.switchConfig('cosBucketRegion')}
+                                            this.props.switchRegion(e);
+                                        }} defaultValue={this.state.region}
+                                                     value={removePrefix('ap-', this.state.cosBucketRegion)} buttonStyle="solid">
+                                            <Radio.Button value="guangzhou"><FormattedMessage id="Guangzhou"/></Radio.Button>
+                                            <Radio.Button value="shanghai"><FormattedMessage id="Shanghai"/></Radio.Button>
+                                            <Radio.Button value="beijing"><FormattedMessage id="Beijing"/></Radio.Button>
+                                            <Radio.Button value="chengdu"><FormattedMessage id="Chengdu"/></Radio.Button>
+                                        </Radio.Group>
+                                    </div>
+                                    {/*腾讯云为空字符串,不显示,这里未作区分*/}
+                                    {/*<div style={{marginBottom: 10}}>*/}
+                                    {/*<span className='vice-title'>{valueToKey['serviceName']}*/}
+                                    {/*<span> </span>*/}
+                                    {/*<Tooltip placement="top" title={toolTipTitle['serviceName']}>*/}
+                                    {/*<Icon type="question-circle"/>*/}
+                                    {/*</Tooltip>*/}
+                                    {/*</span>*/}
+                                    {/*<Input value={this.state.serviceName} style={{width: 200}} disabled*/}
+                                    {/*onChange={this.switchConfig('serviceName')}/>*/}
+                                    {/*</div>*/}
+                                    {
+                                        this.state.configs.map(config => (
+                                            <div key={config} style={{marginBottom: 10}}>
                                     <span className='vice-title'>
                                         {
                                             youMustFill[config]?
@@ -327,48 +338,56 @@ class DeployCard extends Component {
                                             <Icon type="question-circle"/>
                                         </Tooltip>
                                     </span>
-                                    <Input value={this.state[config]} style={{width: 200}}
-                                           disabled={disable[config] === true}
-                                           onChange={this.switchConfig(config)}/>
+                                                <Input value={this.state[config]} style={{width: 200}}
+                                                       disabled={disable[config] === true}
+                                                       onChange={this.switchConfig(config)}/>
+                                            </div>
+                                        ))
+                                    }
+                                </Panel>
+                            </Collapse>
+                                <div>
+                                    {
+                                        manageUsers.includes(this.props.userID) ?
+                                            <div>
+                                                <Button onClick={() => {
+                                                    const id = idGen('deploy');
+                                                    this.ok(id);
+                                                    this.props.pass(id, 'deploy');
+                                                }} type='primary'><FormattedMessage id="save"/></Button>
+                                                {
+                                                    this.state.showOK === true ?
+                                                        <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
+                                                        :
+                                                        ''
+                                                }
+                                            </div>
+                                            :
+                                            this.props.trialcase ?
+                                                ''
+                                                :
+                                                <div>
+                                                    <Button onClick={() => {
+                                                        const id = idGen('deploy');
+                                                        this.ok(id);
+                                                        this.props.pass(id, 'deploy');
+                                                    }} type='primary'><FormattedMessage id="save"/></Button>
+                                                    {
+                                                        this.state.showOK === true ?
+                                                            <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
+                                                            :
+                                                            ''
+                                                    }
+                                                </div>
+                                    }
+
                                 </div>
-                            ))
-                        }
-                    </Panel>
-                </Collapse>
-                {
-                    manageUsers.includes(this.props.userID) ?
-                        <div>
-                            <Button onClick={() => {
-                                const id = idGen('deploy');
-                                this.ok(id);
-                                this.props.pass(id, 'deploy');
-                            }} type='primary'><FormattedMessage id="save"/></Button>
-                            {
-                                this.state.showOK === true ?
-                                    <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
-                                    :
-                                    ''
-                            }
-                        </div>
-                        :
-                        this.props.trialcase ?
-                            ''
-                            :
-                            <div>
-                                <Button onClick={() => {
-                                    const id = idGen('deploy');
-                                    this.ok(id);
-                                    this.props.pass(id, 'deploy');
-                                }} type='primary'><FormattedMessage id="save"/></Button>
-                                {
-                                    this.state.showOK === true ?
-                                        <Icon type="check-circle" theme="twoTone" twoToneColor="#52c41a"/>
-                                        :
-                                        ''
-                                }
                             </div>
+                        )
+                    }
                 }
-            </div>
+            </Query>
+
         )
     }
 }

+ 408 - 296
src/app/common/deploy/tencent/TencentConfig.js

@@ -7,11 +7,11 @@ import DeployCard from './DeployCard';
 import NotificationCard from './NotificationCard';
 
 import {SHOW_APIGWPATH, GET_PROJECT} from "../../../../gql";
-import {deployUrl} from "../../../../config";
+import {deployUrl, graphqlUrl} from "../../../../config";
 import {FormattedMessage} from 'react-intl';
 import gql from "graphql-tag";
 import {Query} from "react-apollo";
-
+import {request} from 'graphql-request'
 const Step = Steps.Step;
 
 class TencentConfig extends Component {
@@ -23,20 +23,124 @@ class TencentConfig extends Component {
             deployIdPassToPath: '',
             groupIdPassToPath: '',
             pathIdPassToConfig: '',
-            currentStep: 0,
+            currentStep: '',
+            stepAllShow: false,
             deploying: ''
         };
     }
 
+    componentWillMount() {
+        let projectID = this.props.projectID ? this.props.projectID : 'ecommerce_projectID';
+
+        request(graphqlUrl, GET_PROJECT, {id: projectID}).then(
+            data => {
+                let dataProject = data.project_by_id;
+                if (dataProject !== null) {
+                    switch(dataProject.projectStatus) {
+                        case 'deployed':
+                            this.setState({
+                                currentStep: 5,
+                                stepAllShow: true
+                            });
+                            break;
+                        case 'notificationed':
+                            this.setState({
+                                currentStep: 4
+                            });
+                            break;
+                        case 'pathed':
+                            this.setState({
+                                currentStep: 3
+                            });
+                            break;
+                        case 'grouped':
+                            this.setState({
+                                currentStep: 2
+                            });
+                            break;
+                        case 'functioned':
+                            this.setState({
+                                currentStep: 1
+                            });
+                            break;
+                        case 'created':
+                            this.setState({
+                                currentStep: 0
+                            });
+                            break;
+                        default:
+                            this.setState({
+                                currentStep: 0
+                            });
+                            break;
+                    }
+                } else {
+                    console.log('peoject 没存 status');
+                }
+            }
+        )
+    }
+
     componentWillReceiveProps(next) {
         this.setState({
             couldDeploy: false,
             region: '',
             deployIdPassToPath: '',
             groupIdPassToPath: '',
-            currentStep: 0,
-            deploying: ''
+            currentStep: '',
+            deploying: '',
+            stepAllShow: false,
         });
+
+        let projectID = next.projectID ? next.projectID : 'ecommerce_projectID';
+
+        request(graphqlUrl, GET_PROJECT, {id: projectID}).then(
+            data => {
+                let dataProject = data.project_by_id;
+                if (dataProject !== null) {
+                    switch(dataProject.projectStatus) {
+                        case 'deployed':
+                            this.setState({
+                                currentStep: 5,
+                                stepAllShow: true
+                            });
+                            break;
+                        case 'notificationed':
+                            this.setState({
+                                currentStep: 4
+                            });
+                            break;
+                        case 'pathed':
+                            this.setState({
+                                currentStep: 3
+                            });
+                            break;
+                        case 'grouped':
+                            this.setState({
+                                currentStep: 2
+                            });
+                            break;
+                        case 'functioned':
+                            this.setState({
+                                currentStep: 1
+                            });
+                            break;
+                        case 'created':
+                            this.setState({
+                                currentStep: 0
+                            });
+                            break;
+                        default:
+                            this.setState({
+                                currentStep: 0
+                            });
+                            break;
+                    }
+                } else {
+                    console.log('peoject 没存 status');
+                }
+            }
+        )
     }
 
 
@@ -135,11 +239,11 @@ class TencentConfig extends Component {
                             path = '',
                             schemaID = '',
                             configID = '',
-                            api = '',
                             cloudID = 'tencent_CloudID';
 
                         let dataProject = data.project_by_id;
                         let {cloud_id, apiGWGroup_id, deploy_id, projectType, schema_id, wxConfig_id, projectName} = dataProject;
+                        // console.log('dataProject', dataProject);
 
                         let defaultName = projectName;
 
@@ -155,323 +259,331 @@ class TencentConfig extends Component {
                             group = apiGWGroup_id;
                             deploy = deploy_id;
                             cloudID = cloud_id.id;
+                        }
 
-                            return (
-                                <div>
-                                    {
-                                        projectType === 'graphql' ?
-                                            schema_id.schemaState === 'ok' ?
+                        return (
+                            <div>
+                                {
+                                    projectType === 'graphql' ?
+                                        schema_id.schemaState === 'ok' ?
+                                            ''
+                                            :
+                                            this.props.trialcase ?
                                                 ''
                                                 :
-                                                this.props.trialcase ?
+                                                <div style={{marginBottom: 10}}>
+                                                    <Alert message="数据表结构不符合规范,暂不能部署,请修改" type="warning"
+                                                           banner closable/>
+                                                </div>
+                                        :
+                                        ''
+                                }
+                                <div style={{padding: '30px'}}>
+                                    <Row gutter={16}>
+                                        <Col span={14}>
+
+                                            {
+                                                this.state.currentStep !== ''?
+                                                    <Steps current={this.state.currentStep} style={{marginBottom: 30}}>
+                                                        <Step title={this.stepStatus(0)} description="云函数配置"/>
+                                                        <Step title={this.stepStatus(1)} description="服务配置"/>
+                                                        <Step title={this.stepStatus(2)} description="API 配置"/>
+                                                        <Step title={this.stepStatus(3)} description="通知配置"/>
+                                                    </Steps>
+                                                    :
                                                     ''
+                                            }
+
+                                            {
+                                                this.state.currentStep === 0 || this.state.stepAllShow?
+                                                    <FormattedMessage id="fc Deploy">
+                                                        {
+                                                            msg =>
+                                                                <Card title={msg} style={{marginBottom: 10}}>
+                                                                    <DeployCard
+                                                                        deploy={deploy}
+                                                                        switchRegion={this.switchRegion}
+                                                                        region={this.state.region}
+                                                                        defalutName={defaultName}
+                                                                        userID={this.props.userID}
+                                                                        cloudID={cloudID}
+                                                                        trialcase={this.props.trialcase}
+                                                                        pass={this.pass}
+                                                                        stepByStep={this.stepByStep}
+                                                                        projectID={projectID}
+                                                                    />
+                                                                </Card>
+                                                        }
+                                                    </FormattedMessage>
                                                     :
-                                                    <div style={{marginBottom: 10}}>
-                                                        <Alert message="数据表结构不符合规范,暂不能部署,请修改" type="warning"
-                                                               banner closable/>
-                                                    </div>
-                                            :
-                                            ''
-                                    }
-                                    <div style={{padding: '30px'}}>
-                                        <Row gutter={16}>
-                                            <Col span={14}>
-                                                <FormattedMessage id="fc Deploy">
-                                                    {
-                                                        msg =>
-                                                            <Card title={msg} style={{marginBottom: 10}}>
-                                                                <DeployCard
-                                                                    deploy={deploy}
-                                                                    switchRegion={this.switchRegion}
-                                                                    region={this.state.region}
-                                                                    defalutName={defaultName}
-                                                                    userID={this.props.userID}
-                                                                    cloudID={cloudID}
-                                                                    trialcase={this.props.trialcase}
-                                                                    pass={this.pass}
-                                                                    projectID={projectID}
-                                                                />
-                                                            </Card>
-                                                    }
-                                                </FormattedMessage>
-                                                <FormattedMessage id="API Group">
-                                                    {
-                                                        msg =>
-                                                            <Card title={msg} style={{marginBottom: 10}}>
-                                                                <APIGroupCard
-                                                                    group={group}
-                                                                    userID={this.props.userID}
-                                                                    switchRegion={this.switchRegion}
-                                                                    region={this.state.region}
-                                                                    cloudID={cloudID}
-                                                                    trialcase={this.props.trialcase}
-                                                                    pass={this.pass}
-                                                                    projectID={projectID}
-                                                                />
-                                                            </Card>
-                                                    }
-                                                </FormattedMessage>
-                                                <Query query={gql(SHOW_APIGWPATH)}
-                                                       variables={{apiGWGroup_id: apiGWGroup_id ? apiGWGroup_id.id : ''}}>
-                                                    {
-                                                        ({loading, error, data}) => {
-                                                            if (loading) {
-                                                                return <Spin style={{marginLeft: 3}}/>
-                                                            }
-                                                            if (error) {
-                                                                return 'error!';
+                                                    ''
+                                            }
+
+                                            {
+                                                this.state.currentStep === 1 || this.state.stepAllShow?
+                                                    <FormattedMessage id="API Group">
+                                                        {
+                                                            msg =>
+                                                                <Card title={msg} style={{marginBottom: 10}}>
+                                                                    <APIGroupCard
+                                                                        group={group}
+                                                                        userID={this.props.userID}
+                                                                        switchRegion={this.switchRegion}
+                                                                        region={this.state.region}
+                                                                        cloudID={cloudID}
+                                                                        trialcase={this.props.trialcase}
+                                                                        pass={this.pass}
+                                                                        stepByStep={this.stepByStep}
+                                                                        projectID={projectID}
+                                                                    />
+                                                                </Card>
+                                                        }
+                                                    </FormattedMessage>
+                                                    :
+                                                    ''
+                                            }
+                                            {
+                                                this.state.currentStep === 2 || this.state.stepAllShow?
+                                                    <Query query={gql(SHOW_APIGWPATH)}
+                                                           variables={{apiGWGroup_id: apiGWGroup_id ? apiGWGroup_id.id : ''}}>
+                                                        {
+                                                            ({loading, error, data}) => {
+                                                                if (loading) {
+                                                                    return <Spin style={{marginLeft: 3}}/>
+                                                                }
+                                                                if (error) {
+                                                                    return 'error!';
+                                                                }
+                                                                if (data.apiGWPath_by_props.length > 0)
+                                                                    path = data.apiGWPath_by_props[0];
+                                                                return (
+                                                                    <FormattedMessage id="API Path">
+                                                                        {
+                                                                            msg =>
+                                                                                <Card title={msg}
+                                                                                      style={{marginBottom: 10}}>
+                                                                                    <APIPathCard
+                                                                                        path={path}
+                                                                                        defalutName={defaultName}
+                                                                                        userID={this.props.userID}
+                                                                                        trialcase={this.props.trialcase}
+                                                                                        deployID={deploy ? deploy.id : this.state.deployIdPassToPath}
+                                                                                        groupID={group ? group.id : this.state.groupIdPassToPath}
+                                                                                        pass={this.pass}
+                                                                                        stepByStep={this.stepByStep}
+                                                                                    />
+                                                                                </Card>
+                                                                        }
+                                                                    </FormattedMessage>
+                                                                )
                                                             }
-                                                            if (data.apiGWPath_by_props.length > 0)
-                                                                path = data.apiGWPath_by_props[0];
-                                                            return (
-                                                                <FormattedMessage id="API Path">
-                                                                    {
-                                                                        msg =>
-                                                                            <Card title={msg}
-                                                                                  style={{marginBottom: 10}}>
-                                                                                <APIPathCard
-                                                                                    path={path}
-                                                                                    defalutName={defaultName}
-                                                                                    userID={this.props.userID}
-                                                                                    trialcase={this.props.trialcase}
-                                                                                    deployID={deploy ? deploy.id : this.state.deployIdPassToPath}
-                                                                                    groupID={group ? group.id : this.state.groupIdPassToPath}
-                                                                                    pass={this.pass}
-                                                                                />
-                                                                            </Card>
-                                                                    }
-                                                                </FormattedMessage>
-                                                            )
                                                         }
-                                                    }
-                                                </Query>
-                                                <FormattedMessage id="Notification">
+                                                    </Query>
+                                                    :
+                                                    ''
+                                            }
+
+                                            {
+                                                this.state.currentStep === 3 || this.state.stepAllShow?
+                                                    <FormattedMessage id="Notification">
+                                                        {
+                                                            msg =>
+                                                                <Card title={msg}>
+                                                                    <NotificationCard
+                                                                        userID={this.props.userID}
+                                                                        defalutName={defaultName}
+                                                                        trialcase={this.props.trialcase}
+                                                                        stepByStep={this.stepByStep}
+                                                                        projectID={projectID}
+                                                                    />
+                                                                </Card>
+                                                        }
+                                                    </FormattedMessage>
+                                                    :
+                                                    ''
+                                            }
+
+                                        </Col>
+
+                                        {
+                                            this.state.currentStep === 4 || this.state.stepAllShow?
+                                                <Col offset={2} span={6}>
                                                     {
-                                                        msg =>
-                                                            <Card title={msg}>
-                                                                <NotificationCard
-                                                                    userID={this.props.userID}
-                                                                    defalutName={defaultName}
-                                                                    trialcase={this.props.trialcase}
-                                                                    projectID={projectID}
-                                                                />
-                                                            </Card>
-                                                    }
-                                                </FormattedMessage>
-                                            </Col>
-                                            <Col offset={2} span={6}>
-                                                {
-                                                    this.props.trialcase ?
-                                                        ''
-                                                        :
-                                                        projectType === 'graphql' ?
-                                                            schema_id.schemaState === 'ok' ?
-                                                                <Button type='primary'
-                                                                        onClick={() => this.deployFC(schemaID, deploy ? deploy.id : this.state.deployIdPassToPath, this.state.pathIdPassToConfig, group ? group.id : this.state.groupIdPassToPath)}><FormattedMessage
-                                                                    id="deploy"/>!</Button>
-                                                                :
-                                                                <Button type='primary' disabled><FormattedMessage
-                                                                    id="deploy"/>!</Button>
+                                                        this.props.trialcase ?
+                                                            ''
                                                             :
-                                                            <Button type='primary' onClick={() => {
-                                                            }}><FormattedMessage id="deploy"/>!</Button>
 
-                                                }
-                                            </Col>
-                                        </Row>
-                                    </div>
-                                </div>
-                            )
+                                                            projectType === 'graphql' ?
 
-                        } else {
+                                                                schema_id.schemaState === 'ok' ?
 
-                            return (
-                                <div>
-                                    {
-                                        projectType === 'graphql' ?
-                                            schema_id.schemaState === 'ok' ?
-                                                ''
+                                                                        this.state.deploying === '' ?
+                                                                            <Button type='primary' onClick={() => this.deployFC(schemaID, deploy ? deploy.id : this.state.deployIdPassToPath, this.state.pathIdPassToConfig, group ? group.id : this.state.groupIdPassToPath)}><FormattedMessage id="deploy"/>!</Button>
+                                                                            :
+                                                                            ''
+                                                                    :
+                                                                    <Button type='primary'
+                                                                            disabled><FormattedMessage
+                                                                        id="deploy"/>!</Button>
+                                                                :
+                                                                <Button type='primary' onClick={() => {
+                                                                }}><FormattedMessage id="deploy"/>!</Button>
+
+                                                    }
+                                                    {
+                                                        this.state.deploying === 'deploying' ?
+                                                            <Spin size="large"/>
+                                                            :
+                                                            this.state.deploying === 'finished' ?
+                                                                <Progress type="circle" percent={100} />
+                                                                :
+                                                                this.state.deploying === 'error' ?
+                                                                    <Progress type="circle" percent={99} status="exception" />
+                                                                    :
+                                                                    ''
+
+                                                    }
+                                                </Col>
                                                 :
-                                                this.props.trialcase ?
-                                                    ''
-                                                    :
-                                                    <div style={{marginBottom: 10}}>
-                                                        <Alert message="数据表结构不符合规范,暂不能部署,请修改" type="warning"
-                                                               banner closable/>
-                                                    </div>
-                                            :
-                                            ''
-                                    }
-                                    <div style={{padding: '30px'}}>
-                                        <Row gutter={16}>
-                                            <Col span={14}>
-
-                                                <Steps current={this.state.currentStep} style={{marginBottom: 30}}>
-                                                    <Step title={this.stepStatus(0)} description="云函数配置"/>
-                                                    <Step title={this.stepStatus(1)} description="服务配置"/>
-                                                    <Step title={this.stepStatus(2)} description="API 配置"/>
-                                                    <Step title={this.stepStatus(3)} description="通知配置"/>
-                                                </Steps>
+                                                ''
+                                        }
 
+                                    </Row>
+                                </div>
+                            </div>
+                        );
+
+                        // no use, backup code
+                        return (
+                            <div>
+                                {
+                                    projectType === 'graphql' ?
+                                        schema_id.schemaState === 'ok' ?
+                                            ''
+                                            :
+                                            this.props.trialcase ?
+                                                ''
+                                                :
+                                                <div style={{marginBottom: 10}}>
+                                                    <Alert message="数据表结构不符合规范,暂不能部署,请修改" type="warning"
+                                                           banner closable/>
+                                                </div>
+                                        :
+                                        ''
+                                }
+                                <div style={{padding: '30px'}}>
+                                    <Row gutter={16}>
+                                        <Col span={14}>
+                                            <FormattedMessage id="fc Deploy">
                                                 {
-                                                    this.state.currentStep === 0 ?
-                                                        <FormattedMessage id="fc Deploy">
-                                                            {
-                                                                msg =>
-                                                                    <Card title={msg} style={{marginBottom: 10}}>
-                                                                        <DeployCard
-                                                                            deploy={deploy}
-                                                                            switchRegion={this.switchRegion}
-                                                                            region={this.state.region}
-                                                                            defalutName={defaultName}
-                                                                            userID={this.props.userID}
-                                                                            cloudID={cloudID}
-                                                                            trialcase={this.props.trialcase}
-                                                                            pass={this.pass}
-                                                                            stepByStep={this.stepByStep}
-                                                                            projectID={projectID}
-                                                                        />
-                                                                    </Card>
-                                                            }
-                                                        </FormattedMessage>
-                                                        :
-                                                        ''
+                                                    msg =>
+                                                        <Card title={msg} style={{marginBottom: 10}}>
+                                                            <DeployCard
+                                                                deploy={deploy}
+                                                                switchRegion={this.switchRegion}
+                                                                region={this.state.region}
+                                                                defalutName={defaultName}
+                                                                userID={this.props.userID}
+                                                                cloudID={cloudID}
+                                                                trialcase={this.props.trialcase}
+                                                                pass={this.pass}
+                                                                projectID={projectID}
+                                                                stepByStep={this.stepByStep}
+                                                            />
+                                                        </Card>
                                                 }
-
+                                            </FormattedMessage>
+                                            <FormattedMessage id="API Group">
                                                 {
-                                                    this.state.currentStep === 1 ?
-                                                        <FormattedMessage id="API Group">
-                                                            {
-                                                                msg =>
-                                                                    <Card title={msg} style={{marginBottom: 10}}>
-                                                                        <APIGroupCard
-                                                                            group={group}
-                                                                            userID={this.props.userID}
-                                                                            switchRegion={this.switchRegion}
-                                                                            region={this.state.region}
-                                                                            cloudID={cloudID}
-                                                                            trialcase={this.props.trialcase}
-                                                                            pass={this.pass}
-                                                                            stepByStep={this.stepByStep}
-                                                                            projectID={projectID}
-                                                                        />
-                                                                    </Card>
-                                                            }
-                                                        </FormattedMessage>
-                                                        :
-                                                        ''
+                                                    msg =>
+                                                        <Card title={msg} style={{marginBottom: 10}}>
+                                                            <APIGroupCard
+                                                                group={group}
+                                                                userID={this.props.userID}
+                                                                switchRegion={this.switchRegion}
+                                                                region={this.state.region}
+                                                                cloudID={cloudID}
+                                                                trialcase={this.props.trialcase}
+                                                                pass={this.pass}
+                                                                projectID={projectID}
+                                                                stepByStep={this.stepByStep}
+                                                            />
+                                                        </Card>
                                                 }
+                                            </FormattedMessage>
+                                            <Query query={gql(SHOW_APIGWPATH)}
+                                                   variables={{apiGWGroup_id: apiGWGroup_id ? apiGWGroup_id.id : ''}}>
                                                 {
-                                                    this.state.currentStep === 2 ?
-                                                        <Query query={gql(SHOW_APIGWPATH)}
-                                                               variables={{apiGWGroup_id: apiGWGroup_id ? apiGWGroup_id.id : ''}}>
-                                                            {
-                                                                ({loading, error, data}) => {
-                                                                    if (loading) {
-                                                                        return <Spin style={{marginLeft: 3}}/>
-                                                                    }
-                                                                    if (error) {
-                                                                        return 'error!';
-                                                                    }
-                                                                    if (data.apiGWPath_by_props.length > 0)
-                                                                        path = data.apiGWPath_by_props[0];
-                                                                    return (
-                                                                        <FormattedMessage id="API Path">
-                                                                            {
-                                                                                msg =>
-                                                                                    <Card title={msg}
-                                                                                          style={{marginBottom: 10}}>
-                                                                                        <APIPathCard
-                                                                                            path={path}
-                                                                                            defalutName={defaultName}
-                                                                                            userID={this.props.userID}
-                                                                                            trialcase={this.props.trialcase}
-                                                                                            deployID={deploy ? deploy.id : this.state.deployIdPassToPath}
-                                                                                            groupID={group ? group.id : this.state.groupIdPassToPath}
-                                                                                            pass={this.pass}
-                                                                                            stepByStep={this.stepByStep}
-                                                                                        />
-                                                                                    </Card>
-                                                                            }
-                                                                        </FormattedMessage>
-                                                                    )
+                                                    ({loading, error, data}) => {
+                                                        if (loading) {
+                                                            return <Spin style={{marginLeft: 3}}/>
+                                                        }
+                                                        if (error) {
+                                                            return 'error!';
+                                                        }
+                                                        if (data.apiGWPath_by_props.length > 0)
+                                                            path = data.apiGWPath_by_props[0];
+                                                        return (
+                                                            <FormattedMessage id="API Path">
+                                                                {
+                                                                    msg =>
+                                                                        <Card title={msg}
+                                                                              style={{marginBottom: 10}}>
+                                                                            <APIPathCard
+                                                                                path={path}
+                                                                                defalutName={defaultName}
+                                                                                userID={this.props.userID}
+                                                                                trialcase={this.props.trialcase}
+                                                                                deployID={deploy ? deploy.id : this.state.deployIdPassToPath}
+                                                                                groupID={group ? group.id : this.state.groupIdPassToPath}
+                                                                                pass={this.pass}
+                                                                                stepByStep={this.stepByStep}
+                                                                            />
+                                                                        </Card>
                                                                 }
-                                                            }
-                                                        </Query>
-                                                        :
-                                                        ''
+                                                            </FormattedMessage>
+                                                        )
+                                                    }
                                                 }
-
+                                            </Query>
+                                            <FormattedMessage id="Notification">
                                                 {
-                                                    this.state.currentStep === 3 ?
-                                                        <FormattedMessage id="Notification">
-                                                            {
-                                                                msg =>
-                                                                    <Card title={msg}>
-                                                                        <NotificationCard
-                                                                            userID={this.props.userID}
-                                                                            defalutName={defaultName}
-                                                                            trialcase={this.props.trialcase}
-                                                                            stepByStep={this.stepByStep}
-                                                                            projectID={projectID}
-                                                                        />
-                                                                    </Card>
-                                                            }
-                                                        </FormattedMessage>
-                                                        :
-                                                        ''
+                                                    msg =>
+                                                        <Card title={msg}>
+                                                            <NotificationCard
+                                                                userID={this.props.userID}
+                                                                defalutName={defaultName}
+                                                                trialcase={this.props.trialcase}
+                                                                projectID={projectID}
+                                                                stepByStep={this.stepByStep}
+                                                            />
+                                                        </Card>
                                                 }
-
-                                            </Col>
-
+                                            </FormattedMessage>
+                                        </Col>
+                                        <Col offset={2} span={6}>
                                             {
-                                                this.state.currentStep === 4 ?
-                                                    <Col offset={2} span={6}>
-                                                        {
-                                                            this.props.trialcase ?
-                                                                ''
-                                                                :
-
-                                                                projectType === 'graphql' ?
-
-                                                                    schema_id.schemaState === 'ok' ?
-
-                                                                            this.state.deploying === '' ?
-                                                                                <Button type='primary' onClick={() => this.deployFC(schemaID, deploy ? deploy.id : this.state.deployIdPassToPath, this.state.pathIdPassToConfig, group ? group.id : this.state.groupIdPassToPath)}><FormattedMessage id="deploy"/>!</Button>
-                                                                                :
-                                                                                ''
-                                                                        :
-                                                                        <Button type='primary'
-                                                                                disabled><FormattedMessage
-                                                                            id="deploy"/>!</Button>
-                                                                    :
-                                                                    <Button type='primary' onClick={() => {
-                                                                    }}><FormattedMessage id="deploy"/>!</Button>
-
-                                                        }
-                                                        {
-                                                            this.state.deploying === 'deploying' ?
-                                                                <Spin size="large"/>
-                                                                :
-                                                                this.state.deploying === 'finished' ?
-                                                                    <Progress type="circle" percent={100} />
-                                                                    :
-                                                                    this.state.deploying === 'error' ?
-                                                                        <Progress type="circle" percent={99} status="exception" />
-                                                                        :
-                                                                        ''
-
-                                                        }
-                                                    </Col>
-                                                    :
+                                                this.props.trialcase ?
                                                     ''
-                                            }
+                                                    :
+                                                    projectType === 'graphql' ?
+                                                        schema_id.schemaState === 'ok' ?
+                                                            <Button type='primary'
+                                                                    onClick={() => this.deployFC(schemaID, deploy ? deploy.id : this.state.deployIdPassToPath, this.state.pathIdPassToConfig, group ? group.id : this.state.groupIdPassToPath)}><FormattedMessage
+                                                                id="deploy"/>!</Button>
+                                                            :
+                                                            <Button type='primary' disabled><FormattedMessage
+                                                                id="deploy"/>!</Button>
+                                                        :
+                                                        <Button type='primary' onClick={() => {
+                                                        }}><FormattedMessage id="deploy"/>!</Button>
 
-                                        </Row>
-                                    </div>
+                                            }
+                                        </Col>
+                                    </Row>
                                 </div>
-                            )
-                        }
+                            </div>
+                        )
                     }
                 }
             </Query>

+ 3 - 3
src/app/graphqlService/TrialCase.jsx

@@ -21,7 +21,7 @@ class TrialCase extends Component {
     constructor(props) {
         super(props);
         this.state = {
-            menuLevel2: "schema",
+            menuLevel2: "preview",
             // default user
             userID: "ioobot",
             showPadding: true,
@@ -64,17 +64,17 @@ class TrialCase extends Component {
             <div>
                 <Menu
                     mode="horizontal"
-                    defaultSelectedKeys={['schema']}
+                    defaultSelectedKeys={['preview']}
                     style={{padding: '0 24px', position: 'fixed', width: '100%', zIndex: '5',lineHeight:'50px',fontWeight:600}}
                     onClick={(e) => this.switchMenu('menuLevel2', e)}
                     selectedKeys={[this.state.menuLevel2]}
                 >
+                    <Menu.Item key="preview"><FormattedMessage id="preview"/></Menu.Item>
                     <Menu.Item key="schema"><FormattedMessage id="schema"/></Menu.Item>
                     <Menu.Item key="deploy"><FormattedMessage id="deploy"/></Menu.Item>
                     <Menu.Item key="manage"><FormattedMessage id="manage"/></Menu.Item>
                     <Menu.Item key="graphiql"><FormattedMessage id="graphql IDE"/></Menu.Item>
                     <Menu.Item key="template"><FormattedMessage id="template"/></Menu.Item>
-                    <Menu.Item key="preview"><FormattedMessage id="preview"/></Menu.Item>
                     <Menu.Item key="metabase"><FormattedMessage id="metabase"/></Menu.Item>
                 </Menu>
 

+ 2 - 2
src/app/graphqlService/component/application/Application.js

@@ -9,9 +9,9 @@ class Application extends Component {
         return (
             <div>
                 {
-                    schemaName === "ecommerce" ?
+                    schemaName === "e-commerce" ?
                         <ShopApp/> :
-                        schemaName === 'bills'?
+                        schemaName === 'account template'?
                             <BillApp /> :
                                 <OrderApp />
 

+ 12 - 6
src/app/graphqlService/component/schema/Schema.jsx

@@ -95,7 +95,7 @@ class Schema extends Component {
 
     fetchData = (referenceID) => {
         let schemaData;
-        if (localStorage.getItem('ecommerce') && localStorage.getItem('bills') && localStorage.getItem('subscribe')) {
+        if (localStorage.getItem('ecommerce') && localStorage.getItem('bills') && localStorage.getItem('order')) {
             switch (referenceID) {
                 case 'ecommerce_schemaID':
                     schemaData = localStorage.getItem('ecommerce');
@@ -103,8 +103,8 @@ class Schema extends Component {
                 case 'bills_schemaID':
                     schemaData = localStorage.getItem('bills');
                     break;
-                case 'subscribe_schemaID':
-                    schemaData = localStorage.getItem('subscribe');
+                case 'order_schemaID':
+                    schemaData = localStorage.getItem('order');
                     break;
                 default:
                     schemaData = ''
@@ -116,7 +116,7 @@ class Schema extends Component {
                     data => {
                         if (data.schema_by_id !== null) {
                             localStorage.setItem('ecommerce', data.caseSchema.find(obj => obj.schemaName === 'ecommerce').schemaData);
-                            localStorage.setItem('subscribe', data.caseSchema.find(obj => obj.schemaName === 'subscribe').schemaData);
+                            localStorage.setItem('order', data.caseSchema.find(obj => obj.schemaName === 'order').schemaData);
                             localStorage.setItem('bills', data.caseSchema.find(obj => obj.schemaName === 'bills').schemaData);
                             resolve(data.schema_by_id.schemaData);
                         }
@@ -200,7 +200,12 @@ class Schema extends Component {
                                                     />
                                                     :
                                                     <div className={'schema'}>
-                                                        <span className={'schema-name'}>{this.state.schemaName}</span>
+                                                        <span className={'schema-name'}>{
+                                                            trialcase?
+                                                                <FormattedMessage id={this.state.schemaName}/>
+                                                                :
+                                                                this.state.schemaName
+                                                        }</span>
                                                         {
                                                             userID.indexOf(manageUsers) > -1 ?
                                                                 <Icon style={{marginLeft: 15}}
@@ -535,7 +540,8 @@ class CopySchemaButton extends Component {
             cloud_id: '',
             user_id: userID,
             wxConfig_id: '',
-            schema_id: schemaId
+            schema_id: schemaId,
+            projectStatus: 'created'
         };
 
         create_project_and_schema({

+ 2 - 1
src/app/wechatService/wxCreate/WxCreate.js

@@ -81,7 +81,8 @@ class WxCreate extends Component {
             cloud_id: '',
             user_id: userID,
             wxConfig_id: wxConfigId,
-            schema_id: ''
+            schema_id: '',
+            projectStatus: 'created'
         };
 
         this.setState({

+ 22 - 12
src/gql.js

@@ -217,7 +217,7 @@ const UPDATE_SCHEMA_PROJECT_NAME = `
 
 const ADD_PROJECT_AND_SCHEMA = `
              mutation ADD_PROJECT_AND_SCHEMA($schemaId: ID!, $user_id: ID!, $schemaName: String!, $schemaData: String!, $schemaCreatedAt: String, $schemaUpdatedAt: String, $schemaState: String, $reference: String,
-                 $projectCreatedAt: String, $projectUpdatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $projectName: String, $deploy_id: ID, $projectId: ID!, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
+                 , $projectStatus: String, $projectCreatedAt: String, $projectUpdatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $projectName: String, $deploy_id: ID, $projectId: ID!, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
                      create_schema(
                          id: $schemaId,
                          user_id: $user_id,
@@ -248,7 +248,9 @@ const ADD_PROJECT_AND_SCHEMA = `
                          user_id: $user_id,
                          wxConfig_id: $wxConfig_id,
                          schema_id: $schema_id
+                         projectStatus: $projectStatus
                      ) {
+                         projectStatus
                          updatedAt
                          createdAt   
                          projectName
@@ -274,7 +276,7 @@ const ADD_PROJECT_AND_SCHEMA = `
 
 const ADD_PROJECT_AND_WX = `
              mutation ADD_PROJECT_AND_WX($wxUpdatedAt: String, $mch_id: String, $appName: String, $notify_url: String, $appSecret: String, $wxCreatedAt: String, $appID: String, $token: String, $spbill_create_ip: String, $enter_url: String, $wxConfigId: ID!, $pay_api_key: String, $user_id: ID, $body: String, $welcome_words: String, $attach: String
-                 $projectCreatedAt: String, $projectUpdatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $projectName: String, $deploy_id: ID, $projectId: ID!, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
+                 , $projectStatus: String, $projectCreatedAt: String, $projectUpdatedAt: String, $database_id: ID, $apiGWGroup_id: ID, $projectName: String, $deploy_id: ID, $projectId: ID!, $projectType: String, $cloud_id: ID, $user_id: ID, $wxConfig_id: ID, $schema_id: ID) {
                      create_wxConfig(
                          createdAt: $wxCreatedAt 
                          updatedAt: $wxUpdatedAt
@@ -321,7 +323,9 @@ const ADD_PROJECT_AND_WX = `
                          user_id: $user_id,
                          wxConfig_id: $wxConfig_id,
                          schema_id: $schema_id
+                         projectStatus: $projectStatus
                      ) {
+                         projectStatus
                          updatedAt
                          createdAt   
                          projectName
@@ -785,6 +789,7 @@ const GET_PROJECT = `
             query projectbyid($id: ID) {
                 project_by_id(id: $id) {
                     updatedAt
+                    projectStatus
                     database_id {
                         id
                     }
@@ -863,8 +868,9 @@ const GET_PROJECT = `
         `;
 
 const UPDATE_PROJECT_GROUP = `
-            mutation updateproject($id: ID, $updatedAt: String, $apiGWGroup_id: ID) {
-              update_project(id: $id updatedAt: $updatedAt apiGWGroup_id: $apiGWGroup_id) {
+            mutation updateproject($id: ID, $updatedAt: String, $apiGWGroup_id: ID, $projectStatus: String) {
+              update_project(id: $id updatedAt: $updatedAt apiGWGroup_id: $apiGWGroup_id projectStatus: $projectStatus) {
+                projectStatus
                 updatedAt
                 projectName
                 id
@@ -874,8 +880,9 @@ const UPDATE_PROJECT_GROUP = `
         `;
 
 const UPDATE_PROJECT_DEPLOY = `
-            mutation updateproject($id: ID, $updatedAt: String, $deploy_id: ID) {
-              update_project(id: $id updatedAt: $updatedAt deploy_id: $deploy_id) {
+            mutation updateproject($id: ID, $updatedAt: String, $deploy_id: ID, $projectStatus: String) {
+              update_project(id: $id updatedAt: $updatedAt deploy_id: $deploy_id projectStatus: $projectStatus) {
+                projectStatus
                 updatedAt
                 projectName
                 id
@@ -885,8 +892,9 @@ const UPDATE_PROJECT_DEPLOY = `
         `;
 
 const UPDATE_PROJECT_CLOUD = `
-            mutation updateproject($id: ID, $updatedAt: String, $cloud_id: ID) {
-              update_project(id: $id updatedAt: $updatedAt cloud_id: $cloud_id) {
+            mutation updateproject($id: ID, $updatedAt: String, $cloud_id: ID, $projectStatus: String) {
+              update_project(id: $id updatedAt: $updatedAt cloud_id: $cloud_id projectStatus: $projectStatus) {
+                projectStatus
                 updatedAt
                 projectName
                 id
@@ -896,8 +904,9 @@ const UPDATE_PROJECT_CLOUD = `
         `;
 
 const UPDATE_PROJECT_DATABASE = `
-            mutation updateproject($id: ID, $updatedAt: String, $database_id: ID) {
-              update_project(id: $id updatedAt: $updatedAt database_id: $database_id) {
+            mutation updateproject($id: ID, $updatedAt: String, $database_id: ID, $projectStatus: String) {
+              update_project(id: $id updatedAt: $updatedAt database_id: $database_id projectStatus: $projectStatus) {
+                projectStatus
                 updatedAt
                 projectName
                 id
@@ -907,8 +916,9 @@ const UPDATE_PROJECT_DATABASE = `
         `;
 
 const UPDATE_PROJECT_DEPLOY_AND_CLOUD = `
-            mutation updateproject($id: ID, $updatedAt: String, $deploy_id: ID, $cloud_id: ID) {
-              update_project(id: $id updatedAt: $updatedAt deploy_id: $deploy_id cloud_id: $cloud_id) {
+            mutation updateproject($id: ID, $updatedAt: String, $deploy_id: ID, $cloud_id: ID, $projectStatus: String) {
+              update_project(id: $id updatedAt: $updatedAt deploy_id: $deploy_id cloud_id: $cloud_id projectStatus: $projectStatus) {
+                projectStatus
                 updatedAt
                 projectName
                 id

+ 5 - 0
src/language/zh_CN.js

@@ -143,5 +143,10 @@ const zh_CN = {
     'body': '商品描述',
     'spbill_create_ip': '终端 IP',
     'notify_url': '支付通知地址',
+
+    // case name
+    'e-commerce': '标准电商',
+    'appointment template': '预约模板',
+    'account template': '记账模板',
 };
 export default zh_CN;