客户计费规则初始化失败请在客户管理中重试初始化,成功后再查看计费规则。
diff --git a/src/modules/iam/api/platformIam.test.ts b/src/modules/iam/api/platformIam.test.ts
index 932bcf72..4c31434a 100644
--- a/src/modules/iam/api/platformIam.test.ts
+++ b/src/modules/iam/api/platformIam.test.ts
@@ -17,6 +17,7 @@ import {
deletePlatformPermission,
deletePlatformRole,
downloadTenantQualification,
+ getPlatformTenantDimensionInitializationStatus,
listPlatformTenants,
listPlatformTenantOrderCounts,
listTenantQualifications,
@@ -400,6 +401,20 @@ describe('platform IAM roles', () => {
expect(form.get('replaceLegalPersonId')).toBe('true')
})
+ it('loads the customer dimension initialization status before querying dimension rules', async () => {
+ const status = {
+ tenantId: '2098016473058967554', status: 'PENDING', attemptCount: 3,
+ nextRetryAt: '2026-09-10T20:04:00', lastErrorCode: 'S0503',
+ lastErrorMessage: 'Firstleg 服务暂时不可用', updatedAt: '2026-09-10T19:54:00',
+ }
+ vi.mocked(http.get).mockResolvedValue({ code: '200', message: 'success', data: status })
+
+ await expect(getPlatformTenantDimensionInitializationStatus(status.tenantId)).resolves.toEqual(status)
+ expect(http.get).toHaveBeenCalledWith(
+ '/platform/v1/iam/tenants/2098016473058967554/dimension-initialization',
+ )
+ })
+
it('omits the optional legal-person ID parts when only the business license is uploaded', async () => {
const result = {
businessLicenseQualificationId: '91', legalPersonIdQualificationId: null,
diff --git a/src/modules/iam/api/platformIam.ts b/src/modules/iam/api/platformIam.ts
index d1ae8407..3123b5f0 100644
--- a/src/modules/iam/api/platformIam.ts
+++ b/src/modules/iam/api/platformIam.ts
@@ -148,6 +148,16 @@ export interface PlatformTenantCreationResponse {
temporaryPassword: string
}
+export interface CustomerDimensionInitializationStatus {
+ tenantId: number | string
+ status: 'PENDING' | 'SENDING' | 'READY' | 'FAILED' | string
+ attemptCount: number
+ nextRetryAt: string | null
+ lastErrorCode: string | null
+ lastErrorMessage: string | null
+ updatedAt: string | null
+}
+
export interface ResetPlatformTenantOwnerPasswordRequest {
newPassword: string
forceChangePassword: boolean
@@ -364,6 +374,12 @@ export function getPlatformTenant(tenantId: number | string) {
return getData
(`/platform/v1/iam/tenants/${tenantId}`)
}
+export function getPlatformTenantDimensionInitializationStatus(tenantId: number | string) {
+ return getData(
+ `/platform/v1/iam/tenants/${tenantId}/dimension-initialization`,
+ )
+}
+
export async function checkPlatformTenantContactPhone(contactPhone: string, excludeTenantId?: number | string) {
const response = await http.get, ApiEnvelope>(
'/platform/v1/iam/tenants/contact-phone-availability',