待看url可修改,增加快捷键

This commit is contained in:
2025-09-08 11:47:31 +08:00
parent 5a134e39cd
commit ed921f7c66
5 changed files with 12 additions and 7 deletions
+1 -1
View File
@@ -151,7 +151,7 @@ backend/
- `POST /api/watchlist` - 添加待看项目
- 参数: `url` (必填), `title` (可选,不提供则自动生成)
- `PUT /api/watchlist/:id` - 更新待看项目
- 参数: `title` (项目标题)
- 参数: `title` (项目标题), `url` (项目URL)
- `DELETE /api/watchlist/:id` - 删除待看项目
## 🔧 配置说明
@@ -49,7 +49,7 @@
<!-- 作品导航 -->
<div v-if="showNavigation" class="artwork-navigation">
<button @click="$emit('goBack')" class="nav-btn nav-back" title="返回作者页面">
<button @click="$emit('goBack')" class="nav-btn nav-back" title="返回作者页面(快捷键: Esc / ↑ )">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" />
</svg>
+8 -4
View File
@@ -111,12 +111,12 @@
</div>
<div class="form-group">
<label>URL</label>
<input :value="editingItem.url" type="text" class="form-input" readonly disabled>
<input v-model="editUrl" type="text" class="form-input" placeholder="请输入URL" @keyup.enter="saveEdit">
</div>
</div>
<div class="modal-actions">
<button @click="cancelEdit" class="btn btn-secondary">取消</button>
<button @click="saveEdit" class="btn btn-primary" :disabled="!editTitle.trim()">保存</button>
<button @click="saveEdit" class="btn btn-primary" :disabled="!editTitle.trim() || !editUrl.trim()">保存</button>
</div>
</div>
</div>
@@ -232,6 +232,7 @@ const isOpen = ref(false);
const addLoading = ref(false);
const editingItem = ref<WatchlistItem | null>(null);
const editTitle = ref('');
const editUrl = ref('');
const showingAddModal = ref(false);
const addTitle = ref('');
const addUrl = ref('');
@@ -400,18 +401,21 @@ const navigateToItem = (item: WatchlistItem) => {
const editItem = (item: WatchlistItem) => {
editingItem.value = item;
editTitle.value = item.title;
editUrl.value = item.url;
};
const cancelEdit = () => {
editingItem.value = null;
editTitle.value = '';
editUrl.value = '';
};
const saveEdit = async () => {
if (!editingItem.value || !editTitle.value.trim()) return;
if (!editingItem.value || !editTitle.value.trim() || !editUrl.value.trim()) return;
const success = await watchlistStore.updateItem(editingItem.value.id, {
title: editTitle.value.trim()
title: editTitle.value.trim(),
url: editUrl.value.trim()
});
if (success) {
+1
View File
@@ -19,6 +19,7 @@ export interface AddWatchlistItemParams {
// 更新项目的参数接口
export interface UpdateWatchlistItemParams {
title?: string;
url?: string;
}
class WatchlistService {
+1 -1
View File
@@ -711,7 +711,7 @@ const handleKeydown = (event: KeyboardEvent) => {
} else if (event.key === 'ArrowRight' && canNavigateToNext.value) {
event.preventDefault();
navigateToNext();
} else if (event.key === 'Escape') {
} else if (event.key === 'Escape' || event.key === 'ArrowUp') {
event.preventDefault();
goBackToArtist();
} else if (event.key === 'ArrowDown') {