feat platform dashboard and organization management
This commit is contained in:
@@ -2,11 +2,36 @@ import { request } from './http';
|
||||
import { resourceApi } from './resource';
|
||||
|
||||
/** 平台角色、菜单、账号和工作台接口。 */
|
||||
export interface DashboardMetric {
|
||||
name: string;
|
||||
value: number;
|
||||
}
|
||||
export interface DashboardDailyMetric {
|
||||
date: string;
|
||||
order_count: number;
|
||||
order_amount: number;
|
||||
}
|
||||
export interface DashboardOverview {
|
||||
gas_basic_count: number;
|
||||
delivery_basic_count: number;
|
||||
staff_count: number;
|
||||
user_count: number;
|
||||
product_count: number;
|
||||
active_contract_count: number;
|
||||
today_order_count: number;
|
||||
today_order_amount: number;
|
||||
pending_ticket_count: number;
|
||||
paid_amount: number;
|
||||
order_statuses: DashboardMetric[];
|
||||
product_statuses: DashboardMetric[];
|
||||
payment_channels: DashboardMetric[];
|
||||
recent_orders: DashboardDailyMetric[];
|
||||
}
|
||||
export type PlatformRole = { identity: string; role_code: string; name: string; location_scope: string; is_system: boolean; status: number };
|
||||
export type PlatformMenu = { identity: string; parent_identity?: string; group_code: string; name: string; icon: string; path: string; sort_no: number };
|
||||
|
||||
export const platformApi = {
|
||||
overview: () => request<Record<string, number>>('/dashboard/overview'),
|
||||
overview: () => request<DashboardOverview>('/dashboard/overview'),
|
||||
listAccount: () => request<{ total: number; list: Record<string, unknown>[] }>('/platform_account'),
|
||||
listRole: () => resourceApi.list<PlatformRole>('/platform_role'),
|
||||
createRole: (data: Record<string, unknown>) => resourceApi.create<PlatformRole>('/platform_role', data),
|
||||
|
||||
@@ -48,6 +48,11 @@ export type ResourceUiDefinition = {
|
||||
canEdit: boolean;
|
||||
canChangeStatus: boolean;
|
||||
canArchive: boolean;
|
||||
accountManagement?: {
|
||||
resource: `/${string}`;
|
||||
relationKey: string;
|
||||
title: string;
|
||||
};
|
||||
};
|
||||
|
||||
const fieldLabels: Record<string, string> = {
|
||||
@@ -276,9 +281,9 @@ function define(
|
||||
const reason = [f('reason', { required: true })];
|
||||
|
||||
export const resources: ResourceUiDefinition[] = [
|
||||
define('gas_basic', '气站', 'writable', [f('code', { required: true }), f('name', { required: true }), f('credit_code'), f('principal'), f('address'), f('longitude'), f('latitude')]),
|
||||
{ ...define('gas_basic', '气站管理', 'writable', [f('code', { required: true }), f('name', { required: true }), f('credit_code'), f('principal'), f('address'), f('longitude'), f('latitude')]), accountManagement: { resource: '/gas_account', relationKey: 'gas_basic_identity', title: '气站账户' } },
|
||||
define('gas_account', '气站账户', 'writable', [f('username', { required: true }), f('password', { required: true }), f('display_name'), f('role_code'), relation('gas_basic_identity', '/gas_basic', true)]),
|
||||
define('delivery_basic', '配送站', 'writable', [f('delivery_code', { required: true }), f('name', { required: true }), relation('gas_basic_identity', '/gas_basic'), f('principal'), f('address')]),
|
||||
{ ...define('delivery_basic', '配送点管理', 'writable', [f('delivery_code', { required: true }), f('name', { required: true }), relation('gas_basic_identity', '/gas_basic'), f('principal'), f('address')]), accountManagement: { resource: '/delivery_account', relationKey: 'delivery_basic_identity', title: '配送点账户' } },
|
||||
define('delivery_account', '配送站账户', 'writable', [f('username', { required: true }), f('password', { required: true }), f('display_name'), f('role_code'), relation('delivery_basic_identity', '/delivery_basic', true)]),
|
||||
define('staff_account', '工作人员', 'writable', [f('username', { required: true }), f('password', { required: true }), f('name', { required: true }), f('phone'), f('avatar'), f('role_code'), relation('gas_basic_identity', '/gas_basic'), relation('delivery_basic_identity', '/delivery_basic'), f('work_status')]),
|
||||
define('staff_credential', '工作人员资质', 'writable', [relation('staff_account_identity', '/staff_account', true), f('credential_type', { required: true }), f('credential_no'), f('expired_at')]),
|
||||
|
||||
Reference in New Issue
Block a user