@bit-sun/business-component 2.4.22 → 2.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/components/Business/BsLayouts/Components/ChooseStore/index.d.ts +3 -0
  2. package/dist/components/Business/BsLayouts/Components/ChooseStore/services.d.ts +1 -0
  3. package/dist/components/Business/BsLayouts/Components/RightContent/i18n.d.ts +9 -0
  4. package/dist/components/Business/BsLayouts/service.d.ts +1 -1
  5. package/dist/components/Business/BsSulaQueryTable/index.d.ts +1 -0
  6. package/dist/components/Business/BsSulaQueryTable/setting.d.ts +1 -1
  7. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +1 -0
  8. package/dist/components/Business/columnSettingTable/columnSetting.d.ts +1 -0
  9. package/dist/components/Functional/ExportFunctions/ExportIcon/index.d.ts +1 -1
  10. package/dist/components/Functional/QueryMutipleInput/index.d.ts +2 -1
  11. package/dist/components/Solution/RuleComponent/RenderCompItem.d.ts +2 -0
  12. package/dist/components/Solution/RuleComponent/services.d.ts +1 -1
  13. package/dist/index.esm.js +1777 -1251
  14. package/dist/index.js +1760 -1232
  15. package/dist/utils/TableUtils.d.ts +93 -2
  16. package/dist/utils/businessUtils.d.ts +27 -0
  17. package/dist/utils/constant.d.ts +37 -0
  18. package/dist/utils/index.d.ts +6 -4
  19. package/dist/utils/request.d.ts +2 -0
  20. package/dist/utils/utils.d.ts +13 -0
  21. package/package.json +7 -4
  22. package/src/assets/32.svg +27 -27
  23. package/src/assets/addIcon.svg +17 -17
  24. package/src/assets/allfunc.svg +27 -27
  25. package/src/assets/arrowRight.svg +24 -24
  26. package/src/assets/arrow_top.svg +18 -0
  27. package/src/assets/btn-delete.svg +29 -29
  28. package/src/assets/btn-edit.svg +19 -19
  29. package/src/assets/btn-more.svg +17 -17
  30. package/src/assets/btn-submit.svg +19 -19
  31. package/src/assets/close.svg +26 -26
  32. package/src/assets/drag.svg +17 -17
  33. package/src/assets/fixed-left.svg +15 -15
  34. package/src/assets/fixed-right.svg +15 -15
  35. package/src/assets/guanbi.svg +15 -15
  36. package/src/assets/icon-quanping.svg +15 -15
  37. package/src/assets/icon-shezhi.svg +17 -17
  38. package/src/assets/label_icon_bottom.svg +25 -25
  39. package/src/assets/list-no-img.svg +21 -21
  40. package/src/assets/morentouxiang-32.svg +23 -23
  41. package/src/assets/scanning.svg +24 -24
  42. package/src/assets/upExport.svg +22 -22
  43. package/src/common/ENUM.ts +41 -41
  44. package/src/components/Business/AddSelectBusiness/index.tsx +40 -21
  45. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  46. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  47. package/src/components/Business/BsLayouts/Components/ChooseStore/index.less +0 -0
  48. package/src/components/Business/BsLayouts/Components/ChooseStore/index.tsx +193 -0
  49. package/src/components/Business/BsLayouts/Components/ChooseStore/services.ts +10 -0
  50. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  51. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  52. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  57. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +163 -157
  58. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  59. package/src/components/Business/BsLayouts/Components/RightContent/i18n.ts +9 -0
  60. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +19 -2
  61. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  62. package/src/components/Business/BsLayouts/index.less +79 -79
  63. package/src/components/Business/BsLayouts/index.tsx +1494 -1484
  64. package/src/components/Business/BsLayouts/service.ts +2 -2
  65. package/src/components/Business/BsLayouts/utils.tsx +203 -203
  66. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +9 -9
  67. package/src/components/Business/BsSulaQueryTable/bssulaquerytable.less +5 -0
  68. package/src/components/Business/BsSulaQueryTable/index.less +221 -221
  69. package/src/components/Business/BsSulaQueryTable/index.tsx +346 -175
  70. package/src/components/Business/BsSulaQueryTable/setting.tsx +125 -87
  71. package/src/components/Business/BsSulaQueryTable/utils.tsx +57 -34
  72. package/src/components/Business/CommodityEntry/index.md +70 -70
  73. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  74. package/src/components/Business/CommonGuideWrapper/index.less +121 -112
  75. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  76. package/src/components/Business/CommonGuideWrapper/index.tsx +94 -84
  77. package/src/components/Business/DetailPageWrapper/index.less +9 -1
  78. package/src/components/Business/DetailPageWrapper/index.tsx +121 -110
  79. package/src/components/Business/HomePageWrapper/index.md +45 -45
  80. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  81. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  82. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  83. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  84. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  85. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  86. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  87. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  88. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  89. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  90. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  91. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  92. package/src/components/Business/JsonQueryTable/index.less +16 -16
  93. package/src/components/Business/JsonQueryTable/index.md +328 -328
  94. package/src/components/Business/JsonQueryTable/index.tsx +535 -537
  95. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  96. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  97. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  98. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  99. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  100. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  101. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  102. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  103. package/src/components/Business/SearchSelect/utils.ts +3 -3
  104. package/src/components/Business/StateFlow/index.md +60 -60
  105. package/src/components/Business/StateFlow/index.tsx +29 -29
  106. package/src/components/Business/columnSettingTable/columnSetting.tsx +10 -8
  107. package/src/components/Business/columnSettingTable/index.less +247 -247
  108. package/src/components/Business/columnSettingTable/index.md +357 -357
  109. package/src/components/Business/columnSettingTable/utils.tsx +71 -71
  110. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  111. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  112. package/src/components/Business/moreTreeTable/index.less +99 -99
  113. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  114. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  115. package/src/components/Functional/AddSelect/helps.ts +4 -3
  116. package/src/components/Functional/AddSelect/index.less +367 -367
  117. package/src/components/Functional/AddSelect/index.tsx +79 -33
  118. package/src/components/Functional/BillEntry/index.less +371 -371
  119. package/src/components/Functional/BillEntry/index.tsx +3 -3
  120. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  121. package/src/components/Functional/DataImport/index.less +63 -63
  122. package/src/components/Functional/DataImport/index.tsx +3 -3
  123. package/src/components/Functional/DataValidation/index.less +63 -63
  124. package/src/components/Functional/DataValidation/index.tsx +3 -3
  125. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  126. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  127. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +10 -5
  128. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  129. package/src/components/Functional/QueryMutipleInput/index.tsx +2 -1
  130. package/src/components/Functional/SearchSelect/index.less +6 -0
  131. package/src/components/Functional/SearchSelect/index.tsx +152 -45
  132. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  133. package/src/components/Functional/TreeSearchSelect/index.tsx +24 -22
  134. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  135. package/src/components/Solution/RuleComponent/RenderCompItem.tsx +637 -0
  136. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  137. package/src/components/Solution/RuleComponent/index.js +7 -652
  138. package/src/components/Solution/RuleComponent/index.less +230 -230
  139. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  140. package/src/components/Solution/RuleComponent/services.ts +13 -13
  141. package/src/plugin/TableColumnSetting/index.less +247 -247
  142. package/src/plugin/TableColumnSetting/index.md +50 -50
  143. package/src/plugin/TableColumnSetting/index.tsx +2 -2
  144. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  145. package/src/utils/CheckOneUser/index.md +39 -39
  146. package/src/utils/CheckOneUser/index.ts +51 -51
  147. package/src/utils/LocalstorageUtils.ts +95 -95
  148. package/src/utils/TableUtils.less +52 -0
  149. package/src/utils/TableUtils.tsx +691 -18
  150. package/src/utils/businessUtils.ts +441 -0
  151. package/src/utils/checkUtils.ts +39 -39
  152. package/src/utils/constant.ts +39 -0
  153. package/src/utils/enumConfig.ts +11 -11
  154. package/src/utils/getFormMode.js +12 -12
  155. package/src/utils/index.ts +6 -4
  156. package/src/utils/request.ts +53 -0
  157. package/src/utils/requestUtils.ts +29 -2
  158. package/src/utils/serialize.js +7 -7
  159. package/src/utils/utils.ts +64 -21
@@ -1,158 +1,164 @@
1
- // @ts-nocheck
2
- import React, { useState } from "react";
3
- import RightContent from '../RightContent';
4
- import { Input } from 'antd';
5
- import { SearchOutlined } from '@ant-design/icons';
6
- import { debounce, cloneDeep } from 'lodash';
7
- import { formatMessage, history } from 'umi';
8
- import ENUM from '@/utils/enumConfig';
9
- import './index.less';
10
-
11
-
12
- export const judgeIsEmpty = (value: any) => {
13
- if (value == null || value == undefined || String(value).trim() == '') {
14
- return true;
15
- }
16
- return false;
17
- };
18
-
19
- const GlobalHeaderCom = (props: any) => {
20
- const { route: {routes=[]}} = props;
21
- const [keyWord, setKeyWord] = useState('');
22
- const [routeList, setroutesData] = useState<any[]>([]);
23
-
24
- const getFullPathName = (nameId:string) => {
25
- const nameIdArr = nameId.split('.');
26
- let nameStr = '';
27
- for (let i = 0; i < nameIdArr.length; i++) {
28
- let itemId = nameIdArr.slice(0, i+1).join('.');
29
- nameStr += `${i === 0 ? '': '-'}${formatMessage({ id: `menu.${itemId}` })}`;
30
- }
31
- return nameStr;
32
- }
33
- const initRoute = (router: any, name?: any) => {
34
- const resultList: any = [];
35
- const newRouter = cloneDeep(router);
36
- const btnAuth = JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES) || '[]');
37
- const deep = (router: any) => {
38
- if (router && Array.isArray(router)) {
39
- router.forEach((item) => {
40
- if (item.routes && Array.isArray(item.routes)) {
41
- item.routes.forEach((d: any) => {
42
- if (!d.nameEdit) {
43
- d.name = item.name + '.' + d.name;
44
- d.nameEdit = true;
45
- }
46
- });
47
- deep(item.routes);
48
- } else if (
49
- !item.hideInMenu &&
50
- (name
51
- ? formatMessage({ id: `menu.${item.name}` }).indexOf(name) !== -1
52
- : true)
53
- && btnAuth.find((d: any) => d === item.code)
54
- ) {
55
- resultList.push({
56
- ...item,
57
- fullPathName: getFullPathName(item.name),
58
- });
59
- }
60
- });
61
- } else if (
62
- (name ? router.name.indexOf(name) !== -1 : true)
63
- // && btnAuth.find((d: any) => d.code === router.code)
64
- ) {
65
- resultList.push({
66
- ...router,
67
- name: formatMessage({ id: `menu.${router.name}` }),
68
- });
69
- }
70
- };
71
- deep(newRouter);
72
- setroutesData([...resultList]);
73
- };
74
-
75
- const renderLineStyl = (name: string) => {
76
- let newName = name.split('-').join(' > ');
77
- const index = newName.lastIndexOf(keyWord);
78
- if (index > -1) {
79
- const beforeStr = newName.substr(0, index);
80
- const afterStr = newName.substr(index + keyWord.length);
81
- return (
82
- <>
83
- <span>{beforeStr}</span>
84
- <span style={{color: '#1890ff'}}>{keyWord}</span>
85
- <span>{afterStr}</span>
86
- </>
87
- )
88
- }
89
- return newName
90
- }
91
-
92
- return (
93
- <div style={{paddingLeft: props.collapsed ? '135px': '45px'}} className={'headerContent'}>
94
- <div style={{flex: '1 1 0%', padding: '0 15px 0', marginLeft: '15px', display: 'flex', borderLeft: '1px solid #f0f0f0'}}>
95
- {/* <div
96
- className={'navigationBtn'}
97
- onClick={() => {
98
- message.warning('当前功能暂不支持。');
99
- }}
100
- >
101
- <ApartmentOutlined />
102
- &nbsp;&nbsp;
103
- 流程导航
104
- </div> */}
105
- <div style={{position: 'relative'}}>
106
- <Input
107
- style={{width: '268px', height: '32px', borderRadius:'4px'}}
108
- placeholder="搜索菜单"
109
- allowClear
110
- onFocus= {(e) => {
111
- setKeyWord(e?.target?.value)
112
- initRoute(routes, e?.target?.value)
113
- }}
114
- onBlur={() => {
115
- setTimeout(() => {
116
- setKeyWord('')
117
- }, 600)
118
- }}
119
-
120
- prefix={<SearchOutlined />}
121
- onChange={debounce((e: any) => {
122
- setKeyWord(e?.target?.value)
123
- initRoute(routes, e?.target?.value)
124
- }, 600)}
125
- />
126
- <div style={{display: judgeIsEmpty(keyWord) ? 'none' : 'block'}} className={'searchPanel'}>
127
- <p className={'searchTitle'}>
128
- 共搜到{' '}
129
- <span className={'themeColor'}>
130
- {routeList.length || 0}
131
- </span>{' '}
132
- 条结果{' '}
133
- </p>
134
- <div style={{marginTop: '10px'}}>
135
- {
136
- routeList.map(item => (
137
- <div
138
- className={'itemPath'}
139
- onClick={() => {
140
- history.push({
141
- pathname: item.path
142
- })
143
- // setKeyWord('')
144
- }}
145
- title={item.fullPathName}
146
- >{renderLineStyl(item.fullPathName)}</div>
147
- ))
148
- }
149
- </div>
150
- </div>
151
- </div>
152
- </div>
153
- <RightContent />
154
- </div>
155
- )
156
- }
157
-
1
+ // @ts-nocheck
2
+ import React, { useState } from "react";
3
+ import RightContent from '../RightContent';
4
+ import ChooseStore from '../ChooseStore';
5
+ import { Input } from 'antd';
6
+ import { SearchOutlined } from '@ant-design/icons';
7
+ import { debounce, cloneDeep } from 'lodash';
8
+ import { formatMessage, history } from 'umi';
9
+ import ENUM from '@/utils/enumConfig';
10
+ import './index.less';
11
+
12
+
13
+ export const judgeIsEmpty = (value: any) => {
14
+ if (value == null || value == undefined || String(value).trim() == '') {
15
+ return true;
16
+ }
17
+ return false;
18
+ };
19
+
20
+ const GlobalHeaderCom = (props: any) => {
21
+ const { route: {routes=[]}, showSelectStore = false, employeeCode = "EMP231011000002", } = props;
22
+ const [keyWord, setKeyWord] = useState('');
23
+ const [routeList, setroutesData] = useState<any[]>([]);
24
+
25
+ const getFullPathName = (nameId:string) => {
26
+ const nameIdArr = nameId.split('.');
27
+ let nameStr = '';
28
+ for (let i = 0; i < nameIdArr.length; i++) {
29
+ let itemId = nameIdArr.slice(0, i+1).join('.');
30
+ nameStr += `${i === 0 ? '': '-'}${formatMessage({ id: `menu.${itemId}` })}`;
31
+ }
32
+ return nameStr;
33
+ }
34
+ const initRoute = (router: any, name?: any) => {
35
+ const resultList: any = [];
36
+ const newRouter = cloneDeep(router);
37
+ const btnAuth = JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES) || '[]');
38
+ const deep = (router: any) => {
39
+ if (router && Array.isArray(router)) {
40
+ router.forEach((item) => {
41
+ if (item.routes && Array.isArray(item.routes)) {
42
+ item.routes.forEach((d: any) => {
43
+ if (!d.nameEdit) {
44
+ d.name = item.name + '.' + d.name;
45
+ d.nameEdit = true;
46
+ }
47
+ });
48
+ deep(item.routes);
49
+ } else if (
50
+ !item.hideInMenu &&
51
+ (name
52
+ ? formatMessage({ id: `menu.${item.name}` }).indexOf(name) !== -1
53
+ : true)
54
+ && btnAuth.find((d: any) => d === item.code)
55
+ ) {
56
+ resultList.push({
57
+ ...item,
58
+ fullPathName: getFullPathName(item.name),
59
+ });
60
+ }
61
+ });
62
+ } else if (
63
+ (name ? router.name.indexOf(name) !== -1 : true)
64
+ // && btnAuth.find((d: any) => d.code === router.code)
65
+ ) {
66
+ resultList.push({
67
+ ...router,
68
+ name: formatMessage({ id: `menu.${router.name}` }),
69
+ });
70
+ }
71
+ };
72
+ deep(newRouter);
73
+ setroutesData([...resultList]);
74
+ };
75
+
76
+ const renderLineStyl = (name: string) => {
77
+ let newName = name.split('-').join(' > ');
78
+ const index = newName.lastIndexOf(keyWord);
79
+ if (index > -1) {
80
+ const beforeStr = newName.substr(0, index);
81
+ const afterStr = newName.substr(index + keyWord.length);
82
+ return (
83
+ <>
84
+ <span>{beforeStr}</span>
85
+ <span style={{color: '#1890ff'}}>{keyWord}</span>
86
+ <span>{afterStr}</span>
87
+ </>
88
+ )
89
+ }
90
+ return newName
91
+ }
92
+
93
+ return (
94
+ <div style={{paddingLeft: props.collapsed ? '135px': '45px'}} className={'headerContent'}>
95
+ <div style={{flex: '1 1 0%', padding: '0 15px 0', marginLeft: '15px', display: 'flex', borderLeft: '1px solid #f0f0f0'}}>
96
+ {/* <div
97
+ className={'navigationBtn'}
98
+ onClick={() => {
99
+ message.warning('当前功能暂不支持。');
100
+ }}
101
+ >
102
+ <ApartmentOutlined />
103
+ &nbsp;&nbsp;
104
+ 流程导航
105
+ </div> */}
106
+ <div style={{position: 'relative'}}>
107
+ <Input
108
+ style={{width: '268px', height: '32px', borderRadius:'4px'}}
109
+ placeholder="搜索菜单"
110
+ allowClear
111
+ onFocus= {(e) => {
112
+ setKeyWord(e?.target?.value)
113
+ initRoute(routes, e?.target?.value)
114
+ }}
115
+ onBlur={() => {
116
+ setTimeout(() => {
117
+ setKeyWord('')
118
+ }, 600)
119
+ }}
120
+
121
+ prefix={<SearchOutlined />}
122
+ onChange={debounce((e: any) => {
123
+ setKeyWord(e?.target?.value)
124
+ initRoute(routes, e?.target?.value)
125
+ }, 600)}
126
+ />
127
+ <div style={{display: judgeIsEmpty(keyWord) ? 'none' : 'block'}} className={'searchPanel'}>
128
+ <p className={'searchTitle'}>
129
+ 共搜到{' '}
130
+ <span className={'themeColor'}>
131
+ {routeList.length || 0}
132
+ </span>{' '}
133
+ 条结果{' '}
134
+ </p>
135
+ <div style={{marginTop: '10px'}}>
136
+ {
137
+ routeList.map(item => (
138
+ <div
139
+ className={'itemPath'}
140
+ onClick={() => {
141
+ history.push({
142
+ pathname: item.path
143
+ })
144
+ // setKeyWord('')
145
+ }}
146
+ title={item.fullPathName}
147
+ >{renderLineStyl(item.fullPathName)}</div>
148
+ ))
149
+ }
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ {
155
+ showSelectStore && (
156
+ <ChooseStore employeeCode={employeeCode} />
157
+ )
158
+ }
159
+ <RightContent />
160
+ </div>
161
+ )
162
+ }
163
+
158
164
  export default GlobalHeaderCom;
@@ -1,85 +1,85 @@
1
- // @ts-ignore
2
- import React from 'react';
3
- import { Form, Input, Button, Modal } from 'antd';
4
- import { getAccountID, getUserId } from '@/utils/LocalstorageUtils';
5
- import axios from 'axios';
6
-
7
- export default (props: any) => {
8
- const { loginOut } = props;
9
- const [form] = Form.useForm();
10
- return (
11
- <>
12
- <Modal
13
- {...props}
14
- visible={props.visible}
15
- onCancel={() => {
16
- props.onCancel();
17
- }}
18
- footer={[
19
- <Button onClick={() => props.onCancel()}>取消</Button>,
20
- <Button
21
- onClick={() => {
22
- form.validateFields().then((res) => {
23
- axios({
24
- url: `/bop/api/account/changePassWord/${getAccountID()}`,
25
- method: 'patch',
26
- params: res,
27
- }).then(res => {
28
- loginOut();
29
- })
30
- });
31
- }}
32
- type="primary"
33
- >
34
- 确认
35
- </Button>,
36
- ]}
37
- >
38
- <Form
39
- form={form}
40
- name="login"
41
- labelCol={{ span: 4 }}
42
- wrapperCol={{ span: 20 }}
43
- initialValues={{
44
- username: getUserId(),
45
- }}
46
- >
47
- <Form.Item label="账号" name="username">
48
- <Input disabled />
49
- </Form.Item>
50
- <Form.Item
51
- label="旧密码"
52
- name="oldPassword"
53
- rules={[{ required: true, message: '请输入您的旧密码' }]}
54
- >
55
- <Input.Password />
56
- </Form.Item>
57
- <Form.Item
58
- label="新密码"
59
- name="newPassword"
60
- help="密码最少要包含一个大写字母+一个小写字母+一个数字+一个特殊符号最少6位"
61
- rules={[
62
- { required: true, message: '请输入您的新密码' },
63
- {
64
- pattern:
65
- /^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/,
66
- message: '密码强度不够请重新输入',
67
- },
68
- ]}
69
- >
70
- <Input.Password />
71
- </Form.Item>
72
-
73
- <Form.Item
74
- label="请确认密码"
75
- name="confirmPassword"
76
- help="请确认密码和第一次输入一致"
77
- rules={[{ required: true, message: '请确认您的密码' }]}
78
- >
79
- <Input.Password />
80
- </Form.Item>
81
- </Form>
82
- </Modal>
83
- </>
84
- );
85
- };
1
+ // @ts-ignore
2
+ import React from 'react';
3
+ import { Form, Input, Button, Modal } from 'antd';
4
+ import { getAccountID, getUserId } from '@/utils/LocalstorageUtils';
5
+ import request from '@/utils/request';
6
+
7
+ export default (props: any) => {
8
+ const { loginOut } = props;
9
+ const [form] = Form.useForm();
10
+ return (
11
+ <>
12
+ <Modal
13
+ {...props}
14
+ visible={props.visible}
15
+ onCancel={() => {
16
+ props.onCancel();
17
+ }}
18
+ footer={[
19
+ <Button onClick={() => props.onCancel()}>取消</Button>,
20
+ <Button
21
+ onClick={() => {
22
+ form.validateFields().then((res) => {
23
+ request({
24
+ url: `/bop/api/account/changePassWord/${getAccountID()}`,
25
+ method: 'patch',
26
+ params: res,
27
+ }).then(() => {
28
+ loginOut();
29
+ })
30
+ });
31
+ }}
32
+ type="primary"
33
+ >
34
+ 确认
35
+ </Button>,
36
+ ]}
37
+ >
38
+ <Form
39
+ form={form}
40
+ name="login"
41
+ labelCol={{ span: 4 }}
42
+ wrapperCol={{ span: 20 }}
43
+ initialValues={{
44
+ username: getUserId(),
45
+ }}
46
+ >
47
+ <Form.Item label="账号" name="username">
48
+ <Input disabled />
49
+ </Form.Item>
50
+ <Form.Item
51
+ label="旧密码"
52
+ name="oldPassword"
53
+ rules={[{ required: true, message: '请输入您的旧密码' }]}
54
+ >
55
+ <Input.Password />
56
+ </Form.Item>
57
+ <Form.Item
58
+ label="新密码"
59
+ name="newPassword"
60
+ help="密码最少要包含一个大写字母+一个小写字母+一个数字+一个特殊符号最少6位"
61
+ rules={[
62
+ { required: true, message: '请输入您的新密码' },
63
+ {
64
+ pattern:
65
+ /^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/,
66
+ message: '密码强度不够请重新输入',
67
+ },
68
+ ]}
69
+ >
70
+ <Input.Password />
71
+ </Form.Item>
72
+
73
+ <Form.Item
74
+ label="请确认密码"
75
+ name="confirmPassword"
76
+ help="请确认密码和第一次输入一致"
77
+ rules={[{ required: true, message: '请确认您的密码' }]}
78
+ >
79
+ <Input.Password />
80
+ </Form.Item>
81
+ </Form>
82
+ </Modal>
83
+ </>
84
+ );
85
+ };
@@ -0,0 +1,9 @@
1
+ export default {
2
+ 'zh-CN': {
3
+ lang: '中文',
4
+ },
5
+
6
+ 'en-US': {
7
+ lang: 'English',
8
+ },
9
+ }
@@ -1,8 +1,9 @@
1
1
 
2
2
  // @ts-nocheck
3
- import { Dropdown, message, Modal } from 'antd';
3
+ import { Dropdown, message, Modal, Button } from 'antd';
4
+ import i18n from './i18n';
4
5
  import React, { useState } from 'react';
5
- import { history, useModel } from 'umi';
6
+ import { history, useModel, setLocale } from 'umi';
6
7
  import './home.less';
7
8
  import Morentouxiang from '../../../../../assets/morentouxiang-32.svg';
8
9
  import Morentouxiang32 from '../../../../../assets/32.svg';
@@ -113,9 +114,25 @@ const GlobalHeaderRight: React.FC<GlobalHeaderRightProps> = ({ menu }) => {
113
114
  </div>
114
115
  );
115
116
 
117
+ const changeLanguage = (lang: string) => {
118
+ localStorage.setItem('umi_locale', lang || "zh-CN");
119
+ setLocale(lang || "zh-CN");
120
+ window.location.reload();
121
+ }
122
+
123
+ const language = localStorage.getItem('umi_locale') || 'zh-CN';
124
+
116
125
  return (
117
126
  <div className={className} style={divStyle()}>
118
127
  <div className={'rcom_imgWap'}>
128
+ <Button
129
+ style={{
130
+ marginRight: '20px'
131
+ }}
132
+ onClick={() => {
133
+ changeLanguage(language === 'zh-CN' ? 'en-US' : 'zh-CN')
134
+ }}>{i18n[language]?.lang || "English"}
135
+ </Button>
119
136
  {/* <Tooltip placement="bottom" title={'全局控制台'}>
120
137
  <img
121
138
  className={'rcom_img'}