feat: 商户中心展示商户全量关联信息

对齐后端 /merchant/info 聚合结构,页面按基本信息、资质合同、门店、员工、日志分区展示商户中心数据。
This commit is contained in:
2026-02-06 13:45:50 +08:00
parent dc0259339e
commit c8b63cf0f5
2 changed files with 380 additions and 64 deletions

View File

@@ -1,41 +1,164 @@
import { requestClient } from '#/api/request';
/**
* 商户信息 DTO
* 商户门店信息
*/
export interface MerchantDto {
export interface MerchantStoreDto {
/** 门店ID */
id: string;
/** 门店名称 */
name: string;
/** 营业执照号 */
licenseNumber?: string;
/** 联系电话 */
contactPhone?: string;
/** 门店地址 */
address: string;
/** 门店状态 */
status: number;
}
/**
* 商户详情信息
*/
export interface MerchantDetailDto {
/** 商户ID */
id: string;
/** 租户ID */
tenantId: string;
/** 租户名称 */
tenantName?: string;
/** 商户名称 */
merchantName: string;
/** 联系人 */
contactName: string;
name: string;
/** 经营模式 */
operatingMode?: number;
/** 营业执照号 */
licenseNumber?: string;
/** 法人/负责人 */
legalRepresentative?: string;
/** 注册地址 */
registeredAddress?: string;
/** 联系电话 */
contactPhone: string;
/** 商户地址 */
address: string;
/** 商户状态 (1: 正常, 2: 禁用) */
contactPhone?: string;
/** 联系邮箱 */
contactEmail?: string;
/** 商户状态 */
status: number;
/** 营业执照代码 */
businessLicenseCode: string;
/** 商户简介 */
description: string;
/** 是否冻结 */
isFrozen: boolean;
/** 冻结原因 */
frozenReason?: string;
/** 冻结时间 */
frozenAt?: null | string;
/** 审核通过人 */
approvedBy?: string;
/** 审核通过时间 */
approvedAt?: null | string;
/** 关联门店 */
stores: MerchantStoreDto[];
/** 并发版本 */
rowVersion?: string;
/** 创建时间 */
createTime: string;
/** 商户Logo */
logo?: string;
createdAt: string;
/** 创建人 */
createdBy?: string;
/** 更新时间 */
updatedAt?: null | string;
/** 更新人 */
updatedBy?: string;
}
/**
* 获取当前商户信息
* 商户资质信息
*/
export interface MerchantDocumentDto {
id: string;
merchantId: string;
documentType: number;
status: number;
fileUrl: string;
documentNumber?: string;
issuedAt?: null | string;
expiresAt?: null | string;
remarks?: string;
createdAt: string;
}
/**
* 商户合同信息
*/
export interface MerchantContractDto {
id: string;
merchantId: string;
contractNumber: string;
status: number;
startDate: string;
endDate: string;
fileUrl: string;
signedAt?: null | string;
terminatedAt?: null | string;
terminationReason?: string;
}
/**
* 商户员工信息
*/
export interface MerchantStaffDto {
id: string;
tenantId: string;
merchantId: string;
storeId?: null | string;
name: string;
phone: string;
email?: string;
roleType: number;
status: number;
}
/**
* 商户审核日志
*/
export interface MerchantAuditLogDto {
id: string;
merchantId: string;
action: number;
operatorId?: string;
title: string;
description?: string;
operatorName?: string;
ipAddress?: string;
createdAt: string;
}
/**
* 商户变更日志
*/
export interface MerchantChangeLogDto {
id: string;
fieldName: string;
oldValue?: string;
newValue?: string;
changedBy?: string;
changedByName?: string;
changedAt: string;
changeReason?: string;
}
/**
* 商户中心聚合信息
*/
export interface CurrentMerchantCenterDto {
merchant: MerchantDetailDto;
documents: MerchantDocumentDto[];
contracts: MerchantContractDto[];
staffs: MerchantStaffDto[];
auditLogs: MerchantAuditLogDto[];
changeLogs: MerchantChangeLogDto[];
}
/**
* 获取当前商户中心信息
*/
export async function getMerchantInfoApi() {
return requestClient.get<MerchantDto>('/merchant/info');
}
/**
* 更新商户信息
*/
export async function updateMerchantInfoApi(data: Partial<MerchantDto>) {
return requestClient.post('/merchant/update', data);
return requestClient.get<CurrentMerchantCenterDto>('/merchant/info');
}