yumeng 3 روز پیش
والد
کامیت
d0dc4c5eec
2فایلهای تغییر یافته به همراه60 افزوده شده و 1 حذف شده
  1. 8 0
      src/views/TaskDetailView.vue
  2. 52 1
      src/views/TaskFormView.vue

+ 8 - 0
src/views/TaskDetailView.vue

@@ -39,6 +39,11 @@
       </article>
 
       <article class="stat-card">
+        <div class="stat-label">处理链路</div>
+        <div class="stat-value stat-value--small">{{ task.useOmniAnalysis ? "ASR -> Omni -> qwen3.7-plus" : "ASR -> qwen3.7-plus" }}</div>
+      </article>
+
+      <article class="stat-card">
         <div class="stat-label">创建人</div>
         <div class="stat-value">{{ task.creatorName || "-" }}</div>
       </article>
@@ -110,6 +115,9 @@
         <el-tab-pane label="结构化内容">
           <pre class="content-block content-block--material">{{ task.videoContent || "-" }}</pre>
         </el-tab-pane>
+        <el-tab-pane label="Omni 分析">
+          <pre class="content-block content-block--material">{{ task.omniContent || "-" }}</pre>
+        </el-tab-pane>
         <el-tab-pane label="转写文本">
           <pre class="content-block content-block--material">{{ task.transcript || "-" }}</pre>
         </el-tab-pane>

+ 52 - 1
src/views/TaskFormView.vue

@@ -33,6 +33,25 @@
           />
         </el-form-item>
 
+        <el-form-item label="Omni 分析">
+          <div class="omni-switch-row">
+            <el-switch
+                v-model="form.useOmniAnalysis"
+                inline-prompt
+                active-text="开启"
+                inactive-text="关闭"
+            />
+            <div class="omni-switch-copy">
+              <div class="omni-switch-copy__title">
+                {{ form.useOmniAnalysis ? "ASR -> Omni -> qwen3.7-plus" : "ASR -> qwen3.7-plus" }}
+              </div>
+              <div class="omni-switch-copy__desc">
+                开启后会先用 Omni 做视频多模态分析,再把分析结果和 ASR 转写一起交给 qwen3.7-plus 生成脚本。
+              </div>
+            </div>
+          </div>
+        </el-form-item>
+
         <el-form-item label="用户要求">
           <el-input
               v-model="form.promptHint"
@@ -100,6 +119,7 @@ const form = reactive({
   transcript: "",
   scriptContent: "",
   summary: "",
+  useOmniAnalysis: false,
 });
 
 const parseVideoUrls = () =>
@@ -133,10 +153,11 @@ const handleSave = async () => {
     codedeskTaskId: form.codedeskTaskId?.trim(),
     promptHint: form.promptHint?.trim(),
     analysisContent: form.analysisContent?.trim(),
+    useOmniAnalysis: Boolean(form.useOmniAnalysis),
     videoUrl: videoUrls[0],
     videoUrls,
   });
-  ElMessage.success(isEdit.value ? "任务已更新" : "任务已创建");
+  ElMessage.success(isEdit.value ? "任务已更新,任务将重新进入处理队列" : "任务已创建");
   router.push("/tasks");
 };
 
@@ -188,6 +209,31 @@ onMounted(loadDetail);
   max-width: 1120px;
 }
 
+.omni-switch-row {
+  display: flex;
+  align-items: flex-start;
+  gap: 16px;
+  width: 100%;
+  padding: 6px 0;
+}
+
+.omni-switch-copy {
+  display: grid;
+  gap: 4px;
+  line-height: 1.5;
+}
+
+.omni-switch-copy__title {
+  color: #0f172a;
+  font-size: 14px;
+  font-weight: 700;
+}
+
+.omni-switch-copy__desc {
+  color: #64748b;
+  font-size: 13px;
+}
+
 .prompt-example {
   margin-top: 12px;
   padding: 14px 16px;
@@ -218,6 +264,11 @@ onMounted(loadDetail);
 }
 
 @media (max-width: 900px) {
+  .omni-switch-row {
+    flex-direction: column;
+    gap: 10px;
+  }
+
   .task-form-footer {
     flex-direction: column-reverse;
   }