From e65a432f5c9fc11d15d53ae0e16e5f4b7d62400a Mon Sep 17 00:00:00 2001
From: wsj <593216709@qq.com>
Date: Sat, 17 Oct 2026 20:53:17 +0800
Subject: [PATCH] feat: api

---
 .claude/skills/new-page/templates/non-table-page/index.tsx |   63 +++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 0 deletions(-)

diff --git a/.claude/skills/new-page/templates/non-table-page/index.tsx b/.claude/skills/new-page/templates/non-table-page/index.tsx
new file mode 100644
index 0000000..d8a991c
--- /dev/null
+++ b/.claude/skills/new-page/templates/non-table-page/index.tsx
@@ -0,0 +1,63 @@
+import { useState } from 'react';
+import { App as AntdApp, Button, Card, Form, Input, Space } from 'antd';
+import { saveXxx } from './server';
+import type { XxxFormValues } from './types';
+import './Xxx.scss';
+
+const Xxx = () => {
+  const [submitting, setSubmitting] = useState(false);
+  const [form] = Form.useForm<XxxFormValues>();
+  const { message } = AntdApp.useApp();
+
+  const handleFinish = async (values: XxxFormValues) => {
+    setSubmitting(true);
+    try {
+      await saveXxx(values);
+      message.success('保存成功');
+      form.resetFields();
+    } catch (error) {
+      message.error(error instanceof Error ? error.message : '保存失败,请稍后重试');
+    } finally {
+      setSubmitting(false);
+    }
+  };
+
+  return (
+    <div className="xxx-page">
+      <div className="page-header">
+        <div>
+          <h1 className="page-header__title">页面标题</h1>
+          <p className="page-header__desc">页面说明。</p>
+        </div>
+      </div>
+
+      <Card variant="borderless">
+        <Form<XxxFormValues>
+          form={form}
+          layout="vertical"
+          requiredMark={false}
+          onFinish={handleFinish}
+        >
+          <Form.Item
+            name="name"
+            label="名称"
+            rules={[{ required: true, message: '请输入名称' }]}
+          >
+            <Input placeholder="请输入名称" />
+          </Form.Item>
+
+          <Form.Item>
+            <Space>
+              <Button type="primary" htmlType="submit" loading={submitting}>
+                保存
+              </Button>
+              <Button onClick={() => form.resetFields()}>重置</Button>
+            </Space>
+          </Form.Item>
+        </Form>
+      </Card>
+    </div>
+  );
+};
+
+export default Xxx;

--
Gitblit v1.9.3