diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c76c14f --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "marscode.marscode-extension" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..137d9f4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "marscode.chatLanguage": "cn", + "marscode.codeCompletionPro": { + "enableCodeCompletionPro": true + }, + "marscode.enableInlineCommand": true +} \ No newline at end of file diff --git a/apps/server/src/main.ts b/apps/server/src/main.ts index 8b82ed1..91928ec 100755 --- a/apps/server/src/main.ts +++ b/apps/server/src/main.ts @@ -4,19 +4,27 @@ import { TrpcRouter } from './trpc/trpc.router'; import { WebSocketService } from './socket/websocket.service'; async function bootstrap() { + // 创建NestJS应用实例 const app = await NestFactory.create(AppModule); // 启用 CORS 并允许所有来源 app.enableCors({ origin: '*', }); + + // 获取WebSocket服务实例并初始化 const wsService = app.get(WebSocketService); await wsService.initialize(app.getHttpServer()); + + // 获取tRPC路由实例并应用中间件 const trpc = app.get(TrpcRouter); trpc.applyMiddleware(app); + // 设置服务器端口,优先使用环境变量中的值,默认3000 const port = process.env.SERVER_PORT || 3000; + // 启动应用,监听指定端口 await app.listen(port); } +// 启动应用 bootstrap(); diff --git a/apps/server/src/models/goods/goods.controller.ts b/apps/server/src/models/goods/goods.controller.ts index a118d02..806acd6 100644 --- a/apps/server/src/models/goods/goods.controller.ts +++ b/apps/server/src/models/goods/goods.controller.ts @@ -1,17 +1,20 @@ -import { Controller, Get, Param, Query } from '@nestjs/common'; +import { Controller, Get, Query, Param } from '@nestjs/common'; @Controller('goods') export class GoodsController { constructor() { - console.log('goods Controller'); + console.log('goods controller') } + + // 示例1:基本查询参数 @Get('hello') - getHello(): string { - return 'Hello World!'; + getHello(@Query('name') name?: string) { + return { + message: 'Hello World!', + name: name || 'Guest' + }; } - - // 示例2:路径参数 @Get('detail/:id') getDetail(@Param('id') id: string) { @@ -36,4 +39,3 @@ export class GoodsController { }; } } - diff --git a/apps/server/src/models/goods/goods.module.ts b/apps/server/src/models/goods/goods.module.ts index faadd1e..64565de 100644 --- a/apps/server/src/models/goods/goods.module.ts +++ b/apps/server/src/models/goods/goods.module.ts @@ -1,10 +1,9 @@ import { Module } from '@nestjs/common'; -import { GoodsService } from './goods.servers'; +import { GoodsService } from './goods.service'; import { GoodsController } from './goods.controller'; - @Module({ - providers: [GoodsService], - controllers: [GoodsController] + providers: [GoodsService], + controllers: [GoodsController], }) export class GoodsModule {} diff --git a/apps/server/src/models/goods/goods.service.ts b/apps/server/src/models/goods/goods.service.ts new file mode 100644 index 0000000..f5e6cc7 --- /dev/null +++ b/apps/server/src/models/goods/goods.service.ts @@ -0,0 +1,6 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class GoodsService { + +} diff --git a/apps/server/src/models/message/message.controller.ts b/apps/server/src/models/message/message.controller.ts index 0738c08..e265c5c 100755 --- a/apps/server/src/models/message/message.controller.ts +++ b/apps/server/src/models/message/message.controller.ts @@ -3,7 +3,6 @@ import { Controller, Get, Query, UseGuards } from '@nestjs/common'; import { MessageService } from './message.service'; import { AuthGuard } from '@server/auth/auth.guard'; import { db, VisitType } from '@nice/common'; - @Controller('message') export class MessageController { constructor(private readonly messageService: MessageService) { } diff --git a/apps/server/src/trpc/trpc.module.ts b/apps/server/src/trpc/trpc.module.ts index 2f7f3a5..ead8b11 100755 --- a/apps/server/src/trpc/trpc.module.ts +++ b/apps/server/src/trpc/trpc.module.ts @@ -34,9 +34,9 @@ import { GoodsModule } from '@server/models/goods/goods.module'; VisitModule, WebSocketModule, ResourceModule, - GoodsModule, + GoodsModule ], controllers: [], providers: [TrpcService, TrpcRouter, Logger], }) -export class TrpcModule {} +export class TrpcModule { } diff --git a/apps/web/src/app/main/component/People.tsx b/apps/web/src/app/main/component/People.tsx new file mode 100644 index 0000000..835b87e --- /dev/null +++ b/apps/web/src/app/main/component/People.tsx @@ -0,0 +1,51 @@ +import { useEffect } from 'react'; +import { api } from '@nice/client'; + +function People() { + // 使用 useQuery 钩子从 API 获取数据,限制查询结果数量为 10 + const { data } = api.staff.findMany.useQuery({ + take: 10, // 限制查询结果数量 + }); + // 当 data 发生变化时,打印数据到控制台 + useEffect(() => { + console.log(data); + }, [data]); + + return ( +
+ { + // 遍历 data 并渲染每个元素 + data?.map((i) => { + return ( + + + + + + + + + + + + + {data?.map((i) => ( + + + + + + + + + ))} + +
UsernameIDShownamePasswordPhone NumberOrder
{i.username}{i.id}{i.showname}{i.password}{i.phoneNumber}{i.order}
+ ); + }) + } +
+ ); +} + +export default People; diff --git a/apps/web/src/app/main/home/page.tsx b/apps/web/src/app/main/home/page.tsx index 5d71745..878e55c 100755 --- a/apps/web/src/app/main/home/page.tsx +++ b/apps/web/src/app/main/home/page.tsx @@ -1,80 +1,45 @@ -// import { api, useStaff } from "@nice/client" -// //import { useAuth } from "@web/src/providers/auth-provider"; -// import { Button, Tag } from "antd"; -// import { useEffect, useMemo, useState } from "react"; -// import PersonCard from './personcard'; - -// function HomePage(){ -// // function HomePage(){ -// // const {data} = api.staff.findMany.useQuery({ -// // take: 5 -// // }) -// // //const {user,}=useAuth() -// // //const {update,create}=useStaff() -// // const [counter, setCounter] = useState(0) -// // const counterText=useMemo(()=>{ -// // return `当前计数为:${counter}` -// // },[counter]) -// // const test=async ()=>{ - -// // await update.mutateAsync({ -// // where: { -// // username: user?.username -// // }, -// // data: { -// // username: "test" -// // } -// // }) -// // } -// // useEffect(()=>{ -// // console.log(data) -// // },[data]) -// return ( -//
-//

主页

-// {/* 调用 PersonCard 组件 */} -// -//
-// ); -// }; - - -// // return
-// // 当前计数为:{counter} -// //
-// // -// // -// //
- - - -// export default HomePage; -// // export {HomePage};//main-route那里也需要加括号 - -import React, { useEffect } from 'react'; import { api } from "@nice/client" +import { apiClient } from "@web/src/utils" +import { Button, Tag } from "antd" +import { useEffect, useMemo, useState } from "react" -function PersonCard(){ - const {data} = api.staff.findMany.useQuery({ - take: 15 - }) +function HomePage() { + const { data } = api.staff.findMany.useQuery({ + take: 10 + }) + const [counter, setCounter] = useState(0) + const counterText = useMemo(() => { + return `当前计数为:${counter}` + }, [counter]) - useEffect(()=>{ - console.log(data) - },[data]) + const getData = async () => { + const res = await apiClient.get("/goods/hello") + console.log(res) + } + useEffect(() => { + getData() + }, []) + return
+ {counterText} +
+ + +
- - return ( -
- {data?.map((i, index) => ( -
-
-

{i.username}

-
-
- ))} + { + data?.map(i => { + return
+ {i.username}
- ); + }) + } +
} - -export default PersonCard; \ No newline at end of file +// export { HomePage } +export default HomePage diff --git a/package.json b/package.json index b351532..8156253 100755 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev": "pnpm run --parallel dev", + "dev": "pnpm run --parallel dev", "db:clear": "pnpm --filter common run db:clear", "studio": "pnpm --filter common run studio" }, diff --git a/packages/common/prisma/schema.prisma b/packages/common/prisma/schema.prisma index 474035c..ff42120 100755 --- a/packages/common/prisma/schema.prisma +++ b/packages/common/prisma/schema.prisma @@ -330,6 +330,8 @@ model Resource { @@map("resource") } + + //商品表 model Goods { id String @id @default(cuid()) // 商品ID