style: 移除 emoji, 注释改为中文 (保留专业名词)

- 移除所有 Vue 组件和 README 中的 emoji (按钮文字、标题、功能列表)
- 将 src 下所有英文注释改为中文, 保留专业名词 (RRULE, EXDATE, ICS 等)
- 涉及文件: date.js, event-factory.js, ical-io.js, organize.js,
  recur.js, split.js, weekday.js, useCalendar.js, EventDetail.vue,
  App.vue, DropZone.vue, EventList.vue, HeaderBar.vue, README.md
This commit is contained in:
zikai
2026-07-22 02:55:45 +00:00
parent e9fc10c89d
commit 84dbaf9cd2
14 changed files with 118 additions and 123 deletions

View File

@@ -39,7 +39,7 @@ function onPick(e) {
@drop.prevent="onDrop"
>
<div class="dropzone-content">
<div class="icon">📅</div>
<div class="icon">日历</div>
<p class="hint">拖入 .ics 文件</p>
<label class="pick-btn">
点击选择文件

View File

@@ -7,7 +7,7 @@ import OccurrenceGrid from './OccurrenceGrid.vue'
const { selectedEvent, updateEvent, deleteEvent, splitEvent, toggleOccurrence } = useCalendar()
// Local form state, synced when selection changes
// 本地表单状态, 选择切换时同步
const form = ref({})
const showSplit = ref(false)
const splitDate = ref('')
@@ -94,7 +94,7 @@ function onToggleOcc(date) {
<template>
<div v-if="!selectedEvent" class="empty">从左侧选择一个日程进行编辑</div>
<div v-else class="detail">
<!-- Basic info -->
<!-- 基本信息 -->
<div class="section-title">基本信息</div>
<div class="form-group">
<label>标题 (SUMMARY)</label>
@@ -119,7 +119,7 @@ function onToggleOcc(date) {
<textarea v-model="form.description"></textarea>
</div>
<!-- RRULE -->
<!-- 重复规则 (RRULE) -->
<div class="section-title">重复规则 (RRULE)</div>
<div class="form-group">
<label>
@@ -156,7 +156,7 @@ function onToggleOcc(date) {
</div>
</div>
<!-- Occurrence grid -->
<!-- occurrence / 排除日期网格 -->
<div v-if="form.is_recurring" class="section-title">occurrence / 排除日期</div>
<OccurrenceGrid
v-if="form.is_recurring && selectedEvent.rrule"
@@ -164,7 +164,7 @@ function onToggleOcc(date) {
@toggle="onToggleOcc"
/>
<!-- Toolbar -->
<!-- 工具栏 -->
<div class="toolbar">
<button class="btn btn-primary" @click="applyChanges">应用更改</button>
<button
@@ -172,12 +172,12 @@ function onToggleOcc(date) {
class="btn btn-secondary"
@click="showSplit = !showSplit"
>
拆分此日程
拆分此日程
</button>
<button class="btn btn-danger" @click="onDelete">删除此日程</button>
</div>
<!-- Split panel -->
<!-- 拆分面板 -->
<div v-if="showSplit && selectedEvent.rrule" class="split-panel">
<p>从指定日期起把此重复事件拆成前后两段</p>
<input type="date" v-model="splitDate" />

View File

@@ -15,7 +15,7 @@ function dowFor(ev) {
<div class="stat">
{{ stats.total }} 个日程{{ stats.recurring }} 重复 / {{ stats.single }} 单次
</div>
<button class="add-btn" @click="addEvent"> 新增日程</button>
<button class="add-btn" @click="addEvent">新增日程</button>
<div class="list">
<div
v-for="ev in state.events"

View File

@@ -41,13 +41,13 @@ function onDownload() {
<template>
<div class="header-actions">
<button class="btn btn-primary" @click="onOrganize" :disabled="state.events.length === 0">
🔁 整理去重
整理去重
</button>
<button class="btn btn-secondary" @click="undo" :disabled="!canUndo"> 撤销</button>
<button class="btn btn-secondary" @click="redo" :disabled="!canRedo"> 重做</button>
<button class="btn btn-secondary" @click="onImport">📥 导入文件</button>
<button class="btn btn-secondary" @click="undo" :disabled="!canUndo">撤销</button>
<button class="btn btn-secondary" @click="redo" :disabled="!canRedo">重做</button>
<button class="btn btn-secondary" @click="onImport">导入文件</button>
<button class="btn btn-success" @click="onDownload" :disabled="state.events.length === 0">
下载 ICS
下载 ICS
</button>
<span v-if="state.dirty" class="dirty-dot" title="有未保存更改"></span>
<input ref="fileInput" type="file" accept=".ics" @change="onFilePicked" hidden />