diff --git a/apps/server/src/models/train-content/trainContent.router.ts b/apps/server/src/models/train-content/trainContent.router.ts index cdb2b8f..68acd93 100644 --- a/apps/server/src/models/train-content/trainContent.router.ts +++ b/apps/server/src/models/train-content/trainContent.router.ts @@ -1,7 +1,12 @@ import { Injectable } from "@nestjs/common"; import { TrpcService } from "@server/trpc/trpc.service"; import { TrainContentService } from "./trainContent.service"; +import { z, ZodType } from "zod"; +import { Prisma } from "@nice/common"; +const TrainContentArgsSchema:ZodType = z.any() +const TrainContentUpdateArgsSchema:ZodType = z.any() +const TrainContentFindManyArgsSchema:ZodType = z.any() @Injectable() export class TrainContentRouter { constructor( @@ -10,7 +15,18 @@ export class TrainContentRouter { ) { } router = this.trpc.router({ - + create:this.trpc.procedure.input(TrainContentArgsSchema) + .mutation(async ({input})=>{ + return this.trainContentService.create(input) + }), + update:this.trpc.procedure.input(TrainContentUpdateArgsSchema) + .mutation(async ({input})=>{ + return this.trainContentService.update(input) + }), + findMany:this.trpc.procedure.input(TrainContentFindManyArgsSchema) + .query(async ({input})=>{ + return this.trainContentService.findMany(input) + }) }) } \ No newline at end of file diff --git a/apps/web/src/app/main/dailyPage/page.tsx b/apps/web/src/app/main/dailyPage/page.tsx index ba9510d..1c5ac4e 100644 --- a/apps/web/src/app/main/dailyPage/page.tsx +++ b/apps/web/src/app/main/dailyPage/page.tsx @@ -1,5 +1,5 @@ -import DailyContext from "@web/src/components/models/daily/DailyContext"; -import DailyLayout from "@web/src/components/models/daily/DailyLayout"; +import DailyContext from "@web/src/components/models/trainPlan/TrainPlanContext"; +import DailyLayout from "@web/src/components/models/trainPlan/TrainPlanLayout"; export default function DailyPage(){ return <> diff --git a/apps/web/src/components/models/daily/DailyLayout.tsx b/apps/web/src/components/models/daily/DailyLayout.tsx deleted file mode 100644 index 38d88e6..0000000 --- a/apps/web/src/components/models/daily/DailyLayout.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import DailyMsgDisplayLayout from "./dailyMsgDisplay/DailyMsgDisplayLayout"; -import { DailyMsgFormLayout } from "./dailyMsgForm/DailyMsgFormLayout"; - -export default function DailyLayout(){ - return ( -
- - -
- ) -} \ No newline at end of file diff --git a/apps/web/src/components/models/daily/dailyMsgForm/DailyMsgFormLayout.tsx b/apps/web/src/components/models/daily/dailyMsgForm/DailyMsgFormLayout.tsx deleted file mode 100644 index a9f4de6..0000000 --- a/apps/web/src/components/models/daily/dailyMsgForm/DailyMsgFormLayout.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { Form } from "antd"; -import StaffSelect from "../../staff/staff-select"; -import { useDaily } from "../DailyContext"; -import { useEffect, useState } from "react"; -import { staffDetailSelect, UserProfile } from "@nice/common"; -import { api } from "@nice/client"; -import { MonitorOutlined } from "@ant-design/icons"; - -export function DailyMsgFormLayout() { - const [form] = Form.useForm() - const { staffsMsg ,selectedUserMsg,setSelectedUserMsg} = useDaily() - const [selectedUserId, setSelectedUserId] = useState(null); - const { data: selectedUserData } = api.staff.findUnique.useQuery( - { - where: { - id: selectedUserId, - }, - select: staffDetailSelect - }, - { - enabled: !!selectedUserId, // 只有当selectedUserId存在时才执行查询 - } - ); - const handleChange = (value: string | string[]) => { - if (!value) { - setSelectedUserId(null); - setSelectedUserMsg(null); - return; - } - setSelectedUserId(Array.isArray(value) ? value[0] : value); - } - useEffect(() => { - if (selectedUserData) { - console.log(selectedUserData) - setSelectedUserMsg(selectedUserData as any as UserProfile); - } - }, [selectedUserData]); - - return ( -
-
-
- - handleChange(value)} - > -
-
-
- ) -} \ No newline at end of file diff --git a/apps/web/src/components/models/daily/DailyContext.tsx b/apps/web/src/components/models/trainPlan/TrainPlanContext.tsx similarity index 56% rename from apps/web/src/components/models/daily/DailyContext.tsx rename to apps/web/src/components/models/trainPlan/TrainPlanContext.tsx index ac9436b..3bb06c4 100644 --- a/apps/web/src/components/models/daily/DailyContext.tsx +++ b/apps/web/src/components/models/trainPlan/TrainPlanContext.tsx @@ -1,17 +1,13 @@ import { api } from "@nice/client"; import { useAuth } from "@web/src/providers/auth-provider"; -import { UserProfile } from "@nice/common"; +import { Department, UserProfile } from "@nice/common"; import { createContext, ReactNode, useContext, useEffect, useState } from "react"; interface DailyContextProviderProps{ - staffsMsg:{ - id:string, - showname:string, - username:string - }[], + staffs:UserProfile[], staffsLoading:boolean, - selectedUserMsg:UserProfile, - setSelectedUserMsg:(userMsg:UserProfile)=>void + depts:Department[], + deptsLoading:boolean } interface DailyContextProps{ @@ -21,26 +17,24 @@ interface DailyContextProps{ const DailyContextProvider = createContext(null) export default function DailyContext({children}:DailyContextProps){ - const {user} = useAuth() - const [selectedUserMsg,setSelectedUserMsg] = useState(null) + const {user,isAuthenticated} = useAuth() // 获取当前员工的单位下的所有staff的记录 - const {data:staffs,isLoading:staffsLoading} = api.staff.findByDept.useQuery({ + const {data:staffs,isLoading:staffsLoading} = isAuthenticated?api.staff.findByDept.useQuery({ deptId:user.deptId - }) - const staffsMsg = staffs?.map((staff)=>{ - return { - id:staff.id, - showname:staff.showname, - username:staff.username - } - }) + }):{data:null,isLoading:false} + const {data:depts,isLoading:deptsLoading} = isAuthenticated?api.department.getChildSimpleTree.useQuery({ + rootId:user.deptId + }):{data:null,isLoading:false} + useEffect(()=>{ + console.log(user) + },[user]) return {children} diff --git a/apps/web/src/components/models/daily/dailyMsgDisplay/DailyMsgDisplayLayout.tsx b/apps/web/src/components/models/trainPlan/TrainPlanCreateForm.tsx similarity index 78% rename from apps/web/src/components/models/daily/dailyMsgDisplay/DailyMsgDisplayLayout.tsx rename to apps/web/src/components/models/trainPlan/TrainPlanCreateForm.tsx index 3439a11..ba894d3 100644 --- a/apps/web/src/components/models/daily/dailyMsgDisplay/DailyMsgDisplayLayout.tsx +++ b/apps/web/src/components/models/trainPlan/TrainPlanCreateForm.tsx @@ -1,10 +1,12 @@ -import { Button, DatePicker, Form, Modal, TimePicker, TreeSelect } from "antd"; +import { Button, DatePicker, Form, Modal, Select, TimePicker, TreeSelect } from "antd"; import TextArea from "antd/es/input/TextArea"; import dayjs from "dayjs"; -import { useState } from "react"; -export default function DailyMsgDisplayLayout() { +import { useState,useEffect } from "react"; +import { useDaily } from "./TrainPlanContext"; +export default function TrainPlanCreateForm() { const [form] = Form.useForm() const [open, setOpen] = useState(true) + const {depts,deptsLoading} = useDaily() const treeData = [ { title: 'Node1', @@ -25,6 +27,11 @@ export default function DailyMsgDisplayLayout() { value: '0-1', }, ]; + useEffect(()=>{ + if(depts){ + console.log(depts) + } + },[depts]) const handleSave = () => { //console.log(form.getFieldsValue()) const { trainDate, trainTime, trainType, trainContent } = form.getFieldsValue() @@ -33,7 +40,7 @@ export default function DailyMsgDisplayLayout() { const trainTimeEnd = dayjs(trainTime[1]).format('HH:mm') } return ( - <> + <> + +