| | |
| | | const visible=ref(3) |
| | | const seconds=ref(60) |
| | | const loadingBUt=ref(false) |
| | | const isLoading = ref(true) |
| | | const ruleForm2=ref({ |
| | | newPassword:'', |
| | | pass:'', |
| | |
| | | }) |
| | | } |
| | | const onSubmit3=(values:any)=>{ |
| | | userInfo.info.openid='odFja56xfwSZDHhAEMn-JotSzlRc' |
| | | if (userInfo.info.openid===''){ |
| | | Toast('没有获取到openid') |
| | | Toast('没有获取到openid33') |
| | | return |
| | | } |
| | | console.log('提交表单',ruleForm3.value,values) |
| | |
| | | return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === 'micromessenger' |
| | | } |
| | | onMounted(()=>{ |
| | | Session.remove('token') |
| | | // userInfo.setInfo({openid:'odFja56xfwSZDHhAEMn-JotSzlRc',nickname:'大橙子',headimgurl:'https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJB…ibLYic7qC9cm0Yjia3VkHRPVa12N0OK6dgdz984biceWg/132'}) |
| | | // Session.set('token', 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQQVRfU0ZfUEFUOTE0MzE2NDAyMTk1N0pOcUMiLCJhdXRoIjpbeyJhdXRob3JpdHkiOiJhZG1pbiJ9XSwiaWF0IjoxNzUyMDU5ODk0LCJleHAiOjE3NTI0MTk4OTR9.a-Zw910bXendD9Oq7jxjDYfaWLf693maoh7MgAfqK9Y') |
| | | // getUserinfo() |
| | | // Session.remove('token') |
| | | // 判断是否有token 和userinfo |
| | | const token=Session.get('token') |
| | | if (token && userInfo.info.openid!==''){ |
| | | console.log('已经登录了') |
| | | getUserinfo() |
| | | return |
| | | } |
| | | if (isWechat()){ |
| | | console.log('初始化',route) |
| | | const queryInfo=route.query |
| | |
| | | ajaxPost('patient/info/wechatLogin','openId='+openId,config).then((re:any)=>{ |
| | | console.log('openid换的accesstoken=',re) |
| | | if (re===''){ |
| | | isLoading.value=false |
| | | Toast('请填写表单登录') |
| | | } else { |
| | | Session.set('token', re) |
| | | isLoading.value=false |
| | | Toast('登录成功') |
| | | getUserinfo() |
| | | } |
| | |
| | | |
| | | } |
| | | } else { |
| | | isLoading.value=false |
| | | console.log('不是微信浏览器') |
| | | Dialog.alert({ |
| | | 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" |
| | |
| | | font-weight: 400; |
| | | color: #aaa; |
| | | |
| | | // background: black; |
| | | .toptype { |
| | | width: 100%; |
| | | } |
| | |
| | | padding-top: 70px; |
| | | text-align: center; |
| | | padding-left: 30px; |
| | | |
| | | // border: 1px solid black; |
| | | font-size: 15px; |
| | | padding-bottom: 70px; |
| | | } |
| | |
| | | font-weight: 400; |
| | | color: #aaa; |
| | | 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; |
| | | } |
| | | |
| | | // line-height: 50px; |
| | | .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> |