feat:完善前端友好提示功能

This commit is contained in:
陈淳
2023-05-20 17:20:52 +08:00
parent 027f6dd538
commit a1e0dac85c
6 changed files with 67 additions and 114 deletions

View File

@@ -183,6 +183,9 @@ RABC权限管理系统正在更新
- 用户在线
- 操作日志
- 登录日志
- 定时任务
- 缓存列表
- 服务监控
- 等等
**演示截图:**

View File

@@ -37,7 +37,7 @@ namespace Yi.Furion.Application.Rbac.Job
_db.DbMaintenance.TruncateTable<DictionaryEntity>();
_db.DbMaintenance.TruncateTable<DictionaryTypeEntity>();
await _dataSeedExecuteHandler.Invoker();
_logger.LogWarning("数据已经重置还原");
_logger.LogWarning("------->数据已经重置还原<-------");
}
}
}

View File

@@ -123,7 +123,7 @@ namespace Yi.Furion.Core.Rbac.DataSeeds
IsLink = false,
IsCache = true,
Component = "monitor/job/index",
MenuIcon = "server",
MenuIcon = "job",
OrderNum = 97,
ParentId = monitoring.Id,
IsDeleted = false

View File

@@ -36,7 +36,7 @@ public class Startup : AppStartup
services.AddSchedule(options =>
{
// 注册作业,并配置作业触发器
options.AddJob<TestJob>(Triggers.Period(10000)); // 表示每秒执行
options.AddJob<TestJob>(Triggers.Period(10000));
options.AddJob<SystemDataJob>(Triggers.Cron("0 0 0,12 ? * ?",CronStringFormat.WithSeconds)); // 表示每天凌晨与12点
});
services.AddFileLogging("application-{0:yyyy}-{0:MM}-{0:dd}.log", options =>

View File

@@ -81,115 +81,21 @@ service.interceptors.request.use(config => {
// 响应拦截器
service.interceptors.response.use(res => {
//业务错误
if(res.data.statusCode==403)
{
ElMessage({
message: res.data.errors,
type: 'error'
})
}
// 未设置状态码则默认成功状态
const code = res.status || 200;
// 获取错误信息
const msg = errorCode[code] || res.data.message || errorCode['default']
// 二进制数据则直接返回
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
return res
}
if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
isRelogin.show = false;
useUserStore().logOut().then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
}
else if (code === 500) {
ElMessage({
message: msg,
type: 'error'
})
return Promise.reject(new Error(msg))
} else if (code !== 200) {
ElNotification.error({
title: msg
})
return Promise.reject('error')
} else {
return Promise.resolve(res.data)
}
const code = res.data.statusCode || 200;
// 获取错误信息
const msg = res.data.errors;
handler(code, msg);
return Promise.resolve(res.data);
},
error => {
const response=error.response;
const code=response.status
const msg=response.data.message
if(code==403)
{
ElMessage({
message: msg,
type: 'error'
})
}
else if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
isRelogin.show = false;
useUserStore().logOut().then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
}
else if (code === 500) {
ElMessage({
message: msg,
type: 'error'
})
return Promise.reject(new Error(msg))
} else if (code !== 200) {
ElNotification.error({
title: msg
})
return Promise.reject('error')
} else {
return Promise.resolve(res)
}
const code = error.response.status;
const msg = error.response.data.message;
handler(code, msg);
}
)
@@ -219,4 +125,48 @@ export function download(url, params, filename) {
})
}
const handler = (code, msg) => {
switch (code) {
//服务器异常
case 500:
ElMessage({
message: msg,
type: 'error'
});
break;
//业务异常
case 403:
ElNotification.error({
title: msg
})
break;
//未授权
case 401:
ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
isRelogin.show = false;
useUserStore().logOut().then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
break;
case 404:
ElMessage({
message: "404未找到资源",
type: 'error'
});
break;
//正常
case 200:
break;
}
}
export default service

View File

@@ -59,7 +59,7 @@
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span>
<span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span>
</div>
</div>
</template>