Skip to content

Commit 0671138

Browse files
author
fangyuan99
committed
feat: add paste button for API info input
- Add paste button to API info textarea
1 parent b1fa426 commit 0671138

File tree

2 files changed

+65
-12
lines changed

2 files changed

+65
-12
lines changed

src/components/Check.vue

+58-8
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,25 @@
102102
<h3>{{ t("API_CHECKER_SUBTITLE") }}</h3>
103103

104104
<form @submit.prevent="handleSubmit" id="apiForm">
105-
<textarea
106-
v-model="apiInfo"
107-
id="api_info"
108-
name="api_info"
109-
:placeholder="t('API_INFO_PLACEHOLDER')"
110-
></textarea>
105+
<div style="position: relative; margin-bottom: 10px;">
106+
<textarea
107+
v-model="apiInfo"
108+
id="api_info"
109+
name="api_info"
110+
:placeholder="t('API_INFO_PLACEHOLDER')"
111+
></textarea>
112+
<a-button
113+
type="primary"
114+
size="small"
115+
@click="handlePaste"
116+
style="position: absolute; right: 4px; top: 14px; padding: 0 8px; height: 24px;"
117+
>
118+
<template #icon>
119+
<CopyOutlined style="font-size: 14px;" />
120+
</template>
121+
{{ t('PASTE') }}
122+
</a-button>
123+
</div>
111124

112125
<input
113126
type="text"
@@ -2174,7 +2187,7 @@ function saveToLocal() {
21742187
// 添加新的缓存项到列表
21752188
existingList.push(newCacheItem);
21762189
2177-
// 更新本地缓存列表
2190+
// 新本地缓存表
21782191
localCacheList.value = existingList;
21792192
localStorage.setItem("localCacheList", JSON.stringify(existingList));
21802193
@@ -2652,6 +2665,43 @@ function handleCustomDialogCancel() {
26522665
customDialogPrompt.value = "";
26532666
customDialogResult.value = null;
26542667
}
2668+
2669+
// 添加粘贴处理函数
2670+
async function handlePaste() {
2671+
try {
2672+
const text = await navigator.clipboard.readText();
2673+
// 先设置文本值
2674+
apiInfo.value = text;
2675+
2676+
// 手动解析 URL 和 API Key
2677+
let urlPattern = /(https?:\/\/[^\s,。、!,;;\n]+)/;
2678+
let keyPattern = /(sk-[a-zA-Z0-9]+)/;
2679+
2680+
let urlMatch = text.match(urlPattern);
2681+
let keyMatch = text.match(keyPattern);
2682+
2683+
if (urlMatch) {
2684+
let cleanUrl = urlMatch[0];
2685+
// 去除末尾的斜杠和其他字符
2686+
cleanUrl = cleanUrl.replace(/\/+$/, '');
2687+
// 如果包含点号,则使用点号之前的部分
2688+
if (cleanUrl.includes('.')) {
2689+
apiUrl.value = cleanUrl;
2690+
} else {
2691+
apiUrl.value = urlMatch[0];
2692+
}
2693+
}
2694+
2695+
if (keyMatch) {
2696+
apiKey.value = keyMatch[0];
2697+
}
2698+
2699+
message.success(t('PASTE_SUCCESS'));
2700+
} catch (err) {
2701+
console.error('粘贴失败:', err);
2702+
message.error(t('PASTE_FAILED'));
2703+
}
2704+
}
26552705
</script>
26562706

26572707
<style scoped>
@@ -3498,7 +3548,7 @@ body.dark-mode .field-value {
34983548
z-index: 10;
34993549
}
35003550
3501-
/* 根据主题切换背景色 */
3551+
/* 根据主题换背景色 */
35023552
body.dark-mode {
35033553
--overlay-background-color: rgba(0, 0, 0, 0.3);
35043554
}

src/locales/zh.json

+7-4
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"FILTER": "筛选",
2121
"CLEAR": "清空",
2222
"SELECT_ALL": "全选",
23-
"SELECT_ALL_CHAT_ONLY": "全选聊天模型",
23+
"SELECT_ALL_CHAT_ONLY": "全选聊天模���",
2424
"OK": "确定",
2525
"Cancel": "取消",
2626
"TEST_RESULTS": "测试结果",
@@ -110,7 +110,7 @@
110110
"RECORD_DELETED_PLEASE_SAVE": "已删除记录,请点击确认保存按钮保存更改",
111111
"RECORD_DELETED": "记录已删除",
112112
"HISTORY_RECORDS": "历史记录",
113-
"LOGGED_IN_TO_CLOUD": "已登录到云端:{url}",
113+
"LOGGED_IN_TO_CLOUD": "��登录到云端:{url}",
114114
"OFFICIAL_WEBSITE": "官方网站",
115115
"UPDATE_LOG_UNAVAILABLE": "更新日志暂不可用",
116116
"COAUTHOR": "作者",
@@ -140,7 +140,7 @@
140140
"NO_MODELS_TO_COPY": "没有可复制的模型",
141141
"COPIED_MODELS_TO_CLIPBOARD": "已复制 {count} 个 {type} 到剪贴板",
142142
"IDENTICAL_MODELS": "一致模型",
143-
"COPY_FAILED": "复制失败,请手动复制",
143+
"COPY_FAILED": "复制失败,请手���复制",
144144
"RECORD_ALREADY_EXISTS": "记录已存在",
145145
"SPONSORS": "鸣谢",
146146
"PRESET_SETTINGS": "预设配置",
@@ -188,5 +188,8 @@
188188
"ENTER_PROMPT": "请输入提示词",
189189
"PROMPT": "提示词",
190190
"RESPONSE_CONTENT": "响应内容",
191-
"RAW_RESPONSE": "原始响应"
191+
"RAW_RESPONSE": "原始响应",
192+
"PASTE": "粘贴",
193+
"PASTE_SUCCESS": "粘贴成功",
194+
"PASTE_FAILED": "粘贴失败,请手动粘贴"
192195
}

0 commit comments

Comments
 (0)