feat(admin-portal): 完整实现 admin-portal 管理端微前端

包含 src 全部实现、Dockerfile、配置文件等
This commit is contained in:
SpecialX
2026-07-10 19:09:12 +08:00
parent 02d09c47fa
commit b3511910d1
69 changed files with 11955 additions and 693 deletions

View File

@@ -0,0 +1,90 @@
// admin-portal ESLint flat config
// 包含 React + jsx-a11y + TypeScript 规则
// 注意:@next/eslint-plugin-next 14.x 与 ESLint 9 不兼容,暂不使用
const js = require('@eslint/js');
const tseslint = require('typescript-eslint');
const prettierConfig = require('eslint-config-prettier');
const jsx11y = require('eslint-plugin-jsx-a11y');
module.exports = tseslint.config(
// 全局忽略
{
ignores: [
'.next/**',
'coverage/**',
'node_modules/**',
'public/mockServiceWorker.js',
'eslint.config.js',
'next.config.js',
'vitest.config.ts',
'postcss.config.js',
'tailwind.config.js',
],
},
// 基础 JS 规则
js.configs.recommended,
// TypeScript 规则
...tseslint.configs.recommended,
// jsx-a11y 规则A11y WCAG 2.2 AA
{
plugins: {
'jsx-a11y': jsx11y,
},
rules: {
...jsx11y.flatConfigs.recommended.rules,
'jsx-a11y/no-autofocus': 'warn',
'jsx-a11y/aria-role': 'error',
'jsx-a11y/aria-props': 'error',
'jsx-a11y/aria-proptypes': 'error',
'jsx-a11y/aria-unsupported-elements': 'error',
'jsx-a11y/role-has-required-aria-props': 'error',
'jsx-a11y/role-supports-aria-props': 'error',
'jsx-a11y/tabindex-no-positive': 'error',
'jsx-a11y/no-noninteractive-tabindex': 'warn',
},
},
// React/JSX 文件配置
{
files: ['**/*.tsx', '**/*.ts'],
languageOptions: {
ecmaVersion: 2024,
sourceType: 'module',
parserOptions: {
ecmaFeatures: { jsx: true },
},
},
rules: {
// 禁止 any未知类型用 unknown
'@typescript-eslint/no-explicit-any': 'warn',
// 未使用变量允许下划线前缀
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
// 允许 console开发环境
'no-console': 'off',
// 允许未定义的 requireNext.js 配置)
'@typescript-eslint/no-require-imports': 'off',
},
},
// 测试文件放宽规则
{
files: ['**/*.test.ts', '**/*.test.tsx', '**/*.spec.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'jsx-a11y/no-autofocus': 'off',
},
},
// 禁用与 Prettier 冲突的规则
prettierConfig,
);