liukangdong
2024-07-25 6810c281306cae6e02fbbb1478d780c823d08a33
wechat_staff/pages/download/index.js
@@ -1,6 +1,10 @@
// pages/download/index.js
const { HYEventBus } = require('hy-event-store')
const eventBus = new HYEventBus()
import {
  getContentShareImg
} from '../../api/index'
import {
  checkAuth,
  downloadSaveFile
} from '../../utils/downloadSaveFile'
Page({
  /**
@@ -9,6 +13,7 @@
  data: {
    bottomLift: '',
    downloadList: [],
    downloadConfig: {},
    checkedAll: false,
    showParam: false,
    takeQrcode: true
@@ -23,8 +28,68 @@
      bottomLift: app.bottomLift
    })
  },
  subDownload() {
    let that = this
    const downloadList = this.data.downloadList
    const downloadConfig = this.data.downloadConfig
    checkAuth(() => {
      wx.showLoading({
        title: '正在下载',
        mask: true
      })
      downloadList.forEach(item => {
        if (item.checked) {
          item.paddingStatus = 2
        }
      })
      this.setData({ downloadList })
      downloadList.forEach(item => {
        if (item.checked) {
          getContentShareImg({
            articleId: `${downloadConfig.id}_${downloadConfig.path}`,
            type: this.takeQrcode ? 1 : 0,
            imgurl: item.url
          }).then(res => {
            wx.downloadFile({
              url: res.data,
              success: res => {
                if (res.statusCode === 200) {
                  wx.saveImageToPhotosAlbum({
                    filePath: res.tempFilePath,
                    success: res => {
                      item.paddingStatus = 3
                      item.checked = false
                      that.setData({ downloadList })
                      wx.showToast({
                        title: '保存成功',
                        icon: "none"
                      })
                    },
                    fail: res => {
                      item.paddingStatus = 4
                      item.checked = false
                      that.setData({ downloadList })
                      wx.showToast({
                        title: '保存失败',
                        icon: "none"
                      })
                    }
                  })
                }
              }
            })
          })
        }
      })
    })
    this.setData({
      showParam: false
    })
  },
  onShow() {
    const downloadList = wx.getStorageSync('downloadList') || []
    const downloadConfig = wx.getStorageSync('downloadConfig') || {}
    let temp = downloadList.map(i => {
      // paddingStatus: 0未下载1正在下载2等待下载3下载完成
      return {
@@ -33,37 +98,43 @@
        checked: false
      }
    })
    this.setData({ downloadList: temp })
    this.setData({
      downloadList: temp,
      downloadConfig
    })
    setTimeout(() => {
      wx.setStorageSync('downloadList', [])
      wx.setStorageSync('downloadConfig', {})
    },500)
  },
  openParam() {
    const downloadList = this.data.downloadList.filter(i => i.checked)
    if(downloadList.length === 0) return wx.showToast({title: '请先选择要下载的海报', icon: 'none'})
    this.setData({ showParam: true })
    if (downloadList.length === 0) return wx.showToast({
      title: '请先选择要下载的海报',
      icon: 'none'
    })
    this.setData({
      showParam: true
    })
  },
  onClose() {
    this.setData({ showParam: false })
    this.setData({
      showParam: false
    })
  },
  downCheck(e) {
    const takeQrcode = e.currentTarget.dataset.flag
    console.log('takeQrcode', takeQrcode);
    this.setData({ takeQrcode })
  },
  subDownload() {
    const downloadList = this.data.downloadList
    downloadList.forEach(item => {
      if(item.checked){
      }
    this.setData({
      takeQrcode
    })
    this.setData({ showParam: false })
  },
  itemCheck(e) {
    const i = e.currentTarget.dataset.i
    const { downloadList, checkedAll } = this.data
    const {
      downloadList,
      checkedAll
    } = this.data
    let count = 0
    downloadList.forEach((item, index) => {
      if(index === i){
@@ -73,14 +144,23 @@
        count ++
      }
    })
    this.setData({ checkedAll: count == downloadList.length,  downloadList})
    this.setData({
      checkedAll: count == downloadList.length,
      downloadList
    })
  },
  allCheck() {
    const { downloadList, checkedAll } = this.data
    const {
      downloadList,
      checkedAll
    } = this.data
    downloadList.forEach(item => {
      item.checked = !checkedAll
    })
    this.setData({ checkedAll: !checkedAll, downloadList })
    this.setData({
      checkedAll: !checkedAll,
      downloadList
    })
  },
  onHide() {