fileList.js 3.03 KB

import create from 'dd-store';
import { renderSize } from "../../utils/utils"
import pageStore from '../../pages/meetingDetail/store';
import { uploadPermissions } from '../../api/request.js'

create.Component({
  store: pageStore,
  mixins: [],
  data: {
    logId: '', //store
    fileList: []
  },
  props: {
    isCanEdit: true,
    isCanDelete: false,
    isPreview: true, // 是否点击预览,
  },
  didMount() {
    const fileList = []
    for (let i = 0; i < this.props.fileInfos.length; i++) {
      this.props.fileInfos[i].sizeShow = renderSize(this.props.fileInfos[i].size)
      fileList.push(this.props.fileInfos[i])
    }
    this.setData({
      fileList: fileList
    })

  },
  didUpdate() {
    const fileList = []
    for (let i = 0; i < this.props.fileInfos.length; i++) {
      this.props.fileInfos[i].sizeShow = renderSize(this.props.fileInfos[i].size)
      fileList.push(this.props.fileInfos[i])
    }
    this.setData({
      fileList: fileList
    })
  },
  didUnmount() {

  },
  methods: {
    //移除文件
    removeFile(e) {
      this.store.data.logId = '';
      const fileInfos = this.store.data.fileInfos.filter(it => it.fileId !== e.target.dataset.id);
      this.store.data.fileInfos = fileInfos;
      this.update();
    },
    //预览文件
    preview(e) {
      // 如果出现编辑蒙层时阻止预览的点击事件
      if (this.store.data.logId) {
        return;
      }
      if (!this.props.isPreview) {
        return
      }
      const file = e.target.dataset.file
      console.log(file)
      let data = {
        ddUserId: getApp().globalData.userid,
        type: 'download',
        projectName: 'MING_MEETING',
        fileIds: file.fileId
      }
      uploadPermissions(data).then(res => {
        dd.previewFileInDingTalk({
          corpId: dd.corpId,
          spaceId: res.data.data,
          fileId: file.fileId,
          fileName: file.name,
          fileSize: file.size,
          fileType: file.mimeType,
        })
      })
    },
    //显示操作框
    showOperate(e) {
      if (this.props.isCanEdit) {
        this.store.data.logId = e.target.dataset.logId;
        this.update();
      }
    },
    //删除动态下的文件和描述
    deleteFile(e) {
      dd.confirm({
        title: '删除文件',
        content: '确认删除文件吗?',
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        success: (res) => {
          if (res.confirm) {
            this.props.onDeleteMeetingFile(e.target.dataset.id)
          }
        }
      })
    },
    //去编辑文件页面
    updateFile(e) {
      this.store.data.logId = '';
      const { fileInfos, description, id } = e.target.dataset.fileView;
      this.store.data.oldFileInfos = JSON.stringify(fileInfos);
      this.store.data.oldDescription = description;
      this.store.data.fileInfos = fileInfos;
      this.store.data.description = e.target.dataset.fileView.description;
      this.update();
      setTimeout(() => {
        dd.navigateTo({ url: `./../uploadFile/uploadFile?id=${id}` })
      })
    }
  },
});