linkmore-design 1.0.67 → 1.0.68

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 (281) hide show
  1. package/dist/Approval/handle.d.ts +11 -0
  2. package/dist/Approval/type.d.ts +39 -8
  3. package/dist/Approval/util.d.ts +26 -0
  4. package/dist/AutoComplete/index.d.ts +2 -1
  5. package/dist/Calendar/demos/basic.d.ts +2 -0
  6. package/dist/Calendar/index.d.ts +4 -0
  7. package/dist/Calendar/style/index.d.ts +1 -0
  8. package/dist/CardTable/hooks/usePagination.d.ts +1 -1
  9. package/dist/CardTable/utils.d.ts +2 -2
  10. package/dist/Carousel/demos/basic.d.ts +2 -0
  11. package/dist/Carousel/index.d.ts +3 -0
  12. package/dist/Carousel/style/index.d.ts +1 -0
  13. package/dist/CkFilter/components/CascaderFilter.d.ts +1 -1
  14. package/dist/Collapse/demos/basic.d.ts +2 -0
  15. package/dist/Collapse/index.d.ts +3 -0
  16. package/dist/Collapse/style/index.d.ts +1 -0
  17. package/dist/Comment/demos/basic.d.ts +2 -0
  18. package/dist/Comment/index.d.ts +3 -0
  19. package/dist/Comment/style/index.d.ts +1 -0
  20. package/dist/LmFilter/components/CascaderFilter.d.ts +1 -1
  21. package/dist/LmFilter/components/CheckboxFilter.d.ts +1 -1
  22. package/dist/LmFilter/components/DateFilter.d.ts +1 -1
  23. package/dist/LmFilter/components/SelectFilter.d.ts +1 -1
  24. package/dist/LmSelect/useCheckboxOptions.d.ts +1 -1
  25. package/dist/LmTable/components/DndContainer.d.ts +5 -0
  26. package/dist/LmTable/components/sortableBoxCol.d.ts +5 -0
  27. package/dist/LmTable/components/sortableItemCol.d.ts +1 -0
  28. package/dist/LmTable/demos/tableColSort.d.ts +2 -0
  29. package/dist/LmUpload/LmUpload.d.ts +4 -1
  30. package/dist/LmUpload/UploadList/index.d.ts +1 -1
  31. package/dist/LmUpload/body/Progress.d.ts +4 -0
  32. package/dist/LmUpload/fns/index.d.ts +4 -1
  33. package/dist/Modal/index.d.ts +1 -1
  34. package/dist/Popconfirm/demos/basic.d.ts +2 -0
  35. package/dist/Popconfirm/index.d.ts +3 -0
  36. package/dist/Popconfirm/style/index.d.ts +1 -0
  37. package/dist/Progress/demos/basic.d.ts +2 -0
  38. package/dist/Progress/demos/circle.d.ts +2 -0
  39. package/dist/Progress/demos/dynamic.d.ts +2 -0
  40. package/dist/Progress/demos/small.d.ts +2 -0
  41. package/dist/Progress/index.d.ts +3 -0
  42. package/dist/Progress/style/index.d.ts +1 -0
  43. package/dist/Segmented/demos/basic.d.ts +2 -0
  44. package/dist/Segmented/index.d.ts +3 -0
  45. package/dist/Segmented/style/index.d.ts +1 -0
  46. package/dist/Slider/demos/basic.d.ts +2 -0
  47. package/dist/Slider/index.d.ts +2 -0
  48. package/dist/Slider/style/index.d.ts +1 -0
  49. package/dist/Statistic/demos/basic.d.ts +2 -0
  50. package/dist/Statistic/index.d.ts +3 -0
  51. package/dist/Statistic/style/index.d.ts +1 -0
  52. package/dist/TimePicker/demos/basic.d.ts +3 -0
  53. package/dist/TimePicker/index.d.ts +3 -0
  54. package/dist/TimePicker/style/index.d.ts +1 -0
  55. package/dist/Timeline/demos/basic.d.ts +2 -0
  56. package/dist/Timeline/index.d.ts +3 -0
  57. package/dist/Timeline/style/index.d.ts +1 -0
  58. package/dist/Transfer/demos/basic.d.ts +2 -0
  59. package/dist/Transfer/index.d.ts +3 -0
  60. package/dist/Transfer/style/index.d.ts +1 -0
  61. package/dist/TreeSelect/demos/basic.d.ts +2 -0
  62. package/dist/TreeSelect/index.d.ts +3 -0
  63. package/dist/TreeSelect/style/index.d.ts +1 -0
  64. package/dist/hooks/useFullscreen/demos/useInModal.d.ts +2 -0
  65. package/dist/index.d.ts +18 -0
  66. package/dist/index.umd.js +3780 -1343
  67. package/dist/index.umd.min.js +6 -6
  68. package/es/Alert/index.js +27 -5
  69. package/es/Alert/style/index.css +1 -1
  70. package/es/Approval/handle.d.ts +11 -0
  71. package/es/Approval/handle.js +138 -0
  72. package/es/Approval/index.js +279 -121
  73. package/es/Approval/style/index.css +42 -4
  74. package/es/Approval/type.d.ts +39 -8
  75. package/es/Approval/type.js +97 -1
  76. package/es/Approval/util.d.ts +26 -0
  77. package/es/Approval/util.js +132 -0
  78. package/es/AutoComplete/index.d.ts +2 -1
  79. package/es/Calendar/index.d.ts +4 -0
  80. package/es/Calendar/index.js +3 -0
  81. package/es/Calendar/style/index.css +505 -0
  82. package/es/Calendar/style/index.d.ts +1 -0
  83. package/es/Calendar/style/index.js +1 -0
  84. package/es/Carousel/index.d.ts +3 -0
  85. package/es/Carousel/index.js +3 -0
  86. package/es/Carousel/style/index.css +505 -0
  87. package/es/Carousel/style/index.d.ts +1 -0
  88. package/es/Carousel/style/index.js +1 -0
  89. package/es/Collapse/index.d.ts +3 -0
  90. package/es/Collapse/index.js +3 -0
  91. package/es/Collapse/style/index.css +505 -0
  92. package/es/Collapse/style/index.d.ts +1 -0
  93. package/es/Collapse/style/index.js +1 -0
  94. package/es/Comment/index.d.ts +3 -0
  95. package/es/Comment/index.js +3 -0
  96. package/es/Comment/style/index.css +505 -0
  97. package/es/Comment/style/index.d.ts +1 -0
  98. package/es/Comment/style/index.js +1 -0
  99. package/es/LmEditTable/EditTable.js +5 -3
  100. package/es/LmEditTable/style/index.css +6 -0
  101. package/es/LmFilter/customFilter/index.js +2 -1
  102. package/es/LmFilter/customFilter/saveModal.js +5 -6
  103. package/es/LmFilter/filterFns/index.js +0 -1
  104. package/es/LmSelect/useCheckboxOptions.d.ts +1 -1
  105. package/es/LmTable/Table.js +79 -45
  106. package/es/LmTable/components/DndContainer.d.ts +5 -0
  107. package/es/LmTable/components/DndContainer.js +35 -0
  108. package/es/LmTable/components/sortableBoxCol.js +24 -0
  109. package/es/LmTable/components/sortableItemCol.js +54 -0
  110. package/es/LmUpload/LmUpload.d.ts +4 -1
  111. package/es/LmUpload/LmUpload.js +30 -6
  112. package/es/LmUpload/UploadList/ItemPictureCard.js +67 -10
  113. package/es/LmUpload/UploadList/index.d.ts +1 -1
  114. package/es/LmUpload/UploadList/index.js +3 -2
  115. package/es/LmUpload/body/Progress.d.ts +4 -0
  116. package/es/LmUpload/body/Progress.js +16 -0
  117. package/es/LmUpload/body/UploadCore.js +16 -10
  118. package/es/LmUpload/body/UploadPicture.js +12 -4
  119. package/es/LmUpload/fns/index.d.ts +3 -0
  120. package/es/LmUpload/fns/index.js +135 -25
  121. package/es/LmUpload/style/index.css +20 -3
  122. package/es/LmUpload/wrapper/reducer.js +7 -1
  123. package/es/Modal/index.d.ts +1 -1
  124. package/es/Popconfirm/index.d.ts +3 -0
  125. package/es/Popconfirm/index.js +3 -0
  126. package/es/Popconfirm/style/index.css +505 -0
  127. package/es/Popconfirm/style/index.d.ts +1 -0
  128. package/es/Popconfirm/style/index.js +1 -0
  129. package/es/Progress/index.d.ts +3 -0
  130. package/es/Progress/index.js +3 -0
  131. package/es/Progress/style/index.css +505 -0
  132. package/es/Progress/style/index.d.ts +1 -0
  133. package/es/Progress/style/index.js +1 -0
  134. package/es/Segmented/index.d.ts +3 -0
  135. package/es/Segmented/index.js +3 -0
  136. package/es/Segmented/style/index.css +505 -0
  137. package/es/Segmented/style/index.d.ts +1 -0
  138. package/es/Segmented/style/index.js +1 -0
  139. package/es/Slider/index.d.ts +2 -0
  140. package/es/Slider/index.js +3 -0
  141. package/es/Slider/style/index.css +505 -0
  142. package/es/Slider/style/index.d.ts +1 -0
  143. package/es/Slider/style/index.js +1 -0
  144. package/es/Statistic/index.d.ts +3 -0
  145. package/es/Statistic/index.js +3 -0
  146. package/es/Statistic/style/index.css +505 -0
  147. package/es/Statistic/style/index.d.ts +1 -0
  148. package/es/Statistic/style/index.js +1 -0
  149. package/es/TimePicker/index.d.ts +3 -0
  150. package/es/TimePicker/index.js +3 -0
  151. package/es/TimePicker/style/index.css +505 -0
  152. package/es/TimePicker/style/index.d.ts +1 -0
  153. package/es/TimePicker/style/index.js +1 -0
  154. package/es/Timeline/index.d.ts +3 -0
  155. package/es/Timeline/index.js +3 -0
  156. package/es/Timeline/style/index.css +505 -0
  157. package/es/Timeline/style/index.d.ts +1 -0
  158. package/es/Timeline/style/index.js +1 -0
  159. package/es/Transfer/index.d.ts +3 -0
  160. package/es/Transfer/index.js +3 -0
  161. package/es/Transfer/style/index.css +505 -0
  162. package/es/Transfer/style/index.d.ts +1 -0
  163. package/es/Transfer/style/index.js +1 -0
  164. package/es/TreeSelect/index.d.ts +3 -0
  165. package/es/TreeSelect/index.js +3 -0
  166. package/es/TreeSelect/style/index.css +505 -0
  167. package/es/TreeSelect/style/index.d.ts +1 -0
  168. package/es/TreeSelect/style/index.js +1 -0
  169. package/es/hooks/useFullscreen/index.js +6 -8
  170. package/es/index.d.ts +18 -0
  171. package/es/index.js +10 -1
  172. package/lib/Alert/index.js +27 -5
  173. package/lib/Alert/style/index.css +1 -1
  174. package/lib/Approval/handle.d.ts +11 -0
  175. package/lib/Approval/handle.js +160 -0
  176. package/lib/Approval/index.js +286 -121
  177. package/lib/Approval/style/index.css +42 -4
  178. package/lib/Approval/type.d.ts +39 -8
  179. package/lib/Approval/type.js +101 -1
  180. package/lib/Approval/util.d.ts +26 -0
  181. package/lib/Approval/util.js +148 -0
  182. package/lib/AutoComplete/index.d.ts +2 -1
  183. package/lib/Calendar/index.d.ts +4 -0
  184. package/lib/Calendar/index.js +15 -0
  185. package/lib/Calendar/style/index.css +505 -0
  186. package/lib/Calendar/style/index.d.ts +1 -0
  187. package/lib/Calendar/style/index.js +3 -0
  188. package/lib/Carousel/index.d.ts +3 -0
  189. package/lib/Carousel/index.js +15 -0
  190. package/lib/Carousel/style/index.css +505 -0
  191. package/lib/Carousel/style/index.d.ts +1 -0
  192. package/lib/Carousel/style/index.js +3 -0
  193. package/lib/Collapse/index.d.ts +3 -0
  194. package/lib/Collapse/index.js +15 -0
  195. package/lib/Collapse/style/index.css +505 -0
  196. package/lib/Collapse/style/index.d.ts +1 -0
  197. package/lib/Collapse/style/index.js +3 -0
  198. package/lib/Comment/index.d.ts +3 -0
  199. package/lib/Comment/index.js +15 -0
  200. package/lib/Comment/style/index.css +505 -0
  201. package/lib/Comment/style/index.d.ts +1 -0
  202. package/lib/Comment/style/index.js +3 -0
  203. package/lib/LmEditTable/EditTable.js +5 -3
  204. package/lib/LmEditTable/style/index.css +6 -0
  205. package/lib/LmFilter/customFilter/index.js +2 -1
  206. package/lib/LmFilter/customFilter/saveModal.js +5 -6
  207. package/lib/LmFilter/filterFns/index.js +0 -1
  208. package/lib/LmSelect/useCheckboxOptions.d.ts +1 -1
  209. package/lib/LmTable/Table.js +79 -45
  210. package/lib/LmTable/components/DndContainer.d.ts +5 -0
  211. package/lib/LmTable/components/DndContainer.js +49 -0
  212. package/lib/LmTable/components/sortableBoxCol.js +24 -0
  213. package/lib/LmTable/components/sortableItemCol.js +54 -0
  214. package/lib/LmUpload/LmUpload.d.ts +4 -1
  215. package/lib/LmUpload/LmUpload.js +31 -6
  216. package/lib/LmUpload/UploadList/ItemPictureCard.js +66 -10
  217. package/lib/LmUpload/UploadList/index.d.ts +1 -1
  218. package/lib/LmUpload/UploadList/index.js +6 -2
  219. package/lib/LmUpload/body/Progress.d.ts +4 -0
  220. package/lib/LmUpload/body/{UploadDrag.js → Progress.js} +10 -5
  221. package/lib/LmUpload/body/UploadCore.js +16 -10
  222. package/lib/LmUpload/body/UploadPicture.js +14 -3
  223. package/lib/LmUpload/fns/index.d.ts +3 -0
  224. package/lib/LmUpload/fns/index.js +141 -29
  225. package/lib/LmUpload/style/index.css +20 -3
  226. package/lib/LmUpload/wrapper/reducer.js +7 -1
  227. package/lib/Modal/index.d.ts +1 -1
  228. package/lib/Popconfirm/index.d.ts +3 -0
  229. package/lib/Popconfirm/index.js +15 -0
  230. package/lib/Popconfirm/style/index.css +505 -0
  231. package/lib/Popconfirm/style/index.d.ts +1 -0
  232. package/lib/Popconfirm/style/index.js +3 -0
  233. package/lib/Progress/index.d.ts +3 -0
  234. package/lib/Progress/index.js +15 -0
  235. package/lib/Progress/style/index.css +505 -0
  236. package/lib/Progress/style/index.d.ts +1 -0
  237. package/lib/Progress/style/index.js +3 -0
  238. package/lib/Segmented/index.d.ts +3 -0
  239. package/lib/Segmented/index.js +15 -0
  240. package/lib/Segmented/style/index.css +505 -0
  241. package/lib/Segmented/style/index.d.ts +1 -0
  242. package/lib/Segmented/style/index.js +3 -0
  243. package/lib/Slider/index.d.ts +2 -0
  244. package/lib/Slider/index.js +15 -0
  245. package/lib/Slider/style/index.css +505 -0
  246. package/lib/Slider/style/index.d.ts +1 -0
  247. package/lib/Slider/style/index.js +3 -0
  248. package/lib/Statistic/index.d.ts +3 -0
  249. package/lib/Statistic/index.js +15 -0
  250. package/lib/Statistic/style/index.css +505 -0
  251. package/lib/Statistic/style/index.d.ts +1 -0
  252. package/lib/Statistic/style/index.js +3 -0
  253. package/lib/TimePicker/index.d.ts +3 -0
  254. package/lib/TimePicker/index.js +15 -0
  255. package/lib/TimePicker/style/index.css +505 -0
  256. package/lib/TimePicker/style/index.d.ts +1 -0
  257. package/lib/TimePicker/style/index.js +3 -0
  258. package/lib/Timeline/index.d.ts +3 -0
  259. package/lib/Timeline/index.js +15 -0
  260. package/lib/Timeline/style/index.css +505 -0
  261. package/lib/Timeline/style/index.d.ts +1 -0
  262. package/lib/Timeline/style/index.js +3 -0
  263. package/lib/Transfer/index.d.ts +3 -0
  264. package/lib/Transfer/index.js +15 -0
  265. package/lib/Transfer/style/index.css +505 -0
  266. package/lib/Transfer/style/index.d.ts +1 -0
  267. package/lib/Transfer/style/index.js +3 -0
  268. package/lib/TreeSelect/index.d.ts +3 -0
  269. package/lib/TreeSelect/index.js +15 -0
  270. package/lib/TreeSelect/style/index.css +505 -0
  271. package/lib/TreeSelect/style/index.d.ts +1 -0
  272. package/lib/TreeSelect/style/index.js +3 -0
  273. package/lib/hooks/useFullscreen/index.js +6 -10
  274. package/lib/index.d.ts +18 -0
  275. package/lib/index.js +73 -1
  276. package/package.json +2 -1
  277. package/typings/index.d.ts +1 -1
  278. package/dist/LmUpload/body/UploadDrag.d.ts +0 -4
  279. package/es/LmUpload/body/UploadDrag.d.ts +0 -4
  280. package/es/LmUpload/body/UploadDrag.js +0 -10
  281. package/lib/LmUpload/body/UploadDrag.d.ts +0 -4
@@ -1,3 +1,5 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+
1
3
  var __rest = this && this.__rest || function (s, e) {
2
4
  var t = {};
3
5
 
@@ -11,13 +13,28 @@ var __rest = this && this.__rest || function (s, e) {
11
13
  return t;
12
14
  };
13
15
 
14
- import React from 'react';
16
+ import React, { forwardRef, useImperativeHandle, useState } from 'react';
15
17
  import classNames from 'classnames';
16
18
  import { Button, Drawer, IconFont, Space } from '..';
19
+ import { ApprovalType } from './type';
20
+ import { currentUserIsApprover, currentUserIsProposer, getStatus } from './util';
21
+ import { wrapperAgree, wrapperComment, wrapperRefuse, getCurrentTime, getDistanceTime } from './handle';
17
22
  var prefixCls = 'lm_approval';
18
23
  var colors = ['#36BCF1', '#AE86DC', '#8BD248', '#F5A173'];
19
- var statusMap = new Map([[1, '审核中'], [2, '已审核'], [3, '未通过']]);
20
- var defaultStatus = 1;
24
+ var cacheColorMap = new Map();
25
+
26
+ var getColorWithCache = function getColorWithCache(key) {
27
+ var color;
28
+
29
+ if (cacheColorMap.has(key)) {
30
+ color = cacheColorMap.get(key);
31
+ } else {
32
+ color = colors[parseInt(Math.random() * 4 + '')];
33
+ cacheColorMap.set(key, color);
34
+ }
35
+
36
+ return color;
37
+ };
21
38
 
22
39
  var getLastChar = function getLastChar(name) {
23
40
  return name.substring(name.length - 1, name.length);
@@ -28,25 +45,25 @@ var LMDrawer = function LMDrawer(props) {
28
45
  visible = _props$visible === void 0 ? false : _props$visible,
29
46
  _props$title = props.title,
30
47
  title = _props$title === void 0 ? '' : _props$title,
31
- _props$status = props.status,
32
- status = _props$status === void 0 ? defaultStatus : _props$status,
33
- _props$userType = props.userType,
34
- userType = _props$userType === void 0 ? 'self' : _props$userType,
35
- close = props.close,
48
+ user = props.user,
49
+ onClose = props.onClose,
36
50
  children = props.children,
51
+ _props$steps = props.steps,
52
+ steps = _props$steps === void 0 ? [] : _props$steps,
37
53
  _props$onComment = props.onComment,
38
54
  onComment = _props$onComment === void 0 ? function () {} : _props$onComment,
39
55
  _props$onRefuse = props.onRefuse,
40
56
  onRefuse = _props$onRefuse === void 0 ? function () {} : _props$onRefuse,
41
57
  _props$onAgree = props.onAgree,
42
58
  onAgree = _props$onAgree === void 0 ? function () {} : _props$onAgree;
59
+ var status = getStatus(steps);
43
60
  var currentStatusCls = classNames(prefixCls + '_title_status');
44
61
  var drawerCls = classNames(prefixCls + '_drawer');
45
- var statusText = statusMap.has(status) ? statusMap.get(status) : statusMap.get(1);
62
+ var statusText = ApprovalType.toText(ApprovalType.APPROVAL, status);
46
63
 
47
64
  var handleClose = function handleClose() {
48
65
  visible = false;
49
- close();
66
+ onClose();
50
67
  };
51
68
 
52
69
  return /*#__PURE__*/React.createElement(Drawer, {
@@ -56,19 +73,16 @@ var LMDrawer = function LMDrawer(props) {
56
73
  onClose: handleClose,
57
74
  extra: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
58
75
  className: currentStatusCls
59
- }, // 审核中
60
- status === 1 && /*#__PURE__*/React.createElement(IconFont, {
76
+ }, ApprovalType.isPending(ApprovalType.APPROVAL, status) && /*#__PURE__*/React.createElement(IconFont, {
61
77
  className: 'icon blue',
62
78
  type: "lmweb-yuanxing-gengduo"
63
- }), // 已审核
64
- status === 2 && /*#__PURE__*/React.createElement(IconFont, {
79
+ }), ApprovalType.isAgree(ApprovalType.APPROVAL, status) && /*#__PURE__*/React.createElement(IconFont, {
65
80
  className: 'icon green',
66
81
  type: "lmweb-check-circle-fill"
67
- }), // 未通过
68
- status === 3 && /*#__PURE__*/React.createElement(IconFont, {
82
+ }), ApprovalType.isRefuse(ApprovalType.APPROVAL, status) && /*#__PURE__*/React.createElement(IconFont, {
69
83
  className: 'icon grey',
70
84
  type: "lmweb-stop"
71
- }), /*#__PURE__*/React.createElement("span", null, statusText)), status === 1 && userType === 'approver' && /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(Button, {
85
+ }), /*#__PURE__*/React.createElement("span", null, statusText)), ApprovalType.isPending(ApprovalType.APPROVAL, status) && currentUserIsApprover(steps, user) && /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(Button, {
72
86
  size: "small",
73
87
  onClick: onComment
74
88
  }, "\u4EC5\u8BC4\u8BBA"), /*#__PURE__*/React.createElement(Button, {
@@ -93,88 +107,81 @@ var ApprovalItem = function ApprovalItem(props) {
93
107
  name = _props$name === void 0 ? '' : _props$name,
94
108
  _props$time = props.time,
95
109
  time = _props$time === void 0 ? '' : _props$time,
96
- _props$type = props.type,
97
- type = _props$type === void 0 ? 'start' : _props$type,
110
+ type = props.type,
111
+ _props$agreeList = props.agreeList,
112
+ agreeList = _props$agreeList === void 0 ? [] : _props$agreeList,
113
+ _props$approverList = props.approverList,
114
+ approverList = _props$approverList === void 0 ? [] : _props$approverList,
98
115
  _props$everyoneAgree = props.everyoneAgree,
99
116
  everyoneAgree = _props$everyoneAgree === void 0 ? false : _props$everyoneAgree,
100
117
  _props$comment = props.comment,
101
118
  comment = _props$comment === void 0 ? null : _props$comment,
102
- approverList = props.approverList,
103
- carbonCopyList = props.carbonCopyList,
104
- _cacheColorMap = props._cacheColorMap,
105
- _color = props._color,
106
- _status = props._status;
119
+ _props$carbonCopyList = props.carbonCopyList,
120
+ carbonCopyList = _props$carbonCopyList === void 0 ? [] : _props$carbonCopyList,
121
+ _props$urge = props.urge,
122
+ urge = _props$urge === void 0 ? false : _props$urge,
123
+ approvalStatus = props.approvalStatus,
124
+ _isSelf = props._isSelf,
125
+ _user = props._user,
126
+ onUrge = props.onUrge,
127
+ onDeleteComment = props.onDeleteComment;
107
128
  var itemCls = classNames(prefixCls + '_item');
108
129
  var itemHeaderCls = classNames(itemCls + '_header');
109
130
  var itemBodyCls = classNames(itemCls + '_body');
110
131
 
111
132
  var getIcon = function getIcon() {
112
- if (_status === 1) {
133
+ if (ApprovalType.isRefuse(type, approvalStatus)) {
113
134
  return /*#__PURE__*/React.createElement(IconFont, {
114
- className: 'icon blue',
115
- type: "lmweb-yuanxing-gengduo"
116
- });
117
- }
118
-
119
- if (_status === 2) {
120
- return /*#__PURE__*/React.createElement(IconFont, {
121
- className: 'icon green',
122
- type: "lmweb-check-circle-fill"
135
+ className: 'icon red',
136
+ type: "lmweb-close-circle-fill"
123
137
  });
124
138
  }
125
139
 
126
- if (_status === 3) {
140
+ if (ApprovalType.isPending(type, approvalStatus)) {
127
141
  return /*#__PURE__*/React.createElement(IconFont, {
128
- className: 'icon red',
129
- type: "lmweb-close-circle-fill"
142
+ className: 'icon blue',
143
+ type: "lmweb-yuanxing-gengduo"
130
144
  });
131
145
  }
132
146
 
133
- return null;
147
+ return /*#__PURE__*/React.createElement(IconFont, {
148
+ className: 'icon green',
149
+ type: "lmweb-check-circle-fill"
150
+ });
134
151
  };
135
152
 
136
153
  var getApprovalText = function getApprovalText() {
137
- if (type === 'refuse') {
154
+ if (ApprovalType.isPending(type, approvalStatus)) {
155
+ return /*#__PURE__*/React.createElement("div", {
156
+ className: 'desc blue'
157
+ }, "\u5BA1\u6838\u4E2D");
158
+ } else if (ApprovalType.isAgree(type, approvalStatus)) {
159
+ return /*#__PURE__*/React.createElement("div", {
160
+ className: 'desc green'
161
+ }, "\u5DF2\u540C\u610F");
162
+ } else if (ApprovalType.isRefuse(type, approvalStatus)) {
138
163
  return /*#__PURE__*/React.createElement("div", {
139
164
  className: 'desc red'
140
165
  }, "\u62D2\u7EDD");
141
- }
142
-
143
- if (type === 'start') {
166
+ } else if (type === ApprovalType.START) {
144
167
  return /*#__PURE__*/React.createElement("div", {
145
168
  className: 'desc green'
146
169
  }, "\u53D1\u8D77\u5BA1\u6279");
147
- }
148
-
149
- if (type === 'comment') {
170
+ } else if (type === ApprovalType.ONLY_COMMENT) {
150
171
  return /*#__PURE__*/React.createElement("div", {
151
172
  className: 'desc grey'
152
173
  }, "\u4EC5\u8BC4\u8BBA");
153
- }
154
-
155
- if (type === 'carbonCopy') {
174
+ } else if (type === ApprovalType.CARBON_COPY) {
156
175
  return /*#__PURE__*/React.createElement("div", {
157
176
  className: 'desc grey'
158
- }, "\u5DF2\u6284\u90018\u4EBA");
159
- }
160
-
161
- if (type === 'agree') {
162
- return /*#__PURE__*/React.createElement("div", {
163
- className: 'desc green'
164
- }, "\u5DF2\u540C\u610F");
165
- }
166
-
167
- if (type === 'pending') {
168
- return /*#__PURE__*/React.createElement("div", {
169
- className: 'desc blue'
170
- }, "\u5BA1\u6838\u4E2D");
177
+ }, "\u5DF2\u6284\u9001", carbonCopyList.length, "\u4EBA");
171
178
  }
172
179
 
173
180
  return null;
174
181
  };
175
182
 
176
183
  var renderTip = function renderTip() {
177
- if (type === 'pending') {
184
+ if (ApprovalType.isPending(type, approvalStatus)) {
178
185
  if (everyoneAgree) {
179
186
  return /*#__PURE__*/React.createElement("div", {
180
187
  className: "agree-tip"
@@ -191,113 +198,264 @@ var ApprovalItem = function ApprovalItem(props) {
191
198
 
192
199
  var renderComment = function renderComment() {
193
200
  if (comment) {
194
- return /*#__PURE__*/React.createElement("div", {
201
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
195
202
  className: 'comment'
196
- }, comment);
203
+ }, comment, ApprovalType.isOnlyComment(type) && currentUserIsProposer(_user, name) && /*#__PURE__*/React.createElement("div", {
204
+ className: 'comment-delete',
205
+ onClick: onDeleteComment
206
+ }, /*#__PURE__*/React.createElement(IconFont, {
207
+ className: "icon",
208
+ type: "lmweb-delete"
209
+ }), " \u5220\u9664")));
210
+ }
211
+
212
+ return null;
213
+ };
214
+
215
+ var renderUrge = function renderUrge() {
216
+ // 当前用户是提议发起者 && 审核中
217
+ if (_isSelf && ApprovalType.isPending(type, approvalStatus)) {
218
+ return /*#__PURE__*/React.createElement(Button, {
219
+ className: "urge",
220
+ disabled: urge,
221
+ size: "small",
222
+ onClick: onUrge
223
+ }, urge ? '已催办' : '催一下');
197
224
  }
198
225
 
199
226
  return null;
200
227
  };
201
228
 
202
229
  var renderList = function renderList() {
203
- var list = approverList || carbonCopyList || [];
230
+ var list = [];
231
+
232
+ if (ApprovalType.isCC(type)) {
233
+ list = carbonCopyList;
234
+ } else if (ApprovalType.isApproval(type)) {
235
+ list = approverList.slice(agreeList.length);
236
+ }
237
+
238
+ var separate = type === ApprovalType.APPROVAL && everyoneAgree; // 审批拒绝
239
+
240
+ if (ApprovalType.isRefuse(type, approvalStatus)) {
241
+ return null;
242
+ } // 审批通过
243
+
244
+
245
+ if (ApprovalType.isAgree(type, approvalStatus)) {
246
+ return null;
247
+ }
204
248
 
205
249
  if (list.length) {
206
250
  return /*#__PURE__*/React.createElement("div", {
251
+ className: 'lm-approver-wrapper'
252
+ }, /*#__PURE__*/React.createElement("div", {
207
253
  className: 'lm-approver-box'
208
254
  }, list.map(function (item, i) {
209
- var circleColor;
210
-
211
- if (_cacheColorMap.has(item)) {
212
- circleColor = _cacheColorMap.get(item);
213
- } else {
214
- circleColor = colors[parseInt(Math.random() * 4 + '')];
215
-
216
- _cacheColorMap.set(item, circleColor);
217
- }
218
-
219
- return /*#__PURE__*/React.createElement("div", {
220
- className: 'lm-approver-cell',
255
+ return /*#__PURE__*/React.createElement(React.Fragment, {
221
256
  key: item + i
257
+ }, /*#__PURE__*/React.createElement("div", {
258
+ className: 'lm-approver-cell'
222
259
  }, /*#__PURE__*/React.createElement("div", {
223
260
  className: 'lm-approver-circle',
224
261
  style: {
225
- backgroundColor: circleColor
262
+ backgroundColor: getColorWithCache(item)
226
263
  }
227
- }, getLastChar(item)), /*#__PURE__*/React.createElement("span", null, item));
228
- }));
264
+ }, getLastChar(item)), /*#__PURE__*/React.createElement("span", null, item)), separate && i != list.length - 1 && /*#__PURE__*/React.createElement(IconFont, {
265
+ className: 'icon',
266
+ type: "lmweb-icon_m_put_away"
267
+ }));
268
+ })), renderUrge());
229
269
  }
230
270
 
231
271
  return null;
232
272
  };
233
273
 
274
+ var renderTime = function renderTime() {
275
+ // 当前用户是提议发起者 && 审核中
276
+ if (_isSelf && ApprovalType.isPending(type, approvalStatus)) {
277
+ return /*#__PURE__*/React.createElement("span", {
278
+ className: 'yellow'
279
+ }, "\u5DF2\u7B49\u5F85".concat(getDistanceTime(time)));
280
+ }
281
+
282
+ return /*#__PURE__*/React.createElement("span", null, time);
283
+ };
284
+
285
+ var renderAvator = function renderAvator() {
286
+ if (ApprovalType.isCC(type)) {
287
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
288
+ className: 'cc-box'
289
+ }, /*#__PURE__*/React.createElement(IconFont, {
290
+ className: 'cc',
291
+ type: "lmweb-a-chaosongrenchaosongyonghu-02"
292
+ })), getIcon());
293
+ }
294
+
295
+ if (ApprovalType.isPending(type, approvalStatus)) {
296
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
297
+ className: 'cc-box'
298
+ }, /*#__PURE__*/React.createElement(IconFont, {
299
+ className: 'cc',
300
+ type: "lmweb-audit"
301
+ })), getIcon());
302
+ }
303
+
304
+ if (avator) {
305
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", {
306
+ className: 'picture',
307
+ src: avator,
308
+ alt: ""
309
+ }), getIcon());
310
+ }
311
+
312
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
313
+ className: 'subname',
314
+ style: {
315
+ backgroundColor: getColorWithCache(name)
316
+ }
317
+ }, getLastChar(name)), getIcon());
318
+ };
319
+
234
320
  return /*#__PURE__*/React.createElement("div", {
235
321
  className: itemCls
236
322
  }, /*#__PURE__*/React.createElement("div", {
237
323
  className: itemHeaderCls
238
324
  }, /*#__PURE__*/React.createElement("div", {
239
325
  className: "avator"
240
- }, avator ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", {
241
- className: 'picture',
242
- src: avator,
243
- alt: ""
244
- }), getIcon()) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
245
- className: 'subname',
246
- style: {
247
- backgroundColor: _color
248
- }
249
- }, getLastChar(name)), getIcon())), /*#__PURE__*/React.createElement("div", {
326
+ }, renderAvator()), /*#__PURE__*/React.createElement("div", {
250
327
  className: "content"
251
328
  }, /*#__PURE__*/React.createElement("div", {
252
329
  className: 'name'
253
330
  }, name), getApprovalText()), /*#__PURE__*/React.createElement("div", {
254
331
  className: "right"
255
- }, time)), type !== 'start' && /*#__PURE__*/React.createElement("div", {
332
+ }, renderTime())), type !== ApprovalType.START && /*#__PURE__*/React.createElement("div", {
256
333
  className: itemBodyCls
257
334
  }, renderTip(), renderComment(), renderList()));
258
335
  };
259
336
 
260
- var Approval = function Approval(props) {
261
- var _props$status2 = props.status,
262
- status = _props$status2 === void 0 ? 1 : _props$status2,
263
- _props$steps = props.steps,
264
- steps = _props$steps === void 0 ? [] : _props$steps;
337
+ var Approval = /*#__PURE__*/forwardRef(function (props, ref) {
338
+ var _props$proposer = props.proposer,
339
+ proposer = _props$proposer === void 0 ? '' : _props$proposer,
340
+ _props$user = props.user,
341
+ user = _props$user === void 0 ? '' : _props$user,
342
+ _props$steps2 = props.steps,
343
+ steps = _props$steps2 === void 0 ? [] : _props$steps2,
344
+ _onUrge2 = props.onUrge,
345
+ _props$onCarbonCopy = props.onCarbonCopy,
346
+ onCarbonCopy = _props$onCarbonCopy === void 0 ? function () {} : _props$onCarbonCopy,
347
+ _props$onDeleteCommen = props.onDeleteComment,
348
+ _onDeleteComment = _props$onDeleteCommen === void 0 ? function () {} : _props$onDeleteCommen;
349
+
350
+ var weakmap = new WeakMap();
351
+
352
+ var _isSelf = currentUserIsProposer(proposer, user);
353
+
354
+ var mark = false;
355
+ steps.forEach(function (step) {
356
+ if (ApprovalType.isPending(step.type, step.approvalStatus) && !step.name) {
357
+ step.name = '审批';
358
+ }
265
359
 
266
- var _cacheColorMap = new Map();
360
+ if (ApprovalType.isCC(step.type) && !step.name) {
361
+ step.name = '抄送人';
362
+ }
267
363
 
268
- steps.forEach(function (step, i) {
269
- if (i === 0) {
270
- step._status = status;
271
- } else {
272
- step._status = 2;
364
+ if (step.refuse) {
365
+ step.name = step.refuse;
273
366
  }
274
367
 
275
- if (!step._color) {
276
- if (_cacheColorMap.has(step.name)) {
277
- step._color = _cacheColorMap.get(step.name);
278
- } else {
279
- step._color = colors[parseInt(Math.random() * 4 + '')];
368
+ if (!step.name) {
369
+ step.name = 'unkonwn';
370
+ }
280
371
 
281
- _cacheColorMap.set(step.name, step._color);
282
- }
372
+ if (mark) {
373
+ weakmap.set(step, {
374
+ hidden: true
375
+ });
376
+ } // 拒绝|审核中,后面的不展示
377
+
378
+
379
+ if (ApprovalType.isPending(step.type, step.approvalStatus) || ApprovalType.isRefuse(step.type, step.approvalStatus)) {
380
+ mark = true;
283
381
  }
284
382
  });
285
- var list = steps.map(function (step, i) {
286
- return /*#__PURE__*/React.createElement(ApprovalItem, Object.assign({
383
+ var list = []; // 210 012
384
+
385
+ var _loop = function _loop(i) {
386
+ var step = steps[i];
387
+ var obj = weakmap.get(step);
388
+
389
+ if (obj && obj.hidden) {
390
+ return "continue";
391
+ } // 抄送
392
+
393
+
394
+ if (ApprovalType.isCC(step.type) && !step.isCarbonCopy) {
395
+ onCarbonCopy(step, i, steps);
396
+ step.time = getCurrentTime();
397
+ step.isCarbonCopy = true;
398
+ }
399
+
400
+ var element = /*#__PURE__*/React.createElement(ApprovalItem, Object.assign({
287
401
  key: step.name + i,
288
- _cacheColorMap: _cacheColorMap
289
- }, step));
290
- });
291
- return /*#__PURE__*/React.createElement(React.Fragment, null, list);
292
- };
402
+ _isSelf: _isSelf,
403
+ _user: user
404
+ }, step, {
405
+ onUrge: function onUrge() {
406
+ _onUrge2(step, i, steps);
407
+ },
408
+ onDeleteComment: function onDeleteComment() {
409
+ _onDeleteComment(step, i, steps);
410
+ }
411
+ }));
412
+ list.push(element);
413
+ };
414
+
415
+ for (var i = steps.length - 1; i >= 0; i--) {
416
+ var _ret = _loop(i);
417
+
418
+ if (_ret === "continue") continue;
419
+ }
293
420
 
294
- var LMApproval = function LMApproval(props) {
421
+ return /*#__PURE__*/React.createElement(React.Fragment, null, list);
422
+ });
423
+ var LMApproval = /*#__PURE__*/forwardRef(function (props, ref) {
295
424
  var className = props.className,
296
- others = __rest(props, ["className"]);
425
+ _props$onUrge = props.onUrge,
426
+ onUrge = _props$onUrge === void 0 ? function () {} : _props$onUrge,
427
+ _props$onDeleteCommen2 = props.onDeleteComment,
428
+ onDeleteComment = _props$onDeleteCommen2 === void 0 ? function () {} : _props$onDeleteCommen2,
429
+ others = __rest(props, ["className", "onUrge", "onDeleteComment"]);
430
+
431
+ var _useState = useState(false),
432
+ _useState2 = _slicedToArray(_useState, 2),
433
+ update = _useState2[0],
434
+ setUpdate = _useState2[1];
435
+
436
+ var comment = wrapperComment(others.user, others.steps, update, setUpdate);
437
+ var agree = wrapperAgree(others.user, others.steps, update, setUpdate);
438
+ var refuse = wrapperRefuse(others.user, others.steps, update, setUpdate);
439
+ useImperativeHandle(ref, function () {
440
+ return {
441
+ comment: comment,
442
+ agree: agree,
443
+ refuse: refuse
444
+ };
445
+ });
446
+
447
+ var _onUrge = function _onUrge(step, i, steps) {
448
+ step.urge = true;
449
+ onUrge(step, i, steps);
450
+ setUpdate(!update);
451
+ };
297
452
 
298
453
  return /*#__PURE__*/React.createElement(LMDrawer, Object.assign({
299
454
  className: classNames(className, prefixCls)
300
- }, others), /*#__PURE__*/React.createElement(Approval, Object.assign({}, others)));
301
- };
302
-
455
+ }, others), /*#__PURE__*/React.createElement(Approval, Object.assign({}, others, {
456
+ onUrge: _onUrge,
457
+ onDeleteComment: onDeleteComment,
458
+ __update: update
459
+ })));
460
+ });
303
461
  export default LMApproval;
@@ -569,6 +569,19 @@ html {
569
569
  .lm_approval_item .lm_approval_item_header .avator .icon.red {
570
570
  color: #FA4F53;
571
571
  }
572
+ .lm_approval_item .lm_approval_item_header .avator .cc-box {
573
+ display: flex;
574
+ justify-content: center;
575
+ align-items: center;
576
+ width: 100%;
577
+ height: 100%;
578
+ border-radius: 50%;
579
+ background-color: #1890FC;
580
+ }
581
+ .lm_approval_item .lm_approval_item_header .avator .cc-box .cc {
582
+ color: #fff;
583
+ font-size: 20px;
584
+ }
572
585
  .lm_approval_item .lm_approval_item_header .avator .subname {
573
586
  width: 100%;
574
587
  height: 100%;
@@ -606,8 +619,13 @@ html {
606
619
  .lm_approval_item .lm_approval_item_header .right {
607
620
  font-size: 12px;
608
621
  line-height: 20px;
622
+ }
623
+ .lm_approval_item .lm_approval_item_header .right span {
609
624
  color: var(--color-45);
610
625
  }
626
+ .lm_approval_item .lm_approval_item_header .right span.yellow {
627
+ color: #FD9827;
628
+ }
611
629
  .lm_approval_item .lm_approval_item_body {
612
630
  min-height: 32px;
613
631
  margin: 4px 0 4px 20px;
@@ -627,12 +645,24 @@ html {
627
645
  background-color: var(--color-4);
628
646
  border-radius: 2px;
629
647
  }
630
- .lm_approval_item .lm_approval_item_body .lm-approver-box {
648
+ .lm_approval_item .lm_approval_item_body .comment .comment-delete {
649
+ color: #1890FC;
650
+ font-size: var(--font-size-sm);
651
+ line-height: 20px;
652
+ cursor: pointer;
653
+ }
654
+ .lm_approval_item .lm_approval_item_body .comment .comment-delete .icon {
655
+ font-size: 14px;
656
+ }
657
+ .lm-approver-wrapper {
658
+ display: flex;
659
+ }
660
+ .lm-approver-wrapper .lm-approver-box {
631
661
  display: flex;
632
662
  flex-wrap: wrap;
633
663
  margin-top: 4px;
634
664
  }
635
- .lm_approval_item .lm_approval_item_body .lm-approver-box .lm-approver-cell {
665
+ .lm-approver-wrapper .lm-approver-box .lm-approver-cell {
636
666
  display: flex;
637
667
  margin: 0 8px 8px 0;
638
668
  height: 24px;
@@ -641,7 +671,7 @@ html {
641
671
  padding-right: 8px;
642
672
  background-color: var(--color-4);
643
673
  }
644
- .lm_approval_item .lm_approval_item_body .lm-approver-box .lm-approver-cell .lm-approver-circle {
674
+ .lm-approver-wrapper .lm-approver-box .lm-approver-cell .lm-approver-circle {
645
675
  width: 20px;
646
676
  height: 20px;
647
677
  border-radius: 50%;
@@ -651,8 +681,16 @@ html {
651
681
  margin-top: 2px;
652
682
  text-align: center;
653
683
  }
654
- .lm_approval_item .lm_approval_item_body .lm-approver-box .lm-approver-cell span {
684
+ .lm-approver-wrapper .lm-approver-box .lm-approver-cell span {
655
685
  color: var(--color-85);
656
686
  font-size: var(--font-size-sm);
657
687
  margin-left: 4px;
658
688
  }
689
+ .lm-approver-wrapper .lm-approver-box .icon {
690
+ margin-top: 5px;
691
+ margin-right: 8px;
692
+ color: rgba(0, 0, 0, 0.45);
693
+ }
694
+ .lm-approver-wrapper .urge {
695
+ margin-top: 4px;
696
+ }