Skip to content

Commit 9480f96

Browse files
authored
* fix(web): 修复默认不存在时跳转问题 * feature(web): 图片组件增加预览
1 parent 66d119b commit 9480f96

File tree

4 files changed

+24
-5
lines changed

4 files changed

+24
-5
lines changed

web/src/components/customPic/index.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<img v-else :src="noAvatar" class="avatar">
1010
</template>
1111
<template v-if="picType === 'file'">
12-
<img :src="file" class="file">
12+
<el-image :src="file" class="file" :preview-src-list="previewSrcList" :preview-teleported="true"/>
1313
</template>
1414
</span>
1515
</template>
@@ -34,6 +34,10 @@ const props = defineProps({
3434
type: String,
3535
required: false,
3636
default: ''
37+
},
38+
preview: {
39+
type: Boolean,
40+
default: false
3741
}
3842
})
3943
@@ -61,6 +65,7 @@ const file = computed(() => {
6165
}
6266
return props.picSrc
6367
})
68+
const previewSrcList = computed(() => props.preview ? [file.value] : [])
6469
6570
</script>
6671

web/src/permission.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ router.beforeEach(async(to, from) => {
5151
}
5252
// token 可以解析但是却是不存在的用户 id 或角色 id 会导致无限调用
5353
if (userStore.userInfo?.authority?.defaultRouter != null) {
54-
return { name: userStore.userInfo.authority.defaultRouter }
54+
if (router.hasRoute(userStore.userInfo.authority.defaultRouter)) {
55+
return { name: userStore.userInfo.authority.defaultRouter }
56+
} else {
57+
return { path: '/layout/404' }
58+
}
5559
} else {
5660
// 强制退出账号
5761
userStore.ClearStorage()
@@ -72,7 +76,11 @@ router.beforeEach(async(to, from) => {
7276
if (!routerStore.asyncRouterFlag && whiteList.indexOf(from.name) < 0) {
7377
await getRouter(userStore)
7478
if (userStore.token) {
75-
return { ...to, replace: true }
79+
if (router.hasRoute(userStore.userInfo.authority.defaultRouter)) {
80+
return { ...to, replace: true }
81+
} else {
82+
return { path: '/layout/404' }
83+
}
7684
} else {
7785
return {
7886
name: 'Login',

web/src/pinia/modules/user.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,13 @@ export const useUserStore = defineStore('user', () => {
6565
asyncRouters.forEach(asyncRouter => {
6666
router.addRoute(asyncRouter)
6767
})
68-
await router.replace({ name: userInfo.value.authority.defaultRouter })
68+
69+
if (!router.hasRoute(userInfo.value.authority.defaultRouter)) {
70+
ElMessage.error("请联系管理员进行授权")
71+
} else {
72+
await router.replace({ name: userInfo.value.authority.defaultRouter })
73+
}
74+
6975
loadingInstance.value.close()
7076

7177
const isWin = ref(/windows/i.test(navigator.userAgent))

web/src/view/example/upload/upload.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<el-table :data="tableData">
3434
<el-table-column align="left" label="预览" width="100">
3535
<template #default="scope">
36-
<CustomPic pic-type="file" :pic-src="scope.row.url" />
36+
<CustomPic pic-type="file" :pic-src="scope.row.url" preview/>
3737
</template>
3838
</el-table-column>
3939
<el-table-column align="left" label="日期" prop="UpdatedAt" width="180">

0 commit comments

Comments
 (0)