import { Component } from "react"; import { View, Text, Image, Input } from "@tarojs/components"; import { AtDivider, AtIcon, AtActivityIndicator } from "taro-ui"; import "./index.less"; import vip from "../../../images/earningsOrder/vip.png"; import Taro from "@tarojs/taro"; import { getEarningsOrderTab, getEarningsOrderList } from "../../../service"; export default class Index extends Component { state = { current: 0, orderType: 2,//默认为推广订单 value: "", //搜索值 tabList: [{ title: "全部" }], page: 1, //页数 loading: false, //加载状态 totalPages: 1, // 添加总页数 isNoMore: false, orderList: [],//订单列表 userInfo: {},//个人信息 }; componentDidShow() { const { router } = Taro.getCurrentInstance(); const params = router.params; this.setState({ orderType: params.type||2, },()=>{ this.getEarningsOrderTab(); }); } // 获取个人信息 getUserInfo = async () => { const res = await getUserInfo(); this.setState({ userInfo: res }); } // 获取收益订单列表 getEarningsOrderList = async (isRefresh) => { const { page } = this.state; this.setState({ loading: true }); const res = await getEarningsOrderList({ tab_name: this.state.tabList[this.state.current].title, page, page_size: 10, search_name: this.state.value, user_type:this.state.orderType }); this.setState( (prevState) => ({ orderList: isRefresh ? res.income_list : [...prevState.orderList, ...res.income_list], totalPages: res.total_pages, loading: false, isNoMore: res.total_pages <= page, })); }; // 获取收益订单tab getEarningsOrderTab = async () => { const res = await getEarningsOrderTab(); const newTabList = res.tabs.map((item) => ({ title: item, })); this.setState({ tabList: newTabList, },()=>{ this.getEarningsOrderList(true); }); }; // 订单类型切换 handleOrderTypeClick = (type) => { this.setState({ orderType: type, page: 1, value: '' },()=>{ this.getEarningsOrderList(true); }); }; // tab切换 handleTabClick = (index) => { this.setState({ current: index, page: 1, value: '' },()=>{ this.getEarningsOrderList(true); }); }; // 输入 handleChange = (e) => { const value = e.detail.value; this.setState({ value }); }; // 搜索 handleSearch = () => { this.getEarningsOrderList(true); }; // 复制 handleCopy = async (text) => { try { await Taro.setClipboardData({ data: text, }); Taro.showToast({ title: "内容已复制", icon: "success", duration: 2000, }); } catch (error) { Taro.showToast({ title: "复制失败", icon: "error", duration: 2000, }); } }; // 页面上拉触底 onReachBottom = () => { const { page, totalPages, loading } = this.state; if (page < totalPages && !loading) { this.setState( (prevState) => ({ page: prevState.page + 1 }), () => this.getEarningsOrderList() ); } }; render() { const { current, tabList, value, orderList, loading, isNoMore, orderType } = this.state; return ( {/* 订单类型切换 */} this.handleOrderTypeClick(2)}> 推广订单 this.handleOrderTypeClick(1)}> 购买订单 {/* tab切换 */} {tabList.map((tab, index) => ( this.handleTabClick(index)} > {tab.title} {/* {tab.num > 0 && {tab.num}} */} ))} {/* 搜索 */} 搜索 {/* 订单列表 */} {orderList.map((item, index) => ( {/* 头部信息 */} {/* 张三 {item.state_text} */} {/* 订单信息 */} 订单编号: {item.order_number} this.handleCopy(item.order_number)} > 复制 下单时间: {item.pay_time} {/* 闲鱼会员 */} {/* 产品信息 */} {item.item_title} {orderType == 2 && ( 推广收入 ¥{item.assess_amount_text} )} 实付金额: ¥{item.actual_paid_fee} ))} {/* 加载中 */} {loading && ( )} {/* 没有更多 */} {isNoMore && ( )} ); } }