chore: 暂时关闭云端同步、收藏和评论功能

调整了多个页面的相关UI和逻辑代码,注释掉并隐藏了收藏、评论以及云端同步相关的按钮和实现逻辑,同时修改了侧边栏的品牌文案展示。
This commit is contained in:
2026-07-14 14:21:35 +08:00
parent 0858797405
commit 937c0554ad
4 changed files with 101 additions and 100 deletions
+37 -30
View File
@@ -180,6 +180,7 @@
</button> </button>
</div> </div>
</template> </template>
<!-- 收藏功能暂时关闭
<button <button
type="button" type="button"
class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700" class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700"
@@ -188,6 +189,7 @@
<i class="fas fa-star text-xs"></i> <i class="fas fa-star text-xs"></i>
<span>{{ favoriteButtonText }}</span> <span>{{ favoriteButtonText }}</span>
</button> </button>
-->
<button <button
type="button" type="button"
class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700" class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700"
@@ -336,6 +338,7 @@
<p class="text-sm text-slate-400">暂无应用截图</p> <p class="text-sm text-slate-400">暂无应用截图</p>
</div> </div>
<!-- 评论功能暂时关闭
<ReviewsPanel <ReviewsPanel
v-if="loggedIn && activeReviewAppKey && activeReviewTags" v-if="loggedIn && activeReviewAppKey && activeReviewTags"
:app-key="activeReviewAppKey" :app-key="activeReviewAppKey"
@@ -380,6 +383,7 @@
安装应用后可发表评论 安装应用后可发表评论
</p> </p>
</section> </section>
-->
</div> </div>
</div> </div>
</div> </div>
@@ -507,13 +511,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, useAttrs, ref, watch } from "vue"; import { computed, useAttrs, ref, watch } from "vue";
import axios from "axios"; import axios from "axios";
import ReviewsPanel from "@/components/ReviewsPanel.vue"; // import ReviewsPanel from "@/components/ReviewsPanel.vue";
import { useInstallFeedback, downloads } from "../global/downloadStatus"; import { useInstallFeedback, downloads } from "../global/downloadStatus";
import { import {
APM_STORE_BASE_URL, APM_STORE_BASE_URL,
getHybridDefaultOrigin, getHybridDefaultOrigin,
} from "../global/storeConfig"; } from "../global/storeConfig";
import { buildReviewAppKey, buildReviewTags } from "../modules/appIdentity"; // 评论功能暂时关闭
// import { buildReviewAppKey, buildReviewTags } from "../modules/appIdentity";
import type { App, AppReview, ReviewTags } from "../global/typedefinition"; import type { App, AppReview, ReviewTags } from "../global/typedefinition";
const attrs = useAttrs(); const attrs = useAttrs();
@@ -655,28 +660,29 @@ const iconPath = computed(() => {
return `${APM_STORE_BASE_URL}/${finalArch}/${displayApp.value.category}/${displayApp.value.pkgname}/icon.png`; return `${APM_STORE_BASE_URL}/${finalArch}/${displayApp.value.category}/${displayApp.value.pkgname}/icon.png`;
}); });
const activeReviewAppKey = computed(() => { // 评论与收藏功能暂时关闭
if (!displayApp.value) return ""; // const activeReviewAppKey = computed(() => {
return buildReviewAppKey( // if (!displayApp.value) return "";
displayApp.value, // return buildReviewAppKey(
props.reviewTags?.clientArch ?? "amd64", // displayApp.value,
); // props.reviewTags?.clientArch ?? "amd64",
}); // );
// });
const activeReviewTags = computed<ReviewTags | null>(() => { // const activeReviewTags = computed<ReviewTags | null>(() => {
if (!displayApp.value || !props.reviewTags) return null; // if (!displayApp.value || !props.reviewTags) return null;
return buildReviewTags(displayApp.value, { // return buildReviewTags(displayApp.value, {
clientArch: props.reviewTags.clientArch, // clientArch: props.reviewTags.clientArch,
distro: props.reviewTags.distro, // distro: props.reviewTags.distro,
}); // });
}); // });
const favoriteButtonText = computed(() => { // const favoriteButtonText = computed(() => {
if (!props.favorited) return "收藏"; // if (!props.favorited) return "收藏";
return props.favoriteFolderName // return props.favoriteFolderName
? `已收藏 · ${props.favoriteFolderName}` // ? `已收藏 · ${props.favoriteFolderName}`
: "已收藏"; // : "已收藏";
}); // });
const downloadCount = ref<string>(""); const downloadCount = ref<string>("");
@@ -722,14 +728,15 @@ const handleRemove = () => {
} }
}; };
const handleFavorite = () => { // 收藏功能暂时关闭
if (!displayApp.value) return; // const handleFavorite = () => {
if (!props.loggedIn) { // if (!displayApp.value) return;
emit("request-login", "收藏应用需要登录星火账号。"); // if (!props.loggedIn) {
return; // emit("request-login", "收藏应用需要登录星火账号。");
} // return;
emit("favorite", displayApp.value); // }
}; // emit("favorite", displayApp.value);
// };
const selectOrigin = (origin: "spark" | "apm") => { const selectOrigin = (origin: "spark" | "apm") => {
viewingOrigin.value = origin; viewingOrigin.value = origin;
+37 -31
View File
@@ -117,6 +117,7 @@
<span>卸载</span> <span>卸载</span>
</button> </button>
</div> </div>
<!-- 收藏功能暂时关闭
<button <button
type="button" type="button"
class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700" class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700"
@@ -125,6 +126,7 @@
<i class="fas fa-star text-xs"></i> <i class="fas fa-star text-xs"></i>
<span>{{ favoriteButtonText }}</span> <span>{{ favoriteButtonText }}</span>
</button> </button>
-->
<button <button
type="button" type="button"
class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700" class="inline-flex w-full items-center justify-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-medium text-slate-600 transition hover:bg-slate-50 hover:text-slate-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700"
@@ -206,6 +208,7 @@
<p v-else class="text-sm text-slate-400">暂无应用截图</p> <p v-else class="text-sm text-slate-400">暂无应用截图</p>
</div> </div>
<!-- 评论功能暂时关闭
<ReviewsPanel <ReviewsPanel
v-if="loggedIn && reviewAppKey && reviewTags" v-if="loggedIn && reviewAppKey && reviewTags"
:app-key="reviewAppKey" :app-key="reviewAppKey"
@@ -246,6 +249,7 @@
安装应用后可发表评论 安装应用后可发表评论
</p> </p>
</section> </section>
-->
</div> </div>
</div> </div>
</section> </section>
@@ -253,14 +257,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref, watch } from "vue"; import { computed, ref, watch } from "vue";
import ReviewsPanel from "@/components/ReviewsPanel.vue"; // import ReviewsPanel from "@/components/ReviewsPanel.vue";
import { import {
APM_STORE_BASE_URL, APM_STORE_BASE_URL,
getHybridDefaultOrigin, getHybridDefaultOrigin,
} from "@/global/storeConfig"; } from "@/global/storeConfig";
import { import {
buildReviewAppKey, // buildReviewAppKey,
buildReviewTags, // buildReviewTags,
getDisplayApp, getDisplayApp,
} from "@/modules/appIdentity"; } from "@/modules/appIdentity";
import type { App, AppReview, ReviewTags } from "@/global/typedefinition"; import type { App, AppReview, ReviewTags } from "@/global/typedefinition";
@@ -351,28 +355,29 @@ const detailHtml = computed(
() => displayApp.value?.more.replace(/\n/g, "<br>") ?? "", () => displayApp.value?.more.replace(/\n/g, "<br>") ?? "",
); );
const reviewAppKey = computed(() => { // 评论与收藏功能暂时关闭
if (!displayApp.value) return ""; // const reviewAppKey = computed(() => {
return buildReviewAppKey( // if (!displayApp.value) return "";
displayApp.value, // return buildReviewAppKey(
props.reviewTags?.clientArch ?? "amd64", // displayApp.value,
); // props.reviewTags?.clientArch ?? "amd64",
}); // );
// });
const reviewTags = computed<ReviewTags | null>(() => { // const reviewTags = computed<ReviewTags | null>(() => {
if (!displayApp.value || !props.reviewTags) return null; // if (!displayApp.value || !props.reviewTags) return null;
return buildReviewTags(displayApp.value, { // return buildReviewTags(displayApp.value, {
clientArch: props.reviewTags.clientArch, // clientArch: props.reviewTags.clientArch,
distro: props.reviewTags.distro, // distro: props.reviewTags.distro,
}); // });
}); // });
const favoriteButtonText = computed(() => { // const favoriteButtonText = computed(() => {
if (!props.favorited) return "收藏"; // if (!props.favorited) return "收藏";
return props.favoriteFolderName // return props.favoriteFolderName
? `已收藏 · ${props.favoriteFolderName}` // ? `已收藏 · ${props.favoriteFolderName}`
: "已收藏"; // : "已收藏";
}); // });
const selectOrigin = (origin: "spark" | "apm") => { const selectOrigin = (origin: "spark" | "apm") => {
viewingOrigin.value = origin; viewingOrigin.value = origin;
@@ -380,14 +385,15 @@ const selectOrigin = (origin: "spark" | "apm") => {
if (displayApp.value) emit("check-install", displayApp.value); if (displayApp.value) emit("check-install", displayApp.value);
}; };
const handleFavorite = () => { // 收藏功能暂时关闭
if (!displayApp.value) return; // const handleFavorite = () => {
if (!props.loggedIn) { // if (!displayApp.value) return;
emit("request-login", "收藏应用需要登录星火账号。"); // if (!props.loggedIn) {
return; // emit("request-login", "收藏应用需要登录星火账号。");
} // return;
emit("favorite", displayApp.value); // }
}; // emit("favorite", displayApp.value);
// };
const hideImage = (event: Event) => { const hideImage = (event: Event) => {
(event.target as HTMLElement).style.display = "none"; (event.target as HTMLElement).style.display = "none";
+9 -25
View File
@@ -4,30 +4,23 @@
<div ref="accountMenuRoot" class="relative min-w-0 flex-1"> <div ref="accountMenuRoot" class="relative min-w-0 flex-1">
<button <button
type="button" type="button"
class="flex w-full min-w-0 items-center gap-3 rounded-2xl p-1 text-left transition hover:bg-slate-100 dark:hover:bg-slate-800" class="flex w-full min-w-0 items-center gap-2 rounded-2xl p-1 text-left transition hover:bg-slate-100 dark:hover:bg-slate-800"
:aria-label="accountLabel" :aria-label="accountLabel"
@click="handleAccountClick" @click="handleAccountClick"
> >
<img <img
v-if="!currentUser || !currentUser.avatarUrl"
:src="amberLogo" :src="amberLogo"
alt="Amber PM" alt="星火应用商店"
class="h-11 w-11 rounded-2xl bg-white/70 p-2 shadow-sm ring-1 ring-slate-900/5 dark:bg-slate-800" class="h-11 w-11 shrink-0 rounded-2xl bg-white/70 p-2 shadow-sm ring-1 ring-slate-900/5 dark:bg-slate-800"
/>
<img
v-else
:src="currentUser.avatarUrl"
:alt="accountLabel"
class="h-11 w-11 rounded-2xl object-cover shadow-sm ring-1 ring-slate-900/5"
/> />
<div data-testid="account-text" class="flex min-w-0 flex-col"> <div data-testid="account-text" class="flex min-w-0 flex-col">
<span <span
class="truncate text-xs uppercase tracking-[0.3em] text-slate-500 dark:text-slate-400" class="truncate text-base font-semibold text-slate-900 dark:text-white"
>{{ currentUser ? currentUser.forumLevel : "Spark Store" }}</span >{{ accountLabel }}</span
> >
<span <span
class="truncate text-lg font-semibold text-slate-900 dark:text-white" class="truncate text-[10px] uppercase tracking-[0.2em] text-slate-400 dark:text-slate-500"
>{{ accountLabel }}</span >社区版</span
> >
</div> </div>
</button> </button>
@@ -172,19 +165,10 @@ const emit = defineEmits<{
const showAccountMenu = ref(false); const showAccountMenu = ref(false);
const accountMenuRoot = ref<HTMLElement | null>(null); const accountMenuRoot = ref<HTMLElement | null>(null);
const accountLabel = computed(() => { const accountLabel = computed(() => "星火应用商店");
return props.currentUser
? props.currentUser.displayName || props.currentUser.username
: "登录 / 注册";
});
const handleAccountClick = () => { const handleAccountClick = () => {
if (!props.currentUser) { // 登录功能暂时关闭
emit("request-login");
return;
}
showAccountMenu.value = !showAccountMenu.value;
}; };
const handleDocumentPointerDown = (event: MouseEvent) => { const handleDocumentPointerDown = (event: MouseEvent) => {
+18 -14
View File
@@ -28,6 +28,7 @@
</p> </p>
</div> </div>
<div class="flex items-center gap-3"> <div class="flex items-center gap-3">
<!-- 云端同步功能暂时关闭
<button <button
type="button" type="button"
class="inline-flex items-center gap-2 rounded-2xl border border-brand/30 px-4 py-2 text-sm font-semibold text-brand transition hover:bg-brand/10 disabled:opacity-40" class="inline-flex items-center gap-2 rounded-2xl border border-brand/30 px-4 py-2 text-sm font-semibold text-brand transition hover:bg-brand/10 disabled:opacity-40"
@@ -45,6 +46,7 @@
<i class="fas fa-cloud-arrow-down"></i> <i class="fas fa-cloud-arrow-down"></i>
从账号恢复 从账号恢复
</button> </button>
-->
<div <div
v-if="showOriginSwitcher" v-if="showOriginSwitcher"
class="flex items-center rounded-2xl border border-slate-200/70 p-1 dark:border-slate-800/70" class="flex items-center rounded-2xl border border-slate-200/70 p-1 dark:border-slate-800/70"
@@ -248,6 +250,7 @@ const props = defineProps<{
syncMessage: string; syncMessage: string;
}>(); }>();
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const emit = defineEmits<{ const emit = defineEmits<{
(e: "close"): void; (e: "close"): void;
(e: "refresh"): void; (e: "refresh"): void;
@@ -260,23 +263,24 @@ const emit = defineEmits<{
(e: "request-login"): void; (e: "request-login"): void;
}>(); }>();
const handleSyncClick = () => { // 云端同步功能暂时关闭
if (props.loggedIn) { // const handleSyncClick = () => {
emit("sync-to-account"); // if (props.loggedIn) {
return; // emit("sync-to-account");
} // return;
// }
emit("request-login"); // emit("request-login");
}; // };
const handleRestoreClick = () => { // const handleRestoreClick = () => {
if (props.loggedIn) { // if (props.loggedIn) {
emit("restore-from-account"); // emit("restore-from-account");
return; // return;
} // }
emit("request-login"); // emit("request-login");
}; // };
const onOverlayWheel = (e: WheelEvent) => { const onOverlayWheel = (e: WheelEvent) => {
const target = e.target as HTMLElement; const target = e.target as HTMLElement;