diff --git a/src/js/ajax.js b/src/js/ajax.js index d4b4a7cc4..2d1b63c03 100644 --- a/src/js/ajax.js +++ b/src/js/ajax.js @@ -5,6 +5,7 @@ import router from "@/router"; import qs from "qs"; import { clearLoginInfo } from "@/utils"; import isPlainObject from "lodash/isPlainObject"; +import {message} from "@/utils/message.js"; import Vue from "vue"; @@ -89,7 +90,12 @@ axios.interceptors.response.use( (response) => { const code = [10007, 401, 10001, 10005]; if (code.includes(response.data.code)) { - // debugger; + // console.log('登录失效'); + message({ + message: response.data.msg || "未知错误", + type: 'error', + duration: 2 * 1000 + }) clearLoginInfo(); router.replace({ name: "login" }); diff --git a/src/js/dai/request-bipass.js b/src/js/dai/request-bipass.js index 260796b87..7db7fe119 100644 --- a/src/js/dai/request-bipass.js +++ b/src/js/dai/request-bipass.js @@ -3,7 +3,7 @@ ---------------------------------------------------------------*/ import axios from "axios"; import curry from "dai-js/tools/curry"; -import { Message } from "element-ui"; +import {message} from "@/utils/message.js"; import { clearLoginInfo } from "@/utils"; axios.defaults.withCredentials = true; @@ -60,7 +60,7 @@ const request = curry((method, uri, data = {}, params = {}) => { reslove( Object.assign({}, returnIniData, { httpCode: "9999", //访问出现意外 - msg: "网络错误", + msg: '网络错误', }) ); }; diff --git a/src/js/dai/request.js b/src/js/dai/request.js index 83809fa38..19cbc73fb 100644 --- a/src/js/dai/request.js +++ b/src/js/dai/request.js @@ -3,7 +3,7 @@ ---------------------------------------------------------------*/ import axios from "axios"; import curry from "dai-js/tools/curry"; -import { Message } from "element-ui"; +import {message} from "@/utils/message.js"; import { clearLoginInfo } from "@/utils"; axios.defaults.withCredentials=true @@ -28,7 +28,6 @@ const request = curry( } url = processUrl(url); - const succFn = (res) => { // log(`[request成功] ${url}`, data, res); let retData = { @@ -39,15 +38,22 @@ const request = curry( // if(typeof Vue.$afterRequestHook == 'function'){ // retData = Vue.$afterRequestHook(retData); // } - console.log(res,'request1'); if (res.data.code > 8000 && res.data.code < 10000) { - Message.error(res.data.msg); + message({ + message: res.data.msg || "未知错误", + type: 'error', + duration: 2 * 1000 + }) } if (res.data.code == 10005 || res.data.code == 10006 || res.data.code == 10007) { // 10005 token为空 10006登陆超时 10007别处登录 - console.log("登录失效"); - Message.error(res.data.msg); + message({ + message: res.data.msg, + type: 'error', + duration: 2 * 1000 + }) + // Message.error(res.data.msg); clearLoginInfo(); return next({ name: "login", @@ -56,14 +62,13 @@ const request = curry( reslove(retData); }; - const failFn = (err) => { - // log(`[request失败] ${url}`, data, err); - + // console.log(`[request失败] ${url}`, data, err) + console.log(err); reslove( Object.assign({}, returnIniData, { httpCode: "9999", //访问出现意外 - msg: "网络错误", + msg:err, }) ); }; diff --git a/src/js/dai/request2.js b/src/js/dai/request2.js index 5f1eff388..8ea616692 100644 --- a/src/js/dai/request2.js +++ b/src/js/dai/request2.js @@ -3,7 +3,7 @@ ---------------------------------------------------------------*/ import axios from "axios"; import curry from "dai-js/tools/curry"; -import { Message } from "element-ui"; +import {message} from "@/utils/message.js"; import { clearLoginInfo } from "@/utils"; axios.defaults.withCredentials=true @@ -39,15 +39,22 @@ const request = curry( // if(typeof Vue.$afterRequestHook == 'function'){ // retData = Vue.$afterRequestHook(retData); // } - console.log(res,'request2'); if (res.data.code > 8000 && res.data.code < 10000) { - Message.error(res.data.msg); + message({ + message: res.data.msg || "未知错误", + type: 'error', + duration: 2 * 1000 + }) } if (res.code == 10005 || res.code == 10006 || res.code == 10007) { // 10005 token为空 10006登陆超时 10007别处登录 console.log("登录失效"); - Message.error(res.data.msg); + message({ + message: res.data.msg, + type: 'error', + duration: 2 * 1000 + }) clearLoginInfo(); return next({ name: "login", @@ -59,11 +66,10 @@ const request = curry( const failFn = (err) => { // log(`[request失败] ${url}`, data, err); - reslove( Object.assign({}, returnIniData, { httpCode: "9999", //访问出现意外 - msg: "网络错误", + msg: '网络错误', }) ); }; diff --git a/src/js/epmet-result-resolver.js b/src/js/epmet-result-resolver.js index 783b03209..e589db19f 100644 --- a/src/js/epmet-result-resolver.js +++ b/src/js/epmet-result-resolver.js @@ -1,3 +1,12 @@ +/* + * @Author: mk 2403457699@qq.com + * @Date: 2023-07-17 09:46:32 + * @LastEditors: mk 2403457699@qq.com + * @LastEditTime: 2023-08-10 17:49:44 + * @Description: 更改提示信息,修改前是统一提示网络错误 + * + * + */ /** * 解析epmet后台返回结果,并且执行传入的逻辑 * @param success_processor 正常返回执行的函数,代表要对data做何种操作。第一个参数是 @@ -36,12 +45,25 @@ export function EpmetResultResolver(env) { this.fail_processor(); } - // 弹出消息 - if (code < 8000) { - this._env.$message.error('服务器开小差了...') - } else { - this._env.$message.error(msg) - } + const errorMessages = { + 10007: '当前帐号已在别处登录', + 10006: '登陆超时,请重新登录', + 10005: 'token为空,请重新登录' + }; + + const errorCode = response.data.code; + + if (errorMessages.hasOwnProperty(errorCode)) { + this._env.$message.error(errorMessages[errorCode]); + } else { + this._env.$message.error(msg); + } + + // // 弹出消息 + // if (code < 8000) { + // this._env.$message.error('服务器开小差了...') + // } else { + // } return; } diff --git a/src/main.js b/src/main.js index 6d87163b5..b8b3a8e84 100644 --- a/src/main.js +++ b/src/main.js @@ -1,3 +1,12 @@ +/* + * @Author: mk 2403457699@qq.com + * @Date: 2022-12-16 09:05:10 + * @LastEditors: mk 2403457699@qq.com + * @LastEditTime: 2023-08-10 16:49:19 + * @Description: 全局挂载提示信息,避免同时出现多条信息 + * + * + */ import Vue from "vue"; import Element from "element-ui"; @@ -7,6 +16,8 @@ import router from "@/router"; import "@/icons"; import "@/element-ui/theme/index.css"; import "@/assets/scss/aui.scss"; +import {message} from "@/utils/message.js"; + //按钮 import http from "@/utils/request"; @@ -46,6 +57,7 @@ Vue.use(Element, { i18n: (key, value) => i18n.t(key, value), }); +Vue.prototype.$message = message // 弹窗底部滚动问题 弹窗需配合v-if使用 Vue.directive("fixed", { inserted() { diff --git a/src/router/index.js b/src/router/index.js index 2c2cb8de4..f1dcdf5e2 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -5,6 +5,7 @@ import { isURL } from "@/utils/validate"; import store from "@/js/store"; +import {message} from "@/utils/message.js"; Vue.use(Router); const CUSTOMER = process.env.VUE_APP_CUSTOMER; // 页面路由(独立页面) @@ -433,7 +434,11 @@ router.beforeEach((to, from, next) => { if (res.code == 10005 || res.code == 10006 || res.code == 10007) { // 10005 token为空 10006登陆超时 10007别处登录 console.log("登录失效"); - Vue.prototype.$message.error(res.msg); + message({ + message: res.msg || "未知错误", + type: 'error', + duration: 2 * 1000 + }) return next({ name: "login", }); @@ -444,7 +449,8 @@ router.beforeEach((to, from, next) => { ...to, replace: true, }); - }).catch(() => { + }).catch((err) => { + console.log(err); next({ name: "login", }); @@ -452,10 +458,15 @@ router.beforeEach((to, from, next) => { http.get("gov/access/menu/navDigitalCommunityNew").then(({ data: res }) => { + console.log(res); if (res.code == 10005 || res.code == 10006 || res.code == 10007) { // 10005 token为空 10006登陆超时 10007别处登录 console.log("登录失效"); - Vue.prototype.$message.error(res.msg); + message({ + message: res.msg || "未知错误", + type: 'error', + duration: 2 * 1000 + }) return next({ name: "login", }); @@ -468,10 +479,11 @@ router.beforeEach((to, from, next) => { ...to, replace: true, }); - }).catch(() => { - // next({ - // name: "login", - // }); + }).catch((err) => { + console.log(err); + next({ + name: "login", + }); }); }); /** diff --git a/src/utils/message.js b/src/utils/message.js new file mode 100644 index 000000000..3fb7d21cd --- /dev/null +++ b/src/utils/message.js @@ -0,0 +1,33 @@ +/* + * @Author: mk 2403457699@qq.com + * @Date: 2023-08-10 16:44:07 + * @LastEditors: mk 2403457699@qq.com + * @LastEditTime: 2023-08-10 16:55:35 + * @Description: 二次封装message组件,避免一次弹出多个 + * + * + */ +import { Message } from 'element-ui' + +// 避免出现多个报错信息弹窗 +let messageInstance = null +const resetMessage = (options) => { + if (messageInstance) { + // 先把第一条信息关闭,再弹出第二条信息 + messageInstance.close() + } + messageInstance = Message(options) +} + +// 重新定义 message.success 等 4个方法 +['error', 'success', 'info', 'warning'].forEach(type => { + resetMessage[type] = options => { + options = { + type: type, + message: options + } + return resetMessage(options) + } +}) + +export const message = resetMessage diff --git a/src/utils/request.js b/src/utils/request.js index 202ef6183..3696ebe00 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,3 +1,14 @@ +/* + * @Author: mk 2403457699@qq.com + * @Date: 2023-03-18 11:24:39 + * @LastEditors: mk 2403457699@qq.com + * @LastEditTime: 2023-08-10 17:50:49 + * @Description: 请求拦截中添加 + * + * + */ +import {message} from "@/utils/message.js"; + import axios from 'axios' import Cookies from 'js-cookie' import router from '@/router' @@ -57,6 +68,11 @@ http.interceptors.response.use(response => { const code = [10007, 401, 10001, 10005] if (code.includes(response.data.code)) { clearLoginInfo() + message({ + message: response.data.msg || "未知错误", + type: 'error', + duration: 2 * 1000 + }) // localStorage.setItem('userType', 'work') // let userType = localStorage.getItem("userType"); // if (userType === 'work'){ diff --git a/src/views/components/resiForm.vue b/src/views/components/resiForm.vue index b232432be..779e978f2 100644 --- a/src/views/components/resiForm.vue +++ b/src/views/components/resiForm.vue @@ -1304,7 +1304,6 @@ export default { this.getMarriageDict() this.getResideDict() this.getSpouseDict() - this.getBranchlist() this.getPartyDict() this.getResidentDict() this.getHousing() @@ -1946,20 +1945,7 @@ export default { console.log(error,'获取民族字典'); } }, - async getBranchlist(){ - try { - const { data } = await this.$http.post('resi/partymember/icPartyOrg/branchlist',{formCode: "resi_base_info"}) - this.footerInputList.forEach(c => { - for(let i of c.children){ - if(i.formName == 'partyOrgId' ){ - i.opction = data.data - } - } - }) - } catch (error) { - console.log(error,'获取支部字典'); - } - }, + getTreeData (data) { if (!Array.isArray(data)) return []; let arr = data.map((item) => { diff --git a/src/views/main-shuju/main-navbar.vue b/src/views/main-shuju/main-navbar.vue index b69a329da..afbb1ef9b 100644 --- a/src/views/main-shuju/main-navbar.vue +++ b/src/views/main-shuju/main-navbar.vue @@ -241,7 +241,6 @@ export default { this.$message.error(res.msg); } } - clearLoginInfo(); this.$router.push({ name: "login" }); diff --git a/src/views/main.vue b/src/views/main.vue index 278b8e9b6..f8d8f7d69 100644 --- a/src/views/main.vue +++ b/src/views/main.vue @@ -165,6 +165,7 @@ export default { ); } } else { + clearLoginInfo(); this.$router.push({ name: "login" }); }