Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dd_school
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangqi
dd_school
Commits
e292b909
Commit
e292b909
authored
Oct 24, 2023
by
zhaopanyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zpy 10.24
parent
aa50b82f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
148 additions
and
117 deletions
+148
-117
ruoyi-ui/src/utils/request.js
+141
-110
ruoyi-ui/src/views/smartSchool/teacherManage/teacherInforManage/index.vue
+7
-7
No files found.
ruoyi-ui/src/utils/request.js
View file @
e292b909
import
axios
from
'axios'
import
{
Notification
,
MessageBox
,
Message
,
Loading
}
from
'element-ui'
import
store
from
'@/store'
import
{
getToken
}
from
'@/utils/auth'
import
errorCode
from
'@/utils/errorCode'
import
{
tansParams
,
blobValidate
}
from
"@/utils/ruoyi"
;
import
cache
from
'@/plugins/cache'
import
{
saveAs
}
from
'file-saver'
import
{
timeout
}
from
'@/enums/request'
import
axios
from
"axios"
;
import
{
Notification
,
MessageBox
,
Message
,
Loading
}
from
"element-ui"
;
import
store
from
"@/store"
;
import
{
getToken
}
from
"@/utils/auth"
;
import
errorCode
from
"@/utils/errorCode"
;
import
{
tansParams
,
blobValidate
}
from
"@/utils/ruoyi"
;
import
cache
from
"@/plugins/cache"
;
import
{
saveAs
}
from
"file-saver"
;
import
{
timeout
}
from
"@/enums/request"
;
let
downloadLoadingInstance
;
// 是否显示重新登录
export
let
isRelogin
=
{
show
:
false
};
export
let
isRelogin
=
{
show
:
false
};
axios
.
defaults
.
headers
[
'Content-Type'
]
=
'application/json;charset=utf-8'
axios
.
defaults
.
headers
[
"Content-Type"
]
=
"application/json;charset=utf-8"
;
// 创建axios实例
const
service
=
axios
.
create
({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// 超时
timeout
:
timeout
})
timeout
:
timeout
,
})
;
// request拦截器
service
.
interceptors
.
request
.
use
(
config
=>
{
// 是否需要设置 token
const
isToken
=
(
config
.
headers
||
{}).
isToken
===
false
// 是否需要防止数据重复提交
const
isRepeatSubmit
=
(
config
.
headers
||
{}).
repeatSubmit
===
false
if
(
getToken
()
&&
!
isToken
)
{
config
.
headers
[
'Authorization'
]
=
'Bearer '
+
getToken
()
// 让每个请求携带自定义token 请根据实际情况自行修改
}
// get请求映射params参数
if
(
config
.
method
===
'get'
&&
config
.
params
)
{
let
url
=
config
.
url
+
'?'
+
tansParams
(
config
.
params
);
url
=
url
.
slice
(
0
,
-
1
);
config
.
params
=
{};
config
.
url
=
url
;
}
if
(
!
isRepeatSubmit
&&
(
config
.
method
===
'post'
||
config
.
method
===
'put'
))
{
const
requestObj
=
{
url
:
config
.
url
,
data
:
typeof
config
.
data
===
'object'
?
JSON
.
stringify
(
config
.
data
)
:
config
.
data
,
time
:
new
Date
().
getTime
()
service
.
interceptors
.
request
.
use
(
(
config
)
=>
{
// 是否需要设置 token
const
isToken
=
(
config
.
headers
||
{}).
isToken
===
false
;
// 是否需要防止数据重复提交
const
isRepeatSubmit
=
(
config
.
headers
||
{}).
repeatSubmit
===
false
;
if
(
getToken
()
&&
!
isToken
)
{
config
.
headers
[
"Authorization"
]
=
"Bearer "
+
getToken
();
// 让每个请求携带自定义token 请根据实际情况自行修改
}
const
sessionObj
=
cache
.
session
.
getJSON
(
'sessionObj'
)
if
(
sessionObj
===
undefined
||
sessionObj
===
null
||
sessionObj
===
''
)
{
cache
.
session
.
setJSON
(
'sessionObj'
,
requestObj
)
}
else
{
const
s_url
=
sessionObj
.
url
;
// 请求地址
const
s_data
=
sessionObj
.
data
;
// 请求数据
const
s_time
=
sessionObj
.
time
;
// 请求时间
const
interval
=
1000
;
// 间隔时间(ms),小于此时间视为重复提交
if
(
s_data
===
requestObj
.
data
&&
requestObj
.
time
-
s_time
<
interval
&&
s_url
===
requestObj
.
url
)
{
const
message
=
'数据正在处理,请勿重复提交'
;
console
.
warn
(
`[
${
s_url
}
]: `
+
message
)
return
Promise
.
reject
(
new
Error
(
message
))
// get请求映射params参数
if
(
config
.
method
===
"get"
&&
config
.
params
)
{
let
url
=
config
.
url
+
"?"
+
tansParams
(
config
.
params
);
url
=
url
.
slice
(
0
,
-
1
);
config
.
params
=
{};
config
.
url
=
url
;
}
if
(
!
isRepeatSubmit
&&
(
config
.
method
===
"post"
||
config
.
method
===
"put"
)
)
{
const
requestObj
=
{
url
:
config
.
url
,
data
:
typeof
config
.
data
===
"object"
?
JSON
.
stringify
(
config
.
data
)
:
config
.
data
,
time
:
new
Date
().
getTime
(),
};
const
sessionObj
=
cache
.
session
.
getJSON
(
"sessionObj"
);
if
(
sessionObj
===
undefined
||
sessionObj
===
null
||
sessionObj
===
""
)
{
cache
.
session
.
setJSON
(
"sessionObj"
,
requestObj
);
}
else
{
cache
.
session
.
setJSON
(
'sessionObj'
,
requestObj
)
const
s_url
=
sessionObj
.
url
;
// 请求地址
const
s_data
=
sessionObj
.
data
;
// 请求数据
const
s_time
=
sessionObj
.
time
;
// 请求时间
const
interval
=
1000
;
// 间隔时间(ms),小于此时间视为重复提交
if
(
s_data
===
requestObj
.
data
&&
requestObj
.
time
-
s_time
<
interval
&&
s_url
===
requestObj
.
url
)
{
const
message
=
"数据正在处理,请勿重复提交"
;
console
.
warn
(
`[
${
s_url
}
]: `
+
message
);
return
Promise
.
reject
(
new
Error
(
message
));
}
else
{
cache
.
session
.
setJSON
(
"sessionObj"
,
requestObj
);
}
}
}
return
config
;
},
(
error
)
=>
{
console
.
log
(
error
);
Promise
.
reject
(
error
);
}
return
config
},
error
=>
{
console
.
log
(
error
)
Promise
.
reject
(
error
)
})
);
// 响应拦截器
service
.
interceptors
.
response
.
use
(
res
=>
{
service
.
interceptors
.
response
.
use
(
(
res
)
=>
{
// 未设置状态码则默认成功状态
const
code
=
res
.
data
.
code
||
200
;
// 获取错误信息
const
msg
=
errorCode
[
code
]
||
res
.
data
.
msg
||
errorCode
[
'default'
]
const
msg
=
errorCode
[
code
]
||
res
.
data
.
msg
||
errorCode
[
"default"
];
// 二进制数据则直接返回
if
(
res
.
request
.
responseType
===
'blob'
||
res
.
request
.
responseType
===
'arraybuffer'
)
{
return
res
.
data
if
(
res
.
request
.
responseType
===
"blob"
||
res
.
request
.
responseType
===
"arraybuffer"
)
{
return
res
.
data
;
}
if
(
code
===
401
)
{
if
(
!
isRelogin
.
show
)
{
isRelogin
.
show
=
true
;
MessageBox
.
confirm
(
'登录状态已过期,您可以继续留在该页面,或者重新登录'
,
'系统提示'
,
{
confirmButtonText
:
'重新登录'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
MessageBox
.
confirm
(
"登录状态已过期,您可以继续留在该页面,或者重新登录"
,
"系统提示"
,
{
confirmButtonText
:
"重新登录"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}
).
then
(()
=>
{
isRelogin
.
show
=
false
;
store
.
dispatch
(
'LogOut'
).
then
(()
=>
{
location
.
href
=
'/index'
;
)
.
then
(()
=>
{
isRelogin
.
show
=
false
;
store
.
dispatch
(
"LogOut"
).
then
(()
=>
{
location
.
href
=
"/login"
;
});
})
})
.
catch
(()
=>
{
isRelogin
.
show
=
false
;
});
.
catch
(()
=>
{
isRelogin
.
show
=
false
;
});
}
return
Promise
.
reject
(
'无效的会话,或者会话已过期,请重新登录。'
)
return
Promise
.
reject
(
"无效的会话,或者会话已过期,请重新登录。"
);
}
else
if
(
code
===
500
)
{
Message
({
dangerouslyUseHTMLString
:
true
,
//重点代码
dangerouslyUseHTMLString
:
true
,
//重点代码
message
:
msg
,
type
:
'error'
})
return
Promise
.
reject
(
new
Error
(
msg
))
type
:
"error"
,
})
;
return
Promise
.
reject
(
new
Error
(
msg
))
;
}
else
if
(
code
!==
200
)
{
Notification
.
error
({
title
:
msg
})
return
Promise
.
reject
(
'error'
)
title
:
msg
,
})
;
return
Promise
.
reject
(
"error"
);
}
else
{
return
res
.
data
return
res
.
data
;
}
},
error
=>
{
console
.
log
(
'err'
+
error
)
let
{
message
}
=
error
;
(
error
)
=>
{
console
.
log
(
"err"
+
error
);
let
{
message
}
=
error
;
if
(
message
==
"Network Error"
)
{
message
=
"后端接口连接异常"
;
}
else
if
(
message
.
includes
(
"timeout"
))
{
...
...
@@ -123,12 +148,12 @@ service.interceptors.response.use(res => {
}
Message
({
message
:
message
,
type
:
'error'
,
duration
:
5
*
1000
})
return
Promise
.
reject
(
error
)
type
:
"error"
,
duration
:
5
*
1000
,
})
;
return
Promise
.
reject
(
error
)
;
}
)
)
;
// 通用下载方法
export
function
download
(
url
,
params
,
filename
,
config
)
{
...
...
@@ -136,31 +161,37 @@ export function download(url, params, filename, config) {
text
:
"正在下载数据,请稍候"
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(0, 0, 0, 0.7)"
,
})
return
service
.
post
(
url
,
params
,
{
transformRequest
:
[(
params
)
=>
{
return
tansParams
(
params
)
}],
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded'
},
responseType
:
'blob'
,
...
config
}).
then
(
async
(
data
)
=>
{
const
isLogin
=
await
blobValidate
(
data
);
if
(
isLogin
)
{
const
blob
=
new
Blob
([
data
])
saveAs
(
blob
,
filename
)
}
else
{
const
resText
=
await
data
.
text
();
const
rspObj
=
JSON
.
parse
(
resText
);
const
errMsg
=
errorCode
[
rspObj
.
code
]
||
rspObj
.
msg
||
errorCode
[
'default'
]
Message
.
error
(
errMsg
);
}
downloadLoadingInstance
.
close
();
}).
catch
((
r
)
=>
{
console
.
error
(
r
)
Message
.
error
(
'下载文件出现错误,请联系管理员!'
)
downloadLoadingInstance
.
close
();
})
});
return
service
.
post
(
url
,
params
,
{
transformRequest
:
[
(
params
)
=>
{
return
tansParams
(
params
);
},
],
headers
:
{
"Content-Type"
:
"application/x-www-form-urlencoded"
},
responseType
:
"blob"
,
...
config
,
})
.
then
(
async
(
data
)
=>
{
const
isLogin
=
await
blobValidate
(
data
);
if
(
isLogin
)
{
const
blob
=
new
Blob
([
data
]);
saveAs
(
blob
,
filename
);
}
else
{
const
resText
=
await
data
.
text
();
const
rspObj
=
JSON
.
parse
(
resText
);
const
errMsg
=
errorCode
[
rspObj
.
code
]
||
rspObj
.
msg
||
errorCode
[
"default"
];
Message
.
error
(
errMsg
);
}
downloadLoadingInstance
.
close
();
})
.
catch
((
r
)
=>
{
console
.
error
(
r
);
Message
.
error
(
"下载文件出现错误,请联系管理员!"
);
downloadLoadingInstance
.
close
();
});
}
export
default
service
export
default
service
;
ruoyi-ui/src/views/smartSchool/teacherManage/teacherInforManage/index.vue
View file @
e292b909
...
...
@@ -488,14 +488,14 @@ export default {
},
],
password
:
[{
required
:
true
,
message
:
"登录密码不能为空"
,
trigger
:
"blur"
},],
teacherCode
:
[{
required
:
true
,
message
:
"工作编号不能为空"
,
trigger
:
"blur"
},
{
message
:
"工作编号格式不正确"
,
trigger
:
"blur"
,
pattern
:
/
[
0-9
]\d
*/
},
],
idCard
:
[{
required
:
true
,
validator
:
checkIdcard
,
trigger
:
"blur"
}],
//
teacherCode: [{ required: true, message: "工作编号不能为空", trigger: "blur" },
//
{ message: "工作编号格式不正确", trigger: "blur", pattern: /[0-9]\d*/ },
//
],
//
idCard: [{ required: true, validator: checkIdcard, trigger: "blur" }],
deptId
:
[{
required
:
true
,
message
:
"归属部门不能为空"
,
trigger
:
"change"
}],
employeeType
:
[{
required
:
true
,
message
:
"职工类型不能为空"
,
trigger
:
"change"
}],
deviceNum
:
[{
required
:
true
,
message
:
"设备工号不能为空"
,
trigger
:
"change"
}],
sex
:
[{
required
:
true
,
message
:
"性别不能为空"
,
trigger
:
"change"
}],
//
employeeType: [{ required: true, message: "职工类型不能为空", trigger: "change" }],
//
deviceNum: [{ required: true, message: "设备工号不能为空", trigger: "change" }],
//
sex: [{ required: true, message: "性别不能为空", trigger: "change" }],
},
// 自定义列表单元格样式
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment