import React, { useState, useCallback, useEffect } from 'react'; import { Dialog, Button, Form, Input } from '@alifd/next'; import { Table, Pagination } from '@alifd/next'; import moment from 'moment'; // import CustomTable from '@/components/custom-table'; import SearchFilter from '../custom-table/search-filter'; import IceContainer from '@icedesign/container'; import PageHead from '@/components/page-head'; import styles from './index.module.scss'; import getCustomHeader from '@/components/token-header'; import Tools, { ajax } from '@/utils'; const DefaultPageSize = 20; const formItemWidth = '300px'; const FormItem = Form.Item; const btnArray = [ 'PAY', 'SEND_GOOD', 'CONFIRM_GODDS', 'CANCEL', 'RATE', 'MODIFYFEE', 'CLOSE', 'DEL', 'REFUND' ]; const formConfig = [ { label: '订单编号', component: 'Input', componentProps: { placeholder: '请输入订单编号' }, formBinderProps: { name: 'tradeOrderId', required: false, message: '请输入正确的订单编号' } }, { label: '订单状态', component: 'Select', componentProps: { placeholder: '请选择', dataSource: [ { label: '全部', value: 'ALL' }, { label: '待付款', value: 'TO_PAY' }, { label: '待发货', value: 'TO_SHIP' }, { label: '待收货', value: 'TO_RECEIVE' }, { label: '待评价', value: 'TO_RATE' } ] }, formBinderProps: { name: 'selected' } }, { label: '下单时间', component: 'RangePicker', componentProps: { placeholder: '请选择日期' }, formBinderProps: { name: 'orderTime' } } // { // label: '付款方式', // component: 'Select', // componentProps: { // placeholder: '请选择', // dataSource: [ // { value: 'alipay', label: '支付宝付款' } // // { value: '2', label: '银行卡付款' }, // // { value: '3', label: '微信付款' }, // // { value: '4', label: '找人代付' } // ] // }, // formBinderProps: { // name: 'payMethod' // } // } ]; const dialogDefaultItem = { dialogTitle: '订单操作', fields: [{ name: 'reason', label: '填写理由' }] }; const dialogModifyFeeItem = { dialogTitle: '改价', fields: [ { name: 'newPrice', label: '填写价格' }, { name: 'reason', label: '填写理由' } ] }; function OrderList(props) { const [isLoading, setLoading] = useState(false); // const [searchQuery, setSearchQuery] = useState({}); const [dialogVisible, setDialogVisible] = useState(false); const [dialogData, setDialogData] = useState({ ...dialogDefaultItem }); const currentPage = parseInt(Tools.getUrlParam('pageNum'), 10) || 1; const currentTradeOrderId = Tools.getUrlParam('tradeOrderId') || ''; // const currentKeyWord = Tools.getUrlParam('keyWord') || ''; const currentStatus = Tools.getUrlParam('selected') || 'ALL'; const currentStartTime = Tools.getUrlParam('gmtCreateStartTime') || ''; const currentEndTime = Tools.getUrlParam('gmtCreateEndTime') || ''; const searchQuery = { tradeOrderId: currentTradeOrderId, orderTime: currentStartTime && currentEndTime ? [ moment(currentStartTime, 'YYYY-MM-DD', true), moment(currentEndTime, 'YYYY-MM-DD', true) ] : null, selected: currentStatus }; // const currentPayMethod = Tools.getUrlParam('payMethod') || ''; const [data, setData] = useState([]); const [totalPage, setTotalPage] = useState(0); useEffect(() => { fetchData({ selected: currentStatus, gmtCreateStartTime: currentStartTime, gmtCreateEndTime: currentEndTime, // page: currentPage, // payMethod: currentPayMethod, // categoryId: currentCategoryId, // storeId: currentStoreId, // keyWord: currentKeyWord, tradeOrderId: currentTradeOrderId }); }, []); const fetchData = useCallback(async data => { await setLoading(true); try { const queryData = { ...data, page: currentPage, pageSize: DefaultPageSize }; const responseData = await ajax({ api: 'getOrderList', method: 'post', //TODO: get data: JSON.stringify(queryData), contentType: 'application/json', headers: getCustomHeader() }); await setLoading(false); if (responseData.success) { await setData(responseData.body.tradeOrderPortalVOS); await setTotalPage(responseData.body.totalPageNum * DefaultPageSize); // console.log('newdata', data); } else { } } catch (e) {} }); const renderDialogWithData = dialogItem => { return ( ); }; const editOrder = async (values, tradeOrderId, apiName, type) => { // console.log('edit', values, tradeOrderId); const submitData = { ...values, tradeOrderId, type }; try { const responseData = await ajax({ api: apiName, method: 'post', type: 'json', data: JSON.stringify(submitData), contentType: 'application/json', headers: getCustomHeader() }); setDialogVisible(false); if (responseData.success) { location.reload(); } else { Dialog.alert({ title: '操作失败!', content: responseData.body || `系统错误请稍后再试~` }); } } catch (e) { setDialogVisible(false); Dialog.alert({ title: '操作失败!', content: `系统错误请稍后再试~` }); } }; const renderState = value => { return (