From 13a31edf7f569cdcf15d3c43a476a2c947f47fbf Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 09 十一月 2025 22:33:24 +0800
Subject: [PATCH] feat: 增加hospdata表,同步sqlserver过来

---
 app/pages/login.vue |  169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 2 deletions(-)

diff --git a/app/pages/login.vue b/app/pages/login.vue
index 94efe80..3f67b74 100644
--- a/app/pages/login.vue
+++ b/app/pages/login.vue
@@ -37,13 +37,33 @@
       
       <view class="action-btn">
         <button @click="handleLogin" class="login-btn cu-btn block bg-blue lg round">鐧诲綍</button>
+        <!-- 寰俊涓�閿櫥褰曟寜閽�(浠呭湪寰俊灏忕▼搴忕幆澧冩樉绀�) -->
+        <!-- #ifdef MP-WEIXIN -->
+        <button 
+          v-if="isWechat && wechatOpenId" 
+          @click="loginByOpenId" 
+          class="wechat-login-btn cu-btn block bg-green lg round"
+          style="margin-top: 20rpx;">
+          <text class="cuIcon-wechat" style="margin-right: 10rpx;"></text>
+          寰俊涓�閿櫥褰�
+        </button>
+        <button 
+          v-else-if="isWechat"
+          open-type="getPhoneNumber" 
+          @getphonenumber="onGetPhoneNumber"
+          class="wechat-login-btn cu-btn block bg-green lg round"
+          style="margin-top: 20rpx;">
+          <text class="cuIcon-wechat" style="margin-right: 10rpx;"></text>
+          寰俊涓�閿櫥褰�
+        </button>
+        <!-- #endif -->
       </view>
     </view>
   </scroll-view>
 </template>
 
 <script>
-  import { getCodeImg } from '@/api/login'
+  import { getCodeImg, loginByOpenId, loginByWechatPhone } from '@/api/login'
 
   export default {
     data() {
@@ -60,11 +80,17 @@
           password: "",
           code: "",
           uuid: ''
-        }
+        },
+        // 寰俊涓�閿櫥褰曠浉鍏�
+        isWechat: false, // 鏄惁涓哄井淇″皬绋嬪簭鐜
+        wechatOpenId: '', // 寰俊OpenID
+        wechatUnionId: '', // 寰俊UnionID
       }
     },
     created() {
       this.getCode()
+      this.checkWechatEnv()
+      this.tryAutoLogin()
     },
     methods: {
       // 鐢ㄦ埛娉ㄥ唽
@@ -128,6 +154,137 @@
           // 瑙﹀彂鐧诲綍鎴愬姛浜嬩欢锛屽惎鍔ㄦ秷鎭疆璇�
           uni.$emit('user-login')
           this.$tab.reLaunch('/pages/index')
+        })
+      },
+      
+      // ==================== 寰俊涓�閿櫥褰曠浉鍏虫柟娉� ====================
+      
+      // 妫�鏌ユ槸鍚﹀湪寰俊灏忕▼搴忕幆澧�
+      checkWechatEnv() {
+        // #ifdef MP-WEIXIN
+        this.isWechat = true
+        console.log('褰撳墠鐜:寰俊灏忕▼搴�')
+        // #endif
+        
+        // #ifndef MP-WEIXIN
+        this.isWechat = false
+        console.log('褰撳墠鐜:闈炲井淇″皬绋嬪簭')
+        // #endif
+      },
+      
+      // 灏濊瘯鑷姩鐧诲綍(妫�鏌ユ湰鍦版槸鍚︽湁淇濆瓨鐨凮penID)
+      tryAutoLogin() {
+        if (!this.isWechat) {
+          return
+        }
+        
+        // 浠庢湰鍦板瓨鍌ㄤ腑鑾峰彇OpenID鍜孶nionID
+        const savedOpenId = uni.getStorageSync('wechat_openid')
+        const savedUnionId = uni.getStorageSync('wechat_unionid')
+        
+        if (savedOpenId) {
+          console.log('妫�娴嬪埌宸蹭繚瀛樼殑OpenID锛屽皾璇曡嚜鍔ㄧ櫥褰�')
+          this.wechatOpenId = savedOpenId
+          this.wechatUnionId = savedUnionId // 鍙兘涓簄ull
+          this.loginByOpenId()
+        }
+      },
+      
+      // 澶勭悊鑾峰彇鎵嬫満鍙风殑鍥炶皟
+      onGetPhoneNumber(e) {
+        console.log('鑾峰彇鎵嬫満鍙峰洖璋�:', e)
+        
+        if (!this.agreedToPolicy) {
+          this.$modal.msgError("璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁拰闅愮鏀跨瓥")
+          return
+        }
+        
+        if (e.detail.errMsg === 'getPhoneNumber:ok') {
+          // 鐢ㄦ埛鍚屾剰鎺堟潈
+          const { code } = e.detail
+          
+          this.$modal.loading("姝e湪鑾峰彇鎵嬫満鍙�...")
+          
+          // 鍏堣幏鍙栧井淇$櫥褰昪ode
+          uni.login({
+            provider: 'weixin',
+            success: (loginRes) => {
+              console.log('寰俊鐧诲綍code:', loginRes.code)
+              console.log('鎵嬫満鍙穋ode:', code)
+              
+              // 璋冪敤鍚庣鎺ュ彛,浼犲叆loginCode鍜宲honeCode
+              loginByWechatPhone(loginRes.code, code).then(response => {
+                this.$modal.closeLoading()
+                
+                if (response.code === 200) {
+                  // 鐧诲綍鎴愬姛,淇濆瓨OpenID鍜孶nionID
+                  const openId = response.openId
+                  const unionId = response.unionId
+                  
+                  uni.setStorageSync('wechat_openid', openId)
+                  this.wechatOpenId = openId
+                  
+                  if (unionId) {
+                    uni.setStorageSync('wechat_unionid', unionId)
+                    this.wechatUnionId = unionId
+                  }
+                  
+                  // 淇濆瓨token鍒版湰鍦板瓨鍌ㄥ拰Vuex
+                  const token = response.token
+                  this.$store.commit('SET_TOKEN', token)
+                  // 蹇呴』璋冪敤setToken淇濆瓨鍒版湰鍦板瓨鍌�
+                  const { setToken } = require('@/utils/auth')
+                  setToken(token)
+                  
+                  this.loginSuccess()
+                } else {
+                  this.$modal.msgError(response.msg || '鐧诲綍澶辫触')
+                }
+              }).catch(error => {
+                this.$modal.closeLoading()
+                console.error('鐧诲綍澶辫触:', error)
+                this.$modal.msgError('鐧诲綍澶辫触,璇烽噸璇�')
+              })
+            },
+            fail: (err) => {
+              this.$modal.closeLoading()
+              console.error('鑾峰彇寰俊鐧诲綍code澶辫触:', err)
+              this.$modal.msgError('鑾峰彇寰俊淇℃伅澶辫触')
+            }
+          })
+        } else {
+          // 鐢ㄦ埛鎷掔粷鎺堟潈
+          this.$modal.msgError('闇�瑕佹偍鐨勬墜鏈哄彿鎵嶈兘鐧诲綍')
+        }
+      },
+      
+      // 閫氳繃OpenID鍜孶nionID鐧诲綍
+      loginByOpenId() {
+        this.$modal.loading("姝e湪鐧诲綍...")
+        
+        // 鍚屾椂浼犲叆openId鍜寀nionId杩涜鍙岄噸楠岃瘉
+        loginByOpenId(this.wechatOpenId, this.wechatUnionId).then(response => {
+          this.$modal.closeLoading()
+          
+          if (response.code === 200) {
+            // 鐧诲綍鎴愬姛,淇濆瓨token鍒版湰鍦板瓨鍌ㄥ拰Vuex
+            const token = response.token
+            this.$store.commit('SET_TOKEN', token)
+            // 蹇呴』璋冪敤setToken淇濆瓨鍒版湰鍦板瓨鍌�
+            const { setToken } = require('@/utils/auth')
+            setToken(token)
+            
+            this.loginSuccess()
+          } else {
+            // OpenID鏈粦瀹氭垨楠岃瘉澶辫触锛岄渶瑕佽幏鍙栨墜鏈哄彿缁戝畾
+            console.log('璇penID灏氭湭缁戝畾鎴栭獙璇佸け璐ワ紝闇�瑕佽幏鍙栨墜鏈哄彿')
+            this.$modal.closeLoading()
+            this.$modal.msgError(response.msg || '璇ュ井淇¤处鍙峰皻鏈粦瀹氾紝璇风偣鍑诲井淇′竴閿櫥褰曟寜閽幏鍙栨墜鏈哄彿鎺堟潈')
+          }
+        }).catch(error => {
+          this.$modal.closeLoading()
+          console.error('鐧诲綍澶辫触:', error)
+          this.$modal.msgError('鐧诲綍澶辫触锛岃閲嶈瘯')
         })
       }
     }
@@ -246,6 +403,14 @@
           height: 90rpx;
           font-size: 32rpx;
         }
+        
+        .wechat-login-btn {
+          height: 90rpx;
+          font-size: 32rpx;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
       }
 
       .reg {

--
Gitblit v1.9.1