姜永辉 2 anni fa
parent
commit
5fdf14f289
6 ha cambiato i file con 167 aggiunte e 51 eliminazioni
  1. 30 23
      app.js
  2. 131 18
      pages/login/login.js
  3. 3 9
      pages/login/login.wxml
  4. BIN
      static/img/background.png
  5. 2 0
      utils/Constants.js
  6. 1 1
      utils/api.js

+ 30 - 23
app.js

@@ -13,7 +13,9 @@ const util = require('./utils/util.js')
 const baseMethod = require('./api/pages/baseMethod.js')
 const baseRoute = require('./api/pages/baseRoute.js')
 //初始化国际化语言设置
-const LangUtils = require( './utils/LangUtils')
+const LangUtils = require('./utils/LangUtils')
+//app.js
+const api = require('/utils/api.js');
 
 // 引入文件系统管理器模块
 const fs = wx.getFileSystemManager();
@@ -21,45 +23,50 @@ const fs = wx.getFileSystemManager();
 const folderPath = '/api/pages'; // 将此处的'/path/to/folder'替换为实际的文件夹路径
 // 定义递归函数,用于读取指定目录下所有的.js文件
 function readJsFiles(dirPath) {
-  let returnFiles  = []
+  let returnFiles = []
   // 读取当前目录下的文件列表
   const files = fs.readdirSync(dirPath);
   for (let i = 0; i < files.length; i++) {
     const file = files[i];
     // 构建完整路径
-    let fullpath =  dirPath + '/' + file;
+    let fullpath = dirPath + '/' + file;
 
     // 如果是js文件就返回
     if (file.endsWith('.js')) {
       // fullpath = '@' + fullpath
-      console.log('f1',fullpath);
+      console.log('f1', fullpath);
       let item = require(fullpath);
-      console.log('f2',item);
-      if(file != 'baseMethod.js' && file != 'baseRoute.js'){
-        item.name = file.replace('.js','');
+      console.log('f2', item);
+      if (file != 'baseMethod.js' && file != 'baseRoute.js') {
+        item.name = file.replace('.js', '');
         returnFiles.push(item);
       }
-    }else if(fs.statSync(fullpath).isDirectory()){
-      console.log('b3',fullpath);
+    } else if (fs.statSync(fullpath).isDirectory()) {
+      console.log('b3', fullpath);
       // 如果是文件夹则递归调用自身处理子级文件夹
       let returns = readJsFiles(fullpath);
-      returns.forEach(it=>{
+      returns.forEach(it => {
         returnFiles.push(it);
       })
     }
   }
   return returnFiles;
 }
-function setRouteService(){
-  
+function setRouteService() {
+
 }
 App({
-  onLaunch() { 
+  onLaunch() {
     console.log("onLaunch");
     // LangUtils.setTabBarLang();
   },
+ 
+
   globalData: {
     userInfo: null,
+    openid: null,
+    unionid: null,
+    sessionkey: null,
   },
 })
 try {
@@ -67,30 +74,30 @@ try {
   let files = readJsFiles(folderPath);
   let app = getApp();
   let routeUrl = {}
-  files.forEach(m=>{
+  files.forEach(m => {
     // console.log('values',values,m['routeUrl']);
-    app.globalData[Object.keys(m)[0]] =Object.assign( Object.values(m)[0],baseMethod.baseService)
+    app.globalData[Object.keys(m)[0]] = Object.assign(Object.values(m)[0], baseMethod.baseService)
     // 如果没有路由,就建一个路由
-    if(!m['routeUrl']){
+    if (!m['routeUrl']) {
       m['routeUrl'] = {}
       m['routeUrl'][m.name] = {}
       // 加入共通路由
-      m['routeUrl'][m.name] = Object.assign(m['routeUrl'][m.name],baseRoute.routeUrl)
-    }else{
-      util.objectMergeByMainJs(m['routeUrl'][m.name],baseRoute.routeUrl)
+      m['routeUrl'][m.name] = Object.assign(m['routeUrl'][m.name], baseRoute.routeUrl)
+    } else {
+      util.objectMergeByMainJs(m['routeUrl'][m.name], baseRoute.routeUrl)
     }
-    if(m.name != 'common'){
+    if (m.name != 'common') {
       routeUrl[m.name] = m['routeUrl'][m.name];
     }
   })
   app.globalData['routeUrl'] = routeUrl;
   // 输出结果
-  console.log('文件列表:', files,baseMethod,routeUrl);
+  console.log('文件列表:', files, baseMethod, routeUrl);
   // 国际化的初始化
   LangUtils.initLang();
   let langSrc = LangUtils.getLangSrc()
-  console.log('langSrc',langSrc);
-  app.globalData['lang'] = {...langSrc.items};
+  console.log('langSrc', langSrc);
+  app.globalData['lang'] = { ...langSrc.items };
 } catch (error) {
   console.error('读取文件夹失败:', error);
 }

+ 131 - 18
pages/login/login.js

@@ -1,36 +1,149 @@
- /*******************************************************************************
- * Copyright(c) 2022 dongke All rights reserved. / Confidential
- * 类的信息:
- *		1.程序名称:
- *		2.功能描述:登录画面
- * 编辑履历:
- *		作者				日期					版本				修改内容
- *		admin		  	2022-11-22			1.00		   	新建
- *******************************************************************************/
- Page({
+/*******************************************************************************
+* Copyright(c) 2022 dongke All rights reserved. / Confidential
+* 类的信息:
+*		1.程序名称:
+*		2.功能描述:登录画面
+* 编辑履历:
+*		作者				日期					版本				修改内容
+*		admin		  	2022-11-22			1.00		   	新建
+*******************************************************************************/
+const app = getApp()
+
+const api = require('@/utils/api.js');
+const Constants = require('@/utils/Constants.js');
+let _this = this
+Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-
+    backgroud: '/static/img/background.png'
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-
-  },  
+   // this.wx_login()
+  },
 
   /**
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
-    setTimeout(()=>{
-      wx.reLaunch({
-        url: '../../pages/home-page/home-page',
+    // 调转主页
+    wx.reLaunch({
+      url: '../../pages/home-page/home-page',
+    })
+  },
+
+  /**
+  * 登录
+  */
+  wx_login() {
+    let _this = this
+    _this.wxlogin().then(res => {
+      _this.getopenid({ code: res.code });
+    })
+  },
+
+  /**
+   * 获取微信派发的临时登录凭证
+   */
+  wxlogin() {
+    return new Promise((resolve, reject) => {
+      // 登录
+      wx.login({
+        success: res => {
+          // 发送 res.code 到后台换取 openId, sessionKey, unionId
+          if (res.code) {
+            resolve(res)
+          } else {
+            reject(res)
+          }
+        }
       })
-    },2000)
-  }, 
+    })
+  },
+
+
+  /**
+   * 获取微信派发的 openid
+   * @param {*} param 
+   */
+  getopenid(param) {
+    let _this = this
+    api.request(Constants.SYS_OPENID_API + 'login_wechat', 'POST', param).then(login_res => {
+      if (login_res.data.code === 200) {
+        app.globalData.openid = login_res.data.data.openid
+        app.globalData.unionid = login_res.data.data.unionid
+        app.globalData.sessionkey = login_res.data.data.session_key
+        _this.gettoken()
+
+      }
+    })
+  },
+
+  /**
+  * 通过openid获取用户信息
+  * @param {*} param 
+  */
+  gettoken() {
+    let _this = this
+    //  调用接口
+    _this.getTokenPromise().then(res => {
+      console.log("gettoken", res);
+      if (res.data.code === 200) {
+        // 调转主页
+        wx.reLaunch({
+          url: '../../pages/home-page/home-page',
+        })
+      }
+      else if (res.data.code === 1015) {
+        // 电话 和 昵称
+
+
+        let param = {
+          userPhone: 15902409627,
+          userName: 'dk',
+          userWxid: app.globalData.openid
+        }
+        // 注册微信用户
+        _this.register(param)
+
+      }
+    })
+  },
+
+  /**
+  * 获取微信派发的临时登录凭证
+  */
+  getTokenPromise() {
+    return new Promise((resolve, reject) => {
+      api.request(Constants.SYS_OPENID_API + 'oauth/wx/token', 'POST',
+        { 'userWxid': app.globalData.openid }).then(res => {
+          console.log("getTokenPromise", res);
+          resolve(res)
+        })
+    })
+  },
+
+  /**
+  * 注册微信用户信息
+  * @param {*} param 
+  */
+  register(param) {
+    let _this = this
+    api.request(Constants.SYS_OPENID_API + 'oauth/wx/register', 'POST', param).then(res => {
+      console.log("register", res);
+      if (res.data.code === 200) {
+        app.globalData.userInfo = res.data.userInfo
+        wx.reLaunch({
+          url: '../../pages/home-page/home-page',
+        })
+      }
+    })
+  },
+
 })

+ 3 - 9
pages/login/login.wxml

@@ -1,11 +1,5 @@
-
 <!-- 新引导页 -->
-<view style="height: 100vh;width:100%;background-color: #e6ebf3;text-align: center;">
-    <image class="{{loadFlag?'logo-image-active':'logo-image'}}" mode="aspectFit" src="../../static/img/logo.png" style="transition: 1s; width: 61.8%;"/>
-
-    <view style="position:absolute;width: 100%;top: 70%;">
-      <van-loading type="spinner" vertical><text style="color:rgb(129, 128, 128);">加载中</text></van-loading>
-    </view>
-</view>
+<view style="height: 100vh;width:100%; ">
+  <image style="width: 100%;height: 100%;" mode="aspectFit" src="{{backgroud}}" catch:tap="login" />
 
-<van-dialog id="van-dialog" />
+</view>

BIN
static/img/background.png


+ 2 - 0
utils/Constants.js

@@ -8,6 +8,8 @@ module.exports = {
   SUCESS_CODE: 200,
   //页面加载数据API
   BASIC_COMMON_API: "mdm-server/wxapi/basic/common/",
+  // 系统用户接口
+  SYS_OPENID_API : "oauth-server/",
   // 最大的数量 
   Mess_Max_Quantity: '超过最大值或最小值,最大值为9999999999.999999',
   // 手机号正则表达式 目前只有位数校验(11位)

+ 1 - 1
utils/api.js

@@ -20,7 +20,7 @@ function request(url, requestType, params) {
       switch (res.data.code) {
         case 200:
           break;
-        case 99999://99999 数据重复 到各自的前台页面去处理 2022年11月14日
+        case 1015://1015 当前用户未注册 2022年11月14日
           break;
         case -2:case -4:case 233:
           wx.showModal({ title: '提示', content: res.data.message, showCancel: false,