+
{` - ${restOfText}`}
);
@@ -336,8 +427,8 @@ const SnailLogComponent = defineComponent({
onResize={handleResize}
>
{{
- default: ({ item: message }: { item: Api.JobLog.JobMessage }) => (
-
+ default: ({ item: message }: { item: Api.JobLog.JobMessage; index: number }) => (
+
{timestampToDate(message.time_stamp)}
import { ref, watch } from 'vue';
-import { contentTypeRecord } from '@/constants/business';
+import { contentTypeRecord, workFlowNodeStatusRecord } from '@/constants/business';
defineOptions({
name: 'CallbackDetail'
@@ -48,6 +48,9 @@ const onClose = () => {
{{ modelValue.callback?.secret }}
+
+ {{ $t(workFlowNodeStatusRecord[modelValue.workflowNodeStatus!]) }}
+
diff --git a/src/components/workflow/modules/detail/task-detail.vue b/src/components/workflow/modules/detail/task-detail.vue
index 212bbe1..bf954df 100644
--- a/src/components/workflow/modules/detail/task-detail.vue
+++ b/src/components/workflow/modules/detail/task-detail.vue
@@ -54,7 +54,7 @@ const getTaskName = (id: string) => {
{{ $t(failStrategyRecord[modelValue.failStrategy!]) }}
-
+
{{ $t(workFlowNodeStatusRecord[modelValue.workflowNodeStatus!]) }}
diff --git a/src/components/workflow/modules/drawer/callback-drawer.vue b/src/components/workflow/modules/drawer/callback-drawer.vue
index 2aba6ac..52368aa 100644
--- a/src/components/workflow/modules/drawer/callback-drawer.vue
+++ b/src/components/workflow/modules/drawer/callback-drawer.vue
@@ -98,8 +98,8 @@ const rules: FormRules = {
diff --git a/src/components/workflow/modules/drawer/task-drawer.vue b/src/components/workflow/modules/drawer/task-drawer.vue
index e47251b..343e187 100644
--- a/src/components/workflow/modules/drawer/task-drawer.vue
+++ b/src/components/workflow/modules/drawer/task-drawer.vue
@@ -141,7 +141,7 @@ const jobTaskChange = (_: string, option: { label: string; value: number }) => {
-
+
any, wait: number, immediate?: boolean) {
}
};
}
+
+/**
+ * 生成 随机数
+ *
+ * @param length - 长度
+ * @returns 随机数
+ */
+export function generateRandomString(length: number) {
+ const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
+ let randomString = '';
+ for (let i = 0; i < length; i += 1) {
+ const randomNumber = Math.floor(Math.random() * chars.length);
+ randomString += chars.substring(randomNumber, randomNumber + 1);
+ }
+ return randomString;
+}
diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts
index cb2c719..c3ee656 100644
--- a/src/utils/websocket.ts
+++ b/src/utils/websocket.ts
@@ -1,28 +1,24 @@
/** socket 通信 */
import { getServiceBaseURL } from '@/utils/service';
import { localStg } from './storage';
-const { baseURL } = getServiceBaseURL(import.meta.env, false);
-const url = baseURL.replace('http://', 'ws://');
+import { generateRandomString } from './common';
-/** 生成 token */
-function generateToken(length: number) {
- const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
- let token = 'SID_';
- for (let i = 0; i < length; i += 1) {
- const randomNumber = Math.floor(Math.random() * chars.length);
- token += chars.substring(randomNumber, randomNumber + 1);
- }
- return token;
-}
-
-// 初始化socket
-export function initWebSocket(scene: string) {
+/**
+ * 初始化 websocket
+ *
+ * @param scene - 场景
+ * @param sid - 会话 id
+ * @returns
+ */
+export function initWebSocketUrl(scene: string, sid?: string) {
+ const protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
+ const isHttpProxy = import.meta.env.DEV && import.meta.env.VITE_HTTP_PROXY === 'Y';
+ const { baseURL } = getServiceBaseURL(import.meta.env, isHttpProxy);
+ const url =
+ import.meta.env.MODE === 'test' ? import.meta.env.VITE_SERVICE_BASE_URL : protocol + window.location.host + baseURL;
const token = localStg.get('token');
- if (import.meta.env.VITE_APP_WEBSOCKET === 'N' || !token) {
+ if (!token) {
return null;
}
-
- const sid = generateToken(32);
- // 初始化 websocket
- return new WebSocket(`${url}/websocket?Snail-Job-Auth=${token}&sid=${sid}&scene=${scene}`);
+ return `${url}/websocket?Snail-Job-Auth=${token}&sid=${sid ?? generateRandomString(32)}&scene=${scene}`;
}
diff --git a/src/views/_builtin/log/index.vue b/src/views/_builtin/log/index.vue
index f5ee0f9..4373d38 100644
--- a/src/views/_builtin/log/index.vue
+++ b/src/views/_builtin/log/index.vue
@@ -42,7 +42,7 @@ const title = computed(() => {
-
+
diff --git a/src/views/job/batch/modules/job-batch-detail-drawer.vue b/src/views/job/batch/modules/job-batch-detail-drawer.vue
index d17c973..3ab0688 100644
--- a/src/views/job/batch/modules/job-batch-detail-drawer.vue
+++ b/src/views/job/batch/modules/job-batch-detail-drawer.vue
@@ -75,7 +75,7 @@ async function retry() {
-
+