🚸 添加用户反馈显示控制入口

This commit is contained in:
BTMuli
2026-01-17 23:07:54 +08:00
parent 83de5beff8
commit 6db1ab0a45
4 changed files with 60 additions and 33 deletions

View File

@@ -17,6 +17,7 @@ import showDialog from "@comp/func/dialog.js";
import showLoading from "@comp/func/loading.js";
import showSnackbar from "@comp/func/snackbar.js";
import OtherApi from "@req/otherReq.js";
import type { FeedbackInternalOptions, Integration } from "@sentry/core";
import * as Sentry from "@sentry/vue";
import { commands } from "@skipperndt/plugin-machine-uid";
import TGSqlite from "@Sql/index.js";
@@ -38,7 +39,7 @@ import { computed, nextTick, onMounted, onUnmounted, ref } from "vue";
import { useRouter } from "vue-router";
const router = useRouter();
const { theme, needResize, deviceInfo, isLogin, userDir, buildTime, closeToTray } =
const { theme, needResize, deviceInfo, isLogin, userDir, buildTime, closeToTray, showFeedback } =
storeToRefs(useAppStore());
const { uid, briefInfo, account, cookie } = storeToRefs(useUserStore());
@@ -76,6 +77,9 @@ onMounted(async () => {
await win.center();
await win.show();
}
if (showFeedback.value) {
Sentry.addIntegration(getSentryFeedback());
}
});
onUnmounted(() => {
@@ -105,6 +109,39 @@ onUnmounted(() => {
}
});
function getSentryFeedback(): Integration {
return Sentry.feedbackAsyncIntegration(<FeedbackInternalOptions>{
// 🌗 主题与注入行为
colorScheme: "system",
autoInject: true,
triggerLabel: "",
// 📝 表单标题与按钮文案
formTitle: "问题反馈",
cancelButtonLabel: "取消",
submitButtonLabel: "提交反馈",
successMessageText: "感谢您的反馈,我们将尽快处理。",
// 🧑 用户信息字段
nameLabel: "反馈人",
namePlaceholder: "请输入您的姓名或昵称",
emailLabel: "电子邮箱",
emailPlaceholder: "请输入您的邮箱地址,以便我们与您联系",
// 🐛 问题描述字段
messageLabel: "问题描述",
messagePlaceholder: "请详细描述您遇到的问题及复现步骤",
isRequiredLabel: "(必填)",
// 📸 截图工具相关
addScreenshotButtonLabel: "添加当前页面截图",
removeScreenshotButtonLabel: "移除截图",
highlightToolText: "标记重点区域",
removeHighlightText: "移除标记",
hideToolText: "遮挡敏感信息",
});
}
/**
* 自定义URL协议监听处理
* @param {Event<string>} event - 事件