From d56edd7df4faea21454afe1198694450d5a1b23f Mon Sep 17 00:00:00 2001 From: longchao <588888888@qq.com> Date: Wed, 12 Nov 2025 18:20:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 14 ++++ package.json | 1 + src/components/Header.vue | 70 +++++++++--------- src/main.js | 7 ++ src/router/index.js | 2 +- src/utils/request.js | 42 ++++++++--- src/views/HomeView.vue | 27 ++++--- src/views/HosInformation.vue | 17 +++-- src/views/adminLogin.vue | 172 +++++++++++-------------------------------- src/views/paymentMethod.vue | 25 ++----- 10 files changed, 168 insertions(+), 209 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e1ad2c..a4fc876 100755 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "vue-clickaway": "^2.2.2", "vue-qr": "^4.0.9", "vue-router": "^3.5.1", + "vue-wxlogin": "^1.0.5", "vuex": "^3.6.2" }, "devDependencies": { @@ -11415,6 +11416,19 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "node_modules/vue-wxlogin": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vue-wxlogin/-/vue-wxlogin-1.0.5.tgz", + "integrity": "sha512-JJTL9qwROH7c/OWU8mube6Yd6kwUTItCg4tyjZQVby1MKWNuNz/f0eeRd0bhOdFyPSFmVazTF3nw+Jhfo4FzVA==", + "license": "MIT", + "dependencies": { + "vue": "^2.4.2" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/vuex": { "version": "3.6.2", "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz", diff --git a/package.json b/package.json index 1e13c71..63da9b7 100755 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "vue-clickaway": "^2.2.2", "vue-qr": "^4.0.9", "vue-router": "^3.5.1", + "vue-wxlogin": "^1.0.5", "vuex": "^3.6.2" }, "devDependencies": { diff --git a/src/components/Header.vue b/src/components/Header.vue index 9950fda..eb5b281 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -4,10 +4,10 @@
-
{{ item.name }} @@ -33,27 +33,36 @@ export default { user: '', headerShow:false, doctor_id:'', + authtoken:false, currentPath:'', routerNavList:[ - { - name:'个人信息', - path:'/doctorInformation' - }, - { - name:'医院管理', - path:'/hospitalManage' - }, - { - name:'收款管理', - path:'/paymentMethod' - }, + // { + // name:'个人信息', + // path:'/doctorInformation' + // }, + // { + // name:'医院管理', + // path:'/hospitalManage' + // }, + // { + // name:'收款管理', + // path:'/paymentMethod' + // }, ] } }, mounted(){ - this.user = localStorage.getItem('nick') + this.user = localStorage.getItem('user_name') + var user_type = localStorage.getItem('user_type') + if(!user_type || user_type == 'undefined') { + this.user = '超级管理员' + }else{ + if(user_type && user_type != 'undefined') this.user = (user_type == 1?'医生':'助手') + this.user + } this.doctor_id = localStorage.getItem('doctor_id') - if(this.user){ + this.authtoken = localStorage.getItem('authtoken') + + if(this.authtoken){ this.headerShow = true // 初始化时设置当前路由高亮 this.updateCurrentPath() @@ -76,26 +85,17 @@ export default { }) }, loginOut(){ - // 退出登录 - this.$http('POST', '/login_out', {}).then(response => { - if(response.status){ - // 移除信息待定 ---需要修改喔 - localStorage.removeItem('token'); - localStorage.removeItem('nick'); - localStorage.removeItem('doctor_id'); - // 退出后跳转到登录页或首页 - this.$router.push('/login'); - }else{ - this.$message.error(response.data.info) - } - }).catch(error => { - console.error(error, 'error') - }) + localStorage.removeItem('token'); + localStorage.removeItem('user_name'); + localStorage.removeItem('authtoken'); + localStorage.removeItem('user_type'); + localStorage.removeItem('doctor_id'); + this.$router.push('/login'); }, // 更新当前路径高亮状态 updateCurrentPath() { const currentRoute = this.$route.path; - const matchedItem = this.routerNavList.find(item => + const matchedItem = this.routerNavList.find(item => currentRoute.startsWith(item.path) ); if (matchedItem) { @@ -113,7 +113,7 @@ export default { } }, beforeDestroy() { - + } } diff --git a/src/main.js b/src/main.js index 6c9ef60..7d8a44f 100755 --- a/src/main.js +++ b/src/main.js @@ -25,6 +25,13 @@ Vue.directive('clickaway', clickaway); Vue.mixin(HeaderIcon) Vue.use(PositionMessage) + +window.issuper = true; +var user_type = localStorage.getItem('user_type') +if(user_type && user_type != 'undefined') window.issuper = false; + +window.doctor_id = localStorage.getItem('doctor_id'); + new Vue({ router, store, diff --git a/src/router/index.js b/src/router/index.js index 2c7b55b..b06ab54 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -11,7 +11,7 @@ const routes = [ { path: '/login', name: '登录', - component: () => import('../views/login.vue'), + component: () => import('../views/adminLogin.vue'), meta: { hideBreadcrumb: true, // 首页不显示面包屑 requiresAuth:false diff --git a/src/utils/request.js b/src/utils/request.js index 91a00d6..e0c7365 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -17,18 +17,19 @@ service.interceptors.request.use( // 在发送请求之前做一些处理,例如添加 token // const token = localStorage.getItem("token"); const token = localStorage.getItem("authtoken"); - + const doctor_id = localStorage.getItem("doctor_id"); + // 检查是否存在 token,如果不存在则跳转到登录页 - if (!token) { + if (!token && location.pathname != '/login' && location.href.indexOf('/login') == -1) { // 可以根据需要决定是否提示用户 console.warn("未检测到登录信息,请重新登录"); window.location.href = "/login"; return Promise.reject(new Error("未登录")); } - - if (token) { - config.headers["Auth"] = `${token}`; - } + + if (token) config.headers["Auth"] = `${token}`; + if (doctor_id) config.headers["DID"] = `${doctor_id}`; + return config; }, (error) => { @@ -68,10 +69,19 @@ service.interceptors.response.use( console.error("请求失败", error.message); } } + return Promise.reject(error); } ); +function logout() { + localStorage.removeItem('authtoken') + localStorage.removeItem('doctor_id') + localStorage.removeItem('user_name') + localStorage.removeItem('user_type') + location.href = '/login' +} + /** * 封装请求方法 * @param {string} method 请求方法 (GET, POST, PUT, DELETE 等) @@ -91,9 +101,13 @@ const request = (method, url, data = {}, config = {}) => { ...config, }); res.then(response => { - if(response && response.msg && response.msg.indexOf('非法操作') > -1) { - localStorage.removeItem('authtoken') - location.href = '/ErrorAccess' + if(response && response.msg && response.msg.indexOf('您没有访问权限~~~') > -1) { + location.href = '/' + return; + } + + if(response && response.msg && (response.msg.indexOf('非法操作') > -1 || response.code == 40002)) { + logout() return; } }).catch(error => { @@ -111,9 +125,13 @@ const request = (method, url, data = {}, config = {}) => { }); respost.then(response => { - if(response && response.msg && response.msg.indexOf('非法操作') > -1) { - localStorage.removeItem('authtoken') - location.href = '/ErrorAccess' + if(response && response.msg && response.msg.indexOf('您没有访问权限~~~') > -1) { + location.href = '/' + return; + } + + if(response && response.msg && (response.msg.indexOf('非法操作') > -1 || response.code == 40002)) { + logout() return; } }).catch(error => { diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 90dc1c3..dce5ff4 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -1,7 +1,7 @@ @@ -246,6 +150,10 @@ export default { color: #626573; margin-top: 32px; margin-bottom: 12px; + b{ + font-weight: bold; + color: #1E2226; + } } .img { @@ -379,4 +287,10 @@ export default { #ecomLoginForm { height: 280px; } + +.wxlogin-qrcode-box{ + div:first-of-type{ + height: 214px; + } +} \ No newline at end of file diff --git a/src/views/paymentMethod.vue b/src/views/paymentMethod.vue index 25feb8b..41cc2a2 100644 --- a/src/views/paymentMethod.vue +++ b/src/views/paymentMethod.vue @@ -21,7 +21,13 @@ - + + +