From 5d6c0e614bab737842e402077bee47a9d4e18733 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期五, 14 十一月 2025 14:47:39 +0800
Subject: [PATCH] gx密码输入提示

---
 src/views/login/index.vue |  205 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 172 insertions(+), 33 deletions(-)

diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 74be506..0bd3477 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -11,7 +11,7 @@
     const config={
         headers: {
             'Content-Type': 'application/x-www-form-urlencoded'
-        },
+        }
     }
     const userInfo = userInfoStore()
     const route = useRoute()
@@ -21,6 +21,7 @@
     const visible=ref(3)
     const seconds=ref(60)
     const loadingBUt=ref(false)
+    const isLoading = ref(true)
     const ruleForm2=ref({
         newPassword:'',
         pass:'',
@@ -34,18 +35,27 @@
     const asyncValidator = (val:any) =>{
         return val===ruleForm2.value.pass
     }
+    const getUserinfo=()=>{
+        ajaxPost('/patient/info/getPatientInfo','').then((re:any)=>{
+            console.log(re,'得到患者的信息getUserinfo')
+            userInfo.setPatient(re)
+            router.push('/')
+        })
+    }
     const onSubmit = (values:any) => {
         console.log('submit', values)
+        console.log('提交表单',userInfo.info)
         loadingBUt.value=true
-        ajaxPost('/patient/info/wechatLogin2',`mobile=${username.value}&password=${password.value}`,config).then((re:any)=>{
+        const openid=userInfo.info.openid
+        ajaxPost('/patient/info/wechatLogin2',`mobile=${username.value}&password=${password.value}&openId=${openid}`,config).then((re:any)=>{
             console.log(re)
             if (re===''){
                 Toast('登录失败,请重新登录')
             } else {
                 console.log('得到tokeng')
                 Session.set('token', re)
-                Toast('登录成功。。。。。')
-                router.push('/')
+                Toast('登录成功')
+                getUserinfo()
             }
         }).finally(()=>{
             loadingBUt.value=false
@@ -63,6 +73,7 @@
         })
     }
     const onSubmit3=(values:any)=>{
+        // userInfo.info.openid='odFja56xfwSZDHhAEMn-JotSzlRc'
         if (userInfo.info.openid===''){
             Toast('没有获取到openid')
             return
@@ -73,7 +84,9 @@
             if (re===false){
                 Toast('登录失败,请重新登录')
             } else {
-                console.log(re)
+                Session.set('token', re)
+                Toast('登录成功')
+                getUserinfo()
             }
         })
     }
@@ -113,6 +126,19 @@
         return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === 'micromessenger'
     }
     onMounted(()=>{
+        isLoading.value=true
+        // userInfo.setInfo({openid:'odFja56xfwSZDHhAEMn-JotSzlRc',nickname:'大橙子',headimgurl:'https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJB…ibLYic7qC9cm0Yjia3VkHRPVa12N0OK6dgdz984biceWg/132'})
+        // Session.set('token', 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQQVRfU0ZfUEFUOTE0MzE2NDAyMTk1N0pOcUMiLCJhdXRoIjpbeyJhdXRob3JpdHkiOiJhZG1pbiJ9XSwiaWF0IjoxNzU2MjAwNTg4LCJleHAiOjE3NTY1NjA1ODh9.Oq8Q32JIcRkcKLje3MUZlidDZX8dFzo1WKl5DdpqlAM')
+        // getUserinfo()
+        // Session.remove('token')
+        // 判断是否有token 和userinfo
+        const token=Session.get('token')
+        // alert(token)
+        if (token && userInfo.info.openid!==''){
+            console.log('已经登录了')
+            getUserinfo()
+            return
+        }
         if (isWechat()){
             console.log('初始化',route)
             const queryInfo=route.query
@@ -121,18 +147,18 @@
             if (code){ // 得到code换取openid
                 ajaxGet('wechat/code',{code}).then((re:any)=>{
                     console.log(re,'获取openid')
-                    userInfo.setUserInfo({openid:re.openid,nickname:re.nickname,headimgurl:re.headimgurl})
+                    userInfo.setInfo({openid:re.openid,nickname:re.nickname,headimgurl:re.headimgurl})
                     const openId = re.openid
                     if (openId) { // 检查登录
                         ajaxPost('patient/info/wechatLogin','openId='+openId,config).then((re:any)=>{
                             console.log('openid换的accesstoken=',re)
                             if (re===''){
-                                Toast('请填写表单登录。。')
+                                isLoading.value=false
+                                Toast('请填写表单登录')
                             } else {
-                                console.log()
                                 Session.set('token', re)
-                                Toast('登录成功。。。。。')
-                                router.push('/')
+                                Toast('登录成功')
+                                getUserinfo()
                             }
                         })
                     }
@@ -156,14 +182,26 @@
                 title: '提示',
                 message: '请在微信中打开浏览',
             }).then(() => {
-                // on close
             })
         }
     })
 </script>
 
 <template>
-    <div class="login">
+    <div v-if="isLoading" class="loading-screen">
+        <div class="loading-content">
+            <!-- 自定义Logo容器 -->
+            <div class="logo-container">
+                <img :src="logo" alt="Logo" class="custom-logo">
+                <!-- 可选:添加脉冲光环 -->
+                <div class="pulse-ring primary"></div>
+                <div class="pulse-ring secondary"></div>
+            </div>
+            <!-- 标题文字 -->
+            <p class="loading-text">守护健康 · 加载中</p>
+        </div>
+    </div>
+    <div v-else class="login">
         <div class="titlebiaoti">
             <van-image
                 fit="cover"
@@ -182,21 +220,22 @@
                         placeholder="请输入登录名"
                         :rules="[{ required: true, message: '请输入登录名' }]"
                     />
+                    <!-- :rules="[{ required: true, message: '请填写密码' }]" -->
                     <van-field
                         v-model="password"
                         type="password"
                         name="密  码"
                         label="密&nbsp&nbsp码"
-                        placeholder="6-16位数字或者字母组合"
-                        :rules="[{ required: true, message: '请填写密码' }]"
+                        placeholder="请输入证件号码后6位"
+
                     >
                         <template #button>
                             <van-button size="small" type="default" @click="wjmm">忘记密码</van-button>
                         </template>
                     </van-field>
                 </van-cell-group>
-                <div style="margin: 16px;text-align:center;">
-                    <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769AFF;">网站服务条款、法律声明及隐私权政策</b></div>
+                <div style="margin: 16px;text-align: center;">
+                    <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769aff;">网站服务条款、法律声明及隐私权政策</b></div>
                     <van-button :loading="loadingBUt" round block type="primary" native-type="submit">
                         登  录
                     </van-button>
@@ -223,14 +262,14 @@
                         </template>
                     </van-field>
                 </van-cell-group>
-                <div style="margin: 16px;text-align:center;">
-                    <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769AFF;">网站服务条款、法律声明及隐私权政策</b></div>
+                <div style="margin: 16px;text-align: center;">
+                    <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769aff;">网站服务条款、法律声明及隐私权政策</b></div>
                     <van-button :loading="loadingBUt" round block type="primary" native-type="submit">
                         登  录
                     </van-button>
                 </div>
             </van-form>
-            <van-row class="loginType">
+            <van-row class="logintype">
                 <div class="toptype">
                     <van-divider
                         :style="{ color: '#1989fa', borderColor: '#1989fa', padding: '0 16px' }"
@@ -316,43 +355,143 @@
     </div>
 </template>
 <style lang="scss">
-.login{
+.login {
     width: 100%;
     min-height: 900px;
 }
-.logintt{
+
+.logintt {
     text-align: center;
 }
-.loginwenz{
+
+.loginwenz {
     font-size: 12px;
     font-weight: 400;
-    color: #AAAAAA;
+    color: #aaa;
 }
-.loginType{
+
+.logintype {
     width: 100%;
     margin-top: 120px;
     text-align: center;
     font-size: 11px;
     font-weight: 400;
-    color: #AAAAAA;
-    // background: black;
-    .toptype{
+    color: #aaa;
+
+    .toptype {
         width: 100%;
     }
 }
-.titlebiaoti{
+
+.titlebiaoti {
     padding-top: 70px;
-    text-align:center;
+    text-align: center;
     padding-left: 30px;
-    // border: 1px solid black;
     font-size: 15px;
     padding-bottom: 70px;
 }
-.tss{
+
+.tss {
     font-size: 10px;
     font-weight: 400;
-    color: #AAAAAA;
+    color: #aaa;
     height: 50px;
-    // line-height: 50px;
+}
+</style>
+<style scoped>
+/* 医疗风背景 */
+.loading-screen {
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100vw;
+    height: 100vh;
+    background: linear-gradient(140deg, #e6f7ff, #f0fcff, #e0f9f1);
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    z-index: 9999;
+    font-family: "Helvetica Neue", Arial, sans-serif;
+}
+
+.loading-content {
+    text-align: center;
+}
+
+/* Logo容器 */
+.logo-container {
+    position: relative;
+    display: inline-block;
+}
+
+/* 自定义Logo样式 */
+.custom-logo {
+    width: 50px; /* 根据实际Logo大小调整 */
+    animation: fadeIn 1s ease-in-out;
+}
+
+/* 脉冲光环(衬托科技感) */
+.pulse-ring {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    width: 80px;
+    height: 80px;
+    margin-left: -40px;
+    margin-top: -40px;
+    border-radius: 50%;
+    border: 1px solid #00a0e9;
+    opacity: 0;
+    animation: pulse 2s ease-out infinite;
+}
+
+.pulse-ring.primary {
+    animation-delay: 0s;
+}
+
+.pulse-ring.secondary {
+    animation-delay: 0.6s;
+    border-color: #06c;
+}
+
+@keyframes pulse {
+    0% {
+        transform: scale(0.8);
+        opacity: 0.6;
+    }
+
+    50% {
+        opacity: 0.2;
+    }
+
+    100% {
+        transform: scale(1.4);
+        opacity: 0;
+    }
+}
+
+/* 加载文字 */
+.loading-text {
+    color: #06c;
+    font-size: 15px;
+    font-weight: 500;
+    letter-spacing: 1px;
+    line-height: 1.5;
+    opacity: 0.9;
+    animation: fadeInUp 0.8s ease-out;
+    text-shadow: 0 1px 3px rgba(0, 102, 204, 0.1);
+    margin-top: 40px;
+}
+
+@keyframes fadeInUp {
+    from {
+        opacity: 0;
+        transform: translateY(30px);
+    }
+
+    to {
+        opacity: 1;
+        transform: translateY(0);
+    }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0