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