jiangyuying 2 years ago
parent
commit
f02aa04146
  1. 8
      src/js/ajax.js
  2. 4
      src/js/dai/request-bipass.js
  3. 25
      src/js/dai/request.js
  4. 18
      src/js/dai/request2.js
  5. 34
      src/js/epmet-result-resolver.js
  6. 12
      src/main.js
  7. 26
      src/router/index.js
  8. 33
      src/utils/message.js
  9. 16
      src/utils/request.js
  10. 16
      src/views/components/resiForm.vue
  11. 1
      src/views/main-shuju/main-navbar.vue
  12. 1
      src/views/main.vue

8
src/js/ajax.js

@ -5,6 +5,7 @@ import router from "@/router";
import qs from "qs"; import qs from "qs";
import { clearLoginInfo } from "@/utils"; import { clearLoginInfo } from "@/utils";
import isPlainObject from "lodash/isPlainObject"; import isPlainObject from "lodash/isPlainObject";
import {message} from "@/utils/message.js";
import Vue from "vue"; import Vue from "vue";
@ -89,7 +90,12 @@ axios.interceptors.response.use(
(response) => { (response) => {
const code = [10007, 401, 10001, 10005]; const code = [10007, 401, 10001, 10005];
if (code.includes(response.data.code)) { if (code.includes(response.data.code)) {
// debugger; // console.log('登录失效');
message({
message: response.data.msg || "未知错误",
type: 'error',
duration: 2 * 1000
})
clearLoginInfo(); clearLoginInfo();
router.replace({ name: "login" }); router.replace({ name: "login" });

4
src/js/dai/request-bipass.js

@ -3,7 +3,7 @@
---------------------------------------------------------------*/ ---------------------------------------------------------------*/
import axios from "axios"; import axios from "axios";
import curry from "dai-js/tools/curry"; import curry from "dai-js/tools/curry";
import { Message } from "element-ui"; import {message} from "@/utils/message.js";
import { clearLoginInfo } from "@/utils"; import { clearLoginInfo } from "@/utils";
axios.defaults.withCredentials = true; axios.defaults.withCredentials = true;
@ -60,7 +60,7 @@ const request = curry((method, uri, data = {}, params = {}) => {
reslove( reslove(
Object.assign({}, returnIniData, { Object.assign({}, returnIniData, {
httpCode: "9999", //访问出现意外 httpCode: "9999", //访问出现意外
msg: "网络错误", msg: '网络错误',
}) })
); );
}; };

25
src/js/dai/request.js

@ -3,7 +3,7 @@
---------------------------------------------------------------*/ ---------------------------------------------------------------*/
import axios from "axios"; import axios from "axios";
import curry from "dai-js/tools/curry"; import curry from "dai-js/tools/curry";
import { Message } from "element-ui"; import {message} from "@/utils/message.js";
import { clearLoginInfo } from "@/utils"; import { clearLoginInfo } from "@/utils";
axios.defaults.withCredentials=true axios.defaults.withCredentials=true
@ -28,7 +28,6 @@ const request = curry(
} }
url = processUrl(url); url = processUrl(url);
const succFn = (res) => { const succFn = (res) => {
// log(`[request成功] ${url}`, data, res); // log(`[request成功] ${url}`, data, res);
let retData = { let retData = {
@ -39,15 +38,22 @@ const request = curry(
// if(typeof Vue.$afterRequestHook == 'function'){ // if(typeof Vue.$afterRequestHook == 'function'){
// retData = Vue.$afterRequestHook(retData); // retData = Vue.$afterRequestHook(retData);
// } // }
console.log(res,'request1');
if (res.data.code > 8000 && res.data.code < 10000) { 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) { if (res.data.code == 10005 || res.data.code == 10006 || res.data.code == 10007) {
// 10005 token为空 10006登陆超时 10007别处登录 // 10005 token为空 10006登陆超时 10007别处登录
console.log("登录失效"); message({
Message.error(res.data.msg); message: res.data.msg,
type: 'error',
duration: 2 * 1000
})
// Message.error(res.data.msg);
clearLoginInfo(); clearLoginInfo();
return next({ return next({
name: "login", name: "login",
@ -56,14 +62,13 @@ const request = curry(
reslove(retData); reslove(retData);
}; };
const failFn = (err) => { const failFn = (err) => {
// log(`[request失败] ${url}`, data, err); // console.log(`[request失败] ${url}`, data, err)
console.log(err);
reslove( reslove(
Object.assign({}, returnIniData, { Object.assign({}, returnIniData, {
httpCode: "9999", //访问出现意外 httpCode: "9999", //访问出现意外
msg: "网络错误", msg:err,
}) })
); );
}; };

18
src/js/dai/request2.js

@ -3,7 +3,7 @@
---------------------------------------------------------------*/ ---------------------------------------------------------------*/
import axios from "axios"; import axios from "axios";
import curry from "dai-js/tools/curry"; import curry from "dai-js/tools/curry";
import { Message } from "element-ui"; import {message} from "@/utils/message.js";
import { clearLoginInfo } from "@/utils"; import { clearLoginInfo } from "@/utils";
axios.defaults.withCredentials=true axios.defaults.withCredentials=true
@ -39,15 +39,22 @@ const request = curry(
// if(typeof Vue.$afterRequestHook == 'function'){ // if(typeof Vue.$afterRequestHook == 'function'){
// retData = Vue.$afterRequestHook(retData); // retData = Vue.$afterRequestHook(retData);
// } // }
console.log(res,'request2');
if (res.data.code > 8000 && res.data.code < 10000) { 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) { if (res.code == 10005 || res.code == 10006 || res.code == 10007) {
// 10005 token为空 10006登陆超时 10007别处登录 // 10005 token为空 10006登陆超时 10007别处登录
console.log("登录失效"); console.log("登录失效");
Message.error(res.data.msg); message({
message: res.data.msg,
type: 'error',
duration: 2 * 1000
})
clearLoginInfo(); clearLoginInfo();
return next({ return next({
name: "login", name: "login",
@ -59,11 +66,10 @@ const request = curry(
const failFn = (err) => { const failFn = (err) => {
// log(`[request失败] ${url}`, data, err); // log(`[request失败] ${url}`, data, err);
reslove( reslove(
Object.assign({}, returnIniData, { Object.assign({}, returnIniData, {
httpCode: "9999", //访问出现意外 httpCode: "9999", //访问出现意外
msg: "网络错误", msg: '网络错误',
}) })
); );
}; };

34
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后台返回结果,并且执行传入的逻辑 * 解析epmet后台返回结果,并且执行传入的逻辑
* @param success_processor 正常返回执行的函数代表要对data做何种操作第一个参数是 * @param success_processor 正常返回执行的函数代表要对data做何种操作第一个参数是
@ -36,12 +45,25 @@ export function EpmetResultResolver(env) {
this.fail_processor(); this.fail_processor();
} }
// 弹出消息 const errorMessages = {
if (code < 8000) { 10007: '当前帐号已在别处登录',
this._env.$message.error('服务器开小差了...') 10006: '登陆超时,请重新登录',
} else { 10005: 'token为空,请重新登录'
this._env.$message.error(msg) };
}
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; return;
} }

12
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 Vue from "vue";
import Element from "element-ui"; import Element from "element-ui";
@ -7,6 +16,8 @@ import router from "@/router";
import "@/icons"; import "@/icons";
import "@/element-ui/theme/index.css"; import "@/element-ui/theme/index.css";
import "@/assets/scss/aui.scss"; import "@/assets/scss/aui.scss";
import {message} from "@/utils/message.js";
//按钮 //按钮
import http from "@/utils/request"; import http from "@/utils/request";
@ -46,6 +57,7 @@ Vue.use(Element, {
i18n: (key, value) => i18n.t(key, value), i18n: (key, value) => i18n.t(key, value),
}); });
Vue.prototype.$message = message
// 弹窗底部滚动问题 弹窗需配合v-if使用 // 弹窗底部滚动问题 弹窗需配合v-if使用
Vue.directive("fixed", { Vue.directive("fixed", {
inserted() { inserted() {

26
src/router/index.js

@ -5,6 +5,7 @@ import {
isURL isURL
} from "@/utils/validate"; } from "@/utils/validate";
import store from "@/js/store"; import store from "@/js/store";
import {message} from "@/utils/message.js";
Vue.use(Router); Vue.use(Router);
const CUSTOMER = process.env.VUE_APP_CUSTOMER; 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) { if (res.code == 10005 || res.code == 10006 || res.code == 10007) {
// 10005 token为空 10006登陆超时 10007别处登录 // 10005 token为空 10006登陆超时 10007别处登录
console.log("登录失效"); console.log("登录失效");
Vue.prototype.$message.error(res.msg); message({
message: res.msg || "未知错误",
type: 'error',
duration: 2 * 1000
})
return next({ return next({
name: "login", name: "login",
}); });
@ -444,7 +449,8 @@ router.beforeEach((to, from, next) => {
...to, ...to,
replace: true, replace: true,
}); });
}).catch(() => { }).catch((err) => {
console.log(err);
next({ next({
name: "login", name: "login",
}); });
@ -452,10 +458,15 @@ router.beforeEach((to, from, next) => {
http.get("gov/access/menu/navDigitalCommunityNew").then(({ http.get("gov/access/menu/navDigitalCommunityNew").then(({
data: res data: res
}) => { }) => {
console.log(res);
if (res.code == 10005 || res.code == 10006 || res.code == 10007) { if (res.code == 10005 || res.code == 10006 || res.code == 10007) {
// 10005 token为空 10006登陆超时 10007别处登录 // 10005 token为空 10006登陆超时 10007别处登录
console.log("登录失效"); console.log("登录失效");
Vue.prototype.$message.error(res.msg); message({
message: res.msg || "未知错误",
type: 'error',
duration: 2 * 1000
})
return next({ return next({
name: "login", name: "login",
}); });
@ -468,10 +479,11 @@ router.beforeEach((to, from, next) => {
...to, ...to,
replace: true, replace: true,
}); });
}).catch(() => { }).catch((err) => {
// next({ console.log(err);
// name: "login", next({
// }); name: "login",
});
}); });
}); });
/** /**

33
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

16
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 axios from 'axios'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import router from '@/router' import router from '@/router'
@ -57,6 +68,11 @@ http.interceptors.response.use(response => {
const code = [10007, 401, 10001, 10005] const code = [10007, 401, 10001, 10005]
if (code.includes(response.data.code)) { if (code.includes(response.data.code)) {
clearLoginInfo() clearLoginInfo()
message({
message: response.data.msg || "未知错误",
type: 'error',
duration: 2 * 1000
})
// localStorage.setItem('userType', 'work') // localStorage.setItem('userType', 'work')
// let userType = localStorage.getItem("userType"); // let userType = localStorage.getItem("userType");
// if (userType === 'work'){ // if (userType === 'work'){

16
src/views/components/resiForm.vue

@ -1304,7 +1304,6 @@ export default {
this.getMarriageDict() this.getMarriageDict()
this.getResideDict() this.getResideDict()
this.getSpouseDict() this.getSpouseDict()
this.getBranchlist()
this.getPartyDict() this.getPartyDict()
this.getResidentDict() this.getResidentDict()
this.getHousing() this.getHousing()
@ -1946,20 +1945,7 @@ export default {
console.log(error,'获取民族字典'); 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) { getTreeData (data) {
if (!Array.isArray(data)) return []; if (!Array.isArray(data)) return [];
let arr = data.map((item) => { let arr = data.map((item) => {

1
src/views/main-shuju/main-navbar.vue

@ -241,7 +241,6 @@ export default {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
} }
clearLoginInfo(); clearLoginInfo();
this.$router.push({ name: "login" }); this.$router.push({ name: "login" });

1
src/views/main.vue

@ -165,6 +165,7 @@ export default {
); );
} }
} else { } else {
clearLoginInfo(); clearLoginInfo();
this.$router.push({ name: "login" }); this.$router.push({ name: "login" });
} }

Loading…
Cancel
Save