[baozhangchao] 3 년 전
부모
커밋
4da68ce8ed
100개의 변경된 파일0개의 추가작업 그리고 4964개의 파일을 삭제
  1. 0
    16
      .editorconfig
  2. 0
    8
      .eslintignore
  3. 0
    8
      .eslintrc.js
  4. 0
    40
      .gitignore
  5. 0
    23
      .prettierignore
  6. 0
    5
      .prettierrc.js
  7. 0
    5
      .stylelintrc.js
  8. 0
    57
      README.md
  9. 0
    14
      config/config.dev.js
  10. 0
    71
      config/config.js
  11. 0
    15
      config/defaultSettings.js
  12. 0
    593
      config/oneapi.json
  13. 0
    38
      config/proxy.js
  14. 0
    58
      config/routes.js
  15. 0
    9
      jest.config.js
  16. 0
    11
      jsconfig.json
  17. 0
    177
      mock/listTableList.js
  18. 0
    105
      mock/notices.js
  19. 0
    7
      mock/route.js
  20. 0
    210
      mock/user.js
  21. 0
    100
      package.json
  22. 0
    20
      playwright.config.js
  23. 0
    9
      src/access.js
  24. 0
    97
      src/app.jsx
  25. 0
    39
      src/components/Footer/index.jsx
  26. 0
    10
      src/components/HeaderDropdown/index.jsx
  27. 0
    16
      src/components/HeaderDropdown/index.less
  28. 0
    83
      src/components/HeaderSearch/index.jsx
  29. 0
    25
      src/components/HeaderSearch/index.less
  30. 0
    114
      src/components/NoticeIcon/NoticeIcon.jsx
  31. 0
    97
      src/components/NoticeIcon/NoticeList.jsx
  32. 0
    103
      src/components/NoticeIcon/NoticeList.less
  33. 0
    148
      src/components/NoticeIcon/index.jsx
  34. 0
    35
      src/components/NoticeIcon/index.less
  35. 0
    98
      src/components/RightContent/AvatarDropdown.jsx
  36. 0
    64
      src/components/RightContent/index.jsx
  37. 0
    84
      src/components/RightContent/index.less
  38. 0
    272
      src/components/index.md
  39. 0
    47
      src/e2e/baseLayout.e2e.spec.js
  40. 0
    108
      src/global.jsx
  41. 0
    57
      src/global.less
  42. 0
    25
      src/locales/bn-BD.js
  43. 0
    5
      src/locales/bn-BD/component.js
  44. 0
    17
      src/locales/bn-BD/globalHeader.js
  45. 0
    52
      src/locales/bn-BD/menu.js
  46. 0
    70
      src/locales/bn-BD/pages.js
  47. 0
    7
      src/locales/bn-BD/pwa.js
  48. 0
    31
      src/locales/bn-BD/settingDrawer.js
  49. 0
    59
      src/locales/bn-BD/settings.js
  50. 0
    24
      src/locales/en-US.js
  51. 0
    5
      src/locales/en-US/component.js
  52. 0
    17
      src/locales/en-US/globalHeader.js
  53. 0
    52
      src/locales/en-US/menu.js
  54. 0
    70
      src/locales/en-US/pages.js
  55. 0
    6
      src/locales/en-US/pwa.js
  56. 0
    31
      src/locales/en-US/settingDrawer.js
  57. 0
    60
      src/locales/en-US/settings.js
  58. 0
    23
      src/locales/fa-IR.js
  59. 0
    5
      src/locales/fa-IR/component.js
  60. 0
    17
      src/locales/fa-IR/globalHeader.js
  61. 0
    52
      src/locales/fa-IR/menu.js
  62. 0
    67
      src/locales/fa-IR/pages.js
  63. 0
    7
      src/locales/fa-IR/pwa.js
  64. 0
    32
      src/locales/fa-IR/settingDrawer.js
  65. 0
    60
      src/locales/fa-IR/settings.js
  66. 0
    24
      src/locales/id-ID.js
  67. 0
    5
      src/locales/id-ID/component.js
  68. 0
    17
      src/locales/id-ID/globalHeader.js
  69. 0
    52
      src/locales/id-ID/menu.js
  70. 0
    70
      src/locales/id-ID/pages.js
  71. 0
    7
      src/locales/id-ID/pwa.js
  72. 0
    32
      src/locales/id-ID/settingDrawer.js
  73. 0
    60
      src/locales/id-ID/settings.js
  74. 0
    23
      src/locales/ja-JP.js
  75. 0
    5
      src/locales/ja-JP/component.js
  76. 0
    17
      src/locales/ja-JP/globalHeader.js
  77. 0
    52
      src/locales/ja-JP/menu.js
  78. 0
    67
      src/locales/ja-JP/pages.js
  79. 0
    7
      src/locales/ja-JP/pwa.js
  80. 0
    31
      src/locales/ja-JP/settingDrawer.js
  81. 0
    59
      src/locales/ja-JP/settings.js
  82. 0
    21
      src/locales/pt-BR.js
  83. 0
    5
      src/locales/pt-BR/component.js
  84. 0
    18
      src/locales/pt-BR/globalHeader.js
  85. 0
    52
      src/locales/pt-BR/menu.js
  86. 0
    70
      src/locales/pt-BR/pages.js
  87. 0
    7
      src/locales/pt-BR/pwa.js
  88. 0
    32
      src/locales/pt-BR/settingDrawer.js
  89. 0
    60
      src/locales/pt-BR/settings.js
  90. 0
    24
      src/locales/zh-CN.js
  91. 0
    5
      src/locales/zh-CN/component.js
  92. 0
    17
      src/locales/zh-CN/globalHeader.js
  93. 0
    52
      src/locales/zh-CN/menu.js
  94. 0
    67
      src/locales/zh-CN/pages.js
  95. 0
    6
      src/locales/zh-CN/pwa.js
  96. 0
    31
      src/locales/zh-CN/settingDrawer.js
  97. 0
    55
      src/locales/zh-CN/settings.js
  98. 0
    19
      src/locales/zh-TW.js
  99. 0
    5
      src/locales/zh-TW/component.js
  100. 0
    0
      src/locales/zh-TW/globalHeader.js

+ 0
- 16
.editorconfig 파일 보기

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

+ 0
- 8
.eslintignore 파일 보기

@@ -1,8 +0,0 @@
1
-/lambda/
2
-/scripts
3
-/config
4
-.history
5
-public
6
-dist
7
-.umi
8
-mock

+ 0
- 8
.eslintrc.js 파일 보기

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

+ 0
- 40
.gitignore 파일 보기

@@ -1,40 +0,0 @@
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
-
12
-# misc
13
-.DS_Store
14
-npm-debug.log*
15
-yarn-error.log
16
-
17
-/coverage
18
-.idea
19
-yarn.lock
20
-package-lock.json
21
-pnpm-lock.yaml
22
-*bak
23
-
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

+ 0
- 23
.prettierignore 파일 보기

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

+ 0
- 5
.prettierrc.js 파일 보기

@@ -1,5 +0,0 @@
1
-const fabric = require('@umijs/fabric');
2
-
3
-module.exports = {
4
-  ...fabric.prettier,
5
-};

+ 0
- 5
.stylelintrc.js 파일 보기

@@ -1,5 +0,0 @@
1
-const fabric = require('@umijs/fabric');
2
-
3
-module.exports = {
4
-  ...fabric.stylelint,
5
-};

+ 0
- 57
README.md 파일 보기

@@ -1,57 +0,0 @@
1
-# Ant Design Pro
2
-
3
-This project is initialized with [Ant Design Pro](https://pro.ant.design). Follow is the quick guide for how to use.
4
-
5
-## Environment Prepare
6
-
7
-Install `node_modules`:
8
-
9
-```bash
10
-npm install
11
-```
12
-
13
-or
14
-
15
-```bash
16
-yarn
17
-```
18
-
19
-## Provided Scripts
20
-
21
-Ant Design Pro provides some useful script to help you quick start and build with web project, code style check and test.
22
-
23
-Scripts provided in `package.json`. It's safe to modify or add additional script:
24
-
25
-### Start project
26
-
27
-```bash
28
-npm start
29
-```
30
-
31
-### Build project
32
-
33
-```bash
34
-npm run build
35
-```
36
-
37
-### Check code style
38
-
39
-```bash
40
-npm run lint
41
-```
42
-
43
-You can also use script to auto fix some lint error:
44
-
45
-```bash
46
-npm run lint:fix
47
-```
48
-
49
-### Test code
50
-
51
-```bash
52
-npm test
53
-```
54
-
55
-## More
56
-
57
-You can view full document on our [official website](https://pro.ant.design). And welcome any feedback in our [github](https://github.com/ant-design/ant-design-pro).

+ 0
- 14
config/config.dev.js 파일 보기

@@ -1,14 +0,0 @@
1
-// https://umijs.org/config/
2
-import { defineConfig } from 'umi';
3
-export default defineConfig({
4
-  plugins: [
5
-    // https://github.com/zthxxx/react-dev-inspector
6
-    'react-dev-inspector/plugins/umi/react-inspector',
7
-  ],
8
-  // https://github.com/zthxxx/react-dev-inspector#inspector-loader-props
9
-  inspectorConfig: {
10
-    exclude: [],
11
-    babelPlugins: [],
12
-    babelOptions: {},
13
-  },
14
-});

+ 0
- 71
config/config.js 파일 보기

@@ -1,71 +0,0 @@
1
-// https://umijs.org/config/
2
-import { defineConfig } from 'umi';
3
-import { join } from 'path';
4
-import defaultSettings from './defaultSettings';
5
-import proxy from './proxy';
6
-import routes from './routes';
7
-const { REACT_APP_ENV } = process.env;
8
-export default defineConfig({
9
-  hash: true,
10
-  antd: {},
11
-  dva: {
12
-    hmr: true,
13
-  },
14
-  layout: {
15
-    // https://umijs.org/zh-CN/plugins/plugin-layout
16
-    locale: true,
17
-    siderWidth: 208,
18
-    ...defaultSettings,
19
-  },
20
-  // https://umijs.org/zh-CN/plugins/plugin-locale
21
-  locale: {
22
-    // default zh-CN
23
-    default: 'zh-CN',
24
-    antd: true,
25
-    // default true, when it is true, will use `navigator.language` overwrite default
26
-    baseNavigator: true,
27
-  },
28
-  dynamicImport: {
29
-    loading: '@ant-design/pro-layout/es/PageLoading',
30
-  },
31
-  targets: {
32
-    ie: 11,
33
-  },
34
-  // umi routes: https://umijs.org/docs/routing
35
-  routes,
36
-  // Theme for antd: https://ant.design/docs/react/customize-theme-cn
37
-  theme: {
38
-    'root-entry-name': 'variable',
39
-  },
40
-  // esbuild is father build tools
41
-  // https://umijs.org/plugins/plugin-esbuild
42
-  esbuild: {},
43
-  title: false,
44
-  ignoreMomentLocale: true,
45
-  proxy: proxy[REACT_APP_ENV || 'dev'],
46
-  manifest: {
47
-    basePath: '/',
48
-  },
49
-  // Fast Refresh 热更新
50
-  fastRefresh: {},
51
-  openAPI: [
52
-    {
53
-      requestLibPath: "import { request } from 'umi'",
54
-      // 或者使用在线的版本
55
-      // schemaPath: "https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json"
56
-      schemaPath: join(__dirname, 'oneapi.json'),
57
-      mock: false,
58
-    },
59
-    {
60
-      requestLibPath: "import { request } from 'umi'",
61
-      schemaPath: 'https://gw.alipayobjects.com/os/antfincdn/CA1dOm%2631B/openapi.json',
62
-      projectName: 'swagger',
63
-    },
64
-  ],
65
-  nodeModulesTransform: {
66
-    type: 'none',
67
-  },
68
-  mfsu: {},
69
-  webpack5: {},
70
-  exportStatic: {},
71
-});

+ 0
- 15
config/defaultSettings.js 파일 보기

@@ -1,15 +0,0 @@
1
-const Settings = {
2
-  navTheme: 'light',
3
-  // 拂晓蓝
4
-  primaryColor: '#1890ff',
5
-  layout: 'mix',
6
-  contentWidth: 'Fluid',
7
-  fixedHeader: false,
8
-  fixSiderbar: true,
9
-  colorWeak: false,
10
-  title: 'Ant Design Pro',
11
-  pwa: false,
12
-  logo: 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg',
13
-  iconfontUrl: '',
14
-};
15
-export default Settings;

+ 0
- 593
config/oneapi.json 파일 보기

@@ -1,593 +0,0 @@
1
-{
2
-  "openapi": "3.0.1",
3
-  "info": {
4
-    "title": "Ant Design Pro",
5
-    "version": "1.0.0"
6
-  },
7
-  "servers": [
8
-    {
9
-      "url": "http://localhost:8000/"
10
-    },
11
-    {
12
-      "url": "https://localhost:8000/"
13
-    }
14
-  ],
15
-  "paths": {
16
-    "/api/currentUser": {
17
-      "get": {
18
-        "tags": ["api"],
19
-        "description": "获取当前的用户",
20
-        "operationId": "currentUser",
21
-        "responses": {
22
-          "200": {
23
-            "description": "Success",
24
-            "content": {
25
-              "application/json": {
26
-                "schema": {
27
-                  "$ref": "#/components/schemas/CurrentUser"
28
-                }
29
-              }
30
-            }
31
-          },
32
-          "401": {
33
-            "description": "Error",
34
-            "content": {
35
-              "application/json": {
36
-                "schema": {
37
-                  "$ref": "#/components/schemas/ErrorResponse"
38
-                }
39
-              }
40
-            }
41
-          }
42
-        }
43
-      },
44
-      "x-swagger-router-controller": "api"
45
-    },
46
-    "/api/login/captcha": {
47
-      "post": {
48
-        "description": "发送验证码",
49
-        "operationId": "getFakeCaptcha",
50
-        "tags": ["login"],
51
-        "parameters": [
52
-          {
53
-            "name": "phone",
54
-            "in": "query",
55
-            "description": "手机号",
56
-            "schema": {
57
-              "type": "string"
58
-            }
59
-          }
60
-        ],
61
-        "responses": {
62
-          "200": {
63
-            "description": "Success",
64
-            "content": {
65
-              "application/json": {
66
-                "schema": {
67
-                  "$ref": "#/components/schemas/FakeCaptcha"
68
-                }
69
-              }
70
-            }
71
-          }
72
-        }
73
-      }
74
-    },
75
-    "/api/login/outLogin": {
76
-      "post": {
77
-        "description": "登录接口",
78
-        "operationId": "outLogin",
79
-        "tags": ["login"],
80
-        "responses": {
81
-          "200": {
82
-            "description": "Success",
83
-            "content": {
84
-              "application/json": {
85
-                "schema": {
86
-                  "type": "object"
87
-                }
88
-              }
89
-            }
90
-          },
91
-          "401": {
92
-            "description": "Error",
93
-            "content": {
94
-              "application/json": {
95
-                "schema": {
96
-                  "$ref": "#/components/schemas/ErrorResponse"
97
-                }
98
-              }
99
-            }
100
-          }
101
-        }
102
-      },
103
-      "x-swagger-router-controller": "api"
104
-    },
105
-    "/api/login/account": {
106
-      "post": {
107
-        "tags": ["login"],
108
-        "description": "登录接口",
109
-        "operationId": "login",
110
-        "requestBody": {
111
-          "description": "登录系统",
112
-          "content": {
113
-            "application/json": {
114
-              "schema": {
115
-                "$ref": "#/components/schemas/LoginParams"
116
-              }
117
-            }
118
-          },
119
-          "required": true
120
-        },
121
-        "responses": {
122
-          "200": {
123
-            "description": "Success",
124
-            "content": {
125
-              "application/json": {
126
-                "schema": {
127
-                  "$ref": "#/components/schemas/LoginResult"
128
-                }
129
-              }
130
-            }
131
-          },
132
-          "401": {
133
-            "description": "Error",
134
-            "content": {
135
-              "application/json": {
136
-                "schema": {
137
-                  "$ref": "#/components/schemas/ErrorResponse"
138
-                }
139
-              }
140
-            }
141
-          }
142
-        },
143
-        "x-codegen-request-body-name": "body"
144
-      },
145
-      "x-swagger-router-controller": "api"
146
-    },
147
-    "/api/notices": {
148
-      "summary": "getNotices",
149
-      "description": "NoticeIconItem",
150
-      "get": {
151
-        "tags": ["api"],
152
-        "operationId": "getNotices",
153
-        "responses": {
154
-          "200": {
155
-            "description": "Success",
156
-            "content": {
157
-              "application/json": {
158
-                "schema": {
159
-                  "$ref": "#/components/schemas/NoticeIconList"
160
-                }
161
-              }
162
-            }
163
-          }
164
-        }
165
-      }
166
-    },
167
-    "/api/rule": {
168
-      "get": {
169
-        "tags": ["rule"],
170
-        "description": "获取规则列表",
171
-        "operationId": "rule",
172
-        "parameters": [
173
-          {
174
-            "name": "current",
175
-            "in": "query",
176
-            "description": "当前的页码",
177
-            "schema": {
178
-              "type": "number"
179
-            }
180
-          },
181
-          {
182
-            "name": "pageSize",
183
-            "in": "query",
184
-            "description": "页面的容量",
185
-            "schema": {
186
-              "type": "number"
187
-            }
188
-          }
189
-        ],
190
-        "responses": {
191
-          "200": {
192
-            "description": "Success",
193
-            "content": {
194
-              "application/json": {
195
-                "schema": {
196
-                  "$ref": "#/components/schemas/RuleList"
197
-                }
198
-              }
199
-            }
200
-          },
201
-          "401": {
202
-            "description": "Error",
203
-            "content": {
204
-              "application/json": {
205
-                "schema": {
206
-                  "$ref": "#/components/schemas/ErrorResponse"
207
-                }
208
-              }
209
-            }
210
-          }
211
-        }
212
-      },
213
-      "post": {
214
-        "tags": ["rule"],
215
-        "description": "新建规则",
216
-        "operationId": "addRule",
217
-        "responses": {
218
-          "200": {
219
-            "description": "Success",
220
-            "content": {
221
-              "application/json": {
222
-                "schema": {
223
-                  "$ref": "#/components/schemas/RuleListItem"
224
-                }
225
-              }
226
-            }
227
-          },
228
-          "401": {
229
-            "description": "Error",
230
-            "content": {
231
-              "application/json": {
232
-                "schema": {
233
-                  "$ref": "#/components/schemas/ErrorResponse"
234
-                }
235
-              }
236
-            }
237
-          }
238
-        }
239
-      },
240
-      "put": {
241
-        "tags": ["rule"],
242
-        "description": "新建规则",
243
-        "operationId": "updateRule",
244
-        "responses": {
245
-          "200": {
246
-            "description": "Success",
247
-            "content": {
248
-              "application/json": {
249
-                "schema": {
250
-                  "$ref": "#/components/schemas/RuleListItem"
251
-                }
252
-              }
253
-            }
254
-          },
255
-          "401": {
256
-            "description": "Error",
257
-            "content": {
258
-              "application/json": {
259
-                "schema": {
260
-                  "$ref": "#/components/schemas/ErrorResponse"
261
-                }
262
-              }
263
-            }
264
-          }
265
-        }
266
-      },
267
-      "delete": {
268
-        "tags": ["rule"],
269
-        "description": "删除规则",
270
-        "operationId": "removeRule",
271
-        "responses": {
272
-          "200": {
273
-            "description": "Success",
274
-            "content": {
275
-              "application/json": {
276
-                "schema": {
277
-                  "type": "object"
278
-                }
279
-              }
280
-            }
281
-          },
282
-          "401": {
283
-            "description": "Error",
284
-            "content": {
285
-              "application/json": {
286
-                "schema": {
287
-                  "$ref": "#/components/schemas/ErrorResponse"
288
-                }
289
-              }
290
-            }
291
-          }
292
-        }
293
-      },
294
-      "x-swagger-router-controller": "api"
295
-    },
296
-    "/swagger": {
297
-      "x-swagger-pipe": "swagger_raw"
298
-    }
299
-  },
300
-  "components": {
301
-    "schemas": {
302
-      "CurrentUser": {
303
-        "type": "object",
304
-        "properties": {
305
-          "name": {
306
-            "type": "string"
307
-          },
308
-          "avatar": {
309
-            "type": "string"
310
-          },
311
-          "userid": {
312
-            "type": "string"
313
-          },
314
-          "email": {
315
-            "type": "string"
316
-          },
317
-          "signature": {
318
-            "type": "string"
319
-          },
320
-          "title": {
321
-            "type": "string"
322
-          },
323
-          "group": {
324
-            "type": "string"
325
-          },
326
-          "tags": {
327
-            "type": "array",
328
-            "items": {
329
-              "type": "object",
330
-              "properties": {
331
-                "key": {
332
-                  "type": "string"
333
-                },
334
-                "label": {
335
-                  "type": "string"
336
-                }
337
-              }
338
-            }
339
-          },
340
-          "notifyCount": {
341
-            "type": "integer",
342
-            "format": "int32"
343
-          },
344
-          "unreadCount": {
345
-            "type": "integer",
346
-            "format": "int32"
347
-          },
348
-          "country": {
349
-            "type": "string"
350
-          },
351
-          "access": {
352
-            "type": "string"
353
-          },
354
-          "geographic": {
355
-            "type": "object",
356
-            "properties": {
357
-              "province": {
358
-                "type": "object",
359
-                "properties": {
360
-                  "label": {
361
-                    "type": "string"
362
-                  },
363
-                  "key": {
364
-                    "type": "string"
365
-                  }
366
-                }
367
-              },
368
-              "city": {
369
-                "type": "object",
370
-                "properties": {
371
-                  "label": {
372
-                    "type": "string"
373
-                  },
374
-                  "key": {
375
-                    "type": "string"
376
-                  }
377
-                }
378
-              }
379
-            }
380
-          },
381
-          "address": {
382
-            "type": "string"
383
-          },
384
-          "phone": {
385
-            "type": "string"
386
-          }
387
-        }
388
-      },
389
-      "LoginResult": {
390
-        "type": "object",
391
-        "properties": {
392
-          "status": {
393
-            "type": "string"
394
-          },
395
-          "type": {
396
-            "type": "string"
397
-          },
398
-          "currentAuthority": {
399
-            "type": "string"
400
-          }
401
-        }
402
-      },
403
-      "PageParams": {
404
-        "type": "object",
405
-        "properties": {
406
-          "current": {
407
-            "type": "number"
408
-          },
409
-          "pageSize": {
410
-            "type": "number"
411
-          }
412
-        }
413
-      },
414
-      "RuleListItem": {
415
-        "type": "object",
416
-        "properties": {
417
-          "key": {
418
-            "type": "integer",
419
-            "format": "int32"
420
-          },
421
-          "disabled": {
422
-            "type": "boolean"
423
-          },
424
-          "href": {
425
-            "type": "string"
426
-          },
427
-          "avatar": {
428
-            "type": "string"
429
-          },
430
-          "name": {
431
-            "type": "string"
432
-          },
433
-          "owner": {
434
-            "type": "string"
435
-          },
436
-          "desc": {
437
-            "type": "string"
438
-          },
439
-          "callNo": {
440
-            "type": "integer",
441
-            "format": "int32"
442
-          },
443
-          "status": {
444
-            "type": "integer",
445
-            "format": "int32"
446
-          },
447
-          "updatedAt": {
448
-            "type": "string",
449
-            "format": "datetime"
450
-          },
451
-          "createdAt": {
452
-            "type": "string",
453
-            "format": "datetime"
454
-          },
455
-          "progress": {
456
-            "type": "integer",
457
-            "format": "int32"
458
-          }
459
-        }
460
-      },
461
-      "RuleList": {
462
-        "type": "object",
463
-        "properties": {
464
-          "data": {
465
-            "type": "array",
466
-            "items": {
467
-              "$ref": "#/components/schemas/RuleListItem"
468
-            }
469
-          },
470
-          "total": {
471
-            "type": "integer",
472
-            "description": "列表的内容总数",
473
-            "format": "int32"
474
-          },
475
-          "success": {
476
-            "type": "boolean"
477
-          }
478
-        }
479
-      },
480
-      "FakeCaptcha": {
481
-        "type": "object",
482
-        "properties": {
483
-          "code": {
484
-            "type": "integer",
485
-            "format": "int32"
486
-          },
487
-          "status": {
488
-            "type": "string"
489
-          }
490
-        }
491
-      },
492
-      "LoginParams": {
493
-        "type": "object",
494
-        "properties": {
495
-          "username": {
496
-            "type": "string"
497
-          },
498
-          "password": {
499
-            "type": "string"
500
-          },
501
-          "autoLogin": {
502
-            "type": "boolean"
503
-          },
504
-          "type": {
505
-            "type": "string"
506
-          }
507
-        }
508
-      },
509
-      "ErrorResponse": {
510
-        "required": ["errorCode"],
511
-        "type": "object",
512
-        "properties": {
513
-          "errorCode": {
514
-            "type": "string",
515
-            "description": "业务约定的错误码"
516
-          },
517
-          "errorMessage": {
518
-            "type": "string",
519
-            "description": "业务上的错误信息"
520
-          },
521
-          "success": {
522
-            "type": "boolean",
523
-            "description": "业务上的请求是否成功"
524
-          }
525
-        }
526
-      },
527
-      "NoticeIconList": {
528
-        "type": "object",
529
-        "properties": {
530
-          "data": {
531
-            "type": "array",
532
-            "items": {
533
-              "$ref": "#/components/schemas/NoticeIconItem"
534
-            }
535
-          },
536
-          "total": {
537
-            "type": "integer",
538
-            "description": "列表的内容总数",
539
-            "format": "int32"
540
-          },
541
-          "success": {
542
-            "type": "boolean"
543
-          }
544
-        }
545
-      },
546
-      "NoticeIconItemType": {
547
-        "title": "NoticeIconItemType",
548
-        "description": "已读未读列表的枚举",
549
-        "type": "string",
550
-        "properties": {},
551
-        "enum": ["notification", "message", "event"]
552
-      },
553
-      "NoticeIconItem": {
554
-        "type": "object",
555
-        "properties": {
556
-          "id": {
557
-            "type": "string"
558
-          },
559
-          "extra": {
560
-            "type": "string",
561
-            "format": "any"
562
-          },
563
-          "key": { "type": "string" },
564
-          "read": {
565
-            "type": "boolean"
566
-          },
567
-          "avatar": {
568
-            "type": "string"
569
-          },
570
-          "title": {
571
-            "type": "string"
572
-          },
573
-          "status": {
574
-            "type": "string"
575
-          },
576
-          "datetime": {
577
-            "type": "string",
578
-            "format": "date"
579
-          },
580
-          "description": {
581
-            "type": "string"
582
-          },
583
-          "type": {
584
-            "extensions": {
585
-              "x-is-enum": true
586
-            },
587
-            "$ref": "#/components/schemas/NoticeIconItemType"
588
-          }
589
-        }
590
-      }
591
-    }
592
-  }
593
-}

+ 0
- 38
config/proxy.js 파일 보기

@@ -1,38 +0,0 @@
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
-    // localhost:8000/api/** -> https://preview.pro.ant.design/api/**
12
-    '/api/': {
13
-      // 要代理的地址
14
-      target: 'https://preview.pro.ant.design',
15
-      // 配置了这个可以从 http 代理到 https
16
-      // 依赖 origin 的功能可能需要这个,比如 cookie
17
-      changeOrigin: true,
18
-    },
19
-  },
20
-  test: {
21
-    '/api/': {
22
-      target: 'https://proapi.azurewebsites.net',
23
-      changeOrigin: true,
24
-      pathRewrite: {
25
-        '^': '',
26
-      },
27
-    },
28
-  },
29
-  pre: {
30
-    '/api/': {
31
-      target: 'your pre url',
32
-      changeOrigin: true,
33
-      pathRewrite: {
34
-        '^': '',
35
-      },
36
-    },
37
-  },
38
-};

+ 0
- 58
config/routes.js 파일 보기

@@ -1,58 +0,0 @@
1
-export default [
2
-  {
3
-    path: '/user',
4
-    layout: false,
5
-    routes: [
6
-      {
7
-        path: '/user',
8
-        routes: [
9
-          {
10
-            name: 'login',
11
-            path: '/user/login',
12
-            component: './user/Login',
13
-          },
14
-        ],
15
-      },
16
-      {
17
-        component: './404',
18
-      },
19
-    ],
20
-  },
21
-  {
22
-    path: '/welcome',
23
-    name: 'welcome',
24
-    icon: 'smile',
25
-    component: './Welcome',
26
-  },
27
-  {
28
-    path: '/admin',
29
-    name: 'admin',
30
-    icon: 'crown',
31
-    access: 'canAdmin',
32
-    component: './Admin',
33
-    routes: [
34
-      {
35
-        path: '/admin/sub-page',
36
-        name: 'sub-page',
37
-        icon: 'smile',
38
-        component: './Welcome',
39
-      },
40
-      {
41
-        component: './404',
42
-      },
43
-    ],
44
-  },
45
-  {
46
-    name: 'list.table-list',
47
-    icon: 'table',
48
-    path: '/list',
49
-    component: './TableList',
50
-  },
51
-  {
52
-    path: '/',
53
-    redirect: '/welcome',
54
-  },
55
-  {
56
-    component: './404',
57
-  },
58
-];

+ 0
- 9
jest.config.js 파일 보기

@@ -1,9 +0,0 @@
1
-module.exports = {
2
-  testURL: 'http://localhost:8000',
3
-  verbose: false,
4
-  extraSetupFiles: ['./tests/setupTests.js'],
5
-  globals: {
6
-    ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: false,
7
-    localStorage: null,
8
-  },
9
-};

+ 0
- 11
jsconfig.json 파일 보기

@@ -1,11 +0,0 @@
1
-{
2
-  "compilerOptions": {
3
-    "jsx": "react-jsx",
4
-    "emitDecoratorMetadata": true,
5
-    "experimentalDecorators": true,
6
-    "baseUrl": ".",
7
-    "paths": {
8
-      "@/*": ["./src/*"]
9
-    }
10
-  }
11
-}

+ 0
- 177
mock/listTableList.js 파일 보기

@@ -1,177 +0,0 @@
1
-import moment from 'moment';
2
-import { parse } from 'url'; // mock tableListDataSource
3
-
4
-const genList = (current, pageSize) => {
5
-  const tableListDataSource = [];
6
-
7
-  for (let i = 0; i < pageSize; i += 1) {
8
-    const index = (current - 1) * 10 + i;
9
-    tableListDataSource.push({
10
-      key: index,
11
-      disabled: i % 6 === 0,
12
-      href: 'https://ant.design',
13
-      avatar: [
14
-        'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
15
-        'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
16
-      ][i % 2],
17
-      name: `TradeCode ${index}`,
18
-      owner: '曲丽丽',
19
-      desc: '这是一段描述',
20
-      callNo: Math.floor(Math.random() * 1000),
21
-      status: Math.floor(Math.random() * 10) % 4,
22
-      updatedAt: moment().format('YYYY-MM-DD'),
23
-      createdAt: moment().format('YYYY-MM-DD'),
24
-      progress: Math.ceil(Math.random() * 100),
25
-    });
26
-  }
27
-
28
-  tableListDataSource.reverse();
29
-  return tableListDataSource;
30
-};
31
-
32
-let tableListDataSource = genList(1, 100);
33
-
34
-function getRule(req, res, u) {
35
-  let realUrl = u;
36
-
37
-  if (!realUrl || Object.prototype.toString.call(realUrl) !== '[object String]') {
38
-    realUrl = req.url;
39
-  }
40
-
41
-  const { current = 1, pageSize = 10 } = req.query;
42
-  const params = parse(realUrl, true).query;
43
-  let dataSource = [...tableListDataSource].slice((current - 1) * pageSize, current * pageSize);
44
-
45
-  if (params.sorter) {
46
-    const sorter = JSON.parse(params.sorter);
47
-    dataSource = dataSource.sort((prev, next) => {
48
-      let sortNumber = 0;
49
-      Object.keys(sorter).forEach((key) => {
50
-        if (sorter[key] === 'descend') {
51
-          if (prev[key] - next[key] > 0) {
52
-            sortNumber += -1;
53
-          } else {
54
-            sortNumber += 1;
55
-          }
56
-
57
-          return;
58
-        }
59
-
60
-        if (prev[key] - next[key] > 0) {
61
-          sortNumber += 1;
62
-        } else {
63
-          sortNumber += -1;
64
-        }
65
-      });
66
-      return sortNumber;
67
-    });
68
-  }
69
-
70
-  if (params.filter) {
71
-    const filter = JSON.parse(params.filter);
72
-
73
-    if (Object.keys(filter).length > 0) {
74
-      dataSource = dataSource.filter((item) => {
75
-        return Object.keys(filter).some((key) => {
76
-          if (!filter[key]) {
77
-            return true;
78
-          }
79
-
80
-          if (filter[key].includes(`${item[key]}`)) {
81
-            return true;
82
-          }
83
-
84
-          return false;
85
-        });
86
-      });
87
-    }
88
-  }
89
-
90
-  if (params.name) {
91
-    dataSource = dataSource.filter((data) => data?.name?.includes(params.name || ''));
92
-  }
93
-
94
-  const result = {
95
-    data: dataSource,
96
-    total: tableListDataSource.length,
97
-    success: true,
98
-    pageSize,
99
-    current: parseInt(`${params.current}`, 10) || 1,
100
-  };
101
-  return res.json(result);
102
-}
103
-
104
-function postRule(req, res, u, b) {
105
-  let realUrl = u;
106
-
107
-  if (!realUrl || Object.prototype.toString.call(realUrl) !== '[object String]') {
108
-    realUrl = req.url;
109
-  }
110
-
111
-  const body = (b && b.body) || req.body;
112
-  const { method, name, desc, key } = body;
113
-
114
-  switch (method) {
115
-    /* eslint no-case-declarations:0 */
116
-    case 'delete':
117
-      tableListDataSource = tableListDataSource.filter((item) => key.indexOf(item.key) === -1);
118
-      break;
119
-
120
-    case 'post':
121
-      (() => {
122
-        const i = Math.ceil(Math.random() * 10000);
123
-        const newRule = {
124
-          key: tableListDataSource.length,
125
-          href: 'https://ant.design',
126
-          avatar: [
127
-            'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
128
-            'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
129
-          ][i % 2],
130
-          name,
131
-          owner: '曲丽丽',
132
-          desc,
133
-          callNo: Math.floor(Math.random() * 1000),
134
-          status: Math.floor(Math.random() * 10) % 2,
135
-          updatedAt: moment().format('YYYY-MM-DD'),
136
-          createdAt: moment().format('YYYY-MM-DD'),
137
-          progress: Math.ceil(Math.random() * 100),
138
-        };
139
-        tableListDataSource.unshift(newRule);
140
-        return res.json(newRule);
141
-      })();
142
-
143
-      return;
144
-
145
-    case 'update':
146
-      (() => {
147
-        let newRule = {};
148
-        tableListDataSource = tableListDataSource.map((item) => {
149
-          if (item.key === key) {
150
-            newRule = { ...item, desc, name };
151
-            return { ...item, desc, name };
152
-          }
153
-
154
-          return item;
155
-        });
156
-        return res.json(newRule);
157
-      })();
158
-
159
-      return;
160
-
161
-    default:
162
-      break;
163
-  }
164
-
165
-  const result = {
166
-    list: tableListDataSource,
167
-    pagination: {
168
-      total: tableListDataSource.length,
169
-    },
170
-  };
171
-  res.json(result);
172
-}
173
-
174
-export default {
175
-  'GET /api/rule': getRule,
176
-  'POST /api/rule': postRule,
177
-};

+ 0
- 105
mock/notices.js 파일 보기

@@ -1,105 +0,0 @@
1
-const getNotices = (req, res) => {
2
-  res.json({
3
-    data: [
4
-      {
5
-        id: '000000001',
6
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
7
-        title: '你收到了 14 份新周报',
8
-        datetime: '2017-08-09',
9
-        type: 'notification',
10
-      },
11
-      {
12
-        id: '000000002',
13
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',
14
-        title: '你推荐的 曲妮妮 已通过第三轮面试',
15
-        datetime: '2017-08-08',
16
-        type: 'notification',
17
-      },
18
-      {
19
-        id: '000000003',
20
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png',
21
-        title: '这种模板可以区分多种通知类型',
22
-        datetime: '2017-08-07',
23
-        read: true,
24
-        type: 'notification',
25
-      },
26
-      {
27
-        id: '000000004',
28
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png',
29
-        title: '左侧图标用于区分不同的类型',
30
-        datetime: '2017-08-07',
31
-        type: 'notification',
32
-      },
33
-      {
34
-        id: '000000005',
35
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
36
-        title: '内容不要超过两行字,超出时自动截断',
37
-        datetime: '2017-08-07',
38
-        type: 'notification',
39
-      },
40
-      {
41
-        id: '000000006',
42
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
43
-        title: '曲丽丽 评论了你',
44
-        description: '描述信息描述信息描述信息',
45
-        datetime: '2017-08-07',
46
-        type: 'message',
47
-        clickClose: true,
48
-      },
49
-      {
50
-        id: '000000007',
51
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
52
-        title: '朱偏右 回复了你',
53
-        description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
54
-        datetime: '2017-08-07',
55
-        type: 'message',
56
-        clickClose: true,
57
-      },
58
-      {
59
-        id: '000000008',
60
-        avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
61
-        title: '标题',
62
-        description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
63
-        datetime: '2017-08-07',
64
-        type: 'message',
65
-        clickClose: true,
66
-      },
67
-      {
68
-        id: '000000009',
69
-        title: '任务名称',
70
-        description: '任务需要在 2017-01-12 20:00 前启动',
71
-        extra: '未开始',
72
-        status: 'todo',
73
-        type: 'event',
74
-      },
75
-      {
76
-        id: '000000010',
77
-        title: '第三方紧急代码变更',
78
-        description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
79
-        extra: '马上到期',
80
-        status: 'urgent',
81
-        type: 'event',
82
-      },
83
-      {
84
-        id: '000000011',
85
-        title: '信息安全考试',
86
-        description: '指派竹尔于 2017-01-09 前完成更新并发布',
87
-        extra: '已耗时 8 天',
88
-        status: 'doing',
89
-        type: 'event',
90
-      },
91
-      {
92
-        id: '000000012',
93
-        title: 'ABCD 版本发布',
94
-        description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
95
-        extra: '进行中',
96
-        status: 'processing',
97
-        type: 'event',
98
-      },
99
-    ],
100
-  });
101
-};
102
-
103
-export default {
104
-  'GET /api/notices': getNotices,
105
-};

+ 0
- 7
mock/route.js 파일 보기

@@ -1,7 +0,0 @@
1
-export default {
2
-  '/api/auth_routes': {
3
-    '/form/advanced-form': {
4
-      authority: ['admin', 'user'],
5
-    },
6
-  },
7
-};

+ 0
- 210
mock/user.js 파일 보기

@@ -1,210 +0,0 @@
1
-const waitTime = (time = 100) => {
2
-  return new Promise((resolve) => {
3
-    setTimeout(() => {
4
-      resolve(true);
5
-    }, time);
6
-  });
7
-};
8
-
9
-async function getFakeCaptcha(req, res) {
10
-  await waitTime(2000);
11
-  return res.json('captcha-xxx');
12
-}
13
-
14
-const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process.env;
15
-/**
16
- * 当前用户的权限,如果为空代表没登录
17
- * current user access, if is '', user need login
18
- * 如果是 pro 的预览,默认是有权限的
19
- */
20
-
21
-let access = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ? 'admin' : '';
22
-
23
-const getAccess = () => {
24
-  return access;
25
-}; // 代码中会兼容本地 service mock 以及部署站点的静态数据
26
-
27
-export default {
28
-  // 支持值为 Object 和 Array
29
-  'GET /api/currentUser': (req, res) => {
30
-    if (!getAccess()) {
31
-      res.status(401).send({
32
-        data: {
33
-          isLogin: false,
34
-        },
35
-        errorCode: '401',
36
-        errorMessage: '请先登录!',
37
-        success: true,
38
-      });
39
-      return;
40
-    }
41
-
42
-    res.send({
43
-      success: true,
44
-      data: {
45
-        name: 'Serati Ma',
46
-        avatar: 'https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png',
47
-        userid: '00000001',
48
-        email: 'antdesign@alipay.com',
49
-        signature: '海纳百川,有容乃大',
50
-        title: '交互专家',
51
-        group: '蚂蚁金服-某某某事业群-某某平台部-某某技术部-UED',
52
-        tags: [
53
-          {
54
-            key: '0',
55
-            label: '很有想法的',
56
-          },
57
-          {
58
-            key: '1',
59
-            label: '专注设计',
60
-          },
61
-          {
62
-            key: '2',
63
-            label: '辣~',
64
-          },
65
-          {
66
-            key: '3',
67
-            label: '大长腿',
68
-          },
69
-          {
70
-            key: '4',
71
-            label: '川妹子',
72
-          },
73
-          {
74
-            key: '5',
75
-            label: '海纳百川',
76
-          },
77
-        ],
78
-        notifyCount: 12,
79
-        unreadCount: 11,
80
-        country: 'China',
81
-        access: getAccess(),
82
-        geographic: {
83
-          province: {
84
-            label: '浙江省',
85
-            key: '330000',
86
-          },
87
-          city: {
88
-            label: '杭州市',
89
-            key: '330100',
90
-          },
91
-        },
92
-        address: '西湖区工专路 77 号',
93
-        phone: '0752-268888888',
94
-      },
95
-    });
96
-  },
97
-  // GET POST 可省略
98
-  'GET /api/users': [
99
-    {
100
-      key: '1',
101
-      name: 'John Brown',
102
-      age: 32,
103
-      address: 'New York No. 1 Lake Park',
104
-    },
105
-    {
106
-      key: '2',
107
-      name: 'Jim Green',
108
-      age: 42,
109
-      address: 'London No. 1 Lake Park',
110
-    },
111
-    {
112
-      key: '3',
113
-      name: 'Joe Black',
114
-      age: 32,
115
-      address: 'Sidney No. 1 Lake Park',
116
-    },
117
-  ],
118
-  'POST /api/login/account': async (req, res) => {
119
-    const { password, username, type } = req.body;
120
-    await waitTime(2000);
121
-
122
-    if (password === 'ant.design' && username === 'admin') {
123
-      res.send({
124
-        status: 'ok',
125
-        type,
126
-        currentAuthority: 'admin',
127
-      });
128
-      access = 'admin';
129
-      return;
130
-    }
131
-
132
-    if (password === 'ant.design' && username === 'user') {
133
-      res.send({
134
-        status: 'ok',
135
-        type,
136
-        currentAuthority: 'user',
137
-      });
138
-      access = 'user';
139
-      return;
140
-    }
141
-
142
-    if (type === 'mobile') {
143
-      res.send({
144
-        status: 'ok',
145
-        type,
146
-        currentAuthority: 'admin',
147
-      });
148
-      access = 'admin';
149
-      return;
150
-    }
151
-
152
-    res.send({
153
-      status: 'error',
154
-      type,
155
-      currentAuthority: 'guest',
156
-    });
157
-    access = 'guest';
158
-  },
159
-  'POST /api/login/outLogin': (req, res) => {
160
-    access = '';
161
-    res.send({
162
-      data: {},
163
-      success: true,
164
-    });
165
-  },
166
-  'POST /api/register': (req, res) => {
167
-    res.send({
168
-      status: 'ok',
169
-      currentAuthority: 'user',
170
-      success: true,
171
-    });
172
-  },
173
-  'GET /api/500': (req, res) => {
174
-    res.status(500).send({
175
-      timestamp: 1513932555104,
176
-      status: 500,
177
-      error: 'error',
178
-      message: 'error',
179
-      path: '/base/category/list',
180
-    });
181
-  },
182
-  'GET /api/404': (req, res) => {
183
-    res.status(404).send({
184
-      timestamp: 1513932643431,
185
-      status: 404,
186
-      error: 'Not Found',
187
-      message: 'No message available',
188
-      path: '/base/category/list/2121212',
189
-    });
190
-  },
191
-  'GET /api/403': (req, res) => {
192
-    res.status(403).send({
193
-      timestamp: 1513932555104,
194
-      status: 403,
195
-      error: 'Forbidden',
196
-      message: 'Forbidden',
197
-      path: '/base/category/list',
198
-    });
199
-  },
200
-  'GET /api/401': (req, res) => {
201
-    res.status(401).send({
202
-      timestamp: 1513932555104,
203
-      status: 401,
204
-      error: 'Unauthorized',
205
-      message: 'Unauthorized',
206
-      path: '/base/category/list',
207
-    });
208
-  },
209
-  'GET  /api/login/captcha': getFakeCaptcha,
210
-};

+ 0
- 100
package.json 파일 보기

@@ -1,100 +0,0 @@
1
-{
2
-  "name": "ant-design-pro",
3
-  "version": "5.2.0",
4
-  "private": true,
5
-  "description": "An out-of-box UI solution for enterprise applications",
6
-  "scripts": {
7
-    "analyze": "cross-env ANALYZE=1 umi build",
8
-    "build": "umi build",
9
-    "deploy": "npm run build && npm run gh-pages",
10
-    "dev": "npm run start:dev",
11
-    "gh-pages": "gh-pages -d dist",
12
-    "i18n-remove": "pro i18n-remove --locale=zh-CN --write",
13
-    "postinstall": "umi g tmp",
14
-    "lint": "umi g tmp && npm run lint:js && npm run lint:style && npm run lint:prettier && npm run tsc",
15
-    "lint-staged": "lint-staged",
16
-    "lint-staged:js": "eslint --ext .js,.jsx,.ts,.tsx ",
17
-    "lint:fix": "eslint --fix --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src && npm run lint:style",
18
-    "lint:js": "eslint --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src",
19
-    "lint:prettier": "prettier -c --write \"src/**/*\" --end-of-line auto",
20
-    "lint:style": "stylelint --fix \"src/**/*.less\" --syntax less",
21
-    "openapi": "umi openapi",
22
-    "playwright": "playwright install && playwright test",
23
-    "prettier": "prettier -c --write \"src/**/*\"",
24
-    "serve": "umi-serve",
25
-    "start": "cross-env UMI_ENV=dev umi dev",
26
-    "start:dev": "cross-env REACT_APP_ENV=dev MOCK=none UMI_ENV=dev umi dev",
27
-    "start:no-mock": "cross-env MOCK=none UMI_ENV=dev umi dev",
28
-    "start:no-ui": "cross-env UMI_UI=none UMI_ENV=dev umi dev",
29
-    "start:pre": "cross-env REACT_APP_ENV=pre UMI_ENV=dev umi dev",
30
-    "start:test": "cross-env REACT_APP_ENV=test MOCK=none UMI_ENV=dev umi dev",
31
-    "test": "umi test",
32
-    "test:component": "umi test ./src/components",
33
-    "test:e2e": "node ./tests/run-tests.js",
34
-    "tsc": "tsc --noEmit"
35
-  },
36
-  "lint-staged": {
37
-    "**/*.less": "stylelint --syntax less",
38
-    "**/*.{js,jsx,ts,tsx}": "npm run lint-staged:js",
39
-    "**/*.{js,jsx,tsx,ts,less,md,json}": ["prettier --write"]
40
-  },
41
-  "browserslist": ["> 1%", "last 2 versions", "not ie <= 10"],
42
-  "dependencies": {
43
-    "@ant-design/icons": "^4.7.0",
44
-    "@ant-design/pro-descriptions": "^1.10.0",
45
-    "@ant-design/pro-form": "^1.52.0",
46
-    "@ant-design/pro-layout": "^6.32.0",
47
-    "@ant-design/pro-table": "^2.61.0",
48
-    "@umijs/route-utils": "^2.0.0",
49
-    "antd": "^4.17.0",
50
-    "classnames": "^2.3.0",
51
-    "lodash": "^4.17.0",
52
-    "moment": "^2.29.0",
53
-    "omit.js": "^2.0.2",
54
-    "rc-menu": "^9.1.0",
55
-    "rc-util": "^5.16.0",
56
-    "react": "^17.0.0",
57
-    "react-dev-inspector": "^1.7.0",
58
-    "react-dom": "^17.0.0",
59
-    "react-helmet-async": "^1.2.0",
60
-    "umi": "^3.5.0"
61
-  },
62
-  "devDependencies": {
63
-    "@ant-design/pro-cli": "^2.1.0",
64
-    "@playwright/test": "^1.17.0",
65
-    "@types/express": "^4.17.0",
66
-    "@types/history": "^4.7.0",
67
-    "@types/jest": "^26.0.0",
68
-    "@types/lodash": "^4.14.0",
69
-    "@types/react": "^17.0.0",
70
-    "@types/react-dom": "^17.0.0",
71
-    "@types/react-helmet": "^6.1.0",
72
-    "@umijs/fabric": "^2.8.0",
73
-    "@umijs/openapi": "^1.3.0",
74
-    "@umijs/plugin-blocks": "^2.2.0",
75
-    "@umijs/plugin-esbuild": "^1.4.0",
76
-    "@umijs/plugin-openapi": "^1.3.0",
77
-    "@umijs/preset-ant-design-pro": "^1.3.0",
78
-    "@umijs/preset-dumi": "^1.1.0",
79
-    "@umijs/preset-react": "^1.8.17",
80
-    "@umijs/yorkie": "^2.0.5",
81
-    "carlo": "^0.9.46",
82
-    "cross-env": "^7.0.0",
83
-    "cross-port-killer": "^1.3.0",
84
-    "detect-installer": "^1.0.0",
85
-    "enzyme": "^3.11.0",
86
-    "eslint": "^7.32.0",
87
-    "express": "^4.17.0",
88
-    "gh-pages": "^3.2.0",
89
-    "jsdom-global": "^3.0.0",
90
-    "lint-staged": "^10.0.0",
91
-    "mockjs": "^1.1.0",
92
-    "prettier": "^2.5.0",
93
-    "puppeteer-core": "^8.0.0",
94
-    "stylelint": "^13.0.0",
95
-    "swagger-ui-react": "^3.52.0",
96
-    "typescript": "^4.5.0",
97
-    "umi-serve": "^1.9.10"
98
-  },
99
-  "engines": { "node": ">=10.0.0" }
100
-}

+ 0
- 20
playwright.config.js 파일 보기

@@ -1,20 +0,0 @@
1
-// playwright.config.ts
2
-import { devices } from '@playwright/test';
3
-const config = {
4
-  forbidOnly: !!process.env.CI,
5
-  retries: process.env.CI ? 2 : 0,
6
-  use: {
7
-    trace: 'on-first-retry',
8
-  },
9
-  projects: [
10
-    {
11
-      name: 'chromium',
12
-      use: { ...devices['Desktop Chrome'] },
13
-    },
14
-    {
15
-      name: 'firefox',
16
-      use: { ...devices['Desktop Firefox'] },
17
-    },
18
-  ],
19
-};
20
-export default config;

+ 0
- 9
src/access.js 파일 보기

@@ -1,9 +0,0 @@
1
-/**
2
- * @see https://umijs.org/zh-CN/plugins/plugin-access
3
- * */
4
-export default function access(initialState) {
5
-  const { currentUser } = initialState || {};
6
-  return {
7
-    canAdmin: currentUser && currentUser.access === 'admin',
8
-  };
9
-}

+ 0
- 97
src/app.jsx 파일 보기

@@ -1,97 +0,0 @@
1
-import { SettingDrawer } from '@ant-design/pro-layout';
2
-import { PageLoading } from '@ant-design/pro-layout';
3
-import { history, Link } from 'umi';
4
-import RightContent from '@/components/RightContent';
5
-import Footer from '@/components/Footer';
6
-import { currentUser as queryCurrentUser } from './services/ant-design-pro/api';
7
-import { BookOutlined, LinkOutlined } from '@ant-design/icons';
8
-import defaultSettings from '../config/defaultSettings';
9
-const isDev = process.env.NODE_ENV === 'development';
10
-const loginPath = '/user/login';
11
-/** 获取用户信息比较慢的时候会展示一个 loading */
12
-
13
-export const initialStateConfig = {
14
-  loading: <PageLoading />,
15
-};
16
-/**
17
- * @see  https://umijs.org/zh-CN/plugins/plugin-initial-state
18
- * */
19
-
20
-export async function getInitialState() {
21
-  const fetchUserInfo = async () => {
22
-    try {
23
-      const msg = await queryCurrentUser();
24
-      return msg.data;
25
-    } catch (error) {
26
-      history.push(loginPath);
27
-    }
28
-
29
-    return undefined;
30
-  }; // 如果是登录页面,不执行
31
-
32
-  if (history.location.pathname !== loginPath) {
33
-    const currentUser = await fetchUserInfo();
34
-    return {
35
-      fetchUserInfo,
36
-      currentUser,
37
-      settings: defaultSettings,
38
-    };
39
-  }
40
-
41
-  return {
42
-    fetchUserInfo,
43
-    settings: defaultSettings,
44
-  };
45
-} // ProLayout 支持的api https://procomponents.ant.design/components/layout
46
-
47
-export const layout = ({ initialState, setInitialState }) => {
48
-  return {
49
-    rightContentRender: () => <RightContent />,
50
-    disableContentMargin: false,
51
-    waterMarkProps: {
52
-      content: initialState?.currentUser?.name,
53
-    },
54
-    footerRender: () => <Footer />,
55
-    onPageChange: () => {
56
-      const { location } = history; // 如果没有登录,重定向到 login
57
-
58
-      if (!initialState?.currentUser && location.pathname !== loginPath) {
59
-        history.push(loginPath);
60
-      }
61
-    },
62
-    links: isDev
63
-      ? [
64
-          <Link to="/umi/plugin/openapi" target="_blank">
65
-            <LinkOutlined />
66
-            <span>OpenAPI 文档</span>
67
-          </Link>,
68
-          <Link to="/~docs">
69
-            <BookOutlined />
70
-            <span>业务组件文档</span>
71
-          </Link>,
72
-        ]
73
-      : [],
74
-    menuHeaderRender: undefined,
75
-    // 自定义 403 页面
76
-    // unAccessible: <div>unAccessible</div>,
77
-    // 增加一个 loading 的状态
78
-    childrenRender: (children, props) => {
79
-      // if (initialState?.loading) return <PageLoading />;
80
-      return (
81
-        <>
82
-          {children}
83
-          {!props.location?.pathname?.includes('/login') && (
84
-            <SettingDrawer
85
-              enableDarkTheme
86
-              settings={initialState?.settings}
87
-              onSettingChange={(settings) => {
88
-                setInitialState((preInitialState) => ({ ...preInitialState, settings }));
89
-              }}
90
-            />
91
-          )}
92
-        </>
93
-      );
94
-    },
95
-    ...initialState?.settings,
96
-  };
97
-};

+ 0
- 39
src/components/Footer/index.jsx 파일 보기

@@ -1,39 +0,0 @@
1
-import { useIntl } from 'umi';
2
-import { GithubOutlined } from '@ant-design/icons';
3
-import { DefaultFooter } from '@ant-design/pro-layout';
4
-
5
-const Footer = () => {
6
-  const intl = useIntl();
7
-  const defaultMessage = intl.formatMessage({
8
-    id: 'app.copyright.produced',
9
-    defaultMessage: '蚂蚁集团体验技术部出品',
10
-  });
11
-  const currentYear = new Date().getFullYear();
12
-  return (
13
-    <DefaultFooter
14
-      copyright={`${currentYear} ${defaultMessage}`}
15
-      links={[
16
-        {
17
-          key: 'Ant Design Pro',
18
-          title: 'Ant Design Pro',
19
-          href: 'https://pro.ant.design',
20
-          blankTarget: true,
21
-        },
22
-        {
23
-          key: 'github',
24
-          title: <GithubOutlined />,
25
-          href: 'https://github.com/ant-design/ant-design-pro',
26
-          blankTarget: true,
27
-        },
28
-        {
29
-          key: 'Ant Design',
30
-          title: 'Ant Design',
31
-          href: 'https://ant.design',
32
-          blankTarget: true,
33
-        },
34
-      ]}
35
-    />
36
-  );
37
-};
38
-
39
-export default Footer;

+ 0
- 10
src/components/HeaderDropdown/index.jsx 파일 보기

@@ -1,10 +0,0 @@
1
-import { Dropdown } from 'antd';
2
-import React from 'react';
3
-import classNames from 'classnames';
4
-import styles from './index.less';
5
-
6
-const HeaderDropdown = ({ overlayClassName: cls, ...restProps }) => (
7
-  <Dropdown overlayClassName={classNames(styles.container, cls)} {...restProps} />
8
-);
9
-
10
-export default HeaderDropdown;

+ 0
- 16
src/components/HeaderDropdown/index.less 파일 보기

@@ -1,16 +0,0 @@
1
-@import (reference) '~antd/es/style/themes/index';
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
-}

+ 0
- 83
src/components/HeaderSearch/index.jsx 파일 보기

@@ -1,83 +0,0 @@
1
-import { SearchOutlined } from '@ant-design/icons';
2
-import { AutoComplete, Input } from 'antd';
3
-import useMergedState from 'rc-util/es/hooks/useMergedState';
4
-import React, { useRef } from 'react';
5
-import classNames from 'classnames';
6
-import styles from './index.less';
7
-
8
-const HeaderSearch = (props) => {
9
-  const {
10
-    className,
11
-    defaultValue,
12
-    onVisibleChange,
13
-    placeholder,
14
-    visible,
15
-    defaultVisible,
16
-    ...restProps
17
-  } = props;
18
-  const inputRef = useRef(null);
19
-  const [value, setValue] = useMergedState(defaultValue, {
20
-    value: props.value,
21
-    onChange: props.onChange,
22
-  });
23
-  const [searchMode, setSearchMode] = useMergedState(defaultVisible ?? false, {
24
-    value: props.visible,
25
-    onChange: onVisibleChange,
26
-  });
27
-  const inputClass = classNames(styles.input, {
28
-    [styles.show]: searchMode,
29
-  });
30
-  return (
31
-    <div
32
-      className={classNames(className, styles.headerSearch)}
33
-      onClick={() => {
34
-        setSearchMode(true);
35
-
36
-        if (searchMode && inputRef.current) {
37
-          inputRef.current.focus();
38
-        }
39
-      }}
40
-      onTransitionEnd={({ propertyName }) => {
41
-        if (propertyName === 'width' && !searchMode) {
42
-          if (onVisibleChange) {
43
-            onVisibleChange(searchMode);
44
-          }
45
-        }
46
-      }}
47
-    >
48
-      <SearchOutlined
49
-        key="Icon"
50
-        style={{
51
-          cursor: 'pointer',
52
-        }}
53
-      />
54
-      <AutoComplete
55
-        key="AutoComplete"
56
-        className={inputClass}
57
-        value={value}
58
-        options={restProps.options}
59
-        onChange={setValue}
60
-      >
61
-        <Input
62
-          size="small"
63
-          ref={inputRef}
64
-          defaultValue={defaultValue}
65
-          aria-label={placeholder}
66
-          placeholder={placeholder}
67
-          onKeyDown={(e) => {
68
-            if (e.key === 'Enter') {
69
-              if (restProps.onSearch) {
70
-                restProps.onSearch(value);
71
-              }
72
-            }
73
-          }}
74
-          onBlur={() => {
75
-            setSearchMode(false);
76
-          }}
77
-        />
78
-      </AutoComplete>
79
-    </div>
80
-  );
81
-};
82
-
83
-export default HeaderSearch;

+ 0
- 25
src/components/HeaderSearch/index.less 파일 보기

@@ -1,25 +0,0 @@
1
-@import (reference) '~antd/es/style/themes/index';
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
-}

+ 0
- 114
src/components/NoticeIcon/NoticeIcon.jsx 파일 보기

@@ -1,114 +0,0 @@
1
-import { BellOutlined } from '@ant-design/icons';
2
-import { Badge, Spin, Tabs } from 'antd';
3
-import useMergedState from 'rc-util/es/hooks/useMergedState';
4
-import React from 'react';
5
-import classNames from 'classnames';
6
-import NoticeList from './NoticeList';
7
-import HeaderDropdown from '../HeaderDropdown';
8
-import styles from './index.less';
9
-const { TabPane } = Tabs;
10
-
11
-const NoticeIcon = (props) => {
12
-  const getNotificationBox = () => {
13
-    const {
14
-      children,
15
-      loading,
16
-      onClear,
17
-      onTabChange,
18
-      onItemClick,
19
-      onViewMore,
20
-      clearText,
21
-      viewMoreText,
22
-    } = props;
23
-
24
-    if (!children) {
25
-      return null;
26
-    }
27
-
28
-    const panes = [];
29
-    React.Children.forEach(children, (child) => {
30
-      if (!child) {
31
-        return;
32
-      }
33
-
34
-      const { list, title, count, tabKey, showClear, showViewMore } = child.props;
35
-      const len = list && list.length ? list.length : 0;
36
-      const msgCount = count || count === 0 ? count : len;
37
-      const tabTitle = msgCount > 0 ? `${title} (${msgCount})` : title;
38
-      panes.push(
39
-        <TabPane tab={tabTitle} key={tabKey}>
40
-          <NoticeList
41
-            clearText={clearText}
42
-            viewMoreText={viewMoreText}
43
-            list={list}
44
-            tabKey={tabKey}
45
-            onClear={() => onClear && onClear(title, tabKey)}
46
-            onClick={(item) => onItemClick && onItemClick(item, child.props)}
47
-            onViewMore={(event) => onViewMore && onViewMore(child.props, event)}
48
-            showClear={showClear}
49
-            showViewMore={showViewMore}
50
-            title={title}
51
-          />
52
-        </TabPane>,
53
-      );
54
-    });
55
-    return (
56
-      <>
57
-        <Spin spinning={loading} delay={300}>
58
-          <Tabs className={styles.tabs} onChange={onTabChange}>
59
-            {panes}
60
-          </Tabs>
61
-        </Spin>
62
-      </>
63
-    );
64
-  };
65
-
66
-  const { className, count, bell } = props;
67
-  const [visible, setVisible] = useMergedState(false, {
68
-    value: props.popupVisible,
69
-    onChange: props.onPopupVisibleChange,
70
-  });
71
-  const noticeButtonClass = classNames(className, styles.noticeButton);
72
-  const notificationBox = getNotificationBox();
73
-  const NoticeBellIcon = bell || <BellOutlined className={styles.icon} />;
74
-  const trigger = (
75
-    <span
76
-      className={classNames(noticeButtonClass, {
77
-        opened: visible,
78
-      })}
79
-    >
80
-      <Badge
81
-        count={count}
82
-        style={{
83
-          boxShadow: 'none',
84
-        }}
85
-        className={styles.badge}
86
-      >
87
-        {NoticeBellIcon}
88
-      </Badge>
89
-    </span>
90
-  );
91
-
92
-  if (!notificationBox) {
93
-    return trigger;
94
-  }
95
-
96
-  return (
97
-    <HeaderDropdown
98
-      placement="bottomRight"
99
-      overlay={notificationBox}
100
-      overlayClassName={styles.popover}
101
-      trigger={['click']}
102
-      visible={visible}
103
-      onVisibleChange={setVisible}
104
-    >
105
-      {trigger}
106
-    </HeaderDropdown>
107
-  );
108
-};
109
-
110
-NoticeIcon.defaultProps = {
111
-  emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/wAhyIChODzsoKIOBHcBk.svg',
112
-};
113
-NoticeIcon.Tab = NoticeList;
114
-export default NoticeIcon;

+ 0
- 97
src/components/NoticeIcon/NoticeList.jsx 파일 보기

@@ -1,97 +0,0 @@
1
-import { Avatar, List } from 'antd';
2
-import React from 'react';
3
-import classNames from 'classnames';
4
-import styles from './NoticeList.less';
5
-
6
-const NoticeList = ({
7
-  list = [],
8
-  onClick,
9
-  onClear,
10
-  title,
11
-  onViewMore,
12
-  emptyText,
13
-  showClear = true,
14
-  clearText,
15
-  viewMoreText,
16
-  showViewMore = false,
17
-}) => {
18
-  if (!list || list.length === 0) {
19
-    return (
20
-      <div className={styles.notFound}>
21
-        <img
22
-          src="https://gw.alipayobjects.com/zos/rmsportal/sAuJeJzSKbUmHfBQRzmZ.svg"
23
-          alt="not found"
24
-        />
25
-        <div>{emptyText}</div>
26
-      </div>
27
-    );
28
-  }
29
-
30
-  return (
31
-    <div>
32
-      <List
33
-        className={styles.list}
34
-        dataSource={list}
35
-        renderItem={(item, i) => {
36
-          const itemCls = classNames(styles.item, {
37
-            [styles.read]: item.read,
38
-          }); // eslint-disable-next-line no-nested-ternary
39
-
40
-          const leftIcon = item.avatar ? (
41
-            typeof item.avatar === 'string' ? (
42
-              <Avatar className={styles.avatar} src={item.avatar} />
43
-            ) : (
44
-              <span className={styles.iconElement}>{item.avatar}</span>
45
-            )
46
-          ) : null;
47
-          return (
48
-            <List.Item
49
-              className={itemCls}
50
-              key={item.key || i}
51
-              onClick={() => {
52
-                onClick?.(item);
53
-              }}
54
-            >
55
-              <List.Item.Meta
56
-                className={styles.meta}
57
-                avatar={leftIcon}
58
-                title={
59
-                  <div className={styles.title}>
60
-                    {item.title}
61
-                    <div className={styles.extra}>{item.extra}</div>
62
-                  </div>
63
-                }
64
-                description={
65
-                  <div>
66
-                    <div className={styles.description}>{item.description}</div>
67
-                    <div className={styles.datetime}>{item.datetime}</div>
68
-                  </div>
69
-                }
70
-              />
71
-            </List.Item>
72
-          );
73
-        }}
74
-      />
75
-      <div className={styles.bottomBar}>
76
-        {showClear ? (
77
-          <div onClick={onClear}>
78
-            {clearText} {title}
79
-          </div>
80
-        ) : null}
81
-        {showViewMore ? (
82
-          <div
83
-            onClick={(e) => {
84
-              if (onViewMore) {
85
-                onViewMore(e);
86
-              }
87
-            }}
88
-          >
89
-            {viewMoreText}
90
-          </div>
91
-        ) : null}
92
-      </div>
93
-    </div>
94
-  );
95
-};
96
-
97
-export default NoticeList;

+ 0
- 103
src/components/NoticeIcon/NoticeList.less 파일 보기

@@ -1,103 +0,0 @@
1
-@import (reference) '~antd/es/style/themes/index';
2
-
3
-.list {
4
-  max-height: 400px;
5
-  overflow: auto;
6
-  &::-webkit-scrollbar {
7
-    display: none;
8
-  }
9
-  .item {
10
-    padding-right: 24px;
11
-    padding-left: 24px;
12
-    overflow: hidden;
13
-    cursor: pointer;
14
-    transition: all 0.3s;
15
-
16
-    .meta {
17
-      width: 100%;
18
-    }
19
-
20
-    .avatar {
21
-      margin-top: 4px;
22
-      background: @component-background;
23
-    }
24
-    .iconElement {
25
-      font-size: 32px;
26
-    }
27
-
28
-    &.read {
29
-      opacity: 0.4;
30
-    }
31
-    &:last-child {
32
-      border-bottom: 0;
33
-    }
34
-    &:hover {
35
-      background: @primary-1;
36
-    }
37
-    .title {
38
-      margin-bottom: 8px;
39
-      font-weight: normal;
40
-    }
41
-    .description {
42
-      font-size: 12px;
43
-      line-height: @line-height-base;
44
-    }
45
-    .datetime {
46
-      margin-top: 4px;
47
-      font-size: 12px;
48
-      line-height: @line-height-base;
49
-    }
50
-    .extra {
51
-      float: right;
52
-      margin-top: -1.5px;
53
-      margin-right: 0;
54
-      color: @text-color-secondary;
55
-      font-weight: normal;
56
-    }
57
-  }
58
-  .loadMore {
59
-    padding: 8px 0;
60
-    color: @primary-6;
61
-    text-align: center;
62
-    cursor: pointer;
63
-    &.loadedAll {
64
-      color: rgba(0, 0, 0, 0.25);
65
-      cursor: unset;
66
-    }
67
-  }
68
-}
69
-
70
-.notFound {
71
-  padding: 73px 0 88px;
72
-  color: @text-color-secondary;
73
-  text-align: center;
74
-  img {
75
-    display: inline-block;
76
-    height: 76px;
77
-    margin-bottom: 16px;
78
-  }
79
-}
80
-
81
-.bottomBar {
82
-  height: 46px;
83
-  color: @text-color;
84
-  line-height: 46px;
85
-  text-align: center;
86
-  border-top: 1px solid @border-color-split;
87
-  border-radius: 0 0 @border-radius-base @border-radius-base;
88
-  transition: all 0.3s;
89
-  div {
90
-    display: inline-block;
91
-    width: 50%;
92
-    cursor: pointer;
93
-    transition: all 0.3s;
94
-    user-select: none;
95
-
96
-    &:only-child {
97
-      width: 100%;
98
-    }
99
-    &:not(:only-child):last-child {
100
-      border-left: 1px solid @border-color-split;
101
-    }
102
-  }
103
-}

+ 0
- 148
src/components/NoticeIcon/index.jsx 파일 보기

@@ -1,148 +0,0 @@
1
-import { useEffect, useState } from 'react';
2
-import { Tag, message } from 'antd';
3
-import { groupBy } from 'lodash';
4
-import moment from 'moment';
5
-import { useModel, useRequest } from 'umi';
6
-import { getNotices } from '@/services/ant-design-pro/api';
7
-import NoticeIcon from './NoticeIcon';
8
-import styles from './index.less';
9
-
10
-const getNoticeData = (notices) => {
11
-  if (!notices || notices.length === 0 || !Array.isArray(notices)) {
12
-    return {};
13
-  }
14
-
15
-  const newNotices = notices.map((notice) => {
16
-    const newNotice = { ...notice };
17
-
18
-    if (newNotice.datetime) {
19
-      newNotice.datetime = moment(notice.datetime).fromNow();
20
-    }
21
-
22
-    if (newNotice.id) {
23
-      newNotice.key = newNotice.id;
24
-    }
25
-
26
-    if (newNotice.extra && newNotice.status) {
27
-      const color = {
28
-        todo: '',
29
-        processing: 'blue',
30
-        urgent: 'red',
31
-        doing: 'gold',
32
-      }[newNotice.status];
33
-      newNotice.extra = (
34
-        <Tag
35
-          color={color}
36
-          style={{
37
-            marginRight: 0,
38
-          }}
39
-        >
40
-          {newNotice.extra}
41
-        </Tag>
42
-      );
43
-    }
44
-
45
-    return newNotice;
46
-  });
47
-  return groupBy(newNotices, 'type');
48
-};
49
-
50
-const getUnreadData = (noticeData) => {
51
-  const unreadMsg = {};
52
-  Object.keys(noticeData).forEach((key) => {
53
-    const value = noticeData[key];
54
-
55
-    if (!unreadMsg[key]) {
56
-      unreadMsg[key] = 0;
57
-    }
58
-
59
-    if (Array.isArray(value)) {
60
-      unreadMsg[key] = value.filter((item) => !item.read).length;
61
-    }
62
-  });
63
-  return unreadMsg;
64
-};
65
-
66
-const NoticeIconView = () => {
67
-  const { initialState } = useModel('@@initialState');
68
-  const { currentUser } = initialState || {};
69
-  const [notices, setNotices] = useState([]);
70
-  const { data } = useRequest(getNotices);
71
-  useEffect(() => {
72
-    setNotices(data || []);
73
-  }, [data]);
74
-  const noticeData = getNoticeData(notices);
75
-  const unreadMsg = getUnreadData(noticeData || {});
76
-
77
-  const changeReadState = (id) => {
78
-    setNotices(
79
-      notices.map((item) => {
80
-        const notice = { ...item };
81
-
82
-        if (notice.id === id) {
83
-          notice.read = true;
84
-        }
85
-
86
-        return notice;
87
-      }),
88
-    );
89
-  };
90
-
91
-  const clearReadState = (title, key) => {
92
-    setNotices(
93
-      notices.map((item) => {
94
-        const notice = { ...item };
95
-
96
-        if (notice.type === key) {
97
-          notice.read = true;
98
-        }
99
-
100
-        return notice;
101
-      }),
102
-    );
103
-    message.success(`${'清空了'} ${title}`);
104
-  };
105
-
106
-  return (
107
-    <NoticeIcon
108
-      className={styles.action}
109
-      count={currentUser && currentUser.unreadCount}
110
-      onItemClick={(item) => {
111
-        changeReadState(item.id);
112
-      }}
113
-      onClear={(title, key) => clearReadState(title, key)}
114
-      loading={false}
115
-      clearText="清空"
116
-      viewMoreText="查看更多"
117
-      onViewMore={() => message.info('Click on view more')}
118
-      clearClose
119
-    >
120
-      <NoticeIcon.Tab
121
-        tabKey="notification"
122
-        count={unreadMsg.notification}
123
-        list={noticeData.notification}
124
-        title="通知"
125
-        emptyText="你已查看所有通知"
126
-        showViewMore
127
-      />
128
-      <NoticeIcon.Tab
129
-        tabKey="message"
130
-        count={unreadMsg.message}
131
-        list={noticeData.message}
132
-        title="消息"
133
-        emptyText="您已读完所有消息"
134
-        showViewMore
135
-      />
136
-      <NoticeIcon.Tab
137
-        tabKey="event"
138
-        title="待办"
139
-        emptyText="你已完成所有待办"
140
-        count={unreadMsg.event}
141
-        list={noticeData.event}
142
-        showViewMore
143
-      />
144
-    </NoticeIcon>
145
-  );
146
-};
147
-
148
-export default NoticeIconView;

+ 0
- 35
src/components/NoticeIcon/index.less 파일 보기

@@ -1,35 +0,0 @@
1
-@import (reference) '~antd/es/style/themes/index';
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-nav {
32
-      margin-bottom: 0;
33
-    }
34
-  }
35
-}

+ 0
- 98
src/components/RightContent/AvatarDropdown.jsx 파일 보기

@@ -1,98 +0,0 @@
1
-import React, { useCallback } from 'react';
2
-import { LogoutOutlined, SettingOutlined, UserOutlined } from '@ant-design/icons';
3
-import { Avatar, Menu, Spin } from 'antd';
4
-import { history, useModel } from 'umi';
5
-import { stringify } from 'querystring';
6
-import HeaderDropdown from '../HeaderDropdown';
7
-import styles from './index.less';
8
-import { outLogin } from '@/services/ant-design-pro/api';
9
-
10
-/**
11
- * 退出登录,并且将当前的 url 保存
12
- */
13
-const loginOut = async () => {
14
-  await outLogin();
15
-  const { query = {}, search, pathname } = history.location;
16
-  const { redirect } = query; // Note: There may be security issues, please note
17
-
18
-  if (window.location.pathname !== '/user/login' && !redirect) {
19
-    history.replace({
20
-      pathname: '/user/login',
21
-      search: stringify({
22
-        redirect: pathname + search,
23
-      }),
24
-    });
25
-  }
26
-};
27
-
28
-const AvatarDropdown = ({ menu }) => {
29
-  const { initialState, setInitialState } = useModel('@@initialState');
30
-  const onMenuClick = useCallback(
31
-    (event) => {
32
-      const { key } = event;
33
-
34
-      if (key === 'logout') {
35
-        setInitialState((s) => ({ ...s, currentUser: undefined }));
36
-        loginOut();
37
-        return;
38
-      }
39
-
40
-      history.push(`/account/${key}`);
41
-    },
42
-    [setInitialState],
43
-  );
44
-  const loading = (
45
-    <span className={`${styles.action} ${styles.account}`}>
46
-      <Spin
47
-        size="small"
48
-        style={{
49
-          marginLeft: 8,
50
-          marginRight: 8,
51
-        }}
52
-      />
53
-    </span>
54
-  );
55
-
56
-  if (!initialState) {
57
-    return loading;
58
-  }
59
-
60
-  const { currentUser } = initialState;
61
-
62
-  if (!currentUser || !currentUser.name) {
63
-    return loading;
64
-  }
65
-
66
-  const menuHeaderDropdown = (
67
-    <Menu className={styles.menu} selectedKeys={[]} onClick={onMenuClick}>
68
-      {menu && (
69
-        <Menu.Item key="center">
70
-          <UserOutlined />
71
-          个人中心
72
-        </Menu.Item>
73
-      )}
74
-      {menu && (
75
-        <Menu.Item key="settings">
76
-          <SettingOutlined />
77
-          个人设置
78
-        </Menu.Item>
79
-      )}
80
-      {menu && <Menu.Divider />}
81
-
82
-      <Menu.Item key="logout">
83
-        <LogoutOutlined />
84
-        退出登录
85
-      </Menu.Item>
86
-    </Menu>
87
-  );
88
-  return (
89
-    <HeaderDropdown overlay={menuHeaderDropdown}>
90
-      <span className={`${styles.action} ${styles.account}`}>
91
-        <Avatar size="small" className={styles.avatar} src={currentUser.avatar} alt="avatar" />
92
-        <span className={`${styles.name} anticon`}>{currentUser.name}</span>
93
-      </span>
94
-    </HeaderDropdown>
95
-  );
96
-};
97
-
98
-export default AvatarDropdown;

+ 0
- 64
src/components/RightContent/index.jsx 파일 보기

@@ -1,64 +0,0 @@
1
-import { Space } from 'antd';
2
-import { QuestionCircleOutlined } from '@ant-design/icons';
3
-import React from 'react';
4
-import { useModel, SelectLang } from 'umi';
5
-import Avatar from './AvatarDropdown';
6
-import HeaderSearch from '../HeaderSearch';
7
-import styles from './index.less';
8
-
9
-const GlobalHeaderRight = () => {
10
-  const { initialState } = useModel('@@initialState');
11
-
12
-  if (!initialState || !initialState.settings) {
13
-    return null;
14
-  }
15
-
16
-  const { navTheme, layout } = initialState.settings;
17
-  let className = styles.right;
18
-
19
-  if ((navTheme === 'dark' && layout === 'top') || layout === 'mix') {
20
-    className = `${styles.right}  ${styles.dark}`;
21
-  }
22
-
23
-  return (
24
-    <Space className={className}>
25
-      <HeaderSearch
26
-        className={`${styles.action} ${styles.search}`}
27
-        placeholder="站内搜索"
28
-        defaultValue="umi ui"
29
-        options={[
30
-          {
31
-            label: <a href="https://umijs.org/zh/guide/umi-ui.html">umi ui</a>,
32
-            value: 'umi ui',
33
-          },
34
-          {
35
-            label: <a href="next.ant.design">Ant Design</a>,
36
-            value: 'Ant Design',
37
-          },
38
-          {
39
-            label: <a href="https://protable.ant.design/">Pro Table</a>,
40
-            value: 'Pro Table',
41
-          },
42
-          {
43
-            label: <a href="https://prolayout.ant.design/">Pro Layout</a>,
44
-            value: 'Pro Layout',
45
-          },
46
-        ]} // onSearch={value => {
47
-        //   console.log('input', value);
48
-        // }}
49
-      />
50
-      <span
51
-        className={styles.action}
52
-        onClick={() => {
53
-          window.open('https://pro.ant.design/docs/getting-started');
54
-        }}
55
-      >
56
-        <QuestionCircleOutlined />
57
-      </span>
58
-      <Avatar />
59
-      <SelectLang className={styles.action} />
60
-    </Space>
61
-  );
62
-};
63
-
64
-export default GlobalHeaderRight;

+ 0
- 84
src/components/RightContent/index.less 파일 보기

@@ -1,84 +0,0 @@
1
-@import (reference) '~antd/es/style/themes/index';
2
-
3
-@pro-header-hover-bg: rgba(0, 0, 0, 0.025);
4
-
5
-.menu {
6
-  :global(.anticon) {
7
-    margin-right: 8px;
8
-  }
9
-  :global(.ant-dropdown-menu-item) {
10
-    min-width: 160px;
11
-  }
12
-}
13
-
14
-.right {
15
-  display: flex;
16
-  float: right;
17
-  height: 48px;
18
-  margin-left: auto;
19
-  overflow: hidden;
20
-  .action {
21
-    display: flex;
22
-    align-items: center;
23
-    height: 48px;
24
-    padding: 0 12px;
25
-    cursor: pointer;
26
-    transition: all 0.3s;
27
-    > span {
28
-      vertical-align: middle;
29
-    }
30
-    &:hover {
31
-      background: @pro-header-hover-bg;
32
-    }
33
-    &:global(.opened) {
34
-      background: @pro-header-hover-bg;
35
-    }
36
-  }
37
-  .search {
38
-    padding: 0 12px;
39
-    &:hover {
40
-      background: transparent;
41
-    }
42
-  }
43
-  .account {
44
-    .avatar {
45
-      margin-right: 8px;
46
-      color: @primary-color;
47
-      vertical-align: top;
48
-      background: rgba(255, 255, 255, 0.85);
49
-    }
50
-  }
51
-}
52
-
53
-.dark {
54
-  .action {
55
-    &:hover {
56
-      background: #252a3d;
57
-    }
58
-    &:global(.opened) {
59
-      background: #252a3d;
60
-    }
61
-  }
62
-}
63
-
64
-@media only screen and (max-width: @screen-md) {
65
-  :global(.ant-divider-vertical) {
66
-    vertical-align: unset;
67
-  }
68
-  .name {
69
-    display: none;
70
-  }
71
-  .right {
72
-    position: absolute;
73
-    top: 0;
74
-    right: 12px;
75
-    .account {
76
-      .avatar {
77
-        margin-right: 0;
78
-      }
79
-    }
80
-    .search {
81
-      display: none;
82
-    }
83
-  }
84
-}

+ 0
- 272
src/components/index.md 파일 보기

@@ -1,272 +0,0 @@
1
----
2
-title: 业务组件
3
-sidemenu: false
4
----
5
-
6
-> 此功能由[dumi](https://d.umijs.org/zh-CN/guide/advanced#umi-%E9%A1%B9%E7%9B%AE%E9%9B%86%E6%88%90%E6%A8%A1%E5%BC%8F)提供,dumi 是一个 📖 为组件开发场景而生的文档工具,用过的都说好。
7
-
8
-# 业务组件
9
-
10
-这里列举了 Pro 中所有用到的组件,这些组件不适合作为组件库,但是在业务中却真实需要。所以我们准备了这个文档,来指导大家是否需要使用这个组件。
11
-
12
-## Footer 页脚组件
13
-
14
-这个组件自带了一些 Pro 的配置,你一般都需要改掉它的信息。
15
-
16
-```tsx
17
-/**
18
- * background: '#f0f2f5'
19
- */
20
-import React from 'react';
21
-import Footer from '@/components/Footer';
22
-
23
-export default () => <Footer />;
24
-```
25
-
26
-## HeaderDropdown 头部下拉列表
27
-
28
-HeaderDropdown 是 antd Dropdown 的封装,但是增加了移动端的特殊处理,用法也是相同的。
29
-
30
-```tsx
31
-/**
32
- * background: '#f0f2f5'
33
- */
34
-import { Button, Menu } from 'antd';
35
-import React from 'react';
36
-import HeaderDropdown from '@/components/HeaderDropdown';
37
-
38
-export default () => {
39
-  const menuHeaderDropdown = (
40
-    <Menu selectedKeys={[]}>
41
-      <Menu.Item key="center">个人中心</Menu.Item>
42
-      <Menu.Item key="settings">个人设置</Menu.Item>
43
-      <Menu.Divider />
44
-      <Menu.Item key="logout">退出登录</Menu.Item>
45
-    </Menu>
46
-  );
47
-  return (
48
-    <HeaderDropdown overlay={menuHeaderDropdown}>
49
-      <Button>hover 展示菜单</Button>
50
-    </HeaderDropdown>
51
-  );
52
-};
53
-```
54
-
55
-## HeaderSearch 头部搜索框
56
-
57
-一个带补全数据的输入框,支持收起和展开 Input
58
-
59
-```tsx
60
-/**
61
- * background: '#f0f2f5'
62
- */
63
-import { Button, Menu } from 'antd';
64
-import React from 'react';
65
-import HeaderSearch from '@/components/HeaderSearch';
66
-
67
-export default () => {
68
-  return (
69
-    <HeaderSearch
70
-      placeholder="站内搜索"
71
-      defaultValue="umi ui"
72
-      options={[
73
-        { label: 'Ant Design Pro', value: 'Ant Design Pro' },
74
-        {
75
-          label: 'Ant Design',
76
-          value: 'Ant Design',
77
-        },
78
-        {
79
-          label: 'Pro Table',
80
-          value: 'Pro Table',
81
-        },
82
-        {
83
-          label: 'Pro Layout',
84
-          value: 'Pro Layout',
85
-        },
86
-      ]}
87
-      onSearch={(value) => {
88
-        console.log('input', value);
89
-      }}
90
-    />
91
-  );
92
-};
93
-```
94
-
95
-### API
96
-
97
-| 参数            | 说明                               | 类型                         | 默认值 |
98
-| --------------- | ---------------------------------- | ---------------------------- | ------ |
99
-| value           | 输入框的值                         | `string`                     | -      |
100
-| onChange        | 值修改后触发                       | `(value?: string) => void`   | -      |
101
-| onSearch        | 查询后触发                         | `(value?: string) => void`   | -      |
102
-| options         | 选项菜单的的列表                   | `{label,value}[]`            | -      |
103
-| defaultVisible  | 输入框默认是否显示,只有第一次生效 | `boolean`                    | -      |
104
-| visible         | 输入框是否显示                     | `boolean`                    | -      |
105
-| onVisibleChange | 输入框显示隐藏的回调函数           | `(visible: boolean) => void` | -      |
106
-
107
-## NoticeIcon 通知工具
108
-
109
-通知工具提供一个展示多种通知信息的界面。
110
-
111
-```tsx
112
-/**
113
- * background: '#f0f2f5'
114
- */
115
-import { message } from 'antd';
116
-import React from 'react';
117
-import NoticeIcon from '@/components/NoticeIcon/NoticeIcon';
118
-
119
-export default () => {
120
-  const list = [
121
-    {
122
-      id: '000000001',
123
-      avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
124
-      title: '你收到了 14 份新周报',
125
-      datetime: '2017-08-09',
126
-      type: 'notification',
127
-    },
128
-    {
129
-      id: '000000002',
130
-      avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',
131
-      title: '你推荐的 曲妮妮 已通过第三轮面试',
132
-      datetime: '2017-08-08',
133
-      type: 'notification',
134
-    },
135
-  ];
136
-  return (
137
-    <NoticeIcon
138
-      count={10}
139
-      onItemClick={(item) => {
140
-        message.info(`${item.title} 被点击了`);
141
-      }}
142
-      onClear={(title: string, key: string) => message.info('点击了清空更多')}
143
-      loading={false}
144
-      clearText="清空"
145
-      viewMoreText="查看更多"
146
-      onViewMore={() => message.info('点击了查看更多')}
147
-      clearClose
148
-    >
149
-      <NoticeIcon.Tab
150
-        tabKey="notification"
151
-        count={2}
152
-        list={list}
153
-        title="通知"
154
-        emptyText="你已查看所有通知"
155
-        showViewMore
156
-      />
157
-      <NoticeIcon.Tab
158
-        tabKey="message"
159
-        count={2}
160
-        list={list}
161
-        title="消息"
162
-        emptyText="您已读完所有消息"
163
-        showViewMore
164
-      />
165
-      <NoticeIcon.Tab
166
-        tabKey="event"
167
-        title="待办"
168
-        emptyText="你已完成所有待办"
169
-        count={2}
170
-        list={list}
171
-        showViewMore
172
-      />
173
-    </NoticeIcon>
174
-  );
175
-};
176
-```
177
-
178
-### NoticeIcon API
179
-
180
-| 参数 | 说明 | 类型 | 默认值 |
181
-| --- | --- | --- | --- |
182
-| count | 有多少未读通知 | `number` | - |
183
-| bell | 铃铛的图表 | `ReactNode` | - |
184
-| onClear | 点击清空数据按钮 | `(tabName: string, tabKey: string) => void` | - |
185
-| onItemClick | 未读消息列被点击 | `(item: API.NoticeIconData, tabProps: NoticeIconTabProps) => void` | - |
186
-| onViewMore | 查看更多的按钮点击 | `(tabProps: NoticeIconTabProps, e: MouseEvent) => void` | - |
187
-| onTabChange | 通知 Tab 的切换 | `(tabTile: string) => void;` | - |
188
-| popupVisible | 通知显示是否展示 | `boolean` | - |
189
-| onPopupVisibleChange | 通知信息显示隐藏的回调函数 | `(visible: boolean) => void` | - |
190
-| clearText | 清空按钮的文字 | `string` | - |
191
-| viewMoreText | 查看更多的按钮文字 | `string` | - |
192
-| clearClose | 展示清空按钮 | `boolean` | - |
193
-| emptyImage | 列表为空时的兜底展示 | `ReactNode` | - |
194
-
195
-### NoticeIcon.Tab API
196
-
197
-| 参数         | 说明               | 类型                                 | 默认值 |
198
-| ------------ | ------------------ | ------------------------------------ | ------ |
199
-| count        | 有多少未读通知     | `number`                             | -      |
200
-| title        | 通知 Tab 的标题    | `ReactNode`                          | -      |
201
-| showClear    | 展示清除按钮       | `boolean`                            | `true` |
202
-| showViewMore | 展示加载更         | `boolean`                            | `true` |
203
-| tabKey       | Tab 的唯一 key     | `string`                             | -      |
204
-| onClick      | 子项的单击事件     | `(item: API.NoticeIconData) => void` | -      |
205
-| onClear      | 清楚按钮的点击     | `()=>void`                           | -      |
206
-| emptyText    | 为空的时候测试     | `()=>void`                           | -      |
207
-| viewMoreText | 查看更多的按钮文字 | `string`                             | -      |
208
-| onViewMore   | 查看更多的按钮点击 | `( e: MouseEvent) => void`           | -      |
209
-| list         | 通知信息的列表     | `API.NoticeIconData`                 | -      |
210
-
211
-### NoticeIconData
212
-
213
-```tsx | pure
214
-export interface NoticeIconData {
215
-  id: string;
216
-  key: string;
217
-  avatar: string;
218
-  title: string;
219
-  datetime: string;
220
-  type: string;
221
-  read?: boolean;
222
-  description: string;
223
-  clickClose?: boolean;
224
-  extra: any;
225
-  status: string;
226
-}
227
-```
228
-
229
-## RightContent
230
-
231
-RightContent 是以上几个组件的组合,同时新增了 plugins 的 `SelectLang` 插件。
232
-
233
-```tsx | pure
234
-<Space>
235
-  <HeaderSearch
236
-    placeholder="站内搜索"
237
-    defaultValue="umi ui"
238
-    options={[
239
-      { label: <a href="https://umijs.org/zh/guide/umi-ui.html">umi ui</a>, value: 'umi ui' },
240
-      {
241
-        label: <a href="next.ant.design">Ant Design</a>,
242
-        value: 'Ant Design',
243
-      },
244
-      {
245
-        label: <a href="https://protable.ant.design/">Pro Table</a>,
246
-        value: 'Pro Table',
247
-      },
248
-      {
249
-        label: <a href="https://prolayout.ant.design/">Pro Layout</a>,
250
-        value: 'Pro Layout',
251
-      },
252
-    ]}
253
-  />
254
-  <Tooltip title="使用文档">
255
-    <span
256
-      className={styles.action}
257
-      onClick={() => {
258
-        window.location.href = 'https://pro.ant.design/docs/getting-started';
259
-      }}
260
-    >
261
-      <QuestionCircleOutlined />
262
-    </span>
263
-  </Tooltip>
264
-  <Avatar />
265
-  {REACT_APP_ENV && (
266
-    <span>
267
-      <Tag color={ENVTagColor[REACT_APP_ENV]}>{REACT_APP_ENV}</Tag>
268
-    </span>
269
-  )}
270
-  <SelectLang className={styles.action} />
271
-</Space>
272
-```

+ 0
- 47
src/e2e/baseLayout.e2e.spec.js 파일 보기

@@ -1,47 +0,0 @@
1
-import { test, expect } from '@playwright/test';
2
-
3
-const { uniq } = require('lodash');
4
-
5
-const RouterConfig = require('../../config/routes').default;
6
-
7
-const BASE_URL = `http://localhost:${process.env.PORT || 8001}`;
8
-
9
-function formatter(routes, parentPath = '') {
10
-  const fixedParentPath = parentPath.replace(/\/{1,}/g, '/');
11
-  let result = [];
12
-  routes.forEach((item) => {
13
-    if (item.path && !item.path.startsWith('/')) {
14
-      result.push(`${fixedParentPath}/${item.path}`.replace(/\/{1,}/g, '/'));
15
-    }
16
-
17
-    if (item.path && item.path.startsWith('/')) {
18
-      result.push(`${item.path}`.replace(/\/{1,}/g, '/'));
19
-    }
20
-
21
-    if (item.routes) {
22
-      result = result.concat(
23
-        formatter(item.routes, item.path ? `${fixedParentPath}/${item.path}` : parentPath),
24
-      );
25
-    }
26
-  });
27
-  return uniq(result.filter((item) => !!item));
28
-}
29
-
30
-const testPage = (path, page) => async () => {
31
-  await page.evaluate(() => {
32
-    localStorage.setItem('antd-pro-authority', '["admin"]');
33
-  });
34
-  await page.goto(`${BASE_URL}${path}`);
35
-  await page.waitForSelector('footer', {
36
-    timeout: 2000,
37
-  });
38
-  const haveFooter = await page.evaluate(() => document.getElementsByTagName('footer').length > 0);
39
-  expect(haveFooter).toBeTruthy();
40
-};
41
-
42
-const routers = formatter(RouterConfig);
43
-routers.forEach((route) => {
44
-  test(`test route page ${route}`, async ({ page }) => {
45
-    await testPage(route, page);
46
-  });
47
-});

+ 0
- 108
src/global.jsx 파일 보기

@@ -1,108 +0,0 @@
1
-import { Button, message, notification } from 'antd';
2
-import { useIntl } from 'umi';
3
-import defaultSettings from '../config/defaultSettings';
4
-const { pwa } = defaultSettings;
5
-const isHttps = document.location.protocol === 'https:';
6
-
7
-const clearCache = () => {
8
-  // remove all caches
9
-  if (window.caches) {
10
-    caches
11
-      .keys()
12
-      .then((keys) => {
13
-        keys.forEach((key) => {
14
-          caches.delete(key);
15
-        });
16
-      })
17
-      .catch((e) => console.log(e));
18
-  }
19
-}; // if pwa is true
20
-
21
-if (pwa) {
22
-  // Notify user if offline now
23
-  window.addEventListener('sw.offline', () => {
24
-    message.warning(
25
-      useIntl().formatMessage({
26
-        id: 'app.pwa.offline',
27
-      }),
28
-    );
29
-  }); // Pop up a prompt on the page asking the user if they want to use the latest version
30
-
31
-  window.addEventListener('sw.updated', (event) => {
32
-    const e = event;
33
-
34
-    const reloadSW = async () => {
35
-      // Check if there is sw whose state is waiting in ServiceWorkerRegistration
36
-      // https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration
37
-      const worker = e.detail && e.detail.waiting;
38
-
39
-      if (!worker) {
40
-        return true;
41
-      } // Send skip-waiting event to waiting SW with MessageChannel
42
-
43
-      await new Promise((resolve, reject) => {
44
-        const channel = new MessageChannel();
45
-
46
-        channel.port1.onmessage = (msgEvent) => {
47
-          if (msgEvent.data.error) {
48
-            reject(msgEvent.data.error);
49
-          } else {
50
-            resolve(msgEvent.data);
51
-          }
52
-        };
53
-
54
-        worker.postMessage(
55
-          {
56
-            type: 'skip-waiting',
57
-          },
58
-          [channel.port2],
59
-        );
60
-      });
61
-      clearCache();
62
-      window.location.reload();
63
-      return true;
64
-    };
65
-
66
-    const key = `open${Date.now()}`;
67
-    const btn = (
68
-      <Button
69
-        type="primary"
70
-        onClick={() => {
71
-          notification.close(key);
72
-          reloadSW();
73
-        }}
74
-      >
75
-        {useIntl().formatMessage({
76
-          id: 'app.pwa.serviceworker.updated.ok',
77
-        })}
78
-      </Button>
79
-    );
80
-    notification.open({
81
-      message: useIntl().formatMessage({
82
-        id: 'app.pwa.serviceworker.updated',
83
-      }),
84
-      description: useIntl().formatMessage({
85
-        id: 'app.pwa.serviceworker.updated.hint',
86
-      }),
87
-      btn,
88
-      key,
89
-      onClose: async () => null,
90
-    });
91
-  });
92
-} else if ('serviceWorker' in navigator && isHttps) {
93
-  // unregister service worker
94
-  const { serviceWorker } = navigator;
95
-
96
-  if (serviceWorker.getRegistrations) {
97
-    serviceWorker.getRegistrations().then((sws) => {
98
-      sws.forEach((sw) => {
99
-        sw.unregister();
100
-      });
101
-    });
102
-  }
103
-
104
-  serviceWorker.getRegistration().then((sw) => {
105
-    if (sw) sw.unregister();
106
-  });
107
-  clearCache();
108
-}

+ 0
- 57
src/global.less 파일 보기

@@ -1,57 +0,0 @@
1
-@import '~antd/es/style/variable.less';
2
-
3
-html,
4
-body,
5
-#root {
6
-  height: 100%;
7
-}
8
-
9
-.colorWeak {
10
-  filter: invert(80%);
11
-}
12
-
13
-.ant-layout {
14
-  min-height: 100vh;
15
-}
16
-.ant-pro-sider.ant-layout-sider.ant-pro-sider-fixed {
17
-  left: unset;
18
-}
19
-
20
-canvas {
21
-  display: block;
22
-}
23
-
24
-body {
25
-  text-rendering: optimizeLegibility;
26
-  -webkit-font-smoothing: antialiased;
27
-  -moz-osx-font-smoothing: grayscale;
28
-}
29
-
30
-ul,
31
-ol {
32
-  list-style: none;
33
-}
34
-
35
-@media (max-width: @screen-xs) {
36
-  .ant-table {
37
-    width: 100%;
38
-    overflow-x: auto;
39
-    &-thead > tr,
40
-    &-tbody > tr {
41
-      > th,
42
-      > td {
43
-        white-space: pre;
44
-        > span {
45
-          display: block;
46
-        }
47
-      }
48
-    }
49
-  }
50
-}
51
-
52
-// Compatible with IE11
53
-@media screen and(-ms-high-contrast: active), (-ms-high-contrast: none) {
54
-  body .ant-design-pro > .ant-layout {
55
-    min-height: 100vh;
56
-  }
57
-}

+ 0
- 25
src/locales/bn-BD.js 파일 보기

@@ -1,25 +0,0 @@
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
-export default {
9
-  'navBar.lang': 'ভাষা',
10
-  'layout.user.link.help': 'সহায়তা',
11
-  'layout.user.link.privacy': 'গোপনীয়তা',
12
-  'layout.user.link.terms': 'শর্তাদি',
13
-  'app.copyright.produced': 'প্রযোজনা করেছেন অ্যান্ট ফিনান্সিয়াল এক্সপেরিয়েন্স ডিপার্টমেন্ট',
14
-  'app.preview.down.block': 'আপনার স্থানীয় প্রকল্পে এই পৃষ্ঠাটি ডাউনলোড করুন',
15
-  'app.welcome.link.fetch-blocks': 'সমস্ত ব্লক পান',
16
-  'app.welcome.link.block-list':
17
-    '`block` ডেভেলপমেন্ট এর উপর ভিত্তি করে দ্রুত স্ট্যান্ডার্ড, পৃষ্ঠাসমূহ তৈরি করুন।',
18
-  ...globalHeader,
19
-  ...menu,
20
-  ...settingDrawer,
21
-  ...settings,
22
-  ...pwa,
23
-  ...component,
24
-  ...pages,
25
-};

+ 0
- 5
src/locales/bn-BD/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': 'বিস্তৃত',
3
-  'component.tagSelect.collapse': 'সঙ্কুচিত',
4
-  'component.tagSelect.all': 'সব',
5
-};

+ 0
- 17
src/locales/bn-BD/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/bn-BD/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': 'স্বাগতম',
3
-  'menu.more-blocks': 'আরও ব্লক',
4
-  'menu.home': 'নীড়',
5
-  'menu.admin': 'অ্যাডমিন',
6
-  'menu.admin.sub-page': 'উপ-পৃষ্ঠা',
7
-  'menu.login': 'প্রবেশ',
8
-  'menu.register': 'নিবন্ধন',
9
-  'menu.register-result': 'নিবন্ধনে ফলাফল',
10
-  'menu.dashboard': 'ড্যাশবোর্ড',
11
-  'menu.dashboard.analysis': 'বিশ্লেষণ',
12
-  'menu.dashboard.monitor': 'নিরীক্ষণ',
13
-  'menu.dashboard.workplace': 'কর্মক্ষেত্র',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': 'ফর্ম',
18
-  'menu.form.basic-form': 'বেসিক ফর্ম',
19
-  'menu.form.step-form': 'পদক্ষেপ ফর্ম',
20
-  'menu.form.step-form.info': 'পদক্ষেপ ফর্ম (স্থানান্তর তথ্য লিখুন)',
21
-  'menu.form.step-form.confirm': 'পদক্ষেপ ফর্ম (স্থানান্তর তথ্য নিশ্চিত করুন)',
22
-  'menu.form.step-form.result': 'পদক্ষেপ ফর্ম (সমাপ্ত)',
23
-  'menu.form.advanced-form': 'উন্নত ফর্ম',
24
-  'menu.list': 'তালিকা',
25
-  'menu.list.table-list': 'অনুসন্ধানের টেবিল',
26
-  'menu.list.basic-list': 'বেসিক তালিকা',
27
-  'menu.list.card-list': 'কার্ডের তালিকা',
28
-  'menu.list.search-list': 'অনুসন্ধানের তালিকা',
29
-  'menu.list.search-list.articles': 'অনুসন্ধানের তালিকা (নিবন্ধসমূহ)',
30
-  'menu.list.search-list.projects': 'অনুসন্ধানের তালিকা (প্রকল্পগুলি)',
31
-  'menu.list.search-list.applications': 'অনুসন্ধানের তালিকা (অ্যাপ্লিকেশন)',
32
-  'menu.profile': 'প্রোফাইল',
33
-  'menu.profile.basic': 'বেসিক প্রোফাইল',
34
-  'menu.profile.advanced': 'উন্নত প্রোফাইল',
35
-  'menu.result': 'ফলাফল',
36
-  'menu.result.success': 'সাফল্য',
37
-  'menu.result.fail': 'ব্যর্থ',
38
-  'menu.exception': 'ব্যতিক্রম',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': 'ট্রিগার',
43
-  'menu.account': 'হিসাব',
44
-  'menu.account.center': 'অ্যাকাউন্ট কেন্দ্র',
45
-  'menu.account.settings': 'অ্যাকাউন্ট সেটিংস',
46
-  'menu.account.trigger': 'ট্রিগার ত্রুটি',
47
-  'menu.account.logout': 'প্রস্থান',
48
-  'menu.editor': 'গ্রাফিক সম্পাদক',
49
-  'menu.editor.flow': 'ফ্লো এডিটর',
50
-  'menu.editor.mind': 'মাইন্ড এডিটর',
51
-  'menu.editor.koni': 'কোনি সম্পাদক',
52
-};

+ 0
- 70
src/locales/bn-BD/pages.js 파일 보기

@@ -1,70 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title':
3
-    'পিঁপড়া ডিজাইন হচ্ছে সিহু জেলার সবচেয়ে প্রভাবশালী ওয়েব ডিজাইনের স্পেসিফিকেশন',
4
-  'pages.login.accountLogin.tab': 'অ্যাকাউন্টে লগইন',
5
-  'pages.login.accountLogin.errorMessage': 'ভুল ব্যবহারকারীর নাম/পাসওয়ার্ড(admin/ant.design)',
6
-  'pages.login.failure': 'লগইন ব্যর্থ হয়েছে। আবার চেষ্টা করুন!',
7
-  'pages.login.success': 'সফল লগইন!',
8
-  'pages.login.username.placeholder': 'ব্যবহারকারীর নাম: admin or user',
9
-  'pages.login.username.required': 'আপনার ব্যবহারকারীর নাম ইনপুট করুন!',
10
-  'pages.login.password.placeholder': 'পাসওয়ার্ড: ant.design',
11
-  'pages.login.password.required': 'আপনার পাসওয়ার্ড ইনপুট করুন!',
12
-  'pages.login.phoneLogin.tab': 'ফোন লগইন',
13
-  'pages.login.phoneLogin.errorMessage': 'যাচাইকরণ কোড ত্রুটি',
14
-  'pages.login.phoneNumber.placeholder': 'ফোন নম্বর',
15
-  'pages.login.phoneNumber.required': 'আপনার ফোন নম্বর ইনপুট করুন!',
16
-  'pages.login.phoneNumber.invalid': 'ফোন নম্বরটি সঠিক নয়!',
17
-  'pages.login.captcha.placeholder': 'যাচাইকরণের কোড',
18
-  'pages.login.captcha.required': 'দয়া করে ভেরিফিকেশন কোডটি ইনপুট করুন!',
19
-  'pages.login.phoneLogin.getVerificationCode': 'কোড পান',
20
-  'pages.getCaptchaSecondText': 'সেকেন্ড',
21
-  'pages.login.rememberMe': 'আমাকে মনে রাখুন',
22
-  'pages.login.forgotPassword': 'পাসওয়ার্ড ভুলে গেছেন?',
23
-  'pages.login.submit': 'প্রবেশ করুন',
24
-  'pages.login.loginWith': 'লগইন করতে পারেন:',
25
-  'pages.login.registerAccount': 'অ্যাকাউন্ট নিবন্ধন করুন',
26
-  'pages.welcome.advancedComponent': 'অ্যাডভান্সড কম্পোনেন্ট',
27
-  'pages.welcome.link': 'স্বাগতম',
28
-  'pages.welcome.advancedLayout': 'অ্যাডভান্সড লেআউট',
29
-  'pages.welcome.alertMessage': 'দ্রুত এবং শক্তিশালী ভারী শুল্ক উপাদান প্রকাশ করা হয়েছে।',
30
-  'pages.admin.subPage.title': 'এই পৃষ্ঠাটি কেবল অ্যাডমিন দ্বারা দেখা যাবে',
31
-  'pages.admin.subPage.alertMessage':
32
-    'UMI UI এখন প্রকাশিত হয়েছে, অভিজ্ঞতা শুরু করতে npm run ui ব্যবহার করতে স্বাগতম।',
33
-  'pages.searchTable.createForm.newRule': 'নতুন বিধি',
34
-  'pages.searchTable.updateForm.ruleConfig': 'বিধি কনফিগারেশন',
35
-  'pages.searchTable.updateForm.basicConfig': 'মৌলিক তথ্য',
36
-  'pages.searchTable.updateForm.ruleName.nameLabel': 'বিধি নাম',
37
-  'pages.searchTable.updateForm.ruleName.nameRules': 'বিধির নাম লিখুন!',
38
-  'pages.searchTable.updateForm.ruleDesc.descLabel': 'বিধির বিবরণ',
39
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder': 'কমপক্ষে পাঁচটি অক্ষর লিখুন',
40
-  'pages.searchTable.updateForm.ruleDesc.descRules':
41
-    'কমপক্ষে পাঁচটি অক্ষরের একটি বিধান বিবরণ লিখুন!',
42
-  'pages.searchTable.updateForm.ruleProps.title': 'বৈশিষ্ট্য কনফিগার করুন',
43
-  'pages.searchTable.updateForm.object': 'নিরীক্ষণ অবজেক্ট',
44
-  'pages.searchTable.updateForm.ruleProps.templateLabel': 'বিধি টেম্পলেট',
45
-  'pages.searchTable.updateForm.ruleProps.typeLabel': 'বিধি প্রকার',
46
-  'pages.searchTable.updateForm.schedulingPeriod.title': 'সময়সূচী নির্ধারণ করুন',
47
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': 'শুরুর সময়',
48
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules': 'একটি শুরুর সময় চয়ন করুন!',
49
-  'pages.searchTable.titleDesc': 'বর্ণনা',
50
-  'pages.searchTable.ruleName': 'বিধি নাম প্রয়োজন',
51
-  'pages.searchTable.titleCallNo': 'পরিষেবা কল সংখ্যা',
52
-  'pages.searchTable.titleStatus': 'অবস্থা',
53
-  'pages.searchTable.nameStatus.default': 'ডিফল্ট',
54
-  'pages.searchTable.nameStatus.running': 'চলমান',
55
-  'pages.searchTable.nameStatus.online': 'অনলাইন',
56
-  'pages.searchTable.nameStatus.abnormal': 'অস্বাভাবিক',
57
-  'pages.searchTable.titleUpdatedAt': 'সর্বশেষ নির্ধারিত',
58
-  'pages.searchTable.exception': 'ব্যতিক্রম জন্য কারণ লিখুন!',
59
-  'pages.searchTable.titleOption': 'অপশন',
60
-  'pages.searchTable.config': 'কনফিগারেশন',
61
-  'pages.searchTable.subscribeAlert': 'সতর্কতা সাবস্ক্রাইব করুন',
62
-  'pages.searchTable.title': 'ইনকয়েরি ফরম',
63
-  'pages.searchTable.new': 'নতুন',
64
-  'pages.searchTable.chosen': 'নির্বাচিত',
65
-  'pages.searchTable.item': 'আইটেম',
66
-  'pages.searchTable.totalServiceCalls': 'পরিষেবা কলগুলির মোট সংখ্যা',
67
-  'pages.searchTable.tenThousand': '000',
68
-  'pages.searchTable.batchDeletion': 'একসাখে ডিলিট',
69
-  'pages.searchTable.batchApproval': 'একসাখে অনুমোদন',
70
-};

+ 0
- 7
src/locales/bn-BD/pwa.js 파일 보기

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

+ 0
- 31
src/locales/bn-BD/settingDrawer.js 파일 보기

@@ -1,31 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': 'পৃষ্ঠা স্টাইল সেটিং',
3
-  'app.setting.pagestyle.dark': 'ডার্ক স্টাইল',
4
-  'app.setting.pagestyle.light': 'লাইট স্টাইল',
5
-  'app.setting.content-width': 'সামগ্রীর প্রস্থ',
6
-  'app.setting.content-width.fixed': 'স্থির',
7
-  'app.setting.content-width.fluid': 'প্রবাহী',
8
-  'app.setting.themecolor': 'থিম রঙ',
9
-  'app.setting.themecolor.dust': 'ডাস্ট রেড',
10
-  'app.setting.themecolor.volcano': 'আগ্নেয়গিরি',
11
-  'app.setting.themecolor.sunset': 'সানসেট কমলা',
12
-  'app.setting.themecolor.cyan': 'সবুজাভ নীল',
13
-  'app.setting.themecolor.green': 'পোলার সবুজ',
14
-  'app.setting.themecolor.daybreak': 'দিবস ব্রেক ব্লু (ডিফল্ট)',
15
-  'app.setting.themecolor.geekblue': 'গিক আঠালো',
16
-  'app.setting.themecolor.purple': 'গোল্ডেন বেগুনি',
17
-  'app.setting.navigationmode': 'নেভিগেশন মোড',
18
-  'app.setting.sidemenu': 'সাইড মেনু লেআউট',
19
-  'app.setting.topmenu': 'টপ মেনু লেআউট',
20
-  'app.setting.fixedheader': 'স্থির হেডার',
21
-  'app.setting.fixedsidebar': 'স্থির সাইডবার',
22
-  'app.setting.fixedsidebar.hint': 'সাইড মেনু বিন্যাসে কাজ করে',
23
-  'app.setting.hideheader': 'স্ক্রোল করার সময় হেডার লুকানো',
24
-  'app.setting.hideheader.hint': 'লুকানো হেডার সক্ষম থাকলে কাজ করে',
25
-  'app.setting.othersettings': 'অন্যান্য সেটিংস্',
26
-  'app.setting.weakmode': 'দুর্বল মোড',
27
-  'app.setting.copy': 'সেটিং কপি করুন',
28
-  'app.setting.copyinfo': 'সাফল্যের অনুলিপি করুন - প্রতিস্থাপন করুন: src/models/setting.js',
29
-  'app.setting.production.hint':
30
-    'কেবল বিকাশের পরিবেশে প্যানেল শো সেট করা হচ্ছে, দয়া করে ম্যানুয়ালি সংশোধন করুন',
31
-};

+ 0
- 59
src/locales/bn-BD/settings.js 파일 보기

@@ -1,59 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': 'মৌলিক বৈশিষ্ট্যসহ',
3
-  'app.settings.menuMap.security': 'নিরাপত্তা বিন্যাস',
4
-  'app.settings.menuMap.binding': 'অ্যাকাউন্ট বাঁধাই',
5
-  'app.settings.menuMap.notification': 'নতুন বার্তা বিজ্ঞপ্তি',
6
-  'app.settings.basic.avatar': 'অবতার',
7
-  'app.settings.basic.change-avatar': 'অবতার পরিবর্তন করুন',
8
-  'app.settings.basic.email': 'ইমেইল',
9
-  'app.settings.basic.email-message': 'আপনার ইমেইল ইনপুট করুন!',
10
-  'app.settings.basic.nickname': 'ডাক নাম',
11
-  'app.settings.basic.nickname-message': 'আপনার ডাকনামটি ইনপুট করুন!',
12
-  'app.settings.basic.profile': 'ব্যক্তিগত প্রোফাইল',
13
-  'app.settings.basic.profile-message': 'আপনার ব্যক্তিগত প্রোফাইল ইনপুট করুন!',
14
-  'app.settings.basic.profile-placeholder': 'নিজের সাথে সংক্ষিপ্ত পরিচয়',
15
-  'app.settings.basic.country': 'দেশ/অঞ্চল',
16
-  'app.settings.basic.country-message': 'আপনার দেশ ইনপুট করুন!',
17
-  'app.settings.basic.geographic': 'প্রদেশ বা শহর',
18
-  'app.settings.basic.geographic-message': 'আপনার ভৌগলিক তথ্য ইনপুট করুন!',
19
-  'app.settings.basic.address': 'রাস্তার ঠিকানা',
20
-  'app.settings.basic.address-message': 'দয়া করে আপনার ঠিকানা ইনপুট করুন!',
21
-  'app.settings.basic.phone': 'ফোন নম্বর',
22
-  'app.settings.basic.phone-message': 'আপনার ফোন ইনপুট করুন!',
23
-  'app.settings.basic.update': 'তথ্য হালনাগাদ',
24
-  'app.settings.security.strong': 'শক্তিশালী',
25
-  'app.settings.security.medium': 'মধ্যম',
26
-  'app.settings.security.weak': 'দুর্বল',
27
-  'app.settings.security.password': 'অ্যাকাউন্টের পাসওয়ার্ড',
28
-  'app.settings.security.password-description': 'বর্তমান পাসওয়ার্ড শক্তি',
29
-  'app.settings.security.phone': 'সুরক্ষা ফোন',
30
-  'app.settings.security.phone-description': 'আবদ্ধ ফোন',
31
-  'app.settings.security.question': 'নিরাপত্তা প্রশ্ন',
32
-  'app.settings.security.question-description':
33
-    'সুরক্ষা প্রশ্ন সেট করা নেই, এবং সুরক্ষা নীতি কার্যকরভাবে অ্যাকাউন্ট সুরক্ষা রক্ষা করতে পারে',
34
-  'app.settings.security.email': 'ব্যাকআপ ইমেইল',
35
-  'app.settings.security.email-description': 'বাউন্ড ইমেইল',
36
-  'app.settings.security.mfa': 'MFA ডিভাইস',
37
-  'app.settings.security.mfa-description':
38
-    "আনবাউন্ড এমএফএ ডিভাইস, বাঁধাইয়ের পরে, দু'বার নিশ্চিত করা যায়",
39
-  'app.settings.security.modify': 'পরিবর্তন করুন',
40
-  'app.settings.security.set': 'সেট',
41
-  'app.settings.security.bind': 'বাঁধাই',
42
-  'app.settings.binding.taobao': 'বাঁধাই তাওবাও',
43
-  'app.settings.binding.taobao-description': 'বর্তমানে আনবাউন্ড তাওবাও অ্যাকাউন্ট',
44
-  'app.settings.binding.alipay': 'বাইন্ডিং আলিপে',
45
-  'app.settings.binding.alipay-description': 'বর্তমানে আনবাউন্ড আলিপে অ্যাকাউন্ট',
46
-  'app.settings.binding.dingding': 'বাঁধাই ডিঙ্গটালক',
47
-  'app.settings.binding.dingding-description': 'বর্তমানে আনবাউন্ড ডিঙ্গটাল অ্যাকাউন্ট',
48
-  'app.settings.binding.bind': 'বাঁধাই',
49
-  'app.settings.notification.password': 'অ্যাকাউন্টের পাসওয়ার্ড',
50
-  'app.settings.notification.password-description':
51
-    'অন্যান্য ব্যবহারকারীর বার্তাগুলি স্টেশন চিঠি আকারে জানানো হবে',
52
-  'app.settings.notification.messages': 'সিস্টেম বার্তা',
53
-  'app.settings.notification.messages-description':
54
-    'সিস্টেম বার্তাগুলি স্টেশন চিঠির আকারে জানানো হবে',
55
-  'app.settings.notification.todo': 'করণীয় বিজ্ঞপ্তি',
56
-  'app.settings.notification.todo-description': 'করণীয় তালিকাটি স্টেশন থেকে চিঠি আকারে জানানো হবে',
57
-  'app.settings.open': 'খোলা',
58
-  'app.settings.close': 'বন্ধ',
59
-};

+ 0
- 24
src/locales/en-US.js 파일 보기

@@ -1,24 +0,0 @@
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
-export default {
9
-  'navBar.lang': 'Languages',
10
-  'layout.user.link.help': 'Help',
11
-  'layout.user.link.privacy': 'Privacy',
12
-  'layout.user.link.terms': 'Terms',
13
-  'app.copyright.produced': 'Produced by Ant Financial Experience Department',
14
-  'app.preview.down.block': 'Download this page to your local project',
15
-  'app.welcome.link.fetch-blocks': 'Get all block',
16
-  'app.welcome.link.block-list': 'Quickly build standard, pages based on `block` development',
17
-  ...globalHeader,
18
-  ...menu,
19
-  ...settingDrawer,
20
-  ...settings,
21
-  ...pwa,
22
-  ...component,
23
-  ...pages,
24
-};

+ 0
- 5
src/locales/en-US/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': 'Expand',
3
-  'component.tagSelect.collapse': 'Collapse',
4
-  'component.tagSelect.all': 'All',
5
-};

+ 0
- 17
src/locales/en-US/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/en-US/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': 'Welcome',
3
-  'menu.more-blocks': 'More Blocks',
4
-  'menu.home': 'Home',
5
-  'menu.admin': 'Admin',
6
-  'menu.admin.sub-page': 'Sub-Page',
7
-  'menu.login': 'Login',
8
-  'menu.register': 'Register',
9
-  'menu.register-result': 'Register Result',
10
-  'menu.dashboard': 'Dashboard',
11
-  'menu.dashboard.analysis': 'Analysis',
12
-  'menu.dashboard.monitor': 'Monitor',
13
-  'menu.dashboard.workplace': 'Workplace',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': 'Form',
18
-  'menu.form.basic-form': 'Basic Form',
19
-  'menu.form.step-form': 'Step Form',
20
-  'menu.form.step-form.info': 'Step Form(write transfer information)',
21
-  'menu.form.step-form.confirm': 'Step Form(confirm transfer information)',
22
-  'menu.form.step-form.result': 'Step Form(finished)',
23
-  'menu.form.advanced-form': 'Advanced Form',
24
-  'menu.list': 'List',
25
-  'menu.list.table-list': 'Search Table',
26
-  'menu.list.basic-list': 'Basic List',
27
-  'menu.list.card-list': 'Card List',
28
-  'menu.list.search-list': 'Search List',
29
-  'menu.list.search-list.articles': 'Search List(articles)',
30
-  'menu.list.search-list.projects': 'Search List(projects)',
31
-  'menu.list.search-list.applications': 'Search List(applications)',
32
-  'menu.profile': 'Profile',
33
-  'menu.profile.basic': 'Basic Profile',
34
-  'menu.profile.advanced': 'Advanced Profile',
35
-  'menu.result': 'Result',
36
-  'menu.result.success': 'Success',
37
-  'menu.result.fail': 'Fail',
38
-  'menu.exception': 'Exception',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': 'Trigger',
43
-  'menu.account': 'Account',
44
-  'menu.account.center': 'Account Center',
45
-  'menu.account.settings': 'Account Settings',
46
-  'menu.account.trigger': 'Trigger Error',
47
-  'menu.account.logout': 'Logout',
48
-  'menu.editor': 'Graphic Editor',
49
-  'menu.editor.flow': 'Flow Editor',
50
-  'menu.editor.mind': 'Mind Editor',
51
-  'menu.editor.koni': 'Koni Editor',
52
-};

+ 0
- 70
src/locales/en-US/pages.js 파일 보기

@@ -1,70 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title':
3
-    'Ant Design is the most influential web design specification in Xihu district',
4
-  'pages.login.accountLogin.tab': 'Account Login',
5
-  'pages.login.accountLogin.errorMessage': 'Incorrect username/password(admin/ant.design)',
6
-  'pages.login.failure': 'Login failed, please try again!',
7
-  'pages.login.success': 'Login successful!',
8
-  'pages.login.username.placeholder': 'Username: admin or user',
9
-  'pages.login.username.required': 'Please input your username!',
10
-  'pages.login.password.placeholder': 'Password: ant.design',
11
-  'pages.login.password.required': 'Please input your password!',
12
-  'pages.login.phoneLogin.tab': 'Phone Login',
13
-  'pages.login.phoneLogin.errorMessage': 'Verification Code Error',
14
-  'pages.login.phoneNumber.placeholder': 'Phone Number',
15
-  'pages.login.phoneNumber.required': 'Please input your phone number!',
16
-  'pages.login.phoneNumber.invalid': 'Phone number is invalid!',
17
-  'pages.login.captcha.placeholder': 'Verification Code',
18
-  'pages.login.captcha.required': 'Please input verification code!',
19
-  'pages.login.phoneLogin.getVerificationCode': 'Get Code',
20
-  'pages.getCaptchaSecondText': 'sec(s)',
21
-  'pages.login.rememberMe': 'Remember me',
22
-  'pages.login.forgotPassword': 'Forgot Password ?',
23
-  'pages.login.submit': 'Login',
24
-  'pages.login.loginWith': 'Login with :',
25
-  'pages.login.registerAccount': 'Register Account',
26
-  'pages.welcome.advancedComponent': 'Advanced Component',
27
-  'pages.welcome.link': 'Welcome',
28
-  'pages.welcome.advancedLayout': 'Advanced Layout',
29
-  'pages.welcome.alertMessage': 'Faster and stronger heavy-duty components have been released.',
30
-  'pages.admin.subPage.title': 'This page can only be viewed by Admin',
31
-  'pages.admin.subPage.alertMessage':
32
-    'Umi ui is now released, welcome to use npm run ui to start the experience.',
33
-  'pages.searchTable.createForm.newRule': 'New Rule',
34
-  'pages.searchTable.updateForm.ruleConfig': 'Rule configuration',
35
-  'pages.searchTable.updateForm.basicConfig': 'Basic Information',
36
-  'pages.searchTable.updateForm.ruleName.nameLabel': 'Rule Name',
37
-  'pages.searchTable.updateForm.ruleName.nameRules': 'Please enter the rule name!',
38
-  'pages.searchTable.updateForm.ruleDesc.descLabel': 'Rule Description',
39
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder': 'Please enter at least five characters',
40
-  'pages.searchTable.updateForm.ruleDesc.descRules':
41
-    'Please enter a rule description of at least five characters!',
42
-  'pages.searchTable.updateForm.ruleProps.title': 'Configure Properties',
43
-  'pages.searchTable.updateForm.object': 'Monitoring Object',
44
-  'pages.searchTable.updateForm.ruleProps.templateLabel': 'Rule Template',
45
-  'pages.searchTable.updateForm.ruleProps.typeLabel': 'Rule Type',
46
-  'pages.searchTable.updateForm.schedulingPeriod.title': 'Set Scheduling Period',
47
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': 'Starting Time',
48
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules': 'Please choose a start time!',
49
-  'pages.searchTable.titleDesc': 'Description',
50
-  'pages.searchTable.ruleName': 'Rule name is required',
51
-  'pages.searchTable.titleCallNo': 'Number of Service Calls',
52
-  'pages.searchTable.titleStatus': 'Status',
53
-  'pages.searchTable.nameStatus.default': 'default',
54
-  'pages.searchTable.nameStatus.running': 'running',
55
-  'pages.searchTable.nameStatus.online': 'online',
56
-  'pages.searchTable.nameStatus.abnormal': 'abnormal',
57
-  'pages.searchTable.titleUpdatedAt': 'Last Scheduled at',
58
-  'pages.searchTable.exception': 'Please enter the reason for the exception!',
59
-  'pages.searchTable.titleOption': 'Option',
60
-  'pages.searchTable.config': 'Configuration',
61
-  'pages.searchTable.subscribeAlert': 'Subscribe to alerts',
62
-  'pages.searchTable.title': 'Enquiry Form',
63
-  'pages.searchTable.new': 'New',
64
-  'pages.searchTable.chosen': 'chosen',
65
-  'pages.searchTable.item': 'item',
66
-  'pages.searchTable.totalServiceCalls': 'Total Number of Service Calls',
67
-  'pages.searchTable.tenThousand': '0000',
68
-  'pages.searchTable.batchDeletion': 'bacth deletion',
69
-  'pages.searchTable.batchApproval': 'batch approval',
70
-};

+ 0
- 6
src/locales/en-US/pwa.js 파일 보기

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

+ 0
- 31
src/locales/en-US/settingDrawer.js 파일 보기

@@ -1,31 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': 'Page style setting',
3
-  'app.setting.pagestyle.dark': 'Dark style',
4
-  'app.setting.pagestyle.light': 'Light style',
5
-  'app.setting.content-width': 'Content Width',
6
-  'app.setting.content-width.fixed': 'Fixed',
7
-  'app.setting.content-width.fluid': 'Fluid',
8
-  'app.setting.themecolor': 'Theme Color',
9
-  'app.setting.themecolor.dust': 'Dust Red',
10
-  'app.setting.themecolor.volcano': 'Volcano',
11
-  'app.setting.themecolor.sunset': 'Sunset Orange',
12
-  'app.setting.themecolor.cyan': 'Cyan',
13
-  'app.setting.themecolor.green': 'Polar Green',
14
-  'app.setting.themecolor.daybreak': 'Daybreak Blue (default)',
15
-  'app.setting.themecolor.geekblue': 'Geek Glue',
16
-  'app.setting.themecolor.purple': 'Golden Purple',
17
-  'app.setting.navigationmode': 'Navigation Mode',
18
-  'app.setting.sidemenu': 'Side Menu Layout',
19
-  'app.setting.topmenu': 'Top Menu Layout',
20
-  'app.setting.fixedheader': 'Fixed Header',
21
-  'app.setting.fixedsidebar': 'Fixed Sidebar',
22
-  'app.setting.fixedsidebar.hint': 'Works on Side Menu Layout',
23
-  'app.setting.hideheader': 'Hidden Header when scrolling',
24
-  'app.setting.hideheader.hint': 'Works when Hidden Header is enabled',
25
-  'app.setting.othersettings': 'Other Settings',
26
-  'app.setting.weakmode': 'Weak Mode',
27
-  'app.setting.copy': 'Copy Setting',
28
-  'app.setting.copyinfo': 'copy success,please replace defaultSettings in src/models/setting.js',
29
-  'app.setting.production.hint':
30
-    'Setting panel shows in development environment only, please manually modify',
31
-};

+ 0
- 60
src/locales/en-US/settings.js 파일 보기

@@ -1,60 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': 'Basic Settings',
3
-  'app.settings.menuMap.security': 'Security Settings',
4
-  'app.settings.menuMap.binding': 'Account Binding',
5
-  'app.settings.menuMap.notification': 'New Message Notification',
6
-  'app.settings.basic.avatar': 'Avatar',
7
-  'app.settings.basic.change-avatar': 'Change avatar',
8
-  'app.settings.basic.email': 'Email',
9
-  'app.settings.basic.email-message': 'Please input your email!',
10
-  'app.settings.basic.nickname': 'Nickname',
11
-  'app.settings.basic.nickname-message': 'Please input your Nickname!',
12
-  'app.settings.basic.profile': 'Personal profile',
13
-  'app.settings.basic.profile-message': 'Please input your personal profile!',
14
-  'app.settings.basic.profile-placeholder': 'Brief introduction to yourself',
15
-  'app.settings.basic.country': 'Country/Region',
16
-  'app.settings.basic.country-message': 'Please input your country!',
17
-  'app.settings.basic.geographic': 'Province or city',
18
-  'app.settings.basic.geographic-message': 'Please input your geographic info!',
19
-  'app.settings.basic.address': 'Street Address',
20
-  'app.settings.basic.address-message': 'Please input your address!',
21
-  'app.settings.basic.phone': 'Phone Number',
22
-  'app.settings.basic.phone-message': 'Please input your phone!',
23
-  'app.settings.basic.update': 'Update Information',
24
-  'app.settings.security.strong': 'Strong',
25
-  'app.settings.security.medium': 'Medium',
26
-  'app.settings.security.weak': 'Weak',
27
-  'app.settings.security.password': 'Account Password',
28
-  'app.settings.security.password-description': 'Current password strength',
29
-  'app.settings.security.phone': 'Security Phone',
30
-  'app.settings.security.phone-description': 'Bound phone',
31
-  'app.settings.security.question': 'Security Question',
32
-  'app.settings.security.question-description':
33
-    'The security question is not set, and the security policy can effectively protect the account security',
34
-  'app.settings.security.email': 'Backup Email',
35
-  'app.settings.security.email-description': 'Bound Email',
36
-  'app.settings.security.mfa': 'MFA Device',
37
-  'app.settings.security.mfa-description':
38
-    'Unbound MFA device, after binding, can be confirmed twice',
39
-  'app.settings.security.modify': 'Modify',
40
-  'app.settings.security.set': 'Set',
41
-  'app.settings.security.bind': 'Bind',
42
-  'app.settings.binding.taobao': 'Binding Taobao',
43
-  'app.settings.binding.taobao-description': 'Currently unbound Taobao account',
44
-  'app.settings.binding.alipay': 'Binding Alipay',
45
-  'app.settings.binding.alipay-description': 'Currently unbound Alipay account',
46
-  'app.settings.binding.dingding': 'Binding DingTalk',
47
-  'app.settings.binding.dingding-description': 'Currently unbound DingTalk account',
48
-  'app.settings.binding.bind': 'Bind',
49
-  'app.settings.notification.password': 'Account Password',
50
-  'app.settings.notification.password-description':
51
-    'Messages from other users will be notified in the form of a station letter',
52
-  'app.settings.notification.messages': 'System Messages',
53
-  'app.settings.notification.messages-description':
54
-    'System messages will be notified in the form of a station letter',
55
-  'app.settings.notification.todo': 'To-do Notification',
56
-  'app.settings.notification.todo-description':
57
-    'The to-do list will be notified in the form of a letter from the station',
58
-  'app.settings.open': 'Open',
59
-  'app.settings.close': 'Close',
60
-};

+ 0
- 23
src/locales/fa-IR.js 파일 보기

@@ -1,23 +0,0 @@
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
-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
-  'app.welcome.link.fetch-blocks': 'دریافت تمام بلوک',
15
-  'app.welcome.link.block-list': 'به سرعت صفحات استاندارد مبتنی بر توسعه "بلوک" را بسازید',
16
-  ...globalHeader,
17
-  ...menu,
18
-  ...settingDrawer,
19
-  ...settings,
20
-  ...pwa,
21
-  ...component,
22
-  ...pages,
23
-};

+ 0
- 5
src/locales/fa-IR/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': 'باز',
3
-  'component.tagSelect.collapse': 'بسته ',
4
-  'component.tagSelect.all': 'همه',
5
-};

+ 0
- 17
src/locales/fa-IR/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/fa-IR/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': 'خوش آمدید',
3
-  'menu.more-blocks': 'بلوک های بیشتر',
4
-  'menu.home': 'خانه',
5
-  'menu.admin': 'مدیر',
6
-  'menu.admin.sub-page': 'زیر صفحه',
7
-  'menu.login': 'ورود',
8
-  'menu.register': 'ثبت نام',
9
-  'menu.register-result': 'ثبت نام نتیجه',
10
-  'menu.dashboard': 'داشبورد',
11
-  'menu.dashboard.analysis': 'تحلیل و بررسی',
12
-  'menu.dashboard.monitor': 'نظارت',
13
-  'menu.dashboard.workplace': 'محل کار',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': 'فرم',
18
-  'menu.form.basic-form': 'فرم اساسی',
19
-  'menu.form.step-form': 'فرم مرحله',
20
-  'menu.form.step-form.info': 'فرم مرحله (نوشتن اطلاعات انتقال)',
21
-  'menu.form.step-form.confirm': 'فرم مرحله (تأیید اطلاعات انتقال)',
22
-  'menu.form.step-form.result': 'فرم مرحله (تمام شده)',
23
-  'menu.form.advanced-form': 'فرم پیشرفته',
24
-  'menu.list': 'لیست',
25
-  'menu.list.table-list': 'جدول جستجو',
26
-  'menu.list.basic-list': 'لیست اصلی',
27
-  'menu.list.card-list': 'لیست کارت',
28
-  'menu.list.search-list': 'لیست جستجو',
29
-  'menu.list.search-list.articles': 'لیست جستجو (مقالات)',
30
-  'menu.list.search-list.projects': 'لیست جستجو (پروژه ها)',
31
-  'menu.list.search-list.applications': 'لیست جستجو (برنامه ها)',
32
-  'menu.profile': 'مشخصات',
33
-  'menu.profile.basic': 'مشخصات عمومی',
34
-  'menu.profile.advanced': 'مشخصات پیشرفته',
35
-  'menu.result': 'نتیجه',
36
-  'menu.result.success': 'موفق',
37
-  'menu.result.fail': 'ناموفق',
38
-  'menu.exception': 'استثنا',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': 'راه اندازی',
43
-  'menu.account': 'حساب',
44
-  'menu.account.center': 'مرکز حساب',
45
-  'menu.account.settings': 'تنظیمات حساب',
46
-  'menu.account.trigger': 'خطای راه اندازی',
47
-  'menu.account.logout': 'خروج',
48
-  'menu.editor': 'ویرایشگر گرافیک',
49
-  'menu.editor.flow': 'ویرایشگر جریان',
50
-  'menu.editor.mind': 'ویرایشگر ذهن',
51
-  'menu.editor.koni': 'ویرایشگر Koni',
52
-};

+ 0
- 67
src/locales/fa-IR/pages.js 파일 보기

@@ -1,67 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title': 'طراحی مورچه تأثیرگذارترین مشخصات طراحی وب در منطقه Xihu است',
3
-  'pages.login.accountLogin.tab': 'ورود به حساب کاربری',
4
-  'pages.login.accountLogin.errorMessage': 'نام کاربری / رمزعبور نادرست (مدیر / ant.design)',
5
-  'pages.login.username.placeholder': 'نام کاربری: مدیر یا کاربر',
6
-  'pages.login.username.required': 'لطفا نام کاربری خود را وارد کنید!',
7
-  'pages.login.password.placeholder': 'رمز عبور: ant.design',
8
-  'pages.login.password.required': 'لطفاً رمز ورود خود را وارد کنید!',
9
-  'pages.login.phoneLogin.tab': 'ورود به سیستم تلفن',
10
-  'pages.login.phoneLogin.errorMessage': 'خطای کد تأیید',
11
-  'pages.login.phoneNumber.placeholder': 'شماره تلفن',
12
-  'pages.login.phoneNumber.required': 'لطفاً شماره تلفن خود را وارد کنید!',
13
-  'pages.login.phoneNumber.invalid': 'شماره تلفن نامعتبر است!',
14
-  'pages.login.captcha.placeholder': 'کد تایید',
15
-  'pages.login.captcha.required': 'لطفا کد تأیید را وارد کنید!',
16
-  'pages.login.phoneLogin.getVerificationCode': 'دریافت کد',
17
-  'pages.getCaptchaSecondText': 'ثانیه',
18
-  'pages.login.rememberMe': 'مرا به خاطر بسپار',
19
-  'pages.login.forgotPassword': 'رمز عبور را فراموش کرده اید ?',
20
-  'pages.login.submit': 'ارسال',
21
-  'pages.login.loginWith': 'وارد شوید با :',
22
-  'pages.login.registerAccount': 'ثبت نام',
23
-  'pages.welcome.advancedComponent': 'مولفه پیشرفته',
24
-  'pages.welcome.link': 'خوش آمدید',
25
-  'pages.welcome.advancedLayout': 'چیدمان پیشرفته',
26
-  'pages.welcome.alertMessage': 'اجزای سنگین تر سریعتر و قوی تر آزاد شده اند.',
27
-  'pages.admin.subPage.title': 'این صفحه فقط توسط مدیر قابل مشاهده است',
28
-  'pages.admin.subPage.alertMessage':
29
-    'رابط کاربری Umi اکنون منتشر شده است ، برای شروع تجربه استفاده از npm run ui خوش آمدید.',
30
-  'pages.searchTable.createForm.newRule': 'قانون جدید',
31
-  'pages.searchTable.updateForm.ruleConfig': 'پیکربندی قانون',
32
-  'pages.searchTable.updateForm.basicConfig': 'اطلاعات اولیه',
33
-  'pages.searchTable.updateForm.ruleName.nameLabel': ' نام قانون',
34
-  'pages.searchTable.updateForm.ruleName.nameRules': 'لطفاً نام قانون را وارد کنید!',
35
-  'pages.searchTable.updateForm.ruleDesc.descLabel': 'شرح قانون',
36
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder': 'لطفاً حداقل پنج حرف وارد کنید',
37
-  'pages.searchTable.updateForm.ruleDesc.descRules':
38
-    'لطفاً حداقل یک قانون حاوی پنج کاراکتر شرح دهید!',
39
-  'pages.searchTable.updateForm.ruleProps.title': 'پیکربندی خصوصیات',
40
-  'pages.searchTable.updateForm.object': 'نظارت بر شی',
41
-  'pages.searchTable.updateForm.ruleProps.templateLabel': 'الگوی قانون',
42
-  'pages.searchTable.updateForm.ruleProps.typeLabel': 'نوع قانون',
43
-  'pages.searchTable.updateForm.schedulingPeriod.title': 'تنظیم دوره زمان بندی',
44
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': 'زمان شروع',
45
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules': 'لطفاً زمان شروع را انتخاب کنید!',
46
-  'pages.searchTable.titleDesc': 'شرح',
47
-  'pages.searchTable.ruleName': 'نام قانون لازم است',
48
-  'pages.searchTable.titleCallNo': 'تعداد تماس های خدماتی',
49
-  'pages.searchTable.titleStatus': 'وضعیت',
50
-  'pages.searchTable.nameStatus.default': 'پیش فرض',
51
-  'pages.searchTable.nameStatus.running': 'در حال دویدن',
52
-  'pages.searchTable.nameStatus.online': 'برخط',
53
-  'pages.searchTable.nameStatus.abnormal': 'غیرطبیعی',
54
-  'pages.searchTable.titleUpdatedAt': 'آخرین برنامه ریزی در',
55
-  'pages.searchTable.exception': 'لطفا دلیل استثنا را وارد کنید!',
56
-  'pages.searchTable.titleOption': 'گزینه',
57
-  'pages.searchTable.config': 'پیکربندی',
58
-  'pages.searchTable.subscribeAlert': 'مشترک شدن در هشدارها',
59
-  'pages.searchTable.title': 'فرم درخواست',
60
-  'pages.searchTable.new': 'جدید',
61
-  'pages.searchTable.chosen': 'انتخاب شده',
62
-  'pages.searchTable.item': 'مورد',
63
-  'pages.searchTable.totalServiceCalls': 'تعداد کل تماس های خدماتی',
64
-  'pages.searchTable.tenThousand': '0000',
65
-  'pages.searchTable.batchDeletion': 'حذف دسته ای',
66
-  'pages.searchTable.batchApproval': 'تصویب دسته ای',
67
-};

+ 0
- 7
src/locales/fa-IR/pwa.js 파일 보기

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

+ 0
- 32
src/locales/fa-IR/settingDrawer.js 파일 보기

@@ -1,32 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': 'تنظیم نوع صفحه',
3
-  'app.setting.pagestyle.dark': 'سبک تیره',
4
-  'app.setting.pagestyle.light': 'سبک سبک',
5
-  'app.setting.content-width': 'عرض محتوا',
6
-  'app.setting.content-width.fixed': 'ثابت',
7
-  'app.setting.content-width.fluid': 'شناور',
8
-  'app.setting.themecolor': 'رنگ تم',
9
-  'app.setting.themecolor.dust': 'گرد و غبار قرمز',
10
-  'app.setting.themecolor.volcano': 'آتشفشان',
11
-  'app.setting.themecolor.sunset': 'غروب نارنجی',
12
-  'app.setting.themecolor.cyan': 'فیروزه ای',
13
-  'app.setting.themecolor.green': 'سبز قطبی',
14
-  'app.setting.themecolor.daybreak': 'آبی روشن(پیشفرض)',
15
-  'app.setting.themecolor.geekblue': 'چسب گیک',
16
-  'app.setting.themecolor.purple': 'بنفش طلایی',
17
-  'app.setting.navigationmode': 'حالت پیمایش',
18
-  'app.setting.sidemenu': 'طرح منوی کناری',
19
-  'app.setting.topmenu': 'طرح منوی بالایی',
20
-  'app.setting.fixedheader': 'سرصفحه ثابت',
21
-  'app.setting.fixedsidebar': 'نوار کناری ثابت',
22
-  'app.setting.fixedsidebar.hint': 'کار بر روی منوی کناری',
23
-  'app.setting.hideheader': 'هدر پنهان هنگام پیمایش',
24
-  'app.setting.hideheader.hint': 'وقتی Hidden Header فعال باشد کار می کند',
25
-  'app.setting.othersettings': 'تنظیمات دیگر',
26
-  'app.setting.weakmode': 'حالت ضعیف',
27
-  'app.setting.copy': 'تنظیمات کپی',
28
-  'app.setting.copyinfo':
29
-    'موفقیت در کپی کردن , لطفا defaultSettings را در src / models / setting.js جایگزین کنید',
30
-  'app.setting.production.hint':
31
-    'صفحه تنظیم فقط در محیط توسعه نمایش داده می شود ، لطفاً دستی تغییر دهید',
32
-};

+ 0
- 60
src/locales/fa-IR/settings.js 파일 보기

@@ -1,60 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': 'تنظیمات پایه ',
3
-  'app.settings.menuMap.security': 'تنظیمات امنیتی',
4
-  'app.settings.menuMap.binding': 'صحافی حساب',
5
-  'app.settings.menuMap.notification': 'اعلان پیام جدید',
6
-  'app.settings.basic.avatar': 'آواتار',
7
-  'app.settings.basic.change-avatar': 'آواتار را تغییر دهید',
8
-  'app.settings.basic.email': 'ایمیل',
9
-  'app.settings.basic.email-message': 'لطفا ایمیل خود را وارد کنید!',
10
-  'app.settings.basic.nickname': 'نام مستعار',
11
-  'app.settings.basic.nickname-message': 'لطفاً نام مستعار خود را وارد کنید!',
12
-  'app.settings.basic.profile': 'پروفایل شخصی',
13
-  'app.settings.basic.profile-message': 'لطفاً مشخصات شخصی خود را وارد کنید!',
14
-  'app.settings.basic.profile-placeholder': 'معرفی مختصر خودتان',
15
-  'app.settings.basic.country': 'کشور / منطقه',
16
-  'app.settings.basic.country-message': 'لطفاً کشور خود را وارد کنید!',
17
-  'app.settings.basic.geographic': 'استان یا شهر',
18
-  'app.settings.basic.geographic-message': 'لطفاً اطلاعات جغرافیایی خود را وارد کنید!',
19
-  'app.settings.basic.address': 'آدرس خیابان',
20
-  'app.settings.basic.address-message': 'لطفا آدرس خود را وارد کنید!',
21
-  'app.settings.basic.phone': 'شماره تلفن',
22
-  'app.settings.basic.phone-message': 'لطفاً تلفن خود را وارد کنید!',
23
-  'app.settings.basic.update': 'به روز رسانی اطلاعات',
24
-  'app.settings.security.strong': 'قوی',
25
-  'app.settings.security.medium': 'متوسط',
26
-  'app.settings.security.weak': 'ضعیف',
27
-  'app.settings.security.password': 'رمز عبور حساب کاربری',
28
-  'app.settings.security.password-description': 'قدرت رمز عبور فعلی',
29
-  'app.settings.security.phone': 'تلفن امنیتی',
30
-  'app.settings.security.phone-description': 'تلفن مقید',
31
-  'app.settings.security.question': 'سوال امنیتی',
32
-  'app.settings.security.question-description':
33
-    'سوال امنیتی تنظیم نشده است و سیاست امنیتی می تواند به طور موثر از امنیت حساب محافظت کند',
34
-  'app.settings.security.email': 'ایمیل پشتیبان',
35
-  'app.settings.security.email-description': 'ایمیل مقید',
36
-  'app.settings.security.mfa': 'دستگاه MFA',
37
-  'app.settings.security.mfa-description':
38
-    'دستگاه MFA بسته نشده ، پس از اتصال ، می تواند دو بار تأیید شود',
39
-  'app.settings.security.modify': 'تغییر',
40
-  'app.settings.security.set': 'تنظیم',
41
-  'app.settings.security.bind': 'بستن',
42
-  'app.settings.binding.taobao': 'اتصال Taobao',
43
-  'app.settings.binding.taobao-description': 'حساب Taobao در حال حاضر بسته نشده است',
44
-  'app.settings.binding.alipay': 'اتصال Alipay',
45
-  'app.settings.binding.alipay-description': 'حساب Alipay در حال حاضر بسته نشده است',
46
-  'app.settings.binding.dingding': 'اتصال DingTalk',
47
-  'app.settings.binding.dingding-description': 'حساب DingTalk در حال حاضر محدود نشده است',
48
-  'app.settings.binding.bind': 'بستن',
49
-  'app.settings.notification.password': 'رمز عبور حساب کاربری',
50
-  'app.settings.notification.password-description':
51
-    'پیام های سایر کاربران در قالب یک نامه ایستگاهی اعلام خواهد شد',
52
-  'app.settings.notification.messages': 'پیام های سیستم',
53
-  'app.settings.notification.messages-description':
54
-    'پیام های سیستم به صورت نامه ایستگاه مطلع می شوند',
55
-  'app.settings.notification.todo': 'اعلان کارها',
56
-  'app.settings.notification.todo-description':
57
-    'لیست کارها به صورت نامه ای از ایستگاه اطلاع داده می شود',
58
-  'app.settings.open': 'باز کن',
59
-  'app.settings.close': 'بستن',
60
-};

+ 0
- 24
src/locales/id-ID.js 파일 보기

@@ -1,24 +0,0 @@
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
-export default {
9
-  'navbar.lang': 'Bahasa',
10
-  'layout.user.link.help': 'Bantuan',
11
-  'layout.user.link.privacy': 'Privasi',
12
-  'layout.user.link.terms': 'Ketentuan',
13
-  'app.preview.down.block': 'Unduh halaman ini dalam projek lokal anda',
14
-  'app.welcome.link.fetch-blocks': 'Dapatkan semua blok',
15
-  'app.welcome.link.block-list':
16
-    'Buat standar dengan cepat, halaman-halaman berdasarkan pengembangan `block`',
17
-  ...globalHeader,
18
-  ...menu,
19
-  ...settingDrawer,
20
-  ...settings,
21
-  ...pwa,
22
-  ...component,
23
-  ...pages,
24
-};

+ 0
- 5
src/locales/id-ID/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': 'Perluas',
3
-  'component.tagSelect.collapse': 'Lipat',
4
-  'component.tagSelect.all': 'Semua',
5
-};

+ 0
- 17
src/locales/id-ID/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/id-ID/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': 'Selamat Datang',
3
-  'menu.more-blocks': 'Blocks Lainnya',
4
-  'menu.home': 'Halaman Awal',
5
-  'menu.admin': 'Admin',
6
-  'menu.admin.sub-page': 'Sub-Halaman',
7
-  'menu.login': 'Masuk',
8
-  'menu.register': 'Pendaftaran',
9
-  'menu.register-result': 'Hasil Pendaftaran',
10
-  'menu.dashboard': 'Dasbor',
11
-  'menu.dashboard.analysis': 'Analisis',
12
-  'menu.dashboard.monitor': 'Monitor',
13
-  'menu.dashboard.workplace': 'Workplace',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': 'Form',
18
-  'menu.form.basic-form': 'Form Dasar',
19
-  'menu.form.step-form': 'Form Bertahap',
20
-  'menu.form.step-form.info': 'Form Bertahap(menulis informasi yang dibagikan)',
21
-  'menu.form.step-form.confirm': 'Form Bertahap(konfirmasi informasi yang dibagikan)',
22
-  'menu.form.step-form.result': 'Form Bertahap(selesai)',
23
-  'menu.form.advanced-form': 'Form Lanjutan',
24
-  'menu.list': 'Daftar',
25
-  'menu.list.table-list': 'Tabel Pencarian',
26
-  'menu.list.basic-list': 'Daftar Dasar',
27
-  'menu.list.card-list': 'Daftar Kartu',
28
-  'menu.list.search-list': 'Daftar Pencarian',
29
-  'menu.list.search-list.articles': 'Daftar Pencarian(artikel)',
30
-  'menu.list.search-list.projects': 'Daftar Pencarian(projek)',
31
-  'menu.list.search-list.applications': 'Daftar Pencarian(aplikasi)',
32
-  'menu.profile': 'Profil',
33
-  'menu.profile.basic': 'Profil Dasar',
34
-  'menu.profile.advanced': 'Profile Lanjutan',
35
-  'menu.result': 'Hasil',
36
-  'menu.result.success': 'Sukses',
37
-  'menu.result.fail': 'Gagal',
38
-  'menu.exception': 'Pengecualian',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': 'Jalankan',
43
-  'menu.account': 'Akun',
44
-  'menu.account.center': 'Detail Akun',
45
-  'menu.account.settings': 'Pengaturan Akun',
46
-  'menu.account.trigger': 'Mengaktivasi Error',
47
-  'menu.account.logout': 'Keluar',
48
-  'menu.editor': 'Penyusun Grafis',
49
-  'menu.editor.flow': 'Penyusun Alur',
50
-  'menu.editor.mind': 'Penyusun Mind',
51
-  'menu.editor.koni': 'Penyusun Koni',
52
-};

+ 0
- 70
src/locales/id-ID/pages.js 파일 보기

@@ -1,70 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title':
3
-    'Ant Design adalah spesifikasi desain Web yang paling berpengaruh di Kabupaten Xihu',
4
-  'pages.login.accountLogin.tab': 'Login dengan akun',
5
-  'pages.login.accountLogin.errorMessage': 'Nama pengguna dan kata sandi salah(admin/ant.design)',
6
-  'pages.login.username.placeholder': 'nama pengguna: admin atau user',
7
-  'pages.login.username.required': 'Nama pengguna harus diisi!',
8
-  'pages.login.password.placeholder': 'kata sandi: ant.design',
9
-  'pages.login.password.required': 'Kata sandi harus diisi!',
10
-  'pages.login.phoneLogin.tab': 'Login dengan ponsel',
11
-  'pages.login.phoneLogin.errorMessage': 'Kesalahan kode verifikasi',
12
-  'pages.login.phoneNumber.placeholder': 'masukkan nomor telepon',
13
-  'pages.login.phoneNumber.required': 'Nomor ponsel harus diisi!',
14
-  'pages.login.phoneNumber.invalid': 'Nomor ponsel tidak valid!',
15
-  'pages.login.captcha.placeholder': 'kode verifikasi',
16
-  'pages.login.captcha.required': 'Kode verifikasi diperlukan!',
17
-  'pages.login.phoneLogin.getVerificationCode': 'Dapatkan kode',
18
-  'pages.getCaptchaSecondText': 'detik tersisa',
19
-  'pages.login.rememberMe': 'Ingat saya',
20
-  'pages.login.forgotPassword': 'Lupa Kata Sandi?',
21
-  'pages.login.submit': 'Masuk',
22
-  'pages.login.loginWith': 'Masuk dengan :',
23
-  'pages.login.registerAccount': 'Daftar Akun',
24
-  'pages.welcome.advancedComponent': 'Formulir Lanjutan',
25
-  'pages.welcome.link': 'Selamat datang',
26
-  'pages.welcome.advancedLayout': 'Tata letak Lanjutan',
27
-  'pages.welcome.alertMessage':
28
-    'Komponen heavy-duty yang lebih cepat dan lebih kuat telah dirilis.',
29
-  'pages.admin.subPage.title': 'Halaman ini hanya dapat dilihat oleh admin',
30
-  'pages.admin.subPage.alertMessage':
31
-    'umi ui telah dirilis, silahkan gunakan npm run ui untuk memulai pengalaman.',
32
-  'pages.searchTable.createForm.newRule': 'Aturan baru',
33
-  'pages.searchTable.updateForm.ruleConfig': 'Konfigurasi aturan',
34
-  'pages.searchTable.updateForm.basicConfig': 'Informasi dasar',
35
-  'pages.searchTable.updateForm.ruleName.nameLabel': 'Nama aturan',
36
-  'pages.searchTable.updateForm.ruleName.nameRules': 'Harap masukkan nama aturan!',
37
-  'pages.searchTable.updateForm.ruleDesc.descLabel': 'Deskripsi aturan',
38
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder':
39
-    'Harap masukkan setidaknya lima karakter',
40
-  'pages.searchTable.updateForm.ruleDesc.descRules':
41
-    'Harap masukkan deskripsi aturan setidaknya lima karakter!',
42
-  'pages.searchTable.updateForm.ruleProps.title': 'Properti aturan',
43
-  'pages.searchTable.updateForm.object': 'Objek pemantauan',
44
-  'pages.searchTable.updateForm.ruleProps.templateLabel': 'Template aturan',
45
-  'pages.searchTable.updateForm.ruleProps.typeLabel': 'Jenis aturan',
46
-  'pages.searchTable.updateForm.schedulingPeriod.title': 'Periode penjadwalan',
47
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': 'Waktu mulai',
48
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules': 'Pilih waktu mulai!',
49
-  'pages.searchTable.titleDesc': 'deskripsi',
50
-  'pages.searchTable.ruleName': 'Nama aturan wajib diisi',
51
-  'pages.searchTable.titleCallNo': 'Jumlah panggilan',
52
-  'pages.searchTable.titleStatus': 'Status',
53
-  'pages.searchTable.nameStatus.default': 'default',
54
-  'pages.searchTable.nameStatus.running': 'menyala',
55
-  'pages.searchTable.nameStatus.online': 'online',
56
-  'pages.searchTable.nameStatus.abnormal': 'abnormal',
57
-  'pages.searchTable.titleUpdatedAt': 'Waktu terjadwal',
58
-  'pages.searchTable.exception': 'Harap masukkan alasan pengecualian!',
59
-  'pages.searchTable.titleOption': 'Pengoperasian',
60
-  'pages.searchTable.config': 'Konfigurasi',
61
-  'pages.searchTable.subscribeAlert': 'Berlangganan notifikasi',
62
-  'pages.searchTable.title': 'Formulir pertanyaan',
63
-  'pages.searchTable.new': 'Baru',
64
-  'pages.searchTable.chosen': 'Terpilih',
65
-  'pages.searchTable.item': 'item',
66
-  'pages.searchTable.totalServiceCalls': 'Jumlah total panggilan layanan',
67
-  'pages.searchTable.tenThousand': '0000',
68
-  'pages.searchTable.batchDeletion': 'Penghapusan batch',
69
-  'pages.searchTable.batchApproval': 'Persetujuan batch',
70
-};

+ 0
- 7
src/locales/id-ID/pwa.js 파일 보기

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

+ 0
- 32
src/locales/id-ID/settingDrawer.js 파일 보기

@@ -1,32 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': 'Pengaturan style Halaman',
3
-  'app.setting.pagestyle.dark': 'Style Gelap',
4
-  'app.setting.pagestyle.light': 'Style Cerah',
5
-  'app.setting.content-width': 'Lebar Konten',
6
-  'app.setting.content-width.fixed': 'Tetap',
7
-  'app.setting.content-width.fluid': 'Fluid',
8
-  'app.setting.themecolor': 'Theme Color',
9
-  'app.setting.themecolor.dust': 'Dust Red',
10
-  'app.setting.themecolor.volcano': 'Volcano',
11
-  'app.setting.themecolor.sunset': 'Sunset Orange',
12
-  'app.setting.themecolor.cyan': 'Cyan',
13
-  'app.setting.themecolor.green': 'Polar Green',
14
-  'app.setting.themecolor.daybreak': 'Daybreak Blue (bawaan)',
15
-  'app.setting.themecolor.geekblue': 'Geek Glue',
16
-  'app.setting.themecolor.purple': 'Golden Purple',
17
-  'app.setting.navigationmode': 'Mode Navigasi',
18
-  'app.setting.sidemenu': 'Susunan Menu Samping',
19
-  'app.setting.topmenu': 'Susunan Menu Atas',
20
-  'app.setting.fixedheader': 'Header Tetap',
21
-  'app.setting.fixedsidebar': 'Sidebar Tetap',
22
-  'app.setting.fixedsidebar.hint': 'Berjalan pada Susunan Menu Samping',
23
-  'app.setting.hideheader': 'Sembunyikan Header ketika gulir ke bawah',
24
-  'app.setting.hideheader.hint': 'Bekerja ketika Header tersembunyi dimunculkan',
25
-  'app.setting.othersettings': 'Pengaturan Lainnya',
26
-  'app.setting.weakmode': 'Mode Lemah',
27
-  'app.setting.copy': 'Salin Pengaturan',
28
-  'app.setting.copyinfo':
29
-    'Berhasil disalin,tolong ubah defaultSettings pada src/models/setting.js',
30
-  'app.setting.production.hint':
31
-    'Panel pengaturan hanya muncul pada lingkungan pengembangan, silahkan modifikasi secara menual',
32
-};

+ 0
- 60
src/locales/id-ID/settings.js 파일 보기

@@ -1,60 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': 'Pengaturan Dasar',
3
-  'app.settings.menuMap.security': 'Pengaturan Keamanan',
4
-  'app.settings.menuMap.binding': 'Pengikatan Akun',
5
-  'app.settings.menuMap.notification': 'Notifikasi Pesan Baru',
6
-  'app.settings.basic.avatar': 'Avatar',
7
-  'app.settings.basic.change-avatar': 'Ubah avatar',
8
-  'app.settings.basic.email': 'Email',
9
-  'app.settings.basic.email-message': 'Tolong masukkan email!',
10
-  'app.settings.basic.nickname': 'Nickname',
11
-  'app.settings.basic.nickname-message': 'Tolong masukkan Nickname!',
12
-  'app.settings.basic.profile': 'Profil Personal',
13
-  'app.settings.basic.profile-message': 'Tolong masukkan profil personal!',
14
-  'app.settings.basic.profile-placeholder': 'Perkenalan Singkat tentang Diri Anda',
15
-  'app.settings.basic.country': 'Negara/Wilayah',
16
-  'app.settings.basic.country-message': 'Tolong masukkan negara anda!',
17
-  'app.settings.basic.geographic': 'Provinsi atau kota',
18
-  'app.settings.basic.geographic-message': 'Tolong masukkan info geografis anda!',
19
-  'app.settings.basic.address': 'Alamat Jalan',
20
-  'app.settings.basic.address-message': 'Tolong masukkan Alamat Jalan anda!',
21
-  'app.settings.basic.phone': 'Nomor Ponsel',
22
-  'app.settings.basic.phone-message': 'Tolong masukkan Nomor Ponsel anda!',
23
-  'app.settings.basic.update': 'Perbarui Informasi',
24
-  'app.settings.security.strong': 'Kuat',
25
-  'app.settings.security.medium': 'Sedang',
26
-  'app.settings.security.weak': 'Lemah',
27
-  'app.settings.security.password': 'Kata Sandi Akun',
28
-  'app.settings.security.password-description': 'Kekuatan Kata Sandi saat ini',
29
-  'app.settings.security.phone': 'Keamanan Ponsel',
30
-  'app.settings.security.phone-description': 'Mengikat Ponsel',
31
-  'app.settings.security.question': 'Pertanyaan Keamanan',
32
-  'app.settings.security.question-description':
33
-    'Pertanyaan Keamanan belum diatur, dan kebijakan keamanan dapat melindungi akun secara efektif',
34
-  'app.settings.security.email': 'Email Cadangan',
35
-  'app.settings.security.email-description': 'Mengikat Email',
36
-  'app.settings.security.mfa': 'Perangka MFA',
37
-  'app.settings.security.mfa-description':
38
-    'Tidak mengikat Perangkat MFA, setelah diikat, dapat dikonfirmasi dua kali',
39
-  'app.settings.security.modify': 'Modifikasi',
40
-  'app.settings.security.set': 'Setel',
41
-  'app.settings.security.bind': 'Ikat',
42
-  'app.settings.binding.taobao': 'Mengikat Taobao',
43
-  'app.settings.binding.taobao-description': 'Tidak mengikat akun Taobao saat ini',
44
-  'app.settings.binding.alipay': 'Mengikat Alipay',
45
-  'app.settings.binding.alipay-description': 'Tidak mengikat akun Alipay saat ini',
46
-  'app.settings.binding.dingding': 'Mengikat DingTalk',
47
-  'app.settings.binding.dingding-description': 'Tidak mengikat akun DingTalk',
48
-  'app.settings.binding.bind': 'Ikat',
49
-  'app.settings.notification.password': 'Kata Sandi Akun',
50
-  'app.settings.notification.password-description':
51
-    'Pesan dari pengguna lain akan diberitahu dalam bentuk surat',
52
-  'app.settings.notification.messages': 'Pesan Sistem',
53
-  'app.settings.notification.messages-description':
54
-    'Pesan sistem akan diberitahu dalam bentuk surat',
55
-  'app.settings.notification.todo': 'Notifikasi daftar To-do',
56
-  'app.settings.notification.todo-description':
57
-    'Daftar to-do akan diberitahukan dalam bentuk surat dari stasiun',
58
-  'app.settings.open': 'Buka',
59
-  'app.settings.close': 'Tutup',
60
-};

+ 0
- 23
src/locales/ja-JP.js 파일 보기

@@ -1,23 +0,0 @@
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
-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
-  'app.welcome.link.fetch-blocks': '',
15
-  'app.welcome.link.block-list': '',
16
-  ...globalHeader,
17
-  ...menu,
18
-  ...settingDrawer,
19
-  ...settings,
20
-  ...pwa,
21
-  ...component,
22
-  ...pages,
23
-};

+ 0
- 5
src/locales/ja-JP/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': '展開',
3
-  'component.tagSelect.collapse': '折りたたむ',
4
-  'component.tagSelect.all': 'すべて',
5
-};

+ 0
- 17
src/locales/ja-JP/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/ja-JP/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': 'ようこそ',
3
-  'menu.more-blocks': 'その他のブロック',
4
-  'menu.home': 'ホーム',
5
-  'menu.admin': '管理者',
6
-  'menu.admin.sub-page': 'サブページ',
7
-  'menu.login': 'ログイン',
8
-  'menu.register': '登録',
9
-  'menu.register-result': '登録結果',
10
-  'menu.dashboard': 'ダッシュボード',
11
-  'menu.dashboard.analysis': '分析',
12
-  'menu.dashboard.monitor': 'モニター',
13
-  'menu.dashboard.workplace': '職場',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': 'フォーム',
18
-  'menu.form.basic-form': '基本フォーム',
19
-  'menu.form.step-form': 'ステップフォーム',
20
-  'menu.form.step-form.info': 'ステップフォーム(転送情報の書き込み)',
21
-  'menu.form.step-form.confirm': 'ステップフォーム(転送情報の確認)',
22
-  'menu.form.step-form.result': 'ステップフォーム(完成)',
23
-  'menu.form.advanced-form': '高度なフォーム',
24
-  'menu.list': 'リスト',
25
-  'menu.list.table-list': '検索テーブル',
26
-  'menu.list.basic-list': '基本リスト',
27
-  'menu.list.card-list': 'カードリスト',
28
-  'menu.list.search-list': '検索リスト',
29
-  'menu.list.search-list.articles': '検索リスト(記事)',
30
-  'menu.list.search-list.projects': '検索リスト(プロジェクト)',
31
-  'menu.list.search-list.applications': '検索リスト(アプリ)',
32
-  'menu.profile': 'プロフィール',
33
-  'menu.profile.basic': '基本プロフィール',
34
-  'menu.profile.advanced': '高度なプロフィール',
35
-  'menu.result': '結果',
36
-  'menu.result.success': '成功',
37
-  'menu.result.fail': '失敗',
38
-  'menu.exception': '例外',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': 'トリガー',
43
-  'menu.account': 'アカウント',
44
-  'menu.account.center': 'アカウントセンター',
45
-  'menu.account.settings': 'アカウント設定',
46
-  'menu.account.trigger': 'トリガーエラー',
47
-  'menu.account.logout': 'ログアウト',
48
-  'menu.editor': 'グラフィックエディタ',
49
-  'menu.editor.flow': 'フローエディタ',
50
-  'menu.editor.mind': 'マインドエディター',
51
-  'menu.editor.koni': 'コニエディター',
52
-};

+ 0
- 67
src/locales/ja-JP/pages.js 파일 보기

@@ -1,67 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title': 'Ant Designは、西湖区で最も影響力のあるWebデザイン仕様です。',
3
-  'pages.login.accountLogin.tab': 'アカウントログイン',
4
-  'pages.login.accountLogin.errorMessage':
5
-    'ユーザー名/パスワードが正しくありません(admin/ant.design)',
6
-  'pages.login.username.placeholder': 'ユーザー名:adminまたはuser',
7
-  'pages.login.username.required': 'ユーザー名を入力してください!',
8
-  'pages.login.password.placeholder': 'パスワード:ant.design',
9
-  'pages.login.password.required': 'パスワードを入力してください!',
10
-  'pages.login.phoneLogin.tab': '電話ログイン',
11
-  'pages.login.phoneLogin.errorMessage': '検証コードエラー',
12
-  'pages.login.phoneNumber.placeholder': '電話番号',
13
-  'pages.login.phoneNumber.required': '電話番号を入力してください!',
14
-  'pages.login.phoneNumber.invalid': '電話番号が無効です!',
15
-  'pages.login.captcha.placeholder': '確認コード',
16
-  'pages.login.captcha.required': '確認コードを入力してください!',
17
-  'pages.login.phoneLogin.getVerificationCode': '確認コードを取得',
18
-  'pages.getCaptchaSecondText': '秒',
19
-  'pages.login.rememberMe': 'Remember me',
20
-  'pages.login.forgotPassword': 'パスワードをお忘れですか?',
21
-  'pages.login.submit': 'ログイン',
22
-  'pages.login.loginWith': 'その他のログイン方法:',
23
-  'pages.login.registerAccount': 'アカウント登録',
24
-  'pages.welcome.advancedComponent': '高度なコンポーネント',
25
-  'pages.welcome.link': 'ようこそ',
26
-  'pages.welcome.advancedLayout': '高度なレイアウト',
27
-  'pages.welcome.alertMessage': 'より高速で強力な頑丈なコンポーネントがリリースされました。',
28
-  'pages.admin.subPage.title': 'このページは管理者のみが表示できます',
29
-  'pages.admin.subPage.alertMessage':
30
-    'Umi uiがリリースされました。npm run uiを使用して体験してください。',
31
-  'pages.searchTable.createForm.newRule': '新しいルール',
32
-  'pages.searchTable.updateForm.ruleConfig': 'ルール構成',
33
-  'pages.searchTable.updateForm.basicConfig': '基本情報',
34
-  'pages.searchTable.updateForm.ruleName.nameLabel': 'ルール名',
35
-  'pages.searchTable.updateForm.ruleName.nameRules': 'ルール名を入力してください!',
36
-  'pages.searchTable.updateForm.ruleDesc.descLabel': 'ルールの説明',
37
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder': '5文字以上入力してください',
38
-  'pages.searchTable.updateForm.ruleDesc.descRules': '5文字以上のルールの説明を入力してください!',
39
-  'pages.searchTable.updateForm.ruleProps.title': 'プロパティの構成',
40
-  'pages.searchTable.updateForm.object': '監視対象',
41
-  'pages.searchTable.updateForm.ruleProps.templateLabel': 'ルールテンプレート',
42
-  'pages.searchTable.updateForm.ruleProps.typeLabel': 'ルールタイプ',
43
-  'pages.searchTable.updateForm.schedulingPeriod.title': 'スケジュール期間の設定',
44
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': '開始時間',
45
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules': '開始時間を選択してください!',
46
-  'pages.searchTable.titleDesc': '説明',
47
-  'pages.searchTable.ruleName': 'ルール名が必要です',
48
-  'pages.searchTable.titleCallNo': 'サービスコール数',
49
-  'pages.searchTable.titleStatus': 'ステータス',
50
-  'pages.searchTable.nameStatus.default': 'デフォルト',
51
-  'pages.searchTable.nameStatus.running': '起動中',
52
-  'pages.searchTable.nameStatus.online': 'オンライン',
53
-  'pages.searchTable.nameStatus.abnormal': '異常',
54
-  'pages.searchTable.titleUpdatedAt': '最終スケジュール',
55
-  'pages.searchTable.exception': '例外の理由を入力してください!',
56
-  'pages.searchTable.titleOption': 'オプション',
57
-  'pages.searchTable.config': '構成',
58
-  'pages.searchTable.subscribeAlert': 'アラートを購読する',
59
-  'pages.searchTable.title': 'お問い合わせフォーム',
60
-  'pages.searchTable.new': '新しい',
61
-  'pages.searchTable.chosen': '選んだ項目',
62
-  'pages.searchTable.item': '項目',
63
-  'pages.searchTable.totalServiceCalls': 'サービスコールの総数',
64
-  'pages.searchTable.tenThousand': '万',
65
-  'pages.searchTable.batchDeletion': 'バッチ削除',
66
-  'pages.searchTable.batchApproval': 'バッチ承認',
67
-};

+ 0
- 7
src/locales/ja-JP/pwa.js 파일 보기

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

+ 0
- 31
src/locales/ja-JP/settingDrawer.js 파일 보기

@@ -1,31 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': 'ページスタイル設定',
3
-  'app.setting.pagestyle.dark': 'ダークスタイル',
4
-  'app.setting.pagestyle.light': 'ライトスタイル',
5
-  'app.setting.content-width': 'コンテンツの幅',
6
-  'app.setting.content-width.fixed': '固定',
7
-  'app.setting.content-width.fluid': '流体',
8
-  'app.setting.themecolor': 'テーマカラー',
9
-  'app.setting.themecolor.dust': 'ダストレッド',
10
-  'app.setting.themecolor.volcano': 'ボルケ-ノ',
11
-  'app.setting.themecolor.sunset': 'サンセットオレンジ',
12
-  'app.setting.themecolor.cyan': 'シアン',
13
-  'app.setting.themecolor.green': 'ポーラーグリーン',
14
-  'app.setting.themecolor.daybreak': '夜明けの青(デフォルト)',
15
-  'app.setting.themecolor.geekblue': 'ギーク ブルー',
16
-  'app.setting.themecolor.purple': 'ゴールデンパープル',
17
-  'app.setting.navigationmode': 'ナビゲーションモード',
18
-  'app.setting.sidemenu': 'サイドメニューのレイアウト',
19
-  'app.setting.topmenu': 'トップメニューのレイアウト',
20
-  'app.setting.fixedheader': '固定ヘッダー',
21
-  'app.setting.fixedsidebar': '固定サイドバー',
22
-  'app.setting.fixedsidebar.hint': 'サイドメニューのレイアウトで動作します',
23
-  'app.setting.hideheader': 'スクロール時の非表示ヘッダー',
24
-  'app.setting.hideheader.hint': '非表示ヘッダーが有効になっている場合に機能します',
25
-  'app.setting.othersettings': 'その他の設定',
26
-  'app.setting.weakmode': 'ウィークモード',
27
-  'app.setting.copy': 'コピー設定',
28
-  'app.setting.copyinfo':
29
-    'コピーが成功しました。src/models/setting.jsのdefaultSettingsを置き換えてください',
30
-  'app.setting.production.hint': '設定パネルは開発環境でのみ表示されます。手動で変更してください',
31
-};

+ 0
- 59
src/locales/ja-JP/settings.js 파일 보기

@@ -1,59 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': '基本設定',
3
-  'app.settings.menuMap.security': 'セキュリティ設定',
4
-  'app.settings.menuMap.binding': 'アカウントのバインド',
5
-  'app.settings.menuMap.notification': '新しいメッセージの通知',
6
-  'app.settings.basic.avatar': 'アバター',
7
-  'app.settings.basic.change-avatar': 'アバターを変更する',
8
-  'app.settings.basic.email': 'メール',
9
-  'app.settings.basic.email-message': 'メールアドレスを入力してください!',
10
-  'app.settings.basic.nickname': 'ニックネーム',
11
-  'app.settings.basic.nickname-message': 'ニックネームを入力してください!',
12
-  'app.settings.basic.profile': '個人プロフィール',
13
-  'app.settings.basic.profile-message': '個人プロフィールを入力してください!',
14
-  'app.settings.basic.profile-placeholder': '自己紹介',
15
-  'app.settings.basic.country': '国/地域',
16
-  'app.settings.basic.country-message': 'あなたの国を入力してください!',
17
-  'app.settings.basic.geographic': '州または市',
18
-  'app.settings.basic.geographic-message': '地理情報を入力してください!',
19
-  'app.settings.basic.address': '住所',
20
-  'app.settings.basic.address-message': '住所を入力してください!',
21
-  'app.settings.basic.phone': '電話番号',
22
-  'app.settings.basic.phone-message': '電話番号を入力してください!',
23
-  'app.settings.basic.update': '更新情報',
24
-  'app.settings.security.strong': '強い',
25
-  'app.settings.security.medium': 'ミディアム',
26
-  'app.settings.security.weak': '弱い',
27
-  'app.settings.security.password': 'アカウントパスワード',
28
-  'app.settings.security.password-description': '現在のパスワードの強度',
29
-  'app.settings.security.phone': 'セキュリティ電話番号',
30
-  'app.settings.security.phone-description': 'バインドされた電話番号',
31
-  'app.settings.security.question': '秘密の質問',
32
-  'app.settings.security.question-description':
33
-    'セキュリティの質問が設定されてません。セキュリティポリシーはアカウントのセキュリティを効果的に保護できます',
34
-  'app.settings.security.email': 'バックアップメール',
35
-  'app.settings.security.email-description': 'バインドされたメール',
36
-  'app.settings.security.mfa': '多要素認証デバイス',
37
-  'app.settings.security.mfa-description':
38
-    'バインドされていない多要素認証デバイスは、バインド後、2回確認できます',
39
-  'app.settings.security.modify': '変更する',
40
-  'app.settings.security.set': 'セットする',
41
-  'app.settings.security.bind': 'バインド',
42
-  'app.settings.binding.taobao': 'タオバオをバインドする',
43
-  'app.settings.binding.taobao-description': '現在バインドされていないタオバオアカウント',
44
-  'app.settings.binding.alipay': 'アリペイをバインドする',
45
-  'app.settings.binding.alipay-description': '現在バインドされていないアリペイアカウント',
46
-  'app.settings.binding.dingding': 'ディントークをバインドする',
47
-  'app.settings.binding.dingding-description': '現在バインドされていないディントークアカウント',
48
-  'app.settings.binding.bind': 'バインド',
49
-  'app.settings.notification.password': 'アカウントパスワード',
50
-  'app.settings.notification.password-description':
51
-    '他のユーザーからのメッセージは、ステーションレターの形式で通知されます',
52
-  'app.settings.notification.messages': 'システムメッセージ',
53
-  'app.settings.notification.messages-description':
54
-    'システムメッセージは、ステーションレターの形式で通知されます',
55
-  'app.settings.notification.todo': 'To Do(用事) 通知',
56
-  'app.settings.notification.todo-description': 'To Doタスクは、内部レターの形式で通知されます',
57
-  'app.settings.open': '開く',
58
-  'app.settings.close': '閉じる',
59
-};

+ 0
- 21
src/locales/pt-BR.js 파일 보기

@@ -1,21 +0,0 @@
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
-export default {
9
-  'navBar.lang': 'Idiomas',
10
-  'layout.user.link.help': 'ajuda',
11
-  'layout.user.link.privacy': 'política de privacidade',
12
-  'layout.user.link.terms': 'termos de serviços',
13
-  'app.preview.down.block': 'Download this page to your local project',
14
-  ...globalHeader,
15
-  ...menu,
16
-  ...settingDrawer,
17
-  ...settings,
18
-  ...pwa,
19
-  ...component,
20
-  ...pages,
21
-};

+ 0
- 5
src/locales/pt-BR/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': 'Expandir',
3
-  'component.tagSelect.collapse': 'Diminuir',
4
-  'component.tagSelect.all': 'Todas',
5
-};

+ 0
- 18
src/locales/pt-BR/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/pt-BR/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': 'Welcome',
3
-  'menu.more-blocks': 'More Blocks',
4
-  'menu.home': 'Início',
5
-  'menu.login': 'Login',
6
-  'menu.admin': 'Admin',
7
-  'menu.admin.sub-page': 'Sub-Page',
8
-  'menu.register': 'Registro',
9
-  'menu.register-result': 'Resultado de registro',
10
-  'menu.dashboard': 'Dashboard',
11
-  'menu.dashboard.analysis': 'Análise',
12
-  'menu.dashboard.monitor': 'Monitor',
13
-  'menu.dashboard.workplace': 'Ambiente de Trabalho',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': 'Formulário',
18
-  'menu.form.basic-form': 'Formulário Básico',
19
-  'menu.form.step-form': 'Formulário Assistido',
20
-  'menu.form.step-form.info': 'Formulário Assistido(gravar informações de transferência)',
21
-  'menu.form.step-form.confirm': 'Formulário Assistido(confirmar informações de transferência)',
22
-  'menu.form.step-form.result': 'Formulário Assistido(finalizado)',
23
-  'menu.form.advanced-form': 'Formulário Avançado',
24
-  'menu.list': 'Lista',
25
-  'menu.list.table-list': 'Tabela de Busca',
26
-  'menu.list.basic-list': 'Lista Básica',
27
-  'menu.list.card-list': 'Lista de Card',
28
-  'menu.list.search-list': 'Lista de Busca',
29
-  'menu.list.search-list.articles': 'Lista de Busca(artigos)',
30
-  'menu.list.search-list.projects': 'Lista de Busca(projetos)',
31
-  'menu.list.search-list.applications': 'Lista de Busca(aplicações)',
32
-  'menu.profile': 'Perfil',
33
-  'menu.profile.basic': 'Perfil Básico',
34
-  'menu.profile.advanced': 'Perfil Avançado',
35
-  'menu.result': 'Resultado',
36
-  'menu.result.success': 'Sucesso',
37
-  'menu.result.fail': 'Falha',
38
-  'menu.exception': 'Exceção',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': 'Disparar',
43
-  'menu.account': 'Conta',
44
-  'menu.account.center': 'Central da Conta',
45
-  'menu.account.settings': 'Configurar Conta',
46
-  'menu.account.trigger': 'Disparar Erro',
47
-  'menu.account.logout': 'Sair',
48
-  'menu.editor': 'Graphic Editor',
49
-  'menu.editor.flow': 'Flow Editor',
50
-  'menu.editor.mind': 'Mind Editor',
51
-  'menu.editor.koni': 'Koni Editor',
52
-};

+ 0
- 70
src/locales/pt-BR/pages.js 파일 보기

@@ -1,70 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title':
3
-    'Ant Design é a especificação de web design mais influente no distrito de Xihu',
4
-  'pages.login.accountLogin.tab': 'Login da conta',
5
-  'pages.login.accountLogin.errorMessage': 'usuário/senha incorreto(admin/ant.design)',
6
-  'pages.login.username.placeholder': 'Usuário: admin or user',
7
-  'pages.login.username.required': 'Por favor insira seu usuário!',
8
-  'pages.login.password.placeholder': 'Senha: ant.design',
9
-  'pages.login.password.required': 'Por favor insira sua senha!',
10
-  'pages.login.phoneLogin.tab': 'Login com Telefone',
11
-  'pages.login.phoneLogin.errorMessage': 'Erro de Código de Verificação',
12
-  'pages.login.phoneNumber.placeholder': 'Telefone',
13
-  'pages.login.phoneNumber.required': 'Por favor entre com seu telefone!',
14
-  'pages.login.phoneNumber.invalid': 'Telefone é inválido!',
15
-  'pages.login.captcha.placeholder': 'Código de Verificação',
16
-  'pages.login.captcha.required': 'Por favor entre com o código de verificação!',
17
-  'pages.login.phoneLogin.getVerificationCode': 'Obter Código',
18
-  'pages.getCaptchaSecondText': 'seg(s)',
19
-  'pages.login.rememberMe': 'Lembre-me',
20
-  'pages.login.forgotPassword': 'Perdeu a Senha ?',
21
-  'pages.login.submit': 'Enviar',
22
-  'pages.login.loginWith': 'Login com :',
23
-  'pages.login.registerAccount': 'Registra Conta',
24
-  'pages.welcome.advancedComponent': 'Componente Avançado',
25
-  'pages.welcome.link': 'Bem-vindo',
26
-  'pages.welcome.advancedLayout': 'Layout Avançado',
27
-  'pages.welcome.alertMessage': 'Componentes pesados mais rápidos e mais fortes foram lançados.',
28
-  'pages.admin.subPage.title': 'Esta página só pode ser vista pelo Admin',
29
-  'pages.admin.subPage.alertMessage':
30
-    'O Umi ui foi lançado, bem-vindo ao usar o npm run ui para iniciar a experiência.',
31
-  'pages.searchTable.createForm.newRule': 'Neva Regra',
32
-  'pages.searchTable.updateForm.ruleConfig': 'Configuração de Regra',
33
-  'pages.searchTable.updateForm.basicConfig': 'Informação básica',
34
-  'pages.searchTable.updateForm.ruleName.nameLabel': 'Nome da Regra',
35
-  'pages.searchTable.updateForm.ruleName.nameRules': 'Por favor entre com o nome da regra!',
36
-  'pages.searchTable.updateForm.ruleDesc.descLabel': 'Descrição da Regra',
37
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder':
38
-    'Por favor insira ao menos cinco caracteres',
39
-  'pages.searchTable.updateForm.ruleDesc.descRules':
40
-    'Insira uma descrição de regra de pelo menos cinco caracteres!',
41
-  'pages.searchTable.updateForm.ruleProps.title': 'Configurar Propriedades',
42
-  'pages.searchTable.updateForm.object': 'Objeto de Monitoramento',
43
-  'pages.searchTable.updateForm.ruleProps.templateLabel': 'Modelo de Regra',
44
-  'pages.searchTable.updateForm.ruleProps.typeLabel': 'Tipo de Regra',
45
-  'pages.searchTable.updateForm.schedulingPeriod.title': 'Definir Período de Agendamento',
46
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': 'Hora de Início',
47
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules':
48
-    'Por favor selecione um horáriod e início!',
49
-  'pages.searchTable.titleDesc': 'Descrição',
50
-  'pages.searchTable.ruleName': 'O nome da regra é obrigatório',
51
-  'pages.searchTable.titleCallNo': 'Número de chamadas de serviço',
52
-  'pages.searchTable.titleStatus': 'Status',
53
-  'pages.searchTable.nameStatus.default': 'padrão',
54
-  'pages.searchTable.nameStatus.running': 'executando',
55
-  'pages.searchTable.nameStatus.online': 'online',
56
-  'pages.searchTable.nameStatus.abnormal': 'anormal',
57
-  'pages.searchTable.titleUpdatedAt': 'Última programação em',
58
-  'pages.searchTable.exception': 'Por favor, indique o motivo da exceção!',
59
-  'pages.searchTable.titleOption': 'Opção',
60
-  'pages.searchTable.config': 'Configuração',
61
-  'pages.searchTable.subscribeAlert': 'Inscreva-se para receber alertas',
62
-  'pages.searchTable.title': 'Formulário de Consulta',
63
-  'pages.searchTable.new': 'Novo',
64
-  'pages.searchTable.chosen': 'selecionado',
65
-  'pages.searchTable.item': 'item',
66
-  'pages.searchTable.totalServiceCalls': 'Número total de chamadas de serviço',
67
-  'pages.searchTable.tenThousand': '0000',
68
-  'pages.searchTable.batchDeletion': 'deleção em lote',
69
-  'pages.searchTable.batchApproval': 'aprovação em lote',
70
-};

+ 0
- 7
src/locales/pt-BR/pwa.js 파일 보기

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

+ 0
- 32
src/locales/pt-BR/settingDrawer.js 파일 보기

@@ -1,32 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': 'Configuração de estilo da página',
3
-  'app.setting.pagestyle.dark': 'Dark style',
4
-  'app.setting.pagestyle.light': 'Light style',
5
-  'app.setting.content-width': 'Largura do conteúdo',
6
-  'app.setting.content-width.fixed': 'Fixo',
7
-  'app.setting.content-width.fluid': 'Fluido',
8
-  'app.setting.themecolor': 'Cor do Tema',
9
-  'app.setting.themecolor.dust': 'Dust Red',
10
-  'app.setting.themecolor.volcano': 'Volcano',
11
-  'app.setting.themecolor.sunset': 'Sunset Orange',
12
-  'app.setting.themecolor.cyan': 'Cyan',
13
-  'app.setting.themecolor.green': 'Polar Green',
14
-  'app.setting.themecolor.daybreak': 'Daybreak Blue (default)',
15
-  'app.setting.themecolor.geekblue': 'Geek Glue',
16
-  'app.setting.themecolor.purple': 'Golden Purple',
17
-  'app.setting.navigationmode': 'Modo de Navegação',
18
-  'app.setting.sidemenu': 'Layout do Menu Lateral',
19
-  'app.setting.topmenu': 'Layout do Menu Superior',
20
-  'app.setting.fixedheader': 'Cabeçalho fixo',
21
-  'app.setting.fixedsidebar': 'Barra lateral fixa',
22
-  'app.setting.fixedsidebar.hint': 'Funciona no layout do menu lateral',
23
-  'app.setting.hideheader': 'Esconder o cabeçalho quando rolar',
24
-  'app.setting.hideheader.hint': 'Funciona quando o esconder cabeçalho está abilitado',
25
-  'app.setting.othersettings': 'Outras configurações',
26
-  'app.setting.weakmode': 'Weak Mode',
27
-  'app.setting.copy': 'Copiar Configuração',
28
-  'app.setting.copyinfo':
29
-    'copiado com sucesso,por favor trocar o defaultSettings em src/models/setting.js',
30
-  'app.setting.production.hint':
31
-    'O painel de configuração apenas é exibido no ambiente de desenvolvimento, por favor modifique manualmente o',
32
-};

+ 0
- 60
src/locales/pt-BR/settings.js 파일 보기

@@ -1,60 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': 'Configurações Básicas',
3
-  'app.settings.menuMap.security': 'Configurações de Segurança',
4
-  'app.settings.menuMap.binding': 'Vinculação de Conta',
5
-  'app.settings.menuMap.notification': 'Mensagens de Notificação',
6
-  'app.settings.basic.avatar': 'Avatar',
7
-  'app.settings.basic.change-avatar': 'Alterar avatar',
8
-  'app.settings.basic.email': 'Email',
9
-  'app.settings.basic.email-message': 'Por favor insira seu email!',
10
-  'app.settings.basic.nickname': 'Nome de usuário',
11
-  'app.settings.basic.nickname-message': 'Por favor insira seu nome de usuário!',
12
-  'app.settings.basic.profile': 'Perfil pessoal',
13
-  'app.settings.basic.profile-message': 'Por favor insira seu perfil pessoal!',
14
-  'app.settings.basic.profile-placeholder': 'Breve introdução sua',
15
-  'app.settings.basic.country': 'País/Região',
16
-  'app.settings.basic.country-message': 'Por favor insira país!',
17
-  'app.settings.basic.geographic': 'Província, estado ou cidade',
18
-  'app.settings.basic.geographic-message': 'Por favor insira suas informações geográficas!',
19
-  'app.settings.basic.address': 'Endereço',
20
-  'app.settings.basic.address-message': 'Por favor insira seu endereço!',
21
-  'app.settings.basic.phone': 'Número de telefone',
22
-  'app.settings.basic.phone-message': 'Por favor insira seu número de telefone!',
23
-  'app.settings.basic.update': 'Atualizar Informações',
24
-  'app.settings.security.strong': 'Forte',
25
-  'app.settings.security.medium': 'Média',
26
-  'app.settings.security.weak': 'Fraca',
27
-  'app.settings.security.password': 'Senha da Conta',
28
-  'app.settings.security.password-description': 'Força da senha',
29
-  'app.settings.security.phone': 'Telefone de Seguraça',
30
-  'app.settings.security.phone-description': 'Telefone vinculado',
31
-  'app.settings.security.question': 'Pergunta de Segurança',
32
-  'app.settings.security.question-description':
33
-    'A pergunta de segurança não está definida e a política de segurança pode proteger efetivamente a segurança da conta',
34
-  'app.settings.security.email': 'Email de Backup',
35
-  'app.settings.security.email-description': 'Email vinculado',
36
-  'app.settings.security.mfa': 'Dispositivo MFA',
37
-  'app.settings.security.mfa-description':
38
-    'O dispositivo MFA não vinculado, após a vinculação, pode ser confirmado duas vezes',
39
-  'app.settings.security.modify': 'Modificar',
40
-  'app.settings.security.set': 'Atribuir',
41
-  'app.settings.security.bind': 'Vincular',
42
-  'app.settings.binding.taobao': 'Vincular Taobao',
43
-  'app.settings.binding.taobao-description': 'Atualmente não vinculado à conta Taobao',
44
-  'app.settings.binding.alipay': 'Vincular Alipay',
45
-  'app.settings.binding.alipay-description': 'Atualmente não vinculado à conta Alipay',
46
-  'app.settings.binding.dingding': 'Vincular DingTalk',
47
-  'app.settings.binding.dingding-description': 'Atualmente não vinculado à conta DingTalk',
48
-  'app.settings.binding.bind': 'Vincular',
49
-  'app.settings.notification.password': 'Senha da Conta',
50
-  'app.settings.notification.password-description':
51
-    'Mensagens de outros usuários serão notificadas na forma de uma estação de letra',
52
-  'app.settings.notification.messages': 'Mensagens de Sistema',
53
-  'app.settings.notification.messages-description':
54
-    'Mensagens de sistema serão notificadas na forma de uma estação de letra',
55
-  'app.settings.notification.todo': 'Notificação de To-do',
56
-  'app.settings.notification.todo-description':
57
-    'A lista de to-do será notificada na forma de uma estação de letra',
58
-  'app.settings.open': 'Aberto',
59
-  'app.settings.close': 'Fechado',
60
-};

+ 0
- 24
src/locales/zh-CN.js 파일 보기

@@ -1,24 +0,0 @@
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
-export default {
9
-  'navBar.lang': '语言',
10
-  'layout.user.link.help': '帮助',
11
-  'layout.user.link.privacy': '隐私',
12
-  'layout.user.link.terms': '条款',
13
-  'app.copyright.produced': '蚂蚁集团体验技术部出品',
14
-  'app.preview.down.block': '下载此页面到本地项目',
15
-  'app.welcome.link.fetch-blocks': '获取全部区块',
16
-  'app.welcome.link.block-list': '基于 block 开发,快速构建标准页面',
17
-  ...pages,
18
-  ...globalHeader,
19
-  ...menu,
20
-  ...settingDrawer,
21
-  ...settings,
22
-  ...pwa,
23
-  ...component,
24
-};

+ 0
- 5
src/locales/zh-CN/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': '展开',
3
-  'component.tagSelect.collapse': '收起',
4
-  'component.tagSelect.all': '全部',
5
-};

+ 0
- 17
src/locales/zh-CN/globalHeader.js 파일 보기

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

+ 0
- 52
src/locales/zh-CN/menu.js 파일 보기

@@ -1,52 +0,0 @@
1
-export default {
2
-  'menu.welcome': '欢迎',
3
-  'menu.more-blocks': '更多区块',
4
-  'menu.home': '首页',
5
-  'menu.admin': '管理页',
6
-  'menu.admin.sub-page': '二级管理页',
7
-  'menu.login': '登录',
8
-  'menu.register': '注册',
9
-  'menu.register-result': '注册结果',
10
-  'menu.dashboard': 'Dashboard',
11
-  'menu.dashboard.analysis': '分析页',
12
-  'menu.dashboard.monitor': '监控页',
13
-  'menu.dashboard.workplace': '工作台',
14
-  'menu.exception.403': '403',
15
-  'menu.exception.404': '404',
16
-  'menu.exception.500': '500',
17
-  'menu.form': '表单页',
18
-  'menu.form.basic-form': '基础表单',
19
-  'menu.form.step-form': '分步表单',
20
-  'menu.form.step-form.info': '分步表单(填写转账信息)',
21
-  'menu.form.step-form.confirm': '分步表单(确认转账信息)',
22
-  'menu.form.step-form.result': '分步表单(完成)',
23
-  'menu.form.advanced-form': '高级表单',
24
-  'menu.list': '列表页',
25
-  'menu.list.table-list': '查询表格',
26
-  'menu.list.basic-list': '标准列表',
27
-  'menu.list.card-list': '卡片列表',
28
-  'menu.list.search-list': '搜索列表',
29
-  'menu.list.search-list.articles': '搜索列表(文章)',
30
-  'menu.list.search-list.projects': '搜索列表(项目)',
31
-  'menu.list.search-list.applications': '搜索列表(应用)',
32
-  'menu.profile': '详情页',
33
-  'menu.profile.basic': '基础详情页',
34
-  'menu.profile.advanced': '高级详情页',
35
-  'menu.result': '结果页',
36
-  'menu.result.success': '成功页',
37
-  'menu.result.fail': '失败页',
38
-  'menu.exception': '异常页',
39
-  'menu.exception.not-permission': '403',
40
-  'menu.exception.not-find': '404',
41
-  'menu.exception.server-error': '500',
42
-  'menu.exception.trigger': '触发错误',
43
-  'menu.account': '个人页',
44
-  'menu.account.center': '个人中心',
45
-  'menu.account.settings': '个人设置',
46
-  'menu.account.trigger': '触发报错',
47
-  'menu.account.logout': '退出登录',
48
-  'menu.editor': '图形编辑器',
49
-  'menu.editor.flow': '流程编辑器',
50
-  'menu.editor.mind': '脑图编辑器',
51
-  'menu.editor.koni': '拓扑编辑器',
52
-};

+ 0
- 67
src/locales/zh-CN/pages.js 파일 보기

@@ -1,67 +0,0 @@
1
-export default {
2
-  'pages.layouts.userLayout.title': 'Ant Design 是西湖区最具影响力的 Web 设计规范',
3
-  'pages.login.accountLogin.tab': '账户密码登录',
4
-  'pages.login.accountLogin.errorMessage': '错误的用户名和密码(admin/ant.design)',
5
-  'pages.login.failure': '登录失败,请重试!',
6
-  'pages.login.success': '登录成功!',
7
-  'pages.login.username.placeholder': '用户名: admin or user',
8
-  'pages.login.username.required': '用户名是必填项!',
9
-  'pages.login.password.placeholder': '密码: ant.design',
10
-  'pages.login.password.required': '密码是必填项!',
11
-  'pages.login.phoneLogin.tab': '手机号登录',
12
-  'pages.login.phoneLogin.errorMessage': '验证码错误',
13
-  'pages.login.phoneNumber.placeholder': '请输入手机号!',
14
-  'pages.login.phoneNumber.required': '手机号是必填项!',
15
-  'pages.login.phoneNumber.invalid': '不合法的手机号!',
16
-  'pages.login.captcha.placeholder': '请输入验证码!',
17
-  'pages.login.captcha.required': '验证码是必填项!',
18
-  'pages.login.phoneLogin.getVerificationCode': '获取验证码',
19
-  'pages.getCaptchaSecondText': '秒后重新获取',
20
-  'pages.login.rememberMe': '自动登录',
21
-  'pages.login.forgotPassword': '忘记密码 ?',
22
-  'pages.login.submit': '登录',
23
-  'pages.login.loginWith': '其他登录方式 :',
24
-  'pages.login.registerAccount': '注册账户',
25
-  'pages.welcome.advancedComponent': '高级表格',
26
-  'pages.welcome.link': '欢迎使用',
27
-  'pages.welcome.advancedLayout': '高级布局',
28
-  'pages.welcome.alertMessage': '更快更强的重型组件,已经发布。',
29
-  'pages.admin.subPage.title': ' 这个页面只有 admin 权限才能查看',
30
-  'pages.admin.subPage.alertMessage': 'umi ui 现已发布,欢迎使用 npm run ui 启动体验。',
31
-  'pages.searchTable.createForm.newRule': '新建规则',
32
-  'pages.searchTable.updateForm.ruleConfig': '规则配置',
33
-  'pages.searchTable.updateForm.basicConfig': '基本信息',
34
-  'pages.searchTable.updateForm.ruleName.nameLabel': '规则名称',
35
-  'pages.searchTable.updateForm.ruleName.nameRules': '请输入规则名称!',
36
-  'pages.searchTable.updateForm.ruleDesc.descLabel': '规则描述',
37
-  'pages.searchTable.updateForm.ruleDesc.descPlaceholder': '请输入至少五个字符',
38
-  'pages.searchTable.updateForm.ruleDesc.descRules': '请输入至少五个字符的规则描述!',
39
-  'pages.searchTable.updateForm.ruleProps.title': '配置规则属性',
40
-  'pages.searchTable.updateForm.object': '监控对象',
41
-  'pages.searchTable.updateForm.ruleProps.templateLabel': '规则模板',
42
-  'pages.searchTable.updateForm.ruleProps.typeLabel': '规则类型',
43
-  'pages.searchTable.updateForm.schedulingPeriod.title': '设定调度周期',
44
-  'pages.searchTable.updateForm.schedulingPeriod.timeLabel': '开始时间',
45
-  'pages.searchTable.updateForm.schedulingPeriod.timeRules': '请选择开始时间!',
46
-  'pages.searchTable.titleDesc': '描述',
47
-  'pages.searchTable.ruleName': '规则名称为必填项',
48
-  'pages.searchTable.titleCallNo': '服务调用次数',
49
-  'pages.searchTable.titleStatus': '状态',
50
-  'pages.searchTable.nameStatus.default': '关闭',
51
-  'pages.searchTable.nameStatus.running': '运行中',
52
-  'pages.searchTable.nameStatus.online': '已上线',
53
-  'pages.searchTable.nameStatus.abnormal': '异常',
54
-  'pages.searchTable.titleUpdatedAt': '上次调度时间',
55
-  'pages.searchTable.exception': '请输入异常原因!',
56
-  'pages.searchTable.titleOption': '操作',
57
-  'pages.searchTable.config': '配置',
58
-  'pages.searchTable.subscribeAlert': '订阅警报',
59
-  'pages.searchTable.title': '查询表格',
60
-  'pages.searchTable.new': '新建',
61
-  'pages.searchTable.chosen': '已选择',
62
-  'pages.searchTable.item': '项',
63
-  'pages.searchTable.totalServiceCalls': '服务调用次数总计',
64
-  'pages.searchTable.tenThousand': '万',
65
-  'pages.searchTable.batchDeletion': '批量删除',
66
-  'pages.searchTable.batchApproval': '批量审批',
67
-};

+ 0
- 6
src/locales/zh-CN/pwa.js 파일 보기

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

+ 0
- 31
src/locales/zh-CN/settingDrawer.js 파일 보기

@@ -1,31 +0,0 @@
1
-export default {
2
-  'app.setting.pagestyle': '整体风格设置',
3
-  'app.setting.pagestyle.dark': '暗色菜单风格',
4
-  'app.setting.pagestyle.light': '亮色菜单风格',
5
-  'app.setting.content-width': '内容区域宽度',
6
-  'app.setting.content-width.fixed': '定宽',
7
-  'app.setting.content-width.fluid': '流式',
8
-  'app.setting.themecolor': '主题色',
9
-  'app.setting.themecolor.dust': '薄暮',
10
-  'app.setting.themecolor.volcano': '火山',
11
-  'app.setting.themecolor.sunset': '日暮',
12
-  'app.setting.themecolor.cyan': '明青',
13
-  'app.setting.themecolor.green': '极光绿',
14
-  'app.setting.themecolor.daybreak': '拂晓蓝(默认)',
15
-  'app.setting.themecolor.geekblue': '极客蓝',
16
-  'app.setting.themecolor.purple': '酱紫',
17
-  'app.setting.navigationmode': '导航模式',
18
-  'app.setting.sidemenu': '侧边菜单布局',
19
-  'app.setting.topmenu': '顶部菜单布局',
20
-  'app.setting.fixedheader': '固定 Header',
21
-  'app.setting.fixedsidebar': '固定侧边菜单',
22
-  'app.setting.fixedsidebar.hint': '侧边菜单布局时可配置',
23
-  'app.setting.hideheader': '下滑时隐藏 Header',
24
-  'app.setting.hideheader.hint': '固定 Header 时可配置',
25
-  'app.setting.othersettings': '其他设置',
26
-  'app.setting.weakmode': '色弱模式',
27
-  'app.setting.copy': '拷贝设置',
28
-  'app.setting.copyinfo': '拷贝成功,请到 config/defaultSettings.js 中替换默认配置',
29
-  'app.setting.production.hint':
30
-    '配置栏只在开发环境用于预览,生产环境不会展现,请拷贝后手动修改配置文件',
31
-};

+ 0
- 55
src/locales/zh-CN/settings.js 파일 보기

@@ -1,55 +0,0 @@
1
-export default {
2
-  'app.settings.menuMap.basic': '基本设置',
3
-  'app.settings.menuMap.security': '安全设置',
4
-  'app.settings.menuMap.binding': '账号绑定',
5
-  'app.settings.menuMap.notification': '新消息通知',
6
-  'app.settings.basic.avatar': '头像',
7
-  'app.settings.basic.change-avatar': '更换头像',
8
-  'app.settings.basic.email': '邮箱',
9
-  'app.settings.basic.email-message': '请输入您的邮箱!',
10
-  'app.settings.basic.nickname': '昵称',
11
-  'app.settings.basic.nickname-message': '请输入您的昵称!',
12
-  'app.settings.basic.profile': '个人简介',
13
-  'app.settings.basic.profile-message': '请输入个人简介!',
14
-  'app.settings.basic.profile-placeholder': '个人简介',
15
-  'app.settings.basic.country': '国家/地区',
16
-  'app.settings.basic.country-message': '请输入您的国家或地区!',
17
-  'app.settings.basic.geographic': '所在省市',
18
-  'app.settings.basic.geographic-message': '请输入您的所在省市!',
19
-  'app.settings.basic.address': '街道地址',
20
-  'app.settings.basic.address-message': '请输入您的街道地址!',
21
-  'app.settings.basic.phone': '联系电话',
22
-  'app.settings.basic.phone-message': '请输入您的联系电话!',
23
-  'app.settings.basic.update': '更新基本信息',
24
-  'app.settings.security.strong': '强',
25
-  'app.settings.security.medium': '中',
26
-  'app.settings.security.weak': '弱',
27
-  'app.settings.security.password': '账户密码',
28
-  'app.settings.security.password-description': '当前密码强度',
29
-  'app.settings.security.phone': '密保手机',
30
-  'app.settings.security.phone-description': '已绑定手机',
31
-  'app.settings.security.question': '密保问题',
32
-  'app.settings.security.question-description': '未设置密保问题,密保问题可有效保护账户安全',
33
-  'app.settings.security.email': '备用邮箱',
34
-  'app.settings.security.email-description': '已绑定邮箱',
35
-  'app.settings.security.mfa': 'MFA 设备',
36
-  'app.settings.security.mfa-description': '未绑定 MFA 设备,绑定后,可以进行二次确认',
37
-  'app.settings.security.modify': '修改',
38
-  'app.settings.security.set': '设置',
39
-  'app.settings.security.bind': '绑定',
40
-  'app.settings.binding.taobao': '绑定淘宝',
41
-  'app.settings.binding.taobao-description': '当前未绑定淘宝账号',
42
-  'app.settings.binding.alipay': '绑定支付宝',
43
-  'app.settings.binding.alipay-description': '当前未绑定支付宝账号',
44
-  'app.settings.binding.dingding': '绑定钉钉',
45
-  'app.settings.binding.dingding-description': '当前未绑定钉钉账号',
46
-  'app.settings.binding.bind': '绑定',
47
-  'app.settings.notification.password': '账户密码',
48
-  'app.settings.notification.password-description': '其他用户的消息将以站内信的形式通知',
49
-  'app.settings.notification.messages': '系统消息',
50
-  'app.settings.notification.messages-description': '系统消息将以站内信的形式通知',
51
-  'app.settings.notification.todo': '待办任务',
52
-  'app.settings.notification.todo-description': '待办任务将以站内信的形式通知',
53
-  'app.settings.open': '开',
54
-  'app.settings.close': '关',
55
-};

+ 0
- 19
src/locales/zh-TW.js 파일 보기

@@ -1,19 +0,0 @@
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
-export default {
8
-  'navBar.lang': '語言',
9
-  'layout.user.link.help': '幫助',
10
-  'layout.user.link.privacy': '隱私',
11
-  'layout.user.link.terms': '條款',
12
-  'app.preview.down.block': '下載此頁面到本地項目',
13
-  ...globalHeader,
14
-  ...menu,
15
-  ...settingDrawer,
16
-  ...settings,
17
-  ...pwa,
18
-  ...component,
19
-};

+ 0
- 5
src/locales/zh-TW/component.js 파일 보기

@@ -1,5 +0,0 @@
1
-export default {
2
-  'component.tagSelect.expand': '展開',
3
-  'component.tagSelect.collapse': '收起',
4
-  'component.tagSelect.all': '全部',
5
-};

+ 0
- 0
src/locales/zh-TW/globalHeader.js 파일 보기


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.