|
|
@@ -1,28 +1,36 @@
|
|
|
import React, { Component } from 'react'
|
|
|
import OrderCard from './OrderCard'
|
|
|
import { ActivityIndicator } from 'antd-mobile';
|
|
|
+import TabBarTop from './OrderTabTop'
|
|
|
+
|
|
|
import './OrderCenterPage.css'
|
|
|
|
|
|
|
|
|
import {graphqls} from '../../api/graphql_request'
|
|
|
-import {getOrderByProps,getProductByProps} from '../../api/graphql/order'
|
|
|
+import {getOrderByProps,getProductByProps,DELETE_ORDER,DELETE_ORDER_PRODUCT} from '../../api/graphql/order'
|
|
|
|
|
|
export default class OrderCenterPage extends Component {
|
|
|
constructor(props){
|
|
|
super(props)
|
|
|
this.state={
|
|
|
orderList:[],
|
|
|
- loading:true
|
|
|
+ loading:true,
|
|
|
+ tabs:[{title:"全部订单"},{title:"未支付"},{title:"已支付"},{title:"待评论"}],
|
|
|
+ select:"未支付"
|
|
|
}
|
|
|
+
|
|
|
+ this.toPay=this.toPay.bind(this)
|
|
|
+ this.toDeleteOrder=this.toDeleteOrder.bind(this)
|
|
|
+ this.tabChange=this.tabChange.bind(this)
|
|
|
}
|
|
|
|
|
|
componentDidMount(){
|
|
|
- this.getOrder()
|
|
|
+ let user_id=sessionStorage.getItem('openid')
|
|
|
+ this.getOrder({user_id})
|
|
|
}
|
|
|
//获取订单,并根据订单id获取订单产品信息,之后重构数据结构
|
|
|
- getOrder(){
|
|
|
- let user_id=sessionStorage.getItem('openid')
|
|
|
- graphqls(getOrderByProps,{user_id}).then((res)=>{
|
|
|
+ getOrder(data){
|
|
|
+ graphqls(getOrderByProps,data).then((res)=>{
|
|
|
//console.log(res.orderbyprops)
|
|
|
let orderArr=res.orderbyprops||[]
|
|
|
for(let i=0;i<orderArr.length;i++){
|
|
|
@@ -31,9 +39,13 @@ export default class OrderCenterPage extends Component {
|
|
|
//console.log('order_id',orderArr[i].id)
|
|
|
//console.log('getProductByProps',res)
|
|
|
orderArr[i].orderProducts=res.orderProductbyprops
|
|
|
-
|
|
|
+
|
|
|
if(i===orderArr.length-1){
|
|
|
//console.log('----orderList-----',orderArr)
|
|
|
+ orderArr.sort((a,b)=>{
|
|
|
+ return new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime()
|
|
|
+ })
|
|
|
+ sessionStorage.setItem('orderList',JSON.stringify(orderArr))
|
|
|
this.setState({
|
|
|
orderList:orderArr,
|
|
|
loading:false
|
|
|
@@ -44,17 +56,61 @@ export default class OrderCenterPage extends Component {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ deleteOrder(data){
|
|
|
+ graphqls(DELETE_ORDER,data).then(e=>{
|
|
|
+ let user_id=sessionStorage.getItem('openid')
|
|
|
+ this.getOrder({user_id})
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteOrderProduct(data){
|
|
|
+ graphqls(DELETE_ORDER_PRODUCT,data).then(e=>{
|
|
|
+ let user_id=sessionStorage.getItem('openid')
|
|
|
+ this.getOrder({user_id})
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除订单
|
|
|
+ toDeleteOrder(id){
|
|
|
+ console.log('order_id',id)
|
|
|
+ this.deleteOrder({id})
|
|
|
+ this.deleteOrderProduct({order_id:id})
|
|
|
+ }
|
|
|
+
|
|
|
+ toPay(id){
|
|
|
+ console.log('order_id',id)
|
|
|
+ }
|
|
|
+
|
|
|
+ tabChange(e){
|
|
|
+ //有待优化,请求?(响应太慢,放弃)or使用缓存(徐分别处理,增加了代码量,这里采用)
|
|
|
+ console.log(e)
|
|
|
+ let orderList=JSON.parse(sessionStorage.getItem('orderList'))||[]
|
|
|
+ if(e.title==='未支付'){
|
|
|
+ orderList=orderList.filter((item)=>{
|
|
|
+ return item.orderStatus==="0"
|
|
|
+ })
|
|
|
+ this.setState({orderList})
|
|
|
+ }else if(e.title==='已支付'){
|
|
|
+ orderList=orderList.filter((item)=>{
|
|
|
+ return item.orderStatus==="1"
|
|
|
+ })
|
|
|
+ this.setState({orderList})
|
|
|
+ }else{
|
|
|
+ this.setState({orderList})
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
render() {
|
|
|
const orderList=this.state.orderList||[]
|
|
|
return (
|
|
|
<div>
|
|
|
<ActivityIndicator toast text="loading" animating={this.state.loading}/>
|
|
|
- <div className="headTitle">订单列表</div>
|
|
|
+ <TabBarTop tabChange={this.tabChange} tabs={this.state.tabs}/>
|
|
|
<div className="orderList">
|
|
|
{
|
|
|
orderList.map((item,index)=>{
|
|
|
console.log(index,item)
|
|
|
- return(<OrderCard order={item} key={item.id}/>)
|
|
|
+ return(<OrderCard order={item} key={item.id} toPay={this.toPay} toDeleteOrder={this.toDeleteOrder}/>)
|
|
|
})
|
|
|
}
|
|
|
</div>
|