flat: ts + 接口错误处理
This commit is contained in:
@@ -98,7 +98,7 @@ export function setupLiveHandlers() {
|
||||
contextIsolation: false,
|
||||
},
|
||||
});
|
||||
liveWindow.webContents.openDevTools();
|
||||
// liveWindow.webContents.openDevTools();
|
||||
liveWindow.on("closed", () => {
|
||||
liveWindow = null;
|
||||
});
|
||||
@@ -134,6 +134,33 @@ async function getSessionId(requestBody: object) {
|
||||
body: JSON.stringify(requestBody),
|
||||
});
|
||||
|
||||
// 首先检查响应内容类型
|
||||
const contentType = response.headers.get("content-type");
|
||||
if (!contentType || !contentType.includes("application/json")) {
|
||||
// 如果不是JSON,读取原始文本进行调试
|
||||
const rawText = await response.text();
|
||||
console.warn("服务器返回非JSON响应:", rawText);
|
||||
|
||||
// 尝试解析可能的JSON响应(即使Content-Type不正确)
|
||||
try {
|
||||
const data = JSON.parse(rawText);
|
||||
if (response.ok && data.sessionid) {
|
||||
return { success: true, sessionId: data.sessionid };
|
||||
} else {
|
||||
return {
|
||||
success: false,
|
||||
error: data.message || "服务器返回非JSON格式",
|
||||
};
|
||||
}
|
||||
} catch (parseError) {
|
||||
return {
|
||||
success: false,
|
||||
error: `服务器响应格式错误: ${rawText.substring(0, 100)}...`,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是JSON,正常解析
|
||||
const data = await response.json();
|
||||
|
||||
if (response.ok && data.sessionid) {
|
||||
|
||||
@@ -141,6 +141,7 @@ export function setupWorkflowHandlers() {
|
||||
|
||||
// 将整个工作流封装在 IPC Handler 中
|
||||
ipcMain.handle("run-job-workflow", async (_, userQuery) => {
|
||||
console.log("工作流: 正在准备工作...");
|
||||
let currentJobData = userQuery || {};
|
||||
|
||||
let answerText = "";
|
||||
|
||||
@@ -8,6 +8,28 @@ export async function getSessionId(requestBody: object) {
|
||||
body: JSON.stringify(requestBody),
|
||||
});
|
||||
|
||||
const contentType = response.headers.get("content-type");
|
||||
if (!contentType || !contentType.includes("application/json")) {
|
||||
const rawText = await response.text();
|
||||
try {
|
||||
const data = JSON.parse(rawText);
|
||||
if (response.ok && data.sessionid) {
|
||||
return { success: true, sessionId: data.sessionid };
|
||||
} else {
|
||||
return {
|
||||
success: false,
|
||||
error: data.message || "服务器返回非JSON格式",
|
||||
};
|
||||
}
|
||||
} catch (parseError) {
|
||||
return {
|
||||
success: false,
|
||||
error: `服务器响应格式错误: ${rawText.substring(0, 100)}...`,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是JSON,正常解析
|
||||
const data = await response.json();
|
||||
|
||||
if (response.ok && data.sessionid) {
|
||||
|
||||
@@ -29,8 +29,11 @@ export const useLiveStore = defineStore("live", () => {
|
||||
if (positions.value.length < 10) {
|
||||
fetchPositions();
|
||||
}
|
||||
} else {
|
||||
throw new Error(resData.msg);
|
||||
}
|
||||
} catch (error) {
|
||||
alert("获取岗位失败");
|
||||
console.error("获取岗位列表失败:", error);
|
||||
}
|
||||
}
|
||||
@@ -117,7 +120,7 @@ export const useLiveStore = defineStore("live", () => {
|
||||
try {
|
||||
const result = await window.electron.ipcRenderer.invoke(
|
||||
"open-live-window",
|
||||
{ path: "live", width: 375, height: 682 },
|
||||
{ path: "live", width: 375, height: 682, userId: "rs876543" },
|
||||
);
|
||||
if (result.success) {
|
||||
isLiveWindowOpen.value = true;
|
||||
|
||||
@@ -20,7 +20,7 @@ const isCameraActive = ref(false)
|
||||
const isfullScreen = ref(false);
|
||||
const userId = ref(null);
|
||||
const liveUrl = ref("");
|
||||
const soundUrl = ref("https://dmdemo.hx.cn/sound/welcome.mp3");
|
||||
const soundUrl = ref("");
|
||||
const welcome = ref()
|
||||
const live = ref()
|
||||
let cameraStream = null
|
||||
@@ -73,8 +73,10 @@ onBeforeUnmount(() => {
|
||||
|
||||
function startLive() {
|
||||
const paramsUserId = route.query.userId;
|
||||
console.log(paramsUserId)
|
||||
if (paramsUserId) {
|
||||
userId.value = paramsUserId
|
||||
|
||||
liveUrl.value = `https://dmdemo.hx.cn/dashboard.html?userId=${userId.value}`;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user