Browse Source

访问链接需要带上token

pull/1/head
kuaileWu 2 weeks ago
parent
commit
456bd05d40
  1. BIN
      src/assets/header-logo.png
  2. 18
      src/components/Header.vue
  3. 4
      src/main.js
  4. 25
      src/router/index.js
  5. 30
      src/utils/request.js
  6. 14
      src/views/AddNewTreatment.vue
  7. 17
      src/views/DoctorInformation.vue
  8. 15
      src/views/ErrorAccess.vue
  9. 81
      src/views/HomeView.vue

BIN
src/assets/header-logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

18
src/components/Header.vue

@ -1,12 +1,12 @@
<template>
<div class="header-wrap ">
<div class="header-logo">
<div class="header-logo" @click="toHome">
<img src="../assets/header-logo.png" alt="">
</div>
<div class="header-right flex">
<!-- <div class="right-item">权限设置</div>
<div class="right-item">岗位设置</div> -->
<el-dropdown trigger="click">
<!-- <el-dropdown trigger="click">
<div class="right-item flex el-dropdown-link">
<img class="right-item-icon" src="../assets/header-icon.png" alt="">
<span>学术论文出版</span>
@ -19,10 +19,21 @@
<el-dropdown-item icon="el-icon-check">双皮奶</el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-check">蚵仔煎</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown> -->
</div>
</div>
</template>
<script>
export default {
methods: {
toHome() {
this.$router.push({
path: '/'
})
}
}
}
</script>
<style lang="scss" scoped>
.flex {
display: flex;
@ -38,6 +49,7 @@
position: absolute;
z-index: 9;
.header-logo {
cursor: pointer;
img {
height: 46px;
}

4
src/main.js

@ -27,8 +27,8 @@ new Vue({
render: h => h(App)
}).$mount('#app')
// function q(e) {
// for (var t = 1; t < arguments.length; t++) {
// function q(e) {
// for (var t = 1; t < arguments.length; t++) {
// var r = null != arguments[t] ? arguments[t] : {};
// t % 2 ? F(Object(r), !0).forEach((function (t) { T(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : F(Object(r)).forEach((function (t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e }

25
src/router/index.js

@ -5,16 +5,14 @@ import HomeView from '../views/HomeView.vue';
Vue.use(VueRouter)
const whiteSlideList = [ '/ui', '/hosInformation']; //侧边导航白名单
const blackHeaderList = [
]; //头部导航黑名单
const whiteFooterList = ['/','/doctorInformation' ,'/hosInformation','/addNewTreatment'
]; //底部白名单
const blackHeaderList = ['/ErrorAccess']; //头部导航黑名单
const whiteFooterList = ['/','/doctorInformation' ,'/hosInformation','/addNewTreatment']; //底部白名单
const routes = [
{
path: '/',
name: '首页',
component: HomeView,
meta: {
meta: {
title: '医生列表',
hideBreadcrumb: true // 首页不显示面包屑
}
@ -23,16 +21,25 @@ const routes = [
path: '/doctorInformation',
name: '医生信息',
component: () => import('../views/DoctorInformation.vue'),
meta: {
meta: {
title: '编辑信息',
breadcrumbParent: '首页' // 手动指定父级
}
},
{
path: '/ErrorAccess',
name: '访问出错',
component: () => import('../views/ErrorAccess.vue'),
meta: {
title: '访问出错',
hideBreadcrumb: true // 首页不显示面包屑
}
},
{
path: '/hosInformation',
name: '医院信息',
component: () => import('../views/HosInformation.vue'),
meta: {
meta: {
title: '编辑医院',
breadcrumbParent: '医生信息' // 手动指定父级
// r如果想隐藏中间层级
@ -40,12 +47,12 @@ const routes = [
// hideInBreadcrumb: true // 可选:隐藏当前项
}
},
{
path: '/addNewTreatment',
component: () => import( /* webpackChunkName: "addNewTreatment" */ '../views/AddNewTreatment.vue'),
name: '新增套餐',
meta: {
meta: {
hideBreadcrumb: true // 首页不显示面包屑
}
},

30
src/utils/request.js

@ -1,6 +1,5 @@
// src/utils/request.js
import axios from "axios";
const baseURL = process.env.VUE_APP_BASE_API;
// 创建 axios 实例
const service = axios.create({
@ -8,7 +7,7 @@ const service = axios.create({
timeout: 60000, // 请求超时时间
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'AUTHADMIN' :'b10346e6-5003-4644-8e48-e14f49874338'
'AUTHADMIN' :localStorage.getItem("authtoken")
},
});
@ -75,20 +74,43 @@ const request = (method, url, data = {}, config = {}) => {
const lowerCaseMethod = method.toLowerCase();
if (lowerCaseMethod === "get") {
// GET 请求将参数拼接到 URL 上
return service({
var res = service({
method: "get",
url,
params: data,
...config,
});
res.then(response => {
if(response.msg.indexOf('非法操作') > -1) {
localStorage.removeItem('authtoken')
location.href = '/ErrorAccess'
return;
}
}).catch(error => {
console.error('API Error:', error);
});
return res;
} else {
// 其他请求(POST, PUT, DELETE 等)将参数放在请求体中
return service({
var respost = service({
method: lowerCaseMethod,
url,
data,
...config,
});
respost.then(response => {
if(response.msg.indexOf('非法操作') > -1) {
localStorage.removeItem('authtoken')
location.href = '/ErrorAccess'
return;
}
}).catch(error => {
console.error('API Error:', error);
});
return respost;
}
};

14
src/views/AddNewTreatment.vue

@ -140,20 +140,6 @@ export default {
treatMentList: [],//
projectList: [],//
projectTagData: [],
// {
// 27:{
// classify_name:"",
// create_time:"2025-05-29 17:09:43",
// id:"1",
// name:"",
// num:"2",
// pid:"1",
// price:"200.00",
// project_id:"27",
// sort:"1",
// status:"1",
// }
// },
selectedRows: [],
sortedProjectRows: [],
siteForm: {

17
src/views/DoctorInformation.vue

@ -161,22 +161,7 @@ export default {
doctorAvatorUrl: '',
approverWechatUrl:'',
approverWechatFile:[],
options_payword: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
options_payword: [],
groupOptions: [
{ label: '需审批', value: '1' },
{ label: '不需审批', value: '0' },

15
src/views/ErrorAccess.vue

@ -0,0 +1,15 @@
<template>
<div class="main-error">
访问出错...
</div>
</template>
<style lang="scss" scoped>
.main-error{
width: 100%;
height: 100vh;
font-size: 20px;
color: red;
margin-top: 100px;
}
</style>

81
src/views/HomeView.vue

@ -1,5 +1,5 @@
<template>
<div class="min-width pagePadding " style="background: #F5F7FA;">
<div class="min-width pagePadding " style="background: #F5F7FA;" v-if="pageShow">
<div class="doctor-list-wrap ">
<p class="pageTitle">医生列表</p>
<el-form>
@ -107,66 +107,19 @@ export default {
data() {
return {
list: {
approver_phone: "18888888888",
code: "en4b1v",
create: "2025-05-19 16:20:58",
desc: "擅长运用麦粒灸治疗疑难杂症,特别是恶性肿瘤的治疗,显著改善患者免疫状态。",
detail: "北京中医药大学中医临床特聘专家,师从师怀堂和谢锡亮两大中医泰斗,从事针灸临床50余年,善治免疫系统及其它病症如:各种肿瘤癌症,血小板减少或增多,白细胞减少,经常性感冒、支气管哮喘、过敏性紫癜、妇女尿失禁、夜尿增多,痤疮,急慢性肠炎、痛风、颈椎管狭窄、颈肩腰腿痛、疲劳综合征、失眠,及小儿夜啼、厌食和发育不良等症。",
first_visit_audit: "1",
id: "1",
idcard: "510322197808271433",
approver_phone: "",
code: "",
create: "",
desc: "",
detail: "",
first_visit_audit: "",
id: "",
idcard: "",
label: "",
name: "张小琪",
phone: "18888888888",
uid: "46",
departs: {
1: [
{
classify_count: 3,
create: "2025-05-29 16:37:28",
depart_id: "1",
depart_name: "中医科",
doctor_id: "1",
hid: "1",
hispital_name: "",
id: "1",
is_fixed: "1",
project_count: 24,
status: "1",
type: "0"
}
],
2: [
{
classify_count: 3,
create: "2025-05-29 16:37:28",
depart_id: "12",
depart_name: "中医科",
doctor_id: "1",
hid: "1",
hispital_name: "",
id: "1",
is_fixed: "1",
project_count: 24,
status: "1",
type: "0"
},
{
classify_count: 3,
create: "2025-05-29 16:37:28",
depart_id: "11",
depart_name: "中医科",
doctor_id: "1",
hid: "1",
hispital_name: "",
id: "1",
is_fixed: "1",
project_count: 24,
status: "1",
type: "0"
},
]
}
name: "",
phone: "",
uid: "",
departs: {}
},
tableSelections: [],//
tableData: [
@ -185,6 +138,7 @@ export default {
isIndeterminate: false,
doctorList: false,
allChecked: false,
pageShow:false
}
},
components: {
@ -197,6 +151,12 @@ export default {
// CustomDropdown
},
created() {
const { authtoken } = this.$route.query;
if(authtoken) {
localStorage.setItem('authtoken', authtoken);
location.href = '/'
return;
}
store.commit('SET_PAGENAME', '医生管理'); //
},
mounted() {
@ -223,6 +183,7 @@ export default {
})
this.doctorList = list
this.calculateTotalNum()
this.pageShow = true
}
}).catch(error => {
console.error(error, 'error')

Loading…
Cancel
Save