index.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. import React, {Component} from 'react'
  2. import './index.css'
  3. import {withRouter} from 'react-router-dom'
  4. import {
  5. SearchBar,
  6. NavBar,
  7. Accordion,
  8. ActivityIndicator
  9. } from 'antd-mobile'
  10. import {Icon} from 'antd'
  11. import classNames from 'classnames'
  12. import {Query} from "react-apollo"
  13. import gql from "graphql-tag"
  14. import {order_by_id} from "../../../../utils/gql"
  15. class Orders extends Component {
  16. constructor(props) {
  17. super(props)
  18. this.state = {
  19. accordionKey: undefined
  20. }
  21. }
  22. render() {
  23. let {accordionKey} = this.state
  24. return (
  25. <div className='goods-wrap'>
  26. <NavBar
  27. className='navbar'
  28. mode="light"
  29. icon={<Icon type="left"/>}
  30. onLeftClick={() => {
  31. this.props.history.go(-2)
  32. }}
  33. >订单管理</NavBar>
  34. <div className='content-wrap'>
  35. <div className='my-list-subtitle' style={{color: 'grey'}}><Icon type="bulb"
  36. style={{marginRight: 10}}/>{accordionKey ? '折叠单项以展开更多分类' : '请选择需要打开的分类'}
  37. </div>
  38. <Accordion className="my-accordion" onChange={(key) => {
  39. this.setState({
  40. accordionKey: key[0]
  41. })
  42. }}>
  43. <Accordion.Panel header="查询订单"
  44. className={classNames({'hidden': accordionKey === '1' || accordionKey === '2' || accordionKey === '3'})}>
  45. <Search/>
  46. </Accordion.Panel>
  47. <Accordion.Panel header="待发货"
  48. className={classNames({'hidden': accordionKey === '0' || accordionKey === '2' || accordionKey === '3'})}>
  49. <Shiping/>
  50. </Accordion.Panel>
  51. <Accordion.Panel header="已确认"
  52. className={classNames({'hidden': accordionKey === '0' || accordionKey === '1' || accordionKey === '3'})}>
  53. <Completed/>
  54. </Accordion.Panel>
  55. <Accordion.Panel header="已评价"
  56. className={classNames({'hidden': accordionKey === '0' || accordionKey === '1' || accordionKey === '2'})}>
  57. <Commented/>
  58. </Accordion.Panel>
  59. </Accordion>
  60. </div>
  61. </div>
  62. )
  63. }
  64. }
  65. class Search extends Component {
  66. constructor(props) {
  67. super(props)
  68. this.state = {
  69. value: '',
  70. searchValue: ''
  71. }
  72. }
  73. componentDidMount() {
  74. this.autoFocusInst.focus();
  75. }
  76. onChange= (value) => {
  77. this.setState({ value });
  78. };
  79. render() {
  80. return (
  81. <div>
  82. <SearchBar
  83. ref={ref => this.autoFocusInst = ref}
  84. placeholder="请在此处输入订单编号"
  85. value={this.state.value}
  86. onSubmit={searchValue => this.setState({ searchValue })}
  87. onCancel={() => this.setState({ value: '' })}
  88. onChange={value => this.setState({ value })}
  89. />
  90. <SearchQuery id={this.state.searchValue}/>
  91. </div>
  92. )
  93. }
  94. }
  95. class SearchQuery extends Component {
  96. constructor(props) {
  97. super(props)
  98. this.state = {
  99. }
  100. console.log('mount / mount again')
  101. }
  102. render() {
  103. let {id} = this.props
  104. return (
  105. <Query query={gql(order_by_id)} variables={{id}}>
  106. {
  107. ({loading, error, data}) => {
  108. if (loading) {
  109. return (
  110. <div className="loading-center">
  111. <ActivityIndicator text="Loading..." size="large"/>
  112. </div>
  113. )
  114. }
  115. if (error) {
  116. return 'error!'
  117. }
  118. console.log(data.orderbyid)
  119. return (
  120. <div>1</div>
  121. )
  122. }
  123. }
  124. </Query>
  125. )
  126. }
  127. }
  128. class Shiping extends Component {
  129. constructor(props) {
  130. super(props)
  131. this.state = {}
  132. }
  133. render() {
  134. return (
  135. <div>Shiping</div>
  136. )
  137. }
  138. }
  139. class Completed extends Component {
  140. constructor(props) {
  141. super(props)
  142. this.state = {}
  143. }
  144. render() {
  145. return (
  146. <div>Completed</div>
  147. )
  148. }
  149. }
  150. class Commented extends Component {
  151. constructor(props) {
  152. super(props)
  153. this.state = {}
  154. }
  155. render() {
  156. return (
  157. <div>Commented</div>
  158. )
  159. }
  160. }
  161. export default withRouter(Orders)