Browse Source

修改医生列表页面-医生管理页面、头部样式

pull/14/head
zq 1 month ago
parent
commit
d4de04a0a6
  1. 5
      src/App.vue
  2. 83
      src/components/Header.vue
  3. 12
      src/router/index.js
  4. 12
      src/utils/request.js
  5. 14
      src/views/HomeView.vue
  6. 13
      src/views/hospitalManage.vue
  7. 3
      src/views/login.vue
  8. 3
      src/views/paymentMethod.vue

5
src/App.vue

@ -11,7 +11,7 @@
<SliderMenu v-if="showSidebar" :menuData="slidermenu" :customize="customize"></SliderMenu>
<el-container class="main-right-content">
<!-- 面包屑导航 -->
<Breadcrumb />
<Breadcrumb v-if="user"/>
<el-main class="app-content">
<global-loading>
<router-view />
@ -34,6 +34,7 @@ export default {
data() {
return {
isCollapse: true,
user:null
};
},
components: {
@ -46,6 +47,8 @@ export default {
...mapState(['hosMenuData','slidermenu','customize','showSidebar', 'showFooter', 'showHeader']) // VuexshowSidebar
},
mounted() {
this.user = localStorage.getItem('nick')
window.addEventListener('beforeunload', this.clearStorage);
},
beforeUnmount() {

83
src/components/Header.vue

@ -3,33 +3,84 @@
<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">
<div class="header-right flex" v-if="headerShow">
<!-- <div :class="right-item" @click="goToPage('/doctorInformation?doctor_id=' + doctor_id)">个人信息</div>
<div :class="right-item" @click="goToPage('/hosInformation')">医院管理</div> -->
<div :class="['right-item', currentPath == item.path ? 'right-item-active' :'']" v-for="(item,index) in routerNavList" :key="index" @click="goToPage(item.path)">{{ item.name }}</div>
<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>
<img src="../assets/header-drop.svg" alt="">
<span>{{user}}</span>
<div class="img"></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-plus">黄金糕</el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-plus">狮子头</el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-plus-outline">螺蛳粉</el-dropdown-item>
<el-dropdown-item icon="el-icon-check">双皮奶</el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-check">蚵仔煎</el-dropdown-item>
<!-- <el-dropdown-item><a href="/agent/domainList" target="_blank">我的域名</a></el-dropdown-item> -->
<el-dropdown-item><div @click="loginOut">退出</div></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
</el-dropdown>
</div>
</div>
</template>
<script>
export default {
data(){
return{
user: '',
headerShow:false,
doctor_id:'',
currentPath:'',
routerNavList:[
{
name:'个人信息',
path:'/doctorInformation'
},
{
name:'医院管理',
path:'/'
},
{
name:'收款管理',
path:'/paymentMethod'
},
]
}
},
mounted(){
this.user = localStorage.getItem('nick')
this.doctor_id = localStorage.getItem('doctor_id')
if(this.user){
this.headerShow = true
}else{
this.headerShow = false
}
},
methods: {
toHome() {
this.$router.push({
path: '/'
})
},
goToPage(path) {
this.currentPath = path;
this.$router.push({
path: path + '?doctor_id=' + this.doctor_id
})
},
loginOut(){
// 退
this.$http('POST', '/login_out', {}).then(response => {
if(response.status){
localStorage.removeItem('token');
localStorage.removeItem('nick');
localStorage.removeItem('doctor_id');
}else{
this.$message.error(response.data.info)
}
}).catch(error => {
console.error(error, 'error')
})
}
}
}
@ -56,8 +107,8 @@ export default {
}
.header-right {
width: 362px;
justify-content: flex-end;
gap:20px;
.el-dropdown-link {
cursor: pointer;
}
@ -72,6 +123,12 @@ export default {
transition: all .3s;
}
}
.right-item-active{
border-radius: 6px;
background: rgba(255, 255, 255, 0.4);
color: #006AFF;
transition: all .3s;
}
.el-dropdown .right-item{
padding: 0 10px;
cursor: pointer;

12
src/router/index.js

@ -26,6 +26,18 @@ const routes = [
}
},
{
path: '/hospitalManage',
name: '医院管理',
component: HomeView,
props:{
onlyHosFlag:true
},
meta: {
title: '医院管理',
hideBreadcrumb: true // 首页不显示面包屑
}
},
{
path: '/doctorInformation',
name: '医生信息',
component: () => import('../views/DoctorInformation.vue'),

12
src/utils/request.js

@ -15,7 +15,17 @@ const service = axios.create({
service.interceptors.request.use(
(config) => {
// 在发送请求之前做一些处理,例如添加 token
const token = localStorage.getItem("token");
// const token = localStorage.getItem("token");
const token = localStorage.getItem("authtoken");
// 检查是否存在 token,如果不存在则跳转到登录页
if (!token) {
// 可以根据需要决定是否提示用户
console.warn("未检测到登录信息,请重新登录");
window.location.href = "/login";
return Promise.reject(new Error("未登录"));
}
if (token) {
config.headers["Auth"] = `${token}`;
}

14
src/views/HomeView.vue

@ -1,7 +1,7 @@
<template>
<div class="min-width pagePadding " style="background: #F5F7FA;" v-if="pageShow">
<div class="doctor-list-wrap ">
<p class="pageTitle">医生列表</p>
<p class="pageTitle">{{onlyHosFlag ? '医院管理' :'医生列表'}}</p>
<el-form>
<div class="selectAllTable-wrap flex-between mt32">
<div class="left flex">
@ -16,16 +16,20 @@
@click="batchOperate('1')">
批量启用</GuipButton>
</div>
<div class="right flex">
<div class="right" v-if="onlyHosFlag">
<GuipButton type="system" size="form" @click="addHospital(item)">添加医院</GuipButton>
</div>
<div class="right flex" v-else>
<span>搜索医生</span>
<GuipInput ref="GuipInput" style="margin:0 24px 0 12px" width="280px" height="32px"
placeholder="输入姓名" @blur="inputBlur" v-model="doctorName" />
<GuipButton @click="addDoctor" size="form">新增医生</GuipButton>
</div>
</div>
<div class="tableList mt32" v-for="(item, index) in doctorList" :key="index">
<div class="top flex-between mb24">
<div class="top flex-between mb24" v-if="!onlyHosFlag">
<div class="left left1 flex">
<el-checkbox @change="handleCheckAllChange(index)" v-model="item.checked"></el-checkbox>
<el-avatar :src="item.avator" v-if="item.avator"></el-avatar>
@ -89,7 +93,7 @@
</el-table-column>
</GuipTable>
<PaymentMethod :list="payList"/>
<PaymentMethod :list="payList" v-if="!onlyHosFlag"/>
</div>
</el-form>
@ -108,6 +112,7 @@ import { mapState } from 'vuex';
import PaymentMethod from '@/views/paymentMethod.vue';
export default {
props:['onlyHosFlag'],
data() {
return {
list: {
@ -158,6 +163,7 @@ export default {
// CustomDropdown
},
created() {
console.log(this.onlyHosFlag,'onlyHosFlag===');
const { authtoken } = this.$route.query;
if(authtoken) {
localStorage.setItem('authtoken', authtoken);

13
src/views/hospitalManage.vue

@ -0,0 +1,13 @@
<template>
<div>
<el-form>
</el-form>
</div>
</template>
<script>
</script>
<style>
</style>

3
src/views/login.vue

@ -12,7 +12,6 @@
<b>登录即代表同意 <a @click="jumpDoc">用户协议</a> <a @click="jumpDoc">隐私条款</a></b>
</div>
<p class="tip">若无账号请先联系客服注册</p>
</div>
</div>
<div class="style_footerWrapper">
@ -119,7 +118,7 @@ export default {
a {
text-decoration: none;
color: #006AFF;
cursor: pointer;
cursor: pointer;
}
}
}

3
src/views/paymentMethod.vue

@ -108,7 +108,6 @@ export default {
list: {
deep: true,
handler(newVal) {
console.log(newVal,'newVal=====');
this.payList = [...newVal];
this.tableLoading = false;
}
@ -126,8 +125,6 @@ export default {
this.departId =depart_id;
this.doctorId =doctor_id;
}
console.log(this.doctor_id,'=doctor_id===');
},
mounted() {
if(this.doctor_id){

Loading…
Cancel
Save