From f87db8007e5544e0f2eda657d09fc35a175428a9 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期二, 26 八月 2025 12:34:31 +0800
Subject: [PATCH] gx公众号初始化
---
src/router/index.ts | 1
src/views/HomeLoading/index.vue | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 208 insertions(+), 0 deletions(-)
diff --git a/src/router/index.ts b/src/router/index.ts
index 23e9128..c6ddb39 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -8,6 +8,7 @@
import { Session } from '@/utils/storage'
const routes: Array<RouteRecordRaw> = [
+ { path: '/HomeLoading', name: 'HomeLoading', component: () => import('views/HomeLoading/index.vue'),meta:{title:'胜透服务'}},
{ path: '/login', name: 'login', component: () => import('views/login/index.vue'),meta:{title:'登录'}},
{ path: '/', name: 'Home', component: () => import('views/home/index.vue'),meta:{title:'首页'}},
{ path: '/my', name: 'myMine', component: () => import('views/myMine/index.vue'),meta:{title:'我的'}},
diff --git a/src/views/HomeLoading/index.vue b/src/views/HomeLoading/index.vue
new file mode 100644
index 0000000..2b56715
--- /dev/null
+++ b/src/views/HomeLoading/index.vue
@@ -0,0 +1,207 @@
+<template>
+ <!-- 医疗风全屏加载 -->
+ <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>
+</template>
+
+ <script setup>
+ import { ref, onMounted } from 'vue'
+ import {useRoute,useRouter} from 'vue-router'
+ import { ajaxGet ,ajaxPost} from '@/utils/axios'
+ import { Session } from '@/utils/storage'
+ import { Toast } from 'vant'
+ import logo from 'assets/logo.png'
+ import { userInfoStore } from '@/stores/userInfo'
+ const userInfo = userInfoStore()
+ const route = useRoute()
+ const router=useRouter()
+ const isLoading = ref(true)
+ const getUserinfo=()=>{
+ ajaxPost('/patient/info/getPatientInfo','').then((re:any)=>{
+ console.log(re,'得到患者的信息getUserinfo')
+ userInfo.setPatient(re)
+ router.push('/')
+ })
+ }
+ onMounted(() => {
+ const token=Session.get('token')
+ if (token && userInfo.info.openid!==''){
+ console.log('已经登录了')
+ getUserinfo()
+ return
+ }
+ console.log('初始化',route)
+ const queryInfo=route.query
+ const {code}=queryInfo
+ console.log(code)
+ if (code){// 得到code换取openid
+ ajaxGet('wechat/code',{code}).then((re)=>{
+ console.log(re,'获取openid')
+ 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===''){
+ console.log('需要登录')
+ router.push('login')
+ } else {
+ Session.set('token', re)
+ Toast('登录成功')
+ getUserinfo()
+ }
+ })
+ }
+ })
+ }
+ else { // 没有code 就重新进入微信url获取code
+ const appid = 'wx790bd67db6206070' // 微信APPid
+ const local = window.location.href
+ window.location.href =
+ 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
+ appid +
+ '&redirect_uri=' +
+ encodeURIComponent(local) +
+ '&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'
+ }
+
+ })
+ </script>
+
+ <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);
+ }
+ }
+
+ /* 主内容区 */
+ .main-content {
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ padding: 20px;
+ text-align: center;
+ background-color: #f8f9fa;
+ color: #333;
+ font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
+ }
+
+ .main-content h1 {
+ font-size: 22px;
+ color: #06c;
+ margin-bottom: 12px;
+ font-weight: 600;
+ }
+
+ .main-content p {
+ color: #666;
+ font-size: 15px;
+ line-height: 1.6;
+ max-width: 300px;
+ }
+ </style>
\ No newline at end of file
--
Gitblit v1.8.0