whistle.mock-plugins
Version:
Whistle 插件,用于快速创建 API 模拟数据
155 lines (147 loc) • 6.3 kB
JavaScript
import React from 'react';
import { Link } from 'react-router-dom';
import AppLayout from '../components/AppLayout';
import '../styles/welcome.css';
const Welcome = () => {
// 模拟统计数据
const stats = {
featuresCount: 3,
interfacesCount: 15,
activeInterfacesCount: 12,
requestsHandledCount: 256
};
// 模拟最近活动数据
const recentActivities = [
{ id: 1, type: '创建', target: '功能', name: '商品列表', time: '2023-11-05 14:30' },
{ id: 2, type: '修改', target: '接口', name: '用户登录', time: '2023-11-05 14:15' },
{ id: 3, type: '启用', target: '接口', name: '获取用户信息', time: '2023-11-05 13:45' },
{ id: 4, type: '创建', target: '接口', name: '商品详情', time: '2023-11-05 13:30' },
{ id: 5, type: '禁用', target: '功能', name: '购物车', time: '2023-11-05 11:20' }
];
return (
<AppLayout>
<div className="welcome-container">
<div className="welcome-header">
<h1>欢迎使用 Whistle Mock 数据工厂</h1>
<p>快速创建和管理模拟数据,提高前端开发效率</p>
</div>
<div className="cards-container">
{/* 功能概览卡片 */}
<div className="card stats-card">
<div className="card-header">
<div className="card-icon">📊</div>
<h2>功能概览</h2>
</div>
<div className="card-content">
<div className="stat-item">
<div className="stat-value">{stats.featuresCount}</div>
<div className="stat-label">功能模块</div>
</div>
<div className="stat-item">
<div className="stat-value">{stats.interfacesCount}</div>
<div className="stat-label">接口配置</div>
</div>
<div className="stat-item">
<div className="stat-value">{stats.activeInterfacesCount}</div>
<div className="stat-label">启用接口</div>
</div>
<div className="stat-item">
<div className="stat-value">{stats.requestsHandledCount}</div>
<div className="stat-label">已处理请求</div>
</div>
</div>
</div>
{/* 快速开始卡片 */}
<div className="card quickstart-card">
<div className="card-header">
<div className="card-icon">🚀</div>
<h2>快速开始</h2>
</div>
<div className="card-content">
<div className="steps">
<div className="step">
<div className="step-number">1</div>
<div className="step-content">
<div className="step-title">创建功能模块</div>
<div className="step-desc">创建一个功能模块,用于组织相关接口</div>
</div>
</div>
<div className="step">
<div className="step-number">2</div>
<div className="step-content">
<div className="step-title">添加接口配置</div>
<div className="step-desc">配置API接口的URL匹配规则和响应数据</div>
</div>
</div>
<div className="step">
<div className="step-number">3</div>
<div className="step-content">
<div className="step-title">启用接口使用</div>
<div className="step-desc">启用功能模块和接口,即可在Whistle中使用</div>
</div>
</div>
</div>
<div className="quickstart-actions">
<Link to="/mock-data">
<button className="quickstart-button">开始创建功能</button>
</Link>
</div>
</div>
</div>
{/* 使用说明卡片 */}
<div className="card usage-card">
<div className="card-header">
<div className="card-icon">📘</div>
<h2>使用说明</h2>
</div>
<div className="card-content">
<div className="usage-item">
<div className="usage-title">添加Whistle规则</div>
<div className="usage-desc">
在Whistle中添加如下规则:
<pre className="code-block">example.com mock://</pre>
</div>
</div>
<div className="usage-item">
<div className="usage-title">匹配规则说明</div>
<div className="usage-desc">
支持多种匹配方式:
<ul className="usage-list">
<li>精确匹配: <code>/api/users</code></li>
<li>通配符匹配: <code>/api/users/*</code></li>
<li>正则匹配: <code>/\/api\/products\/\d+/</code></li>
</ul>
</div>
</div>
</div>
</div>
</div>
{/* 最近活动 */}
<div className="recent-activities">
<div className="section-header">
<h2>最近活动</h2>
</div>
<div className="activities-list">
{recentActivities.map(activity => (
<div key={activity.id} className="activity-item">
<div className="activity-icon">
{activity.type === '创建' ? '➕' :
activity.type === '修改' ? '✏️' :
activity.type === '启用' ? '✅' :
activity.type === '禁用' ? '❌' : '🔄'}
</div>
<div className="activity-content">
<div className="activity-title">
{activity.type}了{activity.target}「{activity.name}」
</div>
<div className="activity-time">{activity.time}</div>
</div>
</div>
))}
</div>
</div>
</div>
</AppLayout>
);
};
export default Welcome;