├── .gitignore
├── .husky
└── pre-commit
├── CHANGELOG.md
├── LICENSE
├── README.md
├── composer.json
├── composer.lock
├── config.yaml
├── craft
├── craft.bat
├── doc
├── build_cmd.md
├── data.md
├── deploy_dirs.md
├── env_req.md
├── source_arch.md
├── tips.md
└── todo.md
├── resource
├── backend
│ ├── thinkphp
│ │ └── src
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── app
│ │ │ ├── .htaccess
│ │ │ ├── AppService.php
│ │ │ ├── BaseController.php
│ │ │ ├── ExceptionHandle.php
│ │ │ ├── Request.php
│ │ │ ├── common.php
│ │ │ ├── controller
│ │ │ │ └── Index.php
│ │ │ ├── event.php
│ │ │ ├── middleware.php
│ │ │ ├── provider.php
│ │ │ └── service.php
│ │ │ ├── composer.json
│ │ │ ├── config
│ │ │ ├── app.php
│ │ │ ├── cache.php
│ │ │ ├── console.php
│ │ │ ├── cookie.php
│ │ │ ├── database.php
│ │ │ ├── filesystem.php
│ │ │ ├── lang.php
│ │ │ ├── log.php
│ │ │ ├── middleware.php
│ │ │ ├── route.php
│ │ │ ├── session.php
│ │ │ └── view.php
│ │ │ ├── extend
│ │ │ └── .gitignore
│ │ │ ├── public
│ │ │ ├── .htaccess
│ │ │ ├── favicon.ico
│ │ │ ├── index.php
│ │ │ ├── robots.txt
│ │ │ ├── router.php
│ │ │ └── static
│ │ │ │ └── .gitignore
│ │ │ ├── route
│ │ │ └── app.php
│ │ │ ├── runtime
│ │ │ └── .gitignore
│ │ │ ├── think
│ │ │ ├── vendor
│ │ │ └── .gitignore
│ │ │ └── view
│ │ │ └── README.md
│ └── webman
│ │ ├── rule.yaml
│ │ └── src
│ │ ├── .github
│ │ └── FUNDING.yml
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── app
│ │ ├── controller
│ │ │ └── Index.php
│ │ ├── functions.php
│ │ ├── middleware
│ │ │ └── StaticFile.php
│ │ ├── model
│ │ │ └── Test.php
│ │ └── view
│ │ │ └── index
│ │ │ └── view.html
│ │ ├── composer.json
│ │ ├── composer.lock
│ │ ├── config
│ │ ├── app.php
│ │ ├── autoload.php
│ │ ├── bootstrap.php
│ │ ├── container.php
│ │ ├── database.php
│ │ ├── dependence.php
│ │ ├── exception.php
│ │ ├── log.php
│ │ ├── middleware.php
│ │ ├── process.php
│ │ ├── redis.php
│ │ ├── route.php
│ │ ├── server.php
│ │ ├── session.php
│ │ ├── static.php
│ │ ├── translation.php
│ │ └── view.php
│ │ ├── process
│ │ └── Monitor.php
│ │ ├── public
│ │ ├── 404.html
│ │ └── favicon.ico
│ │ ├── runtime
│ │ ├── .gitignore
│ │ ├── logs
│ │ │ └── .gitignore
│ │ └── views
│ │ │ └── .gitignore
│ │ ├── start.php
│ │ ├── support
│ │ ├── Plugin.php
│ │ ├── Request.php
│ │ ├── Response.php
│ │ ├── bootstrap.php
│ │ └── helpers.php
│ │ ├── windows.bat
│ │ └── windows.php
├── document
│ ├── mdbook
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── vuepress
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── zola
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
├── frontend
│ └── react-antd-umi
│ │ ├── rule.yaml
│ │ └── src
│ │ ├── .editorconfig
│ │ ├── .eslintignore
│ │ ├── .eslintrc.js
│ │ ├── .gitignore
│ │ ├── .prettierignore
│ │ ├── .prettierrc.js
│ │ ├── .stylelintrc.js
│ │ ├── README.md
│ │ ├── config
│ │ ├── config.dev.ts
│ │ ├── config.ts
│ │ ├── defaultSettings.ts
│ │ ├── oneapi.json
│ │ ├── proxy.ts
│ │ └── routes.ts
│ │ ├── jest.config.js
│ │ ├── jsconfig.json
│ │ ├── mock
│ │ ├── listTableList.ts
│ │ ├── notices.ts
│ │ ├── route.ts
│ │ └── user.ts
│ │ ├── package.json
│ │ ├── public
│ │ ├── CNAME
│ │ ├── favicon.ico
│ │ ├── icons
│ │ │ ├── icon-128x128.png
│ │ │ ├── icon-192x192.png
│ │ │ └── icon-512x512.png
│ │ ├── logo.svg
│ │ └── pro_icon.svg
│ │ ├── src
│ │ ├── access.ts
│ │ ├── app.tsx
│ │ ├── components
│ │ │ ├── Footer
│ │ │ │ └── index.tsx
│ │ │ ├── HeaderDropdown
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ │ ├── HeaderSearch
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ │ ├── NoticeIcon
│ │ │ │ ├── NoticeIcon.tsx
│ │ │ │ ├── NoticeList.less
│ │ │ │ ├── NoticeList.tsx
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ │ ├── RightContent
│ │ │ │ ├── AvatarDropdown.tsx
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ │ └── index.md
│ │ ├── e2e
│ │ │ └── baseLayout.e2e.js
│ │ ├── global.less
│ │ ├── global.tsx
│ │ ├── locales
│ │ │ ├── bn-BD.ts
│ │ │ ├── bn-BD
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── en-US.ts
│ │ │ ├── en-US
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── fa-IR.ts
│ │ │ ├── fa-IR
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── id-ID.ts
│ │ │ ├── id-ID
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── ja-JP.ts
│ │ │ ├── ja-JP
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── pt-BR.ts
│ │ │ ├── pt-BR
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── zh-CN.ts
│ │ │ ├── zh-CN
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pages.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ │ ├── zh-TW.ts
│ │ │ └── zh-TW
│ │ │ │ ├── component.ts
│ │ │ │ ├── globalHeader.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── pwa.ts
│ │ │ │ ├── settingDrawer.ts
│ │ │ │ └── settings.ts
│ │ ├── manifest.json
│ │ ├── pages
│ │ │ ├── 404.tsx
│ │ │ ├── Admin.tsx
│ │ │ ├── TableList
│ │ │ │ ├── components
│ │ │ │ │ └── UpdateForm.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Welcome.less
│ │ │ ├── Welcome.tsx
│ │ │ ├── account
│ │ │ │ ├── center
│ │ │ │ │ ├── Center.less
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── Applications
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── ArticleListContent
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── Articles
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── AvatarList
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── Projects
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── service.ts
│ │ │ │ └── settings
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ ├── BaseView.less
│ │ │ │ │ ├── PhoneView.tsx
│ │ │ │ │ ├── base.tsx
│ │ │ │ │ ├── binding.tsx
│ │ │ │ │ ├── notification.tsx
│ │ │ │ │ └── security.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── geographic
│ │ │ │ │ ├── city.json
│ │ │ │ │ └── province.json
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ ├── dashboard
│ │ │ │ ├── analysis
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── Charts
│ │ │ │ │ │ │ ├── Bar
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── ChartCard
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── Field
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── Gauge
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── MiniArea
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── MiniBar
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── MiniProgress
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── Pie
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── TagCloud
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── TimelineChart
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── WaterWave
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── autoHeight.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── IntroduceRow.tsx
│ │ │ │ │ │ ├── NumberInfo
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── OfflineData.tsx
│ │ │ │ │ │ ├── PageLoading
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── ProportionSales.tsx
│ │ │ │ │ │ ├── SalesCard.tsx
│ │ │ │ │ │ ├── TopSearch.tsx
│ │ │ │ │ │ └── Trend
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ ├── style.less
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── Yuan.tsx
│ │ │ │ │ │ ├── utils.less
│ │ │ │ │ │ └── utils.ts
│ │ │ │ ├── monitor
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── ActiveChart
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── Charts
│ │ │ │ │ │ │ ├── Gauge
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── MiniArea
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── Pie
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── TagCloud
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── WaterWave
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ └── autoHeight.tsx
│ │ │ │ │ │ └── Map
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ │ └── workplace
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ ├── EditableLinkGroup
│ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── Radar
│ │ │ │ │ │ ├── autoHeight.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ ├── document.ejs
│ │ │ ├── editor
│ │ │ │ ├── flow
│ │ │ │ │ ├── common
│ │ │ │ │ │ └── IconFont
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── EditorContextMenu
│ │ │ │ │ │ │ ├── FlowContextMenu.tsx
│ │ │ │ │ │ │ ├── KoniContextMenu.tsx
│ │ │ │ │ │ │ ├── MenuItem.tsx
│ │ │ │ │ │ │ ├── MindContextMenu.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── EditorDetailPanel
│ │ │ │ │ │ │ ├── DetailForm.tsx
│ │ │ │ │ │ │ ├── FlowDetailPanel.tsx
│ │ │ │ │ │ │ ├── KoniDetailPanel.tsx
│ │ │ │ │ │ │ ├── MindDetailPanel.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── EditorItemPanel
│ │ │ │ │ │ │ ├── FlowItemPanel.tsx
│ │ │ │ │ │ │ ├── KoniItemPanel.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── EditorMinimap
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── EditorToolbar
│ │ │ │ │ │ │ ├── FlowToolbar.tsx
│ │ │ │ │ │ │ ├── KoniToolbar.tsx
│ │ │ │ │ │ │ ├── MindToolbar.tsx
│ │ │ │ │ │ │ ├── ToolbarButton.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── index.less
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── koni
│ │ │ │ │ ├── common
│ │ │ │ │ │ └── IconFont
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── EditorContextMenu
│ │ │ │ │ │ │ ├── FlowContextMenu.tsx
│ │ │ │ │ │ │ ├── KoniContextMenu.tsx
│ │ │ │ │ │ │ ├── MenuItem.tsx
│ │ │ │ │ │ │ ├── MindContextMenu.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── EditorDetailPanel
│ │ │ │ │ │ │ ├── DetailForm.tsx
│ │ │ │ │ │ │ ├── FlowDetailPanel.tsx
│ │ │ │ │ │ │ ├── KoniDetailPanel.tsx
│ │ │ │ │ │ │ ├── MindDetailPanel.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── EditorItemPanel
│ │ │ │ │ │ │ ├── FlowItemPanel.tsx
│ │ │ │ │ │ │ ├── KoniItemPanel.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── EditorMinimap
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── EditorToolbar
│ │ │ │ │ │ │ ├── FlowToolbar.tsx
│ │ │ │ │ │ │ ├── KoniToolbar.tsx
│ │ │ │ │ │ │ ├── MindToolbar.tsx
│ │ │ │ │ │ │ ├── ToolbarButton.tsx
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── index.less
│ │ │ │ │ └── index.tsx
│ │ │ │ └── mind
│ │ │ │ │ ├── common
│ │ │ │ │ └── IconFont
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── components
│ │ │ │ │ ├── EditorContextMenu
│ │ │ │ │ │ ├── FlowContextMenu.tsx
│ │ │ │ │ │ ├── KoniContextMenu.tsx
│ │ │ │ │ │ ├── MenuItem.tsx
│ │ │ │ │ │ ├── MindContextMenu.tsx
│ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── EditorDetailPanel
│ │ │ │ │ │ ├── DetailForm.tsx
│ │ │ │ │ │ ├── FlowDetailPanel.tsx
│ │ │ │ │ │ ├── KoniDetailPanel.tsx
│ │ │ │ │ │ ├── MindDetailPanel.tsx
│ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── EditorItemPanel
│ │ │ │ │ │ ├── FlowItemPanel.tsx
│ │ │ │ │ │ ├── KoniItemPanel.tsx
│ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── EditorMinimap
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── EditorToolbar
│ │ │ │ │ │ ├── FlowToolbar.tsx
│ │ │ │ │ │ ├── KoniToolbar.tsx
│ │ │ │ │ │ ├── MindToolbar.tsx
│ │ │ │ │ │ ├── ToolbarButton.tsx
│ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── index.less
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── worldCup2018.json
│ │ │ ├── exception
│ │ │ │ ├── 403
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── 404
│ │ │ │ │ └── index.tsx
│ │ │ │ └── 500
│ │ │ │ │ └── index.tsx
│ │ │ ├── form
│ │ │ │ ├── advanced-form
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ └── TableForm.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ │ ├── basic-form
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ │ └── step-form
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ ├── list
│ │ │ │ ├── basic-list
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ └── OperationModal.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ ├── style.less
│ │ │ │ │ └── utils
│ │ │ │ │ │ └── utils.less
│ │ │ │ ├── card-list
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ ├── style.less
│ │ │ │ │ └── utils
│ │ │ │ │ │ └── utils.less
│ │ │ │ ├── search
│ │ │ │ │ ├── applications
│ │ │ │ │ │ ├── _mock.ts
│ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ ├── StandardFormRow
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ └── TagSelect
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── data.d.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── service.ts
│ │ │ │ │ │ ├── style.less
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ └── utils.less
│ │ │ │ │ ├── articles
│ │ │ │ │ │ ├── _mock.ts
│ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ ├── ArticleListContent
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ ├── StandardFormRow
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ └── TagSelect
│ │ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── data.d.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── service.ts
│ │ │ │ │ │ └── style.less
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── projects
│ │ │ │ │ │ ├── _mock.ts
│ │ │ │ │ │ ├── components
│ │ │ │ │ │ ├── AvatarList
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── StandardFormRow
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── TagSelect
│ │ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── data.d.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── service.ts
│ │ │ │ │ │ ├── style.less
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ └── utils.less
│ │ │ │ └── table-list
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── components
│ │ │ │ │ ├── CreateForm.tsx
│ │ │ │ │ └── UpdateForm.tsx
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── service.ts
│ │ │ ├── profile
│ │ │ │ ├── advanced
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ │ └── basic
│ │ │ │ │ ├── _mock.ts
│ │ │ │ │ ├── data.d.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── service.ts
│ │ │ │ │ └── style.less
│ │ │ ├── result
│ │ │ │ ├── fail
│ │ │ │ │ ├── index.less
│ │ │ │ │ └── index.tsx
│ │ │ │ └── success
│ │ │ │ │ ├── index.less
│ │ │ │ │ └── index.tsx
│ │ │ └── user
│ │ │ │ ├── Login
│ │ │ │ ├── index.less
│ │ │ │ └── index.tsx
│ │ │ │ ├── register-result
│ │ │ │ ├── index.tsx
│ │ │ │ └── style.less
│ │ │ │ └── register
│ │ │ │ ├── _mock.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── service.ts
│ │ │ │ └── style.less
│ │ ├── service-worker.js
│ │ ├── services
│ │ │ ├── ant-design-pro
│ │ │ │ ├── api.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── login.ts
│ │ │ │ └── typings.d.ts
│ │ │ └── swagger
│ │ │ │ ├── index.ts
│ │ │ │ ├── pet.ts
│ │ │ │ ├── store.ts
│ │ │ │ ├── typings.d.ts
│ │ │ │ └── user.ts
│ │ └── typings.d.ts
│ │ ├── tests
│ │ ├── PuppeteerEnvironment.js
│ │ ├── beforeTest.js
│ │ ├── getBrowser.js
│ │ ├── run-tests.js
│ │ └── setupTests.js
│ │ └── tsconfig.json
├── migration
│ ├── mariadb
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── mysql
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── postgresql
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── prometheus
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── redis
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── sqlite
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── tdengine
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── tidb
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
└── operation
│ ├── auth
│ └── casdoor
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
│ ├── container
│ ├── containerd
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── cri-o
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── docker
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── hanlder
│ │ │ └── .gitkeep
│ │ ├── resource
│ │ │ └── .gitkeep
│ │ └── template
│ │ │ └── .gitkeep
│ └── katacontainer2
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── hanlder
│ │ └── .gitkeep
│ │ ├── resource
│ │ └── .gitkeep
│ │ └── template
│ │ └── .gitkeep
│ ├── database
│ ├── dgraph
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── etcd
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── mariadb
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ ├── .gitkeep
│ │ │ └── ddl.sql
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── memgraph
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── mysql
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── postgresql
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── tidb
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
│ ├── dns
│ ├── bind
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── coredns
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
│ ├── http
│ ├── apache
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── h2o
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── http4k
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── nginx
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── traefik
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
│ ├── mesh
│ ├── k3s
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── k8s
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── kubecube
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── kubeedge
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
│ ├── mq
│ ├── emq
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── nats
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ ├── rabbitmq
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ │ └── .gitkeep
│ │ └── tmpl
│ │ │ └── .gitkeep
│ └── vernemq
│ │ ├── README.md
│ │ ├── README_cn.md
│ │ ├── src
│ │ └── .gitkeep
│ │ └── tmpl
│ │ └── .gitkeep
│ └── storage
│ └── minio
│ ├── README.md
│ ├── README_cn.md
│ ├── src
│ └── .gitkeep
│ └── tmpl
│ └── .gitkeep
├── src
├── autoload.php
└── generator
│ ├── Cache.php
│ ├── Context.php
│ ├── Generator.php
│ ├── helper
│ ├── ClassHelper.php
│ ├── FileHelper.php
│ └── TemplateHelper.php
│ ├── http
│ ├── Request.php
│ ├── RequestBody.php
│ ├── RequestBodyType.php
│ ├── RequestMethodType.php
│ ├── Response.php
│ └── ResponseType.php
│ ├── parser
│ ├── Apifox.php
│ ├── Database.php
│ ├── Openapi.php
│ ├── Parser.php
│ ├── ParserFactory.php
│ ├── ParserType.php
│ ├── Sql.php
│ ├── Yaoapp.php
│ ├── component
│ │ ├── Info.php
│ │ ├── Method.php
│ │ ├── Parameter.php
│ │ ├── Path.php
│ │ ├── Property.php
│ │ ├── Response.php
│ │ ├── Schema.php
│ │ └── Tag.php
│ └── legacy
│ │ ├── Action.php
│ │ ├── Application.php
│ │ ├── Controller.php
│ │ ├── Field.php
│ │ ├── Helper.php
│ │ ├── Model.php
│ │ ├── Module.php
│ │ ├── Node.php
│ │ ├── Project.php
│ │ ├── Relation.php
│ │ ├── Schema.php
│ │ ├── Traits.php
│ │ ├── Validate.php
│ │ └── View.php
│ ├── resource
│ ├── Backend.php
│ ├── Commandline.php
│ ├── Document.php
│ ├── Frontend.php
│ ├── Migration.php
│ ├── Operation.php
│ ├── Resource.php
│ ├── ResourceFactory.php
│ └── ResourceType.php
│ ├── task
│ ├── CopyFiles.php
│ ├── GenerateCode.php
│ ├── Task.php
│ ├── TaskLevel.php
│ └── TaskManager.php
│ └── template
│ ├── Route.php
│ ├── StereoType.php
│ ├── StereotypeFactory.php
│ ├── Template.php
│ ├── TemplateFactory.php
│ ├── TemplateType.php
│ └── php
│ ├── StereotypeClass.php
│ ├── StereotypeConfig.php
│ ├── StereotypeEnum.php
│ ├── StereotypeFunction.php
│ └── StereotypeTrait.php
├── template
└── php
│ ├── class.mustache
│ ├── config.mustache
│ ├── enum.mustache
│ ├── function.mustache
│ └── trait.mustache
└── usecase
├── FMCS-PHASE2.openapi.json
├── cms.yaml
├── craft.php
├── fmcs-phase2.openapi.json
├── fmcs.yaml
├── rbac.php
└── sample.php
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor/
2 | /.idea/
3 | /deploy/
4 | /composer.lock
5 | /test.php
6 | /usr/
7 | .config.yaml
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | phpcbf --standard=psr12 ./src && git add .
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # fmcs/phase2/generator
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wa-craft/generator-php",
3 | "description": "a cli tool to build applications for thinkphp v6",
4 | "type": "project",
5 | "license": "MIT",
6 | "authors": [
7 | {
8 | "name": "bison",
9 | "email": "bison@bitseed.cn"
10 | }
11 | ],
12 | "repositories": {
13 | "packagist": {
14 | "type": "composer",
15 | "url": "https://mirrors.aliyun.com/composer/"
16 | }
17 | },
18 | "minimum-stability": "dev",
19 | "autoload": {
20 | "psr-4": {
21 | "generator\\": "src\\generator"
22 | }
23 | },
24 | "require": {
25 | "php": ">= 8.1.0",
26 | "nategood/commando": "dev-master",
27 | "mustache/mustache": "dev-main",
28 | "ext-yaml": "*"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/config.yaml:
--------------------------------------------------------------------------------
1 | #生成代码的目标路径
2 | target_path: "./deploy"
--------------------------------------------------------------------------------
/craft.bat:
--------------------------------------------------------------------------------
1 | php ./build %*
--------------------------------------------------------------------------------
/doc/build_cmd.md:
--------------------------------------------------------------------------------
1 | ## builder 命令行参数
2 | ### `-c|--config`
3 | 指定配置文件的路径,默认为 './src/config.php'
4 |
5 | ### `-d|--data`
6 | 指定项目数据文件的路径
7 |
8 | ### `-t|--target`
9 | 指定文件生成的目标路径,默认为 './deploy'
--------------------------------------------------------------------------------
/doc/data.md:
--------------------------------------------------------------------------------
1 | # 数据文件编写规范
2 |
3 | * 节点的数据类型必须是如下之一:
4 |
5 | `project, application, module, model, view, validate, field, controller`
6 |
7 | * 字节点的命名方式是子节点类型后面加's',例如:'models'
--------------------------------------------------------------------------------
/doc/source_arch.md:
--------------------------------------------------------------------------------
1 | # Source Architecture
2 |
3 | ## generator
4 | 生成器入口程序,用于执行生成过程
5 |
6 | ## helper
7 | 与业务无关的工具程序
8 |
9 | ## parser
10 | 数据文件分析程序,生成包装后的数据对象
11 |
12 | ## resource
13 | 资源管理程序,用于管理资源、资源规则和对资源进行操作
14 |
15 | ## template
16 | 模板对象,对应模板资源目录进行包装,并进行模板操作
--------------------------------------------------------------------------------
/doc/tips.md:
--------------------------------------------------------------------------------
1 | # 未整理到文档的说明tips
2 |
3 | - 什么时候使用factory,什么时候直接new对象:
4 | 当需要从配置文件等输入的信息创建对象的时候,预先并不知道对象具体类型,首选工厂方法,
5 | 其他时候可以直接使用new的方式创建对象
6 | -
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/app/.htaccess:
--------------------------------------------------------------------------------
1 | deny from all
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/app/AppService.php:
--------------------------------------------------------------------------------
1 | [
5 | ],
6 |
7 | 'listen' => [
8 | 'AppInit' => [],
9 | 'HttpRun' => [],
10 | 'HttpEnd' => [],
11 | 'LogLevel' => [],
12 | 'LogWrite' => [],
13 | ],
14 |
15 | 'subscribe' => [
16 | ],
17 | ];
18 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/app/middleware.php:
--------------------------------------------------------------------------------
1 | Request::class,
8 | 'think\exception\Handle' => ExceptionHandle::class,
9 | ];
10 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/app/service.php:
--------------------------------------------------------------------------------
1 | env('application.host', ''),
9 | // 应用的命名空间
10 | 'app_namespace' => '',
11 | // 是否启用路由
12 | 'with_route' => true,
13 | // 默认应用
14 | 'default_app' => 'index',
15 | // 默认时区
16 | 'default_timezone' => 'Asia/Shanghai',
17 |
18 | // 应用映射(自动多应用模式有效)
19 | 'app_map' => [],
20 | // 域名绑定(自动多应用模式有效)
21 | 'domain_bind' => [],
22 | // 禁止URL访问的应用列表(自动多应用模式有效)
23 | 'deny_app_list' => [],
24 |
25 | // 异常页面的模板文件
26 | 'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exception.tpl',
27 |
28 | // 错误显示信息,非调试模式有效
29 | 'error_message' => '页面错误!请稍后再试~',
30 | // 显示错误信息
31 | 'show_error_msg' => false,
32 | ];
33 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/cache.php:
--------------------------------------------------------------------------------
1 | env('cache.driver', 'file'),
10 |
11 | // 缓存连接方式配置
12 | 'stores' => [
13 | 'file' => [
14 | // 驱动方式
15 | 'type' => 'File',
16 | // 缓存保存目录
17 | 'path' => '',
18 | // 缓存前缀
19 | 'prefix' => '',
20 | // 缓存有效期 0表示永久缓存
21 | 'expire' => 0,
22 | // 缓存标签前缀
23 | 'tag_prefix' => 'tag:',
24 | // 序列化机制 例如 ['serialize', 'unserialize']
25 | 'serialize' => [],
26 | ],
27 | // 更多的缓存连接
28 | ],
29 | ];
30 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/console.php:
--------------------------------------------------------------------------------
1 | [
8 | ],
9 | ];
10 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/cookie.php:
--------------------------------------------------------------------------------
1 | 0,
8 | // cookie 保存路径
9 | 'path' => '/',
10 | // cookie 有效域名
11 | 'domain' => '',
12 | // cookie 启用安全传输
13 | 'secure' => false,
14 | // httponly设置
15 | 'httponly' => false,
16 | // 是否使用 setcookie
17 | 'setcookie' => true,
18 | // samesite 设置,支持 'strict' 'lax'
19 | 'samesite' => '',
20 | ];
21 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/filesystem.php:
--------------------------------------------------------------------------------
1 | env('filesystem.driver', 'local'),
6 | // 磁盘列表
7 | 'disks' => [
8 | 'local' => [
9 | 'type' => 'local',
10 | 'root' => app()->getRuntimePath() . 'storage',
11 | ],
12 | 'public' => [
13 | // 磁盘类型
14 | 'type' => 'local',
15 | // 磁盘路径
16 | 'root' => app()->getRootPath() . 'public/storage',
17 | // 磁盘路径对应的外部URL路径
18 | 'url' => '/storage',
19 | // 可见性
20 | 'visibility' => 'public',
21 | ],
22 | // 更多的磁盘配置信息
23 | ],
24 | ];
25 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/lang.php:
--------------------------------------------------------------------------------
1 | env('lang.default_lang', 'zh-cn'),
9 | // 允许的语言列表
10 | 'allow_lang_list' => [],
11 | // 多语言自动侦测变量名
12 | 'detect_var' => 'lang',
13 | // 是否使用Cookie记录
14 | 'use_cookie' => true,
15 | // 多语言cookie变量
16 | 'cookie_var' => 'think_lang',
17 | // 多语言header变量
18 | 'header_var' => 'think-lang',
19 | // 扩展语言包
20 | 'extend_list' => [],
21 | // Accept-Language转义为对应语言包名称
22 | 'accept_language' => [
23 | 'zh-hans-cn' => 'zh-cn',
24 | ],
25 | // 是否支持语言分组
26 | 'allow_group' => false,
27 | ];
28 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/middleware.php:
--------------------------------------------------------------------------------
1 | [],
6 | // 优先级设置,此数组中的中间件会按照数组中的顺序优先执行
7 | 'priority' => [],
8 | ];
9 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/session.php:
--------------------------------------------------------------------------------
1 | 'PHPSESSID',
9 | // SESSION_ID的提交变量,解决flash上传跨域
10 | 'var_session_id' => '',
11 | // 驱动方式 支持file cache
12 | 'type' => 'file',
13 | // 存储连接标识 当type使用cache的时候有效
14 | 'store' => null,
15 | // 过期时间
16 | 'expire' => 1440,
17 | // 前缀
18 | 'prefix' => '',
19 | ];
20 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/config/view.php:
--------------------------------------------------------------------------------
1 | 'Think',
9 | // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
10 | 'auto_rule' => 1,
11 | // 模板目录名
12 | 'view_dir_name' => 'view',
13 | // 模板后缀
14 | 'view_suffix' => 'html',
15 | // 模板文件名分隔符
16 | 'view_depr' => DIRECTORY_SEPARATOR,
17 | // 模板引擎普通标签开始标记
18 | 'tpl_begin' => '{',
19 | // 模板引擎普通标签结束标记
20 | 'tpl_end' => '}',
21 | // 标签库标签开始标记
22 | 'taglib_begin' => '{',
23 | // 标签库标签结束标记
24 | 'taglib_end' => '}',
25 | ];
26 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/extend/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | Options +FollowSymlinks -Multiviews
3 | RewriteEngine On
4 |
5 | RewriteCond %{REQUEST_FILENAME} !-d
6 | RewriteCond %{REQUEST_FILENAME} !-f
7 | RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
8 |
9 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/backend/thinkphp/src/public/favicon.ico
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/public/index.php:
--------------------------------------------------------------------------------
1 |
10 | // +----------------------------------------------------------------------
11 |
12 | // [ 应用入口文件 ]
13 | namespace think;
14 |
15 | require __DIR__ . '/../vendor/autoload.php';
16 |
17 | // 执行HTTP应用并响应
18 | $http = (new App())->http;
19 |
20 | $response = $http->run();
21 |
22 | $response->send();
23 |
24 | $http->end($response);
25 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/public/router.php:
--------------------------------------------------------------------------------
1 |
10 | // +----------------------------------------------------------------------
11 | // $Id$
12 |
13 | if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) {
14 | return false;
15 | } else {
16 | $_SERVER["SCRIPT_FILENAME"] = __DIR__ . '/index.php';
17 |
18 | require __DIR__ . "/index.php";
19 | }
20 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/public/static/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/route/app.php:
--------------------------------------------------------------------------------
1 |
10 | // +----------------------------------------------------------------------
11 | use think\facade\Route;
12 |
13 | Route::get('think', function () {
14 | return 'hello,ThinkPHP6!';
15 | });
16 |
17 | Route::get('hello/:name', 'index/hello');
18 |
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/runtime/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/think:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | console->run();
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/vendor/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/resource/backend/thinkphp/src/view/README.md:
--------------------------------------------------------------------------------
1 | 如果不使用模板,可以删除该目录
--------------------------------------------------------------------------------
/resource/backend/webman/src/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | open_collective: walkor
4 | patreon: walkor
5 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea
2 | /.vscode
3 | /vendor
4 | *.log
5 | .env
6 | /tests/tmp
7 | /tests/.phpunit.result.cache
8 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/README.md:
--------------------------------------------------------------------------------
1 | # webman
2 |
3 | High performance HTTP Service Framework for PHP based on [Workerman](https://github.com/walkor/workerman).
4 |
5 | # Manual
6 |
7 | https://www.workerman.net/doc/webman
8 |
9 | # Benchmarks
10 |
11 | https://www.techempower.com/benchmarks/#section=test&runid=9716e3cd-9e53-433c-b6c5-d2c48c9593c1&hw=ph&test=db&l=zg24n3-1r&a=2
12 | 
13 |
14 | ## LICENSE
15 |
16 | MIT
17 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/app/controller/Index.php:
--------------------------------------------------------------------------------
1 | 'webman']);
17 | }
18 |
19 | public function json(Request $request)
20 | {
21 | return json(['code' => 0, 'msg' => 'ok']);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/app/functions.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | webman
9 |
10 |
11 |
12 | hello =htmlspecialchars($name)?>
13 |
14 |
15 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/app.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | use support\Request;
16 |
17 | return [
18 | 'debug' => true,
19 | 'default_timezone' => 'Asia/Shanghai',
20 | 'request_class' => Request::class,
21 | 'public_path' => base_path() . DIRECTORY_SEPARATOR . 'public',
22 | 'runtime_path' => base_path(false) . DIRECTORY_SEPARATOR . 'runtime',
23 | 'controller_suffix' => '',
24 | ];
25 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/autoload.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [
16 | 'files' => [
17 | base_path() . '/app/functions.php',
18 | base_path() . '/support/Request.php',
19 | base_path() . '/support/Response.php',
20 | ]
21 | ];
22 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/bootstrap.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [
16 | support\bootstrap\Session::class,
17 | support\bootstrap\LaravelDb::class,
18 | ];
19 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/container.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return new Webman\Container;
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/database.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [];
16 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/dependence.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [];
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/exception.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [
16 | '' => support\exception\Handler::class,
17 | ];
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/middleware.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [];
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/redis.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | return [
16 | 'default' => [
17 | 'host' => '127.0.0.1',
18 | 'password' => null,
19 | 'port' => 6379,
20 | 'database' => 0,
21 | ],
22 | ];
23 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/route.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | use Webman\Route;
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/static.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | /**
16 | * Static file settings
17 | */
18 | return [
19 | 'enable' => true,
20 | 'middleware' => [ // Static file Middleware
21 | //app\middleware\StaticFile::class,
22 | ],
23 | ];
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/translation.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | /**
16 | * Multilingual configuration
17 | */
18 | return [
19 | // Default language
20 | 'locale' => 'zh_CN',
21 | // Fallback language
22 | 'fallback_locale' => ['zh_CN', 'en'],
23 | // Folder where language files are stored
24 | 'path' => base_path() . '/resource/translations',
25 | ];
--------------------------------------------------------------------------------
/resource/backend/webman/src/config/view.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | use support\view\Raw;
16 | use support\view\Twig;
17 | use support\view\Blade;
18 | use support\view\ThinkPHP;
19 |
20 | return [
21 | 'handler' => Raw::class
22 | ];
23 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 404 Not Found - webman
4 |
5 |
6 |
7 | 404 Not Found
8 |
9 |
10 | webman
11 |
12 |
13 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/backend/webman/src/public/favicon.ico
--------------------------------------------------------------------------------
/resource/backend/webman/src/runtime/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !logs
3 | !views
4 | !.gitignore
5 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/runtime/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/resource/backend/webman/src/runtime/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/resource/backend/webman/src/support/Request.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | namespace support;
16 |
17 | /**
18 | * Class Request
19 | * @package support
20 | */
21 | class Request extends \Webman\Http\Request
22 | {
23 |
24 | }
--------------------------------------------------------------------------------
/resource/backend/webman/src/support/Response.php:
--------------------------------------------------------------------------------
1 |
10 | * @copyright walkor
11 | * @link http://www.workerman.net/
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 |
15 | namespace support;
16 |
17 | /**
18 | * Class Response
19 | * @package support
20 | */
21 | class Response extends \Webman\Http\Response
22 | {
23 |
24 | }
--------------------------------------------------------------------------------
/resource/backend/webman/src/windows.bat:
--------------------------------------------------------------------------------
1 | CHCP 65001
2 | php windows.php
3 | pause
--------------------------------------------------------------------------------
/resource/document/mdbook/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/mdbook/README.md
--------------------------------------------------------------------------------
/resource/document/mdbook/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/mdbook/README_cn.md
--------------------------------------------------------------------------------
/resource/document/mdbook/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/mdbook/src/.gitkeep
--------------------------------------------------------------------------------
/resource/document/mdbook/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/mdbook/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/document/vuepress/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/vuepress/README.md
--------------------------------------------------------------------------------
/resource/document/vuepress/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/vuepress/README_cn.md
--------------------------------------------------------------------------------
/resource/document/vuepress/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/vuepress/src/.gitkeep
--------------------------------------------------------------------------------
/resource/document/vuepress/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/vuepress/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/document/zola/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/zola/README.md
--------------------------------------------------------------------------------
/resource/document/zola/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/zola/README_cn.md
--------------------------------------------------------------------------------
/resource/document/zola/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/zola/src/.gitkeep
--------------------------------------------------------------------------------
/resource/document/zola/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/document/zola/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/rule.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | rules:
3 | - name: test
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.md]
13 | trim_trailing_whitespace = false
14 |
15 | [Makefile]
16 | indent_style = tab
17 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.eslintignore:
--------------------------------------------------------------------------------
1 | /lambda/
2 | /scripts
3 | /config
4 | .history
5 | public
6 | dist
7 | .umi
8 | mock
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: [require.resolve('@umijs/fabric/dist/eslint')],
3 | globals: {
4 | ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: true,
5 | page: true,
6 | REACT_APP_ENV: true,
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | **/node_modules
5 | # roadhog-api-doc ignore
6 | /src/utils/request-temp.js
7 | _roadhog-api-doc
8 |
9 | # production
10 | /dist
11 | /.vscode
12 |
13 | # misc
14 | .DS_Store
15 | npm-debug.log*
16 | yarn-error.log
17 |
18 | /coverage
19 | .idea
20 | yarn.lock
21 | package-lock.json
22 | *bak
23 | .vscode
24 |
25 | # visual studio code
26 | .history
27 | *.log
28 | functions/*
29 | .temp/**
30 |
31 | # umi
32 | .umi
33 | .umi-production
34 |
35 | # screenshot
36 | screenshot
37 | .firebase
38 | .eslintcache
39 |
40 | build
41 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.prettierignore:
--------------------------------------------------------------------------------
1 | **/*.svg
2 | package.json
3 | .umi
4 | .umi-production
5 | /dist
6 | .dockerignore
7 | .DS_Store
8 | .eslintignore
9 | *.png
10 | *.toml
11 | docker
12 | .editorconfig
13 | Dockerfile*
14 | .gitignore
15 | .prettierignore
16 | LICENSE
17 | .eslintcache
18 | *.lock
19 | yarn-error.log
20 | .history
21 | CNAME
22 | /build
23 | /public
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.prettierrc.js:
--------------------------------------------------------------------------------
1 | const fabric = require('@umijs/fabric');
2 |
3 | module.exports = {
4 | ...fabric.prettier,
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/.stylelintrc.js:
--------------------------------------------------------------------------------
1 | const fabric = require('@umijs/fabric');
2 |
3 | module.exports = {
4 | ...fabric.stylelint,
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/config/config.dev.ts:
--------------------------------------------------------------------------------
1 | // https://umijs.org/config/
2 | import { defineConfig } from 'umi';
3 |
4 | export default defineConfig({
5 | plugins: [
6 | // https://github.com/zthxxx/react-dev-inspector
7 | 'react-dev-inspector/plugins/umi/react-inspector',
8 | ],
9 | // https://github.com/zthxxx/react-dev-inspector#inspector-loader-props
10 | inspectorConfig: {
11 | exclude: [],
12 | babelPlugins: [],
13 | babelOptions: {},
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/config/defaultSettings.ts:
--------------------------------------------------------------------------------
1 | import { Settings as LayoutSettings } from '@ant-design/pro-layout';
2 |
3 | const Settings: LayoutSettings & {
4 | pwa?: boolean;
5 | logo?: string;
6 | } = {
7 | navTheme: 'light',
8 | // 拂晓蓝
9 | primaryColor: '#1890ff',
10 | layout: 'mix',
11 | contentWidth: 'Fluid',
12 | fixedHeader: false,
13 | fixSiderbar: true,
14 | colorWeak: false,
15 | title: 'Ant Design Pro',
16 | pwa: false,
17 | logo: 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg',
18 | iconfontUrl: '',
19 | };
20 |
21 | export default Settings;
22 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/config/proxy.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * 在生产环境 代理是无法生效的,所以这里没有生产环境的配置
3 | * -------------------------------
4 | * The agent cannot take effect in the production environment
5 | * so there is no configuration of the production environment
6 | * For details, please see
7 | * https://pro.ant.design/docs/deploy
8 | */
9 | export default {
10 | dev: {
11 | '/api/': {
12 | target: 'https://preview.pro.ant.design',
13 | changeOrigin: true,
14 | pathRewrite: { '^': '' },
15 | },
16 | },
17 | test: {
18 | '/api/': {
19 | target: 'https://preview.pro.ant.design',
20 | changeOrigin: true,
21 | pathRewrite: { '^': '' },
22 | },
23 | },
24 | pre: {
25 | '/api/': {
26 | target: 'your pre url',
27 | changeOrigin: true,
28 | pathRewrite: { '^': '' },
29 | },
30 | },
31 | };
32 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | testURL: 'http://localhost:8000',
3 | testEnvironment: './tests/PuppeteerEnvironment',
4 | verbose: false,
5 | extraSetupFiles: ['./tests/setupTests.js'],
6 | globals: {
7 | ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: false,
8 | localStorage: null,
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "emitDecoratorMetadata": true,
4 | "experimentalDecorators": true,
5 | "baseUrl": ".",
6 | "paths": {
7 | "@/*": ["./src/*"]
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/mock/route.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | '/api/auth_routes': {
3 | '/form/advanced-form': { authority: ['admin', 'user'] },
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/public/CNAME:
--------------------------------------------------------------------------------
1 | preview.pro.ant.design
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/frontend/react-antd-umi/src/public/favicon.ico
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/public/icons/icon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/frontend/react-antd-umi/src/public/icons/icon-128x128.png
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/public/icons/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/frontend/react-antd-umi/src/public/icons/icon-192x192.png
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/public/icons/icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/frontend/react-antd-umi/src/public/icons/icon-512x512.png
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/public/pro_icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/access.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * @see https://umijs.org/zh-CN/plugins/plugin-access
3 | * */
4 | export default function access(initialState: { currentUser?: API.CurrentUser | undefined }) {
5 | const { currentUser } = initialState || {};
6 | return {
7 | canAdmin: currentUser && currentUser.access === 'admin',
8 | };
9 | }
10 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/components/HeaderDropdown/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .container > * {
4 | background-color: @popover-bg;
5 | border-radius: 4px;
6 | box-shadow: @shadow-1-down;
7 | }
8 |
9 | @media screen and (max-width: @screen-xs) {
10 | .container {
11 | width: 100% !important;
12 | }
13 | .container > * {
14 | border-radius: 0 !important;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/components/HeaderDropdown/index.tsx:
--------------------------------------------------------------------------------
1 | import type { DropDownProps } from 'antd/es/dropdown';
2 | import { Dropdown } from 'antd';
3 | import React from 'react';
4 | import classNames from 'classnames';
5 | import styles from './index.less';
6 |
7 | export type HeaderDropdownProps = {
8 | overlayClassName?: string;
9 | overlay: React.ReactNode | (() => React.ReactNode) | any;
10 | placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight' | 'bottomCenter';
11 | } & Omit;
12 |
13 | const HeaderDropdown: React.FC = ({ overlayClassName: cls, ...restProps }) => (
14 |
15 | );
16 |
17 | export default HeaderDropdown;
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/components/HeaderSearch/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .headerSearch {
4 | display: inline-flex;
5 | align-items: center;
6 | .input {
7 | width: 0;
8 | min-width: 0;
9 | overflow: hidden;
10 | background: transparent;
11 | border-radius: 0;
12 | transition: width 0.3s, margin-left 0.3s;
13 | :global(.ant-select-selection) {
14 | background: transparent;
15 | }
16 | input {
17 | box-shadow: none !important;
18 | }
19 |
20 | &.show {
21 | width: 210px;
22 | margin-left: 8px;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/components/NoticeIcon/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .popover {
4 | position: relative;
5 | width: 336px;
6 | }
7 |
8 | .noticeButton {
9 | display: inline-block;
10 | cursor: pointer;
11 | transition: all 0.3s;
12 | }
13 | .icon {
14 | padding: 4px;
15 | vertical-align: middle;
16 | }
17 |
18 | .badge {
19 | font-size: 16px;
20 | }
21 |
22 | .tabs {
23 | :global {
24 | .ant-tabs-nav-list {
25 | margin: auto;
26 | }
27 |
28 | .ant-tabs-nav-scroll {
29 | text-align: center;
30 | }
31 | .ant-tabs-bar {
32 | margin-bottom: 0;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/bn-BD.ts:
--------------------------------------------------------------------------------
1 | import component from './bn-BD/component';
2 | import globalHeader from './bn-BD/globalHeader';
3 | import menu from './bn-BD/menu';
4 | import pages from './bn-BD/pages';
5 | import pwa from './bn-BD/pwa';
6 | import settingDrawer from './bn-BD/settingDrawer';
7 | import settings from './bn-BD/settings';
8 |
9 | export default {
10 | 'navBar.lang': 'ভাষা',
11 | 'layout.user.link.help': 'সহায়তা',
12 | 'layout.user.link.privacy': 'গোপনীয়তা',
13 | 'layout.user.link.terms': 'শর্তাদি',
14 | 'app.copyright.produced': 'প্রযোজনা করেছেন অ্যান্ট ফিনান্সিয়াল এক্সপেরিয়েন্স ডিপার্টমেন্ট',
15 | 'app.preview.down.block': 'আপনার স্থানীয় প্রকল্পে এই পৃষ্ঠাটি ডাউনলোড করুন',
16 | 'app.welcome.link.fetch-blocks': 'সমস্ত ব্লক পান',
17 | 'app.welcome.link.block-list':
18 | '`block` ডেভেলপমেন্ট এর উপর ভিত্তি করে দ্রুত স্ট্যান্ডার্ড, পৃষ্ঠাসমূহ তৈরি করুন।',
19 | ...globalHeader,
20 | ...menu,
21 | ...settingDrawer,
22 | ...settings,
23 | ...pwa,
24 | ...component,
25 | ...pages,
26 | };
27 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/bn-BD/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': 'বিস্তৃত',
3 | 'component.tagSelect.collapse': 'সঙ্কুচিত',
4 | 'component.tagSelect.all': 'সব',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/bn-BD/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': 'অনুসন্ধান করুন',
3 | 'component.globalHeader.search.example1': 'অনুসন্ধান উদাহরণ ১',
4 | 'component.globalHeader.search.example2': 'অনুসন্ধান উদাহরণ ২',
5 | 'component.globalHeader.search.example3': 'অনুসন্ধান উদাহরণ ৩',
6 | 'component.globalHeader.help': 'সহায়তা',
7 | 'component.globalHeader.notification': 'বিজ্ঞপ্তি',
8 | 'component.globalHeader.notification.empty': 'আপনি সমস্ত বিজ্ঞপ্তি দেখেছেন।',
9 | 'component.globalHeader.message': 'বার্তা',
10 | 'component.globalHeader.message.empty': 'আপনি সমস্ত বার্তা দেখেছেন।',
11 | 'component.globalHeader.event': 'ঘটনা',
12 | 'component.globalHeader.event.empty': 'আপনি সমস্ত ইভেন্ট দেখেছেন।',
13 | 'component.noticeIcon.clear': 'সাফ',
14 | 'component.noticeIcon.cleared': 'সাফ করা হয়েছে',
15 | 'component.noticeIcon.empty': 'বিজ্ঞপ্তি নেই',
16 | 'component.noticeIcon.view-more': 'আরো দেখুন',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/bn-BD/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': 'আপনি এখন অফলাইন',
3 | 'app.pwa.serviceworker.updated': 'নতুন সামগ্রী উপলব্ধ',
4 | 'app.pwa.serviceworker.updated.hint':
5 | 'বর্তমান পৃষ্ঠাটি পুনরায় লোড করতে দয়া করে "রিফ্রেশ" বোতাম টিপুন',
6 | 'app.pwa.serviceworker.updated.ok': 'রিফ্রেশ',
7 | };
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/en-US.ts:
--------------------------------------------------------------------------------
1 | import component from './en-US/component';
2 | import globalHeader from './en-US/globalHeader';
3 | import menu from './en-US/menu';
4 | import pages from './en-US/pages';
5 | import pwa from './en-US/pwa';
6 | import settingDrawer from './en-US/settingDrawer';
7 | import settings from './en-US/settings';
8 |
9 | export default {
10 | 'navBar.lang': 'Languages',
11 | 'layout.user.link.help': 'Help',
12 | 'layout.user.link.privacy': 'Privacy',
13 | 'layout.user.link.terms': 'Terms',
14 | 'app.copyright.produced': 'Produced by Ant Financial Experience Department',
15 | 'app.preview.down.block': 'Download this page to your local project',
16 | 'app.welcome.link.fetch-blocks': 'Get all block',
17 | 'app.welcome.link.block-list': 'Quickly build standard, pages based on `block` development',
18 | ...globalHeader,
19 | ...menu,
20 | ...settingDrawer,
21 | ...settings,
22 | ...pwa,
23 | ...component,
24 | ...pages,
25 | };
26 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/en-US/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': 'Expand',
3 | 'component.tagSelect.collapse': 'Collapse',
4 | 'component.tagSelect.all': 'All',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/en-US/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': 'Search',
3 | 'component.globalHeader.search.example1': 'Search example 1',
4 | 'component.globalHeader.search.example2': 'Search example 2',
5 | 'component.globalHeader.search.example3': 'Search example 3',
6 | 'component.globalHeader.help': 'Help',
7 | 'component.globalHeader.notification': 'Notification',
8 | 'component.globalHeader.notification.empty': 'You have viewed all notifications.',
9 | 'component.globalHeader.message': 'Message',
10 | 'component.globalHeader.message.empty': 'You have viewed all messsages.',
11 | 'component.globalHeader.event': 'Event',
12 | 'component.globalHeader.event.empty': 'You have viewed all events.',
13 | 'component.noticeIcon.clear': 'Clear',
14 | 'component.noticeIcon.cleared': 'Cleared',
15 | 'component.noticeIcon.empty': 'No notifications',
16 | 'component.noticeIcon.view-more': 'View more',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/en-US/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': 'You are offline now',
3 | 'app.pwa.serviceworker.updated': 'New content is available',
4 | 'app.pwa.serviceworker.updated.hint': 'Please press the "Refresh" button to reload current page',
5 | 'app.pwa.serviceworker.updated.ok': 'Refresh',
6 | };
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/fa-IR.ts:
--------------------------------------------------------------------------------
1 | import component from './fa-IR/component';
2 | import globalHeader from './fa-IR/globalHeader';
3 | import menu from './fa-IR/menu';
4 | import pwa from './fa-IR/pwa';
5 | import settingDrawer from './fa-IR/settingDrawer';
6 | import settings from './fa-IR/settings';
7 | import pages from './fa-IR/pages';
8 |
9 | export default {
10 | 'navBar.lang': 'زبان ها ',
11 | 'layout.user.link.help': 'کمک',
12 | 'layout.user.link.privacy': 'حریم خصوصی',
13 | 'layout.user.link.terms': 'مقررات',
14 | 'app.preview.down.block': 'این صفحه را در پروژه محلی خود بارگیری کنید',
15 | 'app.welcome.link.fetch-blocks': 'دریافت تمام بلوک',
16 | 'app.welcome.link.block-list': 'به سرعت صفحات استاندارد مبتنی بر توسعه "بلوک" را بسازید',
17 | ...globalHeader,
18 | ...menu,
19 | ...settingDrawer,
20 | ...settings,
21 | ...pwa,
22 | ...component,
23 | ...pages,
24 | };
25 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/fa-IR/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': 'باز',
3 | 'component.tagSelect.collapse': 'بسته ',
4 | 'component.tagSelect.all': 'همه',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/fa-IR/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': 'جستجو ',
3 | 'component.globalHeader.search.example1': 'مثال 1 را جستجو کنید',
4 | 'component.globalHeader.search.example2': 'مثال 2 را جستجو کنید',
5 | 'component.globalHeader.search.example3': 'مثال 3 را جستجو کنید',
6 | 'component.globalHeader.help': 'کمک',
7 | 'component.globalHeader.notification': 'اعلان',
8 | 'component.globalHeader.notification.empty': 'شما همه اعلان ها را مشاهده کرده اید.',
9 | 'component.globalHeader.message': 'پیام',
10 | 'component.globalHeader.message.empty': 'شما همه پیام ها را مشاهده کرده اید.',
11 | 'component.globalHeader.event': 'رویداد',
12 | 'component.globalHeader.event.empty': 'شما همه رویدادها را مشاهده کرده اید.',
13 | 'component.noticeIcon.clear': 'پاک کردن',
14 | 'component.noticeIcon.cleared': 'پاک شد',
15 | 'component.noticeIcon.empty': 'بدون اعلان',
16 | 'component.noticeIcon.view-more': 'نمایش بیشتر',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/fa-IR/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': 'شما اکنون آفلاین هستید',
3 | 'app.pwa.serviceworker.updated': 'مطالب جدید در دسترس است',
4 | 'app.pwa.serviceworker.updated.hint':
5 | 'لطفاً برای بارگیری مجدد صفحه فعلی ، دکمه "تازه سازی" را فشار دهید',
6 | 'app.pwa.serviceworker.updated.ok': 'تازه سازی',
7 | };
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/id-ID.ts:
--------------------------------------------------------------------------------
1 | import component from './id-ID/component';
2 | import globalHeader from './id-ID/globalHeader';
3 | import menu from './id-ID/menu';
4 | import pwa from './id-ID/pwa';
5 | import settingDrawer from './id-ID/settingDrawer';
6 | import settings from './id-ID/settings';
7 | import pages from './id-ID/pages';
8 |
9 | export default {
10 | 'navbar.lang': 'Bahasa',
11 | 'layout.user.link.help': 'Bantuan',
12 | 'layout.user.link.privacy': 'Privasi',
13 | 'layout.user.link.terms': 'Ketentuan',
14 | 'app.preview.down.block': 'Unduh halaman ini dalam projek lokal anda',
15 | 'app.welcome.link.fetch-blocks': 'Dapatkan semua blok',
16 | 'app.welcome.link.block-list':
17 | 'Buat standar dengan cepat, halaman-halaman berdasarkan pengembangan `block`',
18 | ...globalHeader,
19 | ...menu,
20 | ...settingDrawer,
21 | ...settings,
22 | ...pwa,
23 | ...component,
24 | ...pages,
25 | };
26 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/id-ID/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': 'Perluas',
3 | 'component.tagSelect.collapse': 'Lipat',
4 | 'component.tagSelect.all': 'Semua',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/id-ID/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': 'Pencarian',
3 | 'component.globalHeader.search.example1': 'Contoh 1 Pencarian',
4 | 'component.globalHeader.search.example2': 'Contoh 2 Pencarian',
5 | 'component.globalHeader.search.example3': 'Contoh 3 Pencarian',
6 | 'component.globalHeader.help': 'Bantuan',
7 | 'component.globalHeader.notification': 'Notifikasi',
8 | 'component.globalHeader.notification.empty': 'Anda telah membaca semua notifikasi',
9 | 'component.globalHeader.message': 'Pesan',
10 | 'component.globalHeader.message.empty': 'Anda telah membaca semua pesan.',
11 | 'component.globalHeader.event': 'Acara',
12 | 'component.globalHeader.event.empty': 'Anda telah melihat semua acara.',
13 | 'component.noticeIcon.clear': 'Kosongkan',
14 | 'component.noticeIcon.cleared': 'Berhasil dikosongkan',
15 | 'component.noticeIcon.empty': 'Tidak ada pemberitahuan',
16 | 'component.noticeIcon.view-more': 'Melihat lebih',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/id-ID/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': 'Koneksi anda terputus',
3 | 'app.pwa.serviceworker.updated': 'Konten baru sudah tersedia',
4 | 'app.pwa.serviceworker.updated.hint':
5 | 'Silahkan klik tombol "Refresh" untuk memuat ulang halaman ini',
6 | 'app.pwa.serviceworker.updated.ok': 'Memuat ulang',
7 | };
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/ja-JP.ts:
--------------------------------------------------------------------------------
1 | import globalHeader from './ja-JP/globalHeader';
2 | import menu from './ja-JP/menu';
3 | import settingDrawer from './ja-JP/settingDrawer';
4 | import settings from './ja-JP/settings';
5 | import pwa from './ja-JP/pwa';
6 | import component from './ja-JP/component';
7 | import pages from './ja-JP/pages';
8 |
9 | export default {
10 | 'navBar.lang': '言語',
11 | 'layout.user.link.help': 'ヘルプ',
12 | 'layout.user.link.privacy': 'プライバシー',
13 | 'layout.user.link.terms': '利用規約',
14 | 'app.preview.down.block': 'このページをローカルプロジェクトにダウンロードしてください',
15 | 'app.welcome.link.fetch-blocks': '',
16 | 'app.welcome.link.block-list': '',
17 | ...globalHeader,
18 | ...menu,
19 | ...settingDrawer,
20 | ...settings,
21 | ...pwa,
22 | ...component,
23 | ...pages,
24 | };
25 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/ja-JP/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': '展開',
3 | 'component.tagSelect.collapse': '折りたたむ',
4 | 'component.tagSelect.all': 'すべて',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/ja-JP/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': '検索',
3 | 'component.globalHeader.search.example1': '検索例1',
4 | 'component.globalHeader.search.example2': '検索例2',
5 | 'component.globalHeader.search.example3': '検索例3',
6 | 'component.globalHeader.help': 'ヘルプ',
7 | 'component.globalHeader.notification': '通知',
8 | 'component.globalHeader.notification.empty': 'すべての通知を表示しました。',
9 | 'component.globalHeader.message': 'メッセージ',
10 | 'component.globalHeader.message.empty': 'すべてのメッセージを表示しました。',
11 | 'component.globalHeader.event': 'イベント',
12 | 'component.globalHeader.event.empty': 'すべてのイベントを表示しました。',
13 | 'component.noticeIcon.clear': 'クリア',
14 | 'component.noticeIcon.cleared': 'クリア済み',
15 | 'component.noticeIcon.empty': '通知なし',
16 | 'component.noticeIcon.view-more': 'もっと見る',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/ja-JP/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': 'あなたは今オフラインです',
3 | 'app.pwa.serviceworker.updated': '新しいコンテンツが利用可能です',
4 | 'app.pwa.serviceworker.updated.hint':
5 | '現在のページをリロードするには、「更新」ボタンを押してください',
6 | 'app.pwa.serviceworker.updated.ok': 'リフレッシュ',
7 | };
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/pt-BR.ts:
--------------------------------------------------------------------------------
1 | import component from './pt-BR/component';
2 | import globalHeader from './pt-BR/globalHeader';
3 | import menu from './pt-BR/menu';
4 | import pwa from './pt-BR/pwa';
5 | import settingDrawer from './pt-BR/settingDrawer';
6 | import settings from './pt-BR/settings';
7 | import pages from './pt-BR/pages';
8 |
9 | export default {
10 | 'navBar.lang': 'Idiomas',
11 | 'layout.user.link.help': 'ajuda',
12 | 'layout.user.link.privacy': 'política de privacidade',
13 | 'layout.user.link.terms': 'termos de serviços',
14 | 'app.preview.down.block': 'Download this page to your local project',
15 | ...globalHeader,
16 | ...menu,
17 | ...settingDrawer,
18 | ...settings,
19 | ...pwa,
20 | ...component,
21 | ...pages,
22 | };
23 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/pt-BR/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': 'Expandir',
3 | 'component.tagSelect.collapse': 'Diminuir',
4 | 'component.tagSelect.all': 'Todas',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/pt-BR/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': 'Busca',
3 | 'component.globalHeader.search.example1': 'Exemplo de busca 1',
4 | 'component.globalHeader.search.example2': 'Exemplo de busca 2',
5 | 'component.globalHeader.search.example3': 'Exemplo de busca 3',
6 | 'component.globalHeader.help': 'Ajuda',
7 | 'component.globalHeader.notification': 'Notificação',
8 | 'component.globalHeader.notification.empty': 'Você visualizou todas as notificações.',
9 | 'component.globalHeader.message': 'Mensagem',
10 | 'component.globalHeader.message.empty': 'Você visualizou todas as mensagens.',
11 | 'component.globalHeader.event': 'Evento',
12 | 'component.globalHeader.event.empty': 'Você visualizou todos os eventos.',
13 | 'component.noticeIcon.clear': 'Limpar',
14 | 'component.noticeIcon.cleared': 'Limpo',
15 | 'component.noticeIcon.empty': 'Sem notificações',
16 | 'component.noticeIcon.loaded': 'Carregado',
17 | 'component.noticeIcon.view-more': 'Veja mais',
18 | };
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/pt-BR/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': 'Você está offline agora',
3 | 'app.pwa.serviceworker.updated': 'Novo conteúdo está disponível',
4 | 'app.pwa.serviceworker.updated.hint':
5 | 'Por favor, pressione o botão "Atualizar" para recarregar a página atual',
6 | 'app.pwa.serviceworker.updated.ok': 'Atualizar',
7 | };
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-CN.ts:
--------------------------------------------------------------------------------
1 | import component from './zh-CN/component';
2 | import globalHeader from './zh-CN/globalHeader';
3 | import menu from './zh-CN/menu';
4 | import pwa from './zh-CN/pwa';
5 | import settingDrawer from './zh-CN/settingDrawer';
6 | import settings from './zh-CN/settings';
7 | import pages from './zh-CN/pages';
8 |
9 | export default {
10 | 'navBar.lang': '语言',
11 | 'layout.user.link.help': '帮助',
12 | 'layout.user.link.privacy': '隐私',
13 | 'layout.user.link.terms': '条款',
14 | 'app.copyright.produced': '蚂蚁集团体验技术部出品',
15 | 'app.preview.down.block': '下载此页面到本地项目',
16 | 'app.welcome.link.fetch-blocks': '获取全部区块',
17 | 'app.welcome.link.block-list': '基于 block 开发,快速构建标准页面',
18 | ...pages,
19 | ...globalHeader,
20 | ...menu,
21 | ...settingDrawer,
22 | ...settings,
23 | ...pwa,
24 | ...component,
25 | };
26 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-CN/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': '展开',
3 | 'component.tagSelect.collapse': '收起',
4 | 'component.tagSelect.all': '全部',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-CN/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': '站内搜索',
3 | 'component.globalHeader.search.example1': '搜索提示一',
4 | 'component.globalHeader.search.example2': '搜索提示二',
5 | 'component.globalHeader.search.example3': '搜索提示三',
6 | 'component.globalHeader.help': '使用文档',
7 | 'component.globalHeader.notification': '通知',
8 | 'component.globalHeader.notification.empty': '你已查看所有通知',
9 | 'component.globalHeader.message': '消息',
10 | 'component.globalHeader.message.empty': '您已读完所有消息',
11 | 'component.globalHeader.event': '待办',
12 | 'component.globalHeader.event.empty': '你已完成所有待办',
13 | 'component.noticeIcon.clear': '清空',
14 | 'component.noticeIcon.cleared': '清空了',
15 | 'component.noticeIcon.empty': '暂无数据',
16 | 'component.noticeIcon.view-more': '查看更多',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-CN/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': '当前处于离线状态',
3 | 'app.pwa.serviceworker.updated': '有新内容',
4 | 'app.pwa.serviceworker.updated.hint': '请点击“刷新”按钮或者手动刷新页面',
5 | 'app.pwa.serviceworker.updated.ok': '刷新',
6 | };
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-TW.ts:
--------------------------------------------------------------------------------
1 | import component from './zh-TW/component';
2 | import globalHeader from './zh-TW/globalHeader';
3 | import menu from './zh-TW/menu';
4 | import pwa from './zh-TW/pwa';
5 | import settingDrawer from './zh-TW/settingDrawer';
6 | import settings from './zh-TW/settings';
7 |
8 | export default {
9 | 'navBar.lang': '語言',
10 | 'layout.user.link.help': '幫助',
11 | 'layout.user.link.privacy': '隱私',
12 | 'layout.user.link.terms': '條款',
13 | 'app.preview.down.block': '下載此頁面到本地項目',
14 | ...globalHeader,
15 | ...menu,
16 | ...settingDrawer,
17 | ...settings,
18 | ...pwa,
19 | ...component,
20 | };
21 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-TW/component.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.tagSelect.expand': '展開',
3 | 'component.tagSelect.collapse': '收起',
4 | 'component.tagSelect.all': '全部',
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-TW/globalHeader.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'component.globalHeader.search': '站內搜索',
3 | 'component.globalHeader.search.example1': '搜索提示壹',
4 | 'component.globalHeader.search.example2': '搜索提示二',
5 | 'component.globalHeader.search.example3': '搜索提示三',
6 | 'component.globalHeader.help': '使用手冊',
7 | 'component.globalHeader.notification': '通知',
8 | 'component.globalHeader.notification.empty': '妳已查看所有通知',
9 | 'component.globalHeader.message': '消息',
10 | 'component.globalHeader.message.empty': '您已讀完所有消息',
11 | 'component.globalHeader.event': '待辦',
12 | 'component.globalHeader.event.empty': '妳已完成所有待辦',
13 | 'component.noticeIcon.clear': '清空',
14 | 'component.noticeIcon.cleared': '清空了',
15 | 'component.noticeIcon.empty': '暫無資料',
16 | 'component.noticeIcon.view-more': '查看更多',
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/locales/zh-TW/pwa.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | 'app.pwa.offline': '當前處於離線狀態',
3 | 'app.pwa.serviceworker.updated': '有新內容',
4 | 'app.pwa.serviceworker.updated.hint': '請點擊“刷新”按鈕或者手動刷新頁面',
5 | 'app.pwa.serviceworker.updated.ok': '刷新',
6 | };
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Ant Design Pro",
3 | "short_name": "Ant Design Pro",
4 | "display": "standalone",
5 | "start_url": "./?utm_source=homescreen",
6 | "theme_color": "#002140",
7 | "background_color": "#001529",
8 | "icons": [
9 | {
10 | "src": "icons/icon-192x192.png",
11 | "sizes": "192x192"
12 | },
13 | {
14 | "src": "icons/icon-128x128.png",
15 | "sizes": "128x128"
16 | },
17 | {
18 | "src": "icons/icon-512x512.png",
19 | "sizes": "512x512"
20 | }
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/404.tsx:
--------------------------------------------------------------------------------
1 | import { Button, Result } from 'antd';
2 | import React from 'react';
3 | import { history } from 'umi';
4 |
5 | const NoFoundPage: React.FC = () => (
6 | history.push('/')}>
12 | Back Home
13 |
14 | }
15 | />
16 | );
17 |
18 | export default NoFoundPage;
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/Welcome.less:
--------------------------------------------------------------------------------
1 | @import '~antd/lib/style/themes/default.less';
2 |
3 | .pre {
4 | margin: 12px 0;
5 | padding: 12px 20px;
6 | background: @input-bg;
7 | box-shadow: @card-shadow;
8 | }
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/account/center/components/ArticleListContent/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .listContent {
4 | .description {
5 | max-width: 720px;
6 | line-height: 22px;
7 | }
8 | .extra {
9 | margin-top: 16px;
10 | color: @text-color-secondary;
11 | line-height: 22px;
12 | & > :global(.ant-avatar) {
13 | position: relative;
14 | top: 1px;
15 | width: 20px;
16 | height: 20px;
17 | margin-right: 8px;
18 | vertical-align: top;
19 | }
20 | & > em {
21 | margin-left: 16px;
22 | color: @disabled-color;
23 | font-style: normal;
24 | }
25 | }
26 | }
27 |
28 | @media screen and (max-width: @screen-xs) {
29 | .listContent {
30 | .extra {
31 | & > em {
32 | display: block;
33 | margin-top: 8px;
34 | margin-left: 0;
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/account/center/components/ArticleListContent/index.tsx:
--------------------------------------------------------------------------------
1 | import { Avatar } from 'antd';
2 | import React from 'react';
3 | import moment from 'moment';
4 | import styles from './index.less';
5 |
6 | export type ApplicationsProps = {
7 | data: {
8 | content?: string;
9 | updatedAt?: any;
10 | avatar?: string;
11 | owner?: string;
12 | href?: string;
13 | };
14 | };
15 | const ArticleListContent: React.FC = ({
16 | data: { content, updatedAt, avatar, owner, href },
17 | }) => (
18 |
19 |
{content}
20 |
21 |
22 |
{owner} 发布在
{href}
23 |
{moment(updatedAt).format('YYYY-MM-DD HH:mm')}
24 |
25 |
26 | );
27 |
28 | export default ArticleListContent;
29 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/account/center/components/Articles/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .articleList {
4 | :global {
5 | .ant-list-item:first-child {
6 | padding-top: 0;
7 | }
8 | }
9 | }
10 | a.listItemMetaTitle {
11 | color: @heading-color;
12 | }
13 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/account/center/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { CurrentUser, ListItemDataType } from './data.d';
3 |
4 | export async function queryCurrent(): Promise<{ data: CurrentUser }> {
5 | return request('/api/currentUserDetail');
6 | }
7 |
8 | export async function queryFakeList(params: {
9 | count: number;
10 | }): Promise<{ data: { list: ListItemDataType[] } }> {
11 | return request('/api/fake_list_Detail', {
12 | params,
13 | });
14 | }
15 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/account/settings/data.d.ts:
--------------------------------------------------------------------------------
1 | export type TagType = {
2 | key: string;
3 | label: string;
4 | };
5 |
6 | export type GeographicItemType = {
7 | name: string;
8 | id: string;
9 | };
10 |
11 | export type GeographicType = {
12 | province: GeographicItemType;
13 | city: GeographicItemType;
14 | };
15 |
16 | export type NoticeType = {
17 | id: string;
18 | title: string;
19 | logo: string;
20 | description: string;
21 | updatedAt: string;
22 | member: string;
23 | href: string;
24 | memberLink: string;
25 | };
26 |
27 | export type CurrentUser = {
28 | name: string;
29 | avatar: string;
30 | userid: string;
31 | notice: NoticeType[];
32 | email: string;
33 | signature: string;
34 | title: string;
35 | group: string;
36 | tags: TagType[];
37 | notifyCount: number;
38 | unreadCount: number;
39 | country: string;
40 | geographic: GeographicType;
41 | address: string;
42 | phone: string;
43 | };
44 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/account/settings/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { CurrentUser, GeographicItemType } from './data';
3 |
4 | export async function queryCurrent(): Promise<{ data: CurrentUser }> {
5 | return request('/api/accountSettingCurrentUser');
6 | }
7 |
8 | export async function queryProvince(): Promise<{ data: GeographicItemType[] }> {
9 | return request('/api/geographic/province');
10 | }
11 |
12 | export async function queryCity(province: string): Promise<{ data: GeographicItemType[] }> {
13 | return request(`/api/geographic/city/${province}`);
14 | }
15 |
16 | export async function query() {
17 | return request('/api/users');
18 | }
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/components/Charts/Field/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .field {
4 | margin: 0;
5 | overflow: hidden;
6 | white-space: nowrap;
7 | text-overflow: ellipsis;
8 | .label,
9 | .number {
10 | font-size: @font-size-base;
11 | line-height: 22px;
12 | }
13 | .number {
14 | margin-left: 8px;
15 | color: @heading-color;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/components/Charts/Field/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styles from './index.less';
3 |
4 | export type FieldProps = {
5 | label: React.ReactNode;
6 | value: React.ReactNode;
7 | style?: React.CSSProperties;
8 | };
9 |
10 | const Field: React.FC = ({ label, value, ...rest }) => (
11 |
12 | {label}
13 | {value}
14 |
15 | );
16 |
17 | export default Field;
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/components/Charts/index.less:
--------------------------------------------------------------------------------
1 | .miniChart {
2 | position: relative;
3 | width: 100%;
4 | .chartContent {
5 | position: absolute;
6 | bottom: -28px;
7 | width: 100%;
8 | > div {
9 | margin: 0 -5px;
10 | overflow: hidden;
11 | }
12 | }
13 | .chartLoading {
14 | position: absolute;
15 | top: 16px;
16 | left: 50%;
17 | margin-left: -7px;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/components/Charts/index.tsx:
--------------------------------------------------------------------------------
1 | import numeral from 'numeral';
2 | import ChartCard from './ChartCard';
3 | import Field from './Field';
4 |
5 | const yuan = (val: number | string) => `¥ ${numeral(val).format('0,0')}`;
6 |
7 | const Charts = {
8 | yuan,
9 | ChartCard,
10 | Field,
11 | };
12 |
13 | export { Charts as default, yuan, ChartCard, Field };
14 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/components/PageLoading/index.tsx:
--------------------------------------------------------------------------------
1 | import { Spin } from 'antd';
2 |
3 | // loading components from code split
4 | // https://umijs.org/plugin/umi-plugin-react.html#dynamicimport
5 | export default () => (
6 |
7 |
8 |
9 | );
10 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/components/Trend/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .trendItem {
4 | display: inline-block;
5 | font-size: @font-size-base;
6 | line-height: 22px;
7 |
8 | .up,
9 | .down {
10 | position: relative;
11 | top: 1px;
12 | margin-left: 4px;
13 | span {
14 | font-size: 12px;
15 | transform: scale(0.83);
16 | }
17 | }
18 | .up {
19 | color: @red-6;
20 | }
21 | .down {
22 | top: -1px;
23 | color: @green-6;
24 | }
25 |
26 | &.trendItemGrey .up,
27 | &.trendItemGrey .down {
28 | color: @text-color;
29 | }
30 |
31 | &.reverseColor .up {
32 | color: @green-6;
33 | }
34 | &.reverseColor .down {
35 | color: @red-6;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { AnalysisData } from './data';
3 |
4 | export async function fakeChartData(): Promise<{ data: AnalysisData }> {
5 | return request('/api/fake_analysis_chart_data');
6 | }
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/analysis/utils/Yuan.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { yuan } from '../components/Charts';
3 | /** 减少使用 dangerouslySetInnerHTML */
4 | export default class Yuan extends React.Component<{
5 | children: React.ReactText;
6 | }> {
7 | main: HTMLSpanElement | undefined | null = null;
8 |
9 | componentDidMount() {
10 | this.renderToHtml();
11 | }
12 |
13 | componentDidUpdate() {
14 | this.renderToHtml();
15 | }
16 |
17 | renderToHtml = () => {
18 | const { children } = this.props;
19 | if (this.main) {
20 | this.main.innerHTML = yuan(children);
21 | }
22 | };
23 |
24 | render() {
25 | return (
26 | {
28 | this.main = ref;
29 | }}
30 | />
31 | );
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/monitor/_mock.ts:
--------------------------------------------------------------------------------
1 | import mockjs from 'mockjs';
2 | import type { Request, Response } from 'express';
3 |
4 | const getTags = (_: Request, res: Response) => {
5 | return res.json({
6 | data: mockjs.mock({
7 | 'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }],
8 | }),
9 | });
10 | };
11 |
12 | export default {
13 | 'GET /api/tags': getTags,
14 | };
15 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/monitor/data.d.ts:
--------------------------------------------------------------------------------
1 | export type TagType = {
2 | name: string;
3 | value: number;
4 | type: string;
5 | };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/monitor/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { TagType } from './data';
3 |
4 | export async function queryTags(): Promise<{ data: { list: TagType[] } }> {
5 | return request('/api/tags');
6 | }
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/monitor/style.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .mapChart {
4 | height: 452px;
5 | padding-top: 24px;
6 | img {
7 | display: inline-block;
8 | max-width: 100%;
9 | max-height: 437px;
10 | }
11 | }
12 |
13 | .pieCard :global(.pie-stat) {
14 | font-size: 24px !important;
15 | }
16 |
17 | @media screen and (max-width: @screen-lg) {
18 | .mapChart {
19 | height: auto;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/workplace/components/EditableLinkGroup/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .linkGroup {
4 | padding: 20px 0 8px 24px;
5 | font-size: 0;
6 | & > a {
7 | display: inline-block;
8 | width: 25%;
9 | margin-bottom: 13px;
10 | color: @text-color;
11 | font-size: @font-size-base;
12 | &:hover {
13 | color: @primary-color;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/dashboard/workplace/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { NoticeType, ActivitiesType, AnalysisData } from './data';
3 |
4 | export async function queryProjectNotice(): Promise<{ data: NoticeType[] }> {
5 | return request('/api/project/notice');
6 | }
7 |
8 | export async function queryActivities(): Promise<{ data: ActivitiesType[] }> {
9 | return request('/api/activities');
10 | }
11 |
12 | export async function fakeChartData(): Promise<{ data: AnalysisData }> {
13 | return request('/api/fake_workplace_chart_data');
14 | }
15 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/common/IconFont/index.ts:
--------------------------------------------------------------------------------
1 | import { createFromIconfontCN } from '@ant-design/icons';
2 |
3 | const IconFont = createFromIconfontCN({
4 | scriptUrl: 'https://at.alicdn.com/t/font_1101588_01zniftxm9yp.js',
5 | });
6 |
7 | export default IconFont;
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorContextMenu/KoniContextMenu.tsx:
--------------------------------------------------------------------------------
1 | import FlowContextMenu from './FlowContextMenu';
2 |
3 | export default FlowContextMenu;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorContextMenu/MenuItem.tsx:
--------------------------------------------------------------------------------
1 | import { Command } from 'gg-editor';
2 | import React from 'react';
3 | import IconFont from '../../common/IconFont';
4 | import styles from './index.less';
5 |
6 | const upperFirst = (str: string) =>
7 | str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
8 |
9 | type MenuItemProps = {
10 | command: string;
11 | icon?: string;
12 | text?: string;
13 | };
14 | const MenuItem: React.FC = (props) => {
15 | const { command, icon, text } = props;
16 |
17 | return (
18 |
19 |
20 |
21 | {text || upperFirst(command)}
22 |
23 |
24 | );
25 | };
26 |
27 | export default MenuItem;
28 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorContextMenu/MindContextMenu.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasMenu, ContextMenu, NodeMenu } from 'gg-editor';
2 |
3 | import MenuItem from './MenuItem';
4 | import styles from './index.less';
5 |
6 | const MindContextMenu = () => (
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 |
22 | export default MindContextMenu;
23 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorContextMenu/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .contextMenu {
4 | display: none;
5 | overflow: hidden;
6 | background: @component-background;
7 | border-radius: 4px;
8 | box-shadow: @box-shadow-base;
9 |
10 | .item {
11 | display: flex;
12 | align-items: center;
13 | padding: 5px 12px;
14 | cursor: pointer;
15 | transition: all 0.3s;
16 | user-select: none;
17 |
18 | &:hover {
19 | background: @select-item-selected-bg;
20 | }
21 |
22 | span.anticon {
23 | margin-right: 8px;
24 | }
25 | }
26 |
27 | :global {
28 | .disable {
29 | :local {
30 | .item {
31 | color: @disabled-color;
32 | cursor: auto;
33 |
34 | &:hover {
35 | background: @item-hover-bg;
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorContextMenu/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowContextMenu from './FlowContextMenu';
2 | import KoniContextMenu from './KoniContextMenu';
3 | import MindContextMenu from './MindContextMenu';
4 |
5 | export { FlowContextMenu, MindContextMenu, KoniContextMenu };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorDetailPanel/FlowDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasPanel, DetailPanel, EdgePanel, GroupPanel, MultiPanel, NodePanel } from 'gg-editor';
2 |
3 | import { Card } from 'antd';
4 | import DetailForm from './DetailForm';
5 | import styles from './index.less';
6 |
7 | const FlowDetailPanel = () => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | );
26 |
27 | export default FlowDetailPanel;
28 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorDetailPanel/KoniDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import FlowDetailPanel from './FlowDetailPanel';
2 |
3 | export default FlowDetailPanel;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorDetailPanel/MindDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasPanel, DetailPanel, NodePanel } from 'gg-editor';
2 |
3 | import { Card } from 'antd';
4 | import DetailForm from './DetailForm';
5 | import styles from './index.less';
6 |
7 | const MindDetailPanel = () => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | );
17 |
18 | export default MindDetailPanel;
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorDetailPanel/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .detailPanel {
4 | flex: 1;
5 | background-color: @component-background;
6 | }
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorDetailPanel/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowDetailPanel from './FlowDetailPanel';
2 | import KoniDetailPanel from './KoniDetailPanel';
3 | import MindDetailPanel from './MindDetailPanel';
4 |
5 | export { FlowDetailPanel, MindDetailPanel, KoniDetailPanel };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorItemPanel/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .itemPanel {
4 | flex: 1;
5 |
6 | :global {
7 | .ant-card {
8 | height: 100%;
9 | }
10 | .ant-card-body {
11 | display: flex;
12 | flex-direction: column;
13 | align-items: center;
14 | > div {
15 | margin-bottom: 16px;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorItemPanel/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowItemPanel from './FlowItemPanel';
2 | import KoniItemPanel from './KoniItemPanel';
3 |
4 | export { FlowItemPanel, KoniItemPanel };
5 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorMinimap/index.tsx:
--------------------------------------------------------------------------------
1 | import { Card } from 'antd';
2 | import { Minimap } from 'gg-editor';
3 |
4 | const EditorMinimap = () => (
5 |
6 |
7 |
8 | );
9 |
10 | export default EditorMinimap;
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorToolbar/KoniToolbar.tsx:
--------------------------------------------------------------------------------
1 | import FlowToolbar from './FlowToolbar';
2 |
3 | export default FlowToolbar;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorToolbar/ToolbarButton.tsx:
--------------------------------------------------------------------------------
1 | import { Command } from 'gg-editor';
2 | import React from 'react';
3 | import { Tooltip } from 'antd';
4 | import IconFont from '../../common/IconFont';
5 | import styles from './index.less';
6 |
7 | const upperFirst = (str: string) =>
8 | str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
9 |
10 | type ToolbarButtonProps = {
11 | command: string;
12 | icon?: string;
13 | text?: string;
14 | };
15 | const ToolbarButton: React.FC = (props) => {
16 | const { command, icon, text } = props;
17 |
18 | return (
19 |
20 |
25 |
26 |
27 |
28 | );
29 | };
30 |
31 | export default ToolbarButton;
32 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorToolbar/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .toolbar {
4 | display: flex;
5 | align-items: center;
6 |
7 | :global {
8 | .command .anticon {
9 | display: inline-block;
10 | width: 27px;
11 | height: 27px;
12 | margin: 0 6px;
13 | padding-top: 6px;
14 | text-align: center;
15 | cursor: pointer;
16 |
17 | &:hover {
18 | border: 1px solid @item-active-bg;
19 | }
20 | }
21 |
22 | .disable .anticon {
23 | color: @text-color-secondary;
24 | cursor: auto;
25 |
26 | &:hover {
27 | border: 1px solid @border-color-base;
28 | }
29 | }
30 | }
31 | }
32 |
33 | .tooltip {
34 | :global {
35 | .ant-tooltip-inner {
36 | font-size: 12px;
37 | border-radius: 0;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/components/EditorToolbar/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowToolbar from './FlowToolbar';
2 | import KoniToolbar from './KoniToolbar';
3 | import MindToolbar from './MindToolbar';
4 |
5 | export { FlowToolbar, MindToolbar, KoniToolbar };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/flow/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .editor {
4 | display: flex;
5 | flex: 1;
6 | flex-direction: column;
7 | width: 100%;
8 | height: calc(100vh - 250px);
9 | background: @component-background;
10 | }
11 |
12 | .editorHd {
13 | padding: 8px;
14 | background: @descriptions-bg;
15 | border: 1px solid @item-active-bg;
16 | }
17 |
18 | .editorBd {
19 | flex: 1;
20 | }
21 |
22 | .editorSidebar,
23 | .editorContent {
24 | display: flex;
25 | flex-direction: column;
26 | }
27 |
28 | .editorSidebar {
29 | background: @descriptions-bg;
30 | :global {
31 | .g6-editor-minimap-container {
32 | background: none !important ;
33 | }
34 | }
35 | &:first-child {
36 | border-right: 1px solid @item-active-bg;
37 | }
38 |
39 | &:last-child {
40 | border-left: 1px solid @item-active-bg;
41 | }
42 | }
43 |
44 | .flow,
45 | .mind,
46 | .koni {
47 | flex: 1;
48 | }
49 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/common/IconFont/index.ts:
--------------------------------------------------------------------------------
1 | import { createFromIconfontCN } from '@ant-design/icons';
2 |
3 | const IconFont = createFromIconfontCN({
4 | scriptUrl: 'https://at.alicdn.com/t/font_1101588_01zniftxm9yp.js',
5 | });
6 |
7 | export default IconFont;
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorContextMenu/KoniContextMenu.tsx:
--------------------------------------------------------------------------------
1 | import FlowContextMenu from './FlowContextMenu';
2 |
3 | export default FlowContextMenu;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorContextMenu/MenuItem.tsx:
--------------------------------------------------------------------------------
1 | import { Command } from 'gg-editor';
2 | import React from 'react';
3 | import IconFont from '../../common/IconFont';
4 | import styles from './index.less';
5 |
6 | const upperFirst = (str: string) =>
7 | str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
8 |
9 | type MenuItemProps = {
10 | command: string;
11 | icon?: string;
12 | text?: string;
13 | };
14 | const MenuItem: React.FC = (props) => {
15 | const { command, icon, text } = props;
16 |
17 | return (
18 |
19 |
20 |
21 | {text || upperFirst(command)}
22 |
23 |
24 | );
25 | };
26 |
27 | export default MenuItem;
28 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorContextMenu/MindContextMenu.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasMenu, ContextMenu, NodeMenu } from 'gg-editor';
2 |
3 | import MenuItem from './MenuItem';
4 | import styles from './index.less';
5 |
6 | const MindContextMenu = () => (
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 |
22 | export default MindContextMenu;
23 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorContextMenu/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .contextMenu {
4 | display: none;
5 | overflow: hidden;
6 | background: @component-background;
7 | border-radius: 4px;
8 | box-shadow: @box-shadow-base;
9 | .item {
10 | display: flex;
11 | align-items: center;
12 | padding: 5px 12px;
13 | cursor: pointer;
14 | transition: all 0.3s;
15 | user-select: none;
16 |
17 | &:hover {
18 | background: @select-item-selected-bg;
19 | }
20 |
21 | .anticon {
22 | margin-right: 8px;
23 | }
24 | }
25 |
26 | :global {
27 | .disable {
28 | :local {
29 | .item {
30 | color: @disabled-color;
31 | cursor: auto;
32 |
33 | &:hover {
34 | background: @item-hover-bg;
35 | }
36 | }
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorContextMenu/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowContextMenu from './FlowContextMenu';
2 | import KoniContextMenu from './KoniContextMenu';
3 | import MindContextMenu from './MindContextMenu';
4 |
5 | export { FlowContextMenu, MindContextMenu, KoniContextMenu };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorDetailPanel/FlowDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasPanel, DetailPanel, EdgePanel, GroupPanel, MultiPanel, NodePanel } from 'gg-editor';
2 |
3 | import { Card } from 'antd';
4 | import DetailForm from './DetailForm';
5 | import styles from './index.less';
6 |
7 | const FlowDetailPanel = () => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | );
26 |
27 | export default FlowDetailPanel;
28 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorDetailPanel/KoniDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import FlowDetailPanel from './FlowDetailPanel';
2 |
3 | export default FlowDetailPanel;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorDetailPanel/MindDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasPanel, DetailPanel, NodePanel } from 'gg-editor';
2 |
3 | import { Card } from 'antd';
4 | import DetailForm from './DetailForm';
5 | import styles from './index.less';
6 |
7 | const MindDetailPanel = () => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | );
17 |
18 | export default MindDetailPanel;
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorDetailPanel/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .detailPanel {
4 | flex: 1;
5 | background-color: @component-background;
6 | }
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorDetailPanel/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowDetailPanel from './FlowDetailPanel';
2 | import KoniDetailPanel from './KoniDetailPanel';
3 | import MindDetailPanel from './MindDetailPanel';
4 |
5 | export { FlowDetailPanel, MindDetailPanel, KoniDetailPanel };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorItemPanel/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .itemPanel {
4 | flex: 1;
5 |
6 | :global {
7 | .ant-card {
8 | height: 100%;
9 | }
10 | .ant-card-body {
11 | display: flex;
12 | flex-direction: column;
13 | align-items: center;
14 | > div {
15 | margin-bottom: 16px;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorItemPanel/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowItemPanel from './FlowItemPanel';
2 | import KoniItemPanel from './KoniItemPanel';
3 |
4 | export { FlowItemPanel, KoniItemPanel };
5 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorMinimap/index.tsx:
--------------------------------------------------------------------------------
1 | import { Card } from 'antd';
2 | import { Minimap } from 'gg-editor';
3 |
4 | const EditorMinimap = () => (
5 |
6 |
7 |
8 | );
9 |
10 | export default EditorMinimap;
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorToolbar/KoniToolbar.tsx:
--------------------------------------------------------------------------------
1 | import FlowToolbar from './FlowToolbar';
2 |
3 | export default FlowToolbar;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorToolbar/ToolbarButton.tsx:
--------------------------------------------------------------------------------
1 | import { Command } from 'gg-editor';
2 | import React from 'react';
3 | import { Tooltip } from 'antd';
4 | import IconFont from '../../common/IconFont';
5 | import styles from './index.less';
6 |
7 | const upperFirst = (str: string) =>
8 | str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
9 |
10 | type ToolbarButtonProps = {
11 | command: string;
12 | icon?: string;
13 | text?: string;
14 | };
15 | const ToolbarButton: React.FC = (props) => {
16 | const { command, icon, text } = props;
17 |
18 | return (
19 |
20 |
25 |
26 |
27 |
28 | );
29 | };
30 |
31 | export default ToolbarButton;
32 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorToolbar/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .toolbar {
4 | display: flex;
5 | align-items: center;
6 | :global {
7 | .command .anticon {
8 | display: inline-block;
9 | width: 27px;
10 | height: 27px;
11 | margin: 0 6px;
12 | padding-top: 6px;
13 | text-align: center;
14 | cursor: pointer;
15 |
16 | &:hover {
17 | border: 1px solid @item-active-bg;
18 | }
19 | }
20 |
21 | .disable .anticon {
22 | color: @text-color-secondary;
23 | cursor: auto;
24 |
25 | &:hover {
26 | border: 1px solid @border-color-base;
27 | }
28 | }
29 | }
30 | }
31 |
32 | .tooltip {
33 | :global {
34 | .ant-tooltip-inner {
35 | font-size: 12px;
36 | border-radius: 0;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/koni/components/EditorToolbar/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowToolbar from './FlowToolbar';
2 | import KoniToolbar from './KoniToolbar';
3 | import MindToolbar from './MindToolbar';
4 |
5 | export { FlowToolbar, MindToolbar, KoniToolbar };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/common/IconFont/index.ts:
--------------------------------------------------------------------------------
1 | import { createFromIconfontCN } from '@ant-design/icons';
2 |
3 | const IconFont = createFromIconfontCN({
4 | scriptUrl: 'https://at.alicdn.com/t/font_1101588_01zniftxm9yp.js',
5 | });
6 |
7 | export default IconFont;
8 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorContextMenu/KoniContextMenu.tsx:
--------------------------------------------------------------------------------
1 | import FlowContextMenu from './FlowContextMenu';
2 |
3 | export default FlowContextMenu;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorContextMenu/MenuItem.tsx:
--------------------------------------------------------------------------------
1 | import { Command } from 'gg-editor';
2 | import React from 'react';
3 | import IconFont from '../../common/IconFont';
4 | import styles from './index.less';
5 |
6 | const upperFirst = (str: string) =>
7 | str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
8 |
9 | type MenuItemProps = {
10 | command: string;
11 | icon?: string;
12 | text?: string;
13 | };
14 | const MenuItem: React.FC = (props) => {
15 | const { command, icon, text } = props;
16 |
17 | return (
18 |
19 |
20 |
21 | {text || upperFirst(command)}
22 |
23 |
24 | );
25 | };
26 |
27 | export default MenuItem;
28 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorContextMenu/MindContextMenu.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasMenu, ContextMenu, NodeMenu } from 'gg-editor';
2 |
3 | import MenuItem from './MenuItem';
4 | import styles from './index.less';
5 |
6 | const MindContextMenu = () => (
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 |
22 | export default MindContextMenu;
23 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorContextMenu/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .contextMenu {
4 | display: none;
5 | overflow: hidden;
6 | background: @component-background;
7 | border-radius: 4px;
8 | box-shadow: @box-shadow-base;
9 | .item {
10 | display: flex;
11 | align-items: center;
12 | padding: 5px 12px;
13 | cursor: pointer;
14 | transition: all 0.3s;
15 | user-select: none;
16 |
17 | &:hover {
18 | background: @select-item-selected-bg;
19 | }
20 |
21 | .anticon {
22 | margin-right: 8px;
23 | }
24 | }
25 |
26 | :global {
27 | .disable {
28 | :local {
29 | .item {
30 | color: @disabled-color;
31 | cursor: auto;
32 |
33 | &:hover {
34 | background: @item-hover-bg;
35 | }
36 | }
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorContextMenu/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowContextMenu from './FlowContextMenu';
2 | import KoniContextMenu from './KoniContextMenu';
3 | import MindContextMenu from './MindContextMenu';
4 |
5 | export { FlowContextMenu, MindContextMenu, KoniContextMenu };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorDetailPanel/FlowDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasPanel, DetailPanel, EdgePanel, GroupPanel, MultiPanel, NodePanel } from 'gg-editor';
2 |
3 | import { Card } from 'antd';
4 | import DetailForm from './DetailForm';
5 | import styles from './index.less';
6 |
7 | const FlowDetailPanel = () => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | );
26 |
27 | export default FlowDetailPanel;
28 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorDetailPanel/KoniDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import FlowDetailPanel from './FlowDetailPanel';
2 |
3 | export default FlowDetailPanel;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorDetailPanel/MindDetailPanel.tsx:
--------------------------------------------------------------------------------
1 | import { CanvasPanel, DetailPanel, NodePanel } from 'gg-editor';
2 |
3 | import { Card } from 'antd';
4 | import DetailForm from './DetailForm';
5 | import styles from './index.less';
6 |
7 | const MindDetailPanel = () => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | );
17 |
18 | export default MindDetailPanel;
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorDetailPanel/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .detailPanel {
4 | flex: 1;
5 | background-color: @component-background;
6 | }
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorDetailPanel/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowDetailPanel from './FlowDetailPanel';
2 | import KoniDetailPanel from './KoniDetailPanel';
3 | import MindDetailPanel from './MindDetailPanel';
4 |
5 | export { FlowDetailPanel, MindDetailPanel, KoniDetailPanel };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorItemPanel/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .itemPanel {
4 | flex: 1;
5 |
6 | :global {
7 | .ant-card {
8 | height: 100%;
9 | }
10 | .ant-card-body {
11 | display: flex;
12 | flex-direction: column;
13 | align-items: center;
14 | > div {
15 | margin-bottom: 16px;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorItemPanel/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowItemPanel from './FlowItemPanel';
2 | import KoniItemPanel from './KoniItemPanel';
3 |
4 | export { FlowItemPanel, KoniItemPanel };
5 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorMinimap/index.tsx:
--------------------------------------------------------------------------------
1 | import { Card } from 'antd';
2 | import { Minimap } from 'gg-editor';
3 |
4 | const EditorMinimap = () => (
5 |
6 |
7 |
8 | );
9 |
10 | export default EditorMinimap;
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorToolbar/KoniToolbar.tsx:
--------------------------------------------------------------------------------
1 | import FlowToolbar from './FlowToolbar';
2 |
3 | export default FlowToolbar;
4 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorToolbar/ToolbarButton.tsx:
--------------------------------------------------------------------------------
1 | import { Command } from 'gg-editor';
2 | import React from 'react';
3 | import { Tooltip } from 'antd';
4 | import IconFont from '../../common/IconFont';
5 | import styles from './index.less';
6 |
7 | const upperFirst = (str: string) =>
8 | str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
9 |
10 | type ToolbarButtonProps = {
11 | command: string;
12 | icon?: string;
13 | text?: string;
14 | };
15 | const ToolbarButton: React.FC = (props) => {
16 | const { command, icon, text } = props;
17 |
18 | return (
19 |
20 |
25 |
26 |
27 |
28 | );
29 | };
30 |
31 | export default ToolbarButton;
32 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorToolbar/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .toolbar {
4 | display: flex;
5 | align-items: center;
6 |
7 | :global {
8 | .command .anticon {
9 | display: inline-block;
10 | width: 27px;
11 | height: 27px;
12 | margin: 0 6px;
13 | padding-top: 6px;
14 | text-align: center;
15 | cursor: pointer;
16 |
17 | &:hover {
18 | border: 1px solid @item-active-bg;
19 | }
20 | }
21 |
22 | .disable .anticon {
23 | color: @text-color-secondary;
24 | cursor: auto;
25 |
26 | &:hover {
27 | border: 1px solid @border-color-base;
28 | }
29 | }
30 | }
31 | }
32 |
33 | .tooltip {
34 | :global {
35 | .ant-tooltip-inner {
36 | font-size: 12px;
37 | border-radius: 0;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/editor/mind/components/EditorToolbar/index.tsx:
--------------------------------------------------------------------------------
1 | import FlowToolbar from './FlowToolbar';
2 | import KoniToolbar from './KoniToolbar';
3 | import MindToolbar from './MindToolbar';
4 |
5 | export { FlowToolbar, MindToolbar, KoniToolbar };
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/exception/403/index.tsx:
--------------------------------------------------------------------------------
1 | import { Link } from 'umi';
2 | import { Result, Button } from 'antd';
3 |
4 | export default () => (
5 |
14 |
15 |
16 | }
17 | />
18 | );
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/exception/404/index.tsx:
--------------------------------------------------------------------------------
1 | import { Link } from 'umi';
2 | import { Result, Button } from 'antd';
3 |
4 | export default () => (
5 |
14 |
15 |
16 | }
17 | />
18 | );
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/exception/500/index.tsx:
--------------------------------------------------------------------------------
1 | import { Link } from 'umi';
2 | import { Result, Button } from 'antd';
3 |
4 | export default () => (
5 |
14 |
15 |
16 | }
17 | />
18 | );
19 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/advanced-form/_mock.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line import/no-extraneous-dependencies
2 | import type { Request, Response } from 'express';
3 |
4 | export default {
5 | 'POST /api/advancedForm': (_: Request, res: Response) => {
6 | res.send({ data: { message: 'Ok' } });
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/advanced-form/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 |
3 | export async function fakeSubmitForm(params: any) {
4 | return request('/api/advancedForm', {
5 | method: 'POST',
6 | data: params,
7 | });
8 | }
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/basic-form/_mock.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line import/no-extraneous-dependencies
2 | import type { Request, Response } from 'express';
3 |
4 | export default {
5 | 'POST /api/basicForm': (_: Request, res: Response) => {
6 | res.send({ data: { message: 'Ok' } });
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/basic-form/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 |
3 | export async function fakeSubmitForm(params: any) {
4 | return request('/api/basicForm', {
5 | method: 'POST',
6 | data: params,
7 | });
8 | }
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/basic-form/style.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .optional {
4 | color: @text-color-secondary;
5 | font-style: normal;
6 | }
7 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/step-form/_mock.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line import/no-extraneous-dependencies
2 | import type { Request, Response } from 'express';
3 |
4 | export default {
5 | 'POST /api/stepForm': (_: Request, res: Response) => {
6 | res.send({ data: { message: 'Ok' } });
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/step-form/data.d.ts:
--------------------------------------------------------------------------------
1 | export interface StepDataType {
2 | payAccount: string;
3 | receiverAccount: string;
4 | receiverName: string;
5 | amount: string;
6 | receiverMode: string;
7 | }
8 |
9 | export type CurrentTypes = 'base' | 'confirm' | 'result';
10 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/step-form/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 |
3 | export async function fakeSubmitForm(params: any) {
4 | return request('/api/stepForm', {
5 | method: 'POST',
6 | data: params,
7 | });
8 | }
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/form/step-form/style.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .card {
4 | margin-bottom: 24px;
5 | }
6 |
7 | .result {
8 | max-width: 560px;
9 | margin: 0 auto;
10 | padding: 24px 0 8px;
11 | }
12 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/basic-list/data.d.ts:
--------------------------------------------------------------------------------
1 | export type Member = {
2 | avatar: string;
3 | name: string;
4 | id: string;
5 | };
6 |
7 | export type BasicListItemDataType = {
8 | id: string;
9 | owner: string;
10 | title: string;
11 | avatar: string;
12 | cover: string;
13 | status: 'normal' | 'exception' | 'active' | 'success';
14 | percent: number;
15 | logo: string;
16 | href: string;
17 | body?: any;
18 | updatedAt: number;
19 | createdAt: number;
20 | subDescription: string;
21 | description: string;
22 | activeUser: number;
23 | newUser: number;
24 | star: number;
25 | like: number;
26 | message: number;
27 | content: string;
28 | members: Member[];
29 | };
30 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/card-list/data.d.ts:
--------------------------------------------------------------------------------
1 | export type Member = {
2 | avatar: string;
3 | name: string;
4 | id: string;
5 | };
6 |
7 | export type CardListItemDataType = {
8 | id: string;
9 | owner: string;
10 | title: string;
11 | avatar: string;
12 | cover: string;
13 | status: 'normal' | 'exception' | 'active' | 'success';
14 | percent: number;
15 | logo: string;
16 | href: string;
17 | body?: any;
18 | updatedAt: number;
19 | createdAt: number;
20 | subDescription: string;
21 | description: string;
22 | activeUser: number;
23 | newUser: number;
24 | star: number;
25 | like: number;
26 | message: number;
27 | content: string;
28 | members: Member[];
29 | };
30 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/card-list/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { CardListItemDataType } from './data.d';
3 |
4 | export async function queryFakeList(params: {
5 | count: number;
6 | }): Promise<{ data: { list: CardListItemDataType[] } }> {
7 | return request('/api/card_fake_list', {
8 | params,
9 | });
10 | }
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/applications/components/TagSelect/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .tagSelect {
4 | position: relative;
5 | max-height: 32px;
6 | margin-left: -8px;
7 | overflow: hidden;
8 | line-height: 32px;
9 | transition: all 0.3s;
10 | user-select: none;
11 | :global {
12 | .ant-tag {
13 | margin-right: 24px;
14 | padding: 0 8px;
15 | font-size: @font-size-base;
16 | }
17 | }
18 | &.expanded {
19 | max-height: 200px;
20 | transition: all 0.3s;
21 | }
22 | .trigger {
23 | position: absolute;
24 | top: 0;
25 | right: 0;
26 |
27 | span.anticon {
28 | font-size: 12px;
29 | }
30 | }
31 | &.hasExpandTag {
32 | padding-right: 50px;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/applications/data.d.ts:
--------------------------------------------------------------------------------
1 | export type Member = {
2 | avatar: string;
3 | name: string;
4 | id: string;
5 | };
6 |
7 | export interface Params {
8 | count: number;
9 | }
10 |
11 | export interface ListItemDataType {
12 | id: string;
13 | owner: string;
14 | title: string;
15 | avatar: string;
16 | cover: string;
17 | status: 'normal' | 'exception' | 'active' | 'success';
18 | percent: number;
19 | logo: string;
20 | href: string;
21 | body?: any;
22 | updatedAt: number;
23 | createdAt: number;
24 | subDescription: string;
25 | description: string;
26 | activeUser: number;
27 | newUser: number;
28 | star: number;
29 | like: number;
30 | message: number;
31 | content: string;
32 | members: Member[];
33 | }
34 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/applications/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { Params, ListItemDataType } from './data.d';
3 |
4 | export async function queryFakeList(
5 | params: Params,
6 | ): Promise<{ data: { list: ListItemDataType[] } }> {
7 | return request('/api/fake_list', {
8 | params,
9 | });
10 | }
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/components/ArticleListContent/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .listContent {
4 | .description {
5 | max-width: 720px;
6 | line-height: 22px;
7 | }
8 | .extra {
9 | margin-top: 16px;
10 | color: @text-color-secondary;
11 | line-height: 22px;
12 | & > :global(.ant-avatar) {
13 | position: relative;
14 | top: 1px;
15 | width: 20px;
16 | height: 20px;
17 | margin-right: 8px;
18 | vertical-align: top;
19 | }
20 | & > em {
21 | margin-left: 16px;
22 | color: @disabled-color;
23 | font-style: normal;
24 | }
25 | }
26 | }
27 |
28 | @media screen and (max-width: @screen-xs) {
29 | .listContent {
30 | .extra {
31 | & > em {
32 | display: block;
33 | margin-top: 8px;
34 | margin-left: 0;
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/components/ArticleListContent/index.tsx:
--------------------------------------------------------------------------------
1 | import { Avatar } from 'antd';
2 | import React from 'react';
3 | import moment from 'moment';
4 | import styles from './index.less';
5 |
6 | type ArticleListContentProps = {
7 | data: {
8 | content: React.ReactNode;
9 | updatedAt: number;
10 | avatar: string;
11 | owner: string;
12 | href: string;
13 | };
14 | };
15 |
16 | const ArticleListContent: React.FC = ({
17 | data: { content, updatedAt, avatar, owner, href },
18 | }) => (
19 |
20 |
{content}
21 |
22 |
23 |
{owner} 发布在
{href}
24 |
{moment(updatedAt).format('YYYY-MM-DD HH:mm')}
25 |
26 |
27 | );
28 |
29 | export default ArticleListContent;
30 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/components/StandardFormRow/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import classNames from 'classnames';
3 | import styles from './index.less';
4 |
5 | type StandardFormRowProps = {
6 | title?: string;
7 | last?: boolean;
8 | block?: boolean;
9 | grid?: boolean;
10 | style?: React.CSSProperties;
11 | };
12 |
13 | const StandardFormRow: React.FC = ({
14 | title,
15 | children,
16 | last,
17 | block,
18 | grid,
19 | ...rest
20 | }) => {
21 | const cls = classNames(styles.standardFormRow, {
22 | [styles.standardFormRowBlock]: block,
23 | [styles.standardFormRowLast]: last,
24 | [styles.standardFormRowGrid]: grid,
25 | });
26 |
27 | return (
28 |
29 | {title && (
30 |
31 | {title}
32 |
33 | )}
34 |
{children}
35 |
36 | );
37 | };
38 |
39 | export default StandardFormRow;
40 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/components/TagSelect/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .tagSelect {
4 | position: relative;
5 | max-height: 32px;
6 | margin-left: -8px;
7 | overflow: hidden;
8 | line-height: 32px;
9 | transition: all 0.3s;
10 | user-select: none;
11 | :global {
12 | .ant-tag {
13 | margin-right: 24px;
14 | padding: 0 8px;
15 | font-size: @font-size-base;
16 | }
17 | }
18 | &.expanded {
19 | max-height: 200px;
20 | transition: all 0.3s;
21 | }
22 | .trigger {
23 | position: absolute;
24 | top: 0;
25 | right: 0;
26 | span.anticon {
27 | font-size: 12px;
28 | }
29 | }
30 | &.hasExpandTag {
31 | padding-right: 50px;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/data.d.ts:
--------------------------------------------------------------------------------
1 | export type Member = {
2 | avatar: string;
3 | name: string;
4 | id: string;
5 | };
6 |
7 | export interface Params {
8 | count: number;
9 | }
10 | export interface ListItemDataType {
11 | id: string;
12 | owner: string;
13 | title: string;
14 | avatar: string;
15 | cover: string;
16 | status: 'normal' | 'exception' | 'active' | 'success';
17 | percent: number;
18 | logo: string;
19 | href: string;
20 | body?: any;
21 | updatedAt: number;
22 | createdAt: number;
23 | subDescription: string;
24 | description: string;
25 | activeUser: number;
26 | newUser: number;
27 | star: number;
28 | like: number;
29 | message: number;
30 | content: string;
31 | members: Member[];
32 | }
33 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { Params, ListItemDataType } from './data.d';
3 |
4 | export async function queryFakeList(
5 | params: Params,
6 | ): Promise<{ data: { list: ListItemDataType[] } }> {
7 | return request('/api/fake_list', {
8 | params,
9 | });
10 | }
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/articles/style.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | a.listItemMetaTitle {
4 | color: @heading-color;
5 | }
6 | .listItemExtra {
7 | width: 272px;
8 | height: 1px;
9 | }
10 | .selfTrigger {
11 | margin-left: 12px;
12 | }
13 |
14 | @media screen and (max-width: @screen-xs) {
15 | .selfTrigger {
16 | display: block;
17 | margin-left: 0;
18 | }
19 | }
20 | @media screen and (max-width: @screen-md) {
21 | .selfTrigger {
22 | display: block;
23 | margin-left: 0;
24 | }
25 | }
26 | @media screen and (max-width: @screen-lg) {
27 | .listItemExtra {
28 | width: 0;
29 | height: 1px;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/projects/components/TagSelect/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .tagSelect {
4 | position: relative;
5 | max-height: 32px;
6 | margin-left: -8px;
7 | overflow: hidden;
8 | line-height: 32px;
9 | transition: all 0.3s;
10 | user-select: none;
11 | :global {
12 | .ant-tag {
13 | margin-right: 24px;
14 | padding: 0 8px;
15 | font-size: @font-size-base;
16 | }
17 | }
18 | &.expanded {
19 | max-height: 200px;
20 | transition: all 0.3s;
21 | }
22 | .trigger {
23 | position: absolute;
24 | top: 0;
25 | right: 0;
26 | span.anticon {
27 | font-size: 12px;
28 | }
29 | }
30 | &.hasExpandTag {
31 | padding-right: 50px;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/projects/data.d.ts:
--------------------------------------------------------------------------------
1 | export type Member = {
2 | avatar: string;
3 | name: string;
4 | id: string;
5 | };
6 |
7 | export interface Params {
8 | count: number;
9 | }
10 | export interface ListItemDataType {
11 | id: string;
12 | owner: string;
13 | title: string;
14 | avatar: string;
15 | cover: string;
16 | status: 'normal' | 'exception' | 'active' | 'success';
17 | percent: number;
18 | logo: string;
19 | href: string;
20 | body?: any;
21 | updatedAt: number;
22 | createdAt: number;
23 | subDescription: string;
24 | description: string;
25 | activeUser: number;
26 | newUser: number;
27 | star: number;
28 | like: number;
29 | message: number;
30 | content: string;
31 | members: Member[];
32 | }
33 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/search/projects/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { Params, ListItemDataType } from './data';
3 |
4 | export async function queryFakeList(
5 | params: Params,
6 | ): Promise<{ data: { list: ListItemDataType[] } }> {
7 | return request('/api/fake_list', {
8 | params,
9 | });
10 | }
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/table-list/components/CreateForm.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Modal } from 'antd';
3 |
4 | type CreateFormProps = {
5 | modalVisible: boolean;
6 | onCancel: () => void;
7 | };
8 |
9 | const CreateForm: React.FC = (props) => {
10 | const { modalVisible, onCancel } = props;
11 |
12 | return (
13 | onCancel()}
18 | footer={null}
19 | >
20 | {props.children}
21 |
22 | );
23 | };
24 |
25 | export default CreateForm;
26 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/list/table-list/data.d.ts:
--------------------------------------------------------------------------------
1 | export type TableListItem = {
2 | key: number;
3 | disabled?: boolean;
4 | href: string;
5 | avatar: string;
6 | name: string;
7 | owner: string;
8 | desc: string;
9 | callNo: number;
10 | status: string;
11 | updatedAt: Date;
12 | createdAt: Date;
13 | progress: number;
14 | };
15 |
16 | export type TableListPagination = {
17 | total: number;
18 | pageSize: number;
19 | current: number;
20 | };
21 |
22 | export type TableListData = {
23 | list: TableListItem[];
24 | pagination: Partial;
25 | };
26 |
27 | export type TableListParams = {
28 | status?: string;
29 | name?: string;
30 | desc?: string;
31 | key?: number;
32 | pageSize?: number;
33 | currentPage?: number;
34 | filter?: Record;
35 | sorter?: Record;
36 | };
37 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/profile/advanced/data.d.ts:
--------------------------------------------------------------------------------
1 | export type AdvancedOperation1 = {
2 | key: string;
3 | type: string;
4 | name: string;
5 | status: string;
6 | updatedAt: string;
7 | memo: string;
8 | };
9 |
10 | export type AdvancedOperation2 = {
11 | key: string;
12 | type: string;
13 | name: string;
14 | status: string;
15 | updatedAt: string;
16 | memo: string;
17 | };
18 |
19 | export type AdvancedOperation3 = {
20 | key: string;
21 | type: string;
22 | name: string;
23 | status: string;
24 | updatedAt: string;
25 | memo: string;
26 | };
27 |
28 | export interface AdvancedProfileData {
29 | advancedOperation1?: AdvancedOperation1[];
30 | advancedOperation2?: AdvancedOperation2[];
31 | advancedOperation3?: AdvancedOperation3[];
32 | }
33 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/profile/advanced/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 |
3 | export async function queryAdvancedProfile() {
4 | return request('/api/profile/advanced');
5 | }
6 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/profile/basic/data.d.ts:
--------------------------------------------------------------------------------
1 | export type BasicGood = {
2 | id: string;
3 | name?: string;
4 | barcode?: string;
5 | price?: string;
6 | num?: string | number;
7 | amount?: string | number;
8 | };
9 |
10 | export type BasicProgress = {
11 | key: string;
12 | time: string;
13 | rate: string;
14 | status: string;
15 | operator: string;
16 | cost: string;
17 | };
18 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/profile/basic/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 | import type { BasicGood, BasicProgress } from './data.d';
3 |
4 | export async function queryBasicProfile(): Promise<{
5 | data: {
6 | basicProgress: BasicProgress[];
7 | basicGoods: BasicGood[];
8 | };
9 | }> {
10 | return request('/api/profile/basic');
11 | }
12 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/profile/basic/style.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .title {
4 | margin-bottom: 16px;
5 | color: @heading-color;
6 | font-weight: 500;
7 | font-size: 16px;
8 | }
9 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/result/fail/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .error_icon {
4 | color: @highlight-color;
5 | }
6 | .title {
7 | margin-bottom: 16px;
8 | color: @heading-color;
9 | font-weight: 500;
10 | font-size: 16px;
11 | }
12 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/result/success/index.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .title {
4 | position: relative;
5 | color: @text-color;
6 | font-size: 12px;
7 | text-align: center;
8 | }
9 |
10 | .head-title {
11 | margin-bottom: 20px;
12 | color: @heading-color;
13 | font-weight: 500px;
14 | font-size: 16px;
15 | }
16 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/user/register-result/style.less:
--------------------------------------------------------------------------------
1 | .registerResult {
2 | width: 800px;
3 | min-height: 400px;
4 | margin: auto;
5 | padding: 80px;
6 | background: none;
7 | :global {
8 | .anticon {
9 | font-size: 64px;
10 | }
11 | }
12 | .title {
13 | margin-top: 32px;
14 | font-size: 20px;
15 | line-height: 28px;
16 | }
17 | .actions {
18 | margin-top: 40px;
19 | a + a {
20 | margin-left: 8px;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/user/register/_mock.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line import/no-extraneous-dependencies
2 | import type { Request, Response } from 'express';
3 |
4 | export default {
5 | 'POST /api/register': (_: Request, res: Response) => {
6 | res.send({
7 | data: { status: 'ok', currentAuthority: 'user' },
8 | });
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/user/register/service.ts:
--------------------------------------------------------------------------------
1 | import { request } from 'umi';
2 |
3 | export interface StateType {
4 | status?: 'ok' | 'error';
5 | currentAuthority?: 'user' | 'guest' | 'admin';
6 | }
7 |
8 | export interface UserRegisterParams {
9 | mail: string;
10 | password: string;
11 | confirm: string;
12 | mobile: string;
13 | captcha: string;
14 | prefix: string;
15 | }
16 |
17 | export async function fakeRegister(params: UserRegisterParams) {
18 | return request('/api/register', {
19 | method: 'POST',
20 | data: params,
21 | });
22 | }
23 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/pages/user/register/style.less:
--------------------------------------------------------------------------------
1 | @import '~antd/es/style/themes/default.less';
2 |
3 | .main {
4 | width: 368px;
5 | margin: 0 auto;
6 |
7 | h3 {
8 | margin-bottom: 20px;
9 | font-size: 16px;
10 | }
11 |
12 | .password {
13 | margin-bottom: 24px;
14 | :global {
15 | .ant-form-item-explain {
16 | display: none;
17 | }
18 | }
19 | }
20 |
21 | .getCaptcha {
22 | display: block;
23 | width: 100%;
24 | }
25 |
26 | .submit {
27 | width: 50%;
28 | }
29 |
30 | .login {
31 | float: right;
32 | line-height: @btn-height-lg;
33 | }
34 | }
35 |
36 | .success,
37 | .warning,
38 | .error {
39 | transition: color 0.3s;
40 | }
41 |
42 | .success {
43 | color: @success-color;
44 | }
45 |
46 | .warning {
47 | color: @warning-color;
48 | }
49 |
50 | .error {
51 | color: @error-color;
52 | }
53 |
54 | .progress-pass > .progress {
55 | :global {
56 | .ant-progress-bg {
57 | background-color: @warning-color;
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/services/ant-design-pro/index.ts:
--------------------------------------------------------------------------------
1 | // @ts-ignore
2 | /* eslint-disable */
3 | // API 更新时间:
4 | // API 唯一标识:
5 | import * as api from './api';
6 | import * as login from './login';
7 | export default {
8 | api,
9 | login,
10 | };
11 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/services/ant-design-pro/login.ts:
--------------------------------------------------------------------------------
1 | // @ts-ignore
2 | /* eslint-disable */
3 | import { request } from 'umi';
4 |
5 | /** 发送验证码 POST /api/login/captcha */
6 | export async function getFakeCaptcha(
7 | params: {
8 | // query
9 | /** 手机号 */
10 | phone?: string;
11 | },
12 | options?: { [key: string]: any },
13 | ) {
14 | return request('/api/login/captcha', {
15 | method: 'GET',
16 | params: {
17 | ...params,
18 | },
19 | ...(options || {}),
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/services/swagger/index.ts:
--------------------------------------------------------------------------------
1 | // @ts-ignore
2 | /* eslint-disable */
3 | // API 更新时间:
4 | // API 唯一标识:
5 | import * as pet from './pet';
6 | import * as store from './store';
7 | import * as user from './user';
8 | export default {
9 | pet,
10 | store,
11 | user,
12 | };
13 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/src/typings.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'slash2';
2 | declare module '*.css';
3 | declare module '*.less';
4 | declare module '*.scss';
5 | declare module '*.sass';
6 | declare module '*.svg';
7 | declare module '*.png';
8 | declare module '*.jpg';
9 | declare module '*.jpeg';
10 | declare module '*.gif';
11 | declare module '*.bmp';
12 | declare module '*.tiff';
13 | declare module 'omit.js';
14 | declare module 'numeral';
15 | declare module '@antv/data-set';
16 | declare module 'mockjs';
17 | declare module 'react-fittext';
18 | declare module 'bizcharts-plugin-slider';
19 |
20 | // preview.pro.ant.design only do not use in your production ;
21 | // preview.pro.ant.design Dedicated environment variable, please do not use it in your project.
22 | declare let ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: 'site' | undefined;
23 |
24 | declare const REACT_APP_ENV: 'test' | 'dev' | 'pre' | false;
25 |
--------------------------------------------------------------------------------
/resource/frontend/react-antd-umi/src/tests/setupTests.js:
--------------------------------------------------------------------------------
1 | // do some test init
2 |
3 | const localStorageMock = {
4 | getItem: jest.fn(),
5 | setItem: jest.fn(),
6 | removeItem: jest.fn(),
7 | clear: jest.fn(),
8 | };
9 |
10 | global.localStorage = localStorageMock;
11 |
--------------------------------------------------------------------------------
/resource/migration/mariadb/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/mariadb/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/mariadb/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/mariadb/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/mysql/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/mysql/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/mysql/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/mysql/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/postgresql/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/postgresql/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/postgresql/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/postgresql/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/prometheus/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/prometheus/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/prometheus/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/prometheus/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/redis/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/redis/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/redis/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/redis/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/sqlite/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/sqlite/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/sqlite/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/sqlite/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/tdengine/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/tdengine/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/tdengine/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/tdengine/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/tidb/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/tidb/src/.gitkeep
--------------------------------------------------------------------------------
/resource/migration/tidb/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/migration/tidb/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/auth/casdoor/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/auth/casdoor/README.md
--------------------------------------------------------------------------------
/resource/operation/auth/casdoor/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/auth/casdoor/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/auth/casdoor/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/auth/casdoor/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/auth/casdoor/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/auth/casdoor/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/containerd/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/containerd/README.md
--------------------------------------------------------------------------------
/resource/operation/container/containerd/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/containerd/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/container/containerd/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/containerd/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/containerd/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/containerd/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/cri-o/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/cri-o/README.md
--------------------------------------------------------------------------------
/resource/operation/container/cri-o/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/cri-o/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/container/cri-o/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/cri-o/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/cri-o/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/cri-o/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/docker/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/docker/README.md
--------------------------------------------------------------------------------
/resource/operation/container/docker/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/docker/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/container/docker/hanlder/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/docker/hanlder/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/docker/resource/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/docker/resource/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/docker/template/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/docker/template/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/katacontainer2/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/katacontainer2/README.md
--------------------------------------------------------------------------------
/resource/operation/container/katacontainer2/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/katacontainer2/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/container/katacontainer2/hanlder/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/katacontainer2/hanlder/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/katacontainer2/resource/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/katacontainer2/resource/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/container/katacontainer2/template/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/container/katacontainer2/template/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/dgraph/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/dgraph/README.md
--------------------------------------------------------------------------------
/resource/operation/database/dgraph/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/dgraph/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/dgraph/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/dgraph/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/dgraph/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/dgraph/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/etcd/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/etcd/README.md
--------------------------------------------------------------------------------
/resource/operation/database/etcd/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/etcd/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/etcd/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/etcd/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/etcd/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/etcd/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/mariadb/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mariadb/README.md
--------------------------------------------------------------------------------
/resource/operation/database/mariadb/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mariadb/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/mariadb/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mariadb/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/mariadb/src/ddl.sql:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mariadb/src/ddl.sql
--------------------------------------------------------------------------------
/resource/operation/database/mariadb/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mariadb/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/memgraph/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/memgraph/README.md
--------------------------------------------------------------------------------
/resource/operation/database/memgraph/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/memgraph/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/memgraph/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/memgraph/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/memgraph/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/memgraph/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/mysql/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mysql/README.md
--------------------------------------------------------------------------------
/resource/operation/database/mysql/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mysql/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/mysql/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mysql/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/mysql/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/mysql/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/postgresql/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/postgresql/README.md
--------------------------------------------------------------------------------
/resource/operation/database/postgresql/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/postgresql/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/postgresql/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/postgresql/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/postgresql/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/postgresql/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/tidb/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/tidb/README.md
--------------------------------------------------------------------------------
/resource/operation/database/tidb/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/tidb/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/database/tidb/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/tidb/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/database/tidb/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/database/tidb/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/dns/bind/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/bind/README.md
--------------------------------------------------------------------------------
/resource/operation/dns/bind/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/bind/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/dns/bind/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/bind/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/dns/bind/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/bind/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/dns/coredns/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/coredns/README.md
--------------------------------------------------------------------------------
/resource/operation/dns/coredns/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/coredns/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/dns/coredns/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/coredns/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/dns/coredns/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/dns/coredns/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/apache/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/apache/README.md
--------------------------------------------------------------------------------
/resource/operation/http/apache/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/apache/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/http/apache/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/apache/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/apache/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/apache/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/h2o/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/h2o/README.md
--------------------------------------------------------------------------------
/resource/operation/http/h2o/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/h2o/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/http/h2o/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/h2o/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/h2o/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/h2o/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/http4k/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/http4k/README.md
--------------------------------------------------------------------------------
/resource/operation/http/http4k/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/http4k/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/http/http4k/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/http4k/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/http4k/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/http4k/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/nginx/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/nginx/README.md
--------------------------------------------------------------------------------
/resource/operation/http/nginx/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/nginx/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/http/nginx/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/nginx/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/nginx/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/nginx/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/traefik/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/traefik/README.md
--------------------------------------------------------------------------------
/resource/operation/http/traefik/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/traefik/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/http/traefik/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/traefik/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/http/traefik/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/http/traefik/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/k3s/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k3s/README.md
--------------------------------------------------------------------------------
/resource/operation/mesh/k3s/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k3s/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mesh/k3s/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k3s/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/k3s/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k3s/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/k8s/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k8s/README.md
--------------------------------------------------------------------------------
/resource/operation/mesh/k8s/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k8s/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mesh/k8s/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k8s/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/k8s/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/k8s/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/kubecube/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubecube/README.md
--------------------------------------------------------------------------------
/resource/operation/mesh/kubecube/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubecube/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mesh/kubecube/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubecube/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/kubecube/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubecube/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/kubeedge/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubeedge/README.md
--------------------------------------------------------------------------------
/resource/operation/mesh/kubeedge/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubeedge/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mesh/kubeedge/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubeedge/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mesh/kubeedge/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mesh/kubeedge/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/emq/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/emq/README.md
--------------------------------------------------------------------------------
/resource/operation/mq/emq/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/emq/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mq/emq/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/emq/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/emq/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/emq/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/nats/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/nats/README.md
--------------------------------------------------------------------------------
/resource/operation/mq/nats/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/nats/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mq/nats/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/nats/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/nats/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/nats/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/rabbitmq/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/rabbitmq/README.md
--------------------------------------------------------------------------------
/resource/operation/mq/rabbitmq/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/rabbitmq/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mq/rabbitmq/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/rabbitmq/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/rabbitmq/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/rabbitmq/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/vernemq/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/vernemq/README.md
--------------------------------------------------------------------------------
/resource/operation/mq/vernemq/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/vernemq/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/mq/vernemq/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/vernemq/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/mq/vernemq/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/mq/vernemq/tmpl/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/storage/minio/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/storage/minio/README.md
--------------------------------------------------------------------------------
/resource/operation/storage/minio/README_cn.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/storage/minio/README_cn.md
--------------------------------------------------------------------------------
/resource/operation/storage/minio/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/storage/minio/src/.gitkeep
--------------------------------------------------------------------------------
/resource/operation/storage/minio/tmpl/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wa-craft/generator-php/9446dc08d8bda89628c3a55b554f515b048fc437/resource/operation/storage/minio/tmpl/.gitkeep
--------------------------------------------------------------------------------
/src/generator/http/Request.php:
--------------------------------------------------------------------------------
1 | data_files as $f) {
16 | $data = FileHelper::readDataFromFile(ROOT_PATH . '/' . $f) ?: [];
17 | $project = Node::create('Project', ['data' => $data]);
18 | if (!empty($project)) {
19 | var_dump($data);
20 | //$project->process();
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/generator/parser/Database.php:
--------------------------------------------------------------------------------
1 | get('project'))['data'] ?: [];
24 | if (!is_array($project_data_files)) {
25 | $project_data_files = [$project_data_files];
26 | }
27 | $this->data_files = $project_data_files;
28 | }
29 |
30 | /**
31 | * 对数据文件进行分析,设置路由和模型数组
32 | * @return void
33 | */
34 | abstract public function parse(): void;
35 | }
36 |
--------------------------------------------------------------------------------
/src/generator/parser/ParserType.php:
--------------------------------------------------------------------------------
1 | namespace = $this->parent_namespace;
26 | echo "n: " . $this->namespace;
27 | $this->data['namespace'] = $this->namespace;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/generator/parser/legacy/Relation.php:
--------------------------------------------------------------------------------
1 | path);
23 | Driver::load('php\\Traits', [
24 | 'path' => $this->path,
25 | 'file_name' => $this->name . '.php',
26 | 'template' => TemplateHelper::fetchTemplate('traits'),
27 | 'data' => $this->data
28 | ])->execute()->writeToFile();
29 | }
30 |
31 | public function setNameSpace()
32 | {
33 | $this->namespace = $this->parent_namespace . '\\traits';
34 | $this->data['namespace'] = $this->namespace;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/generator/parser/legacy/Validate.php:
--------------------------------------------------------------------------------
1 | path);
23 | Driver::load('php\\Validate', [
24 | 'path' => $this->path,
25 | 'file_name' => $this->name . '.php',
26 | 'template' => TemplateHelper::fetchTemplate('validate'),
27 | 'data' => $this->data
28 | ])->execute()->writeToFile();
29 | }
30 |
31 | public function setNameSpace()
32 | {
33 | $this->namespace = $this->parent_namespace . '\validate';
34 | $this->data['namespace'] = $this->namespace;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/generator/resource/Backend.php:
--------------------------------------------------------------------------------
1 | res !== null and $this->res instanceof Resource) {
13 | $this->res->clone();
14 |
15 | foreach ($this->res->getTemplates() as $k => $template) {
16 | echo $k . PHP_EOL;
17 | $template->writeToFile();
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/generator/resource/Commandline.php:
--------------------------------------------------------------------------------
1 | stereoType = $params['stereoType'] ?: null;
20 | $this->schema = $params['schema'] ?: [];
21 | }
22 |
23 | public function execute()
24 | {
25 | //读取模板
26 | $context = Context::getInstance();
27 | $tmpl_file = TEMPLATE_PATH . '/' . $this->stereoType->lang . '/' . $this->stereoType->name . '.mustache';
28 | $content = file_get_contents($tmpl_file);
29 | $me = new \Mustache_Engine();
30 | $new_content = $me->render($content, $this->schema);
31 |
32 | var_dump($new_content);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/generator/task/Task.php:
--------------------------------------------------------------------------------
1 | name, $params);
14 | return ($obj instanceof StereoType) ? $obj : null;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/generator/template/Template.php:
--------------------------------------------------------------------------------
1 | path = $path;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/generator/template/TemplateFactory.php:
--------------------------------------------------------------------------------
1 | name = $type;
18 | $obj->lang = $lang;
19 | if (!empty($params)) {
20 | }
21 | return ($obj instanceof StereoType) ? $obj : null;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/generator/template/TemplateType.php:
--------------------------------------------------------------------------------
1 | {{value}},
14 | {{/configs}}
15 | ];
16 |
--------------------------------------------------------------------------------
/template/php/enum.mustache:
--------------------------------------------------------------------------------
1 | 'rbac',
7 | 'domain' => 'rbac.vm',
8 | 'applications' => [
9 | [
10 | 'name' => 'application',
11 | 'namespace' => 'app',
12 | 'portal' => 'index',
13 | 'comment' => '',
14 | 'modules' => [
15 | 'rbac'
16 | ]
17 | ]
18 | ]
19 | ];
20 |
--------------------------------------------------------------------------------