toekn 过期

This commit is contained in:
zoujiandong 2023-07-20 13:50:40 +08:00
parent 0613a4b1a3
commit 9de716d073
6 changed files with 55 additions and 33 deletions

View File

@ -64,7 +64,7 @@ const router = createRouter({
});
// beforeEach router
router.beforeEach(async (to, from, next) => {
router.beforeEach(async(to, from, next) => {
const store = useUserStore();
const permissionStore = usePermissionStore();
@ -78,9 +78,8 @@ router.beforeEach(async (to, from, next) => {
}else {
// 判断判断权限有无获取
if (store.token && permissionStore.addRouters.length==0) {
//store.getUserInfo();
await permissionStore.getButtonRole();
await permissionStore.getMenuRole();
await permissionStore.getButtonRole();
const menuResult = await permissionStore.getMenuRole();
permissionStore.addRouters.forEach((route) => {
router.addRoute('/', route);
});

View File

@ -55,6 +55,8 @@ export const usePermissionStore = defineStore('permisson', {
if(code==200){
this.setMenuList(data);
this.addRouters =await this.GenerateRoutes(data);
}else{
return false
}
},
@ -62,6 +64,8 @@ export const usePermissionStore = defineStore('permisson', {
const {code,data,message} = await getUserButtonRole();
if(code==200){
this.buttonPermissions=data;
}else{
return false
}
},
clearRouters(){

View File

@ -35,14 +35,18 @@ export const useUserStore = defineStore('user', {
console.error(err);
}
},
async userLogut() {
const {code} = await logout();
const permissionStore=usePermissionStore();
if(code==200){
clearInfo(){
const permissionStore=usePermissionStore();
this.token = null;
this.userInfo = null;
permissionStore.ClearMenuList();
permissionStore.clearRouters();
permissionStore.clearRouters
},
async userLogut() {
const {code} = await logout();
if(code==200){
this.clearInfo();
}
}

View File

@ -20,7 +20,7 @@ service.interceptors.request.use(
const store = useUserStore();
// 设置请求头部 Authorization
if (store.token) {
config.headers['Authorization'] = 'Bearer ' + store.token;
config.headers['Authorization'] = 'Bearer ' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMSIsInJvbGVfaWQiOiIxIiwiZGVwdF9pZCI6IjE2ODE4NjAyNDU0NTE3MDYzNjgiLCJwb3N0X2lkIjoiMSIsImV4cCI6MTY4OTgzMDgyOCwibmJmIjoxNjg5ODMwODI3LCJpYXQiOjE2ODk4MzA4Mjd9.PbBv4iJWSG4qGacIltoB79Lt5TNhmBplsl3sEmDVUlU'//store.token;
//config.headers['Content-Type'] = 'multipart/form-data'
}
return config;
@ -40,25 +40,26 @@ service.interceptors.response.use(
}
const store = useUserStore();
const { code, message } = response.data;
if (code === 401 || code==403 || code==405 || code==406) {
console.log(code);
if (code == 401 || code==403 || code==405 || code==406) {
Message.error({
content: message,
duration: 3000
});
// 重定向路由到登陆页面
store.userLogout();
store.clearInfo();
window.location.href="/login";
}else if(code === 400){
Message.error({
content: '缺少参数',
duration: 3000
});
}else if(code === 402){
}else if(code == 402){
Message.error({
content: '请求无权限',
duration: 3000
});
}else if(code === 201){
}else if(code == 201){
Message.error({
content: '账户状态异常',
duration: 3000
@ -77,17 +78,13 @@ service.interceptors.response.use(
const { code, message } = error.response.data;
// 如果过期则退出登录
if (code === 401 || code==403 || code==405 || code==406) {
alert(405);
Message.error({
content: message,
duration: 3000
});
// 重定向路由到登陆页面
store.userLogout();
store.clearInfo();
window.location.href="/login";
// Akiraka 20230410 重定向到登录页面
//return router.push('/login');
}else if(code === 400){
Message.error({
content: '缺少参数',
@ -108,7 +105,6 @@ service.interceptors.response.use(
content: error.message,
duration: 3000
})
}
return Promise.reject(message);
}

View File

@ -34,6 +34,9 @@
@page-change="handlePageChange"
@page-size-change="handlepage_sizeChange"
>
<template #post_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*10}}</div>
</template>
<template #createdAt="{ record }">
{{ parseTime(record.createdAt) }}
</template>
@ -131,7 +134,7 @@ let batchList = [];
// Table Columns
const columns = [
{ title: '岗位编号', dataIndex: 'post_id' },
{ title: '岗位编号', dataIndex: 'post_id',slotName: 'post_id' },
{ title: '岗位名称', dataIndex: 'post_name' },
{ title: '创建时间', dataIndex: 'created_at', slotName: 'created_at' },
{ title: '操作', slotName: 'action' },

View File

@ -181,22 +181,22 @@
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="hospital.address" label="医院地址:">
<a-input v-model="modalForm.hospital.address" placeholder="请输入医院地址" :disabled="modalSatus=='edit'"/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="hospital.hospital_name" label="医院名称:">
<a-space direction="vertical" size="large">
<a-select :style="{width:'400px'}" allow-search placeholder="请选择所在医院" v-model="modalForm.hospital.hospital_name" :loading="loading" @change="changeHospital" @search="handleHospitalList" >
<a-select :style="{width:'400px'}" allow-search placeholder="请选择所在医院" v-model="hospital_name" :loading="loading" @change="changeHospital" @search="handleHospitalList" >
<a-option size="large" style="max-width:500px" v-for="item in hospitalData" :key="item.hospital_id" :value="item.hospital_id"
:label="item.hospital_name+'—'+item.province+item.city+item.county"></a-option>
:label="item.hospital_name+'('+item.province+item.city+item.county+')'"></a-option>
</a-select>
</a-space>
<!-- <a-input v-model="modalForm.hospital.hospital_name" placeholder="请输入医院名称" /> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="hospital.address" label="医院地址:">
<a-input v-model="modalForm.hospital.address" placeholder="请输入医院地址" :disabled="modalSatus=='edit'"/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
@ -585,7 +585,9 @@
avatar: 'https://img.applets.igandanyiyuan.com/basic/file/doctor_avatar.png',
bank_card_code:'',
});
const hospital_name=computed(()=>{
return modalForm.hospital.hospital_name+'('+modalForm.hospital.province+modalForm.hospital.city+modalForm.hospital.county+')'
})
//const doctor_expertise=ref([]);
//
const transArr = (arr) => {
@ -747,11 +749,23 @@
}],
'hospital.address': [{ required: true, message: '请输入医院地址' }],
'hospital.hospital_name': [{ required: true, message: '请选择医院名称' }],
'department_custom_mobile':[{
required: true, message: '请输入科室电话'
}],
department_custom_id: [{ required: true, message: '请选择所在科室' }],
department_custom_name: [{ required: true, message: '请输入科室名称' }],
doctor_title: [{ required: true, message: '请选择职称' }],
// 'user_doctor_info.qualification_cert_num': [{ required: true, message: '' }],
cur_doctor_expertise: [{ type: 'array', minLength: 1, required: true, message: '请选择专长' }],
cur_doctor_expertise: [
{ type: 'array', required: true, message: '请选择专长' },
{
validator: (value, cb) => {
if (value.length>10) {
cb("专长不能超过10项")
}
}
}
],
be_good_at: [{ required: true, message: '请输入擅长内容', maxLength: 1000, minLength: 2 }],
brief_introduction: [{ required: true, message: '请输入简介', maxLength: 1000, minLength: 2 }],
license_cert: [
@ -827,7 +841,7 @@
},
{
doctor_title: 5,
doctor_title_name: '主医师'
doctor_title_name: '主医师'
},
{
doctor_title: 6,
@ -1062,12 +1076,13 @@
const { code, message } = await updateDoctor(modalData, modalForm.doctor_id);
if (code == 200) {
proxy.$notification.success('更新成功');
modalVisible.value = false;
}
proxy.$loading.hide();
}
//done();
getDoctorInfo(pager);
modalVisible.value = false;
} else {
console.log(valid)
proxy.$message.error('表单校验失败');
@ -1282,7 +1297,8 @@
}
});
};
const handleOk=()=>{
const filterOption=(value,options)=>{
console.log(value,options)
}
//
const onChangeFile = (fileList) => {