Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/components/agents/AddAgentDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import { useCron, type BackendCron } from "@/composables/useCron";
import { useKv } from "@/composables/useKv";
import { useBackendExtra } from "@/composables/useBackendExtra";
import { useLifecycle } from "@/composables/useLifecycle";
import { preGenerateToken } from "@/components/agents/generateToken";
import { reGenerateToken } from "@/components/agents/generateToken";

const open = defineModel<boolean>("open", { required: true });
const emit = defineEmits<{
Expand Down Expand Up @@ -267,7 +267,7 @@ const canNext = computed(() => {
const handleNext = async () => {
if (step.value === 1) {
// 预生成 token
generatedToken.value = (await preGenerateToken(nodeUuid.value)) || "";
generatedToken.value = (await reGenerateToken(nodeUuid.value)) || "";
step.value = 2;
loadCrons();
} else if (step.value === 2) {
Expand Down
11 changes: 11 additions & 0 deletions src/components/node/setting/NodeSettingTabUpstream.vue
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,17 @@ const handleDelete = async (index: number) => {
</Button>
</div>
</div>
<!-- ignore_cert -->
<div class="flex items-start px-4 py-3 gap-4">
<span class="text-sm text-muted-foreground w-28 shrink-0 pt-0.5">
忽略TLS错误
</span>
<div class="flex items-start gap-1.5 min-w-0">
<span class="text-sm font-mono break-all">{{
upstream.ignore_cert ? "是" : "否"
}}</span>
</div>
</div>
<!-- Operation -->
<div class="flex items-start px-4 py-3 gap-2 justify-end">
<Button v-if="upstream.token" @click="openEdit(index)">
Expand Down
8 changes: 8 additions & 0 deletions src/components/node/setting/UpstreamDetailDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import {
type ServerInfo,
} from "@/composables/useBackendExtra";
import { preGenerateToken } from "@/components/agents/generateToken";
import { Switch } from "@/components/ui/switch";

const props = defineProps<{
open: boolean;
Expand Down Expand Up @@ -92,13 +93,15 @@ watch(
form.value.ws_url = "";
form.value.server_uuid = "";
form.value.token = "";
form.value.ignore_cert = false;
return;
}
const target = availableServerInfo.value.find((v) => v.uuid === val);
form.value.name = target?.name || "";
form.value.ws_url = target?.agentConfigWsUrl || "";
form.value.server_uuid = target?.uuid || "";
form.value.token = props.upstream.token;
form.value.ignore_cert = !!props.upstream.ignore_cert;

// preGenerateToken(props.nodeUUID, ref(target as ServerInfo))
// .then(token => {
Expand Down Expand Up @@ -142,6 +145,7 @@ const handleSave = async () => {
server_uuid: form.value.server_uuid,
token: form.value.token,
ws_url: form.value.ws_url,
ignore_cert: form.value.ignore_cert,
});
};

Expand Down Expand Up @@ -203,6 +207,10 @@ watch(
<Label>{{ t("dashboard.servers.detail.infoToken") }}</Label>
<Input v-model="form.token" />
</div>
<div class="space-y-1.5">
<Label>忽略TLS错误</Label>
<Switch v-model:model-value="form.ignore_cert" />
</div>
</div>
<DialogFooter>
<Button
Expand Down
19 changes: 13 additions & 6 deletions src/pages/dashboard/js-runtime/[id].vue
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ import {
import { useThemeStore } from "@/stores/theme";
import { cn } from "@/lib/utils";
import MarkdownIt from "markdown-it";
import { base64ToBytes } from "@/lib/base64";

definePage({
meta: {
Expand Down Expand Up @@ -147,12 +148,18 @@ const parsedHttpResult = computed(() => {
}

// 2. Identify data source (prioritize binary)
let rawBody =
res.body_bytes !== undefined
? res.body_bytes
: res.body !== undefined
? res.body
: res.data;
let rawBody;

if (res.body_base64) {
rawBody = base64ToBytes(res.body_base64);
} else {
rawBody =
res.body_bytes !== undefined
? res.body_bytes
: res.body !== undefined
? res.body
: res.data;
}

// 3. Process Body based on content type
const isImage = contentType.includes("image/");
Expand Down
Loading