|  | @@ -196,6 +196,7 @@
 | 
	
		
			
				|  |  |                    <div slot="header" style="display: flex;justify-content: space-between;align-items: center; ">
 | 
	
		
			
				|  |  |                      <div style="flex: 1;">
 | 
	
		
			
				|  |  |                      <span v-if="item.msgtype === 'image'">【图片】: {{ item.image.pic_url }}</span>
 | 
	
		
			
				|  |  | +                     <span v-if="item.msgtype === 'video'">【视频】: {{ item.video.url }}</span>
 | 
	
		
			
				|  |  |                      <span v-if="item.msgtype === 'link'">【链接】: {{ item.link.title }}-{{item.link.desc}}</span>
 | 
	
		
			
				|  |  |                      <span v-if="item.msgtype === 'miniprogram'">【小程序】: {{ item.miniprogram.title }}</span>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
	
		
			
				|  | @@ -225,6 +226,9 @@
 | 
	
		
			
				|  |  |                  <el-dropdown-item command="image">
 | 
	
		
			
				|  |  |                    <i class="el-icon-picture" style="margin-right: 10px;"></i>图片
 | 
	
		
			
				|  |  |                  </el-dropdown-item>
 | 
	
		
			
				|  |  | +                <el-dropdown-item command="video">
 | 
	
		
			
				|  |  | +                  <i class="el-icon-video-camera" style="margin-right: 10px;"></i>视频
 | 
	
		
			
				|  |  | +                </el-dropdown-item>
 | 
	
		
			
				|  |  |                  <el-dropdown-item command="link">
 | 
	
		
			
				|  |  |                    <i class="el-icon-link" style="margin-right: 10px;"></i>链接
 | 
	
		
			
				|  |  |                  </el-dropdown-item>
 | 
	
	
		
			
				|  | @@ -349,6 +353,9 @@
 | 
	
		
			
				|  |  |                                <el-dropdown-item command="image">
 | 
	
		
			
				|  |  |                                  <i class="el-icon-picture" style="margin-right: 10px;"></i>图片
 | 
	
		
			
				|  |  |                                </el-dropdown-item>
 | 
	
		
			
				|  |  | +                              <el-dropdown-item command="video">
 | 
	
		
			
				|  |  | +                                <i class="el-icon-video-camera" style="margin-right: 10px;"></i>视频
 | 
	
		
			
				|  |  | +                              </el-dropdown-item>
 | 
	
		
			
				|  |  |                                <el-dropdown-item command="link">
 | 
	
		
			
				|  |  |                                  <i class="el-icon-link" style="margin-right: 10px;"></i>链接
 | 
	
		
			
				|  |  |                                </el-dropdown-item>
 | 
	
	
		
			
				|  | @@ -397,6 +404,25 @@
 | 
	
		
			
				|  |  |            <el-form-item label="图片:" prop="imagePicUrl">
 | 
	
		
			
				|  |  |              <ImageUpload v-model="fileFrom.imagePicUrl"  type="image" :num="10" :width="150" :height="150"  disabled/>
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +          <div v-if="welcomeItem.type==='video'">
 | 
	
		
			
				|  |  | +          <el-form-item label="视频:" prop="videoUrl">
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <el-upload
 | 
	
		
			
				|  |  | +              v-model="fileFrom.videoUrl"
 | 
	
		
			
				|  |  | +              class="avatar-uploader"
 | 
	
		
			
				|  |  | +              :action="uploadUrl"
 | 
	
		
			
				|  |  | +              :show-file-list="false"
 | 
	
		
			
				|  |  | +              :on-success="(res, file) => handleAvatarSuccessVideo(res, file, fileFrom)"
 | 
	
		
			
				|  |  | +              :before-upload="beforeAvatarUploadVideo">
 | 
	
		
			
				|  |  | +              <i class="el-icon-plus avatar-uploader-icon"></i>
 | 
	
		
			
				|  |  | +            </el-upload>
 | 
	
		
			
				|  |  | +            {{fileFrom.videoUrl}}
 | 
	
		
			
				|  |  | +            <video v-if="fileFrom.videoUrl"
 | 
	
		
			
				|  |  | +                   :src="fileFrom.videoUrl"
 | 
	
		
			
				|  |  | +                   controls style="width: 200px;height: 100px">
 | 
	
		
			
				|  |  | +            </video>
 | 
	
		
			
				|  |  | +          </el-form-item>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |          <div v-if="welcomeItem.type==='link'">
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -524,6 +550,8 @@ export default {
 | 
	
		
			
				|  |  |    components: { ImageUpload, qwUserList,ImageUploadWeclome},
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS2",
 | 
	
		
			
				|  |  |        // 遮罩层
 | 
	
		
			
				|  |  |        loading: true,
 | 
	
		
			
				|  |  |        // 导出遮罩层
 | 
	
	
		
			
				|  | @@ -798,6 +826,8 @@ export default {
 | 
	
		
			
				|  |  |        switch (command) {
 | 
	
		
			
				|  |  |          case 'image':
 | 
	
		
			
				|  |  |            return '添加图片';
 | 
	
		
			
				|  |  | +        case 'video':
 | 
	
		
			
				|  |  | +          return '添加视频';
 | 
	
		
			
				|  |  |          case 'link':
 | 
	
		
			
				|  |  |            return '添加链接';
 | 
	
		
			
				|  |  |          case 'miniprogram':
 | 
	
	
		
			
				|  | @@ -899,6 +929,8 @@ export default {
 | 
	
		
			
				|  |  |        };
 | 
	
		
			
				|  |  |        if (item.msgtype === 'image') {
 | 
	
		
			
				|  |  |          this.fileFrom.imagePicUrl = item.image.pic_url;
 | 
	
		
			
				|  |  | +      } else if (item.msgtype === 'video') {
 | 
	
		
			
				|  |  | +        this.fileFrom.videoUrl = item.video.url;
 | 
	
		
			
				|  |  |        } else if (item.msgtype === 'link') {
 | 
	
		
			
				|  |  |          this.fileFrom.linkTitle = item.link.title;
 | 
	
		
			
				|  |  |          this.fileFrom.linkPicUrl = item.link.picurl;
 | 
	
	
		
			
				|  | @@ -977,6 +1009,13 @@ export default {
 | 
	
		
			
				|  |  |              pic_url: this.fileFrom.imagePicUrl
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  | +      } else if (type === 'video') {
 | 
	
		
			
				|  |  | +        attachment = {
 | 
	
		
			
				|  |  | +          msgtype: 'video',
 | 
	
		
			
				|  |  | +          video: {
 | 
	
		
			
				|  |  | +            url:this.fileFrom.videoUrl,
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  |        } else if (type === 'link') {
 | 
	
		
			
				|  |  |          attachment = {
 | 
	
		
			
				|  |  |            msgtype: 'link',
 | 
	
	
		
			
				|  | @@ -1275,7 +1314,32 @@ export default {
 | 
	
		
			
				|  |  |            this.download(response.msg);
 | 
	
		
			
				|  |  |            this.exportLoading = false;
 | 
	
		
			
				|  |  |          }).catch(() => {});
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +     handleAvatarSuccessVideo(res, file, content) {
 | 
	
		
			
				|  |  | +      if (res.code == 200) {
 | 
	
		
			
				|  |  | +        // 使用 $set 确保响应式更新
 | 
	
		
			
				|  |  | +        this.$set(content, 'videoUrl', res.url);
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.msgError(res.msg);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    beforeAvatarUploadVideo(file) {
 | 
	
		
			
				|  |  | +      const isLt30M = file.size / 1024 / 1024 < 10;
 | 
	
		
			
				|  |  | +      const isMP4 = file.type === 'video/mp4';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (!isMP4) {
 | 
	
		
			
				|  |  | +        this.$message.error('仅支持上传 MP4 格式的视频文件!');
 | 
	
		
			
				|  |  | +        return false;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (!isLt30M) {
 | 
	
		
			
				|  |  | +        this.$message.error('上传大小不能超过 10MB!');
 | 
	
		
			
				|  |  | +        return false;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      return true;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 |