support daily and yearly intervals for scheduled transactions

This commit is contained in:
MaysWind
2026-04-13 01:34:56 +08:00
parent c828db4988
commit 63ec0e4424
27 changed files with 233 additions and 33 deletions
@@ -33,6 +33,10 @@
v-if="currentFrequencyType === ScheduledTemplateFrequencyType.Disabled.type">
<f7-list-item :title="tt('None')"></f7-list-item>
</f7-list>
<f7-list dividers class="schedule-frequency-value-list no-margin-vertical"
v-if="currentFrequencyType === ScheduledTemplateFrequencyType.Daily.type">
<f7-list-item :title="tt('Daily')"></f7-list-item>
</f7-list>
<f7-list dividers class="schedule-frequency-value-list no-margin-vertical"
v-if="currentFrequencyType === ScheduledTemplateFrequencyType.Weekly.type">
<f7-list-item checkbox
@@ -57,6 +61,18 @@
@change="changeFrequencyValue">
</f7-list-item>
</f7-list>
<f7-list dividers class="schedule-frequency-value-list no-margin-vertical"
v-if="currentFrequencyType === ScheduledTemplateFrequencyType.Yearly.type">
<f7-list-item checkbox
:class="isChecked(monthAndDay.type) ? 'list-item-selected' : ''"
:key="monthAndDay.type"
:value="monthAndDay.type"
:checked="isChecked(monthAndDay.type)"
:title="monthAndDay.displayName"
v-for="monthAndDay in allAvailableMonthAndDays"
@change="changeFrequencyValue">
</f7-list-item>
</f7-list>
</div>
</div>
</div>
@@ -91,7 +107,13 @@ const emit = defineEmits<{
}>();
const { tt } = useI18n();
const { allTransactionScheduledFrequencyTypes, allWeekDays, allAvailableMonthDays, getFrequencyValues } = useScheduleFrequencySelectionBase();
const {
allTransactionScheduledFrequencyTypes,
allWeekDays,
allAvailableMonthDays,
allAvailableMonthAndDays,
getFrequencyValues
} = useScheduleFrequencySelectionBase();
const userStore = useUserStore();
@@ -108,10 +130,14 @@ function changeFrequencyType(value: number): void {
if (currentFrequencyType.value !== value) {
currentFrequencyType.value = value;
if (value === ScheduledTemplateFrequencyType.Weekly.type) {
if (value === ScheduledTemplateFrequencyType.Daily.type) {
currentFrequencyValue.value = [0];
} else if (value === ScheduledTemplateFrequencyType.Weekly.type) {
currentFrequencyValue.value = [firstDayOfWeek.value];
} else if (value === ScheduledTemplateFrequencyType.Monthly.type) {
currentFrequencyValue.value = [1];
} else if (value === ScheduledTemplateFrequencyType.Yearly.type) {
currentFrequencyValue.value = [101];
} else {
currentFrequencyValue.value = [];
}