From 8b324fc7527762eb7c7590751757b87834cfca00 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期四, 21 三月 2024 09:23:49 +0800 Subject: [PATCH] ... --- packagePersonal/pages/userSetting/index.wxml | 42 +++++ packagePersonal/pages/userSetting/index.wxss | 38 ++++ packageBookService/pages/bookServices/detail/index.wxss | 2 packageBookService/pages/components/webView/index.js | 165 ++++++++++++++++++++ packagePersonal/pages/userSetting/index.js | 71 ++++++-- pages/personalCenter/index.wxml | 11 app.json | 5 packageBookService/pages/components/webView/index.wxml | 4 packagePersonal/pages/userSetting/index.json | 6 pages/personalCenter/index.wxss | 46 +++++ assets/js/config.js | 6 pages/personalCenter/index.js | 40 ++++ packageBookService/pages/components/webView/index.wxss | 6 pages/cart/index.wxss | 8 packageBookService/pages/components/webView/index.json | 4 15 files changed, 406 insertions(+), 48 deletions(-) diff --git a/app.json b/app.json index c3c65c8..2b71cb4 100644 --- a/app.json +++ b/app.json @@ -1,9 +1,9 @@ { "pages": [ - "pages/student/index", "pages/home/home", "pages/retrievalPage/index", "pages/cart/paymentPage/index", + "pages/student/index", "pages/cart/index", "pages/bookExhibitionList/index", "pages/bookExhibitionDetails/index", @@ -51,7 +51,8 @@ "pages/bookServices/list/index", "pages/bookServices/detail/index", "pages/bookServices/examination/examination", - "pages/bookServices/webpage/index" + "pages/bookServices/webpage/index", + "pages/components/webView/index" ] } ], diff --git a/assets/js/config.js b/assets/js/config.js index c521369..f1adde9 100644 --- a/assets/js/config.js +++ b/assets/js/config.js @@ -20,7 +20,8 @@ export const fontUrl = "http://192.168.3.132:5173"; // export const fontUrl = "http://182.92.203.7:3007/jsek/website"; // export const fontUrl = "http://jsysf.bnuic.com/website"; - +// export const epubUrl = "http://182.92.203.7:3007/epubReadMobile/"; +export const epubUrl = "http://jsysf.bnuic.com/epubReadMobile/#/"; const config = { requestCtx, @@ -34,6 +35,7 @@ seminar, fontUrl, reg_tel, - reg_telphone + reg_telphone, + epubUrl }; export default config; diff --git a/packageBookService/pages/bookServices/detail/index.wxss b/packageBookService/pages/bookServices/detail/index.wxss index 3fbcf6f..6c97fc6 100644 --- a/packageBookService/pages/bookServices/detail/index.wxss +++ b/packageBookService/pages/bookServices/detail/index.wxss @@ -202,7 +202,7 @@ .box-bottom { position: fixed; left: 0; - bottom: 40rpx; + bottom: env(safe-area-inset-bottom); width: 100%; height: 110rpx; } diff --git a/packageBookService/pages/components/webView/index.js b/packageBookService/pages/components/webView/index.js new file mode 100644 index 0000000..452b945 --- /dev/null +++ b/packageBookService/pages/components/webView/index.js @@ -0,0 +1,165 @@ +// packageBookService/pages/components/webView/index.js +const app = getApp() +Page({ + + /** + * 椤甸潰鐨勫垵濮嬫暟鎹� + */ + data: { + src: "", + link: false, + epubObj: null, + currentPage: '', + }, + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 + */ + onLoad(options) { + if (options && options.link) { + this.setData({ + src: decodeURIComponent(options.link), + link: options.link ? true : false, + }) + } else { + this.setData({ + epubObj: options, + src: '' + }) + if (options) { + wx.setNavigationBarTitle({ + title: options.fileName, + }) + this.getProgress(options) + } + } + }, + + onLoadWeb(e) { + console.log(e, "load") + }, + + onError(e) { + console.log(e, "err") + }, + + setWebViewSrc: function (data) { + var url = app.config.epubUrl + + "?md5=" + + data.md5 + + "&bookName=" + + data.fileName + + "&url=" + app.config.requestCtx + + "&token=" + + wx.getStorageSync(app.config.tokenKey) + + "&recordLocation=" + + this.data.currentPage + this.setData({ + src: url + }) + }, + + + // 鑾峰彇UserKey + getProgress: function (dataObj) { + app.MG.identity + .getUserKey({ + domain: "bookReadProgress", + keys: [this.data.epubObj.md5], + }) + .then((res) => { + if (res.length) { + try { + this.setData({ + currentPage: JSON.parse(res[0].value).page, + }); + } catch (error) { + this.setData({ + currentPage: "", + }); + } + if (this.data.currentPage > this.data.probationPage) { + this.setData({ + currentPage: "", + }); + } + } + this.setWebViewSrc(dataObj); + }); + }, + // 璁剧疆userKey + setProgress: function (data) { + if (data.page && data.page != this.data.currentPage) { + app.MG.identity + .setUserKey({ + setKeyRequests: [{ + domain: "bookReadProgress", + key: this.data.epubObj.md5, + value: JSON.stringify(data), + },], + }) + .then((res) => { }); + } + }, + + drawBack(e) { + let { + currentLocation, + percentage, + type + } = + e.detail.data[0]; + if (type == "progress" && type != "backDetail") { + this.setProgress({ + page: currentLocation, + progress: percentage, + }); + } else if (type == "backDetail") { + this.setProgress({ + page: 1, + progress: "0%", + }); + } + }, + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 + */ + onReady() { + + }, + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず + */ + onShow() { + + }, + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 + */ + onHide() { + + }, + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇 + */ + onUnload() { + + }, + + /** + * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 + */ + onPullDownRefresh() { + + }, + + /** + * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� + */ + onReachBottom() { + + }, +}) \ No newline at end of file diff --git a/packageBookService/pages/components/webView/index.json b/packageBookService/pages/components/webView/index.json new file mode 100644 index 0000000..bac3413 --- /dev/null +++ b/packageBookService/pages/components/webView/index.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "浜笀E璇�", + "usingComponents": {} +} \ No newline at end of file diff --git a/packageBookService/pages/components/webView/index.wxml b/packageBookService/pages/components/webView/index.wxml new file mode 100644 index 0000000..ec0dfb5 --- /dev/null +++ b/packageBookService/pages/components/webView/index.wxml @@ -0,0 +1,4 @@ +<!--packageBookService/pages/components/webView/index.wxml--> +<view class="page-body"> + <web-view bind:message="drawBack" binderror="onError" bindload="onLoadWeb" src="{{src}}"></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 new file mode 100644 index 0000000..2a6a458 --- /dev/null +++ b/packageBookService/pages/components/webView/index.wxss @@ -0,0 +1,6 @@ +/* packageBookService/pages/components/webView/index.wxss */ +.page-body { + width: 100vw; + height: calc(100vh - env(safe-area-inset-bottom)); + overflow: hidden; +} \ No newline at end of file diff --git a/packagePersonal/pages/userSetting/index.js b/packagePersonal/pages/userSetting/index.js index 110615f..3f131a4 100644 --- a/packagePersonal/pages/userSetting/index.js +++ b/packagePersonal/pages/userSetting/index.js @@ -1,18 +1,22 @@ -// packagePersonal/pages/userSetting/index.js +const app = getApp() Page({ /** * 椤甸潰鐨勫垵濮嬫暟鎹� */ data: { - + userInfo: {}, + defaultAvatarUrl: 'https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png', + visible: false }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ - onLoad(options) { - + onLoad() { + if (wx.getStorageSync(app.config.tokenKey)) { + this.getUserInfo() + } }, /** @@ -28,19 +32,52 @@ onShow() { }, - - /** - * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 - */ - onHide() { - - }, - - /** - * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇 - */ - onUnload() { - + // 鑾峰彇鐧诲綍鐢ㄦ埛韬唤 + getUserInfo() { + app.MG.identity.getCurrentAppUser().then(res => { + // 鐢ㄦ埛淇℃伅浼樺厛绾э細鏁欏笀璁よ瘉 > 寰俊 > 瀛︾敓锛堟敞鍐屾椂榛樿锛� + if (res) { + let defaultUser = {}; + let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher') + let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo') + let secretData = res.secretList.find(i => i.type == 'LoginNameAndPassword') + let WeChatInfo = res.infoList.find((item) => item.type === "WeChat"); + let phoneInfo = res.secretList.find((item) => item.type == 'MobilePhone') + let emailInfo = res.secretList.find((item) => item.type == 'EMail') + if (teacherRole && teacherInfos) { + defaultUser = { + ...teacherInfos, + fullName: teacherInfos.fullName, + icon: teacherInfos.icon, + userId: res.userId, + role: 'Teacher', + roleId: teacherRole.role.id, + phoneNumber: phoneInfo?.credential, + Email: emailInfo ? emailInfo.credential : JSON.parse(teacherInfos.data).email + } + } else if (WeChatInfo) { + defaultUser = { + ...WeChatInfo, + fullName: WeChatInfo.name, + icon: WeChatInfo.icon, + userId: res.userId, + phoneNumber: phoneInfo?.credential, + Email: emailInfo?.credential + } + } else if (secretData) { + defaultUser = { + fullName: secretData.credential, + icon: "", + userId: res.userId, + phoneNumber: phoneInfo?.credential, + Email: emailInfo?.credential + } + } + this.setData({ + userInfo: defaultUser + }) + } + }); }, /** diff --git a/packagePersonal/pages/userSetting/index.json b/packagePersonal/pages/userSetting/index.json index 8835af0..5ce906a 100644 --- a/packagePersonal/pages/userSetting/index.json +++ b/packagePersonal/pages/userSetting/index.json @@ -1,3 +1,7 @@ { - "usingComponents": {} + "navigationBarTitleText": "璁剧疆", + "usingComponents": { + "t-icon": "tdesign-miniprogram/icon/icon", + "t-avatar": "tdesign-miniprogram/avatar/avatar" + } } \ No newline at end of file diff --git a/packagePersonal/pages/userSetting/index.wxml b/packagePersonal/pages/userSetting/index.wxml index 1b6bbbf..52ab0e9 100644 --- a/packagePersonal/pages/userSetting/index.wxml +++ b/packagePersonal/pages/userSetting/index.wxml @@ -1,2 +1,40 @@ -<!--packagePersonal/pages/userSetting/index.wxml--> -<text>packagePersonal/pages/userSetting/index.wxml</text> +<view class="container"> + <view class="itemList"> + <view class="label">澶村儚</view> + <view class="contentImg"> + <t-avatar image="{{defaultAvatarUrl}}" class="user-center-card__header__avatar" /> + </view> + <t-icon name="chevron-right" size="40rpx" color="#C2C2C2" /> + </view> + <view class="itemList"> + <view class="label">鐢ㄦ埛鍚�</view> + <view class="content">{{userInfo.fullName || '寰俊鐢ㄦ埛'}}</view> + <t-icon name="chevron-right" size="40rpx" color="#C2C2C2" /> + </view> + <view class="itemList"> + <view class="label">鎵嬫満鍙风爜</view> + <view class="content">{{userInfo.phoneNumber || '鏈粦瀹氭墜鏈哄彿'}}</view> + <t-icon name="chevron-right" size="40rpx" color="#C2C2C2" /> + </view> + <view class="itemList"> + <view class="label">閭</view> + <view class="content">{{userInfo.Email}}</view> + <t-icon name="chevron-right" size="40rpx" color="#C2C2C2" /> + </view> +</view> +<t-popup visible="{{visible}}" bind:visible-change="onVisibleChange" placement="bottom"> + <view class="block"> + <view class="header"> + <view class="title">璇烽�夋嫨鎮ㄧ殑鐢ㄦ埛绫诲瀷</view> + </view> + <view class="body"> + + <view wx:for="{{userTypeList}}" wx:for-item="item" wx:for-index="index" wx:key="index" data-info="{{item}}" bindtap="tabUserTypeClick" class="{{item.value === userTypeActive ? 'activeItem item' : 'item'}}"> + {{ item.lable }} + </view> + </view> + <view class="footer"> + <button class="submit" bindtap="submit">纭畾</button> + </view> + </view> +</t-popup> \ No newline at end of file diff --git a/packagePersonal/pages/userSetting/index.wxss b/packagePersonal/pages/userSetting/index.wxss index 42e75dd..31d6148 100644 --- a/packagePersonal/pages/userSetting/index.wxss +++ b/packagePersonal/pages/userSetting/index.wxss @@ -1 +1,37 @@ -/* packagePersonal/pages/userSetting/index.wxss */ \ No newline at end of file +.container { + padding: 20rpx 0; +} + +.itemList { + border-bottom: 2rpx solid #E9E9E9; + padding: 30rpx; + display: flex; + /* height: 120rpx; */ + align-items: center; + justify-content: space-between !important; +} + +.label { + font-weight: bold; + width: 180rpx; +} + +.contentImg { + height: 120rpx; + width: 120rpx; + flex: 1; + text-align: right; + margin-right: 20rpx; +} + +.user-center-card__header__avatar { + width: 120rpx; + height: 120rpx; + border-radius: 48rpx; + overflow: hidden; +} + +.content { + flex: 1; + color: #5C5C5C; +} \ No newline at end of file diff --git a/pages/cart/index.wxss b/pages/cart/index.wxss index d83487e..5661723 100644 --- a/pages/cart/index.wxss +++ b/pages/cart/index.wxss @@ -33,14 +33,12 @@ } .bottomBox { - background-color: #0052d9; position: fixed; - bottom: 0; + /* bottom: 0; */ left: 0; right: 0; - - padding-bottom: 53px; - height: 112rpx; + bottom: calc(env(safe-area-inset-bottom) + 112rpx); + height: 120rpx; background: #FFFFFF; box-shadow: 0rpx -2rpx 0rpx 2rpx rgba(0, 0, 0, 0.08); display: flex; diff --git a/pages/personalCenter/index.js b/pages/personalCenter/index.js index 1ecdbf5..f4dfc6b 100644 --- a/pages/personalCenter/index.js +++ b/pages/personalCenter/index.js @@ -167,7 +167,9 @@ let userTypeData = res.infoList.find((item) => item.type == 'userType') let type = ""; if (userTypeData) { - this.data.userTypeActive = JSON.parse(userTypeData.data).userType; + this.setData({ + userTypeActive: JSON.parse(userTypeData.data).userType, + }); type = userTypeList.find((item) => item.value === this.data.userTypeActive)?.lable; } else { type = '-' @@ -250,7 +252,6 @@ }, //淇敼鐢ㄦ埛绫诲瀷 editUserType() { - console.log(44) if (!this.data.visible) { this.setData({ visible: true, @@ -261,6 +262,37 @@ this.setData({ visible: e.detail.visible, }); + }, + tabUserTypeClick(e) { + console.log(e) + let { info } = e.currentTarget.dataset; + this.setData({ + userTypeActive: info.value, + }); + }, + submit() { + let userTypeInfo = { + requests: [ + { + data: JSON.stringify({ userType: this.data.userTypeActive }), + name: '鐢ㄦ埛绫诲瀷', + type: 'userType' + } + ] + } + app.MG.identity.setAppUserInfo(userTypeInfo).then((res) => { + if (res) { + wx.showToast({ + title: "淇敼鎴愬姛", + icon: 'success', + duration: 1000, + }) + this.getUserInfo() + this.setData({ + visible: false, + }); + } + }) }, //璁剧疆 gotoUserEditPage() { @@ -292,8 +324,4 @@ onShareAppMessage() { }, - //璺宠浆鍏充簬鎴戜滑鍜岃仈绯绘垜浠� - onAboutUS() { - console.log(111); - } }) \ No newline at end of file diff --git a/pages/personalCenter/index.wxml b/pages/personalCenter/index.wxml index e5396f0..4a4b851 100644 --- a/pages/personalCenter/index.wxml +++ b/pages/personalCenter/index.wxml @@ -33,7 +33,7 @@ <view class="domainList"> <view wx:for="{{menuData}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toPages" data-info="{{item}}" class="listItem"> <view class="icon"> - <t-image src="{{item.icon}}" mode="heightFix" class="img" /> + <image src="{{item.icon}}" mode="aspectFit" class="img" /> </view> <view class="label"> <text>{{item.title}}</text> @@ -48,7 +48,7 @@ <view class="domainList1"> <view wx:for="{{moreMenu}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toPages" data-info="{{item}}" class="listItem"> <view class="icon"> - <t-image src="{{item.icon}}" mode="heightFix" class="img" /> + <image src="{{item.icon}}" mode="aspectFit" class="img" /> </view> <view class="label"> <text>{{item.title}}</text> @@ -58,7 +58,7 @@ <view class="domainList2"> <view wx:for="{{moreMenu1}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toPages" data-info="{{item}}" class="listItem"> <view class="icon"> - <t-image src="{{item.icon}}" mode="heightFix" class="img" /> + <image src="{{item.icon}}" mode="aspectFit" class="img" /> </view> <view class="label"> <text>{{item.title}}</text> @@ -73,12 +73,13 @@ <view class="title">璇烽�夋嫨鎮ㄧ殑鐢ㄦ埛绫诲瀷</view> </view> <view class="body"> - <view wx:for="{{userTypeList}}" wx:for-item="item" wx:for-index="index" wx:key="index" data-info="{{item}}" bindtap="tabUserTypeClick" :class="item.value == userTypeActive ? 'activeItem item hover' : 'item hover'"> + + <view wx:for="{{userTypeList}}" wx:for-item="item" wx:for-index="index" wx:key="index" data-info="{{item}}" bindtap="tabUserTypeClick" class="{{item.value === userTypeActive ? 'activeItem item' : 'item'}}"> {{ item.lable }} </view> </view> <view class="footer"> - <button class="submit" bindtap="submit">鎻愪氦</button> + <button class="submit" bindtap="submit">纭畾</button> </view> </view> </t-popup> diff --git a/pages/personalCenter/index.wxss b/pages/personalCenter/index.wxss index 058000d..e3c23ce 100644 --- a/pages/personalCenter/index.wxss +++ b/pages/personalCenter/index.wxss @@ -122,12 +122,14 @@ width: 46rpx; height: 46rpx; margin: 0 auto; + display: flex; } -.listItem .icon .t-image { - width: 100%; + +.listItem .icon .img { + /* width: 100%; */ height: 100%; - object-fit: contain; + } .listItem .label { @@ -140,21 +142,53 @@ .block { width: 100vw; - height: 240px; background: #fff; border-top-left-radius: 16rpx; border-top-right-radius: 16rpx; } -.header { +.block .header { display: flex; align-items: center; height: 116rpx; } -.title { +.block .title { flex: 1; text-align: center; font-weight: 600; font-size: 36rpx; +} + +.block .body { + padding: 0 20rpx; + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.item { + width: calc(100%/2 - 30rpx); + text-align: center; + padding: 30rpx 0; + margin: 0 10rpx 20rpx 10rpx; + background: #F9F9F9; + border: 4rpx solid #F9F9F9; + border-radius: 10rpx; +} + +.activeItem { + border: 4rpx solid #ff6c00; + background: #fff; +} + +.footer { + width: 80%; + margin: 10rpx auto; +} + +.submit { + background: #ff6c00; + color: #fff; + border-radius: 50rpx; } \ No newline at end of file -- Gitblit v1.9.1