Ordered.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import React, {Component} from 'react';
  2. import {orderbyprops, repertorybyid, updateorderAndupdaterepertory} from "../../gql";
  3. import {Spin} from 'antd';
  4. import gql from "graphql-tag";
  5. import {Query, Mutation} from "react-apollo";
  6. import {Card, WhiteSpace, Button} from 'antd-mobile';
  7. import moment from 'moment';
  8. import 'moment/locale/zh-cn'
  9. moment.locale('zh-cn');
  10. class Ordered extends Component {
  11. render() {
  12. let {userID} = this.props;
  13. return (
  14. <Query query={gql(orderbyprops)} variables={{user_id: userID, orderStatus: 'success'}}>
  15. {
  16. ({loading, error, data}) => {
  17. if (loading) {
  18. return <Spin className={'spin'}/>
  19. }
  20. if (error) {
  21. return 'error!';
  22. }
  23. let orders = data.orderbyprops;
  24. let tip = '';
  25. if (orders.length === 0) {
  26. orders = [];
  27. tip = '还没有订单'
  28. }
  29. console.log(orders);
  30. return (
  31. <OrderedRender
  32. orders={orders}
  33. tip={tip}
  34. />
  35. )
  36. }
  37. }
  38. </Query>
  39. );
  40. }
  41. }
  42. export default Ordered;
  43. class OrderedRender extends Component {
  44. constructor(props) {
  45. super(props);
  46. this.state = {}
  47. }
  48. render() {
  49. let {orders, tip} = this.props;
  50. return (
  51. <div>
  52. {
  53. tip ?
  54. <div>{tip}</div>
  55. :
  56. ''
  57. }
  58. {
  59. orders.map((order) => {
  60. return (
  61. <div key={order.id}>
  62. <WhiteSpace size="lg"/>
  63. <Card full>
  64. <Card.Body>
  65. <div className={'card'}>
  66. <div>预约: {order.service_id.server_id.name} - {order.service_id.price}元</div>
  67. <div>人数: {order.customerNumber}</div>
  68. <div>留言: {order.remark}</div>
  69. <div>时间: {moment(Number(order.service_id.startTime)).format("YYYY-MM-DD HH:mm:ss")}</div>
  70. <CancelButton
  71. repertoryID={order.service_id.repertory_id.id}
  72. />
  73. </div>
  74. </Card.Body>
  75. </Card>
  76. </div>
  77. )
  78. })
  79. }
  80. </div>
  81. )
  82. }
  83. }
  84. class CancelButton extends Component {
  85. constructor(props) {
  86. super(props);
  87. this.state = {}
  88. }
  89. render() {
  90. let {repertoryID} = this.props;
  91. return (
  92. <Query query={gql(repertorybyid)} variables={{id: repertoryID}}>
  93. {
  94. ({loading, error, data}) => {
  95. if (loading) {
  96. return <Spin className={'spin'}/>
  97. }
  98. if (error) {
  99. return 'error!';
  100. }
  101. console.log(data);
  102. return (
  103. <Mutation mutation={gql(updateorderAndupdaterepertory)}>
  104. {(updateorderAndupdaterepertory, {loading, error}) => {
  105. if (loading)
  106. return <Spin style={{marginLeft: 30, marginTop: 10}}/>;
  107. if (error)
  108. return 'error';
  109. // 未完待续
  110. return (
  111. <Button type='warning' onClick={() => {
  112. updateorderAndupdaterepertory({
  113. variable: {
  114. order_id: '',
  115. repertory_id: '',
  116. updatedAt: new Date().getTime(),
  117. orderStatus: 'cancelled',
  118. count: 1
  119. }
  120. })
  121. }}>取消</Button>
  122. )
  123. }}
  124. </Mutation>
  125. )
  126. }
  127. }
  128. </Query>
  129. )
  130. }
  131. }