feat: use AI to migrate calendar and event views

This commit is contained in:
2026-07-09 16:59:00 +08:00
parent e6fc06c0f9
commit 0f674d0483
12 changed files with 1276 additions and 24 deletions
+8 -13
View File
@@ -10,6 +10,7 @@ export enum TabType {
<script setup lang="ts">
import { computed, onMounted, onUnmounted, ref } from 'vue';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import {
MAX_DATETIME,
MIN_DATETIME,
@@ -19,6 +20,7 @@ import {
dayOfWeek,
isLeapYear
} from '@/utils/datetime';
import { MONTH_NAMES, WEEK_NAMES } from '@/utils/calendar-names';
const DIAL_PLATE_WIDTH: number = 200;
const DIAL_PLATE_RADIUS: number = DIAL_PLATE_WIDTH / 2;
@@ -29,13 +31,6 @@ const DIAL_PLATE_MINUTE_PERCENT: number = 0.8;
const DIAL_PLATE_HOUR_RESOLUTION: number = Math.PI * 2 / 12;
const DIAL_PLATE_MINUTE_RESOLUTION: number = Math.PI * 2 / 60;
const MONTH_NAMES: string[] = [
'January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'
];
const WEEK_NAMES: string[] = [
'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'
];
const NBSP: string = '\u00A0';
const isVisible = ref(false);
@@ -404,7 +399,7 @@ onUnmounted(() => {
<div class="level-left">
<div class="level-item control">
<a class="button" @click="prevNextYear(true)">
<span class="icon is-small"><i class="fas fa-chevron-circle-left"></i></span>
<span class="icon is-small"><font-awesome-icon icon="fas fa-chevron-circle-left"></font-awesome-icon></span>
</a>
</div>
</div>
@@ -412,7 +407,7 @@ onUnmounted(() => {
<div class="level-right">
<div class="level-item control">
<a class="button" @click="prevNextYear(false)">
<span class="icon is-small"><i class="fas fa-chevron-circle-right"></i></span>
<span class="icon is-small"><font-awesome-icon icon="fas fa-chevron-circle-right"></font-awesome-icon></span>
</a>
</div>
</div>
@@ -432,7 +427,7 @@ onUnmounted(() => {
<div class="level-left">
<div class="level-item control">
<a class="button" @click="prevNextMonth(true)">
<span class="icon is-small"><i class="fas fa-chevron-circle-left"></i></span>
<span class="icon is-small"><font-awesome-icon icon="fas fa-chevron-circle-left"></font-awesome-icon></span>
</a>
</div>
</div>
@@ -440,7 +435,7 @@ onUnmounted(() => {
<div class="level-right">
<div class="level-item control">
<a class="button" @click="prevNextMonth(false)">
<span class="icon is-small"><i class="fas fa-chevron-circle-right"></i></span>
<span class="icon is-small"><font-awesome-icon icon="fas fa-chevron-circle-right"></font-awesome-icon></span>
</a>
</div>
</div>
@@ -460,7 +455,7 @@ onUnmounted(() => {
<div class="level-left">
<div class="level-item control">
<a class="button" @click="prevNextDay(true)">
<span class="icon is-small"><i class="fas fa-chevron-circle-left"></i></span>
<span class="icon is-small"><font-awesome-icon icon="fas fa-chevron-circle-left"></font-awesome-icon></span>
</a>
</div>
</div>
@@ -468,7 +463,7 @@ onUnmounted(() => {
<div class="level-right">
<div class="level-item control">
<a class="button" @click="prevNextDay(false)">
<span class="icon is-small"><i class="fas fa-chevron-circle-right"></i></span>
<span class="icon is-small"><font-awesome-icon icon="fas fa-chevron-circle-right"></font-awesome-icon></span>
</a>
</div>
</div>