| | |
| | | // pages/bibliographyList/index.js |
| | | import Toast from 'tdesign-miniprogram/toast/index'; |
| | | const app = getApp() |
| | | const config = |
| | | Page({ |
| | | import { |
| | | loginInfo |
| | | } from '../../assets/js/login'; |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | higherList: [], |
| | | vocationalList: [], |
| | | teacherList: [], |
| | | higherTotal: 0, |
| | | vocationalTotal: 0, |
| | | teacherTotal: 0, |
| | | value: '', |
| | | BarHeight: '', |
| | | navBarHeight: '' |
| | | }, |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | personalDataEmail: '', |
| | | hiddenmodalput: false, |
| | | name: "", |
| | | phoneNum: '', |
| | | input: '', |
| | | dialogKey: '', |
| | | showWithInput: false, |
| | | showTextAndTitleWithInput: false, |
| | | downloadLoadin: false, |
| | | isMore: null, |
| | | higherList: [], |
| | | vocationalList: [], |
| | | teacherList: [], |
| | | higherTotal: 0, |
| | | vocationalTotal: 0, |
| | | teacherTotal: 0, |
| | | value: '', |
| | | BarHeight: '', |
| | | navBarHeight: '', |
| | | start: 1, |
| | | 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', |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | this.higherGet() |
| | | this.vocationalGet() |
| | | this.teacherGet() |
| | | const systInfo = wx.getSystemInfoSync(); |
| | | const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息 |
| | | const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 |
| | | this.setData({ |
| | | navBarHeight: navBarHeight, |
| | | barHeight: systInfo.statusBarHeight, |
| | | }) |
| | | let event = { |
| | | detail: { |
| | | value: "0" |
| | | } |
| | | } |
| | | this.onTabsChange(event) |
| | | var that = this; |
| | | // 动态获取屏幕高度 |
| | | wx.getSystemInfo({ |
| | | success: (result) => { |
| | | that.setData({ |
| | | height: result.windowHeight |
| | | }); |
| | | }, |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | // console.log(this.data.value); |
| | | // 检查登录状态 |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | | if (!token) { |
| | | loginInfo(app, (data) => { |
| | | if (data) { |
| | | this.getUserInfo() |
| | | } |
| | | }) |
| | | } else { |
| | | this.getUserInfo() |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | }, |
| | | // 获取登录用户身份 |
| | | getUserInfo() { |
| | | app.MG.identity.getCurrentAppUser().then(res => { |
| | | // 用户信息优先级:教师认证 > 微信 > 学生(注册时默认) |
| | | if (res) { |
| | | //获取用户类型 |
| | | let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher') |
| | | let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo') |
| | | let eMailData = res.secretList.find(i => i.type == 'EMail') |
| | | if (eMailData) { |
| | | this.setData({ |
| | | input: eMailData.credential |
| | | }) |
| | | } else if (teacherRole && teacherInfos) { |
| | | this.setData({ |
| | | input: JSON.parse(teacherInfos.data).email |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | input: '' |
| | | }) |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | onTabsChange(event) { |
| | | const value = event.detail.value |
| | | this.setData({ |
| | | isMore: null, |
| | | tabValue: value, |
| | | }) |
| | | if (value == '0') { |
| | | this.higherGet() |
| | | } else if (value == '1') { |
| | | this.vocationalGet() |
| | | } else if (value == '2') { |
| | | this.teacherGet() |
| | | |
| | | |
| | | //获取系统信息,状态栏高度为sysInfo['statusBarHeight']; |
| | | let sysInfo = wx.getSystemInfoSync(); |
| | | let menu = wx.getMenuButtonBoundingClientRect(); //胶囊信息 |
| | | let navBarHeight = (menu.top - sysInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 |
| | | } |
| | | }, |
| | | //高等教育 |
| | | higherGet(keyword) { |
| | | let searchObj = { |
| | | 'Name*': keyword, |
| | | '||author*': keyword, |
| | | '||isbn*': keyword |
| | | } |
| | | app.MG.resource.getItem({ |
| | | path: 'jsek_biblioClassification\\jsek_bCHigherEducation', |
| | | queryType: '*', |
| | | paging: { |
| | | start: '0', |
| | | size: this.data.start * 9 |
| | | }, |
| | | coverSize: { |
| | | width: 260 |
| | | }, |
| | | fields: { |
| | | jsek_link: [], |
| | | subtitle: [], |
| | | content: [], |
| | | fileType: [], |
| | | jsek_resource: [], |
| | | freeFile: [], |
| | | ...searchObj, |
| | | }, |
| | | SysType: 'CmsItem' |
| | | }).then(res => { |
| | | res.datas.forEach(item => { |
| | | item.determine = true |
| | | }) |
| | | this.setData({ |
| | | BarHeight: sysInfo.statusBarHeight, navBarHeight: navBarHeight |
| | | higherList: res.datas, |
| | | higherTotal: res.total |
| | | }) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | console.log(this.data.value); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | }, |
| | | 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}.`); |
| | | }, |
| | | //高等教育 |
| | | higherGet(keyword) { |
| | | let searchObj = { |
| | | 'Name*': keyword, |
| | | '||author*': keyword, |
| | | '||isbn*': keyword |
| | | |
| | | } |
| | | |
| | | app.MG.resource.getItem({ |
| | | path: 'jsek_biblioClassification\\jsek_bCHigherEducation', |
| | | queryType: '*', |
| | | paging: { |
| | | start: '0', |
| | | size: '999' |
| | | }, |
| | | coverSize: { |
| | | width: 260 |
| | | }, |
| | | fields: { |
| | | jsek_link: [], |
| | | content: [], |
| | | subtitle: [], |
| | | fileType: [], |
| | | jsek_resource: [], |
| | | freeFile: [], |
| | | ...searchObj, |
| | | }, |
| | | SysType: 'CmsItem' |
| | | }).then(res => { |
| | | |
| | | res.datas.forEach(item => { |
| | | item.determine = true |
| | | }) |
| | | console.log(res, 789111); |
| | | this.setData({ |
| | | loading: false, //开启骨架屏加载 |
| | | hidden: false, //是否展示内容 |
| | | }) |
| | | if (res.datas.length < 7 && res.datas.length > 0) { |
| | | this.setData({ |
| | | higherList: res.datas, |
| | | higherTotal: res.total |
| | | isMore: false |
| | | }) |
| | | console.log(this.data.higherList, '5555'); |
| | | }) |
| | | |
| | | |
| | | }, |
| | | |
| | | //教师教育 |
| | | vocationalGet(keyword) { |
| | | let searchObj = { |
| | | 'Name*': keyword, |
| | | '||author*': keyword, |
| | | '||isbn*': keyword |
| | | |
| | | } |
| | | app.MG.resource.getItem({ |
| | | path: 'jsek_biblioClassification\\jsek_bCVocationalEducation', |
| | | queryType: '*', |
| | | paging: { |
| | | start: '0', |
| | | size: '999' |
| | | }, |
| | | coverSize: { |
| | | width: 260 |
| | | }, |
| | | fields: { |
| | | jsek_link: [], |
| | | content: [], |
| | | subtitle: [], |
| | | fileType: [], |
| | | jsek_resource: [], |
| | | freeFile: [], |
| | | ...searchObj |
| | | }, |
| | | SysType: 'CmsItem' |
| | | }).then(res => { |
| | | res.datas.forEach(item => { |
| | | item.determine = true |
| | | }) |
| | | this.setData({ |
| | | vocationalList: res.datas, |
| | | vocationalTotal: res.total |
| | | }) |
| | | }) |
| | | wx.stopPullDownRefresh() |
| | | }, |
| | | |
| | | //教师教育 |
| | | vocationalGet(keyword) { |
| | | let searchObj = { |
| | | 'Name*': keyword, |
| | | '||author*': keyword, |
| | | '||isbn*': keyword |
| | | } |
| | | app.MG.resource.getItem({ |
| | | path: 'jsek_biblioClassification\\jsek_bCVocationalEducation', |
| | | queryType: '*', |
| | | paging: { |
| | | start: '0', |
| | | size: this.data.start * 9 |
| | | }, |
| | | coverSize: { |
| | | width: 260 |
| | | }, |
| | | fields: { |
| | | jsek_link: [], |
| | | content: [], |
| | | subtitle: [], |
| | | fileType: [], |
| | | jsek_resource: [], |
| | | freeFile: [], |
| | | ...searchObj |
| | | }, |
| | | SysType: 'CmsItem' |
| | | }).then(res => { |
| | | console.log(res); |
| | | res.datas.forEach(item => { |
| | | item.determine = true |
| | | }) |
| | | }, |
| | | // 职业教育 |
| | | teacherGet(keyword) { |
| | | let searchObj = { |
| | | 'Name*': keyword, |
| | | '||author*': keyword, |
| | | '||isbn*': keyword |
| | | |
| | | this.setData({ |
| | | vocationalList: res.datas, |
| | | vocationalTotal: res.total |
| | | }) |
| | | if (res.datas.length < 7 && this.datas.length > 0) { |
| | | this.setData({ |
| | | isMore: false |
| | | }) |
| | | } |
| | | app.MG.resource.getItem({ |
| | | path: 'jsek_biblioClassification\\jsek_bCTeacherEducation', |
| | | queryType: '*', |
| | | paging: { |
| | | start: '0', |
| | | size: '999' |
| | | }, |
| | | coverSize: { |
| | | width: 260 |
| | | }, |
| | | fields: { |
| | | jsek_link: [], |
| | | content: [], |
| | | subtitle: [], |
| | | fileType: [], |
| | | jsek_resource: [], |
| | | freeFile: [], |
| | | ...searchObj |
| | | }, |
| | | SysType: 'CmsItem' |
| | | }).then(res => { |
| | | res.datas.forEach(item => { |
| | | item.determine = true |
| | | }) |
| | | this.setData({ |
| | | teacherList: res.datas, |
| | | teacherTotal: res.total |
| | | }) |
| | | |
| | | }) |
| | | wx.stopPullDownRefresh() |
| | | }, |
| | | // 职业教育 |
| | | teacherGet(keyword) { |
| | | let searchObj = { |
| | | 'Name*': keyword, |
| | | '||author*': keyword, |
| | | '||isbn*': keyword |
| | | } |
| | | app.MG.resource.getItem({ |
| | | path: 'jsek_biblioClassification\\jsek_bCTeacherEducation', |
| | | queryType: '*', |
| | | paging: { |
| | | start: '0', |
| | | size: this.data.start * 9 |
| | | }, |
| | | coverSize: { |
| | | width: 260 |
| | | }, |
| | | fields: { |
| | | jsek_link: [], |
| | | content: [], |
| | | subtitle: [], |
| | | fileType: [], |
| | | jsek_resource: [], |
| | | freeFile: [], |
| | | bookshelf_freeEpub: [], //epub试读百分比 |
| | | bookshelf_probationPage: [], //pdf试读页数 |
| | | ...searchObj |
| | | }, |
| | | SysType: 'CmsItem' |
| | | }).then(res => { |
| | | res.datas.forEach(item => { |
| | | item.determine = true |
| | | }) |
| | | this.setData({ |
| | | 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) { |
| | | 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 + |
| | | |
| | | |
| | | }, |
| | | 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 |
| | | |
| | | 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, |
| | | }); |
| | | }, |
| | | onSearchSubmit: function (e) { |
| | | const keyword = e.detail.value; |
| | | // 处理搜索逻辑,例如发送搜索请求等 |
| | | console.log('搜索关键词:', keyword); |
| | | this.higherGet(keyword) |
| | | this.vocationalGet(keyword) |
| | | this.teacherGet(keyword) |
| | | }, |
| | | } else { |
| | | Toast({ |
| | | context: this, |
| | | selector: '#t-toast', |
| | | message: '此书不能查看', |
| | | theme: 'warning', |
| | | direction: 'column', |
| | | }); |
| | | } |
| | | }, |
| | | onSearchSubmit: function (e) { |
| | | const keyword = e.detail.value; |
| | | // 处理搜索逻辑,例如发送搜索请求等 |
| | | console.log('搜索关键词:', keyword); |
| | | this.higherGet(keyword) |
| | | 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, |
| | | dialogBox: true |
| | | }) |
| | | // wx.scanCode({ |
| | | // success: res => { |
| | | // console.log(res); |
| | | // } |
| | | // }) |
| | | }, |
| | | // 弹窗取消 |
| | | closeDialog() { |
| | | this.setData({ |
| | | dialogBox: false, |
| | | // input: '' |
| | | }) |
| | | }, |
| | | //提交 |
| | | 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 |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | }) |
| | | }) |