| | |
| | | import { |
| | | loginInfo |
| | | } from '../../../assets/js/login'; |
| | | const app = getApp(); |
| | | Page({ |
| | | |
| | |
| | | userInfo: null, |
| | | path: '*', |
| | | pathList: [], |
| | | |
| | | bookList: [], |
| | | //高级分类 |
| | | iconList: { |
| | |
| | | //一级分类 |
| | | stairList: { |
| | | value: '', |
| | | options: [], |
| | | options: [{ |
| | | value: "", |
| | | label: "一级分类", |
| | | }], |
| | | }, |
| | | //二级分类 |
| | | secondList: { |
| | | value: [], |
| | | options: [], |
| | | }, |
| | | //重点项目 |
| | | majorProjectList: { |
| | | value: [], |
| | | options: [], |
| | | }, |
| | | //新形态教材 |
| | | newTextBook: { |
| | | value: [], |
| | | options: [], |
| | | }, |
| | |
| | | name: '', |
| | | code: '', |
| | | }, |
| | | |
| | | stairCode: '', // 一级分类选中项 |
| | | secondCode: '', // 二级分类选中项 |
| | | sort: '', // 排序 |
| | | sortList: { |
| | | value: "default", |
| | | options: [{ |
| | | value: "default", |
| | | label: "默认排序", |
| | | }, |
| | | { |
| | | value: "name-asc", |
| | | label: "名称正序", |
| | | }, |
| | | { |
| | | value: "name-desc", |
| | | label: "名称倒叙", |
| | | }, |
| | | { |
| | | value: "time-asc", |
| | | label: "出版时间正序", |
| | | }, |
| | | { |
| | | value: "time-desc", |
| | | label: "出版时间倒叙", |
| | | }, |
| | | ], |
| | | }, |
| | | //分页 |
| | | page: 1, |
| | | limit: 10, |
| | |
| | | paperBookCount: 0, //纸质书剩余次数 |
| | | ebookCount: 0, //电子书剩余次数 |
| | | num: 0, |
| | | x: 280, |
| | | y: 300, |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | let that = this; |
| | | const systInfo = wx.getSystemInfoSync(); |
| | | const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息 |
| | | const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 |
| | | this.setData({ |
| | | that.setData({ |
| | | barHeight: systInfo.statusBarHeight, |
| | | navBarHeight: navBarHeight, |
| | | }); |
| | | // 搜索赋值 |
| | | if (options && options.searchValue) { |
| | | this.setData({ |
| | | that.setData({ |
| | | searchValue: options.searchValue, |
| | | }); |
| | | } |
| | | // 高级分类赋值 |
| | | if (options && options.assortCode) { |
| | | this.setData({ |
| | | that.setData({ |
| | | assortCheck: { |
| | | name: options.assorName, |
| | | code: options.assortCode, |
| | |
| | | }, |
| | | }); |
| | | } |
| | | if (this.data.assortCheck.code) { |
| | | if (that.data.assortCheck.code) { |
| | | // 获取一级分类 |
| | | this.getStairList(this.data.assortCheck.code); |
| | | ththatis.getStairList(that.data.assortCheck.code); |
| | | } |
| | | // 一级分类和path赋值 |
| | | if (options && options.assortCode && options.stairCode) { |
| | | this.setData({ |
| | | that.setData({ |
| | | 'stairList.value': options.stairCode, |
| | | stairCode: options.stairCode, |
| | | path: `${options.assortCode}\\${options.stairCode}`, |
| | |
| | | } |
| | | // 二级分类赋值 |
| | | if (options && options.secondCode) { |
| | | this.setData({ |
| | | that.setData({ |
| | | secondCode: options.secondCode, |
| | | pathList: [{ |
| | | Path: options.secondCode, |
| | | Type: '*', |
| | | StoreRefCode: app.config.goodsStore, |
| | | } |
| | | ], |
| | | }], |
| | | }) |
| | | } |
| | | this.getIconTypeList(); |
| | | that.getIconTypeList(); |
| | | |
| | | // 获取重点项目 |
| | | this.getProjectList('bookClassification'); |
| | | //新形态教材 |
| | | this.getProjectList('newFormsTextbooks'); |
| | | if (wx.getStorageSync(app.config.tokenKey)) { |
| | | this.getAlreadyPBookList() |
| | | this.getAlreadyEBookList() |
| | | } |
| | | if (wx.getStorageSync(app.config.userInfoKey)) { |
| | | this.setData({ |
| | | // 检查登录状态 |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | | if (!token) { |
| | | loginInfo(app, (data) => { |
| | | if (data) { |
| | | that.setData({ |
| | | userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey)) |
| | | }) |
| | | that.getAlreadyPBookList() |
| | | that.getAlreadyEBookList() |
| | | // 获取申请次数 |
| | | that.getSelectPaperBookCount() |
| | | that.getSelectBookCount() |
| | | |
| | | } |
| | | }) |
| | | } else { |
| | | that.setData({ |
| | | userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey)) |
| | | }) |
| | | |
| | | } |
| | | if (wx.getStorageSync("paperBookList")) { |
| | | this.setData({ |
| | | paperBookList: wx.getStorageSync("paperBookList"), |
| | | }) |
| | | } |
| | | if (wx.getStorageSync("electronicBookList")) { |
| | | this.setData({ |
| | | electronicBookList: wx.getStorageSync("electronicBookList"), |
| | | }) |
| | | } |
| | | this.setData({ |
| | | num: this.data.paperBookList.length + this.data.electronicBookList.length |
| | | }) |
| | | this.getBookList(false); |
| | | }, |
| | | |
| | | /** |
| | |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | let that = this; |
| | | that.setData({ |
| | | page: 1, |
| | | paperBookList: [], |
| | | electronicBookList: [] |
| | | }) |
| | | that.getAlreadyPBookList() |
| | | that.getAlreadyEBookList() |
| | | // 获取申请次数 |
| | | that.getSelectPaperBookCount() |
| | | that.getSelectBookCount() |
| | | if (wx.getStorageSync("paperBookList") || wx.getStorageSync("electronicBookList")) { |
| | | if (wx.getStorageSync("paperBookList")) { |
| | | that.setData({ |
| | | paperBookList: JSON.parse(wx.getStorageSync("paperBookList")), |
| | | }) |
| | | } |
| | | if (wx.getStorageSync("electronicBookList")) { |
| | | that.setData({ |
| | | electronicBookList: JSON.parse(wx.getStorageSync("electronicBookList")), |
| | | }) |
| | | } |
| | | that.setData({ |
| | | num: Number(that.data.paperBookList.length) + Number(that.data.electronicBookList.length) |
| | | }) |
| | | } |
| | | that.getBookList(false); |
| | | }, |
| | | goBack() { |
| | | wx.navigateBack(); |
| | | }, |
| | | |
| | | // 获取纸质书剩余次数 |
| | | getSelectPaperBookCount() { |
| | | app.MG.app |
| | | .getTicketResult({ |
| | | ticketRefCodeOrGuid: 'paperSampleBookapplyNum', |
| | | roleId: this.data.userInfo.roleId |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | paperBookCount: res.totalCount - res.usedCount |
| | | }) |
| | | }) |
| | | }, |
| | | // 获取电子书剩余次数 |
| | | getSelectBookCount() { |
| | | app.MG.app |
| | | .getTicketResult({ |
| | | ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', |
| | | roleId: this.data.userInfo.roleId |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | ebookCount: res.totalCount - res.usedCount |
| | | }) |
| | | }) |
| | | }, |
| | | //获取高级分类 |
| | | getIconTypeList() { |
| | | let query = { |
| | | path: '*', |
| | | filterList: [ |
| | | { |
| | | value: 'Normal', |
| | | field: 'state' |
| | | } |
| | | ], |
| | | filterList: [{ |
| | | value: 'Normal', |
| | | field: 'state' |
| | | }], |
| | | queryType: '\\', |
| | | searchList: [], |
| | | size: '5', |
| | | start: '0', |
| | | storeRefCode: app.config.goodsStore, |
| | | sort: { type: 'Asc', field: 'LinkOrder' } |
| | | sort: { |
| | | type: 'Asc', |
| | | field: 'LinkOrder' |
| | | } |
| | | } |
| | | app.MG.store.getStoreChannelList(query).then((res) => { |
| | | let list = []; |
| | | if (res.datas.length > 0) ( |
| | | let list = [{ |
| | | value: "", |
| | | label: "总分类", |
| | | }]; |
| | | if (res.datas.length > 0)( |
| | | res.datas.forEach((item) => { |
| | | item.value = item.refCode; |
| | | item.label = item.name; |
| | |
| | | ) |
| | | this.setData({ |
| | | 'iconList.options': list, |
| | | 'iconList.value': this.data.assortCode, |
| | | 'iconList.value': this.data.assortCheck.code, |
| | | }); |
| | | }) |
| | | }, |
| | |
| | | size: '30', |
| | | start: '0', |
| | | storeRefCode: app.config.goodsStore, |
| | | sort: { type: 'Asc', field: 'LinkOrder' }, |
| | | sort: { |
| | | type: 'Asc', |
| | | field: 'LinkOrder' |
| | | }, |
| | | }; |
| | | app.MG.store.getStoreChannelList(query).then(async (res) => { |
| | | let options = []; |
| | | let options = [{ |
| | | value: "", |
| | | label: "一级分类", |
| | | }]; |
| | | if (res.datas.length > 0) { |
| | | for (let index = 0; index < res.datas.length; index++) { |
| | | let item = res.datas[index]; |
| | |
| | | size: '30', |
| | | start: '0', |
| | | storeRefCode: app.config.goodsStore, |
| | | sort: { type: 'Asc', field: 'LinkOrder' }, |
| | | sort: { |
| | | type: 'Asc', |
| | | field: 'LinkOrder' |
| | | }, |
| | | }; |
| | | app.MG.store.getStoreChannelList(query).then((res) => { |
| | | if (res.datas.length > 0) { |
| | |
| | | }) |
| | | }); |
| | | }, |
| | | // 获取重点项目 |
| | | getProjectList(type) { |
| | | const options = []; |
| | | const arr = []; |
| | | let array = []; |
| | | const query = { |
| | | refCodes: [type], |
| | | }; |
| | | app.MG.store.getProductTypeField(query).then((res) => { |
| | | array = JSON.parse(res[0].config).option; |
| | | for (let index = 0; index < array.length; index++) { |
| | | const element = array[index]; |
| | | if (element.child) { |
| | | for (let index = 0; index < element.child.length; index++) { |
| | | const item = element.child[index]; |
| | | arr.push(item); |
| | | } |
| | | } |
| | | } |
| | | if (type == 'bookClassification') { |
| | | for (let index = 0; index < arr.length; index++) { |
| | | const element = arr[index]; |
| | | options.push({ |
| | | value: element.value, |
| | | label: element.name, |
| | | }); |
| | | } |
| | | this.setData({ |
| | | 'majorProjectList.options': options, |
| | | }); |
| | | } else if (type == 'newFormsTextbooks') { |
| | | for (let index = 0; index < arr.length; index++) { |
| | | const element = arr[index]; |
| | | options.push({ |
| | | value: element.value, |
| | | label: element.name, |
| | | }); |
| | | } |
| | | this.setData({ |
| | | 'newTextBook.options': options, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 获取图书列表 |
| | | getBookList(isReachBottom) { |
| | | let that = this; |
| | | this.setData({ |
| | | skeletonLoding: true |
| | | }) |
| | | let sort; |
| | | let pathObj = {}; |
| | | if (that.data.pathList.length) { |
| | |
| | | queryType: '*', |
| | | }; |
| | | } |
| | | if (that.data.sort) { |
| | | if (this.data.sortList.value == "name-asc") { |
| | | sort = { |
| | | Name: that.data.sort, |
| | | BaseType: '', |
| | | Name: "Asc", |
| | | BaseType: "", |
| | | }; |
| | | } else { |
| | | } else if (this.data.sortList.value == "name-desc") { |
| | | sort = { |
| | | type: 'Desc', |
| | | field: 'ViewCount', |
| | | Name: "Desc", |
| | | BaseType: "", |
| | | }; |
| | | } else if (this.data.sortList.value == "time-asc") { |
| | | sort = { |
| | | PublicationDate: "Asc", |
| | | BaseType: "DateTime", |
| | | }; |
| | | } else if (this.data.sortList.value == "time-desc") { |
| | | sort = { |
| | | PublicationDate: "Desc", |
| | | BaseType: "DateTime", |
| | | }; |
| | | } else if (this.data.sortList.value == "default") { |
| | | sort = { |
| | | field: "order", |
| | | type: "Desc", |
| | | }; |
| | | } |
| | | // if (that.data.sort) { |
| | | // sort = { |
| | | // Name: that.data.sort, |
| | | // BaseType: '', |
| | | // }; |
| | | // } else { |
| | | // sort = { |
| | | // type: 'Desc', |
| | | // field: 'ViewCount', |
| | | // }; |
| | | // } |
| | | // 搜索 |
| | | let searchObj = {}; |
| | | if (that.data.searchValue) { |
| | |
| | | } |
| | | const query = { |
| | | ...pathObj, |
| | | filterList: [ |
| | | { |
| | | value: 'Normal', |
| | | field: 'state', |
| | | }, |
| | | ], |
| | | filterList: [{ |
| | | value: 'Normal', |
| | | field: 'state', |
| | | }, ], |
| | | sort, |
| | | paging: { |
| | | start: that.data.page * that.data.limit - that.data.limit, |
| | |
| | | author: [], |
| | | isbn: [], |
| | | publicationDate: [], |
| | | pdf: [], |
| | | protectedEpub: [], |
| | | isApplyBook: [], |
| | | 'isApplyBook>': ['1'], |
| | | ...searchObj, |
| | |
| | | } |
| | | if (that.data.alreadyPaperBookList.length > 0) { |
| | | that.data.alreadyPaperBookList.forEach((pBook) => { |
| | | pBook.content.forEach((pBookItem) => { |
| | | if (pBookItem.id === item.id && pBook.state == 'WaitAudit') { |
| | | item.paperDisabled = true |
| | | item.paperChecked = true |
| | | } |
| | | if (pBookItem.id === item.id && pBook.state == 'Normal') { |
| | | item.paperDisabled = false |
| | | } |
| | | }) |
| | | if (pBook.content.length > 0) { |
| | | pBook.content.forEach((pBookItem) => { |
| | | if (pBookItem.id === item.id && pBook.state == 'WaitAudit') { |
| | | item.paperDisabled = true |
| | | item.paperChecked = true |
| | | } |
| | | if (pBookItem.id === item.id && pBook.state == 'Normal') { |
| | | item.paperDisabled = false |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | if (that.data.alreadyElectronicBookList.length > 0) { |
| | | that.data.alreadyElectronicBookList.forEach((eBook) => { |
| | | eBook.content.forEach((eBookItem) => { |
| | | if (eBookItem.id === item.id && !eBook.isExpiry && eBook.state != 'Reject') { |
| | | item.electronDisabled = true |
| | | item.electronChecked = true |
| | | } |
| | | }) |
| | | if (eBook.content.length > 0) { |
| | | eBook.content.forEach((eBookItem) => { |
| | | if (eBookItem.id === item.id && !eBook.isExpiry && eBook.state != 'Reject') { |
| | | item.electronDisabled = true |
| | | item.electronChecked = true |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | if (that.data.paperBookList.length > 0) { |
| | |
| | | bottomLoading: false, |
| | | isMoreData: list.length > 0 ? false : true, |
| | | skeletonLoding: false, |
| | | loading: false |
| | | }) |
| | | } else { |
| | | that.setData({ |
| | | skeletonLoding: false, |
| | | loading: false |
| | | }) |
| | | } |
| | | } catch (error) { |
| | |
| | | //高级分类选择 |
| | | onChangeIcon(e) { |
| | | this.setData({ |
| | | assortCheck: { |
| | | code: e.detail.value, |
| | | }, |
| | | bookList: [], |
| | | 'assortCheck.code': e.detail.value, |
| | | stairCode: '', |
| | | secondCode: '', |
| | | path: `${e.detail.value}`, |
| | |
| | | }, |
| | | // 一级分类切换 |
| | | onChangeStair(e) { |
| | | const path = e.detail.value.length |
| | | ? `${this.data.assortCheck.code}\\${e.detail.value}` |
| | | : this.data.assortCheck.code; |
| | | const path = e.detail.value.length ? |
| | | `${this.data.assortCheck.code}\\${e.detail.value}` : |
| | | this.data.assortCheck.code; |
| | | this.setData({ |
| | | bookList: [], |
| | | pathList: [], |
| | | stairCode: e.detail.value, |
| | | secondCode: '', |
| | | path: path, |
| | | 'stairList.value': e.detail.value, |
| | | 'secondList.value': "" |
| | | }); |
| | | this.getBookList(false); |
| | | this.getSecondList(path); |
| | |
| | | onConfirmSecond() { |
| | | this.getBookList(false); |
| | | }, |
| | | // 重点项目改变 |
| | | changeMajorProject(e) { |
| | | onResetSecond() { |
| | | this.setData({ |
| | | 'majorProjectList.value': e.detail.value, |
| | | 'secondList.value': [], |
| | | }); |
| | | this.getBookList(false); |
| | | }, |
| | | // 重点项目重置 |
| | | resetMajorProject() { |
| | | |
| | | // 排序切换 |
| | | onSortChange(e) { |
| | | this.setData({ |
| | | 'majorProjectList.value': [], |
| | | backTop: "#assort-title", |
| | | "sortList.value": e.detail.value, |
| | | }); |
| | | this.getBookList(false); |
| | | }, |
| | | changeNewText(e) { |
| | | this.setData({ |
| | | 'newTextBook.value': e.detail.value, |
| | | }); |
| | | this.getBookList(false); |
| | | }, |
| | | resetNewText() { |
| | | this.setData({ |
| | | 'newTextBook.value': [], |
| | | }); |
| | | this.getBookList(false); |
| | | }, |
| | | // 排序按钮 |
| | | sortClick() { |
| | | if (!this.data.sort.length) { |
| | | this.setData({ |
| | | sort: 'Desc', |
| | | }); |
| | | } else if (this.data.sort == 'Desc') { |
| | | this.setData({ |
| | | sort: 'Asc', |
| | | }); |
| | | } else if (this.data.sort == 'Asc') { |
| | | this.setData({ |
| | | sort: '', |
| | | }); |
| | | } |
| | | |
| | | let path; |
| | | if (this.data.secondCode) { |
| | | path = this.data.secondCode; |
| | | } else if (this.data.stairCode) { |
| | | path = `${this.data.assortCheck.code |
| | | }\\${this.data.stairCode}`; |
| | | path = `${this.data.assortCheck.code}\\${this.data.stairCode}`; |
| | | } else { |
| | | path = this.data.assortCheck.code; |
| | | } |
| | | this.setData({ |
| | | path: path, |
| | | }); |
| | | this.getBookList(false); |
| | | this.getBookList(path); |
| | | }, |
| | | // 搜索图书 |
| | | searchBook(e) { |
| | |
| | | }, |
| | | // 跳转图书详情 |
| | | goDetail(e) { |
| | | const { book } = e.currentTarget.dataset; |
| | | const { |
| | | book |
| | | } = e.currentTarget.dataset; |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${book.id}&name=${book.name}`, |
| | | }); |
| | |
| | | this.setData({ |
| | | alreadyElectronicBookList: list, |
| | | }); |
| | | this.getBookList(false); |
| | | if (wx.getStorageSync(app.config.tokenKey)) { |
| | | this.getBookList(false); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | |
| | | //纸质样书 |
| | | onChangePaper(e) { |
| | | const item = e.currentTarget.dataset.book; |
| | | const index = this.data.bookList.findIndex(citem => citem.id == item.id) |
| | | let role = this.data.userInfo != null ? this.data.userInfo.role : null |
| | | if (role) { |
| | | if (item.paperDisabled) { |
| | | wx.showToast({ |
| | | title: "该样书已申请", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | if (role && role == 'Teacher') { |
| | | // 是教师 |
| | | if (e.detail.checked) { |
| | | // 点击选中 |
| | | if (this.data.paperBookCount == 0) { |
| | | wx.showToast({ |
| | | title: "您的纸质样书申请次数已用尽,若要继续,请联系管理员!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | return false; |
| | | } |
| | | if (this.data.paperBookList.length >= 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | return false; |
| | | } |
| | | this.addBookFun(item, "pBook") |
| | | this.setData({ |
| | | ["bookList[" + index + "].paperChecked"]: e.detail.checked |
| | | }) |
| | | return |
| | | } |
| | | if (item.paperChecked) { |
| | | } else { |
| | | // 取消选中 |
| | | let pList = this.data.paperBookList; |
| | | if (pList.length > 0) { |
| | | pList.forEach((obj, index) => { |
| | |
| | | } |
| | | }) |
| | | } |
| | | item.paperChecked = false; |
| | | if (this.data.bookList.length > 0) { |
| | | this.data.bookList.forEach(i => { |
| | | if (i.id == item.id) { |
| | | i.paperChecked = false; |
| | | } |
| | | }) |
| | | } |
| | | this.setData({ |
| | | paperBookList: pList, |
| | | num: this.data.num - 1, |
| | | ["bookList[" + index + "].paperChecked"]: e.detail.checked |
| | | }) |
| | | wx.setStorageSync("paperBookList", JSON.stringify(pList)); |
| | | wx.showToast({ |
| | | title: "已从样书申请单移除", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | paperBookList: pList, |
| | | num: pList.length + this.data.electronicBookList.length |
| | | }) |
| | | wx.setStorageSync("paperBookList", JSON.stringify(pList)); |
| | | return |
| | | } |
| | | if (role == 'Teacher') { |
| | | this.getSelectPaperBookCount(item) |
| | | } else { |
| | | item.paperChecked = false |
| | | wx.showModal({ |
| | | title: '尊敬的用户,您好!', //提示的标题 |
| | | content: '请先进行教师认证?', //提示的内容 |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/teacherCertification/index", |
| | | }); |
| | | } else if (res.cancel) { |
| | | item.paperChecked = false |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | item.paperChecked = false |
| | | wx.showModal({ |
| | | title: '尊敬的用户,您好!', //提示的标题 |
| | | content: '请先进行教师认证?', //提示的内容 |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/teacherCertification/index", |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | getSelectPaperBookCount(item) { |
| | | app.MG.app |
| | | .getTicketResult({ |
| | | ticketRefCodeOrGuid: 'paperSampleBookapplyNum', |
| | | roleId: this.data.userInfo.roleId |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | paperBookCount: res.totalCount - res.usedCount |
| | | }) |
| | | if (!item.paperDisabled) { |
| | | this.getAlreadyBookList(item, 'pBook') |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | //选择电子样书 |
| | | onChangeElectron(e) { |
| | | async onChangeElectron(e) { |
| | | const item = e.currentTarget.dataset.book; |
| | | let role = this.data.userInfo != null ? this.data.userInfo.role : null; |
| | | if (role) { |
| | | if (item.electronDisabled) { |
| | | wx.showToast({ |
| | | title: "该样书已申请", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return |
| | | } |
| | | if (item.electronChecked) { |
| | | let eList = this.data.electronicBookList; |
| | | if (eList.length > 0) { |
| | | eList.forEach((obj, index) => { |
| | | if (obj.id == item.id) { |
| | | eList.splice(index, 1); |
| | | } |
| | | }) |
| | | } |
| | | if (this.data.bookList.length > 0) { |
| | | this.data.bookList.forEach(i => { |
| | | if (i.id == item.id) { |
| | | i.electronChecked = false; |
| | | } |
| | | }) |
| | | } |
| | | item.electronChecked = false; |
| | | wx.showToast({ |
| | | title: "已从样书申请单移除", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | electronicBookList: eList, |
| | | num: eList.length + this.data.paperBookList.length |
| | | }) |
| | | wx.setStorageSync("electronicBookList", eList); |
| | | return |
| | | } |
| | | if (role == 'Teacher') { |
| | | //有无子商品,子商品有无电子书文件 |
| | | const index = this.data.bookList.findIndex(citem => citem.id == item.id) |
| | | let role = this.data.userInfo != null ? this.data.userInfo.role : null |
| | | if (role && role == 'Teacher') { |
| | | // 是教师 |
| | | if (e.detail.checked) { |
| | | // 点击选中 |
| | | //商品有无电子书 |
| | | const obj = { |
| | | path: '*', |
| | | queryType: 'SubProduct', |
| | |
| | | }, |
| | | paging: { |
| | | start: 0, |
| | | size: 6 |
| | | size: 1 |
| | | }, |
| | | mainProductId: item.id, |
| | | fields: { |
| | |
| | | bookshelf_protectedEpub: [], |
| | | } |
| | | } |
| | | app.MG.store.getProductList(obj).then((res) => { |
| | | if (res.datas.length > 0) { |
| | | if (res.datas[0].bookshelf_pdf || res.datas[0].bookshelf_protectedEpub) { |
| | | this.getSelectBookCount(item) |
| | | } else { |
| | | wx.showToast({ |
| | | title: "暂无电子书文件,请联系管理员!", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } else { |
| | | this.getSelectBookCount(item) |
| | | const res = await app.MG.store.getProductList(obj) |
| | | if (res.datas.length > 0) { |
| | | if (!res.datas[0].bookshelf_pdf && !res.datas[0].bookshelf_protectedEpub) { |
| | | wx.showToast({ |
| | | title: "暂无电子书文件,请联系管理员!", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return false; |
| | | } |
| | | } else { |
| | | if (!item.pdf && !item.protectedEpub) { |
| | | wx.showToast({ |
| | | title: "暂无电子书文件,请联系管理员!", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return false; |
| | | } |
| | | } |
| | | if (this.data.ebookCount == 0) { |
| | | wx.showToast({ |
| | | title: "您的电子样书申请次数已用尽,若要继续,请联系管理员!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | return false; |
| | | } |
| | | if (this.data.electronicBookList.length >= 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | return false; |
| | | } |
| | | this.addBookFun(item, "eBook") |
| | | this.setData({ |
| | | ["bookList[" + index + "].electronChecked"]: e.detail.checked |
| | | }) |
| | | } else { |
| | | item.electronChecked = false |
| | | wx.showModal({ |
| | | title: '尊敬的用户,您好!', //提示的标题 |
| | | content: '请先进行教师认证?', //提示的内容 |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/teacherCertification/index", |
| | | }); |
| | | } else if (res.cancel) { |
| | | item.electronChecked = false |
| | | // 取消选中 |
| | | let eList = this.data.electronicBookList; |
| | | if (eList.length > 0) { |
| | | eList.forEach((obj, index) => { |
| | | if (obj.id == item.id) { |
| | | eList.splice(index, 1); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | this.setData({ |
| | | electronicBookList: eList, |
| | | num: this.data.num - 1, |
| | | ["bookList[" + index + "].electronChecked"]: e.detail.checked |
| | | }) |
| | | wx.setStorageSync("electronicBookList", JSON.stringify(eList)); |
| | | wx.showToast({ |
| | | title: "已从样书申请单移除", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } else { |
| | | item.electronChecked = false |
| | | } |
| | | }, |
| | | getSelectBookCount(item) { |
| | | app.MG.app |
| | | .getTicketResult({ |
| | | ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', |
| | | roleId: this.data.userInfo.roleId |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | ebookCount: res.totalCount - res.usedCount |
| | | }) |
| | | if (!item.electronDisabled) { |
| | | this.getAlreadyBookList(item, 'eBook') |
| | | wx.showModal({ |
| | | title: '尊敬的用户,您好!', //提示的标题 |
| | | content: '请先进行教师认证?', //提示的内容 |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/teacherCertification/index", |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | getAlreadyBookList(item, type) { |
| | | // 添加样书 |
| | | addBookFun(item, type) { |
| | | let itemAttr = null |
| | | let isHas = false |
| | | const eList = this.data.electronicBookList; |
| | | const pList = this.data.paperBookList; |
| | | itemAttr = { |
| | | id: item.id, |
| | | title: item.name || '-', |
| | |
| | | isbn: item.isbn || '-', |
| | | publicationDate: item.publicationDate |
| | | } |
| | | |
| | | if (type == 'eBook') { |
| | | if (this.data.ebookCount > 0) { |
| | | const eBookData = this.data.electronicBookList |
| | | if (eBookData.length == 2) { |
| | | item.electronChecked = false |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return false |
| | | } |
| | | if (eBookData.length > 0) { |
| | | for (let i = 0; i < eBookData.length; i++) { |
| | | if (eBookData[i].id == item.id) { |
| | | isHas = true |
| | | } |
| | | } |
| | | if (!isHas) { |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | electronicBookList: [...this.data.electronicBookList, ...[itemAttr]], |
| | | num: this.data.electronicBookList.length + this.data.paperBookList.length |
| | | }) |
| | | wx.setStorageSync("electronicBookList", this.data.electronicBookList); |
| | | } else { |
| | | let list = this.data.electronicBookList; |
| | | list.forEach((obj, index) => { |
| | | if (obj.id == item.id) { |
| | | list.splice(index, 1); |
| | | } |
| | | }) |
| | | item.electronChecked = false |
| | | wx.showToast({ |
| | | title: "已从样书申请单移除", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | electronicBookList: list, |
| | | num: list.length + this.data.paperBookList.length |
| | | }) |
| | | wx.setStorageSync("electronicBookList", list); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | electronicBookList: [itemAttr], |
| | | num: 1 + this.data.paperBookList.length |
| | | }) |
| | | wx.setStorageSync("electronicBookList", [itemAttr]); |
| | | } |
| | | } else { |
| | | item.electronChecked = false |
| | | wx.showToast({ |
| | | title: "您的电子样书申请次数已用尽,若要继续,请联系管理员!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | eList.push(itemAttr) |
| | | this.setData({ |
| | | electronicBookList: eList, |
| | | }) |
| | | wx.setStorageSync("electronicBookList", JSON.stringify(eList)); |
| | | } else { |
| | | if (this.data.paperBookCount > 0) { |
| | | const pBookData = this.data.paperBookList |
| | | if (pBookData.length == 2) { |
| | | item.paperChecked = false |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return false |
| | | } |
| | | if (pBookData.length > 0) { |
| | | for (let i = 0; i < pBookData.length; i++) { |
| | | if (pBookData[i].id == item.id) { |
| | | isHas = true |
| | | } |
| | | } |
| | | if (!isHas) { |
| | | item.paperChecked = true |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | paperBookList: [...this.data.paperBookList, ...[itemAttr]], |
| | | num: this.data.paperBookList.lenght + this.data.electronicBookList.length |
| | | }) |
| | | wx.setStorageSync("paperBookList", this.data.paperBookList); |
| | | } else { |
| | | let list = this.data.paperBookList; |
| | | list.forEach((obj, index) => { |
| | | if (obj.id == item.id) { |
| | | list.splice(index, 1); |
| | | } |
| | | }) |
| | | item.paperChecked = false |
| | | wx.showToast({ |
| | | title: "已从样书申请单移除", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | paperChecked: list, |
| | | num: list.length + this.data.electronicBookList.length |
| | | }) |
| | | wx.setStorageSync("paperBookList", list); |
| | | } |
| | | } else { |
| | | item.paperChecked = true; |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | paperBookList: [itemAttr], |
| | | num: 1 + this.data.electronicBookList.length |
| | | }) |
| | | wx.setStorageSync("paperBookList", [itemAttr]); |
| | | } |
| | | } else { |
| | | item.paperChecked = false |
| | | wx.showToast({ |
| | | title: "您的纸质样书申请次数已用尽,若要继续,请联系管理员!", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | pList.push(itemAttr) |
| | | this.setData({ |
| | | paperBookList: pList, |
| | | }) |
| | | wx.setStorageSync("paperBookList", JSON.stringify(pList)); |
| | | } |
| | | this.setData({ |
| | | num: this.data.num + 1 |
| | | }) |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | }, |
| | | //去样书申请单 |
| | | goApply() { |
| | |
| | | url: "/packageDomain/pages/sampleBookList/applicationForm/index", |
| | | }); |
| | | }, |
| | | |
| | | // 监听滚动距离 |
| | | onPageScroll(e) { |
| | | if (e && e.scrollTop >= 1000) { |
| | | this.setData({ |
| | | isBackTop: true |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | isBackTop: false |
| | | }) |
| | | } |
| | | }, |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |