跳到主要内容

CreditTransactionsList

CreditTransactionsList 组件渲染了一个包含所有信用额度交易的详细分页表格,提供了信用额度使用和调整的清晰日志。它非常适合在客户门户或管理仪表板中使用,以跟踪信用额度的授予和消耗情况。

该组件会自动处理数据获取、分页和格式化,提供了一种显示交易历史的简单方法。

属性

属性类型描述默认值
customer_idstring要显示的交易记录所属客户的 ID。如果未提供,则默认为来自 PaymentProvider 上下文的当前登录用户的 DID。session.user.did
subscription_idstring将交易记录筛选到特定的订阅。undefined
credit_grant_idstring将交易记录筛选到特定的信用额度授予。undefined
pageSizenumber每页显示的交易数量。10
onTableDataChange(data, prevData) => void当表格数据被获取或更新时触发的回调函数。() => {}
showAdminColumnsboolean如果为 true 且用户是管理员,则会显示额外的列,例如 'Meter Event'。false
showTimeFilterboolean如果为 true,则会显示一个日期范围选择器,以允许按日期筛选交易记录。false
sourcestring一个可选的源字符串,用于筛选交易记录。''
mode'dashboard' | 'portal'决定相关项目(如信用额度授予)的链接结构。对管理视图使用 'dashboard',对面向客户的视图使用 'portal''portal'

客户门户的基本用法

此示例展示了如何显示当前登录用户的信用额度交易历史。当 customer_id 被省略时,该组件会自动使用来自 PaymentProvider 上下文的用户的 DID。

MyCreditHistoryPage.tsx

jsx
import React from 'react';
import { CreditTransactionsList, PaymentProvider } from '@blocklet/payment-react';
import { useSessionContext } from '../hooks/session-context'; // 你的会话上下文钩子

function MyCreditHistoryPage() {
  const { session, connectApi } = useSessionContext();

  if (!session || !connectApi) {
    return <div>正在加载会话...</div>;
  }

  return (
    <PaymentProvider session={session} connectApi={connectApi}>
      <h2>我的信用额度交易</h2>
      <CreditTransactionsList />
    </PaymentProvider>
  );
}

export default MyCreditHistoryPage;

带筛选功能的管理视图

对于管理仪表板,你可以传递一个特定的 customer_id,并启用管理列和时间筛选器,以提供用户交易历史的更强大和详细的视图。

CustomerDetailsPage.tsx

jsx
import React from 'react';
import { CreditTransactionsList, PaymentProvider } from '@blocklet/payment-react';
import { useSessionContext } from '../hooks/session-context'; // 你的会话上下文钩子

function CustomerDetailsPage({ customerId }) {
  const { session, connectApi } = useSessionContext();

  if (!session || !connectApi) {
    return <div>正在加载会话...</div>;
  }

  return (
    <PaymentProvider session={session} connectApi={connectApi}>
      <h3>{customerId} 的交易历史</h3>
      <CreditTransactionsList
        customer_id={customerId}
        showAdminColumns={true}
        showTimeFilter={true}
        pageSize={20}
        mode="dashboard"
      />
    </PaymentProvider>
  );
}

export default CustomerDetailsPage;

显示特定信用额度授予的交易记录

要显示特定信用额度授予的消耗详情日志,请传递 credit_grant_id。这对于显示单个信用额度授予详情的页面非常有用。

CreditGrantDetailsPage.tsx

jsx
import React from 'react';
import { CreditTransactionsList, PaymentProvider } from '@blocklet/payment-react';
import { useSessionContext } from '../hooks/session-context'; // 你的会话上下文钩子

function CreditGrantDetailsPage({ grantId }) {
  const { session, connectApi } = useSessionContext();

  if (!session || !connectApi) {
    return <div>正在加载会话...</div>;
  }

  return (
    <PaymentProvider session={session} connectApi={connectApi}>
      <h4>授权 {grantId} 的使用详情</h4>
      <CreditTransactionsList credit_grant_id={grantId} />
    </PaymentProvider>
  );
}

export default CreditGrantDetailsPage;