From 357082150fac10f8f27b6d45d2e65b6613c748ee Mon Sep 17 00:00:00 2001
From: du <13220750630.163.com>
Date: 星期五, 18 四月 2025 11:16:40 +0800
Subject: [PATCH] 片头片尾预览

---
 easegen-front/src/views/File/index.vue |   61 ++++++++++++++++++++++++------
 1 files changed, 49 insertions(+), 12 deletions(-)

diff --git a/easegen-front/src/views/File/index.vue b/easegen-front/src/views/File/index.vue
index d6f1ceb..37857a1 100644
--- a/easegen-front/src/views/File/index.vue
+++ b/easegen-front/src/views/File/index.vue
@@ -11,22 +11,23 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="鏂囦欢绫诲埆" prop="type">
+          <el-select v-model="queryParams.type" placeholder="璇烽�夋嫨鏂囦欢绫诲埆" style="width: 180px;">
+            <el-option label="鐗囧ご" :value="VIDEO_TYPE.HEAD" />
+            <el-option label="鐗囧熬" :value="VIDEO_TYPE.TAIL" />
+          </el-select>
+        </el-form-item>
       <el-form-item>
-        <el-button type="primary" size="default" @click="handleQuery">鎼滅储</el-button>
-        <el-button size="default" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <!-- 鏂板鎸夐挳 -->
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
+        <el-button type="primary" size="default" @click="handleQuery" :icon="Search">鎼滅储</el-button>
+        <el-button size="default" @click="resetQuery" :icon="Refresh">閲嶇疆</el-button>
         <el-button
           type="primary"
           size="default"
           @click="handleAdd"
+          :icon="Plus"
         >鏂板</el-button>
-      </el-col>
-    </el-row>
+      </el-form-item>
+    </el-form>
 
     <!-- 琛ㄦ牸 -->
     <el-table v-loading="loading" :data="fileList" border>
@@ -45,6 +46,12 @@
       </el-table-column>
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handlePreview(scope.row.url)"
+          >棰勮</el-button>
           <el-button
             size="mini"
             type="text"
@@ -100,6 +107,16 @@
         </div>
       </template>
     </el-dialog>
+
+    <!-- 瑙嗛棰勮寮圭獥 -->
+    <el-dialog title="瑙嗛棰勮" v-model="previewVisible" width="50%" append-to-body>
+      <video
+        v-if="previewUrl"
+        :src="previewUrl"
+        controls
+        style="width: 100%"
+      >鎮ㄧ殑娴忚鍣ㄤ笉鏀寔 video 鏍囩銆�</video>
+    </el-dialog>
   </div>
 </template>
 
@@ -109,7 +126,11 @@
 import  * as DigitalHumansApi from '@/api/system/file/index'
 import dayjs from 'dayjs'
 const message = useMessage() // 娑堟伅寮圭獥
-
+import {
+  Refresh,
+  Search,
+  Plus,
+} from '@element-plus/icons-vue'
 // 瑙嗛绫诲埆甯搁噺
 const VIDEO_TYPE = {
   HEAD: '1', // 鐗囧ご
@@ -128,6 +149,7 @@
   pageNo: number
   pageSize: number
   name?: string
+  type?: string
 }
 
 // 閬僵灞�
@@ -142,7 +164,8 @@
 const queryParams = reactive<QueryParams>({
   pageNo: 1,
   pageSize: 10,
-  name: undefined
+  name: undefined,
+  type: ''
 })
 
 // 琛ㄥ崟寮曠敤
@@ -169,6 +192,10 @@
     { required: true, message: "璇蜂笂浼犳枃浠�", trigger: "change" }
   ]
 })
+
+// 棰勮寮圭獥
+const previewVisible = ref(false)
+const previewUrl = ref('')
 
 // 鏂板鎸夐挳鎿嶄綔
 const handleAdd = () => {
@@ -285,6 +312,16 @@
   document.body.removeChild(link)
 }
 
+// 棰勮鎸夐挳鎿嶄綔
+const handlePreview = (url: string) => {
+  if (!url) {
+    message.warning("鏈壘鍒拌祫婧愭枃浠讹紒")
+    return
+  }
+  previewUrl.value = url
+  previewVisible.value = true
+}
+
 // 鏍煎紡鍖栨椂闂�
 const parseTime = (time: number) => {
   return dayjs(time).format('YYYY-MM-DD HH:mm:ss')

--
Gitblit v1.9.3