Compare commits

...

108 Commits

Author SHA1 Message Date
donghao 128663d284 feat: 完善选择分类组件
donghao dccd69ba04 fix: 解决引入文件报错
donghao 3c24c51993 fix: ui反馈问题调整
donghao 3090ffa557 fix: 修复测试反馈问题
donghao 2dff260baa feat: 上传控件初始化,待验证,中文国际化拓展加入antdesign基础语言库
donghao 01093e14a5 feat: 接口变更
donghao d6d8b21265 feat: 联调基本完成
donghao 3a2db5a76c feat: 完善节点树的静态展示和修复删除文件的bug
donghao 9f5cd5caf1 feat: 模型部署详情更新初始化联调完成
donghao b4e53f8544 feat: 登录相关问题修复
donghao a00eeb2ffd feat: 完善节点模块,初步完成联调
donghao 120b162a40 feat: 设备状态,节点模型部署模块完成联调
donghao b55530aa51 feat: 完成算力中心、系统日志模块mock数据,模型部署模块新增查看联调完成,初始化预览yaml或者json文件
donghao 9f81eed868 feat: 初始化算力中心
donghao c427830ef6 feat: 模型管理初步联调完成
donghao cff535675c feat: 模型管理相关接口完成联调
donghao 7a37d4db6e feat: 节点设置模块初步完成对接
donghao cd816525b7 feat: 节点设备树、节点设备模块的联调完成
donghao c825f53982 feat: 分类模块联调初始化
donghao e74a0739ac feat: 企业管理模块接口对接完成
donghao 8bc9c4ff8e feat: 完善整体交互细节
donghao 8a56fb2946 feat: 外层业务模块问题修复
donghao 967a6785e0 feat: 继续完善外层页面
donghao d6014aa998 feat: 调整内层页面交互
donghao be7474ac77 feat: 模型管理整体优化
donghao cd86b64789 feat: 外层静态交互调整
donghao b4a51cac7f feat: 补充提交设备状态名称
donghao bd9a81e0a6 feat: 设备和服务器静态交互完成
donghao d8590ee313 feat: 完善设备节点设置的基础模型模块
donghao 1eb526d45d feat: 分类更新统一添加,节点设置外层交互完成
donghao 49bfe975bc feat: 初始化构建节点设备模块
donghao bc48347bb1 feat: 业务模型静态交互完成
donghao 6653b56737 feat: 企业信息展示模块静态交互完成
donghao c86d2b7a9e feat: 完成内层layout构建
donghao 0b8f2759bc feat: 初始化企业信息页面
donghao ef52a7bb74 feat: 通用算法平台2.0合并首次提交
donghao 8c79571e1b feat: 补充提交
donghao d6950afaea feat: 算力分配模块调整完成
donghao 70dab765df feat: mock数据完善
donghao a9134e7bf3 feat: 资源、设备mock数据完成
donghao 9af58943f3 feat: 新增mock环境通道
donghao 0b535104d8 fix: 项目部署切换不更新问题修复
chunquansang 3e821d2888 featï: mock更新
zhoux 654a944ec4 feat: 图形展示菜单设置补充
zhoux bf8e940c26 Merge branch 'develop' of http://192.168.10.28:3000/Yaxin/General-AI-Platform-Web into develop
zhoux 4918851373 feat: 图片显示减少图标展示数量
JINGYJ d054bbbfdd Merge branch 'develop' of http://192.168.10.28:3000/Yaxin/General-AI-Platform-Web into develop
JINGYJ 8a7c8f7f1d feact: 代码更新
zhoux e582ff06c5 feat: 图标设计结构数据调整
JINGYJ 5c8fa7aab8 Merge branch 'develop' of http://192.168.10.28:3000/Yaxin/General-AI-Platform-Web into develop
# Conflicts:
#	src/locales/zh-CN/common.ts
JINGYJ b7bae347c6 feact: 任务列表、服务器状态
zhoux 367df37cda feat: 完善告警模块完成,告警图文展示功能优化完成
JINGYJ e3307046be feact: 任务管理/任务列表
zhoux 52c3301571 feat: 告警列表、告警设置模块静态交互完善,算力分配交互完成
JINGYJ 5aae5031cc Merge branch 'develop' of http://192.168.10.28:3000/Yaxin/General-AI-Platform-Web into develop
# Conflicts:
#	src/components/Notice/index.tsx
JINGYJ bef3a5cc59 feact: 个人中心模块开发
chunquansang e1da11ba2f feat:change scss to less
zhoux d106371d4c feat: 告警设置完善,告警列表完成
zhoux 1ed2ce6800 feat: 项目设置新增告警设置,算力配置模块初始化完成
JINGYJ d7646773b6 Merge branch 'develop' of http://192.168.10.28:3000/Yaxin/General-AI-Platform-Web into develop
# Conflicts:
#	src/locales/zh-CN/menu.ts
JINGYJ ebb977a170 feact: 消息通知模块
zhoux c7db8824ef feat: 告警设置模块静态完成
JINGYJ c807eb7123 Merge branch 'develop' of http://192.168.10.28:3000/Yaxin/General-AI-Platform-Web into develop
JINGYJ 09022377f8 feact: 联系人列表新建弹框和编辑弹框
zhoux 3feef4f237 feat: 告警管理模块初始化构建完成
zhoux 0c8126ee64 feat: 模型镜像IP端口联动项初始化
zhoux f7402f5822 feat: 资源管理设备状态静态完成,fabric监控信息展示初始化
JINGYJ 694c5bdd69 feat: 联系人模块/联系人列表
JINGYJ 48bdae4570 feat: 分布式设备弹框样式修改
JINGYJ 54a9b2853b feat: 分布式设备样式调整
JINGYJ df386de507 feat: 分布式设备/设备列表
zhoux 04770db8ae feat: 分布式设备状态模块静态交互完成
JINGYJ 5280a4d032 feat: 设备组/设备类别
zhoux 628daf4cd1 feat: 初始化分布式设备状态模块
JINGYJ 5524a6aaec feat: 分布式设备模块
zhoux c4c145100b feat: 初始化分布式设备模块
zhoux d78221b5c8 feat: 模型详情中新增模型版本的增删改,选中树的样式调整
JINGYJ 61bc6012e0 feat: 首页样式修改
JINGYJ e2b2a1c973 feat: 首页颜色修改
zhoux 05029c8680 feat: logo替换、公司文案调整
JINGYJ d13742c852 feat: 通用平台登录页更新
zhoux 67fac9673f feat: 菜单管理图标选择交互整体优化
zhoux 0ae7e00e05 feat: 按UI优化项目部署模块
zhoux 8f0fa7794b feat: 新增左树右表的layout组件,按UI要求调整各模块的细节交互
JINGYJ 4627ed7a11 feat: 系统管理模块用户列表界面布局优化
JINGYJ b622351545 feat: 字体、弹框样式、列表样式、进行调整优化
zhoux af32293ebe feat: 设备管理、项目管理参考UI整体效果修复完成
JINGYJ ed51383f58 feat: 系统管理模块列表样样式调整
zhoux 4fc102c7d6 feat: 新增确认单个操作、批量操作的全局交互组件,统一修改资源管理列表模块
zhoux bd2c1ede98 feat: 新增字典渲染组件释放业务层处理,新增small模式的表单格式
zhoux 7ec6df5540 feat: 统一使用tableActionCard做为列表操作栏统一控件
zhoux 60228f360b feat: config模块新增列表、表单配置项,统一设置筛选&序号左侧固定、两种尺寸弹框表单;
chunquansang a2d9e3c3f5 feat 完善项目部署
zhoux ce2262593f feat: 模型详情独立成页面,全局未配置菜单页面在app.tsx过滤处理
chunquansang 953bdf2a40 feat 项目部署功能完善
chunquansang e51acef3aa feat 项目部署代ç 优化
zhoux c4f096623a feat: 统一主题色、表格按钮颜色间距等、项目列表卡片独立并完成初版静态交互
zhoux 9f49af1c10 feat: 新增全局测试数据testData,调整项目列表业务组件与静态组件隔离开
chunquansang 5f2252187c feat h264监控在线打开
zhoux 6b542454a3 fix: 模型版本列表按钮统一使用button,项目管理新增数据表单默认同行展示
chunquansang dfc7495975 模型版项目模块分步
zhoux 14fd60b49e feat: 配置common模块的delete文案提示,表格列中新增badge图标
chunquansang fc15e25bca 模型版本分布表单更新
chunquansang 7665a2bb4c 模型版本分布表单更新
zhoux 5cea7c19a5 feat: 模型列表固定表头设置批量按钮完成,遍历Vnode比对刷新节点key添加,分步表单整体样式初步完成调整
chunquansang 7fb0fad3c3 â€ï模型列表详情
zhoux e780b5f9f5 feat: 模型列表删除按钮个性化、气泡确认操作;抽屉展开内容间距调整;模型版本按钮超过3个显示更多
chunquansang dfd2169f32 first commit

@ -3,4 +3,4 @@ REACT_APP_ENV = dev
API_SERVER = 127.0.0.1:8888
SERVER_HOST = http://localhost:8888/
FILE_SERVER_HOST = http://192.168.10.28:8088
WEBRTC_SERVER_HOST = http://192.168.10.96:9005
WEBRTC_SERVER_HOST = http://192.168.10.70:8989

@ -3,4 +3,4 @@ REACT_APP_ENV = dev
API_SERVER = 127.0.0.1:8888
SERVER_HOST = http://localhost:8888/
FILE_SERVER_HOST = http://192.168.10.28:8088
WEBRTC_SERVER_HOST = http://192.168.10.96:9005
WEBRTC_SERVER_HOST = http://192.168.10.70:8989

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

@ -3,6 +3,5 @@ module.exports = {
globals: {
page: true,
REACT_APP_ENV: true,
SERVER_HOST: true,
},
};

2
.gitignore vendored

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

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

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

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

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

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

@ -0,0 +1,10 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-05-31 14:46:59
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-06-28 10:00:02
* @FilePath: \general-ai-platform-web\config\defaultApi.ts
* @Description: api
*/
export const fileApiActionUrl = '/api/v1/file/upload';
export const dataViewUrl = 'http://192.168.10.26:8848/indexDataScreen.html#/workbench';

@ -0,0 +1,86 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-13 14:19:57
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-13 10:20:45
* @FilePath: \general-ai-platform-web\config\defaultForm.ts
* @Description:
*/
import { CloseCircleOutlined, CopyOutlined, DeleteOutlined } from '@ant-design/icons';
import { StepsFormProps } from '@ant-design/pro-components';
import { ReactNode } from 'react';
export type IconConfig = {
/**
* icon
* Icon: ()=> <div/>
*/
Icon?: React.FC<any>;
/**
* tooltip
*/
tooltipText?: string;
};
// 通用表单配置
export const proFormCommonOptions: Record<string, any> = {};
const formBoxMargin = 2 * 24;
const formItemGap = 12;
// Small 640
export const proFormSmallModelWidth: number = 640;
export const proFormSmallItemStyleProps: Record<string, any> = {
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, // 两列
};
// max 920
export const proFormMaxModelWidth: number = 920;
export const proFormMaxItemStyleProps: Record<string, any> = {
width: proFormMaxModelWidth - formBoxMargin,
column2Width: (proFormMaxModelWidth - formBoxMargin - formItemGap) / 2, // 两列
};
/**表单具体单项配置 */
// proFormList 新增一项按钮配置
export const proFormListCreatorButtonProps: {
creatorButtonText?: ReactNode;
position?: 'top' | 'bottom';
deleteIconProps?: IconConfig | false;
} = {
position: 'bottom',
creatorButtonText: '添加参数字段', // 设置新增一项数据的文案
deleteIconProps: {
Icon: CloseCircleOutlined,
tooltipText: '不需要这行了',
},
};
export const proFormListActionButtonProps: {
CopyableIconProps?: IconConfig | false;
deleteIconProps?: IconConfig | false;
} = {
CopyableIconProps: {
Icon: CopyOutlined,
tooltipText: '复制',
},
deleteIconProps: {
Icon: DeleteOutlined,
tooltipText: '删除',
},
};
// 分步表单统一配置
export const proFormStepsFormProps: StepsFormProps = {
stepsProps: {
labelPlacement: 'vertical',
},
};

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

@ -1,3 +1,11 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-13 10:23:57
* @FilePath: \general-ai-manage\config\defaultSettings.ts
* @Description:
*/
import { ProLayoutProps } from '@ant-design/pro-components';
/**
@ -8,20 +16,27 @@ const Settings: ProLayoutProps & {
logo?: string;
} = {
navTheme: 'light',
// menuHeaderRender: () => undefined,
// headerRender: () => undefined,
// headerTitleRender: () => undefined,
// // 菜单栏和顶部栏合在一起,此处置空
// menuRender: () => undefined,
// 拂晓蓝
colorPrimary: '#1890ff',
layout: 'mix',
colorPrimary: '#154DDD',
// breadcrumbRender: () => undefined,
layout: 'side',
contentWidth: 'Fluid',
fixedHeader: false,
fixSiderbar: true,
colorWeak: false,
title: '徐州农商行智能AI系统',
title: ' ',
pwa: true,
logo: '/my_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;

@ -0,0 +1,15 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-12-26 15:51:09
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-13 10:24:15
* @FilePath: \general-ai-platform-web\config\defaultStyle.ts
* @Description:
*/
export const flex: React.CSSProperties = {
display: 'flex',
};
export const flexRA: React.CSSProperties = {
...flex,
};

@ -0,0 +1,55 @@
/*
* @Author: zhoux zhouxia@supervision.ltd
* @Date: 2023-11-13 11:32:26
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-07-23 09:33:01
* @FilePath: \general-ai-platform-web\config\defaultTable.ts
* @Description:
*/
import { Empty, PaginationProps } from 'antd';
import emptyIcon from '/public/icons/noneData.png';
// 通用列表配置
export const proTableCommonOptions: Record<string, any> = {
scrollX: 'max-content', // 保证左右侧列的固定,并能保证没列标题不换行
scrollY: 500, // 保证列表高度固定
commscrollX: 1300,
commscrollY: 500, // 保证列表高度固定
searchLabelWidth: 'auto', // 整体对齐label根据实际字数自适应
};
// 操作栏位配置
export const proTableActionColumnOptions: Record<string, any> = {
dataIndex: 'option',
valueType: 'option',
align: 'center',
fixed: 'right',
};
// 分页器配置
export const proTablePaginationOptions: PaginationProps = {
showSizeChanger: true,
// showQuickJumper: true,
showTotal: (total) => `${total}`,
// pageSizeOptions: ['5', '10', '20', '500'], // 每页条数选项
};
// ProTabel ProList 默认值
export const proTableDefaultOptions: Record<string, any> = {
locale: {
emptyText: (
<div className="h-full" style={{ padding: '10px 0' }}>
<Empty style={{ margin: '20px 0' }} image={emptyIcon} description="暂无数据~" />
</div>
),
},
};
// 默认索引列配置
// export const proTableIndexColumnOptions : ProColumns = {
// title: '序号',
// dataIndex: 'index',
// valueType: 'index', // 增加该属性以添加边框
// 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": {
@ -495,7 +495,7 @@
"username": {
"type": "string"
},
"password": {
"pwd": {
"type": "string"
},
"autoLogin": {

@ -1,3 +1,11 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-23 15:03:24
* @FilePath: \general-ai-manage\config\proxy.ts
* @Description:
*/
/**
* @name
* @see
@ -12,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',
@ -25,7 +33,7 @@ export default {
// localhost:8000/api/** -> https://preview.pro.ant.design/api/**
'/api/v1/': {
// 要代理的地址
target: 'http://192.168.10.96:8888/',
target: 'http://192.168.10.70:8989/',
// target: 'https://www.baidu.com',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
@ -47,7 +55,7 @@ export default {
* @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,
@ -56,9 +64,11 @@ export default {
},
pre: {
'/api/': {
target: 'your pre url',
// 要代理的地址
target: 'https://preview.pro.ant.design',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
changeOrigin: true,
pathRewrite: { '^': '' },
},
},
};

@ -1,8 +1,16 @@
/**
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-06-17 14:42:27
* @FilePath: \general-ai-manage\config\routes.ts
* @Description:
*/
/**
* @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,211 +18,208 @@
* @param icon https://ant.design/components/icon-cn 注意去除风格后缀和大小写,如想要配置图标为 <StepBackwardOutlined /> 则取值应为 stepBackward 或 StepBackward如想要配置图标为 <UserOutlined /> 则取值应为 user 或者 User
* @doc https://umijs.org/docs/guides/routes
*/
export default [
/** 主页路由模块 */
// 首页
export const homeRoute = [
{
path: '/user',
layout: false,
routes: [
{
name: 'login',
path: '/user/login',
component: './User/Login',
},
],
name: 'home-business-project',
path: '/home/business-project',
component: './Project/BusinessProject',
access: 'canReadMenu',
key: 'BusinessProject001',
level: 1, // 一级菜单
},
{
path: '/welcome',
name: 'welcome',
];
component: 'Welcome/Welcome',
},
// 算力中心
export const computePowerCenterRoute = [
{
path: '/admin',
name: 'admin',
access: 'canAdmin',
routes: [
{
path: '/admin',
redirect: '/admin/sub-page',
},
{
path: '/admin/sub-page',
name: 'sub-page',
component: './Admin',
},
],
name: 'computePower-center',
path: '/home/computePower-center',
component: './ComputePowerCenter',
access: 'canReadMenu',
key: 'ComputePowerCenter001',
level: 1, // 一级菜单
},
];
// 系统日志
// 算力中心
export const logRoute = [
{
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: 'log-index',
path: '/home/log-index',
component: './Log',
access: 'canReadMenu',
key: 'LogIndex001',
level: 1, // 一级菜单
},
{
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'
}],
];
/**
* @
* @param modelRouteIndex
* @param subModelRoute
* @param level
* @param isHideMenu
* @param icon
* @param rootMenuKey key
*/
const modelRouteIndex = {
name: 'model-manage',
path: '/home/model-index',
component: './Model/ModelIndex',
access: 'canReadMenu',
// menuIcon: 'icon-moxingliebiao-unselected',
key: 'model000',
};
const subModelRoute = [
{
name: 'model-index',
path: '/home/model-index',
component: './Model/ModelIndex',
access: 'canReadMenu',
// menuIcon: 'icon-moxingliebiao-unselected',
defaultIcon: 'modelListActiveIcon',
// activeIcon: modelListActiveIicon,
key: 'model001',
rootMenuKey: 'model000',
},
{
name: 'model-runtime-lib',
path: '/home/runtime-lib',
component: './Model/ModelRuntimeLib',
access: 'canReadMenu',
key: 'model002',
menuIcon: 'icon-moxingyunhangku-unselected',
level: 2,
rootMenuKey: 'model000',
},
{
name: 'model-detail',
path: '/home/model-detail/:id',
component: './Model/ModelDetail',
access: 'canReadMenu',
key: 'model003',
isHideMenu: true,
level: 2,
rootMenuKey: 'model000',
},
{
name: 'resource',
path: '/resource',
routes: [{
'name': 'algorithm-model-list',
'path': '/resource/algorithm-model-list',
'component': 'Resource/AlgorithmModelList',
'access': 'canReadMenu'
}, {
'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'
}]
},
export const modelRoute = [
{
name: 'analysis',
path: '/analysis',
routes: [
{
'name': 'action-detection-list',
'path': '/analysis/action-detection-list',
'component': 'Analysis/ActionDetectionList',
'access': 'canReadMenu'
}
]
...modelRouteIndex,
level: 1,
subMenu: [...subModelRoute],
},
{
name: 'project',
path: '/project',
routes: [{
'name': 'project-list',
...subModelRoute,
];
'path': '/project/project-list',
'component': 'Project/ProjectList',
'access': 'canReadMenu'
}]
},
/**
* @
*/
export const outerMenuRoute = {
name: 'home',
path: '/home',
layout: false,
access: 'canReadMenu',
component: '@/layouts/HomeLayout',
routes: [...homeRoute, ...modelRoute, ...computePowerCenterRoute, ...logRoute],
};
/**
* @
*/
export const innerMenuRoutes = [
{
name: 'task',
path: '/task',
component: 'Hidden',
name: 'business-info-index',
path: '/business/index',
component: './Project/BusinessInfo',
access: 'canReadMenu',
key: '1001',
menuIcon: 'icon-qiyexinxi',
},
{
name: 'compute_power',
path: '/compute_power',
component: 'ComputePowerAllocation/ComputePowerAllocation',
name: 'business-device-group',
path: '/business/deviceGroup',
component: './Business/DeviceGroup',
access: 'canReadMenu',
key: '1002',
menuIcon: 'icon-jiedianshezhi',
},
{
name: 'data_screen',
path: '/data_screen',
name: 'business-model-index',
path: '/business/businessModel',
component: './Business/BusinessModel',
access: 'canReadMenu',
key: '1003',
menuIcon: 'icon-yewumoxing',
},
{
name: 'algorithm_setting',
path: '/algorithm_setting',
component: 'Setting/AlgorithmSetting',
name: 'business-server-state',
path: '/business/serverState',
component: './Business/BusinessState',
access: 'canReadMenu',
key: '1004',
menuIcon: 'icon-fuwuqizhuangtai',
},
{
name: 'alarm',
path: '/alarm',
component: 'Hidden',
name: 'business-device-state',
path: '/business/deviceState',
component: './Business/BusinessState/deviceSate',
access: 'canReadMenu',
key: '1005',
menuIcon: 'icon-shebeizhuangtai',
},
];
// 全路由模块
export default [
outerMenuRoute,
{
name: 'logging',
path: 'http://192.168.10.96:5601/app/r/s/uDpRg',
path: '/user',
layout: false,
routes: [
{
name: 'login',
path: '/user/login',
component: './User/Login',
},
],
},
...innerMenuRoutes,
{
path: '/',
redirect: '/welcome',
redirect: '/home/business-project',
},
{
path: '*',
layout: false,
component: './404',
},
// test demo
// {
// path: '/admin',
// name: 'admin',
// icon: 'crown',
// routes: [
// {
// path: '/admin',
// redirect: '/admin/index',
// },
// {
// path: '/admin/index',
// name: 'admin-index',
// component: './Admin',
// },
// {
// path: '/admin/previewFile',
// name: 'admin-preview-file',
// component: './Admin/previewFile',
// },
// ],
// },
];

@ -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: {

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

@ -0,0 +1,40 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-24 17:57:58
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-25 15:20:55
* @FilePath: \general-ai-platform-web\mock\businessModel.ts
* @Description: mock api
*/
import {
mockGetBaseBusinessModelListData,
mockGetBusinessModelListData,
} from './pools/businessModelData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 企业业务模型列表
'GET /api/businessModel/list': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetBusinessModelListData,
data: { ...mockGetBusinessModelListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 企业基础业务模型列表
'GET /api/businessModel/base/list': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetBaseBusinessModelListData,
data: { ...mockGetBaseBusinessModelListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -0,0 +1,65 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-19 17:10:21
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-24 13:41:34
* @FilePath: \general-ai-platform-web\mock\businessProject.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import {
mockGetBusinessAlgorithmData,
mockGetBusinessBaseCountData,
mockGetBusinessProjectData,
} from './pools/businessProjectData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 企业列表
'POST /api/v1/enterprise/entity/index': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetBusinessProjectData,
data: { ...mockGetBusinessProjectData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.send(resData);
},
//
'POST /api/v1/enterprise/entity/index/basecount': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetBusinessBaseCountData),
};
res.send(resData);
},
// 企业详情
'GET /api/businessProject/detail': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { id } = req.query;
let finalData = {};
mockGetBusinessProjectData.data.data.forEach((item) => {
if (Number(item.id) === Number(id)) {
finalData = item;
// break;
}
});
const resData: successMockApiProps = fetchMockSuccessFullByOther({
data: finalData,
});
res.json(resData);
},
// 企业算法列表
'GET /api/businessProject/algorithm': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetBusinessAlgorithmData,
data: { ...mockGetBusinessAlgorithmData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
};

@ -0,0 +1,152 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-05-08 14:21:42
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-10 15:17:08
* @FilePath: \general-ai-platform-web\mock\businessState.ts
* @Description:
*/
import {
deviceListData,
deviceStateLogListData,
serverListData,
serverStateLogListData,
} from './pools/businessStateData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 服务器列表
'GET /api/business/serverState/list': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize, status } = req.query;
let finalData = serverListData;
let { onlineCount, outlineCount } = serverListData.data;
if (status && ['1', '2'].includes(status)) {
onlineCount = 0;
outlineCount = 0;
let newArr = [];
serverListData.data.data.forEach((item) => {
if (status === item.state) {
newArr.push(item);
}
if (item.state === '1') {
onlineCount++;
} else {
outlineCount++;
}
});
finalData = {
...serverListData,
data: {
...serverListData.data,
onlineCount,
outlineCount,
data: newArr,
},
};
}
const resData: successMockApiProps = {
...fetchCurrPageByList({
...finalData,
data: { ...finalData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 服务器日志分页列表
'GET /api/business/serverState/logList': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...serverStateLogListData,
data: { ...serverStateLogListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 设备列表
'GET /api/business/deviceState/list': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize, status } = req.query;
let finalData = deviceListData;
let { onlineCount, outlineCount, processCount, errorCount } = deviceListData.data;
if (status && ['1', '2', '3', '4'].includes(status)) {
onlineCount = 0;
outlineCount = 0;
processCount = 0;
errorCount = 0;
let newArr = [];
deviceListData.data.data.forEach((item) => {
if (status === item.state) {
newArr.push(item);
}
switch (item.state) {
case '1':
onlineCount++;
break;
case '2':
outlineCount++;
break;
case '3':
processCount++;
break;
default:
errorCount++;
break;
}
});
finalData = {
...deviceListData,
data: {
...deviceListData.data,
onlineCount,
outlineCount,
processCount,
errorCount,
data: newArr,
},
};
}
const resData: successMockApiProps = {
...fetchCurrPageByList({
...finalData,
data: { ...finalData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 服务器日志分页列表
'GET /api/business/deviceState/logList': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...deviceStateLogListData,
data: { ...deviceStateLogListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 未启用
// 企业详情
// 'GET /api/business/serverState/detail': async (req: Request, res: Response) => {
// // get 使用 query 读取参数
// const { id } = req.query;
// let finalData = {};
// serverListData.data.data.forEach((item) => {
// if (Number(item.id) === Number(id)) {
// finalData = item;
// // break;
// }
// });
// const resData: successMockApiProps = fetchMockSuccessFullByOther({
// data: finalData,
// });
// res.json(resData);
// },
};

@ -0,0 +1,30 @@
/*
* @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 { powerGroupListData, powerPoolsListData } 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);
},
};

@ -0,0 +1,33 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-25 15:45:17
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-10 17:13:12
* @FilePath: \general-ai-platform-web\mock\device.ts
* @Description: mock
*/
import { mockGetAllDeviceList, mockGetDeviceListByGroup } from './pools/deviceData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 设备列表
'GET /api/device/listByGroup': async (req: Request, res: Response) => {
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetDeviceListByGroup,
data: { ...mockGetDeviceListByGroup.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// // 设备分类
'GET /api/device/allDevice': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetAllDeviceList),
};
res.json(resData);
},
};

@ -0,0 +1,78 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:53:15
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-06-18 09:28:19
* @FilePath: \general-ai-platform-web\mock\deviceGroup.ts
* @Description: mock
*/
import {
mockGetDeviceGroupData1,
mockGetDeviceGroupData2,
mockGetDeviceGroupData3,
mockGetDeviceGroupFkSelectData,
mockGetDeviceGroupListData,
mockGetDeviceGroupSettingData,
mockGetDeviceGroupTreeData,
} from './pools/deviceGroupData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 节点列表分页
'GET /api/device_group/getDeviceGroupList': async (req: Request, res: Response) => {
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetDeviceGroupListData,
data: { ...mockGetDeviceGroupListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 设备节点树列表
'GET /api/device_group/setting_data': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceGroupSettingData),
};
res.json(resData);
},
/** 未启用 */
// 设备节点选项列表
'GET /api/device_group/getDeviceGroupFkSelect': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceGroupFkSelectData),
};
res.json(resData);
},
// 设备节点树列表
'GET /api/device_group/getDeviceGroupTree': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceGroupTreeData),
};
res.json(resData);
},
// 节点详情
'GET /api/device_group/getDeviceGroupById': async (req: Request, res: Response) => {
const { id } = req.query;
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.json(resData);
},
};

@ -0,0 +1,29 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-17 14:01:39
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-28 14:08:45
* @FilePath: \general-ai-manage\mock\dict.ts
* @Description: mock
*/
import { mockGetDeviceTypeDictData, mockGetIndustryDictData } from './pools/dictData';
import { successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 行业类别
'GET /api/v1/dict/industry': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetIndustryDictData),
};
res.json(resData);
},
// 设备分类
'GET /api/dict/deviceType': async (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetDeviceTypeDictData),
};
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);

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

@ -0,0 +1,88 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-11 14:13:34
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-06 13:55:01
* @FilePath: \general-ai-manage\mock\model.ts
* @Description: mock api
*/
/**模型管理模块 mock */
import {
mockGetGroupBaseModelListData,
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 { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetModelListData,
data: { ...mockGetModelListData.data, pageNo, 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.data.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 { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetModelVersionListData,
data: { ...mockGetModelVersionListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 模型运行库列表分页
'GET /api/model/runtimeLib/list': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { pageNo, pageSize } = req.query;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetModelRuntimeLibListData,
data: { ...mockGetModelRuntimeLibListData.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.json(resData);
},
// 模型运行库文件列表
'GET /api/model/runtimeLib/filesList': async (req: Request, res: Response) => {
const resData: successMockApiProps = fetchMockSuccessFullByOther(
mockGetModelRuntimeLibFilesListData,
);
res.json(resData);
},
// 节点下基础模型列表
'GET /api/model/groupBaseModel/list': async (req: Request, res: Response) => {
const resData: successMockApiProps = fetchMockSuccessFullByOther(mockGetGroupBaseModelListData);
res.json(resData);
},
};

@ -0,0 +1,101 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-24 17:51:07
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-23 16:14:57
* @FilePath: \general-ai-platform-web\mock\pools\businessModelData.ts
* @Description: mock
*/
import { generateRandomString } from '../utils/mockHash';
import { generateRandomDateTimeByYear } from '../utils/mockMoment';
const generatrModels = () => {
const currList: Record<string, any>[] = [];
const count = 1 + Math.floor(Math.random() * 8);
for (let i = 0; i < count; i++) {
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
name: '基础模型' + (i + 1), // 设备名称
});
}
return currList;
};
// 业务模型列表
const startBusinessModelList = () => {
const currList: Record<string, any>[] = [];
const nameArr = ['陌生人群检测', '在岗打瞌睡检测', '上班离岗检测'];
const count = nameArr.length;
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++) {
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
isEnable: Math.floor(Math.random() * 8) % 2 === 0,
bussnessName: '目标检测',
industry: '通用',
name: nameArr[i],
deviceSort: '文字识别',
remark: '精确定位装配部件的中心位置并检测可能的缺陷,确保装配精度。',
defaultVersionFkId: 'V1.6.25',
type: '经典算法',
provider: '苏胜天',
linkModels: generatrModels(),
});
}
return {
count,
data: currList,
};
};
// 基础模型列表
const startBaseBusinessModelList = () => {
const currList: Record<string, any>[] = [];
const nameArr = ['玩手机识别', '打瞌睡识别', '离岗检测'];
const count = nameArr.length;
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',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
industry: '通用',
name: nameArr[i],
deviceSort: '文字识别',
defaultVersionFkId: 'V1.6.25',
type: '经典算法',
provider: '苏胜天',
});
}
return {
count,
data: currList,
};
};
// 业务模型
export const mockGetBusinessModelListData = {
data: {
next: null,
previous: null,
...JSON.parse(JSON.stringify(startBusinessModelList())),
},
};
// 基础模型
export const mockGetBaseBusinessModelListData = {
data: {
next: null,
previous: null,
...startBaseBusinessModelList(),
},
};

@ -0,0 +1,189 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-19 17:10:21
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-24 13:41:44
* @FilePath: \general-ai-platform-web\mock\pools\businessProjectData.ts
* @Description:
*/
/**@企业项目首页模块 */
// 企业项目列表
export const mockGetBusinessProjectData = {
data: {
count: 7,
next: null,
previous: null,
data: [
{
id: '1',
name: '一名科技有限公司', // 公司名称
address: '', // 公司地址
industry: 1002,
industryName: '制造业', // 公司所属行业
contacts: '', // 联系人
contactWay: '', // 联系方式
remark: '', // 简介
logo: '', // 企业logo
modelCount: 3, // 模型数量
deviceCount: 1, // 设备数量
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
validity_period: '2012-01-01 ~ 2042-12-31',
},
{
id: '2',
name: '江川科技有限公司',
industry: 1002,
industryName: '制造业',
modelCount: 2,
deviceCount: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
validity_period: '2022-01-01 ~ 2030-12-31',
},
{
id: '3',
name: '苏胜天信息科技有限公司',
industry: 1001,
industryName: '互联网科技',
modelCount: 1,
deviceCount: 1,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01',
province: '江苏省',
city: '南京市',
address: '雨花台区软件大道新华汇B4栋4楼', // 公司地址
contacts: '张三', // 联系人
contactWay: '17755551234', // 联系方式
validity_period: '2016-01-01 ~ 2099-12-31',
remark:
'南京苏胜天信息科技有限公司成立于2016年拥有专业计算机视觉和机器学习方面的技术团队助力制造业工业检测实现智能化实现企业降本增效。公司核心技术是机器视觉算法致力于自动化成套视觉检测设备。 ',
},
{
id: '4',
name: '雅信视觉科技有限公司', // 公司名称
industry: 1001,
industryName: '互联网科技',
modelCount: 3, // 模型数量
deviceCount: 1, // 设备数量
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
validity_period: '2018-01-01 ~ 2099-12-31',
},
{
id: '5',
name: '超越科技有限公司',
industry: 1001,
industryName: '互联网科技',
modelCount: 2,
deviceCount: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
validity_period: '2016-01-01 ~ 2049-12-31',
},
{
id: '6',
name: '金怡工厂',
industry: 1002,
industryName: '冶金制造业',
modelCount: 1,
deviceCount: 1,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01',
validity_period: '2018-01-01 ~ 2039-12-31',
},
{
id: '7',
name: '乐乐五金制造',
industry: 1002,
industryName: '冶金制造业',
modelCount: 2,
deviceCount: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
validity_period: '2021-01-01 ~ 2035-12-31',
},
],
},
};
/**@企业项目信息模块 */
// 企业算法列表
export const mockGetBusinessAlgorithmData = {
data: {
count: 5,
next: null,
previous: null,
data: [
{
id: '1',
name: '气泡缺陷检测', // 公司名称
typeName: '经典算法', // 算法类型 经典算法 机器学习
version: '1.6.25', // 版本
industry: 1003,
industryName: '食品、饮料、医疗卫生', // 公司所属行业
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
icon: '',
},
{
id: '2',
name: '未带安全帽识别', // 公司名称
typeName: '机器学习', // 算法类型 经典算法 机器学习
version: '3.1.09', // 版本
industry: 1004,
industryName: '通用', // 公司所属行业
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
icon: '',
},
{
id: '3',
name: '元器件(插件)混料检测', // 公司名称
typeName: '经典算法', // 算法类型 经典算法 机器学习
version: '2.4.18', // 版本
industry: 1005,
industryName: '手机、电子、SMT', // 公司所属行业
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
icon: '',
},
{
id: '4',
name: '中心孔缺陷检测', // 公司名称
typeName: '机器学习', // 算法类型 经典算法 机器学习
version: '1.0.89', // 版本
industry: 1006,
industryName: '锂电池', // 公司所属行业
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
icon: '',
},
{
id: '5',
name: '确定最佳剪切线位置', // 公司名称
typeName: '经典算法', // 算法类型 经典算法 机器学习
version: '2.2.55', // 版本
industry: 1007,
industryName: '钢铁、冶金、铸造', // 公司所属行业
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
icon: '',
},
],
},
msg: null,
success: true,
status: 200,
};
// 企业基础数据统计
export const mockGetBusinessBaseCountData = {
data: {
data: {
entity: 123,
model: 456,
device: 789,
},
},
};

@ -0,0 +1,240 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-01 16:34:06
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-10 15:23:17
* @FilePath: \General-AI-Platform-Web\mock\pools\serverData.ts
* @Description: mock
*/
import { generateRandomString } from '../utils/mockHash';
import { generateRandomDateTimeByYear } from '../utils/mockMoment';
const generateRandomTwoDecimal = () => {
// 生成一个在 [0, 1) 范围内的随机数
const randomFraction = Math.random();
// 乘以一个倍数,例如 100以增加小数位数
const multipliedValue = randomFraction * 100;
// 使用 Math.round() 进行四舍五入,并将结果除以倍数,得到两位小数
return Math.round(multipliedValue) / 100;
};
const progressData = () => {
const finalArr = [
{
label: 'CPU',
percent: generateRandomTwoDecimal(),
strokeColor: 'rgb(243,48,5)',
usedColors: ['#FFAB00', '#FF4409'],
freeColors: ['#477BFF', '#0048FE'],
},
{
label: '内存',
percent: (15 + Math.floor(Math.random() * 85)) / 100,
strokeColor: 'rgb(33,169,122)',
usedColors: ['#47A3FF', '#0D6EFF'],
freeColors: ['#00C45A ', '#4AE003'],
},
{
label: '存储',
percent: (15 + Math.floor(Math.random() * 85)) / 100,
strokeColor: 'rgb(33,169,122)',
usedColors: ['#FF8110', '#EB0404'],
freeColors: ['#4200FF', '#9520F0'],
},
{
label: 'GPU',
percent: (85 + Math.floor(Math.random() * 15)) / 100,
strokeColor: 'rgb(250,173,20)',
usedColors: ['#AE47FF', '#F008AF'],
freeColors: ['#FF4D00', '#F2B721'],
},
];
return finalArr;
};
// 服务器状态列表生成数据
const fetchServerList = () => {
const currList: Record<string, any>[] = [];
const count = 30;
const baseVersion = 'V' + Math.floor(Math.random() * 10);
const currFileTime = new Date().getTime();
const randomString = generateRandomString(20);
const ip1 = Math.floor(Math.random() * 255);
const ip2 = Math.floor(Math.random() * 255);
let onlineCount = 0;
let outlineCount = 0;
for (let i = 0; i < count; i++) {
const currState = Math.floor(Math.random() * 8) % 2 === 0 ? '1' : '2';
if (currState === '1') {
onlineCount++;
} else {
outlineCount++;
}
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
isEnable: Math.floor(Math.random() * 8) % 2 === 0,
deviceSort: '服务器' + (i + 1),
index: i,
provider: '苏胜天',
type: 4,
banner: 'https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg',
state: currState,
IP: `192.168.${ip1}.${ip2}`,
port: 80,
userName: 'admin',
pwd: '123456',
description:
'SSL证书又叫服务器证书腾讯云为您提供证书的一站式服务包括免费、付费证书的申请、管理及部',
progressData: progressData(),
});
}
return {
count,
data: currList,
onlineCount,
outlineCount,
};
};
// 设备状态列表生成数据
const fetchDeviceList = () => {
const currList: Record<string, any>[] = [];
const count = 120;
const baseVersion = 'V' + Math.floor(Math.random() * 10);
const currFileTime = new Date().getTime();
const randomString = generateRandomString(20);
const ip1 = Math.floor(Math.random() * 255);
const ip2 = Math.floor(Math.random() * 255);
let onlineCount = 0;
let outlineCount = 0;
let processCount = 0;
let errorCount = 0;
for (let i = 0; i < count; i++) {
const currState = 1 + (Math.floor(Math.random() * 30) % 4) + '';
switch (currState) {
case '1':
onlineCount++;
break;
case '2':
outlineCount++;
break;
case '3':
processCount++;
break;
default:
errorCount++;
break;
}
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
isEnable: Math.floor(Math.random() * 8) % 2 === 0,
name: '设备' + (i + 1),
groupName: '节点0' + ((Math.floor(Math.random() * 8) % 3) + 1),
deviceType: '设备分类' + ((Math.floor(Math.random() * 8) % 4) + 1),
index: i,
provider: '苏胜天',
type: 4,
banner: 'https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg',
state: currState,
IP: `192.168.${ip1}.${ip2}`,
port: 80,
remark: '暂无',
description:
'SSL证书又叫服务器证书腾讯云为您提供证书的一站式服务包括免费、付费证书的申请、管理及部',
progressData: progressData(),
});
}
return {
count,
data: currList,
onlineCount,
outlineCount,
processCount,
errorCount,
};
};
// 服务器日志列表数据生成
const fetchServerStateLogList = () => {
const count = 1 + Math.floor(Math.random() * 80);
let currList = [];
for (let i = 0; i < count; i++) {
const ip1 = Math.floor(Math.random() * 255);
const ip2 = Math.floor(Math.random() * 255);
const port = 80;
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
IP: `192.168.${ip1}.${ip2}`,
port,
deviceSort: '服务器',
provider: '苏胜天',
});
}
return {
count: currList.length,
data: currList,
};
};
// 设备日志列表数据生成
const fetchDeviceStateLogList = () => {
const count = 1 + Math.floor(Math.random() * 80);
let currList = [];
for (let i = 0; i < count; i++) {
const ip1 = Math.floor(Math.random() * 255);
const ip2 = Math.floor(Math.random() * 255);
const port = 80;
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
IP: `192.168.${ip1}.${ip2}`,
port,
deviceSort: '设备',
provider: '苏胜天',
runTime: `${Math.floor(Math.random() * 100)}${Math.floor(Math.random() * 24)}小时`,
});
}
return {
count: currList.length,
data: currList,
};
};
/**服务器 */
export const serverListData = {
data: {
...fetchServerList(),
},
};
export const serverParamsListData = {
data: {
data: progressData(),
},
};
export const serverStateLogListData = {
data: {
...fetchServerStateLogList(),
},
};
/**设备 */
export const deviceListData = {
data: {
...fetchDeviceList(),
},
};
export const deviceStateLogListData = {
data: {
...fetchDeviceStateLogList(),
},
};

@ -0,0 +1,122 @@
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,
};

@ -0,0 +1,102 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-26 16:18:26
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-10 17:13:03
* @FilePath: \general-ai-platform-web\mock\pools\deviceData.ts
* @Description: mock
*/
// 节点下设备列表数据
// 节点设备列表
import { generateRandomDateTimeByYear } from '../utils/mockMoment';
const fetchAllDeviceListByGroup = () => {
const nameArr = [
'海康威视球形摄像头',
'海康威视摄像头',
'大华摄像头',
'宝盈监控摄像头',
'安迅达监控摄像头',
'华为监控摄像头',
'海思监控摄像头',
'中维监控摄像头',
'罗普斯金监控摄像头',
'美电贝斯监控摄像头',
'索尼监控摄像头',
'松下监控摄像头',
'三星监控摄像头',
'小米监控摄像头',
'TP-Link监控摄像头',
'Vivotek监控摄像头',
'网视通监控摄像头',
'微拓监控摄像头',
'云从监控摄像头',
'摩托罗拉监控摄像头',
'新大陆监控摄像头',
];
const count = 1 + Math.floor(Math.random() * (nameArr.length - 1));
let currList = [];
for (let i = 0; i < count; i++) {
const ip1 = Math.floor(Math.random() * 255);
const ip2 = Math.floor(Math.random() * 255);
const port = 80;
currList.push({
id: i + '1',
createTime: generateRandomDateTimeByYear(2022),
updateTime: generateRandomDateTimeByYear(2023),
name: nameArr[i], // 设备名称
deviceType: '摄像头', // 设备类型
isEnable: true, // 是否部署
deviceSite: '东区左侧', // 设备位置
deviceModel: 'video_2024', // 设备型号
deviceParams: '627663_aduh237298', // 设备参数
remark: '精确定位装配部件的中心位置并检测可能的缺陷,确保装配精度。', // 备注
});
}
return {
count: currList.length,
data: currList,
};
};
export const mockGetAllDeviceList = {
data: {
...fetchAllDeviceListByGroup(),
},
};
export const mockGetDeviceListByGroup = {
data: {
count: 2,
data: [
{
id: '10001',
name: '海康威视环球摄像头', // 设备名称
bussnessName: '装配目标检测',
deviceType: '摄像头', // 设备类型
isEnable: true, // 是否部署
createTime: '2023-12-17T13:37:31.758471+08:00',
updateTime: '2024-04-25T15:22:16.530494+08:00',
deviceSite: '东区左侧', // 设备位置
deviceModel: 'haikang_video_2024', // 设备型号
deviceParams: '627663_aduh237298', // 设备参数
remark: '精确定位装配部件的中心位置并检测可能的缺陷,确保装配精度。', // 备注
},
{
id: '10002',
name: '海康威视环球摄像头',
bussnessName: '控制目标检测',
deviceType: '控制器',
isEnable: false,
createTime: '2023-12-17T13:37:31.758471+08:00',
updateTime: '2024-04-25T15:22:16.530494+08:00',
deviceSite: '南区前侧',
deviceModel: 'haikang_video_2024',
deviceParams: '627663_aduh237298',
remark: '精确定位装配部件的中心位置并检测可能的缺陷,确保装配精度。',
},
],
pageNo: 1,
pageSize: 10,
},
};

@ -0,0 +1,569 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-25 15:45:31
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-06-18 09:27:29
* @FilePath: \general-ai-platform-web\mock\pools\deviceGroupData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-25 16:32:31
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-28 13:21:47
* @FilePath: \general-ai-platform-web\mock\pools\deviceGroupData.ts
* @Description:
*/
// 设备节点树
export const mockGetDeviceGroupSettingData = {
data: [
{
name: '安徽省',
id: '340000',
groupList: [
{
name: '合肥市',
id: '340100',
groupList: [
{ name: '瑶海区', id: '340102', groupList: [] },
{ name: '庐阳区', id: '340103', groupList: [] },
{ name: '蜀山区', id: '340104', groupList: [] },
{ name: '包河区', id: '340111', groupList: [] },
{ name: '长丰县', id: '340121', groupList: [] },
{ name: '肥东县', id: '340122', groupList: [] },
{ name: '肥西县', id: '340123', groupList: [] },
{ name: '庐江县', id: '340124', groupList: [] },
{ name: '巢湖市', id: '340181', groupList: [] },
],
},
{
name: '芜湖市',
id: '340200',
groupList: [
{ name: '镜湖区', id: '340202', groupList: [] },
{ name: '弋江区', id: '340203', groupList: [] },
{ name: '鸠江区', id: '340207', groupList: [] },
{ name: '三山区', id: '340208', groupList: [] },
{ name: '芜湖县', id: '340221', groupList: [] },
{ name: '繁昌县', id: '340222', groupList: [] },
{ name: '南陵县', id: '340223', groupList: [] },
{ name: '无为县', id: '340225', groupList: [] },
],
},
{
name: '蚌埠市',
id: '340300',
groupList: [
{ name: '龙子湖区', id: '340302', groupList: [] },
{ name: '蚌山区', id: '340303', groupList: [] },
{ name: '禹会区', id: '340304', groupList: [] },
{ name: '淮上区', id: '340311', groupList: [] },
{ name: '怀远县', id: '340321', groupList: [] },
{ name: '五河县', id: '340322', groupList: [] },
{ name: '固镇县', id: '340323', groupList: [] },
],
},
{
name: '淮南市',
id: '340400',
groupList: [
{ name: '大通区', id: '340402', groupList: [] },
{ name: '田家庵区', id: '340403', groupList: [] },
{ name: '谢家集区', id: '340404', groupList: [] },
{ name: '八公山区', id: '340405', groupList: [] },
{ name: '潘集区', id: '340406', groupList: [] },
{ name: '凤台县', id: '340421', groupList: [] },
{ name: '寿县', id: '340422', groupList: [] },
],
},
{
name: '马鞍山市',
id: '340500',
groupList: [
{ name: '花山区', id: '340503', groupList: [] },
{ name: '雨山区', id: '340504', groupList: [] },
{ name: '博望区', id: '340506', groupList: [] },
{ name: '当涂县', id: '340521', groupList: [] },
{ name: '含山县', id: '340522', groupList: [] },
{ name: '和县', id: '340523', groupList: [] },
],
},
{
name: '淮北市',
id: '340600',
groupList: [
{ name: '杜集区', id: '340602', groupList: [] },
{ name: '相山区', id: '340603', groupList: [] },
{ name: '烈山区', id: '340604', groupList: [] },
{ name: '濉溪县', id: '340621', groupList: [] },
],
},
{
name: '铜陵市',
id: '340700',
groupList: [
{ name: '铜官区', id: '340705', groupList: [] },
{ name: '义安区', id: '340706', groupList: [] },
{ name: '郊区', id: '340711', groupList: [] },
{ name: '枞阳县', id: '340722', groupList: [] },
],
},
{
name: '安庆市',
id: '340800',
groupList: [
{ name: '迎江区', id: '340802', groupList: [] },
{ name: '大观区', id: '340803', groupList: [] },
{ name: '宜秀区', id: '340811', groupList: [] },
{ name: '怀宁县', id: '340822', groupList: [] },
{ name: '潜山市', id: '340882', groupList: [] },
{ name: '太湖县', id: '340825', groupList: [] },
{ name: '宿松县', id: '340826', groupList: [] },
{ name: '望江县', id: '340827', groupList: [] },
{ name: '岳西县', id: '340828', groupList: [] },
{ name: '桐城市', id: '340881', groupList: [] },
],
},
{
name: '滁州市',
id: '341100',
groupList: [
{ name: '琅琊区', id: '341102', groupList: [] },
{ name: '南谯区', id: '341103', groupList: [] },
{ name: '来安县', id: '341122', groupList: [] },
{ name: '全椒县', id: '341124', groupList: [] },
{ name: '定远县', id: '341125', groupList: [] },
{ name: '凤阳县', id: '341126', groupList: [] },
{ name: '天长市', id: '341181', groupList: [] },
{ name: '明光市', id: '341182', groupList: [] },
],
},
{
name: '阜阳市',
id: '341200',
groupList: [
{ name: '颍州区', id: '341202', groupList: [] },
{ name: '颍东区', id: '341203', groupList: [] },
{ name: '颍泉区', id: '341204', groupList: [] },
{ name: '临泉县', id: '341221', groupList: [] },
{ name: '太和县', id: '341222', groupList: [] },
{ name: '阜南县', id: '341225', groupList: [] },
{ name: '颍上县', id: '341226', groupList: [] },
{ name: '界首市', id: '341282', groupList: [] },
],
},
{
name: '宿州市',
id: '341300',
groupList: [
{ name: '埇桥区', id: '341302', groupList: [] },
{ name: '砀山县', id: '341321', groupList: [] },
{ name: '萧县', id: '341322', groupList: [] },
{ name: '灵璧县', id: '341323', groupList: [] },
{ name: '泗县', id: '341324', groupList: [] },
],
},
{
name: '六安市',
id: '341500',
groupList: [
{ name: '金安区', id: '341502', groupList: [] },
{ name: '裕安区', id: '341503', groupList: [] },
{ name: '叶集区', id: '341504', groupList: [] },
{ name: '霍邱县', id: '341522', groupList: [] },
{ name: '舒城县', id: '341523', groupList: [] },
{ name: '金寨县', id: '341524', groupList: [] },
{ name: '霍山县', id: '341525', groupList: [] },
],
},
{
name: '亳州市',
id: '341600',
groupList: [
{ name: '谯城区', id: '341602', groupList: [] },
{ name: '涡阳县', id: '341621', groupList: [] },
{ name: '蒙城县', id: '341622', groupList: [] },
{ name: '利辛县', id: '341623', groupList: [] },
],
},
{
name: '池州市',
id: '341700',
groupList: [
{ name: '贵池区', id: '341702', groupList: [] },
{ name: '东至县', id: '341721', groupList: [] },
{ name: '石台县', id: '341722', groupList: [] },
{ name: '青阳县', id: '341723', groupList: [] },
],
},
{
name: '宣城市',
id: '341800',
groupList: [
{ name: '宣州区', id: '341802', groupList: [] },
{ name: '郎溪县', id: '341821', groupList: [] },
{ name: '广德县', id: '341822', groupList: [] },
{ name: '泾县', id: '341823', groupList: [] },
{ name: '绩溪县', id: '341824', groupList: [] },
{ name: '旌德县', id: '341825', groupList: [] },
{ name: '宁国市', id: '341881', groupList: [] },
],
},
{
name: '黄山市',
id: '341000',
groupList: [
{ name: '屯溪区', id: '341002', groupList: [] },
{ name: '黄山区', id: '341003', groupList: [] },
{ name: '徽州区', id: '341004', groupList: [] },
{ name: '歙县', id: '341021', groupList: [] },
{ name: '休宁县', id: '341022', groupList: [] },
{ name: '黟县', id: '341023', groupList: [] },
{ name: '祁门县', id: '341024', groupList: [] },
],
},
],
},
{
name: '江苏省',
id: '320000',
groupList: [
{
name: '南京市',
id: '320100',
groupList: [
{ name: '玄武区', id: '320102', groupList: [] },
{ name: '秦淮区', id: '320104', groupList: [] },
{ name: '建邺区', id: '320105', groupList: [] },
{ name: '鼓楼区', id: '320106', groupList: [] },
{ name: '浦口区', id: '320111', groupList: [] },
{ name: '栖霞区', id: '320113', groupList: [] },
{ name: '雨花台区', id: '320114', groupList: [] },
{ name: '江宁区', id: '320115', groupList: [] },
{ name: '六合区', id: '320116', groupList: [] },
{ name: '溧水区', id: '320117', groupList: [] },
{ name: '高淳区', id: '320118', groupList: [] },
],
},
],
},
],
};
export const mockGetDeviceGroupTreeData = {
data: {
tree: [
{
title: '南京节点',
key: 1,
children: [
{
title: '秦淮节点',
key: 2,
children: [],
},
{
title: '江宁节点',
key: 3,
children: [],
},
],
},
{
title: '合肥节点',
key: 4,
children: [
{
title: '包河节点',
key: 5,
children: [],
},
],
},
],
},
};
// 节点列表分页
export const mockGetDeviceGroupListData = {
data: {
data: [
{
level: 1,
id: '0001',
createTime: '2023-10-17T10:43:31.254107+08:00',
updateTime: '2023-10-17T10:45:25.030034+08:00',
name: '上海节点',
address: '中国上海市浦东新区申迪北路',
fatherName: '无',
fatherId: '',
lon: 121.667987,
lat: 31.144417,
managerName: '刘芳',
managerPhone: '16526365632',
remark: '--',
},
{
level: 1,
id: '0002',
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: [
{
level: 2,
id: '20001',
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,
},
{
level: 2,
id: '20002',
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,
},
],
},
],
count: 2,
pageNo: 1,
pageSize: 10,
},
};
/** 未启用 */
// 节点节点选项列表
export const mockGetDeviceGroupFkSelectData = {
data: {
list: [
{
name: '南京节点',
id: 1,
},
{
name: '秦淮节点',
id: 2,
},
{
name: '江宁节点',
id: 3,
},
{
name: '安徽节点',
id: 4,
},
{
name: '合肥节点',
id: 5,
},
],
},
};
// 节点详情
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: '',
},
},
};
// 节点信息
export const mockGetNodeInfo = [
{
name: '南京中山陵',
address: '中国江苏省南京市玄武区明孝陵路1号',
fatherName: '南京',
fatherId: 'NJ002',
lon: 118.835383,
lat: 32.036853,
managerName: '赵刚',
managerPhone: '025-8443 5328',
remark: '中山陵是中国江苏省南京市的一处著名纪念建筑,是国父孙中山的陵墓。',
},
{
name: '南京总统府',
address: '中国江苏省南京市玄武区长江路292号',
fatherName: '南京',
fatherId: 'NJ003',
lon: 118.796492,
lat: 32.054979,
managerName: '陈霞',
managerPhone: '025-8462 3951',
remark:
'南京总统府是中国南京市玄武区长江路292号的一座历史建筑是中华民国时期南京国民政府的办公地点。',
},
{
name: '东方明珠塔',
address: '中国上海市浦东新区陆家嘴环路1号',
fatherName: '上海',
fatherId: 'SH004',
lon: 121.506377,
lat: 31.239722,
managerName: '王静',
managerPhone: '021-5879 1888',
remark: '东方明珠塔是位于中国上海市浦东陆家嘴金融贸易区的一座电视塔,是上海的标志性建筑之一。',
},
{
name: '南京雨花台',
address: '中国江苏省南京市雨花台区雨花路78号',
fatherName: '南京',
fatherId: 'NJ004',
lon: 118.748754,
lat: 31.997532,
managerName: '张磊',
managerPhone: '025-5275 0088',
remark: '雨花台是中国江苏省南京市雨花台区的一个丘陵,也是南京市的一个知名旅游景点。',
},
{
name: '上海科技馆',
address: '中国上海市浦东新区世纪大道2000号',
fatherName: '上海',
fatherId: 'SH005',
lon: 121.537235,
lat: 31.216444,
managerName: '周洋',
managerPhone: '021-6854 6916',
remark: '上海科技馆是位于中国上海市浦东新区的一座科技展示馆,是上海市的科普教育基地之一。',
},
{
name: '南京中华门',
address: '中国江苏省南京市秦淮区中华门',
fatherName: '南京',
fatherId: 'NJ005',
lon: 118.790325,
lat: 32.046384,
managerName: '李明',
managerPhone: '025-8357 8845',
remark: '中华门是中国江苏省南京市秦淮区的一处历史古迹,是南京古城墙的门。',
},
{
name: '上海外滩观景台',
address: '中国上海市黄浦区中山东一路20号',
fatherName: '上海',
fatherId: 'SH006',
lon: 121.489562,
lat: 31.240737,
managerName: '王红',
managerPhone: '021-5879 8901',
remark: '上海外滩观景台位于上海市黄浦区外滩20号是游览上海外滩天际线的最佳地点之一。',
},
{
name: '南京中山陵石象路',
address: '中国江苏省南京市玄武区石象路',
fatherName: '南京',
fatherId: 'NJ006',
lon: 118.835168,
lat: 32.041867,
managerName: '刘军',
managerPhone: '025-8463 2211',
remark: '南京中山陵石象路是中国江苏省南京市玄武区的一条道路,沿路有许多历史建筑和景点。',
},
{
name: '上海豫园',
address: '中国上海市黄浦区安仁街137号',
fatherName: '上海',
fatherId: 'SH007',
lon: 121.492783,
lat: 31.227565,
managerName: '张艳',
managerPhone: '021-6328 8888',
remark: '上海豫园是位于上海市黄浦区的一座古典式园林,是上海市的主要旅游景点之一。',
},
];

@ -0,0 +1,199 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-17 13:58:57
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-28 14:03:58
* @FilePath: \general-ai-manage\mock\pools\dictData.ts
* @Description: mock
*/
// 行业类别
export const mockGetIndustryDictData = {
data: {
data: [
{
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: '',
},
],
},
};
// 设备分类
export const mockGetDeviceTypeDictData = {
data: {
data: [
{ id: 1002000, name: '摄像头' },
{ id: 1002002, name: '控制器' },
],
},
};

@ -0,0 +1,25 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-01-24 16:05:16
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-22 11:03:15
* @FilePath: \general-ai-platform-web\mock\pools\menuData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/** 菜单目录信息 */
export const mockGetMenuData = {
data: {
routes: [
{
component: 'RealTime/InvolvedList',
icon: '',
key: '101',
name: 'realTime-involved-list',
path: '/realTime/involved-list',
routes: [],
title: '告警汇总',
access: 'canReadMenu',
},
],
},
};

File diff suppressed because it is too large Load Diff

@ -0,0 +1,129 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-06-11 14:24:07
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-06-11 14:59:27
* @FilePath: \general-ai-platform-web\mock\pools\serverLogData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
export const mockGetServerLogList = {
data: {
count: 15,
data: [
{
accountName: 'user123',
ipAddress: '192.168.1.1',
timestamp: 1625190000,
action: '新建用户',
logContent:
'用户user123在系统中创建了一个新的用户账号用户名为newUser001。操作成功权限为普通用户。',
},
{
accountName: 'admin456',
ipAddress: '192.168.1.2',
timestamp: 1625193600,
action: '编辑文件',
logContent:
'管理员admin456对文件document_v2.0进行了编辑,修改了文件中的部分内容,并保存了更改。',
},
{
accountName: 'user789',
ipAddress: '192.168.1.3',
timestamp: 1625197200,
action: '删除记录',
logContent:
'用户user789从数据库中删除了一条记录记录ID为10023。删除操作已确认无法恢复。',
},
{
accountName: 'guest001',
ipAddress: '192.168.1.4',
timestamp: 1625200800,
action: '新建项目',
logContent: '游客guest001在系统中创建了一个新项目项目名称为Project_A。项目描述已填写。',
},
{
accountName: 'dev002',
ipAddress: '192.168.1.5',
timestamp: 1625204400,
action: '编辑配置',
logContent:
'开发人员dev002对系统配置进行了编辑调整了参数设置并重新启动了服务以应用更改。',
},
{
accountName: 'user111',
ipAddress: '192.168.1.6',
timestamp: 1625208000,
action: '新建文档',
logContent: "用户user111创建了一个新文档文档标题为'周报_202106',并添加了初步内容。",
},
{
accountName: 'admin222',
ipAddress: '192.168.1.7',
timestamp: 1625211600,
action: '编辑配置',
logContent: '管理员admin222对系统网络配置进行了编辑更新了路由表并保存了新配置。',
},
{
accountName: 'user333',
ipAddress: '192.168.1.8',
timestamp: 1625215200,
action: '删除用户',
logContent: '用户user333删除了系统中的一个用户账号用户名为oldUser999操作已完成。',
},
{
accountName: 'guest444',
ipAddress: '192.168.1.9',
timestamp: 1625218800,
action: '新建任务',
logContent:
"游客guest444在项目管理系统中创建了一项新任务任务名称为'Task_XYZ',并指派给相关人员。",
},
{
accountName: 'dev555',
ipAddress: '192.168.1.10',
timestamp: 1625222400,
action: '编辑日志',
logContent: '开发人员dev555编辑了系统日志添加了新的调试信息并保存了更新后的日志文件。',
},
{
accountName: 'user666',
ipAddress: '192.168.1.11',
timestamp: 1625226000,
action: '新建活动',
logContent: "用户user666在系统中创建了一项新活动活动名称为'年度庆典',并添加了活动详情。",
},
{
accountName: 'admin777',
ipAddress: '192.168.1.12',
timestamp: 1625229600,
action: '编辑权限',
logContent:
'管理员admin777修改了用户组的权限设置增加了对部分资源的访问权限并应用了更改。',
},
{
accountName: 'user888',
ipAddress: '192.168.1.13',
timestamp: 1625233200,
action: '删除文件',
logContent:
"用户user888从系统中删除了一份旧的报告文件文件名称为'report_old_2020',操作已确认。",
},
{
accountName: 'guest999',
ipAddress: '192.168.1.14',
timestamp: 1625236800,
action: '新建讨论',
logContent:
"游客guest999在讨论区发起了一场新讨论讨论主题为'项目进展',并邀请相关成员参与。",
},
{
accountName: 'dev000',
ipAddress: '192.168.1.15',
timestamp: 1625240400,
action: '编辑代码',
logContent:
'开发人员dev000对项目代码进行了编辑修复了一处已知的bug并提交了更新至版本控制系统。',
},
],
},
};

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

@ -1,324 +0,0 @@
module.exports = {
'GET /api/currentUser': {
data: {
name: 'Serati Ma',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
userid: '00000001',
email: 'antdesign@alipay.com',
signature: '海纳百川,有容乃大',
title: '交互专家',
group: '蚂蚁金服某某某事业群某某平台部某某技术部UED',
tags: [
{ key: '0', label: '很有想法的' },
{ key: '1', label: '专注设计' },
{ key: '2', label: '辣~' },
{ key: '3', label: '大长腿' },
{ key: '4', label: '川妹子' },
{ key: '5', label: '海纳百川' },
],
notifyCount: 12,
unreadCount: 11,
country: 'China',
geographic: {
province: { label: '浙江省', key: '330000' },
city: { label: '杭州市', key: '330100' },
},
address: '西湖区工专路 77 号',
phone: '0752-268888888',
},
},
'GET /api/rule': {
data: [
{
key: 99,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 99',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 503,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 81,
},
{
key: 98,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 98',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 164,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 12,
},
{
key: 97,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 97',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 174,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 81,
},
{
key: 96,
disabled: true,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 96',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 914,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 7,
},
{
key: 95,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 95',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 698,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 82,
},
{
key: 94,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 94',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 488,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 14,
},
{
key: 93,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 93',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 580,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 77,
},
{
key: 92,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 92',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 244,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 58,
},
{
key: 91,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 91',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 959,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 66,
},
{
key: 90,
disabled: true,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 90',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 958,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 72,
},
{
key: 89,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 89',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 301,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 2,
},
{
key: 88,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 88',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 277,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 12,
},
{
key: 87,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 87',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 810,
status: '1',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 82,
},
{
key: 86,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 86',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 780,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 22,
},
{
key: 85,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 85',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 705,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 12,
},
{
key: 84,
disabled: true,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 84',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 203,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 79,
},
{
key: 83,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 83',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 491,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 59,
},
{
key: 82,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 82',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 73,
status: '0',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 100,
},
{
key: 81,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 81',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 406,
status: '3',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 61,
},
{
key: 80,
disabled: false,
href: 'https://ant.design',
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 80',
owner: '曲丽丽',
desc: '这是一段描述',
callNo: 112,
status: '2',
updatedAt: '2022-12-06T05:00:57.040Z',
createdAt: '2022-12-06T05:00:57.040Z',
progress: 20,
},
],
total: 100,
success: true,
pageSize: 20,
current: 1,
},
'POST /api/login/outLogin': { data: {}, success: true },
'POST /api/login/account': {
status: 'ok',
type: 'account',
currentAuthority: 'admin',
},
};

@ -1,3 +1,11 @@
/*
* @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,25 @@
/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-25 15:45:17
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-06-11 14:56:15
* @FilePath: \general-ai-platform-web\mock\serverLog.ts
* @Description: mock
*/
import { mockGetServerLogList } from './pools/serverLogData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
export default {
// 系统日志列表
'POST /api/v1/serverLog/list': async (req: Request, res: Response) => {
const { pageNo, pageSize } = req.body;
const resData: successMockApiProps = {
...fetchCurrPageByList({
...mockGetServerLogList,
data: { ...mockGetServerLogList.data, pageNo, pageSize: pageSize || 10 },
}),
};
res.send(resData);
},
};

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

@ -1,4 +1,10 @@
/**用户模块 mock */
import { Request, Response } from 'express';
import { mockBaseCaptchaData, mockBaseLoginData, mockGetUserInfoData } from './pools/userData';
import { failMockApiProps, successMockApiProps } from './typing';
import { fetchMockSuccessFullByOther } from './utils/apiMock';
const waitTime = (time: number = 100) => {
return new Promise((resolve) => {
@ -8,11 +14,6 @@ const waitTime = (time: number = 100) => {
});
};
async function getFakeCaptcha(req: Request, res: Response) {
await waitTime(2000);
return res.json('captcha-xxx');
}
const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process.env;
/**
@ -28,6 +29,55 @@ const getAccess = () => {
// 代码中会兼容本地 service mock 以及部署站点的静态数据
export default {
// 登录
'POST /api/v1/login': async (req: Request, res: Response) => {
const { pwd, username, type } = req.body;
await waitTime(1000);
if (pwd === 'Sju2984?' && username === 'admin') {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseLoginData),
};
res.send(adminData);
access = 'admin';
return;
}
const failData: failMockApiProps = {
...fetchMockFailFullByOther({
data: {},
msg: '账号或者密码错误',
}),
};
res.send(failData as failMockApiProps);
access = 'guest';
},
'POST /api/v1/logout': (req: Request, res: Response) => {
access = '';
res.send({ data: {}, success: true });
},
// 获取用户信息
'GET /api/v1/userInfo': async (req: Request, res: Response) => {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockGetUserInfoData),
};
res.send(adminData);
access = 'admin';
},
// 获取图形验证码
'POST /api/base/captcha': (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseCaptchaData),
};
res.send(resData);
},
// 登出
'POST /api/jwt/jsonInBlacklist': (req: Request, res: Response) => {
const resData: successMockApiProps = {
...fetchMockSuccessFullByOther({ data: {}, msg: 'jwt作废成功' }),
};
res.send(resData);
},
// 支持值为 Object 和 Array
'GET /api/currentUser': (req: Request, res: Response) => {
if (!getAccess()) {
@ -117,48 +167,6 @@ export default {
address: 'Sidney No. 1 Lake Park',
},
],
'POST /api/login/account': async (req: Request, res: Response) => {
const { password, username, type } = req.body;
await waitTime(2000);
if (password === 'ant.design' && username === 'admin') {
res.send({
status: 'ok',
type,
currentAuthority: 'admin',
});
access = 'admin';
return;
}
if (password === 'ant.design' && username === 'user') {
res.send({
status: 'ok',
type,
currentAuthority: 'user',
});
access = 'user';
return;
}
if (type === 'mobile') {
res.send({
status: 'ok',
type,
currentAuthority: 'admin',
});
access = 'admin';
return;
}
res.send({
status: 'error',
type,
currentAuthority: 'guest',
});
access = 'guest';
},
'POST /api/login/outLogin': (req: Request, res: Response) => {
access = '';
res.send({ data: {}, success: true });
},
'POST /api/register': (req: Request, res: Response) => {
res.send({ status: 'ok', currentAuthority: 'user', success: true });
},
@ -198,6 +206,4 @@ export default {
path: '/base/category/list',
});
},
'GET /api/login/captcha': getFakeCaptcha,
};

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

@ -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,57 +46,63 @@
"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",
"antd": "^5.13.2",
"antd-style": "^3.6.1",
"classnames": "^2.5.1",
"echarts": "^5.5.0",
"echarts-for-react": "^3.0.2",
"lodash": "^4.17.21",
"moment": "^2.29.4",
"js-yaml": "^4.1.0",
"less": "^4.2.0",
"lottie-web": "^5.12.2",
"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-lottie-web": "^1.3.2"
},
"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/express": "^4.17.21",
"@types/history": "^4.7.11",
"@types/jest": "^29.5.1",
"@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: {},
},
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 67 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

@ -0,0 +1,4 @@
<svg t="1714117834638" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="3262" width="200" height="200">
<path d="M320 0 192 128l384 384-384 384 128 128 512-512L320 0z" p-id="3263" fill="#154DDD"></path>
</svg>

After

Width:  |  Height:  |  Size: 260 B

@ -0,0 +1 @@
<svg t="1714117834638" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3262" width="200" height="200"><path d="M320 0 192 128l384 384-384 384 128 128 512-512L320 0z" p-id="3263" fill="#999999"></path></svg>

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -0,0 +1,291 @@
<svg width="186" height="121" viewBox="0 0 186 121" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M113.964 50.9382L150.477 72.1147L113.964 93.2911L77.4512 72.1147L113.964 50.9382Z" fill="url(#paint0_linear_55_19272)"/>
<path d="M20.6183 58.3708L41.2365 70.3288L20.6183 82.2868L0 70.3288L20.6183 58.3708Z" fill="url(#paint1_linear_55_19272)"/>
<path d="M41.2364 57.9582L20.6182 46.0002V58.3706L41.2364 70.3286V57.9582Z" fill="#D9D9D9"/>
<path d="M20.6183 46.0002L0 57.9582V70.3286L20.6183 58.3706V46.0002Z" fill="#D9D9D9"/>
<path d="M0 57.9584L20.6183 69.9164V82.2867L0 70.3287V57.9584Z" fill="url(#paint2_linear_55_19272)"/>
<rect width="23.835" height="23.835" transform="matrix(0.865042 0.501699 -0.865042 0.501699 20.6182 46.0002)" fill="#FCFEFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M41.2364 57.9584L20.6182 69.9164V82.2867L23.9999 80.3254V78.0119C23.9999 76.9073 24.7745 75.5626 25.73 75.0085L36.2698 68.8957C37.2253 68.3415 37.9999 68.7877 37.9999 69.8923V72.2058L41.2364 70.3287V57.9584Z" fill="url(#paint3_linear_55_19272)"/>
<path d="M150.477 54.9444L113.964 33.7679V50.938L150.477 72.1145V54.9444Z" fill="#D9D9D9"/>
<path d="M113.964 33.7679L77.4512 54.9444V72.1145L113.964 50.938V33.7679Z" fill="#D9D9D9"/>
<path d="M23.1715 115.04C22.8989 114.882 22.7627 114.674 22.7627 114.467C22.7627 114.26 22.899 114.053 23.1715 113.895L173.171 26.8999C173.716 26.5838 174.599 26.5838 175.144 26.8999L185.013 32.6233C185.285 32.7813 185.421 32.9884 185.421 33.1955C185.422 33.4027 185.285 33.6099 185.013 33.7679L35.0135 120.763C34.4685 121.079 33.5848 121.079 33.0398 120.763L23.1715 115.04Z" fill="#D9D9D9"/>
<path d="M175.145 25.183C174.6 24.8669 173.716 24.8669 173.171 25.183V26.9C173.716 26.5839 174.6 26.5839 175.145 26.9V25.183Z" fill="#D9D9D9"/>
<path d="M185.013 30.9062L175.145 25.1829V26.8999L185.013 32.6232V30.9062Z" fill="#D9D9D9"/>
<path d="M185.422 31.4784C185.422 31.2713 185.286 31.0642 185.013 30.9061V32.6231C185.286 32.7812 185.422 32.9883 185.422 33.1954V31.4784Z" fill="#D9D9D9"/>
<path d="M185.013 32.0511C185.286 31.893 185.422 31.6859 185.422 31.4788V33.1956C185.422 33.4028 185.286 33.61 185.013 33.7681V32.0511Z" fill="#234ECD"/>
<path d="M173.171 25.1829L23.1719 112.178V113.895L173.171 26.8999V25.1829Z" fill="#D9D9D9"/>
<path d="M35.0137 119.046L185.013 32.0511V33.7682L35.0137 120.763V119.046Z" fill="#234ECD"/>
<path d="M22.7627 112.75C22.7627 112.543 22.8992 112.336 23.1721 112.178V113.895C22.8992 114.053 22.7627 114.26 22.7627 114.467V112.75Z" fill="#D9D9D9"/>
<path d="M23.1721 113.323C22.8992 113.165 22.7627 112.958 22.7627 112.75L22.7627 114.467C22.7627 114.674 22.8991 114.882 23.1721 115.04V113.323Z" fill="#234ECD"/>
<path d="M23.1719 113.323L33.0402 119.046V120.763L23.1719 115.04V113.323Z" fill="#234ECD"/>
<path d="M33.04 119.046C33.5851 119.362 34.4687 119.362 35.0137 119.046V120.763C34.4687 121.079 33.5851 121.079 33.04 120.763V119.046Z" fill="#234ECD"/>
<g filter="url(#filter0_i_55_19272)">
<path d="M23.0496 113.252C22.5719 112.975 22.5719 112.526 23.0496 112.249L172.427 25.6139C173.383 25.0597 174.932 25.0597 175.888 25.6139L184.269 30.4751C185.225 31.0293 185.225 31.9277 184.269 32.4819L34.8917 119.117C34.4139 119.394 33.6393 119.394 33.1616 119.117L23.0496 113.252Z" fill="url(#paint4_linear_55_19272)"/>
</g>
<path d="M135.299 60.6078C139.334 58.2792 139.341 52.4576 135.311 50.1203C133.436 49.0329 131.123 49.03 129.245 50.1126L70.9405 83.7309C66.5767 86.247 59.5253 86.2411 55.1742 83.7175L39.444 74.5945C37.5623 73.5032 35.2402 73.5032 33.3585 74.5945C29.329 76.9315 29.3289 82.7503 33.3585 85.0873L51.2332 95.4541C57.7619 99.2406 68.3429 99.2482 74.8878 95.4712L135.299 60.6078Z" fill="#D9D9D9"/>
<path d="M144.369 54.229L132.28 47.2179V48.3626L144.369 55.3737V54.229Z" fill="#D9D9D9"/>
<path d="M132.28 47.2179L71.1886 82.443C71.035 82.5316 70.9404 82.6953 70.9404 82.8726C70.9404 83.2541 71.3534 83.4927 71.6839 83.3021L132.28 48.3626V47.2179Z" fill="#D9D9D9"/>
<path d="M36.4013 71.6851L24.3125 78.6962V79.8409L36.4013 72.8297V71.6851Z" fill="#D9D9D9"/>
<path d="M54.9276 82.4297L36.4014 71.6851V72.8297L54.4308 83.2863C54.7608 83.4777 55.1743 83.2395 55.1743 82.858C55.1743 82.6814 55.0803 82.5183 54.9276 82.4297Z" fill="#D9D9D9"/>
<path d="M70.1814 82.9858C66.0552 84.9682 60.0496 84.9634 55.9328 82.9748C55.5892 82.8089 55.1738 83.0508 55.1738 83.4324C55.1738 83.6089 55.2668 83.7725 55.4217 83.857C59.705 86.1947 66.3955 86.2005 70.6908 83.8704C70.8466 83.7858 70.9402 83.6217 70.9402 83.4444C70.9402 83.0629 70.5253 82.8206 70.1814 82.9858Z" fill="#D9D9D9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M74.8878 94.3264L144.369 54.2291V55.3738L74.8878 95.4711C68.3429 99.2481 57.7619 99.2405 51.2332 95.4541L51.2332 95.4543L24.3125 79.8411V78.6964L51.2332 94.3096L51.2332 94.3094C57.7619 98.0958 68.3429 98.1035 74.8878 94.3264Z" fill="url(#paint5_linear_55_19272)"/>
<g filter="url(#filter1_i_55_19272)">
<path d="M144.368 54.2291L132.28 47.2179L73.4257 81.1529C67.6879 84.4613 58.4162 84.4534 52.695 81.1353L36.4007 71.6851L24.3119 78.6962L51.8276 94.6545C58.0274 98.2502 68.0755 98.2575 74.2907 94.6707L144.368 54.2291Z" fill="url(#paint6_linear_55_19272)"/>
</g>
<path d="M113.964 76.1208L150.477 54.9443V72.1144L113.964 93.2909V76.1208Z" fill="url(#paint7_linear_55_19272)"/>
<rect width="42.2095" height="42.2095" transform="matrix(0.865042 0.501699 -0.865042 0.501699 113.915 33.7679)" fill="url(#paint8_linear_55_19272)"/>
<rect width="29.8279" height="29.8279" transform="matrix(0.865042 0.501699 -0.865042 0.501699 113.915 40.0637)" fill="#0776FF"/>
<path d="M121.015 24.6568L119.441 23.7438L117.152 26.0429L118.727 26.9559L121.015 24.6568Z" fill="#1963FF"/>
<path d="M113.915 22.5052L113.969 22.5365L111.68 24.8356L111.626 24.8044L113.915 22.5052Z" fill="#8DB2FF"/>
<path d="M121.015 35.8002V24.6569L118.727 26.956V38.0993L121.015 35.8002Z" fill="#1963FF"/>
<path d="M113.968 22.5366L115.475 28.2956L113.187 30.5947L111.68 24.8357L113.968 22.5366Z" fill="#8DB2FF"/>
<path d="M113.04 20.0319L109.367 29.0448L107.078 31.3439L110.751 22.331L113.04 20.0319Z" fill="#8DB2FF"/>
<path d="M119.441 34.8871L121.015 35.8001L118.727 38.0992L117.152 37.1862L119.441 34.8871Z" fill="#1963FF"/>
<path d="M115.946 30.0669L116.821 33.3677L114.532 35.6669L113.657 32.366L115.946 30.0669Z" fill="#8DB2FF"/>
<path d="M116.821 33.3678L118.503 34.3432L116.214 36.6423L114.532 35.6669L116.821 33.3678Z" fill="#8DB2FF"/>
<path d="M114.829 21.0697L113.04 20.0319L110.751 22.331L112.54 23.3688L114.829 21.0697Z" fill="#1A63FF"/>
<path d="M118.503 34.3431L114.83 21.0695L112.541 23.3686L116.214 36.6422L118.503 34.3431Z" fill="#1A63FF"/>
<path d="M117.152 26.0429L118.726 26.9559V38.0992L117.152 37.1862V26.0429Z" fill="#8DB2FF"/>
<path d="M110.751 22.3307L112.541 23.3685L116.214 36.6422L114.532 35.6668L113.658 32.3659L109.635 30.0327L108.76 32.3191L107.078 31.3437L110.751 22.3307ZM110.105 28.8075L113.187 30.5945L111.68 24.8356L111.626 24.8044L110.105 28.8075Z" fill="#8DB2FF"/>
<path d="M26.3944 34.6015L25.1687 33.8906L23.3867 35.6807L24.6124 36.3916L26.3944 34.6015Z" fill="#1963FF"/>
<path d="M20.866 32.926L20.9079 32.9503L19.1259 34.7404L19.084 34.7161L20.866 32.926Z" fill="#8DB2FF"/>
<path d="M26.3943 43.2776V34.6013L24.6123 36.3914V45.0677L26.3943 43.2776Z" fill="#1963FF"/>
<path d="M20.908 32.9508L22.0813 37.4348L20.2993 39.2249L19.126 34.7409L20.908 32.9508Z" fill="#8DB2FF"/>
<path d="M20.185 31.0002L17.325 38.0178L15.543 39.8079L18.4029 32.7904L20.185 31.0002Z" fill="#8DB2FF"/>
<path d="M25.1687 42.5667L26.3944 43.2775L24.6124 45.0676L23.3867 44.3568L25.1687 42.5667Z" fill="#1963FF"/>
<path d="M22.448 38.8137L23.129 41.3838L21.347 43.1739L20.666 40.6038L22.448 38.8137Z" fill="#8DB2FF"/>
<path d="M23.1287 41.3838L24.4382 42.1433L22.6562 43.9334L21.3467 43.1739L23.1287 41.3838Z" fill="#8DB2FF"/>
<path d="M21.5787 31.8083L20.1853 31.0002L18.4033 32.7904L19.7966 33.5984L21.5787 31.8083Z" fill="#1A63FF"/>
<path d="M24.4379 42.1431L21.5779 31.8081L19.7959 33.5982L22.6559 43.9332L24.4379 42.1431Z" fill="#1A63FF"/>
<path d="M23.3865 35.6806L24.6122 36.3915V45.0678L23.3865 44.3569V35.6806Z" fill="#8DB2FF"/>
<path d="M18.4029 32.7903L19.7963 33.5984L22.6562 43.9333L21.3467 43.1739L20.6658 40.6038L17.5334 38.7871L16.8525 40.5673L15.543 39.8079L18.4029 32.7903ZM17.9001 37.8332L20.2991 39.2246L19.1258 34.7406L19.0839 34.7163L17.9001 37.8332Z" fill="#8DB2FF"/>
<path d="M132.902 49.3048L114.008 38.3466V44.0699L132.902 55.0282V49.3048Z" fill="#F8FEFF"/>
<g filter="url(#filter2_d_55_19272)">
<rect width="21.8423" height="21.8423" transform="matrix(0.865042 0.501699 -0.865042 0.501699 114.008 44.0698)" fill="#D1DFFF"/>
</g>
<path d="M114.008 38.3466L95.1133 49.3048V55.0282L114.008 44.0699V38.3466Z" fill="#F8FEFF"/>
<path d="M114.008 60.2628L132.902 49.3046V55.0279L114.008 65.9862V60.2628Z" fill="#AAC7FE"/>
<path d="M95.1133 49.3046L114.008 60.2628V65.9862L95.1133 55.0279V49.3046Z" fill="#F8FEFF"/>
<g filter="url(#filter3_ii_55_19272)">
<rect width="21.8423" height="21.8423" transform="matrix(0.865042 0.501699 -0.865042 0.501699 114.008 38.3466)" fill="#D1DFFF"/>
</g>
<g filter="url(#filter4_i_55_19272)">
<rect width="13.9639" height="13.9639" transform="matrix(0.865042 0.501699 -0.865042 0.501699 114.008 42.2991)" fill="#0A6CFF"/>
</g>
<path d="M113.965 56.6266L102 49.6297V22.0002H125.93V49.7586L113.965 56.6266Z" fill="url(#paint9_linear_55_19272)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M113.964 76.1208L77.4512 54.9443V72.1144L83.0002 75.3327V71.6976C83.0002 69.4884 84.5494 68.5961 86.4604 69.7044L97.3506 76.0204C99.2616 77.1287 100.811 79.818 100.811 82.0272V85.6623L113.964 93.2909V76.1208Z" fill="url(#paint10_linear_55_19272)"/>
<g filter="url(#filter5_f_55_19272)">
<ellipse cx="6.26726" cy="4.57869" rx="6.26726" ry="4.57869" transform="matrix(-1 0 0 1 99.1016 73.8314)" fill="#6DF9FA"/>
</g>
<g filter="url(#filter6_i_55_19272)">
<rect width="17.6508" height="17.6508" transform="matrix(0.865042 0.501699 -0.865042 0.501699 21.498 48.9839)" fill="#0A6CFF"/>
</g>
<path d="M21.5 66.5002L6.5 58.0002L6 33.0002H37L36.5 58.0002L21.5 66.5002Z" fill="url(#paint11_linear_55_19272)"/>
<path d="M44.8558 80.6749L49.318 83.2629L44.8558 85.8508L40.3936 83.2629L44.8558 80.6749Z" fill="#D9D9D9"/>
<path d="M49.3177 79.2813L44.8555 76.6934V80.6748L49.3177 83.2628V79.2813Z" fill="#D9D9D9"/>
<path d="M44.8558 76.6934L40.3936 79.2813V83.2628L44.8558 80.6748V76.6934Z" fill="#D9D9D9"/>
<path d="M44.8555 81.8692L49.3177 79.2812V83.2627L44.8555 85.8507V81.8692Z" fill="#89B6F4"/>
<path d="M40.3936 79.2812L44.8558 81.8692V85.8507L40.3936 83.2627V79.2812Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 44.8555 76.6934)" fill="url(#paint12_linear_55_19272)"/>
<path d="M60.263 88.6869L64.7252 91.2748L60.263 93.8628L55.8008 91.2748L60.263 88.6869Z" fill="#D9D9D9"/>
<path d="M64.7249 87.2935L60.2627 84.7056V88.687L64.7249 91.275V87.2935Z" fill="#D9D9D9"/>
<path d="M60.263 84.7056L55.8008 87.2935V91.275L60.263 88.687V84.7056Z" fill="#D9D9D9"/>
<path d="M60.2637 89.8814L64.7259 87.2935V91.2749L60.2637 93.8629V89.8814Z" fill="#89B6F4"/>
<path d="M55.8008 87.2935L60.263 89.8814V93.8629L55.8008 91.2749V87.2935Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 60.2637 84.7056)" fill="url(#paint13_linear_55_19272)"/>
<path d="M39.4622 107.981L43.9244 110.569L39.4622 113.157L35 110.569L39.4622 107.981Z" fill="#D9D9D9"/>
<path d="M43.9241 106.588L39.4619 104V107.981L43.9241 110.569V106.588Z" fill="#D9D9D9"/>
<path d="M39.4622 104L35 106.588V110.569L39.4622 107.981V104Z" fill="#D9D9D9"/>
<path d="M39.4629 109.176L43.9251 106.588V110.569L39.4629 113.157V109.176Z" fill="#89B6F4"/>
<path d="M35 106.588L39.4622 109.176V113.157L35 110.569V106.588Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 39.4629 104)" fill="url(#paint14_linear_55_19272)"/>
<path d="M90.4593 78.9574L94.9215 81.5454L90.4593 84.1333L85.9971 81.5454L90.4593 78.9574Z" fill="#D9D9D9"/>
<path d="M94.9212 77.5642L90.459 74.9762V78.9577L94.9212 81.5456V77.5642Z" fill="#D9D9D9"/>
<path d="M90.4593 74.9762L85.9971 77.5642V81.5456L90.4593 78.9577V74.9762Z" fill="#D9D9D9"/>
<path d="M90.459 80.1519L94.9212 77.564V81.5454L90.459 84.1334V80.1519Z" fill="#89B6F4"/>
<path d="M85.9971 77.564L90.4593 80.1519V84.1334L85.9971 81.5454V77.564Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 90.459 74.9761)" fill="url(#paint15_linear_55_19272)"/>
<path d="M154.841 40.0388L159.303 42.6268L154.841 45.2147L150.379 42.6268L154.841 40.0388Z" fill="#D9D9D9"/>
<path d="M159.303 38.6453L154.841 36.0574V40.0388L159.303 42.6268V38.6453Z" fill="#D9D9D9"/>
<path d="M154.841 36.0574L150.379 38.6453V42.6268L154.841 40.0388V36.0574Z" fill="#D9D9D9"/>
<path d="M154.842 41.2332L159.304 38.6453V42.6267L154.842 45.2147V41.2332Z" fill="#89B6F4"/>
<path d="M150.379 38.6453L154.841 41.2332V45.2147L150.379 42.6267V38.6453Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 154.842 36.0574)" fill="url(#paint16_linear_55_19272)"/>
<path d="M170.224 32.0264L174.686 34.6143L170.224 37.2023L165.762 34.6143L170.224 32.0264Z" fill="#D9D9D9"/>
<path d="M174.686 30.6326L170.224 28.0447V32.0261L174.686 34.6141V30.6326Z" fill="#D9D9D9"/>
<path d="M170.224 28.0447L165.762 30.6326V34.6141L170.224 32.0261V28.0447Z" fill="#D9D9D9"/>
<path d="M170.224 33.2206L174.686 30.6327V34.6142L170.224 37.2021V33.2206Z" fill="#89B6F4"/>
<path d="M165.762 30.6327L170.224 33.2206V37.2021L165.762 34.6142V30.6327Z" fill="#DDEEFF"/>
<rect width="5.15838" height="5.15838" transform="matrix(0.865042 0.501699 -0.865042 0.501699 170.224 28.0448)" fill="url(#paint17_linear_55_19272)"/>
<path d="M57.1441 5.99272L61.9816 4.21065L61.0992 9.31009L56.2617 11.0922L57.1441 5.99272Z" fill="#D9D9D9"/>
<path d="M58.94 1.65873L54.1025 3.4408L57.1449 5.99262L61.9824 4.21056L58.94 1.65873Z" fill="#D9D9D9"/>
<path d="M54.1021 3.44071L53.2197 8.54016L56.2621 11.092L57.1445 5.99254L54.1021 3.44071Z" fill="#D9D9D9"/>
<path d="M58.0576 6.75818L58.94 1.65873L61.9824 4.21056L61.1 9.31L58.0576 6.75818Z" fill="#5BA0FF"/>
<path d="M53.2197 8.54016L58.0572 6.7581L61.0996 9.30992L56.2621 11.092L53.2197 8.54016Z" fill="#0D76DE"/>
<rect width="5.16527" height="5.16528" transform="matrix(0.936543 -0.345009 -0.170835 0.987255 54.1025 3.4408)" fill="url(#paint18_linear_55_19272)"/>
<path d="M110.902 108.993L115.739 107.211L114.857 112.31L110.02 114.093L110.902 108.993Z" fill="#D9D9D9"/>
<path d="M112.698 104.659L107.86 106.441L110.903 108.993L115.74 107.211L112.698 104.659Z" fill="#D9D9D9"/>
<path d="M107.86 106.441L106.978 111.541L110.02 114.092L110.902 108.993L107.86 106.441Z" fill="#D9D9D9"/>
<path d="M111.815 109.759L112.698 104.659L115.74 107.211L114.858 112.31L111.815 109.759Z" fill="#5BA0FF"/>
<path d="M106.978 111.541L111.815 109.758L114.857 112.31L110.02 114.092L106.978 111.541Z" fill="#0D76DE"/>
<rect width="5.16527" height="5.16528" transform="matrix(0.936543 -0.345009 -0.170835 0.987255 107.86 106.441)" fill="url(#paint19_linear_55_19272)"/>
<path d="M164.119 67.1817L167.494 65.9383L166.878 69.4964L163.503 70.7399L164.119 67.1817Z" fill="#D9D9D9"/>
<path d="M165.37 64.1577L161.995 65.4011L164.118 67.1817L167.493 65.9382L165.37 64.1577Z" fill="#D9D9D9"/>
<path d="M161.996 65.4011L161.38 68.9592L163.503 70.7398L164.118 67.1816L161.996 65.4011Z" fill="#D9D9D9"/>
<path d="M164.755 67.7158L165.371 64.1577L167.493 65.9382L166.878 69.4964L164.755 67.7158Z" fill="#5BA0FF"/>
<path d="M161.38 68.9592L164.755 67.7158L166.878 69.4963L163.503 70.7398L161.38 68.9592Z" fill="#0D76DE"/>
<rect width="3.60406" height="3.60406" transform="matrix(0.936543 -0.345009 -0.170835 0.987255 161.995 65.4011)" fill="url(#paint20_linear_55_19272)"/>
<defs>
<filter id="filter0_i_55_19272" x="22.6914" 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_55_19272"/>
</filter>
<filter id="filter1_i_55_19272" x="24.3115" y="47.2179" width="120.057" 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_55_19272"/>
</filter>
<filter id="filter2_d_55_19272" x="87.1133" 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_55_19272"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_55_19272" result="shape"/>
</filter>
<filter id="filter3_ii_55_19272" x="95.1133" 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_55_19272"/>
<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_55_19272" result="effect2_innerShadow_55_19272"/>
</filter>
<filter id="filter4_i_55_19272" x="101.929" y="42.2991" width="24.1582" 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_55_19272"/>
</filter>
<filter id="filter5_f_55_19272" x="66.5674" y="53.8314" width="52.5342" 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_55_19272"/>
</filter>
<filter id="filter6_i_55_19272" x="6.22949" 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_55_19272"/>
</filter>
<linearGradient id="paint0_linear_55_19272" x1="113.964" y1="50.9382" x2="113.964" y2="93.2911" gradientUnits="userSpaceOnUse">
<stop stop-color="#378ADE"/>
<stop offset="1" stop-color="white"/>
</linearGradient>
<linearGradient id="paint1_linear_55_19272" x1="36.5" y1="66.0002" x2="20.6183" y2="82.2868" gradientUnits="userSpaceOnUse">
<stop stop-color="#63ABF4"/>
<stop offset="1" stop-color="#C0DFFF"/>
</linearGradient>
<linearGradient id="paint2_linear_55_19272" x1="2.70398e-07" y1="64.9682" x2="20.5384" y2="70.8975" gradientUnits="userSpaceOnUse">
<stop stop-color="#579CFE"/>
<stop offset="1" stop-color="#1E77F6"/>
</linearGradient>
<linearGradient id="paint3_linear_55_19272" x1="41.048" y1="64.7621" x2="21.0995" y2="75.4078" gradientUnits="userSpaceOnUse">
<stop stop-color="#3286F8"/>
<stop offset="1" stop-color="#91C0FD"/>
</linearGradient>
<linearGradient id="paint4_linear_55_19272" x1="28.1056" y1="116.184" x2="104.609" y2="-15.7254" gradientUnits="userSpaceOnUse">
<stop stop-color="#369AFF"/>
<stop offset="1" stop-color="#1E5DFF"/>
</linearGradient>
<linearGradient id="paint5_linear_55_19272" x1="24.3124" y1="79.2688" x2="98.9514" 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_55_19272" x1="87.2692" y1="87.2815" x2="38.1213" 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_55_19272" x1="150.379" y1="62.957" x2="113.827" y2="84.8458" gradientUnits="userSpaceOnUse">
<stop stop-color="#5B9FFF"/>
<stop offset="1" stop-color="#1A75F6"/>
</linearGradient>
<linearGradient id="paint8_linear_55_19272" 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_55_19272" x1="113.965" y1="22.0002" x2="113.965" y2="56.6266" gradientUnits="userSpaceOnUse">
<stop stop-color="#E1EDF6" stop-opacity="0"/>
<stop offset="1" stop-color="#1893FF"/>
</linearGradient>
<linearGradient id="paint10_linear_55_19272" x1="77.4512" y1="65.5326" x2="113.996" y2="86.2804" gradientUnits="userSpaceOnUse">
<stop stop-color="#2A7FF8"/>
<stop offset="1" stop-color="#9EC6FE"/>
</linearGradient>
<linearGradient id="paint11_linear_55_19272" x1="22" y1="34.5002" x2="21.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_55_19272" 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_55_19272" 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_55_19272" 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_55_19272" 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_55_19272" 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_55_19272" 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_55_19272" 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_55_19272" 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_55_19272" 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: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 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,22 @@
<svg width="705" height="71" viewBox="0 0 705 71" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.1" d="M0 17H210.443L233.103 1H419" stroke="url(#paint0_linear_423_4086)" stroke-width="1.5"/>
<path opacity="0.1" d="M286 70H496.443L519.103 54H705" stroke="url(#paint1_linear_423_4086)" stroke-width="1.5"/>
<path opacity="0.1" d="M157 44H367.443L390.103 28H576" stroke="url(#paint2_linear_423_4086)" stroke-width="1.5"/>
<defs>
<linearGradient id="paint0_linear_423_4086" x1="35" y1="17" x2="383.5" y2="17" gradientUnits="userSpaceOnUse">
<stop stop-color="#20A0FD" stop-opacity="0"/>
<stop offset="0.48" stop-color="#20A0FD"/>
<stop offset="1" stop-color="#20A0FD" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint1_linear_423_4086" x1="286" y1="70" x2="698.5" y2="70" gradientUnits="userSpaceOnUse">
<stop stop-color="#20A0FD" stop-opacity="0"/>
<stop offset="0.48" stop-color="#20A0FD"/>
<stop offset="1" stop-color="#20A0FD" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint2_linear_423_4086" x1="157" y1="44" x2="569.5" y2="44" gradientUnits="userSpaceOnUse">
<stop stop-color="#20A0FD" stop-opacity="0"/>
<stop offset="0.48" stop-color="#20A0FD"/>
<stop offset="1" stop-color="#20A0FD" stop-opacity="0"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

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

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

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

Loading…
Cancel
Save