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,70 @@
1
+ import React, { useMemo } from 'react'
2
+ import { Table, Tabs } 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,
10
+ onTabChange, t,
11
+ } = props
12
+
13
+ const columns = useMemo(() => createColumns(t), [t])
14
+
15
+ return (
16
+ <div className={styles.tabCon}>
17
+ {
18
+ belongSystemList?.length ? (
19
+ <Tabs
20
+ className={styles.subTabCon}
21
+ shape="line"
22
+ active={curBelongSystemId}
23
+ onChange={(value) => {
24
+ onTabChange && onTabChange(value)
25
+ }}
26
+ >
27
+ {
28
+ belongSystemList?.map(item => (
29
+ <Tabs.Panel
30
+ key={item.belongSystemId}
31
+ id={item.belongSystemId}
32
+ tab={item.belongSystemName}
33
+ />
34
+ ))
35
+ }
36
+ </Tabs>
37
+ ) : null
38
+ }
39
+ <div className={styles.mainNoticeCon}>
40
+ {
41
+ info?.jiraCount > 0 ? (
42
+ <div className={styles.containerTitle}>
43
+ {t('包含{0}个需求', <span className={styles.numberText}>{info.jiraCount}</span>)}
44
+ </div>
45
+ ) : null
46
+ }
47
+ <DataContainer>
48
+ {
49
+ info.jiraUnitList?.length ? (
50
+ <div
51
+ className={styles.tableWrapper}
52
+ >
53
+ <Table
54
+ empty={t('暂无数据')}
55
+ width={600}
56
+ columns={columns}
57
+ loading={infoLoading}
58
+ className={styles.table}
59
+ data={info.jiraUnitList || []}
60
+ />
61
+ </div>
62
+ ) : null
63
+ }
64
+ </DataContainer>
65
+ </div>
66
+ </div>
67
+ )
68
+ }
69
+
70
+ export default SingleTab
@@ -0,0 +1,367 @@
1
+ @primaryColor: var(--primary-color, #1890FF);
2
+ @grayColor: #7E848F;
3
+
4
+ .itNoticeModal {
5
+ padding: 0;
6
+ background-color: #F7F9FC;
7
+ overflow: hidden;
8
+ word-break: break-all;
9
+
10
+ :global {
11
+ .so-card-body {
12
+ display: flex;
13
+ flex-direction: column;
14
+ overflow: hidden;
15
+ color: #35383D;
16
+ font-family: PingFangSC-Regular, PingFang SC;
17
+ }
18
+ }
19
+
20
+ .modalHeader {
21
+ padding: 12px;
22
+ position: relative;
23
+ text-align: center;
24
+ background-color: #FFFFFF;
25
+ font-size: 20px;
26
+ box-shadow: 0px 1px 0px 0px rgba(230,234,240,0.5);
27
+
28
+ .tabExtraCon {
29
+ position: absolute;
30
+ right: 44px;
31
+ top: 50%;
32
+ transform: translateY(-50%);
33
+ font-size: 14px;
34
+ color: @grayColor;
35
+ }
36
+
37
+ .closeIcon {
38
+ position: absolute;
39
+ right: 12px;
40
+ top: 50%;
41
+ transform: translateY(-50%);
42
+ font-size: 20px;
43
+ color: @grayColor;
44
+ cursor: pointer;
45
+ }
46
+ }
47
+
48
+ .modalBody {
49
+ display: flex;
50
+ flex: 1;
51
+ overflow: hidden;
52
+ }
53
+
54
+ .leftCon {
55
+ width: 204px;
56
+ height: 100%;
57
+ display: flex;
58
+ flex-direction: column;
59
+ background-color: #FFFFFF;
60
+
61
+ .leftHeader {
62
+ margin-top: 8px;
63
+ padding: 8px 8px 8px 12px;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ flex-shrink: 0;
68
+ font-weight: bold;
69
+
70
+ .indentIcon {
71
+ cursor: pointer;
72
+ font-size: 16px;
73
+ }
74
+ }
75
+
76
+ .indentHeader {
77
+ width: 48px;
78
+ justify-content: flex-start;
79
+ flex-direction: column-reverse;
80
+ }
81
+
82
+ .leftListCon {
83
+ // display: flex;
84
+ // flex-direction: column;
85
+ // flex: 1;
86
+ // overflow-y: auto;
87
+
88
+ :global {
89
+ .so-list-item {
90
+ padding: 0;
91
+
92
+ &::after {
93
+ display: none;
94
+ }
95
+ }
96
+ }
97
+
98
+ .menuItem {
99
+ padding: 8px 8px 8px 16px;
100
+ margin-bottom: 8px;
101
+ cursor: pointer;
102
+ // overflow: hidden;
103
+ // text-overflow: ellipsis;
104
+ // white-space: nowrap;
105
+
106
+ &:last-child {
107
+ margin-bottom: 0;
108
+ }
109
+
110
+ &.active {
111
+ position: relative;
112
+ background-color: #E2F2FF;
113
+ color: @primaryColor;
114
+
115
+ &::before {
116
+ content: '';
117
+ position: absolute;
118
+ left: 0;
119
+ top: 0;
120
+ width: 4px;
121
+ height: 100%;
122
+ background-color: @primaryColor;
123
+ border-radius: 0px 4px 4px 0px;
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+
130
+ .indentLeftCon {
131
+ width: 48px;
132
+ transition: all 0.3s ease-in-out;
133
+
134
+ .leftHeader {
135
+ justify-content: flex-start;
136
+ flex-direction: column-reverse;
137
+
138
+ .headTitle {
139
+ letter-spacing: 1em;
140
+ margin-left: 1em;
141
+ }
142
+
143
+ .indentIcon {
144
+ margin-bottom: 8px;
145
+ }
146
+ }
147
+ }
148
+
149
+ .rightCon {
150
+ position: relative;
151
+ padding: 8px 8px 0;
152
+ display: flex;
153
+ flex-direction: column;
154
+ flex: 1;
155
+ overflow: hidden;
156
+ }
157
+
158
+ .tabHeader {
159
+ display: flex;
160
+ align-items: center;
161
+ border-bottom: 1px solid #E8EBF0;
162
+
163
+ .tabItem {
164
+ padding: 6px 16px;
165
+ display: flex;
166
+ align-items: center;
167
+ font-size: 16px;
168
+ font-family: PingFangSC-Medium, PingFang SC;
169
+ font-weight: bold;
170
+ line-height: 24px;
171
+ border-radius: 4px 4px 0px 0px;
172
+ background-color: #FFFFFF;
173
+ cursor: pointer;
174
+
175
+ .helpIcon {
176
+ margin-left: 4px;
177
+ color: @grayColor;
178
+ }
179
+ }
180
+
181
+ .tabItem.active {
182
+ position: relative;
183
+ background: @primaryColor;
184
+ color: #FFFFFF;
185
+
186
+ .helpIcon {
187
+ color: #FFFFFF;
188
+ }
189
+ }
190
+ }
191
+
192
+ .subTabCon {
193
+ padding-top: 8px;
194
+ background-color: #FFFFFF;
195
+ }
196
+
197
+ .tabCon {
198
+ display: flex;
199
+ flex-direction: column;
200
+ flex: 1;
201
+ overflow: hidden;
202
+ background-color: #FFFFFF;
203
+ }
204
+
205
+ .signatureCon {
206
+ position: absolute;
207
+ top: 0;
208
+ right: 12px;
209
+ width: 138px;
210
+ height: 126px;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ color: #D13135;
215
+ font-size: 12px;
216
+ z-index: 10;
217
+ pointer-events: none;
218
+
219
+ img {
220
+ position: absolute;
221
+ top: 0;
222
+ left: 0;
223
+ width: 138px;
224
+ height: 126px;
225
+ }
226
+
227
+ .signatureTextCon {
228
+ display: flex;
229
+ flex-direction: column;
230
+ align-items: center;
231
+ justify-content: center;
232
+ transform: translateY(4px) rotate(-15deg);
233
+ font-family: 方正兰亭粗黑简体;
234
+
235
+ .configText {
236
+ white-space: nowrap;
237
+ }
238
+ }
239
+ }
240
+
241
+ .mainNoticeCon {
242
+ position: relative;
243
+ display: flex;
244
+ flex-direction: column;
245
+ flex: 1;
246
+ overflow: hidden;
247
+ overflow-y: auto;
248
+ background-color: #FFFFFF;
249
+
250
+ .containerTitle {
251
+ color: @grayColor;
252
+ padding: 16px 8px 16px 20px;
253
+
254
+ .numberText {
255
+ margin: 0 4px;
256
+ color: #35383D;
257
+ font-size: 16px;
258
+ font-weight: bold;
259
+ }
260
+ }
261
+ }
262
+
263
+ .datesCon {
264
+ padding: 12px 20px;
265
+ display: grid;
266
+ grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
267
+ grid-gap: 8px;
268
+
269
+ .dateItem {
270
+ width: 100%;
271
+ height: 32px;
272
+ display: flex;
273
+ align-items: center;
274
+ justify-content: center;
275
+ border-radius: 4px;
276
+ border: 1px solid #D9D9D9;
277
+ cursor: pointer;
278
+
279
+ &.active {
280
+ border: 1px solid @primaryColor;
281
+ color: @primaryColor;
282
+ }
283
+ }
284
+ }
285
+
286
+ .tableWrapper {
287
+ padding: 0 20px;
288
+ display: flex;
289
+ flex-direction: column;
290
+ flex: 1;
291
+ }
292
+
293
+ .table {
294
+ margin-top: 8px;
295
+ margin-bottom: 0;
296
+ border: 1px solid rgba(217,217,217,0.5);
297
+ border-radius: 4px;
298
+
299
+ .tdCol {
300
+ display: flex;
301
+ flex-direction: column;
302
+
303
+ .title {
304
+ margin-bottom: 4px;
305
+ color: @grayColor;
306
+ }
307
+
308
+ .listItem {
309
+ width: 100%;
310
+ display: flex;
311
+ overflow: hidden;
312
+ }
313
+ }
314
+
315
+ thead th, tr td {
316
+ padding: 12px;
317
+ background-color: #F7F9FC;
318
+ font-weight: normal;
319
+ }
320
+
321
+ tr {
322
+ td {
323
+ border-color: rgba(217,217,217,0.5);
324
+ background-color: #FFFFFF;
325
+ }
326
+ &:last-child {
327
+ td {
328
+ border-bottom: unset;
329
+ }
330
+ }
331
+ }
332
+
333
+ thead th {
334
+ color: @grayColor;
335
+ }
336
+
337
+ :global {
338
+ .so-table-head > table {
339
+ border-bottom: 1px solid rgba(217,217,217,0.5);
340
+ }
341
+
342
+ .so-table-empty {
343
+ padding: 12px;
344
+ font-size: 14px;
345
+ }
346
+ }
347
+ }
348
+
349
+ .clickText {
350
+ color: @primaryColor;
351
+ cursor: pointer;
352
+ }
353
+
354
+ .modalFooter {
355
+ padding: 12px;
356
+ display: flex;
357
+ align-items: center;
358
+ justify-content: center;
359
+ background-color: #FFFFFF;
360
+ box-shadow: 0px -2px 4px 0px rgba(25,122,250,0.15);
361
+ z-index: 1;
362
+
363
+ button + button {
364
+ margin-left: 12px;
365
+ }
366
+ }
367
+ }
@@ -0,0 +1,8 @@
1
+ import moment from 'moment'
2
+
3
+ // 拼接文案
4
+ export const getLabel = (curDate, date) => {
5
+ const curYear = moment(curDate).year()
6
+ const year = moment(date).year()
7
+ return `${year !== curYear ? `${year}-` : ''}${moment(date).format('MM-DD')}`
8
+ }
@@ -0,0 +1,196 @@
1
+ import React, { useCallback, useEffect } from 'react'
2
+ import classnames from 'classnames'
3
+ import Ellipsis from '@shein-components/Ellipsis'
4
+ import DataContainer from '../data-container'
5
+ import DaysTab from '../days-tab'
6
+ import { openITNoticeModal } from '../it-notice-modal'
7
+ import useImmer from '../../js/state-immer'
8
+ import { getSystemDateList, getVersionPlan } from './server'
9
+ import styles from './style.less'
10
+
11
+ const cs = classnames.bind(styles)
12
+
13
+ const defaultState = {
14
+ detailInfo: [],
15
+ dateList: [],
16
+ seletedDate: '',
17
+ belongSystemList: [],
18
+ curBelongSystemId: '',
19
+ }
20
+
21
+ const ITNotice = ({
22
+ getBelongSystemList, zIndex, t,
23
+ }) => {
24
+ const [state, setState] = useImmer(defaultState)
25
+
26
+ const {
27
+ detailInfo, dateList, seletedDate, curBelongSystemId, belongSystemList,
28
+ } = state
29
+
30
+ const getData = useCallback(async (params) => {
31
+ const res = await getVersionPlan({
32
+ belongSystemId: params.belongSystemId,
33
+ date: params.date,
34
+ })
35
+ if (res) {
36
+ const { info = [] } = res || {}
37
+ let index = 0
38
+ setState({
39
+ detailInfo: info.map(item => ({
40
+ ...item,
41
+ jiraInfoList: item.jiraInfoList?.map(jira => ({
42
+ ...jira,
43
+ showIndex: ++index,
44
+ })),
45
+ })),
46
+ })
47
+ }
48
+ }, [])
49
+
50
+ useEffect(() => {
51
+ getSystemDateList().then((res) => {
52
+ const { info = [] } = res || {}
53
+ const list = info?.[0]?.belongSystemList || []
54
+ setState({
55
+ dateList: info,
56
+ seletedDate: info?.[0]?.date,
57
+ curBelongSystemId: list?.[0]?.belongSystemId,
58
+ belongSystemList: list,
59
+ })
60
+ if (typeof getBelongSystemList === 'function') {
61
+ getBelongSystemList(list)
62
+ }
63
+ getData({
64
+ belongSystemId: list?.[0]?.belongSystemId,
65
+ date: info?.[0]?.date,
66
+ })
67
+ })
68
+ }, [])
69
+
70
+ return (
71
+ <div className={styles.itNoticeTabCon}>
72
+ <DaysTab
73
+ activeDay={seletedDate}
74
+ data={dateList}
75
+ t={t}
76
+ onChange={(item) => {
77
+ const list = item.belongSystemList || []
78
+ setState({
79
+ seletedDate: item.date,
80
+ curBelongSystemId: list?.[0]?.belongSystemId,
81
+ belongSystemList: list,
82
+ })
83
+ getData({
84
+ belongSystemId: list?.[0]?.belongSystemId,
85
+ date: item.date,
86
+ })
87
+ }}
88
+ />
89
+ <div className={styles.mainNoticeCon}>
90
+ <DataContainer className={styles.cardBody}>
91
+ {
92
+ detailInfo?.map(item => (
93
+ <div className={styles.cardItem}>
94
+ <div className={styles.itemHeader}>
95
+ {/* <img className={styles.img} src="" width={22} height={22} /> */}
96
+ <div className={styles.headerLeft}>
97
+ <span
98
+ className={styles.clickText}
99
+ style={{ marginRight: 8 }}
100
+ onClick={() => {
101
+ window.open(item.jiraIssueUrl)
102
+ }}
103
+ >
104
+ {item.bizProjectIssueNum || item.projectIssueNum}
105
+ </span>
106
+ {
107
+ item.bizOrigDemandOnlineCount > 0 ? (
108
+ <span className={styles.total}>
109
+ {t('累计已上线:')}
110
+ {item.bizOrigDemandOnlineCount}
111
+ </span>
112
+ ) : null
113
+ }
114
+ </div>
115
+ <div className={styles.headerRight}>
116
+ {item?.jiraInfoList?.[0]?.reporterUserName}
117
+ </div>
118
+ </div>
119
+ <div className={styles.itemBody}>
120
+ {
121
+ item?.jiraInfoList?.map(jira => (
122
+ <div className={styles.listItem}>
123
+ <div className={styles.content}>
124
+ <span>
125
+ {jira.showIndex}
126
+ .&nbsp;
127
+ </span>
128
+ <span
129
+ className={styles.clickText}
130
+ onClick={() => {
131
+ window.open(jira?.jiraUrl)
132
+ }}
133
+ >
134
+ {jira?.summary}
135
+ </span>
136
+ </div>
137
+ </div>
138
+ ))
139
+ }
140
+ </div>
141
+ </div>
142
+ ))
143
+ }
144
+ </DataContainer>
145
+ <div
146
+ className={styles.checkMore}
147
+ onClick={() => {
148
+ // 打开弹窗
149
+ openITNoticeModal({
150
+ zIndex,
151
+ defaultMenuCollapse: true,
152
+ t,
153
+ })
154
+ }}
155
+ >
156
+ {t('查看更多公告')}
157
+ </div>
158
+ </div>
159
+ {
160
+ belongSystemList?.length > 1 ? (
161
+ <div className={styles.noticeMenus}>
162
+ {
163
+ belongSystemList?.map(item => (
164
+ <div
165
+ key={item.belongSystemId}
166
+ className={
167
+ cs(styles.menuItem, curBelongSystemId === item.belongSystemId && styles.active)
168
+ }
169
+ onClick={() => {
170
+ // 切换tab
171
+ setState({
172
+ curBelongSystemId: item.belongSystemId,
173
+ })
174
+ getData({
175
+ belongSystemId: item.belongSystemId,
176
+ date: seletedDate,
177
+ })
178
+ }}
179
+ >
180
+ <Ellipsis
181
+ value={item.belongSystemName}
182
+ popProps={{
183
+ zIndex,
184
+ }}
185
+ />
186
+ </div>
187
+ ))
188
+ }
189
+ </div>
190
+ ) : null
191
+ }
192
+ </div>
193
+ )
194
+ }
195
+
196
+ export default ITNotice
@@ -0,0 +1,14 @@
1
+ import postRequest from '../../js/request/request'
2
+
3
+
4
+ // 返回系统-日期列表
5
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_getSystemDateList/doc
6
+ export function getSystemDateList(argument) {
7
+ return postRequest('/front/manual/getSystemDateList', argument)
8
+ }
9
+
10
+ // 组件-返回版本计划信息
11
+ // https://soapi.sheincorp.cn/application/5161/routes/post_front_manual_getVersionPlan/doc
12
+ export function getVersionPlan(argument) {
13
+ return postRequest('/front/manual/getVersionPlan', argument)
14
+ }