feat: 添加面包屑导航组件并优化页面布局

refactor: 重构页面结构和导航逻辑

fix: 修复移动端菜单导航和滚动行为

perf: 优化图片加载性能和资源请求

test: 添加端到端测试和性能测试用例

docs: 更新.gitignore文件

chore: 更新依赖和配置

style: 优化代码格式和类型安全

ci: 调整Playwright测试超时时间

build: 更新Next.js配置和构建选项
This commit is contained in:
张翔
2026-02-28 09:09:04 +08:00
parent 9d01e0982f
commit 9451814ca4
60 changed files with 4078 additions and 148 deletions
+5 -1
View File
@@ -1,7 +1,11 @@
import { test as base } from '@playwright/test';
import { AxeBuilder } from '@axe-core/playwright';
export const test = base.extend({
type A11yFixtures = {
makeAxeBuilder: () => AxeBuilder;
};
export const test = base.extend<A11yFixtures>({
makeAxeBuilder: async ({ page }, use) => {
const makeAxeBuilder = () => new AxeBuilder({ page });
await use(makeAxeBuilder);
+43 -1
View File
@@ -1,11 +1,23 @@
import { test as base, Page } from '@playwright/test';
import { test as base } from '@playwright/test';
import { HomePage } from '../pages/HomePage';
import { ContactPage } from '../pages/ContactPage';
import { AboutPage } from '../pages/AboutPage';
import { CasesPage } from '../pages/CasesPage';
import { ServicesPage } from '../pages/ServicesPage';
import { ProductsPage } from '../pages/ProductsPage';
import { SolutionsPage } from '../pages/SolutionsPage';
import { NewsPage } from '../pages/NewsPage';
import { TestDataGenerator } from '../utils/TestDataGenerator';
export type TestFixtures = {
homePage: HomePage;
contactPage: ContactPage;
aboutPage: AboutPage;
casesPage: CasesPage;
servicesPage: ServicesPage;
productsPage: ProductsPage;
solutionsPage: SolutionsPage;
newsPage: NewsPage;
testDataGenerator: typeof TestDataGenerator;
};
@@ -20,6 +32,36 @@ export const test = base.extend<TestFixtures>({
await use(contactPage);
},
aboutPage: async ({ page }, use) => {
const aboutPage = new AboutPage(page);
await use(aboutPage);
},
casesPage: async ({ page }, use) => {
const casesPage = new CasesPage(page);
await use(casesPage);
},
servicesPage: async ({ page }, use) => {
const servicesPage = new ServicesPage(page);
await use(servicesPage);
},
productsPage: async ({ page }, use) => {
const productsPage = new ProductsPage(page);
await use(productsPage);
},
solutionsPage: async ({ page }, use) => {
const solutionsPage = new SolutionsPage(page);
await use(solutionsPage);
},
newsPage: async ({ page }, use) => {
const newsPage = new NewsPage(page);
await use(newsPage);
},
testDataGenerator: async ({}, use) => {
await use(TestDataGenerator);
},