const fs = require('fs');
const path = require('path');
const pages = [
{ name: 'Audit', route: 'audit', api: '/api/audit', description: '审计服务' },
{ name: 'Chatbot', route: 'chatbot', api: '/api/chatbot', description: '聊天机器人' },
{ name: 'Command', route: 'command', api: '/api/command', description: '命令服务' },
{ name: 'Creative', route: 'creative', api: '/api/creative', description: '创意服务' },
{ name: 'Customer', route: 'customer', api: '/api/customer', description: '客户服务' },
{ name: 'Governance', route: 'governance', api: '/api/governance', description: '治理服务' },
{ name: 'Monitoring', route: 'monitoring', api: '/api/monitoring', description: '监控服务' },
{ name: 'NLP', route: 'nlp', api: '/api/nlp', description: '自然语言处理' },
{ name: 'Omnichannel', route: 'omnichannel', api: '/api/omnichannel', description: '全渠道服务' },
{ name: 'OrderFulfillment', route: 'order-fulfillment', api: '/api/orderFulfillment', description: '订单履约' },
{ name: 'Recommendation', route: 'recommendation', api: '/api/recommendation', description: '推荐服务' },
{ name: 'Sovereignty', route: 'sovereignty', api: '/api/sovereignty', description: '主权服务' },
{ name: 'Sync', route: 'sync', api: '/api/sync', description: '同步服务' },
{ name: 'Telemetry', route: 'telemetry', api: '/api/telemetry', description: '遥测服务' },
{ name: 'Trace', route: 'trace', api: '/api/trace', description: '追踪服务' },
{ name: 'Vault', route: 'vault', api: '/api/vault', description: '密钥库' },
{ name: 'Webhook', route: 'webhook', api: '/api/webhook', description: 'Webhook服务' },
];
const generatePage = (page) => {
const componentTemplate = `import React, { useState, useEffect } from 'react';
import { Card, Table, Button, Space, Input, message, Tag, Modal, Form, Select, DatePicker, Row, Col, Statistic } from 'antd';
import { ReloadOutlined, PlusOutlined, SearchOutlined } from '@ant-design/icons';
import { ${page.name}DataSource } from '@/services/${page.route}DataSource';
import type { ${page.name}Item } from '@/services/${page.route}DataSource';
const { Option } = Select;
const { RangePicker } = DatePicker;
const ${page.name}Page: React.FC = () => {
const [data, setData] = useState<${page.name}Item[]>([]);
const [loading, setLoading] = useState(false);
const [searchText, setSearchText] = useState('');
const [modalVisible, setModalVisible] = useState(false);
const [form] = Form.useForm();
useEffect(() => {
loadData();
}, []);
const loadData = async () => {
setLoading(true);
try {
const result = await ${page.name}DataSource.list();
setData(result);
} catch (error: unknown) {
const errorMessage = error instanceof Error ? error.message : String(error);
message.error(\`加载失败: \${errorMessage}\`);
} finally {
setLoading(false);
}
};
const handleCreate = async (values: any) => {
try {
await ${page.name}DataSource.create(values);
message.success('创建成功');
setModalVisible(false);
form.resetFields();
loadData();
} catch (error: unknown) {
const errorMessage = error instanceof Error ? error.message : String(error);
message.error(\`创建失败: \${errorMessage}\`);
}
};
const columns = [
{
title: 'ID',
dataIndex: 'id',
key: 'id',
width: 200,
},
{
title: '名称',
dataIndex: 'name',
key: 'name',
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
render: (status: string) => {
const color = status === 'ACTIVE' ? 'green' : status === 'INACTIVE' ? 'red' : 'default';
return