浏览代码

feat(pages):登录,首页获取头像,手机号

Zhenghanjv 2 月之前
父节点
当前提交
bafeb8943f

+ 1 - 1
app.json

@@ -3,7 +3,7 @@
     "pages/scan/scan",
     "pages/quantify/quantify",
     "pages/moreOrder/moreOrder",
-    "pages/orderConfirm/orderConfirm",
+    "pages/TransactionPage/TransactionPage",
     "pages/index/index",
     "pages/login/login",
     "pages/historyOrder/historyOrder",

+ 1 - 1
js/api.js

@@ -3,7 +3,7 @@ const SM4Exten = require('../js/SM4Exten');
 const miniprogramsm4 = require("../miniprogram_npm/miniprogram-sm-crypto/index").sm4;
 const secretId = "D2BCF8DE-AA24-4BF6-9C34-C8DD325E412B";//小程序应用ID
 const Secret = "6C680A47B87740138DFB299FC69A64E1";//小程序应用密钥
-const api_root = 'http://192.168.0.202:5006/'
+const api_root = 'http://192.168.5.5:5006/'
 const CurrentBuId = '12345678-9abc-def0-1234-56789abcdef0';
 
 function request(path, method = 'GET', data = null) {

+ 64 - 42
pages/login/login.js

@@ -65,51 +65,67 @@ Page({
   onShareAppMessage() {
 
   },
-  
+
   handleAuthLogin(e) {
-    console.log('一键授权登录按钮被点击');
+    console.log('一键授权登录按钮被点击', e);
     wx.showLoading({
       title: '正在登录中...',
     })
-    // if(e.detail.userInfo) {
-    // wx.getUserProfile({
-    //   desc: '用于完善用户信息',
-    //   success:(res) => {
-    //     console.log(res.userInfo)
-    //   },
-    //   fail:(err) => {
-    //     console.log("获取用户信息失败",err)
-    //   }
-    // })
-    // }
-
-    // 获取用户信息授权
-    const that = this;
-    wx.getUserProfile({
-      desc: '用于完善用户资料', // 声明获取用户信息的目的
-      success(res) {
-        console.log('用户信息:', res.userInfo);
-        var user = {
-          UserName: res.userInfo.nickName,
-          UserAvatarUrl: res.userInfo.avatarUrl,
-          UserPhoneNumber: '',
-          Address: ''
-        };
-        that.setData({
-          userInfo:user
-        })
-        that.toLogin()
-        // 将用户信息发送到服务器
-        // 例如:wx.request({ url: 'https://example.com/userInfo', data: res.userInfo })
-      },
-      fail(err) {
-        console.error('获取用户信息失败:', err);
-        wx.hideLoading()
-      },
-    });
+
+    if (e.type == "getphonenumber") {
+      console.log("添加手机信息",this.data.userInfo)
+      var user = {
+        UserName: this.data.userInfo.UserName,
+        UserAvatarUrl: this.data.userInfo.UserAvatarUrl,
+        UserPhoneNumber: '',
+        Address: '',
+        encryptedData: e.detail.encryptedData,
+        iv: e.detail.iv
+      };
+      this.setData({
+        userInfo: user
+      })
+      this.toLogin()
+    }
+
+    if (e.type == "tap") {
+      console.log("添加用户信息",this.data.userInfo)
+      // 获取用户信息授权
+      const that = this;
+      wx.getUserProfile({
+        desc: '用于完善用户资料', // 声明获取用户信息的目的
+        success(res) {
+          console.log('用户信息:', res.userInfo);
+          var user = {
+            UserName: res.userInfo.nickName,
+            UserAvatarUrl: res.userInfo.avatarUrl,
+            UserPhoneNumber: '',
+            Address: '',
+            encryptedData: that.data.userInfo.encryptedData,
+            iv: that.data.userInfo.iv
+          };
+          that.setData({
+            userInfo: user
+          })
+          that.toLogin()
+          // 将用户信息发送到服务器
+          // 例如:wx.request({ url: 'https://example.com/userInfo', data: res.userInfo })
+        },
+        fail(err) {
+          console.error('获取用户信息失败:', err);
+          wx.hideLoading()
+        },
+      });
+    }
+
   },
 
-  toLogin(){
+  toLogin() {
+    if(!this.cheackUserInfo()) {
+      console.log("userInfo 信息不全",this.data.userInfo)
+      wx.hideLoading()
+      return
+    }
     // 调用微信登录接口
     var that = this;
     wx.login({
@@ -118,17 +134,18 @@ Page({
           console.log('登录成功,code:', res.code);
           api.request_Wechatlogin(res.code)
             .then(res => {
-              console.log("获取wid",res.data.data)
+              console.log("获取wid", res.data.data)
               wx.setStorageSync('WachatID', res.data.data)
+              console.log("传递的userInfo", that.data.userInfo)
               return api.request_AddMiniprogramUser(that.data.userInfo)
             }).then(res => {
-              console.log("添加user",res)
+              console.log("添加user", res)
               wx.hideLoading()
               wx.redirectTo({
                 url: '../scan/scan',
               })
             }).catch(err => {
-              console.log("报错",res)
+              console.log("报错", res)
               wx.hideLoading()
             });
         } else {
@@ -141,5 +158,10 @@ Page({
         console.error('登录接口调用失败:', err);
       },
     });
+  },
+
+  cheackUserInfo(){
+    var userInfo = this.data.userInfo;
+    return userInfo.UserAvatarUrl != '' && userInfo.UserAvatarUrl != undefined && userInfo.UserName != '' && userInfo.UserName != undefined && userInfo.encryptedData != '' && userInfo.encryptedData != undefined && userInfo.iv != '' && userInfo.iv != undefined 
   }
 })

+ 1 - 1
pages/login/login.wxml

@@ -4,7 +4,7 @@
   </view>
   <view class="action-text">立码加油</view>
   <open-data></open-data>
-  <button class="auth-button" style="width: 547rpx; height: 94rpx; display: block; box-sizing: border-box; left: 0rpx; top: 0rpx"  bindtap="handleAuthLogin">一键授权登录</button>
+  <button class="auth-button" open-type="getPhoneNumber" style="width: 547rpx; height: 94rpx; display: block; box-sizing: border-box; left: 0rpx; top: 0rpx"  bindtap="handleAuthLogin" bindgetphonenumber="handleAuthLogin">一键授权登录</button>
   <view class="agreement">
     <button class="auth-button"   bindtap="pay">支付</button>
     <checkbox checked="{{true}}" disabled="{{true}}" />

+ 0 - 161
pages/orderConfirm/orderConfirm.js

@@ -1,161 +0,0 @@
-const { default: api } = require("../../js/api");
-const util = require('../../utils/util.js')
-
-// pages/orderConfirm/orderConfirm.js
-Page({
-
-  /**
-   * 页面的初始数据
-   */
-  data: {
-    nozzle:0,
-    type:'后支付',
-    order:{},
-    oprationBtn1:'',
-    oprationBtn2:'对此订单有疑问?',
-  },
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad(options) {
-    console.log("未支付页",options)
-    this.setData({
-      nozzle:options.nozzle
-    })
-    this.getOrder()
-  },
-
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面隐藏
-   */
-  onHide() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面卸载
-   */
-  onUnload() {
-
-  },
-
-  /**
-   * 页面相关事件处理函数--监听用户下拉动作
-   */
-  onPullDownRefresh() {
-
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  onReachBottom() {
-
-  },
-
-  /**
-   * 用户点击右上角分享
-   */
-  onShareAppMessage() {
-
-  },
-
-  /** 获取订单信息 */
-  getOrder() {
-    api.request_GetMiniProgramTransactionsUnpaidNozzle(Number(this.data.nozzle))
-    .then(res => {
-      console.log("获取到未支付订单",res)
-      var order = res.data.data[0];
-      var time = util.formatDateNotSecond(order.fuelItemTransactionEndTime);
-      this.setData({
-        order:{
-          oilName:order.productName,
-          nozzle:order.nozzleId,
-          volume:order.originalQty,
-          amount:order.originalAmount,
-          payAmount:order.actualPaymentAmount,
-          discount:order.originalAmount - order.actualPaymentAmount,
-          orderId:order.id,
-          time:time
-        }
-      })
-    }).catch(err => {
-      console.log("未获取到未支付订单")
-    })
-  },
-
-  /** 后支付查看更多交易 */
-  toMordOrderPage(){
-    var that = this;
-    wx.navigateTo({
-      url: '../moreOrder/moreOrder?nozzle='+this.data.nozzle,
-      events:{
-        acceptOrderFromMoreOrder:function(data) {
-          console.log("获取到更多订单页发送过来的订单",data)
-          that.setData({
-            order:data
-          })
-        }
-      }
-    })
-  },
-
-  /** 支付按钮点击事件 */
-  toPay(){
-    api.request_wechatPay(19).then(res => {
-      console.log("支付结果",res)
-      this.pay()
-    }).catch(err => {
-      console.log("支付失败",err)
-    })
-  },
-  pay() {
-    api.request_wechatPay(this.data.order.orderId)
-      .then(res => {
-        wx.requestPayment({
-          timeStamp: res.data.data.unifiedOrderResult.timeStamp,
-          nonceStr: res.data.data.unifiedOrderResult.nonceStr,
-          package: res.data.data.unifiedOrderResult.package,
-          signType: res.data.data.unifiedOrderResult.signType,
-          paySign: res.data.data.unifiedOrderResult.paySign,
-          success: res => {
-            wx.hideLoading()
-            wx.showToast({
-              title: '支付成功!',
-            })
-            setTimeout(function () {
-              wx.redirectTo({
-                url: '../scan/scan',
-              })
-            }, 2000)
-          },
-          fail: res => {
-            wx.hideLoading()
-            wx.showModal({
-              title: '支付失败',
-              content: res.errMsg + '请稍后再试',
-              showCancel: false,
-              success(res) {
-                
-              }
-            })
-          }
-        })
-      });
-  },
-})

+ 0 - 6
pages/orderConfirm/orderConfirm.json

@@ -1,6 +0,0 @@
-{
-  "usingComponents": {
-    "orderInfo":"../../components/orderItemInfo/orderItemInfo",
-    "pay":"../../components/pay/pay"
-  }
-}

+ 0 - 15
pages/orderConfirm/orderConfirm.wxml

@@ -1,15 +0,0 @@
-<view class="orderConfirmContainer">
-  <!-- 提示 -->
-  <view class="tip">
-    <icon color="#fbac15" type="warn"/>
-    <text>请勿在油机旁使用手机</text>
-  </view>
-
-  <!-- 订单 -->
-  <orderInfo class="orderInfo" order="{{order}}" bottonText2="{{oprationBtn2}}" bind:bottonEvent2="toMordOrderPage" />
-
-  <text class="moreOrderTip" bind:tap="toMordOrderPage">更多交易</text>
-  
-  <!-- 支付按钮 -->
-  <pay class="payButton" amount="{{order.amount}}" bind:onPay="toPay" />
-</view>

+ 0 - 39
pages/orderConfirm/orderConfirm.wxss

@@ -1,39 +0,0 @@
-.orderConfirmContainer{
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  width: 100%;
-  height: 95vh;
-  background-color: #f2f2f2;
-}
-.tip{
-  display: flex;
-  align-self: flex-start;
-  margin: 3%;
-  width: 100%;
-}
-.tip text{
-  color: #fbac15;
-  margin-left: 3%;
-}
-
-.orderInfo{
-  width: 90%;
-  display: flex;
-  justify-content: center;
-}
-
-.moreOrderTip{
-  color: #d81e07;
-  margin-top: 5%;
-  font-weight: 600;
-}
-
-.anthorizationTip{
-  color: #9f9cb7;
-  margin: 3%;
-}
-.payButton{
-  width: 95%;
-  margin-top: auto;
-}

+ 8 - 8
pages/scan/scan.js

@@ -5,10 +5,10 @@ const {
 Page({
   data: {
     isLoggedIn: false,
+    site:{},
     userInfo: {},
     scanTitle: '扫码加油',
-    scanTip: '请扫描加油机键盘上的二维码',
-    paymentMode:0
+    scanTip: '请扫描加油机键盘上的二维码'
   },
 
   /**
@@ -16,17 +16,17 @@ Page({
    */
   onLoad(options) {
     api.request_GetSiteInfo().then(res => {
-      if(res.data.statusCode != 200) return
+      if(res.data.statusCode == 203) {
+        console.log("获取站点信息失败",res)
+        return
+      }
       console.log("站点信息",res)
-      wx.redirectTo({
-        url: '../orderConfirm/orderConfirm?nozzle=1',
-      })
       this.setData({
         isLoggedIn: true,
+        site:res.data.data.site,
         userInfo: res.data.data.userInfo,
         scanTitle: '扫码加油',
-        scanTip: '请扫码加油机键盘上的二维码',
-        paymentMode:res.data.data.site.paymentMode
+        scanTip: '请扫码加油机键盘上的二维码'
       })
     }).catch(err => {
       console.log("获取站点信息失败",err)

+ 3 - 3
pages/scan/scan.wxml

@@ -1,7 +1,7 @@
 <view class="scanContainer">
   <view class="header">
     <image src="../../images/orientation.png" />
-    <text>淮河路加油站</text>
+    <text>{{site.name}}</text>
   </view>
   <image class="background" src="../../images/stationBackground.png"></image>
 
@@ -12,14 +12,14 @@
         <view class="user-border-unlogin" wx:if="{{!isLoggedIn}}">
           <image src="../../images/user.png" mode="aspectFit"></image>
         </view>
-        <image class="user-icon-login" wx:if="{{isLoggedIn}}" src="../../images/user.png" mode="aspectFit"></image>
+        <image class="user-icon-login" wx:if="{{isLoggedIn}}" src="{{userInfo.userAvatarUrl}}" mode="aspectFit"></image>
       </view>
       
       <view class="user-tip" wx:if="{{!isLoggedIn}}">
         <text style="font-weight: 530;">未登录</text>
         <text style="font-size: 24rpx;color: #81838f;">请授权登录</text>
       </view>
-      <text class="user-tip" wx:if="{{isLoggedIn}}">135******05</text>
+      <text class="user-tip" wx:if="{{isLoggedIn}}">{{userInfo.userPhoneNumber}}</text>
 
       <text class="toOtherPage">></text>
     </view>