闫增涛
2024-04-30 dc934dfd63fecff84d0bf996418e041b9bd4ea59
pages/bibliographyList/index.js
@@ -1,4 +1,5 @@
// pages/bibliographyList/index.js
import Toast from 'tdesign-miniprogram/toast/index';
const app = getApp()
const config =
  Page({
@@ -7,6 +8,15 @@
     * 页面的初始数据
     */
    data: {
      hiddenmodalput: false,
      name: "",
      phoneNum: '',
      input: '',
      dialogKey: '',
      showWithInput: false,
      showTextAndTitleWithInput: false,
      downloadLoadin: false,
      isMore: null,
      higherList: [],
      vocationalList: [],
      teacherList: [],
@@ -15,7 +25,14 @@
      teacherTotal: 0,
      value: '',
      BarHeight: '',
      navBarHeight: ''
      navBarHeight: '',
      start: 1,
      tabValue: '',
      keyword: '',
      Md5: '',
      emailError: false,
      loading: true, //开启骨架屏加载
      hidden: true, //是否展示内容
    },
    /**
@@ -25,7 +42,6 @@
      this.higherGet()
      this.vocationalGet()
      this.teacherGet()
      const systInfo = wx.getSystemInfoSync();
      const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
      const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -33,13 +49,12 @@
        navBarHeight: navBarHeight,
        barHeight: systInfo.statusBarHeight,
      })
      let event = {
        detail: {
          value: "0"
        }
      }
      this.onTabsChange(event)
    },
    /**
@@ -53,7 +68,8 @@
     * 生命周期函数--监听页面显示
     */
    onShow() {
      console.log(this.data.value);
      // console.log(this.data.value);
    },
    /**
@@ -91,27 +107,41 @@
    },
    onTabsChange(event) {
      console.log(`Change tab, tab-panel value is ${event.detail.value}.`);
    },
    onTabsClick(event) {
      console.log(`Click tab, tab-panel value is ${event.detail.value}.`);
      const value = event.detail.value
      if (value === '0') {
        console.log(value);
        this.setData({
          tabValue: value,
          isMore: false
        })
      } else if (value === '1') {
        console.log(value);
        this.setData({
          tabValue: value,
          isMore: false
        })
      } else if (value === '2') {
        console.log(value);
        this.setData({
          tabValue: value,
          isMore: false
        })
      }
    },
    //高等教育
    higherGet(keyword) {
      // console.log(keyword, 'keyword');
      let searchObj = {
        'Name*': keyword,
        '||author*': keyword,
        '||isbn*': keyword
      }
      app.MG.resource.getItem({
        path: 'jsek_biblioClassification\\jsek_bCHigherEducation',
        queryType: '*',
        paging: {
          start: '0',
          size: '999'
          size: this.data.start * 9
        },
        coverSize: {
          width: 260
@@ -131,15 +161,16 @@
        res.datas.forEach(item => {
          item.determine = true
        })
        console.log(res, 789111);
        this.setData({
          higherList: res.datas,
          higherTotal: res.total
        })
        console.log(this.data.higherList, '5555');
        this.setData({
          loading: false, //开启骨架屏加载
          hidden: false, //是否展示内容
        })
      })
      wx.stopPullDownRefresh()
    },
    //教师教育
@@ -148,14 +179,13 @@
        'Name*': keyword,
        '||author*': keyword,
        '||isbn*': keyword
      }
      app.MG.resource.getItem({
        path: 'jsek_biblioClassification\\jsek_bCVocationalEducation',
        queryType: '*',
        paging: {
          start: '0',
          size: '999'
          size: this.data.start * 9
        },
        coverSize: {
          width: 260
@@ -171,6 +201,7 @@
        },
        SysType: 'CmsItem'
      }).then(res => {
        console.log(res);
        res.datas.forEach(item => {
          item.determine = true
        })
@@ -178,8 +209,8 @@
          vocationalList: res.datas,
          vocationalTotal: res.total
        })
      })
      wx.stopPullDownRefresh()
    },
    // 职业教育
    teacherGet(keyword) {
@@ -187,14 +218,13 @@
        'Name*': keyword,
        '||author*': keyword,
        '||isbn*': keyword
      }
      app.MG.resource.getItem({
        path: 'jsek_biblioClassification\\jsek_bCTeacherEducation',
        queryType: '*',
        paging: {
          start: '0',
          size: '999'
          size: this.data.start * 9
        },
        coverSize: {
          width: 260
@@ -206,6 +236,8 @@
          fileType: [],
          jsek_resource: [],
          freeFile: [],
          bookshelf_freeEpub: [], //epub试读百分比
          bookshelf_probationPage: [], //pdf试读页数
          ...searchObj
        },
        SysType: 'CmsItem'
@@ -217,41 +249,74 @@
          teacherList: res.datas,
          teacherTotal: res.total
        })
      })
      wx.stopPullDownRefresh()
    },
    // downloadData(event) {
    //   this.setData({
    //     downloadLoadin: true
    //   })
    //   console.log(111);
    //   const item = event.currentTarget.dataset.item;
    //   // console.log(item.datas.freeFile.Value);
    //   const URL = app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.datas.freeFile.Value
    //   item.determine = false
    //   console.log(URL, 'URL');
    //   setTimeout(() => {
    //     if (URL) {
    //       item.determine = true
    //     }
    //   }, 600)
    //   wx.downloadFile({
    //     url: URL,
    //     success: function (res) {
    //       const filePath = res.tempFilePath;
    //       wx.openDocument({
    //         filePath: filePath,
    //         success: function (res) {
    //           console.log('打开文档成功');
    //         },
    //         fail: function (res) {
    //           console.log('打开文档失败', res);
    //         }
    //       });
    //     },
    //     fail: function (res) {
    //       console.log('下载文件失败', res);
    //     }
    //   });
    //   setTimeout(() => {
    //     this.setData({
    //       downloadLoadin: false
    //     });
    //   }, 2000);
    // },
    downloadData(event) {
      console.log(111);
      const item = event.currentTarget.dataset.item;
      // console.log(item.datas.freeFile.Value);
      const URL = 'http://182.92.203.7:3001/file/api/ApiDownload?md5=' + item.datas.freeFile.Value
      item.determine = false
      const item = event.currentTarget.dataset.item
      if (item.fileType == "pdf") {
        wx.navigateTo({
          url: "/packageBookService/pages/components/webView/index?md5=" +
            item.freeFile +
            "&fileName=" +
            item.name +
            "&fileType=" +
            item.fileType + "&bookBuy=true"
            // "&freePage=" +
            // this.data.fileInfo.freePage +
      setTimeout(() => {
        if (URL) {
          item.determine = true
        }
      }, 600)
      wx.downloadFile({
        url: URL,
        success: function (res) {
          const filePath = res.tempFilePath;
          wx.openDocument({
            filePath: filePath,
            success: function (res) {
              console.log('打开文档成功');
            },
            fail: function (res) {
              console.log('打开文档失败', res);
            }
          });
        },
        fail: function (res) {
          console.log('下载文件失败', res);
        }
      });
            +
            "&bookId=" +
            item.id,
        });
      } else {
        Toast({
          context: this,
          selector: '#t-toast',
          message: '此书不能查看',
          theme: 'warning',
          direction: 'column',
        });
      }
    },
    onSearchSubmit: function (e) {
      const keyword = e.detail.value;
@@ -261,10 +326,124 @@
      this.vocationalGet(keyword)
      this.teacherGet(keyword)
    },
    goBack() {
      wx.navigateBack();
    },
    onReachBottom(e) {
      if (this.data.tabValue == 0) {
        if (this.data.higherList.length < this.data.higherTotal) {
          this.setData({
            isMore: true,
            start: this.data.start + 1
          })
          this.higherGet()
        } else {
          this.setData({
            isMore: true,
          })
          setTimeout(() => {
            this.setData({
              isMore: false
            })
          }, 100)
        }
      } else if (this.data.tabValue == 2) {
        if (this.data.teacherList.length < this.data.teacherTotal) {
          this.setData({
            isMore: true,
            start: this.data.start + 1
          })
          this.teacherGet()
        } else {
          this.setData({
            isMore: true,
          })
          setTimeout(() => {
            this.setData({
              isMore: false
            })
          }, 100)
        }
      } else if (this.data.tabValue == 1) {
        console.log(this.data.vocationalList.length);
        console.log(this.data.vocationalTotal);
        if (this.data.vocationalList.length < this.data.vocationalTotal) {
          this.setData({
            isMore: true,
            start: this.data.start + 1
          })
          this.vocationalGet()
        } else {
          this.setData({
            isMore: true,
          })
          setTimeout(() => {
            this.setData({
              isMore: false
            })
          }, 100)
        }
      }
    },
    onPullDownRefresh() {
      let keyword = this.data.value
      this.setData({
        start: 1,
      })
      this.higherGet(keyword)
      this.vocationalGet(keyword)
      this.teacherGet(keyword)
    },
    // 邮箱点击
    mailbox(e) {
      const key = e.currentTarget.dataset.key;
      const item = e.currentTarget.dataset.item;
      this.setData({
        Md5: item.datas.freeFile.FileList[0].Md5
      })
      wx.showModal({
        title: '请输入邮箱',
        content: '',
        confirmColor: '#ff6c00',
        cancelColor: '#949494',
        placeholderText: '请输入邮箱号',
        editable: true,
        complete: (res) => {
          if (res.cancel) {
            console.log('取消');
          }
          if (res.confirm) {
            this.setData({
              input: res.content
            })
            this.confirmM()
          }
        }
      })
    },
    //提交
    confirmM(e) {
      const isEmailValid = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(this.data.input);
      if (isEmailValid && this.data.input) {
        let query = {
          eMail: this.data.input,
          md5s: [this.data.Md5]
        }
        app.MG.file.sendFileWithEmail(query).then(res => {
          if (res) {
            wx.showToast({
              icon: 'success',
              title: '邮件已发送',
            })
          }
        })
      } else {
        // 校验不通过,给出错误提示
        wx.showToast({
          title: '邮箱格式不正确',
          icon: 'none',
        });
      }
    },
  })