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

View File

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

View File

@ -35,14 +35,18 @@ export const useUserStore = defineStore('user', {
console.error(err); console.error(err);
} }
}, },
async userLogut() { clearInfo(){
const {code} = await logout(); const permissionStore=usePermissionStore();
const permissionStore=usePermissionStore();
if(code==200){
this.token = null; this.token = null;
this.userInfo = null; this.userInfo = null;
permissionStore.ClearMenuList(); 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(); const store = useUserStore();
// 设置请求头部 Authorization // 设置请求头部 Authorization
if (store.token) { 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' //config.headers['Content-Type'] = 'multipart/form-data'
} }
return config; return config;
@ -40,25 +40,26 @@ service.interceptors.response.use(
} }
const store = useUserStore(); const store = useUserStore();
const { code, message } = response.data; 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({ Message.error({
content: message, content: message,
duration: 3000 duration: 3000
}); });
// 重定向路由到登陆页面 // 重定向路由到登陆页面
store.userLogout(); store.clearInfo();
window.location.href="/login"; window.location.href="/login";
}else if(code === 400){ }else if(code === 400){
Message.error({ Message.error({
content: '缺少参数', content: '缺少参数',
duration: 3000 duration: 3000
}); });
}else if(code === 402){ }else if(code == 402){
Message.error({ Message.error({
content: '请求无权限', content: '请求无权限',
duration: 3000 duration: 3000
}); });
}else if(code === 201){ }else if(code == 201){
Message.error({ Message.error({
content: '账户状态异常', content: '账户状态异常',
duration: 3000 duration: 3000
@ -77,17 +78,13 @@ service.interceptors.response.use(
const { code, message } = error.response.data; const { code, message } = error.response.data;
// 如果过期则退出登录 // 如果过期则退出登录
if (code === 401 || code==403 || code==405 || code==406) { if (code === 401 || code==403 || code==405 || code==406) {
alert(405);
Message.error({ Message.error({
content: message, content: message,
duration: 3000 duration: 3000
}); });
// 重定向路由到登陆页面 // 重定向路由到登陆页面
store.userLogout(); store.clearInfo();
window.location.href="/login"; window.location.href="/login";
// Akiraka 20230410 重定向到登录页面
//return router.push('/login');
}else if(code === 400){ }else if(code === 400){
Message.error({ Message.error({
content: '缺少参数', content: '缺少参数',
@ -108,7 +105,6 @@ service.interceptors.response.use(
content: error.message, content: error.message,
duration: 3000 duration: 3000
}) })
} }
return Promise.reject(message); return Promise.reject(message);
} }

View File

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

View File

@ -181,22 +181,22 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24"> <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-col :span="12">
<a-form-item field="hospital.hospital_name" label="医院名称:"> <a-form-item field="hospital.hospital_name" label="医院名称:">
<a-space direction="vertical" size="large"> <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" <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-select>
</a-space> </a-space>
<!-- <a-input v-model="modalForm.hospital.hospital_name" placeholder="请输入医院名称" /> --> <!-- <a-input v-model="modalForm.hospital.hospital_name" placeholder="请输入医院名称" /> -->
</a-form-item> </a-form-item>
</a-col> </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>
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="12"> <a-col :span="12">
@ -585,7 +585,9 @@
avatar: 'https://img.applets.igandanyiyuan.com/basic/file/doctor_avatar.png', avatar: 'https://img.applets.igandanyiyuan.com/basic/file/doctor_avatar.png',
bank_card_code:'', 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 doctor_expertise=ref([]);
// //
const transArr = (arr) => { const transArr = (arr) => {
@ -747,11 +749,23 @@
}], }],
'hospital.address': [{ required: true, message: '请输入医院地址' }], 'hospital.address': [{ required: true, message: '请输入医院地址' }],
'hospital.hospital_name': [{ required: true, message: '请选择医院名称' }], 'hospital.hospital_name': [{ required: true, message: '请选择医院名称' }],
'department_custom_mobile':[{
required: true, message: '请输入科室电话'
}],
department_custom_id: [{ required: true, message: '请选择所在科室' }], department_custom_id: [{ required: true, message: '请选择所在科室' }],
department_custom_name: [{ required: true, message: '请输入科室名称' }], department_custom_name: [{ required: true, message: '请输入科室名称' }],
doctor_title: [{ required: true, message: '请选择职称' }], doctor_title: [{ required: true, message: '请选择职称' }],
// 'user_doctor_info.qualification_cert_num': [{ 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 }], be_good_at: [{ required: true, message: '请输入擅长内容', maxLength: 1000, minLength: 2 }],
brief_introduction: [{ required: true, message: '请输入简介', maxLength: 1000, minLength: 2 }], brief_introduction: [{ required: true, message: '请输入简介', maxLength: 1000, minLength: 2 }],
license_cert: [ license_cert: [
@ -827,7 +841,7 @@
}, },
{ {
doctor_title: 5, doctor_title: 5,
doctor_title_name: '主医师' doctor_title_name: '主医师'
}, },
{ {
doctor_title: 6, doctor_title: 6,
@ -1062,12 +1076,13 @@
const { code, message } = await updateDoctor(modalData, modalForm.doctor_id); const { code, message } = await updateDoctor(modalData, modalForm.doctor_id);
if (code == 200) { if (code == 200) {
proxy.$notification.success('更新成功'); proxy.$notification.success('更新成功');
modalVisible.value = false;
} }
proxy.$loading.hide(); proxy.$loading.hide();
} }
//done(); //done();
getDoctorInfo(pager); getDoctorInfo(pager);
modalVisible.value = false;
} else { } else {
console.log(valid) console.log(valid)
proxy.$message.error('表单校验失败'); proxy.$message.error('表单校验失败');
@ -1282,7 +1297,8 @@
} }
}); });
}; };
const handleOk=()=>{ const filterOption=(value,options)=>{
console.log(value,options)
} }
// //
const onChangeFile = (fileList) => { const onChangeFile = (fileList) => {