@bit-sun/business-component 2.4.17 → 2.4.19

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 (198) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -5
  3. package/.gitlab-ci.yml +179 -179
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +74 -74
  7. package/README.md +27 -27
  8. package/dist/components/Business/SearchSelect/common.d.ts +5 -1
  9. package/dist/index.esm.js +89 -15
  10. package/dist/index.js +89 -15
  11. package/docs/index.md +21 -21
  12. package/lib/assets/drag.svg +17 -17
  13. package/lib/assets/exportFail.svg +37 -37
  14. package/lib/assets/exportProcessing.svg +28 -28
  15. package/lib/assets/exportSuccess.svg +34 -34
  16. package/lib/assets/label_icon_bottom.svg +25 -25
  17. package/lib/assets/upExport.svg +22 -22
  18. package/package.json +79 -79
  19. package/src/assets/32.svg +27 -27
  20. package/src/assets/addIcon.svg +17 -17
  21. package/src/assets/allfunc.svg +27 -27
  22. package/src/assets/arrowRight.svg +24 -24
  23. package/src/assets/btn-delete.svg +29 -29
  24. package/src/assets/btn-edit.svg +19 -19
  25. package/src/assets/btn-more.svg +17 -17
  26. package/src/assets/btn-submit.svg +19 -19
  27. package/src/assets/caidan.svg +11 -11
  28. package/src/assets/close.svg +26 -26
  29. package/src/assets/drag.svg +17 -17
  30. package/src/assets/exportFail.svg +37 -37
  31. package/src/assets/exportProcessing.svg +28 -28
  32. package/src/assets/exportSuccess.svg +34 -34
  33. package/src/assets/fixed-left-active.svg +11 -11
  34. package/src/assets/fixed-left.svg +15 -15
  35. package/src/assets/fixed-right-active.svg +11 -11
  36. package/src/assets/fixed-right.svg +15 -15
  37. package/src/assets/guanbi.svg +15 -15
  38. package/src/assets/icon-quanping.svg +15 -15
  39. package/src/assets/icon-shezhi.svg +17 -17
  40. package/src/assets/label_icon_bottom.svg +25 -25
  41. package/src/assets/list-no-img.svg +21 -21
  42. package/src/assets/morentouxiang-32.svg +23 -23
  43. package/src/assets/scanning.svg +24 -24
  44. package/src/assets/upExport.svg +22 -22
  45. package/src/common/ENUM.ts +41 -41
  46. package/src/components/Business/AddSelectBusiness/index.md +162 -162
  47. package/src/components/Business/AddSelectBusiness/index.tsx +1061 -1061
  48. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  49. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  50. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  51. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  52. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  60. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  61. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  62. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  63. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  64. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -155
  65. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  66. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  67. package/src/components/Business/BsLayouts/index.less +79 -79
  68. package/src/components/Business/BsLayouts/index.tsx +1484 -1484
  69. package/src/components/Business/BsLayouts/service.ts +10 -10
  70. package/src/components/Business/BsLayouts/utils.tsx +203 -203
  71. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +566 -566
  72. package/src/components/Business/BsSulaQueryTable/index.less +221 -221
  73. package/src/components/Business/BsSulaQueryTable/index.tsx +558 -538
  74. package/src/components/Business/BsSulaQueryTable/setting.tsx +854 -854
  75. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  76. package/src/components/Business/BsSulaQueryTable/utils.tsx +690 -690
  77. package/src/components/Business/CommodityEntry/index.md +70 -70
  78. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  79. package/src/components/Business/CommonAlert/index.tsx +23 -23
  80. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  81. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  82. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  83. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  84. package/src/components/Business/DetailPageWrapper/index.tsx +315 -315
  85. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  86. package/src/components/Business/HomePageWrapper/index.less +33 -33
  87. package/src/components/Business/HomePageWrapper/index.md +45 -45
  88. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  89. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  90. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  91. package/src/components/Business/JsonQueryTable/components/Formula.tsx +206 -206
  92. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  93. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  94. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  95. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  96. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  97. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  98. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  99. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  100. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  101. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  102. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  103. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  104. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  105. package/src/components/Business/JsonQueryTable/index.less +16 -16
  106. package/src/components/Business/JsonQueryTable/index.md +328 -328
  107. package/src/components/Business/JsonQueryTable/index.tsx +537 -537
  108. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  109. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  110. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  111. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  112. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  113. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  114. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  115. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  116. package/src/components/Business/JsonQueryTable/static.ts +450 -450
  117. package/src/components/Business/SearchSelect/BusinessUtils.ts +2057 -2012
  118. package/src/components/Business/SearchSelect/common.ts +134 -119
  119. package/src/components/Business/SearchSelect/index.md +1444 -1387
  120. package/src/components/Business/SearchSelect/index.tsx +55 -55
  121. package/src/components/Business/SearchSelect/utils.ts +101 -101
  122. package/src/components/Business/StateFlow/index.less +130 -130
  123. package/src/components/Business/StateFlow/index.md +60 -60
  124. package/src/components/Business/StateFlow/index.tsx +29 -29
  125. package/src/components/Business/TreeSearchSelect/index.md +185 -185
  126. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  127. package/src/components/Business/TreeSearchSelect/utils.ts +104 -104
  128. package/src/components/Business/columnSettingTable/columnSetting.tsx +766 -766
  129. package/src/components/Business/columnSettingTable/index.less +247 -247
  130. package/src/components/Business/columnSettingTable/index.md +357 -357
  131. package/src/components/Business/columnSettingTable/index.tsx +234 -234
  132. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +242 -242
  133. package/src/components/Business/columnSettingTable/utils.tsx +71 -71
  134. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  135. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  136. package/src/components/Business/moreTreeTable/index.less +99 -99
  137. package/src/components/Business/moreTreeTable/index.md +448 -448
  138. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  139. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  140. package/src/components/Functional/AddSelect/helps.ts +80 -80
  141. package/src/components/Functional/AddSelect/index.less +367 -367
  142. package/src/components/Functional/AddSelect/index.md +155 -155
  143. package/src/components/Functional/AddSelect/index.tsx +1171 -1171
  144. package/src/components/Functional/BillEntry/index.less +371 -371
  145. package/src/components/Functional/BillEntry/index.md +39 -39
  146. package/src/components/Functional/BillEntry/index.tsx +773 -773
  147. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  148. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  149. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  150. package/src/components/Functional/DataImport/index.less +63 -63
  151. package/src/components/Functional/DataImport/index.md +44 -44
  152. package/src/components/Functional/DataImport/index.tsx +696 -696
  153. package/src/components/Functional/DataValidation/index.less +63 -63
  154. package/src/components/Functional/DataValidation/index.md +39 -39
  155. package/src/components/Functional/DataValidation/index.tsx +688 -688
  156. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  157. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  158. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  159. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  160. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +60 -60
  161. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  162. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  163. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  164. package/src/components/Functional/SearchSelect/index.less +115 -115
  165. package/src/components/Functional/SearchSelect/index.md +141 -141
  166. package/src/components/Functional/SearchSelect/index.tsx +896 -896
  167. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  168. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  169. package/src/components/Functional/TreeSearchSelect/index.tsx +204 -204
  170. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  171. package/src/components/Solution/RuleComponent/InnerSelect.tsx +62 -62
  172. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  173. package/src/components/Solution/RuleComponent/index.js +2073 -2073
  174. package/src/components/Solution/RuleComponent/index.less +230 -230
  175. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  176. package/src/components/Solution/RuleComponent/ruleFiled.js +2281 -2281
  177. package/src/components/Solution/RuleComponent/services.ts +13 -13
  178. package/src/components/Solution/RuleComponent/util.js +143 -143
  179. package/src/index.ts +38 -38
  180. package/src/plugin/TableColumnSetting/index.less +247 -247
  181. package/src/plugin/TableColumnSetting/index.md +50 -50
  182. package/src/plugin/TableColumnSetting/index.tsx +725 -725
  183. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  184. package/src/styles/bsDefault.less +1912 -1912
  185. package/src/utils/CheckOneUser/index.md +39 -39
  186. package/src/utils/CheckOneUser/index.ts +51 -51
  187. package/src/utils/CustomLoginInfo.ts +55 -55
  188. package/src/utils/LocalstorageUtils.ts +95 -95
  189. package/src/utils/TableUtils.tsx +18 -18
  190. package/src/utils/checkUtils.ts +39 -39
  191. package/src/utils/enumConfig.ts +11 -11
  192. package/src/utils/getFormMode.js +12 -12
  193. package/src/utils/index.ts +4 -4
  194. package/src/utils/requestUtils.ts +166 -166
  195. package/src/utils/serialize.js +7 -7
  196. package/src/utils/utils.ts +195 -195
  197. package/tsconfig.json +29 -29
  198. package/typings.d.ts +4 -4
@@ -1,315 +1,315 @@
1
- // @ts-nocheck
2
- import {
3
- ArrowLeftOutlined,
4
- } from '@ant-design/icons';
5
- import { Anchor, Tooltip, Button, Menu, Dropdown, Breadcrumb } from 'antd';
6
- import React, { useEffect, useState, useMemo } from 'react';
7
- import { history } from 'umi';
8
- import { getMainCrumbNameMap, doDetailPageAction, judgeIsEmpty } from './utils';
9
- import { memoizeOneFormatter, go2BackAndClose } from '@/utils/utils';
10
- import './index.less';
11
- import quanping from '../../../assets/icon-quanping.svg';
12
- import scanning from '../../../assets/scanning.svg';
13
- import editIcon from '../../../assets/btn-edit.svg';
14
- import submitIcon from '../../../assets/btn-submit.svg';
15
- import deleteIcon from '../../../assets/btn-delete.svg';
16
- import moreIcon from '../../../assets/btn-more.svg';
17
- import { useLocation, formatMessage } from 'umi';
18
- import CommonAlert from '../CommonAlert';
19
- import ENUM from '@/utils/enumConfig';
20
-
21
- interface actionItem {
22
- type?: string;
23
- name: string;
24
- icon?: string;
25
- visible?: boolean | string;
26
- disabled?: boolean;
27
- code?: string; //权限过滤todo
28
- action: object;
29
- }
30
-
31
- export const iconMap = {
32
- edit: <img src={editIcon} />,
33
- delete: <img src={deleteIcon} />,
34
- submit: <img src={submitIcon} />,
35
- more: <img src={moreIcon} />,
36
- };
37
-
38
- export default (props: any) => {
39
- const { pathname } = useLocation();
40
- const [id]: any = useState(pathname + 'id');
41
- const { children, ...restProps } = props;
42
-
43
- return (
44
- <div id={id} className={'detail_page_wrapper'}>
45
- <DetailWrapper
46
- pathname={pathname}
47
- {
48
- ...restProps
49
- }
50
- />
51
- {children}
52
- </div>
53
- );
54
- };
55
-
56
- const DetailWrapper = React.memo(
57
- ({
58
- pathname,
59
- actionList=[],
60
- routes=[],
61
- itemPath,
62
- alertProps,
63
- donotNeedShowScreenIcon=false,
64
- title,
65
- pathToRegexp,
66
- backHistoryPath,
67
- }: any) => {
68
- const [isFullScreen, setIsFnllScreen]: any = useState(false);
69
- const [breadcrumbArr, setBreadCrumbArr]: any = useState([]);
70
-
71
- const basePath = window.top == window ? '' : `/${itemPath}`;
72
-
73
- const menuRoutes =
74
- window.top == window
75
- ? routes.find((item) => item.path === '/')?.routes || []
76
- : JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.LIMIT_MENU_DATA) || '[]');
77
-
78
- const breadcrumbNameMap = getMainCrumbNameMap(
79
- memoizeOneFormatter(menuRoutes, ''),
80
- );
81
- const matchParamsPath = (pathname: string, breadcrumbNameMap: object) => {
82
- const pathKey: any = Object.keys(breadcrumbNameMap).find((key) =>
83
- pathToRegexp ? pathToRegexp(key).test(pathname) : false
84
- );
85
- return pathKey ? breadcrumbNameMap[pathKey] : undefined;
86
- };
87
-
88
- const getPageTitle = (pathname: string) => {
89
- const currRouterData = matchParamsPath(
90
- `${basePath}${pathname}`,
91
- breadcrumbNameMap,
92
- );
93
-
94
- if (!currRouterData) {
95
- return '';
96
- }
97
-
98
- let breadcrumbArrs = currRouterData.nameMap || [];
99
- if (title && breadcrumbArrs.length) {
100
- breadcrumbArrs.pop();
101
- breadcrumbArrs.push(title)
102
- }
103
- setBreadCrumbArr([...breadcrumbArrs])
104
-
105
- const pageName = formatMessage({
106
- id: currRouterData.locale || currRouterData.name,
107
- defaultMessage: currRouterData.name,
108
- });
109
-
110
- return title ? title : window.top === window ? pageName : `${currRouterData.name}`;
111
- };
112
-
113
- const pageTitle = useMemo(() => getPageTitle(pathname), [pathname, title]);
114
-
115
- useEffect(() => {}, []);
116
-
117
- const ShowFullScreen = () => {
118
- const isFullScreen: any =
119
- window.top.document.fullScreen ||
120
- window.top.document.webkitIsFullScreen ||
121
- window.top.document.mozFullScreen;
122
- let contentEle: any = window.top.document.querySelector(`body`);
123
- // addTabsNavStyle(isFullScreen);
124
- if (contentEle && !isFullScreen) {
125
- let fullScreenEle =
126
- contentEle.requestFullscreen ||
127
- contentEle.mozRequestFullScreen ||
128
- contentEle.webkitRequestFullScreen ||
129
- contentEle.msRequestFullscreen;
130
- if (fullScreenEle) {
131
- fullScreenEle.call(contentEle);
132
- setIsFnllScreen(true);
133
- return;
134
- }
135
- }
136
- if (window.top.document && isFullScreen) {
137
- let exitFullScreen =
138
- window.top.document.exitFullscreen ||
139
- window.top.document.mozCancelFullScreen ||
140
- window.top.document.webkitCancelFullScreen ||
141
- window.top.document.msExitFullscreen;
142
- if (exitFullScreen) {
143
- exitFullScreen.call(window.top.document);
144
- setIsFnllScreen(false);
145
- return;
146
- }
147
- }
148
- };
149
-
150
- const renderPageActionList = (actionLists: Array<actionItem>) => {
151
- const authButton = localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES)
152
- ? JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES) as string)
153
- : [];
154
- let visibleActions = actionLists.filter(
155
- (action) =>
156
- ((action.visible && action.visible !== 'false') || judgeIsEmpty(action.visible)) &&
157
- (judgeIsEmpty(action.code) || authButton.filter(item => item === action.code)),
158
- );
159
-
160
- const renderButton = (item: actionItem, type?: any) => {
161
- return (
162
- <Button
163
- type={type || 'primary'}
164
- icon={item.icon ? iconMap[item.icon] : ''}
165
- danger={item.name === '删除' ? true : false}
166
- disabled={item.disabled}
167
- onClick={() => {
168
- if (typeof item.action === 'function') {
169
- item.action();
170
- } else {
171
- doDetailPageAction(item.action);
172
- }
173
- }}
174
- >
175
- {item.name}
176
- </Button>
177
- );
178
- };
179
-
180
- if (visibleActions.length <= 3) {
181
- return visibleActions.map((item) => {
182
- return renderButton(item);
183
- });
184
- }
185
-
186
- let moreOperate = visibleActions.splice(3);
187
- const menu = (
188
- <Menu>
189
- {moreOperate.map((item: any, index: number) => (
190
- <Menu.Item className="more-btn-action" key={index}>
191
- {renderButton(item, 'link')}
192
- </Menu.Item>
193
- ))}
194
- </Menu>
195
- );
196
- //按钮操作3个显示更多
197
- return (
198
- <div className="detail_btn_wrapper">
199
- {visibleActions.map((item: any, index: number) => {
200
- return renderButton(item);
201
- })}
202
- <Dropdown style={{ padding: '0px' }} overlay={menu}>
203
- <Button type="primary">
204
- <span style={{ margin: '0px' }}>更多</span>
205
- <img src={moreIcon} />
206
- </Button>
207
- </Dropdown>
208
- </div>
209
- );
210
- };
211
-
212
- return (
213
- <Anchor
214
- key={`${pathname}_anchor`}
215
- offsetTop={window.top == window ? 78 : 0}
216
- >
217
- <div>
218
- <div className={'detail_page_head'}>
219
- <div
220
- className={'back_home_img_content'}
221
- onClick={() => {
222
- go2BackAndClose(backHistoryPath);
223
- // history.goBack();
224
- }}
225
- >
226
- <ArrowLeftOutlined />
227
- </div>
228
- <div className={'detail_page_title_box'}>
229
- <div className={'detail_page_title'}>{pageTitle}</div>
230
- <Breadcrumb>
231
- {breadcrumbArr.map((item) => (
232
- <Breadcrumb.Item
233
- key={item}
234
- onClick={() => {
235
- // if (
236
- // item.path &&
237
- // !item.children &&
238
- // !pathToRegexp(item.path).test(`${basePath}${pathname}`)
239
- // ) {
240
- // history.push({
241
- // pathname: item.path.replace(basePath, ''),
242
- // });
243
- // }
244
- }}
245
- >
246
- <span
247
- style={{
248
- // color:
249
- // item.path &&
250
- // pathToRegexp(item.path).test(`${basePath}${pathname}`)
251
- // ? '#000000d9'
252
- // : '',
253
- }}
254
- className="bread_name"
255
- >
256
- {item}
257
- </span>
258
- </Breadcrumb.Item>
259
- ))}
260
- </Breadcrumb>
261
- </div>
262
- <div
263
- className={'detail_page_btns'}
264
- style={{ marginRight: '20px', display: 'flex', gap: '8px' }}
265
- >
266
- {renderPageActionList(actionList)}
267
- {
268
- !donotNeedShowScreenIcon ? ( <a>
269
- {isFullScreen ? (
270
- <Tooltip title="取消全屏">
271
- <img
272
- onClick={() => {
273
- ShowFullScreen();
274
- }}
275
- width={32}
276
- src={scanning}
277
- />
278
- </Tooltip>
279
- ) : (
280
- <Tooltip title="全屏">
281
- <img
282
- onClick={() => {
283
- ShowFullScreen();
284
- }}
285
- width={32}
286
- src={quanping}
287
- />
288
- </Tooltip>
289
- )}
290
- </a>) : null
291
- }
292
- </div>
293
- </div>
294
- {
295
- alertProps && (
296
- <CommonAlert
297
- {
298
- ...alertProps
299
- }
300
- />
301
- )
302
- }
303
- </div>
304
- </Anchor>
305
- );
306
- },
307
- (prevProps, nextProps) => {
308
- if (
309
- (JSON.stringify(prevProps.actionList) != JSON.stringify(nextProps.actionList)) || prevProps.title !== nextProps.title
310
- ) {
311
- return false;
312
- }
313
- return true;
314
- },
315
- );
1
+ // @ts-nocheck
2
+ import {
3
+ ArrowLeftOutlined,
4
+ } from '@ant-design/icons';
5
+ import { Anchor, Tooltip, Button, Menu, Dropdown, Breadcrumb } from 'antd';
6
+ import React, { useEffect, useState, useMemo } from 'react';
7
+ import { history } from 'umi';
8
+ import { getMainCrumbNameMap, doDetailPageAction, judgeIsEmpty } from './utils';
9
+ import { memoizeOneFormatter, go2BackAndClose } from '@/utils/utils';
10
+ import './index.less';
11
+ import quanping from '../../../assets/icon-quanping.svg';
12
+ import scanning from '../../../assets/scanning.svg';
13
+ import editIcon from '../../../assets/btn-edit.svg';
14
+ import submitIcon from '../../../assets/btn-submit.svg';
15
+ import deleteIcon from '../../../assets/btn-delete.svg';
16
+ import moreIcon from '../../../assets/btn-more.svg';
17
+ import { useLocation, formatMessage } from 'umi';
18
+ import CommonAlert from '../CommonAlert';
19
+ import ENUM from '@/utils/enumConfig';
20
+
21
+ interface actionItem {
22
+ type?: string;
23
+ name: string;
24
+ icon?: string;
25
+ visible?: boolean | string;
26
+ disabled?: boolean;
27
+ code?: string; //权限过滤todo
28
+ action: object;
29
+ }
30
+
31
+ export const iconMap = {
32
+ edit: <img src={editIcon} />,
33
+ delete: <img src={deleteIcon} />,
34
+ submit: <img src={submitIcon} />,
35
+ more: <img src={moreIcon} />,
36
+ };
37
+
38
+ export default (props: any) => {
39
+ const { pathname } = useLocation();
40
+ const [id]: any = useState(pathname + 'id');
41
+ const { children, ...restProps } = props;
42
+
43
+ return (
44
+ <div id={id} className={'detail_page_wrapper'}>
45
+ <DetailWrapper
46
+ pathname={pathname}
47
+ {
48
+ ...restProps
49
+ }
50
+ />
51
+ {children}
52
+ </div>
53
+ );
54
+ };
55
+
56
+ const DetailWrapper = React.memo(
57
+ ({
58
+ pathname,
59
+ actionList=[],
60
+ routes=[],
61
+ itemPath,
62
+ alertProps,
63
+ donotNeedShowScreenIcon=false,
64
+ title,
65
+ pathToRegexp,
66
+ backHistoryPath,
67
+ }: any) => {
68
+ const [isFullScreen, setIsFnllScreen]: any = useState(false);
69
+ const [breadcrumbArr, setBreadCrumbArr]: any = useState([]);
70
+
71
+ const basePath = window.top == window ? '' : `/${itemPath}`;
72
+
73
+ const menuRoutes =
74
+ window.top == window
75
+ ? routes.find((item) => item.path === '/')?.routes || []
76
+ : JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.LIMIT_MENU_DATA) || '[]');
77
+
78
+ const breadcrumbNameMap = getMainCrumbNameMap(
79
+ memoizeOneFormatter(menuRoutes, ''),
80
+ );
81
+ const matchParamsPath = (pathname: string, breadcrumbNameMap: object) => {
82
+ const pathKey: any = Object.keys(breadcrumbNameMap).find((key) =>
83
+ pathToRegexp ? pathToRegexp(key).test(pathname) : false
84
+ );
85
+ return pathKey ? breadcrumbNameMap[pathKey] : undefined;
86
+ };
87
+
88
+ const getPageTitle = (pathname: string) => {
89
+ const currRouterData = matchParamsPath(
90
+ `${basePath}${pathname}`,
91
+ breadcrumbNameMap,
92
+ );
93
+
94
+ if (!currRouterData) {
95
+ return '';
96
+ }
97
+
98
+ let breadcrumbArrs = currRouterData.nameMap || [];
99
+ if (title && breadcrumbArrs.length) {
100
+ breadcrumbArrs.pop();
101
+ breadcrumbArrs.push(title)
102
+ }
103
+ setBreadCrumbArr([...breadcrumbArrs])
104
+
105
+ const pageName = formatMessage({
106
+ id: currRouterData.locale || currRouterData.name,
107
+ defaultMessage: currRouterData.name,
108
+ });
109
+
110
+ return title ? title : window.top === window ? pageName : `${currRouterData.name}`;
111
+ };
112
+
113
+ const pageTitle = useMemo(() => getPageTitle(pathname), [pathname, title]);
114
+
115
+ useEffect(() => {}, []);
116
+
117
+ const ShowFullScreen = () => {
118
+ const isFullScreen: any =
119
+ window.top.document.fullScreen ||
120
+ window.top.document.webkitIsFullScreen ||
121
+ window.top.document.mozFullScreen;
122
+ let contentEle: any = window.top.document.querySelector(`body`);
123
+ // addTabsNavStyle(isFullScreen);
124
+ if (contentEle && !isFullScreen) {
125
+ let fullScreenEle =
126
+ contentEle.requestFullscreen ||
127
+ contentEle.mozRequestFullScreen ||
128
+ contentEle.webkitRequestFullScreen ||
129
+ contentEle.msRequestFullscreen;
130
+ if (fullScreenEle) {
131
+ fullScreenEle.call(contentEle);
132
+ setIsFnllScreen(true);
133
+ return;
134
+ }
135
+ }
136
+ if (window.top.document && isFullScreen) {
137
+ let exitFullScreen =
138
+ window.top.document.exitFullscreen ||
139
+ window.top.document.mozCancelFullScreen ||
140
+ window.top.document.webkitCancelFullScreen ||
141
+ window.top.document.msExitFullscreen;
142
+ if (exitFullScreen) {
143
+ exitFullScreen.call(window.top.document);
144
+ setIsFnllScreen(false);
145
+ return;
146
+ }
147
+ }
148
+ };
149
+
150
+ const renderPageActionList = (actionLists: Array<actionItem>) => {
151
+ const authButton = localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES)
152
+ ? JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES) as string)
153
+ : [];
154
+ let visibleActions = actionLists.filter(
155
+ (action) =>
156
+ ((action.visible && action.visible !== 'false') || judgeIsEmpty(action.visible)) &&
157
+ (judgeIsEmpty(action.code) || authButton.filter(item => item === action.code)),
158
+ );
159
+
160
+ const renderButton = (item: actionItem, type?: any) => {
161
+ return (
162
+ <Button
163
+ type={type || 'primary'}
164
+ icon={item.icon ? iconMap[item.icon] : ''}
165
+ danger={item.name === '删除' ? true : false}
166
+ disabled={item.disabled}
167
+ onClick={() => {
168
+ if (typeof item.action === 'function') {
169
+ item.action();
170
+ } else {
171
+ doDetailPageAction(item.action);
172
+ }
173
+ }}
174
+ >
175
+ {item.name}
176
+ </Button>
177
+ );
178
+ };
179
+
180
+ if (visibleActions.length <= 3) {
181
+ return visibleActions.map((item) => {
182
+ return renderButton(item);
183
+ });
184
+ }
185
+
186
+ let moreOperate = visibleActions.splice(3);
187
+ const menu = (
188
+ <Menu>
189
+ {moreOperate.map((item: any, index: number) => (
190
+ <Menu.Item className="more-btn-action" key={index}>
191
+ {renderButton(item, 'link')}
192
+ </Menu.Item>
193
+ ))}
194
+ </Menu>
195
+ );
196
+ //按钮操作3个显示更多
197
+ return (
198
+ <div className="detail_btn_wrapper">
199
+ {visibleActions.map((item: any, index: number) => {
200
+ return renderButton(item);
201
+ })}
202
+ <Dropdown style={{ padding: '0px' }} overlay={menu}>
203
+ <Button type="primary">
204
+ <span style={{ margin: '0px' }}>更多</span>
205
+ <img src={moreIcon} />
206
+ </Button>
207
+ </Dropdown>
208
+ </div>
209
+ );
210
+ };
211
+
212
+ return (
213
+ <Anchor
214
+ key={`${pathname}_anchor`}
215
+ offsetTop={window.top == window ? 78 : 0}
216
+ >
217
+ <div>
218
+ <div className={'detail_page_head'}>
219
+ <div
220
+ className={'back_home_img_content'}
221
+ onClick={() => {
222
+ go2BackAndClose(backHistoryPath);
223
+ // history.goBack();
224
+ }}
225
+ >
226
+ <ArrowLeftOutlined />
227
+ </div>
228
+ <div className={'detail_page_title_box'}>
229
+ <div className={'detail_page_title'}>{pageTitle}</div>
230
+ <Breadcrumb>
231
+ {breadcrumbArr.map((item) => (
232
+ <Breadcrumb.Item
233
+ key={item}
234
+ onClick={() => {
235
+ // if (
236
+ // item.path &&
237
+ // !item.children &&
238
+ // !pathToRegexp(item.path).test(`${basePath}${pathname}`)
239
+ // ) {
240
+ // history.push({
241
+ // pathname: item.path.replace(basePath, ''),
242
+ // });
243
+ // }
244
+ }}
245
+ >
246
+ <span
247
+ style={{
248
+ // color:
249
+ // item.path &&
250
+ // pathToRegexp(item.path).test(`${basePath}${pathname}`)
251
+ // ? '#000000d9'
252
+ // : '',
253
+ }}
254
+ className="bread_name"
255
+ >
256
+ {item}
257
+ </span>
258
+ </Breadcrumb.Item>
259
+ ))}
260
+ </Breadcrumb>
261
+ </div>
262
+ <div
263
+ className={'detail_page_btns'}
264
+ style={{ marginRight: '20px', display: 'flex', gap: '8px' }}
265
+ >
266
+ {renderPageActionList(actionList)}
267
+ {
268
+ !donotNeedShowScreenIcon ? ( <a>
269
+ {isFullScreen ? (
270
+ <Tooltip title="取消全屏">
271
+ <img
272
+ onClick={() => {
273
+ ShowFullScreen();
274
+ }}
275
+ width={32}
276
+ src={scanning}
277
+ />
278
+ </Tooltip>
279
+ ) : (
280
+ <Tooltip title="全屏">
281
+ <img
282
+ onClick={() => {
283
+ ShowFullScreen();
284
+ }}
285
+ width={32}
286
+ src={quanping}
287
+ />
288
+ </Tooltip>
289
+ )}
290
+ </a>) : null
291
+ }
292
+ </div>
293
+ </div>
294
+ {
295
+ alertProps && (
296
+ <CommonAlert
297
+ {
298
+ ...alertProps
299
+ }
300
+ />
301
+ )
302
+ }
303
+ </div>
304
+ </Anchor>
305
+ );
306
+ },
307
+ (prevProps, nextProps) => {
308
+ if (
309
+ (JSON.stringify(prevProps.actionList) != JSON.stringify(nextProps.actionList)) || prevProps.title !== nextProps.title
310
+ ) {
311
+ return false;
312
+ }
313
+ return true;
314
+ },
315
+ );