refactor(system): 重构request.js

-移除了多余的错误代码判断和冗余的错误提示
- 优化了请求成功和失败的处理流程
- 统一了错误信息的展示方式
- 调整了部分代码结构以提高可读性和维护性
This commit is contained in:
du.meimei
2025-04-25 16:59:50 +08:00
parent 2a11499334
commit 9f04419bd2
8 changed files with 100 additions and 233 deletions

View File

@@ -38,7 +38,7 @@ service.interceptors.request.use(
// console.log(config.noLoading)
//linkage 接口
// config.type 可以从api的接口地址定义 可以不触发loading
if (config.noLoading != true) {
if (config.noLoading !== true) {
startLoading()
}
return config
@@ -50,80 +50,49 @@ service.interceptors.request.use(
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data
endLoading()
if (response.config.back) {
// 二进制数据则直接返回
if (
response.request.responseType === 'blob' ||
response.request.responseType === 'arraybuffer'
) {
return response.data
}
// 检查res.content是否存在处理blob等特殊响应类型
if (res.content) {
if (res.content.code) {
res.content.result = res.content.code
}
if (res.content.result) {
res.content.code = res.content.result
}
}
// 只有当res.content不存在且res不是blob时才显示错误
if (!res.content && !(response.config.responseType === 'blob')) {
const res = response.data
res.code = Number(res.code)
if (res.code === 401) {
MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
store.dispatch('user/resetToken').then(() => {
location.reload()
})
})
.catch(() => {})
} else if (res.code === 500) {
Message({
message: res.message,
type: 'error',
duration: 5 * 500
})
return Promise.reject(res)
}
if (
response.request.responseType === 'blob' ||
response.request.responseType === 'Blob'
) {
return response.data
}
if (res.content.code !== '0' && res.content.result !== 0) {
//500毫秒延迟 显得过度平滑
// token过期或失效 根据项目设置其code
if (response.headers['content-type'] !== 'application/x-zip-compressed') {
if (res.content.code === '4001' || res.content.code === '4002') {
MessageBox.confirm(
'你已被登出,可以取消继续留在该页面,或者重新登录',
'确认退出',
{
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
store.dispatch('user/resetToken').then(() => {
location.reload()
})
})
} else {
Message({
message:
res.content.message || res.content.resultMessage || 'Error',
type: 'error',
duration: 5 * 1000
})
}
}
} else if (res.code !== 0) {
Message({
message: res.message || res.content.resultMessage || '接口请求错误',
type: 'error',
duration: 5 * 1000
})
} else {
if (res.content.code === '1' || res.content.code === '') {
if (!res.content.result || res.content.result !== '0') {
Message({
message: res.content.resultMessage
? res.content.resultMessage
: res.content.message
? res.content.message
: '接口错误',
message: res.content.resultMessage || '接口请求错误',
type: 'error',
duration: 5 * 1000
})
return false
} else {
res.content.result = '0'
res.result = String(res.result ? res.result : 0)
res.code = String(res.code ? res.code : 0)
return res
}
}

View File

@@ -245,12 +245,8 @@ export default {
getMenuList(params)
.then(response => {
if (response.code === '0') {
this.listData = response.content.content || []
this.clearForm()
} else {
this.$message.error(response.msg || '获取菜单列表失败')
}
this.listData = response.content.content || []
this.clearForm()
})
.catch(error => {
this.$message.error('获取菜单列表出错', error)
@@ -281,18 +277,11 @@ export default {
: addMenu(submitData)
apiRequest
.then(response => {
if (response.code === '0') {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.$emit('submit', submitData)
this.handleClose()
this.form = {}
} else {
this.$message.error(
response.msg || (this.isEdit ? '修改失败' : '添加失败')
)
this.form = {}
}
.then(() => {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.$emit('submit', submitData)
this.handleClose()
this.form = {}
})
.catch(() => {
this.$message.error(this.isEdit ? '修改菜单出错' : '添加菜单出错')

View File

@@ -168,11 +168,7 @@ export default {
getMenuTree(params)
.then(response => {
if (response.code === '0') {
this.tableData = response.content.content || []
} else {
this.$message.error(response.msg || '获取菜单列表失败')
}
this.tableData = response.content.content || []
})
.catch(error => {
this.$message.error('获取菜单列表出错', error)
@@ -211,12 +207,8 @@ export default {
// 获取用户详情
queryMenuDetail({ id: row.id })
.then(response => {
if (response.code === '0') {
this.currentMenuData = response.content.content || {}
this.dialogVisible = true
} else {
this.$message.error(response.msg || '获取菜单详情失败')
}
this.currentMenuData = response.content.content || {}
this.dialogVisible = true
})
.catch(error => {
this.$message.error('获取菜单详情出错', error)
@@ -243,13 +235,9 @@ export default {
this.loading = true
// 将id放入数组中传递
deleteMenu([row.id])
.then(response => {
if (response.code === '0') {
this.$message.success('删除成功')
this.getMenuList()
} else {
this.$message.error(response.msg || '删除失败')
}
.then(() => {
this.$message.success('删除成功')
this.getMenuList()
})
.catch(error => {
this.$message.error('删除菜单出错', error)

View File

@@ -139,19 +139,12 @@ export default {
: addRole(submitData)
apiRequest
.then(response => {
if (response.code === '0') {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.$emit('submit', submitData)
this.handleClose()
} else {
this.$message.error(
response.msg || (this.isEdit ? '修改失败' : '添加失败')
)
this.form = {}
}
.then(() => {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.$emit('submit', submitData)
this.handleClose()
})
.catch(error => {
.catch(() => {
this.$message.error(this.isEdit ? '修改角色出错' : '添加角色出错')
})
.finally(() => {

View File

@@ -225,11 +225,7 @@ export default {
getMenuTreeData() {
getMenuTree({})
.then(response => {
if (response.code === '0') {
this.menuTree = response.content.content
} else {
this.$message.error(response.msg || '获取菜单列表失败')
}
this.menuTree = response.content.content
})
.catch(error => {
this.$message.error('获取菜单列表出错', error)
@@ -243,17 +239,13 @@ export default {
this.defaultCheckedKeys = []
getRoleMenu(roleId)
.then(response => {
if (response.code === '0') {
const nodes = response.content.content
if (nodes.length === 0) {
this.defaultCheckedKeys = []
this.$refs.menuTreeRef.setCheckedKeys([])
return
}
this.extractMenuIds(nodes)
} else {
this.$message.error(response.msg || '获取角色菜单失败')
const nodes = response.content.content
if (nodes.length === 0) {
this.defaultCheckedKeys = []
this.$refs.menuTreeRef.setCheckedKeys([])
return
}
this.extractMenuIds(nodes)
})
.catch(error => {
this.$message.error('获取角色菜单出错', error)
@@ -275,12 +267,8 @@ export default {
getRolePage(params)
.then(response => {
if (response.code === '0') {
this.tableData = response.content.content.list || []
this.tableConfig.total = response.content.content.total || 0
} else {
this.$message.error(response.msg || '获取角色列表失败')
}
this.tableData = response.content.content.list || []
this.tableConfig.total = response.content.content.total || 0
})
.catch(error => {
this.$message.error('获取角色列表出错', error)
@@ -314,14 +302,10 @@ export default {
// 获取用户详情
queryRoleDetail({ id: row.id })
.then(response => {
if (response.code === '0') {
this.currentRoleData = response.content.content || {}
this.dialogVisible = true
} else {
this.$message.error(response.msg || '获取角色详情失败')
}
this.currentRoleData = response.content.content || {}
this.dialogVisible = true
})
.catch(error => {
.catch(() => {
this.$message.error('获取角色详情出错')
})
.finally(() => {
@@ -331,7 +315,7 @@ export default {
handleSubmit() {
this.getRoleList() // 提交后刷新列表
},
handlePermission(row) {
handlePermission() {
// TODO: 实现权限设置逻辑
},
handleSizeChange(val) {
@@ -352,13 +336,9 @@ export default {
this.loading = true
// 将id放入数组中传递
deleteRole([row.id])
.then(response => {
if (response.code === '0') {
this.$message.success('删除成功')
this.getRoleList()
} else {
this.$message.error(response.msg || '删除失败')
}
.then(() => {
this.$message.success('删除成功')
this.getRoleList()
})
.catch(error => {
this.$message.error('删除角色出错', error)
@@ -394,16 +374,10 @@ export default {
sysMenuRoleDTOs: menuRoles
}
updateRole(requestData).then(response => {
if (response.code === '0') {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.permissionDrawer.visible = false
this.resetPermissionForm()
} else {
this.$message.error(
response.msg || (this.isEdit ? '修改失败' : '添加失败')
)
}
updateRole(requestData).then(() => {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.permissionDrawer.visible = false
this.resetPermissionForm()
})
},
resetPermissionForm() {

View File

@@ -12,6 +12,7 @@
:rules="rules"
label-width="120px"
status-icon
label-position="top"
>
<el-form-item label="旧密码" prop="userPassword">
<el-input
@@ -118,17 +119,12 @@ export default {
}
updatePassword(data)
.then(async response => {
if (response.code === '0') {
this.$message.success('密码修改成功')
await this.$store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
} else {
this.$message.error(response.msg || '密码修改失败')
}
.then(async () => {
this.$message.success('密码修改成功')
await this.$store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
})
.catch(error => {
console.error('密码修改出错:', error)
.catch(() => {
this.$message.error('密码修改出错')
})
.finally(() => {

View File

@@ -183,11 +183,7 @@ export default {
getRoleList({})
.then(response => {
if (response.code === '0') {
this.roleListData = response.content.content || []
} else {
this.$message.error(response.msg || '获取角色列表失败')
}
this.roleListData = response.content.content || []
})
.catch(error => {
this.$message.error('获取角色列表出错', error)
@@ -218,22 +214,12 @@ export default {
: addUser(submitData)
apiRequest
.then(response => {
if (response.code === '0') {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.$emit('submit', submitData)
this.handleClose()
} else {
this.$message.error(
response.msg || (this.isEdit ? '修改失败' : '添加失败')
)
}
.then(() => {
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
this.$emit('submit', submitData)
this.handleClose()
})
.catch(error => {
console.error(
this.isEdit ? '修改用户出错:' : '添加用户出错:',
error
)
.catch(() => {
this.$message.error(this.isEdit ? '修改用户出错' : '添加用户出错')
})
.finally(() => {

View File

@@ -240,16 +240,10 @@ export default {
getUserPage(params)
.then(response => {
console.log(response)
if (response.code === '0') {
this.tableData = response.content.content.list || []
this.tableConfig.total = response.content.content.total || 0
} else {
this.$message.error(response.msg || '获取用户列表失败')
}
this.tableData = response.content.content.list || []
this.tableConfig.total = response.content.content.total || 0
})
.catch(error => {
console.error('获取用户列表出错:', error)
.catch(() => {
this.$message.error('获取用户列表出错')
})
.finally(() => {
@@ -280,15 +274,10 @@ export default {
// 获取用户详情
queryUserDetail({ id: row.id })
.then(response => {
if (response.code === '0') {
this.currentUserData = response.content.content || {}
this.dialogVisible = true
} else {
this.$message.error(response.msg || '获取用户详情失败')
}
this.currentUserData = response.content.content || {}
this.dialogVisible = true
})
.catch(error => {
console.error('获取用户详情出错:', error)
.catch(() => {
this.$message.error('获取用户详情出错')
})
.finally(() => {
@@ -305,22 +294,17 @@ export default {
// 获取用户详情
queryUserDetail({ id: row.id })
.then(response => {
if (response.code === '0') {
this.currentUserData = response.content.content || {}
this.dialogVisible = true
} else {
this.$message.error(response.msg || '获取用户详情失败')
}
this.currentUserData = response.content.content || {}
this.dialogVisible = true
})
.catch(error => {
console.error('获取用户详情出错:', error)
.catch(() => {
this.$message.error('获取用户详情出错')
})
.finally(() => {
this.loading = false
})
},
handleSubmit(formData) {
handleSubmit() {
this.getUserList() // 提交后刷新列表
},
handleSizeChange(val) {
@@ -341,16 +325,11 @@ export default {
this.loading = true
// 将id放入数组中传递
deleteUser([row.id])
.then(response => {
if (response.code === '0') {
this.$message.success('删除成功')
this.getUserList()
} else {
this.$message.error(response.msg || '删除失败')
}
.then(() => {
this.$message.success('删除成功')
this.getUserList()
})
.catch(error => {
console.error('删除用户出错:', error)
.catch(() => {
this.$message.error('删除用户出错')
})
.finally(() => {
@@ -374,16 +353,11 @@ export default {
userId: row.id,
status: newStatus
})
.then(response => {
if (response.code === '0') {
this.$message.success(`${statusText}成功`)
this.getUserList() // 刷新列表
} else {
this.$message.error(response.msg || `${statusText}失败`)
}
.then(() => {
this.$message.success(`${statusText}成功`)
this.getUserList() // 刷新列表
})
.catch(error => {
console.error(`${statusText}用户出错:`, error)
.catch(() => {
this.$message.error(`${statusText}用户出错`)
})
})
@@ -398,11 +372,9 @@ export default {
// 调用resetPassword接口
resetPassword({
userId: row.id
}).then(response => {
if (response.code === '0') {
this.$message.success('重置密码成功')
this.handleQuery() // 刷新列表
}
}).then(() => {
this.$message.success('重置密码成功')
this.handleQuery() // 刷新列表
})
})
}