feat: 通用算法平台2.0合并首次提交

develop2
donghao 11 months ago
parent 8c79571e1b
commit ef52a7bb74

@ -1,11 +1,7 @@
<!--
* @Author: donghao donghao@supervision.ltd
* @Date: 2023-11-01 13:56:33
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-03-29 17:59:03
* @FilePath: \general-ai-platform-web\.eslintrc.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
module.exports = {
extends: [require.resolve('@umijs/lint/dist/config/eslint')],
globals: {
page: true,
REACT_APP_ENV: true,
},
};

2
.gitignore vendored

@ -9,7 +9,7 @@ _roadhog-api-doc
# production
/dist
/taskDoc
/src/pages/Demo
# misc
.DS_Store

@ -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,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/

@ -1,13 +0,0 @@
FROM circleci/node:latest-browsers
WORKDIR /usr/src/app
RUN npm config set registry https://registry.npmmirror.com
USER root
COPY package.json ./
RUN yarn
COPY ./ ./
RUN npm run test:all
CMD ["npm", "run", "build"]

@ -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)

@ -1,53 +1,139 @@
# General-AI-Platform-Web
通用算法平台前端仓库 develop
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)
### 生成代码调整
* ProFormSelect 选择控件 对应文案使用 common.please_select 默认可以使用 common.please_input
<h1 align="center">Ant Design Pro</h1>
### remark
* 列表筛选表单配置统一使用renderFormItem配置方便个性化处理
* 删除按钮颜色配色 统一将a标签换成Button 设置属性{ type="text" danger}
* 展示抽屉内容时需要有关闭按钮,排版需和谐
* 使用stepForm的时候最后的提交写在最后一步的onfinish里面而不是总的stepForm里
* table操作栏按钮统一使用button合理间距
<div align="center">
An out-of-box UI solution for enterprise applications as a React boilerplate.
### 具体实现
1. 筛选表单区: 列表在columns配置初始数据时需要筛选的表单项统一使用renderFormItem属性基于renderFormItem去配置表单项field, 【searchFormItemProps】属性统一配置自定义业务
{
width="md" // 表单项宽度可以是数字
labelCol={{span: 4}} // 标签布局
wrapperCol={{span: 22}} // 输入控件布局
}
[![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)
2. 列表action区按钮个性化和操作确认调整为 统一将a标签换成Button 设置属性【actionInnerDeleteBtnProps】
{ type="text" danger}
[![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)
3. 列表action有多个按钮显示更多
暂时使用默认超过3个显示更多如需统一处理或者权限控制下的按钮显示隐藏导致的按钮数量不一致可根据需要独立封装TableActionComp
![](https://user-images.githubusercontent.com/8186664/44953195-581e3d80-aec4-11e8-8dcb-54b9db38ec11.png)
4. 列表多选固定在顶部
使用表格内容固定高度,溢出垂直方向可滚动
</div>
5. 列表可选时,首列需要固定
新增首列index栏位设置{fixed: 'left'}可实现固定
- 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
6. 列表固定表头 scroll={{ y: 500 }}
批量选择确认按钮固定,列表头内容固定
## 5.0 is out! 🎉🎉🎉
7. 列表批量选择 tableAlertOptionRender
配置多选操作选项区
[Ant Design Pro 5.0.0](https://github.com/ant-design/ant-design-pro/issues/8656)
## Translation Recruitment :loudspeaker:
### git提交修饰
feat: 新功能
fix: bug修复
docs: 仅文档更改
style: 不影响代码含义的更改(空白、格式设置、缺失 分号等)
refactor: 既不修复bug也不添加特性的代码更改
perf: 改进性能的代码更改
test: 添加缺少的测试或更正现有测试
chore: 对构建过程或辅助工具和库(如文档)的更改(无法确认内容可使用)
We need your help: https://github.com/ant-design/ant-design-pro/issues/120
### bug汇总
* 新增路由页面,默认该角色拥有查看权限,实际配置并没有(重新配置权限,又能正常访问该新增页面)
## 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 的代码。

@ -1,17 +1,11 @@
// https://umijs.org/config/
import { defineConfig } from '@umijs/max';
import { join } from 'path';
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;
console.log(REACT_APP_ENV)
const { REACT_APP_ENV, API_SERVER, SERVER_HOST, FILE_SERVER_HOST, WEBRTC_SERVER_HOST } =
process.env;
export default defineConfig({
/**
* @name hash
@ -35,7 +29,7 @@ export default defineConfig({
// },
/**
* @name
* @description pathcomponentsroutesredirectwrapperstitle
* @description pathcomponentroutesredirectwrapperstitle
* @doc https://umijs.org/docs/guides/routes
*/
// umi routes: https://umijs.org/docs/routing
@ -50,7 +44,6 @@ export default defineConfig({
// 如果不想要 configProvide 动态设置主题需要把这个设置为 default
// 只有设置为 variable 才能使用 configProvide 动态设置主色调
'root-entry-name': 'variable',
},
/**
* @name moment
@ -130,7 +123,6 @@ export default defineConfig({
* @doc https://umijs.org/docs/max/access
*/
access: {},
/**
* @name <head> script
* @description <head> script
@ -159,29 +151,16 @@ export default defineConfig({
// schemaPath: 'https://gw.alipayobjects.com/os/antfincdn/CA1dOm%2631B/openapi.json',
// projectName: 'swagger',
// },
// {
// requestLibPath: "import { request } from '@umijs/max'",
// // 或者使用在线的版本
// // schemaPath: "https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json"
// // schemaPath: join(__dirname, 'oneapi.json'),
// schemaPath: 'http://localhost:8888/api/v1/swagger/doc.json',
// mock: false,
// apiPrefix: "'/api/v1'",
// projectName: 'device1',
// },
// {
// requestLibPath: "import { request } from '@umijs/max'",
// // 或者使用在线的版本
// // schemaPath: "https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json"
// // schemaPath: join(__dirname, 'oneapi.json'),
// schemaPath: 'http://127.0.0.1:9000/swagger.json',
// mock: false,
// apiPrefix: "'/api/v1'",
// projectName: 'staff',
// },
],
mfsu: {
strategy: 'normal',
},
esbuildMinifyIIFE: true,
requestRecord: {},
extraPostCSSPlugins: [
require('postcss-import'),
require('tailwindcss'),
require('postcss-nested'),
require('autoprefixer'),
],
});

@ -1 +0,0 @@
// 待启用 抽屉全局配置

@ -1,15 +1,15 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-13 14:19:57
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-12-27 16:09:07
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-18 16:47:39
* @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";
import { CloseCircleOutlined, CopyOutlined, DeleteOutlined } from '@ant-design/icons';
import { StepsFormProps } from '@ant-design/pro-components';
import { ReactNode } from 'react';
export type IconConfig = {
/**
@ -23,40 +23,35 @@ export type IconConfig = {
tooltipText?: string;
};
// 通用表单配置
export const proFormCommonOptions: Record<string,any> = {
}
export const proFormCommonOptions: Record<string, any> = {};
const formBoxMargin = 2 * 24
const formItemGap = 16
// Small 560
export const proFormSmallModelWidth: number = 560;
const formBoxMargin = 2 * 24;
const formItemGap = 12;
// Small 640
export const proFormSmallModelWidth: number = 640;
export const proFormSmallItemStyleProps: Record<string, any> = {
width: proFormSmallModelWidth - formBoxMargin, // 一列
// column2Width: (proFormSmallModelWidth - 2 * formBoxMargin)/2 , // 两列
width: proFormSmallModelWidth - formBoxMargin, // 一列
column2Width: (proFormSmallModelWidth - formBoxMargin - formItemGap) / 2, // 两列
};
// normal 804
export const proFormModelWidth: number = 804;
export const proFormItemStyleProps: Record<string, any> = {
width: proFormModelWidth - formBoxMargin, // 一列
column2Width: (proFormModelWidth - formBoxMargin - formItemGap)/2 , // 两列
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 , // 两列
column2Width: (proFormMaxModelWidth - formBoxMargin - formItemGap) / 2, // 两列
};
/**表单具体单项配置 */
// proFormList 新增一项按钮配置
export const proFormListCreatorButtonProps : {
export const proFormListCreatorButtonProps: {
creatorButtonText?: ReactNode;
position?: 'top' | 'bottom';
deleteIconProps?: IconConfig | false;
@ -66,10 +61,10 @@ export const proFormListCreatorButtonProps : {
deleteIconProps: {
Icon: CloseCircleOutlined,
tooltipText: '不需要这行了',
}
}
},
};
export const proFormListActionButtonProps : {
export const proFormListActionButtonProps: {
CopyableIconProps?: IconConfig | false;
deleteIconProps?: IconConfig | false;
} = {
@ -80,13 +75,12 @@ export const proFormListActionButtonProps : {
deleteIconProps: {
Icon: DeleteOutlined,
tooltipText: '删除',
}
}
},
};
// 分步表单统一配置
export const proFormStepsFormProps: StepsFormProps = {
stepsProps: {
labelPlacement: 'vertical',
}
}
},
};

@ -33,6 +33,6 @@ export const proIconSelectStyle: React.CSSProperties = {
// 列表图标统一样式
export const proIconForTableActionStyle : React.CSSProperties = {
export const proIconForTableActionStyle: React.CSSProperties = {
fontSize: 16,
}
};

@ -1,9 +1,9 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-01 13:56:33
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-11-30 17:10:05
* @FilePath: \general-ai-platform-web\config\defaultSettings.ts
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-15 15:13:38
* @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';
@ -16,20 +16,27 @@ const Settings: ProLayoutProps & {
logo?: string;
} = {
navTheme: 'light',
// menuHeaderRender: () => undefined,
// headerRender: () => undefined,
// headerTitleRender: () => undefined,
// // 菜单栏和顶部栏合在一起,此处置空
// menuRender: () => undefined,
// 拂晓蓝
colorPrimary: '#155BD4',
layout: 'mix',
colorPrimary: '#154DDD',
// breadcrumbRender: () => undefined,
layout: 'side',
contentWidth: 'Fluid',
fixedHeader: false,
fixSiderbar: true,
colorWeak: false,
title: ' ',
pwa: true,
logo: '/logo.svg',
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;

@ -4,13 +4,12 @@
* @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
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
export const flex: React.CSSProperties = {
display: 'flex'
}
display: 'flex',
};
export const flexRA: React.CSSProperties = {
...flex,
}
...flex,
};

@ -6,34 +6,30 @@
* @FilePath: \general-ai-platform-web\config\defaultTable.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { ProColumns } from "@ant-design/pro-components";
import { PaginationProps } from "antd";
import { PaginationProps } from 'antd';
// 通用列表配置
export const proTableCommonOptions: Record<string,any> = {
scrollX: 'max-content', // 保证左右侧列的固定,并能保证没列标题不换行
scrollY: 500, // 保证列表高度固定
commscrollX: 1300,
commscrollY: 500, // 保证列表高度固定
searchLabelWidth: 'auto', // 整体对齐label根据实际字数自适应
}
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 proTableActionColumnOptions: Record<string, any> = {
dataIndex: 'option',
valueType: 'option',
align: 'center',
fixed: 'right',
};
// 分页器配置
export const proTablePaginationOptions: PaginationProps = {
showSizeChanger: true,
// showQuickJumper: true,
showTotal: (total) => `${total}`,
}
showSizeChanger: true,
// showQuickJumper: true,
showTotal: (total) => `${total}`,
};
// 默认索引列配置
// export const proTableIndexColumnOptions : ProColumns = {
@ -43,4 +39,4 @@ export const proTablePaginationOptions: PaginationProps = {
// fixed: 'left', // 将该列固定在左侧
// width: 70,
// align:'center'
// }
// }

@ -6,10 +6,10 @@
},
"servers": [
{
"url": "http://localhost:8000/"
"url": "http://localhost:8020/"
},
{
"url": "https://localhost:8000/"
"url": "https://localhost:8020/"
}
],
"paths": {

@ -1,9 +1,9 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2023-11-01 13:56:33
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-24 14:49:42
* @FilePath: \general-ai-platform-web\config\proxy.ts
* @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
*/
/**
@ -20,7 +20,7 @@
export default {
// 如果需要自定义本地开发服务器 请取消注释按需调整
// dev: {
// // localhost:8000/api/** -> https://preview.pro.ant.design/api/**
// // localhost:8020/api/** -> https://preview.pro.ant.design/api/**
// '/api/': {
// // 要代理的地址
// target: 'https://preview.pro.ant.design',
@ -29,34 +29,13 @@ export default {
// changeOrigin: true,
// },
// },
dev: {
// localhost:8000/api/** -> https://preview.pro.ant.design/api/**
'/api/v1/': {
// 要代理的地址
target: 'http://192.168.10.14:8888/',
// target: 'https://www.baidu.com',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
changeOrigin: true,
secure: false,
},
// '/video_save_path/': {
// // 要代理的地址
// target: 'http://192.168.10.96/',
// // target: 'https://www.baidu.com',
// // 配置了这个可以从 http 代理到 https
// // 依赖 origin 的功能可能需要这个,比如 cookie
// changeOrigin: true,
// secure: false,
// },
},
/**
* @name
* @doc https://github.com/chimurai/http-proxy-middleware
*/
test: {
// localhost:8000/api/** -> https://preview.pro.ant.design/api/**
// localhost:8020/api/** -> https://preview.pro.ant.design/api/**
'/api/': {
target: 'https://proapi.azurewebsites.net',
changeOrigin: true,
@ -64,7 +43,7 @@ export default {
},
},
pre: {
'/api/v1/': {
'/api/': {
// 要代理的地址
target: 'https://preview.pro.ant.design',
// 配置了这个可以从 http 代理到 https

@ -1,332 +0,0 @@
/**
* @name umi
* @description path,components,routes,redirect,wrappers,name,icon
* @param path path :id *
* @param components 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/index1',
},
],
},
{
path: '/welcome',
name: 'welcome',
component: 'Welcome/Welcome',
},
{
path: '/admin',
name: 'admin',
access: 'canAdmin',
routes: [
{
path: '/admin',
redirect: '/admin/sub-page',
},
{
path: '/admin/sub-page',
name: 'sub-page',
component: './Admin',
},
],
},
{
path: '/system',
name: 'system',
routes: [
{
name: 'api-list',
path: '/system/api-list',
component: 'System/ApiList',
access: 'canReadMenu',
},
{
name: 'menu-list',
path: '/system/menu-list',
component: 'System/MenuList',
access: 'canReadMenu',
},
{
name: 'role-list',
path: '/system/role-list',
component: 'System/RoleList',
access: 'canReadMenu',
},
{
name: 'user-list',
path: '/system/user-list',
component: 'System/UserList',
access: 'canReadMenu',
},
{
name: 'post-list',
path: '/system/post-list',
component: 'System/PostList',
access: 'canReadMenu',
},
{
name: 'department-list',
path: '/system/department-list',
component: 'System/DepartmentList',
access: 'canReadMenu',
},
{
name: 'operation_record-list',
path: '/system/operation_record-list',
component: 'System/OperationRecordList',
access: 'canReadMenu',
},
],
},
{
name: 'device',
path: '/device',
routes: [
{
name: 'device-list',
path: '/device/device-list',
component: 'Device/DeviceList',
access: 'canReadMenu',
},
{
name: 'device-category-list',
path: '/device/device-category-list',
component: 'Device/DeviceCategoryList',
access: 'canReadMenu',
},
{
name: 'device-group-list',
path: '/device/device-group-list',
component: 'Device/DeviceGroupList',
access: 'canReadMenu',
},
{
name: 'device-relation-list',
path: '/device/device-relation-list',
component: 'Device/DeviceRelationList',
access: 'canReadMenu',
},
],
},
{
name: 'DCSDevice',
path: '/DCSDevice',
routes: [
{
name: 'DCSDevice-device-group-list',
path: '/DCSDevice/device-group-list',
component: 'DCSDevice/DeviceGroupList',
access: 'canReadMenu',
},
{
name: 'DCSDevice-device-category-list',
path: '/DCSDevice/device-category-list',
component: 'DCSDevice/DeviceCategoryList',
access: 'canReadMenu',
},
{
name: 'DCSDevice-device-list',
path: '/DCSDevice/device-list',
component: 'DCSDevice/DeviceList',
access: 'canReadMenu',
},
{
name: 'DCSDevice-device-status',
path: '/DCSDevice/device-status',
component: 'DCSDevice/DeviceStatus',
access: 'canReadMenu',
},
],
},
{
name: 'resource',
path: '/resource',
routes: [
{
name: 'algorithm-model-list',
path: '/resource/algorithm-model-list',
component: 'Resource/AlgorithmModelList',
access: 'canReadMenu',
},
{
name: 'algorithm-model-detail',
path: '/resource/algorithm-model-detail/:id',
component: 'Resource/AlgorithmModelList/detail',
access: 'canReadMenu',
isHideTab: true,
},
{
name: 'business-image-list',
path: '/resource/business-image-list',
component: 'Resource/BusinessImageList',
access: 'canReadMenu',
},
{
name: 'model-category-list',
path: '/resource/model-category-list',
component: 'Resource/ModelCategoryList',
access: 'canReadMenu',
},
{
name: 'model-image-list',
path: '/resource/model-image-list',
component: 'Resource/ModelImageList',
access: 'canReadMenu',
},
{
name: 'model-version-list',
path: '/resource/model-version-list',
component: 'Resource/ModelVersionList',
access: 'canReadMenu',
},
{
name: 'resource-device-status',
path: '/resource/resource-device-status',
component: 'Resource/ResourceDeviceStatus',
access: 'canReadMenu',
},
],
},
{
name: 'analysis',
path: '/analysis',
routes: [
{
name: 'action-detection-list',
path: '/analysis/action-detection-list',
component: 'Analysis/ActionDetectionList',
access: 'canReadMenu',
},
],
},
{
name: 'project',
path: '/project',
routes: [
{
name: 'project-list',
path: '/project/project-list',
component: 'Project/ProjectList',
access: 'canReadMenu',
},
],
},
{
name: 'Contact',
path: '/Contact',
routes: [
{
name: 'Contact-contact-list',
path: '/Contact/contact-list',
component: 'Contact/ContactList',
access: 'canReadMenu',
},
],
},
{
name: 'task',
path: '/task',
component: 'Hidden',
},
{
name: 'compute_power',
path: '/compute_power',
component: 'ComputePowerAllocation/ComputePowerAllocation',
},
{
name: 'data_screen',
path: '/data_screen',
},
{
name: 'algorithm_setting',
path: '/algorithm_setting',
component: 'Setting/AlgorithmSetting',
},
{
name: 'alarm',
path: '/alarm',
routes: [
{
name: 'alarm-list',
path: '/alarm/alarm-list',
component: 'Alarm/AlarmList',
access: 'canReadMenu',
},
{
name: 'alarm-setting',
path: '/alarm/alarm-setting',
component: 'Alarm/AlarmSetting',
access: 'canReadMenu',
},
{
name: 'alarm-ways',
path: '/alarm/alarm-ways',
component: 'Alarm/AlarmWays',
access: 'canReadMenu',
},
],
},
{
name: 'logging',
path: 'http://192.168.10.96:5601/app/r/s/uDpRg',
},
{
path: '/',
redirect: '/welcome',
},
{
path: '*',
layout: false,
component: './404',
},
{
name: 'fabricView',
path: '/fabricView',
routes: [
{
name: 'fabricView-room',
path: '/fabricView/room',
component: 'FabricView/Room',
access: 'canReadMenu',
},
],
},
{
name: 'notice',
path: '/notice',
component: 'Notice',
},
{
name: 'account',
path: '/account',
routes: [
{
name: 'center',
path: '/account/center',
component: 'Account/Center',
access: 'canReadMenu',
},
],
},
];

@ -1,8 +1,17 @@
/**
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-17 10:57:31
* @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,components,routes,redirect,wrappers,name,icon
* @description path,component,routes,redirect,wrappers,name,icon
* @param path path :id *
* @param components location path React src/pages
* @param component location path React src/pages
* @param routes layout 使
* @param redirect
* @param wrappers
@ -10,339 +19,156 @@
* @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/index1',
},
],
},
// 主页路由模块
export const homeRoute = [
{
path: '/welcome',
name: 'welcome',
component: 'Welcome/Welcome',
name: 'home-business-project',
path: '/home/business-project',
component: './Project/BusinessProject',
access: 'canReadMenu',
key: 'BusinessProject001',
level: 1, // 一级菜单
},
{
path: '/admin',
name: 'admin',
];
access: 'canAdmin',
routes: [
{
path: '/admin',
redirect: '/admin/sub-page',
},
{
path: '/admin/sub-page',
name: 'sub-page',
component: './Admin',
},
],
},
{
path: '/system',
name: 'system',
routes: [
{
name: 'api-list',
path: '/system/api-list',
component: 'System/ApiList',
access: 'canReadMenu',
},
{
name: 'menu-list',
path: '/system/menu-list',
component: 'System/MenuList',
access: 'canReadMenu',
},
{
name: 'role-list',
path: '/system/role-list',
component: 'System/RoleList',
access: 'canReadMenu',
},
{
name: 'user-list',
path: '/system/user-list',
component: 'System/UserList',
access: 'canReadMenu',
},
{
name: 'post-list',
path: '/system/post-list',
component: 'System/PostList',
access: 'canReadMenu',
},
{
name: 'department-list',
path: '/system/department-list',
component: 'System/DepartmentList',
access: 'canReadMenu',
},
{
name: 'operation_record-list',
path: '/system/operation_record-list',
component: 'System/OperationRecordList',
access: 'canReadMenu',
},
{
name: 'parameter-setting',
path: '/system/parameter-setting',
component: 'System/ParameterSetting',
access: 'canReadMenu',
},
],
/**
* @
* @param modelRouteIndex
* @param subModelRoute
* @param level
* @param isHideMenu
*/
const modelRouteIndex = {
name: 'model-index',
path: '/home/model-index',
component: './Model/ModelIndex',
access: 'canReadMenu',
key: 'model001',
};
const subModelRoute = [
{
name: 'model-runtime-lib',
path: '/home/runtime-lib',
component: './Model/ModelRuntimeLib',
access: 'canReadMenu',
key: 'model002',
level: 2,
},
{
name: 'model-detail',
path: '/home/model-detail/:id',
component: './Model/ModelDetail',
access: 'canReadMenu',
key: 'model003',
isHideMenu: true,
level: 2,
},
];
export const modelRoute = [
{
name: 'device',
path: '/device',
routes: [
{
name: 'device-list',
path: '/device/device-list',
component: 'Device/DeviceList',
access: 'canReadMenu',
},
{
name: 'device-category-list',
path: '/device/device-category-list',
component: 'Device/DeviceCategoryList',
access: 'canReadMenu',
},
{
name: 'device-group-list',
path: '/device/device-group-list',
component: 'Device/DeviceGroupList',
access: 'canReadMenu',
},
{
name: 'device-relation-list',
path: '/device/device-relation-list',
component: 'Device/DeviceRelationList',
access: 'canReadMenu',
},
],
...modelRouteIndex,
level: 1,
subMenu: [modelRouteIndex, ...subModelRoute],
},
...subModelRoute,
];
/**
* @
*/
export const outerMenuRoute = {
name: 'home',
path: '/home',
layout: false,
access: 'canReadMenu',
component: '@/layouts/HomeLayout',
routes: [...homeRoute, ...modelRoute],
};
// 全路由模块
export default [
outerMenuRoute,
{
name: 'DCSDevice',
path: '/DCSDevice',
path: '/user',
layout: false,
routes: [
{
name: 'DCSDevice-device-group-list',
path: '/DCSDevice/device-group-list',
component: 'DCSDevice/DeviceGroupList',
access: 'canReadMenu',
},
{
name: 'DCSDevice-device-category-list',
path: '/DCSDevice/device-category-list',
component: 'DCSDevice/DeviceCategoryList',
access: 'canReadMenu',
},
{
name: 'DCSDevice-device-list',
path: '/DCSDevice/device-list',
component: 'DCSDevice/DeviceList',
access: 'canReadMenu',
},
{
name: 'DCSDevice-device-status',
path: '/DCSDevice/device-status',
component: 'DCSDevice/DeviceStatus',
access: 'canReadMenu',
name: 'login',
path: '/user/login',
component: './User/Login',
},
],
},
{
name: 'resource',
path: '/resource',
path: '/testPage',
name: 'testPage',
access: 'canReadMenu',
routes: [
{
name: 'algorithm-model-list',
path: '/resource/algorithm-model-list',
component: 'Resource/AlgorithmModelList',
access: 'canReadMenu',
},
{
name: 'algorithm-model-detail',
path: '/resource/algorithm-model-detail/:id',
component: 'Resource/AlgorithmModelList/detail',
access: 'canReadMenu',
isHideTab: true,
},
{
name: 'business-image-list',
path: '/resource/business-image-list',
component: 'Resource/BusinessImageList',
access: 'canReadMenu',
},
{
name: 'model-category-list',
path: '/resource/model-category-list',
component: 'Resource/ModelCategoryList',
access: 'canReadMenu',
},
{
name: 'model-image-list',
path: '/resource/model-image-list',
component: 'Resource/ModelImageList',
access: 'canReadMenu',
},
{
name: 'model-version-list',
path: '/resource/model-version-list',
component: 'Resource/ModelVersionList',
access: 'canReadMenu',
},
{
name: 'resource-device-status',
path: '/resource/resource-device-status',
component: 'Resource/ResourceDeviceStatus',
access: 'canReadMenu',
},
{
name: 'server-status',
path: '/resource/server-status',
component: 'Resource/ServerStatus',
name: 'testPage-business-project',
path: '/testPage/business-project',
component: './Project/BusinessProject',
access: 'canReadMenu',
},
],
},
{
name: 'analysis',
path: '/analysis',
name: 'realTime',
path: '/realTime',
access: 'canReadMenu',
routes: [
{
name: 'action-detection-list',
path: '/analysis/action-detection-list',
component: 'Analysis/ActionDetectionList',
name: 'realTime-involved-list',
path: '/realTime/involved-list',
component: './RealTime/InvolvedList',
access: 'canReadMenu',
},
],
},
{
name: 'project',
path: '/project',
routes: [
{
name: 'project-list',
path: '/project/project-list',
component: 'Project/ProjectList',
name: 'realTime-alarm-list',
path: '/realTime/alarm-list',
component: './RealTime/AlarmList',
access: 'canReadMenu',
},
],
},
{
name: 'Contact',
path: '/Contact',
routes: [
{
name: 'Contact-contact-list',
path: '/Contact/contact-list',
component: 'Contact/ContactList',
name: 'realTime-alarm-rules',
path: '/realTime/alarm-rules',
component: './RealTime/AlarmRules',
access: 'canReadMenu',
},
],
},
{
name: 'task',
path: '/task',
routes: [
{
name: 'task-list',
path: '/task/task-list',
component: 'Task/TaskList',
name: 'realTime-device-list',
path: '/realTime/device-list',
component: './RealTime/DeviceList',
access: 'canReadMenu',
},
],
},
{
name: 'compute_power',
path: '/compute_power',
component: 'ComputePowerAllocation/ComputePowerAllocation',
},
{
name: 'data_screen',
path: '/data_screen',
},
{
name: 'algorithm_setting',
path: '/algorithm_setting',
component: 'Setting/AlgorithmSetting',
},
{
name: 'alarm',
path: '/alarm',
path: '/admin',
name: 'admin',
icon: 'crown',
routes: [
{
name: 'alarm-list',
path: '/alarm/alarm-list',
component: 'Alarm/AlarmList',
access: 'canReadMenu',
},
{
name: 'alarm-setting',
path: '/alarm/alarm-setting',
component: 'Alarm/AlarmSetting',
access: 'canReadMenu',
path: '/admin',
redirect: '/admin/sub-page',
},
{
name: 'alarm-ways',
path: '/alarm/alarm-ways',
component: 'Alarm/AlarmWays',
access: 'canReadMenu',
path: '/admin/sub-page',
name: 'sub-page',
component: './Admin',
},
],
},
{
name: 'logging',
path: 'http://192.168.10.96:5601/app/r/s/uDpRg',
},
{
path: '/',
redirect: '/welcome',
redirect: '/home/business-project',
},
{
path: '*',
layout: false,
component: './404',
},
{
name: 'fabricView',
path: '/fabricView',
routes: [
{
name: 'fabricView-room',
path: '/fabricView/room',
component: 'FabricView/Room',
access: 'canReadMenu',
},
],
},
{
name: 'notice',
path: '/notice',
component: 'Notice',
},
{
name: 'account',
path: '/account',
routes: [
{
name: 'center',
path: '/account/center',
component: 'Account/Center',
access: 'canReadMenu',
},
],
},
];

@ -12,7 +12,7 @@ export default async () => {
...config,
testEnvironmentOptions: {
...(config?.testEnvironmentOptions || {}),
url: 'http://localhost:8000',
url: 'http://localhost:8020',
},
setupFiles: [...(config.setupFiles || []), './tests/setupTests.jsx'],
globals: {

@ -8,4 +8,4 @@
"@/*": ["./src/*"]
}
}
}
}

@ -1,111 +0,0 @@
import { Request, Response } from 'express';
import moment from 'moment';
import { parse } from 'url';
// mock tableListDataSource
const genList = (current: number, pageSize: number) => {
const tableListDataSource: API.RuleListItem[] = [];
for (let i = 0; i < pageSize; i += 1) {
const index = (current - 1) * 10 + i;
tableListDataSource.push({
key: index,
disabled: i % 6 === 0,
href: 'https://ant.design',
avatar: [
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
][i % 2],
name: `TradeCode ${index}`,
owner: '曲丽丽',
desc: '这是一段描述',
callNo: Math.floor(Math.random() * 1000),
status: Math.floor(Math.random() * 10) % 4,
updatedAt: moment().format('YYYY-MM-DD'),
createdAt: moment().format('YYYY-MM-DD'),
progress: Math.ceil(Math.random() * 100),
});
}
tableListDataSource.reverse();
return tableListDataSource;
};
let tableListDataSource = genList(1, 100);
function getDCSDeviceStatusList(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);
}
export default {
'GET /api/mock/getDCSDeviceStatusList': getDCSDeviceStatusList,
};

@ -1,31 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 17:18:11
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 13:44:15
* @FilePath: \general-ai-platform-web\mock\modelVersion.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**算法模型模块 mock */
import { mockGetAlgorithmModelFkSelectData , mockGetAlgorithmModelListData} from './pools/algorithmModelData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 选择模型
'POST /api/v1/algorithm_model/getAlgorithmModelFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetAlgorithmModelFkSelectData),
};
res.send(resData);
},
// 模型列表
'POST /api/v1/algorithm_model/getAlgorithmModelList': async (req: Request, res: Response) => {
console.log(req, 'getModelVersionList_req')
const { page , pageSize} = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({...mockGetAlgorithmModelListData, data: {...mockGetAlgorithmModelListData.data, page, pageSize: pageSize || 10} }),
};
res.send(resData);
},
};

@ -1,28 +0,0 @@
/**业务镜像模块 mock */
import { mockGetBusinessImageListData } from './pools/businessImageData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 业务镜像列表分页
'POST /api/v1/business_image/getBusinessImageList': async (req: Request, res: Response) => {
const { page, pageSize } = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetBusinessImageListData,
data: { ...mockGetBusinessImageListData.data, page, pageSize: pageSize || 10 },
}),
};
res.send(resData);
},
// 选择模型
// 'POST /api/v1/model_version/getModelVersionFkSelect': async (req: Request, res: Response) => {
// const resData: successMockApiProps = {
// ...fetchMockSuccessFullByOther(mockGetModelVersionFkSelect),
// };
// res.send(resData);
// }
};

@ -0,0 +1,17 @@
import { mockGetBusinessProjectData } from './pools/businessProjectData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 实时分析告警列表分页
'GET /api/businessProject/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetBusinessProjectData,
data: { ...mockGetBusinessProjectData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -1,34 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 13:34:56
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-03-11 13:55:06
* @FilePath: \general-ai-platform-web\mock\modelCategory.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**模型类别模块 mock */
import {
powerPoolsListData,
powerGroupListData,
} from './pools/computePowerData';
import { successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 算力分配类别
'POST /api/v1/compute_power/getPowerGroupList': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(powerGroupListData),
};
res.send(resData);
},
// 算力分配池
'POST /api/v1/compute_power/getPowerPoolsList': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(powerPoolsListData),
};
res.send(resData);
},
};

@ -1,36 +1,38 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:53:15
* @Date: 2024-04-02 16:28:13
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 17:29:39
* @FilePath: \general-ai-platform-web\mock\deviceCategory.ts
* @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 { mockGetDeviceListData } from './pools/deviceData';
/**告警列表模块 mock */
import { mockGetDeviceData, mockGetUploadDeviceData } from './pools/deviceData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList , fetchMockSuccessFullByOther} from './utils/apiMock';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 设备组列表分页
'POST /api/v1/device/getDeviceList': async (req: Request, res: Response) => {
const { page, pageSize } = req.body;
// 实时分析告警列表分页
'GET /api/device/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetDeviceListData,
data: { ...mockGetDeviceListData.data, page, pageSize: pageSize || 10 },
...mockGetDeviceData,
data: { ...mockGetDeviceData.data, page, pageSize: pageSize || 10 },
}),
};
res.send(resData);
res.json(resData);
},
// 离线分析告警列表分页
'GET /api/upload_device/': 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);
},
// 选择模型
// 'POST /api/v1/model_version/12': async (req: Request, res: Response) => {
// const resData: successMockApiProps = {
// ...fetchMockSuccessFullByOther(mockGetDeviceGroupFkSelectData),
// };
// res.send(resData);
// }
};

@ -1,39 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:53:15
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 17:29:25
* @FilePath: \general-ai-platform-web\mock\deviceCategory.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**设备组模块 mock */
import {
mockGetDeviceCategoryFkSelectData,
mockGetDeviceCategoryListData,
} from './pools/deviceCategoryData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList , fetchMockSuccessFullByOther} from './utils/apiMock';
export default {
// 设备组列表分页
'POST /api/v1/device_category/getDeviceCategoryList': async (req: Request, res: Response) => {
const { page, pageSize } = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetDeviceCategoryListData,
data: { ...mockGetDeviceCategoryListData.data, page, pageSize: pageSize || 10 },
}),
};
res.send(resData);
},
// 设备类别选项列表不分页
'POST /api/v1/device_category/getDeviceCategoryFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceCategoryFkSelectData),
};
res.send(resData);
},
};

@ -1,72 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:53:15
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-02-05 15:24:11
* @FilePath: \general-ai-platform-web\mock\deviceCategory.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**设备组模块 mock */
import {
mockGetDeviceGroupData1,
mockGetDeviceGroupData2,
mockGetDeviceGroupData3,
mockGetDeviceGroupFkSelectData,
mockGetDeviceGroupListData,
mockGetDeviceGroupTreeData,
} from './pools/deviceGroupData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 设备组列表分页
'POST /api/v1/device_group/getDeviceGroupList': async (req: Request, res: Response) => {
const { page, pageSize } = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetDeviceGroupListData,
data: { ...mockGetDeviceGroupListData.data, page, pageSize: pageSize || 10 },
}),
};
res.send(resData);
},
// 设备组网点选项列表
'POST /api/v1/device_group/getDeviceGroupFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceGroupFkSelectData),
};
res.send(resData);
},
// 设备组网点树列表
'POST /api/v1/device_group/getDeviceGroupTree': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceGroupTreeData),
};
res.send(resData);
},
// 设备组详情
'POST /api/v1/device_group/getDeviceGroupById': async (req: Request, res: Response) => {
const { id } = req.body;
let currRes = {};
switch (Number(id)) {
case 2:
currRes = mockGetDeviceGroupData1;
break;
case 3:
currRes = mockGetDeviceGroupData2;
break;
case 5:
currRes = mockGetDeviceGroupData3;
break;
}
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(currRes),
};
res.send(resData);
},
};

@ -0,0 +1,22 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-17 14:01:39
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-17 14:01:47
* @FilePath: \general-ai-manage\mock\dict.ts
* @Description: mock
*/
import { mockGetIndustryDictData } from './pools/dictData';
import { successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 实时分析告警列表分页
'GET /api/dict/industry/': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetIndustryDictData),
};
res.json(resData);
},
};

@ -1,5 +1,5 @@
import dayjs from 'dayjs';
import { Request, Response } from 'express';
import moment from 'moment';
import { parse } from 'url';
// mock tableListDataSource
@ -21,8 +21,8 @@ const genList = (current: number, pageSize: number) => {
desc: '这是一段描述',
callNo: Math.floor(Math.random() * 1000),
status: Math.floor(Math.random() * 10) % 4,
updatedAt: moment().format('YYYY-MM-DD'),
createdAt: moment().format('YYYY-MM-DD'),
updatedAt: dayjs().format('YYYY-MM-DD'),
createdAt: dayjs().format('YYYY-MM-DD'),
progress: Math.ceil(Math.random() * 100),
});
}
@ -134,8 +134,8 @@ function postRule(req: Request, res: Response, u: string, b: Request) {
desc,
callNo: Math.floor(Math.random() * 1000),
status: Math.floor(Math.random() * 10) % 2,
updatedAt: moment().format('YYYY-MM-DD'),
createdAt: moment().format('YYYY-MM-DD'),
updatedAt: dayjs().format('YYYY-MM-DD'),
createdAt: dayjs().format('YYYY-MM-DD'),
progress: Math.ceil(Math.random() * 100),
};
tableListDataSource.unshift(newRule);

@ -12,12 +12,11 @@ import { mockGetMenuData } from './pools/menuData';
import { successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 获取菜单
'POST /api/v1/menu/getMenu': async (req: Request, res: Response) => {
'POST /api/menu/getMenu': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetMenuData),
};
res.send(resData);
}
},
};

@ -0,0 +1,81 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-11 14:13:34
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-18 09:10:26
* @FilePath: \general-ai-manage\mock\model.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**模型管理模块 mock */
import {
mockGetModelListData,
mockGetModelRuntimeLibFilesListData,
mockGetModelRuntimeLibListData,
mockGetModelVersionListData,
} from './pools/modelData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 模型列表分页
'GET /api/model/list/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetModelListData,
data: { ...mockGetModelListData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 模型列表分页
'GET /api/model/detail/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { id } = req.query;
let finalData = {};
mockGetModelListData.data.results.forEach((item) => {
if (item.id === Number(id)) {
finalData = item;
// break;
}
});
const resData: successMockApiProps = fetchMockSuccessFullByOther({
data: finalData,
});
res.json(resData);
},
// 模型版本列表
'GET /api/model/versions/list/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetModelVersionListData,
data: { ...mockGetModelVersionListData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 模型运行库列表分页
'GET /api/model/runtimeLib/list/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetModelRuntimeLibListData,
data: { ...mockGetModelRuntimeLibListData.data, page, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 模型运行库列表分页
'GET /api/model/runtimeLib/filesList/': async (req: Request, res: Response) => {
const resData: successMockApiProps = fetchMockSuccessFullByOther(
mockGetModelRuntimeLibFilesListData,
);
res.json(resData);
},
};

@ -1,33 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 13:34:56
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 14:00:57
* @FilePath: \general-ai-platform-web\mock\modelCategory.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**模型类别模块 mock */
import {
mockGetModelCategoryFkSelectData,
mockGetModelCategoryListData,
} from './pools/modelCategoryData';
import { successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 模型类别列表
'POST /api/v1/model_category/getModelCategoryList': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetModelCategoryListData),
};
res.send(resData);
},
// 模型类别列表
'POST /api/v1/model_category/getModelCategoryFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetModelCategoryFkSelectData),
};
res.send(resData);
},
};

@ -1,68 +0,0 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-09 14:29:49
* @LastEditors: zhoux zhouxia@supervision.ltd
* @LastEditTime: 2023-11-09 15:34:50
* @FilePath: \general-ai-platform-web\mock\modelDetail.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { Request, Response } from 'express';
import { parse } from 'url';
// mock tableListDataSource
const genData = (params: Record<string, any>): Record<string, any> => {
const data: Record<string, any> = {
categoryFkId: 2,
createTime: '2023-10-20T06:23:56.158622Z',
defaultVersionFkId: null,
id: params.id,
name: '离岗',
remark: '',
updateTime: '2023-10-20T06:23:56.158622Z',
};
// key: index,
// disabled: i % 6 === 0,
// href: 'https://ant.design',
// avatar: [
// 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
// 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
// ][i % 2],
// name: `TradeCode ${index}`,
// owner: '曲丽丽',
// desc: '这是一段描述',
// callNo: Math.floor(Math.random() * 1000),
// status: Math.floor(Math.random() * 10) % 4,
// updatedAt: moment().format('YYYY-MM-DD'),
// createdAt: moment().format('YYYY-MM-DD'),
// progress: Math.ceil(Math.random() * 100),
return data;
};
function getModelDetail(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;
// const params = parse(realUrl, true).query as unknown as API.PageParams &
// API.RuleListItem & {
// sorter: any;
// filter: any;
// };
// console.log(req, 'getModelDetailApi');
const result = {
data: genData({id: 2}),
success: true,
msg: '获取成功',
};
return res.json(result);
}
export default {
'GET /api/v1/mock/model/detail': getModelDetail,
};

@ -1,15 +0,0 @@
/**模型镜像模块 mock */
import { mockGetModelImageListData } from './pools/modelImageData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 选择模型镜像列表
'POST /api/v1/model_image/getModelImageList': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetModelImageListData),
};
res.send(resData);
}
};

@ -1,33 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 17:18:11
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 13:09:42
* @FilePath: \general-ai-platform-web\mock\modelVersion.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**模型版本模块 mock */
import { mockGetModelVersionListData , mockGetModelVersionFkSelect} from './pools/modelVersionData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 获取模型版本列表
'POST /api/v1/model_version/getModelVersionList': async (req: Request, res: Response) => {
console.log(req, 'getModelVersionList_req')
const { page , pageSize} = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({...mockGetModelVersionListData, data: {...mockGetModelVersionListData.data, page, pageSize: pageSize || 10} }),
};
res.send(resData);
},
// 选择模型
'POST /api/v1/model_version/getModelVersionFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetModelVersionFkSelect),
};
res.send(resData);
}
};

@ -1,35 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:35:15
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 16:45:13
* @FilePath: \general-ai-platform-web\mock\pools\businessImageData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**业务镜像- */
// 业务镜像列表分页
export const mockGetBusinessImageListData = {
data: {
list: [
{
id: 1,
createTime: '2024-01-25T16:36:06.575908+08:00',
updateTime: '2024-01-25T16:36:06.575908+08:00',
name: '测试123',
version: 'v1',
projectFkId: 38,
path: 'http://jingxiang.com',
startCode: '123',
config: null,
configHash: '',
remark: '',
},
],
total: 1,
page: 1,
pageSize: 10,
},
};

@ -0,0 +1,90 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 15:42:40
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-09 17:47:57
* @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 mockGetBusinessProjectData = {
data: {
count: 7,
next: null,
previous: null,
results: [
{
id: '1',
name: '一名科技有限公司', // 公司名称
address: '', // 公司地址
industry: '冶金制造业', // 公司所属行业
contacts: '', // 联系人
contactWay: '', // 联系方式
remark: '', // 简介
logo: '', // 企业logo
model_number: 3, // 模型数量
device_number: 1, // 设备数量
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
},
{
id: '2',
name: '江川科技有限公司',
industry: '冶金制造业',
model_number: 2,
device_number: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
},
{
id: '3',
name: '苏胜天信息科技有限公司',
industry: '互联网科技',
model_number: 1,
device_number: 1,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01',
},
{
id: '4',
name: '雅信视觉科技有限公司', // 公司名称
industry: '互联网科技',
model_number: 3, // 模型数量
device_number: 1, // 设备数量
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
},
{
id: '5',
name: '超越科技有限公司',
industry: '互联网科技',
model_number: 2,
device_number: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
},
{
id: '6',
name: '金怡工厂',
industry: '冶金制造业',
model_number: 1,
device_number: 1,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01',
},
{
id: '7',
name: '乐乐五金制造',
industry: '冶金制造业',
model_number: 2,
device_number: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
},
],
},
msg: null,
success: true,
status: 200,
};

@ -1,122 +0,0 @@
export type ComputePowerPoolItem = {
name: string;
type: number; // 类别
color?: string; //
proportion: number;
pretreatmentEfficiency?: number;
bgColor?: string;
};
const groupList: Record<string, any>[] = [
{
label: "NVIDIA GeForce 4090",
type: 1
},
{
label: "瑞芯微 RK3566",
type: 0
},
{
label: "瑞芯微 RK3566",
type: 0
},
{
label: "NVIDIA GeForce 4090",
type: 1
},
{
label: "NVIDIA GeForce 4090",
type: 1
}
];
const poolsData: ComputePowerPoolItem[] = [
{
name: "焊线颜色检测",
type: 9,
proportion: 7,
pretreatmentEfficiency: 20,
color: "#014BE6",
bgColor: "linear-gradient(180deg, #015DE6 0%, #4881F6 100%)"
},
{
name: "螺纹缺陷检测",
type: 8,
proportion: 8,
pretreatmentEfficiency: 20,
color: "#FAA90B",
bgColor: "linear-gradient(180deg, #E64601 0%, #F6A648 100%)"
},
{
name: "PIN间距测量",
type: 7,
proportion: 4,
pretreatmentEfficiency: 15,
color: "#EA1281",
bgColor: "linear-gradient(180deg, #E60161 0%, #F648E5 100%)"
},
{
name: "螺纹无牙缺陷检测",
type: 6,
proportion: 7,
pretreatmentEfficiency: 20,
color: "#FA8616",
bgColor: "linear-gradient(180deg, #FA8316 0%, #FAAD16 100%)"
},
{
name: "压板缺陷检测",
type: 5,
proportion: 32,
pretreatmentEfficiency: 38,
color: "#F9DB18",
bgColor: "linear-gradient(180deg, #FFC56F 0%, #F9E006 100%)"
},
{
name: "划伤缺陷检测",
type: 4,
proportion: 8,
pretreatmentEfficiency: 38,
color: "#1CCCFA",
bgColor: "linear-gradient(180deg, #6FFFFF 0%, #06BEF9 100%)"
},
{
name: "披锋(毛刺)缺陷检测",
type: 3,
proportion: 12,
pretreatmentEfficiency: 38,
color: "#9E26EE",
bgColor: "linear-gradient(180deg, #FF2494 0%, #8D27FF 100%)"
},
{
name: "工件尺寸测量",
type: 2,
proportion: 7,
pretreatmentEfficiency: 38,
color: "#6F50F6",
bgColor: "linear-gradient(180deg, #6B55F6 0%, #8C38F8 100%)"
},
{
name: "打孔不良检测",
type: 1,
proportion: 5,
pretreatmentEfficiency: 38,
color: "#24ED75",
bgColor: "linear-gradient(180deg, #43EA80 0%, #38F8D4 100%)"
},
{
name: "空闲算力",
type: 0,
proportion: 10,
pretreatmentEfficiency: 0,
color: "#DCDCDC",
bgColor: "linear-gradient(90deg, #7B7979 0%, #C1C1C1 100%)"
}
];
export const powerGroupListData = {
data: groupList
};
export const powerPoolsListData = {
data: poolsData
};

@ -1,53 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:53:24
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 17:34:49
* @FilePath: \general-ai-platform-web\mock\pools\deviceCategoryData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**设备类别- */
// 设备类别列表分页
export const mockGetDeviceCategoryListData = {
data: {
list: [
{
id: 1,
createTime: '2023-10-17T10:35:41.14308+08:00',
updateTime: '2023-10-17T10:35:41.14308+08:00',
name: '监控1',
code: 'DC00002',
remark: '',
},
{
id: 2,
createTime: '2023-10-17T10:40:28.292883+08:00',
updateTime: '2023-10-26T11:02:51.356036+08:00',
name: '控制器',
code: 'DC00003',
remark: '',
},
],
total: 2,
page: 1,
pageSize: 10,
},
};
// 设备类别选项列表不分页
export const mockGetDeviceCategoryFkSelectData = {
data: {
list: [
{
name: '监控1',
id: 1,
},
{
name: '控制器',
id: 2,
},
],
}
};

@ -1,83 +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 mockGetDeviceListData= {
export const mockGetDeviceData = {
data: {
list: [
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,
createTime: '2023-10-17T10:47:51.629494+08:00',
updateTime: '2023-10-26T11:02:39.559715+08:00',
name: '控制设备1',
code: 'DEVICE00002',
position: '',
param: '',
spec: '',
categoryFkId: 2,
groupFkId: 3,
isEnable: true,
remark: '',
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: 3,
createTime: '2023-10-17T14:59:28.10666+08:00',
updateTime: '2023-12-28T16:15:37.839819+08:00',
name: '监控2',
code: 'DEVICE00003',
position: '',
param: 'rtsp://192.168.10.14:8554/mystream',
spec: '',
categoryFkId: 1,
groupFkId: 3,
isEnable: true,
remark: '',
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: 4,
createTime: '2023-10-17T15:05:53.494168+08:00',
updateTime: '2023-10-17T15:05:53.494168+08:00',
name: '监控3',
code: 'DEVICE00004',
position: '',
param: '',
spec: '',
categoryFkId: 1,
groupFkId: 5,
isEnable: true,
remark: '',
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: 5,
createTime: '2023-10-18T17:08:22.249904+08:00',
updateTime: '2023-10-18T17:08:22.249904+08:00',
name: '监控1',
code: 'DEVICE00005',
position: '',
param: 'rtsp://admin:123456abc@192.168.10.83',
spec: '',
categoryFkId: 1,
groupFkId: 3,
isEnable: true,
remark: '',
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: 6,
createTime: '2023-10-25T14:05:16.797145+08:00',
updateTime: '2023-10-25T15:59:06.907597+08:00',
name: '监控5',
code: 'DEVICE00006',
position: '大厅1',
param: 'rtsp://admin:@192.168.10.203',
spec: '',
categoryFkId: 1,
groupFkId: 2,
isEnable: true,
remark: '',
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',
},
],
total: 5,
page: 1,
pageSize: 10,
},
msg: null,
success: true,
status: 200,
};

@ -1,242 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:32:31
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-02-05 15:21:21
* @FilePath: \general-ai-platform-web\mock\pools\deviceGroupData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**设备组- */
// 设备组网点选项列表
export const mockGetDeviceGroupFkSelectData = {
data: {
list: [
{
name: '南京网点',
id: 1,
},
{
name: '秦淮网点',
id: 2,
},
{
name: '江宁网点',
id: 3,
},
{
name: '安徽网点',
id: 4,
},
{
name: '合肥网点',
id: 5,
},
],
},
};
// 设备组网点树
export const mockGetDeviceGroupTreeData = {
data: {
tree: [
{
title: '南京网点1',
key: 1,
children: [
{
title: '秦淮网点',
key: 2,
children: [],
},
{
title: '江宁网点',
key: 3,
children: [],
},
],
},
{
title: '安徽网点',
key: 4,
children: [
{
title: '合肥网点',
key: 5,
children: [],
},
],
},
],
},
};
// 设备组列表分页
export const mockGetDeviceGroupListData = {
data: {
list: [
{
id: 1,
createTime: '2023-10-17T10:43:31.254107+08:00',
updateTime: '2023-10-17T10:45:25.030034+08:00',
name: '南京网点',
code: 'DG00002',
address: '江苏省南京市南京市栖霞区紫东路南京紫东国际创意园',
telephone: '12345',
lon: '118.914349',
lat: '32.086019',
managerName: '张三',
managerPhone: '111111111',
isEnable: true,
parentFkId: 0,
remark: '',
children: [
{
id: 2,
createTime: '2023-10-17T13:37:31.758471+08:00',
updateTime: '2023-10-17T13:39:31.530494+08:00',
name: '秦淮网点',
code: 'DG00003',
address: '江苏省南京市秦淮区中山南路79号',
telephone: '',
lon: '118.791819',
lat: '32.045002',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 1,
remark: '',
children: null,
key: '2',
},
{
id: 3,
createTime: '2023-10-17T13:40:28.823372+08:00',
updateTime: '2023-10-17T13:40:28.823372+08:00',
name: '江宁网点',
code: 'DG00004',
address: '江苏省南京市经济技术开发区双龙大道1680号',
telephone: '',
lon: '118.824682',
lat: '31.937062',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 1,
remark: '',
children: null,
key: '3',
},
],
key: '1',
},
{
id: 4,
createTime: '2023-10-17T15:02:30.725705+08:00',
updateTime: '2023-10-17T15:02:30.725705+08:00',
name: '安徽网点',
code: 'DG00005',
address: '',
telephone: '',
lon: '',
lat: '',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 0,
remark: '',
children: [
{
id: 5,
createTime: '2023-10-17T15:05:13.542992+08:00',
updateTime: '2023-10-17T15:08:01.071315+08:00',
name: '合肥网点',
code: 'DG00006',
address: '安徽省合肥市包河区马鞍山路130号',
telephone: '',
lon: '117.309214',
lat: '31.862594',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 4,
remark: '',
children: null,
key: '5',
},
],
key: '4',
},
],
total: 0,
page: 1,
pageSize: 10,
},
};
// 设备组详情
export const mockGetDeviceGroupData1 = {
data: {
deviceGroup: {
id: 2,
createTime: '2023-10-17T13:37:31.758471+08:00',
updateTime: '2023-10-17T13:39:31.530494+08:00',
name: '秦淮网点',
code: 'DG00003',
address: '江苏省南京市秦淮区中山南路79号',
telephone: '',
lon: '118.791819',
lat: '32.045002',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 1,
remark: '',
children: null,
key: '',
},
},
};
export const mockGetDeviceGroupData2 = {
data: {
deviceGroup: {
id: 3,
createTime: '2023-10-17T13:40:28.823372+08:00',
updateTime: '2023-10-17T13:40:28.823372+08:00',
name: '江宁网点',
code: 'DG00004',
address: '江苏省南京市经济技术开发区双龙大道1680号',
telephone: '',
lon: '118.824682',
lat: '31.937062',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 1,
remark: '',
children: null,
key: '',
},
},
};
export const mockGetDeviceGroupData3 = {
data: {
deviceGroup: {
id: 5,
createTime: '2023-10-17T15:05:13.542992+08:00',
updateTime: '2023-10-17T15:08:01.071315+08:00',
name: '合肥网点',
code: 'DG00006',
address: '安徽省合肥市包河区马鞍山路130号',
telephone: '',
lon: '117.309214',
lat: '31.862594',
managerName: '',
managerPhone: '',
isEnable: true,
parentFkId: 4,
remark: '',
children: null,
key: '',
},
},
};

@ -0,0 +1,188 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-17 13:58:57
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-17 14:05:50
* @FilePath: \general-ai-manage\mock\pools\dictData.ts
* @Description: mock
*/
export const mockGetIndustryDictData = {
data: {
results: [
{
id: 1001,
name: 'IT服务',
children: [
{ id: 1001000, name: '计算机软件/硬件/信息服务', children: [] },
{ id: 1001001, name: '互联网和相关服务', children: [] },
{ id: 1001002, name: '其他', children: [] },
],
icon: '',
},
{
id: 1002,
name: '制造业',
children: [
{ id: 1002000, name: '机械/电子', children: [] },
{ id: 1003000, name: '服装/纺织', children: [] },
{ id: 1002002, name: '汽车', children: [] },
{ id: 1002005, name: '金属制品', children: [] },
{ id: 1003002, name: '食品/饮料', children: [] },
{ id: 1003003, name: '家具/家纺', children: [] },
{ id: 1002001, name: '重工制造', children: [] },
{ id: 1003005, name: '家电/数码', children: [] },
{ id: 1002004, name: '橡胶/塑料', children: [] },
{ id: 1003004, name: '日用品/化妆品', children: [] },
{ id: 1002006, name: '化学原料制品', children: [] },
{ id: 1003007, name: '文教/工美/体育/娱乐用品', children: [] },
{ id: 1003006, name: '烟酒/茶', children: [] },
{ id: 1002007, name: '非金属矿物', children: [] },
{ id: 1002003, name: '其他', children: [] },
],
icon: '',
},
{
id: 1003,
name: '批发/零售',
children: [
{ id: 1003008, name: '批发', children: [] },
{ id: 1003010, name: '零售', children: [] },
{ id: 1003001, name: '超市/便利店/百货商场', children: [] },
{ id: 1003011, name: '进出口', children: [] },
{ id: 1003009, name: '其他', children: [] },
],
icon: '',
},
{
id: 1004,
name: '生活服务',
children: [
{ id: 1004001, name: '餐饮', children: [] },
{ id: 1004004, name: '居民服务', children: [] },
{ id: 1004002, name: '租赁和商务服务', children: [] },
{ id: 1004000, name: '酒店/住宿', children: [] },
{ id: 1004003, name: '其他', children: [] },
],
icon: '',
},
{
id: 1005,
name: '文化/体育/娱乐业',
children: [
{ id: 1005001, name: '文化/体育', children: [] },
{ id: 1005002, name: '娱乐/旅游', children: [] },
{ id: 1005000, name: '新闻传媒', children: [] },
{ id: 1005003, name: '其他', children: [] },
],
icon: '',
},
{
id: 1006,
name: '建筑/房地产',
children: [
{ id: 1006001, name: '建筑业', children: [] },
{ id: 1006002, name: '建材装修', children: [] },
{ id: 1006000, name: '房地产', children: [] },
{ id: 1006003, name: '其他', children: [] },
],
icon: '',
},
{
id: 1007,
name: '教育',
children: [
{ id: 1007000, name: '学前教育', children: [], desc: '如:托儿所、幼儿园' },
{ id: 1007001, name: '初中等教育', children: [], desc: '如:小学、初中、高中、职高' },
{ id: 1007002, name: '高等教育', children: [], desc: '如:大学、高职、高专' },
{ id: 1007003, name: '培训机构', children: [] },
{ id: 1007004, name: '其他', children: [] },
],
icon: '',
},
{
id: 1008,
name: '运输/物流/仓储',
children: [
{ id: 1008003, name: '物流/仓储', children: [] },
{ id: 1008000, name: '道路/铁路运输', children: [] },
{ id: 1008004, name: '邮政/快递', children: [] },
{ id: 1008001, name: '航空运输', children: [] },
{ id: 1008002, name: '水上运输', children: [] },
{ id: 1008005, name: '其他', children: [] },
],
icon: '',
},
{
id: 1009,
name: '医疗',
children: [
{ id: 1009000, name: '医院/医疗机构', children: [] },
{ id: 1009003, name: '医疗器械', children: [] },
{ id: 1009001, name: '医药制造', children: [] },
{ id: 1009002, name: '医药流通', children: [] },
{ id: 1009004, name: '其他', children: [] },
],
icon: '',
},
{
id: 1010,
name: '政府',
children: [
{ id: 1010000, name: '党政机关', children: [] },
{ id: 1010001, name: '国家权力/行政机构', children: [] },
{ id: 1010002, name: '检察院/法院/公安', children: [] },
{ id: 1010003, name: '民政/人社/交通/卫生', children: [] },
{ id: 1010004, name: '发改委/经信委/商务局/统计局', children: [] },
{ id: 1010005, name: '国土/规划', children: [] },
{ id: 1010006, name: '税务/海关/工商/环保/物价/药品', children: [] },
{ id: 1010007, name: '政协/民主党派', children: [] },
{ id: 1010008, name: '地方政府', children: [] },
{ id: 1010009, name: '其他', children: [] },
],
icon: '',
},
{
id: 1011,
name: '金融',
children: [
{ id: 1011000, name: '保险', children: [] },
{ id: 1011001, name: '银行', children: [] },
{ id: 1011002, name: '证券/投资/基金', children: [] },
{ id: 1011003, name: '其他', children: [] },
],
icon: '',
},
{
id: 1012,
name: '能源/采矿',
children: [
{ id: 1014003, name: '电力/热力/燃气/水供应业', children: [] },
{ id: 1012003, name: '石油/天然气', children: [] },
{ id: 1012002, name: '煤炭', children: [] },
{ id: 1012001, name: '有色金属', children: [] },
{ id: 1012000, name: '钢铁', children: [] },
{ id: 1012004, name: '其他', children: [] },
],
icon: '',
},
{
id: 1013,
name: '农林渔牧',
children: [{ id: 1013000, name: '农林渔牧', children: [] }],
icon: '',
},
{
id: 1014,
name: '其他行业',
children: [
{ id: 1014000, name: '科学研究和技术服务业', children: [] },
{ id: 1014002, name: '社会组织', children: [] },
{ id: 1014001, name: '水利和环境管理', children: [] },
{ id: 1014004, name: '国际组织', children: [] },
{ id: 1014005, name: '其他', children: [] },
],
icon: '',
},
],
},
};

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 16:05:16
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-24 16:18:18
* @LastEditTime: 2024-04-19 10:19:59
* @FilePath: \general-ai-platform-web\mock\pools\menuData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -10,301 +10,64 @@
export const mockGetMenuData = {
data: {
routes: [
// {
// path: '/welcome',
// key: '0',
// name: 'welcome',
// icon: 'HomeOutlined',
// access: '',
// component: 'Welcome',
// label: '首页',
// title: '首页',
// },
{
path: '/welcome',
key: '',
name: 'welcome',
icon: 'HomeOutlined',
access: '',
component: 'Welcome',
title: '首页',
routes: [],
},
{
path: '/resource',
key: '',
name: 'resource',
icon: 'BlockOutlined',
access: '',
component: '',
title: '资源管理',
routes: [
{
path: '/resource/model-version-list',
key: '19',
name: 'model-version-list',
icon: '',
access: '',
component: 'Resource/ModelVersionList',
title: '模型版本',
routes: [],
},
{
path: '/resource/model-image-list',
key: '18',
name: 'model-image-list',
icon: '',
access: '',
component: 'Resource/ModelImageList',
title: '模型镜像',
routes: [],
},
{
path: '/resource/model-category-list',
key: '20',
name: 'model-category-list',
icon: '',
access: '',
component: 'Resource/ModelCategoryList',
title: '模型类别',
routes: [],
},
{
path: '/resource/algorithm-model-list',
key: '17',
name: 'algorithm-model-list',
icon: '',
access: '',
component: 'Resource/AlgorithmModelList',
title: '模型列表',
routes: [],
},
{
path: '/resource/business-image-list',
key: '21',
name: 'business-image-list',
icon: '',
access: '',
component: 'Resource/BusinessImageList',
title: '业务镜像',
routes: [],
},
],
},
{
path: '/device',
key: '',
name: 'device',
icon: 'DesktopOutlined',
access: '',
component: '',
title: '设备管理',
routes: [
{
path: '/device/device-category-list',
key: '13',
name: 'device-category-list',
icon: '',
access: '',
component: 'Device/DeviceCategoryList',
title: '设备类别',
routes: [],
},
{
path: '/device/device-group-list',
key: '14',
name: 'device-group-list',
icon: '',
access: '',
component: 'Device/DeviceGroupList',
title: '设备组',
routes: [],
},
{
path: '/device/device-list',
key: '12',
name: 'device-list',
icon: '',
access: '',
component: 'Device/DeviceList',
title: '设备列表',
routes: [],
},
],
},
{
path: '/project',
key: '',
name: 'project',
icon: 'DatabaseOutlined',
access: '',
component: '',
title: '项目管理',
routes: [
{
path: '/project/project-list',
key: '24',
name: 'project-list',
icon: '',
access: '',
component: 'Project/ProjectList',
title: '项目列表',
routes: [],
},
],
},
{
path: '/algorithm_setting',
key: '',
name: 'algorithm_setting',
icon: 'ExperimentOutlined',
access: '',
component: '',
title: '项目部署',
routes: [],
},
{
path: '/analysis',
key: '',
name: 'analysis',
icon: 'DotChartOutlined',
access: '',
component: '',
title: '智能分析',
routes: [
{
path: '/analysis/action-detection-list',
key: '10',
name: 'action-detection-list',
icon: '',
access: '',
component: 'Analysis/ActionDetectionList',
title: '行为异常',
routes: [],
},
],
},
{
path: '/system',
key: '',
name: 'system',
icon: 'SettingOutlined',
access: '',
path: '/realTime',
key: '1',
name: 'realTime',
icon: 'WarningOutlined',
component: '',
title: '系统管理',
title: '实时分析',
access: 'canReadMenu',
routes: [
{
path: '/system/api-list',
key: '2',
name: 'api-list',
component: 'RealTime/InvolvedList',
icon: '',
access: '',
component: 'System/ApiList',
title: '接口列表',
key: '101',
name: 'realTime-involved-list',
path: '/realTime/involved-list',
routes: [],
title: '告警汇总',
access: 'canReadMenu',
},
{
path: '/system/menu-list',
key: '3',
name: 'menu-list',
component: 'RealTime/AlarmList',
icon: '',
access: '',
component: 'System/MenuList',
title: '菜单列表',
key: '102',
name: 'realTime-alarm-list',
path: '/realTime/alarm-list',
routes: [],
title: '告警列表',
},
{
path: '/system/role-list',
key: '4',
name: 'role-list',
component: 'RealTime/AlarmRules',
icon: '',
access: '',
component: 'System/RoleList',
title: '角色列表',
key: '103',
name: 'realTime-alarm-rules',
path: '/realTime/alarm-rules',
routes: [],
title: '告警规则',
},
{
path: '/system/user-list',
key: '5',
name: 'user-list',
component: 'RealTime/DeviceList',
icon: '',
access: '',
component: 'System/UserList',
title: '用户列表',
routes: [],
},
{
path: '/system/post-list',
key: '6',
name: 'post-list',
icon: '',
access: '',
component: 'System/PostList',
title: '岗位列表',
routes: [],
},
{
path: '/system/department-list',
key: '7',
name: 'department-list',
icon: '',
access: '',
component: 'System/DepartmentList',
title: '部门列表',
routes: [],
},
{
path: '/system/operation_record-list',
key: '8',
name: 'operation_record-list',
icon: '',
access: '',
component: 'System/OperationRecordList',
title: '操作日志',
key: '104',
name: 'realTime-device-list',
path: '/realTime/device-list',
routes: [],
title: '设备管理',
},
],
},
{
path: '/task',
key: '',
name: 'task',
icon: 'CalendarOutlined',
access: '',
component: '',
title: '任务管理',
routes: [],
},
{
path: '/alarm',
key: '',
name: 'alarm',
icon: 'WarningOutlined',
access: '',
component: '',
title: '告警管理',
routes: [],
},
{
path: 'compute_power',
key: '',
name: 'compute_power',
icon: 'ThunderboltOutlined',
access: '',
component: 'Hidden',
title: '算力配置',
routes: [],
},
// {
// path: 'http://192.168.10.96:5601/app/r/s/uDpRg',
// key: '',
// name: 'logging',
// icon: 'BugOutlined',
// access: '',
// component: 'Hidden',
// title: '日志管理',
// routes: [],
// },
// {
// path: 'http://localhost:9003/#/bankScreen',
// key: '',
// name: 'data_screen',
// icon: 'AreaChartOutlined',
// access: '',
// component: 'Hidden',
// title: '数据大屏',
// routes: [],
// },
],
}
},
};

@ -1,44 +0,0 @@
/**模型类别 */
// 模型列表列表分页
export const mockGetModelCategoryListData = {
data: {
list: [
{
id: 1,
createTime: '2023-10-19T14:42:20.743086+08:00',
updateTime: '2023-10-19T14:42:20.743086+08:00',
name: 'ocr识别1',
code: 'MC00001',
remark: '',
},
{
id: 2,
createTime: '2023-10-20T13:55:51.395842+08:00',
updateTime: '2023-10-20T13:55:51.395842+08:00',
name: '目标识别',
code: 'MC00002',
remark: '',
},
],
total: 2,
page: 1,
pageSize: 10,
},
};
// 模型列表不分页
export const mockGetModelCategoryFkSelectData = {
data: {
list: [
{
name: 'ocr识别1',
id: 1,
},
{
name: '目标识别',
id: 2,
},
],
}
};

@ -1,70 +1,13 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 16:58:15
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-02-07 14:45:25
* @FilePath: \general-ai-platform-web\mock\pools\algorithmModelData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**算法模型- */
// 选择模型
export const mockGetAlgorithmModelFkSelectData = {
data: {
list: [
{
name: '玩手机识别',
id: 1,
defaultVersionFkId: null,
},
{
name: '打瞌睡123',
id: 2,
defaultVersionFkId: null,
},
{
name: '离岗',
id: 3,
defaultVersionFkId: null,
},
{
name: '玩手机识别1',
id: 4,
defaultVersionFkId: 6,
},
{
name: '玩手机yolo1',
id: 5,
defaultVersionFkId: 5,
},
{
name: '玩手机yolo2',
id: 6,
defaultVersionFkId: 4,
},
{
name: '打瞌睡yolo1',
id: 7,
defaultVersionFkId: 7,
},
{
name: '离岗yolo1',
id: 8,
defaultVersionFkId: 23,
},
{
name: '测试模型',
id: 9,
defaultVersionFkId: 27,
},
],
},
};
import { generateRandomString } from '../utils/mockHash';
import { generateRandomDateTimeByYear } from '../utils/mockMoment';
// 模型列表
export const mockGetAlgorithmModelListData = {
export const mockGetModelListData = {
data: {
list: [
count: 257,
next: null,
previous: null,
results: [
{
id: 1,
industry: '通用',
@ -3201,128 +3144,111 @@ export const mockGetAlgorithmModelListData = {
updateTime: '2024-01-25T13:36:46.33681+08:00',
},
],
total: 257,
page: 1,
pageSize: 10,
},
};
// 模型所属行业
export const industryData = {
data: [
{
id: 0,
name: '通用类',
},
{
id: 1,
name: '电子/手机/SMT',
},
{
id: 2,
name: '手机/液晶显示屏',
},
{
id: 3,
name: '管材线缆',
},
{
id: 4,
name: '锂电池',
},
{
id: 5,
name: '食品饮料',
},
{
id: 6,
name: '陶瓷卫浴',
},
{
id: 7,
name: '光伏',
},
{
id: 8,
name: '精密加工',
},
{
id: 9,
name: '冶金铸造',
},
{
id: 10,
name: '银行,营业厅',
},
{
id: 11,
name: '汽车',
},
{
id: 12,
name: 'PCB板',
},
{
id: 13,
name: '机加工',
},
{
id: 14,
name: '造纸',
},
{
id: 15,
name: '玻璃',
},
{
id: 16,
name: '薄膜',
},
{
id: 17,
name: '金属工艺',
},
{
id: 18,
name: '无纺布',
},
{
id: 19,
name: '薄膜材料',
},
{
id: 20,
name: '医疗卫生',
},
],
// 模型运行库列表
export const mockGetModelRuntimeLibListData = {
data: {
count: 5,
results: [
{
id: 1,
createTime: '2023-12-28T10:53:15.871746+08:00',
updateTime: '2023-12-28T16:17:04.871746+08:00',
name: '玻璃表面缺陷检测',
path: '192.168.10.60:5000/ubuntu:v1',
startCode: '',
remark: '',
},
{
id: 2,
createTime: '2024-03-02T11:05:31.871746+08:00',
updateTime: '2024-03-02T12:37:08.871746+08:00',
name: '管材表面缺陷检测',
path: '192.168.10.60:5000/ubuntu:v1',
startCode: '',
remark: '',
},
{
id: 3,
createTime: '2024-03-06T17:25:31.871746+08:00',
updateTime: '2024-04-01T09:13:44.871746+08:00',
name: '锂电池底壳焊工位检测',
path: '192.168.10.60:5000/ubuntu:v1',
startCode: '',
remark: '',
},
{
id: 4,
createTime: '2024-03-14T13:07:31.871746+08:00',
updateTime: '2024-04-12T09:51:02.871746+08:00',
name: '气泡检测',
path: '192.168.10.60:5000/ubuntu:v1',
startCode: '',
remark: '',
},
{
id: 5,
createTime: '2024-04-10T12:39:10.871746+08:00',
updateTime: '2024-04-14T14:03:55.871746+08:00',
name: '明火烟雾识别',
path: '192.168.10.60:5000/ubuntu:v1',
startCode: '',
remark: '',
},
],
},
};
// 模型运行库文件
export const mockGetModelRuntimeLibFilesListData = {
data: {
results: [
{
name: '2024011014302001.zip',
id: '001',
},
{
name: '2024041409210478.zip',
id: '002',
},
],
},
};
// 模型版本
// 模型名称定义
export const modelData = {
data: [
{
areaName: '精密仪器车间', //区域名称
serverName: 'supvision_ai_server_prod001', // 服务器名称
cameraName: 'GigEPRO_gmcam_01_001', // 摄像头名称
deviceName: 'IVP04A_01_001', // 分布式设备
modelVersion: 'V1.0', // 模型版本
modelImage: '模型名称_版本号_MI', // 模型镜像
},
{
areaName: '装配间', //区域名称
serverName: 'supvision_ai_server_prod002', // 服务器名称
cameraName: 'GigEPRO_gmcam_02_001', // 摄像头名称
deviceName: 'IVP04A_01_002', // 分布式设备
modelVersion: 'V1.1.0', // 模型版本
modelImage: '模型名称_版本号_MI', // 模型镜像
},
{
areaName: '机械加工车间', //区域名称
serverName: 'supvision_ai_server_prod003', // 服务器名称
cameraName: 'ipcam_03_001', // 摄像头名称
deviceName: 'IVP04A_01_003', // 分布式设备
modelVersion: 'V1.1.1', // 模型版本
modelImage: '模型名称_版本号_MI', // 模型镜像
},
],
const startModelVersionList = () => {
const currList: Record<string, any>[] = [];
const count = Math.floor(Math.random() * 100) + 1;
const baseVersion = 'V' + Math.floor(Math.random() * 10);
const currFileTime = new Date().getTime();
const randomString = generateRandomString(20);
// const hash = generateHash(randomString)
for (let i = 0; i < count; i++) {
const isEnable = i === 0;
currList.push({
id: i + '1',
updateTime: generateRandomDateTimeByYear(2023),
name: baseVersion + '.' + Math.floor(Math.random() * 4) + '.' + i,
path: `uploads/file/models/${randomString}/${
currFileTime + Math.floor(Math.random() * 1000) + i
}.zip`,
size: Math.floor(Math.random() * 1000) + 'M',
remark: '',
isEnable,
});
}
return {
count,
results: currList,
};
};
export const mockGetModelVersionListData = {
data: {
next: null,
previous: null,
...JSON.parse(JSON.stringify(startModelVersionList())),
},
};

@ -1,28 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 09:54:36
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 13:20:48
* @FilePath: \general-ai-platform-web\mock\pools\modelImage.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**模型镜像-选择模型 */
// 模型镜像列表
export const mockGetModelImageListData = {
data: {
list: [
{
id: 1,
createTime: '2023-12-28T10:53:15.871746+08:00',
updateTime: '2023-12-28T10:53:15.871746+08:00',
name: 'ubuntu基础1',
path: '192.168.10.60:5000/ubuntu:v1',
startCode: '',
remark: '',
},
],
total: 1,
page: 1,
pageSize: 10,
},
};

@ -1,635 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 16:59:35
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 13:24:41
* @FilePath: \general-ai-platform-web\mock\pools\modelVersionData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**模型版本 */
// 模型版本列表
export const mockGetModelVersionListData = {
data: {
list: [
{
id: 240,
createTime: '2023-11-10T16:05:24.289341+08:00',
updateTime: '2023-11-10T16:05:24.289341+08:00',
modelFkId: 4,
version: '',
path: '测试',
modelConfig: {
params: [
{
name: 'frame11',
default: 10,
},
{
name: 'name11',
default: 'test',
},
{
name: 'cews',
default: '111',
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 25,
createTime: '2023-11-10T16:05:53.393208+08:00',
updateTime: '2023-11-13T11:07:27.657412+08:00',
modelFkId: 6,
version: 'V1.22',
path: '////',
modelConfig: {
params: [
{
name: 'frame',
default: 10,
},
{
name: 'name',
default: 'test',
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 26,
createTime: '2023-12-26T16:58:53.617618+08:00',
updateTime: '2023-12-26T16:58:53.617618+08:00',
modelFkId: 1,
version: 'v1',
path: 'uploads/file/models/1703581116930/cddfa9c25b2c3c20ce703209385ea557_20231226165845.zip',
modelConfig: {
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'model_parameter',
default: {
device: 'gpu',
confidence: 0.2,
label_names: ['Keypad', 'hands', 'keyboard', 'mouse', 'phone'],
object_num_min: false,
relevancy_para: 0.001,
compara_relevancy: 'overlap',
compara_label_names: ['hands', 'phone'],
},
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
{
name: 'test',
default: [
{
eee: 'eee',
},
{
bbb: 'bbb',
},
],
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 27,
createTime: '2023-12-26T17:19:45.436658+08:00',
updateTime: '2023-12-26T17:19:45.436658+08:00',
modelFkId: 9,
version: 'V1',
path: 'uploads/file/models/1703582356909/cddfa9c25b2c3c20ce703209385ea557_20231226171938.zip',
modelConfig: {
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'model_parameter',
default: {
device: 'gpu',
confidence: 0.2,
label_names: ['Keypad', 'hands', 'keyboard', 'mouse', 'phone'],
object_num_min: false,
relevancy_para: 0.001,
compara_relevancy: 'overlap',
compara_label_names: ['hands', 'phone'],
},
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
{
name: 'test',
default: [
{
eee: 'eee',
},
{
bbb: 'bbb',
},
],
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 1,
createTime: '2023-10-21T11:16:46.244747+08:00',
updateTime: '2023-10-23T09:23:38.477132+08:00',
modelFkId: 5,
version: 'V1.0',
path: '/path/a.onnx',
modelConfig: null,
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 2,
createTime: '2023-10-21T11:17:11.704304+08:00',
updateTime: '2023-10-23T09:23:55.998654+08:00',
modelFkId: 5,
version: 'V1.2',
path: '/path/b.onnx',
modelConfig: null,
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 3,
createTime: '2023-10-21T11:17:49.609481+08:00',
updateTime: '2023-10-23T09:24:14.832605+08:00',
modelFkId: 5,
version: 'V1.1',
path: 'aa',
modelConfig: null,
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 4,
createTime: '2023-10-21T11:18:01.331091+08:00',
updateTime: '2023-10-23T09:24:43.671437+08:00',
modelFkId: 6,
version: 'V1.0',
path: 'aaa',
modelConfig: {
params: [
{
name: 'model',
remark: '1',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
remark: '2',
default: './tensort_cache/yolov5_phone.trt',
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 5,
createTime: '2023-10-24T15:03:46.104742+08:00',
updateTime: '2023-10-25T17:39:18.952711+08:00',
modelFkId: 5,
version: 'V11',
path: '../config_phone.yaml',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 7,
createTime: '2023-10-25T13:58:04.622319+08:00',
updateTime: '2023-10-25T17:39:37.221289+08:00',
modelFkId: 7,
version: 'V1.0',
path: '../config_sleep.yaml',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 8,
createTime: '2023-10-25T13:59:04.80433+08:00',
updateTime: '2023-10-25T17:39:53.069411+08:00',
modelFkId: 8,
version: 'V1.0',
path: '../config_person.yaml',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 11,
createTime: '2023-11-03T16:44:15.776907+08:00',
updateTime: '2023-11-03T16:44:15.776907+08:00',
modelFkId: 3,
version: '',
path: 'aa',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 12,
createTime: '2023-11-03T16:45:39.870898+08:00',
updateTime: '2023-11-03T16:45:39.870898+08:00',
modelFkId: 3,
version: '',
path: 'aa',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 13,
createTime: '2023-11-03T16:46:36.363785+08:00',
updateTime: '2023-11-03T16:46:36.363785+08:00',
modelFkId: 2,
version: '',
path: 'aa',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 14,
createTime: '2023-11-03T16:47:24.709797+08:00',
updateTime: '2023-11-03T16:47:24.709797+08:00',
modelFkId: 3,
version: '',
path: 'ss',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 15,
createTime: '2023-11-03T16:48:31.95034+08:00',
updateTime: '2023-11-03T16:48:31.95034+08:00',
modelFkId: 3,
version: '',
path: '111',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 16,
createTime: '2023-11-03T16:49:41.864377+08:00',
updateTime: '2023-11-03T16:49:41.864377+08:00',
modelFkId: 2,
version: '',
path: 'aaaa',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 17,
createTime: '2023-11-03T16:51:14.719832+08:00',
updateTime: '2023-11-03T16:51:14.719832+08:00',
modelFkId: 2,
version: '',
path: 'sss',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 18,
createTime: '2023-11-03T16:54:33.550247+08:00',
updateTime: '2023-11-03T16:54:33.550247+08:00',
modelFkId: 2,
version: '',
path: 'sss',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 19,
createTime: '2023-11-03T16:56:04.760163+08:00',
updateTime: '2023-11-03T16:56:04.760163+08:00',
modelFkId: 3,
version: '',
path: 'sss',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 20,
createTime: '2023-11-03T16:56:56.39397+08:00',
updateTime: '2023-11-03T16:56:56.39397+08:00',
modelFkId: 3,
version: '',
path: 'ddd',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 21,
createTime: '2023-11-03T16:57:43.040174+08:00',
updateTime: '2023-11-03T16:57:43.040174+08:00',
modelFkId: 2,
version: '',
path: 'aaa',
modelConfig: {
params: [],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 22,
createTime: '2023-11-03T16:59:59.243265+08:00',
updateTime: '2023-11-03T16:59:59.243265+08:00',
modelFkId: 1,
version: '',
path: 'aaa',
modelConfig: {
params: [
{
name: 'model',
remark: '1',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
remark: '2',
default: './tensort_cache/yolov5_phone.trt',
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
{
id: 23,
createTime: '2023-11-09T09:43:51.549764+08:00',
updateTime: '2023-11-09T09:43:51.549764+08:00',
modelFkId: 8,
version: 'V1.1',
path: 'fff',
modelConfig: {
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
],
},
startCode: '',
status: 1,
isEnable: true,
remark: '',
},
],
total: 24,
page: 1,
pageSize: 10,
},
};
// 模型版本-选择
export const mockGetModelVersionFkSelect = {
data: {
list: [
{
name: 'V1.0001',
id: 1,
},
{
name: 'V1.2',
id: 2,
},
{
name: 'V1.1',
id: 3,
},
{
name: 'v1',
id: 26,
},
{
name: 'V1',
id: 27,
},
{
name: 'V11',
id: 5,
},
{
name: 'V1.0',
id: 7,
},
{
name: 'V1.0',
id: 8,
},
{
name: '',
id: 11,
},
{
name: '',
id: 12,
},
],
}
};

@ -1,514 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:43:31
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-02-05 15:24:57
* @FilePath: \general-ai-platform-web\mock\pools\projectData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**项目- */
// 项目选项 (不分页)
export const mockGetProjectFkSelectData = {
data: {
list: [
{
name: '玩手机1',
id: 38,
},
{
name: '离岗检测',
id: 40,
},
{
name: '打瞌睡检测',
id: 39,
},
{
name: '测试',
id: 42,
},
{
name: '测试1',
id: 43,
},
{
name: '测试2',
id: 44,
},
{
name: '测试4',
id: 46,
},
{
name: '测试5',
id: 47,
},
{
name: '测试6',
id: 48,
},
{
name: '测试7',
id: 49,
},
],
},
};
// 项目列表 分页
export const mockGetProjectListData = {
data: {
list: [
{
id: 38,
createTime: '2023-10-24T14:03:52.959113+08:00',
updateTime: '2023-10-24T14:03:52.959113+08:00',
name: '玩手机1',
code: 'XM00038',
info: '玩手机',
projectFilePath:
'uploads/file/project/files/da9c3e5bd8bdf5026aa47bee87e81ccc_20231024140343.zip',
inferConfig: {
models: [5],
params: [],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 39,
createTime: '2023-10-25T13:06:28.092394+08:00',
updateTime: '2023-10-25T13:06:28.092394+08:00',
name: '打瞌睡检测',
code: 'XM00039',
info: '打瞌睡',
projectFilePath: '',
inferConfig: {
models: [7],
params: [],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 40,
createTime: '2023-10-25T14:01:24.985459+08:00',
updateTime: '2023-10-25T14:01:24.985459+08:00',
name: '离岗检测',
code: 'XM00040',
info: '离岗检测',
projectFilePath: '',
inferConfig: {
models: [8],
params: [],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 42,
createTime: '2023-11-06T10:11:06.735872+08:00',
updateTime: '2023-11-06T10:11:06.735872+08:00',
name: '测试',
code: 'XM00042',
info: '测试1',
projectFilePath: '',
inferConfig: {
models: [1],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'model_parameter',
default: {
device: 'gpu',
confidence: 0.2,
label_names: ['Keypad', 'hands', 'keyboard', 'mouse', 'phone'],
object_num_min: false,
relevancy_para: 0.001,
compara_relevancy: 'overlap',
compara_label_names: ['hands', 'phone'],
},
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 43,
createTime: '2023-11-06T13:40:16.031088+08:00',
updateTime: '2023-11-06T13:40:16.031088+08:00',
name: '测试1',
code: 'XM00043',
info: '测试1',
projectFilePath: '',
inferConfig: {
models: [1],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'model_parameter',
default: {
device: 'gpu',
confidence: 0.2,
label_names: ['Keypad', 'hands', 'keyboard', 'mouse', 'phone'],
object_num_min: false,
relevancy_para: 0.001,
compara_relevancy: 'overlap',
compara_label_names: ['hands', 'phone'],
},
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
{
name: 'test',
default: [
{
eee: 'eee',
},
{
bbb: 'bbb',
},
],
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 44,
createTime: '2023-11-06T13:41:20.873017+08:00',
updateTime: '2023-11-06T13:41:20.873017+08:00',
name: '测试2',
code: 'XM00044',
info: '测试2',
projectFilePath: '',
inferConfig: {
models: [1],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 46,
createTime: '2023-11-06T16:20:16.19561+08:00',
updateTime: '2023-11-06T16:20:16.19561+08:00',
name: '测试4',
code: 'XM00046',
info: '测试4',
projectFilePath: '',
inferConfig: {
models: [8],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 47,
createTime: '2023-11-06T16:29:11.765524+08:00',
updateTime: '2023-11-06T16:29:11.765524+08:00',
name: '测试5',
code: 'XM00047',
info: '测试5',
projectFilePath: '',
inferConfig: {
models: [7, 6],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
{
name: 'save_path',
default: false,
},
{
name: 'test_path',
default: false,
},
{
name: 'save_path_original',
default: false,
},
{
name: 'save_annotations',
default: false,
},
{
name: 'save_videos',
default: './video_save_path/hands',
},
{
name: 'detect_time',
default: 300,
},
{
name: 'detect_time_small',
default: 20,
},
{
name: 'detect_ratio',
default: 0.5,
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 48,
createTime: '2023-11-07T16:17:51.448947+08:00',
updateTime: '2023-11-07T16:17:51.448947+08:00',
name: '测试6',
code: 'XM00048',
info: '测试6',
projectFilePath: '',
inferConfig: {
models: [8, 7, 6],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
{
id: 49,
createTime: '2023-11-07T16:22:03.174411+08:00',
updateTime: '2023-11-07T16:22:03.174411+08:00',
name: '测试7',
code: 'XM00049',
info: '测试7',
projectFilePath: '',
inferConfig: {
models: [8, 7, 6],
params: [
{
name: 'model',
default: './model_file/yolov5_phone.onnx',
},
{
name: 'model_cache',
default: './tensort_cache/yolov5_phone.trt',
},
],
},
isEnable: true,
groupIds: null,
remark: '',
},
],
total: 27,
page: 1,
pageSize: 10,
},
};
// 项目详情通过设备组
export const mockGetProjectByGroupIdData = {
data: {
list: [
{
name: '测试3334',
id: 65,
models: [
{
modelName: '玩手机yolo2',
version: 'V1.0',
configId: 2,
updateTime: '2023-12-28 13:57:29',
},
{
modelName: '玩手机yolo2',
version: 'V1.0',
configId: 1,
updateTime: '2023-12-28 13:57:52',
},
],
},
],
}
};

@ -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,
};

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 15:18:28
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-24 16:27:20
* @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
*/
@ -18,6 +18,7 @@ export const mockBaseLoginData = {
phone: '',
email: '',
avatarId: 1,
access: 'admin',
roleId: 1,
postId: null,
deptId: null,
@ -28,7 +29,7 @@ export const mockBaseLoginData = {
lastLoginTime: '2024-01-24T14:56:32.6205134+08:00',
},
token:
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6MSwiVXNlcm5hbWUiOiJhZG1pbiIsIk5pY2tOYW1lIjoi566h55CG5ZGYIiwiUm9sZUlkIjoxLCJCdWZmZXJUaW1lIjo4NjQwMCwiaXNzIjoicW1QbHVzIiwiYXVkIjpbIkdWQSJdLCJleHAiOjE3MDY2ODQxOTIsIm5iZiI6MTcwNjA3OTM5Mn0.Vts4lGMp8X1EpobwqMB6StN7vO8HB4G5jBm_K8DvON4',
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6MSwiVXNlcm5hbWUiOiJhZG1pbiIsIk5pY2tOYW1lIjoi566h55CG5ZGYIiwiUm9sZUlkIjoxLCJCdWZmZXJUaW1lIjo4NjQwMCwiaXNzIjoicW1QbHVzIiwiYXVkIjpbIkdWQSJdLCJleHAiOjE3MDYyNTk0NjIsIm5iZiI6MTcwNTY1NDY2Mn0.Iyc74dPDLCc-J3AA_V-KEmVP4vihYzmasXok_jlvOvE',
expiresAt: 1706684192000,
},
msg: '登录成功',
@ -49,6 +50,7 @@ export const mockGetUserInfoData = {
roleId: 1,
postId: null,
deptId: null,
access: 'admin',
roleIds: '1',
postIds: '',
remark: '',

@ -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,
};

@ -1,43 +0,0 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 14:07:33
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-02-05 15:13:31
* @FilePath: \general-ai-platform-web\mock\project.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**项目模块 mock */
import { mockGetProjectFkSelectData, mockGetProjectListData, mockGetProjectByGroupIdData } from './pools/projectData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 项目选项
'POST /api/v1/project/getProjectFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetProjectFkSelectData),
};
res.send(resData);
},
// 项目列表分页
'POST /api/v1/project/getProjectList': async (req: Request, res: Response) => {
const { page, pageSize } = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetProjectListData,
data: { ...mockGetProjectListData.data, page, pageSize: pageSize || 10 },
}),
};
res.send(resData);
},
// 项目列表by设备组
'POST /api/v1/project/getProjectByGroupId': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetProjectByGroupIdData),
};
res.send(resData);
},
};

@ -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/': 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/': 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,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/': 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/': 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

@ -8,19 +8,18 @@
*/
/**成功返回数据结构 */
export interface successMockApiProps {
code: number // 0 成功
success: boolean // true 成功
data: any // mock业务层数据
msg: string | undefined // 成功提示
isMock: boolean // true 标识当前是模拟数据
status: number; // 200 成功
success: boolean; // true 成功
data: any; // mock业务层数据
msg: string | undefined; // 成功提示
isMock: boolean; // true 标识当前是模拟数据
}
/**失败返回数据结构 */
export interface failMockApiProps {
code?: number // 7 失败
success: boolean // false 失败
data: any // mock业务层数据
msg: string | undefined // 成功提示
isMock: boolean // true 标识当前是模拟数据
status?: number; // 500 失败
success: boolean; // false 失败
data: any; // mock业务层数据
msg: string | undefined; // 成功提示
isMock: boolean; // true 标识当前是模拟数据
}

@ -30,10 +30,10 @@ const getAccess = () => {
// 代码中会兼容本地 service mock 以及部署站点的静态数据
export default {
// 登录
'POST /api/v1/base/login': async (req: Request, res: Response) => {
'POST /api/base/login': async (req: Request, res: Response) => {
const { password, username, type } = req.body;
await waitTime(1000);
if (password === '123456' && username === 'admin') {
if (password === 'admin123' && username === 'admin') {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseLoginData),
};
@ -70,8 +70,7 @@ export default {
access = 'guest';
},
// 获取用户信息
'GET /api/v1/user/getUserInfo': async (req: Request, res: Response) => {
await waitTime(1000);
'GET /api/user/getUserInfo': async (req: Request, res: Response) => {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetUserInfoData),
};
@ -79,14 +78,14 @@ export default {
access = 'admin';
},
// 获取图形验证码
'POST /api/v1/base/captcha': (req: Request, res: Response) => {
'POST /api/base/captcha': (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseCaptchaData),
};
res.send(resData);
},
// 登出
'POST /api/v1/jwt/jsonInBlacklist': (req: Request, res: Response) => {
'POST /api/jwt/jsonInBlacklist': (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther({ data: {}, msg: 'jwt作废成功' }),
};

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 15:08:23
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-01-25 11:05:32
* @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
*/
@ -10,7 +10,7 @@
import { failMockApiProps, successMockApiProps } from '../typing';
export function fetchMockSuccessFullByOther({ data, msg }): successMockApiProps {
return {
code: 0, // 0 成功
status: 200, // 0 成功状态码
success: true, // true 成功
data: data || null, // mock业务层数据
msg: msg | 'ok', // 成功提示
@ -20,7 +20,7 @@ export function fetchMockSuccessFullByOther({ data, msg }): successMockApiProps
export function fetchMockFailFullByOther({ data, msg }): failMockApiProps {
return {
code: 599, // 0 成功
status: 500, // 失败状态码
success: true, // true 成功
data: data || null, // mock业务层数据
msg: msg | 'fail', // 成功提示
@ -30,14 +30,12 @@ export function fetchMockFailFullByOther({ data, msg }): failMockApiProps {
// 分页展示
export function fetchCurrPageByList({ data }): successMockApiProps {
console.log("fetchCurrPageByList_data", data)
console.log('fetchCurrPageByList_data', data);
const { page, pageSize } = data;
const prevPage = page - 1;
const currPageData = {
...data,
list: data.list.slice(prevPage * pageSize, page * pageSize),
results: data.results.slice(prevPage * pageSize, page * pageSize),
};
return fetchMockSuccessFullByOther({ data: currPageData });
}

@ -0,0 +1,38 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-18 10:46:41
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-18 10:47:57
* @FilePath: \general-ai-manage\mock\utils\mockHash.ts
* @Description:
*/
// 生成随机字符串
export function generateRandomString(length) {
let result = '';
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
// 生成哈希值
export function generateHash(str) {
let hash = 0;
if (str.length == 0) return hash;
for (let i = 0; i < str.length; i++) {
const char = str.charCodeAt(i);
hash = (hash << 5) - hash + char;
hash = hash & hash; // Convert to 32bit integer
}
return Math.abs(hash).toString(16).slice(-4);
}
// 生成随机字符串
// const randomString = generateRandomString(10);
// // 生成哈希值
// const hash = generateHash(randomString);
// console.log(hash); // 输出一个随机的 16 位哈希值

@ -0,0 +1,36 @@
export function generateRandomDateTimeByYear(year) {
// 生成随机月份1-12
const month = Math.floor(Math.random() * 12) + 1;
// 生成随机日期1-31
const day = Math.floor(Math.random() * 31) + 1;
// 生成随机小时0-23
const hour = Math.floor(Math.random() * 24);
// 生成随机分钟0-59
const minute = Math.floor(Math.random() * 60);
// 生成随机秒钟0-59
const second = Math.floor(Math.random() * 60);
// 返回随机日期和时间的字符串
return `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ${
hour < 10 ? '0' : ''
}${hour}:${minute < 10 ? '0' : ''}${minute}:${second < 10 ? '0' : ''}${second}`;
}
export function generateRandomMoment(date = new Date(), type = 'HH:mm:ss') {
// 生成随机小时0-23
const hour = Math.floor(Math.random() * 24);
// 生成随机分钟0-59
const minute = Math.floor(Math.random() * 60);
// 生成随机秒钟0-59
const second = Math.floor(Math.random() * 60);
// 返回随机日期和时间的字符串
return `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}:${
second < 10 ? '0' : ''
}${second}`;
}

@ -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/': 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/': 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/': 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/': 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);
},
};

@ -5,7 +5,7 @@
"description": "An out-of-box UI solution for enterprise applications",
"scripts": {
"analyze": "cross-env ANALYZE=1 max build",
"build": "cross-env API_ENV=production max build",
"build": "max build",
"deploy": "npm run build && npm run gh-pages",
"dev": "npm run start:dev",
"gh-pages": "gh-pages -d dist",
@ -21,7 +21,7 @@
"openapi": "max openapi",
"prepare": "husky install",
"prettier": "prettier -c --write \"**/**.{js,jsx,tsx,ts,less,md,json}\"",
"preview": "npm run build && max preview --port 8000",
"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",
@ -46,61 +46,58 @@
"not ie <= 10"
],
"dependencies": {
"@ant-design/charts": "^1.4.2",
"@ant-design/icons": "^4.8.0",
"@ant-design/pro-components": "^2.6.29",
"@ant-design/use-emotion-css": "1.0.4",
"@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.5.1",
"classnames": "^2.3.2",
"echarts": "^5.4.3",
"echarts-for-react": "^3.0.2",
"fabric": "^5.3.0",
"antd": "^5.13.2",
"antd-style": "^3.6.1",
"classnames": "^2.5.1",
"js-yaml": "^4.1.0",
"lodash": "^4.17.21",
"moment": "^2.29.4",
"omit.js": "^2.0.2",
"querystring": "^0.2.1",
"rc-menu": "^9.9.2",
"rc-util": "^5.32.2",
"rc-menu": "^9.12.4",
"rc-util": "^5.38.1",
"react": "^18.2.0",
"react-cookies": "^0.1.1",
"react-dev-inspector": "^1.8.4",
"react-dom": "^18.2.0",
"react-helmet-async": "^1.3.0",
"video.js": "^8.5.2",
"webrtc-streamer": "^0.8.3-4-g2d0afce"
"react-helmet-async": "^1.3.0"
},
"devDependencies": {
"@ant-design/pro-cli": "^2.1.5",
"@ant-design/pro-cli": "^3.3.0",
"@testing-library/react": "^13.4.0",
"@types/classnames": "^2.3.1",
"@types/express": "^4.17.17",
"@types/fabric": "^5.3.6",
"@types/express": "^4.17.21",
"@types/history": "^4.7.11",
"@types/jest": "^29.5.1",
"@types/js-yaml": "^4.0.8",
"@types/lodash": "^4.14.195",
"@types/react": "^18.2.7",
"@types/react-dom": "^18.2.4",
"@types/react-helmet": "^6.1.6",
"@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.0.69",
"@umijs/max": "^4.0.69",
"@umijs/lint": "^4.1.1",
"@umijs/max": "^4.1.1",
"autoprefixer": "^10.4.19",
"cross-env": "^7.0.3",
"eslint": "^8.41.0",
"eslint": "^8.56.0",
"express": "^4.18.2",
"gh-pages": "^3.2.3",
"husky": "^7.0.4",
"jest": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
"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",
"swagger-ui-dist": "^4.19.0",
"ts-node": "^10.9.1",
"typescript": "^5.0.0",
"umi-presets-pro": "^2.0.3"
"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"

File diff suppressed because it is too large Load Diff

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -0,0 +1,303 @@
<svg width="194" height="129" viewBox="0 0 194 129" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_11045_41425)">
<path d="M117.964 50.9382L154.477 72.1147L117.964 93.2911L81.4509 72.1147L117.964 50.9382Z" fill="url(#paint0_linear_11045_41425)"/>
<path d="M24.6183 58.3708L45.2365 70.3288L24.6183 82.2868L4 70.3288L24.6183 58.3708Z" fill="url(#paint1_linear_11045_41425)"/>
<path d="M45.2364 57.9582L24.6182 46.0002V58.3706L45.2364 70.3286V57.9582Z" fill="#D9D9D9"/>
<path d="M24.6183 46.0002L4 57.9582V70.3286L24.6183 58.3706V46.0002Z" fill="#D9D9D9"/>
<path d="M4 57.9584L24.6183 69.9164V82.2867L4 70.3287V57.9584Z" fill="url(#paint2_linear_11045_41425)"/>
<rect width="23.835" height="23.835" transform="matrix(0.865042 0.501699 -0.865042 0.501699 24.6182 46.0002)" fill="#FCFEFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M45.2364 57.9584L24.6182 69.9164V82.2867L27.9999 80.3254V78.0119C27.9999 76.9073 28.7745 75.5626 29.73 75.0085L40.2698 68.8957C41.2253 68.3415 41.9999 68.7877 41.9999 69.8923V72.2058L45.2364 70.3287V57.9584Z" fill="url(#paint3_linear_11045_41425)"/>
<path d="M154.477 54.9444L117.964 33.7679V50.938L154.477 72.1145V54.9444Z" fill="#D9D9D9"/>
<path d="M117.964 33.7679L81.4509 54.9444V72.1145L117.964 50.938V33.7679Z" fill="#D9D9D9"/>
<path d="M27.1719 115.04C26.8994 114.882 26.7631 114.674 26.7632 114.467C26.7632 114.26 26.8995 114.053 27.1719 113.895L177.171 26.8999C177.716 26.5838 178.6 26.5838 179.145 26.8999L189.013 32.6233C189.286 32.7813 189.422 32.9884 189.422 33.1955C189.422 33.4027 189.286 33.6099 189.013 33.7679L39.014 120.763C38.469 121.079 37.5853 121.079 37.0403 120.763L27.1719 115.04Z" fill="#D9D9D9"/>
<path d="M179.145 25.183C178.6 24.8669 177.716 24.8669 177.171 25.183V26.9C177.716 26.5839 178.6 26.5839 179.145 26.9V25.183Z" fill="#D9D9D9"/>
<path d="M189.013 30.9062L179.145 25.1829V26.8999L189.013 32.6232V30.9062Z" fill="#D9D9D9"/>
<path d="M189.423 31.4784C189.423 31.2713 189.286 31.0642 189.013 30.9061V32.6231C189.286 32.7812 189.423 32.9883 189.423 33.1954V31.4784Z" fill="#D9D9D9"/>
<path d="M189.013 32.0511C189.286 31.893 189.423 31.6859 189.423 31.4788V33.1956C189.423 33.4028 189.286 33.61 189.013 33.7681V32.0511Z" fill="#234ECD"/>
<path d="M177.171 25.1829L27.1719 112.178V113.895L177.171 26.8999V25.1829Z" fill="#D9D9D9"/>
<path d="M39.0142 119.046L189.013 32.0511V33.7682L39.0142 120.763V119.046Z" fill="#234ECD"/>
<path d="M26.7632 112.75C26.7632 112.543 26.8997 112.336 27.1726 112.178V113.895C26.8997 114.053 26.7632 114.26 26.7632 114.467V112.75Z" fill="#D9D9D9"/>
<path d="M27.1726 113.323C26.8997 113.165 26.7632 112.958 26.7632 112.75L26.7632 114.467C26.7631 114.674 26.8996 114.882 27.1726 115.04V113.323Z" fill="#234ECD"/>
<path d="M27.1719 113.323L37.0402 119.046V120.763L27.1719 115.04V113.323Z" fill="#234ECD"/>
<path d="M37.0405 119.046C37.5855 119.362 38.4692 119.362 39.0142 119.046V120.763C38.4692 121.079 37.5855 121.079 37.0405 120.763V119.046Z" fill="#234ECD"/>
<g filter="url(#filter1_i_11045_41425)">
<path d="M27.0501 113.252C26.5724 112.975 26.5724 112.526 27.0501 112.249L176.428 25.6139C177.383 25.0597 178.933 25.0597 179.888 25.6139L188.27 30.4751C189.225 31.0293 189.225 31.9277 188.27 32.4819L38.8921 119.117C38.4144 119.394 37.6398 119.394 37.1621 119.117L27.0501 113.252Z" fill="url(#paint4_linear_11045_41425)"/>
</g>
<path d="M139.3 60.6078C143.335 58.2792 143.341 52.4576 139.311 50.1203C137.436 49.0329 135.123 49.03 133.246 50.1126L74.941 83.7309C70.5772 86.247 63.5258 86.2411 59.1746 83.7175L43.4445 74.5945C41.5628 73.5032 39.2407 73.5032 37.359 74.5945C33.3294 76.9315 33.3294 82.7503 37.359 85.0873L55.2337 95.4541C61.7624 99.2406 72.3434 99.2482 78.8883 95.4712L139.3 60.6078Z" fill="#D9D9D9"/>
<path d="M148.37 54.229L136.281 47.2179V48.3626L148.37 55.3737V54.229Z" fill="#D9D9D9"/>
<path d="M136.281 47.2179L75.1891 82.443C75.0355 82.5316 74.9409 82.6953 74.9409 82.8726C74.9409 83.2541 75.3539 83.4927 75.6844 83.3021L136.281 48.3626V47.2179Z" fill="#D9D9D9"/>
<path d="M40.4017 71.6851L28.313 78.6962V79.8409L40.4017 72.8297V71.6851Z" fill="#D9D9D9"/>
<path d="M58.928 82.4297L40.4019 71.6851V72.8297L58.4313 83.2863C58.7613 83.4777 59.1748 83.2395 59.1748 82.858C59.1748 82.6814 59.0808 82.5183 58.928 82.4297Z" fill="#D9D9D9"/>
<path d="M74.1824 82.9858C70.0562 84.9682 64.0506 84.9634 59.9338 82.9748C59.5902 82.8089 59.1748 83.0508 59.1748 83.4324C59.1748 83.6089 59.2678 83.7725 59.4227 83.857C63.706 86.1947 70.3965 86.2005 74.6918 83.8704C74.8476 83.7858 74.9411 83.6217 74.9411 83.4444C74.9411 83.0629 74.5263 82.8206 74.1824 82.9858Z" fill="#D9D9D9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M78.8883 94.3264L148.369 54.2291V55.3738L78.8883 95.4711C72.3434 99.2481 61.7623 99.2405 55.2336 95.4541L55.2337 95.4543L28.313 79.8411V78.6964L55.2337 94.3096L55.2336 94.3094C61.7623 98.0958 72.3434 98.1035 78.8883 94.3264Z" fill="url(#paint5_linear_11045_41425)"/>
<g filter="url(#filter2_i_11045_41425)">
<path d="M148.369 54.2291L136.281 47.2179L77.4267 81.1529C71.6888 84.4613 62.4172 84.4534 56.696 81.1353L40.4017 71.6851L28.3129 78.6962L55.8286 94.6545C62.0284 98.2502 72.0765 98.2575 78.2917 94.6707L148.369 54.2291Z" fill="url(#paint6_linear_11045_41425)"/>
</g>
<path d="M117.964 76.1208L154.477 54.9443V72.1144L117.964 93.2909V76.1208Z" fill="url(#paint7_linear_11045_41425)"/>
<rect width="42.2095" height="42.2095" transform="matrix(0.865042 0.501699 -0.865042 0.501699 117.915 33.7679)" fill="url(#paint8_linear_11045_41425)"/>
<rect width="29.8279" height="29.8279" transform="matrix(0.865042 0.501699 -0.865042 0.501699 117.915 40.0637)" fill="#0776FF"/>
<path d="M125.015 24.6568L123.441 23.7438L121.152 26.0429L122.726 26.9559L125.015 24.6568Z" fill="#1963FF"/>
<path d="M117.915 22.5052L117.969 22.5365L115.68 24.8356L115.626 24.8044L117.915 22.5052Z" fill="#8DB2FF"/>
<path d="M125.015 35.8002V24.6569L122.726 26.956V38.0993L125.015 35.8002Z" fill="#1963FF"/>
<path d="M117.968 22.5366L119.475 28.2956L117.187 30.5947L115.68 24.8357L117.968 22.5366Z" fill="#8DB2FF"/>
<path d="M117.04 20.0319L113.367 29.0448L111.078 31.3439L114.751 22.331L117.04 20.0319Z" fill="#8DB2FF"/>
<path d="M123.441 34.8871L125.015 35.8001L122.726 38.0992L121.152 37.1862L123.441 34.8871Z" fill="#1963FF"/>
<path d="M119.946 30.0669L120.821 33.3677L118.532 35.6669L117.658 32.366L119.946 30.0669Z" fill="#8DB2FF"/>
<path d="M120.821 33.3678L122.503 34.3432L120.214 36.6423L118.532 35.6669L120.821 33.3678Z" fill="#8DB2FF"/>
<path d="M118.829 21.0697L117.04 20.0319L114.751 22.331L116.541 23.3688L118.829 21.0697Z" fill="#1A63FF"/>
<path d="M122.503 34.3431L118.83 21.0695L116.541 23.3686L120.214 36.6422L122.503 34.3431Z" fill="#1A63FF"/>
<path d="M121.152 26.0429L122.726 26.9559V38.0992L121.152 37.1862V26.0429Z" fill="#8DB2FF"/>
<path d="M114.751 22.3307L116.541 23.3685L120.214 36.6422L118.532 35.6668L117.658 32.3659L113.635 30.0327L112.76 32.3191L111.078 31.3437L114.751 22.3307ZM114.105 28.8075L117.187 30.5945L115.68 24.8356L115.626 24.8044L114.105 28.8075Z" fill="#8DB2FF"/>
<path d="M30.394 34.6015L29.1683 33.8906L27.3862 35.6807L28.6119 36.3916L30.394 34.6015Z" fill="#1963FF"/>
<path d="M24.8658 32.926L24.9077 32.9503L23.1256 34.7404L23.0837 34.7161L24.8658 32.926Z" fill="#8DB2FF"/>
<path d="M30.3941 43.2776V34.6013L28.6121 36.3914V45.0677L30.3941 43.2776Z" fill="#1963FF"/>
<path d="M24.9075 32.9508L26.0808 37.4348L24.2988 39.2249L23.1255 34.7409L24.9075 32.9508Z" fill="#8DB2FF"/>
<path d="M24.1847 31.0002L21.3247 38.0178L19.5427 39.8079L22.4027 32.7904L24.1847 31.0002Z" fill="#8DB2FF"/>
<path d="M29.1683 42.5667L30.394 43.2775L28.6119 45.0676L27.3862 44.3568L29.1683 42.5667Z" fill="#1963FF"/>
<path d="M26.4473 38.8137L27.1282 41.3838L25.3462 43.1739L24.6653 40.6038L26.4473 38.8137Z" fill="#8DB2FF"/>
<path d="M27.1285 41.3838L28.438 42.1433L26.6559 43.9334L25.3464 43.1739L27.1285 41.3838Z" fill="#8DB2FF"/>
<path d="M25.5779 31.8083L24.1846 31.0002L22.4026 32.7904L23.7959 33.5984L25.5779 31.8083Z" fill="#1A63FF"/>
<path d="M28.4379 42.1431L25.5779 31.8081L23.7959 33.5982L26.6559 43.9332L28.4379 42.1431Z" fill="#1A63FF"/>
<path d="M27.3863 35.6806L28.612 36.3915V45.0678L27.3863 44.3569V35.6806Z" fill="#8DB2FF"/>
<path d="M22.4027 32.7903L23.796 33.5984L26.656 43.9333L25.3465 43.1739L24.6655 40.6038L21.5332 38.7871L20.8522 40.5673L19.5427 39.8079L22.4027 32.7903ZM21.8998 37.8332L24.2989 39.2246L23.1255 34.7406L23.0836 34.7163L21.8998 37.8332Z" fill="#8DB2FF"/>
<path d="M136.902 49.3048L118.008 38.3466V44.0699L136.902 55.0282V49.3048Z" fill="#F8FEFF"/>
<g filter="url(#filter3_d_11045_41425)">
<rect width="21.8423" height="21.8423" transform="matrix(0.865042 0.501699 -0.865042 0.501699 118.008 44.0698)" fill="#D1DFFF"/>
</g>
<path d="M118.008 38.3466L99.113 49.3048V55.0282L118.008 44.0699V38.3466Z" fill="#F8FEFF"/>
<path d="M118.008 60.2628L136.902 49.3046V55.0279L118.008 65.9862V60.2628Z" fill="#AAC7FE"/>
<path d="M99.113 49.3046L118.008 60.2628V65.9862L99.113 55.0279V49.3046Z" fill="#F8FEFF"/>
<g filter="url(#filter4_ii_11045_41425)">
<rect width="21.8423" height="21.8423" transform="matrix(0.865042 0.501699 -0.865042 0.501699 118.008 38.3466)" fill="#D1DFFF"/>
</g>
<g filter="url(#filter5_i_11045_41425)">
<rect width="13.9639" height="13.9639" transform="matrix(0.865042 0.501699 -0.865042 0.501699 118.008 42.2991)" fill="#0A6CFF"/>
</g>
<path d="M117.965 56.6266L106 49.6297V22.0002H129.93V49.7586L117.965 56.6266Z" fill="url(#paint9_linear_11045_41425)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M117.964 76.1208L81.4509 54.9443V72.1144L87 75.3327V71.6976C87 69.4884 88.5492 68.5961 90.4602 69.7044L101.35 76.0204C103.261 77.1287 104.811 79.818 104.811 82.0272V85.6623L117.964 93.2909V76.1208Z" fill="url(#paint10_linear_11045_41425)"/>
<g filter="url(#filter6_f_11045_41425)">
<ellipse cx="6.26726" cy="4.57869" rx="6.26726" ry="4.57869" transform="matrix(-1 0 0 1 103.102 73.8314)" fill="#6DF9FA"/>
</g>
<g filter="url(#filter7_i_11045_41425)">
<rect width="17.6508" height="17.6508" transform="matrix(0.865042 0.501699 -0.865042 0.501699 25.498 48.9839)" fill="#0A6CFF"/>
</g>
<path d="M25.5 66.5002L10.5 58.0002L10 33.0002H41L40.5 58.0002L25.5 66.5002Z" fill="url(#paint11_linear_11045_41425)"/>
<path d="M48.8553 80.6749L53.3175 83.2629L48.8553 85.8508L44.3931 83.2629L48.8553 80.6749Z" fill="#D9D9D9"/>
<path d="M53.3177 79.2813L48.8555 76.6934V80.6748L53.3177 83.2628V79.2813Z" fill="#D9D9D9"/>
<path d="M48.8553 76.6934L44.3931 79.2813V83.2628L48.8553 80.6748V76.6934Z" fill="#D9D9D9"/>
<path d="M48.8555 81.8692L53.3177 79.2812V83.2627L48.8555 85.8507V81.8692Z" fill="#89B6F4"/>
<path d="M44.3931 79.2812L48.8553 81.8692V85.8507L44.3931 83.2627V79.2812Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 48.8555 76.6934)" fill="url(#paint12_linear_11045_41425)"/>
<path d="M64.2625 88.6869L68.7247 91.2748L64.2625 93.8628L59.8003 91.2748L64.2625 88.6869Z" fill="#D9D9D9"/>
<path d="M68.7249 87.2935L64.2627 84.7056V88.687L68.7249 91.275V87.2935Z" fill="#D9D9D9"/>
<path d="M64.2625 84.7056L59.8003 87.2935V91.275L64.2625 88.687V84.7056Z" fill="#D9D9D9"/>
<path d="M64.2627 89.8814L68.7249 87.2935V91.2749L64.2627 93.8629V89.8814Z" fill="#89B6F4"/>
<path d="M59.8003 87.2935L64.2625 89.8814V93.8629L59.8003 91.2749V87.2935Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 64.2627 84.7056)" fill="url(#paint13_linear_11045_41425)"/>
<path d="M43.4622 107.981L47.9244 110.569L43.4622 113.157L39 110.569L43.4622 107.981Z" fill="#D9D9D9"/>
<path d="M47.9246 106.588L43.4624 104V107.981L47.9246 110.569V106.588Z" fill="#D9D9D9"/>
<path d="M43.4622 104L39 106.588V110.569L43.4622 107.981V104Z" fill="#D9D9D9"/>
<path d="M43.4624 109.176L47.9246 106.588V110.569L43.4624 113.157V109.176Z" fill="#89B6F4"/>
<path d="M39 106.588L43.4622 109.176V113.157L39 110.569V106.588Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 43.4624 104)" fill="url(#paint14_linear_11045_41425)"/>
<path d="M94.4593 78.9574L98.9215 81.5454L94.4593 84.1333L89.9971 81.5454L94.4593 78.9574Z" fill="#D9D9D9"/>
<path d="M98.9214 77.5642L94.4592 74.9762V78.9577L98.9214 81.5456V77.5642Z" fill="#D9D9D9"/>
<path d="M94.4593 74.9762L89.9971 77.5642V81.5456L94.4593 78.9577V74.9762Z" fill="#D9D9D9"/>
<path d="M94.4595 80.1519L98.9217 77.564V81.5454L94.4595 84.1334V80.1519Z" fill="#89B6F4"/>
<path d="M89.9971 77.564L94.4593 80.1519V84.1334L89.9971 81.5454V77.564Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 94.4595 74.9761)" fill="url(#paint15_linear_11045_41425)"/>
<path d="M158.841 40.0388L163.303 42.6268L158.841 45.2147L154.379 42.6268L158.841 40.0388Z" fill="#D9D9D9"/>
<path d="M163.304 38.6453L158.841 36.0574V40.0388L163.304 42.6268V38.6453Z" fill="#D9D9D9"/>
<path d="M158.841 36.0574L154.379 38.6453V42.6268L158.841 40.0388V36.0574Z" fill="#D9D9D9"/>
<path d="M158.841 41.2332L163.304 38.6453V42.6267L158.841 45.2147V41.2332Z" fill="#89B6F4"/>
<path d="M154.379 38.6453L158.841 41.2332V45.2147L154.379 42.6267V38.6453Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 158.841 36.0574)" fill="url(#paint16_linear_11045_41425)"/>
<path d="M174.224 32.0264L178.687 34.6143L174.224 37.2023L169.762 34.6143L174.224 32.0264Z" fill="#D9D9D9"/>
<path d="M178.687 30.6326L174.224 28.0447V32.0261L178.687 34.6141V30.6326Z" fill="#D9D9D9"/>
<path d="M174.224 28.0447L169.762 30.6326V34.6141L174.224 32.0261V28.0447Z" fill="#D9D9D9"/>
<path d="M174.224 33.2206L178.687 30.6327V34.6142L174.224 37.2021V33.2206Z" fill="#89B6F4"/>
<path d="M169.762 30.6327L174.224 33.2206V37.2021L169.762 34.6142V30.6327Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 174.224 28.0448)" fill="url(#paint17_linear_11045_41425)"/>
<path d="M61.1444 5.99272L65.9819 4.21065L65.0995 9.31009L60.262 11.0922L61.1444 5.99272Z" fill="#D9D9D9"/>
<path d="M62.9398 1.65873L58.1023 3.4408L61.1447 5.99262L65.9822 4.21056L62.9398 1.65873Z" fill="#D9D9D9"/>
<path d="M58.1021 3.44071L57.2197 8.54016L60.2621 11.092L61.1445 5.99254L58.1021 3.44071Z" fill="#D9D9D9"/>
<path d="M62.0574 6.75818L62.9398 1.65873L65.9822 4.21056L65.0998 9.31L62.0574 6.75818Z" fill="#5BA0FF"/>
<path d="M57.2195 8.54016L62.057 6.7581L65.0994 9.30992L60.2619 11.092L57.2195 8.54016Z" fill="#0D76DE"/>
<rect width="5.16527" height="5.16528" transform="matrix(0.936543 -0.345009 -0.170835 0.987255 58.1023 3.4408)" fill="url(#paint18_linear_11045_41425)"/>
<path d="M114.902 108.993L119.74 107.211L118.857 112.31L114.02 114.093L114.902 108.993Z" fill="#D9D9D9"/>
<path d="M116.698 104.659L111.86 106.441L114.902 108.993L119.74 107.211L116.698 104.659Z" fill="#D9D9D9"/>
<path d="M111.86 106.441L110.978 111.541L114.02 114.092L114.902 108.993L111.86 106.441Z" fill="#D9D9D9"/>
<path d="M115.815 109.759L116.698 104.659L119.74 107.211L118.858 112.31L115.815 109.759Z" fill="#5BA0FF"/>
<path d="M110.977 111.541L115.815 109.758L118.857 112.31L114.02 114.092L110.977 111.541Z" fill="#0D76DE"/>
<rect width="5.16527" height="5.16528" transform="matrix(0.936543 -0.345009 -0.170835 0.987255 111.86 106.441)" fill="url(#paint19_linear_11045_41425)"/>
<path d="M168.118 67.1817L171.494 65.9383L170.878 69.4964L167.503 70.7399L168.118 67.1817Z" fill="#D9D9D9"/>
<path d="M169.371 64.1577L165.996 65.4011L168.118 67.1817L171.494 65.9382L169.371 64.1577Z" fill="#D9D9D9"/>
<path d="M165.996 65.4011L165.38 68.9592L167.503 70.7398L168.118 67.1816L165.996 65.4011Z" fill="#D9D9D9"/>
<path d="M168.755 67.7158L169.371 64.1577L171.494 65.9382L170.878 69.4964L168.755 67.7158Z" fill="#5BA0FF"/>
<path d="M165.38 68.9592L168.755 67.7158L170.878 69.4963L167.503 70.7398L165.38 68.9592Z" fill="#0D76DE"/>
<rect width="3.60406" height="3.60406" transform="matrix(0.936543 -0.345009 -0.170835 0.987255 165.996 65.4011)" fill="url(#paint20_linear_11045_41425)"/>
</g>
<defs>
<filter id="filter0_d_11045_41425" x="0" y="1.65869" width="193.423" height="127.341" 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.249618 0 0 0 0 0.549383 0 0 0 0 0.9875 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11045_41425"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_11045_41425" result="shape"/>
</filter>
<filter id="filter1_i_11045_41425" x="26.6919" y="25.1982" width="162.295" height="94.1261" 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_11045_41425"/>
</filter>
<filter id="filter2_i_11045_41425" x="28.313" y="47.2179" width="120.056" height="50.1382" 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.8 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11045_41425"/>
</filter>
<filter id="filter3_d_11045_41425" x="91.113" y="40.0698" width="53.7891" height="37.9165" 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.00568287 0 0 0 0 0.308364 0 0 0 0 0.681945 0 0 0 0.6 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11045_41425"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_11045_41425" result="shape"/>
</filter>
<filter id="filter4_ii_11045_41425" x="99.113" y="38.3466" width="37.7891" height="21.9165" 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.35"/>
<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_11045_41425"/>
<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.6 0"/>
<feBlend mode="normal" in2="effect1_innerShadow_11045_41425" result="effect2_innerShadow_11045_41425"/>
</filter>
<filter id="filter5_i_11045_41425" x="105.928" y="42.2991" width="24.1587" height="14.0114" 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"/>
<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_11045_41425"/>
</filter>
<filter id="filter6_f_11045_41425" x="70.5671" y="53.8314" width="52.5344" height="49.1573" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="10" result="effect1_foregroundBlur_11045_41425"/>
</filter>
<filter id="filter7_i_11045_41425" x="10.2295" y="48.9839" width="30.5371" height="17.7107" 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"/>
<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.8 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11045_41425"/>
</filter>
<linearGradient id="paint0_linear_11045_41425" x1="117.964" y1="50.9382" x2="117.964" y2="93.2911" gradientUnits="userSpaceOnUse">
<stop stop-color="#378ADE"/>
<stop offset="1" stop-color="white"/>
</linearGradient>
<linearGradient id="paint1_linear_11045_41425" x1="40.5" y1="66.0002" x2="24.6183" y2="82.2868" gradientUnits="userSpaceOnUse">
<stop stop-color="#63ABF4"/>
<stop offset="1" stop-color="#C0DFFF"/>
</linearGradient>
<linearGradient id="paint2_linear_11045_41425" x1="4" y1="64.9682" x2="24.5384" y2="70.8975" gradientUnits="userSpaceOnUse">
<stop stop-color="#579CFE"/>
<stop offset="1" stop-color="#1E77F6"/>
</linearGradient>
<linearGradient id="paint3_linear_11045_41425" x1="45.048" y1="64.7621" x2="25.0995" y2="75.4078" gradientUnits="userSpaceOnUse">
<stop stop-color="#3286F8"/>
<stop offset="1" stop-color="#91C0FD"/>
</linearGradient>
<linearGradient id="paint4_linear_11045_41425" x1="32.1061" y1="116.184" x2="108.61" y2="-15.7254" gradientUnits="userSpaceOnUse">
<stop stop-color="#369AFF"/>
<stop offset="1" stop-color="#1E5DFF"/>
</linearGradient>
<linearGradient id="paint5_linear_11045_41425" x1="28.3128" y1="79.2688" x2="102.952" y2="82.9556" gradientUnits="userSpaceOnUse">
<stop stop-color="#067CFB"/>
<stop offset="0.44" stop-color="#B9E1FF"/>
<stop offset="1" stop-color="#0086FF"/>
</linearGradient>
<linearGradient id="paint6_linear_11045_41425" x1="91.2702" y1="87.2815" x2="42.1223" y2="105.309" gradientUnits="userSpaceOnUse">
<stop stop-color="#0975FF"/>
<stop offset="0.415" stop-color="#00A9FF"/>
<stop offset="0.975" stop-color="#0975FF"/>
</linearGradient>
<linearGradient id="paint7_linear_11045_41425" x1="154.379" y1="62.957" x2="117.827" y2="84.8458" gradientUnits="userSpaceOnUse">
<stop stop-color="#5B9FFF"/>
<stop offset="1" stop-color="#1A75F6"/>
</linearGradient>
<linearGradient id="paint8_linear_11045_41425" x1="42.1529" y1="0.0565839" x2="17.3551" y2="49.6521" gradientUnits="userSpaceOnUse">
<stop stop-color="#95C8FF"/>
<stop offset="1" stop-color="#CAE4FF"/>
</linearGradient>
<linearGradient id="paint9_linear_11045_41425" x1="117.965" y1="22.0002" x2="117.965" y2="56.6266" gradientUnits="userSpaceOnUse">
<stop stop-color="#E1EDF6" stop-opacity="0"/>
<stop offset="1" stop-color="#1893FF"/>
</linearGradient>
<linearGradient id="paint10_linear_11045_41425" x1="81.4509" y1="65.5326" x2="117.996" y2="86.2804" gradientUnits="userSpaceOnUse">
<stop stop-color="#2A7FF8"/>
<stop offset="1" stop-color="#9EC6FE"/>
</linearGradient>
<linearGradient id="paint11_linear_11045_41425" x1="26" y1="34.5002" x2="25.5" y2="66.0002" gradientUnits="userSpaceOnUse">
<stop offset="0.0121422" stop-color="#E1EDF6" stop-opacity="0"/>
<stop offset="1" stop-color="#1893FF"/>
</linearGradient>
<linearGradient id="paint12_linear_11045_41425" x1="2.57919" y1="0" x2="2.57919" y2="5.15838" gradientUnits="userSpaceOnUse">
<stop stop-color="#97C9FF"/>
<stop offset="1" stop-color="#C7E2FF"/>
</linearGradient>
<linearGradient id="paint13_linear_11045_41425" x1="2.57919" y1="0" x2="2.57919" y2="5.15838" gradientUnits="userSpaceOnUse">
<stop stop-color="#97C9FF"/>
<stop offset="1" stop-color="#C7E2FF"/>
</linearGradient>
<linearGradient id="paint14_linear_11045_41425" x1="2.57919" y1="0" x2="2.57919" y2="5.15838" gradientUnits="userSpaceOnUse">
<stop stop-color="#97C9FF"/>
<stop offset="1" stop-color="#C7E2FF"/>
</linearGradient>
<linearGradient id="paint15_linear_11045_41425" x1="2.57919" y1="0" x2="2.57919" y2="5.15838" gradientUnits="userSpaceOnUse">
<stop stop-color="#97C9FF"/>
<stop offset="1" stop-color="#C7E2FF"/>
</linearGradient>
<linearGradient id="paint16_linear_11045_41425" x1="2.57919" y1="0" x2="2.57919" y2="5.15838" gradientUnits="userSpaceOnUse">
<stop stop-color="#97C9FF"/>
<stop offset="1" stop-color="#C7E2FF"/>
</linearGradient>
<linearGradient id="paint17_linear_11045_41425" x1="2.57919" y1="0" x2="2.57919" y2="5.15838" gradientUnits="userSpaceOnUse">
<stop stop-color="#97C9FF"/>
<stop offset="1" stop-color="#C7E2FF"/>
</linearGradient>
<linearGradient id="paint18_linear_11045_41425" x1="2.58264" y1="0" x2="2.58264" y2="5.16528" gradientUnits="userSpaceOnUse">
<stop stop-color="#5AA9FE"/>
<stop offset="1" stop-color="#8BC3FF"/>
</linearGradient>
<linearGradient id="paint19_linear_11045_41425" x1="2.58264" y1="0" x2="2.58264" y2="5.16528" gradientUnits="userSpaceOnUse">
<stop stop-color="#5AA9FE"/>
<stop offset="1" stop-color="#8BC3FF"/>
</linearGradient>
<linearGradient id="paint20_linear_11045_41425" x1="1.80203" y1="0" x2="1.80203" y2="3.60406" gradientUnits="userSpaceOnUse">
<stop stop-color="#5AA9FE"/>
<stop offset="1" stop-color="#8BC3FF"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

@ -0,0 +1,39 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11045_64616)">
<path d="M36 0H12C5.37258 0 0 5.37258 0 12V36C0 42.6274 5.37258 48 12 48H36C42.6274 48 48 42.6274 48 36V12C48 5.37258 42.6274 0 36 0Z" fill="url(#paint0_linear_11045_64616)"/>
<g clip-path="url(#clip1_11045_64616)">
<path d="M19.6146 28.3345H17C16.88 28.3424 16.7596 28.3265 16.6463 28.2878C16.533 28.2491 16.4291 28.1883 16.3412 28.1094C16.2533 28.0304 16.1833 27.9348 16.1353 27.8287C16.0874 27.7225 16.0627 27.608 16.0627 27.4923C16.0627 27.3765 16.0874 27.262 16.1353 27.1559C16.1833 27.0497 16.2533 26.9542 16.3412 26.8752C16.4291 26.7962 16.533 26.7355 16.6463 26.6967C16.7596 26.658 16.88 26.6421 17 26.6501H20.5H20.5951C24.0992 20.1194 24.0868 12.4101 24.0868 12.4101C23.7675 12.2082 23.4074 12.0736 23.0302 12.0153C22.653 11.9569 22.2672 11.9762 21.8983 12.0717L14.4515 14.0946C13.9202 14.2416 13.4532 14.5513 13.121 14.9766C12.7888 15.402 12.6096 15.9198 12.6105 16.452V34.3156C15.515 33.0423 17.9552 30.9586 19.6146 28.3345ZM17 19.9124H20.5C20.7216 19.9271 20.9292 20.0222 21.0809 20.1785C21.2325 20.3348 21.3168 20.5407 21.3168 20.7546C21.3168 20.9685 21.2325 21.1743 21.0809 21.3307C20.9292 21.487 20.7216 21.5821 20.5 21.5968H17C16.88 21.6047 16.7596 21.5889 16.6463 21.5501C16.533 21.5114 16.4291 21.4507 16.3412 21.3717C16.2533 21.2927 16.1833 21.1972 16.1353 21.091C16.0874 20.9848 16.0627 20.8703 16.0627 20.7546C16.0627 20.6388 16.0874 20.5243 16.1353 20.4182C16.1833 20.312 16.2533 20.2165 16.3412 20.1375C16.4291 20.0585 16.533 19.9978 16.6463 19.959C16.7596 19.9203 16.88 19.9044 17 19.9124Z" fill="url(#paint1_linear_11045_64616)"/>
<path d="M31.2648 28.3346H29.6885C29.5686 28.3425 29.4482 28.3266 29.3349 28.2879C29.2215 28.2492 29.1177 28.1884 29.0298 28.1094C28.9419 28.0304 28.8718 27.9349 28.8239 27.8287C28.776 27.7226 28.7513 27.6081 28.7513 27.4923C28.7513 27.3766 28.776 27.2621 28.8239 27.1559C28.8718 27.0498 28.9419 26.9542 29.0298 26.8753C29.1177 26.7963 29.2215 26.7355 29.3349 26.6968C29.4482 26.6581 29.5686 26.6422 29.6885 26.6501H31.4385C31.5702 26.6458 31.701 26.6708 31.8209 26.7233C31.9408 26.7758 32.0464 26.8544 32.1294 26.9528C33.228 25.0925 34.1209 23.1266 34.7937 21.0872C34.5382 20.7752 34.1929 20.5425 33.8008 20.4182L26.8877 18.3156C26.6234 18.2578 26.3465 18.2873 26.1017 18.3993C25.8995 18.5721 25.7737 18.8129 25.75 19.0722V34.232C27.9423 32.602 29.8106 30.6041 31.2648 28.3346Z" fill="url(#paint2_linear_11045_64616)"/>
<path d="M24.8729 34.2319V14.0189C24.8803 13.7127 24.8131 13.4091 24.6766 13.1325C24.5401 12.8559 24.3381 12.6139 24.0868 12.426C24.0868 12.426 24.0868 20.1353 20.5951 26.6659C20.8192 26.6868 21.0263 26.7903 21.173 26.9547C21.3198 27.1191 21.3949 27.3317 21.3826 27.5481C21.3703 27.7645 21.2716 27.968 21.1071 28.116C20.9427 28.264 20.7251 28.3451 20.5 28.3424H19.6146C17.9616 30.9594 15.5322 33.0398 12.6394 34.3155H10.8729C10.6512 34.3302 10.4436 34.4253 10.292 34.5816C10.1404 34.738 10.056 34.9439 10.056 35.1577C10.056 35.3716 10.1404 35.5775 10.292 35.7338C10.4436 35.8902 10.6512 35.9853 10.8729 35.9999H25.7665V34.2319H24.8729Z" fill="url(#paint3_linear_11045_64616)"/>
<path d="M37.1271 34.232H35.3771V22.6083C35.37 22.0518 35.164 21.5146 34.7937 21.0872C34.1209 23.1266 33.228 25.0925 32.1294 26.9528C32.2531 27.1077 32.3174 27.299 32.3115 27.4943C32.3181 27.6063 32.3 27.7184 32.2585 27.8232C32.2169 27.928 32.1529 28.0232 32.0704 28.1026C31.988 28.1819 31.8891 28.2436 31.7802 28.2835C31.6713 28.3235 31.5549 28.3409 31.4385 28.3345H31.2648C29.8106 30.6041 27.9423 32.602 25.75 34.232V36H37.1271C37.2434 36.0064 37.3599 35.989 37.4688 35.949C37.5777 35.9091 37.6766 35.8474 37.759 35.7681C37.8414 35.6887 37.9055 35.5935 37.947 35.4887C37.9885 35.3839 38.0066 35.2718 38 35.1598C38.0084 35.0432 37.9923 34.9262 37.9525 34.8157C37.9128 34.7053 37.8503 34.6037 37.7688 34.517C37.6873 34.4304 37.5884 34.3605 37.4781 34.3115C37.3679 34.2625 37.2485 34.2355 37.1271 34.232Z" fill="url(#paint4_linear_11045_64616)"/>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_11045_64616" x1="24" y1="0" x2="24" y2="48" gradientUnits="userSpaceOnUse">
<stop stop-color="#3C9DFF"/>
<stop offset="1" stop-color="#0050ED"/>
</linearGradient>
<linearGradient id="paint1_linear_11045_64616" x1="14.0001" y1="15.9999" x2="21.0001" y2="24.9999" gradientUnits="userSpaceOnUse">
<stop stop-color="#F8FBFF"/>
<stop offset="1" stop-color="#B0CFFF"/>
</linearGradient>
<linearGradient id="paint2_linear_11045_64616" x1="26" y1="17.9996" x2="32" y2="27.9996" gradientUnits="userSpaceOnUse">
<stop stop-color="#F4F8FF"/>
<stop offset="1" stop-color="#ADCEFF"/>
</linearGradient>
<linearGradient id="paint3_linear_11045_64616" x1="20.9999" y1="25.0002" x2="22.9999" y2="36.0002" gradientUnits="userSpaceOnUse">
<stop stop-color="#F2F7FF"/>
<stop offset="0.800603" stop-color="#C4DCFF"/>
</linearGradient>
<linearGradient id="paint4_linear_11045_64616" x1="31.8761" y1="21.0872" x2="31.8761" y2="36.0013" gradientUnits="userSpaceOnUse">
<stop stop-color="#F2F7FF"/>
<stop offset="1" stop-color="#C4DCFF"/>
</linearGradient>
<clipPath id="clip0_11045_64616">
<rect width="48" height="48" fill="white"/>
</clipPath>
<clipPath id="clip1_11045_64616">
<rect width="28" height="24" fill="white" transform="translate(10 12)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

@ -0,0 +1,48 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11045_64594)">
<path d="M36 0H12C8.8174 0 5.76515 1.26427 3.51471 3.51471C1.26427 5.76515 0 8.8174 0 12V36C0 39.1826 1.26427 42.2348 3.51471 44.4852C5.76515 46.7357 8.8174 48 12 48H36C39.1826 48 42.2349 46.7357 44.4853 44.4852C46.7357 42.2348 48 39.1826 48 36V12C48 8.8174 46.7357 5.76515 44.4853 3.51471C42.2349 1.26427 39.1826 0 36 0Z" fill="url(#paint0_linear_11045_64594)"/>
<path d="M27.1025 12.7726L24.4892 11.2827C24.1819 11.1075 23.8049 11.1077 23.4978 11.2832L18.0007 14.4244C17.6891 14.6024 17.4968 14.9338 17.4968 15.2926V21.5567C17.4968 21.9155 17.6891 22.2468 18.0006 22.4249L23.9099 25.8029C27.3252 19.6033 27.3623 14.935 27.1025 12.7726Z" fill="url(#paint1_linear_11045_64594)"/>
<path d="M27.1023 12.7726C27.3621 14.935 27.325 19.6032 23.9189 25.7657C23.9708 25.7945 24.0339 25.7941 24.0854 25.7647L29.9952 22.3877C30.3067 22.2096 30.499 21.8783 30.499 21.5194V15.2612C30.499 14.8993 30.3035 14.5656 29.9877 14.3887L27.1023 12.7726Z" fill="url(#paint2_linear_11045_64594)"/>
<path d="M24.6985 16.3363V20.5127" stroke="#FF6571" stroke-width="1.5" stroke-linecap="round"/>
<path d="M20.6056 23.7332L17.9924 22.2433C17.6851 22.0681 17.3081 22.0683 17.001 22.2438L11.5039 25.385C11.1923 25.563 11 25.8944 11 26.2532V32.5173C11 32.8761 11.1922 33.2074 11.5037 33.3855L17.413 36.7635C20.8284 30.5639 20.8655 25.8956 20.6056 23.7332Z" fill="url(#paint3_linear_11045_64594)"/>
<path d="M20.6057 23.7333C20.8655 25.8957 20.8284 30.5639 17.4224 36.7264C17.4742 36.7552 17.5373 36.7548 17.5888 36.7254L23.4986 33.3484C23.8102 33.1703 24.0024 32.839 24.0024 32.4801V26.2219C24.0024 25.86 23.8069 25.5263 23.4911 25.3494L20.6057 23.7333Z" fill="url(#paint4_linear_11045_64594)"/>
<path d="M18.2017 27.297V31.4734" stroke="#FF6571" stroke-width="1.5" stroke-linecap="round"/>
<path d="M33.6034 23.7332L30.9902 22.2433C30.6829 22.0681 30.3059 22.0683 29.9988 22.2438L24.5017 25.385C24.1901 25.563 23.9978 25.8944 23.9978 26.2532V32.5173C23.9978 32.8761 24.19 33.2074 24.5015 33.3855L30.4108 36.7635C33.8262 30.5639 33.8633 25.8956 33.6034 23.7332Z" fill="url(#paint5_linear_11045_64594)"/>
<path d="M33.6032 23.7333C33.8631 25.8957 33.826 30.5639 30.4199 36.7264C30.4718 36.7552 30.5349 36.7548 30.5864 36.7254L36.4961 33.3484C36.8077 33.1703 37 32.839 37 32.4801V26.2219C37 25.86 36.8044 25.5263 36.4887 25.3494L33.6032 23.7333Z" fill="url(#paint6_linear_11045_64594)"/>
<path d="M31.1995 27.297V31.4734" stroke="#FF6571" stroke-width="1.5" stroke-linecap="round"/>
<path d="M18.2024 27.4735V31.6499" stroke="#FF6571" stroke-width="1.5" stroke-linecap="round"/>
</g>
<defs>
<linearGradient id="paint0_linear_11045_64594" x1="24.01" y1="0" x2="24.01" y2="48" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF6571"/>
<stop offset="1" stop-color="#FF6571"/>
</linearGradient>
<linearGradient id="paint1_linear_11045_64594" x1="17.4989" y1="14.3372" x2="25.6495" y2="19.7417" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF0F6"/>
<stop offset="1" stop-color="#FFADCF"/>
</linearGradient>
<linearGradient id="paint2_linear_11045_64594" x1="26.7056" y1="15.9705" x2="29.9822" y2="21.9452" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF5F9"/>
<stop offset="1" stop-color="#FFCCE1"/>
</linearGradient>
<linearGradient id="paint3_linear_11045_64594" x1="11.0021" y1="25.2978" x2="19.1527" y2="30.7022" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF0F6"/>
<stop offset="1" stop-color="#FFADCF"/>
</linearGradient>
<linearGradient id="paint4_linear_11045_64594" x1="20.209" y1="26.9312" x2="23.4856" y2="32.9059" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF5F9"/>
<stop offset="1" stop-color="#FFCCE1"/>
</linearGradient>
<linearGradient id="paint5_linear_11045_64594" x1="23.9999" y1="25.2978" x2="32.1505" y2="30.7022" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF0F6"/>
<stop offset="1" stop-color="#FFADCF"/>
</linearGradient>
<linearGradient id="paint6_linear_11045_64594" x1="33.2066" y1="26.9312" x2="36.4832" y2="32.9059" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF5F9"/>
<stop offset="1" stop-color="#FFCCE1"/>
</linearGradient>
<clipPath id="clip0_11045_64594">
<rect width="48" height="48" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,30 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11045_64553)">
<path d="M36 -0.0200195H12C8.8174 -0.0200195 5.76515 1.24425 3.51471 3.49469C1.26427 5.74513 0 8.79738 0 11.98V35.9799C0 39.1625 1.26427 42.2148 3.51471 44.4652C5.76515 46.7157 8.8174 47.9799 12 47.9799H36C39.1826 47.9799 42.2349 46.7157 44.4853 44.4652C46.7357 42.2148 48 39.1625 48 35.9799V11.98C48 8.79738 46.7357 5.74513 44.4853 3.49469C42.2349 1.24425 39.1826 -0.0200195 36 -0.0200195Z" fill="url(#paint0_linear_11045_64553)"/>
<path d="M34.81 19.7502C34.4863 19.5681 34.1214 19.4717 33.75 19.4702H14.26C13.6662 19.4792 13.0993 19.7196 12.68 20.1402C12.2584 20.5597 12.0148 21.1256 12 21.7202V29.7202C11.9999 30.3224 12.2371 30.9004 12.6601 31.329C13.0831 31.7576 13.6579 32.0023 14.26 32.0102H25.1C32.63 27.1002 34.45 21.1802 34.81 19.7502Z" fill="url(#paint1_linear_11045_64553)"/>
<path d="M34.8101 19.7505C34.4501 21.1805 32.5301 27.0605 25.1001 32.0405H33.7501C34.3489 32.025 34.9182 31.7775 35.338 31.3502C35.7577 30.923 35.9951 30.3494 36.0001 29.7505V21.7505C35.9996 21.3389 35.8891 20.935 35.6801 20.5805C35.4712 20.2297 35.1703 19.9427 34.8101 19.7505Z" fill="url(#paint2_linear_11045_64553)"/>
<path d="M16.8201 26.6602H15.1101C14.988 26.6682 14.8655 26.6512 14.7501 26.6102C14.6349 26.5802 14.5308 26.5177 14.4501 26.4302C14.3606 26.3493 14.289 26.2505 14.2401 26.1402C14.1879 26.0309 14.1606 25.9113 14.1602 25.7902C14.1618 25.6724 14.189 25.5564 14.2401 25.4502C14.2867 25.3386 14.3586 25.2393 14.4501 25.1602C14.533 25.0731 14.636 25.0079 14.7501 24.9702C14.8693 24.9506 14.9909 24.9506 15.1101 24.9702H16.8201C16.9393 24.9506 17.0609 24.9506 17.1801 24.9702C17.2961 25.0101 17.4019 25.075 17.4901 25.1602C17.5818 25.2369 17.651 25.3372 17.6901 25.4502C17.7412 25.5564 17.7685 25.6724 17.7701 25.7902C17.7697 25.9113 17.7423 26.0309 17.6901 26.1402C17.6485 26.2519 17.5798 26.3516 17.4901 26.4302C17.4042 26.5161 17.2973 26.5781 17.1801 26.6102C17.0648 26.6512 16.9423 26.6682 16.8201 26.6602ZM21.4102 26.6602H19.6901C19.4743 26.6425 19.2737 26.5422 19.1301 26.3802C18.9825 26.2211 18.9005 26.0122 18.9005 25.7952C18.9005 25.5782 18.9825 25.3692 19.1301 25.2102C19.2737 25.0482 19.4743 24.9479 19.6901 24.9302H21.4102C21.6254 24.9498 21.8253 25.0498 21.9702 25.2102C22.1178 25.3692 22.1998 25.5782 22.1998 25.7952C22.1998 26.0122 22.1178 26.2211 21.9702 26.3802C21.8253 26.5406 21.6254 26.6405 21.4102 26.6602Z" fill="#22D08C"/>
<path d="M16.5501 34.9502C16.2475 34.9405 15.9591 34.8194 15.7401 34.6102C15.5304 34.3925 15.4123 34.1025 15.4102 33.8002V32.0802H17.6301V33.7802C17.6277 34.0806 17.5136 34.3693 17.3101 34.5902C17.1102 34.8003 16.8393 34.9286 16.5501 34.9502ZM31.4501 34.9502C31.1506 34.9567 30.859 34.8535 30.6301 34.6602C30.4204 34.4425 30.3023 34.1525 30.3001 33.8502V32.1302H32.5601V33.8302C32.5629 34.1328 32.4474 34.4245 32.2382 34.643C32.0289 34.8616 31.7425 34.9898 31.4401 35.0002L31.4501 34.9502ZM32.6301 19.4902H30.3701V14.3402C30.3295 14.1794 30.3295 14.011 30.3701 13.8502C30.4123 13.6879 30.4909 13.5374 30.6001 13.4102C30.7097 13.2888 30.8423 13.1902 30.9901 13.1202C31.1449 13.0412 31.3163 13 31.4901 13C31.6639 13 31.8353 13.0412 31.9901 13.1202C32.138 13.1902 32.2705 13.2888 32.3801 13.4102C32.4893 13.5374 32.568 13.6879 32.6101 13.8502C32.645 14.0117 32.645 14.1787 32.6101 14.3402L32.6301 19.4902Z" fill="url(#paint3_linear_11045_64553)"/>
</g>
<defs>
<linearGradient id="paint0_linear_11045_64553" x1="24" y1="-0.0200195" x2="24" y2="47.9799" gradientUnits="userSpaceOnUse">
<stop stop-color="#26E8A0"/>
<stop offset="1" stop-color="#20BF7E"/>
</linearGradient>
<linearGradient id="paint1_linear_11045_64553" x1="12.5" y1="20.5103" x2="29" y2="29.0103" gradientUnits="userSpaceOnUse">
<stop stop-color="#EBFFF7"/>
<stop offset="1" stop-color="#ADFFDF"/>
</linearGradient>
<linearGradient id="paint2_linear_11045_64553" x1="32.5" y1="27.0103" x2="35" y2="31.0103" gradientUnits="userSpaceOnUse">
<stop stop-color="#F5FFFB"/>
<stop offset="1" stop-color="#CCFFEB"/>
</linearGradient>
<linearGradient id="paint3_linear_11045_64553" x1="24.0201" y1="13.1702" x2="24.0201" y2="34.9502" gradientUnits="userSpaceOnUse">
<stop stop-color="#E8FFF6"/>
<stop offset="1" stop-color="#D6FFEF"/>
</linearGradient>
<clipPath id="clip0_11045_64553">
<rect width="48" height="48" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@ -0,0 +1,62 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_i_11045_40860)">
<path d="M17.079 26.3684H13.1316C12.0416 26.3684 11.158 27.0753 11.158 27.9474V37.421C11.158 38.2931 12.0416 39 13.1316 39H17.079C18.169 39 19.0527 38.2931 19.0527 37.421V27.9474C19.0527 27.0753 18.169 26.3684 17.079 26.3684Z" fill="url(#paint0_linear_11045_40860)"/>
</g>
<path d="M14.3157 31.8948H15.1051" stroke="#F8FAFD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<g filter="url(#filter1_dii_11045_40860)">
<path d="M34.8421 9H19.0526C18.1806 9 17.4736 9.70692 17.4736 10.5789V37.4211C17.4736 38.2931 18.1806 39 19.0526 39H34.8421C35.7141 39 36.421 38.2931 36.421 37.4211V10.5789C36.421 9.70692 35.7141 9 34.8421 9Z" fill="url(#paint1_linear_11045_40860)"/>
</g>
<path d="M25.3683 12.9474H22.2104V16.1053H25.3683V12.9474Z" fill="#F8FAFD"/>
<path d="M31.6843 12.9474H28.5264V16.1053H31.6843V12.9474Z" fill="#F8FAFD"/>
<path d="M25.3683 18.4736H22.2104V21.6315H25.3683V18.4736Z" fill="#F8FAFD"/>
<path d="M31.6843 18.4736H28.5264V21.6315H31.6843V18.4736Z" fill="#F8FAFD"/>
<path d="M31.6843 24H28.5264V27.1579H31.6843V24Z" fill="#F8FAFD"/>
<path d="M31.6843 29.5264H28.5264V32.6843H31.6843V29.5264Z" fill="#F8FAFD"/>
<path d="M8 38.2104H39.5789" stroke="url(#paint2_linear_11045_40860)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<defs>
<filter id="filter0_i_11045_40860" x="11.158" y="26.3684" width="7.89478" height="13.6316" 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="0.5"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.430556 0 0 0 0 0.6925 0 0 0 0 1 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_11045_40860"/>
</filter>
<filter id="filter1_dii_11045_40860" x="14.4736" y="7" width="22.9473" height="34" 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 dx="-1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.290196 0 0 0 0 0.619608 0 0 0 0 0.976471 0 0 0 0.3 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_11045_40860"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_11045_40860" 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 0.431373 0 0 0 0 0.694118 0 0 0 0 1 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect2_innerShadow_11045_40860"/>
<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.0285381 0 0 0 0 0.265237 0 0 0 0 0.790278 0 0 0 1 0"/>
<feBlend mode="normal" in2="effect2_innerShadow_11045_40860" result="effect3_innerShadow_11045_40860"/>
</filter>
<linearGradient id="paint0_linear_11045_40860" x1="15.1053" y1="26.3684" x2="15.1053" y2="39" gradientUnits="userSpaceOnUse">
<stop stop-color="#215FE2"/>
<stop offset="1" stop-color="#4A9CF9"/>
</linearGradient>
<linearGradient id="paint1_linear_11045_40860" x1="26.9473" y1="9" x2="26.9473" y2="39" gradientUnits="userSpaceOnUse">
<stop stop-color="#1C57E0"/>
<stop offset="1" stop-color="#4FA5FC"/>
</linearGradient>
<linearGradient id="paint2_linear_11045_40860" x1="8" y1="38.7104" x2="39.5789" y2="38.7104" gradientUnits="userSpaceOnUse">
<stop stop-color="#215EE2"/>
<stop offset="1" stop-color="#4899F8"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@ -0,0 +1,10 @@
<svg width="76" height="29" viewBox="0 0 76 29" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 4C0 1.79086 1.79086 0 4 0H72C74.2091 0 76 1.79086 76 4V20C76 22.2091 74.2091 24 72 24H0V4Z" fill="url(#paint0_linear_11966_37591)"/>
<path d="M5.5 28.5V24H0L5.5 28.5Z" fill="#1C0E82"/>
<defs>
<linearGradient id="paint0_linear_11966_37591" x1="0" y1="12" x2="76" y2="12" gradientUnits="userSpaceOnUse">
<stop stop-color="#154DDD"/>
<stop offset="1" stop-color="#0014C5"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 512 B

@ -0,0 +1,6 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 8.72217V12.9327" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3 10.5643H4.84212L5.89476 8.98535" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.26318 7.14331L10.2299 11.7878C10.3145 11.8442 10.4241 11.8468 10.5113 11.7945L13.0001 10.3012" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.2837 5.22706C3.14023 5.13142 3.12597 4.92595 3.25484 4.81139L5.21789 3.06647C5.30673 2.9875 5.43749 2.97789 5.53694 3.04304L12.6592 7.70933C12.819 7.81407 12.8175 8.04889 12.6562 8.15147L10.2499 9.68277C10.162 9.73872 10.0494 9.7375 9.96268 9.67972L3.2837 5.22706Z" stroke="#154DDD"/>
</svg>

After

Width:  |  Height:  |  Size: 779 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

@ -0,0 +1,7 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.49999 3.44338L3 4.88675V7.7735V10.6603L5.49999 12.1036L8 13.547L10.5 12.1036L13 10.6603V7.7735V4.88675L10.5 3.44338L8 2L5.49999 3.44338Z" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 7.77353L5 9.50558M8 7.77353V4.02075M8 7.77353L11 9.50558" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8.81251 11.0571L8.00001 11.5262L7.1875 11.0571" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10.4375 5.42798L11.25 5.89708V6.83527" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.75 6.83527V5.89708L5.56251 5.42798" stroke="#154DDD" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 808 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="M2.5 10C3.32843 10 4 9.32843 4 8.5C4 7.67157 3.32843 7 2.5 7C1.67157 7 1 7.67157 1 8.5C1 9.32843 1.67157 10 2.5 10Z" fill="#666666"/>
<path d="M7.5 10C8.32843 10 9 9.32843 9 8.5C9 7.67157 8.32843 7 7.5 7C6.67157 7 6 7.67157 6 8.5C6 9.32843 6.67157 10 7.5 10Z" fill="#666666"/>
<path d="M12.5 10C13.3284 10 14 9.32843 14 8.5C14 7.67157 13.3284 7 12.5 7C11.6716 7 11 7.67157 11 8.5C11 9.32843 11.6716 10 12.5 10Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 541 B

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.0403 6.66675L16.0159 25.3334" stroke="#004FB2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.66675 16H25.3334" stroke="#004FB2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 342 B

@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 2.91667C4.74484 2.91667 2.91667 4.74484 2.91667 7C2.91667 9.25516 4.74484 11.0833 7 11.0833C8.90187 11.0833 10.5014 9.78256 10.9547 8.02127L12.0846 8.31207C11.5018 10.5763 9.44709 12.25 7 12.25C4.1005 12.25 1.75 9.89949 1.75 7C1.75 4.1005 4.1005 1.75 7 1.75C8.64985 1.75 10.1212 2.51093 11.0833 3.70007V2.33333H12.25V5.83333H8.75V4.66667H10.3516C9.61334 3.6083 8.38698 2.91667 7 2.91667Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 561 B

@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.23306 3.45859C7.63841 1.86395 5.05299 1.86395 3.45835 3.45859C1.86371 5.05324 1.86371 7.63866 3.45835 9.2333C5.05299 10.8279 7.63841 10.8279 9.23306 9.2333C10.8277 7.63866 10.8277 5.05324 9.23306 3.45859ZM2.63339 2.63364C4.68364 0.583384 8.00776 0.583384 10.058 2.63364C11.9688 4.54447 12.0988 7.5618 10.4478 9.62312L12.5329 11.7082L11.7079 12.5331L9.62288 10.4481C7.56156 12.099 4.54422 11.9691 2.63339 10.0583C0.58314 8.008 0.58314 4.68389 2.63339 2.63364Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 630 B

@ -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="M8.49762 4.69757C8.49765 4.42396 8.27587 4.20213 8.00226 4.2021C7.72865 4.20208 7.50683 4.42386 7.5068 4.69747L7.50647 8.00264C7.50646 8.13405 7.55865 8.26008 7.65157 8.353L9.98535 10.6868C10.1788 10.8803 10.4925 10.8803 10.686 10.6868C10.8794 10.4933 10.8794 10.1796 10.686 9.98616L8.49732 7.7975L8.49762 4.69757Z" fill="#154DDD"/>
<path d="M8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2ZM2.99083 8C2.99083 5.23351 5.23351 2.99083 8 2.99083C10.7665 2.99083 13.0092 5.23351 13.0092 8C13.0092 10.7665 10.7665 13.0092 8 13.0092C5.23351 13.0092 2.99083 10.7665 2.99083 8Z" fill="#154DDD"/>
</svg>

After

Width:  |  Height:  |  Size: 759 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="M2.41696 5.13184L2.39685 5.14189V10.8433L7.98766 13.7845V7.91216L2.41696 5.13184Z" fill="white"/>
<path d="M13.5684 5.13687L7.98769 2.20068L2.63318 5.0162L2.41699 5.13184L7.98769 7.91216L8.05305 7.88199L13.5835 5.14692V5.14189L13.5684 5.13687Z" fill="#999999"/>
<path d="M14.6846 4.59893C14.5994 4.4215 14.4605 4.27547 14.2874 4.18163L8.41508 1.07451C8.28324 1.00536 8.13659 0.969238 7.98772 0.969238C7.83885 0.969238 7.69221 1.00536 7.56037 1.07451L1.69303 4.16152C1.6003 4.21857 1.51857 4.29179 1.4517 4.37771C1.39355 4.43662 1.34289 4.50248 1.30087 4.57379C1.23768 4.69865 1.20332 4.8361 1.20032 4.97601V11.0093C1.20189 11.178 1.24956 11.343 1.33818 11.4866C1.42679 11.6301 1.55298 11.7467 1.70309 11.8238L7.57042 14.9108C7.69797 14.9835 7.84102 15.0249 7.98772 15.0314H8.05811C8.18252 15.0252 8.30419 14.9927 8.41508 14.9359L14.2824 11.8489C14.4325 11.7719 14.5587 11.6553 14.6473 11.5117C14.7359 11.3682 14.7836 11.2031 14.7852 11.0344V4.97601C14.7801 4.8444 14.7458 4.71558 14.6846 4.59893ZM13.5836 5.14695L8.05308 7.88203L7.98772 7.91722V13.7846L2.39188 10.8433V5.14193L2.60808 5.02629L7.98772 2.20072L13.5685 5.1369L13.5836 5.14695Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -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="M2.41696 5.13159L2.39685 5.14165V10.8431L7.98766 13.7843V7.91191L2.41696 5.13159Z" fill="white"/>
<path d="M13.5684 5.13662L7.98769 2.20044L2.63318 5.01596L2.41699 5.13159L7.98769 7.91192L8.05305 7.88175L13.5835 5.14668V5.14165L13.5684 5.13662Z" fill="#8DADFF"/>
<path d="M14.6846 4.59869C14.5994 4.42126 14.4605 4.27523 14.2874 4.18139L8.41508 1.07427C8.28324 1.00512 8.13659 0.968994 7.98772 0.968994C7.83885 0.968994 7.69221 1.00512 7.56037 1.07427L1.69303 4.16128C1.6003 4.21833 1.51857 4.29155 1.4517 4.37747C1.39355 4.43637 1.34289 4.50223 1.30087 4.57355C1.23768 4.69841 1.20332 4.83586 1.20032 4.97577V11.009C1.20189 11.1777 1.24956 11.3428 1.33818 11.4863C1.42679 11.6299 1.55298 11.7465 1.70309 11.8235L7.57042 14.9105C7.69797 14.9833 7.84102 15.0247 7.98772 15.0312H8.05811C8.18252 15.025 8.30419 14.9924 8.41508 14.9357L14.2824 11.8486C14.4325 11.7716 14.5587 11.655 14.6473 11.5115C14.7359 11.3679 14.7836 11.2029 14.7852 11.0342V4.97577C14.7801 4.84416 14.7458 4.71533 14.6846 4.59869ZM13.5836 5.14671L8.05308 7.88178L7.98772 7.91698V13.7843L2.39188 10.8431V5.14168L2.60808 5.02604L7.98772 2.20047L13.5685 5.13665L13.5836 5.14671Z" fill="#154DDD"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,11 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11258_68551)">
<path d="M7.99992 14.6666C11.6818 14.6666 14.6666 11.6818 14.6666 7.99992C14.6666 4.31802 11.6818 1.33325 7.99992 1.33325C4.31802 1.33325 1.33325 4.31802 1.33325 7.99992C1.33325 11.6818 4.31802 14.6666 7.99992 14.6666Z" fill="#666666" stroke="#666666" stroke-linejoin="round"/>
<path d="M6.66675 8.00007V5.69067L8.66675 6.84537L10.6667 8.00007L8.66675 9.15477L6.66675 10.3095V8.00007Z" fill="white" stroke="white" stroke-width="2" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_11258_68551">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 710 B

@ -0,0 +1,11 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11659_57830)">
<path d="M7.99992 14.6668C11.6818 14.6668 14.6666 11.6821 14.6666 8.00016C14.6666 4.31826 11.6818 1.3335 7.99992 1.3335C4.31802 1.3335 1.33325 4.31826 1.33325 8.00016C1.33325 11.6821 4.31802 14.6668 7.99992 14.6668Z" fill="#154DDD" stroke="#154DDD" stroke-linejoin="round"/>
<path d="M6.66675 7.99983V5.69043L8.66675 6.84513L10.6667 7.99983L8.66675 9.15453L6.66675 10.3092V7.99983Z" fill="white" stroke="white" stroke-width="2" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_11659_57830">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 707 B

@ -0,0 +1,11 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M40.8696 25.1492L34.2267 18.2832L31.2577 15.2082C31.216 15.1623 31.1655 15.1258 31.1096 15.1008C31.0537 15.0758 30.9934 15.0629 30.9323 15.0629C30.8714 15.0629 30.8112 15.0758 30.7553 15.1008C30.6994 15.1258 30.6488 15.1623 30.6072 15.2082L17.5519 28.7297C17.4454 28.8386 17.3017 28.8996 17.152 28.8996C17.0023 28.8996 16.8586 28.8386 16.7521 28.7297L14.0407 25.9215C13.9356 25.8111 13.8766 25.6623 13.8766 25.5073C13.8766 25.3522 13.9356 25.2034 14.0407 25.093L24.8861 13.8603C24.97 13.7668 25.0166 13.6439 25.0166 13.5163C25.0166 13.3887 24.97 13.2658 24.8861 13.1723L22.0257 10.2799C21.9838 10.234 21.9334 10.1974 21.8775 10.1724C21.8215 10.1474 21.7612 10.1345 21.7003 10.1345C21.6393 10.1345 21.5791 10.1474 21.5231 10.1724C21.4672 10.1974 21.4167 10.234 21.3749 10.2799L7.14032 25.0229C7.09602 25.0662 7.06071 25.1184 7.03658 25.1763C7.01244 25.2343 7 25.2967 7 25.3598C7 25.4229 7.01244 25.4854 7.03658 25.5433C7.06071 25.6013 7.09602 25.6535 7.14032 25.6968L13.756 32.5769L16.725 35.6378C16.8152 35.7247 16.9339 35.7729 17.0571 35.7729C17.1803 35.7729 17.299 35.7247 17.3892 35.6378L30.4444 22.1164C30.496 22.0629 30.5573 22.0204 30.6247 21.9915C30.6922 21.9625 30.7646 21.9476 30.8375 21.9476C30.9105 21.9476 30.9829 21.9625 31.0502 21.9915C31.1178 22.0204 31.1791 22.0629 31.2307 22.1164L33.9421 24.9246C33.9972 24.9759 34.0412 25.0387 34.0714 25.1088C34.1017 25.179 34.1172 25.2549 34.1172 25.3317C34.1172 25.4086 34.1017 25.4845 34.0714 25.5546C34.0412 25.6248 33.9972 25.6876 33.9421 25.7389L20.8869 39.2744C20.8008 39.3639 20.7524 39.4851 20.7524 39.6114C20.7524 39.7376 20.8008 39.8588 20.8869 39.9483L23.7067 42.8548C23.7485 42.9006 23.7989 42.9372 23.8549 42.9622C23.9108 42.9872 23.9711 43.0001 24.032 43.0001C24.093 43.0001 24.1533 42.9872 24.2092 42.9622C24.2652 42.9372 24.3156 42.9006 24.3574 42.8548L40.8696 25.8372C40.9534 25.7437 41 25.6208 41 25.4932C41 25.3656 40.9534 25.2427 40.8696 25.1492Z" fill="url(#paint0_linear_11045_65023)"/>
<path d="M27.5027 7.40105L23.0424 8.36987C23.0181 8.37727 22.996 8.39096 22.9782 8.40965C22.9604 8.42835 22.9475 8.45145 22.9407 8.47675C22.934 8.50202 22.9335 8.52869 22.9394 8.55423C22.9454 8.57975 22.9575 8.60328 22.9747 8.62262L26.4994 12.2592C26.5117 12.2795 26.5285 12.2963 26.5488 12.3079C26.5689 12.3196 26.5915 12.3257 26.6146 12.3257C26.6377 12.3257 26.6604 12.3196 26.6805 12.3079C26.7008 12.2963 26.7176 12.2795 26.7299 12.2592L27.6789 7.63975C27.7 7.61282 27.7119 7.57928 27.7123 7.54455C27.713 7.50981 27.7022 7.47592 27.6817 7.44832C27.6614 7.42072 27.6327 7.40105 27.6001 7.39248C27.5677 7.3839 27.5333 7.38692 27.5027 7.40105Z" fill="#C50F08"/>
<path d="M29.5769 5.04292L23.8153 6.62955C23.7614 6.64404 23.7122 6.67324 23.6728 6.71411C23.6335 6.75498 23.6054 6.80602 23.5916 6.86193C23.5777 6.91784 23.5786 6.97656 23.5941 7.032C23.6096 7.08744 23.6392 7.13755 23.6797 7.17714L27.8958 11.5439C27.9325 11.5867 27.9798 11.6182 28.0327 11.6348C28.0856 11.6514 28.1417 11.6525 28.1953 11.638C28.2486 11.6234 28.297 11.5938 28.3352 11.5524C28.3732 11.511 28.3995 11.4594 28.411 11.4035L30.0243 5.43607C30.0467 5.37382 30.0502 5.30591 30.034 5.24159C30.0178 5.17728 29.9828 5.11969 29.934 5.0767C29.885 5.0337 29.8245 5.00738 29.7606 5.00134C29.6967 4.99529 29.6326 5.00982 29.5769 5.04292Z" fill="#FAEC18"/>
<defs>
<linearGradient id="paint0_linear_11045_65023" x1="21.1445" y1="35.5395" x2="28.3029" y2="11.6214" gradientUnits="userSpaceOnUse">
<stop stop-color="#3785B7"/>
<stop offset="0.69" stop-color="#2F3E8F"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 130 KiB

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

Loading…
Cancel
Save