|
@@ -6,6 +6,8 @@ import { tansParams, blobValidate } from '@/utils/ruoyi'
|
|
|
import cache from '@/plugins/cache'
|
|
|
import { saveAs } from 'file-saver'
|
|
|
import useUserStore from '@/store/modules/user'
|
|
|
+import notification from '../views/dialog/notification.vue'
|
|
|
+// import { getCurrentInstance } from 'vue';
|
|
|
// import { reject } from 'lodash-es'
|
|
|
|
|
|
let downloadLoadingInstance
|
|
@@ -45,9 +47,10 @@ service.interceptors.request.use(
|
|
|
// appKey 根据该值,获取菜单,不要修改
|
|
|
config.headers['appKey'] = 'ezhizao-identity'
|
|
|
let requestable = true
|
|
|
+ let notifications = []
|
|
|
// 当登录状态为已登录时才可以获取公告
|
|
|
console.log(config)
|
|
|
- if (getToken() && !isToken && tenantInfo && config.url != '/ezhizao-dms-sys/getInfo') {
|
|
|
+ if (getToken() && !isToken && tenantInfo && config.url != '/ezhizao-dms-sys/getInfo' && config.url != '/ezhizao-dms-sys/getRouters') {
|
|
|
// 所有条件都具备的情况下需先请求公告
|
|
|
let url = import.meta.env.VITE_APP_BASE_API + '/business/notification/getUnshowedNotification'
|
|
|
const res = await axios({
|
|
@@ -63,7 +66,8 @@ service.interceptors.request.use(
|
|
|
if (res.data.code == 200) {
|
|
|
|
|
|
} else if (res.data.code == 202) {
|
|
|
- // requestable = false
|
|
|
+ notifications = res.data.data
|
|
|
+ requestable = false
|
|
|
}
|
|
|
}
|
|
|
// get请求映射params参数
|
|
@@ -96,7 +100,7 @@ service.interceptors.request.use(
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return requestable ? config : Promise.reject(new Error('请求被拦截,系统正在更新维护'))
|
|
|
+ return requestable ? config : Promise.reject({ message: 'SHOW NOTIFICATION', data: notifications })
|
|
|
},
|
|
|
(error) => {
|
|
|
console.log(error)
|
|
@@ -150,14 +154,17 @@ service.interceptors.response.use(
|
|
|
}
|
|
|
},
|
|
|
(error) => {
|
|
|
- console.log('err' + error)
|
|
|
- let { message } = error
|
|
|
+ // console.log(error)
|
|
|
+ // console.log('err' + error)
|
|
|
+ let { message, data } = error
|
|
|
if (message == 'Network Error') {
|
|
|
message = '后端接口连接异常'
|
|
|
} else if (message.includes('timeout')) {
|
|
|
message = '数据过多查询超时'
|
|
|
} else if (message.includes('Request failed with status code')) {
|
|
|
message = '系统接口' + message.substr(message.length - 3) + '异常'
|
|
|
+ } else if (message.includes('SHOW NOTIFICATION')) {
|
|
|
+ showDialog(data)
|
|
|
}
|
|
|
ElMessage({ message: message, type: 'error', duration: 5 * 1000 })
|
|
|
return Promise.reject(error)
|
|
@@ -228,4 +235,14 @@ export function downloadPdf(url, params, filename, config) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+function showDialog(message) {
|
|
|
+ // const instance = getCurrentInstance();
|
|
|
+ // console.log(instance)
|
|
|
+ // if (instance && instance.proxy && instance.proxy.showNotification) {
|
|
|
+ // instance.proxy.showNotification(message);
|
|
|
+ // } else {
|
|
|
+ // console.error('Cannot show dialog: current instance is null or $showDialog is not available.');
|
|
|
+ // }
|
|
|
+}
|
|
|
+
|
|
|
export default service
|