elementui 上传多个视频 / 复杂数据下的多选框 indeterminate变化错误

记录一下在使用 elementui 遇到的三个问题, 以及通过百度最后得以解决的办法

1. elementui 上传多个视频, 并进行预览和删除

<template>
  <div>
    <el-form-item label="项目视频">
      <span style="font-size: 12px;color: #999;">仅支持mp4视频格式,大小不超过200M,最多可一共上传1个视频</span>
      <el-upload
        :action="actionUrlVideo"
        :data="uploadData"
        list-type="picture-card"
        :limit="1"
        :file-list="videoList"
        accept=".mp4">
        <i slot="default" class="el-icon-plus"></i>
        <div slot="file" slot-scope="{file}" style="height: 100%;">
          <video class="el-upload-list__item-thumbnail" :src="dialogVideoUrl" width="100%" height="100%"></video>
          <span class="el-upload-list__item-actions">
            <span class="el-upload-list__item-preview" @click="handleVideoPreview(file)">
              <i class="el-icon-video-play"></i>
            </span>
            <span v-if="!isEdit" class="el-upload-list__item-delete" @click="handleRemove(file)>
              <i class="el-icon-delete"></i>
            </span>
          </span>
        </div>
      </el-upload>
      <el-dialog :visible.sync="dialogVisibleVideo" append-to-body>
        <video width="100%" controls="controls" :src="dialogVideoUrl"></video>
      </el-dialog>
    </el-form-item>
  </div>
</template>

<script>
export default {
  data() {
    return {
      actionUrlVideo: '', // 上传视频地址
      dialogVisibleVideo: false,
      videoList: [], // 视频列表
      uploadData: {fileName: ''}, // 上传文件参数
      dialogVideoUrl: '' // 视频
    };
  },
  methods: {
    // 删除视频
    handleRemove(file) {
      console.log('删除视频');
    },
    // 视频
    handleVideoPreview(file) {
      this.dialogVideoUrl = file.url;
      this.dialogVisibleVideo = true;
    }
  }
};
</script>

2. 复杂的数据对象vue没法感知到数据的变化,当你使用多选框, 对indeterminate做了更改之后,调用this.$forceUpdate();强制刷新

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容