闫增涛
2024-05-07 4a9955330070cf8abd78d95aaa2067d9a06a88c3
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,14 @@
     * 页面的初始数据
     */
    data: {
      hiddenmodalput: false,
      name: "",
      phoneNum: '',
      input: '',
      dialogKey: '',
      showWithInput: false,
      showTextAndTitleWithInput: false,
      downloadLoadin: false,
      isMore: null,
      higherList: [],
      vocationalList: [],
@@ -18,7 +27,15 @@
      BarHeight: '',
      navBarHeight: '',
      start: 1,
      tabValue: ''
      tabValue: '',
      keyword: '',
      Md5: '',
      emailError: false,
      loading: true, //开启骨架屏加载
      hidden: true, //是否展示内容
      height: '',
      dialogBox: false,
      inputStyle: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx; padding: 0 0 0 16rpx;height:70rpx',
    },
    /**
@@ -28,7 +45,6 @@
      this.higherGet()
      this.vocationalGet()
      this.teacherGet()
      const systInfo = wx.getSystemInfoSync();
      const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
      const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -36,18 +52,21 @@
        navBarHeight: navBarHeight,
        barHeight: systInfo.statusBarHeight,
      })
      let event =
      {
        detail: { value: "0" }
      let event = {
        detail: {
          value: "0"
        }
      }
      this.onTabsChange(event)
      var that = this;
      // 动态获取屏幕高度
      wx.getSystemInfo({
        success: (result) => {
          that.setData({
            height: result.windowHeight
          });
        },
      })
    },
    /**
@@ -61,7 +80,8 @@
     * 生命周期函数--监听页面显示
     */
    onShow() {
      console.log(this.data.value);
      // console.log(this.data.value);
    },
    /**
@@ -99,40 +119,26 @@
    },
    onTabsChange(event) {
      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
        })
      this.setData({
        isMore: null,
        tabValue: value,
      })
      if (value == '0') {
        this.higherGet()
      } else if (value == '1') {
        this.vocationalGet()
      } else if (value == '2') {
        this.teacherGet()
      }
    },
    //高等教育
    higherGet(keyword) {
      let searchObj = {
        'Name*': keyword,
        '||author*': keyword,
        '||isbn*': keyword
      }
      app.MG.resource.getItem({
        path: 'jsek_biblioClassification\\jsek_bCHigherEducation',
        queryType: '*',
@@ -154,19 +160,24 @@
        },
        SysType: 'CmsItem'
      }).then(res => {
        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, //是否展示内容
        })
        if (res.datas.length < 7 && res.datas.length > 0) {
          this.setData({
            isMore: false
          })
        }
      })
      wx.stopPullDownRefresh()
    },
    //教师教育
@@ -175,7 +186,6 @@
        'Name*': keyword,
        '||author*': keyword,
        '||isbn*': keyword
      }
      app.MG.resource.getItem({
        path: 'jsek_biblioClassification\\jsek_bCVocationalEducation',
@@ -198,6 +208,7 @@
        },
        SysType: 'CmsItem'
      }).then(res => {
        console.log(res);
        res.datas.forEach(item => {
          item.determine = true
        })
@@ -205,7 +216,11 @@
          vocationalList: res.datas,
          vocationalTotal: res.total
        })
        if (res.datas.length < 7 && this.datas.length > 0) {
          this.setData({
            isMore: false
          })
        }
      })
      wx.stopPullDownRefresh()
    },
@@ -215,7 +230,6 @@
        'Name*': keyword,
        '||author*': keyword,
        '||isbn*': keyword
      }
      app.MG.resource.getItem({
        path: 'jsek_biblioClassification\\jsek_bCTeacherEducation',
@@ -234,6 +248,8 @@
          fileType: [],
          jsek_resource: [],
          freeFile: [],
          bookshelf_freeEpub: [], //epub试读百分比
          bookshelf_probationPage: [], //pdf试读页数
          ...searchObj
        },
        SysType: 'CmsItem'
@@ -245,41 +261,79 @@
          teacherList: res.datas,
          teacherTotal: res.total
        })
        if (res.datas.length < 7 && this.datas.length > 0) {
          this.setData({
            isMore: false
          })
        }
      })
      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 = 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);
        }
      });
      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 +
            +
            "&bookId=" +
            item.id,
        });
      } else {
        Toast({
          context: this,
          selector: '#t-toast',
          message: '此书不能查看',
          theme: 'warning',
          direction: 'column',
        });
      }
    },
    onSearchSubmit: function (e) {
      const keyword = e.detail.value;
@@ -289,14 +343,11 @@
      this.vocationalGet(keyword)
      this.teacherGet(keyword)
    },
    goBack() {
      wx.navigateBack();
    },
    onReachBottom(e) {
      if (this.data.tabValue == 0) {
        console.log(0);
        if (this.data.higherList.length < this.data.higherTotal) {
          this.setData({
            isMore: true,
@@ -312,11 +363,8 @@
              isMore: false
            })
          }, 100)
        }
      } else if (this.data.tabValue == 1) {
      } else if (this.data.tabValue == 2) {
        if (this.data.teacherList.length < this.data.teacherTotal) {
          this.setData({
            isMore: true,
@@ -332,12 +380,11 @@
              isMore: false
            })
          }, 100)
        }
        console.log(2);
      } else if (this.data.tabValue == 2) {
        if (this.data.vocationalList.length < this.data.vocationalTotal && this.data.vocationalList.length > 9) {
      } 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
@@ -352,24 +399,73 @@
              isMore: false
            })
          }, 100)
        }
        console.log(2);
      }
    },
    onPullDownRefresh() {
      let keyword = this.data.value
      this.setData({
        start: 1
        start: 1,
      })
      this.vocationalGet()
      this.higherGet()
      this.teacherGet()
      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,
        dialogBox: true
      })
      // wx.scanCode({
      //   success: res => {
      //     console.log(res);
      //   }
      // })
    },
    // 弹窗取消
    closeDialog() {
      this.setData({
        dialogBox: false
      })
    },
    //提交
    confirmM(e) {
      wx.showLoading({
        title: '发送中...',
      })
      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) {
        this.setData({
          dialogBox: false
        })
        let query = {
          eMail: this.data.input,
          md5s: [this.data.Md5]
        }
        app.MG.file.sendFileWithEmail(query).then(res => {
          wx.hideLoading()
          if (res) {
            wx.showToast({
              icon: 'success',
              title: '邮件已发送',
            })
          }
        })
      } else {
        // 校验不通过,给出错误提示
        wx.showToast({
          title: '邮箱格式不正确',
          icon: 'none',
        });
      }
    },
    inputChange(e) {
      this.setData({
        input: e.detail.value
      })
    }
  })