Skip to content

Commit da33467

Browse files
fix: 🐛 pwa 立即切换 bug、优化loading、设置等
1 parent d39376c commit da33467

14 files changed

+162
-132
lines changed

cloudflare/worker.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ const home = async (pathname) => {
8080
let url;
8181
// if (pathname.startsWith('/github/')) {
8282
if (pathname.indexOf('/github/') === 0) {
83-
url = pathname.replace('/github/', 'https://raw.githubusercontent.com/adams549659584/go-proxy-bingai/master/');
83+
url = pathname.replace('/github/', baseUrl);
8484
} else {
8585
url = baseUrl + 'cloudflare/index.html';
8686
}

frontend/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "go-proxy-bingai",
3-
"version": "1.8.3",
3+
"version": "1.8.4",
44
"private": true,
55
"scripts": {
66
"dev": "vite",

frontend/src/components/ChatNav/ChatNav.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,10 @@ const saveUserToken = () => {
134134

135135
<template>
136136
<NDropdown v-if="isMobile()" class="select-none" :show="isShowMore" :options="navConfigs" :render-label="renderDropdownLabel" @select="handleSelect">
137-
<NImage class="fixed top-6 right-4 cursor-pointer" :src="settingSvgUrl" alt="设置菜单" :preview-disabled="true" @click="isShowMore = !isShowMore"></NImage>
137+
<NImage class="fixed top-6 right-4 cursor-pointer z-50" :src="settingSvgUrl" alt="设置菜单" :preview-disabled="true" @click="isShowMore = !isShowMore"></NImage>
138138
</NDropdown>
139139
<NDropdown v-else class="select-none" trigger="hover" :options="navConfigs" :render-label="renderDropdownLabel" @select="handleSelect">
140-
<NImage class="fixed top-6 right-6 cursor-pointer" :src="settingSvgUrl" alt="设置菜单" :preview-disabled="true"></NImage>
140+
<NImage class="fixed top-6 right-6 cursor-pointer z-50" :src="settingSvgUrl" alt="设置菜单" :preview-disabled="true"></NImage>
141141
</NDropdown>
142142
<NModal v-model:show="isShowSetTokenModal" preset="dialog" :show-icon="false">
143143
<template #header>

frontend/src/components/LoadingSpinner/LoadingSpinner.vue

+17-26
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,35 @@
11
<script setup lang="ts">
2-
import { onMounted } from 'vue';
3-
import { ref } from 'vue';
4-
52
defineProps<{
63
isShow: boolean;
74
}>();
8-
9-
const isRemoveLoading = ref(false);
10-
11-
const loadingRef = ref<HTMLDivElement>();
12-
13-
onMounted(() => {
14-
if (loadingRef.value) {
15-
loadingRef.value.addEventListener('transitionend', () => {
16-
isRemoveLoading.value = true;
17-
});
18-
}
19-
});
205
</script>
216

227
<template>
23-
<div v-if="!isRemoveLoading" ref="loadingRef" class="loading-spinner" :class="{ hidden: !isShow }">
24-
<div class="bounce1"></div>
25-
<div class="bounce2"></div>
26-
<div class="bounce3"></div>
27-
</div>
8+
<Transition name="fade">
9+
<div v-if="isShow" class="loading-spinner">
10+
<div class="bounce1"></div>
11+
<div class="bounce2"></div>
12+
<div class="bounce3"></div>
13+
</div>
14+
</Transition>
2815
</template>
2916

3017
<style scoped>
18+
.fade-enter-active,
19+
.fade-leave-active {
20+
transition: opacity 2.5s ease;
21+
}
22+
23+
.fade-enter-from,
24+
.fade-leave-to {
25+
opacity: 0;
26+
}
27+
3128
.loading-spinner {
3229
display: flex;
3330
justify-content: center;
3431
align-items: center;
3532
height: 100vh;
36-
opacity: 1;
37-
transition: opacity 2s ease-out;
38-
}
39-
40-
.loading-spinner.hidden {
41-
opacity: 0;
4233
}
4334
4435
.loading-spinner > div {

frontend/src/components/ReloadPWA/ReloadPWA.vue

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
<script setup lang="ts">
22
import { ref } from 'vue';
3-
import { NModal, NButton } from 'naive-ui';
3+
import { NModal, NButton, useMessage } from 'naive-ui';
44
import { useRegisterSW } from 'virtual:pwa-register/vue';
55
6+
const message = useMessage();
67
const isShowModal = ref(false);
8+
const isUpdateLoading = ref(false);
79
810
const { offlineReady, needRefresh, updateServiceWorker } = useRegisterSW({
911
immediate: true,
@@ -17,6 +19,7 @@ const { offlineReady, needRefresh, updateServiceWorker } = useRegisterSW({
1719
},
1820
onNeedRefresh() {
1921
isShowModal.value = true;
22+
// updateServiceWorker();
2023
},
2124
});
2225
@@ -25,13 +28,21 @@ const close = async () => {
2528
needRefresh.value = false;
2629
isShowModal.value = false;
2730
};
31+
32+
const update = async () => {
33+
isUpdateLoading.value = true;
34+
await updateServiceWorker();
35+
message.success('已切换新版');
36+
isUpdateLoading.value = false;
37+
isShowModal.value = false;
38+
};
2839
</script>
2940

3041
<template>
3142
<NModal v-model:show="isShowModal" preset="dialog" title="更新提示" content="新版本已经更新完毕,是否切换?">
3243
<template #action>
3344
<NButton size="large" @click="close">下次再说</NButton>
34-
<NButton ghost size="large" type="info" @click="updateServiceWorker()">立即切换</NButton>
45+
<NButton ghost size="large" type="info" @click="update" :loading="isUpdateLoading">立即切换</NButton>
3546
</template>
3647
</NModal>
3748
</template>

frontend/src/utils/utils.ts

+28
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,31 @@ export const isMobile = () => {
44
};
55

66
export const sleep = (timeout: number) => new Promise((resolve, reject) => setTimeout(resolve, timeout));
7+
8+
export const copy = async (text: string) => {
9+
if (navigator.clipboard && navigator.clipboard.writeText) {
10+
// 使用Clipboard API复制文本到剪贴板
11+
try {
12+
await navigator.clipboard.writeText(text);
13+
return true;
14+
} catch (error) {
15+
console.error('error : ', error);
16+
}
17+
}
18+
// 使用备用方案
19+
try {
20+
const ele = document.createElement('textarea');
21+
ele.value = text;
22+
ele.setAttribute('readonly', '');
23+
ele.style.position = 'absolute';
24+
ele.style.left = '-9999px';
25+
document.body.appendChild(ele);
26+
ele.select();
27+
document.execCommand('copy');
28+
document.body.removeChild(ele);
29+
return true;
30+
} catch (error) {
31+
console.error(error);
32+
}
33+
return false;
34+
};

web/assets/index-0e8bf8a6.css

-1
This file was deleted.

web/assets/index-1dc749ba.css

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/assets/index-2c05b5de.css

-1
This file was deleted.

web/assets/index-4b631cfd.css

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/assets/index-8a670f2e.js web/assets/index-4cac3f94.js

+36-36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/assets/index-c254a98d.js web/assets/index-58dc3d18.js

+59-59
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)