王新雷 4 年之前
父節點
當前提交
8f0cc337ac

File diff suppressed because it is too large
+ 0 - 0
dist/index.html


+ 1 - 1
dist/static/css/chunk-f0de8abc.d8cb85f4.css → dist/static/css/chunk-025a9412.d8b00a4f.css

@@ -1 +1 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.bannerImg[data-v-0f7bfc7a],.bannerImg[data-v-3e92ebde],.bannerImg[data-v-6f4fcd5a],.bannerImg[data-v-6facbd9c],.bannerImg[data-v-14eb5c03],.bannerImg[data-v-33a11420],.bannerImg[data-v-75128200],.bannerImg[data-v-d79824ca]{height:60px}
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.bannerImg[data-v-0f7bfc7a],.bannerImg[data-v-3e92ebde],.bannerImg[data-v-6f4fcd5a],.bannerImg[data-v-6facbd9c],.bannerImg[data-v-14eb5c03],.bannerImg[data-v-973d7c16],.bannerImg[data-v-75128200],.bannerImg[data-v-d79824ca]{height:60px}

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-12a0e05e.52026c3d.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-bc1bfb46.eacb06f2.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.99f9162f.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-025a9412.58ea45c7.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-12a0e05e.bed0fe88.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-bc1bfb46.46369a40.js


+ 1 - 1
src/views/contentManager/components/advert.vue

@@ -22,7 +22,7 @@
       <el-table :data="tableList" :header-cell-style="{background:'#EDEEF0',color:'#444'}">
         <el-table-column align="center" label="广告图">
           <template slot-scope="scope">
-            <img class="bannerImg" :src="scope.row.coverImage" alt />
+            <img class="bannerImg" :src="scope.row.videoCoverImage || scope.row.coverImage" alt />
           </template>
         </el-table-column>
         <el-table-column align="center" prop="title" label="标题"></el-table-column>

+ 101 - 37
src/views/contentManager/contentOperation.vue

@@ -11,38 +11,50 @@
                ref="form"
                label-width="120px"
                style="width: 100%">
-        <el-form-item label="标题"
-                      prop="title">
+        <el-form-item label="标题" prop="title">
           <el-input v-model.trim="form.title"></el-input>
         </el-form-item>
         <el-form-item label="排序值">
           <el-input v-model.trim="form.order"></el-input>
         </el-form-item>
-        <el-form-item label="适用范围"
-                      prop="tenantId">
+        <el-form-item label="适用范围" prop="tenantId">
           <el-select v-model="form.tenantId">
-            <el-option label="对内"
-                       value="1"></el-option>
-            <el-option label="对外"
-                       value="2"></el-option>
+            <el-option label="对内" value="1"></el-option>
+            <el-option label="对外" value="2"></el-option>
           </el-select>
         </el-form-item>
         <!-- banner图 && app按钮管理,才需要添加版本号 -->
-        <el-form-item label="版本号"
-                      v-if="type == 3 || type == 6 || type == 8">
+        <el-form-item label="版本号" v-if="type == 3 || type == 6 || type == 8">
           <el-input v-model="form.memo"></el-input>
         </el-form-item>
         <!--  -->
-        <el-form-item v-if="type == 3 || type == 6 || type == 5 || type == 8"
-                      label="链接地址">
+        <el-form-item v-if="type == 3 || type == 6 || type == 5 || type == 8" label="链接地址">
           <el-input v-model.trim="form.linkUrl"></el-input>
         </el-form-item>
-        <el-form-item v-else
-                      label="链接地址"
-                      prop="linkUrl">
+        <el-form-item v-else label="链接地址" prop="linkUrl">
           <el-input v-model.trim="form.linkUrl"></el-input>
         </el-form-item>
-        <el-form-item :label="type == 8 ? '广告图' : '封面图'"
+        <!-- 广告管理才有类型 -->
+        <el-form-item label="类型" v-if="type == 8">
+          <el-select v-model="uploadType">
+            <el-option label="图片" :value="1"></el-option>
+            <el-option label="视频" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item v-if="uploadType == 2" key="coverImage" label="广告视频" prop="coverImage">
+          <div @click="addAdvVideo" style="display: inline-block;">
+            <video class="avatar"
+                   v-if="form.coverImage"
+                   type="video/mp4"
+                   preload="auto"
+                   controls
+                   :poster="form.videoCoverImage"
+                   :src="form.coverImage"></video>
+            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+          </div>
+        </el-form-item>
+        <el-form-item v-else key="coverImage" :label="type == 8 ? '广告图' : '封面图'"
                       prop="coverImage">
           <el-upload class="avatar-uploader"
                      action="/api-web/uploadFile"
@@ -51,15 +63,23 @@
                      accept=".jpg, .jpeg, .png"
                      :on-success="handleAvatarSuccess"
                      :before-upload="beforeAvatarUpload">
+            <!-- 判断是图片还是视频 -->
             <img v-if="form.coverImage"
-                 :src="form.coverImage"
-                 class="avatar" />
+                :src="form.coverImage"
+                class="avatar" />
             <i v-else
                class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
           <p class="imageSize"
              v-if="imageSize">上传图片尺寸为:{{ imageSize }}</p>
         </el-form-item>
+        <!-- 广告管理才有时长 -->
+        <el-form-item label="显示时长" prop="attribute1" v-if="type == 8">
+          <el-input type="number" v-model.number="form.attribute1"></el-input>
+          <p style="color: red">建议时长不超过5秒</p>
+        </el-form-item>
+
+        <!-- 知识库管理才会有类型 -->
         <el-form-item v-if="type == 7"
                       label="知识类别"
                       prop="subType">
@@ -111,9 +131,6 @@
                :rules="dialogFormRules">
         <el-form-item label="封面图地址"
                       label-width="90px">
-          <!-- <el-input v-model="dialogForm.poster"
-                    style="width: 100%;"
-                    autocomplete="off"></el-input> -->
           <el-upload class="avatar-uploader"
                      style="line-height: 0;display: inline-block"
                      action="/api-web/uploadFile"
@@ -150,9 +167,6 @@
                       label="上传视频"
                       label-width="90px"
                       prop="videoUrl">
-          <!-- <el-input v-model="dialogForm.url"
-                    style="width: 100%;"
-                    autocomplete="off"></el-input> -->
           <el-upload class="upload-demo"
                      style="display: inline-block"
                      v-loading="uploadLoading"
@@ -255,6 +269,17 @@ const titleConfig = {
   "ql-upload": "文件"
 };
 
+let validNum = (rule, value, callback) => {
+  console.log(value)
+  console.log(typeof value)
+  if (typeof value == 'string' || value == null) {
+    callback(new Error('请输入显示时长'))
+  } else if (value < 0) {
+    callback(new Error('输入显示时长必须大于0'))
+  } else {
+    callback()
+  }
+}
 // 这里引入修改过的video模块并注册
 import Video from "../quill/video.js";
 import dayjs from 'dayjs'
@@ -267,8 +292,18 @@ export default {
   data () {
     let that = this;
     const query = this.$route.query
-    const url = query.type == 7 ? vaildStudentUrl() + "/#/knowledge" : vaildStudentUrl() + "/#/specialdetail"
+    let url = ''
+    // let url = query.type == 7 ? vaildStudentUrl() + "/#/knowledge" : vaildStudentUrl() + "/#/specialdetail"
+    if(query.type == 7) {
+      url = vaildStudentUrl() + "/#/knowledge"
+    } else if(query.type == 8) {
+      url = ''
+    } else {
+      url = vaildStudentUrl() + "/#/specialdetail"
+    }
     return {
+      uploadType: 1, // 上传类型
+      uploadStatus: false,
       categoryList: [],
       type: query.type,
       pageType: query.pageType,
@@ -281,7 +316,7 @@ export default {
       formRadio: 1,
       lookVisible: false,
       dataInfo: {
-        title: '知识库13',
+        title: '',
         type: query.type,
         updateTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
         content: null
@@ -331,6 +366,8 @@ export default {
         title: null,
         order: null,
         coverImage: null,
+        videoCoverImage: null,
+        attribute1: null, // 时长
         linkUrl: url,
         type: query.type,
         status: 1,
@@ -346,8 +383,11 @@ export default {
         linkUrl: [
           { required: true, message: "请输入连接地址", trigger: "blur" }
         ],
+        attribute1: [
+          {required: true, validator: validNum, trigger: 'blur'}
+        ],
         coverImage: [
-          { required: true, message: "请选择封面图", trigger: "blur" }
+          { required: true, message: '请选择封面图或广告视频', trigger: "blur" }
         ],
         content: [{ required: true, message: "请编辑内容", trigger: "blur" }],
         tenantId: [{ required: true, message: "请选择适用范围", trigger: "change" }],
@@ -363,11 +403,21 @@ export default {
   activated () {
     const query = this.$route.query
     if (query.pageType == "create") {
+      let url = ''
+      if(query.type == 7) {
+        url = vaildStudentUrl() + "/#/knowledge"
+      } else if(query.type == 8) {
+        url = ''
+      } else {
+        url = vaildStudentUrl() + "/#/specialdetail"
+      }
       this.form = {
         title: null,
         order: null,
         coverImage: null,
-        linkUrl: query.type == 7 ? vaildStudentUrl() + "/#/knowledge" : vaildStudentUrl() + "/#/specialdetail",
+        videoCoverImage: null,
+        attribute1: null,
+        linkUrl: url,
         type: query.type,
         status: 1,
         content: null,
@@ -405,20 +455,34 @@ export default {
       };
       this.imageSize = tempTitle[this.form.type];
     },
+    addAdvVideo() {
+      this.dialogFormVisible = true
+      this.uploadStatus = true
+    },
     onVideoComfirm (formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
           let dialogForm = this.dialogForm;
-          // 获取富文本组件实例
-          let quill = this.editor;
-          // 插入图片,res为服务器返回的图片链接地址
-          const params = {
-            poster: dialogForm.poster,
-            url: this.formRadio == 1 ? dialogForm.url : dialogForm.videoUrl,
+          if(this.uploadStatus) {
+            // 添加视频类型
+            let form = this.form
+            form.coverImage = this.formRadio == 1 ? dialogForm.url : dialogForm.videoUrl
+            form.videoCoverImage = dialogForm.poster
+
+            this.uploadStatus = false
+          } else {
+            // 编辑器输入视频
+            // 获取富文本组件实例
+            let quill = this.editor;
+            // 插入图片,res为服务器返回的图片链接地址
+            const params = {
+              poster: dialogForm.poster,
+              url: this.formRadio == 1 ? dialogForm.url : dialogForm.videoUrl,
+            }
+            quill.insertEmbed(this.editorIndex, "video", params);
+            // 调整光标到最后
+            quill.setSelection(this.editorIndex + 1, { preload: false });
           }
-          quill.insertEmbed(this.editorIndex, "video", params);
-          // 调整光标到最后
-          quill.setSelection(this.editorIndex + 1, { preload: false });
 
           this.dialogFormVisible = false;
           this.dialogForm = {

Some files were not shown because too many files changed in this diff