34 changed files with 527 additions and 145 deletions
@ -1,3 +1,3 @@ |
|||
/functions/mock/** |
|||
/lambda/mock/** |
|||
/scripts |
|||
/config |
|||
|
|||
@ -1,5 +0,0 @@ |
|||
{ |
|||
"projects": { |
|||
"default": "antd-pro" |
|||
} |
|||
} |
|||
@ -0,0 +1,130 @@ |
|||
[English](./README.md) | [简体中文](./README.zh-CN.md) | [Русский](./README.ru-RU.md) | Türkçe |
|||
|
|||
<h1 align="center">Ant Design Pro</h1> |
|||
|
|||
<div align="center"> |
|||
|
|||
React ile kurumsal uygulamalar için taslak olarak geliştirilmiş kullanıma hazır bir UI çözümü. |
|||
|
|||
[](https://circleci.com/gh/ant-design/ant-design-pro/) |
|||
[](https://ci.appveyor.com/project/afc163/ant-design-pro/branch/master) |
|||
[](https://david-dm.org/ant-design/ant-design-pro) |
|||
[](https://david-dm.org/ant-design/ant-design-pro?type=dev) |
|||
[](https://gitter.im/ant-design/pro-english?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)(🇺🇸) |
|||
[](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)(🇨🇳) |
|||
[](https://app.netlify.com/sites/ant-design-pro/deploys) |
|||
 |
|||
|
|||
</div> |
|||
|
|||
- Önizleme: http://preview.pro.ant.design |
|||
- Anasayfa: http://pro.ant.design |
|||
- Dokümantasyon: http://pro.ant.design/docs/getting-started |
|||
- ChangeLog: http://pro.ant.design/docs/changelog |
|||
- SSS: http://pro.ant.design/docs/faq |
|||
- Çinde barındırılan site: http://ant-design-pro.gitee.io |
|||
|
|||
## 2.0 Versiyonu Şimdi Yayında! 🎉🎉🎉 |
|||
[Announcing Ant Design Pro 2.0.0](https://medium.com/ant-design/beautiful-and-powerful-ant-design-pro-2-0-release-51358da5af95) |
|||
|
|||
## Çeviri Desteği :loudspeaker: |
|||
|
|||
Çeviriler için yardımınıza ihtiyacımız var: https://github.com/ant-design/ant-design-pro/issues/120 |
|||
|
|||
## Özellikler |
|||
|
|||
- :gem: **Zarif Tasarım**: Buradan [Ant Design özellikleri](http://ant.design/) |
|||
- :triangular_ruler: **Ortak Şablonlar**: Kurumsal uygulamalar için şablonlar |
|||
- :rocket: **Sanatsal gelişim durumu**: Newest development stack of React/umi/dva/antd |
|||
- :iphone: **Responsive**: Değişken ekran boyutları için tasarlanmıştır |
|||
- :art: **Tema Kullanımı**: Basit ayarlar ile özelleştirilebilir tema |
|||
- :globe_with_meridians: **Uluslararası**: Built-in i18n solution |
|||
- :gear: **Best Practices**: İyi kod için sağlam iş akışı |
|||
- :1234: **Mock Geliştirme**: Model(Mock) geliştirmeler için kolay çözüm |
|||
- :white_check_mark: **UI Testi**: Unit ve e2e testleri ile güvenli sürdürülebilirlik |
|||
|
|||
## Şablonlar |
|||
|
|||
``` |
|||
- Dashboard |
|||
- Analitik |
|||
- Monitör |
|||
- Çalışma alanı |
|||
- Form |
|||
- Basit Form |
|||
- Step Form |
|||
- Gelişmiş Form |
|||
- List |
|||
- Standard Tablo |
|||
- Standard Liste |
|||
- Kart Liste |
|||
- Arama Listesi (Project/Applications/Article) |
|||
- Profil |
|||
- Basit Profil |
|||
- Gelişmiş Profil |
|||
- Hesap |
|||
- Hesap Yönetimi |
|||
- Hesap Ayarları |
|||
- Sonuç |
|||
- Başarılı |
|||
- Hatalı |
|||
- Hatalar |
|||
- 403 |
|||
- 404 |
|||
- 500 |
|||
- Kullanıcı |
|||
- Giriş |
|||
- Kayıt |
|||
- Kayıt Sonucu |
|||
``` |
|||
|
|||
## Kullanım |
|||
|
|||
### bash ile kullanım |
|||
|
|||
```bash |
|||
$ git clone https://github.com/ant-design/ant-design-pro.git --depth=1 |
|||
$ cd ant-design-pro |
|||
$ npm install |
|||
$ npm start # visit http://localhost:8000 |
|||
``` |
|||
|
|||
### Docker ile kullanım |
|||
|
|||
```bash |
|||
# preview |
|||
$ docker pull chenshuai2144/ant-design-pro |
|||
$ docker run -p 80:80 chenshuai2144/ant-design-pro |
|||
# open http://localhost |
|||
|
|||
# dev |
|||
$ npm run docker:dev |
|||
|
|||
# build |
|||
$ npm run docker:build |
|||
|
|||
|
|||
# production dev |
|||
$ npm run docker-prod:dev |
|||
|
|||
# production build |
|||
$ npm run docker-prod:build |
|||
``` |
|||
|
|||
Daha fazla talimat için [dokümantasyon](http://pro.ant.design/docs/getting-started) sayfasına göz atın. |
|||
|
|||
## Tarayıcı desteği |
|||
|
|||
Modern internet tarayıcıları ve IE11. |
|||
|
|||
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera | |
|||
| --------- | --------- | --------- | --------- | --------- | |
|||
| IE11, Edge| son 2 versiyon | son 2 versiyon | son 2 versiyon | son 2 versiyon |
|||
|
|||
## Destek |
|||
|
|||
Her türlü desteğinize açığız, bu projeye nasıl katkıda bulunabileceğinize dair bazı örnekler: |
|||
|
|||
- Günlük işinizde Ant Design Pro kullanın. |
|||
- Hataları bildirmek veya soru sormak için [issues](http://github.com/ant-design/ant-design-pro/issues) gönderin. |
|||
- kodumuzu geliştirmek için [pull requests](http://github.com/ant-design/ant-design-pro/pulls) gönderin. |
|||
@ -1,13 +0,0 @@ |
|||
{ |
|||
"hosting": { |
|||
"public": "dist", |
|||
"rewrites": [ |
|||
{ "source": "/api/**", "function": "api" }, |
|||
{ |
|||
"source": "**", |
|||
"destination": "/index.html" |
|||
} |
|||
], |
|||
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"] |
|||
} |
|||
} |
|||
@ -1,10 +0,0 @@ |
|||
// [START functionsimport]
|
|||
const functions = require('firebase-functions'); |
|||
const express = require('express'); |
|||
|
|||
const matchMock = require('./matchMock'); |
|||
|
|||
const app = express(); |
|||
|
|||
app.use(matchMock); |
|||
exports.api = functions.https.onRequest(app); |
|||
@ -0,0 +1,11 @@ |
|||
// [START functions import]
|
|||
const express = require('express'); |
|||
const serverLess = require('serverless-http'); |
|||
|
|||
const matchMock = require('./mock/matchMock'); |
|||
|
|||
const app = express(); |
|||
|
|||
app.use(matchMock); |
|||
|
|||
exports.handler = serverLess(app); |
|||
@ -1,3 +1,3 @@ |
|||
const generateMock = require('merge-umi-mock-data'); |
|||
const path = require('path'); |
|||
generateMock(path.join(__dirname, '../mock'), path.join(__dirname, '../functions/mock/index.js')); |
|||
generateMock(path.join(__dirname, '../mock'), path.join(__dirname, '../lambda/mock/index.js')); |
|||
|
|||
@ -0,0 +1,12 @@ |
|||
import React from 'react'; |
|||
import { DropDownProps } from 'antd/lib/dropdown'; |
|||
|
|||
declare type OverlayFunc = () => React.ReactNode; |
|||
|
|||
export interface HeaderDropdownProps extends DropDownProps { |
|||
overlayClassName?: string; |
|||
overlay: React.ReactNode | OverlayFunc; |
|||
placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight' | 'bottomCenter'; |
|||
} |
|||
|
|||
export default class HeaderDropdown extends React.Component<HeaderDropdownProps, any> {} |
|||
@ -0,0 +1,15 @@ |
|||
import React from 'react'; |
|||
export interface HeaderSearchProps { |
|||
placeholder?: string; |
|||
dataSource?: string[]; |
|||
defaultOpen?: boolean; |
|||
open?: boolean; |
|||
onSearch?: (value: string) => void; |
|||
onChange?: (value: string) => void; |
|||
onVisibleChange?: (visible: boolean) => void; |
|||
onPressEnter?: (value: string) => void; |
|||
style?: React.CSSProperties; |
|||
className?: string; |
|||
} |
|||
|
|||
export default class HeaderSearch extends React.Component<HeaderSearchProps, any> {} |
|||
@ -0,0 +1,9 @@ |
|||
import React from 'react'; |
|||
|
|||
export interface BlockChecboxProps { |
|||
value: string; |
|||
onChange: (key: string) => void; |
|||
list: any[]; |
|||
} |
|||
|
|||
export default class BlockChecbox extends React.Component<BlockChecboxProps, any> {} |
|||
@ -0,0 +1,24 @@ |
|||
import React from 'react'; |
|||
import { SiderTheme } from 'antd/es/Layout/Sider'; |
|||
|
|||
export interface SettingModelState { |
|||
navTheme: string | SiderTheme; |
|||
primaryColor: string; |
|||
layout: string; |
|||
contentWidth: string; |
|||
fixedHeader: boolean; |
|||
autoHideHeader: boolean; |
|||
fixSiderbar: boolean; |
|||
menu: { disableLocal: boolean }; |
|||
title: string; |
|||
pwa: boolean; |
|||
iconfontUrl: string; |
|||
colorWeak: boolean; |
|||
} |
|||
|
|||
export interface SettingDrawerProps { |
|||
setting?: SettingModelState; |
|||
dispatch?: (args: any) => void; |
|||
} |
|||
|
|||
export default class SettingDrawer extends React.Component<SettingDrawerProps, any> {} |
|||
@ -0,0 +1,126 @@ |
|||
import { stringify } from 'qs'; |
|||
import request from '@/utils/request'; |
|||
|
|||
export async function queryProjectNotice() { |
|||
return request('/api/project/notice'); |
|||
} |
|||
|
|||
export async function queryActivities() { |
|||
return request('/api/activities'); |
|||
} |
|||
|
|||
export async function queryRule(params) { |
|||
return request(`/api/rule?${stringify(params)}`); |
|||
} |
|||
|
|||
export async function removeRule(params) { |
|||
return request('/api/rule', { |
|||
method: 'POST', |
|||
data: { |
|||
...params, |
|||
method: 'delete', |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
export async function addRule(params) { |
|||
return request('/api/rule', { |
|||
method: 'POST', |
|||
data: { |
|||
...params, |
|||
method: 'post', |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
export async function updateRule(params = {}) { |
|||
return request(`/api/rule?${stringify(params.query)}`, { |
|||
method: 'POST', |
|||
data: { |
|||
...params.body, |
|||
method: 'update', |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
export async function fakeSubmitForm(params) { |
|||
return request('/api/forms', { |
|||
method: 'POST', |
|||
data: params, |
|||
}); |
|||
} |
|||
|
|||
export async function fakeChartData() { |
|||
return request('/api/fake_chart_data'); |
|||
} |
|||
|
|||
export async function queryTags() { |
|||
return request('/api/tags'); |
|||
} |
|||
|
|||
export async function queryBasicProfile(id) { |
|||
return request(`/api/profile/basic?id=${id}`); |
|||
} |
|||
|
|||
export async function queryAdvancedProfile() { |
|||
return request('/api/profile/advanced'); |
|||
} |
|||
|
|||
export async function queryFakeList(params) { |
|||
return request(`/api/fake_list?${stringify(params)}`); |
|||
} |
|||
|
|||
export async function removeFakeList(params) { |
|||
const { count = 5, ...restParams } = params; |
|||
return request(`/api/fake_list?count=${count}`, { |
|||
method: 'POST', |
|||
data: { |
|||
...restParams, |
|||
method: 'delete', |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
export async function addFakeList(params) { |
|||
const { count = 5, ...restParams } = params; |
|||
return request(`/api/fake_list?count=${count}`, { |
|||
method: 'POST', |
|||
data: { |
|||
...restParams, |
|||
method: 'post', |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
export async function updateFakeList(params) { |
|||
const { count = 5, ...restParams } = params; |
|||
return request(`/api/fake_list?count=${count}`, { |
|||
method: 'POST', |
|||
data: { |
|||
...restParams, |
|||
method: 'update', |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
export async function fakeAccountLogin(params) { |
|||
return request('/api/login/account', { |
|||
method: 'POST', |
|||
data: params, |
|||
}); |
|||
} |
|||
|
|||
export async function fakeRegister(params) { |
|||
return request('/api/register', { |
|||
method: 'POST', |
|||
data: params, |
|||
}); |
|||
} |
|||
|
|||
export async function queryNotices(params = {}) { |
|||
return request(`/api/notices?${stringify(params)}`); |
|||
} |
|||
|
|||
export async function getFakeCaptcha(mobile) { |
|||
return request(`/api/captcha?mobile=${mobile}`); |
|||
} |
|||
Loading…
Reference in new issue