feat: 代码更新

master
JINGYJ 12 months ago
parent 10fa986152
commit 60d8ac2afc

@ -0,0 +1,16 @@
# 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

@ -0,0 +1,6 @@
# 平台本地运行端口号
REACT_APP_ENV = dev
API_SERVER = 127.0.0.1:8888
SERVER_HOST = http://localhost:8888/
FILE_SERVER_HOST = http://192.168.10.28:8088
WEBRTC_SERVER_HOST = http://192.168.10.96:9005

@ -0,0 +1,6 @@
# 平台本地运行端口号
REACT_APP_ENV = dev
API_SERVER = 127.0.0.1:8888
SERVER_HOST = http://localhost:8888/
FILE_SERVER_HOST = http://192.168.10.28:8088
WEBRTC_SERVER_HOST = http://192.168.10.96:9005

@ -0,0 +1,5 @@
REACT_APP_ENV = prod
API_SERVER = 127.0.0.1:8888
SERVER_HOST = /
FILE_SERVER_HOST = http://192.168.10.96
WEBRTC_SERVER_HOST = http://192.168.10.96:9005

@ -0,0 +1,8 @@
/lambda/
/scripts
/config
.history
public
dist
.umi
mock

@ -0,0 +1,7 @@
module.exports = {
extends: [require.resolve('@umijs/lint/dist/config/eslint')],
globals: {
page: true,
REACT_APP_ENV: true,
},
};

41
.gitignore vendored

@ -0,0 +1,41 @@
# 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
*bak
.vscode
# visual studio code
.history
*.log
functions/*
.temp/**
# umi
.umi
.umi-production
.umi-test
# screenshot
screenshot
.firebase
.eslintcache
build

@ -0,0 +1,7 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# Export Git hook params
export GIT_PARAMS=$*
npx --no-install fabric verify-commit

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install lint-staged

@ -0,0 +1,22 @@
**/*.svg
.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

@ -0,0 +1,21 @@
module.exports = {
singleQuote: true,
trailingComma: 'all',
printWidth: 100,
proseWrap: 'never',
endOfLine: 'lf',
overrides: [
{
files: '.prettierrc',
options: {
parser: 'json',
},
},
{
files: 'document.ejs',
options: {
parser: 'html',
},
},
],
};

@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at afc163@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2019-present Alipay.inc
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -0,0 +1,128 @@
Language : [🇺🇸](./README.md) | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | 🇸🇦 |
<h1 align="center">Ant Design Pro</h1>
<div dir="rtl">
<div align="center">
حل UI جاهز لتطبيقات المؤسسات كنموذج معياري لـ React.
[![Build Status](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg) ![Deploy](https://github.com/ant-design/ant-design-pro/workflows/Deploy%20CI/badge.svg) [![Dependencies](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![DevDependencies](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev)
[![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Join the chat at https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Build With Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- معاينة: http://preview.pro.ant.design
- الصفحة الرئيسية: http://pro.ant.design
- توثيق: http://pro.ant.design/docs/getting-started
- سجل التغيير: http://pro.ant.design/docs/changelog
- الأسئلة الشائعة: http://pro.ant.design/docs/faq
- مرآة الموقع بالصينية: http://ant-design-pro.gitee.io
## 4.0 صدر الآن! 🎉🎉🎉
[الإعلان عن Ant Design Pro 4.0.0](https://medium.com/ant-design/ant-design-pro-v4-is-here-6f23098ae9d9)
## توظيف الترجمة :loudspeaker:
نحن نحتاج مساعدتك: https://github.com/ant-design/ant-design-pro/issues/120
## الميزات
- :bulb: **تايب سكريبت**: جافا سكريبت لتطوير التطبيقات
- :scroll: **الكتل**: بناء الصفحة مع قالب كتلة
- :gem: **تصميم أنيق**: يتبع [مواصفات تصميم النمل](http://ant.design/)
- :triangular_ruler: **القوالب المشتركة**: قوالب نموذجية لتطبيقات المؤسسة
- :rocket: **حالة التطور الفني**: أحدث حزمة تطوير لـ React/umi/dva/antd
- :iphone: **متجاوب**: مصممة لأحجام الشاشات المتغيرة
- :art: **تصميم**: تصميم قابل للتخصيص مع تكوين بسيط
- :globe_with_meridians: **عالمي**: تم بناؤه بواسطة i18n solution
- :gear: **أفضل الممارسات**: سير عمل قوي لجعل الكود سليم
- :1234: **تطوير وهمي**: سهولة استخدام حل التطوير الوهمي
- :white_check_mark: **اختبار واجهة المستخدم**: يمكنك الطيران بأمان مع اختبارات الوحدة و e2e
## القوالب
```
- لوحة القيادة
- تحليلي
- مراقب
- مساحة العمل
- نموذج
- النموذج الأساسي
- نموذج الخطوة
- نموذج متقدم
- القائمة
- الجدول القياسي
- القائمة القياسية
- قائمة البطاقات
- قائمة البحث (Project/Applications/Article)
- الملف الشخصي
- ملف شخصي بسيط
- ملف شخصي متقدم
- الحساب
- مركز الحساب
- اعدادات الحساب
- النتيجة
- نجاح
- فشل
- استثناء
- 403
- 404
- 500
- المستخدم
- تسجيل الدخول
- تسجيل
- تسجيل النتائج
```
## الإستخدام
### استخدام ال bash
</div>
<div dir="ltr">
```bash
$ mkdir <your-project-name>
$ cd <your-project-name>
$ yarn create umi # or npm create umi
# Choose ant-design-pro:
Select the boilerplate type (Use arrow keys)
ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block.
app - Create project with a simple boilerplate, support typescript.
block - Create a umi block.
library - Create a library with umi.
plugin - Create a umi plugin.
$ git init
$ npm install
$ npm start # visit http://localhost:8020
```
</div>
<div dir="rtl">
## دعم المتصفحات
المتصفحات الحديثة و.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## المساهمة
نرحب بأي نوع من المساهمات ، وإليك بعض الأمثلة عن كيفية المساهمة في هذا المشروع:
- استخدم Ant Design Pro في عملك اليومي.
- إرسال [القضايا](http://github.com/ant-design/ant-design-pro/issues) للإبلاغ عن مشكل أو لطرح أسئلة
- اقترح [طلبات السحب](http://github.com/ant-design/ant-design-pro/pulls) لتحسين الكود الخاص بنا.
</div>

@ -0,0 +1,134 @@
Idioma: 🇺🇸 | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md) | [🇪🇸](./README.es-ES.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
Una solución de IU listo para usar para aplicaciones empresariales como plantilla de React.
[![Estado de construcción](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) ![Acción de Github](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg) ![Desplegar](https://github.com/ant-design/ant-design-pro/workflows/Deploy%20CI/badge.svg)
[![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0dHA6Ly93d3cudzMub3JnLzE5OTkveGxluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Únete al chat en https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0dHA6Ly93d3cudzMub3JnLzE5OTkveGxluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLDkpIHJvdGF0ZSgyMC42NTk4MDgpIi8%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Construido con Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- Vista previa: http://preview.pro.ant.design
- Página de inicio: http://pro.ant.design
- Documentación: http://pro.ant.design/docs/getting-started
- Registro de cambios: http://pro.ant.design/docs/changelog
- Preguntas frecuentes: http://pro.ant.design/docs/faq
- Sitio espejo en China: http://ant-design-pro.gitee.io
## ¡La versión 5.0 ya está disponible! 🎉🎉🎉
[Ant Design Pro 5.0.0](https://github.com/ant-design/ant-design-pro/issues/8656)
## Reclutamiento de traductores :loudspeaker:
Necesitamos tu ayuda: https://github.com/ant-design/ant-design-pro/issues/120
## Características
- :bulb: **TypeScript**: Un lenguaje para aplicaciones JavaScript a gran escala.
- :scroll: **Bloques**: Construye páginas con plantillas de bloque.
- :gem: **Diseño elegante**: Sigue la [especificación de Ant Design](http://ant.design/).
- :triangular_ruler: **Plantillas comunes**: Plantillas típicas para aplicaciones empresariales.
- :rocket: **Desarrollo de vanguardia**: La pila de desarrollo más reciente de React/umi/dva/antd.
- :iphone: **Adaptable**: Diseñado para tamaños de pantalla variables.
- :art: **Tematización**: Tema personalizable con configuración sencilla.
- :globe_with_meridians: **Internacional**: Solución de i18n incorporada.
- :gear: **Mejores prácticas**: Flujo de trabajo sólido para mantener tu código saludable.
- :1234: **Desarrollo simulado**: Solución de desarrollo simulado fácil de usar.
- :white_check_mark: **Pruebas de interfaz de usuario**: Vuela con seguridad con pruebas de unidad y extremo a extremo.
## Plantillas
- **Tablero de control**
- Análisis
- Monitor
- Espacio de trabajo
- **Formulario**
- Formulario básico
- Formulario paso a paso
- Formulario avanzado
- **Lista**
- Tabla estándar
- Lista estándar
- Lista de tarjetas
- Lista de búsqueda (Proyecto/Aplicaciones/Artículo)
- **Perfil**
- Perfil simple
- Perfil avanzado
- **Cuenta**
- Centro de cuentas
- Configuración de cuentas
- **Resultado**
- Éxito
- Fallido
- **Excepción**
- 403
- 404
- 500
- **Usuario**
- Iniciar sesión
- Registrarse
- Resultado del registro
## Uso
### Uso de bash
Proporcionamos `pro-cli` para inicializar rápidamente la estructura del proyecto.
```bash
# Utiliza npm
npm i @ant-design/pro-cli -g
pro create myapp
```
Selecciona la versión de umi
```
🐂 ¿Usar umi@4 o umi@3 ? (Usa las teclas de flecha)
umi@4
umi@3
```
> Si seleccionas la versión umi@4, los bloques completos aún no son compatibles.
Si eliges umi@3, también puedes elegir la plantilla "pro". "Pro" es la plantilla básica, que solo proporciona el contenido básico de la operación del marco. "Complete" contiene todos los bloques, lo cual no es adecuado para el desarrollo secundario como una plantilla básica.
```shell
? 🚀 ¿Completo o una estructura simple? (Usa las teclas de flecha)
simple
complete
```
Instala las dependencias:
```shell
$ cd myapp && tyarn
// o
$ cd myapp && npm install
```
## Compatibilidad con Navegadores
Navegadores modernos.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | Últimas 2 versiones | Últimas 2 versiones | Últimas 2 versiones | Últimas 2 versiones |
## Contribuciones
Cualquier tipo de contribución es bienvenida, aquí tienes algunos ejemplos de cómo puedes contribuir a este proyecto:
- Utiliza Ant Design Pro en tu trabajo diario.
- Envía [issues](http://github.com/ant-design/ant-design-pro/issues) para reportar errores o hacer preguntas.
- Propón [pull requests](http://github.com/ant-design/ant-design-pro/pulls) para mejorar nuestro código.

@ -0,0 +1,113 @@
Language : [🇺🇸](./README.md) | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | 🇫🇷 | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
Une solution UI prête à l'emploi pour des applications d'entreprise en tant que modèle React.
[![Construit avec Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) [![Status de la construction](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) [![Dépendences](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![Dépendences de développement](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev) [![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Rejoignez la discussion dans https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- Aperçu: http://preview.pro.ant.design
- Page d'accueil: http://pro.ant.design
- Documentation: http://pro.ant.design/docs/getting-started
- ChangeLog: http://pro.ant.design/docs/changelog
- FAQ: http://pro.ant.design/docs/faq
- Site mirroir en Chine: http://ant-design-pro.gitee.io
## 2.0 Sorti maintenant! 🎉🎉🎉
[Annoncement de Ant Design Pro 2.0.0](https://medium.com/ant-design/beautiful-and-powerful-ant-design-pro-2-0-release-51358da5af95)
## Recrutement pour la traduction :loudspeaker:
Nous avons besoin de votre aide: https://github.com/ant-design/ant-design-pro/issues/120
## Fonctionnalités
- :gem: **Design soigné**: Suit [la spécification Ant Design](http://ant.design/)
- :triangular_ruler: **Modèles communs**: Modèles typiques d'application d'entreprise
- :rocket: **Développement dernier cri**: Infrastructure de développement de React/umi/dva/antd la plus récente
- :iphone: **Design adapté**: Conçu pour des tailles d'écran variables
- :art: **Thématisation**: Thème personnalisable avec configuration simple
- :globe_with_meridians: **International**: Solution i18n intégrée
- :gear: **Meilleures pratiques**: Flux de travail solide pour rendre votre code sain
- :1234: **Développement simulé**: Solution de développement simulée facile à utiliser
- :white_check_mark: **Tests UI**: Volez en toute sécurité avec les tests unitaires et e2e
## Modèles
```
- Tableau de bord
- Analytique
- Moniteur
- Espace de travail
- Formulaire
- Formulaire de base
- Formulaire par étape
- Formulaire avancé
- Liste
- Tableau standard
- Liste standard
- Liste de cartes
- Liste de recherche (Projet/Applications/Article)
- Profil
- Profil simple
- Profil avancé
- Compte
- Centre du compte
- Paramètres du compte
- Résultat
- Succès
- Échec
- Exception
- 403
- 404
- 500
- Utilisateur
- Connexion
- S'inscrire
- Résultat de l'inscription
```
## Utilisation
### Utiliser bash
```bash
$ mkdir <your-project-name>
$ cd <your-project-name>
$ yarn create umi # or npm create umi
# Choose ant-design-pro:
Select the boilerplate type (Use arrow keys)
ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block.
app - Create project with a simple boilerplate, support typescript.
block - Create a umi block.
library - Create a library with umi.
plugin - Create a umi plugin.
$ git init
$ npm install
$ npm start # visit http://localhost:8020
```
## Support des navigateurs
Navigateurs modernes.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | deux dernières versions | deux dernières versions | deux dernières versions | deux dernières versions |
## Contribution
Toute forme de contribution est la bienvenue, voici quelques exemples de façons dont vous pouvez contribuer à ce projet:
- Utiliser Ant Design Pro dans votre travail quotidien.
- Soumettre des [issues](http://github.com/ant-design/ant-design-pro/issues) pour reporter les bugs ou poser des questions.
- Proposer des [pull requests](http://github.com/ant-design/ant-design-pro/pulls) pour améliorer notre code.

@ -0,0 +1,115 @@
Language : [🇺🇸](./README.md) | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | 🇯🇵 | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
独創的な業務システムの UI を解決するための React ボイラープレート。
[![Build With Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) [![Build Status](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) [![Dependencies](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![DevDependencies](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev) [![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Join the chat at https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- プレビュー: http://preview.pro.ant.design
- ホームページ: http://pro.ant.design
- ドキュメント: http://pro.ant.design/docs/getting-started
- 変更ログ: http://pro.ant.design/docs/changelog
- FAQ: http://pro.ant.design/docs/faq
- 中国のミラーサイト: http://ant-design-pro.gitee.io
## 2.0 がリリースされました 🎉🎉🎉
[Announcing Ant Design Pro 2.0.0](https://medium.com/ant-design/beautiful-and-powerful-ant-design-pro-2-0-release-51358da5af95)
## 翻訳の募集 :loudspeaker:
私たちはあなたの助けを必要としています。: https://github.com/ant-design/ant-design-pro/issues/120
## 特徴
- :gem: **きちんとしたデザイン**: [Ant Design specification](http://ant.design/) に従ってくださ い。
- :triangular_ruler: **共通のテンプレート**: 業務システム用のテンプレート
- :rocket: **現状のアート開発**: `React/umi/dva/antd` の最新開発スタック
- :iphone: **レスポンシブ**: さまざまな画面サイズ用の設計
- :art: **テーマ**: シンプルな設定でカスタマイズ可能なテーマ
- :globe_with_meridians: **国際化**: 国際化の解決策を内蔵
- :gear: **ベストプラクティス**: コードを美しくするための正しいワークフロー
- :1234: **モック開発**: 使いやすいモック開発
- :white_check_mark: **UI テスト**: ユニットテストと e2e テスト
## テンプレート
```
- ダッシュボード
- アナリティクス
- モニター
  - ワークスペース
- 形
  - 基本フォーム
  - ステップフォーム
  - 高度なフォーム
- リスト
  - スタンダードテーブル
  - スタンダードリスト
  - カードリスト
  - 検索リスト(プロジェクト/アプリケーション/記事)
- プロフィール
  - 簡単なプロフィール
  - 高度なプロファイル
- アカウント
  - アカウントセンター
  - アカウント設定
- 結果
  - 成功
  - 失敗
- 例外
  - 403
  - 404
  - 500
- ユーザー
  - ログイン
  - 登録
  - 登録結果
```
## 使用法
### bash を使う方法
```bash
$ mkdir <your-project-name>
$ cd <your-project-name>
$ yarn create umi # or npm create umi
# Choose ant-design-pro:
Select the boilerplate type (Use arrow keys)
ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block.
app - Create project with a simple boilerplate, support typescript.
block - Create a umi block.
library - Create a library with umi.
plugin - Create a umi plugin.
$ git init
$ npm install
$ npm start # http://localhost:8020 を開く
```
## サポートするブラウザー
モダンなブラウザと。
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | 最新版から 2 バージョン | 最新版から 2 バージョン | 最新版から 2 バージョン | 最新版から 2 バージョン |
## 貢献する
どんな種類の貢献でも大歓迎です。あなたがこのプロジェクトに貢献できる方法のいくつかの例はここにあります。:
- 毎日の仕事に Ant Design Pro を使用すること。
- 報告すること。 [issues](http://github.com/ant-design/ant-design-pro/issues) にバグ報告や質問をしてください。
- 更新すること。 改善を、[pull requests](http://github.com/ant-design/ant-design-pro/pulls) で送ってください。
[![DevDependencies](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev)

@ -0,0 +1,139 @@
Language : 🇺🇸 | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md) | [🇪🇸](./README.es-ES.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
An out-of-box UI solution for enterprise applications as a React boilerplate.
[![Build Status](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg) [![Preview Deploy](https://github.com/ant-design/ant-design-pro/actions/workflows/preview-deploy.yml/badge.svg)](https://github.com/ant-design/ant-design-pro/actions/workflows/preview-deploy.yml)
[![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Join the chat at https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Build With Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- Preview: http://preview.pro.ant.design
- Home Page: http://pro.ant.design
- Documentation: http://pro.ant.design/docs/getting-started
- ChangeLog: http://pro.ant.design/docs/changelog
- FAQ: http://pro.ant.design/docs/faq
- Mirror Site in China: http://ant-design-pro.gitee.io
## 5.0 is out! 🎉🎉🎉
[Ant Design Pro 5.0.0](https://github.com/ant-design/ant-design-pro/issues/8656)
## Translation Recruitment :loudspeaker:
We need your help: https://github.com/ant-design/ant-design-pro/issues/120
## Features
- :bulb: **TypeScript**: A language for application-scale JavaScript
- :scroll: **Blocks**: Build page with block template
- :gem: **Neat Design**: Follow [Ant Design specification](http://ant.design/)
- :triangular_ruler: **Common Templates**: Typical templates for enterprise applications
- :rocket: **State of The Art Development**: Newest development stack of React/umi/dva/antd
- :iphone: **Responsive**: Designed for variable screen sizes
- :art: **Theming**: Customizable theme with simple config
- :globe_with_meridians: **International**: Built-in i18n solution
- :gear: **Best Practices**: Solid workflow to make your code healthy
- :1234: **Mock development**: Easy to use mock development solution
- :white_check_mark: **UI Test**: Fly safely with unit and e2e tests
## Templates
```
- Dashboard
- Analytic
- Monitor
- Workspace
- Form
- Basic Form
- Step Form
- Advanced From
- List
- Standard Table
- Standard List
- Card List
- Search List (Project/Applications/Article)
- Profile
- Simple Profile
- Advanced Profile
- Account
- Account Center
- Account Settings
- Result
- Success
- Failed
- Exception
- 403
- 404
- 500
- User
- Login
- Register
- Register Result
```
## Usage
### Use bash
We provide pro-cli to quickly initialize scaffolding.
```bash
# use npm
npm i @ant-design/pro-cli -g
pro create myapp
```
select umi version
```shell
🐂 Use umi@4 or umi@3 ? (Use arrow keys)
umi@4
umi@3
```
> If the umi@4 version is selected, full blocks are not yet supported.
If you choose umi@3, you can also choose the pro template. Pro is the basic template, which only provides the basic content of the framework operation. Complete contains all blocks, which is not suitable for secondary development as a basic template.
```shell
? 🚀 Full or a simple scaffold? (Use arrow keys)
simple
complete
```
Initialized Git repository:
```shell
$ git init myapp
```
Install dependencies:
```shell
$ cd myapp && tyarn
// or
$ cd myapp && npm install
```
## Browsers support
Modern browsers.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## Contributing
Any type of contribution is welcome, here are some examples of how you may contribute to this project:
- Use Ant Design Pro in your daily work.
- Submit [issues](http://github.com/ant-design/ant-design-pro/issues) to report bugs or ask questions.
- Propose [pull requests](http://github.com/ant-design/ant-design-pro/pulls) to improve our code.

@ -0,0 +1,115 @@
Language : [🇺🇸](./README.md) | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | 🇵🇹 | [🇸🇦](./README.ar-DZ.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
Uma solução de UI pronta para aplicações corporativos na forma de um boilerplate React.
[![Feito Com Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) [![Status de Build](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) [![Dependeências](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![Dependências de Desenvolvimento](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev) [![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Junte-se ao chat em https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- Prévia: http://preview.pro.ant.design
- Página Inicial: http://pro.ant.design
- Documentação: http://pro.ant.design/docs/getting-started
- Mudanças: http://pro.ant.design/docs/changelog
- FAQ: http://pro.ant.design/docs/faq
- Site Alternativo na China: http://ant-design-pro.gitee.io
## 4.0 Lançado! 🎉🎉🎉
[Anúncio do Ant Design Pro 4.0.0](https://medium.com/ant-design/ant-design-pro-v4-is-here-6f23098ae9d9)
## Recrutamento para tradução :loudspeaker:
Precisamos da sua ajuda: https://github.com/ant-design/ant-design-pro/issues/120
## Recursos
- :bulb: **TypeScript**: Uma linguaguem para escalar aplicações JavaScript
- :scroll: **Blocks**: Crie páginas com block template
- :gem: **Design Elegante**: Segue as [especificações do Ant Design](http://ant.design/)
- :triangular_ruler: **Modelos Comuns**: Modelos comuns para apliações empresariais
- :rocket: **Estado da Arte do Desenvolvimento**: Stack de desenvolvimento mais recente do React/umi/dva/antd
- :iphone: **Responsivo**: Projetado para tamanhos de telas variados
- :art: **Personalização**: Customizável através de uma simples configuração
- :globe_with_meridians: **Internacionalização**: Incluso i18n por padrão
- :gear: **Melhores Práticas**: Fluxo de trabalho sólido para manter seu código saudável
- :1234: **Desenvolvimento de Mock**: Fácil solução para desenvolvimento de mocks
- :white_check_mark: **Testes de UI**: Voe tranquilamente com testes unitários e testes e2e
## Modelos
```
- Painel de Controle
- Gráficos
- Monitoramento
- Areás de Trabalho
- Formulários
- Formulários Básicos
- Formulário com Etapas
- Formulários Avançados
- Listas
- Tabela Padrão
- Lista Padrão
- Lista com Cards
- Lista com Busca (Projeto/Aplicações/Artigos)
- Perfís
- Perfil Simples
- Perfil Avançado
- Conta
- Detalhes da Conta
- Configurações da Conta
- Resultados
- Secesso
- Falha
- Exceções
- 403
- 404
- 500
- Usuário
- Login
- Cadastro
- Resultado do Cadastro
```
## Uso
### Use o bash
```bash
$ mkdir <your-project-name>
$ cd <your-project-name>
$ yarn create umi # ou npm create umi
# Escolha ant-design-pro:
Selecione o tipo do boilerplate (Use as teclas de seta)
ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block.
app - Create project with a simple boilerplate, support typescript.
block - Create a umi block.
library - Create a library with umi.
plugin - Create a umi plugin.
$ git init
$ npm install
$ npm start # visit http://localhost:8020
```
## Suporte a navegadores
Navegadores modernos .
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | últimas 2 versões | últimas 2 versões | últimas 2 versões | últimas 2 versões |
## Contribuindo
Qualquer tipo de contribuição é bem-vinda, aqui estão alguns exemplos de como você pode contribuir com esse projeto:
- Use Ant Design Pro no seu trabalho diário.
- Submeta [issues](http://github.com/ant-design/ant-design-pro/issues) para reportar bugs ou tirar dúvidas.
- Proponha [pull requests](http://github.com/ant-design/ant-design-pro/pulls) para melhorar nosso código.

@ -0,0 +1,109 @@
Language : [🇺🇸](./README.md) | [🇨🇳](./README.zh-CN.md) | 🇷🇺 | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
UI-решение "из коробки" для корпоративных приложений как React boilerplate
[![Build With Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) [![Build Status](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) [![Dependencies](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![DevDependencies](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev) [![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Join the chat at https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- Демо: http://preview.pro.ant.design
- Домашняя страница: http://pro.ant.design
- Документация: http://pro.ant.design/docs/getting-started
- История изменений: http://pro.ant.design/docs/changelog
- FAQ: http://pro.ant.design/docs/faq
- Китайское зеркало сайта: http://ant-design-pro.gitee.io
## Поиск переводчиков :loudspeaker:
Нам нужна ваша помощь: https://github.com/ant-design/ant-design-pro/issues/120
## Возможности
- :gem: **Аккуратный дизайн**: Посмотрите [спецификацию Ant Design](http://ant.design/)
- :triangular_ruler: **Общие шаблоны**: Стандартные шаблоны для корпоративных приложений
- :rocket: **Разработка, как искусство**: Новейший стек технологий React/umi/dva/antd
- :iphone: **Отзывчивая верстка**: Создан для экранов разных размеров
- :art: **Темизация**: Возможность изменения темы с помощью конфигурации
- :globe_with_meridians: **Мультиязычность**: Встроенное i18n решение
- :gear: **Лучшие практики**: Надежные процессы для хорошего кода
- :1234: **Разработка по шаблону**: Простое в использовании решение для разработки
- :white_check_mark: **UI тесты**: Разрабатывайте безопасно с юнит и e2e тестами
## Шаблоны
```
- Dashboard
- Analytic
- Monitor
- Workspace
- Form
- Basic Form
- Step Form
- Advanced From
- List
- Standard Table
- Standard List
- Card List
- Search List (Project/Applications/Article)
- Profile
- Simple Profile
- Advanced Profile
- Account
- Account Center
- Account Settings
- Result
- Success
- Failed
- Exception
- 403
- 404
- 500
- User
- Login
- Register
- Register Result
```
## Использование
```bash
$ mkdir <your-project-name>
$ cd <your-project-name>
$ yarn create umi # or npm create umi
# Choose ant-design-pro:
Select the boilerplate type (Use arrow keys)
ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block.
app - Create project with a simple boilerplate, support typescript.
block - Create a umi block.
library - Create a library with umi.
plugin - Create a umi plugin.
$ git init
$ npm install
$ npm start # visit http://localhost:8020
```
Больше информации в [документации](http://pro.ant.design/docs/getting-started).
## Совместимость
Современные браузеры.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## Распространение
Любые варианты распространения приветствуются! Вот несколько примеров того, как вы можете помочь распространению проекта:
- Использовать Ant Design Pro в ежедневной работе.
- Создавать [задачи](http://github.com/ant-design/ant-design-pro/issues) заводить баги или отвечать на вопросы.
- Делать [pull-реквесты](http://github.com/ant-design/ant-design-pro/pulls) для совершенствования нашего кода.

@ -0,0 +1,117 @@
Language : [🇺🇸](./README.md) | [🇨🇳](./README.zh-CN.md) | [🇷🇺](./README.ru-RU.md) | 🇹🇷 | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
React ile kurumsal uygulamalar için taslak olarak geliştirilmiş kullanıma hazır bir UI çözümü.
[![Build Status](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg) ![Deploy](https://github.com/ant-design/ant-design-pro/workflows/Deploy%20CI/badge.svg)
[![Gitter](https://img.shields.io/gitter/room/ant-design/pro-english.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyMzUiIGhlaWdodD0iNjUwIiB2aWV3Qm94PSIwIDAgNzQxMCAzOTAwIj4NCjxyZWN0IHdpZHRoPSI3NDEwIiBoZWlnaHQ9IjM5MDAiIGZpbGw9IiNiMjIyMzQiLz4NCjxwYXRoIGQ9Ik0wLDQ1MEg3NDEwbTAsNjAwSDBtMCw2MDBINzQxMG0wLDYwMEgwbTAsNjAwSDc0MTBtMCw2MDBIMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMwMCIvPg0KPHJlY3Qgd2lkdGg9IjI5NjQiIGhlaWdodD0iMjEwMCIgZmlsbD0iIzNjM2I2ZSIvPg0KPGcgZmlsbD0iI2ZmZiI%2BDQo8ZyBpZD0iczE4Ij4NCjxnIGlkPSJzOSI%2BDQo8ZyBpZD0iczUiPg0KPGcgaWQ9InM0Ij4NCjxwYXRoIGlkPSJzIiBkPSJNMjQ3LDkwIDMxNy41MzQyMzAsMzA3LjA4MjAzOSAxMzIuODczMjE4LDE3Mi45MTc5NjFIMzYxLjEyNjc4MkwxNzYuNDY1NzcwLDMwNy4wODIwMzl6Ii8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB5PSI0MjAiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHk9Ijg0MCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTI2MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjcyIgeT0iMTY4MCIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjczQiIHg9IjI0NyIgeT0iMjEwIi8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzOSIgeD0iNDk0Ii8%2BDQo8L2c%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzMTgiIHg9Ijk4OCIvPg0KPHVzZSB4bGluazpocmVmPSIjczkiIHg9IjE5NzYiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3M1IiB4PSIyNDcwIi8%2BDQo8L2c%2BDQo8L3N2Zz4%3D)](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Join the chat at https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Build With Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- Önizleme: http://preview.pro.ant.design
- Anasayfa: http://pro.ant.design
- Dokümantasyon: http://pro.ant.design/docs/getting-started
- ChangeLog: http://pro.ant.design/docs/changelog
- SSS: http://pro.ant.design/docs/faq
- Çinde barındırılan site: http://ant-design-pro.gitee.io
## 5.0 Versiyonu Şimdi Yayında! 🎉🎉🎉
[Ant Design Pro 5.0.0](https://github.com/ant-design/ant-design-pro/issues/8656)
## Çeviri Desteği :loudspeaker:
Çeviriler için yardımınıza ihtiyacımız var: https://github.com/ant-design/ant-design-pro/issues/120
## Özellikler
- :bulb: **TypeScript**: Uygulama ölçeğinde geliştirme için JavaScript
- :scroll: **Blocks**: Block template ile sayfa oluşturma
- :gem: **Zarif Tasarım**: Buradan [Ant Design özellikleri](http://ant.design/)
- :triangular_ruler: **Ortak Şablonlar**: Kurumsal uygulamalar için şablonlar
- :rocket: **Sanatsal gelişim durumu**: Newest development stack of React/umi/dva/antd
- :iphone: **Responsive**: Değişken ekran boyutları için tasarlanmıştır
- :art: **Tema Kullanımı**: Basit ayarlar ile özelleştirilebilir tema
- :globe_with_meridians: **Uluslararası**: Built-in i18n solution
- :gear: **Best Practices**: İyi kod için sağlam iş akışı
- :1234: **Mock Geliştirme**: Model(Mock) geliştirmeler için kolay çözüm
- :white_check_mark: **UI Testi**: Unit ve e2e testleri ile güvenli sürdürülebilirlik
## Şablonlar
```
- Dashboard
- Analitik
- Monitör
- Çalışma alanı
- Form
- Basit Form
- Step Form
- Gelişmiş Form
- List
- Standard Tablo
- Standard Liste
- Kart Liste
- Arama Listesi (Project/Applications/Article)
- Profil
- Basit Profil
- Gelişmiş Profil
- Hesap
- Hesap Yönetimi
- Hesap Ayarları
- Sonuç
- Başarılı
- Hatalı
- Hatalar
- 403
- 404
- 500
- Kullanıcı
- Giriş
- Kayıt
- Kayıt Sonucu
```
## Kullanım
### Bash ile
```bash
$ mkdir <your-project-name>
$ cd <your-project-name>
$ yarn create umi # or npm create umi
# Choose ant-design-pro:
Select the boilerplate type (Use arrow keys)
ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block.
app - Create project with a simple boilerplate, support typescript.
block - Create a umi block.
library - Create a library with umi.
plugin - Create a umi plugin.
$ git init
$ npm install
$ npm start # visit http://localhost:8020
```
## Tarayıcı desteği
Modern internet tarayıcıları .
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | son 2 versiyon | son 2 versiyon | son 2 versiyon | son 2 versiyon |
## Destek
Her türlü desteğinize açığız, bu projeye nasıl katkıda bulunabileceğinize dair bazı örnekler:
- Günlük işinizde Ant Design Pro kullanın.
- Hataları bildirmek veya soru sormak için [issues](http://github.com/ant-design/ant-design-pro/issues) gönderin.
- Kodumuzu geliştirmek için [pull requests](http://github.com/ant-design/ant-design-pro/pulls) gönderin.

@ -0,0 +1,127 @@
Language : [🇺🇸](./README.md) | 🇨🇳 | [🇷🇺](./README.ru-RU.md) | [🇹🇷](./README.tr-TR.md) | [🇯🇵](./README.ja-JP.md) | [🇫🇷](./README.fr-FR.md) | [🇵🇹](./README.pt-BR.md) | [🇸🇦](./README.ar-DZ.md)
<h1 align="center">Ant Design Pro</h1>
<div align="center">
开箱即用的中台前端/设计解决方案。
[![Build With Umi](https://img.shields.io/badge/build%20with-umi-028fe4.svg?style=flat-square)](http://umijs.org/) [![Build Status](https://dev.azure.com/ant-design/ant-design-pro/_apis/build/status/ant-design.ant-design-pro?branchName=master)](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) [![Dependencies](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![DevDependencies](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro?type=dev) [![Join the chat at https://gitter.im/ant-design/ant-design-pro](https://img.shields.io/gitter/room/ant-design/ant-design-pro.svg?style=flat-square&logoWidth=20&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAzMCAyMCI%2BDQo8ZGVmcz4NCjxwYXRoIGlkPSJzIiBkPSJNMCwtMSAwLjU4Nzc4NSwwLjgwOTAxNyAtMC45NTEwNTcsLTAuMzA5MDE3SDAuOTUxMDU3TC0wLjU4Nzc4NSwwLjgwOTAxN3oiIGZpbGw9IiNmZmRlMDAiLz4NCjwvZGVmcz4NCjxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2RlMjkxMCIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw1KSBzY2FsZSgzKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMikgcm90YXRlKDIzLjAzNjI0MykiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLDQpIHJvdGF0ZSg0NS44Njk4OTgpIi8%2BDQo8dXNlIHhsaW5rOmhyZWY9IiNzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiw3KSByb3RhdGUoNjkuOTQ1Mzk2KSIvPg0KPHVzZSB4bGluazpocmVmPSIjcyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsOSkgcm90YXRlKDIwLjY1OTgwOCkiLz4NCjwvc3ZnPg%3D%3D)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label) ![Github Action](https://github.com/ant-design/ant-design-pro/workflows/Node%20CI/badge.svg)
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
</div>
- 预览http://preview.pro.ant.design
- 首页http://pro.ant.design/index-cn
- 使用文档http://pro.ant.design/docs/getting-started-cn
- 更新日志: http://pro.ant.design/docs/changelog-cn
- 常见问题http://pro.ant.design/docs/faq-cn
- 国内镜像http://ant-design-pro.gitee.io
## 5.0 已经发布! 🎉🎉🎉
[Ant Design Pro 5.0.0](https://github.com/ant-design/ant-design-pro/issues/8656)
## 特性
- :bulb: **TypeScript**: 应用程序级 JavaScript 的语言
- :scroll: **区块**: 通过区块模板快速构建页面
- :gem: **优雅美观**:基于 Ant Design 体系精心设计
- :triangular_ruler: **常见设计模式**:提炼自中后台应用的典型页面和场景
- :rocket: **最新技术栈**:使用 React/umi/dva/antd 等前端前沿技术开发
- :iphone: **响应式**:针对不同屏幕大小设计
- :art: **主题**:可配置的主题满足多样化的品牌诉求
- :globe_with_meridians: **国际化**:内建业界通用的国际化方案
- :gear: **最佳实践**:良好的工程实践助您持续产出高质量代码
- :1234: **Mock 数据**:实用的本地数据调试方案
- :white_check_mark: **UI 测试**:自动化测试保障前端产品质量
## 模板
```
- Dashboard
- 分析页
- 监控页
- 工作台
- 表单页
- 基础表单页
- 分步表单页
- 高级表单页
- 列表页
- 查询表格
- 标准列表
- 卡片列表
- 搜索列表(项目/应用/文章)
- 详情页
- 基础详情页
- 高级详情页
- 用户
- 用户中心页
- 用户设置页
- 结果
- 成功页
- 失败页
- 异常
- 403 无权限
- 404 找不到
- 500 服务器出错
- 帐户
- 登录
- 注册
- 注册成功
```
## 使用
我们提供了 pro-cli 来快速的初始化脚手架。
```bash
# 使用 npm
npm i @ant-design/pro-cli -g
pro create myapp
```
选择 umi 的版本
```shell
? 🐂 使用 umi@4 还是 umi@3 ? (Use arrow keys)
umi@4
umi@3
```
> 如果选择了 umi@4 版本,暂时还不支持全量区块。
如果选择了 umi@3还可以选择 pro 的模板simple 是基础模板只提供了框架运行的基本内容complete 包含所有区块,不太适合当基础模板来进行二次开发
```shell
? 🚀 要全量的还是一个简单的脚手架? (Use arrow keys)
simple
complete
```
安装依赖:
```shell
$ cd myapp && tyarn
// 或
$ cd myapp && npm install
```
更多信息请参考 [使用文档](http://pro.ant.design/docs/getting-started)。
## 支持环境
现代浏览器。
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --- | --- | --- | --- | --- |
| Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## 参与贡献
我们非常欢迎你的贡献,你可以通过以下方式和我们一起共建 :smiley:
- 在你的公司或个人项目中使用 Ant Design Pro。
- 通过 [Issue](http://github.com/ant-design/ant-design-pro/issues) 报告 bug 或进行咨询。
- 提交 [Pull Request](http://github.com/ant-design/ant-design-pro/pulls) 改进 Pro 的代码。

@ -0,0 +1,166 @@
// https://umijs.org/config/
import { defineConfig } from '@umijs/max';
import defaultSettings from './defaultSettings';
import proxy from './proxy';
import routes from './routes';
const { REACT_APP_ENV, API_SERVER, SERVER_HOST, FILE_SERVER_HOST, WEBRTC_SERVER_HOST } =
process.env;
export default defineConfig({
/**
* @name hash
* @description build hash
* @doc https://umijs.org/docs/api/config#hash
*/
hash: true,
define: {
API_SERVER: API_SERVER,
SERVER_HOST: SERVER_HOST,
FILE_SERVER_HOST: FILE_SERVER_HOST,
WEBRTC_SERVER_HOST: WEBRTC_SERVER_HOST,
},
/**
* @name
* @description ie11 使
* @doc https://umijs.org/docs/api/config#targets
*/
// targets: {
// ie: 11,
// },
/**
* @name
* @description pathcomponentroutesredirectwrapperstitle
* @doc https://umijs.org/docs/guides/routes
*/
// umi routes: https://umijs.org/docs/routing
routes,
/**
* @name
* @description less
* @doc antd https://ant.design/docs/react/customize-theme-cn
* @doc umi theme https://umijs.org/docs/api/config#theme
*/
theme: {
// 如果不想要 configProvide 动态设置主题需要把这个设置为 default
// 只有设置为 variable 才能使用 configProvide 动态设置主色调
'root-entry-name': 'variable',
},
/**
* @name moment
* @description js
* @doc https://umijs.org/docs/api/config#ignoremomentlocale
*/
ignoreMomentLocale: true,
/**
* @name
* @description 访
* @see 使build 使
* @doc https://umijs.org/docs/guides/proxy
* @doc https://umijs.org/docs/api/config#proxy
*/
proxy: proxy[REACT_APP_ENV as keyof typeof proxy],
/**
* @name
* @description state
*/
fastRefresh: true,
//============== 以下都是max的插件配置 ===============
/**
* @name
* @@doc https://umijs.org/docs/max/data-flow
*/
model: {},
/**
*
* @description Umi
* @doc https://umijs.org/docs/max/data-flow#%E5%85%A8%E5%B1%80%E5%88%9D%E5%A7%8B%E7%8A%B6%E6%80%81
*/
initialState: {},
/**
* @name layout
* @doc https://umijs.org/docs/max/layout-menu
*/
title: 'Ant Design Pro',
layout: {
locale: true,
...defaultSettings,
},
/**
* @name moment2dayjs
* @description moment dayjs
* @doc https://umijs.org/docs/max/moment2dayjs
*/
moment2dayjs: {
preset: 'antd',
plugins: ['duration'],
},
/**
* @name
* @doc https://umijs.org/docs/max/i18n
*/
locale: {
// default zh-CN
default: 'zh-CN',
antd: true,
// default true, when it is true, will use `navigator.language` overwrite default
baseNavigator: true,
},
/**
* @name antd
* @description babel import
* @doc https://umijs.org/docs/max/antd#antd
*/
antd: {},
/**
* @name
* @description axios ahooks useRequest
* @doc https://umijs.org/docs/max/request
*/
request: {},
/**
* @name
* @description initialState initialState
* @doc https://umijs.org/docs/max/access
*/
access: {},
/**
* @name <head> script
* @description <head> script
*/
headScripts: [
// 解决首次加载时白屏的问题
{ src: '/scripts/loading.js', async: true },
],
//================ pro 插件配置 =================
presets: ['umi-presets-pro'],
/**
* @name openAPI
* @description openapi serve mock
* @doc https://pro.ant.design/zh-cn/docs/openapi/
*/
openAPI: [
// {
// requestLibPath: "import { request } from '@umijs/max'",
// // 或者使用在线的版本
// // schemaPath: "https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json"
// schemaPath: join(__dirname, 'oneapi.json'),
// mock: false,
// },
// {
// requestLibPath: "import { request } from '@umijs/max'",
// schemaPath: 'https://gw.alipayobjects.com/os/antfincdn/CA1dOm%2631B/openapi.json',
// projectName: 'swagger',
// },
],
mfsu: {
strategy: 'normal',
},
esbuildMinifyIIFE: true,
requestRecord: {},
extraPostCSSPlugins: [
require('postcss-import'),
require('tailwindcss'),
require('postcss-nested'),
require('autoprefixer'),
],
});

@ -0,0 +1,86 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-13 14:19:57
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-12-27 16:09:07
* @FilePath: \general-ai-platform-web\config\defaultForm.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE2
*/
import { CloseCircleOutlined, CopyOutlined, DeleteOutlined } from '@ant-design/icons';
import { StepsFormProps } from '@ant-design/pro-components';
import { ReactNode } from 'react';
export type IconConfig = {
/**
* icon
* Icon: ()=> <div/>
*/
Icon?: React.FC<any>;
/**
* tooltip
*/
tooltipText?: string;
};
// 通用表单配置
export const proFormCommonOptions: Record<string, any> = {};
const formBoxMargin = 2 * 24;
const formItemGap = 16;
// Small 560
export const proFormSmallModelWidth: number = 560;
export const proFormSmallItemStyleProps: Record<string, any> = {
width: proFormSmallModelWidth - formBoxMargin, // 一列
// column2Width: (proFormSmallModelWidth - 2 * formBoxMargin)/2 , // 两列
};
// normal 804
export const proFormModelWidth: number = 804;
export const proFormItemStyleProps: Record<string, any> = {
width: proFormModelWidth - formBoxMargin, // 一列
column2Width: (proFormModelWidth - formBoxMargin - formItemGap) / 2, // 两列
};
// max 968
export const proFormMaxModelWidth: number = 968;
export const proFormMaxItemStyleProps: Record<string, any> = {
width: proFormMaxModelWidth - formBoxMargin,
column2Width: (proFormMaxModelWidth - formBoxMargin - formItemGap) / 2, // 两列
};
/**表单具体单项配置 */
// proFormList 新增一项按钮配置
export const proFormListCreatorButtonProps: {
creatorButtonText?: ReactNode;
position?: 'top' | 'bottom';
deleteIconProps?: IconConfig | false;
} = {
position: 'bottom',
creatorButtonText: '添加参数字段', // 设置新增一项数据的文案
deleteIconProps: {
Icon: CloseCircleOutlined,
tooltipText: '不需要这行了',
},
};
export const proFormListActionButtonProps: {
CopyableIconProps?: IconConfig | false;
deleteIconProps?: IconConfig | false;
} = {
CopyableIconProps: {
Icon: CopyOutlined,
tooltipText: '复制',
},
deleteIconProps: {
Icon: DeleteOutlined,
tooltipText: '删除',
},
};
// 分步表单统一配置
export const proFormStepsFormProps: StepsFormProps = {
stepsProps: {
labelPlacement: 'vertical',
},
};

@ -0,0 +1,38 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-28 14:13:05
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-12-22 16:17:35
* @FilePath: \general-ai-platform-web\config\defaultIcon.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
*/
import { proFormItemStyleProps } from './defaultForm';
// 分步表单统一配置
export const proIconSelectWrapStyle: React.CSSProperties = {
position: 'relative',
width: proFormItemStyleProps.width + 48,
background: 'red',
left: 0,
};
export const proIconSelectStyle: React.CSSProperties = {
position: 'absolute',
left: '0',
padding: 16,
top: '5%',
width: '94%',
height: 500,
zIndex: 9,
boxShadow: '0px 4px 12px 0px rgba(0, 0, 0, 0.30)',
background: '#fff',
borderRadius: 4,
overflowY: 'scroll',
};
// 列表图标统一样式
export const proIconForTableActionStyle: React.CSSProperties = {
fontSize: 16,
};

@ -0,0 +1,42 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-01 19:55:20
* @FilePath: \general-ai-manage\config\defaultSettings.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { ProLayoutProps } from '@ant-design/pro-components';
/**
* @name
*/
const Settings: ProLayoutProps & {
pwa?: boolean;
logo?: string;
} = {
navTheme: 'light',
// menuHeaderRender: () => undefined,
// headerRender: () => undefined,
// headerTitleRender: () => undefined,
// // 菜单栏和顶部栏合在一起,此处置空
// menuRender: () => undefined,
// 拂晓蓝
colorPrimary: '#004FB2',
breadcrumbRender: () => undefined,
layout: 'side',
contentWidth: 'Fluid',
fixedHeader: false,
fixSiderbar: true,
colorWeak: false,
title: ' ',
pwa: true,
logo: 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg',
iconfontUrl: '',
token: {
// 参见ts声明demo 见文档通过token 修改样式
//https://procomponents.ant.design/components/layout#%E9%80%9A%E8%BF%87-token-%E4%BF%AE%E6%94%B9%E6%A0%B7%E5%BC%8F
},
};
export default Settings;

@ -0,0 +1,15 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-12-26 15:51:09
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-12-26 15:51:18
* @FilePath: \general-ai-platform-web\config\defaultStyle.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
export const flex: React.CSSProperties = {
display: 'flex',
};
export const flexRA: React.CSSProperties = {
...flex,
};

@ -0,0 +1,42 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-13 11:32:26
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-11-21 13:36:39
* @FilePath: \general-ai-platform-web\config\defaultTable.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { PaginationProps } from 'antd';
// 通用列表配置
export const proTableCommonOptions: Record<string, any> = {
scrollX: 'max-content', // 保证左右侧列的固定,并能保证没列标题不换行
scrollY: 500, // 保证列表高度固定
commscrollX: 1300,
commscrollY: 500, // 保证列表高度固定
searchLabelWidth: 'auto', // 整体对齐label根据实际字数自适应
};
// 操作栏位配置
export const proTableActionColumnOptions: Record<string, any> = {
dataIndex: 'option',
valueType: 'option',
align: 'center',
fixed: 'right',
};
// 分页器配置
export const proTablePaginationOptions: PaginationProps = {
showSizeChanger: true,
// showQuickJumper: true,
showTotal: (total) => `${total}`,
};
// 默认索引列配置
// export const proTableIndexColumnOptions : ProColumns = {
// title: '序号',
// dataIndex: 'index',
// valueType: 'index', // 增加该属性以添加边框
// fixed: 'left', // 将该列固定在左侧
// width: 70,
// align:'center'
// }

@ -0,0 +1,593 @@
{
"openapi": "3.0.1",
"info": {
"title": "Ant Design Pro",
"version": "1.0.0"
},
"servers": [
{
"url": "http://localhost:8020/"
},
{
"url": "https://localhost:8020/"
}
],
"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"
}
}
}
}
}
}

@ -0,0 +1,54 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-01 19:21:12
* @FilePath: \general-ai-manage\config\proxy.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
* @name
* @see
* -------------------------------
* 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
*
* @doc https://umijs.org/docs/guides/proxy
*/
export default {
// 如果需要自定义本地开发服务器 请取消注释按需调整
dev: {
// localhost:8020/api/** -> https://preview.pro.ant.design/api/**
'/api/': {
// 要代理的地址
target: 'http://192.168.10.21:8000/',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
changeOrigin: true,
},
},
/**
* @name
* @doc https://github.com/chimurai/http-proxy-middleware
*/
test: {
// localhost:8020/api/** -> https://preview.pro.ant.design/api/**
'/api/': {
target: 'https://proapi.azurewebsites.net',
changeOrigin: true,
pathRewrite: { '^': '' },
},
},
pre: {
'/api/': {
// 要代理的地址
target: 'http://192.168.10.21:8000/',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
changeOrigin: true,
},
},
};

@ -0,0 +1,121 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-03 16:27:24
* @FilePath: \general-ai-manage\config\routes.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
* @name umi
* @description path,component,routes,redirect,wrappers,name,icon
* @param path path :id *
* @param component location path React src/pages
* @param routes layout 使
* @param redirect
* @param wrappers
* @param name menu.ts menu.xxxx name login menu.ts menu.login
* @param icon https://ant.design/components/icon-cn 注意去除风格后缀和大小写,如想要配置图标为 <StepBackwardOutlined /> 则取值应为 stepBackward 或 StepBackward如想要配置图标为 <UserOutlined /> 则取值应为 user 或者 User
* @doc https://umijs.org/docs/guides/routes
*/
export default [
{
path: '/user',
layout: false,
routes: [
{
name: 'login',
path: '/user/login',
component: './User/Login',
},
],
},
{
name: 'realTime',
path: '/realTime',
access: 'canReadMenu',
routes: [
{
name: 'realTime-involved-list',
path: '/realTime/involved-list',
component: './RealTime/InvolvedList',
access: 'canReadMenu',
},
{
name: 'realTime-alarm-list',
path: '/realTime/alarm-list',
component: './RealTime/AlarmList',
access: 'canReadMenu',
},
{
name: 'realTime-alarm-rules',
path: '/realTime/alarm-rules',
component: './RealTime/AlarmRules',
access: 'canReadMenu',
},
{
name: 'realTime-device-list',
path: '/realTime/device-list',
component: './RealTime/DeviceList',
access: 'canReadMenu',
},
],
},
{
name: 'offline',
path: '/offline',
routes: [
{
name: 'offline-involved-list-upload',
path: '/offline/involved-list-upload',
component: './Offline/InvolvedUploadList',
},
{
name: 'offline-alarm-list',
path: '/offline/alarm-list',
component: './Offline/OfflineAlarmList',
},
{
name: 'offline-alarm-rules',
path: '/offline/alarm-rules',
component: './Offline/OfflineAlarmRules',
},
{
name: 'offline-device-list',
path: '/offline/device-list',
component: './Offline/OfflineDeviceList',
},
{
name: 'offline-video-file',
path: '/offline/video-file',
component: './Offline/VideoFile',
},
],
},
{
path: '/admin',
name: 'admin',
icon: 'crown',
routes: [
{
path: '/admin',
redirect: '/admin/sub-page',
},
{
path: '/admin/sub-page',
name: 'sub-page',
component: './Admin',
},
],
},
{
path: '/',
redirect: '/realTime/involved-list',
},
{
path: '*',
layout: false,
component: './404',
},
];

@ -0,0 +1,23 @@
import { configUmiAlias, createConfig } from '@umijs/max/test';
export default async () => {
const config = await configUmiAlias({
...createConfig({
target: 'browser',
}),
});
console.log(JSON.stringify(config));
return {
...config,
testEnvironmentOptions: {
...(config?.testEnvironmentOptions || {}),
url: 'http://localhost:8020',
},
setupFiles: [...(config.setupFiles || []), './tests/setupTests.jsx'],
globals: {
...config.globals,
localStorage: null,
},
};
};

@ -0,0 +1,11 @@
{
"compilerOptions": {
"jsx": "react-jsx",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}

@ -0,0 +1,23 @@
// @ts-ignore
import { Request, Response } from 'express';
export default {
'POST /employee/createEmployee': (req: Request, res: Response) => {
res.status(200).send({});
},
'DELETE /employee/deleteEmployee': (req: Request, res: Response) => {
res.status(200).send({});
},
'DELETE /employee/deleteEmployeeByIds': (req: Request, res: Response) => {
res.status(200).send({});
},
'POST /employee/getEmployeeById': (req: Request, res: Response) => {
res.status(200).send({});
},
'POST /employee/getEmployeeList': (req: Request, res: Response) => {
res.status(200).send({});
},
'PUT /employee/updateEmployee': (req: Request, res: Response) => {
res.status(200).send({});
},
};

@ -0,0 +1,38 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 16:28:13
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:53:29
* @FilePath: \uighur-recognition-web2\mock\device.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**告警列表模块 mock */
import { mockGetDeviceData, mockGetUploadDeviceData } from './pools/deviceData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 实时分析告警列表分页
'GET /api/device_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetDeviceData,
data: { ...mockGetDeviceData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 离线分析告警列表分页
'GET /api/upload_device_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetUploadDeviceData,
data: { ...mockGetUploadDeviceData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -0,0 +1,176 @@
import dayjs from 'dayjs';
import { Request, Response } from 'express';
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: dayjs().format('YYYY-MM-DD'),
createdAt: dayjs().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) as Array<keyof API.RuleListItem>).forEach((key) => {
let nextSort = next?.[key] as number;
let preSort = prev?.[key] as number;
if (sorter[key] === 'descend') {
if (preSort - nextSort > 0) {
sortNumber += -1;
} else {
sortNumber += 1;
}
return;
}
if (preSort - nextSort > 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) as Array<keyof API.RuleListItem>).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: dayjs().format('YYYY-MM-DD'),
createdAt: dayjs().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,
};

@ -0,0 +1,22 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2023-11-01 13:56:33
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 11:25:29
* @FilePath: \general-ai-platform-web\mock\route.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**菜单模块 mock */
import { mockGetMenuData } from '../testData/menuData';
import { successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 获取菜单
'POST /api/menu/getMenu': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetMenuData),
};
res.send(resData);
},
};

@ -0,0 +1,115 @@
import { Request, Response } from 'express';
const getNotices = (req: Request, res: Response) => {
res.json({
data: [
{
id: '000000001',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/MSbDR4FR2MUAAAAAAAAAAAAAFl94AQBr',
title: '你收到了 14 份新周报',
datetime: '2017-08-09',
type: 'notification',
},
{
id: '000000002',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/hX-PTavYIq4AAAAAAAAAAAAAFl94AQBr',
title: '你推荐的 曲妮妮 已通过第三轮面试',
datetime: '2017-08-08',
type: 'notification',
},
{
id: '000000003',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/jHX5R5l3QjQAAAAAAAAAAAAAFl94AQBr',
title: '这种模板可以区分多种通知类型',
datetime: '2017-08-07',
read: true,
type: 'notification',
},
{
id: '000000004',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/Wr4mQqx6jfwAAAAAAAAAAAAAFl94AQBr',
title: '左侧图标用于区分不同的类型',
datetime: '2017-08-07',
type: 'notification',
},
{
id: '000000005',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/Mzj_TbcWUj4AAAAAAAAAAAAAFl94AQBr',
title: '内容不要超过两行字,超出时自动截断',
datetime: '2017-08-07',
type: 'notification',
},
{
id: '000000006',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/eXLzRbPqQE4AAAAAAAAAAAAAFl94AQBr',
title: '曲丽丽 评论了你',
description: '描述信息描述信息描述信息',
datetime: '2017-08-07',
type: 'message',
clickClose: true,
},
{
id: '000000007',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/w5mRQY2AmEEAAAAAAAAAAAAAFl94AQBr',
title: '朱偏右 回复了你',
description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
datetime: '2017-08-07',
type: 'message',
clickClose: true,
},
{
id: '000000008',
avatar:
'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/wPadR5M9918AAAAAAAAAAAAAFl94AQBr',
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,
};

@ -0,0 +1,159 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 15:42:40
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:48:37
* @FilePath: \uighur-recognition-web2\mock\pools\warningRuleData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**@实时分析设备列表模块 */
// 设备列表分页
export const mockGetDeviceData = {
data: {
count: 3,
next: null,
previous: null,
results: [
{
id: 3,
device_name: '东大街西',
device_code: null,
device_api: 'test2',
is_use: 0,
device_status: 1,
note: null,
test_time: '2024-03-25T14:46:59.254201',
test_result: 1,
device_ip: '192.168.10.28',
device_port: null,
create_time: '2024-02-26T14:12:21.632020',
update_time: '2024-03-25T14:46:59.256200',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
appear_time: '2024-04-02T10:05:19',
},
{
id: 2,
device_name: '东大街南',
device_code: null,
device_api: 'test',
is_use: 0,
device_status: 1,
note: null,
test_time: '2024-03-22T13:28:38.741433',
test_result: 1,
device_ip: '192.168.10.10',
device_port: null,
create_time: '2024-02-26T09:59:36.599018',
update_time: '2024-03-22T13:28:38.743432',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
appear_time: '2024-04-02T10:05:19',
},
{
id: 1,
device_name: '东大街东',
device_code: null,
device_api: null,
is_use: 0,
device_status: 1,
note: null,
test_time: '2024-03-22T13:33:21.783679',
test_result: 1,
device_ip: '192.168.10.28',
device_port: null,
create_time: '2024-02-26T09:57:25',
update_time: '2024-03-22T13:33:21.786678',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
appear_time: '2024-04-02T10:05:19',
},
],
},
msg: null,
success: true,
status: 200,
};
/**@离线分析设备列表模块 */
// 设备列表分页
export const mockGetUploadDeviceData = {
data: {
count: 3,
next: null,
previous: null,
results: [
{
id: 3,
device_name: 'test2',
device_uuid: '098eea8c_c649_4a6a_8a39_4f4b9c4c1cc0',
upload_or_download: 1,
operate_mode: 2,
device_ip: '127.0.0.1',
device_port: 80,
device_username: 'admin',
device_password: 'admin',
source_directory: null,
destination_directory: '/home\\098eea8c_c649_4a6a_8a39_4f4b9c4c1cc0',
access_key_id: null,
access_key_secret: null,
bucket: null,
is_use: 1,
device_status: 1,
note: 'test23',
test_time: null,
test_result: null,
create_time: '2024-04-02T16:42:14.596765',
update_time: '2024-04-02T17:19:50.855507',
},
{
id: 2,
device_name: 'test1',
device_uuid: '430bce6b_4df5_4dfa_a64c_776934746069',
upload_or_download: 2,
operate_mode: 3,
device_ip: 'test1',
device_port: null,
device_username: null,
device_password: null,
source_directory: null,
destination_directory: '/home\\430bce6b_4df5_4dfa_a64c_776934746069',
access_key_id: '112233',
access_key_secret: '332211',
bucket: '123456',
is_use: 1,
device_status: 1,
note: '654321',
test_time: null,
test_result: null,
create_time: '2024-04-02T16:06:32.241551',
update_time: '2024-04-02T17:20:40.696287',
},
{
id: 1,
device_name: 'test',
device_uuid: '252f9533_fd3f_4282_aafe_dadc9b3044c4',
upload_or_download: 2,
operate_mode: 1,
device_ip: '192.10.10.1',
device_port: 8080,
device_username: 'test',
device_password: '123456',
source_directory: 'test1',
destination_directory: '/home\\252f9533_fd3f_4282_aafe_dadc9b3044c4',
access_key_id: null,
access_key_secret: null,
bucket: null,
is_use: 1,
device_status: 1,
note: 'test1',
test_time: null,
test_result: null,
create_time: '2024-04-02T15:47:37.276475',
update_time: '2024-04-02T17:24:02.682003',
},
],
},
msg: null,
success: true,
status: 200,
};

@ -0,0 +1,128 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 16:05:16
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-03 16:27:37
* @FilePath: \general-ai-platform-web\mock\pools\menuData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/** 菜单目录信息 */
export const mockGetMenuData = {
data: {
routes: [
// {
// path: '/welcome',
// key: '0',
// name: 'welcome',
// icon: 'HomeOutlined',
// access: '',
// component: 'Welcome',
// label: '首页',
// title: '首页',
// },
{
path: '/realTime',
key: '1',
name: 'realTime',
icon: 'RealTime',
component: '',
title: '实时分析',
access: 'canReadMenu',
routes: [
{
component: 'RealTime/InvolvedList',
icon: '',
key: '101',
name: 'realTime-involved-list',
path: '/realTime/involved-list',
routes: [],
title: '告警汇总',
access: 'canReadMenu',
},
{
component: 'RealTime/AlarmList',
icon: '',
key: '102',
name: 'realTime-alarm-list',
path: '/realTime/alarm-list',
routes: [],
title: '告警列表',
},
{
component: 'RealTime/AlarmRules',
icon: '',
key: '103',
name: 'realTime-alarm-rules',
path: '/realTime/alarm-rules',
routes: [],
title: '告警规则',
},
{
component: 'RealTime/DeviceList',
icon: '',
key: '104',
name: 'realTime-device-list',
path: '/realTime/device-list',
routes: [],
title: '设备管理',
},
],
},
{
path: '/offline',
key: '2',
name: 'offline',
icon: 'OffLine',
component: '',
title: '离线分析',
routes: [
{
component: 'Offline/InvolvedUploadList',
icon: '',
key: '201',
name: 'offline-involved-list-upload',
path: '/offline/involved-list-upload',
routes: [],
title: '告警汇总',
},
{
component: 'Offline/OfflineAlarmList',
icon: '',
key: '202',
name: 'offline-alarm-list',
path: '/offline/alarm-list',
routes: [],
title: '告警列表',
},
{
component: 'Offline/OfflineAlarmRules',
icon: '',
key: '203',
name: 'offline-alarm-rules',
path: '/offline/alarm-rules',
routes: [],
title: '告警规则',
},
{
component: 'Offline/OfflineDeviceList',
icon: '',
key: '204',
name: 'offline-device-list',
path: '/offline/device-list',
routes: [],
title: '设备管理',
},
{
component: 'Offline/VideoFile',
icon: '',
key: '205',
name: 'offline-video-file',
path: '/offline/video-file',
routes: [],
title: '视频文件',
},
],
},
],
},
};

@ -0,0 +1,281 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 14:04:18
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:05:46
* @FilePath: \uighur-recognition-web2\mock\pools\recognitionPeopleData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**@实时分析告警汇总模块 */
// 告警汇总列表分页
export const mockGetRecognitionPeopleData = {
data: {
count: 12,
next: null,
previous: null,
results: [
{
id: 3,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:55:00.394393',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:55:00.396393',
device_id: 3,
device_name: 'cam03',
appear_time: '2024-04-02T10:05:19',
},
{
id: 2,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-08T15:41:08.170979',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-08T15:41:08.171978',
device_id: 2,
device_name: 'cam02',
appear_time: '2024-04-02T10:05:19',
},
{
id: 1,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27913',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:51:08.471682',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:51:08.472683',
device_id: 1,
device_name: 'cam01',
appear_time: '2024-04-02T10:05:19',
},
{
id: 30,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:55:00.394393',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:55:00.396393',
device_id: 3,
device_name: 'cam03',
appear_time: '2024-04-02T10:05:19',
},
{
id: 32,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-08T15:41:08.170979',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-08T15:41:08.171978',
device_id: 2,
device_name: 'cam02',
appear_time: '2024-04-02T10:05:19',
},
{
id: 31,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27913',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:51:08.471682',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:51:08.472683',
device_id: 1,
device_name: 'cam01',
appear_time: '2024-04-02T10:05:19',
},
{
id: 23,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:55:00.394393',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:55:00.396393',
device_id: 3,
device_name: 'cam03',
appear_time: '2024-04-02T10:05:19',
},
{
id: 22,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-08T15:41:08.170979',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-08T15:41:08.171978',
device_id: 2,
device_name: 'cam02',
appear_time: '2024-04-02T10:05:19',
},
{
id: 21,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27913',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:51:08.471682',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:51:08.472683',
device_id: 1,
device_name: 'cam01',
appear_time: '2024-04-02T10:05:19',
},
{
id: 13,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:55:00.394393',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:55:00.396393',
device_id: 3,
device_name: 'cam03',
appear_time: '2024-04-02T10:05:19',
},
{
id: 12,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-08T15:41:08.170979',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-08T15:41:08.171978',
device_id: 2,
device_name: 'cam02',
appear_time: '2024-04-02T10:05:19',
},
{
id: 11,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27913',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 0,
classify_time: '2024-03-25T13:51:08.471682',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:51:08.472683',
device_id: 1,
device_name: 'cam01',
appear_time: '2024-04-02T10:05:19',
},
],
},
msg: null,
success: true,
status: 200,
};
/**@离线分析告警汇总模块 */
// 告警汇总列表分页
export const mockGetUploadRecognitionPeopleData = {
data: {
count: 3,
next: null,
previous: null,
results: [
{
id: 3,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-25T14:47:22.991546',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T14:47:22.993546',
video_id: '2',
video_name: 'test.mp4',
relative_time: 712,
analyse_time: '2024-03-20T15:11:48',
},
{
id: 2,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-25T13:57:00.222531',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-25T13:57:00.224531',
video_id: '1',
video_name: 'test.mp4',
relative_time: 512,
analyse_time: '2024-03-20T15:11:48',
},
{
id: 1,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27913',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
classify: 1,
classify_time: '2024-03-26T13:14:25.219923',
similar_person_pk: null,
status: 1,
note: null,
create_time: '2024-03-04T10:24:13',
update_time: '2024-03-26T13:14:25.221925',
video_id: '1',
video_name: 'test.mp4',
relative_time: 512,
analyse_time: '2024-03-20T15:11:48',
},
],
},
msg: null,
success: true,
status: 200,
};
// upload_recognition_people

@ -0,0 +1,322 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 14:05:08
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:08:19
* @FilePath: \uighur-recognition-web2\mock\pools\travelTrackData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**@实时分析告警追踪模块 */
// 告警追踪列表分页
export const mockGetTravelTrackData = {
data: {
count: 20,
next: 'http://192.168.10.21:8000/api/travel_track/?page=2&pageSize=10&person_id=0df18ed7-d6e7-445f-824d-6b3942c27915',
previous: null,
results: [
{
id: 15,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 16,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 17,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 18,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 19,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 20,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 21,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 22,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 23,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
{
id: 24,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
device_id: 3,
device_name: '东大街西',
appear_time: '2024-04-02T10:05:19',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-02-27T14:36:37.505000',
update_time: '2024-03-04T11:35:18.704087',
person_classify: 0,
device_note: null,
},
],
},
msg: null,
success: true,
status: 200,
};
/**@离线分析告警追踪模块 */
// 告警追踪列表分页
export const mockGetUploadTravelTrackData = {
data: {
count: 9,
next: null,
previous: null,
results: [
{
id: 15,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '2',
video_name: 'test.mp4',
relative_time: '11分52秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时53分20秒',
},
{
id: 14,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '2',
video_name: 'test.mp4',
relative_time: '10分12秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时53分20秒',
},
{
id: 13,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '2',
video_name: 'test.mp4',
relative_time: '8分32秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时53分20秒',
},
{
id: 12,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '2',
video_name: 'test.mp4',
relative_time: '6分52秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时53分20秒',
},
{
id: 11,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '2',
video_name: 'test.mp4',
relative_time: '5分12秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时53分20秒',
},
{
id: 10,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '1',
video_name: 'test.mp4',
relative_time: '10分12秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时3分20秒',
},
{
id: 9,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '1',
video_name: 'test.mp4',
relative_time: '8分32秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时3分20秒',
},
{
id: 8,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '1',
video_name: 'test.mp4',
relative_time: '6分52秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时3分20秒',
},
{
id: 7,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
video_id: '1',
video_name: 'test.mp4',
relative_time: '5分12秒',
picture_path:
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
is_ignore: 0,
cancel_trip: null,
create_time: '2024-03-20T15:11:48',
update_time: '2024-03-20T15:11:50',
person_classify: 1,
video_length: '1时3分20秒',
},
],
},
msg: null,
success: true,
status: 200,
};

@ -0,0 +1,80 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 15:18:28
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-03 16:22:13
* @FilePath: \general-ai-platform-web\mock\pools\userData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**登录成功信息 */
export const mockBaseLoginData = {
data: {
user: {
id: 1,
createTime: '2023-10-08T16:02:30.775742+08:00',
updateTime: '2024-01-24T14:52:59.630566+08:00',
userName: 'admin',
nickName: '管理员1',
phone: '',
email: '',
avatarId: 1,
access: 'admin',
roleId: 1,
postId: null,
deptId: null,
roleIds: '1',
postIds: '',
remark: '',
enable: null,
lastLoginTime: '2024-01-24T14:56:32.6205134+08:00',
},
token:
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6MSwiVXNlcm5hbWUiOiJhZG1pbiIsIk5pY2tOYW1lIjoi566h55CG5ZGYIiwiUm9sZUlkIjoxLCJCdWZmZXJUaW1lIjo4NjQwMCwiaXNzIjoicW1QbHVzIiwiYXVkIjpbIkdWQSJdLCJleHAiOjE3MDYyNTk0NjIsIm5iZiI6MTcwNTY1NDY2Mn0.Iyc74dPDLCc-J3AA_V-KEmVP4vihYzmasXok_jlvOvE',
expiresAt: 1706684192000,
},
msg: '登录成功',
};
/**获取用户信息 */
export const mockGetUserInfoData = {
data: {
userInfo: {
id: 1,
createTime: '2023-10-08T16:02:30.775742+08:00',
updateTime: '2024-01-24T14:56:32.620573+08:00',
userName: 'admin',
nickName: '管理员1',
phone: '',
email: '',
avatarId: 1,
roleId: 1,
postId: null,
deptId: null,
access: 'admin',
roleIds: '1',
postIds: '',
remark: '',
enable: null,
lastLoginTime: '2024-01-24T14:56:32.620513+08:00',
roles: [
{
label: '管理员1',
value: 1,
},
],
avatarUrl: 'uploads/image/user/avatar/39c63ddb96a31b9610cd976b896ad4f0_20231016113731.jpg',
},
},
};
/**图形验证码 */
export const mockBaseCaptchaData = {
data: {
captchaId: 'FeAftCoXZXjQ93CRfHuj',
picPath:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAABQCAMAAAAQlwhOAAAA81BMVEUAAAAwVmtnjaJskqdYfpN0mq9kip+Tuc5IboNpj6SQtss8Ync6YHWHrcIbQVYBJzx+pLkMMkcEKj80Wm8tU2hPdYpSeI1xl6wMMkdxl6yMssczWW4GLEFEan9Zf5Q5X3RDaX4UOk92nLEILkNtk6gUOk9Zf5RVe5CCqL0KMEU8YnclS2AILkNehJlDaX5cgpcwVmsAJjsHLUKBp7wTOU5ymK2IrsMMMkcgRltSeI1QdouQtssTOU5pj6QEKj8tU2gPNUpSeI0qUGVIboNAZnsbQVZiiJ0MMkcoTmOIrsNojqNIboNTeY5skqdojqMkSl9AZnv2JzmZAAAAAXRSTlMAQObYZgAABk9JREFUeJzsm+lO4z4Xxo9nQMAnhECIik0gVrGJ7QMVFQUGEEjM/V/Oq6aJfVZnqZvQ9z+PNNM2duzz8+MtC/B/rdWuA2hZq6t1iP/aSV8pomlDtXj/msRfXz+L+HeaYmbG4d+/ExHPjP5rvP80Zb3VyXw5vTja0ttbDeLLS07swKWOCABWplCml8F7rB4lvA7cWDq0dbxcKyuJiZfLsxwf68ReOW3+aaU3DHBS3k36c3m5lHjLcNgLwaoe28a3oM1NTlx2xtbW1ujjTyQLdViYyQ5WQp+vkqmSNmufMeb9YxFnlPmE5b+QDIS3mt3z8+mIG/Ytk5e6Jw2mYzs6tSEl5J10OKn9lf7mGVClLmhKy5iMd5IpJIudHGCA2u/QCk4oFfOCGfG4wZtVJJcXWRDze9xE+cFAmRp5YcEmBl9jrapQlOSw0oOVIY0/HCsuCXIVh62qTrTTqCkw4EQoI8gRjcYwzam1oa2LatlE5GgpUao6OZHEbNzBYDBACSwjPw8A9iymSrhP+efFRQXiJVnB+EvRqxViIyyHwjMcNjr83t6eSuUqAT89eeJ4xpGWljgx4C1Ppc7E91E00eHuak3ZeyqW2eRMT3Zo8lzL4RAi0N/aKCSrqKjSWbtKVJLuoyvbFZxG0nzB+bc5I0OsRck4RZGiX/J0PNmK/kzLUc6M0pyelhC7gDw3pxFHRgxdHQ1nUCfMFxfMy6Z9hzfQcrmOBeOJ48kFbfa/7rBZhxO7IJk9P+wAAp//5KfS1lXHfvNrZIXZTlVHje+Sjo7j4oPM0txhwKlociNjQU7f6bbSztm3GKye5ID5QYzCUXKH8RLHOgf7xetLhJuXp0/azthksQbP3RHRG5W5cPFHNlAo2TePCzM7DvB5YmJeYkBx2vUDa3HFYdMTDY5wojxsaizCcM/Pz1AEzE73JRSzcmQJcqBuLZzs9OoYEyR22zrWosDsBuSwH+FhQIB7Bo8LImrUONk/fQkKzWL4bDns9mUHjswwIolbjLDpyucATnLyYoUPHm00cBjoQiWR5b5g9Lm/vy/2yOP6NrQK9CUHwr6NBx4Gc3ahUmy3PO7r6L+NjQ1eYHDYxh1nHzrS7oD3vsSWPCTqsL8lRYMgJ+IDS9xN3LH5+qtcir6+voLRuBU1HA7DLComDoeX0MKcsIaSvBYvBh5drqBFnC3PeK9m6bU5akEMtsPZ109trkU8pE9qxPjAEj50DgC8Yyddf0ukO/z5+Yk7H7/K4XssWaYxhgHOz8+LY6ioaVNGlM/VnyDM9OnO34hTl7jILA2Fw+hwywYL4SlW8Rek1VohWav0aSl6to5wv3EU+O6absJmkTUyiF2/31d2lSJbJeBBPZxSfX8T4mu0LVqTs65//GZGmzuMx4M11KvxDpIT4ziur699315bW1PiGvH2osBk/N+ZM1vVHp2a1+sqC+Ua3ZZaMwZhr9eLRYsvgu/u7iIZ6gd5UP8UWnVgubq6grCvPnJs7SWnxRxmZSu8eaEvDdakgwNB3MtTKp1Por6CgHd0dOSbQjV5whnWgXt5eWlQhOTtZcRKS+gVi7gd7OYOk0xKvknXlCYOK6rlML+1Mfq9u7vL+aTDogW2GwWbcBmucHXxBuJSOPu6qz/05HdA8q/r2f/b282Ik0m9dKPyr50hZvsBHu0HgXh9fUR82NDhhKK8t1oW/9oZfmIarttIXtoGuFNkvIeHicOfULe3KrGXI5uF7TKHZfIP4zUcDsIOu9FwjDmM+vPH1AKevhDztpy8AV0dh7SPj1kmpizKbVt0KVCkcN6zVgNOocBC73cE1Ngd6bOz2SMGtCTrMq7nM80ibxB7eFgGW0/lz/I7ETY26XuBpc/y29Mj/SnuaiVSN7zKI5nH9ccuImlH2kO38dY4qGTHMmPSHrox3vGeVHv7cBKZb0J2rzGv8vbhJLLfdVWG9jBp1RXVlsPK5D0clhBvqUfr/2VDN6rvcP43J0zib1cqaLH2Gd2omcN9cWRxcVaIm6jfV4g7iaQtSd6qirxP0lglf/nWqew3huBX0zJL/7ZR6KZpVQ1k8/5qTlwz/81Nm8SmGvPW14/gLfQeT0aXYfdTjyWZHuyk9/coMbpddH//s4h37KSHhxhxvNgf6/DOToy4zUjaUoT3nzrS/wIAAP//cvBDDOlG/gwAAAAASUVORK5CYII=',
captchaLength: 6,
openCaptcha: true,
},
msg: '验证码获取成功',
};

@ -0,0 +1,224 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-01 20:26:23
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:10:20
* @FilePath: \uighur-recognition-web2\mock\pools\warningInfoData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**@实时分析告警模块 */
// 告警列表分页
export const mockGetWarningInfoData = {
data: {
results: [
{
warning_name: '单人徘徊',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_classify: 0,
device_name: '东大街东',
device_note: null,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27913',
trigger_time: '2024-04-02T09:43:38.581250',
},
{
warning_name: '单人徘徊',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_classify: 1,
device_name: '东大街东',
device_note: null,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
trigger_time: '2024-04-02T09:43:38.584291',
},
{
warning_name: '单人徘徊',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_classify: 0,
device_name: '东大街东',
device_note: null,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
trigger_time: '2024-04-02T09:43:38.588170',
},
{
warning_name: '单人徘徊',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_classify: 1,
device_name: '东大街南',
device_note: null,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27914',
trigger_time: '2024-04-02T09:43:38.592134',
},
{
warning_name: '单人徘徊',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_classify: 0,
device_name: '东大街西',
device_note: null,
person_id: '0df18ed7-d6e7-445f-824d-6b3942c27915',
trigger_time: '2024-04-02T09:43:38.596134',
},
],
count: 5,
},
};
/**@离线分析告警模块 */
// 告警列表分页
export const mockGetUploadWarningInfoData = {
data: {
count: 5,
next: null,
previous: null,
results: [
{
id: 11,
video_id: '2',
start_result_id: '14',
warning_name: '单人徘徊',
warning_type: 1,
origin: 'test2.mp4',
trigger_time: '2024-04-01 16:25:38.113472',
person_id_list: '["0df18ed7-d6e7-445f-824d-6b3942c27915"]',
is_ignore: 0,
create_time: '2024-04-01T16:25:38.115472',
update_time: '2024-04-01T16:25:38.115472',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_list: [
[
'0df18ed7-d6e7-445f-824d-6b3942c27915',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
1,
],
],
video_length: '1时53分20秒',
upload_time: '2024-03-20T15:10:17',
video_start: '10分12秒',
},
{
id: 10,
video_id: '2',
start_result_id: '11',
warning_name: '单人徘徊',
warning_type: 1,
origin: 'test2.mp4',
trigger_time: '2024-04-01 16:25:38.104473',
person_id_list: '["0df18ed7-d6e7-445f-824d-6b3942c27915"]',
is_ignore: 0,
create_time: '2024-04-01T16:25:38.107473',
update_time: '2024-04-01T16:25:38.107473',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_list: [
[
'0df18ed7-d6e7-445f-824d-6b3942c27915',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
1,
],
],
video_length: '1时53分20秒',
upload_time: '2024-03-20T15:10:17',
video_start: '5分12秒',
},
{
id: 8,
video_id: '1',
start_result_id: '7',
warning_name: '单人徘徊',
warning_type: 1,
origin: 'test.mp4',
trigger_time: '2024-04-01 16:24:09.085472',
person_id_list: '["0df18ed7-d6e7-445f-824d-6b3942c27915"]',
is_ignore: 0,
create_time: '2024-04-01T16:24:09.087472',
update_time: '2024-04-01T16:24:09.087472',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_list: [
[
'0df18ed7-d6e7-445f-824d-6b3942c27915',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
1,
],
],
video_length: '1时3分20秒',
upload_time: '2024-03-20T15:10:17',
video_start: '5分12秒',
},
{
id: 7,
video_id: '1',
start_result_id: '4',
warning_name: '单人徘徊',
warning_type: 1,
origin: 'test.mp4',
trigger_time: '2024-04-01 16:24:09.080472',
person_id_list: '["0df18ed7-d6e7-445f-824d-6b3942c27914"]',
is_ignore: 0,
create_time: '2024-04-01T16:24:09.082472',
update_time: '2024-04-01T16:24:09.082472',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_list: [
[
'0df18ed7-d6e7-445f-824d-6b3942c27914',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
1,
],
],
video_length: '1时3分20秒',
upload_time: '2024-03-20T15:10:17',
video_start: '5分12秒',
},
{
id: 6,
video_id: '1',
start_result_id: '1',
warning_name: '单人徘徊',
warning_type: 1,
origin: 'test.mp4',
trigger_time: '2024-04-01 16:24:09.072472',
person_id_list: '["0df18ed7-d6e7-445f-824d-6b3942c27913"]',
is_ignore: 0,
create_time: '2024-04-01T16:24:09.075472',
update_time: '2024-04-01T16:24:09.075472',
picture_path: [
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
],
person_list: [
[
'0df18ed7-d6e7-445f-824d-6b3942c27913',
'http://192.168.10.82:8080/UR_face/2024-02-27/normal/cam01_AZ8478568_20240206140518032_FACE_SNAP_4098.jpg',
1,
],
],
video_length: '1时3分20秒',
upload_time: '2024-03-20T15:10:17',
video_start: '5分12秒',
},
],
},
msg: null,
success: true,
status: 200,
};

@ -0,0 +1,107 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 15:42:40
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 15:45:45
* @FilePath: \uighur-recognition-web2\mock\pools\warningRuleData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**@实时分析告警规则模块 */
// 告警规则分页
export const mockGetWarningRuleData = {
data: {
count: 3,
next: null,
previous: null,
results: [
{
id: 3,
warning_name: '敏感时间',
warning_level: 3,
warning_type: 3,
is_use: 1,
person_number: 1,
appear_number: 1,
time_interval: null,
time_period: null,
trigger_start_time: '09:09:16',
trigger_end_time: '18:00:00',
create_time: null,
update_time: '2024-04-01T17:53:40.998904',
},
{
id: 2,
warning_name: '多人聚集',
warning_level: 2,
warning_type: 2,
is_use: 1,
person_number: 3,
appear_number: 1,
time_interval: 1,
time_period: null,
trigger_start_time: null,
trigger_end_time: null,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54.752905',
},
{
id: 1,
warning_name: '单人徘徊',
warning_level: 1,
warning_type: 1,
is_use: 1,
person_number: 1,
appear_number: 2,
time_interval: 1,
time_period: 10,
trigger_start_time: null,
trigger_end_time: null,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01.945906',
},
],
},
msg: null,
success: true,
status: 200,
};
/**@离线分析告警规则模块 */
// 告警规则分页
export const mockGetUploadWarningRuleData = {
data: {
count: 2,
next: null,
previous: null,
results: [
{
id: 2,
warning_name: '多人聚集',
warning_level: 2,
warning_type: 2,
is_use: 1,
person_number: 3,
appear_number: 1,
time_interval: 5,
time_period: null,
create_time: '2024-04-01T16:15:05',
update_time: '2024-04-02T14:25:10.087767',
},
{
id: 1,
warning_name: '单人徘徊',
warning_level: 1,
warning_type: 1,
is_use: 1,
person_number: 1,
appear_number: 2,
time_interval: 1,
time_period: 10,
create_time: '2024-04-01T16:14:35',
update_time: '2024-04-02T14:25:16.505613',
},
],
},
msg: null,
success: true,
status: 200,
};

@ -0,0 +1,41 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 14:08:47
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:27:11
* @FilePath: \uighur-recognition-web2\mock\recognitionPeople.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**告警汇总模块 mock */
import {
mockGetRecognitionPeopleData,
mockGetUploadRecognitionPeopleData,
} from './pools/recognitionPeopleData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 实时分析告警汇总列表分页
'GET /api/recognition_people_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetRecognitionPeopleData,
data: { ...mockGetRecognitionPeopleData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 离线分析告警汇总列表分页
'GET /api/upload_recognition_people_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetUploadRecognitionPeopleData,
data: { ...mockGetUploadRecognitionPeopleData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -0,0 +1,324 @@
module.exports = {
'GET /api/currentUser': {
data: {
name: 'Serati Ma',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/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',
geographic: {
province: { label: '浙江省', key: '330000' },
city: { label: '杭州市', key: '330100' },
},
address: '西湖区工专路 77 号',
phone: '0752-268888888',
},
},
'GET /api/rule': {
data: [
{
key: 99,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 99',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 503,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 81,
},
{
key: 98,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 98',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 164,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 12,
},
{
key: 97,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 97',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 174,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 81,
},
{
key: 96,
disabled: true,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 96',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 914,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 7,
},
{
key: 95,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 95',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 698,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 82,
},
{
key: 94,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 94',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 488,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 14,
},
{
key: 93,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 93',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 580,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 77,
},
{
key: 92,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 92',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 244,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 58,
},
{
key: 91,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 91',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 959,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 66,
},
{
key: 90,
disabled: true,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 90',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 958,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 72,
},
{
key: 89,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 89',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 301,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 2,
},
{
key: 88,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 88',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 277,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 12,
},
{
key: 87,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 87',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 810,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 82,
},
{
key: 86,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 86',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 780,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 22,
},
{
key: 85,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 85',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 705,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 12,
},
{
key: 84,
disabled: true,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 84',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 203,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 79,
},
{
key: 83,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 83',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 491,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 59,
},
{
key: 82,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 82',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 73,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 100,
},
{
key: 81,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 81',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 406,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 61,
},
{
key: 80,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 80',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 112,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 20,
},
],
total: 100,
success: true,
pageSize: 20,
current: 1,
},
'POST /api/login/outLogin': { data: {}, success: true },
'POST /api/login/account': {
status: 'ok',
type: 'account',
currentAuthority: 'admin',
},
};

@ -0,0 +1,13 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-01 11:20:09
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:27:22
* @FilePath: \uighur-recognition-web2\mock\route.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
export default {
'/api/auth_routes': {
'/form/advanced-form': { authority: ['admin', 'user'] },
},
};

@ -0,0 +1,41 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 15:48:44
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 17:07:30
* @FilePath: \uighur-recognition-web2\mock\travelTrack.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**告警追踪模块 mock */
import { mockGetTravelTrackData, mockGetUploadTravelTrackData } from './pools/travelTrackData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 实时分析告警追踪分页
'GET /api/travel_track_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetTravelTrackData,
data: { ...mockGetTravelTrackData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 离线分析告警追踪分页
'GET /api/upload_travel_track_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetUploadTravelTrackData,
data: { ...mockGetUploadTravelTrackData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};
// \upload_travel_track

@ -0,0 +1,25 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 15:21:35
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-24 16:36:07
* @FilePath: \general-ai-platform-web\mock\typing.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**成功返回数据结构 */
export interface successMockApiProps {
status: number; // 200 成功
success: boolean; // true 成功
data: any; // mock业务层数据
msg: string | undefined; // 成功提示
isMock: boolean; // true 标识当前是模拟数据
}
/**失败返回数据结构 */
export interface failMockApiProps {
status?: number; // 500 失败
success: boolean; // false 失败
data: any; // mock业务层数据
msg: string | undefined; // 成功提示
isMock: boolean; // true 标识当前是模拟数据
}

@ -0,0 +1,227 @@
/**用户模块 mock */
import { Request, Response } from 'express';
import { mockBaseCaptchaData, mockBaseLoginData, mockGetUserInfoData } from './pools/userData';
import { failMockApiProps, successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
const waitTime = (time: number = 100) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(true);
}, time);
});
};
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 {
// 登录
'POST /api/base/login': async (req: Request, res: Response) => {
const { password, username, type } = req.body;
await waitTime(1000);
if (password === 'admin123' && username === 'admin') {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseLoginData),
};
res.send(adminData);
access = 'admin';
return;
}
// TODO 以下未做任何处理
// 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;
// }
const failData: failMockApiProps = {
...fetchMockFailFullByOther({
data: {},
msg: '账号或者密码错误',
}),
};
res.send(failData as failMockApiProps);
access = 'guest';
},
// 获取用户信息
'GET /api/user/getUserInfo': async (req: Request, res: Response) => {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetUserInfoData),
};
res.send(adminData);
access = 'admin';
},
// 获取图形验证码
'POST /api/base/captcha': (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseCaptchaData),
};
res.send(resData);
},
// 登出
'POST /api/jwt/jsonInBlacklist': (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther({ data: {}, msg: 'jwt作废成功' }),
};
res.send(resData);
},
// TODO 以下未使用
'POST /api/login/outLogin': (req: Request, res: Response) => {
access = '';
res.send({ data: {}, success: true });
},
// 支持值为 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/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',
});
},
};

@ -0,0 +1,41 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 15:08:23
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 10:03:02
* @FilePath: \general-ai-platform-web\mock\utils\apiMock.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { failMockApiProps, successMockApiProps } from '../typing';
export function fetchMockSuccessFullByOther({ data, msg }): successMockApiProps {
return {
status: 200, // 0 成功状态码
success: true, // true 成功
data: data || null, // mock业务层数据
msg: msg | 'ok', // 成功提示
isMock: true, // true 标识当前是模拟数据
} as successMockApiProps;
}
export function fetchMockFailFullByOther({ data, msg }): failMockApiProps {
return {
status: 500, // 失败状态码
success: true, // true 成功
data: data || null, // mock业务层数据
msg: msg | 'fail', // 成功提示
isMock: true, // true 标识当前是模拟数据
} as failMockApiProps;
}
// 分页展示
export function fetchCurrPageByList({ data }): successMockApiProps {
console.log('fetchCurrPageByList_data', data);
const { page, pageSize } = data;
const prevPage = page - 1;
const currPageData = {
...data,
results: data.results.slice(prevPage * pageSize, page * pageSize),
};
return fetchMockSuccessFullByOther({ data: currPageData });
}

@ -0,0 +1,31 @@
/**告警列表模块 mock */
import { mockGetUploadWarningInfoData, mockGetWarningInfoData } from './pools/warningInfoData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 实时分析告警列表分页
'GET /api/warning_info_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetWarningInfoData,
data: { ...mockGetWarningInfoData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 离线分析告警列表分页
'GET /api/upload_warning_info_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetUploadWarningInfoData,
data: { ...mockGetUploadWarningInfoData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -0,0 +1,30 @@
/**告警规则模块 mock */
import { mockGetUploadWarningRuleData, mockGetWarningRuleData } from './pools/warningRuleData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 实时分析告警规则分页
'GET /api/warning_rule_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetWarningRuleData,
data: { ...mockGetWarningRuleData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 离线分析告警规则分页
'GET /api/upload_warning_rule_mock/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetUploadWarningRuleData,
data: { ...mockGetUploadWarningRuleData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -0,0 +1,133 @@
{
"name": "ant-design-pro",
"version": "6.0.0",
"private": true,
"description": "An out-of-box UI solution for enterprise applications",
"scripts": {
"analyze": "cross-env ANALYZE=1 max build",
"build": "max 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": "max setup",
"jest": "jest",
"lint": "npm run lint:js && 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 ",
"lint:js": "eslint --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src",
"lint:prettier": "prettier -c --write \"**/**.{js,jsx,tsx,ts,less,md,json}\" --end-of-line auto",
"openapi": "max openapi",
"prepare": "husky install",
"prettier": "prettier -c --write \"**/**.{js,jsx,tsx,ts,less,md,json}\"",
"preview": "npm run build && max preview --port 8020",
"record": "cross-env NODE_ENV=development REACT_APP_ENV=test max record --scene=login",
"serve": "umi-serve",
"start": "cross-env UMI_ENV=dev max dev",
"start:dev": "cross-env REACT_APP_ENV=dev MOCK=none UMI_ENV=dev max dev",
"start:no-mock": "cross-env MOCK=none UMI_ENV=dev max dev",
"start:pre": "cross-env REACT_APP_ENV=pre UMI_ENV=dev max dev",
"start:test": "cross-env REACT_APP_ENV=test MOCK=none UMI_ENV=dev max dev",
"test": "jest",
"test:coverage": "npm run jest -- --coverage",
"test:update": "npm run jest -- -u",
"tsc": "tsc --noEmit"
},
"lint-staged": {
"**/*.{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/icons": "^4.8.1",
"@ant-design/pro-components": "^2.6.48",
"@ant-design/use-emotion-css": "^1.0.4",
"@umijs/route-utils": "^2.2.2",
"antd": "^5.13.2",
"antd-style": "^3.6.1",
"classnames": "^2.5.1",
"omit.js": "^2.0.2",
"querystring": "^0.2.1",
"rc-menu": "^9.12.4",
"rc-util": "^5.38.1",
"react": "^18.2.0",
"react-cookies": "^0.1.1",
"react-dom": "^18.2.0",
"react-helmet-async": "^1.3.0"
},
"devDependencies": {
"@ant-design/pro-cli": "^3.3.0",
"@testing-library/react": "^13.4.0",
"@types/classnames": "^2.3.1",
"@types/express": "^4.17.21",
"@types/history": "^4.7.11",
"@types/jest": "^29.5.11",
"@types/lodash": "^4.14.202",
"@types/react": "^18.2.48",
"@types/react-dom": "^18.2.18",
"@types/react-helmet": "^6.1.11",
"@umijs/fabric": "^2.14.1",
"@umijs/lint": "^4.1.1",
"@umijs/max": "^4.1.1",
"autoprefixer": "^10.4.19",
"cross-env": "^7.0.3",
"eslint": "^8.56.0",
"express": "^4.18.2",
"gh-pages": "^3.2.3",
"husky": "^7.0.4",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"lint-staged": "^10.5.4",
"mockjs": "^1.1.0",
"postcss": "^8.4.38",
"postcss-import": "^16.1.0",
"postcss-nested": "^6.0.1",
"prettier": "^2.8.8",
"react-dev-inspector": "^1.9.0",
"swagger-ui-dist": "^4.19.1",
"tailwindcss": "^3.4.1",
"ts-node": "^10.9.2",
"typescript": "^5.3.3",
"umi-presets-pro": "^2.0.3",
"umi-serve": "^1.9.11"
},
"engines": {
"node": ">=12.0.0"
},
"create-umi": {
"ignoreScript": [
"docker*",
"functions*",
"site",
"generateMock"
],
"ignoreDependencies": [
"netlify*",
"serverless"
],
"ignore": [
".dockerignore",
".git",
".github",
".gitpod.yml",
"CODE_OF_CONDUCT.md",
"Dockerfile",
"Dockerfile.*",
"lambda",
"LICENSE",
"netlify.toml",
"README.*.md",
"azure-pipelines.yml",
"docker",
"CNAME",
"create-umi"
]
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

@ -0,0 +1 @@
preview.pro.ant.design

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

@ -0,0 +1,175 @@
<svg width="144" height="124" viewBox="0 0 144 124" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_11373_17262)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M135.941 73.9082C135.962 74.3013 135.713 74.6983 135.195 74.9983L73.8058 110.521C72.8086 111.098 71.1919 111.098 70.1947 110.521L8.80578 74.9983C8.32713 74.7214 8.07823 74.3618 8.05908 73.9989V75.0437C8.07823 75.4066 8.32713 75.7662 8.80578 76.0431L70.1947 111.565C71.1919 112.143 72.8086 112.143 73.8058 111.565L135.195 76.0431C135.713 75.7431 135.962 75.3461 135.941 74.953V73.9082Z" fill="#0030DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.05881 73.9984C8.03807 73.6053 8.28696 73.2083 8.80551 72.9082L70.1944 37.3859C71.1916 36.8089 72.8083 36.8089 73.8055 37.3859L135.194 72.9082C135.673 73.1852 135.922 73.5448 135.941 73.9076V74.9524C135.922 74.5896 135.673 74.23 135.194 73.953L73.8055 38.4307C72.8083 37.8536 71.1916 37.8536 70.1944 38.4307L8.80551 73.953C8.28696 74.2531 8.03807 74.6501 8.05881 75.0432V73.9984Z" fill="#0030DC"/>
<g filter="url(#filter1_i_11373_17262)">
<rect width="75.0976" height="75.0976" rx="2" transform="matrix(0.86554 0.50084 -0.86554 0.50084 72 36.3418)" fill="url(#paint0_linear_11373_17262)"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M119.534 73.9785C119.549 74.2708 119.364 74.5659 118.979 74.7889L73.3424 101.196C72.6011 101.625 71.3992 101.625 70.6579 101.196L25.0214 74.7889C24.6656 74.583 24.4805 74.3157 24.4663 74.046V74.8227C24.4805 75.0924 24.6656 75.3597 25.0214 75.5656L70.6579 101.973C71.3992 102.402 72.6011 102.402 73.3424 101.973L118.979 75.5656C119.364 75.3426 119.549 75.0474 119.534 74.7552V73.9785Z" fill="#F5F5F5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.4662 74.0453C24.4508 73.7531 24.6358 73.458 25.0213 73.2349L70.6578 46.8276C71.3991 46.3986 72.601 46.3986 73.3423 46.8276L118.979 73.2349C119.335 73.4408 119.52 73.7081 119.534 73.9778V74.7545C119.52 74.4848 119.335 74.2175 118.979 74.0116L73.3423 47.6043C72.601 47.1753 71.3991 47.1753 70.6578 47.6043L25.0213 74.0116C24.6358 74.2346 24.4508 74.5298 24.4662 74.822V74.0453Z" fill="#F5F5F5"/>
<path d="M71.1345 46.5516C71.6125 46.275 72.3875 46.275 72.8655 46.5516L119.023 73.2602C119.74 73.6751 119.74 74.3478 119.023 74.7627L72.8655 101.471C72.3875 101.748 71.6125 101.748 71.1345 101.471L24.9773 74.7627C24.2603 74.3478 24.2603 73.6751 24.9773 73.2602L71.1345 46.5516Z" fill="url(#paint1_linear_11373_17262)"/>
<g filter="url(#filter2_f_11373_17262)">
<rect width="48.8536" height="48.8536" rx="2" transform="matrix(0.86554 0.50084 -0.86554 0.50084 72 49.543)" fill="url(#paint2_linear_11373_17262)"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M113.445 55.541C113.466 55.9341 113.217 56.3311 112.698 56.6312L74.0246 79.0095C73.0275 79.5865 71.4106 79.5865 70.4135 79.0095L31.7398 56.6312C31.2612 56.3542 31.0123 55.9946 30.9932 55.6318V66.0795C31.0123 66.4424 31.2612 66.802 31.7398 67.0789L70.4135 89.4572C71.4106 90.0342 73.0275 90.0342 74.0246 89.4572L112.698 67.0789C113.217 66.7789 113.466 66.3819 113.445 65.9888V55.541Z" fill="url(#paint3_linear_11373_17262)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.9929 55.6317C30.9722 55.2385 31.2211 54.8416 31.7396 54.5415L70.4132 32.1632C71.4104 31.5862 73.0271 31.5862 74.0243 32.1632L112.698 54.5415C113.177 54.8185 113.425 55.178 113.445 55.5409V65.9887C113.425 65.6258 113.177 65.2662 112.698 64.9893L74.0243 42.611C73.0271 42.034 71.4104 42.034 70.4132 42.611L31.7396 64.9893C31.2211 65.2893 30.9722 65.6863 30.9929 66.0794V55.6317Z" fill="url(#paint4_linear_11373_17262)"/>
<g filter="url(#filter3_ii_11373_17262)">
<rect width="48.8536" height="48.8536" rx="2" transform="matrix(0.86554 0.50084 -0.86554 0.50084 72.2188 31.1191)" fill="url(#paint5_linear_11373_17262)"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M103.257 54.0586C103.278 54.4517 103.029 54.8487 102.51 55.1487L73.6212 71.8651C72.624 72.4422 71.0073 72.4422 70.0101 71.8651L41.1212 55.1487C40.6426 54.8718 40.3937 54.5122 40.3745 54.1493V55.1941C40.3937 55.557 40.6426 55.9165 41.1212 56.1935L70.0101 72.9099C71.0073 73.4869 72.624 73.4869 73.6212 72.9099L102.51 56.1935C103.029 55.8935 103.278 55.4965 103.257 55.1034V54.0586Z" fill="#0030DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M40.3747 54.1495C40.354 53.7564 40.6029 53.3594 41.1214 53.0593L70.0103 36.3429C71.0075 35.7659 72.6243 35.7659 73.6214 36.3429L102.51 53.0593C102.989 53.3363 103.238 53.6959 103.257 54.0587V55.1035C103.238 54.7406 102.989 54.3811 102.51 54.1041L73.6214 37.3877C72.6243 36.8107 71.0075 36.8107 70.0103 37.3877L41.1214 54.1041C40.6029 54.4041 40.354 54.8011 40.3747 55.1942V54.1495Z" fill="#0030DC"/>
<g filter="url(#filter4_i_11373_17262)">
<rect width="37.5488" height="37.5488" rx="2" transform="matrix(0.86554 0.50084 -0.86554 0.50084 71.8154 35.2988)" fill="url(#paint6_linear_11373_17262)"/>
</g>
<g filter="url(#filter5_i_11373_17262)">
<path d="M71.9355 5V9.1791" stroke="#E80D0D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M88.4645 11.0293L85.7842 14.2307" stroke="#E80D0D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M97.2584 26.2949L93.1519 27.0207" stroke="#E80D0D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M46.6128 26.2949L50.7192 27.0206" stroke="#E80D0D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M55.4072 11.0293L58.0875 14.2307" stroke="#E80D0D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<g filter="url(#filter6_d_11373_17262)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M53.9548 52.0804C53.7592 49.2919 55.4311 46.4882 58.984 44.384C65.8164 40.3376 77.0176 40.4108 84.0025 44.5475C87.3553 46.5332 89.1272 49.0941 89.3078 51.668V52.9757C89.1272 50.4018 87.3553 47.8409 84.0025 45.8552C77.0176 41.7185 65.8164 41.6453 58.984 45.6917C55.4311 47.7959 53.7592 50.5996 53.9548 53.388V52.0804Z" fill="url(#paint7_linear_11373_17262)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M89.308 51.668C89.5037 54.4564 87.8317 57.2602 84.2789 59.3643C77.4464 63.4107 66.2453 63.3375 59.2603 59.2008C55.9076 57.2152 54.1357 54.6542 53.9551 52.0803V53.388C54.1357 55.9619 55.9076 58.5229 59.2603 60.5085C66.2453 64.6452 77.4464 64.7184 84.2789 60.672C87.8317 58.5678 89.5037 55.7641 89.308 52.9757V51.668Z" fill="url(#paint8_linear_11373_17262)"/>
<ellipse cx="14.6989" cy="14.378" rx="14.6989" ry="14.378" transform="matrix(0.860427 0.509574 -0.860427 0.509574 71.3555 37.0566)" fill="url(#paint9_linear_11373_17262)"/>
</g>
<g filter="url(#filter7_ii_11373_17262)">
<path d="M71.6312 15.4473C63.5711 15.4473 57.0371 22.1519 57.0371 30.4224V52.3091H57.0797C57.0515 52.4992 57.0371 52.6912 57.0371 52.885C57.0371 57.0203 63.5711 60.3726 71.6312 60.3726C79.6913 60.3726 86.2254 57.0203 86.2254 52.885C86.2254 52.6912 86.211 52.4992 86.1828 52.3091H86.2254V30.4224C86.2254 22.1519 79.6913 15.4473 71.6312 15.4473Z" fill="url(#paint10_linear_11373_17262)" fill-opacity="0.6"/>
</g>
<path d="M76.7166 33.1836H68.85L64.334 45.156H68.413L64.771 55.0842L75.5512 41.3598H71.1808L76.7166 33.1836Z" fill="#E80D0D"/>
<path d="M78.7774 31.1191H70.9108L68.8506 33.184H76.7172L78.7774 31.1191Z" fill="#B70505"/>
<path d="M73.2413 39.2954L78.7771 31.1191L76.7169 33.184L71.1812 41.3602L73.2413 39.2954Z" fill="#B70505"/>
<path d="M77.6117 39.2949H73.2413L71.1812 41.3597H75.5515L77.6117 39.2949Z" fill="#B70505"/>
<path d="M66.8312 53.0193L77.6113 39.2949L75.5511 41.3597L64.771 55.0841L66.8312 53.0193Z" fill="#B70505"/>
<path d="M66.3942 43.0918H70.4732L68.413 45.1566H64.334L66.3942 43.0918Z" fill="#E80D0D"/>
</g>
<defs>
<filter id="filter0_d_11373_17262" x="0.0141602" y="0" width="143.972" height="123.998" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="4"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.0431373 0 0 0 0 0.47451 0 0 0 0 1 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11373_17262"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_11373_17262" result="shape"/>
</filter>
<filter id="filter1_i_11373_17262" x="8.01416" y="36.9277" width="127.972" height="74.0508" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-0.2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11373_17262"/>
</filter>
<filter id="filter2_f_11373_17262" x="26.7295" y="46.1289" width="90.541" height="55.7637" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="2" result="effect1_foregroundBlur_11373_17262"/>
</filter>
<filter id="filter3_ii_11373_17262" x="30.9482" y="31.7051" width="82.541" height="47.7637" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-0.5"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11373_17262"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="0.5"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="effect1_innerShadow_11373_17262" result="effect2_innerShadow_11373_17262"/>
</filter>
<filter id="filter4_i_11373_17262" x="40.3296" y="35.8848" width="62.9717" height="36.4395" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-0.2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11373_17262"/>
</filter>
<filter id="filter5_i_11373_17262" x="45.6128" y="4" width="52.6455" height="24.2215" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="0.2"/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11373_17262"/>
</filter>
<filter id="filter6_d_11373_17262" x="49.9395" y="41.3965" width="43.3838" height="30.2637" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.25098 0 0 0 0 0.460706 0 0 0 0 1 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11373_17262"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_11373_17262" result="shape"/>
</filter>
<filter id="filter7_ii_11373_17262" x="57.0371" y="14.4473" width="29.1885" height="46.9258" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11373_17262"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.0584758 0 0 0 0 0.401196 0 0 0 0 0.915278 0 0 0 0.8 0"/>
<feBlend mode="normal" in2="effect1_innerShadow_11373_17262" result="effect2_innerShadow_11373_17262"/>
</filter>
<linearGradient id="paint0_linear_11373_17262" x1="37.5488" y1="0" x2="37.5488" y2="75.0976" gradientUnits="userSpaceOnUse">
<stop stop-color="#48BEFF"/>
<stop offset="1" stop-color="#0775FF"/>
</linearGradient>
<linearGradient id="paint1_linear_11373_17262" x1="96.1605" y1="60.0311" x2="71.9188" y2="101.925" gradientUnits="userSpaceOnUse">
<stop stop-color="#E3F3FF"/>
<stop offset="1" stop-color="#D2E7F7"/>
</linearGradient>
<linearGradient id="paint2_linear_11373_17262" x1="24.4268" y1="0" x2="24.4268" y2="48.8536" gradientUnits="userSpaceOnUse">
<stop stop-color="#72B7FF"/>
<stop offset="1" stop-color="#B0DCFF"/>
</linearGradient>
<linearGradient id="paint3_linear_11373_17262" x1="29.9355" y1="73.6908" x2="114.869" y2="75.4513" gradientUnits="userSpaceOnUse">
<stop stop-color="#9DD5FF"/>
<stop offset="1" stop-color="#5EB3FF"/>
</linearGradient>
<linearGradient id="paint4_linear_11373_17262" x1="29.934" y1="49.8802" x2="114.867" y2="51.6408" gradientUnits="userSpaceOnUse">
<stop stop-color="#9DD5FF"/>
<stop offset="1" stop-color="#5EB3FF"/>
</linearGradient>
<linearGradient id="paint5_linear_11373_17262" x1="24.4268" y1="0" x2="24.4268" y2="48.8536" gradientUnits="userSpaceOnUse">
<stop stop-color="#B5DFFF"/>
<stop offset="1" stop-color="#BFE4FF"/>
</linearGradient>
<linearGradient id="paint6_linear_11373_17262" x1="18.7744" y1="0" x2="18.7744" y2="37.5488" gradientUnits="userSpaceOnUse">
<stop stop-color="#45BBFF"/>
<stop offset="1" stop-color="#0977FF"/>
</linearGradient>
<linearGradient id="paint7_linear_11373_17262" x1="55.1405" y1="48.8816" x2="88.5801" y2="50.9804" gradientUnits="userSpaceOnUse">
<stop stop-color="#EAFAFF"/>
<stop offset="1" stop-color="#E6E6E6"/>
</linearGradient>
<linearGradient id="paint8_linear_11373_17262" x1="55.1562" y1="59.153" x2="88.5957" y2="61.2519" gradientUnits="userSpaceOnUse">
<stop stop-color="#EAFAFF"/>
<stop offset="1" stop-color="#E6E6E6"/>
</linearGradient>
<linearGradient id="paint9_linear_11373_17262" x1="22.9001" y1="4.40642" x2="12.0327" y2="27.6969" gradientUnits="userSpaceOnUse">
<stop stop-color="#B5DFFF"/>
<stop offset="1" stop-color="#BEE3FF"/>
</linearGradient>
<linearGradient id="paint10_linear_11373_17262" x1="71.6312" y1="15.4473" x2="71.6312" y2="60.3726" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C24FF"/>
<stop offset="1" stop-color="#0473FF"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.00016 10.9993C10.5775 10.9993 12.6668 8.91001 12.6668 6.33268C12.6668 3.75535 10.5775 1.66602 8.00016 1.66602C5.42283 1.66602 3.3335 3.75535 3.3335 6.33268C3.3335 8.91001 5.42283 10.9993 8.00016 10.9993Z" stroke="#004FB2" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 8.33398C9.10457 8.33398 10 7.43855 10 6.33398C10 5.22941 9.10457 4.33398 8 4.33398C6.89543 4.33398 6 5.22941 6 6.33398C6 7.43855 6.89543 8.33398 8 8.33398Z" stroke="#004FB2" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.6665 10.334L3.6665 14.334H12.3332L10.3332 10.334" stroke="#004FB2" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 806 B

@ -0,0 +1,14 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11323_63921)">
<path d="M3 3.33398V14.6673H13V3.33398H3Z" stroke="#E80D0D" stroke-width="1.2" stroke-linejoin="round"/>
<path d="M6.6665 6.66602V10.9993" stroke="#E80D0D" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.3335 6.66602V10.9993" stroke="#E80D0D" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.3335 3.33398H14.6668" stroke="#E80D0D" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.3335 3.33398L6.42983 1.33398H9.59253L10.6668 3.33398H5.3335Z" stroke="#E80D0D" stroke-width="1.2" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_11323_63921">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 851 B

@ -0,0 +1,9 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.6665 1.33398H3.33317C2.96498 1.33398 2.6665 1.63246 2.6665 2.00065V14.0007C2.6665 14.3688 2.96498 14.6673 3.33317 14.6673H12.6665C13.0347 14.6673 13.3332 14.3688 13.3332 14.0007V2.00065C13.3332 1.63246 13.0347 1.33398 12.6665 1.33398Z" stroke="#004FB2" stroke-width="1.2" stroke-linejoin="round"/>
<path d="M7 4.66602H11" stroke="#004FB2" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7 8H11" stroke="#004FB2" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7 11.334H11" stroke="#004FB2" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.00016 5.33333C5.36836 5.33333 5.66683 5.03487 5.66683 4.66667C5.66683 4.29847 5.36836 4 5.00016 4C4.63196 4 4.3335 4.29847 4.3335 4.66667C4.3335 5.03487 4.63196 5.33333 5.00016 5.33333Z" fill="#004FB2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.00016 8.66732C5.36836 8.66732 5.66683 8.36885 5.66683 8.00065C5.66683 7.63245 5.36836 7.33398 5.00016 7.33398C4.63196 7.33398 4.3335 7.63245 4.3335 8.00065C4.3335 8.36885 4.63196 8.66732 5.00016 8.66732Z" fill="#004FB2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.00016 11.9993C5.36836 11.9993 5.66683 11.7009 5.66683 11.3327C5.66683 10.9645 5.36836 10.666 5.00016 10.666C4.63196 10.666 4.3335 10.9645 4.3335 11.3327C4.3335 11.7009 4.63196 11.9993 5.00016 11.9993Z" fill="#004FB2"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,24 @@
<svg width="64" height="24" viewBox="0 0 64 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_3180_54416" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="64" height="24">
<rect width="64" height="24" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_3180_54416)">
<path d="M14.039 4.05812L11.9366 4.49908C11.8873 4.51252 11.8707 4.57396 11.9072 4.6098L13.5648 6.2674C13.6006 6.30324 13.6627 6.28724 13.6755 6.23796L14.1203 4.1394C14.1337 4.09012 14.0883 4.04532 14.039 4.05812Z" fill="#E42F2F"/>
<path d="M15.1781 2.93749L12.133 3.75349C12.0972 3.76309 12.0856 3.80789 12.1112 3.83413L14.3404 6.06325C14.3666 6.08949 14.4114 6.07733 14.421 6.04149L15.237 2.99637C15.2466 2.96053 15.214 2.92789 15.1781 2.93749Z" fill="#FAEC18"/>
<path d="M21.4489 12.7755L17.8688 9.19532L16.4736 7.80013C16.3801 7.70669 16.2284 7.70669 16.1344 7.80013L10.0608 13.8737C9.9494 13.9851 9.76828 13.9851 9.65692 13.8737L8.0006 12.2174C7.88924 12.106 7.88924 11.9249 8.0006 11.8136L13.0803 6.73388C13.1737 6.64044 13.1737 6.48877 13.0803 6.39469L11.7017 5.01612C11.6083 4.92268 11.4566 4.92268 11.3625 5.01612L4.47804 11.9019C4.3846 11.9953 4.3846 12.147 4.47804 12.2411L8.10108 15.8641L9.49628 17.2593C9.58972 17.3528 9.7414 17.3528 9.83548 17.2593L16.1657 10.9291C16.2771 10.8177 16.4582 10.8177 16.5696 10.9291L18.2259 12.5854C18.3372 12.6968 18.3372 12.8779 18.2259 12.9892L11.8956 19.3195C11.8022 19.4129 11.8022 19.5646 11.8956 19.6587L13.2313 20.9944C13.3248 21.0878 13.4764 21.0878 13.5705 20.9944L21.4496 13.1153C21.5424 13.0206 21.5424 12.8689 21.4489 12.7755Z" fill="#154DDD"/>
<path d="M33.2839 6.32767H32.0116V5.51871H29.5962V6.21951H28.3239V5.51871H26.1569L26.0596 4.41919H28.3239V3.58911H29.5962V4.41919H32.0116V3.58911H33.2839V4.41919H35.6884V5.51871H33.2839V6.32767ZM26.0596 11.0611L27.0087 8.64575H28.2164L27.3217 11.0611H26.0596ZM33.8445 11.6109C33.7581 12.441 33.2193 12.9587 32.3137 13.0125C31.785 13.0554 30.9441 12.9907 30.2433 12.8723L29.9629 11.8048C30.5882 11.9232 31.3217 11.9776 31.7633 11.945C32.281 11.9232 32.5287 11.6864 32.5613 11.2224C32.6369 10.2842 32.626 9.14111 32.5613 8.24639C32.5505 8.13887 32.5185 8.09535 32.4103 8.09535H30.5127C30.3725 10.6938 29.2621 11.977 26.5985 13.2819L26.2644 12.064C28.162 11.1046 29.0567 9.97247 29.2186 8.09599H26.8468L26.7604 7.01759H29.2404V6.30591H30.5345V7.01759H33.0144C33.5213 7.01759 33.8017 7.32991 33.8445 7.81567C33.8663 8.02047 33.8765 8.21439 33.8874 8.41983H35.0624L35.9252 11.072H34.6209L33.8983 8.65663C33.9629 9.70239 33.9412 10.727 33.8445 11.6109Z" fill="#154DDD"/>
<path d="M39.57 9.79973V9.85349C39.57 10.8884 39.538 11.8913 39.2033 13.2391H37.8555C38.3406 11.5137 38.3515 10.4141 38.3515 9.19557V4.51589C38.3515 4.03077 38.6427 3.76133 39.1604 3.76133H40.8961C41.4139 3.76133 41.7044 4.01989 41.7044 4.51589V12.1716C41.7044 12.7649 41.2948 13.1309 40.6804 13.1745C40.3675 13.1962 40.0443 13.1527 39.8395 13.0989L39.57 11.9885C39.7428 12.0314 39.9905 12.0532 40.1736 12.0532C40.3784 12.0532 40.4865 11.9348 40.4865 11.7511V9.79973H39.57ZM40.4865 4.96902C40.4865 4.90438 40.4436 4.86086 40.379 4.86086H39.6891C39.6244 4.86086 39.5707 4.90374 39.5707 4.96902V6.32773H40.4871V4.96902H40.4865ZM40.4865 7.31973H39.57V8.80773H40.4865V7.31973ZM47.6993 11.8593V12.9805H42.082L41.9745 11.8593H44.3252V9.67046H42.5896L42.4814 8.54917H44.3252V6.53254H43.387C43.2897 6.97478 43.1713 7.39525 43.0203 7.79397H41.8343C42.2439 6.65093 42.4596 5.45413 42.4923 4.07429H43.6462C43.6353 4.53765 43.6033 4.99077 43.5598 5.41125H44.3252V3.54565H45.5867V5.41125H47.3659V6.53254H45.5867V8.54917H47.3012V9.67046H45.5867V11.8593H47.6993Z" fill="#154DDD"/>
<path d="M59.5924 11.9886L59.2039 13.3364C56.8212 12.3335 55.3978 11.5143 54.6433 9.9617C53.8887 11.4171 52.4007 12.4846 49.9853 13.3255L49.6404 12.0315C52.3361 10.9748 53.4356 10.0692 53.8023 8.47306H49.9425L49.8241 7.33002H53.9322C53.9431 7.18986 53.9431 7.03882 53.9431 6.88778V5.19498H50.6113L50.5037 4.09546H58.8058V5.19498H55.2577V7.14634V7.32938H59.3869V8.47242H55.3325C55.9482 10.3604 57.5329 11.2231 59.5924 11.9886Z" fill="#154DDD"/>
<path d="M25.8777 18.3961L26.5938 18.3277C26.6367 18.5632 26.7244 18.7366 26.8562 18.8467C26.9881 18.9574 27.166 19.0125 27.3894 19.0125C27.6262 19.0125 27.8054 18.9632 27.925 18.8653C28.0454 18.7667 28.1055 18.6521 28.1055 18.5203C28.1055 18.4358 28.0799 18.3641 28.0294 18.3046C27.9788 18.2451 27.8905 18.1939 27.7644 18.1498C27.678 18.1203 27.4815 18.0685 27.175 17.9936C26.7801 17.8976 26.5036 17.7798 26.3442 17.6403C26.1202 17.4438 26.0082 17.2038 26.0082 16.9209C26.0082 16.7392 26.0607 16.5689 26.1663 16.4102C26.2719 16.2515 26.423 16.1312 26.6214 16.048C26.8198 15.9654 27.0585 15.9238 27.3388 15.9238C27.7964 15.9238 28.1407 16.0224 28.3724 16.2189C28.6041 16.4153 28.725 16.6777 28.7366 17.0061L28.0006 17.0381C27.9692 16.8544 27.9014 16.7226 27.7977 16.6419C27.694 16.5613 27.5385 16.5216 27.3311 16.5216C27.1174 16.5216 26.9497 16.5645 26.8287 16.6509C26.7506 16.7059 26.7116 16.7801 26.7116 16.8729C26.7116 16.9574 26.7481 17.0298 26.821 17.0899C26.9138 17.1661 27.1391 17.2461 27.4975 17.3286C27.8559 17.4112 28.1202 17.497 28.2924 17.5859C28.4646 17.6749 28.5983 17.7958 28.695 17.9488C28.7922 18.1024 28.8402 18.2918 28.8402 18.5178C28.8402 18.7226 28.782 18.9145 28.6662 19.0931C28.5503 19.2717 28.3858 19.4048 28.174 19.4918C27.9615 19.5789 27.6972 19.6224 27.3804 19.6224C26.9196 19.6224 26.5657 19.5181 26.3186 19.3094C26.0735 19.1001 25.9263 18.7961 25.8777 18.3961Z" fill="#154DDD"/>
<path d="M29.3547 15.9854H30.0907V17.9207C30.0907 18.2279 30.0997 18.427 30.1183 18.5178C30.1496 18.6644 30.2245 18.7815 30.3435 18.8698C30.4619 18.9582 30.6239 19.0029 30.8299 19.0029C31.0386 19.0029 31.196 18.9614 31.3023 18.8775C31.4085 18.7937 31.4725 18.6913 31.4936 18.569C31.5154 18.4474 31.5263 18.2445 31.5263 17.9623V15.9854H32.2623V17.8625C32.2623 18.2913 32.2424 18.5946 32.2027 18.7719C32.1631 18.9492 32.0895 19.0983 31.9826 19.2206C31.8757 19.3428 31.7323 19.4394 31.5538 19.5118C31.3746 19.5841 31.141 19.6199 30.8523 19.6199C30.5042 19.6199 30.2399 19.5802 30.06 19.5015C29.8802 19.4228 29.7381 19.3204 29.6338 19.1943C29.5295 19.0682 29.4603 18.9364 29.4271 18.7981C29.3791 18.5933 29.3547 18.2913 29.3547 17.8913V15.9854Z" fill="#154DDD"/>
<path d="M32.9363 19.559V15.9858H34.1177C34.5651 15.9858 34.8569 16.0038 34.9932 16.0396C35.2019 16.0934 35.3772 16.2098 35.518 16.389C35.6588 16.5689 35.7292 16.8006 35.7292 17.0847C35.7292 17.3042 35.6889 17.4886 35.6076 17.6383C35.5264 17.7881 35.4233 17.9052 35.2979 17.9903C35.1724 18.0754 35.0457 18.1318 34.9164 18.1599C34.7404 18.1938 34.4864 18.2111 34.1529 18.2111H33.6729V19.559H32.9363ZM33.6729 16.59V17.6038H34.0755C34.3654 17.6038 34.5593 17.5852 34.6572 17.5474C34.7552 17.5103 34.832 17.4514 34.887 17.3721C34.9427 17.2927 34.9702 17.1999 34.9702 17.0943C34.9702 16.9644 34.9312 16.8569 34.8531 16.7724C34.775 16.6879 34.6764 16.6348 34.5574 16.6137C34.4697 16.5977 34.2931 16.5894 34.0275 16.5894H33.6729V16.59Z" fill="#154DDD"/>
<path d="M36.2317 19.559V15.9858H38.935V16.5906H36.9677V17.383H38.7981V17.9852H36.9677V18.958H39.0048V19.5602H36.2317V19.559Z" fill="#154DDD"/>
<path d="M39.5295 19.559V15.9858H41.079C41.4687 15.9858 41.7516 16.0178 41.9283 16.0818C42.1049 16.1458 42.2463 16.2604 42.3519 16.4242C42.4575 16.5881 42.5113 16.7762 42.5113 16.9874C42.5113 17.2556 42.4307 17.477 42.27 17.6518C42.1094 17.8265 41.8687 17.9366 41.5487 17.982C41.7081 18.0729 41.8393 18.1727 41.943 18.2815C42.0467 18.3903 42.1862 18.5836 42.3622 18.8614L42.8076 19.5583H41.927L41.3945 18.7807C41.2057 18.503 41.0764 18.3276 41.0067 18.2553C40.9369 18.183 40.8633 18.1337 40.7852 18.1068C40.7071 18.0799 40.5836 18.0665 40.4147 18.0665H40.2655V19.5583H39.5295V19.559ZM40.2662 17.4969H40.8108C41.1641 17.4969 41.3843 17.4822 41.4726 17.4527C41.5609 17.4233 41.6294 17.3734 41.6787 17.3017C41.7279 17.23 41.7535 17.141 41.7535 17.0335C41.7535 16.9132 41.7209 16.8159 41.655 16.7423C41.5891 16.6687 41.4969 16.6214 41.3779 16.6022C41.3183 16.5938 41.1391 16.59 40.8409 16.59H40.2662V17.4969Z" fill="#154DDD"/>
<path d="M43.9417 19.559L42.6387 15.9858H43.4368L44.3596 18.6303L45.2524 15.9858H46.0332L44.7276 19.559H43.9417Z" fill="#154DDD"/>
<path d="M46.2847 19.559V15.9858H47.0207V19.559H46.2847Z" fill="#154DDD"/>
<path d="M47.4341 18.3961L48.1502 18.3277C48.1931 18.5632 48.2808 18.7366 48.4126 18.8467C48.5445 18.9574 48.7224 19.0125 48.9464 19.0125C49.1832 19.0125 49.3618 18.9632 49.4821 18.8653C49.6024 18.7667 49.6626 18.6521 49.6626 18.5203C49.6626 18.4358 49.637 18.3641 49.5864 18.3046C49.5358 18.2451 49.4475 18.1939 49.3214 18.1498C49.235 18.1203 49.0386 18.0685 48.732 17.9936C48.3371 17.8976 48.0606 17.7798 47.9013 17.6403C47.6773 17.4438 47.5653 17.2038 47.5653 16.9209C47.5653 16.7392 47.6178 16.5689 47.7234 16.4102C47.8283 16.2515 47.98 16.1312 48.1784 16.048C48.3762 15.9654 48.6155 15.9238 48.8958 15.9238C49.3534 15.9238 49.6978 16.0224 49.9294 16.2189C50.1605 16.4153 50.2821 16.6777 50.2936 17.0061L49.5576 17.0381C49.5262 16.8544 49.4584 16.7226 49.3547 16.6419C49.251 16.5613 49.0955 16.5216 48.8882 16.5216C48.6744 16.5216 48.5067 16.5645 48.3858 16.6509C48.3077 16.7059 48.2686 16.7801 48.2686 16.8729C48.2686 16.9574 48.3051 17.0298 48.3781 17.0899C48.4709 17.1661 48.6962 17.2461 49.0546 17.3286C49.413 17.4112 49.6773 17.497 49.8494 17.5859C50.0216 17.6749 50.1554 17.7958 50.252 17.9488C50.3493 18.1024 50.3973 18.2918 50.3973 18.5178C50.3973 18.7226 50.339 18.9145 50.2232 19.0931C50.1074 19.2717 49.9429 19.4048 49.731 19.4918C49.5186 19.5789 49.2542 19.6224 48.9374 19.6224C48.4766 19.6224 48.1227 19.5181 47.8757 19.3094C47.6293 19.1001 47.4821 18.7961 47.4341 18.3961Z" fill="#154DDD"/>
<path d="M50.8933 19.559V15.9858H51.6293V19.559H50.8933Z" fill="#154DDD"/>
<path d="M52.0798 17.7939C52.0798 17.4298 52.1355 17.1245 52.2462 16.8774C52.3288 16.6957 52.4421 16.5318 52.5854 16.3872C52.7288 16.2425 52.8862 16.135 53.0565 16.0653C53.2837 15.9712 53.5454 15.9238 53.8424 15.9238C54.3794 15.9238 54.8094 16.087 55.132 16.4141C55.4546 16.7405 55.6158 17.1949 55.6158 17.7766C55.6158 18.3533 55.4558 18.8051 55.1358 19.1309C54.8158 19.4566 54.3877 19.6198 53.8526 19.6198C53.3106 19.6198 52.8792 19.4579 52.5592 19.1334C52.2398 18.8096 52.0798 18.3629 52.0798 17.7939ZM52.8382 17.7696C52.8382 18.1741 52.9336 18.4813 53.1243 18.6899C53.315 18.8985 53.557 19.0029 53.8507 19.0029C54.1445 19.0029 54.3851 18.8992 54.5733 18.6918C54.7614 18.4845 54.8555 18.1741 54.8555 17.7593C54.8555 17.3497 54.764 17.0445 54.581 16.8429C54.3979 16.6413 54.1547 16.5408 53.8507 16.5408C53.5474 16.5408 53.3029 16.6425 53.1173 16.8467C52.931 17.0509 52.8382 17.3587 52.8382 17.7696Z" fill="#154DDD"/>
<path d="M56.0967 19.559V15.9858H56.8128L58.3053 18.3724V15.9858H58.9895V19.559H58.2509L56.7808 17.2287V19.559H56.0967Z" fill="#154DDD"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7012 14.2313H2.24006C1.53972 14.2313 0.966797 13.6584 0.966797 12.958V4.6805C0.966797 3.98016 1.53972 3.40636 2.24094 3.40636H4.81911L3.99135 1.97405C3.94809 1.90336 3.91951 1.82469 3.90732 1.74272C3.89514 1.66074 3.89959 1.57716 3.92043 1.49695C3.94126 1.41674 3.97804 1.34155 4.02857 1.27586C4.07911 1.21018 4.14236 1.15535 4.21455 1.11466C4.37272 1.01888 4.53264 1.01888 4.69169 1.05051C4.85074 1.08302 4.97815 1.21044 5.07393 1.33785L6.18815 3.27982C6.19663 3.29678 6.2051 3.31146 6.21297 3.32508C6.23447 3.36231 6.25142 3.39168 6.25142 3.43799H9.62658C9.62658 3.39121 9.64388 3.36172 9.66604 3.32394C9.67385 3.31064 9.68226 3.2963 9.69073 3.27982L10.8366 1.30534C10.8757 1.23272 10.9302 1.16948 10.9962 1.12002C11.0622 1.07055 11.1381 1.03604 11.2188 1.01888C11.377 0.987243 11.5686 0.987243 11.696 1.08302C11.855 1.17792 11.9508 1.30534 11.9824 1.46439C12.0141 1.62431 12.0141 1.815 11.9192 1.94241L11.0914 3.37472H13.7012C14.4024 3.37472 14.9754 3.94853 14.9754 4.64887V12.9264C14.9754 13.6584 14.4024 14.2313 13.7012 14.2313ZM8.92288 9.87357C8.85829 9.8461 8.78893 9.83163 8.71875 9.83097C8.64858 9.83032 8.57896 9.8435 8.51388 9.86976C8.44879 9.89602 8.38952 9.93485 8.33945 9.98402L7.91239 10.4032L7.49324 9.97523C7.44403 9.92515 7.38543 9.88525 7.32079 9.85782C7.25616 9.83038 7.18675 9.81595 7.11654 9.81534C7.04632 9.81472 6.97668 9.82795 6.91157 9.85425C6.84647 9.88056 6.78718 9.91943 6.7371 9.96864C6.68702 10.0179 6.64712 10.0765 6.61969 10.1411C6.59225 10.2057 6.57782 10.2751 6.57721 10.3453C6.57597 10.4872 6.63112 10.6236 6.73051 10.7248L7.14966 11.1518L6.72172 11.5719C6.67164 11.621 6.63173 11.6796 6.60428 11.7441C6.57682 11.8087 6.56235 11.8781 6.5617 11.9483C6.56105 12.0184 6.57422 12.088 6.60047 12.1531C6.62672 12.2182 6.66554 12.2775 6.71469 12.3276C6.76385 12.3776 6.8224 12.4176 6.88698 12.445C6.95156 12.4725 7.02092 12.4869 7.09109 12.4876C7.16126 12.4882 7.23088 12.4751 7.29596 12.4488C7.36104 12.4226 7.42031 12.3838 7.47039 12.3346L7.89833 11.9146L8.31748 12.3425C8.41676 12.4436 8.55215 12.5012 8.69387 12.5025C8.8356 12.5038 8.97204 12.4488 9.07318 12.3495C9.17432 12.2503 9.23189 12.1149 9.23321 11.9731C9.23452 11.8314 9.17949 11.695 9.08021 11.5938L8.66106 11.1659L9.089 10.7467C9.13909 10.6976 9.17901 10.6391 9.20648 10.5745C9.23395 10.5099 9.24842 10.4405 9.24907 10.3704C9.24973 10.3002 9.23654 10.2306 9.21029 10.1655C9.18402 10.1004 9.14432 10.0411 9.09515 9.99105C9.046 9.94095 8.98746 9.90103 8.92288 9.87357ZM11.0679 7.43398C11.1219 7.47886 11.1842 7.51268 11.2513 7.53348C11.3183 7.55429 11.3889 7.56168 11.4588 7.55523C11.5287 7.54878 11.5967 7.52863 11.6588 7.49591C11.721 7.4632 11.776 7.41856 11.8209 7.36456C11.8658 7.31055 11.8996 7.24823 11.9204 7.18116C11.9412 7.11409 11.9486 7.04358 11.9422 6.97365C11.9357 6.90372 11.9156 6.83575 11.8829 6.77361C11.8502 6.71147 11.8055 6.65638 11.7515 6.61149C7.62944 3.17921 4.06008 6.60622 4.02493 6.64049C3.92356 6.73977 3.86577 6.87526 3.86429 7.01714C3.8628 7.15903 3.91775 7.29569 4.01702 7.39707C4.1163 7.49845 4.25179 7.55623 4.39368 7.55772C4.53556 7.5592 4.67223 7.50426 4.7736 7.40498C4.89135 7.29074 7.69974 4.63086 11.0679 7.43398ZM5.14784 8.13218C5.04583 8.22981 4.98669 8.36391 4.9834 8.50508C4.9801 8.64624 5.03292 8.78296 5.13027 8.88524C5.228 8.98778 5.36235 9.04746 5.50395 9.05125C5.64555 9.05504 5.7829 9.00262 5.88597 8.90545C5.95714 8.84043 7.62583 7.31673 9.85163 8.94939C9.96583 9.03317 10.1086 9.06816 10.2486 9.04665C10.3886 9.02515 10.5143 8.94891 10.5981 8.83471C10.6819 8.72052 10.7169 8.57772 10.6954 8.43773C10.6739 8.29774 10.5976 8.17114 10.4834 8.08736C8.11264 6.34838 5.95802 7.35627 5.14784 8.13218Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.66667 1.33301C4.66667 0.780723 5.11438 0.333008 5.66667 0.333008H10.3333C10.8856 0.333008 11.3333 0.780723 11.3333 1.33301C11.3333 1.88529 10.8856 2.33301 10.3333 2.33301H5.66667C5.11438 2.33301 4.66667 1.88529 4.66667 1.33301Z" fill="white"/>
<path d="M13.3736 2.62558C13.7641 3.0161 13.7641 3.64926 13.3736 4.03979L12.4445 4.96892C13.411 6.03404 14 7.44808 14 8.99967C14 12.3134 11.3137 14.9997 8 14.9997C4.68631 14.9997 2 12.3134 2 8.99967C2 5.68598 4.68631 2.99967 8 2.99967C9.03929 2.99967 10.0169 3.26392 10.8692 3.72889C10.8965 3.69293 10.9266 3.6584 10.9594 3.62558L11.9594 2.62558C12.3499 2.23505 12.9831 2.23505 13.3736 2.62558ZM8.75 5.99967C8.75 5.58546 8.41421 5.24967 8 5.24967C7.58579 5.24967 7.25 5.58546 7.25 5.99967V8.99967C7.25 9.41389 7.58579 9.74967 8 9.74967C8.41421 9.74967 8.75 9.41389 8.75 8.99967V5.99967Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 962 B

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 2.66602V7.99935" stroke="#52C41A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2 8V13.3333" stroke="#52C41A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14 8C14 4.6863 11.3137 2 8 2C6.30483 2 4.77387 2.70299 3.6827 3.83333M2 8C2 11.3137 4.6863 14 8 14C9.61853 14 11.0874 13.3591 12.1667 12.3173" stroke="#52C41A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" version="1.1" viewBox="0 0 200 200"><title>Group 28 Copy 5</title><desc>Created with Sketch.</desc><defs><linearGradient id="linearGradient-1" x1="62.102%" x2="108.197%" y1="0%" y2="37.864%"><stop offset="0%" stop-color="#4285EB"/><stop offset="100%" stop-color="#2EC7FF"/></linearGradient><linearGradient id="linearGradient-2" x1="69.644%" x2="54.043%" y1="0%" y2="108.457%"><stop offset="0%" stop-color="#29CDFF"/><stop offset="37.86%" stop-color="#148EFF"/><stop offset="100%" stop-color="#0A60FF"/></linearGradient><linearGradient id="linearGradient-3" x1="69.691%" x2="16.723%" y1="-12.974%" y2="117.391%"><stop offset="0%" stop-color="#FA816E"/><stop offset="41.473%" stop-color="#F74A5C"/><stop offset="100%" stop-color="#F51D2C"/></linearGradient><linearGradient id="linearGradient-4" x1="68.128%" x2="30.44%" y1="-35.691%" y2="114.943%"><stop offset="0%" stop-color="#FA8E7D"/><stop offset="51.264%" stop-color="#F74A5C"/><stop offset="100%" stop-color="#F51D2C"/></linearGradient></defs><g id="Page-1" fill="none" fill-rule="evenodd" stroke="none" stroke-width="1"><g id="logo" transform="translate(-20.000000, -20.000000)"><g id="Group-28-Copy-5" transform="translate(20.000000, 20.000000)"><g id="Group-27-Copy-3"><g id="Group-25" fill-rule="nonzero"><g id="2"><path id="Shape" fill="url(#linearGradient-1)" d="M91.5880863,4.17652823 L4.17996544,91.5127728 C-0.519240605,96.2081146 -0.519240605,103.791885 4.17996544,108.487227 L91.5880863,195.823472 C96.2872923,200.518814 103.877304,200.518814 108.57651,195.823472 L145.225487,159.204632 C149.433969,154.999611 149.433969,148.181924 145.225487,143.976903 C141.017005,139.771881 134.193707,139.771881 129.985225,143.976903 L102.20193,171.737352 C101.032305,172.906015 99.2571609,172.906015 98.0875359,171.737352 L28.285908,101.993122 C27.1162831,100.824459 27.1162831,99.050775 28.285908,97.8821118 L98.0875359,28.1378823 C99.2571609,26.9692191 101.032305,26.9692191 102.20193,28.1378823 L129.985225,55.8983314 C134.193707,60.1033528 141.017005,60.1033528 145.225487,55.8983314 C149.433969,51.69331 149.433969,44.8756232 145.225487,40.6706018 L108.58055,4.05574592 C103.862049,-0.537986846 96.2692618,-0.500797906 91.5880863,4.17652823 Z"/><path id="Shape" fill="url(#linearGradient-2)" d="M91.5880863,4.17652823 L4.17996544,91.5127728 C-0.519240605,96.2081146 -0.519240605,103.791885 4.17996544,108.487227 L91.5880863,195.823472 C96.2872923,200.518814 103.877304,200.518814 108.57651,195.823472 L145.225487,159.204632 C149.433969,154.999611 149.433969,148.181924 145.225487,143.976903 C141.017005,139.771881 134.193707,139.771881 129.985225,143.976903 L102.20193,171.737352 C101.032305,172.906015 99.2571609,172.906015 98.0875359,171.737352 L28.285908,101.993122 C27.1162831,100.824459 27.1162831,99.050775 28.285908,97.8821118 L98.0875359,28.1378823 C100.999864,25.6271836 105.751642,20.541824 112.729652,19.3524487 C117.915585,18.4685261 123.585219,20.4140239 129.738554,25.1889424 C125.624663,21.0784292 118.571995,14.0340304 108.58055,4.05574592 C103.862049,-0.537986846 96.2692618,-0.500797906 91.5880863,4.17652823 Z"/></g><path id="Shape" fill="url(#linearGradient-3)" d="M153.685633,135.854579 C157.894115,140.0596 164.717412,140.0596 168.925894,135.854579 L195.959977,108.842726 C200.659183,104.147384 200.659183,96.5636133 195.960527,91.8688194 L168.690777,64.7181159 C164.472332,60.5180858 157.646868,60.5241425 153.435895,64.7316526 C149.227413,68.936674 149.227413,75.7543607 153.435895,79.9593821 L171.854035,98.3623765 C173.02366,99.5310396 173.02366,101.304724 171.854035,102.473387 L153.685633,120.626849 C149.47715,124.83187 149.47715,131.649557 153.685633,135.854579 Z"/></g><ellipse id="Combined-Shape" cx="100.519" cy="100.437" fill="url(#linearGradient-4)" rx="23.6" ry="23.581"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 373 KiB

@ -0,0 +1,10 @@
<svg width="120" height="49" viewBox="0 0 120 49" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M59.646 26.5912C59.5261 26.589 59.4073 26.5688 59.2939 26.5314C53.1225 24.2727 49.0566 18.4978 49.182 12.1508V6.76007C49.182 6.55381 49.2506 6.35296 49.3777 6.18694C49.5049 6.02092 49.6839 5.89845 49.8886 5.83747C53.1621 4.87746 56.2627 3.43804 59.0812 1.56979C59.2483 1.45945 59.4462 1.40039 59.6488 1.40039C59.8514 1.40039 60.0492 1.45945 60.2163 1.56979C63.0353 3.43743 66.1362 4.87614 69.4101 5.83537C69.8342 5.95923 70.1188 6.33183 70.1188 6.75797V12.1592C70.2442 18.4915 66.1816 24.2727 60.0113 26.5241C59.8945 26.5665 59.7709 26.5892 59.646 26.5912ZM55.4619 9.79809C55.4619 10.9116 55.9032 11.9795 56.6887 12.7669C57.4742 13.5542 58.5395 13.9966 59.6504 13.9966C60.7613 13.9966 61.8266 13.5542 62.6121 12.7669C63.3976 11.9795 63.8389 10.9116 63.8389 9.79809C63.8389 8.68458 63.3976 7.61668 62.6121 6.82931C61.8266 6.04195 60.7613 5.59961 59.6504 5.59961C58.5395 5.59961 57.4742 6.04195 56.6887 6.82931C55.9032 7.61668 55.4619 8.68458 55.4619 9.79809ZM59.4956 15.3945C54.3361 15.3945 52.6689 18.2761 52.6689 18.2761C54.2445 20.5657 59.1743 23.0917 59.6507 23.0917C60.1272 23.0917 65.039 20.6093 66.6306 18.2719C66.4944 18.1275 66.3641 17.9798 66.2332 17.8313C65.1805 16.6375 64.0844 15.3945 59.4956 15.3945Z" fill="white"/>
<path d="M117.086 41.6185V46.5168C117.086 46.7092 117.191 46.8142 117.4 46.8491C117.575 46.8841 117.749 46.8841 117.924 46.8491C118.133 46.8142 118.238 46.7092 118.238 46.5168V44.6449L120 44.9423V47.1116C120 47.8813 119.407 48.4935 118.622 48.5985C117.924 48.686 117.086 48.686 116.405 48.5985C115.62 48.4935 115.027 47.8813 115.027 47.1116V41.6185H113.84V42.8781C113.84 46.2194 112.461 47.7938 109.861 48.9834L109.39 47.3215L104.259 48.2311L103.979 46.3243L109.878 45.2922V46.5168C111.257 45.6071 111.798 44.4875 111.798 42.8081V41.6185H110.28L110.123 39.8692H110.507C111.571 38.6621 111.99 37.8749 112.252 36.5979H110.28C109.931 38.3122 108.779 40.7439 107.383 42.2483L109.826 41.9859V43.8752L104.59 44.4L104.363 42.5807L104.87 42.5282C105.603 41.7935 106.266 40.9713 106.824 40.0441L104.346 40.1666L104.102 38.3472L104.468 38.3297C105.672 36.7028 106.178 35.1459 106.667 33.2391H108.622C108.203 35.1284 107.627 36.8078 106.597 38.2598L107.767 38.2073C108.046 37.56 108.273 36.8953 108.447 36.178H110.245L110.105 34.8485H113.718V33.2041H115.847V34.8485H119.582V36.5979H114.416C114.137 38.0149 113.578 38.9945 112.688 39.8692H116.737L115.568 37.3151H117.871L119.058 39.8867C119.512 40.8838 119.18 41.6185 118.011 41.6185H117.086Z" fill="white"/>
<path d="M99.9131 48.7025L98.3599 44.399H100.541L102.164 48.7025H99.9131ZM89.25 48.7025H87.0161L88.6566 44.399H90.8207L89.25 48.7025ZM95.969 43.5419V46.9356C95.969 48.1777 95.2709 48.8074 94.0667 48.8949C93.1592 48.9649 92.3739 48.9124 91.5362 48.7725L91.0126 46.9706C91.798 47.1106 92.6008 47.163 93.2814 47.1106C93.613 47.0756 93.77 46.8831 93.77 46.5683V43.5419H87.5048L87.1557 41.7925H87.435C89.4419 41.3377 91.1348 40.7429 92.5659 40.0606H88.2029L87.9236 38.3113H88.1156C89.5118 37.9089 91.257 36.7368 92.2517 35.8447H87.2779L87.1383 34.0253H92.7927C96.1261 34.0253 99.1278 34.0428 102.007 33.6055V35.4248C99.4594 35.7922 97.1383 35.8447 94.7124 35.8447C94.0667 36.6669 92.8974 37.629 91.7456 38.3113H95.4629C96.1959 37.769 96.8241 37.1742 97.3652 36.5794H99.983C98.5519 38.7661 96.0213 40.6204 93.0022 41.7925H99.1976L98.4123 39.3784H100.681L101.519 41.9499C101.85 42.9121 101.466 43.5419 100.664 43.5419H95.969Z" fill="white"/>
<path d="M84.5721 46.8649C84.5721 47.9844 83.8565 48.8941 82.6524 48.9116C81.9368 48.9291 80.9595 48.8416 80.0869 48.6842L79.6157 46.8823C80.3312 47.0398 81.1515 47.0923 81.7099 47.0923C82.3033 47.0923 82.4604 46.7599 82.4604 46.2001V33.2373H84.5721V46.8649ZM76.1777 33.7446C77.0154 33.7446 77.5738 34.3044 77.5738 35.1441V38.0656C77.5738 38.9052 77.0154 39.465 76.1777 39.465H71.2911C70.4534 39.465 69.8949 38.9052 69.8949 38.0656V35.1441C69.8949 34.3044 70.4534 33.7446 71.2911 33.7446H76.1777ZM72.2859 35.564C72.1113 35.564 72.0241 35.6514 72.0241 35.8264V37.3833C72.0241 37.5582 72.1113 37.6457 72.2859 37.6457H75.2178C75.3923 37.6457 75.4796 37.5582 75.4796 37.3833V35.8264C75.4796 35.6514 75.3923 35.564 75.2178 35.564H72.2859ZM81.0817 44.5557H79.0223V34.7068H81.0817V44.5557ZM74.1009 40.9695H76.4045C77.3469 40.9695 77.7134 41.4243 77.8007 42.369C77.9403 43.9259 77.9403 45.3604 77.8007 46.8823C77.7134 47.897 76.9455 48.7017 75.7937 48.7892C75.1131 48.8416 74.4499 48.8066 73.7867 48.6492L73.3155 46.8299C73.8391 46.9698 74.4674 47.0223 75.0084 46.9698C75.4272 46.9348 75.6192 46.6549 75.6715 46.2351C75.7763 45.2379 75.7763 44.0834 75.6715 43.0512C75.6541 42.8763 75.5843 42.7888 75.4098 42.7888H73.9263C73.49 45.6053 72.1986 47.4072 69.5459 48.9991L69.0049 46.9698C70.7152 45.8327 71.5005 44.6432 71.8496 42.7888H69.5284L69.3714 40.9695H72.059C72.0764 40.6196 72.0764 40.1998 72.0764 39.8849H74.1358C74.1358 40.1998 74.1183 40.6021 74.1009 40.9695Z" fill="white"/>
<path d="M56.0912 36.4395L52.4961 35.2324V33.4131L56.0912 34.6027V36.4395ZM66.5449 41.0753C66.5449 41.915 65.9341 42.4748 64.9917 42.4748H59.2151C58.2727 42.4748 57.6444 41.915 57.6444 41.0753V35.3199C57.6444 34.4802 58.2727 33.9204 59.2151 33.9204H64.9917C65.9341 33.9204 66.5449 34.4802 66.5449 35.3199V41.0753ZM59.7386 40.393C59.7386 40.5505 59.8608 40.6555 60.0353 40.6555H64.154C64.3285 40.6555 64.4507 40.5505 64.4507 40.393V36.0021C64.4507 35.8447 64.3285 35.7397 64.154 35.7397H60.0353C59.8608 35.7397 59.7386 35.8447 59.7386 36.0021V40.393ZM58.9533 43.6294H61.1523L58.8835 48.9824H56.6322L58.9533 43.6294ZM65.1837 48.9824L63.1069 43.6294H65.3407L67.4873 48.9824H65.1837ZM55.2709 45.1688L57.2256 44.0842V46.3234L53.072 48.685L52.7229 46.5683L53.1243 46.3409C53.3338 45.3612 53.3687 44.4341 53.3687 43.3845V39.5534C53.3687 39.3959 53.2639 39.291 53.1069 39.291H51.99L51.8154 37.4016H54.2064C55.0091 37.4016 55.4454 37.8215 55.4454 38.6087V43.3845C55.4454 44.1017 55.3931 44.6615 55.2709 45.1688Z" fill="white"/>
<path d="M43.2459 36.3162C43.5077 40.5496 45.6194 43.786 50.2267 46.7774L49.6334 48.9991C45.9336 46.7424 43.5077 44.0309 42.2512 40.8645C41.0121 43.9609 38.5688 46.6724 34.7643 48.9991L34.1709 46.7774C39.424 43.5061 41.1168 39.8149 41.1168 35.354V33.2373H43.2808V35.354C43.2808 35.6689 43.2634 36.0013 43.2459 36.3162Z" fill="white"/>
<path d="M25.9863 46.4995H32.5308V48.3888H17.173L16.9636 46.4995H23.7873V42.546H18.3248L18.1503 40.6741H23.7873V37.3154H20.1224C19.4592 38.3475 18.6215 39.1872 17.7315 39.9569L16.7192 37.9101C18.3423 36.5281 19.0229 35.0762 19.2672 33.6067H21.4313C21.344 34.2715 21.2044 34.8837 21.0124 35.4435H23.7873V33.2568H25.9863V35.4435H31.885V37.3154H25.9863V40.6741H31.344V42.546H25.9863V46.4995Z" fill="white"/>
<path d="M12.6702 43.822H8.13264V46.551C8.13264 46.7085 8.23735 46.8134 8.39441 46.8134H12.4084C12.5654 46.8134 12.6702 46.7085 12.6702 46.551V43.822ZM12.6702 42.0726V39.6235C12.6702 39.4661 12.5654 39.3611 12.4084 39.3611H8.39441C8.23735 39.3611 8.13264 39.4661 8.13264 39.6235V42.0726H12.6702ZM11.1693 35.67L10.925 37.5768H13.3682C14.2059 37.5768 14.7644 38.1366 14.7644 38.9763V47.2333C14.7644 48.073 14.2059 48.6328 13.3682 48.6328H7.43455C6.59686 48.6328 6.03839 48.073 6.03839 47.2333V38.9763C6.03839 38.1366 6.59686 37.5768 7.43455 37.5768H8.77836L9.04014 35.67H5.86387L5.68935 33.8506H15.1309V35.67H11.1693ZM2.05934 44.8366V48.9651H0V34.7078C0 34.0256 0.401396 33.6582 1.13438 33.6582H4.363C5.09599 33.6582 5.44503 33.9381 5.49738 34.6378C5.53229 35.0402 5.44503 35.3901 5.35777 35.705L4.34555 39.4136C5.13089 40.4982 5.44503 41.9677 5.44503 43.3147C5.44503 45.0291 4.58988 45.6064 3.28098 45.6763C2.96684 45.6938 2.60035 45.6763 2.28621 45.6239L2.05934 44.8366ZM2.05934 43.962C2.28621 43.9795 2.54799 43.9969 2.75742 43.9969C3.19372 43.9969 3.4555 43.857 3.4555 43.2972C3.4555 42.2126 3.14136 40.9705 2.68761 40.1483C2.51309 39.8335 2.47819 39.5536 2.54799 39.2212L3.42059 35.3376H2.23386C2.11169 35.3376 2.05934 35.3901 2.05934 35.5125V43.962Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

@ -0,0 +1,5 @@
<svg width="42" height="42" xmlns="http://www.w3.org/2000/svg">
<g>
<path fill="#070707" d="m6.717392,13.773912l5.6,0c2.8,0 4.7,1.9 4.7,4.7c0,2.8 -2,4.7 -4.9,4.7l-2.5,0l0,4.3l-2.9,0l0,-13.7zm2.9,2.2l0,4.9l1.9,0c1.6,0 2.6,-0.9 2.6,-2.4c0,-1.6 -0.9,-2.4 -2.6,-2.4l-1.9,0l0,-0.1zm8.9,11.5l2.7,0l0,-5.7c0,-1.4 0.8,-2.3 2.2,-2.3c0.4,0 0.8,0.1 1,0.2l0,-2.4c-0.2,-0.1 -0.5,-0.1 -0.8,-0.1c-1.2,0 -2.1,0.7 -2.4,2l-0.1,0l0,-1.9l-2.7,0l0,10.2l0.1,0zm11.7,0.1c-3.1,0 -5,-2 -5,-5.3c0,-3.3 2,-5.3 5,-5.3s5,2 5,5.3c0,3.4 -1.9,5.3 -5,5.3zm0,-2.1c1.4,0 2.2,-1.1 2.2,-3.2c0,-2 -0.8,-3.2 -2.2,-3.2c-1.4,0 -2.2,1.2 -2.2,3.2c0,2.1 0.8,3.2 2.2,3.2z" class="st0" id="Ant-Design-Pro"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 677 B

@ -0,0 +1,202 @@
/**
* loading 占位
* 解决首次加载时白屏的问题
*/
(function () {
const _root = document.querySelector('#root');
if (_root && _root.innerHTML === '') {
_root.innerHTML = `
<style>
html,
body,
#root {
height: 100%;
margin: 0;
padding: 0;
}
#root {
background-repeat: no-repeat;
background-size: 100% auto;
}
.loading-title {
font-size: 1.1rem;
}
.loading-sub-title {
margin-top: 20px;
font-size: 1rem;
color: #888;
}
.page-loading-warp {
display: flex;
align-items: center;
justify-content: center;
padding: 26px;
}
.ant-spin {
position: absolute;
display: none;
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
color: rgba(0, 0, 0, 0.65);
color: #1890ff;
font-size: 14px;
font-variant: tabular-nums;
line-height: 1.5;
text-align: center;
list-style: none;
opacity: 0;
-webkit-transition: -webkit-transform 0.3s
cubic-bezier(0.78, 0.14, 0.15, 0.86);
transition: -webkit-transform 0.3s
cubic-bezier(0.78, 0.14, 0.15, 0.86);
transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86),
-webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-webkit-font-feature-settings: "tnum";
font-feature-settings: "tnum";
}
.ant-spin-spinning {
position: static;
display: inline-block;
opacity: 1;
}
.ant-spin-dot {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
font-size: 20px;
}
.ant-spin-dot-item {
position: absolute;
display: block;
width: 9px;
height: 9px;
background-color: #1890ff;
border-radius: 100%;
-webkit-transform: scale(0.75);
-ms-transform: scale(0.75);
transform: scale(0.75);
-webkit-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
opacity: 0.3;
-webkit-animation: antspinmove 1s infinite linear alternate;
animation: antSpinMove 1s infinite linear alternate;
}
.ant-spin-dot-item:nth-child(1) {
top: 0;
left: 0;
}
.ant-spin-dot-item:nth-child(2) {
top: 0;
right: 0;
-webkit-animation-delay: 0.4s;
animation-delay: 0.4s;
}
.ant-spin-dot-item:nth-child(3) {
right: 0;
bottom: 0;
-webkit-animation-delay: 0.8s;
animation-delay: 0.8s;
}
.ant-spin-dot-item:nth-child(4) {
bottom: 0;
left: 0;
-webkit-animation-delay: 1.2s;
animation-delay: 1.2s;
}
.ant-spin-dot-spin {
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-animation: antrotate 1.2s infinite linear;
animation: antRotate 1.2s infinite linear;
}
.ant-spin-lg .ant-spin-dot {
width: 32px;
height: 32px;
font-size: 32px;
}
.ant-spin-lg .ant-spin-dot i {
width: 14px;
height: 14px;
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.ant-spin-blur {
background: #fff;
opacity: 0.5;
}
}
@-webkit-keyframes antSpinMove {
to {
opacity: 1;
}
}
@keyframes antSpinMove {
to {
opacity: 1;
}
}
@-webkit-keyframes antRotate {
to {
-webkit-transform: rotate(405deg);
transform: rotate(405deg);
}
}
@keyframes antRotate {
to {
-webkit-transform: rotate(405deg);
transform: rotate(405deg);
}
}
</style>
<div style="
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
min-height: 362px;
">
<div class="page-loading-warp">
<div class="ant-spin ant-spin-lg ant-spin-spinning">
<span class="ant-spin-dot ant-spin-dot-spin">
<i class="ant-spin-dot-item"></i>
<i class="ant-spin-dot-item"></i>
<i class="ant-spin-dot-item"></i>
<i class="ant-spin-dot-item"></i>
</span>
</div>
</div>
<div class="loading-title">
正在加载资源
</div>
<div class="loading-sub-title">
初次加载资源可能需要较多时间 请耐心等待
</div>
</div>
`;
}
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -0,0 +1,28 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-01 11:20:09
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-03 16:23:40
* @FilePath: \uighur-recognition-web2\src\access.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
* @see https://umijs.org/zh-CN/plugins/plugin-access
* */
export default function access() {
// const { currentUser } = initialState ?? {};
// const read_paths = currentUser?.read_paths || []
// const update_paths = currentUser?.update_paths || []
return {
// canReadMenu: read_paths?.includes(history.location.pathname),
canReadMenu: () => {
// return read_paths?.includes(route.path)
return true;
},
canUpdate: () => {
// return update_paths?.includes(path)
return true;
},
};
}

@ -0,0 +1,40 @@
.app_page_wrap {
height: calc(100vh);
padding: 16px 0 16px 14px;
/* TODO 替换整体页面背景图 */
background-color: #ebeff3;
}
.app_page_wrap .ant-pro-layout .ant-pro-layout-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
padding: 0 !important;
background-color: transparent;
padding-inline: 0 !important;
}
.app_page_wrap .page_body {
width: calc(100vw - 160px);
}
.app_page_wrap .page_body .body_nav_bar {
position: absolute;
top: 28px;
right: 40px;
z-index: 999;
min-width: 100px;
height: 50px;
}
.app_page_wrap .page_body .body_nav_bar .avatar_box > img {
width: 40px;
height: 40px;
border-radius: 50%;
}
.ant-pro-layout .ant-pro-layout-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
background-color: transparent;
padding-block: 0;
padding-inline: 0;
}

@ -0,0 +1,48 @@
.app_page_wrap {
height: calc(100vh);
padding: 16px 0 16px 14px;
/* TODO 替换整体页面背景图 */
// background-color: rgb(235, 239, 243);
background-image: url('../public/page_bg.png');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
.ant-pro-layout .ant-pro-layout-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
padding: 0 !important;
background-color: transparent;
padding-inline: 0 !important;
}
.page_body {
width: calc(100vw - 160px);
.body_nav_bar {
position: absolute;
top: 16px;
right: 24px;
z-index: 999;
// background-color: red;
min-width: 100px;
height: 50px;
.avatar_box {
& > img {
width: 40px;
height: 40px;
border-radius: 50%;
}
}
}
}
}
.ant-pro-layout .ant-pro-layout-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
background-color: transparent;
padding-block: 0;
padding-inline: 0;
}

@ -0,0 +1,224 @@
import { AvatarDropdown, AvatarName, MenuBar } from '@/components';
import { postMenuGetMenu } from '@/services/system/Menu';
import { getUserGetUserInfo } from '@/services/system/User';
import fixMenuItemIcon from '@/utils/FixMenuItemIcon';
import { getAllRouteNameTile, replaceMenuWithRoutesData } from '@/utils/common';
import { addLocale } from '@@/plugin-locale';
import type { Settings as LayoutSettings } from '@ant-design/pro-components';
import { SettingDrawer } from '@ant-design/pro-components';
import { MenuDataItem } from '@ant-design/pro-layout';
import { RunTimeLayoutConfig, getLocale, history } from '@umijs/max';
import { is_dev_flag } from '@/origin';
import cookie from 'react-cookies';
import { RequestConfig } from 'umi';
import defaultSettings from '../config/defaultSettings';
import { mockGetMenuData } from '../testData/menuData';
import './app.less';
import zhCN from './locales/zh-CN';
import { errorConfig } from './requestErrorConfig';
const isDev = process.env.NODE_ENV === 'development';
const loginPath = '/user/login';
/**
* @see https://umijs.org/zh-CN/plugins/plugin-initial-state
* */
export async function getInitialState(): Promise<{
settings?: Partial<LayoutSettings>;
currentUser?: API.CurrentUser;
loading?: boolean;
fetchUserInfo?: any;
menuData?: MenuDataItem[];
}> {
// const fetchUserInfo = async () => {
// try {
// const msg = await queryCurrentUser({
// skipErrorHandler: true,
// });
// return msg.data;
// } catch (error) {
// history.push(loginPath);
// }
// return undefined;
// };
// // 如果不是登录页面,执行
// const { location } = history;
// if (location.pathname !== loginPath) {
// const currentUser = await fetchUserInfo();
// return {
// fetchUserInfo,
// currentUser,
// settings: defaultSettings as Partial<LayoutSettings>,
// };
// }
const fetchUserInfo = async () => {
try {
const msg = await getUserGetUserInfo();
return msg.data.userInfo;
} catch (error) {
history.push(loginPath);
}
return undefined;
};
// 如果不是登录页面,执行
const { location } = history;
if (location.pathname !== loginPath && localStorage.getItem('access')) {
const currentUser = await fetchUserInfo();
const menus = is_dev_flag ? await postMenuGetMenu() : mockGetMenuData;
console.log('app_menus', menus.data.routes);
if (getLocale() === 'zh-CN') {
let localData = getAllRouteNameTile(menus.data.routes, '');
let localRes: any = {};
localData.forEach((v) => {
// console.log(v.title,'localData_v')
localRes[`menu${v.name}`] = v.title;
});
console.log(localRes, 'getAllRouteNameTile');
addLocale('zh-CN', localRes, {
momentLocale: 'zh-CN',
antd: zhCN,
});
}
return {
fetchUserInfo,
currentUser,
settings: defaultSettings as Partial<LayoutSettings>,
menuData: replaceMenuWithRoutesData(menus.data.routes),
};
}
return {
fetchUserInfo,
settings: defaultSettings as Partial<LayoutSettings>,
};
}
// ProLayout 支持的api https://procomponents.ant.design/components/layout
export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
return {
actionsRender: () => [],
footerRender: () => undefined,
onPageChange: () => {
const { location } = history;
// 如果没有登录,重定向到 login
if (!initialState?.currentUser && location.pathname !== loginPath) {
history.push(loginPath);
}
},
menuRender: () => undefined,
menuDataRender: () => {
if (initialState?.menuData !== undefined) {
return fixMenuItemIcon(initialState?.menuData || []);
}
},
bgLayoutImgList: [
{
src: 'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/D2LWSqNny4sAAAAAAAAAAAAAFl94AQBr',
left: 85,
bottom: 100,
height: '303px',
},
{
src: 'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/C2TWRpJpiC0AAAAAAAAAAAAAFl94AQBr',
bottom: -68,
right: -45,
height: '303px',
},
{
src: 'https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/F6vSTbj8KpYAAAAAAAAAAAAAFl94AQBr',
bottom: 0,
left: 0,
width: '331px',
},
],
links: [],
// 自定义 403 页面
// unAccessible: <div>unAccessible</div>,
// 增加一个 loading 的状态
childrenRender: (children) => {
// if (initialState?.loading) return <PageLoading />;
return (
<div className="flex app_page_wrap">
<MenuBar menuData={initialState?.menuData}></MenuBar>
<div className="page_body">
<div className="flex items-center justify-between body_nav_bar">
{/* <h5>首页1 {initialState?.currentUser?.userName}</h5> */}
<div>
{initialState?.currentUser?.userName ? (
<AvatarDropdown menu={true}>
<div className="flex items-center cursor-pointer avatar_box">
<img
className="mr-[8px]"
src="https://img2.baidu.com/it/u=1374514083,943518806&fm=253&fmt=auto&app=138&f=PNG?w=500&h=500"
/>
<AvatarName></AvatarName>
</div>
</AvatarDropdown>
) : (
<></>
)}
</div>
</div>
<div className="body_content">
{children}
{isDev && (
<SettingDrawer
disableUrlParams
enableDarkTheme
settings={initialState?.settings}
onSettingChange={(settings) => {
setInitialState((preInitialState) => ({
...preInitialState,
settings,
}));
}}
/>
)}
</div>
</div>
</div>
);
},
...initialState?.settings,
};
};
const csrfAndJwtHeaderInterceptor = (url: string, options: RequestConfig) => {
const csrfHeader = { 'X-CSRFToken': cookie.load('csrftoken') };
let bearerToken = {};
const access = localStorage.getItem('access');
if (access) {
bearerToken = { 'X-Token': `${access}` };
}
let locale = getLocale();
return {
url: `${url}`,
options: {
...options,
interceptors: true,
headers: { ...csrfHeader, ...bearerToken, 'Accept-Language': locale },
},
};
};
const responseHeaderInterceptor = (response: Response) => {
if ('new-token' in response.headers) {
localStorage.setItem('access', (response.headers['new-token'] || '') as string);
window.location.reload();
}
return response;
};
/**
* @name request
* axios ahooks useRequest
* @doc https://umijs.org/docs/max/request#配置
*/
export const request = {
...errorConfig,
requestInterceptors: [csrfAndJwtHeaderInterceptor],
responseInterceptors: [responseHeaderInterceptor],
};

@ -0,0 +1,53 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-16 14:30:15
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-02 16:51:36
* @FilePath: \general-ai-platform-web\src\components\BatchOperation\isBatchDelete.tsx
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { ExclamationCircleOutlined } from '@ant-design/icons';
// import { useIntl } from '@ant-design/pro-components';
import { FormattedMessage, useIntl } from '@umijs/max';
import { Button, Modal } from 'antd';
type IsBatchDeleteProps = {
// eslint-disable-next-line @typescript-eslint/ban-types
deleteApi: Function;
};
const IsBatchDelete: React.FC<IsBatchDeleteProps> = (props) => {
const intl = useIntl();
return (
<Button
danger
onClick={async () => {
Modal.confirm({
icon: <ExclamationCircleOutlined />,
title: intl.formatMessage({
id: 'common.modal.table.delete.title',
defaultMessage: '$$$',
}),
content: intl.formatMessage({
id: 'common.modal.table.delete.content',
defaultMessage: '$$$',
}),
okText: intl.formatMessage({ id: 'common.yes', defaultMessage: '$$$' }),
cancelText: intl.formatMessage({ id: 'common.no', defaultMessage: '$$$' }),
onOk() {
// TODO 未对接批量删除接口
props.deleteApi();
},
onCancel() {
console.log('Cancel');
},
});
}}
>
<FormattedMessage id="pages.searchTable.batchDeletion" defaultMessage="Batch deletion" />
</Button>
);
};
export default IsBatchDelete;

@ -0,0 +1,35 @@
import { GithubOutlined } from '@ant-design/icons';
import { DefaultFooter } from '@ant-design/pro-components';
import React from 'react';
const Footer: React.FC = () => {
return (
<DefaultFooter
style={{
background: 'none',
}}
links={[
{
key: 'Ant Design Pro',
title: 'Ant Design Pro',
href: 'https://pro.ant.design',
blankTarget: true,
},
{
key: 'github',
title: <GithubOutlined />,
href: 'https://github.com/ant-design/ant-design-pro',
blankTarget: true,
},
{
key: 'Ant Design',
title: 'Ant Design',
href: 'https://ant.design',
blankTarget: true,
},
]}
/>
);
};
export default Footer;

@ -0,0 +1,27 @@
import { Dropdown } from 'antd';
import { createStyles } from 'antd-style';
import type { DropDownProps } from 'antd/es/dropdown';
import classNames from 'classnames';
import React from 'react';
const useStyles = createStyles(({ token }) => {
return {
dropdown: {
[`@media screen and (max-width: ${token.screenXS}px)`]: {
width: '100%',
},
},
};
});
export type HeaderDropdownProps = {
overlayClassName?: string;
placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight' | 'bottomCenter';
} & Omit<DropDownProps, 'overlay'>;
const HeaderDropdown: React.FC<HeaderDropdownProps> = ({ overlayClassName: cls, ...restProps }) => {
const { styles } = useStyles();
return <Dropdown overlayClassName={classNames(styles.dropdown, cls)} {...restProps} />;
};
export default HeaderDropdown;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save