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:
@@ -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">
|
||||
点击选择文件
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 />
|
||||
|
||||
Reference in New Issue
Block a user