systemrobotassistant 3.0.8

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.

Potentially problematic release.


This version of systemrobotassistant might be problematic. Click here for more details.

Files changed (369) hide show
  1. package/.eslintignore +6 -0
  2. package/.eslintrc +45 -0
  3. package/.gitlab-ci.yml +52 -0
  4. package/.lecprc.ts +76 -0
  5. package/.yarnrc +1 -0
  6. package/CHANGELOG.md +114 -0
  7. package/README.md +14 -0
  8. package/custom-amd-plugin.ts +46 -0
  9. package/es/component/answer-itme/index.d.ts +20 -0
  10. package/es/component/answer-itme/index.d.ts.map +1 -0
  11. package/es/component/answer-itme/index.js +41 -0
  12. package/es/component/answer-itme/style.css +35 -0
  13. package/es/component/data-container/index.d.ts +19 -0
  14. package/es/component/data-container/index.d.ts.map +1 -0
  15. package/es/component/data-container/index.js +37 -0
  16. package/es/component/data-container/style.css +26 -0
  17. package/es/component/days-tab/index.d.ts +6 -0
  18. package/es/component/days-tab/index.d.ts.map +1 -0
  19. package/es/component/days-tab/index.js +119 -0
  20. package/es/component/days-tab/style.css +43 -0
  21. package/es/component/days-tab/utils.d.ts +32 -0
  22. package/es/component/days-tab/utils.d.ts.map +1 -0
  23. package/es/component/days-tab/utils.js +98 -0
  24. package/es/component/error-boundary/index.d.ts +2 -0
  25. package/es/component/error-boundary/index.d.ts.map +1 -0
  26. package/es/component/error-boundary/index.js +33 -0
  27. package/es/component/it-notice-modal/columns.d.ts +11 -0
  28. package/es/component/it-notice-modal/columns.d.ts.map +1 -0
  29. package/es/component/it-notice-modal/columns.js +108 -0
  30. package/es/component/it-notice-modal/double-tab.d.ts +6 -0
  31. package/es/component/it-notice-modal/double-tab.d.ts.map +1 -0
  32. package/es/component/it-notice-modal/double-tab.js +94 -0
  33. package/es/component/it-notice-modal/index.d.ts +6 -0
  34. package/es/component/it-notice-modal/index.d.ts.map +1 -0
  35. package/es/component/it-notice-modal/index.js +488 -0
  36. package/es/component/it-notice-modal/server.d.ts +8 -0
  37. package/es/component/it-notice-modal/server.d.ts.map +1 -0
  38. package/es/component/it-notice-modal/server.js +43 -0
  39. package/es/component/it-notice-modal/single-tab.d.ts +6 -0
  40. package/es/component/it-notice-modal/single-tab.d.ts.map +1 -0
  41. package/es/component/it-notice-modal/single-tab.js +82 -0
  42. package/es/component/it-notice-modal/style.css +301 -0
  43. package/es/component/it-notice-modal/utils.d.ts +2 -0
  44. package/es/component/it-notice-modal/utils.d.ts.map +1 -0
  45. package/es/component/it-notice-modal/utils.js +8 -0
  46. package/es/component/it-notice-tab/index.d.ts +6 -0
  47. package/es/component/it-notice-tab/index.d.ts.map +1 -0
  48. package/es/component/it-notice-tab/index.js +206 -0
  49. package/es/component/it-notice-tab/server.d.ts +3 -0
  50. package/es/component/it-notice-tab/server.d.ts.map +1 -0
  51. package/es/component/it-notice-tab/server.js +13 -0
  52. package/es/component/it-notice-tab/style.css +103 -0
  53. package/es/component/mail-list-modal/index.d.ts +2 -0
  54. package/es/component/mail-list-modal/index.d.ts.map +1 -0
  55. package/es/component/mail-list-modal/index.js +306 -0
  56. package/es/component/mail-list-modal/server.d.ts +7 -0
  57. package/es/component/mail-list-modal/server.d.ts.map +1 -0
  58. package/es/component/mail-list-modal/server.js +38 -0
  59. package/es/component/mail-list-modal/style.css +132 -0
  60. package/es/component/myself-chat-card/index.d.ts +15 -0
  61. package/es/component/myself-chat-card/index.d.ts.map +1 -0
  62. package/es/component/myself-chat-card/index.js +25 -0
  63. package/es/component/myself-chat-card/style.css +22 -0
  64. package/es/component/need-answer/index.d.ts +15 -0
  65. package/es/component/need-answer/index.d.ts.map +1 -0
  66. package/es/component/need-answer/index.js +60 -0
  67. package/es/component/need-answer/style.css +19 -0
  68. package/es/component/opppsition-chat-card/index.d.ts +11 -0
  69. package/es/component/opppsition-chat-card/index.d.ts.map +1 -0
  70. package/es/component/opppsition-chat-card/index.js +25 -0
  71. package/es/component/opppsition-chat-card/style.css +23 -0
  72. package/es/component/question-library/index.d.ts +10 -0
  73. package/es/component/question-library/index.d.ts.map +1 -0
  74. package/es/component/question-library/index.js +291 -0
  75. package/es/component/question-library/server.d.ts +4 -0
  76. package/es/component/question-library/server.d.ts.map +1 -0
  77. package/es/component/question-library/server.js +19 -0
  78. package/es/component/question-library/style.css +75 -0
  79. package/es/component/question-tag/index.d.ts +11 -0
  80. package/es/component/question-tag/index.d.ts.map +1 -0
  81. package/es/component/question-tag/index.js +23 -0
  82. package/es/component/question-tag/style.css +12 -0
  83. package/es/component/recommend-questions-card/index.d.ts +10 -0
  84. package/es/component/recommend-questions-card/index.d.ts.map +1 -0
  85. package/es/component/recommend-questions-card/index.js +104 -0
  86. package/es/component/recommend-questions-card/style.css +54 -0
  87. package/es/component/scroll-view/index.d.ts +3 -0
  88. package/es/component/scroll-view/index.d.ts.map +1 -0
  89. package/es/component/scroll-view/index.js +2 -0
  90. package/es/component/scroll-view/scroll-view.d.ts +18 -0
  91. package/es/component/scroll-view/scroll-view.d.ts.map +1 -0
  92. package/es/component/scroll-view/scroll-view.js +66 -0
  93. package/es/component/scroll-view/style.css +34 -0
  94. package/es/component/tab/index.d.ts +2 -0
  95. package/es/component/tab/index.d.ts.map +1 -0
  96. package/es/component/tab/index.js +18 -0
  97. package/es/component/tab/style.css +26 -0
  98. package/es/component/tips-answer/index.d.ts +15 -0
  99. package/es/component/tips-answer/index.d.ts.map +1 -0
  100. package/es/component/tips-answer/index.js +28 -0
  101. package/es/component/tips-answer/style.css +10 -0
  102. package/es/images/expire-robot.svg +16 -0
  103. package/es/images/pc-invalid.svg +11 -0
  104. package/es/images/screenshot-5.png +0 -0
  105. package/es/index.d.ts +92 -0
  106. package/es/index.d.ts.map +1 -0
  107. package/es/index.js +506 -0
  108. package/es/js/const.d.ts +41 -0
  109. package/es/js/const.d.ts.map +1 -0
  110. package/es/js/const.js +46 -0
  111. package/es/js/gen-render-promise.d.ts +9 -0
  112. package/es/js/gen-render-promise.d.ts.map +1 -0
  113. package/es/js/gen-render-promise.js +30 -0
  114. package/es/js/get-time.d.ts +15 -0
  115. package/es/js/get-time.d.ts.map +1 -0
  116. package/es/js/get-time.js +35 -0
  117. package/es/js/hfc-space.d.ts +16 -0
  118. package/es/js/hfc-space.d.ts.map +1 -0
  119. package/es/js/hfc-space.js +71 -0
  120. package/es/js/render-special.d.ts +16 -0
  121. package/es/js/render-special.d.ts.map +1 -0
  122. package/es/js/render-special.js +53 -0
  123. package/es/js/request/fetch.d.ts +10 -0
  124. package/es/js/request/fetch.d.ts.map +1 -0
  125. package/es/js/request/fetch.js +81 -0
  126. package/es/js/request/request.d.ts +3 -0
  127. package/es/js/request/request.d.ts.map +1 -0
  128. package/es/js/request/request.js +63 -0
  129. package/es/js/showMessage.d.ts +15 -0
  130. package/es/js/showMessage.d.ts.map +1 -0
  131. package/es/js/showMessage.js +75 -0
  132. package/es/js/state-immer.d.ts +3 -0
  133. package/es/js/state-immer.d.ts.map +1 -0
  134. package/es/js/state-immer.js +19 -0
  135. package/es/js/timer-executor.d.ts +3 -0
  136. package/es/js/timer-executor.d.ts.map +1 -0
  137. package/es/js/timer-executor.js +83 -0
  138. package/es/js/to-hfc.d.ts +2 -0
  139. package/es/js/to-hfc.d.ts.map +1 -0
  140. package/es/js/to-hfc.js +8 -0
  141. package/es/js/utils.d.ts +3 -0
  142. package/es/js/utils.d.ts.map +1 -0
  143. package/es/js/utils.js +11 -0
  144. package/es/jsx/chat-modal.d.ts +16 -0
  145. package/es/jsx/chat-modal.d.ts.map +1 -0
  146. package/es/jsx/chat-modal.js +268 -0
  147. package/es/server.d.ts +8 -0
  148. package/es/server.d.ts.map +1 -0
  149. package/es/server.js +44 -0
  150. package/es/style.css +174 -0
  151. package/lib/component/answer-itme/index.d.ts +20 -0
  152. package/lib/component/answer-itme/index.d.ts.map +1 -0
  153. package/lib/component/answer-itme/index.js +51 -0
  154. package/lib/component/answer-itme/style.css +35 -0
  155. package/lib/component/data-container/index.d.ts +19 -0
  156. package/lib/component/data-container/index.d.ts.map +1 -0
  157. package/lib/component/data-container/index.js +45 -0
  158. package/lib/component/data-container/style.css +26 -0
  159. package/lib/component/days-tab/index.d.ts +6 -0
  160. package/lib/component/days-tab/index.d.ts.map +1 -0
  161. package/lib/component/days-tab/index.js +129 -0
  162. package/lib/component/days-tab/style.css +43 -0
  163. package/lib/component/days-tab/utils.d.ts +32 -0
  164. package/lib/component/days-tab/utils.d.ts.map +1 -0
  165. package/lib/component/days-tab/utils.js +110 -0
  166. package/lib/component/error-boundary/index.d.ts +2 -0
  167. package/lib/component/error-boundary/index.d.ts.map +1 -0
  168. package/lib/component/error-boundary/index.js +40 -0
  169. package/lib/component/it-notice-modal/columns.d.ts +11 -0
  170. package/lib/component/it-notice-modal/columns.d.ts.map +1 -0
  171. package/lib/component/it-notice-modal/columns.js +116 -0
  172. package/lib/component/it-notice-modal/double-tab.d.ts +6 -0
  173. package/lib/component/it-notice-modal/double-tab.d.ts.map +1 -0
  174. package/lib/component/it-notice-modal/double-tab.js +104 -0
  175. package/lib/component/it-notice-modal/index.d.ts +6 -0
  176. package/lib/component/it-notice-modal/index.d.ts.map +1 -0
  177. package/lib/component/it-notice-modal/index.js +499 -0
  178. package/lib/component/it-notice-modal/server.d.ts +8 -0
  179. package/lib/component/it-notice-modal/server.d.ts.map +1 -0
  180. package/lib/component/it-notice-modal/server.js +55 -0
  181. package/lib/component/it-notice-modal/single-tab.d.ts +6 -0
  182. package/lib/component/it-notice-modal/single-tab.d.ts.map +1 -0
  183. package/lib/component/it-notice-modal/single-tab.js +92 -0
  184. package/lib/component/it-notice-modal/style.css +301 -0
  185. package/lib/component/it-notice-modal/utils.d.ts +2 -0
  186. package/lib/component/it-notice-modal/utils.d.ts.map +1 -0
  187. package/lib/component/it-notice-modal/utils.js +15 -0
  188. package/lib/component/it-notice-tab/index.d.ts +6 -0
  189. package/lib/component/it-notice-tab/index.d.ts.map +1 -0
  190. package/lib/component/it-notice-tab/index.js +216 -0
  191. package/lib/component/it-notice-tab/server.d.ts +3 -0
  192. package/lib/component/it-notice-tab/server.d.ts.map +1 -0
  193. package/lib/component/it-notice-tab/server.js +20 -0
  194. package/lib/component/it-notice-tab/style.css +103 -0
  195. package/lib/component/mail-list-modal/index.d.ts +2 -0
  196. package/lib/component/mail-list-modal/index.d.ts.map +1 -0
  197. package/lib/component/mail-list-modal/index.js +316 -0
  198. package/lib/component/mail-list-modal/server.d.ts +7 -0
  199. package/lib/component/mail-list-modal/server.d.ts.map +1 -0
  200. package/lib/component/mail-list-modal/server.js +50 -0
  201. package/lib/component/mail-list-modal/style.css +132 -0
  202. package/lib/component/myself-chat-card/index.d.ts +15 -0
  203. package/lib/component/myself-chat-card/index.d.ts.map +1 -0
  204. package/lib/component/myself-chat-card/index.js +35 -0
  205. package/lib/component/myself-chat-card/style.css +22 -0
  206. package/lib/component/need-answer/index.d.ts +15 -0
  207. package/lib/component/need-answer/index.d.ts.map +1 -0
  208. package/lib/component/need-answer/index.js +70 -0
  209. package/lib/component/need-answer/style.css +19 -0
  210. package/lib/component/opppsition-chat-card/index.d.ts +11 -0
  211. package/lib/component/opppsition-chat-card/index.d.ts.map +1 -0
  212. package/lib/component/opppsition-chat-card/index.js +35 -0
  213. package/lib/component/opppsition-chat-card/style.css +23 -0
  214. package/lib/component/question-library/index.d.ts +10 -0
  215. package/lib/component/question-library/index.d.ts.map +1 -0
  216. package/lib/component/question-library/index.js +301 -0
  217. package/lib/component/question-library/server.d.ts +4 -0
  218. package/lib/component/question-library/server.d.ts.map +1 -0
  219. package/lib/component/question-library/server.js +27 -0
  220. package/lib/component/question-library/style.css +75 -0
  221. package/lib/component/question-tag/index.d.ts +11 -0
  222. package/lib/component/question-tag/index.d.ts.map +1 -0
  223. package/lib/component/question-tag/index.js +33 -0
  224. package/lib/component/question-tag/style.css +12 -0
  225. package/lib/component/recommend-questions-card/index.d.ts +10 -0
  226. package/lib/component/recommend-questions-card/index.d.ts.map +1 -0
  227. package/lib/component/recommend-questions-card/index.js +114 -0
  228. package/lib/component/recommend-questions-card/style.css +54 -0
  229. package/lib/component/scroll-view/index.d.ts +3 -0
  230. package/lib/component/scroll-view/index.d.ts.map +1 -0
  231. package/lib/component/scroll-view/index.js +10 -0
  232. package/lib/component/scroll-view/scroll-view.d.ts +18 -0
  233. package/lib/component/scroll-view/scroll-view.d.ts.map +1 -0
  234. package/lib/component/scroll-view/scroll-view.js +76 -0
  235. package/lib/component/scroll-view/style.css +34 -0
  236. package/lib/component/tab/index.d.ts +2 -0
  237. package/lib/component/tab/index.d.ts.map +1 -0
  238. package/lib/component/tab/index.js +28 -0
  239. package/lib/component/tab/style.css +26 -0
  240. package/lib/component/tips-answer/index.d.ts +15 -0
  241. package/lib/component/tips-answer/index.d.ts.map +1 -0
  242. package/lib/component/tips-answer/index.js +38 -0
  243. package/lib/component/tips-answer/style.css +10 -0
  244. package/lib/images/expire-robot.svg +16 -0
  245. package/lib/images/pc-invalid.svg +11 -0
  246. package/lib/images/screenshot-5.png +0 -0
  247. package/lib/index.d.ts +92 -0
  248. package/lib/index.d.ts.map +1 -0
  249. package/lib/index.js +516 -0
  250. package/lib/js/const.d.ts +41 -0
  251. package/lib/js/const.d.ts.map +1 -0
  252. package/lib/js/const.js +55 -0
  253. package/lib/js/gen-render-promise.d.ts +9 -0
  254. package/lib/js/gen-render-promise.d.ts.map +1 -0
  255. package/lib/js/gen-render-promise.js +37 -0
  256. package/lib/js/get-time.d.ts +15 -0
  257. package/lib/js/get-time.d.ts.map +1 -0
  258. package/lib/js/get-time.js +43 -0
  259. package/lib/js/hfc-space.d.ts +16 -0
  260. package/lib/js/hfc-space.d.ts.map +1 -0
  261. package/lib/js/hfc-space.js +91 -0
  262. package/lib/js/render-special.d.ts +16 -0
  263. package/lib/js/render-special.d.ts.map +1 -0
  264. package/lib/js/render-special.js +61 -0
  265. package/lib/js/request/fetch.d.ts +10 -0
  266. package/lib/js/request/fetch.d.ts.map +1 -0
  267. package/lib/js/request/fetch.js +88 -0
  268. package/lib/js/request/request.d.ts +3 -0
  269. package/lib/js/request/request.d.ts.map +1 -0
  270. package/lib/js/request/request.js +71 -0
  271. package/lib/js/showMessage.d.ts +15 -0
  272. package/lib/js/showMessage.d.ts.map +1 -0
  273. package/lib/js/showMessage.js +83 -0
  274. package/lib/js/state-immer.d.ts +3 -0
  275. package/lib/js/state-immer.d.ts.map +1 -0
  276. package/lib/js/state-immer.js +27 -0
  277. package/lib/js/timer-executor.d.ts +3 -0
  278. package/lib/js/timer-executor.d.ts.map +1 -0
  279. package/lib/js/timer-executor.js +91 -0
  280. package/lib/js/to-hfc.d.ts +2 -0
  281. package/lib/js/to-hfc.d.ts.map +1 -0
  282. package/lib/js/to-hfc.js +14 -0
  283. package/lib/js/utils.d.ts +3 -0
  284. package/lib/js/utils.d.ts.map +1 -0
  285. package/lib/js/utils.js +19 -0
  286. package/lib/jsx/chat-modal.d.ts +16 -0
  287. package/lib/jsx/chat-modal.d.ts.map +1 -0
  288. package/lib/jsx/chat-modal.js +278 -0
  289. package/lib/server.d.ts +8 -0
  290. package/lib/server.d.ts.map +1 -0
  291. package/lib/server.js +58 -0
  292. package/lib/style.css +174 -0
  293. package/package.json +57 -0
  294. package/rct.config.js +8 -0
  295. package/src/component/answer-itme/index.jsx +64 -0
  296. package/src/component/answer-itme/style.less +37 -0
  297. package/src/component/data-container/index.jsx +45 -0
  298. package/src/component/data-container/style.less +27 -0
  299. package/src/component/days-tab/index.jsx +114 -0
  300. package/src/component/days-tab/style.less +55 -0
  301. package/src/component/days-tab/utils.js +87 -0
  302. package/src/component/error-boundary/index.jsx +39 -0
  303. package/src/component/it-notice-modal/columns.js +102 -0
  304. package/src/component/it-notice-modal/double-tab.jsx +83 -0
  305. package/src/component/it-notice-modal/index.jsx +404 -0
  306. package/src/component/it-notice-modal/server.js +43 -0
  307. package/src/component/it-notice-modal/single-tab.jsx +70 -0
  308. package/src/component/it-notice-modal/style.less +367 -0
  309. package/src/component/it-notice-modal/utils.js +8 -0
  310. package/src/component/it-notice-tab/index.jsx +196 -0
  311. package/src/component/it-notice-tab/server.js +14 -0
  312. package/src/component/it-notice-tab/style.less +120 -0
  313. package/src/component/mail-list-modal/index.jsx +270 -0
  314. package/src/component/mail-list-modal/server.js +38 -0
  315. package/src/component/mail-list-modal/style.less +154 -0
  316. package/src/component/myself-chat-card/index.jsx +27 -0
  317. package/src/component/myself-chat-card/style.less +30 -0
  318. package/src/component/need-answer/index.jsx +56 -0
  319. package/src/component/need-answer/style.less +21 -0
  320. package/src/component/opppsition-chat-card/index.jsx +25 -0
  321. package/src/component/opppsition-chat-card/style.less +33 -0
  322. package/src/component/question-library/index.jsx +316 -0
  323. package/src/component/question-library/server.js +19 -0
  324. package/src/component/question-library/style.less +102 -0
  325. package/src/component/question-tag/index.jsx +27 -0
  326. package/src/component/question-tag/style.less +15 -0
  327. package/src/component/recommend-questions-card/index.jsx +111 -0
  328. package/src/component/recommend-questions-card/style.less +66 -0
  329. package/src/component/scroll-view/index.js +3 -0
  330. package/src/component/scroll-view/scroll-view.jsx +74 -0
  331. package/src/component/scroll-view/style.less +37 -0
  332. package/src/component/tab/index.jsx +17 -0
  333. package/src/component/tab/style.less +26 -0
  334. package/src/component/tips-answer/index.jsx +38 -0
  335. package/src/component/tips-answer/style.less +11 -0
  336. package/src/images/expire-robot.svg +16 -0
  337. package/src/images/pc-invalid.svg +11 -0
  338. package/src/images/screenshot-5.png +0 -0
  339. package/src/index.jsx +554 -0
  340. package/src/js/const.js +48 -0
  341. package/src/js/gen-render-promise.js +32 -0
  342. package/src/js/get-time.js +35 -0
  343. package/src/js/hfc-space.js +91 -0
  344. package/src/js/render-special.js +64 -0
  345. package/src/js/request/fetch.js +87 -0
  346. package/src/js/request/request.js +74 -0
  347. package/src/js/showMessage.js +81 -0
  348. package/src/js/state-immer.js +12 -0
  349. package/src/js/timer-executor.js +37 -0
  350. package/src/js/to-hfc.js +9 -0
  351. package/src/js/utils.js +13 -0
  352. package/src/jsx/chat-modal.jsx +254 -0
  353. package/src/main.js +1 -0
  354. package/src/server.js +45 -0
  355. package/src/style.less +229 -0
  356. package/test/cases/case-01.assert.js +6 -0
  357. package/test/cases/case-01.source.jsx +17 -0
  358. package/test/cases/case-02.assert.js +6 -0
  359. package/test/cases/case-02.source.jsx +25 -0
  360. package/test/cases/case-02.style.less +15 -0
  361. package/test/cases/case-03.source.jsx +69 -0
  362. package/test/cases/case-03.style.less +3 -0
  363. package/tsconfig.json +48 -0
  364. package/typings.d.ts +5 -0
  365. package/umd/b415d90208c277ba3703.png +0 -0
  366. package/umd/index.css +1753 -0
  367. package/umd/index.js +36258 -0
  368. package/umd/index.min.css +1 -0
  369. package/umd/index.min.js +657 -0
@@ -0,0 +1,39 @@
1
+ import { Component } from 'react'
2
+
3
+ class ErrorBoundary extends Component {
4
+ constructor(props) {
5
+ super(props)
6
+ this.state = { hasError: false }
7
+ }
8
+
9
+ static getDerivedStateFromError() {
10
+ // 更新 state 使下一次渲染可以显示降级 UI
11
+ return { hasError: true }
12
+ }
13
+
14
+ componentDidCatch(error, info) {
15
+ // "组件堆栈" 例子:
16
+ // in ComponentThatThrows (created by App)
17
+ // in ErrorBoundary (created by App)
18
+ // in div (created by App)
19
+ // in App
20
+ console.error('帮助中心组件报错异常', info.componentStack)
21
+ }
22
+
23
+ render() {
24
+ const {
25
+ hasError,
26
+ } = this.state
27
+
28
+ const { children } = this.props
29
+ if (hasError) {
30
+ // 你可以渲染任何自定义的降级 UI
31
+ return null
32
+ }
33
+
34
+ return children
35
+ }
36
+ }
37
+
38
+
39
+ export default ErrorBoundary
@@ -0,0 +1,102 @@
1
+ import React from 'react'
2
+ import ImagesPreviewer from '@shein-components/ImagesPreviewer'
3
+ import styles from './style.less'
4
+
5
+ export default (t) => [
6
+ {
7
+ title: t('序号'),
8
+ render: 'serialNumber',
9
+ width: 60,
10
+ },
11
+ {
12
+ title: t('报告人'),
13
+ width: 100,
14
+ render: 'reportUserName',
15
+ },
16
+ {
17
+ title: t('需求描述'),
18
+ width: 200,
19
+ render: r => (
20
+ r.isOneOrderMutiDemand !== 2 ? (
21
+ <div
22
+ className={styles.clickText}
23
+ onClick={() => {
24
+ window.open(r?.jiraInfoList[0].jiraUrl)
25
+ }}
26
+ >
27
+ {r?.jiraInfoList[0].jiraDescription}
28
+ </div>
29
+ ) : (
30
+ <div className={styles.tdCol}>
31
+ <div className={styles.title}>{t('一单多需求')}</div>
32
+ {
33
+ r.jiraInfoList?.map((item, index) => (
34
+ <div
35
+ className={styles.listItem}
36
+ >
37
+ {
38
+ r.jiraInfoList?.length > 1 ? (
39
+ <span style={{ flexShrink: 0 }}>{index + 1}、&nbsp;</span>
40
+ ) : null
41
+ }
42
+ <span
43
+ className={styles.clickText}
44
+ onClick={() => {
45
+ window.open(item.jiraUrl)
46
+ }}
47
+ >
48
+ {item.jiraDescription}
49
+ </span>
50
+ </div>
51
+ ))
52
+ }
53
+ </div>
54
+ )
55
+ ),
56
+ },
57
+ {
58
+ title: t('业务需求单号'),
59
+ width: 120,
60
+ render: r => (
61
+ !r.bizProjectIssueNum ? '/' : (
62
+ <div>
63
+ <div
64
+ className={styles.clickText}
65
+ onClick={() => {
66
+ window.open(r.jiraIssueUrl)
67
+ }}
68
+ >
69
+ {r.bizProjectIssueNum}
70
+ </div>
71
+ {
72
+ r.bizOrigDemandOnlineCount > 0 ? (
73
+ <div>
74
+ {t('累计已上线{0}个', r.bizOrigDemandOnlineCount)}
75
+ </div>
76
+ ) : null
77
+ }
78
+ </div>
79
+ )
80
+ ),
81
+ },
82
+ {
83
+ title: t('图片'),
84
+ width: 120,
85
+ render: r => (
86
+ r.imageUrlList?.length ? (
87
+ <ImagesPreviewer
88
+ width="80px"
89
+ height="60px"
90
+ showRotate
91
+ showThumbTotal
92
+ showPopover={false}
93
+ dataSource={{
94
+ thumb: r.imageUrlList || [],
95
+ origin: r.imageUrlList || [],
96
+ }}
97
+ onBadgeClick={() => { console.warn('badge click!') }}
98
+ />
99
+ ) : '/'
100
+ ),
101
+ },
102
+ ]
@@ -0,0 +1,83 @@
1
+ import React, { useMemo } from 'react'
2
+ import { Tabs, Table } from 'shineout'
3
+ import DataContainer from '../data-container'
4
+ import createColumns from './columns'
5
+ import styles from './style.less'
6
+
7
+ const SingleTab = (props) => {
8
+ const {
9
+ infoLoading, info, belongSystemList, curBelongSystemId, t,
10
+ onSystemChange, dateInfoList, selectedDateInDouble, onDateChange,
11
+ } = props
12
+ const columns = useMemo(() => createColumns(t), [t])
13
+
14
+ return (
15
+ <div className={styles.tabCon}>
16
+ {
17
+ belongSystemList?.length ? (
18
+ <Tabs
19
+ className={styles.subTabCon}
20
+ shape="line"
21
+ active={curBelongSystemId}
22
+ onChange={(value) => {
23
+ onSystemChange && onSystemChange(value)
24
+ }}
25
+ >
26
+ {
27
+ belongSystemList?.map(item => (
28
+ <Tabs.Panel
29
+ key={item.belongSystemId}
30
+ id={item.belongSystemId}
31
+ tab={item.belongSystemName}
32
+ />
33
+ ))
34
+ }
35
+ </Tabs>
36
+ ) : null
37
+ }
38
+ <div className={styles.datesCon}>
39
+ {
40
+ dateInfoList?.map(item => (
41
+ <div
42
+ className={[styles.dateItem, selectedDateInDouble === item.date && styles.active].join(' ')}
43
+ onClick={() => {
44
+ onDateChange && onDateChange(item)
45
+ }}
46
+ >
47
+ {item.dateStr}
48
+ </div>
49
+ ))
50
+ }
51
+ </div>
52
+ <div className={styles.mainNoticeCon}>
53
+ {
54
+ info?.jiraCount > 0 ? (
55
+ <div className={styles.containerTitle}>
56
+ {t('包含{0}个需求', <span className={styles.numberText}>{info.jiraCount}</span>)}
57
+ </div>
58
+ ) : null
59
+ }
60
+ <DataContainer
61
+ className={styles.cardBody}
62
+ loading={infoLoading}
63
+ >
64
+ {
65
+ info.jiraUnitList?.length ? (
66
+ <div className={styles.tableWrapper}>
67
+ <Table
68
+ empty={t('暂无数据')}
69
+ width={600}
70
+ columns={columns}
71
+ className={styles.table}
72
+ data={info.jiraUnitList || []}
73
+ />
74
+ </div>
75
+ ) : null
76
+ }
77
+ </DataContainer>
78
+ </div>
79
+ </div>
80
+ )
81
+ }
82
+
83
+ export default SingleTab
@@ -0,0 +1,404 @@
1
+ import React, { useCallback, useEffect } from 'react'
2
+ import moment from 'moment'
3
+ import classnames from 'classnames'
4
+ import { Modal, Button, Popover } from 'shineout'
5
+ import Icon from '@shein-components/Icon'
6
+ import DataContainer from '../data-container'
7
+ import ScrollView from '../scroll-view'
8
+ import genRenderPromise from '../../js/gen-render-promise'
9
+ import useImmer from '../../js/state-immer'
10
+ import SingleTab from './single-tab'
11
+ import DoubleTab from './double-tab'
12
+ import { getLabel } from './utils'
13
+ import {
14
+ allReportList, readITInform, popITDoubleWeekInform,
15
+ systemList, systemDateList, popITInform,
16
+ } from './server'
17
+ import styles from './style.less'
18
+
19
+ const cs = classnames.bind(classnames)
20
+
21
+ const TAB_TYPE = {
22
+ SINGLE: 1,
23
+ DOUBLE: 2,
24
+ }
25
+
26
+ const defaultState = {
27
+ info: {},
28
+ menuCollapse: false,
29
+ activeDate: '',
30
+ curBelongSystemId: '',
31
+ planInfo: {},
32
+ pageNo: 1,
33
+ pageSize: 100,
34
+ reportLoading: false,
35
+ tabType: TAB_TYPE.SINGLE,
36
+ infoLoading: false,
37
+ curReportDateInfo: {},
38
+ sealConfig: '',
39
+ belongSystemList: [],
40
+ selectedDateInDouble: '', // 双周计划中选中的时间
41
+ dateInfoList: [],
42
+ }
43
+
44
+ const ITNoticeModal = ({
45
+ zIndex, defaultMenuCollapse, t, onClose, onOk,
46
+ }) => {
47
+ const [state, setState] = useImmer({
48
+ ...defaultState,
49
+ menuCollapse: defaultMenuCollapse,
50
+ })
51
+
52
+ const {
53
+ info, menuCollapse, activeDate, sealConfig,
54
+ reportInfoList, pageNo, pageSize, reportLoading, tabType,
55
+ infoLoading, curReportDateInfo, belongSystemList,
56
+ curBelongSystemId, dateInfoList, selectedDateInDouble, submitLoading,
57
+ } = state
58
+
59
+ const getPopItInfo = useCallback((itInformId, belongSystemId) => {
60
+ setState({
61
+ infoLoading: true,
62
+ })
63
+ popITInform({
64
+ itInformId,
65
+ belongSystemId,
66
+ }).then((res) => {
67
+ setState({
68
+ infoLoading: false,
69
+ })
70
+ if (res) {
71
+ setState({
72
+ info: res?.info || {},
73
+ tabType: TAB_TYPE.SINGLE,
74
+ })
75
+ }
76
+ })
77
+ }, [])
78
+
79
+ const getDoubleItInfo = useCallback((itInformId, belongSystemId, date) => {
80
+ setState({
81
+ infoLoading: true,
82
+ })
83
+ popITDoubleWeekInform({
84
+ itInformId,
85
+ belongSystemId,
86
+ date,
87
+ }).then((res) => {
88
+ setState({
89
+ infoLoading: false,
90
+ })
91
+ if (res) {
92
+ setState({
93
+ info: res?.info || {},
94
+ tabType: TAB_TYPE.DOUBLE,
95
+ })
96
+ }
97
+ })
98
+ }, [])
99
+
100
+ const getSystemDateList = useCallback(async (itInformId) => {
101
+ const res = await systemDateList({ itInformId })
102
+ if (res) {
103
+ setState({
104
+ belongSystemList: res?.info || [],
105
+ })
106
+ if (res?.info?.length) {
107
+ const { belongSystemId } = res.info[0] || {}
108
+ const dateList = res?.info[0]?.dateInfoList || []
109
+ const date = dateList[0]?.date
110
+ setState({
111
+ curBelongSystemId: belongSystemId,
112
+ dateInfoList: dateList,
113
+ selectedDateInDouble: date,
114
+ })
115
+ if (date) {
116
+ getDoubleItInfo(itInformId, belongSystemId, date)
117
+ }
118
+ }
119
+ }
120
+ }, [])
121
+
122
+ const getSystemList = useCallback(async (itInformId) => {
123
+ const res = await systemList({
124
+ itInformId,
125
+ })
126
+ if (res) {
127
+ setState({
128
+ belongSystemList: res?.info || [],
129
+ })
130
+ if (res.info?.length) {
131
+ const { belongSystemId } = res.info[0] || {}
132
+ setState({
133
+ curBelongSystemId: belongSystemId,
134
+ })
135
+ // 请求单日计划
136
+ getPopItInfo(itInformId, belongSystemId)
137
+ }
138
+ }
139
+ }, [])
140
+
141
+ const getReportList = useCallback((params, isAdd) => {
142
+ setState({
143
+ reportLoading: true,
144
+ })
145
+ allReportList({
146
+ pageNo: params.pageNo || 1,
147
+ pageSize,
148
+ }).then((res) => {
149
+ setState({
150
+ reportLoading: false,
151
+ })
152
+ if (res) {
153
+ const { reportInfoList: _reportInfoList = [] } = res?.info || {}
154
+ const list = isAdd ? [...reportInfoList, ..._reportInfoList] : _reportInfoList
155
+ const curInfo = !isAdd ? (list?.[0] || {}) : curReportDateInfo
156
+ setState({
157
+ sealConfig: res?.info.sealConfig,
158
+ reportInfoList: list,
159
+ curReportDateInfo: curInfo,
160
+ })
161
+ if (isAdd && _reportInfoList?.length) {
162
+ setState({
163
+ pageNo: params.pageNo,
164
+ })
165
+ }
166
+ if (!isAdd && _reportInfoList?.length) {
167
+ getSystemList(curInfo.itInformId)
168
+ }
169
+ }
170
+ })
171
+ }, [reportInfoList, activeDate, curReportDateInfo, getSystemList])
172
+
173
+ useEffect(() => {
174
+ getReportList({ pageNo: 1 })
175
+ }, [])
176
+
177
+ const readInfo = useCallback(async (itInformId) => {
178
+ const res = await readITInform({
179
+ itInformId,
180
+ })
181
+ return res
182
+ }, [curReportDateInfo])
183
+
184
+ return (
185
+ <Modal
186
+ visible
187
+ hideClose
188
+ fullScreen
189
+ maskCloseAble
190
+ zIndex={zIndex}
191
+ className={styles.itNoticeModal}
192
+ onClose={async () => {
193
+ await readInfo(curReportDateInfo.itInformId)
194
+ onClose()
195
+ }}
196
+ >
197
+ <div className={styles.modalHeader}>
198
+ <div>{t('版本上线通知')}</div>
199
+ {
200
+ !curReportDateInfo.startDate ? null : (
201
+ <div className={styles.tabExtraCon}>
202
+ {t('生成日期:')}{getLabel(moment(), curReportDateInfo.startDate)}
203
+ </div>
204
+ )
205
+ }
206
+ <Icon
207
+ name="pc-close"
208
+ className={styles.closeIcon}
209
+ onClick={async () => {
210
+ await readInfo(curReportDateInfo.itInformId)
211
+ onClose()
212
+ }}
213
+ />
214
+ </div>
215
+ <DataContainer className={styles.modalBody}>
216
+ {
217
+ reportInfoList?.length ? (
218
+ <>
219
+ <div className={cs(styles.leftCon, !menuCollapse && styles.indentLeftCon)}>
220
+ <div className={styles.leftHeader}>
221
+ <span className={styles.headTitle}>{t('公告列表')}</span>
222
+ <Icon
223
+ name={menuCollapse ? 'pc-indent' : 'pc-outdent'}
224
+ className={styles.indentIcon}
225
+ onClick={() => {
226
+ setState({
227
+ menuCollapse: !menuCollapse,
228
+ })
229
+ }}
230
+ />
231
+ </div>
232
+ {
233
+ menuCollapse ? (
234
+ <ScrollView
235
+ className={styles.leftListCon}
236
+ loading={reportLoading}
237
+ onRefresh={() => {
238
+ getReportList({ pageNo: pageNo + 1 }, true)
239
+ }}
240
+ >
241
+ {
242
+ reportInfoList?.map(item => (
243
+ // 每次切换日期的时候,都默认到单日版本的tab
244
+ <div
245
+ className={
246
+ cs(styles.menuItem, curReportDateInfo.itInformId === item.itInformId && styles.active)
247
+ }
248
+ onClick={() => {
249
+ setState({
250
+ curReportDateInfo: item,
251
+ tabType: TAB_TYPE.SINGLE,
252
+ dateInfoList: [],
253
+ belongSystemList: [],
254
+ info: {},
255
+ })
256
+ getSystemList(item.itInformId)
257
+ }}
258
+ >
259
+ {item.title}
260
+ </div>
261
+ ))
262
+ }
263
+ </ScrollView>
264
+ ) : null
265
+ }
266
+ </div>
267
+ <div className={styles.rightCon}>
268
+ <div className={styles.tabHeader}>
269
+ <div
270
+ className={cs(styles.tabItem, tabType === TAB_TYPE.SINGLE && styles.active)}
271
+ onClick={() => {
272
+ setState({
273
+ tabType: TAB_TYPE.SINGLE,
274
+ info: {},
275
+ belongSystemList: [],
276
+ dateInfoList: [],
277
+ })
278
+ getSystemList(curReportDateInfo.itInformId)
279
+ }}
280
+ >
281
+ <span>{curReportDateInfo.windowTitle}</span>
282
+ {
283
+ curReportDateInfo.windowTitlePlus ? (
284
+ <span>{curReportDateInfo.windowTitlePlus}</span>
285
+ ) : null
286
+ }
287
+ </div>
288
+ <div
289
+ className={cs(styles.tabItem, tabType === TAB_TYPE.DOUBLE && styles.active)}
290
+ onClick={() => {
291
+ setState({
292
+ tabType: TAB_TYPE.DOUBLE,
293
+ info: {},
294
+ belongSystemList: [],
295
+ dateInfoList: [],
296
+ })
297
+ getSystemDateList(curReportDateInfo.itInformId)
298
+ }}
299
+ >
300
+ <span>{t('双周计划')}</span>
301
+ <span>({curReportDateInfo.windowPlanTitle})</span>
302
+ <span className={styles.helpIcon}>
303
+ <Popover zIndex={zIndex + 1} trigger="hover">
304
+ {t('双周计划数据是版本上线通知生成时,查询到的计划上线数据。')}
305
+ </Popover>
306
+ <Icon
307
+ name="pc-help-circle"
308
+ fontSize={14}
309
+ />
310
+ </span>
311
+ </div>
312
+ </div>
313
+ <div className={styles.signatureCon}>
314
+ <img src="https://assets.dotfashion.cn/unpkg/@shein/static-file@1.0.96/image/hfc/pc-invalid.svg" alt="" />
315
+ <div className={styles.signatureTextCon}>
316
+ <div className={styles.configText}>{sealConfig}</div>
317
+ <div>{t('IT通告发文专用章')}</div>
318
+ </div>
319
+ </div>
320
+ {
321
+ tabType === TAB_TYPE.SINGLE ? (
322
+ <SingleTab
323
+ info={info}
324
+ belongSystemList={belongSystemList}
325
+ curBelongSystemId={curBelongSystemId}
326
+ infoLoading={infoLoading}
327
+ t={t}
328
+ onTabChange={(value) => {
329
+ setState({
330
+ curBelongSystemId: value,
331
+ })
332
+ // 请求单日计划
333
+ getPopItInfo(curReportDateInfo.itInformId, value)
334
+ }}
335
+ />
336
+ ) : (
337
+ <DoubleTab
338
+ info={info}
339
+ belongSystemList={belongSystemList}
340
+ curBelongSystemId={curBelongSystemId}
341
+ dateInfoList={dateInfoList}
342
+ selectedDateInDouble={selectedDateInDouble}
343
+ infoLoading={infoLoading}
344
+ t={t}
345
+ onSystemChange={(value) => {
346
+ const list = belongSystemList?.find(item => item.belongSystemId === value)?.dateInfoList || []
347
+ const date = list?.[0]?.date || ''
348
+ setState({
349
+ curBelongSystemId: value,
350
+ dateInfoList: list,
351
+ selectedDateInDouble: date,
352
+ })
353
+ getDoubleItInfo(curReportDateInfo.itInformId, value, date)
354
+ }}
355
+ onDateChange={(item) => {
356
+ setState({
357
+ selectedDateInDouble: item.date,
358
+ })
359
+ getDoubleItInfo(curReportDateInfo.itInformId, curBelongSystemId, item.date)
360
+ }}
361
+ />
362
+ )
363
+ }
364
+ </div>
365
+ </>
366
+ ) : null
367
+ }
368
+ </DataContainer>
369
+ {
370
+ reportInfoList?.length ? (
371
+ <div className={styles.modalFooter}>
372
+ <Button
373
+ type="primary"
374
+ disabled={infoLoading}
375
+ loading={submitLoading}
376
+ onClick={async () => {
377
+ setState({
378
+ submitLoading: true,
379
+ })
380
+ const res = await readInfo(curReportDateInfo.itInformId)
381
+ setState({
382
+ submitLoading: false,
383
+ })
384
+ if (res) {
385
+ onOk()
386
+ }
387
+ }}
388
+ >
389
+ {t('我知道了')}
390
+ </Button>
391
+ </div>
392
+ ) : null
393
+ }
394
+ </Modal>
395
+ )
396
+ }
397
+
398
+ ITNoticeModal.defaultProps = {
399
+ defaultMenuCollapse: false,
400
+ }
401
+
402
+ export const openITNoticeModal = genRenderPromise(ITNoticeModal, 'itNotice-modal')
403
+
404
+ export default ITNoticeModal
@@ -0,0 +1,43 @@
1
+ import postRequest from '../../js/request/request'
2
+
3
+ // 获取it通告
4
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_getITInform/doc
5
+ export function getITInform(argument) {
6
+ return postRequest('/front/manual/getITInform', argument)
7
+ }
8
+
9
+ // 公告列表
10
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_allReportList/doc
11
+ export function allReportList(argument) {
12
+ return postRequest('/front/manual/allReportList', argument)
13
+ }
14
+
15
+ // 上线通知-返回系统列表
16
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_report_systemList/doc
17
+ export function systemList(argument) {
18
+ return postRequest('/front/manual/report/systemList', argument)
19
+ }
20
+
21
+ // 返回弹窗信息-对应系统版本上线通知日期的数据
22
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_system_popITInform/doc
23
+ export function popITInform(argument) {
24
+ return postRequest('/front/manual/system/popITInform', argument)
25
+ }
26
+
27
+ // 双周计划-返回系统、日期列表
28
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_plan_systemDateList/doc
29
+ export function systemDateList(argument) {
30
+ return postRequest('/front/manual/plan/systemDateList', argument)
31
+ }
32
+
33
+ // 返回弹窗信息-指定系统指定日期双周计划
34
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_system_popITDoubleWeekInform/doc
35
+ export function popITDoubleWeekInform(argument) {
36
+ return postRequest('/front/manual/system/popITDoubleWeekInform', argument)
37
+ }
38
+
39
+ // 已读未读状态变更
40
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_readITInform/doc
41
+ export function readITInform(argument) {
42
+ return postRequest('/front/manual/readITInform', argument)
43
+ }