diff --git a/demo/.editorconfig b/demo/.editorconfig deleted file mode 100644 index 7e3649ac..00000000 --- a/demo/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false - -[Makefile] -indent_style = tab diff --git a/demo/.eslintignore b/demo/.eslintignore deleted file mode 100644 index 8336e935..00000000 --- a/demo/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -/lambda/ -/scripts -/config -.history -public -dist -.umi -mock \ No newline at end of file diff --git a/demo/.eslintrc.js b/demo/.eslintrc.js deleted file mode 100644 index b882c20e..00000000 --- a/demo/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - extends: [require.resolve('@umijs/fabric/dist/eslint')], - globals: { - ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: true, - page: true, - REACT_APP_ENV: true, - }, -}; diff --git a/demo/.gitignore b/demo/.gitignore deleted file mode 100644 index 21ab9fb7..00000000 --- a/demo/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -**/node_modules -# roadhog-api-doc ignore -/src/utils/request-temp.js -_roadhog-api-doc - -# production -/dist - -# misc -.DS_Store -npm-debug.log* -yarn-error.log - -/coverage -.idea -yarn.lock -package-lock.json -pnpm-lock.yaml -*bak - - -# visual studio code -.history -*.log -functions/* -.temp/** - -# umi -.umi -.umi-production - -# screenshot -screenshot -.firebase -.eslintcache - -build diff --git a/demo/.husky/.gitignore b/demo/.husky/.gitignore deleted file mode 100644 index 31354ec1..00000000 --- a/demo/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/demo/.husky/commit-msg b/demo/.husky/commit-msg deleted file mode 100755 index d50cdcf9..00000000 --- a/demo/.husky/commit-msg +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -# Export Git hook params -export GIT_PARAMS=$* - -npx --no-install fabric verify-commit diff --git a/demo/.husky/pre-commit b/demo/.husky/pre-commit deleted file mode 100755 index d37daa07..00000000 --- a/demo/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npx --no-install lint-staged diff --git a/demo/.prettierignore b/demo/.prettierignore deleted file mode 100644 index d17efb44..00000000 --- a/demo/.prettierignore +++ /dev/null @@ -1,23 +0,0 @@ -**/*.svg -package.json -.umi -.umi-production -/dist -.dockerignore -.DS_Store -.eslintignore -*.png -*.toml -docker -.editorconfig -Dockerfile* -.gitignore -.prettierignore -LICENSE -.eslintcache -*.lock -yarn-error.log -.history -CNAME -/build -/public \ No newline at end of file diff --git a/demo/.prettierrc.js b/demo/.prettierrc.js deleted file mode 100644 index 7b597d78..00000000 --- a/demo/.prettierrc.js +++ /dev/null @@ -1,5 +0,0 @@ -const fabric = require('@umijs/fabric'); - -module.exports = { - ...fabric.prettier, -}; diff --git a/demo/.stylelintrc.js b/demo/.stylelintrc.js deleted file mode 100644 index a1184de4..00000000 --- a/demo/.stylelintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: [require.resolve('@umijs/fabric/dist/stylelint')], -}; diff --git a/demo/.vscode/extensions.json b/demo/.vscode/extensions.json deleted file mode 100644 index 33f300da..00000000 --- a/demo/.vscode/extensions.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "recommendations": [ - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "stylelint.vscode-stylelint", - "wangzy.sneak-mark" - ] -} diff --git a/demo/.vscode/settings.json b/demo/.vscode/settings.json deleted file mode 100644 index a5d9d035..00000000 --- a/demo/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "editor.formatOnSave": true, - "prettier.requireConfig": true, - "editor.defaultFormatter": "esbenp.prettier-vscode" -} diff --git a/demo/README.md b/demo/README.md deleted file mode 100644 index 4c89a727..00000000 --- a/demo/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Ant Design Pro - -This project is initialized with [Ant Design Pro](https://pro.ant.design). Follow is the quick guide for how to use. - -## Environment Prepare - -Install `node_modules`: - -```bash -npm install -``` - -or - -```bash -yarn -``` - -## Provided Scripts - -Ant Design Pro provides some useful script to help you quick start and build with web project, code style check and test. - -Scripts provided in `package.json`. It's safe to modify or add additional script: - -### Start project - -```bash -npm start -``` - -### Build project - -```bash -npm run build -``` - -### Check code style - -```bash -npm run lint -``` - -You can also use script to auto fix some lint error: - -```bash -npm run lint:fix -``` - -### Test code - -```bash -npm test -``` - -## More - -You can view full document on our [official website](https://pro.ant.design). And welcome any feedback in our [github](https://github.com/ant-design/ant-design-pro). diff --git a/demo/config/config.dev.ts b/demo/config/config.dev.ts deleted file mode 100644 index ab0e590f..00000000 --- a/demo/config/config.dev.ts +++ /dev/null @@ -1,15 +0,0 @@ -// https://umijs.org/config/ -import { defineConfig } from 'umi'; - -export default defineConfig({ - plugins: [ - // https://github.com/zthxxx/react-dev-inspector - 'react-dev-inspector/plugins/umi/react-inspector', - ], - // https://github.com/zthxxx/react-dev-inspector#inspector-loader-props - inspectorConfig: { - exclude: [], - babelPlugins: [], - babelOptions: {}, - }, -}); diff --git a/demo/config/config.ts b/demo/config/config.ts deleted file mode 100644 index 21a024d2..00000000 --- a/demo/config/config.ts +++ /dev/null @@ -1,358 +0,0 @@ -// https://umijs.org/config/ -import { defineConfig } from 'umi'; -import { join } from 'path'; -import defaultSettings from './defaultSettings'; -import proxy from './proxy'; - -const { REACT_APP_ENV } = process.env; - -export default defineConfig({ - hash: true, - antd: {}, - dva: { - hmr: true, - }, - layout: { - // https://umijs.org/zh-CN/plugins/plugin-layout - locale: true, - siderWidth: 208, - ...defaultSettings, - }, - // https://umijs.org/zh-CN/plugins/plugin-locale - locale: { - // default zh-CN - default: 'zh-CN', - antd: true, - // default true, when it is true, will use `navigator.language` overwrite default - baseNavigator: true, - }, - dynamicImport: { - loading: '@ant-design/pro-layout/es/PageLoading', - }, - targets: { - ie: 11, - }, - // umi routes: https://umijs.org/docs/routing - routes: [ - { - path: '/user', - layout: false, - routes: [ - { - path: '/user/login', - layout: false, - name: 'login', - component: './user/Login', - }, - { - path: '/user', - redirect: '/user/login', - }, - { - name: 'register-result', - icon: 'smile', - path: '/user/register-result', - component: './user/register-result', - }, - { - name: 'register', - icon: 'smile', - path: '/user/register', - component: './user/register', - }, - { - component: '404', - }, - ], - }, - { - path: '/dashboard', - name: 'dashboard', - icon: 'dashboard', - routes: [ - { - path: '/dashboard', - redirect: '/dashboard/analysis', - }, - { - name: 'analysis', - icon: 'smile', - path: '/dashboard/analysis', - component: './dashboard/analysis', - }, - { - name: 'monitor', - icon: 'smile', - path: '/dashboard/monitor', - component: './dashboard/monitor', - }, - { - name: 'workplace', - icon: 'smile', - path: '/dashboard/workplace', - component: './dashboard/workplace', - }, - ], - }, - { - path: '/form', - icon: 'form', - name: 'form', - routes: [ - { - path: '/form', - redirect: '/form/basic-form', - }, - { - name: 'basic-form', - icon: 'smile', - path: '/form/basic-form', - component: './form/basic-form', - }, - { - name: 'step-form', - icon: 'smile', - path: '/form/step-form', - component: './form/step-form', - }, - { - name: 'advanced-form', - icon: 'smile', - path: '/form/advanced-form', - component: './form/advanced-form', - }, - ], - }, - { - path: '/list', - icon: 'table', - name: 'list', - routes: [ - { - path: '/list/search', - name: 'search-list', - component: './list/search', - routes: [ - { - path: '/list/search', - redirect: '/list/search/articles', - }, - { - name: 'articles', - icon: 'smile', - path: '/list/search/articles', - component: './list/search/articles', - }, - { - name: 'projects', - icon: 'smile', - path: '/list/search/projects', - component: './list/search/projects', - }, - { - name: 'applications', - icon: 'smile', - path: '/list/search/applications', - component: './list/search/applications', - }, - ], - }, - { - path: '/list', - redirect: '/list/table-list', - }, - { - name: 'table-list', - icon: 'smile', - path: '/list/table-list', - component: './list/table-list', - }, - { - name: 'basic-list', - icon: 'smile', - path: '/list/basic-list', - component: './list/basic-list', - }, - { - name: 'card-list', - icon: 'smile', - path: '/list/card-list', - component: './list/card-list', - }, - ], - }, - { - path: '/profile', - name: 'profile', - icon: 'profile', - routes: [ - { - path: '/profile', - redirect: '/profile/basic', - }, - { - name: 'basic', - icon: 'smile', - path: '/profile/basic', - component: './profile/basic', - }, - { - name: 'advanced', - icon: 'smile', - path: '/profile/advanced', - component: './profile/advanced', - }, - ], - }, - { - name: 'result', - icon: 'CheckCircleOutlined', - path: '/result', - routes: [ - { - path: '/result', - redirect: '/result/success', - }, - { - name: 'success', - icon: 'smile', - path: '/result/success', - component: './result/success', - }, - { - name: 'fail', - icon: 'smile', - path: '/result/fail', - component: './result/fail', - }, - ], - }, - { - name: 'exception', - icon: 'warning', - path: '/exception', - routes: [ - { - path: '/exception', - redirect: '/exception/403', - }, - { - name: '403', - icon: 'smile', - path: '/exception/403', - component: './exception/403', - }, - { - name: '404', - icon: 'smile', - path: '/exception/404', - component: './exception/404', - }, - { - name: '500', - icon: 'smile', - path: '/exception/500', - component: './exception/500', - }, - ], - }, - { - name: 'account', - icon: 'user', - path: '/account', - routes: [ - { - path: '/account', - redirect: '/account/center', - }, - { - name: 'center', - icon: 'smile', - path: '/account/center', - component: './account/center', - }, - { - name: 'settings', - icon: 'smile', - path: '/account/settings', - component: './account/settings', - }, - ], - }, - { - name: 'editor', - icon: 'highlight', - path: '/editor', - routes: [ - { - path: '/editor', - redirect: '/editor/flow', - }, - { - name: 'flow', - icon: 'smile', - path: '/editor/flow', - component: './editor/flow', - }, - { - name: 'mind', - icon: 'smile', - path: '/editor/mind', - component: './editor/mind', - }, - { - name: 'koni', - icon: 'smile', - path: '/editor/koni', - component: './editor/koni', - }, - ], - }, - { - path: '/', - redirect: '/dashboard/analysis', - }, - { - component: '404', - }, - ], - access: {}, - // Theme for antd: https://ant.design/docs/react/customize-theme-cn - theme: { - // 如果不想要 configProvide 动态设置主题需要把这个设置为 default - // 只有设置为 variable, 才能使用 configProvide 动态设置主色调 - // https://ant.design/docs/react/customize-theme-variable-cn - 'root-entry-name': 'variable', - }, - // esbuild is father build tools - // https://umijs.org/plugins/plugin-esbuild - esbuild: {}, - title: false, - ignoreMomentLocale: true, - proxy: proxy[REACT_APP_ENV || 'dev'], - manifest: { - basePath: '/', - }, - // Fast Refresh 热更新 - fastRefresh: {}, - openAPI: [ - { - requestLibPath: "import { request } from 'umi'", - // 或者使用在线的版本 - // schemaPath: "https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json" - schemaPath: join(__dirname, 'oneapi.json'), - mock: false, - }, - { - requestLibPath: "import { request } from 'umi'", - schemaPath: 'https://gw.alipayobjects.com/os/antfincdn/CA1dOm%2631B/openapi.json', - projectName: 'swagger', - }, - ], - nodeModulesTransform: { - type: 'none', - }, - mfsu: {}, - webpack5: {}, - exportStatic: {}, -}); diff --git a/demo/config/defaultSettings.ts b/demo/config/defaultSettings.ts deleted file mode 100644 index 15397c6c..00000000 --- a/demo/config/defaultSettings.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Settings as LayoutSettings } from '@ant-design/pro-layout'; - -const Settings: LayoutSettings & { - pwa?: boolean; - logo?: string; -} = { - navTheme: 'light', - // 拂晓蓝 - primaryColor: '#1890ff', - layout: 'mix', - contentWidth: 'Fluid', - fixedHeader: false, - fixSiderbar: true, - colorWeak: false, - title: 'Ant Design Pro', - pwa: false, - logo: 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg', - iconfontUrl: '', -}; - -export default Settings; diff --git a/demo/config/oneapi.json b/demo/config/oneapi.json deleted file mode 100644 index c77d988b..00000000 --- a/demo/config/oneapi.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Ant Design Pro", - "version": "1.0.0" - }, - "servers": [ - { - "url": "http://localhost:8000/" - }, - { - "url": "https://localhost:8000/" - } - ], - "paths": { - "/api/currentUser": { - "get": { - "tags": ["api"], - "description": "获取当前的用户", - "operationId": "currentUser", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CurrentUser" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "x-swagger-router-controller": "api" - }, - "/api/login/captcha": { - "post": { - "description": "发送验证码", - "operationId": "getFakeCaptcha", - "tags": ["login"], - "parameters": [ - { - "name": "phone", - "in": "query", - "description": "手机号", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FakeCaptcha" - } - } - } - } - } - } - }, - "/api/login/outLogin": { - "post": { - "description": "登录接口", - "operationId": "outLogin", - "tags": ["login"], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "x-swagger-router-controller": "api" - }, - "/api/login/account": { - "post": { - "tags": ["login"], - "description": "登录接口", - "operationId": "login", - "requestBody": { - "description": "登录系统", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LoginParams" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LoginResult" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "x-codegen-request-body-name": "body" - }, - "x-swagger-router-controller": "api" - }, - "/api/notices": { - "summary": "getNotices", - "description": "NoticeIconItem", - "get": { - "tags": ["api"], - "operationId": "getNotices", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NoticeIconList" - } - } - } - } - } - } - }, - "/api/rule": { - "get": { - "tags": ["rule"], - "description": "获取规则列表", - "operationId": "rule", - "parameters": [ - { - "name": "current", - "in": "query", - "description": "当前的页码", - "schema": { - "type": "number" - } - }, - { - "name": "pageSize", - "in": "query", - "description": "页面的容量", - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RuleList" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "post": { - "tags": ["rule"], - "description": "新建规则", - "operationId": "addRule", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RuleListItem" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "put": { - "tags": ["rule"], - "description": "新建规则", - "operationId": "updateRule", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RuleListItem" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "delete": { - "tags": ["rule"], - "description": "删除规则", - "operationId": "removeRule", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "401": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "x-swagger-router-controller": "api" - }, - "/swagger": { - "x-swagger-pipe": "swagger_raw" - } - }, - "components": { - "schemas": { - "CurrentUser": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "userid": { - "type": "string" - }, - "email": { - "type": "string" - }, - "signature": { - "type": "string" - }, - "title": { - "type": "string" - }, - "group": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "label": { - "type": "string" - } - } - } - }, - "notifyCount": { - "type": "integer", - "format": "int32" - }, - "unreadCount": { - "type": "integer", - "format": "int32" - }, - "country": { - "type": "string" - }, - "access": { - "type": "string" - }, - "geographic": { - "type": "object", - "properties": { - "province": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "key": { - "type": "string" - } - } - }, - "city": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "key": { - "type": "string" - } - } - } - } - }, - "address": { - "type": "string" - }, - "phone": { - "type": "string" - } - } - }, - "LoginResult": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "currentAuthority": { - "type": "string" - } - } - }, - "PageParams": { - "type": "object", - "properties": { - "current": { - "type": "number" - }, - "pageSize": { - "type": "number" - } - } - }, - "RuleListItem": { - "type": "object", - "properties": { - "key": { - "type": "integer", - "format": "int32" - }, - "disabled": { - "type": "boolean" - }, - "href": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "desc": { - "type": "string" - }, - "callNo": { - "type": "integer", - "format": "int32" - }, - "status": { - "type": "integer", - "format": "int32" - }, - "updatedAt": { - "type": "string", - "format": "datetime" - }, - "createdAt": { - "type": "string", - "format": "datetime" - }, - "progress": { - "type": "integer", - "format": "int32" - } - } - }, - "RuleList": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RuleListItem" - } - }, - "total": { - "type": "integer", - "description": "列表的内容总数", - "format": "int32" - }, - "success": { - "type": "boolean" - } - } - }, - "FakeCaptcha": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "status": { - "type": "string" - } - } - }, - "LoginParams": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "autoLogin": { - "type": "boolean" - }, - "type": { - "type": "string" - } - } - }, - "ErrorResponse": { - "required": ["errorCode"], - "type": "object", - "properties": { - "errorCode": { - "type": "string", - "description": "业务约定的错误码" - }, - "errorMessage": { - "type": "string", - "description": "业务上的错误信息" - }, - "success": { - "type": "boolean", - "description": "业务上的请求是否成功" - } - } - }, - "NoticeIconList": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NoticeIconItem" - } - }, - "total": { - "type": "integer", - "description": "列表的内容总数", - "format": "int32" - }, - "success": { - "type": "boolean" - } - } - }, - "NoticeIconItemType": { - "title": "NoticeIconItemType", - "description": "已读未读列表的枚举", - "type": "string", - "properties": {}, - "enum": ["notification", "message", "event"] - }, - "NoticeIconItem": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "extra": { - "type": "string", - "format": "any" - }, - "key": { "type": "string" }, - "read": { - "type": "boolean" - }, - "avatar": { - "type": "string" - }, - "title": { - "type": "string" - }, - "status": { - "type": "string" - }, - "datetime": { - "type": "string", - "format": "date" - }, - "description": { - "type": "string" - }, - "type": { - "extensions": { - "x-is-enum": true - }, - "$ref": "#/components/schemas/NoticeIconItemType" - } - } - } - } - } -} diff --git a/demo/config/proxy.ts b/demo/config/proxy.ts deleted file mode 100644 index a8194b7e..00000000 --- a/demo/config/proxy.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * 在生产环境 代理是无法生效的,所以这里没有生产环境的配置 - * ------------------------------- - * The agent cannot take effect in the production environment - * so there is no configuration of the production environment - * For details, please see - * https://pro.ant.design/docs/deploy - */ -export default { - dev: { - // localhost:8000/api/** -> https://preview.pro.ant.design/api/** - '/api/': { - // 要代理的地址 - target: 'https://preview.pro.ant.design', - // 配置了这个可以从 http 代理到 https - // 依赖 origin 的功能可能需要这个,比如 cookie - changeOrigin: true, - }, - }, - test: { - '/api/': { - target: 'https://proapi.azurewebsites.net', - changeOrigin: true, - pathRewrite: { '^': '' }, - }, - }, - pre: { - '/api/': { - target: 'your pre url', - changeOrigin: true, - pathRewrite: { '^': '' }, - }, - }, -}; diff --git a/demo/config/routes.ts b/demo/config/routes.ts deleted file mode 100644 index 92b61fbe..00000000 --- a/demo/config/routes.ts +++ /dev/null @@ -1,53 +0,0 @@ -export default [ - { - path: '/user', - layout: false, - routes: [ - { - name: 'login', - path: '/user/login', - component: './user/Login', - }, - { - component: './404', - }, - ], - }, - { - path: '/welcome', - name: 'welcome', - icon: 'smile', - component: './Welcome', - }, - { - path: '/admin', - name: 'admin', - icon: 'crown', - access: 'canAdmin', - component: './Admin', - routes: [ - { - path: '/admin/sub-page', - name: 'sub-page', - icon: 'smile', - component: './Welcome', - }, - { - component: './404', - }, - ], - }, - { - name: 'list.table-list', - icon: 'table', - path: '/list', - component: './TableList', - }, - { - path: '/', - redirect: '/welcome', - }, - { - component: './404', - }, -]; diff --git a/demo/jest.config.js b/demo/jest.config.js deleted file mode 100644 index 47295738..00000000 --- a/demo/jest.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - testURL: 'http://localhost:8000', - verbose: false, - extraSetupFiles: ['./tests/setupTests.js'], - globals: { - ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: false, - localStorage: null, - }, -}; diff --git a/demo/jsconfig.json b/demo/jsconfig.json deleted file mode 100644 index 197bee5d..00000000 --- a/demo/jsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "jsx": "react-jsx", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - } - } -} diff --git a/demo/mock/listTableList.ts b/demo/mock/listTableList.ts deleted file mode 100644 index 08ed86de..00000000 --- a/demo/mock/listTableList.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { Request, Response } from 'express'; -import moment from 'moment'; -import { parse } from 'url'; - -// mock tableListDataSource -const genList = (current: number, pageSize: number) => { - const tableListDataSource: API.RuleListItem[] = []; - - for (let i = 0; i < pageSize; i += 1) { - const index = (current - 1) * 10 + i; - tableListDataSource.push({ - key: index, - disabled: i % 6 === 0, - href: 'https://ant.design', - avatar: [ - 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', - 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', - ][i % 2], - name: `TradeCode ${index}`, - owner: '曲丽丽', - desc: '这是一段描述', - callNo: Math.floor(Math.random() * 1000), - status: Math.floor(Math.random() * 10) % 4, - updatedAt: moment().format('YYYY-MM-DD'), - createdAt: moment().format('YYYY-MM-DD'), - progress: Math.ceil(Math.random() * 100), - }); - } - tableListDataSource.reverse(); - return tableListDataSource; -}; - -let tableListDataSource = genList(1, 100); - -function getRule(req: Request, res: Response, u: string) { - let realUrl = u; - if (!realUrl || Object.prototype.toString.call(realUrl) !== '[object String]') { - realUrl = req.url; - } - const { current = 1, pageSize = 10 } = req.query; - const params = parse(realUrl, true).query as unknown as API.PageParams & - API.RuleListItem & { - sorter: any; - filter: any; - }; - - let dataSource = [...tableListDataSource].slice( - ((current as number) - 1) * (pageSize as number), - (current as number) * (pageSize as number), - ); - if (params.sorter) { - const sorter = JSON.parse(params.sorter); - dataSource = dataSource.sort((prev, next) => { - let sortNumber = 0; - Object.keys(sorter).forEach((key) => { - if (sorter[key] === 'descend') { - if (prev[key] - next[key] > 0) { - sortNumber += -1; - } else { - sortNumber += 1; - } - return; - } - if (prev[key] - next[key] > 0) { - sortNumber += 1; - } else { - sortNumber += -1; - } - }); - return sortNumber; - }); - } - if (params.filter) { - const filter = JSON.parse(params.filter as any) as { - [key: string]: string[]; - }; - if (Object.keys(filter).length > 0) { - dataSource = dataSource.filter((item) => { - return Object.keys(filter).some((key) => { - if (!filter[key]) { - return true; - } - if (filter[key].includes(`${item[key]}`)) { - return true; - } - return false; - }); - }); - } - } - - if (params.name) { - dataSource = dataSource.filter((data) => data?.name?.includes(params.name || '')); - } - const result = { - data: dataSource, - total: tableListDataSource.length, - success: true, - pageSize, - current: parseInt(`${params.current}`, 10) || 1, - }; - - return res.json(result); -} - -function postRule(req: Request, res: Response, u: string, b: Request) { - let realUrl = u; - if (!realUrl || Object.prototype.toString.call(realUrl) !== '[object String]') { - realUrl = req.url; - } - - const body = (b && b.body) || req.body; - const { method, name, desc, key } = body; - - switch (method) { - /* eslint no-case-declarations:0 */ - case 'delete': - tableListDataSource = tableListDataSource.filter((item) => key.indexOf(item.key) === -1); - break; - case 'post': - (() => { - const i = Math.ceil(Math.random() * 10000); - const newRule: API.RuleListItem = { - key: tableListDataSource.length, - href: 'https://ant.design', - avatar: [ - 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', - 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', - ][i % 2], - name, - owner: '曲丽丽', - desc, - callNo: Math.floor(Math.random() * 1000), - status: Math.floor(Math.random() * 10) % 2, - updatedAt: moment().format('YYYY-MM-DD'), - createdAt: moment().format('YYYY-MM-DD'), - progress: Math.ceil(Math.random() * 100), - }; - tableListDataSource.unshift(newRule); - return res.json(newRule); - })(); - return; - - case 'update': - (() => { - let newRule = {}; - tableListDataSource = tableListDataSource.map((item) => { - if (item.key === key) { - newRule = { ...item, desc, name }; - return { ...item, desc, name }; - } - return item; - }); - return res.json(newRule); - })(); - return; - default: - break; - } - - const result = { - list: tableListDataSource, - pagination: { - total: tableListDataSource.length, - }, - }; - - res.json(result); -} - -export default { - 'GET /api/rule': getRule, - 'POST /api/rule': postRule, -}; diff --git a/demo/mock/notices.ts b/demo/mock/notices.ts deleted file mode 100644 index 732dd584..00000000 --- a/demo/mock/notices.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Request, Response } from 'express'; - -const getNotices = (req: Request, res: Response) => { - res.json({ - data: [ - { - id: '000000001', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', - title: '你收到了 14 份新周报', - datetime: '2017-08-09', - type: 'notification', - }, - { - id: '000000002', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png', - title: '你推荐的 曲妮妮 已通过第三轮面试', - datetime: '2017-08-08', - type: 'notification', - }, - { - id: '000000003', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png', - title: '这种模板可以区分多种通知类型', - datetime: '2017-08-07', - read: true, - type: 'notification', - }, - { - id: '000000004', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png', - title: '左侧图标用于区分不同的类型', - datetime: '2017-08-07', - type: 'notification', - }, - { - id: '000000005', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', - title: '内容不要超过两行字,超出时自动截断', - datetime: '2017-08-07', - type: 'notification', - }, - { - id: '000000006', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg', - title: '曲丽丽 评论了你', - description: '描述信息描述信息描述信息', - datetime: '2017-08-07', - type: 'message', - clickClose: true, - }, - { - id: '000000007', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg', - title: '朱偏右 回复了你', - description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像', - datetime: '2017-08-07', - type: 'message', - clickClose: true, - }, - { - id: '000000008', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg', - title: '标题', - description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像', - datetime: '2017-08-07', - type: 'message', - clickClose: true, - }, - { - id: '000000009', - title: '任务名称', - description: '任务需要在 2017-01-12 20:00 前启动', - extra: '未开始', - status: 'todo', - type: 'event', - }, - { - id: '000000010', - title: '第三方紧急代码变更', - description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务', - extra: '马上到期', - status: 'urgent', - type: 'event', - }, - { - id: '000000011', - title: '信息安全考试', - description: '指派竹尔于 2017-01-09 前完成更新并发布', - extra: '已耗时 8 天', - status: 'doing', - type: 'event', - }, - { - id: '000000012', - title: 'ABCD 版本发布', - description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务', - extra: '进行中', - status: 'processing', - type: 'event', - }, - ], - }); -}; - -export default { - 'GET /api/notices': getNotices, -}; diff --git a/demo/mock/route.ts b/demo/mock/route.ts deleted file mode 100644 index 418d10f1..00000000 --- a/demo/mock/route.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default { - '/api/auth_routes': { - '/form/advanced-form': { authority: ['admin', 'user'] }, - }, -}; diff --git a/demo/mock/user.ts b/demo/mock/user.ts deleted file mode 100644 index 75edd340..00000000 --- a/demo/mock/user.ts +++ /dev/null @@ -1,203 +0,0 @@ -import { Request, Response } from 'express'; - -const waitTime = (time: number = 100) => { - return new Promise((resolve) => { - setTimeout(() => { - resolve(true); - }, time); - }); -}; - -async function getFakeCaptcha(req: Request, res: Response) { - await waitTime(2000); - return res.json('captcha-xxx'); -} - -const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process.env; - -/** - * 当前用户的权限,如果为空代表没登录 - * current user access, if is '', user need login - * 如果是 pro 的预览,默认是有权限的 - */ -let access = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ? 'admin' : ''; - -const getAccess = () => { - return access; -}; - -// 代码中会兼容本地 service mock 以及部署站点的静态数据 -export default { - // 支持值为 Object 和 Array - 'GET /api/currentUser': (req: Request, res: Response) => { - if (!getAccess()) { - res.status(401).send({ - data: { - isLogin: false, - }, - errorCode: '401', - errorMessage: '请先登录!', - success: true, - }); - return; - } - res.send({ - success: true, - data: { - name: 'Serati Ma', - avatar: 'https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png', - userid: '00000001', - email: 'antdesign@alipay.com', - signature: '海纳百川,有容乃大', - title: '交互专家', - group: '蚂蚁金服-某某某事业群-某某平台部-某某技术部-UED', - tags: [ - { - key: '0', - label: '很有想法的', - }, - { - key: '1', - label: '专注设计', - }, - { - key: '2', - label: '辣~', - }, - { - key: '3', - label: '大长腿', - }, - { - key: '4', - label: '川妹子', - }, - { - key: '5', - label: '海纳百川', - }, - ], - notifyCount: 12, - unreadCount: 11, - country: 'China', - access: getAccess(), - geographic: { - province: { - label: '浙江省', - key: '330000', - }, - city: { - label: '杭州市', - key: '330100', - }, - }, - address: '西湖区工专路 77 号', - phone: '0752-268888888', - }, - }); - }, - // GET POST 可省略 - 'GET /api/users': [ - { - key: '1', - name: 'John Brown', - age: 32, - address: 'New York No. 1 Lake Park', - }, - { - key: '2', - name: 'Jim Green', - age: 42, - address: 'London No. 1 Lake Park', - }, - { - key: '3', - name: 'Joe Black', - age: 32, - address: 'Sidney No. 1 Lake Park', - }, - ], - 'POST /api/login/account': async (req: Request, res: Response) => { - const { password, username, type } = req.body; - await waitTime(2000); - if (password === 'ant.design' && username === 'admin') { - res.send({ - status: 'ok', - type, - currentAuthority: 'admin', - }); - access = 'admin'; - return; - } - if (password === 'ant.design' && username === 'user') { - res.send({ - status: 'ok', - type, - currentAuthority: 'user', - }); - access = 'user'; - return; - } - if (type === 'mobile') { - res.send({ - status: 'ok', - type, - currentAuthority: 'admin', - }); - access = 'admin'; - return; - } - - res.send({ - status: 'error', - type, - currentAuthority: 'guest', - }); - access = 'guest'; - }, - 'POST /api/login/outLogin': (req: Request, res: Response) => { - access = ''; - res.send({ data: {}, success: true }); - }, - 'POST /api/register': (req: Request, res: Response) => { - res.send({ status: 'ok', currentAuthority: 'user', success: true }); - }, - 'GET /api/500': (req: Request, res: Response) => { - res.status(500).send({ - timestamp: 1513932555104, - status: 500, - error: 'error', - message: 'error', - path: '/base/category/list', - }); - }, - 'GET /api/404': (req: Request, res: Response) => { - res.status(404).send({ - timestamp: 1513932643431, - status: 404, - error: 'Not Found', - message: 'No message available', - path: '/base/category/list/2121212', - }); - }, - 'GET /api/403': (req: Request, res: Response) => { - res.status(403).send({ - timestamp: 1513932555104, - status: 403, - error: 'Forbidden', - message: 'Forbidden', - path: '/base/category/list', - }); - }, - 'GET /api/401': (req: Request, res: Response) => { - res.status(401).send({ - timestamp: 1513932555104, - status: 401, - error: 'Unauthorized', - message: 'Unauthorized', - path: '/base/category/list', - }); - }, - - 'GET /api/login/captcha': getFakeCaptcha, -}; diff --git a/demo/package.json b/demo/package.json deleted file mode 100644 index b4f1b8d7..00000000 --- a/demo/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "name": "ant-design-pro", - "version": "5.2.0", - "private": true, - "description": "An out-of-box UI solution for enterprise applications", - "scripts": { - "analyze": "cross-env ANALYZE=1 umi build", - "build": "umi build", - "deploy": "npm run build && npm run gh-pages", - "dev": "npm run start:dev", - "gh-pages": "gh-pages -d dist", - "i18n-remove": "pro i18n-remove --locale=zh-CN --write", - "postinstall": "umi g tmp", - "lint": "umi g tmp && npm run lint:js && npm run lint:style && npm run lint:prettier && npm run tsc", - "lint-staged": "lint-staged", - "lint-staged:js": "eslint --ext .js,.jsx,.ts,.tsx ", - "lint:fix": "eslint --fix --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src && npm run lint:style", - "lint:js": "eslint --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src", - "lint:prettier": "prettier -c --write \"src/**/*\" --end-of-line auto", - "lint:style": "stylelint --fix \"src/**/*.less\" --syntax less", - "openapi": "umi openapi", - "playwright": "playwright install && playwright test", - "prepare": "husky install", - "prettier": "prettier -c --write \"src/**/*\"", - "serve": "umi-serve", - "start": "cross-env UMI_ENV=dev umi dev", - "start:dev": "cross-env REACT_APP_ENV=dev MOCK=none UMI_ENV=dev umi dev", - "start:no-mock": "cross-env MOCK=none UMI_ENV=dev umi dev", - "start:no-ui": "cross-env UMI_UI=none UMI_ENV=dev umi dev", - "start:pre": "cross-env REACT_APP_ENV=pre UMI_ENV=dev umi dev", - "start:test": "cross-env REACT_APP_ENV=test MOCK=none UMI_ENV=dev umi dev", - "test": "umi test", - "test:component": "umi test ./src/components", - "test:e2e": "node ./tests/run-tests.js", - "tsc": "tsc --noEmit" - }, - "lint-staged": { - "**/*.less": "stylelint --syntax less", - "**/*.{js,jsx,ts,tsx}": "npm run lint-staged:js", - "**/*.{js,jsx,tsx,ts,less,md,json}": ["prettier --write"] - }, - "browserslist": ["> 1%", "last 2 versions", "not ie <= 10"], - "dependencies": { - "@ant-design/charts": "^0.9.4", - "@ant-design/icons": "^4.7.0", - "@ant-design/pro-card": "^1.19.0", - "@ant-design/pro-descriptions": "^1.10.0", - "@ant-design/pro-form": "^1.64.0", - "@ant-design/pro-layout": "^6.35.0", - "@ant-design/pro-table": "^2.71.0", - "@antv/data-set": "^0.11.0", - "@antv/l7": "^2.3.7", - "@antv/l7-maps": "^2.3.7", - "@antv/l7-react": "^2.1.9", - "@umijs/route-utils": "^2.0.0", - "ahooks": "^2.0.0", - "antd": "^4.19.0", - "bizcharts": "^3.5.3-beta.0", - "bizcharts-plugin-slider": "^2.1.1-beta.1", - "classnames": "^2.3.0", - "gg-editor": "^2.0.2", - "lodash": "^4.17.0", - "lodash-decorators": "^6.0.0", - "moment": "^2.29.0", - "numeral": "^2.0.6", - "nzh": "^1.0.3", - "omit.js": "^2.0.2", - "rc-menu": "^9.1.0", - "rc-util": "^5.16.0", - "react": "^17.0.0", - "react-dev-inspector": "^1.7.0", - "react-dom": "^17.0.0", - "react-fittext": "^1.0.0", - "react-helmet-async": "^1.2.0", - "react-router": "^4.3.1", - "umi": "^3.5.0", - "umi-serve": "^1.9.10" - }, - "devDependencies": { - "@ant-design/pro-cli": "^2.1.0", - "@playwright/test": "^1.17.0", - "@types/express": "^4.17.0", - "@types/history": "^4.7.0", - "@types/jest": "^26.0.0", - "@types/lodash": "^4.14.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0", - "@types/react-helmet": "^6.1.0", - "@umijs/fabric": "^2.8.0", - "@umijs/openapi": "^1.3.0", - "@umijs/plugin-blocks": "^2.2.0", - "@umijs/plugin-esbuild": "^1.4.0", - "@umijs/plugin-openapi": "^1.3.0", - "@umijs/preset-ant-design-pro": "^1.3.0", - "@umijs/preset-dumi": "^1.1.0", - "@umijs/preset-react": "^2.1.0", - "cross-env": "^7.0.0", - "cross-port-killer": "^1.3.0", - "detect-installer": "^1.0.0", - "eslint": "^7.32.0", - "gh-pages": "^3.2.0", - "husky": "^7.0.4", - "jsdom-global": "^3.0.0", - "lint-staged": "^10.0.0", - "mockjs": "^1.1.0", - "prettier": "^2.5.0", - "stylelint": "^13.0.0", - "swagger-ui-react": "^3.52.0", - "typescript": "^4.5.0", - "umi-serve": "^1.9.10" - }, - "engines": { "node": ">=12.0.0" } -} diff --git a/demo/playwright.config.ts b/demo/playwright.config.ts deleted file mode 100644 index ec1b31db..00000000 --- a/demo/playwright.config.ts +++ /dev/null @@ -1,22 +0,0 @@ -// playwright.config.ts -import type { PlaywrightTestConfig } from '@playwright/test'; -import { devices } from '@playwright/test'; - -const config: PlaywrightTestConfig = { - forbidOnly: !!process.env.CI, - retries: process.env.CI ? 2 : 0, - use: { - trace: 'on-first-retry', - }, - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - { - name: 'firefox', - use: { ...devices['Desktop Firefox'] }, - }, - ], -}; -export default config; diff --git a/demo/public/CNAME b/demo/public/CNAME deleted file mode 100644 index 30c2d4d3..00000000 --- a/demo/public/CNAME +++ /dev/null @@ -1 +0,0 @@ -preview.pro.ant.design \ No newline at end of file diff --git a/demo/public/favicon.ico b/demo/public/favicon.ico deleted file mode 100644 index e2e93252..00000000 Binary files a/demo/public/favicon.ico and /dev/null differ diff --git a/demo/public/icons/icon-128x128.png b/demo/public/icons/icon-128x128.png deleted file mode 100644 index 48d0e233..00000000 Binary files a/demo/public/icons/icon-128x128.png and /dev/null differ diff --git a/demo/public/icons/icon-192x192.png b/demo/public/icons/icon-192x192.png deleted file mode 100644 index 938e9b53..00000000 Binary files a/demo/public/icons/icon-192x192.png and /dev/null differ diff --git a/demo/public/icons/icon-512x512.png b/demo/public/icons/icon-512x512.png deleted file mode 100644 index 21fc108f..00000000 Binary files a/demo/public/icons/icon-512x512.png and /dev/null differ diff --git a/demo/public/logo.svg b/demo/public/logo.svg deleted file mode 100644 index 239bf69f..00000000 --- a/demo/public/logo.svg +++ /dev/null @@ -1 +0,0 @@ -Group 28 Copy 5Created with Sketch. \ No newline at end of file diff --git a/demo/public/pro_icon.svg b/demo/public/pro_icon.svg deleted file mode 100644 index e075b78d..00000000 --- a/demo/public/pro_icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/demo/src/access.ts b/demo/src/access.ts deleted file mode 100644 index e823e24b..00000000 --- a/demo/src/access.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @see https://umijs.org/zh-CN/plugins/plugin-access - * */ -export default function access(initialState: { currentUser?: API.CurrentUser } | undefined) { - const { currentUser } = initialState ?? {}; - return { - canAdmin: currentUser && currentUser.access === 'admin', - }; -} diff --git a/demo/src/app.tsx b/demo/src/app.tsx deleted file mode 100644 index 58571014..00000000 --- a/demo/src/app.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import type { Settings as LayoutSettings } from '@ant-design/pro-layout'; -import { SettingDrawer } from '@ant-design/pro-layout'; -import { PageLoading } from '@ant-design/pro-layout'; -import type { RunTimeLayoutConfig } from 'umi'; -import { history, Link } from 'umi'; -import RightContent from '@/components/RightContent'; -import Footer from '@/components/Footer'; -import { currentUser as queryCurrentUser } from './services/ant-design-pro/api'; -import { BookOutlined, LinkOutlined } from '@ant-design/icons'; -import defaultSettings from '../config/defaultSettings'; - -const isDev = process.env.NODE_ENV === 'development'; -const loginPath = '/user/login'; - -/** 获取用户信息比较慢的时候会展示一个 loading */ -export const initialStateConfig = { - loading: , -}; - -/** - * @see https://umijs.org/zh-CN/plugins/plugin-initial-state - * */ -export async function getInitialState(): Promise<{ - settings?: Partial; - currentUser?: API.CurrentUser; - loading?: boolean; - fetchUserInfo?: () => Promise; -}> { - const fetchUserInfo = async () => { - try { - const msg = await queryCurrentUser(); - return msg.data; - } catch (error) { - history.push(loginPath); - } - return undefined; - }; - // 如果不是登录页面,执行 - if (history.location.pathname !== loginPath) { - const currentUser = await fetchUserInfo(); - return { - fetchUserInfo, - currentUser, - settings: defaultSettings, - }; - } - return { - fetchUserInfo, - settings: defaultSettings, - }; -} - -// ProLayout 支持的api https://procomponents.ant.design/components/layout -export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => { - return { - rightContentRender: () => , - disableContentMargin: false, - waterMarkProps: { - content: initialState?.currentUser?.name, - }, - footerRender: () =>