mirror of
https://github.com/certd/certd.git
synced 2026-05-19 07:08:57 +08:00
perf: 批量设置定时,支持清除定时
This commit is contained in:
@@ -3,10 +3,11 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useFormWrapper } from "@fast-crud/fast-crud";
|
||||
import { compute, dict, useFormWrapper } from "@fast-crud/fast-crud";
|
||||
import * as api from "../api";
|
||||
import { useSettingStore } from "/@/store/settings";
|
||||
import { useI18n } from "/src/locales";
|
||||
import { computed } from "vue";
|
||||
const { t } = useI18n();
|
||||
|
||||
const props = defineProps<{
|
||||
@@ -20,7 +21,7 @@ async function batchUpdateRequest(form: any) {
|
||||
await api.BatchUpdateTrigger(props.selectedRowKeys, {
|
||||
title: "定时触发",
|
||||
type: "timer",
|
||||
props: form.props,
|
||||
props: form.clear ? false : form.props,
|
||||
});
|
||||
emit("change");
|
||||
}
|
||||
@@ -33,6 +34,28 @@ async function openFormDialog() {
|
||||
settingStore.checkPlus();
|
||||
const crudOptions: any = {
|
||||
columns: {
|
||||
clear: {
|
||||
title: "设置/清空",
|
||||
form: {
|
||||
value: false,
|
||||
component: {
|
||||
name: "fs-dict-switch",
|
||||
vModel: "checked",
|
||||
dict: dict({
|
||||
data: [
|
||||
{
|
||||
label: "设置定时",
|
||||
value: false,
|
||||
},
|
||||
{
|
||||
label: "清空定时",
|
||||
value: true,
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
"props.cron": {
|
||||
title: t("certd.schedule"),
|
||||
form: {
|
||||
@@ -40,12 +63,18 @@ async function openFormDialog() {
|
||||
name: "cron-editor",
|
||||
vModel: "modelValue",
|
||||
},
|
||||
show: compute(({ form }) => {
|
||||
return form.clear !== true;
|
||||
}),
|
||||
rules: [{ required: true, message: t("certd.selectCron") }],
|
||||
},
|
||||
},
|
||||
},
|
||||
form: {
|
||||
mode: "edit",
|
||||
initialForm: {
|
||||
clear: false,
|
||||
},
|
||||
//@ts-ignore
|
||||
async doSubmit({ form }) {
|
||||
await batchUpdateRequest(form);
|
||||
|
||||
@@ -121,6 +121,7 @@ export class EmailService implements IEmailService {
|
||||
data: {
|
||||
title: '测试邮件,from certd',
|
||||
content: '测试邮件,from certd',
|
||||
url:"https://certd.handfree.work",
|
||||
},
|
||||
email: {
|
||||
receivers: [receiver],
|
||||
|
||||
@@ -803,11 +803,17 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
||||
|
||||
for (const item of list) {
|
||||
const pipeline = JSON.parse(item.content);
|
||||
if (trigger.props === false) {
|
||||
//清除trigger
|
||||
pipeline.triggers = []
|
||||
} else {
|
||||
pipeline.triggers = [{
|
||||
id: nanoid(),
|
||||
title: "定时触发",
|
||||
...trigger
|
||||
}];
|
||||
}
|
||||
|
||||
await this.doUpdatePipelineJson(item, pipeline);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,13 +25,16 @@ export class EmailNotification extends BaseNotification {
|
||||
const templateData = {
|
||||
...body,
|
||||
}
|
||||
const emailSend:any = {
|
||||
receivers: this.receivers,
|
||||
}
|
||||
if (body.attachments && body.attachments.length > 0) {
|
||||
emailSend.attachments = body.attachments;
|
||||
}
|
||||
await this.ctx.emailService.sendByTemplate({
|
||||
type: body.notificationType,
|
||||
data: templateData,
|
||||
email: {
|
||||
receivers: this.receivers,
|
||||
attachments: body.attachments,
|
||||
}
|
||||
email: emailSend
|
||||
})
|
||||
|
||||
// await this.ctx.emailService.send({
|
||||
|
||||
@@ -61,8 +61,14 @@ export class BaseEmailTemplateProvider extends BaseAddon implements ITemplatePro
|
||||
|
||||
|
||||
async buildContent(params: BuildContentReq): Promise<EmailContent> {
|
||||
const title = this.compile(this.titleTemplate)(params.data)
|
||||
const content = this.compile(this.contentTemplate)(params.data)
|
||||
const data = {
|
||||
title:"",
|
||||
content:"",
|
||||
url:"",
|
||||
...params.data,
|
||||
}
|
||||
const title = this.compile(this.titleTemplate)(data)
|
||||
const content = this.compile(this.contentTemplate)(data)
|
||||
|
||||
const body: any = {
|
||||
subject: title,
|
||||
|
||||
Reference in New Issue
Block a user