Files
lilishop-ui/manager/src/views/error-page/403.vue
lifenlong 88fc1b0b2a refactor: 四端完成 Options API → script setup + vuex → pinia 迁移
- buyer(95) / seller(169) / im(53) / manager(280) 共 597 个组件全部从 Options API 转换为 <script setup>
- 四端 vuex 全部移除,状态管理统一迁移至 pinia 4(stores/ 目录)
- util.js 等基础设施去除 vm 首参依赖;全局属性($Message/$filters 等)在 script 内改为具名导入
- 被外部 ref 访问的公共组件均已补齐 defineExpose(清单见各端 MIGRATION-VUE3.md)
- 各端 eslint 启用 vue/component-api-style 防止新代码回退 Options API
- 四端 yarn build 全部通过;迁移约定与注意事项已更新至各端 MIGRATION-VUE3.md
2026-10-13 07:06:59 +08:00

116 lines
2.4 KiB
Vue

<template>
<div class="error403">
<div class="error403-body-con">
<el-card>
<div class="error403-body-con-title">
4<span class="error403-0-span">🔒</span><span class="error403-key-span">⚡</span>
</div>
<p class="error403-body-con-message">You don't have permission</p>
<div class="error403-btn-con">
<el-button size="large" style="width: 200px" @click="goHome">返回首页</el-button>
<el-button size="large" type="primary" style="width: 200px; margin-left: 40px" @click="backPage">
返回上一页
</el-button>
</div>
</el-card>
</div>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
defineOptions({ name: "Error403" });
const router = useRouter();
function backPage() {
router.go(-1);
}
function goHome() {
router.push({
name: "home_index",
});
}
</script>
<style lang="scss" scoped>
@keyframes error403animation {
0% {
transform: rotateZ(0deg);
}
40% {
transform: rotateZ(-20deg);
}
45% {
transform: rotateZ(-15deg);
}
50% {
transform: rotateZ(-20deg);
}
55% {
transform: rotateZ(-15deg);
}
60% {
transform: rotateZ(-20deg);
}
100% {
transform: rotateZ(0deg);
}
}
.error403 {
&-body-con {
width: 700px;
height: 500px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
&-title {
text-align: center;
font-size: 240px;
font-weight: 700;
color: #2d8cf0;
height: 260px;
line-height: 260px;
margin-top: 40px;
.error403-0-span {
display: inline-block;
position: relative;
width: 170px;
height: 170px;
border-radius: 50%;
border: 20px solid #ed3f14;
color: #ed3f14;
margin-right: 10px;
font-size: 80px;
line-height: 130px;
}
.error403-key-span {
display: inline-block;
position: relative;
width: 100px;
height: 190px;
border-radius: 50%;
margin-right: 10px;
font-size: 80px;
animation: error403animation 2.8s ease 0s infinite;
}
}
&-message {
display: block;
text-align: center;
font-size: 30px;
font-weight: 500;
letter-spacing: 4px;
color: #dddde2;
}
}
&-btn-con {
text-align: center;
padding: 20px 0;
margin-bottom: 40px;
}
}
</style>