chore: email template优化

This commit is contained in:
xiaojunnuo
2025-12-14 23:19:32 +08:00
parent a6c0d2c6f1
commit de544ec725
9 changed files with 64 additions and 67 deletions
@@ -1,5 +1,4 @@
import { AddonInput, BaseAddon } from "@certd/lib-server";
import { get } from "lodash-es";
import { BuildContentReq, EmailContent, ITemplateProvider } from "../api.js";
export class BaseEmailTemplateProvider extends BaseAddon implements ITemplateProvider<EmailContent> {
@@ -9,10 +8,10 @@ export class BaseEmailTemplateProvider extends BaseAddon implements ITemplatePro
name: "a-alert",
props: {
type: "info",
message: "在标题和内容模版中,通过${param}引用参数,例如: 感谢注册${siteTitle},您的注册验证码为:${code}",
message: "在标题和内容模版中,通过${name}引用参数,例如: 感谢注册,您的注册验证码为:${code}",
}
},
order: 1,
order: -9,
col: { span: 24 },
})
useIntro = "";
@@ -29,7 +28,7 @@ export class BaseEmailTemplateProvider extends BaseAddon implements ITemplatePro
]
}
},
order: 1,
order: 9,
col: { span: 24 },
})
formatType = "";
@@ -80,13 +79,20 @@ export class BaseEmailTemplateProvider extends BaseAddon implements ITemplatePro
throw new Error("请实现 buildDefaultContent 方法")
}
compile(templateString: string) {
return function (data: any): string {
return templateString.replace(/\${(.*?)}/g, (match, key) => {
const value = get(data, key, '');
return String(value);
});
};
// compile(templateString: string) {
// return function (data: any): string {
// return templateString.replace(/\${(.*?)}/g, (match, key) => {
// const value = get(data, key?.trim(), '');
// return String(value);
// });
// };
// }
compile(templateString:string) {
return new Function('data', ` with(data || {}) {
return \`${templateString}\`;
}
`);
}
}