diff --git a/src/api/infra/demo02/index.ts b/src/api/infra/demo02/index.ts
new file mode 100644
index 00000000..b575dba4
--- /dev/null
+++ b/src/api/infra/demo02/index.ts
@@ -0,0 +1,35 @@
+import request from '@/config/axios'
+
+export interface DemoStudentVO {
+ id: number
+}
+
+// 查询学生列表
+export const getDemoStudentPage = async (params) => {
+ return await request.get({ url: `/infra/demo-student/page`, params })
+}
+
+// 查询学生详情
+export const getDemoStudent = async (id: number) => {
+ return await request.get({ url: `/infra/demo-student/get?id=` + id })
+}
+
+// 新增学生
+export const createDemoStudent = async (data: DemoStudentVO) => {
+ return await request.post({ url: `/infra/demo-student/create`, data })
+}
+
+// 修改学生
+export const updateDemoStudent = async (data: DemoStudentVO) => {
+ return await request.put({ url: `/infra/demo-student/update`, data })
+}
+
+// 删除学生
+export const deleteDemoStudent = async (id: number) => {
+ return await request.delete({ url: `/infra/demo-student/delete?id=` + id })
+}
+
+// 导出学生 Excel
+export const exportDemoStudent = async (params) => {
+ return await request.download({ url: `/infra/demo-student/export-excel`, params })
+}
diff --git a/src/views/infra/demo02/DemoStudentContactForm.vue b/src/views/infra/demo02/DemoStudentContactForm.vue
new file mode 100644
index 00000000..98c97fab
--- /dev/null
+++ b/src/views/infra/demo02/DemoStudentContactForm.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + 添加客户信息
+
+
diff --git a/src/views/infra/demo02/DemoStudentForm.vue b/src/views/infra/demo02/DemoStudentForm.vue
new file mode 100644
index 00000000..62303dc0
--- /dev/null
+++ b/src/views/infra/demo02/DemoStudentForm.vue
@@ -0,0 +1,97 @@
+
+
+
+
diff --git a/src/views/infra/demo02/index.vue b/src/views/infra/demo02/index.vue
new file mode 100644
index 00000000..ae46f8b4
--- /dev/null
+++ b/src/views/infra/demo02/index.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+