From fd1520952c180dc15ec28319dae93ed666c8943e Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期一, 15 四月 2024 16:14:49 +0800 Subject: [PATCH] ios --- packageDomain/pages/sampleBookList/applicationForm/index.js | 240 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 175 insertions(+), 65 deletions(-) diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.js b/packageDomain/pages/sampleBookList/applicationForm/index.js index 8cd51e5..e4cd26a 100644 --- a/packageDomain/pages/sampleBookList/applicationForm/index.js +++ b/packageDomain/pages/sampleBookList/applicationForm/index.js @@ -1,4 +1,6 @@ -import { worksDataBytool } from "../../../../assets/js/toolClass.js"; +import { + worksDataBytool +} from "../../../../assets/js/toolClass.js"; const app = getApp(); Page({ data: { @@ -9,68 +11,82 @@ workInfo: null, schoolName: "", courseName: "", + detailedAddress: "" }, contactInfo: { fullName: "", phone: "", detailedAddress: "" }, + phoneError: false, paperBookList: [], //鏍蜂功鍗曠焊璐ㄤ功 electronicBookList: [], //鏍蜂功鍗曠數瀛愪功 ebookCount: 0, paperBookCount: 0, bookList: [], + isIos: wx.getSystemInfoSync().platform === 'ios', + keyboardHeight: 0 }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ - onLoad() { }, + onLoad() {}, /** - * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず - */ + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず + */ onShow() { + let that = this; + that.setData({ + bookList: [] + }) if (wx.getStorageSync(app.config.userInfoKey)) { - this.setData({ + that.setData({ userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey)) }) - if (this.data.userInfo.role == 'Teacher') { - this.setData({ - teacherInfo: { - schoolName: JSON.parse(this.data.userInfo.data).schoolName, - courseName: JSON.parse(this.data.userInfo.data).courseName, - }, - contactInfo: { - fullName: JSON.parse(this.data.userInfo.data).fullName, - phone: JSON.parse(this.data.userInfo.data).phone, - detailedAddress: JSON.parse(this.data.userInfo.data).detailedAddress + if (that.data.userInfo.role == 'Teacher') { + that.setData({ + 'teacherInfo.schoolName': JSON.parse(that.data.userInfo.data).schoolName, + 'teacherInfo.courseName': JSON.parse(that.data.userInfo.data).courseName, + 'contactInfo.fullName': JSON.parse(that.data.userInfo.data).fullName, + 'contactInfo.phone': JSON.parse(that.data.userInfo.data).phone, + 'contactInfo.detailedAddress': JSON.parse(that.data.userInfo.data).detailedAddress, + }) + } else { + wx.showModal({ + title: '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', //鎻愮ず鐨勬爣棰� + content: '璇峰厛杩涜鏁欏笀璁よ瘉锛�', //鎻愮ず鐨勫唴瀹� + success: function (res) { + if (res.confirm) { + wx.navigateTo({ + url: "/packageDomain/pages/teacherCertification/index", + }); + } } }) } if (wx.getStorageSync("paperBookList")) { - this.setData({ + that.setData({ paperBookList: JSON.parse(wx.getStorageSync("paperBookList")), bookList: JSON.parse(wx.getStorageSync("paperBookList")) }) } if (wx.getStorageSync("electronicBookList")) { - this.setData({ + that.setData({ electronicBookList: JSON.parse(wx.getStorageSync("electronicBookList")) }) } - this.getSelectBookCount(); - this.getSelectPaperBookCount(); - this.getPaperType(); - } else { - wx.navigateTo({ - url: "/pages/testLogin/index", - }); + that.getSelectBookCount(); + that.getSelectPaperBookCount(); + that.getPaperType(); } - }, tabClick(item) { let that = this; + that.setData({ + bookList: [] + }) if (item.detail.value == '1') { that.setData({ active: item.detail.value, @@ -87,12 +103,12 @@ }, getElectronType() { - app.MG.resource.getCmsTypeByRefCode({ refCodes: ['jsek_electronicSampleBook'] }).then((res) => { + app.MG.resource.getCmsTypeByRefCode({ + refCodes: ['jsek_electronicSampleBook'] + }).then((res) => { this.setData({ description: res[0].description, - teacherInfo: { - workInfo: res[0].cmsTypeLinks[0].children - }, + 'teacherInfo.workInfo': res[0].cmsTypeLinks[0].children, }) }) }, @@ -100,24 +116,22 @@ app.MG.resource.getCmsTypeByRefCode({ refCodes: ['jsek_paperVersionSampleBook'] }). - then((res) => { - if (res && res.length > 0) { - this.setData({ - description: res[0].description, - teacherInfo: { - workInfo: res[0].cmsTypeLinks[0].children - }, - }) - } - }) + then((res) => { + if (res && res.length > 0) { + this.setData({ + description: res[0].description, + 'teacherInfo.workInfo': res[0].cmsTypeLinks[0].children, + }) + } + }) }, //鑾峰彇褰撳墠宸茬敵璇锋鏁帮紙鐢靛瓙锛� getSelectBookCount() { let that = this; app.MG.app.getTicketResult({ - ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', - roleId: that.data.userInfo.roleId - }) + ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', + roleId: that.data.userInfo.roleId + }) .then((res) => { let num = res.totalCount - res.usedCount; that.setData({ @@ -129,9 +143,9 @@ getSelectPaperBookCount() { let that = this; app.MG.app.getTicketResult({ - ticketRefCodeOrGuid: 'paperSampleBookapplyNum', - roleId: that.data.userInfo.roleId - }) + ticketRefCodeOrGuid: 'paperSampleBookapplyNum', + roleId: that.data.userInfo.roleId + }) .then((res) => { let count = res.totalCount - res.usedCount; that.setData({ @@ -139,6 +153,37 @@ }) }) }, + //濮撳悕 + onFullNameInput(e) { + this.setData({ + "contactInfo.fullName": e.detail.value, + }); + }, + //杈撳叆鎵嬫満鍙� + onPhoneInput(e) { + const { + phoneError + } = this.data; + if (e.detail.value) { + const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e.detail.value); + if (phoneError === isPhoneNumber) { + this.setData({ + phoneError: !isPhoneNumber, + "contactInfo.phone": e.detail.value, + }); + } + } else { + this.setData({ + phoneError: false, + }); + } + }, + onAddressInput() { + this.setData({ + "contactInfo.detailedAddress": e.detail.value, + }); + }, + submit() { let that = this; @@ -173,7 +218,7 @@ } applyInfo = { ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', - roleId: userStore.userInfo.roleId, + roleId: that.data.userInfo.roleId, refType: 'applyBook' } } else { @@ -187,10 +232,9 @@ } const mailAddress = JSON.stringify(that.data.contactInfo) that.setData({ - teacherInfo: { - detailedAddress: mailAddress, - } + 'teacherInfo.detailedAddress': mailAddress }) + data = { topicIdOrRefCode: 'applyEntityBook', name: that.data.userInfo.name || '', @@ -214,25 +258,23 @@ electronicBookList: [], bookList: [], }) - wx.setStorageSync("electronicBookList", that.data.electronicBookList); + wx.removeStorageSync("electronicBookList") } else { that.setData({ paperBookList: [], bookList: [], }) - wx.setStorageSync("paperBookList", that.data.paperBookList); + wx.removeStorageSync("paperBookList") } - wx.showModal({ title: '鎻愮ず锛�', //鎻愮ず鐨勬爣棰� content: '鎮ㄧ殑鏍蜂功鐢宠宸叉彁浜わ紝绠$悊鍛樺鏍镐腑锛佺敵璇风姸鎬佸湪銆愪釜浜轰腑蹇冣�旀牱涔︾敵璇枫�戜腑鏌ヨ銆�', //鎻愮ず鐨勫唴瀹� success: function (res) { if (res.confirm) { wx.navigateTo({ - url: "/packagePersonal/pages/sampleBooks/index", + url: "/packagePersonal/pages/sampleBooks/index?stateTab=1&tabActive=" + that.data.active, }); - } else if (res.cancel) { - } + } else if (res.cancel) {} } }) }) @@ -257,32 +299,100 @@ success: function (res) { if (res.confirm) { if (that.data.active == '1') { - that.data.electronicBookList.forEach((obj, index) => { + let eList = that.data.electronicBookList; + eList.forEach((obj, index) => { if (obj.id == item.id) { - that.data.electronicBookList.splice(index, 1); + eList.splice(index, 1); } }) that.setData({ - bookList: that.data.electronicBookList + bookList: eList }) - wx.setStorageSync("electronicBookList", that.data.electronicBookList); + wx.setStorageSync("electronicBookList", eList); } else { - that.data.paperBookList.forEach((obj, index) => { + let pList = that.data.paperBookList; + pList.forEach((obj, index) => { if (obj.id == item.id) { - that.data.paperBookList.splice(index, 1); + pList.splice(index, 1); } }) that.setData({ - bookList: this.data.paperBookList + bookList: pList }) - wx.setStorageSync("paperBookList", that.data.paperBookList); + wx.setStorageSync("paperBookList", pList); } - } else if (res.cancel) { - } + } else if (res.cancel) {} } }) }, + // 鐩戝惉椤甸潰杞敭鐩樺脊璧锋墜鍔ㄦ帹鍔ㄩ〉闈� + bindkeyboardheightchange(e) { + // 鍙ios 澶勭悊 + if (!this.data.isIos === 'ios') { + return + } + + // 閿洏楂樺害 + const height = e.detail.height; + const className = e.target.dataset.class; + if (height === 0) { + this.scrollToInput(0); + return; + } + try { + this.createSelectorQuery() + .select(`.${className}`) + .boundingClientRect((res) => { + // 鍙娇鐢ㄧ獥鍙i珮搴� + const windowHeight = wx.getSystemInfoSync().windowHeight; + // 闄ゅ幓閿洏鐨勫墿浣欓珮搴� + let restHeight = windowHeight - height; + // 鍏冪礌宸︿笅瑙掑潗鏍� + let bottom = res.bottom; + // 鍙湁褰撳厓绱犺杞敭鐩樿鐩栫殑鏃跺�欐墠涓婃帹椤甸潰 + if (bottom <= restHeight) return; + // 鐜伴樁娈甸渶瑕佹粴鍔ㄧ殑澶у皬 + let scrollTop = bottom - restHeight; + this.scrollToInput(height, scrollTop); + }) + .exec(); + } catch (error) {} + }, + + // 鑾峰彇椤甸潰婊氬姩鏉′綅缃� + getScrollOffset() { + return new Promise((resolve) => { + try { + wx.createSelectorQuery() + .selectViewport() + .scrollOffset((res) => { + resolve(res.scrollTop); + }) + .exec(); + } catch (error) { + resolve(0); + } + }); + }, + + // 鐩戝惉椤甸潰杞敭鐩樺脊璧锋墜鍔ㄦ帹鍔ㄩ〉闈� + scrollToInput(keyboardHeight, scrollTop) { + this.setData({ + keyboardHeight, + }); + if (scrollTop) { + try { + this.getScrollOffset().then((lastScrollTop) => { + wx.pageScrollTo({ + // 濡傛灉宸茬粡瀛樺湪婊氬姩锛屽湪姝ゅ熀纭�涓婄户缁粴 + scrollTop: lastScrollTop ? lastScrollTop + scrollTop : scrollTop, + duration: 300, + }); + }); + } catch (error) {} + } + }, /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 */ -- Gitblit v1.9.1