-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathuseActionSpecialActions.js
More file actions
77 lines (66 loc) · 1.9 KB
/
Copy pathuseActionSpecialActions.js
File metadata and controls
77 lines (66 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
export const createSpecialCategory = (actionData) => ({
tid: actionData.tid,
type_id: actionData.tid,
name: actionData.name,
type_name: actionData.name || `搜索: ${actionData.tid}`,
isSpecialCategory: true,
actionData
})
export const useActionSpecialActions = ({ emit, close, toast } = {}) => {
const handleSpecialAction = async (actionData) => {
const actionId = actionData?.actionId
switch (actionId) {
case '__self_search__': {
if (!actionData.tid) {
toast?.('源内搜索参数不完整:缺少tid', 'error')
close?.()
return
}
toast?.(actionData.msg || '执行源内搜索', 'info')
emit?.('special-action', '__self_search__', createSpecialCategory(actionData))
close?.()
return
}
case '__detail__':
toast?.('跳转到详情页', 'info')
emit?.('special-action', 'detail', actionData)
close?.()
return
case '__ktvplayer__':
toast?.('启动KTV播放', 'info')
emit?.('special-action', 'ktv-player', actionData)
close?.()
return
case '__refresh_list__':
toast?.('刷新列表', 'info')
emit?.('special-action', 'refresh-list', actionData)
close?.()
return
case '__copy__':
if (actionData.content) {
try {
await navigator.clipboard.writeText(actionData.content)
toast?.('已复制到剪切板', 'success')
} catch (error) {
toast?.('复制失败', 'error')
}
}
close?.()
return
case '__close__':
close?.()
return
case '__keep__':
if (actionData.msg) {
toast?.(actionData.msg, 'info')
}
return
default:
toast?.(`未知的专项动作: ${actionId}`, 'warning')
close?.()
}
}
return {
handleSpecialAction
}
}