var app = getApp();

Page({
  data: {
    currentPath: '', // 当前路径
    breadcrumbPath: '', // 上一级路径
    currentItems: [], // 当前目录内容
    hasMore: false, // 是否有更多数据
    showQRPopup: false, // 控制二维码弹窗显示
    popupAnimation: {}, // 弹窗动画
    page: 1, // 当前页码
    pageSize: 20, // 每页大小
    isRoot: true, // 是否是根目录
    qrcodeUrl: 'https://file.guimiaokeji.com/%E5%B9%BF%E5%91%8A/C55BDC06151A606BDAEBCF787283874E.jpg', // 二维码图片链接
  },

  onLoad() {

    wx.showShareMenu({
      withShareTicket: !0,
      menus: [ "shareAppMessage", "shareTimeline" ]
  });
  },
  showVip(){
    wx.navigateTo({
      url: "../vip_recharge/vip_recharge?show=true"
    })
  }
  ,
  // 默认加载第一个目录
  loadDefaultDirectory() {
    wx.showLoading({ title: '加载中...' });

    app.apiRequest({
      url: '/api/courses/',
      method: 'GET',
      data: {
        path: '/', // 根路径
        page_num: 1,
        page_size: 1, // 仅获取第一个目录
      },
      success: (res) => {
        if (res.data.status === 'success') {
          const firstItem = res.data.data.files[0];

          if (firstItem && firstItem.type === 1) {
            // 如果第一个项目是目录，加载该目录
            this.loadDirectory(`/${firstItem.name}`);
          } else {
            wx.showToast({ title: '没有可用的目录', icon: 'none' });
          }
        } else {
          wx.showToast({ title: '获取数据失败', icon: 'none' });
        }
      },
      fail: (err) => {
        wx.showToast({ title: '加载失败，请重试', icon: 'none' });
        console.error(err);
      },
      complete: () => wx.hideLoading(),
    });
  },

  // 加载指定目录内容
  loadDirectory(path, append = false) {
    wx.showLoading({ title: '加载中...' });

    // 确保路径不会出现多个斜杠
    const sanitizedPath = path.replace(/\/+/g, '/');

    app.apiRequest({
      url: '/api/courses/',
      method: 'GET',
      data: {
        path: sanitizedPath,
        page_num: this.data.page,
        page_size: this.data.pageSize,
      },
      success: (res) => {
        if (res.data.status === 'success') {
          const newItems = res.data.data.files.map((item) => ({
            ...item,
            path: `${sanitizedPath}/${item.name}`,
          }));

          const paths = sanitizedPath.split('/').filter(Boolean);
          const breadcrumbPath = paths.slice(0, -1).join('/') || '/';

          this.setData({
            currentItems: append ? this.data.currentItems.concat(newItems) : newItems,
            currentPath: sanitizedPath,
            breadcrumbPath,
            hasMore: newItems.length === this.data.pageSize,
            isRoot: sanitizedPath === '/', // 根目录判断
          });
        } else {
          wx.showToast({ title: '获取数据失败', icon: 'none' });
        }
      },
      fail: (err) => {
        wx.showToast({ title: '加载失败，请重试', icon: 'none' });
        console.error(err);
      },
      complete: () => wx.hideLoading(),
    });
  },

  // 点击目录或文件
  handleItemClick(e) {
    const { type, path } = e.currentTarget.dataset;

    if (type === 1) { // 目录
      this.setData({ page: 1 });
      this.loadDirectory(path);
    } else if (type === 0) { // 文件
      this.setData({
        qrcodeUrl: this.data.qrcodeUrl, // 假设文件路径作为二维码图片链接
      });
      this.showQRCode();
    }
  },

  // 返回上级目录
  goToParent() {
    const paths = this.data.currentPath.split('/').filter(Boolean);
    paths.pop();
    const parentPath = '/' + paths.join('/');

    this.setData({ page: 1 });
    this.loadDirectory(parentPath);
  },

  // 加载更多
  loadMore() {
    if (!this.data.hasMore) return;

    this.setData({ page: this.data.page + 1 });
    this.loadDirectory(this.data.currentPath, true);
  },

  // 显示二维码弹窗
  showQRCode() {
    this.setData({ showQRPopup: true });
    const animation = wx.createAnimation({
      duration: 300,
      timingFunction: 'ease',
    });
    animation.scale(1).opacity(1).step();
    this.setData({ popupAnimation: animation.export() });
  },

  // 关闭二维码弹窗
  closeQRCode() {
    const animation = wx.createAnimation({
      duration: 300,
      timingFunction: 'ease',
    });
    animation.scale(0.8).opacity(0).step();
    this.setData({ popupAnimation: animation.export() });

    setTimeout(() => {
      this.setData({ showQRPopup: false });
    }, 300);
  },

  // 防止点击弹窗内部关闭弹窗
  preventClose() {
    // 空函数，阻止事件冒泡
  },

  // 保存二维码到相册
  saveQRCode() {
    const { qrcodeUrl } = this.data;

    wx.showLoading({ title: '正在保存...' });

    wx.downloadFile({
      url: qrcodeUrl,
      success: (res) => {
        if (res.statusCode === 200) {
          wx.saveImageToPhotosAlbum({
            filePath: res.tempFilePath,
            success: () => {
              wx.showToast({ title: '二维码已保存', icon: 'success' });
            },
            fail: (err) => {
              wx.showToast({ title: '保存失败，请重试', icon: 'none' });
              console.error(err);
            },
          });
        }
      },
      fail: (err) => {
        wx.showToast({ title: '下载失败，请重试', icon: 'none' });
        console.error(err);
      },
      complete: () => wx.hideLoading(),
    });
  },

  
  onShareAppMessage: function () {
    return {
      title: '分享给你一份全链路的自媒体课程，赶快来领取吧',
      path: '/pages/details/details?uuid=' + wx.getStorageSync('uuid'),
      imageUrl: 'https://file.guimiaokeji.com/kecheng.png',
      success: function (e) {
        wx.showToast({
          title: "分享成功",
          icon: "success",
          duration: 2e3
        });
      },
      fail: function (e) {
        wx.showToast({
          title: "分享失败",
          icon: "none",
          duration: 2e3
        });
      }
    }
  },
  onShareTimeline: function () {
    return {
      title: '分享给你一份全链路的自媒体课程，赶快来领取吧',
      path: '/pages/details/details?uuid=' + wx.getStorageSync('uuid'),
      imageUrl: 'https://file.guimiaokeji.com/kecheng.png',
      success: function (e) {
        wx.showToast({
          title: "分享成功",
          icon: "success",
          duration: 2e3
        });
      },
      fail: function (e) {
        wx.showToast({
          title: "分享失败",
          icon: "none",
          duration: 2e3
        });
      }
    }
  },

});
