From 6a7e1f5b8a08728860140652d442209f810d58e1 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期一, 01 四月 2024 16:12:21 +0800 Subject: [PATCH] 问题修改 --- packageBookService/pages/components/webView/index.wxml | 7 packageDomain/pages/teacherCertification/index.wxss | 11 + packageDomain/pages/teacherCertification/index.wxml | 9 packageDomain/pages/teacherCertification/index.json | 1 packageBookService/pages/bookServices/detail/index.js | 417 ++++++++++++++++++++++----------------------- packageDomain/pages/teacherCertification/index.js | 13 + pages/personalCenter/index.js | 11 + packageBookService/pages/components/webView/index.js | 18 + packageBookService/pages/components/webView/index.wxss | 5 packageBookService/pages/components/webView/index.json | 4 10 files changed, 273 insertions(+), 223 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js index dfc5171..6d7e767 100644 --- a/packageBookService/pages/bookServices/detail/index.js +++ b/packageBookService/pages/bookServices/detail/index.js @@ -173,11 +173,16 @@ this.getShoppingCartProductGet() this.getApplyInfo(options.id) this.getMockData() + this.getAlreadyPBookList() + this.getAlreadyEBookList() } if (wx.getStorageSync(app.config.userInfoKey)) { this.setData({ userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey)) }) + // 鑾峰彇鐢宠娆℃暟 + this.getSelectPaperBookCount() + this.getSelectBookCount() } }, @@ -1519,23 +1524,148 @@ }, //鏍蜂功鐢宠 + //鑾峰彇宸茬敵璇风焊璐ㄦ牱涔� + getAlreadyPBookList() { + const data = { + start: 0, + size: 9999, + topicIdOrRefCode: 'applyEntityBook', + appRefCode: app.config.appRefCode, + sort: { + type: 'Desc', + field: 'CreateDate' + } + } + app.MG.ugc.getTopicMessageList(data).then((res) => { + let list = []; + res.datas.map((item) => { + if (item.content) { + item.content = JSON.parse(item.content) + } + list.push(item) + }) + this.setData({ + alreadyPaperBookList: list, + }); + }) + }, + //鑾峰彇宸茬敵璇风數瀛愭牱涔� + getAlreadyEBookList() { + const data = { + start: 0, + size: 9999, + topicIdOrRefCode: 'applyBook', + appRefCode: app.config.appRefCode, + sort: { + type: 'Desc', + field: 'CreateDate' + } + } + app.MG.ugc.getTopicMessageList(data).then((res) => { + let list = [] + if (res.datas.length > 0) { + res.datas.map((item) => { + if (item.feedBack) { + item.feedBack = JSON.parse(item.feedBack) + if (item.feedBack.endDate) { + let times = new Date(item.feedBack.endDate + ' 23:59:59').getTime() + let currentDate = new Date().getTime() + if (times < currentDate) { + item.isExpiry = true + } + } + } + if (item.content) { + item.content = JSON.parse(item.content) + } + if (item.state != 'Reject') { + list.push(item) + } + }) + this.setData({ + alreadyElectronicBookList: list, + }); + } + }) + }, + + //鑾峰彇褰撳墠宸茬敵璇锋鏁帮紙绾歌川锛� + 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 + }) + }) + }, + //鐢宠鐢靛瓙鏍蜂功 appplyElectronicBook() { console.log(this.data.bookDetail) if (this.data.bookDetail.isApplyBook == 2 || this.data.bookDetail.isApplyBook == 4) { - let role = this.data.userInfo != null ? this.data.userInfo.role : null if (role) { if (role == 'Teacher') { - if (this.data.noFile) { - this.getSelectBookCount() - } else { + if (!this.data.noFile) { wx.showToast({ title: "鏆傛棤鐢靛瓙涔︽枃浠�,璇疯仈绯荤鐞嗗憳!", icon: 'none', duration: 1000, }) + return } + 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; + } + let isHas = this.data.electronicBookList.find((eitem) => eitem.id == this.data.bookDetail.id) + if (isHas) { + wx.showToast({ + title: "璇ヤ功宸插湪娓呭崟鍒楄〃涓�", + icon: "none", + duration: 1000, + }) + return false; + } + let isApply = this.data.alreadyElectronicBookList.find((eitem) => eitem.id == this.data.bookDetail.id) + if (isApply) { + wx.showToast({ + title: "璇ヤ功宸茬敵璇凤紒", + icon: "none", + duration: 1000, + }) + return false; + } + this.addBookFun(this.data.bookDetail, "eBook") } else { wx.showModal({ title: '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', //鎻愮ず鐨勬爣棰� @@ -1564,7 +1694,42 @@ let role = this.data.userInfo != null ? this.data.userInfo.role : null if (role) { if (role == 'Teacher') { - this.getSelectPaperBookCount() + // 鐐瑰嚮閫変腑 + 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; + } + let isHas = this.data.paperBookList.find((pitem) => pitem.id == this.data.bookDetail.id) + if (isHas) { + wx.showToast({ + title: "璇ヤ功宸插湪娓呭崟鍒楄〃涓�", + icon: "none", + duration: 1000, + }) + return false; + } + let isApply = this.data.alreadyPaperBookList.find((pitem) => pitem.id == this.data.bookDetail.id) + if (isApply) { + wx.showToast({ + title: "璇ヤ功宸茬敵璇凤紒", + icon: "none", + duration: 1000, + }) + return false; + } + this.addBookFun(this.data.bookDetail, "pBook") } else { wx.showModal({ title: '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', //鎻愮ず鐨勬爣棰� @@ -1587,216 +1752,46 @@ }) } }, - //鑾峰彇褰撳墠宸茬敵璇锋鏁帮紙绾歌川锛� - getSelectPaperBookCount() { - app.MG.app - .getTicketResult({ - ticketRefCodeOrGuid: 'paperSampleBookapplyNum', - roleId: this.data.userInfo.roleId - }) - .then((res) => { - this.setData({ - paperBookCount: res.totalCount - res.usedCount - }) - this.getAlreadyBookList(this.data.bookDetail, 'pBook') - }) - }, - //鑾峰彇褰撳墠宸茬敵璇锋鏁帮紙鐢靛瓙锛� - getSelectBookCount() { - app.MG.app - .getTicketResult({ - ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', - roleId: this.data.userInfo.roleId - }) - .then((res) => { - this.setData({ - ebookCount: res.totalCount - res.usedCount - }) - this.getAlreadyBookList(this.data.bookDetail, 'eBook') - }) - }, - //鑾峰彇宸茬敵璇风殑鏍蜂功鍒楄〃 - getAlreadyBookList(item, type) { - let topicIdOrRefCode = null + // 娣诲姞鏍蜂功 + addBookFun(item, type) { + let itemAttr = null + const eList = this.data.electronicBookList; + const pList = this.data.paperBookList; + itemAttr = { + id: item.id, + title: item.name || '-', + icon: item.icon, + checked: false, + defaultSaleMethodId: item.defaultSaleMethodId, + md5: item.datas.Icon, + author: item.author || '-', + price: item.price || '-', + isbn: item.isbn || '-', + publicationDate: item.publicationDate + } if (type == 'eBook') { - topicIdOrRefCode = 'applyBook' - } else { - topicIdOrRefCode = 'applyEntityBook' - } - const data = { - start: 0, - size: 9999, - topicIdOrRefCode, - appRefCode: app.config.appRefCode, - sort: { - type: 'Desc', - field: 'CreateDate' - } - } - app.MG.ugc.getTopicMessageList(data).then((res) => { - let itemAttr = null - let isHas = false - itemAttr = { - id: item.id, - title: item.name || '--', - icon: item.icon, - checked: false, - defaultSaleMethodId: item.defaultSaleMethodId, - md5: item.datas.Icon, - author: item.author || '--', - price: item.price || '--', - isbn: item.isbn || '--', - publicationDate: item.publicationDate - } - res.datas.map((item) => { - if (item.feedBack) { - item.feedBack = JSON.parse(item.feedBack) - if (item.feedBack.endDate) { - const currentDate = new Date() - let times = new Date(item.feedBack.endDate + ' 23:59:59').getTime() - if (times < currentDate.getTime()) { - item.isExpiry = true - } - } - } - if (item.content) { - item.content = JSON.parse(item.content) - item.content.map((e) => (item.productId = e.id)) - } + eList.push(itemAttr) + this.setData({ + electronicBookList: eList, }) - let objVal = null - if (type != 'eBook') { - objVal = res.datas.find( - (i) => i.productId == item.id && i.state != 'Reject' && i.state == 'WaitAudit' - ) - } else { - objVal = res.datas.find((i) => i.productId == item.id && i.state != 'Reject') - } - if (objVal && !objVal.isExpiry && type == 'eBook') { - wx.showToast({ - title: "鎮ㄥ凡鐢宠璇ユ牱涔�", - icon: 'none', - duration: 1000, - }) - } else if (objVal && type != 'eBook') { - wx.showToast({ - title: "鎮ㄥ凡鐢宠璇ユ牱涔�", - icon: 'none', - duration: 1000, - }) - } else { - if (type == 'eBook') { - if (this.data.ebookCount > 0) { - const eBookData = this.data.electronicBookList - if (eBookData.length == 2) { - 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 { - wx.showToast({ - title: "璇ヤ功宸插湪娓呭崟鍒楄〃涓�", - icon: "none", - duration: 1000, - }) - } - } else { - wx.showToast({ - title: "娣诲姞鎴愬姛锛屽湪鏍蜂功鐢宠鍗曠瓑鎮ㄥ摝~", - icon: "none", - duration: 1000, - }) - this.setData({ - electronicBookList: [itemAttr], - num: 1 + this.data.paperBookList.length - }) - wx.setStorageSync("electronicBookList", [itemAttr]); - } - } else { - wx.showToast({ - title: "鎮ㄧ殑鐢靛瓙鏍蜂功鐢宠娆℃暟宸茬敤灏斤紝鑻ヨ缁х画锛岃鑱旂郴绠$悊鍛橈紒", - icon: "none", - duration: 1000, - }) - } - } else { - if (this.data.paperBookCount > 0) { - const pBookData = this.data.paperBookList - if (pBookData.length == 2) { - 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) { - 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 { - wx.showToast({ - title: "璇ヤ功宸插湪娓呭崟鍒楄〃涓�", - icon: "none", - duration: 1000, - }) - } - } else { - wx.showToast({ - title: "娣诲姞鎴愬姛锛屽湪鏍蜂功鐢宠鍗曠瓑鎮ㄥ摝~", - icon: 'none', - duration: 1000, - }) - this.setData({ - paperBookList: [itemAttr], - num: 1 + this.data.electronicBookList.length - }) - wx.setStorageSync("paperBookList", [itemAttr]); - } - } else { - wx.showToast({ - title: "鎮ㄧ殑绾歌川鏍蜂功鐢宠娆℃暟宸茬敤灏斤紝鑻ヨ缁х画锛岃鑱旂郴绠$悊鍛橈紒", - icon: 'none', - duration: 1000, - }) - } - } - } + wx.setStorageSync("electronicBookList", eList); + } else { + pList.push(itemAttr) + this.setData({ + paperBookList: pList, + }) + wx.setStorageSync("paperBookList", pList); + } + this.setData({ + num: this.data.num + 1 + }) + wx.showToast({ + title: "娣诲姞鎴愬姛锛屽湪鏍蜂功鐢宠鍗曠瓑鎮ㄥ摝~", + icon: "none", + duration: 1000, }) }, + //鍘绘牱涔︾敵璇峰崟 goApply() { wx.navigateTo({ diff --git a/packageBookService/pages/components/webView/index.js b/packageBookService/pages/components/webView/index.js index 87254fe..797d971 100644 --- a/packageBookService/pages/components/webView/index.js +++ b/packageBookService/pages/components/webView/index.js @@ -10,7 +10,8 @@ link: false, epubObj: null, currentPage: '', - pdfList: [] + pdfList: [], + skeletonLoding: true, }, /** @@ -28,8 +29,10 @@ src: '' }) if (options) { + console.log(options) wx.setNavigationBarTitle({ title: options.fileName, + skeletonLoding: true }) this.getProgress(options) } @@ -72,7 +75,8 @@ this.data.currentPage + "&freeEpubPage=" + data.freePage } this.setData({ - src: url + src: url, + skeletonLoding: false, }) } else { this.setData({ @@ -81,15 +85,19 @@ app.MG.file.getPdfInfo({ md5: data.md5 }).then((res) => { - let pageCount = data.bookBuy ? res.totalPages : data.freePage - if (res && pageCount) { + let pageCount = data.bookBuy ? res.totalPages : Number(data.freePage) + + if (pageCount) { let list = []; + for (let i = 0; i < pageCount; i++) { const src = app.config.requestCtx + '/file/GetPdfPageImage?md5=' + data.md5 + '&index=' + (i + 1) + '&dpi=300' list.push(src) } + console.log(list) this.setData({ - pdfList: list + pdfList: list, + skeletonLoding: false, }) } diff --git a/packageBookService/pages/components/webView/index.json b/packageBookService/pages/components/webView/index.json index bac3413..18f244f 100644 --- a/packageBookService/pages/components/webView/index.json +++ b/packageBookService/pages/components/webView/index.json @@ -1,4 +1,6 @@ { "navigationBarTitleText": "浜笀E璇�", - "usingComponents": {} + "usingComponents": { + "t-loading": "tdesign-miniprogram/loading/loading" + } } \ No newline at end of file diff --git a/packageBookService/pages/components/webView/index.wxml b/packageBookService/pages/components/webView/index.wxml index e8f83a3..dbc0a99 100644 --- a/packageBookService/pages/components/webView/index.wxml +++ b/packageBookService/pages/components/webView/index.wxml @@ -1,9 +1,12 @@ <!--packageBookService/pages/components/webView/index.wxml--> <view class="page-body"> - <view wx:if="{{epubObj.fileType == 'pdf'}}" class="pdfBox"> + <view class="body-loading" wx:if="{{skeletonLoding}}"> + <t-loading theme="circular" size="40rpx" class="wrapper" /> + </view> + <view wx:if="{{epubObj.fileType == 'pdf' && !skeletonLoding}}" class="pdfBox"> <view wx:for="{{pdfList}}" wx:key="index" wx:for-item="item" wx:for-index="index" class="pdfItem"> <image src="{{item}}" alt="" mode="widthFix"></image> </view> </view> - <web-view bind:message="drawBack" binderror="onError" bindload="onLoadWeb" src="{{src}}" id="webView" wx:else></web-view> + <web-view bind:message="drawBack" binderror="onError" bindload="onLoadWeb" src="{{src}}" id="webView" wx:if="{{epubObj.fileType !== 'pdf' && !skeletonLoding}}"></web-view> </view> \ No newline at end of file diff --git a/packageBookService/pages/components/webView/index.wxss b/packageBookService/pages/components/webView/index.wxss index 3589438..19586d0 100644 --- a/packageBookService/pages/components/webView/index.wxss +++ b/packageBookService/pages/components/webView/index.wxss @@ -13,4 +13,9 @@ .pdfItem { text-align: center; +} + +.body-loading { + padding: 200rpx 0; + text-align: center; } \ No newline at end of file diff --git a/packageDomain/pages/teacherCertification/index.js b/packageDomain/pages/teacherCertification/index.js index 9ed9576..4a146d5 100644 --- a/packageDomain/pages/teacherCertification/index.js +++ b/packageDomain/pages/teacherCertification/index.js @@ -45,6 +45,7 @@ editState: true, reasonTxt: "", reasonTxtShow: false, + skeletonLoding: true, }, /** @@ -99,7 +100,8 @@ if (res) { this.getType() this.setData({ - userId: res.userId + userId: res.userId, + skeletonLoding: true, }) let nickNameData = res.infoList.find((item) => item.type == 'nickName') let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher') @@ -185,6 +187,7 @@ topicId: resData.id, topicMessageList: resData.cmsItemDataList, teachText: info.positionalTitle, + skeletonLoding: false, }) if (resData.feedBack != null) { that.setData({ @@ -355,6 +358,14 @@ // 涓婁紶鍥剧墖浜嬩欢 chooseImg(e) { var that = this; + if (that.data.imgPics.length == 4) { + wx.showToast({ + title: "宸ヤ綔璇佹枃浠朵笉瓒呰繃5涓紒", + icon: 'none', + duration: 1000, + }) + return + } wx.chooseMedia({ count: 1, sizeType: ['original', 'compressed'], // 鍙互鎸囧畾鏄師鍥捐繕鏄帇缂╁浘锛岄粯璁や簩鑰呴兘鏈� diff --git a/packageDomain/pages/teacherCertification/index.json b/packageDomain/pages/teacherCertification/index.json index 26f3469..f42cdf2 100644 --- a/packageDomain/pages/teacherCertification/index.json +++ b/packageDomain/pages/teacherCertification/index.json @@ -9,6 +9,7 @@ "t-upload": "tdesign-miniprogram/upload/upload", "t-popup": "tdesign-miniprogram/popup/popup", "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", + "t-loading": "tdesign-miniprogram/loading/loading", "t-image": "tdesign-miniprogram/image/image" } } \ No newline at end of file diff --git a/packageDomain/pages/teacherCertification/index.wxml b/packageDomain/pages/teacherCertification/index.wxml index 706689c..9fb3d69 100644 --- a/packageDomain/pages/teacherCertification/index.wxml +++ b/packageDomain/pages/teacherCertification/index.wxml @@ -1,11 +1,14 @@ <view class="container"> <view class="content"> <view class="tips"> 浠呴檺瀛︽牎鏈绋嬩换璇炬暀甯堢敵璇凤紱璇蜂笂浼犳湁鏁堝湪鑱屾暀甯堝伐浣滆瘉灏嗘湁鍔╀簬瀹℃牳銆� </view> - <view class="page-body"> + <view class="body-loading" wx:if="{{skeletonLoding}}"> + <t-loading theme="circular" size="40rpx" class="wrapper" /> + </view> + <view class="page-body" wx:if="{{!skeletonLoding}}"> <view class="baseInfoBox"> <view class="from-item"> <view class="label"> 褰撳墠鐘舵�侊細 </view> - <view class="stateBox" wx:if="{{teacherInfo.schoolName}}"> + <view class="stateBox"> <text class="wait" wx:if="{{teacherInfo.state == 'WaitAudit'}}">绛夊緟瀹℃牳</text> <text class="yes" wx:if="{{teacherInfo.state == 'Normal'}}">宸茶璇�</text> <text class="no" wx:if="{{teacherInfo.state == 'Reject'}}">宸查┏鍥�</text> @@ -84,7 +87,7 @@ </view> </view> <view class="fileTip"> - 鏁欏姟澶勭洊绔犳枃浠躲�佹牎宸ュ崱鐨嗗彲 + 鏁欏姟澶勭洊绔犳枃浠躲�佹牎宸ュ崱鐨嗗彲(涓嶈秴杩�5涓枃浠�) </view> </view> </view> diff --git a/packageDomain/pages/teacherCertification/index.wxss b/packageDomain/pages/teacherCertification/index.wxss index e0f4ad4..b4881bd 100644 --- a/packageDomain/pages/teacherCertification/index.wxss +++ b/packageDomain/pages/teacherCertification/index.wxss @@ -136,6 +136,12 @@ min-height: 160rpx; } +.weui-uploader { + min-height: 160rpx; + display: flex; + flex-flow: row wrap; +} + .fileTip { font-size: 24rpx; color: #949494; @@ -259,4 +265,9 @@ position: absolute; top: -15rpx; right: -5rpx; +} + +.body-loading { + padding: 200rpx 0; + text-align: center; } \ No newline at end of file diff --git a/pages/personalCenter/index.js b/pages/personalCenter/index.js index bbeb19f..b54d1de 100644 --- a/pages/personalCenter/index.js +++ b/pages/personalCenter/index.js @@ -195,6 +195,7 @@ let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher') let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo') let WeChatInfo = res.infoList.find((item) => item.type === "WeChat"); + let secretData = res.secretList.find(i => i.type == 'LoginNameAndPassword') if (teacherRole && teacherInfos) { defaultUser = { ...teacherInfos, @@ -221,6 +222,16 @@ this.setData({ currAuthStep: 3, }); + } else if (secretData) { + defaultUser = { + nickName: secretData.credential, + icon: "", + userId: res.userId, + role: "Student" + } + this.setData({ + currAuthStep: 3, + }); } this.setData({ userInfo: defaultUser -- Gitblit v1.9.1