zyp 2 weeks ago
parent
commit
e908577d8d

+ 106 - 52
src/components/VideoUpload/index.vue

@@ -2,49 +2,49 @@
   <div>
     <el-form-item label="视频上传">
       <div class="upload_video" id="upload_video">
-        <el-upload
-          class="upload-demo"
-          ref="upload"
-          action="#"
-          :http-request="uploadVideoToTxPcdn"
-          accept=".mp4"
-          :limit="1"
-          :on-remove="handleRemove"
-          :on-change="handleChange"
-          :auto-upload="false"
-          :key="uploadKey"
-        >
-          <el-button slot="trigger" size="small" type="primary" >选取视频</el-button>
-          <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">点击上传</el-button>
-          <!-- 仅当showControl为true时显示视频库选取按钮 -->
-          <el-button v-if="showControl" style="margin-left: 10px;" size="small" type="success" @click="openVideoLibrary">视频库选取</el-button>
-          <!-- 线路一 -->
-          <div class="progress-container">
-            <span class="progress-label">线路一</span>
-            <el-progress
-              style="margin-top: 5px;"
-              class="progress"
-              :text-inside="true"
-              :stroke-width="18"
-              :percentage="txProgress"
-              status="success">
-            </el-progress>
-          </div>
+        <!--        <el-upload-->
+        <!--          class="upload-demo"-->
+        <!--          ref="upload"-->
+        <!--          action="#"-->
+        <!--          :http-request="uploadVideoToTxPcdn"-->
+        <!--          accept=".mp4"-->
+        <!--          :limit="1"-->
+        <!--          :on-remove="handleRemove"-->
+        <!--          :on-change="handleChange"-->
+        <!--          :auto-upload="false"-->
+        <!--          :key="uploadKey"-->
+        <!--        >-->
+        <!--          <el-button slot="trigger" size="small" type="primary" >选取视频</el-button>-->
+        <!--          <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">点击上传</el-button>-->
+        <!-- 仅当showControl为true时显示视频库选取按钮 -->
+        <el-button v-if="showControl" size="small" type="success" @click="openVideoLibrary">视频库选取</el-button>
+        <!-- 线路一 -->
+        <!--          <div class="progress-container">-->
+        <!--            <span class="progress-label">线路一</span>-->
+        <!--            <el-progress-->
+        <!--              style="margin-top: 5px;"-->
+        <!--              class="progress"-->
+        <!--              :text-inside="true"-->
+        <!--              :stroke-width="18"-->
+        <!--              :percentage="txProgress"-->
+        <!--              status="success">-->
+        <!--            </el-progress>-->
+        <!--          </div>-->
 
-          <!-- 线路二 -->
-          <div class="progress-container">
-            <span class="progress-label">线路二</span>
-            <el-progress
-              style="margin-top: 5px;"
-              class="progress"
-              :text-inside="true"
-              :stroke-width="18"
-              :percentage="hwProgress"
-              status="success">
-            </el-progress>
-          </div>
-          <div slot="tip" class="el-upload__tip">只能上传mp4文件,且不超过500M</div>
-        </el-upload>
+        <!--          &lt;!&ndash; 线路二 &ndash;&gt;-->
+        <!--          <div class="progress-container">-->
+        <!--            <span class="progress-label">线路二</span>-->
+        <!--            <el-progress-->
+        <!--              style="margin-top: 5px;"-->
+        <!--              class="progress"-->
+        <!--              :text-inside="true"-->
+        <!--              :stroke-width="18"-->
+        <!--              :percentage="hwProgress"-->
+        <!--              status="success">-->
+        <!--            </el-progress>-->
+        <!--          </div>-->
+        <!--          <div slot="tip" class="el-upload__tip">只能上传mp4文件,且不超过500M</div>-->
+        <!--        </el-upload>-->
       </div>
     </el-form-item>
     <el-form-item label="视频播放">
@@ -54,13 +54,13 @@
       <div v-if="fileSize">文件大小(MB): {{ (fileSize / (1024 * 1024)).toFixed(2) }} MB</div>
     </el-form-item>
     <!-- 仅当showControl为true时显示播放线路选择器 -->
-    <el-form-item v-if="showControl" label="播放线路">
-      <el-radio-group v-model="localUploadType">
-        <el-radio :label="1" >线路一</el-radio>
-        <el-radio :label="2" >线路二</el-radio>
-        <!--        <el-radio :label="3" >线路三</el-radio>-->
-      </el-radio-group>
-    </el-form-item>
+    <!--    <el-form-item v-if="showControl" label="播放线路">-->
+    <!--      <el-radio-group v-model="localUploadType">-->
+    <!--        <el-radio :label="1" >线路一</el-radio>-->
+    <!--        <el-radio :label="2" >线路二</el-radio>-->
+    <!--        &lt;!&ndash;        <el-radio :label="3" >线路三</el-radio>&ndash;&gt;-->
+    <!--      </el-radio-group>-->
+    <!--    </el-form-item>-->
 
     <!-- 视频库选择对话框 -->
     <el-dialog title="视频库选择" :visible.sync="libraryOpen" width="900px" append-to-body>
@@ -75,6 +75,26 @@
             @keyup.enter.native="handleLibraryQuery"
           />
         </el-form-item>
+        <el-form-item label="类型">
+          <el-select v-model="libraryQueryParams.typeId" @change="changeCateType" placeholder="请选择素材类型" clearable size="small">
+            <el-option
+              v-for="item in typeOptions"
+              :key="item.dictValue"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="子类型">
+          <el-select v-model="libraryQueryParams.typeSubId" placeholder="请选择素材子类型" clearable size="small">
+            <el-option
+              v-for="item in typeSubOptions"
+              :key="item.dictValue"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item>
           <el-button type="primary" icon="el-icon-search" size="mini" @click="handleLibraryQuery">搜索</el-button>
           <el-button icon="el-icon-refresh" size="mini" @click="resetLibraryQuery">重置</el-button>
@@ -129,6 +149,7 @@ import { uploadObject } from "@/utils/cos.js";
 import { uploadToOBS } from "@/utils/obs.js";
 import Pagination from "@/components/Pagination";
 import { listVideoResource } from '@/api/course/videoResource';
+import { getCateListByPid, getCatePidList } from '@/api/course/userCourseCategory'
 
 export default {
   components: {
@@ -179,6 +200,14 @@ export default {
       type: Number,
       default: 0,
     },
+    isTranscode: {
+      type: Number,
+      default: null,
+    },
+    transcodeFileKey: {
+      type: String,
+      default: "",
+    },
 
     // 使用一个变量控制显示,默认为true显示所有控制项
     showControl: {
@@ -211,10 +240,15 @@ export default {
       libraryList: [],
       selectedVideo: null,
       libraryQueryParams: {
+        isTranscode:1,
         pageNum: 1,
         pageSize: 10,
-        resourceName: null
-      }
+        resourceName: null,
+        typeId: null,
+        typeSubId: null,
+      },
+      typeOptions: [],
+      typeSubOptions: []
     };
   },
   watch: {
@@ -230,9 +264,25 @@ export default {
     // 打开视频库对话框
     openVideoLibrary() {
       this.libraryOpen = true;
+      this.getRootTypeList()
       this.selectedVideo = null;
       this.getLibraryList();
     },
+    getRootTypeList() {
+      getCatePidList().then(response => {
+        this.typeOptions = response.data
+      });
+    },
+    async changeCateType(val) {
+      this.libraryQueryParams.typeSubId = null
+      this.typeSubOptions = []
+      if (!val) {
+        return
+      }
+      await getCateListByPid(val).then(response => {
+        this.typeSubOptions = response.data
+      })
+    },
     handleChange(file, fileList) {
       this.fileList = fileList;
       this.getVideoDuration(file.raw);
@@ -351,7 +401,9 @@ export default {
       this.libraryQueryParams = {
         pageNum: 1,
         pageSize: 10,
-        resourceName: null
+        resourceName: null,
+        typeId: null,
+        typeSubId: null
       };
       this.handleLibraryQuery();
     },
@@ -385,6 +437,8 @@ export default {
       this.$emit("update:fileKey", this.selectedVideo.fileKey);
       this.$emit("update:uploadType", this.selectedVideo.uploadType);
       this.$emit("video-duration", this.selectedVideo.duration);
+      this.$emit("update:isTranscode", this.selectedVideo.isTranscode);
+      this.$emit("update:transcodeFileKey", this.selectedVideo.transcodeFileKey);
 
       // 设置预览URL
       this.$emit("update:videoUrl", this.selectedVideo.videoUrl);

+ 9 - 5
src/views/components/course/userCourseCatalogDetails.vue

@@ -74,7 +74,7 @@
     <el-table border v-loading="loading" :data="userCourseVideoList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="视频ID" align="center" prop="videoId" />
-      <el-table-column label="轮次" align="center" prop="round" />
+<!--      <el-table-column label="轮次" align="center" prop="round" />-->
       <el-table-column label="小节名称" align="center" show-overflow-tooltip prop="title" />
       <el-table-column label="视频文件名称" align="center" show-overflow-tooltip  prop="fileName" >
       </el-table-column>
@@ -145,9 +145,9 @@
         <el-form-item label="视频描述" prop="description">
           <el-input v-model="form.description" type="textarea" :rows="2"  placeholder="请输入内容" />
         </el-form-item>
-        <el-form-item label="轮次" prop="round">
-          <el-input v-model="form.round"  placeholder="请输入内容" />
-        </el-form-item>
+<!--        <el-form-item label="轮次" prop="round">-->
+<!--          <el-input v-model="form.round"  placeholder="请输入内容" />-->
+<!--        </el-form-item>-->
         <el-form-item label="课程排序" prop="courseSort">
           <el-input-number v-model="form.courseSort" :min="1" ></el-input-number>
         </el-form-item>
@@ -196,6 +196,8 @@
           :line_3.sync="form.lineThree"
           :thumbnail.sync="form.thumbnail"
           :uploadType.sync="form.uploadType"
+          :isTranscode.sync="form.isTranscode"
+          :transcodeFileKey.sync="form.transcodeFileKey"
           @video-duration="handleVideoDuration"
           @change="handleVideoChange"
           @selectProjects="handleSelectProjects"
@@ -688,7 +690,9 @@ export default {
           productJson: null,
           questionBankId:null,
           questionBankList:[],
-		  redPacketMoney:0,
+          redPacketMoney:0,
+          isTranscode:0,
+          transcodeFileKey:null
         };
         this.videoURL = '';
         this.progress=0;