补全添加编辑不能存在符号

This commit is contained in:
小帅 2026-04-02 15:41:36 +08:00
parent 869231eefc
commit 7d1054d907
8 changed files with 21 additions and 12 deletions

View File

@ -1,2 +0,0 @@
12第三方第三方
12是多少

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

View File

@ -30,12 +30,18 @@ export default router.post(
data: { label: string; value: string; data: string }[]; data: { label: string; value: string; data: string }[];
directorManual: string; directorManual: string;
}; };
// 不允许纯数字
if (/^\d+$/.test(directorManual)) { if (/^\d+$/.test(directorManual)) {
res.status(400).send(error("文件名称不能为纯数字")); res.status(400).send(error("文件名称不能为纯数字"));
return; return;
} }
// 不允许有符号(只允许中文、字母和数字)
if (!/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(directorManual)) {
res.status(400).send(error("文件名称不能包含符号"));
return;
}
const mainPath = u.getPath(["skills", "story_skills", directorManual]); const mainPath = u.getPath(["skills", "story_skills", directorManual]);
if (fs.existsSync(mainPath)) { if (fs.existsSync(mainPath)) {
return res.status(400).send(error("请勿填写重复名称的视觉手册")); return res.status(400).send(error("请勿填写重复名称的视觉手册"));
@ -43,8 +49,8 @@ export default router.post(
// 字段映射表(与 getVisualManual 保持一致) // 字段映射表(与 getVisualManual 保持一致)
const DATA_MAP: { value: string; subDir?: string }[] = [ const DATA_MAP: { value: string; subDir?: string }[] = [
{ value: "README" }, { value: "README" },
{ value: "art_character", subDir: "art_prompt" }, { value: "art_directorPlanning", subDir: "art_prompt" },
{ value: "art_character_derivative", subDir: "art_prompt" }, { value: "art_storyboard", subDir: "art_prompt" },
]; ];
// 根据 DATA_MAP 构建 value -> subDir 的映射 // 根据 DATA_MAP 构建 value -> subDir 的映射
const SUB_DIR_MAP = new Map(DATA_MAP.map(({ value, subDir }) => [value, subDir ?? ""])); const SUB_DIR_MAP = new Map(DATA_MAP.map(({ value, subDir }) => [value, subDir ?? ""]));

View File

@ -31,8 +31,15 @@ export default router.post(
data: { label: string; value: string; data: string }[]; data: { label: string; value: string; data: string }[];
}; };
// 不允许纯数字
if (/^\d+$/.test(directorManual)) { if (/^\d+$/.test(directorManual)) {
res.status(400).send(error("名称不能为纯数字")); res.status(400).send(error("文件名称不能为纯数字"));
return;
}
// 不允许有符号(只允许中文、字母和数字)
if (!/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(directorManual)) {
res.status(400).send(error("文件名称不能包含符号"));
return; return;
} }
@ -43,8 +50,8 @@ export default router.post(
// 字段映射表(与 getVisualManual 保持一致) // 字段映射表(与 getVisualManual 保持一致)
const DATA_MAP: { value: string; subDir?: string }[] = [ const DATA_MAP: { value: string; subDir?: string }[] = [
{ value: "README" }, { value: "README" },
{ value: "art_character", subDir: "art_prompt" }, { value: "art_directorPlanning", subDir: "art_prompt" },
{ value: "art_character_derivative", subDir: "art_prompt" }, { value: "art_storyboard", subDir: "art_prompt" },
]; ];
// 根据 DATA_MAP 构建 value -> subDir 的映射 // 根据 DATA_MAP 构建 value -> subDir 的映射
const SUB_DIR_MAP = new Map(DATA_MAP.map(({ value, subDir }) => [value, subDir ?? ""])); const SUB_DIR_MAP = new Map(DATA_MAP.map(({ value, subDir }) => [value, subDir ?? ""]));

View File

@ -8,8 +8,8 @@ const router = express.Router();
// 字段映射表 // 字段映射表
const DATA_MAP: { label: string; value: string; subDir?: string }[] = [ const DATA_MAP: { label: string; value: string; subDir?: string }[] = [
{ label: "README", value: "README" }, { label: "README", value: "README" },
{ label: "前缀", value: "art_character", subDir: "art_prompt" }, { label: "导演规划", value: "art_directorPlanning", subDir: "art_prompt" },
{ label: "角色", value: "art_character_derivative", subDir: "art_prompt" }, { label: "分镜表", value: "art_storyboard", subDir: "art_prompt" },
]; ];
// 读取 md 文件内容,文件不存在时返回空字符串 // 读取 md 文件内容,文件不存在时返回空字符串