This commit is contained in:
魔方熊成祥
2026-05-07 22:54:07 +08:00
parent c7481718e4
commit 5d30ea097d
8 changed files with 80 additions and 80 deletions

BIN
dist.zip Normal file

Binary file not shown.

View File

@@ -72,7 +72,7 @@ export const apiAdminMerchantPage = async (params: AdminMerchantPageParams, sign
} }
export const apiAdminMerchantCreate = async (params: AdminMerchantCreateParams, signal?: AbortSignal) => { export const apiAdminMerchantCreate = async (params: AdminMerchantCreateParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ uid: number; merchantId: string; merchantNo: string }>>( const response = await axiosInstance.post<IBaseResponse<{ uid: string; merchantId: string; merchantNo: string }>>(
'/api/v1/mall/admin/merchant_create', '/api/v1/mall/admin/merchant_create',
params, params,
{ signal } { signal }
@@ -103,7 +103,7 @@ export const apiAdminStorePage = async (params: AdminStorePageParams, signal?: A
} }
export const apiAdminStoreAudit = async (params: AdminStoreAuditParams, signal?: AbortSignal) => { export const apiAdminStoreAudit = async (params: AdminStoreAuditParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ storeId: number; auditStatus: string }>>( const response = await axiosInstance.post<IBaseResponse<{ storeId: string; auditStatus: string }>>(
'/api/v1/mall/admin/store_audit', '/api/v1/mall/admin/store_audit',
params, params,
{ signal } { signal }
@@ -125,7 +125,7 @@ export const apiAdminGoodsPage = async (params: AdminGoodsPageParams, signal?: A
} }
export const apiAdminGoodsAudit = async (params: AdminGoodsAuditParams, signal?: AbortSignal) => { export const apiAdminGoodsAudit = async (params: AdminGoodsAuditParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ spuId: number; auditStatus: string }>>( const response = await axiosInstance.post<IBaseResponse<{ spuId: string; auditStatus: string }>>(
'/api/v1/mall/admin/goods_audit', '/api/v1/mall/admin/goods_audit',
params, params,
{ signal } { signal }
@@ -173,7 +173,7 @@ export const apiAdminCategoryTree = async (params: AdminCategoryTreeParams, sign
} }
export const apiAdminCategorySave = async (params: AdminCategorySaveParams, signal?: AbortSignal) => { export const apiAdminCategorySave = async (params: AdminCategorySaveParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number; categoryLevel: number; categoryPath: string }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string; categoryLevel: number; categoryPath: string }>>(
'/api/v1/mall/admin/category_save', '/api/v1/mall/admin/category_save',
params, params,
{ signal } { signal }
@@ -182,7 +182,7 @@ export const apiAdminCategorySave = async (params: AdminCategorySaveParams, sign
} }
export const apiAdminCategoryDelete = async (params: AdminCategoryDeleteParams, signal?: AbortSignal) => { export const apiAdminCategoryDelete = async (params: AdminCategoryDeleteParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/category_delete', '/api/v1/mall/admin/category_delete',
params, params,
{ signal } { signal }
@@ -204,7 +204,7 @@ export const apiAdminBannerPage = async (params: AdminBannerPageParams, signal?:
} }
export const apiAdminBannerSave = async (params: AdminBannerSaveParams, signal?: AbortSignal) => { export const apiAdminBannerSave = async (params: AdminBannerSaveParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/banner_save', '/api/v1/mall/admin/banner_save',
params, params,
{ signal } { signal }
@@ -213,7 +213,7 @@ export const apiAdminBannerSave = async (params: AdminBannerSaveParams, signal?:
} }
export const apiAdminBannerDelete = async (params: AdminBannerDeleteParams, signal?: AbortSignal) => { export const apiAdminBannerDelete = async (params: AdminBannerDeleteParams, signal?: AbortSignal) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/banner_delete', '/api/v1/mall/admin/banner_delete',
params, params,
{ signal } { signal }
@@ -241,7 +241,7 @@ export const apiAdminRecommendStoreSave = async (
params: AdminRecommendStoreSaveParams, params: AdminRecommendStoreSaveParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number; storeId: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string; storeId: string }>>(
'/api/v1/mall/admin/recommend_store_save', '/api/v1/mall/admin/recommend_store_save',
params, params,
{ signal } { signal }
@@ -269,7 +269,7 @@ export const apiAdminRecommendMerchantSave = async (
params: AdminRecommendMerchantSaveParams, params: AdminRecommendMerchantSaveParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number; merchantId: string }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string; merchantId: string }>>(
'/api/v1/mall/admin/recommend_merchant_save', '/api/v1/mall/admin/recommend_merchant_save',
params, params,
{ signal } { signal }
@@ -281,7 +281,7 @@ export const apiAdminRecommendMerchantDelete = async (
params: AdminRecommendMerchantDeleteParams, params: AdminRecommendMerchantDeleteParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/recommend_merchant_delete', '/api/v1/mall/admin/recommend_merchant_delete',
params, params,
{ signal } { signal }
@@ -309,7 +309,7 @@ export const apiAdminSearchKeywordSave = async (
params: AdminSearchKeywordSaveParams, params: AdminSearchKeywordSaveParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/search_keyword_save', '/api/v1/mall/admin/search_keyword_save',
params, params,
{ signal } { signal }
@@ -321,7 +321,7 @@ export const apiAdminSearchKeywordDelete = async (
params: AdminSearchKeywordDeleteParams, params: AdminSearchKeywordDeleteParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/search_keyword_delete', '/api/v1/mall/admin/search_keyword_delete',
params, params,
{ signal } { signal }
@@ -349,7 +349,7 @@ export const apiAdminHomeChannelSave = async (
params: AdminHomeChannelSaveParams, params: AdminHomeChannelSaveParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/home_channel_save', '/api/v1/mall/admin/home_channel_save',
params, params,
{ signal } { signal }
@@ -361,7 +361,7 @@ export const apiAdminHomeChannelDelete = async (
params: AdminHomeChannelDeleteParams, params: AdminHomeChannelDeleteParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/home_channel_delete', '/api/v1/mall/admin/home_channel_delete',
params, params,
{ signal } { signal }
@@ -373,7 +373,7 @@ export const apiAdminRecommendStoreDelete = async (
params: AdminRecommendStoreDeleteParams, params: AdminRecommendStoreDeleteParams,
signal?: AbortSignal signal?: AbortSignal
) => { ) => {
const response = await axiosInstance.post<IBaseResponse<{ id: number }>>( const response = await axiosInstance.post<IBaseResponse<{ id: string }>>(
'/api/v1/mall/admin/recommend_store_delete', '/api/v1/mall/admin/recommend_store_delete',
params, params,
{ signal } { signal }

View File

@@ -23,14 +23,14 @@ import {
} from '@/utils/mall' } from '@/utils/mall'
const DEFAULT_STATUS: EnabledStatus = 'enabled' const DEFAULT_STATUS: EnabledStatus = 'enabled'
const ROOT_PARENT_ID = 0 const ROOT_PARENT_ID = '0'
interface CategorySearchValues { interface CategorySearchValues {
status?: EnabledStatus | '' status?: EnabledStatus | ''
} }
interface CategoryFormValues { interface CategoryFormValues {
parentId: number parentId: string
categoryName: string categoryName: string
categoryIcon?: string categoryIcon?: string
sort?: number sort?: number
@@ -39,13 +39,13 @@ interface CategoryFormValues {
interface ParentTreeNode { interface ParentTreeNode {
title: string title: string
value: number value: string
disabled?: boolean disabled?: boolean
children: ParentTreeNode[] children: ParentTreeNode[]
} }
const collectDisabledParentIds = (node?: AdminCategoryItem | null): Set<number> => { const collectDisabledParentIds = (node?: AdminCategoryItem | null): Set<string> => {
const ids = new Set<number>() const ids = new Set<string>()
const walk = (current?: AdminCategoryItem | null) => { const walk = (current?: AdminCategoryItem | null) => {
if (!current) { if (!current) {
@@ -61,7 +61,7 @@ const collectDisabledParentIds = (node?: AdminCategoryItem | null): Set<number>
const buildParentTreeChildren = ( const buildParentTreeChildren = (
items: AdminCategoryItem[], items: AdminCategoryItem[],
disabledIds: Set<number> disabledIds: Set<string>
): ParentTreeNode[] => ): ParentTreeNode[] =>
items.map(item => ({ items.map(item => ({
title: `${compactText(item.categoryName)} (ID: ${item.id})`, title: `${compactText(item.categoryName)} (ID: ${item.id})`,
@@ -70,7 +70,7 @@ const buildParentTreeChildren = (
children: buildParentTreeChildren(item.children, disabledIds), children: buildParentTreeChildren(item.children, disabledIds),
})) }))
const buildParentTreeData = (items: AdminCategoryItem[], disabledIds: Set<number>): ParentTreeNode[] => [ const buildParentTreeData = (items: AdminCategoryItem[], disabledIds: Set<string>): ParentTreeNode[] => [
{ {
title: '顶级类目', title: '顶级类目',
value: ROOT_PARENT_ID, value: ROOT_PARENT_ID,
@@ -171,7 +171,7 @@ export default function CategoryManagementPage() {
setSaving(true) setSaving(true)
const payload: AdminCategorySaveParams = { const payload: AdminCategorySaveParams = {
id: editingRecord?.id, id: editingRecord?.id,
parentId: Number(values.parentId ?? ROOT_PARENT_ID), parentId: values.parentId ?? ROOT_PARENT_ID,
categoryName: values.categoryName.trim(), categoryName: values.categoryName.trim(),
categoryIcon: values.categoryIcon?.trim() || undefined, categoryIcon: values.categoryIcon?.trim() || undefined,
sort: values.sort ?? 0, sort: values.sort ?? 0,
@@ -213,7 +213,7 @@ export default function CategoryManagementPage() {
title: '父类目 ID', title: '父类目 ID',
dataIndex: 'parentId', dataIndex: 'parentId',
width: 106, width: 106,
render: value => Number(value || 0), render: value => value || ROOT_PARENT_ID,
}, },
{ {
title: '层级', title: '层级',

View File

@@ -63,7 +63,7 @@ const mergeMerchantOptions = (current: MerchantSelectOption[], next: MerchantSel
export default function GoodsReviewPage() { export default function GoodsReviewPage() {
const [form] = Form.useForm<GoodsSearchValues>() const [form] = Form.useForm<GoodsSearchValues>()
const operatorId = useUserStore(state => state.token?.uid ?? 0) const operatorId = String(useUserStore(state => state.token?.uid ?? ''))
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const [auditLoading, setAuditLoading] = useState(false) const [auditLoading, setAuditLoading] = useState(false)
const [merchantLoading, setMerchantLoading] = useState(false) const [merchantLoading, setMerchantLoading] = useState(false)

View File

@@ -45,7 +45,7 @@ interface MerchantSearchValues {
export default function MerchantReviewPage() { export default function MerchantReviewPage() {
const [form] = Form.useForm<MerchantSearchValues>() const [form] = Form.useForm<MerchantSearchValues>()
const operatorId = useUserStore(state => state.token?.uid ?? 0) const operatorId = String(useUserStore(state => state.token?.uid ?? ''))
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const [auditLoading, setAuditLoading] = useState(false) const [auditLoading, setAuditLoading] = useState(false)
const [createLoading, setCreateLoading] = useState(false) const [createLoading, setCreateLoading] = useState(false)
@@ -182,7 +182,7 @@ export default function MerchantReviewPage() {
try { try {
setAuditLoading(true) setAuditLoading(true)
await apiAdminMerchantAudit({ await apiAdminMerchantAudit({
merchantId: String(selectedRecord.id), merchantId: selectedRecord.id,
auditStatus: values.auditStatus, auditStatus: values.auditStatus,
remark: values.remark?.trim() || undefined, remark: values.remark?.trim() || undefined,
operatorId, operatorId,

View File

@@ -34,7 +34,7 @@ export default function OrderDetailPage() {
const [detail, setDetail] = useState<OrderDetailInfo | null>(null) const [detail, setDetail] = useState<OrderDetailInfo | null>(null)
useEffect(() => { useEffect(() => {
const id = Number(orderId) const id = orderId?.trim()
if (!id) { if (!id) {
toast.error('订单 ID 无效') toast.error('订单 ID 无效')
return return

View File

@@ -45,7 +45,7 @@ const normalizeFilterValues = (values: StoreSearchValues): AdminStorePageParams
export default function StoreReviewPage() { export default function StoreReviewPage() {
const [form] = Form.useForm<StoreSearchValues>() const [form] = Form.useForm<StoreSearchValues>()
const operatorId = useUserStore(state => state.token?.uid ?? 0) const operatorId = String(useUserStore(state => state.token?.uid ?? ''))
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const [auditLoading, setAuditLoading] = useState(false) const [auditLoading, setAuditLoading] = useState(false)
const [list, setList] = useState<StoreInfo[]>([]) const [list, setList] = useState<StoreInfo[]>([])

View File

@@ -34,8 +34,8 @@ export interface PageResult<T> {
} }
export interface MerchantInfo { export interface MerchantInfo {
id: number id: string
uid: number uid: string
merchantNo: string merchantNo: string
merchantName: string merchantName: string
status: EnabledStatus status: EnabledStatus
@@ -56,7 +56,7 @@ export interface MerchantInfo {
} }
export interface StoreInfo { export interface StoreInfo {
id: number id: string
merchantId: string merchantId: string
storeNo: string storeNo: string
storeName: string storeName: string
@@ -80,10 +80,10 @@ export interface StoreInfo {
} }
export interface GoodsSummary { export interface GoodsSummary {
id: number id: string
merchantId: string merchantId: string
storeId: number storeId: string
categoryId: number categoryId: string
categoryName?: string categoryName?: string
spuNo: string spuNo: string
spuName: string spuName: string
@@ -105,12 +105,12 @@ export interface GoodsSummary {
} }
export interface OrderItemInfo { export interface OrderItemInfo {
id: number id: string
orderId: number orderId: string
tradeId: number tradeId: string
orderNo: string orderNo: string
spuId: number spuId: string
skuId: number skuId: string
spuName: string spuName: string
skuName: string skuName: string
coverUrl: string coverUrl: string
@@ -125,14 +125,14 @@ export interface OrderItemInfo {
} }
export interface OrderSummary { export interface OrderSummary {
id: number id: string
tradeId: number tradeId: string
tradeNo: string tradeNo: string
orderNo: string orderNo: string
memberId: number memberId: string
uid?: number uid?: string
merchantId: string merchantId: string
storeId: number storeId: string
merchantName?: string merchantName?: string
storeName: string storeName: string
orderStatus: OrderStatus orderStatus: OrderStatus
@@ -151,14 +151,14 @@ export interface OrderSummary {
} }
export interface OrderDetailInfo { export interface OrderDetailInfo {
id: number id: string
tradeId: number tradeId: string
tradeNo: string tradeNo: string
orderNo: string orderNo: string
memberId: number memberId: string
uid?: number uid?: string
merchantId: string merchantId: string
storeId: number storeId: string
merchantName?: string merchantName?: string
storeName: string storeName: string
orderStatus: OrderStatus orderStatus: OrderStatus
@@ -219,7 +219,7 @@ export interface AdminMerchantAuditParams {
merchantId: string merchantId: string
auditStatus: Extract<AuditStatus, 'approved' | 'rejected'> auditStatus: Extract<AuditStatus, 'approved' | 'rejected'>
remark?: string remark?: string
operatorId: number operatorId: string
} }
export interface AdminStorePageParams { export interface AdminStorePageParams {
@@ -232,15 +232,15 @@ export interface AdminStorePageParams {
} }
export interface AdminStoreAuditParams { export interface AdminStoreAuditParams {
storeId: number storeId: string
auditStatus: Extract<AuditStatus, 'approved' | 'rejected'> auditStatus: Extract<AuditStatus, 'approved' | 'rejected'>
remark?: string remark?: string
operatorId: number operatorId: string
} }
export interface AdminGoodsPageParams { export interface AdminGoodsPageParams {
merchantId?: string merchantId?: string
storeId?: number storeId?: string
keyword?: string keyword?: string
auditStatus?: AuditStatus auditStatus?: AuditStatus
saleStatus?: SaleStatus saleStatus?: SaleStatus
@@ -249,15 +249,15 @@ export interface AdminGoodsPageParams {
} }
export interface AdminGoodsAuditParams { export interface AdminGoodsAuditParams {
spuId: number spuId: string
auditStatus: Extract<AuditStatus, 'approved' | 'rejected'> auditStatus: Extract<AuditStatus, 'approved' | 'rejected'>
remark?: string remark?: string
operatorId: number operatorId: string
} }
export interface AdminOrderPageParams { export interface AdminOrderPageParams {
merchantId?: string merchantId?: string
storeId?: number storeId?: string
tradeNo?: string tradeNo?: string
orderNo?: string orderNo?: string
orderStatus?: OrderStatus orderStatus?: OrderStatus
@@ -267,12 +267,12 @@ export interface AdminOrderPageParams {
} }
export interface AdminOrderDetailParams { export interface AdminOrderDetailParams {
orderId: number orderId: string
} }
export interface AdminCategoryItem { export interface AdminCategoryItem {
id: number id: string
parentId: number parentId: string
categoryName: string categoryName: string
categoryLevel: number categoryLevel: number
categoryPath: string categoryPath: string
@@ -291,8 +291,8 @@ export interface AdminCategoryTreeParams {
} }
export interface AdminCategorySaveParams { export interface AdminCategorySaveParams {
id?: number id?: string
parentId?: number parentId?: string
categoryName: string categoryName: string
categoryIcon?: string categoryIcon?: string
sort?: number sort?: number
@@ -300,13 +300,13 @@ export interface AdminCategorySaveParams {
} }
export interface AdminCategoryDeleteParams { export interface AdminCategoryDeleteParams {
id: number id: string
} }
export interface AdminRecommendStoreItem { export interface AdminRecommendStoreItem {
id: number id: string
positionCode: RecommendStorePositionCode positionCode: RecommendStorePositionCode
storeId: number storeId: string
merchantId: string merchantId: string
storeName: string storeName: string
storeLogo: string storeLogo: string
@@ -334,9 +334,9 @@ export interface AdminRecommendStorePageParams {
} }
export interface AdminRecommendStoreSaveParams { export interface AdminRecommendStoreSaveParams {
id?: number id?: string
positionCode: RecommendStorePositionCode positionCode: RecommendStorePositionCode
storeId: number storeId: string
mainCategoryName?: string mainCategoryName?: string
recommendReason?: string recommendReason?: string
rankScore?: number rankScore?: number
@@ -347,11 +347,11 @@ export interface AdminRecommendStoreSaveParams {
} }
export interface AdminRecommendStoreDeleteParams { export interface AdminRecommendStoreDeleteParams {
id: number id: string
} }
export interface AdminBannerItem { export interface AdminBannerItem {
id: number id: string
title: string title: string
subTitle: string subTitle: string
description: string description: string
@@ -377,7 +377,7 @@ export interface AdminBannerPageParams {
} }
export interface AdminBannerSaveParams { export interface AdminBannerSaveParams {
id?: number id?: string
title: string title: string
subTitle?: string subTitle?: string
description?: string description?: string
@@ -393,11 +393,11 @@ export interface AdminBannerSaveParams {
} }
export interface AdminBannerDeleteParams { export interface AdminBannerDeleteParams {
id: number id: string
} }
export interface AdminRecommendMerchantItem { export interface AdminRecommendMerchantItem {
id: number id: string
positionCode: RecommendMerchantPositionCode positionCode: RecommendMerchantPositionCode
merchantId: string merchantId: string
merchantName: string merchantName: string
@@ -426,7 +426,7 @@ export interface AdminRecommendMerchantPageParams {
} }
export interface AdminRecommendMerchantSaveParams { export interface AdminRecommendMerchantSaveParams {
id?: number id?: string
positionCode: RecommendMerchantPositionCode positionCode: RecommendMerchantPositionCode
merchantId: string merchantId: string
mainCategoryName?: string mainCategoryName?: string
@@ -439,11 +439,11 @@ export interface AdminRecommendMerchantSaveParams {
} }
export interface AdminRecommendMerchantDeleteParams { export interface AdminRecommendMerchantDeleteParams {
id: number id: string
} }
export interface AdminSearchKeywordItem { export interface AdminSearchKeywordItem {
id: number id: string
keyword: string keyword: string
sort: number sort: number
status: EnabledStatus status: EnabledStatus
@@ -461,7 +461,7 @@ export interface AdminSearchKeywordPageParams {
} }
export interface AdminSearchKeywordSaveParams { export interface AdminSearchKeywordSaveParams {
id?: number id?: string
keyword: string keyword: string
sort?: number sort?: number
status?: EnabledStatus status?: EnabledStatus
@@ -470,11 +470,11 @@ export interface AdminSearchKeywordSaveParams {
} }
export interface AdminSearchKeywordDeleteParams { export interface AdminSearchKeywordDeleteParams {
id: number id: string
} }
export interface AdminHomeChannelItem { export interface AdminHomeChannelItem {
id: number id: string
title: string title: string
subTitle: string subTitle: string
iconUrl: string iconUrl: string
@@ -496,7 +496,7 @@ export interface AdminHomeChannelPageParams {
} }
export interface AdminHomeChannelSaveParams { export interface AdminHomeChannelSaveParams {
id?: number id?: string
title: string title: string
subTitle?: string subTitle?: string
iconUrl?: string iconUrl?: string
@@ -509,5 +509,5 @@ export interface AdminHomeChannelSaveParams {
} }
export interface AdminHomeChannelDeleteParams { export interface AdminHomeChannelDeleteParams {
id: number id: string
} }