feat(lesson-preparation): add readonly view, anchor node selector, and type guards
- Add lesson-plan-readonly-view for viewing published plans - Add anchor-node-selector and textbook-segments for canvas anchor positioning - Add i18n-errors and type-guards lib utilities - Add lesson-plan-provider-setup for provider initialization - Update actions, data-access (knowledge, versions, main), publish-service - Update blocks (blackboard, exercise, homework, import, key-point, objective, reflection) - Update editor, node-editor, node-edit-panel, pickers, and providers
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import { z } from "zod";
|
||||
|
||||
// V3 修复:Zod 错误消息使用 i18n 键,由 actions 层通过 translateFieldErrors() 翻译
|
||||
export const createLessonPlanSchema = z.object({
|
||||
title: z.string().min(1, "请输入课案标题").max(255),
|
||||
title: z.string().min(1, "error.titleRequired").max(255, "error.titleTooLong"),
|
||||
textbookId: z.string().optional(),
|
||||
chapterId: z.string().optional(),
|
||||
subjectId: z.string().optional(),
|
||||
gradeId: z.string().optional(),
|
||||
templateId: z.string().min(1, "请选择模板"),
|
||||
templateId: z.string().min(1, "error.templateRequired"),
|
||||
});
|
||||
|
||||
export const updateLessonPlanContentSchema = z.object({
|
||||
@@ -47,12 +48,12 @@ export const getKnowledgePointOptionsSchema = z.object({
|
||||
// 发布作业输入校验
|
||||
const dateStringSchema = z
|
||||
.string()
|
||||
.refine((v) => !Number.isNaN(new Date(v).getTime()), "Invalid date format");
|
||||
.refine((v) => !Number.isNaN(new Date(v).getTime()), "error.invalidDate");
|
||||
|
||||
export const publishLessonPlanHomeworkSchema = z.object({
|
||||
planId: z.string().min(1),
|
||||
blockId: z.string().min(1),
|
||||
classIds: z.array(z.string().min(1)).min(1, "至少选择一个班级"),
|
||||
classIds: z.array(z.string().min(1)).min(1, "error.classRequired"),
|
||||
availableAt: dateStringSchema.optional(),
|
||||
dueAt: dateStringSchema.optional(),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user