andrew преди 4 години
родител
ревизия
6b3108adc9
променени са 23 файла, в които са добавени 817 реда и са изтрити 0 реда
  1. 34
    0
      estateagents-admin-manager/src/layouts/SearchList/BodyPagination.jsx
  2. 28
    0
      estateagents-admin-manager/src/layouts/SearchList/SearchBody.jsx
  3. 79
    0
      estateagents-admin-manager/src/layouts/SearchList/SearchForm.jsx
  4. 167
    0
      estateagents-admin-manager/src/layouts/SearchList/index.jsx
  5. 46
    0
      estateagents-admin-manager/src/layouts/SearchList/style.less
  6. 36
    0
      estateagents-admin-manager/src/layouts/SearchList/utils.js
  7. 21
    0
      estateagents-admin-manager/src/locales/en-US.js
  8. 5
    0
      estateagents-admin-manager/src/locales/en-US/component.js
  9. 17
    0
      estateagents-admin-manager/src/locales/en-US/globalHeader.js
  10. 51
    0
      estateagents-admin-manager/src/locales/en-US/menu.js
  11. 6
    0
      estateagents-admin-manager/src/locales/en-US/pwa.js
  12. 31
    0
      estateagents-admin-manager/src/locales/en-US/settingDrawer.js
  13. 60
    0
      estateagents-admin-manager/src/locales/en-US/settings.js
  14. 19
    0
      estateagents-admin-manager/src/locales/pt-BR.js
  15. 5
    0
      estateagents-admin-manager/src/locales/pt-BR/component.js
  16. 18
    0
      estateagents-admin-manager/src/locales/pt-BR/globalHeader.js
  17. 50
    0
      estateagents-admin-manager/src/locales/pt-BR/menu.js
  18. 7
    0
      estateagents-admin-manager/src/locales/pt-BR/pwa.js
  19. 32
    0
      estateagents-admin-manager/src/locales/pt-BR/settingDrawer.js
  20. 60
    0
      estateagents-admin-manager/src/locales/pt-BR/settings.js
  21. 21
    0
      estateagents-admin-manager/src/locales/zh-CN.js
  22. 5
    0
      estateagents-admin-manager/src/locales/zh-CN/component.js
  23. 19
    0
      estateagents-admin-manager/src/locales/zh-TW.js

+ 34
- 0
estateagents-admin-manager/src/layouts/SearchList/BodyPagination.jsx Целия файл

@@ -0,0 +1,34 @@
1
+import React, { PureComponent } from 'react'
2
+import PropTypes from 'prop-types'
3
+import { Pagination } from 'antd'
4
+
5
+import Style from './style.less'
6
+
7
+export default class BodyPagination extends PureComponent {
8
+  static propTypes = {
9
+    storage: PropTypes.object,
10
+    onChange: PropTypes.func,
11
+    configs: PropTypes.object,
12
+  }
13
+
14
+  // storage = this.props.storage
15
+
16
+  handleChange = (page, pageSize) => {
17
+    if (this.props.onChange) {
18
+      this.props.onChange(page, pageSize)
19
+    }
20
+  }
21
+
22
+  render() {
23
+    return (
24
+      <div className={Style['body-paged']}>
25
+        <Pagination
26
+          showSizeChanger
27
+          onChange={this.handleChange}
28
+          onShowSizeChange={this.handleChange} 
29
+          {...(this.props.configs || {})}
30
+        />
31
+      </div>
32
+    )
33
+  }
34
+}

+ 28
- 0
estateagents-admin-manager/src/layouts/SearchList/SearchBody.jsx Целия файл

@@ -0,0 +1,28 @@
1
+import React, { PureComponent } from 'react'
2
+import PropTypes from 'prop-types'
3
+
4
+import { Table } from 'antd'
5
+import { isFunction } from './utils'
6
+
7
+export default class SearchBody extends PureComponent {
8
+  static propTypes = {
9
+    storage: PropTypes.object,
10
+    dataSource: PropTypes.array,
11
+    configs: PropTypes.object,
12
+  }
13
+
14
+  // storage = this.props.storage
15
+
16
+  render() {
17
+    const { dataSource, configs } = this.props
18
+    const { render, ...leftProps } = configs || {}
19
+
20
+    if (isFunction(render)) {
21
+      return render(dataSource)
22
+    }
23
+
24
+    return (
25
+      <Table pagination={false} dataSource={dataSource} {...leftProps} />
26
+    )
27
+  }
28
+}

+ 79
- 0
estateagents-admin-manager/src/layouts/SearchList/SearchForm.jsx Целия файл

@@ -0,0 +1,79 @@
1
+import React, { PureComponent } from 'react'
2
+import PropTypes from 'prop-types'
3
+import createForm from '@zjxpcyc/xrc-form2'
4
+import { Button } from 'antd'
5
+
6
+const XForm = createForm()
7
+
8
+function clearProperties (o) {
9
+  return Object.keys(o).reduce((acc, k) => {
10
+    return {
11
+      ...acc,
12
+      [`${k}`]: undefined,
13
+    }
14
+  }, {})
15
+}
16
+
17
+export default class SearchForm extends PureComponent {
18
+  static propTypes = {
19
+    storage: PropTypes.object,
20
+    onSubmit: PropTypes.func,
21
+    onCancel: PropTypes.func,
22
+    configs: PropTypes.object,
23
+  }
24
+
25
+  wrapperForm = null
26
+  storage = this.props.storage || {}
27
+
28
+  componentDidMount() {
29
+    const conditions = this.storage.get('conditions')
30
+
31
+    if (this.wrapperForm && conditions) {
32
+      this.wrapperForm.props.form.setFieldsValue(conditions)
33
+    }
34
+  }
35
+
36
+  handleCancel = () => {
37
+    const conditions = this.storage.get('conditions') || {}
38
+    this.storage.set('conditions', {})
39
+
40
+    if (this.wrapperForm) {
41
+      this.wrapperForm.props.form.setFieldsValue(clearProperties(conditions))
42
+    }
43
+
44
+    if (this.props.onCancel) {
45
+      this.props.onCancel()
46
+    }
47
+  }
48
+
49
+  wrapperFields = (fields) => {
50
+    return [
51
+      ...fields,
52
+      {
53
+        action: true,
54
+        render: (props) => (<Button htmlType="submit" type="primary">搜索</Button>)
55
+      },
56
+      {
57
+        action: true,
58
+        render: (props) => (<Button htmlType="button" onClick={this.handleCancel} style={{ marginLeft: '16px' }}>重置</Button>)
59
+      },
60
+    ]
61
+  }
62
+
63
+  render() {
64
+    const { fields, ...leftProps } = this.props.configs || {}
65
+
66
+    return (
67
+      <XForm
68
+        submitBtn={false}
69
+        cancelBtn={false}
70
+        layout="inline"
71
+        fields={this.wrapperFields(fields)}
72
+        onSubmit={this.props.onSubmit}
73
+        wrappedComponentRef={f => this.wrapperForm = f}
74
+        {...leftProps}
75
+      />
76
+    )
77
+  }
78
+}
79
+

+ 167
- 0
estateagents-admin-manager/src/layouts/SearchList/index.jsx Целия файл

@@ -0,0 +1,167 @@
1
+import React from 'react'
2
+import PropTypes from 'prop-types'
3
+import classNames from 'classnames'
4
+import { Spin, notification } from 'antd'
5
+
6
+import SearchForm from './SearchForm'
7
+import SearchBody from './SearchBody'
8
+import BodyHeader from './BodyHeader'
9
+import BodyPagination from './BodyPagination'
10
+import { getStorageBuilder } from './utils'
11
+import Style from './style.less'
12
+
13
+class SearchList extends React.PureComponent {
14
+  static propTypes = {
15
+    storage: PropTypes.object,
16
+    title: PropTypes.any,
17
+    actions: PropTypes.any,
18
+    search: PropTypes.object,
19
+    body: PropTypes.object,
20
+    pagination: PropTypes.object,
21
+    service: PropTypes.func,
22
+    ejectRetrieve: PropTypes.func,
23
+  }
24
+
25
+  state = {
26
+    defaultStorage: this.props.storage || getStorageBuilder('PAGE-SearchList'),
27
+    dataSource: [],
28
+    conditions: this.getStorage().get('conditions') || {},
29
+    loadding: false,
30
+    pageConfig: {
31
+      ...(this.getStorage().get('pagination') || { current: 1, pageSize: 10 }),
32
+      total: 0,
33
+    },
34
+  }
35
+
36
+  componentDidMount () {
37
+    if (this.props.ejectRetrieve) {
38
+      this.props.ejectRetrieve(this.queryData)
39
+    }
40
+  }
41
+  
42
+  getStorage() {
43
+    return this.props.storage || this.state.defaultStorage
44
+  }
45
+
46
+  handlePageChange = (current, pageSize) => {
47
+    this.getStorage().set('pagination', { current, pageSize: 10 })
48
+
49
+    this.setState(
50
+      (state) => ({
51
+        ...state,
52
+        pageConfig: {
53
+          ...state.pageConfig,
54
+          current,
55
+          pageSize,
56
+        }
57
+      }),
58
+      this.queryData,
59
+    )
60
+  }
61
+
62
+  repondToSearch = (conditions) => {
63
+    // 查询提交会重置页码
64
+    const { pageConfig } = this.state
65
+    const newPageConfig = { ...pageConfig, current: 1, total: 0 }
66
+
67
+    this.getStorage().set('conditions', conditions)
68
+    this.getStorage().set('pagination', newPageConfig)
69
+
70
+    this.setState(
71
+      (state) => ({
72
+        ...state,
73
+        conditions,
74
+        pageConfig: newPageConfig,
75
+      }),
76
+      this.queryData,
77
+    )
78
+  }
79
+
80
+  handleSearchSubmit = (conditions) => {
81
+    console.log('------conditions-------->?', conditions)
82
+    this.repondToSearch(conditions)
83
+  }
84
+
85
+  handleSearchCancel = () => {
86
+    this.repondToSearch({})
87
+  }
88
+
89
+  queryData = () => {
90
+    if (this.props.service) {
91
+      const pageConfigProps = this.props.pagination || {}
92
+      const keyOfPageNumber = pageConfigProps.keyOfPageNumber || 'pageNumber'
93
+      const keyOfPageSize= pageConfigProps.keyOfPageSize || 'pageSize'
94
+      const keyOfTotalSize= pageConfigProps.keyOfTotalSize || 'total'
95
+
96
+      const { conditions = {}, pageConfig } = this.state
97
+
98
+      this.setState({ loadding: true })
99
+
100
+      this.props.service({
101
+        ...conditions,
102
+        ...{
103
+          [`${keyOfPageNumber}`]: pageConfig.current,
104
+          [`${keyOfPageSize}`]: pageConfig.pageSize,
105
+        },
106
+      }).then((res) => {
107
+        const [dataSource, pageParams = {}] = res || []
108
+
109
+        this.setState((state) => ({
110
+          ...state,
111
+          loadding: false,
112
+          dataSource,
113
+          pageConfig: {
114
+            ...state.pageConfig,
115
+            total: pageParams[keyOfTotalSize],
116
+          },
117
+        }))
118
+      }).catch((e) => {
119
+        this.setState({ loadding: false })
120
+        console.error(e)
121
+      })
122
+    }
123
+  }
124
+
125
+  render() {
126
+    const {
127
+      keyOfPageNumber,
128
+      keyOfPageSize,
129
+      keyOfTotalSize,
130
+      ...leftPageParams
131
+    } = this.props.pagination || {}
132
+
133
+    const pageConfig = {
134
+      ...leftPageParams,
135
+      ...this.state.pageConfig,
136
+    }
137
+
138
+    const storage = this.getStorage()
139
+
140
+    return (
141
+      <div className={Style['search-list']}>
142
+        <div className={Style['head']}>
143
+          <SearchForm storage={storage} onSubmit={this.handleSearchSubmit} onCancel={this.handleSearchCancel} configs={this.props.search} />
144
+        </div>
145
+        <div className={Style['body']}>
146
+          <BodyHeader storage={storage} title={this.props.title} actions={this.props.actions} />
147
+          <Spin spinning={this.state.loadding}>
148
+            <SearchBody storage={storage} dataSource={this.state.dataSource} configs={this.props.body} />
149
+          </Spin>
150
+          <BodyPagination storage={storage} onChange={this.handlePageChange} configs={pageConfig} />
151
+        </div>
152
+      </div>
153
+    )
154
+  }
155
+}
156
+
157
+function withSearchList (configs = {}) {
158
+  const cacheKey = `PAGE-${configs.name || 'SearchList'}`
159
+  const storage = getStorageBuilder(cacheKey)
160
+
161
+  return React.forwardRef((props, ref) => {
162
+    return <SearchList storage={storage} {...props} ref={ref} />
163
+  })
164
+}
165
+
166
+export default SearchList;
167
+export { withSearchList }

+ 46
- 0
estateagents-admin-manager/src/layouts/SearchList/style.less Целия файл

@@ -0,0 +1,46 @@
1
+
2
+.search-list {
3
+  .head {
4
+    margin-bottom: 24px;
5
+    padding: 16px;
6
+    overflow: hidden;
7
+    background: #fff;
8
+  }
9
+
10
+  .body {
11
+    &::after {
12
+      content: '';
13
+      clear: both;
14
+      display: block;
15
+    }
16
+
17
+    .body-header {
18
+      display: flex;
19
+      align-items: center;
20
+      justify-content: space-between;
21
+      height: 64px;
22
+      padding: 0 24px;
23
+      line-height: 64px;
24
+
25
+      .body-header-title {
26
+        flex: 1 1;
27
+        color: #000;
28
+        font-size: 16px;
29
+        line-height: 24px;
30
+      }
31
+
32
+      .body-header-action {
33
+        display: flex;
34
+        align-items: center;
35
+        justify-content: flex-end;
36
+      }
37
+
38
+    }
39
+
40
+    .body-paged {
41
+      padding: 0 24px;
42
+      float: right;
43
+      margin: 16px 0;
44
+    }
45
+  }
46
+}

+ 36
- 0
estateagents-admin-manager/src/layouts/SearchList/utils.js Целия файл

@@ -0,0 +1,36 @@
1
+
2
+export function isFunction(fn) {
3
+  return typeof fn === 'function'
4
+}
5
+
6
+export function setStorage(k, v) {
7
+  if (typeof v !== 'object') return
8
+
9
+  window.localStorage.setItem(k, window.JSON.stringify(v))
10
+}
11
+
12
+export function getStorage(k) {
13
+  const str = window.localStorage.getItem(k);
14
+  if (!str) return;
15
+
16
+  return window.JSON.parse(str);
17
+}
18
+
19
+export function getStorageBuilder(key, initData) {
20
+  if (initData) {
21
+    setStorage(key, initData)  
22
+  }
23
+
24
+  return {
25
+    set: (k, v) => {
26
+      const data = getStorage(key) || {}
27
+
28
+      setStorage(key, { ...data, [`${k}`]: v })
29
+    },
30
+
31
+    get: (k) => {
32
+      const data = getStorage(key) || {}
33
+      return data[k]
34
+    }
35
+  }
36
+}

+ 21
- 0
estateagents-admin-manager/src/locales/en-US.js Целия файл

@@ -0,0 +1,21 @@
1
+import component from './en-US/component';
2
+import globalHeader from './en-US/globalHeader';
3
+import menu from './en-US/menu';
4
+import pwa from './en-US/pwa';
5
+import settingDrawer from './en-US/settingDrawer';
6
+import settings from './en-US/settings';
7
+export default {
8
+  'navBar.lang': 'Languages',
9
+  'layout.user.link.help': 'Help',
10
+  'layout.user.link.privacy': 'Privacy',
11
+  'layout.user.link.terms': 'Terms',
12
+  'app.preview.down.block': 'Download this page to your local project',
13
+  'app.welcome.link.fetch-blocks': 'Get all block',
14
+  'app.welcome.link.block-list': 'Quickly build standard, pages based on `block` development',
15
+  ...globalHeader,
16
+  ...menu,
17
+  ...settingDrawer,
18
+  ...settings,
19
+  ...pwa,
20
+  ...component,
21
+};

+ 5
- 0
estateagents-admin-manager/src/locales/en-US/component.js Целия файл

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

+ 17
- 0
estateagents-admin-manager/src/locales/en-US/globalHeader.js Целия файл

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

+ 51
- 0
estateagents-admin-manager/src/locales/en-US/menu.js Целия файл

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

+ 6
- 0
estateagents-admin-manager/src/locales/en-US/pwa.js Целия файл

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

+ 31
- 0
estateagents-admin-manager/src/locales/en-US/settingDrawer.js Целия файл

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

+ 60
- 0
estateagents-admin-manager/src/locales/en-US/settings.js Целия файл

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

+ 19
- 0
estateagents-admin-manager/src/locales/pt-BR.js Целия файл

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

+ 5
- 0
estateagents-admin-manager/src/locales/pt-BR/component.js Целия файл

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

+ 18
- 0
estateagents-admin-manager/src/locales/pt-BR/globalHeader.js Целия файл

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

+ 50
- 0
estateagents-admin-manager/src/locales/pt-BR/menu.js Целия файл

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

+ 7
- 0
estateagents-admin-manager/src/locales/pt-BR/pwa.js Целия файл

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

+ 32
- 0
estateagents-admin-manager/src/locales/pt-BR/settingDrawer.js Целия файл

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

+ 60
- 0
estateagents-admin-manager/src/locales/pt-BR/settings.js Целия файл

@@ -0,0 +1,60 @@
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.loginPassword': 'Senha da Conta',
28
+  'app.settings.security.loginPassword-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
+};

+ 21
- 0
estateagents-admin-manager/src/locales/zh-CN.js Целия файл

@@ -0,0 +1,21 @@
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
+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
+  'app.welcome.link.fetch-blocks': '获取全部区块',
14
+  'app.welcome.link.block-list': '基于 block 开发,快速构建标准页面',
15
+  ...globalHeader,
16
+  ...menu,
17
+  ...settingDrawer,
18
+  ...settings,
19
+  ...pwa,
20
+  ...component,
21
+};

+ 5
- 0
estateagents-admin-manager/src/locales/zh-CN/component.js Целия файл

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

+ 19
- 0
estateagents-admin-manager/src/locales/zh-TW.js Целия файл

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