feat: 升级stylelint依赖并修复相关问题

- 更新stylelint到16.x版本
- 修复postcss版本冲突
- 解决循环依赖问题
- 优化代码类型定义
This commit is contained in:
2025-06-24 19:46:34 +08:00
parent d1c2d332ab
commit 4d66f8baa7
30 changed files with 2190 additions and 2424 deletions
+14 -1
View File
@@ -1,12 +1,25 @@
import type { Router } from 'vue-router';
import { setRouteEmitter } from '@/utils/route-listener';
import { onRouteChangePreload, smartPreload } from '@/utils/router-preload';
import { useUserStore } from '@/store';
import setupUserLoginInfoGuard from './userLoginInfo';
import setupPermissionGuard from './permission';
function setupPageGuard(router: Router) {
router.beforeEach(async (to) => {
router.beforeEach(async (to, from) => {
// emit route change
setRouteEmitter(to);
// 预加载策略
onRouteChangePreload(to, from);
});
router.afterEach((to) => {
// 路由切换完成后,根据用户角色智能预加载
const userStore = useUserStore();
if (userStore.role) {
smartPreload(userStore.role, to);
}
});
}
+42 -9
View File
@@ -1,6 +1,6 @@
import PageLayout from '@/layout/page-layout.vue';
import { DEFAULT_LAYOUT } from '../base';
import { AppRouteRecordRaw } from '../types';
import PageLayout from '@/layout/page-layout.vue';
// 业务路由
const BUSINESS: AppRouteRecordRaw = {
path: '/business',
@@ -20,7 +20,12 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'project',
name: 'business-project',
component: () => import('@/views/business/project/index.vue'),
component: () =>
import(
/* webpackChunkName: "business-project" */
/* webpackPreload: true */
'@/views/business/project/index.vue'
),
meta: {
locale: 'menu.business.project',
requiresAuth: true,
@@ -47,7 +52,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'house-view',
name: 'business-space-house-view',
component: () => import('@/views/business/space/house-view.vue'),
component: () =>
import(
/* webpackChunkName: "business-space" */
'@/views/business/space/house-view.vue'
),
meta: {
locale: 'menu.business.house-view',
requiresAuth: true,
@@ -59,7 +68,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'house-list',
name: 'business-space-house-list',
component: () => import('@/views/business/space/house-list.vue'),
component: () =>
import(
/* webpackChunkName: "business-space" */
'@/views/business/space/house-list.vue'
),
meta: {
locale: 'menu.business.house-list',
requiresAuth: true,
@@ -88,7 +101,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'contract-list',
name: 'business-contract-list',
component: () => import('@/views/business/contract/list.vue'),
component: () =>
import(
/* webpackChunkName: "business-contract" */
'@/views/business/contract/list.vue'
),
meta: {
locale: 'menu.business.contract-list',
requiresAuth: true,
@@ -101,7 +118,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'contract-file',
name: 'business-contract-file',
component: () => import('@/views/business/contract/file.vue'),
component: () =>
import(
/* webpackChunkName: "business-contract" */
'@/views/business/contract/file.vue'
),
meta: {
locale: 'menu.business.contract-file',
requiresAuth: true,
@@ -114,7 +135,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'contract-template',
name: 'business-contract-template',
component: () => import('@/views/business/contract/template.vue'),
component: () =>
import(
/* webpackChunkName: "business-contract" */
'@/views/business/contract/template.vue'
),
meta: {
locale: 'menu.business.contract-template',
requiresAuth: true,
@@ -143,7 +168,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'tenant-list',
name: 'business-tenant-list',
component: () => import('@/views/business/tenant/list.vue'),
component: () =>
import(
/* webpackChunkName: "business-tenant" */
'@/views/business/tenant/list.vue'
),
meta: {
locale: 'menu.business.tenant-list',
requiresAuth: true,
@@ -156,7 +185,11 @@ const BUSINESS: AppRouteRecordRaw = {
{
path: 'tenant-contacts',
name: 'business-tenant-contacts',
component: () => import('@/views/business/tenant/contacts.vue'),
component: () =>
import(
/* webpackChunkName: "business-tenant" */
'@/views/business/tenant/contacts.vue'
),
meta: {
locale: 'menu.business.tenant.contacts',
requiresAuth: true,
+13 -3
View File
@@ -1,6 +1,7 @@
import PageLayout from '@/layout/page-layout.vue';
import { DEFAULT_LAYOUT } from '../base';
import { AppRouteRecordRaw } from '../types';
import PageLayout from '@/layout/page-layout.vue';
const DASHBOARD: AppRouteRecordRaw = {
path: '/dashboard',
name: 'dashboard',
@@ -32,7 +33,12 @@ const DASHBOARD: AppRouteRecordRaw = {
{
path: 'step',
name: 'Step',
component: () => import('@/views/dashboard/workplace/index.vue'),
component: () =>
import(
/* webpackChunkName: "dashboard-workplace" */
/* webpackPreload: true */
'@/views/dashboard/workplace/index.vue'
),
meta: {
locale: 'menu.form.step',
requiresAuth: true,
@@ -47,7 +53,11 @@ const DASHBOARD: AppRouteRecordRaw = {
{
path: 'monitor',
name: 'Monitor',
component: () => import('@/views/dashboard/monitor/index.vue'),
component: () =>
import(
/* webpackChunkName: "dashboard-monitor" */
'@/views/dashboard/monitor/index.vue'
),
meta: {
locale: 'menu.dashboard.monitor',
requiresAuth: true,
+12 -4
View File
@@ -11,23 +11,31 @@ const FINANCE: AppRouteRecordRaw = {
icon: 'icon-settings',
requiresAuth: true,
order: 3,
isFirst:true,
isFirst: true,
},
children: [
{
path: 'bill',
name: 'bill',
component: () => import('@/views/finance/bill/index.vue'),
component: () =>
import(
/* webpackChunkName: "finance-bill" */
'@/views/finance/bill/index.vue'
),
meta: {
locale: 'menu.finance.bill',
requiresAuth: true,
roles: ['admin'],
},
},
{
{
path: 'money',
name: 'money',
component: () => import('@/views/finance/money/index.vue'),
component: () =>
import(
/* webpackChunkName: "finance-money" */
'@/views/finance/money/index.vue'
),
meta: {
locale: 'menu.finance.money',
requiresAuth: true,